←2011-07 2011-08 2011-09→ ↑2011 ↑all
2011-08-01
00:06:46 -!- oerjan has quit (Quit: Good night).
00:12:55 <Patashu> cheater_ your god won't give you pets
00:13:04 <Patashu> you need to cause the 'charm' effect on a monster
00:13:26 <Patashu> or, if you give a treat to cats/dogs/horses they become tame (results may vary)
00:18:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:20:08 -!- copumpkin has joined.
00:22:04 <cheater_> Patashu, hmm, let me read up on treats
00:22:30 <cheater_> Patashu, btw, all my monk's spells are nearly 100% fail.. how do i fix that? it's not getting better as i level up
00:23:05 <Patashu> are you wearing armour?
00:25:16 <lament> stop playing nethack and your spells will be 0%
00:30:34 <NihilistDandy> Ohai
00:35:05 <cheater_> ah yeah, it was all that metal i was wearing
00:35:30 <NihilistDandy> Dear Penthouse...
00:47:29 -!- TeruFSX has joined.
01:03:06 -!- lament has quit (Ping timeout: 260 seconds).
01:30:54 -!- MDude has changed nick to MSleep.
01:32:20 -!- EgoBot has quit (Remote host closed the connection).
01:33:32 -!- esowiki has joined.
01:34:09 -!- glogbot has joined.
01:34:09 -!- glogbackup has left.
01:38:11 -!- MSleep has quit (Ping timeout: 276 seconds).
01:53:21 -!- Behold has quit (Remote host closed the connection).
01:56:17 -!- BeholdMyGlory has joined.
02:00:43 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:19:14 -!- evincar has joined.
02:19:24 -!- pikhq has joined.
02:19:51 <evincar> Picked up Gödel, Escher, Bach today. This ought to be interesting.
02:20:24 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:21:45 <NihilistDandy> Meh
02:22:09 <evincar> Appropriate, considering Sgeo's realisation of the true nature of Lewis Carol [sic].
02:22:14 <NihilistDandy> Hofstadter's too talky
02:22:24 <evincar> So far he certainly seems to be.
02:22:33 <evincar> But I'm a quick reader, so I'm not too troubled by it.
02:22:44 <NihilistDandy> He doesn't exactly display much in the way of attention span, either :D
02:23:07 <NihilistDandy> And I'm leery when people start talking about Zen and Gödel in the same book O.o
02:24:22 <Vorpal> NihilistDandy, considering the number of pages that isn't a major issue
02:24:28 <evincar> Only a computer scientist. :P
02:26:00 <NihilistDandy> I always feel like the odd one out because I'm a computer scientist but not a mystic :D
02:26:33 <Vorpal> NihilistDandy, haha
02:27:37 <evincar> There are those would say you've just not yet fully appreciated the magic of computation.
02:28:12 <Vorpal> yeah, whatever
02:28:25 <NihilistDandy> I'm a mathematician, too. There's no magic over here :P
02:28:38 <NihilistDandy> You just don't appreciate the model :D
02:28:51 <Vorpal> hah
02:30:08 <evincar> Maybe I just have modesty enough to admit that computation is at that magical level of "sufficiently advanced".
02:30:33 <evincar> Mathematics too.
02:31:15 <NihilistDandy> I don't have a model for modesty. Is it published?
02:31:39 <NihilistDandy> -_-
02:31:57 <Vorpal> evincar, hm... I'm not sure I agree
02:32:03 <Vorpal> evincar, transistors are pretty simple
02:32:15 <Vorpal> and so are logic gates made out of transistors (CMOS at least)
02:32:34 <Vorpal> and making up simple circuits is easy
02:32:39 <evincar> Sure, but that's a particular implementation of computation.
02:32:40 <Vorpal> and combining those is easy
02:32:45 <evincar> I'm talking about the topic as a whole.
02:32:53 <Vorpal> and thus making a CPU is easy, since it combines
02:32:56 <Vorpal> and so on
02:33:20 <Vorpal> evincar, however if you try to look at transistors to full CPU in one go, then yes, it is pretty magical
02:33:40 <Vorpal> you just have to break it down info the layers of abstraction used
02:33:57 <Vorpal> evincar, and hm. Not sure I agree :P
02:35:08 <pikhq> Vorpal: Your computer does more calculations in an hour than all of humanity could do in a year.
02:35:13 <evincar> I really jumped straight into the deep end. What is the nature of computation, does it have intrinsic meaning, etc.
02:35:19 <Vorpal> pikhq, indeed
02:35:19 <pikhq> Yes, it's sufficiently advanced mathematic.
02:35:22 <pikhq> Erm.
02:35:23 <pikhq> Magic.
02:35:43 <Vorpal> pikhq, the thing is, when you consider each layer of abstraction alone then it doesn't seem very magic
02:35:51 <Vorpal> while for the whole, it is
02:36:51 <evincar> Vorpal: But of course. Chemicals don't seem very magical (well, alchemists might disagree) but the emergent behaviours of self-organisation and intellect are pretty wondrous, if you ask me.
02:36:52 <NihilistDandy> And the more exposure you get, the more "magic" slides up the scale
02:37:08 <evincar> It's not about not understanding them.
02:37:17 <Vorpal> evincar, indeed
02:37:19 <NihilistDandy> evincar: Only if you ascribe meaning to random/deterministic events
02:37:20 <evincar> It's about appreciating their self-evident beauty.
02:37:34 <Vorpal> blergh
02:37:58 <NihilistDandy> That's random *or* deterministic. I haven't fully decided which view of the universe I find most pleasant
02:38:06 <NihilistDandy> Free will's right out, though, obviously
02:38:23 <evincar> NihilistDandy: Why not deterministic behaviour emergent from a nondeterministic substrate? It works.
02:38:44 <NihilistDandy> Elaborate
02:39:02 <evincar> Also, free will may not exist, but as far as humans are concerned, it might as well, since we're not equipped to understand the processes at work.
02:39:26 <pikhq> evincar: It really gets down to what you mean by "free will".
02:39:30 <evincar> In any case, random input + deterministic rules = deterministic emergent behaviour.
02:39:58 <NihilistDandy> But there may be no rules
02:40:06 <pikhq> NihilistDandy: Physics?
02:40:28 <evincar> Yeah, that's the trump card. Physics is sort of the essential ruleset of the universe.
02:40:32 <NihilistDandy> Maybe
02:40:40 <NihilistDandy> It appears that way
02:40:51 <evincar> Alright, go faster than light. Right now.
02:40:57 <NihilistDandy> I don't know how
02:41:07 <evincar> Do you need to?
02:41:13 <NihilistDandy> Not really
02:41:27 <NihilistDandy> But I also don't really need to go faster than light
02:41:36 <evincar> If physical law were breakable by mere disagreement, the universe wouldn't be nearly so interesting. :P
02:42:01 <evincar> Although, as far as we know, the kind of creature that has the capacity to disagree is fairly rare.
02:42:15 -!- Patashu has quit (Ping timeout: 252 seconds).
02:42:17 <NihilistDandy> But think about who devised the rules. Animals possessed of self-designed logical systems, attributing phenomena to objects in those systems
02:42:25 <NihilistDandy> The reliability is tenuous at best
02:43:04 <NihilistDandy> Or just random brain signals
02:43:12 <NihilistDandy> No way of telling, really
02:43:26 <evincar> Well, that's the basis of science. You can't really prove anything true.
02:43:32 <NihilistDandy> Right.
02:43:38 <evincar> But you can demonstrate that it's reliably true under given circumstances.
02:43:53 <evincar> And that's a pragmatic attitude.
02:44:01 <evincar> So I don't really care if things don't work the way they seem to.
02:44:04 <NihilistDandy> Pragmatism has no place in #esoteric
02:44:05 <evincar> Because we'll never find out.
02:44:06 <NihilistDandy> gtfo
02:44:08 <NihilistDandy> :D
02:44:45 <evincar> By definition, we can only gain an understanding of things that do have a seeming, regardless of what that particular seeming is.
02:45:05 <evincar> Therefore anything that doesn't seem isn't observable or understandable.
02:45:24 <evincar> s/Therefore/In other words/.
02:45:34 <Vorpal> <evincar> But you can demonstrate that it's reliably true under given circumstances. <-- or at least we think so
02:45:38 <Vorpal> can we trust our brains?
02:45:52 <Vorpal> are we just having an illusion of that our brains exist?
02:46:05 <evincar> Doesn't matter. We rely on them implicitly, so transitive reliances are inevitable.
02:46:21 <Vorpal> evincar, can we however rely on them at all?
02:46:34 <evincar> Again, doesn't matter. Pragmatically we have to.
02:46:35 <Vorpal> there is no choice
02:46:37 <Vorpal> but can we really
02:46:53 <evincar> We do, so yes. Should we? Don't know. Don't care.
02:47:01 <NihilistDandy> Pragmatism really has no place in a universe without free will
02:47:37 <evincar> Not at all. If we can't observe the things that deny us free will, then we have as much free will as we think we do.
02:47:58 <NihilistDandy> Why must something deny you free will?
02:48:02 <evincar> So in practical terms we do have free will.
02:48:04 <NihilistDandy> You may just not have it
02:48:12 <evincar> I was trying to find a better word.
02:48:19 <evincar> The opposite of "give".
02:48:23 <evincar> "Not give".
02:48:32 <NihilistDandy> If some neurobiologists are correct, the idea of free will may be generated ex post facto
02:52:41 <NihilistDandy> Now we're going to talk about cats
02:52:50 <NihilistDandy> Do you have a cat, evincar
02:52:51 <NihilistDandy> ?
02:52:53 <evincar> Is there a reliable means of counting characters in a Unicode string?
02:53:13 <evincar> Code points aren't characters, so even UTF-32 is variable-width wrt characters. :(
02:53:25 <NihilistDandy> eek
02:55:04 <evincar> But yes, I have two. A Tortoiseshell that's afraid of everything, as Torties are wont to be, and a Maine Coon mix that is deaf and hunts mice and doesn't afraid of anything.
02:55:16 <NihilistDandy> http://stackoverflow.com/questions/4579215/cross-platform-iteration-of-unicode-string-counting-graphemes-using-icu
02:55:26 <evincar> s/mice/anything that moves, even if she is absurdly outclassed/
02:55:43 <NihilistDandy> Neato
02:56:12 <evincar> Bluh. I don't really want to use ICU.
02:58:45 <Vorpal> evincar, "doesn't afraid"?
02:58:46 <Vorpal> what
02:58:58 <Vorpal> you mean "isn't"?
02:58:59 <NihilistDandy> Internet speak
02:59:09 <NihilistDandy> You aren't familiar with it?
02:59:12 <olsner> Vorpal: wtf, you haven't heard this meme before?
02:59:16 <Vorpal> olsner, nope
02:59:25 <Vorpal> so it means "isn't"?
02:59:27 <NihilistDandy> http://knowyourmeme.com/memes/pretty-cool-guy#.TjYWeXOX0y4
02:59:30 <Vorpal> how confusing
02:59:54 <evincar> "I think Halo is a pretty cool guy. eh kills aleins and doesn't afraid of anything..."
03:00:22 <NihilistDandy> I kind of want to watch Red vs. Blue, now
03:00:38 <olsner> Vorpal: it's a reference to a specific formulation of a similar sentence at one specific time, thinking about the grammar is meaningless
03:01:14 <Vorpal> ah
03:01:43 <evincar> Speaking of thinking about grammar, I'm thinking about thinking about grammar.
03:01:48 <evincar> Specifically working on another conlang.
03:02:05 <NihilistDandy> What properties would it have?
03:02:16 <olsner> I'd think again about thinking about thinking about grammar
03:02:52 <NihilistDandy> You think so? WELL THINK AGAIN
03:03:38 <evincar> Not sure. I keep running into agglutinative languages lately, so I might do something with that, but I really don't like synthesis.
03:03:59 <olsner> NihilistDandy: think again about thinking again? THINKCEPTION
03:03:59 <evincar> Programming has made me drool over analytic languages.
03:04:05 <evincar> BWAAAAH
03:04:16 <NihilistDandy> olsner: FWAABUMBAHBAHBOOSH
03:04:22 <NihilistDandy> evincar: http://ithkuil.net/
03:04:34 <evincar> NihilistDandy: I know about that, actually.
03:04:39 <NihilistDandy> One of my favorites
03:04:47 <evincar> I don't know what the fuck he was thinking borrowing a consonant inventory from Ubykh.
03:04:50 <NihilistDandy> He's doing a big update, actually
03:04:59 <NihilistDandy> Making the whole thing a bit easier to pronounce
03:05:07 <NihilistDandy> Though the pronunciation was the easy part, really
03:05:11 <evincar> Of all the languages NOT to borrow a consonant inventory from. God.
03:05:33 <evincar> I do appreciate the scope of the work, though.
03:06:17 <evincar> But then again I don't believe in philosophical or logical languages.
03:06:33 * NihilistDandy is not surprised
03:06:36 <NihilistDandy> :D
03:06:53 <evincar> I'm fine with a posteriori, but a priori is preferable.
03:06:59 <evincar> I like mostly original works.
03:07:11 <evincar> Even if it means I'm not going to be able to read an example text right away.
03:08:01 <evincar> Besides, authors often unwittingly make reference to their native tongues.
03:08:16 <NihilistDandy> I also state obvious facts. :D
03:08:24 <itidus20> i think of languages as navigating on a 2d plane
03:08:30 <NihilistDandy> I can't tell you how many Latin clones I've read
03:08:32 <evincar> If your word for "book" is "htap", I'm betting you're from India or thereabouts.
03:09:08 <evincar> Ugh, I know. Esperanto at least has a nice community.
03:09:47 <evincar> We don't need another Interlingua or Latine Sine Flexiones or [insert variation on "Lingua International" here].
03:10:01 <NihilistDandy> Though most Esperantinos I know are insufferable
03:11:21 <itidus20> i think words divide conceptual space up in such a way that each concept is concise
03:11:39 <NihilistDandy> itidus20: Square
03:11:51 <NihilistDandy> Not a concise concept
03:12:15 <NihilistDandy> Unless you talk about squareness
03:12:16 <evincar> Except words don't divide conceptual space at all. Consider synonyms and homographs.
03:12:44 <evincar> Many words overlap, and most regions of conceptual space aren't covered by individual words.
03:13:00 <NihilistDandy> Some whole regions aren't covered at all, depending on language
03:13:05 <itidus20> oh humm
03:13:14 <evincar> Don't tell me you're a linguistic relativist, NihilistDandy.
03:13:20 <NihilistDandy> evincar: Never
03:13:40 <NihilistDandy> I blanch at the very idea
03:13:48 <evincar> (Although Spanish speakers are more likely to give a female voice to a cartoon character that is a table.)
03:13:59 <NihilistDandy> mesa
03:14:13 <NihilistDandy> Sounds like a girl's name to me, mang
03:15:07 <evincar> So I guess natural language does affect the way we think about the world, but in insignificant ways.
03:15:34 <evincar> Programming languages, on the other hand, have ridiculously high influence on problem decomposition strategies.
03:15:50 <NihilistDandy> Quite true
03:15:50 <evincar> There's a thesis someone should do, and probably has.
03:16:30 <NihilistDandy> Programming language all speak the same base language, though, English. A subset thereof, at least.
03:16:57 <NihilistDandy> So the differences are of a higher order, so the underlying language is secondary to the problem solving method
03:17:16 <evincar> Not all programming languages are English-based.
03:17:21 <NihilistDandy> Well, most of them :P
03:17:23 <evincar> Not in word order, nor in keywords.
03:17:31 <NihilistDandy> I shouldn't say mosty
03:17:33 <NihilistDandy> *most
03:17:46 <NihilistDandy> Many, and a large portion of the "major" languages
03:17:47 <evincar> Well, "most" is "more than half", so yeah, that's valid.
03:18:03 <NihilistDandy> evincar: Think of how many esolangs there are floating around
03:18:49 <evincar> I stand corrected.
03:18:55 <NihilistDandy> :D
03:18:56 <evincar> Odd place for me to be.
03:19:19 <evincar> Considering the room we're in. :/
03:19:22 <Sgeo> Dangit, there is a nail in my keyboard
03:19:23 <NihilistDandy> Haha
03:19:24 <itidus20> evincar: perhaps another way to word what i said is that words are imprecise tools which lack the precision of numbers
03:20:20 <itidus20> with numbers you can add a decimal point and seek out greater and greater precision
03:20:44 <NihilistDandy> Programming languages are an attempt to model computation, but because humans have finite mental capacity, each language models it in a uniquely incomplete way (barring derivative languages). They model it fully in theory, but in practice they favor different strategies and so are only efficient for certain classes of computations
03:21:09 <itidus20> to be fair though, numbers have limits especially irrational ones
03:21:12 <NihilistDandy> itidus20: You're using two different meanings of precision
03:21:55 <evincar> We're dangerously close to a discussion of Gödel numbering.
03:22:27 <coppro> Gödel numbering :(
03:22:29 <NihilistDandy> I LIVE ON THE EDGE, EVINCAR
03:25:34 <itidus20> i think of programming languages as being designed to be comprehendable by humans
03:25:48 <NihilistDandy> itidus20: What about Malebolge?
03:26:06 <itidus20> i think a lot of crap
03:27:12 <evincar> Mmm...male bulge.
03:28:12 <evincar> If I wrote a language called Male Bulge...
03:28:20 <NihilistDandy> You'd get a lot of attention
03:28:22 <evincar> ...I'd release my Male Bulge and encourage people to wrap their heads around it?
03:28:36 <NihilistDandy> And I'd have to respond with camlToe
03:28:42 <evincar> (read: incredibly contrived oral sex pun)
03:29:07 <NihilistDandy> And encourage others to implement your Male Bulge in my camlToe
03:30:28 <Sgeo> evincar, I think everyone got the joke
03:30:43 <NihilistDandy> Not lately
03:30:48 <NihilistDandy> T_T
03:30:52 <evincar> I'm not trying to be funny, I'm trying to be pathetic.
03:31:05 <evincar> Pointing out my own bad jokes is my strategy.
03:31:21 <Sgeo> Like Tara?
03:32:51 <NihilistDandy> You'll have to be more specific
03:32:59 <evincar> ¯\(°_o)/¯
03:33:28 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/FanFic/MyImmortal?from=Main.MyImmortal
03:33:38 <evincar> Oh, that piece of garbage.
03:33:51 <NihilistDandy> Oh, lol
03:34:08 <evincar> HER NAME ISN'T MARY SUE. EBONY'S NAME IS ENOBY.
03:34:08 <NihilistDandy> I had a friend of mine read that, and he got a headache and had to stop by the end of chapter 3
03:34:36 <evincar> I forget how far I made it...less than halfway.
03:34:43 <NihilistDandy> I read it all
03:34:44 <NihilistDandy> I had to
03:34:51 <NihilistDandy> "I was walking outside Hogwarts. It was snowy and rainy at the same time."
03:34:51 <evincar> I was going to. I really was.
03:35:25 <NihilistDandy> "Im good at too many things! WHY CAN'T I JUST BE NORMAL? IT'S A FUCKING CURSE!"
03:35:30 <NihilistDandy> I feel for you Enoby
03:35:44 <NihilistDandy> I identified with the main character
03:35:54 <NihilistDandy> I also have long ebony black hair with purple streaks and red tips that reaches my mid-back and icy blue eyes like limpid tears
03:36:04 <NihilistDandy> Totes me~
03:36:10 <NihilistDandy> Emphasis mine
03:36:28 <evincar> Damn. I bet all the other girls be jelly.
03:36:48 <NihilistDandy> So jelly, bro
03:36:59 <evincar> Das da kine.
03:37:28 <NihilistDandy> lol
03:39:51 <NihilistDandy> Their jst jelly abot how totly goffik i am
03:43:58 <NihilistDandy> "But da ballet could not kill u since u were form anodder time."
03:45:38 <evincar> Going back to my conlang, I was thinking of setting up a weird vowel system with unvoiced and ingressive vowels.
03:46:30 <evincar> So say [a i u] times those four possible qualities.
03:46:40 <NihilistDandy> lol
03:46:53 <evincar> Also ingressive fricative consonants.
03:46:59 <evincar> Just for consistency.
03:47:04 <NihilistDandy> Of course
03:47:18 <evincar> There would have to be air harmony, of course, or else words would be imbalanced.
03:47:59 <NihilistDandy> Euphony seems difficult. Japanese may have some pointers
03:48:06 <evincar> I admit I'm only doing this so I can come up with a cool writing system for it. :P
03:48:37 <NihilistDandy> lol
03:48:45 <NihilistDandy> You and every other conlanger evar
03:50:10 <evincar> Come on, phonetics is easy. Typography is the fun part.
03:50:32 <evincar> Also grammar and morphology. Vocabulary not so much.
03:50:56 <NihilistDandy> Vocabulary is the worst part
03:51:43 <NihilistDandy> Unless you make your grammar really really expressive
03:53:16 <evincar> Eh, in the realm of discourse, unlike in programming, you can't really reduce the language to a set of fundamental roots.
03:53:33 <lament> design a conlang with grammar so expressive that you only need one word.
03:53:44 <evincar> That's the problem that I have with philosophical languages...
03:54:01 <evincar> lament: Define "word".
03:54:38 <lament> root morpheme
03:54:48 <evincar> Because you could easily have a language with one lexeme.
03:54:53 <NihilistDandy> evincar: Right, but one person coming up with the thousands of lexemes needed to make a non-philosophical language usable...
03:54:56 <NihilistDandy> Ouch
03:55:12 <evincar> Ouch indeed.
03:55:56 <NihilistDandy> That's why most of my conlangs end during the honeymoon period while I'm still fussing over grammar and typography
03:56:13 <evincar> You could argue that a philosophical language with a perfect taxonomy, which presumably would be highly synthetic, would have only one (null) lexeme, and no roots.
03:56:14 <NihilistDandy> Then I make up a thousand words and want to die
03:56:52 <NihilistDandy> I could argue that, but it needs more syntactic sugar :D
03:56:52 <evincar> Start with aardvark and go.
03:57:20 <evincar> No thanks. I'm sweet enough.
03:58:46 <NihilistDandy> The joke, you see, is that I said "sugar", and sugar is sweet
03:59:13 <lament> evincar: don't argue it, design it
03:59:41 <evincar> It's not possible.
03:59:46 <NihilistDandy> Why not?
03:59:53 <lament> then die trying
03:59:58 <evincar> I'm not capable of decomposing the universe into a perfect taxonomy.
04:00:59 <NihilistDandy> Math alone leaves us ruined
04:01:08 <NihilistDandy> Damnable infinity
04:10:22 <evincar> Sigh. It's nice to have someone to miss, but not nice to have to miss that someone.
04:11:00 <NihilistDandy> Get a better scope
04:13:23 <evincar> You mean get a better perspective, or physically move?
04:13:44 <NihilistDandy> No, I mean buy a new scope
04:13:53 <NihilistDandy> As in rifle
04:15:40 <evincar> Well, that would offer me a better perspective on certain matters, to be sure.
04:18:08 <NihilistDandy> The heart is located conveniently in CBM
04:18:41 <evincar> Je me fabrique un cœur de pierre, pour devenir un grand garçon.
04:19:01 <evincar> I'm not being emo, that's just from a song I like. :P
04:19:47 <NihilistDandy> ha
04:20:37 <NihilistDandy> It's a neat lyric, I gues
04:20:39 <NihilistDandy> *guess
04:21:27 <evincar> "Tais toi mon coeur", by Dionysos. Good music video as well.
04:21:39 <evincar> I dunno how well you grok French.
04:21:43 <NihilistDandy> I made a joke about Forth to no avail. In fairness, it was just a lisp joke, so...
04:22:05 <NihilistDandy> evincar: Well enough. Not fluently, but proficiently.
04:22:14 <evincar> "May the Forth be with you" is a Lisp joke. ;)
04:22:23 <NihilistDandy> Exactly of that sort
04:22:32 <evincar> Figured.
04:23:10 <NihilistDandy> <[redacted]> [redacted], that's nice to know... once i made one of those questions in the FORTH group and i was beaten up by some guys, and then they started fighting each other! lol
04:23:25 <NihilistDandy> <NihilistDandy> [redacted]: Well, we're not going to Forth you to do anything you don't want to
04:23:59 <NihilistDandy> I wonder if there are any Lisp-agnostic Forth jokes
04:25:09 <evincar> Go Forth and prosper.
04:25:45 <evincar> I wrote the program in three different languages, but the Forth one was the best.
04:26:10 <evincar> (More historically accurate from what I remember.)
04:26:22 <NihilistDandy> Ha
04:27:23 <evincar> Those don't deserve a whole "Ha".
04:27:32 <evincar> Maybe a third of a "ha" each.
04:28:12 <NihilistDandy> I
04:28:50 <NihilistDandy> That's only funny with the right font
05:00:44 -!- evincar has quit (Quit: UP UP AND AWAY ME).
05:01:06 -!- oklopol has quit (Ping timeout: 264 seconds).
05:27:08 -!- GreaseMonkey has joined.
05:38:15 -!- TeruFSX has quit (Ping timeout: 260 seconds).
06:13:17 <Sgeo> I think I'm going to try Quassel
06:14:49 -!- Sgeo has quit (Quit: Switching IRC clients).
06:20:30 -!- Sgeo has joined.
06:21:47 <fizzie> I vaguely recall trying Quassel a year or so ago, and it was very crashy.
06:21:55 <fizzie> But maybe it was just bad luck.
06:26:20 -!- Sgeo has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
06:26:50 <fizzie> What, not so hot after all?
06:27:45 -!- Sgeo has joined.
06:29:13 -!- Sgeo_ has joined.
06:29:30 -!- Sgeo_ has quit (Client Quit).
06:37:13 -!- Sgeo has quit (Remote host closed the connection).
06:37:46 -!- Sgeo has joined.
06:38:50 <Sgeo> Ok, I think I can deal with this
06:42:38 <fizzie> Sounds like the bestest client, if it barely can be "dealt with".
06:43:00 <Sgeo> fizzie: what I'm having to "deal with" is mostly the different look
06:46:53 <fizzie> Also it's funny how Quassel's website is all "this uniqe feature [of doing the client/server model in a graphical app]" when as far as I can tell Smuxi did it a lot earlier.
06:47:10 <fizzie> In other news, it might have been Smuxi which I tried and found sucky, instead.
06:49:25 -!- Taneb has joined.
06:49:58 <Taneb> Well, my Facebook got hacked.
06:50:35 <fizzie> Isn't everyone's Facebook the same Facebook?
06:50:42 <Taneb> Yes
06:50:49 <Taneb> Facebook got hacked
06:50:51 <NihilistDandy> So, wait... is it just like using irssi as a bouncer and connecting with whatever you want, except it's all in the one program? I don't get it
06:50:52 <Taneb> And I was the target
06:51:33 <fizzie> NihilistDandy: It's pretty close to a bouncer except you can only connect to it with the program's own frontend, not any IRC client whatsoever.
06:51:34 <Sgeo> NihilistDandy: some convenience over that. Quassel is supposed to have some thing where scrolling automatically retrieves logs going all the way back
06:51:49 <Sgeo> But I'm not even using it that way
06:52:03 <NihilistDandy> Sgeo: That sounds like *one* convenience :D
06:52:12 <NihilistDandy> fizzie: That's a bit silly
06:52:41 <fizzie> There's a bit of kludginess involved in having multiple clients connected to the same bouncer, which one hopes they'd have eliminated, but those are all rather minor stuff.
06:52:52 <Sgeo> Also, I like that it remembers which channels I'm in for when I close it
06:53:11 <Sgeo> Strange, I _hate_ that sort of thing on desktop environments and web browsers
06:53:17 <Sgeo> But I think I'll like it here
06:59:12 <Sgeo> Testing, testing, 1 2 3
06:59:49 <fizzie> I like a manually configurable list-of-automatically-on-channels more than auto-remembering, but that's of course a matter of taste.
07:01:31 <Taneb> I really should try to read all the letters in a word and all the words in a sentence
07:01:50 <Taneb> Misread "Obama announces US deficit deal" as "Obama announced dead"
07:02:15 <NihilistDandy> WOW
07:02:18 <NihilistDandy> Hell of a misread
07:03:30 <Taneb> Also, I've had an idea for an esoteric programming language
07:03:44 <Taneb> None so far are based on L-systems
07:04:08 <Taneb> I'm going to make a language called Luigi
07:13:52 -!- BeholdMyGlory has quit (Remote host closed the connection).
07:14:13 -!- pitufoide has quit (Read error: Connection reset by peer).
07:14:30 -!- pitufoide has joined.
07:18:44 -!- lament has quit (Ping timeout: 252 seconds).
07:47:31 -!- BeholdMyGlory has joined.
08:44:33 -!- aloril has quit (Read error: Operation timed out).
09:00:16 -!- aloril has joined.
09:07:59 -!- monqy has quit (Quit: hello).
09:12:51 <Lymee> Taneb, would /// qualify?
09:16:33 <fizzie> I don't think it's quite the same thing, since it doesn't apply more than one replacement rule at a time. Admittedly it does replace all occurrences, unlike say Thue. (But even that is not done in an L-system-ish fashion.)
09:17:00 -!- Taneb has quit (Ping timeout: 260 seconds).
09:19:19 -!- Deewiant has quit (Ping timeout: 250 seconds).
09:20:34 -!- Deewiant has joined.
09:21:19 -!- oerjan has joined.
09:23:36 -!- olsner has quit (Ping timeout: 260 seconds).
10:08:49 -!- GreaseMonkey has quit (Quit: The Other Game).
10:13:56 -!- Taneb has joined.
10:14:05 <Taneb> Lymee: no
10:33:21 -!- Sgeo_ has joined.
10:33:42 -!- Sgeo_ has quit (Remote host closed the connection).
10:54:30 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
11:05:26 -!- oerjan has quit (Quit: leaving).
11:07:07 <coppro> guys I have a great idea for PHPJAVA
11:07:33 <coppro> the scoping operator is & since it's most like \ and . put together
11:20:53 -!- Patashu has joined.
11:26:05 -!- CakeProphet has joined.
11:33:25 <coppro> good news: my program works
11:33:30 <coppro> bad news: it's slow as hell
11:33:36 <Patashu> what does your program do?
11:33:51 <coppro> although it's probably just half that it involves iterating over powersets
11:34:03 <Patashu> sour about that O(2^n)
11:34:07 <coppro> indeed
11:34:18 <coppro> you are familiar with the game of life, yes?
11:34:21 <Patashu> yup
11:34:24 <Patashu> whatcha looking for?
11:35:03 <coppro> k. Define an eden as a pattern such that there exists no pattern such that applying the generation function gives that pattern
11:35:32 <coppro> Define an island as a pattern such that there exists no eden such that you can reach the island from that eden in a finite number of applications of the generation function
11:35:49 <coppro> i.e. an island has no eden predecessor
11:35:58 <Patashu> find any?
11:36:08 <coppro> How many islands are there on a w by h torus?
11:36:28 <coppro> Now, since we're on a torus, we can eliminate symmetries from the calculation
11:36:36 <coppro> but there are a lot of symmetries
11:36:59 <coppro> and my poor inefficient program is trying to calculate them rather naively
11:37:23 <coppro> by iterating over each possible pattern and its symmetries
11:37:31 <coppro> this is the most elegant approach, but is clearly utterly ridiculous
11:37:52 <coppro> as, for instance, the singleton pattern has w*h /translational/ symmetrical patterns alone
11:38:33 <coppro> really what I should be doing is starting from one pattern, add all its symmetries to a set
11:38:40 <coppro> pick the next pattern
11:38:44 <coppro> add it to the set of results
11:38:54 <coppro> and add it and its symmetries to the set of visited patterns
11:39:15 <coppro> and repeat until there are no more unvisited patterns
11:39:21 -!- Taneb has quit (Ping timeout: 260 seconds).
11:39:31 <Patashu> it'd still be O(2^n) unfortunately
11:39:57 <coppro> yeah, but I'd be able to reasonably calculate, say, 4x4
11:40:26 <Patashu> for 4x4 it'd be a speedup of something like 128 times?
11:40:37 <coppro> no more than that
11:40:55 <coppro> there are more symmetries
11:41:10 <Patashu> all the translationals * flip horizontal * flip vertical...flip diagonal too?
11:41:42 <Sgeo> Grah. In the channel list, Quassel uses for regular incoming chat the color that XChat used for pings
11:41:47 <coppro> flip diagonal, plus, in the case of a square, rotation
11:41:53 <coppro> by either 90 or 270 degrees
11:41:56 <Patashu> ah good point
11:42:04 <coppro> PLUS the translations of each flip and rotation
11:42:10 <Patashu> yeah, hence * and not +
11:42:43 <coppro> it becomes w * h * (6 if square, 4 otherwise)
11:42:52 -!- augur has quit (Remote host closed the connection).
11:43:18 <coppro> now do that redundancy 2^wh times
11:43:20 <coppro> and you're in trouble
11:44:52 <coppro> also I need to deal with the fact that such large numbers are simply damn difficult to manage
11:45:13 <Patashu> is this an open problem or some personal curiousity thing
11:45:31 <coppro> the latter, possibly the former
11:45:53 <coppro> it would be really nice if I could design something that didn't require creating a set of 2^wh elements
11:45:59 <Patashu> that would be n ice
11:46:30 <coppro> the main issue, really, is enumerating the patterns
11:47:43 <coppro> Sgeo: we're talking about the script for islands in GoL
11:47:54 <Sgeo> coppro: ooh, cool
11:48:21 <coppro> I suppose I could try only storing the canonical values
11:48:30 <coppro> also crud
11:48:32 <coppro> edens is broken
11:48:45 <coppro> two things to fix@
11:48:48 <Sgeo> We still haven't proven anything other than that for at least some size finite GoL boards, there are stranded oscillators?
11:48:58 <Sgeo> Or did we prove something recently?
11:49:23 <Patashu> idea:
11:49:25 <Patashu> use night and day instead of GoL
11:49:30 <Patashu> that way you have another symmetry, flipping 0s and 1s
11:49:34 <Patashu> 2* speedup
11:50:05 <Sgeo> Results in Night & Day may not necessarily apply to GoL. Does Night & Day have that "Easy predecessor" thing?
11:50:16 <Patashu> no clue
11:50:23 <Patashu> I was about to ask if night and day has interesting edens or not
11:51:55 <coppro> Sgeo: I'm working on the script to calculate all islands of a given size
11:52:07 <coppro> err, all islands on a torus of a given size
11:52:21 <Patashu> the torus is for the w*h speedup
11:52:31 <Sgeo> Patashu: Huh?
11:52:43 <Patashu> he can use translational symmetries on a torus
11:52:55 <Patashu> and only have to care about 1/w*h as many unique patterns as before
11:53:47 * Sgeo would be uncertain as to how to implement such a thing. Maybe calculating all possibilities and comparing?
11:53:52 <itidus20> is it meaningful to describe a single celled torus? :D
11:53:55 <Patashu> I pictured a directed graph
11:54:02 <Sgeo> itidus20: yes
11:54:07 <itidus20> it would kind of defeat the purpose but.. ya know.. its funny
11:54:13 <Patashu> it would be its own neighbor
11:54:15 <Patashu> ALL OF THEM
11:54:22 <itidus20> FFFFFFFUUUUUUUUUUUUU
11:54:23 <Patashu> talk about a multiple personality disordered CA
11:54:26 <Patashu> he makes friends with himself
11:54:29 <Patashu> all 8 of himself
11:54:38 <Patashu> he gradually goes insane and kills himself
11:54:51 <Patashu> next iteration, only an empty space was found on the crime scene
11:54:57 <Patashu> RIP little buddy
11:55:25 <itidus20> hahaha
11:55:38 <Patashu> if cellular automata was night and day this not happen :(
11:56:07 <Sgeo> Patashu: I'm a little unfamiliar with directed graphs
11:56:20 -!- MDude has joined.
11:56:25 <Patashu> sgeo: as in, you'd list every distinct pattern, iterate them once, and link them to the distinct pattern they become
11:56:38 <Sgeo> Ah
11:56:39 <Patashu> that way you can see which patterns (call them islands) are not on a graph with an eden in them
11:57:17 <Sgeo> ...wait, how does that help?
11:57:34 <Patashu> it might not
11:57:34 <Sgeo> An oscillator with period... wait, n/m
11:57:38 <Patashu> you could use it to find edens though
11:57:51 <Patashu> every pattern that has no pattern pointing to it is an eden
11:57:59 <Patashu> then, iterate each eden until it loops.
11:58:03 <Patashu> all patterns left over are islands
11:58:09 <coppro> ooooooohhhhh
11:58:13 <coppro> no wonder it wasn't working
11:58:26 <coppro> the inefficiency may have been related to this bug
11:58:39 <coppro> Sgeo: straned cycles ~= islands
11:58:55 <Sgeo> Don't even need to do that, if all possible patterns are represented, you have all iterations
11:59:44 <Sgeo> Iterating is just the same as finding what .. wait,
11:59:50 <Sgeo> I think I'm too tired and hungry for this
12:00:10 -!- boily has joined.
12:01:00 <coppro> k, I'm downgrading it from "fucking slow and a horrible space leak" to "goddamn slow"
12:01:21 <Sgeo> coppro: What language is it?
12:01:23 <coppro> oh wait derp derp
12:01:24 <coppro> Sgeo: haskell
12:01:29 <coppro> forgot something important
12:01:44 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:02:04 <coppro> wait no I didn't
12:02:27 <coppro> now I only calculate the canonical form for each pattern
12:02:43 -!- ais523_ has joined.
12:02:46 <coppro> I could change it to eat space instead of time
12:02:53 <Sgeo> How do you only calculate canonical forms?
12:03:07 <ais523_> it'd pretty much destroy the universe either way, wouldn't it?
12:03:07 <Sgeo> I can only imagine determining all forms, then comparing :(
12:03:13 <coppro> Sgeo: I mean for each pattern, I calculate it's canonical form and get on with my life
12:03:16 <coppro> ais523_: yeah
12:03:32 <coppro> ais523_: speaking of which, do you have anything to say about the "talking time" forum other than it's got LPs on it?
12:03:45 <coppro> *its
12:04:13 <ais523_> coppro: I only go there for the LP subforum
12:04:23 <ais523_> although I post there every now and then
12:04:24 <Patashu> let's plays?
12:04:25 <coppro> Sgeo: basically the options are "calculate the canonical form of every pattern and store each one" or "given a pattern, calculate all symmetries and remove them"
12:04:31 <coppro> ais523_: Yeah, I noticed
12:04:32 <ais523_> Patashu: yes
12:04:37 <coppro> I read through the MMBN thread
12:04:49 <ais523_> their IRC channel is weird, more or less everyone there seems to know each other in real life
12:04:53 <coppro> Sgeo: the problem is you're dealing with expoential growth either way
12:04:56 <ais523_> and I stopped going there as a result
12:05:28 <Patashu> Is there a certain kind of pattern that is never useful to consider?
12:05:33 <Patashu> Maybe the 4x4 case could shed light on it
12:05:33 <coppro> Sgeo: and you actually start to hit real size constraints (as in, sets can store only 2^32 elements in Haskell. That's enough, right?)
12:05:47 <coppro> Patashu: Well some patterns always are islands in some circumstances
12:06:15 <coppro> notably, an alternating pattern in a 1-by-n torus is stable
12:06:36 <coppro> and quite clearly an eden
12:06:47 <coppro> but really the 1-by-n case is degenerate
12:06:52 <coppro> so you're dealing with a different CA
12:06:56 <Sgeo> coppro, I think you could save space by expending a lot of time. Go to add a pattern. Recalculate all symmetries of all canonical forms, and compare, before possibly adding.
12:07:11 <coppro> Sgeo: The current algorithm is this:
12:07:14 <coppro> start at n = 0
12:07:23 <coppro> determine the pattern for n
12:07:28 <coppro> compute its canonical form
12:07:50 <Patashu> lol @ sets can only store 2^32 elements
12:08:00 <coppro> insert into the set
12:08:13 <Patashu> so you're going to be stuck at 6x6 with a naive algorithm
12:08:16 <coppro> go for n + 1
12:08:23 <coppro> Patashu: yeah
12:08:31 <coppro> Patashu: if I choose space consumption
12:08:51 <ais523_> wow, IE8 is annoying me already
12:08:55 <Sgeo> coppro, see if there are any set libraries in Haskell that don't have that limitation?
12:09:05 <coppro> if I go time, I can do it in space proportional to the number of symmetry groups
12:09:19 <coppro> Sgeo: I presume so, but I don't have the RAM for it anyway on this machine
12:09:22 * Sgeo ponders stupid space saving tricks
12:09:35 <coppro> and it's too late at night for me to find such a library and run it on a higher-powered machine
12:10:03 <Sgeo> Fit several ns into one number, store that number
12:10:04 <ais523_> hmm, I haven't checked the context of this conversation at all
12:10:12 <ais523_> but given Sgeo's involvement, I'm guessing it's the Game of Life
12:10:16 <coppro> Sgeo: That's just a hack around the limitation
12:10:22 <coppro> you still have N bits of data to store
12:10:22 <Patashu> why not store a set of sets
12:10:23 <coppro> ais523_: yeah
12:10:27 <Patashu> then you get 2^32 squared storage
12:10:41 <coppro> Patashu: again, hacking around limitations does not remove the fundamental space problem
12:10:52 <Patashu> I know, I'm just lolling at the thought of it
12:11:12 * Sgeo likes Patashu's hack better
12:11:34 <coppro> an interesting question is how many different symmetry groups there are for grids on a x by y torus
12:11:43 <coppro> does it have a succinct generating series?
12:11:50 <coppro> Oooh!
12:11:53 <Sgeo> ais523_, I wish I wasn't too tired to be involved in an actually useful way
12:12:06 <coppro> my code found two islands for 4x3, allegedly
12:12:21 <Sgeo> symmetry _groups_?
12:12:38 <coppro> Sgeo: yes
12:12:39 <Sgeo> Any canonical pattern should have at least 4xy ... thingies, possibly more
12:12:55 <Sgeo> Some of which may be identical, but whatever
12:12:57 <coppro> Sgeo: Not all unique
12:13:30 <coppro> equivalence classes is a better term
12:13:32 <coppro> let's use that
12:13:42 <Sgeo> I should go eat
12:14:10 <coppro> interesting
12:14:32 <coppro> the block in a corner is an island in a 4x3 torus
12:14:33 -!- cheater_ has joined.
12:14:44 <coppro> actually wait that's just any block
12:15:20 <ais523_> wow, I just got a ridiculous notification popup from the /browser/
12:15:25 <ais523_> I thought that was the system tray's job
12:15:45 <fizzie> They do "download completed" notifications often.
12:17:36 <coppro> the other is an s shape
12:17:52 <coppro> which is also stable
12:18:05 <coppro> interesting that no island I know of has period greater than 1
12:19:07 <ais523_> fizzie: this one was a "temporarily can't access Microsoft's anti-phishing servers, so we're not sure if Freenode is a phishing site or not"
12:21:12 <fizzie> ais523_: Possibly they just don't want to do notifications-by-the-system portably. It's a bit of a mess on Linux, I believe; there's a D-BUS-driven freedesktop spec but... (Also on OS X quite many things support Growl, even though it's very third-party.)
12:21:32 <ais523_> fizzie: oh, Microsoft are aware that that sort of notification shouldn't exist in the first place
12:21:48 <ais523_> I think they moved it from the system tray to IE just so that they could arbitrarily annoy me without having to break their own guidelines
12:24:41 <fizzie> If it's a related-to-a-single-site-you-just-navigated-to notification, the system tray (isn't it called "notification area" nowadays?) sounds like the wrong place for it even in a common-sense way.
12:25:59 <ais523_> it never was called the system tray, officially
12:26:10 -!- copumpkin has joined.
12:26:15 <ais523_> the name came about because the program responsible for it is called SYSTRAY.EXE
12:26:22 <ais523_> but it always was the notification area
12:29:35 <fizzie> Funnily enough, the X replacement is called "system tray" officially (in the FreeDesktop spec), but Ubuntu's new (not so new any more) "Ayatana Indicators" thing replaces it with an "indicator area".
12:29:55 <ais523_> heh
12:30:35 -!- augur has joined.
12:31:55 <coppro> Ooh, 4x2 has a period 2 island
12:32:14 <coppro> (actually let's call that an archipelago)
12:32:17 <Patashu> LOL
12:34:14 <coppro> oh god
12:34:18 <coppro> this is like number theory
12:34:21 <ais523_> anyone here have an idea why IE8 seems to change the color of tabs in a way which probably isn't random, but which I haven't figured out the pattern in yet?
12:34:43 <coppro> since any island can be repeated in a torus that its own divides into evenly to produce another island
12:34:50 <coppro> thus you have 'prime' islands
12:36:12 <fizzie> Isn't it so that by definition any predecessors of an island are also islands? If so, then if your block is one, the well-known block parents (pre-block, grin) should be too.
12:38:49 <ais523_> hmm, unexpected flamewars to find on the Internet: an argument over whether BT (the telecomps company) is/are singular or plural
12:39:11 <fizzie> ais523_: Tabs of the same color are part of the same "tab group" which you can (up to some degree) handle as a group. Don't know about the grouping, except in general terms opening one tab from another (with open-in-new-tab or ctrl/middle-click) should put the new tab into the same group as the original tab, while other methods of creating new tabs should possibly make new groups.
12:39:35 <coppro> fizzie: Islands are necessarily closed loops
12:39:44 <Sgeo> coppro, what if you set up a pattern that doesn't have a 5x5 hole, is in normal GoL a >p1 oscillator, yet the torus is just large enough that it won't interfere with itself
12:39:57 <ais523_> fizzie: ah, OK
12:39:57 <coppro> fizzie: In 4x3's case, because of the wrapping, there are no pre-blocks
12:40:07 <ais523_> does that explain why a tab group arbitrarily changes color within itself?
12:40:16 <coppro> Sgeo: dunno
12:40:16 <ais523_> as in, one of these groups was previously green and is now blue
12:40:37 <Sgeo> <coppro> Ooh, 4x2 has a period 2 island
12:40:39 <Sgeo> Didn't see that
12:40:53 <coppro> Sgeo: s tetronimo
12:41:23 <ais523_> bleh, I'm going to have to ask someone to explain what's going on in the US debt crisis to me
12:41:28 <coppro> it also has 2 period 1 islands, modulo symmetry
12:41:33 <ais523_> because I was offline for a few days, and when I come back, suddenly none of it makes sense
12:41:53 <coppro> ais523_: current status is an agreement has been reached between political leaders
12:42:04 <coppro> and everyone's hoping it will meet the approval of Congress as a whole
12:42:10 <ais523_> ah, OK
12:42:12 <fizzie> coppro: What do you mean no pre-blocks? Isn't http://p.zem.fi/hcaf a pre-block in a 4x3 torus?
12:42:16 <ais523_> is the agreement particularly sane?
12:42:57 <Sgeo> coppro, what oscillators have non-changing bounding boxes?
12:43:15 <coppro> fizzie: No, because the cell (0, 1) will come to life
12:43:29 <coppro> Sgeo: another excellent question
12:43:41 <coppro> Sgeo: wholly unrelated, of course
12:43:56 <Patashu> sgeo, I've seen oscillators with external framework and internal action
12:44:00 <Patashu> they have non-changing boundary boxes
12:44:18 <Sgeo> Better yet: Non-changing bounding boxes, and no 5x5 holes. Then, I _think_ there should be a torus on which it's an island
12:44:19 <coppro> often you get an oscillator that spits a cell or two which dies promptly
12:44:30 <fizzie> coppro: Which cell is (0, 1)?
12:44:46 <coppro> err, (1, 0), (x, y) counting from the bottom left
12:45:11 <coppro> actually wait that whole two columns goes on
12:45:23 <coppro> and then the thing starts oscillating
12:46:09 <fizzie> Oh, right, it's really that non-tall. What's the word. Short.
12:46:28 <Sgeo> I wonder if it's possible to prove that all islands meet that spec, or a slightly enlarged version of it
12:47:02 <coppro> the one I just pointed out has a changing bounding box
12:47:12 -!- Taneb has joined.
12:47:37 <Sgeo> Oh
12:47:44 <Sgeo> Changing how?
12:47:55 <Sgeo> I should probably open Golly
12:48:52 <Sgeo> Meh, can't do it
12:49:19 <Sgeo> Still think no-5x5 no-bounding-change is an easy way to find islands
12:51:50 <coppro> it moves
12:52:08 <coppro> it shifts itself halfway around the torus in one generation in both dimensions
12:52:23 <Sgeo> But the bounding box doesn't change in size, just in location?
12:52:48 <Sgeo> Hmm, thought I discarded that direction due to other considerations
12:52:51 * Sgeo slaps self
12:53:03 <coppro> two islands detected in 5x3
12:54:55 <coppro> both are stable
13:02:14 <ais523_> hmm, opinions on Java 7 miscompiling code?
13:02:28 <ais523_> in a way that comes up a lot in real projects (it affects at least Lucene)?
13:02:32 <fizzie> "Sounds like a good idea to me."
13:02:36 <Patashu> what?
13:02:40 <Patashu> miscompiling code?
13:02:43 <fizzie> "Will teach those programmers to behave themselves."
13:02:48 <ais523_> apparently one of the optimisations that's on by default is broken
13:03:00 <ais523_> and can cause SIGSEGV or silently give wrong results
13:03:10 <Patashu> which one?
13:03:16 <fizzie> It *is* very new.
13:03:41 <ais523_> -XX:UseLoopPredicate
13:03:59 <ais523_> Oracle discovered five days before release, and did the release anyway without even changing the default setting
13:04:06 <Patashu> what
13:04:39 <ais523_> it just seems out of character for them
13:04:51 <ais523_> I mean, it probably affects their own software too
13:04:55 <fizzie> ais523_: Well, you know. "You acknowledge that Licensed Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility."
13:05:22 <coppro> dammit
13:05:28 <coppro> I openend my old email archive for a reason
13:05:36 <coppro> now I haven't a clue what that reason is
13:07:27 <Patashu> 'The 7th release of Java today seems that introduced some nasty bugs caused by hotspot compiler optimizations miscompiling some loops. Code containing loops will propably be affected by this bug.'
13:07:32 <Patashu> Code without any loops however is A-OK!
13:07:42 <coppro> Patashu: recusive code!
13:08:14 <ais523_> oh, code I'm annoyed at having to write: (void*)(int)0
13:08:23 <ais523_> because I want the value of 0, stored in a pointer
13:08:26 <ais523_> not a null pointer
13:08:39 <ais523_> (and ofc, this is in x86-specific code anyway and NULL == 0 there, so it's all pointless anyway)
13:08:40 <coppro> haha
13:08:51 <coppro> you could also use a non-constant expression for 0
13:08:51 <Patashu> why do you need 0 as a pointer
13:08:57 <ais523_> also, it's been some of the most cast-heavy code I've ever written
13:08:59 <coppro> int i = 0; (void*)i
13:09:20 <ais523_> Patashu: because the x86 does not care whether its registers are holding pointers or integers
13:09:26 <ais523_> so any declaration for an x86 register is going to be wrong
13:09:36 <Patashu> aah
13:09:54 <ais523_> also, some syscalls (like ioctl and ptrace) take arguments that are generically 32-bit, and written as void* but sometimes you cast integers to void* and pass them there rather than pointers to the integers
13:11:01 <coppro> ais523_: union x86register { void * p; int i; };
13:11:02 -!- copumpkin has quit (Ping timeout: 240 seconds).
13:11:12 -!- copumpkin has joined.
13:11:29 <ais523_> and there's been a lot of casting for signedness and bitwidth too
13:11:41 <ais523_> coppro: it doesn't say that in sys/user.h
13:11:50 <ais523_> (the include file which has a big notice saying that it exists only for GDB)
13:11:58 <coppro> haha
13:12:49 <ais523_> at least I've more or less figured out what it's for, now
13:13:04 <fizzie> ais523_: Are you sure the cast helps? A null pointer is created when you have "An integer constant expression with the value 0", and an "integer constant expression" can involve "operands that are integer constants -- cast operators -- [that] convert arithmetic types to integer types".
13:13:14 <ais523_> bleh
13:13:39 <fizzie> I believe even "(void *)(int)0.0" gives you a null pointer.
13:13:44 <ais523_> I deleted that bit of code anyway, though
13:13:54 <ais523_> hmm, what about (void*)*""
13:14:04 <Patashu> I have an idea
13:14:06 <Patashu> subtract a pointer from itself
13:14:07 <Patashu> bam, 0
13:14:12 <Patashu> NULL-NULL ?
13:14:17 <Patashu> maybe NULL-(int)NULL
13:14:24 <ais523_> Patashu: that's a ptrdiff_t, not a (void*)
13:14:37 <ais523_> and NULL-(int)NULL quite possibly gives SIGSEGV
13:14:42 <ais523_> the mere subtraction
13:14:46 <Patashu> really?
13:14:49 <Patashu> you're not even dereferencing it
13:14:53 <ais523_> yep
13:14:56 <Patashu> then why...
13:15:00 <ais523_> pointer values must point to actual objects, or one past
13:15:02 <ais523_> at all times
13:15:12 <ais523_> and must point to an object and not be one-past if you dereference them
13:15:13 <Patashu> what part of the architecture checks?
13:15:26 <ais523_> I can easily imagine a VM for C checking that
13:15:37 <ais523_> depending on what pointers are in it
13:15:49 <fizzie> There are (supposedly) architectures where "address registers" are special, and loading an invalid value there (even without derefencing it) can blow up.
13:16:09 <coppro> it's also incredibly useful for the optimizer
13:16:19 <Taneb> I've had an idea
13:16:39 <coppro> since it allows to eliminate all code that would lead to invalid pointers
13:17:34 <Taneb> An esolang that is to Iota what Smalltalk is to Haskell
13:17:39 <coppro> e.g. void foo(int i) { int a[5]; int *p = a; p += i; } the optimizer can assume that i is from 0 to 5
13:17:49 <coppro> moreover, if lto is used
13:17:58 <coppro> it can assume that any caller of foo will have i in that range
13:18:04 <Patashu> object oriented iota?
13:18:27 <Taneb> Pretty much
13:18:33 <Taneb> Actually, Jot.
13:18:52 <ais523_> I find Smalltalk : Haskell :: X : ? pretty difficult to calculate for any X but Smalltalk
13:18:59 <coppro> yeah
13:19:09 <ais523_> as in, I can't visualise the operator that transforms Smalltalk into Haskell or vice versa
13:19:12 <ais523_> they're pretty different
13:19:41 <Taneb> Haskell is the archetypical functional language
13:19:52 <Taneb> Smalltalk is the archetypical object orientated language
13:19:53 <coppro> no it's not
13:19:58 <Patashu> iota is functional
13:20:05 <Patashu> so it's some kind of object oriented lambda calculus i guess
13:20:13 <fizzie> Regarding the earlier thing, *"" is not an integer constant expression, so that shouldn't give a null pointer (well, necessarily). (void *)'\0' is a valid null pointer, though.
13:20:14 <coppro> The archetypical functional language is lisp
13:20:22 <Taneb> Okay, fine
13:20:31 <ais523_> Haskell is quite unusual as functional languages go
13:20:35 <Taneb> This language will be to Jot what Smalltalk is to Lisp
13:20:38 <Taneb> That better?
13:20:40 <ais523_> and Common Lisp isn't even particularly be functional
13:20:47 <ais523_> certain subsets of Scheme are
13:20:50 <Taneb> ...
13:21:11 <Sgeo> be functional?
13:21:12 <ais523_> fizzie: well, *"" is a constant, and an integer
13:21:33 <ais523_> Sgeo: I'm tired, and I forget where I am in the parse tree halfway through sentences sometimes
13:21:37 <ais523_> I closed a " with a ) a few days ago
13:21:45 <Taneb> You get the point, though
13:22:00 <Taneb> It's going to be an entirely object orientated turing tarpit
13:22:15 <Sgeo> Like Glass?
13:22:15 <Patashu> How do you make an object oriented turing tarpit?
13:22:20 <Patashu> Glass is the opposite of a tarpit I thought
13:22:25 <Sgeo> Oh
13:22:27 <fizzie> ais523_: Yes, but it's not an integer constant expression.
13:22:31 <Sgeo> I just know it's an OO esolang
13:22:37 <ais523_> fizzie: fair enough
13:22:39 <Patashu> Glass is the really verbose one iirc
13:22:51 <fizzie> ais523_: Alternatively, (void *)(1-1) is okay too.
13:22:54 <Sgeo> Single letters are verbose?
13:22:59 <ais523_> Patashu: no, that's ORK
13:22:59 <Patashu> Hmmm
13:23:01 <Patashu> Right
13:23:15 <Taneb> I'll start with an anonymous generic superclass object
13:23:29 <fizzie> Or (void *)(0?0:0).
13:24:01 <Patashu> Glass looks cool
13:24:21 <ais523_> fizzie: gah, you've reminded me of all the "if 0 then skip else skip" I'm putting at the end of trivial ICA programs
13:24:29 <fizzie> Or maybe not. It speaks of allowed operands; maybe it allows operators too.
13:24:46 <ais523_> to work around a bug in GHDL, which when translated back into ICA terms means that programs will crash the backend compiler unless they contain at least one if statement
13:24:54 <Patashu> LOL ais
13:25:19 <fizzie> Anyway, string literals aren't not in the list of allowed operands, so *"" is very safe.
13:25:31 <ais523_> I'm glad it can be fixed with a simple if statement, at least
13:25:33 <Patashu> what's the value of *""
13:25:36 <ais523_> my earlier workaround was much worse
13:25:37 <ais523_> Patashu: 0
13:25:38 <fizzie> Patashu: 0.
13:25:47 <Patashu> why...oh, I get why
13:25:50 <ais523_> because "" is a zero-length string, so its first character is the end-of-string marker
13:25:54 <fizzie> You can write it as ""[0] if it's clearer that way.
13:26:03 <fizzie> Or 0[""] if you're feeling especially perverse.
13:26:06 <Patashu> LOL
13:26:09 <ais523_> you can write it like that even if it isn't clearer that way
13:26:28 <Patashu> how about *&*""
13:26:35 <ais523_> fizzie: when golfing C, it often saves a couple of characters to reverse a subscript because it can cut down on the parens you need
13:26:42 <ais523_> I'm not convinced &* works
13:26:46 <fizzie> &* is not kosher, no.
13:26:49 <ais523_> although I'm not convinced it doesn't either
13:26:54 <fizzie> Can't take an address of non-lvalue.
13:26:58 <fizzie> Or something.
13:27:00 <ais523_> but *x is an lvalue
13:27:05 <fizzie> Right.
13:27:05 <ais523_> that why I wasn't sure
13:27:09 <fizzie> Maybe it actually does.
13:27:29 <angstrom> **&"" should work, though
13:27:40 <Patashu> !c printf("blah");
13:27:42 <fizzie> It was either the *& or &* pair that you were explicitly allowed to completely remove.
13:27:49 <Patashu> what's the c interpreter again
13:27:51 <angstrom> *& iirc
13:28:07 <ais523_> yep, *& wouldn't do anything
13:28:07 <Patashu> think we're missing an egobot actually
13:28:24 <ais523_> yay, my BF Joust record is safe
13:28:34 <fizzie> Right, it is &* that you can remove without evaluating.
13:29:00 <fizzie> "If the operand [of &] is the result of a unary * operator, neither that operator nor the & operator is evaluated and the result is as if both were omitted, except that the constraints on the operators still apply and the result is not an lvalue."
13:29:32 <ais523_> heh, so you can't do &**x = 6;
13:31:15 <ais523_> bleh, I'm pretty sure I've found at least two kernel bugs, but one is likely to be impossible to reproduce
13:31:47 <ais523_> it ended up with a process that wasn't a zombie, but most of its /proc/n/* data gave errors when I tried to read it (even as root)
13:31:54 <ais523_> and it couldn't be killed, not even as root, not even with -9
13:32:00 <ais523_> and it was apparently being ptraced by init (the real init)
13:32:15 <ais523_> I'm not sure when it happened, I just found it lying around in top
13:32:17 <fizzie> &'s constraints on operands are: "either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object -- [no bitfields or 'register' objs]"; a string literal, though, isn't an lvalue, so you can't do &"" to begin with.
13:33:08 <fizzie> But the *&*"" should be acceptable.
13:33:23 <angstrom> makes sense, yeah
13:34:00 <ais523_> this reminds me of the proggit discussion on (a, b) > c, where a is an integer, b is a bitfield slice, and the > c gives different returns depending on the signedness of its left argument
13:34:18 <ais523_> apparently an automatic compiler fuzzer tool tried it on six different compilers, and got two different answers, each from three of the compilers
13:35:09 <Patashu> (a, b) > c
13:35:12 <Patashu> how is that valid C++
13:35:15 <Patashu> I don't undertand , I guess
13:35:17 <coppro> what language?
13:35:40 <ais523_> C
13:35:51 <coppro> oh right /that/
13:36:00 <coppro> I remember now
13:36:00 <ais523_> and the comma operator evalutes its left argument, then ignores it and returns the value of its right argument
13:36:07 <coppro> yeah yeah
13:36:10 <coppro> this came up on clang
13:36:17 <ais523_> well, it came up on all the compilers they tested
13:36:25 <ais523_> as they couldn't tell which behaviour was correct by majority vote
13:36:30 <coppro> well I mean development discussion
13:36:56 <coppro> it seemed to me relatively clear that the only reasonable reading of the standard had , preserve bit-fieldness
13:36:57 <Patashu> so what's the quote unquote right answer
13:37:22 <coppro> C++ also noticed this issue long ago and resolved it in that fashion
13:37:57 <Taneb> So, what happens if the left argument has IO
13:38:04 <ais523_> Taneb: then the IO gets done
13:38:07 <coppro> it is evaluated and discarded
13:38:11 <ais523_> that's part of the reason you might want to use ,
13:38:24 <ais523_> although more often, you do a side effect that changes local or global state than IO
13:38:40 <Patashu> I never think about using ,
13:38:46 <ais523_> e.g. using i++,j++ as the third argument to for
13:38:55 <Patashu> oh except for for loop updates
13:40:10 -!- ais523_ has left.
13:40:15 -!- ais523_ has joined.
13:42:34 <Taneb> I think my spec for Smallertalk is using to many regexes
13:42:52 <Patashu> can never use too many regexes
13:43:26 <coppro> this does not sense the make :/
13:43:50 <Taneb> (Hint: it's a BMW)
13:44:30 <fizzie> Oh, string literals *are* lvalues, since they designate an object; they're just not modifiable lvalues. So you can do a &"foo".
13:45:04 <Patashu> but isn't it possible they'll be inlined?
13:45:08 <ais523_> &"foo" is the same address as "foo", though? just a different type and size?
13:45:09 <coppro> fromList [fromList [Point 4 4 0 0,Point 4 4 0 1,Point 4 4 0 2,Point 4 4 0 3,Point 4 4 1 0,Point 4 4 1 1],fromList [Point 4 4 0 0,Point 4 4 0 1,Point 4 4 0 2,Point 4 4 1 0,Point 4 4 1 1,Point 4 4 1 3,Point 4 4 2 1,Point 4 4 3 0],fromList [Point 4 4 0 0,Point 4 4 0 1,Point 4 4 0 2,Point 4 4 1 0,Point 4 4 1 3,Point 4 4 2 1,Point 4 4 3 0],fromList [Point 4 4 0 0,Point 4 4 0 1,Point 4 4 0 2,Point 4 4 1 0,Point 4 4 2 1,Point 4 4 3 0,Point 4 4 3 3],
13:45:24 <coppro> ^ set of sets of points on a 4x4 torus that are in archipelagos
13:45:43 <coppro> which is exactly the set that are in islands
13:45:48 <coppro> so 4x4 has no stable islands, apparently
13:46:20 <fizzie> ais523_: Right; "foo" is the char[4]-typed object, which decays in most context into a char*; &"foo" is the pointer-to-char[4] address and no longer a lvalue. They both point to the same location in memory.
13:47:08 <ais523_> hmm, doesn't char[4] decay into char* in all contexts in which its value matters?
13:47:14 <ais523_> the only places it doesn't are metadata checks
13:49:06 <fizzie> Yes, in all expressions except for when it's the operand of the & or sizeof operator; or when in the initializer of a character array.
13:50:02 <fizzie> That is rather funny, though:
13:50:06 <fizzie> `run echo -e '#include <stdio.h>\n int main(void) { printf("%u %u %u\\n", (unsigned)sizeof "a", (unsigned)sizeof &"a", (unsigned) sizeof *&"a"); }' | gcc -xc -o ./tmp.tmp - 2>&1 ; ./tmp.tmp
13:50:07 <HackEgo> 2 8 2
13:51:13 <Patashu> Huh
13:51:14 <Patashu> It works
13:51:15 <ais523_> tmp.tmp is a weird temporary filename
13:51:18 <ais523_> I normally use /tmpt/
13:51:21 <ais523_> * /tmp/t
13:51:53 <Deewiant> I tend to use tmp or tmp.tmp for files in the cwd, /tmp/x otherwise
13:51:53 <fizzie> I didn't really recall what sort of file system it has visible there, so thought "." might be safest.
13:52:16 <fizzie> `run pwd
13:52:17 <HackEgo> ​/tmp/hackenv.17687
13:52:23 <fizzie> That looks quite autocleaned.
13:52:35 <Patashu> try using reserved words
13:52:41 <Patashu> you can deduce what file system it is
13:52:51 <Patashu> and then bust out the mad file system exploits and get root !!
13:52:57 <ais523_> wait, that filename has a space in?
13:53:01 <ais523_> or, rather, dirname?
13:53:13 <ais523_> "/ tmp/hackenv.17867"
13:53:18 <Patashu> I don't see it
13:53:21 <fizzie> I don't see a space there either.
13:53:34 <ais523_> hmm, this client must be mad
13:54:14 <fizzie> Anyway, it's inside that Plash thing, it fakes the filesystem-access library calls however it wants.
13:54:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:55:44 <ais523_> meanwhile, did you know that BSD have standardised exit codes for commands?
13:55:56 <ais523_> and that the standardisation covers some relatively unlikely events, but not some relatively common ones?
13:56:12 <ais523_> `run readlink /proc/self/fd/0
13:56:13 <HackEgo> pipe:[4783072]
13:56:38 <ais523_> hmm, I wasn't expecting that, but I suppose it's inevitable
13:56:43 <ais523_> I'm trying out things that caught my program out
13:56:52 <ais523_> but I haven't found many
13:57:11 <ais523_> I also wrote an execbomb, just for fun
13:57:44 <ais523_> it's like a forkbomb except with exec rather than fork, so it just does an infinite loop with a lot of kernel overhead rather than spamming processes everywhere
13:57:49 <fizzie> ISTR that Plash does the faked filesystem library calls by actually using sendmsg/recvmsg to do RPC with the hosting process, and completely disables the "direct" syscall access somehow, can't remember quite how. (There's a non-root-user chroot jail at least, but I think it also did something else.)
13:57:51 <ais523_> (also, I thought it'd help me track down a bug, but it didn't)
13:58:07 <ais523_> fizzie: probably PTRACE_SYSCALL, that's what I'm using
13:58:21 <ais523_> disallowing arbitrary syscalls or faking them is quite easy like that
13:58:32 <ais523_> also, turns out that _newselect does do something, I caught a program using it
13:58:36 <ais523_> as far as I can tell, it's identical to select
13:58:45 <fizzie> Yes, I was just wondering why it then bothers with a faked libc, but I guess it's easier to include arbitrary code in there that way.
13:58:48 <Deewiant> for (;;) execv("/proc/self/exe", argv); ?
13:59:33 <ais523_> fizzie: I'm not using a fake libc, so that I can handle arbitrary executables, no matter how insane
13:59:51 <ais523_> although I'm surprised at some of the insanity I've seen running it on random programs I had lying around
14:00:16 <ais523_> one of them even calls personality(2) for reasons I don't understand, I had to change from disallowing it to simply preventing it being used to turn on ASLR
14:00:22 <fizzie> `run readlink /proc/self/exe
14:00:23 <HackEgo> ​/usr/bin/python2.5
14:00:26 <fizzie> That was a bit funny.
14:01:18 <ais523_> (my mistake was that I have a symlink that I'm pretending is actually a character device, and forgot to stop readlink working on it)
14:01:33 <ais523_> I also have a regular file that I'm pretending is actually a character device
14:01:46 <ais523_> for /dev/fb0
14:01:56 <Patashu> what's personality for?
14:02:01 <ais523_> I actually got Wesnoth to run and produce graphical output
14:02:05 <ais523_> Patashu: mostly, it changes syscall numbers
14:02:24 <ais523_> for if you want to run an executable from a different OS that has syscalls similar to Linux's, but different numbers
14:02:32 <ais523_> but you can also use it to turn ASLR on or off
14:02:36 <ais523_> and a few other things too
14:02:37 <fizzie> ais523_: Couldn't you just have it be a /dev/null clone? Though I guess that's not much less to fake, just the type.
14:02:57 <ais523_> fizzie: mmaping /dev/null as shared does not produce useful results
14:03:39 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:03:58 <fizzie> Oh, you're actually letting the process to mmap it and then reading the graphics from the file?
14:04:01 <ais523_> yep
14:04:08 <fizzie> Nifty.
14:04:20 <ais523_> and then repacking the data into a PNG
14:05:54 <ais523_> it'd have been hilarious if I could just get it to operate on the data section of a bitmap directly
14:06:03 <ais523_> but that wouldn't allow for screen resolution changes
14:06:29 <ais523_> I also disguise a pty as a vt, but that's not all that surprising
14:07:50 <ais523_> oh, and /dev/input/mice is actually a FIFO
14:08:04 <ais523_> how many types of file do I have left to disguise as character devices?
14:08:18 <ais523_> directory could be a little hard, block device would probably be a bad idea
14:08:23 <fizzie> A Door.
14:08:28 <fizzie> (That's a Solaris thing.)
14:08:36 <ais523_> and things like doors and whiteouts, I don't know what they're for
14:08:39 <ais523_> (whiteouts are BSD)
14:09:40 <fizzie> Doors are some sort of IPC thing, you can register them, and then get invoked by other processes.
14:10:12 <ais523_> oh, I forgot sockets
14:10:26 <ais523_> (AF_UNIX sockets, that is, the ones that can be implemented inside a sandbox without going insane)
14:10:31 <ais523_> at least PulseAudio is trying to use them
14:10:52 <ais523_> (am I insane for wanting to get a copy of PulseAudio running inside this sandbox?)
14:11:08 <fizzie> I guess it depends on what you actually need the sandbox for.
14:11:31 <fizzie> D-Bus runs on Unix domain sockets (IIRC) and it's quite widely used.
14:11:57 <fizzie> Well, I guess it can run over TCP too.
14:12:03 <ais523_> well, any dependency of anything, in theory
14:12:17 <ais523_> so far, most of the dependencies have been reasonably sane
14:12:23 <ais523_> although seeing the internals of how SDL works worries me
14:13:02 <ais523_> (basically, it does everything in a loop which just calls nanosleep and gettimeofday alternately, and then when it likes the time of day calls select to see if any input has happened)
14:13:51 <ais523_> (also, it does, IIRC, 32768 ioctls in a row to grab the scancode/keyboard mapping, which really grinds ptrace to a halt)
14:14:23 <fizzie> I've taken a few peeks at its code when puzzling something out, and it's not the most cleanestly architectured thing there is.
14:15:03 <ais523_> there's something about a loop that /just/ contains nanosleep and gettimeofday that makes me angry
14:15:13 <ais523_> I mean, why wouldn't you just sleep for the amount of time you want to sleep for?
14:15:33 <fizzie> nanosleep provides no guarantees on how long it actually ends up sleeping.
14:15:39 <ais523_> it provides a minimum
14:15:58 <fizzie> No, it can easily be interrupted in the middle.
14:16:10 <fizzie> (Though you can of course notice that.)
14:16:14 <ais523_> oh right, but its third argument tells you how much time it has left
14:16:22 <ais523_> and its return value says it's happened, too
14:16:30 <fizzie> Does it at least call nanosleep with different values, or just some fixed small offset?
14:16:43 <ais523_> and even then, the only things that interrupt it are signal /handlers/ (not general signals)
14:16:47 <ais523_> small fixed offset
14:16:55 <ais523_> 1 millisecond, IIRC
14:17:00 <fizzie> Heh-eh.
14:17:06 <fizzie> I guess they don't trust their nanosleep.
14:17:07 <ais523_> but I get confused counting zeros
14:17:35 <ais523_> especially because most things my code does are in nanoseconds internally, in one place even picoseconds
14:17:49 <coppro> woo
14:17:54 <coppro> I pulled an all-nghter
14:17:58 <coppro> *nighter
14:18:32 <fizzie> I could understand checking gettimeofday and not relying the nanosleep timekeeping (there's delays involved if you just continue with the "leftover time" values too many times), but always sleeping the same amount of time is a bit silly.
14:18:48 <ais523_> (for pixel clock timings, which I'm not sure if anyone cares about but people are asking about, possibly to gain other information at the same time)
14:19:04 <ais523_> yep, I can understand a gettimeofday check to work out how long to sleep for
14:19:34 <ais523_> (nowdays there's also clock_nanosleep, which can be told to sleep until a specified absolute time, and gets rid of error-accumulation issues that way)
14:20:11 <ais523_> also, wow, Python is older than PHP?
14:20:14 <ais523_> I hadn't realised that
14:21:13 <ais523_> and they both predate Java?
14:22:04 <coppro> ais523_: don't start telling me that COBOL predates C now
14:22:13 <ais523_> that doesn't surprise me
14:22:30 <coppro> I have no clue if it's true
14:22:35 -!- cheater_ has quit (Ping timeout: 255 seconds).
14:22:44 <ais523_> most popularish languages were created in the chronological order that I expected them to have been created in
14:22:47 <coppro> Wikipedia says COBOL is 13 years the junior
14:22:50 <ais523_> but those relationships surprised me
14:22:56 <coppro> *senior
14:23:02 <ais523_> coppro: phew at that fix
14:23:07 <coppro> haha
14:23:25 <ais523_> I'm not sure of the relative age of COBOL and Algol
14:23:38 <ais523_> I'm guessing COBOL first, but the other way round wouldn't surprise me
14:24:43 -!- copumpkin has joined.
14:29:15 -!- BeholdMyGlory has joined.
14:31:37 <ais523_> ooh, Java 7 lets you catch multiple specific types of exception in one catch block
14:31:42 <ais523_> that'd be really useful if it got loops right
14:32:12 <coppro> link?
14:32:37 <ais523_> I don't have something that's more than a bare explanation and a code example
14:32:53 <ais523_> try { ... } catch (FooException | BarException ex) { ... }
14:33:34 <ais523_> also, http://download.oracle.com/javase/7/docs/api/java/util/Objects.html is freaking me out, it seems like a really bad idea
14:33:57 <ais523_> creating helper functions to propagate nulls is pretty much exactly what a good program doesn't need
14:35:21 -!- cheater_ has joined.
14:35:35 <coppro> eww
14:35:51 <coppro> to both
14:36:11 <coppro> also requireNonNull is more like an assertion
14:36:14 <ais523_> the first is useful if there are a set of exceptions that have to be handled the same way
14:36:16 <coppro> except that in Java you don't assert
14:36:17 <coppro> you throw
14:36:19 <ais523_> requireNonNull I'm fine with
14:36:37 <ais523_> although, it'd be hilarious if it threw a NPE on failure (I haven't looked at it)
14:36:55 <ais523_> oh wow, it does as well
14:37:04 <coppro> of course it does
14:37:08 <coppro> what else would it do?
14:37:09 <coppro> crash?
14:37:20 <ais523_> throw some other sort of exception, I suppose
14:37:30 <coppro> it's literally to just boilerplate
14:40:05 -!- pumpkin has joined.
14:40:13 -!- pumpkin has changed nick to copumpkin_.
14:41:02 -!- copumpkin has quit (Ping timeout: 240 seconds).
14:41:08 -!- copumpkin_ has changed nick to copumpkin.
14:45:12 <Sgeo> Gah
14:45:31 <Sgeo> Why do I feel this need to put everything I want to read ever onto my Nook instead of reading on the computer?
14:46:05 <ais523_> including IRC?
14:46:52 <Sgeo> Except for IRC. Although hmm
14:48:09 <itidus20> whats a Nook?
14:48:12 <itidus20> is it an ebook reader?
14:48:18 <ais523_> yes
14:48:23 <itidus20> ok heres the reason why.
14:48:39 <ais523_> I seem to remember that it was being anti-boycotted by a set of people recently who were pleased with what their makers were doing
14:48:41 <ais523_> but forget why
14:48:45 <itidus20> computers have resolutions like 1920x1080 or whatever...
14:48:53 <ais523_> (as in, they were buying them even though they didn't need them)
14:49:18 <itidus20> e-ink has huge resolutions bringing the system more in line with things like print
14:49:45 <itidus20> also,(good) ebook readers presumably don't have an annoying refresh rate which you can't really see conciously
14:50:17 <itidus20> low-res bothers the eyes, refreshes bother the eyes, bright light bothers the eyes
14:50:21 <Sgeo> http://www.theregister.co.uk/2011/04/27/barnes_and_noble_response_to_microsoft_suit/ is this related?
14:51:02 <Sgeo> itidus20, I don't think my eyes are that bothered by reading on the computer. I think what's bothering them is switching back and forth, which I'm doing a lot of now. Either that, or lack of sleep.
14:51:09 <ais523_> Sgeo: probably
14:51:22 <ais523_> if they're standing up to Microsoft, people will like them because of that
14:51:35 <itidus20> i didnt just make up these beliefs... they stress your eyes
14:51:41 <itidus20> whether you conciously care about it or not
14:53:42 <itidus20> software patents strike again
14:54:13 <ais523_> that's got to be at least three times, now
14:54:16 <ais523_> are they out yet?
14:55:22 <coppro> `addquote <itidus20> software patents strike again
14:55:23 <HackEgo> 556) <itidus20> software patents strike again
14:55:24 <coppro> dammit
14:55:26 <coppro> `revert
14:55:26 <HackEgo> Done.
14:55:42 <ais523_> wrong line?
14:55:46 <coppro> `addquote < itidus20> software patents strike again < ais523_> that's got to be at least three times, now < ais523_> are they out yet?
14:55:47 <HackEgo> 557) < itidus20> software patents strike again < ais523_> that's got to be at least three times, now < ais523_> are they out yet?
14:56:29 <itidus20> A king just kills his enemies regardless of the laws. It is somewhat naive of the open source community to think that the laws will protect them. However, it makes them good men(and women) and true.
14:56:33 <ais523_> (also, I really enjoy baseball for a non-American, although it's hard to find on TV for that reason; I don't particularly care about supporting any particular team, though)
14:56:55 <ais523_> itidus20: I think in the UK, it's theoretically impossible for the Queen to commit murder
14:57:02 <itidus20> And they are protected by the laws so long as those same laws benefit the giant commercial businesses
14:57:06 <ais523_> although if she tried, no doubt the law would be changed, or at least she'd be forced out of office
14:57:41 <Taneb> The Queen is not subject to the law of the United Kingdom
14:57:49 <Taneb> Because she /is/ the United Kingdom
14:57:53 <coppro> Yes she is
14:58:16 <ais523_> IIRC she can't commit crimes, though, there's some sort of royal exception
14:58:49 <itidus20> But... how to nintendo-ize this idea of the enemy bound by its own laws and turn it into a game.
14:58:54 <coppro> I know she can't go around killing people either
14:59:03 <Sgeo> I wonder how much of my Nook usage is just me playing with my new toy
14:59:22 <itidus20> coppro: i ain't gonna say another god damn thing lest i commit some kind of treason
14:59:26 <itidus20> being in australia and all
14:59:38 <itidus20> lol
15:00:27 <Taneb> The Queen is theoretically allowed to prevent the Parliament from passing a bill
15:00:41 <Taneb> However, the last time this power was utilized was 1704
15:00:44 <ais523_> Taneb: she still has to sign them, but she's allowed to sign them by default nowadays
15:01:03 <ais523_> there's a law that says that if she doesn't express an opinion, some royal secretary can go sign them on her behalf
15:01:10 <ais523_> so she'd have to go to the effort of telling them not to
15:01:46 <itidus20> Ok... So... the category of game I propose is one in which only one team can create laws. But they also have to be bound by them.
15:02:15 <Taneb> So... it's kinda like Nomic?
15:02:19 <itidus20> Like.. suppose your enemy was on the ground and you were in the air.. you could create a law "anyone who is on the ground dies"
15:02:27 <itidus20> but then.. you would have to avoid the ground
15:02:38 <ais523_> it'd be really easy to create loopholes
15:02:46 <ais523_> unless the set of laws you could create were really restricted
15:02:53 <itidus20> hmm..
15:03:02 <itidus20> also..
15:03:12 <itidus20> the game would have to be continuous...
15:03:20 <itidus20> er hmm...
15:03:24 <itidus20> i dunno how..
15:03:30 <coppro> this reminds me of that hilarious state where the governor was allowed to veto individual words
15:03:50 <itidus20> most of the ideas i discuss have been bouncing around in my head for ages
15:03:55 <coppro> and one crafty governor rewrote a bill by vetoing all be the words he wanted
15:04:01 <itidus20> this is no exception. i just never said it this way
15:04:13 <ais523_> coppro: reminds me of italicisation scams in BlogNomic
15:04:15 <fizzie> ais523_: 7 also adds that one typing-saver (that IDEs I guess generally autocomplete), you can write Map<Long,Set<Of<Types>>> map = new HashMap<>(); without having to repeat the parameters.
15:04:23 <ais523_> fizzie: I like that one too
15:04:38 <ais523_> although generally speaking it's not too bad even in 6 with the sort of generic uses I mostly write
15:05:08 <itidus20> Since I was a child I have wanted to be a game author. So I like to think my ideas are nice. >:-)
15:05:43 <Taneb> ...Anyone up for Nomic?
15:05:50 <itidus20> ais523_: loopholes would be ok so long as the game doesn't reach a stalemate.
15:06:17 <fizzie> ais523_: And strings in switch() cases done using .hashCode() + comparisons internally.
15:06:18 <ais523_> Taneb: I'm a player of Agora, and so are several other members of this channel
15:06:26 <ais523_> fizzie: that's a sensible way to do it, isn't it?
15:06:26 <itidus20> actually.. in the scenario example i gave..
15:06:30 <MDude> I'm guessing laws wouldn't be able to refer to teams directly?
15:06:38 <Taneb> Hmm...
15:06:51 <itidus20> MDude: yeah thats the catch...! it's meant to reflect the real world in that sense
15:07:08 <ais523_> it's basically impossible to word a restriction like that and have it work
15:07:18 <ais523_> referring to teams indirectly is very easy
15:07:31 <fizzie> ais523_: Yes, and it'd be really quite verbose when done explicitly.
15:07:33 <coppro> http://en.wikipedia.org/wiki/Frankenstein_veto
15:07:53 <MDude> What do you mean by inderect?
15:08:19 <MDude> Because stupid quine stuff still seems pretty direct for the purpose of game rules.
15:08:38 <itidus20> by the way.. in my head this is an arcade game side scroller
15:08:45 <itidus20> that is where i differ with this room :D
15:09:04 <itidus20> but yeah, i appreciate text games too.. and natural language games
15:09:06 <ais523_> itidus20: heh, that's an interesting juxtaposition
15:09:08 <itidus20> and whatever
15:09:17 <ais523_> it'd be unsual as nomics go
15:09:42 <ais523_> MDude: things like giving everyone on the other team a token, then killing everyone with a token
15:09:46 <itidus20> "<itidus20> Since I was a child I have wanted to be a game author. So I like to think my ideas are nice. >:-)" wahahaha
15:10:08 <itidus20> ais523_: hmm.... oh gosh i see..
15:10:19 <itidus20> hahahah....
15:10:36 <ais523_> or just giving /everyone/ a token, then dropping your own token before the enemies can react
15:10:39 <itidus20> the juxtaposition helps in that regard... since an arcade game is a finite system
15:10:40 <ais523_> then killing everyone with a token
15:10:48 <ais523_> yep, I think a finite system would work best
15:10:56 <ais523_> the issue would be to prevent the game feeling restrictive
15:11:04 <itidus20> well
15:11:13 <itidus20> ok maybe it wouldn't be finite
15:11:28 <itidus20> you could spawn things (gets nervous)
15:11:53 <itidus20> I mean.. if you can declare that the ground kills people... theres really no limits on what you can declare
15:12:02 <itidus20> you can certainly declare someone has a token
15:12:26 <itidus20> ermm.. yeah.. i will stop talking for a moment and chill
15:12:53 <itidus20> When mexicans enter america, and get on welfare... this is what i believe is happening
15:12:59 <ais523_> this problem is probably unsolvable
15:13:01 <ais523_> but if you do solve it, the resulting game will be great
15:13:04 <itidus20> that is my explanation, represented as a game
15:13:28 <itidus20> so who does usa have to blame for it
15:13:30 <itidus20> ya know
15:13:40 <itidus20> they wrote their own friggen laws
15:14:50 <itidus20> ie "anyone on the ground heals their health"
15:17:14 <itidus20> ais523_: i tried writing up a game based on pennymatching... it just wouldn't click right..
15:17:22 <MDude> Would the laws be written as the side scroller is being played, or between rounds?
15:17:25 <itidus20> the answer is that games don't need to be resolved
15:17:37 <itidus20> MDude: while being played.. well it could be any kind of game
15:18:30 <ais523_> competitive Pokémon reminds me of pennymatching, but there's too much randomness in it to fit your criteria
15:18:58 <itidus20> pennymatching is probably ok... i just haven't cracked how to make it work as a game
15:19:48 <itidus20> my head is full of fallacies and misconceptions, and overanalysis...
15:19:53 <itidus20> whats the other side of my brain
15:19:56 <itidus20> what can it do :-s
15:20:07 <MDude> I think I already thought of how it would work as a game, I just dind't know it was already called penny matching.
15:20:08 <itidus20> i need to try them both in more balance
15:21:16 <itidus20> I'm writing up a lot of my ideas in an open office document tonight
15:22:04 <MDude> Well I guess it wouldn't be based on it exactly.
15:24:09 <itidus20> oh pennymatching? i gave up on this idea but i'll spell it out.. A guy with a big slow sword vs a guy with a small fast sword. They choose to attack high or low. If they attack at the same height the big sword smashes the small sword. If they attack different heights the small sword makes contact first decisively.
15:25:08 <itidus20> An amusing narrative to accompany an otherwise direct rendition of pennymatching.
15:25:39 <MDude> I was thinking of having a strategy game like stratego, where different units have different values.
15:25:54 * Sgeo remembers getting a Stratego set as a gif
15:25:56 <Sgeo> gift
15:26:00 <Sgeo> Never played
15:26:07 <ais523_> itidus20: you probably need more than two options to make it work as a game
15:26:12 <MDude> The penny matching would be used to decide who wins when units of the same type fight.
15:26:15 <ais523_> any even number would do
15:26:41 <itidus20> ais523_: i spent hours playing with the idea. im letting it go for now
15:26:54 <ais523_> fair enough
15:26:58 <itidus20> hehehehe
15:27:12 <ais523_> oh no, I just realised that if you become a game dev, you're probably going to have to learn C++
15:27:35 <Taneb> Unless he makes Java or Flash games
15:27:40 <Taneb> Or HTML5 + Javascript
15:28:02 <itidus20> i worked out the 16 possible rulesets for pennymatching, and wrote up a scenario for each one...
15:28:14 <itidus20> but there were lots of problems.. and the whole idea was just as bad as the one i posted
15:28:33 -!- ais523_ has quit (Quit: Page closed).
15:28:45 <MDude> I don't think it'd be much of a game by itself.
15:29:10 <itidus20> then i started to abstract out the flags
15:29:28 <MDude> But it's a nice thing to use wherever you want to prevent ties in a non-deterministic game.
15:29:37 <itidus20> like a flag of whether the player has a big or a small sword... and whether the sword is sheathed.. and whether he is thrusting or swinging it
15:29:41 <MDude> Or pseudo-non-deterministic, anyway.
15:29:57 <itidus20> i really did spend hours on it
15:30:08 <itidus20> but i had to stop somewhere
15:30:44 <itidus20> I realized then and there that Nash Games doesn't equate to Fun Games
15:31:09 <itidus20> You don't play a Nash Game for fun... you play it as part of life
15:31:53 <itidus20> They can be incorporated etc
15:32:13 <itidus20> But theres a reason that noone has released a book of Nash Games Children's Edition
15:33:21 <itidus20> Ok I went a bit far there.. They can be fun of course, or pennymatching wouldn't exist
15:33:48 <itidus20> But in general it's not a motherlode of fun.
15:34:45 <itidus20> I didn't actually activate my creative side when thinking it up. That aspect of my brain needs to come to the fore a bit more.
16:03:05 -!- MDude has quit (Ping timeout: 252 seconds).
16:07:51 -!- nisstyre_ has joined.
16:08:21 -!- Nisstyre has quit (Ping timeout: 255 seconds).
16:08:52 -!- MigoMipo has joined.
16:09:42 -!- nisstyre_ has quit (Client Quit).
16:10:20 -!- Nisstyre has joined.
16:15:17 -!- pumpkin has joined.
16:16:11 -!- copumpkin has quit (Ping timeout: 250 seconds).
16:23:00 -!- lament has joined.
16:24:17 <Taneb> Well, it's tipping it down
16:25:31 -!- pumpkin has changed nick to copumpkin.
16:26:08 <Taneb> I hope Elliott doesn't get caught outside
16:28:11 <itidus20> so im replacing my personal wiki with an openoffice document with a contents page probably
16:29:33 -!- esowiki has joined.
16:30:23 -!- esowiki has joined.
16:31:08 -!- esowiki has joined.
16:31:48 -!- esowiki has joined.
16:32:34 -!- esowiki has joined.
16:33:14 -!- esowiki has joined.
16:33:49 -!- esowiki has joined.
16:34:34 -!- esowiki has joined.
16:35:19 -!- esowiki has joined.
16:36:04 -!- esowiki has joined.
16:36:04 -!- glogbot has joined.
16:36:07 -!- HackEgo has joined.
16:36:07 -!- EgoBot has joined.
16:36:40 <Sgeo> Gregor is already here
16:36:56 <Sgeo> ...dammit, that joke is a lie
16:37:24 <itidus20> The joke, is in your pants.
16:37:33 <itidus20> oops
16:37:41 <itidus20> I screwed up that line
16:38:01 -!- Gregor has joined.
16:38:28 -!- Gregor has changed nick to Guest63017.
16:39:44 -!- TeruFSX has joined.
16:40:12 <itidus20> I'm feeling too tired to read my own typing. Maybe I am actually tired.
16:43:15 -!- ais523 has joined.
17:07:28 <itidus20> regarding that Nomic like game I discussed earlier, there are parallels with the force. Since it is obvious noone can use the force to fly.
17:08:01 <itidus20> They have to take objects like pillars and throw them as projectiles.
17:08:17 <Taneb> But by one of Newton's laws, I think it's the third one
17:08:32 <Taneb> They can throw a clump of air with equal mass to themselves downwards
17:08:34 <itidus20> I haven't studied it in depth though. I was just guessing there.
17:08:36 <Taneb> And ascend
17:09:20 <itidus20> ok so like you mean, when luke was raising the spaceship out of the swamp, he could have been sitting on it
17:09:28 <Taneb> Yes
17:09:31 <Taneb> Ish
17:09:35 <Taneb> Well, no
17:09:36 <itidus20> thats an interesting idea
17:09:39 <Taneb> But that has a similar effect
17:09:55 <Taneb> He could do that force headstand
17:10:04 <itidus20> oh wait i forgot
17:10:27 <itidus20> he DID levitate ..............oh man i forgot i forgot.. he levitated C3p0 on the chair
17:10:39 <itidus20> it was a robot
17:10:43 <itidus20> hence
17:10:50 <MDude> What wasn't himself, though.
17:10:59 <itidus20> i mean.. a robot is inorganic
17:11:16 <MDude> Levitating other people would be different, I think.
17:11:19 <Taneb> And in the prequels, everyone was doing stupid force backflips everywhere
17:11:21 <itidus20> so he was able to raise c3po in the air on the chair
17:11:26 <MDude> Though it would mean two people could fly together.
17:11:45 <itidus20> doesn't the whole fucking series rest on the idea that if you fall down a hole you can't fly out?
17:11:50 <itidus20> :D
17:12:11 <itidus20> think of it.. luke had to cling for dear life at cloud city
17:12:36 <Taneb> Maybe he had put on weight?
17:12:56 <MDude> I tihnk part of it is that you need deep concentration to do lift stuff.
17:13:17 <itidus20> well whether the reasons are secret or not.. it is clear that you cannot fly
17:13:20 <MDude> Though I guess he'd have enough time if he was jsut hanging there.
17:13:57 <itidus20> even yoda can't fly
17:14:06 <MDude> Yeah, I haven't seen anyone just sailing through the air.
17:14:18 <itidus20> i have been thinking about this for quite some time :P
17:15:24 <itidus20> So he can make robots fly if they are sitting on a chair... he demonstrated that
17:15:50 <itidus20> presumably he could have made him float too... but he was trying to trick them into thinking c3po was a god
17:16:05 <Taneb> It worked, too
17:16:51 <itidus20> its surely no coincedence.. this emphasis on levitating the spacecraft in the swamp... and then not being able to fly
17:17:44 <MDude> I remember the Yoda says something about not being too reliant on force powers.
17:18:05 <itidus20> I havent seen number 3 yet
17:18:11 <itidus20> but i know a lot about it
17:18:27 <MDude> Or someone who teahces force stuff said it.
17:19:07 <MDude> I think making a momentary jerk at something might be a lot easier than a sustained hovering.
17:19:15 <MDude> Hence why they can jump usper high.
17:20:05 <itidus20> anakin was super badass and could choke you..
17:20:13 <quintopia> it's simple: the force makes no sense!
17:20:21 <itidus20> it seems that you need a lot of power to choke someone with the force
17:20:21 <MDude> Maybe they have a feild around themselves that needs to be anchored to the ground or whatever.
17:20:41 <itidus20> noone else ever used the force as a melee weapon
17:20:49 <itidus20> except anakin
17:21:10 <Taneb> He was a dick
17:21:17 <itidus20> he can punch you with the force
17:21:21 <MDude> Well the main three mvoies only have the two evil force users.
17:21:21 <itidus20> he is the only one i think
17:21:34 <itidus20> he can rain fists down on your ass
17:21:44 <Taneb> WITH HIS MIND
17:21:45 <itidus20> but that seems to depend how weak you are
17:22:43 <MDude> Yoda did move the X-Wing, but it wasn't really that far of a distance.
17:22:54 <MDude> Maybe the difficulty of lift increases with fligth time.
17:22:57 <itidus20> MDude: they can move inorganic objects
17:23:12 <itidus20> the point is the inorganicness
17:23:21 <itidus20> i dont know which scene you mean though re: xwing
17:23:26 <MDude> I don't see how they can't lift organics.
17:23:29 <Taneb> What about Darth Vader squishing people's necks?
17:23:33 <itidus20> thats the whole topic man
17:23:35 <MDude> The one where it's lifted form the swamp.
17:23:58 <itidus20> Taneb: well.. he is applying pressure like a choke
17:24:25 <itidus20> he can't actually control the guys neck.. only choke it
17:24:45 <itidus20> maybe its partial control cos anakin is so strong with the force
17:24:48 <MDude> Maybe it isn't purly an issue of being able ot grab.
17:25:02 <itidus20> yeah true
17:25:13 <MDude> It might be that organic stuff damages too easily
17:25:17 <Taneb> brb
17:25:22 <itidus20> Taneb: well i derived the fact he could punch from the fact he could choke
17:25:28 <MDude> WIth an X-Wing, you jsut pull on the metal frame and there you go.
17:25:31 <itidus20> even though he never used such punches
17:25:53 <MDude> With a human you need ot make sure not to dislucate the squishy innards.
17:26:04 <itidus20> MDude: also the fact that everyone has midochlorions in them... they might not act directly on each other
17:26:32 -!- shachaf has quit (Ping timeout: 240 seconds).
17:26:39 <itidus20> or something like that
17:27:16 <MDude> Next time I can get to them, I'll have to check my Star Wars D20 books on the subject of what the force cana nd can't move around.
17:27:31 <itidus20> :-D
17:27:43 <quintopia> the dark side is more powerful, obviously
17:27:43 <quintopia> at least when it comes to accomplishing violence
17:28:24 <ais523> perhaps it's more flexible
17:28:32 <ais523> the reason the light side is so much harder to use is that it's a tarpit
17:28:41 <ais523> and the dark side actually has useful primitives
17:28:52 <itidus20> but you pay a price for the power of the dark side
17:28:59 <quintopia> have you ever considered that all the force is just jedi mind tricks...persistent illusions of sights and sensations...
17:29:03 <ais523> lack of referential transparency?
17:29:08 <itidus20> or do you?
17:29:20 <itidus20> i mean.. anakin was ok until he got lava-ized
17:29:56 -!- Taneb has quit (Ping timeout: 260 seconds).
17:38:44 -!- shachaf has joined.
18:30:17 -!- oerjan has joined.
18:36:36 -!- FireFly has joined.
18:36:57 -!- Sgeo has quit (Read error: Connection reset by peer).
18:42:52 <ais523> idea for a sequence S: S[1] = 1, S[n+1] = value someone who doesn't know about S would guess for S[n+1] given S[1]..S[n]
18:42:57 <ais523> umm
18:43:01 <ais523> idea for a sequence S: S[1] = 1, S[n+1] = value someone who doesn't know about S would guess for S[n+1] given S[1]..S[n], plus 1
18:44:04 <Deewiant> You can use e.g. http://koti.kapsi.fi/jpa/stuff/other/epsilon/zizzo.cgi to generate that programmatically
18:44:30 <ais523> heh, it's already been thought of?
18:44:38 <ais523> or is it a sequence guesser?
18:44:42 <Deewiant> The latter
18:44:52 <Deewiant> (from http://www.ohjelmointiputka.net/kilpa.php?tunnus=alyot )
18:45:25 <itidus20> i knew a haskell guy who wrote some kind of arithmetic sequence guesser
18:45:47 <ais523> the thing is, after a while they'd probably guess the definition of S
18:45:52 <ais523> and it has to be higher by 1 even allowing for that
18:46:40 <itidus20> so its a sequence based on human nature?
18:46:53 -!- Guest63017 has changed nick to Gregor.
18:47:04 <itidus20> did you have the idea that lots of people would add numbers to it blind?
18:47:13 <itidus20> or am i reading this all wrong?
18:47:37 <ais523> itidus20: well, I think they'd stop being blind after a while
18:47:44 <ais523> and that is also accounted for by the sequence
18:47:49 <ais523> so, yes, human nature is involved
18:48:12 <itidus20> ais523: i know what you should do with this idea
18:48:26 <itidus20> that random anonymous text chat website
18:48:35 <itidus20> i forget its name
18:48:40 <ais523> no, that's unlikely to be a good use for it
18:48:48 <itidus20> you could just show the sequence to random people and wait for a number
18:48:54 <itidus20> and then build it up in that way
18:50:18 <itidus20> ok i presented a random human being with a "1"
18:50:26 <itidus20> they are mulling it over
18:52:35 <itidus20> "You: 1 Stranger: hi Stranger: asl? You: ok which number comes next, given: 1" -- didn't go so well
18:53:09 <ais523> I didn't think it would
18:53:20 <itidus20> however...
18:54:38 <oerjan> 1,3,6,11 is the first terms i get by introspection
18:55:40 <oerjan> but i have no obvious "would guess" for the next term
18:56:07 <itidus20> "You: 1 Stranger: 2 You: 1,2 You: 1,2,? Stranger: 3,4 ?? You: 1,2,3,4,? Stranger: 1,2,3,4,5,6,??? You: 1,2,3,4,5,6,? " and not ended yet
18:56:17 <oerjan> itidus20: no!
18:56:23 <itidus20> am i doing it wrong?
18:56:31 <itidus20> lol
18:56:39 <oerjan> yes. after he answers 2, you should do 1, 3
18:57:16 <fizzie> oerjan: I'd go with 18 to your "1,3,6,11," -- it looks like the partial sums of primes.
18:57:28 <oerjan> ah.
18:58:07 * oerjan swats fizzie for suggesting 1 is a prime -----###
18:59:08 <fizzie> oerjan: Well, I was mostly going for "2, 3, 5, ... e.g. primes as the differences between the numbers", but it wasn't as concisely stateable.
18:59:21 <fizzie> And it leaves the starting point of 1 a bit arbitrary.
18:59:36 <oerjan> ok.
19:00:31 <oerjan> hm OEIS sorted on relevance doesn't look good for this
19:00:34 <itidus20> I told them the line in question "without a username" to relieve some of the curiosity which i probably only imagined they had
19:00:50 <oerjan> (it gives 1, 5, 20, 70, 240, 810, as the first result for "1")
19:00:51 <itidus20> i know it could be googled but meh
19:01:27 <oerjan> eek sorting by references gives the _prime numbers_
19:02:25 <oerjan> ok at least 1,3,6 gives the triangle numbers
19:03:13 <oerjan> fizzie: heh OEIS went with 19 for 1,3,6,11 :P
19:03:38 <oerjan> (Fibonacci(n+3) - 2)
19:04:17 <ais523> so clearly the best next element is actually 20
19:06:04 <oerjan> which gives 2^n + n, next element becomes 38
19:06:32 <oerjan> OEIS gave up on 1,3,6,11,20,38
19:06:43 <ais523> clearly, it needs to contain /this/ sequence
19:06:49 <ais523> and increment numbers in it on every pageview
19:06:57 <oerjan> XD
19:08:00 <oerjan> ok if i accept OEIS's 1, 5, suggestion for a starting 1...
19:08:01 -!- Taneb has joined.
19:08:34 <oerjan> eek. pascal's triangle read by rows.
19:08:37 -!- hagb4rd has joined.
19:09:04 <oerjan> in particular, the 1,6,15 ... row
19:09:58 <oerjan> this time OEIS gave up on 1,6,16,32,385
19:11:29 <oerjan> ais523: i suspect humans might not do much better than OEIS.
19:14:26 <ais523> indeed
19:17:20 -!- hagb4rd has quit (Ping timeout: 250 seconds).
19:17:35 <Deewiant> Humans can understand lots of stuff like 1,2,3,15,16,17, OEIS can't
19:17:49 <Taneb> Until someone adds it
19:18:16 <Deewiant> I don't think you can add just any kind of triviality to OEIS, or can you?
19:18:23 <Taneb> You can
19:18:43 <oerjan> it's supposed to be a sequence of at least _some_ interest, i think
19:22:45 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:24:54 <Taneb> (n-(n mod 3))*11+ n
19:28:45 <oerjan> > let p d x = product [x, x-1 .. x-d+1] `div` product [1 .. d]; q x = sum [p d x | d <- [1..x]] in map q [0..]
19:28:46 <lambdabot> [0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,...
19:29:18 <Deewiant> > map (pred . (2^)) [0..]
19:29:19 <lambdabot> [0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,...
19:30:33 <oerjan> heh, so attempting the procedure with the simplified guess of "use simplest polynomial fit" just gives 2^n-1
19:31:06 <ais523> haha
19:31:12 <oerjan> ...i guess that's a consequence of pascal's triangle, really
19:31:17 <ais523> that's kind-of neat, actually
19:32:01 <oerjan> or of the binomial expansion of (1+1)^n
19:32:15 <ais523> oh, putting it like that makes it obvious
19:32:18 <ais523> but it's still neat
19:33:42 <quintopia> a better idea: let the next value in the sequence be the smallest value that no one on earth has guessed could be the next value :P
19:34:17 <Taneb> 1,negative infinity?
19:35:07 <quintopia> *greater than the previous term
19:35:09 -!- NihilistDandy has quit (Read error: Operation timed out).
19:35:23 <quintopia> (note that i would guess negative infinity just to mess with you)
19:35:34 <ais523> negative infinity plus 1!
19:36:01 -!- cheater_ has joined.
19:36:10 <Taneb> Which is convenientally equal to negative infinity
19:36:16 <oerjan> ais523: Esolang talk:Site support appears to be spam
19:37:11 <ais523> I'll check the recent changes in a bit
19:37:19 <ais523> but it'll be dealt with
19:37:37 <ais523> need to give elliott a chance to userfy it first :)
19:37:41 <oerjan> well the danger here is that elliott might squat it be... right
19:37:59 <oerjan> i mean, WRONG
19:39:32 <ais523> it's happened before
19:39:37 <oerjan> Taneb: "In Luigi, the left hand side of a production rule is not allowed to be the subset of any other. This makes Luigi deterministic."
19:39:42 -!- NihilistDandy has joined.
19:39:44 <Taneb> I was wrong
19:40:00 <Taneb> It's still in user section, it can be changed
19:40:29 <oerjan> well i would think you'd have trouble whenever they can overlap, anyhow.
19:40:47 <Taneb> Yeah, that's what I thought
19:41:22 -!- cheater__ has joined.
19:42:17 <itidus20> Sighs, wondering if I would understand my own ideas better if I had learned Haskell yet.
19:42:33 <oerjan> how's the haskell going?
19:42:41 <itidus20> Haven't got back to it yet
19:43:38 <itidus20> But I am intrinsically about game creation.. and Haskell would only serve that end for me in some level
19:44:09 <oerjan> well there are games in haskell, at least.
19:44:12 -!- cheater_ has quit (Ping timeout: 250 seconds).
19:44:47 <itidus20> I am basically someone who would look down the nose at Lua because it would deny me the pleasure of making my own embedded scripting language.
19:44:49 -!- cheater_ has joined.
19:45:25 <Taneb> Does anyone have any idea if Luigi is Turing Complete?
19:45:26 <itidus20> And it wouldn't add any value of its own.
19:45:30 <ais523> Lua is possibly the only language with a large amount of reverse library support
19:45:48 <Taneb> Reverse library?
19:45:53 <ais523> in that, it doesn't have an amazing number of libraries, but it's embedded in an amazing number of different contexts that will be able to supply their own relevant routines
19:46:04 <oerjan> Taneb: i was thinking about that. i think you can do a CA in it...
19:46:47 <oerjan> let's say you follow the convention of using disjoint alphabets for odd and even positions
19:47:25 <oerjan> then you can easily make something resembling a 1d margolus rule, i think
19:47:35 <oerjan> while still being deterministic
19:47:47 -!- cheater__ has quit (Ping timeout: 240 seconds).
19:48:34 <oerjan> or put a different way, each CA cell is represented by _two_ luigi letters, one from each subalphabet.
19:49:25 <oerjan> so 0010 would be represented something like aAaAbBaA
19:49:37 <oerjan> with some marker at the end
19:49:44 <itidus20> I would rather use (looks up it's name) ORK than Lua as a scripting language for a game.
19:50:27 <oerjan> hm wait this doesn't work that way
19:50:42 <oerjan> need to keep the margolus idea
19:51:17 <oerjan> basically, each cell would interact with a different neigbor on odd and even generations
19:52:26 <oerjan> say a rewriting rule was Aa -> aB, it would only apply when the left cell was in the "upper case" state, and would turn it into lower case, and opposite for the right cell
19:53:29 <oerjan> the end markers would have rules to switch the case of an otherwise inert cell. as well as possibly growing the word.
19:53:32 <fizzie> oerjan: Isn't the traditional way to do deterministic stuff on a system like this just to keep a unique marker somewhere, and then apply only production rules that contain the marker and some neighbors, so you're guaranteed to only ever apply the rule in a single place? Sounds like a scheme like that, with a marker you keep moving from front to back (and encode some state in what the marker is) should work for a BCT implementation. (With a few more unique symbo
19:53:33 <fizzie> ls at the beginning and end of the string.)
19:54:01 <ais523> fizzie: that's basically encoding a Turing machine in rewrite rules
19:54:03 <oerjan> fizzie: oh hm right that's the TM way. i was sort of fixated on doing something parallel.
19:54:06 <ais523> and yes, it is pretty standard
19:54:23 <fizzie> oerjan: Oh, you can be honest, I won't feel hurt: just say "the boring way".
19:54:50 <oerjan> my idea has the "advantage" that every cell can get touched by some rule each generation
19:55:19 <oerjan> fizzie: i honestly forgot about it :P
19:55:51 -!- monqy has joined.
19:56:12 <oerjan> Taneb: ok fizzie's method pretty obviously works to encode a TM rather directly.
19:57:05 <fizzie> That 1D CA in "parallel" sounds intuitively speaking doable too.
19:57:42 <oerjan> yes i would think so
19:58:18 <Taneb> Encoding a TM directly would be the way that would be most obvious to someone who knows what turing-completeless is but hasn't much experience trying to prove it
19:58:26 <Taneb> Or seen anyone ever try to prove it
19:58:33 <Taneb> But still a possible
19:58:34 <Taneb> way
19:58:34 <oerjan> indeed
19:59:01 <oerjan> but sometimes it _is_ the simplest way
20:02:36 -!- olsner has joined.
20:08:24 <Taneb> A0N1->N1B1; A0N0->N1B1; N0A1->C0A1; N1A1->C1N1; N0B0->A0N1; N1B0->A1N1; B1N0->N1B0; B1N1->N1B1; N0C0->B0C1; N1C0->B1N1; C1N0->N1H0; C1N1->N1H1
20:08:38 <Taneb> That will simulate the example Turing Machine on the Wikipedia page
20:08:49 <Taneb> When converted to Luigi notation
20:08:57 <MDude> I would think the most obvious way to make things deterministic would be to just check shorter rules first.
20:09:21 <monqy> but restrictions are fun
20:09:22 <oerjan> ...
20:09:47 <oerjan> MDude: actually that doesn't work with the overlapping ones
20:10:08 <MDude> I guess that dones't, by itself, remove the ambiguity of when sch alterations should be applied.
20:10:21 <monqy> aren't they supposed to be in paralel too
20:10:21 <MDude> Things can overlap without being subsets, though.
20:10:35 <monqy> as in, checking them sequentially is hilariously against the point
20:10:51 <itidus20> (reads about turing machines) in the deterministic vs non-deterministic argument I have raised hte point in the past that a non-deterministic universe could emulate a deterministic one..
20:11:00 <Taneb> ;01ABCH;N0N0N0N0N0N0N0N0N0N0N0N0A0N0N0N0N0N0N0N0N0N0N0N0;A0N1;N1B1;A0N0;N1B1;N0A1;C0A1;N1A1;C1N1;N0B0;A0N1;N1B0;A1N1;B1N0;N1B0;B1N1;N1B1;N0C0;B0C1;N1C0;B1N1;C1N0;N1H0;C1N1;N1H1
20:11:01 <itidus20> this may be a vice versa thing, i forget
20:11:13 <Taneb> Ah
20:11:27 <Taneb> Just found a major restriction in the Turing Machine emulation
20:11:27 <MDude> Neither wba or bac are subsets of the other, but they have subsets that match, so wabc would be a problem.
20:11:32 <Taneb> finite initialisation
20:11:36 <oerjan> itidus20: well it depends on whether your non-deterministic universe can make reliable components, i assume
20:11:55 <itidus20> oerjan: I can freely pretend to have no free will :>
20:12:06 <itidus20> or that is.. i cannot say that for sure!!
20:12:26 <Taneb> So, I don't think direct emulation of a Turing Machine works
20:12:51 <itidus20> You cannot prove my determinism is not a choice
20:12:53 <itidus20> :D
20:13:20 <Taneb> That's philosophy, not computer science.
20:13:28 <itidus20> i know
20:13:35 <oerjan> Taneb: um ordinary TMs just need finite initialization
20:14:09 <Taneb> They operate on an infinite tape
20:14:15 -!- olsner has quit (Ping timeout: 276 seconds).
20:14:30 <oerjan> Taneb: expanding a tape with rewriting is not hard
20:14:41 <Taneb> True, hmm
20:15:21 <Taneb> ;01ABCEH;EN0A0N0E;A0N1;N1B1;A0N0;N1B1;N0A1;C0A1;N1A1;C1N1;N0B0;A0N1;N1B0;A1N1;B1N0;N1B0;B1N1;N1B1;N0C0;B0C1;N1C0;B1N1;C1N0;N1H0;C1N1;N1H1;E;N0;
20:15:36 <Taneb> Okay, that expands the tape quicker than it can be accessed
20:15:55 <Taneb> Which isn't the most memory efficient of techniques, but we're dealing theoretically here
20:16:15 <MDude> Is there a way to implement stacks in it?
20:16:28 <oerjan> you don't need to expand unless the tape head is going into unitialized territory
20:16:45 <Taneb> oerjan: but this is easier and for a proof just as good
20:16:56 <Taneb> MDude: almost certainly, but not trivially
20:19:03 <oerjan> well two stacks, one at each end pointing inwards, would seem pretty trivial
20:20:05 <oerjan> for more, you get to move information around a lot
20:25:13 <oerjan> MDude: also, you can implement a stack in any thing TC. just not necessarily easily. :P
20:25:23 <oerjan> *anything
20:25:46 -!- olsner has joined.
20:25:53 <oerjan> BCT is gonna take a bit of work, i'd say
20:26:06 <Taneb> Brainfuck even more
20:26:16 <oerjan> um, no?
20:26:28 <Taneb> Sorry, in my own conversation
20:26:35 <Taneb> Don't mind me
20:26:38 <oerjan> i'm pretty sure a stack in brainfuck is easier than in BCT :P
20:27:17 <Taneb> I was thinking it'd be pretty hard to implement anything much in Luigi
20:27:38 <oerjan> well brainfuck is easy to compile to a TM, i think, and then to Luigi.
20:27:58 <oerjan> apart from IO
20:28:37 <oerjan> hm actually it'll be a lot of rules if the cell size is big
20:28:49 <oerjan> boolfuck, though, shouldn't be too hard
20:29:13 <Taneb> P′′ is Turing Complete with a cell size of three, possibly two, I believe
20:29:32 <oerjan> or you could do BF more directly with a unary representation of cells
20:29:47 <oerjan> Taneb: um is this a known result? i was sort of thinking about doing it with 3
20:30:04 <oerjan> oh wait you said cell _size_, never mind.
20:30:20 <oerjan> cell size two is just boolfuck, which is TC, yes
20:30:22 <Taneb> Cell size is a lot harder than tape length in Luigi
20:30:35 <oerjan> Taneb: not if you do it with unary, i think
20:30:55 <Taneb> That's a possibility, but not one I'm going to look into tonight
20:31:26 <oerjan> Taneb: or even binary might not be too hard, actually, i've had some thoughts about /// and this would be similar
20:32:12 <Taneb> If you are bored, have a look at that, then. I'm going to bed now
20:32:18 -!- Taneb has quit (Quit: Goodnight!).
20:32:25 * oerjan is not _that_ bored :P
20:36:09 -!- azaq23 has joined.
20:37:44 -!- boily has quit (Ping timeout: 252 seconds).
20:39:32 -!- Taneb has joined.
20:39:46 <Taneb> Okay, okay, I changed my mind
20:40:06 -!- Phantom_Hoover has joined.
20:40:09 <oerjan> always get your full eight minutes of sleep
20:40:19 <Phantom_Hoover> Back to civilisation /o/
20:40:20 <lambdabot> Phantom_Hoover: You have 22 new messages. '/msg lambdabot @messages' to read them.
20:40:20 <myndzi\> |
20:40:20 <myndzi\> /|
20:40:26 <Phantom_Hoover> Dammit lambdabot.
20:40:31 <Phantom_Hoover> Twenty...
20:40:32 <Taneb> Popular guy, PH
20:41:08 <Phantom_Hoover> @tell elliott FFS, I've told you already that lambdabot breaks if there are more than 10 or so.
20:41:09 <lambdabot> Consider it noted.
20:41:24 <monqy> a time in which im especially glad not to be popular
20:42:46 <Phantom_Hoover> @tell elliott I hope you still have the scrollback for the last 14 of those.
20:42:46 <lambdabot> Consider it noted.
20:43:18 <Phantom_Hoover> Sgeo... didn't... know... that...
20:43:22 <Phantom_Hoover> I...
20:43:34 <oerjan> his mind is going, he can feel it
20:43:41 -!- elliott has joined.
20:43:48 <Phantom_Hoover> Speak of the devil.
20:43:57 <monqy> what i was going to say
20:44:06 <oerjan> no, _i_ was going to say it
20:44:15 <elliott> wat
20:44:16 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
20:44:17 <Phantom_Hoover> (Also, from PH Reads Logs To Offset Suicide: 03:00:18: <pikhq> Sgeo: The movie.)
20:44:31 <Phantom_Hoover> This year's blockbuster!
20:44:38 <elliott> 20:40:20: <lambdabot> Phantom_Hoover: You have 22 new messages. '/msg lambdabot @messages' to read them.
20:44:40 <elliott> :DDDDDdddddddddddddddddddd
20:45:13 <Phantom_Hoover> Join Sgeo as he goes on a voyage of discovery to find himself and also that Narnia and Alice in Wonderland were written by different people.
20:45:25 <Taneb> I'm going to move Luigi from my user space now
20:45:31 <monqy> i want an itidus movie too
20:45:43 <Taneb> Also, I used to get mixed up with CS Lewis and Lewis Carrol
20:45:46 <olsner> Alice in Wondernarnia
20:45:49 <Phantom_Hoover> monqy, did it get even better in the week I was gone?
20:45:53 <Phantom_Hoover> *week and a half
20:46:40 <monqy> I haven't been keeping track, but he's still itidus20
20:47:17 <itidus20> hmm
20:47:21 <itidus20> oh ok.. hold on
20:47:35 <itidus20> i'll hook you up
20:48:01 <monqy> one time he put clothes and hair on an elliott in a hole drawn by elliott
20:48:51 <Phantom_Hoover> monqy, pics or it didn't happen.
20:48:51 <itidus20> http://www.youtube.com/watch?v=NzMEQlK1EBA
20:49:03 <elliott> 02:22:14: <NihilistDandy> Hofstadter's too talky
20:49:03 <elliott> also he says nothing interesting
20:49:12 <elliott> 02:26:00: <NihilistDandy> I always feel like the odd one out because I'm a computer scientist but not a mystic :D
20:49:12 -!- derrik has quit (Quit: ramadan).
20:49:13 <NihilistDandy> Quite so
20:49:14 <elliott> NihilistDandy: what, in here?
20:49:40 <Phantom_Hoover> itidus20, no, I mean of the elliott thing.
20:50:07 <NihilistDandy> elliott: No, not here, generally. Among perl programmers, mostly :D
20:50:24 <monqy> Phantom_Hoover: 05:37:27: <itidus20> elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg
20:50:45 <Taneb> Okay, it's official, Luigi is an esoteric programming language
20:50:54 <NihilistDandy> PERL = Programmable Eschatology from Religious Loons
20:50:55 <Phantom_Hoover> monqy, that's... wow.
20:51:06 <monqy> amazing
20:52:12 <elliott> Phantom_Hoover: the artefacts are my fault mind you
20:52:43 <NihilistDandy> So elliott plays baseball and is a Saiyan?
20:52:52 <Phantom_Hoover> Yes.
20:53:11 <Phantom_Hoover> In other news, the Guide claims that Edinburgh is full of giant seagulls.
20:53:13 <NihilistDandy> This is in line with my conception of him
20:53:33 <NihilistDandy> Phantom_Hoover: Quick, make some giant french fries!
20:53:33 <Phantom_Hoover> I am sceptical of this claim, but I do not know how big a normal seagull is.
20:53:48 <elliott> Which Guide.
20:53:58 <Phantom_Hoover> The Guardian one.
20:54:02 <elliott> What's the minimum number of arbitrarily large cells needed for this to be true? It obviously isn't the case with one. --Graue 15:35, 9 Jun 2005 (GMT)
20:54:02 <elliott> Theoretically, 2 cells (cf Minsky machine); Frank Faase has a proof using 5 cells. --Chris Pressey 18:33, 9 Jun 2005 (GMT)
20:54:09 <elliott> oerjan: go correct chris about two cells
20:55:40 <Phantom_Hoover> Also: oko explains integration with infinite bounds
20:55:48 <Phantom_Hoover> 23:03:22: <oerjan> the bounds are infinite however.
20:55:48 <Phantom_Hoover> 23:03:26: <SevenInchBread> .....
20:55:48 <Phantom_Hoover> 23:03:43: <oklopol> well, true, you need a big calculator
20:55:51 <NihilistDandy> Speaking of #esoteric
20:55:51 <NihilistDandy> http://arstechnica.com/science/news/2011/07/how-an-argument-with-hawking-suggested-the-universe-is-a-hologram.ars
20:56:13 <oerjan> elliott: well i haven't finished showing that 3 are sufficient yet...
20:56:28 <Taneb> I reckon four wouldn't be too difficult
20:56:37 <olsner> NihilistDandy: how appropriate, speaking of #esoteric *in* #esoteric
20:56:45 <NihilistDandy> olsner: SO META
20:56:48 <elliott> oerjan: that's what I mean, two almost certainly aren't, right?
20:56:53 <elliott> because bf doesn't have the same operations as minsky machines
20:56:56 <Phantom_Hoover> olsner, it's the least fixed point of off-topicness.
20:57:30 <oerjan> elliott: it seems unlikely, because every time you exit a loop you have one cell 0, so it's hard not to clobber something
20:57:37 <elliott> oerjan: right
20:57:47 <elliott> oerjan: I'm just saying that "theoretically, two (cf minsky)" doesn't hold
20:57:50 <elliott> :P
20:57:54 <oerjan> indeed
21:00:10 <Taneb> Why does Polish have to look so much like polish?
21:00:44 <Taneb> Polish as in the nationality of someone from Poland, polish as in make shiny
21:01:36 <NihilistDandy> Because English is stupid
21:01:43 <NihilistDandy> Or maybe Poles are just shiny
21:01:52 <NihilistDandy> Hence, pole-ish
21:02:24 <monqy> poleish
21:03:12 <oerjan> elliott: btw when trying to use the proof that 2 registers for a minsky machine suffices, and merging the machine state into the same BF cell as the product of prime power register, it all very similar to fractran
21:03:30 <elliott> oerjan: :D
21:03:30 <oerjan> *all becomes
21:03:55 <oerjan> to such a degree that it looks simplest to just compile fractran to BF
21:03:56 <olsner> meh, these polish puns are neither bad or good enough to be funny
21:07:40 <Phantom_Hoover> Taneb, ever since I noticed a Polish market somewhere I have been meaning to go there and ask for some really obscure type of polish.
21:07:56 <Taneb> Doo eet
21:09:14 <NihilistDandy> Excuse me, I'm looking for some Kiwi Polish
21:09:35 <oerjan> get your kiwis all nice and shiny
21:09:38 -!- pingveno has quit (Ping timeout: 252 seconds).
21:10:21 <NihilistDandy> I knew a Kiwi Polish girl once :D
21:11:58 -!- FireFly has quit (Quit: swatted to death).
21:12:56 <elliott> 02:52:53: <evincar> Is there a reliable means of counting characters in a Unicode string?
21:12:56 <elliott> 02:53:13: <evincar> Code points aren't characters, so even UTF-32 is variable-width wrt characters. :(
21:12:56 <elliott> define character
21:13:39 <pikhq> elliott: I do believe he's meaning "glyph".
21:14:19 <elliott> pikhq: I think he means grapheme.
21:14:44 <Taneb> I think he means printing character
21:14:47 <pikhq> So, "glyph".
21:14:57 <Phantom_Hoover> <NihilistDandy> I knew a Kiwi Polish girl once :D
21:15:02 <Phantom_Hoover> Was she nice and shiny?
21:16:07 -!- elliott has quit (Remote host closed the connection).
21:16:07 <NihilistDandy> Nah, but I'd never seen such black boots in my life.
21:16:38 -!- elliott has joined.
21:17:34 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:21:21 <Taneb> You know what would be interesting?
21:21:36 <Taneb> A Brainfuck or Lazy K or something Rubik's Cube solver
21:22:15 <Phantom_Hoover> Taneb, $algorithm in $language is normally not terribly interesting.
21:22:34 <Taneb> Okay, how about the reverse
21:22:45 <Taneb> A Brainfuck solver in a Rubk's Cube
21:22:51 <Phantom_Hoover> Hmm...
21:23:01 <monqy> how does one solve brainfuck
21:23:03 <oerjan> a tricky one, Taneb is
21:23:11 <Phantom_Hoover> There are Turing-equivalent decision problems...
21:24:39 <monqy> are there any languages based on rubik's cubes
21:25:34 <Phantom_Hoover> monqy, well, I don't understand how it actually /works/, but the existence of solutions to polynomials with n variables is Turing-equivalent.
21:25:48 <monqy> hm
21:26:00 <Phantom_Hoover> So perhaps there's something similar with Rubik's cube.
21:26:02 <NihilistDandy> monqy: Some subsets of group theory could reasonably be said to be "based on Rubik's cubes"
21:29:10 <Taneb> Well, goodnight for real now
21:29:24 -!- Taneb has quit (Quit: or is it...? Tune in next week to find out!).
21:34:42 <oerjan> ah yes, the word problem for groups is undecidable, so most likely TC...
21:34:46 <oerjan> iirc
21:36:25 <oerjan> of course rubik's cube itself is finite, so pretty decidable i should think
21:37:46 <Phantom_Hoover> nxnxn, of course.
21:38:49 <monqy> rubik's hypercube
21:38:50 <oerjan> Phantom_Hoover: _integer_ solutions, mind you. it's decidable for reals, and still open for rationals (somewhat recently discussed in godel's lost letter)
21:39:16 <elliott> infinitely big rubiks' cube
21:39:17 <elliott> discuss
21:39:41 <Phantom_Hoover> elliott, infinite from a particular corner, or along all sides?
21:39:51 <elliott> all sides
21:39:54 <oerjan> someone should make a physical puzzle whose symmetry group was the monster
21:40:05 <elliott> you can still do all the turns, ofc
21:40:46 <oerjan> *is
21:53:26 -!- augur has quit (Remote host closed the connection).
22:01:44 -!- azaq23 has quit (Quit: Leaving.).
22:04:11 -!- Patashu has joined.
22:06:02 <elliott> Oh what, the Humble Bundle now includes /another/ game?
22:06:06 <elliott> FINE YOU GUYS I'LL BUY IT OK
22:16:45 -!- ais523 has quit (Remote host closed the connection).
22:26:52 -!- augur has joined.
22:40:04 <NihilistDandy> FINE
22:42:55 <oerjan> I DON'T THINK WE DESERVE TO BE FINED
22:43:00 -!- myndzi\ has quit (Read error: Connection reset by peer).
22:43:34 -!- myndzi has joined.
22:45:26 <Phantom_Hoover> oerjan, YES YOU DO
22:46:46 <oerjan> YOU CANNOT PROVE IT
23:37:15 <itidus20> "Paradoxes make physicists happy."
23:42:18 <Phantom_Hoover> itidus20, they do?
23:43:18 <itidus20> so someone found an exploit in some apple laptops.. which means the battery can be killed
23:43:49 <itidus20> it's pretty bad....
23:43:51 <Phantom_Hoover> And the physicists are overjoyed?
23:44:02 <itidus20> champagne corks
23:44:40 <itidus20> bottoms up you old bastards
23:44:54 <itidus20> putting on the ritz
23:47:56 <Phantom_Hoover> This film will be the best.
23:48:16 <Phantom_Hoover> itidus20, struggling young artist and renaissance man...
23:48:52 <Phantom_Hoover> It can tie in with Sgeo: the Movie!
23:49:00 <Phantom_Hoover> But who would be cast as who...
23:49:55 <Phantom_Hoover> (I would played by David Tennant, as the villain trying to murder KT-AT.)
23:50:13 <Phantom_Hoover> elliott can be Christopher Eccleston, because they're both from the North.
23:50:31 <elliott> I'm not nearly camp enough.
23:51:03 <Phantom_Hoover> Christopher Eccleston is camp?
23:51:15 <elliott> That's pretty much what he's famous for as the Doctor, yes.
23:51:25 <elliott> It's sort of a... mild camp.
23:51:26 <elliott> Except amplified.
23:51:42 <elliott> Like turning down your speakers really low, playing something, recording it, and then amplifying that.
23:51:45 <elliott> This is logical.
23:52:17 <Phantom_Hoover> Anyway, Vorpal would be played by the guy who played Wallander because that's the closest I get to naming a Swedish actor.
23:53:23 <Phantom_Hoover> cpressey would obviously be played by Ian McKellen.
23:53:48 <Phantom_Hoover> elliott, also who else is famous, and actor and From the North?
23:53:55 <Phantom_Hoover> (Not from the North, that's entirely different.)
23:54:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:54:32 <elliott> Phantom_Hoover: Me.
23:54:38 <Phantom_Hoover> *an actor
23:54:42 <elliott> Phantom_Hoover: Me.
23:54:47 <elliott> Vorpal can be played by Vorpal because nobody else can be that boring.
23:54:56 <Phantom_Hoover> elliott, have you *seen* Wallander?
23:54:59 <elliott> We will coerce him to with the EVIL POWERS of... money, because that's all he's boring enough to fall for.
23:55:26 <Phantom_Hoover> (It's impossible, such is the boredom.)
23:55:41 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/j54n4/if_plants_are_constantly_exposed_to_the_sun_why/
23:55:47 <Phantom_Hoover> Why do I read /r/AskScience.
23:57:38 <pikhq> Because you like stupid questions?
2011-08-02
00:00:42 <oerjan> that wasn't a stupid question...
00:02:39 -!- cheater_ has quit (Ping timeout: 255 seconds).
00:15:39 -!- cheater_ has joined.
00:18:03 -!- copumpkin has joined.
00:20:29 <NihilistDandy> It's a funny question, at least
00:41:57 <NihilistDandy> http://www.reddit.com/r/askscience/comments/j66uq/is_it_possible_to_heat_the_planet_via_burning/
00:42:00 <NihilistDandy> Ha
00:45:03 -!- Phantom_Hoover has quit (Quit: Leaving).
00:52:05 <elliott> Hey who plays DF here.
00:52:17 <monqy> should i play df
00:52:36 <NihilistDandy> I played a couple of times
00:52:48 <NihilistDandy> I never remember the damn key bindings
00:52:55 <elliott> monqy: Yes. Mostly so that you can tell me what (textual) tileset to use.
00:53:03 <monqy> elliott: but that's what I wanted to know
00:53:09 <elliott> Preferably square, preferably doesn't make text COMPLETELY UNREADABLE, and none of that fancy curved wall stuff.
00:53:22 <monqy> these are things I want to know
00:53:24 <elliott> And one that recognises that my screen is high-resolution and high-dpi i.e. not tiny.
00:53:29 <elliott> monqy: WELL I WANT TO KNOW THEM TOO
00:53:41 <elliott> Also one where dwarfs have beards, I can't bear not having them.
00:55:07 -!- oerjan has quit (Quit: m4h uo+ nujaepeqle?).
01:11:17 <bsmntbombdood> ages ago, i'm sure i shared some code here for some various things
01:11:37 <bsmntbombdood> a dc interpreter, an oisc virtual machine for example
01:11:53 <bsmntbombdood> i wouldn't suppose anyone still has a copy of any of that code?
01:16:53 <elliott> wasnt it on pastebin
01:17:24 <NihilistDandy> Someone's shameless self-promotion on #erlang
01:17:24 <NihilistDandy> http://amtal.github.com/2011/07/19/unix-pipes-pointless-functional-programming.html
01:17:29 <bsmntbombdood> pastebin.ca appears to be defunct
01:17:29 <NihilistDandy> Thoughts?
01:17:44 <elliott> bsmntbombdood: it was offline then online then offline again
01:18:01 <elliott> NihilistDandy: oleg said that years ago.
01:18:03 <NihilistDandy> bsmntbombdood: TO THE LOGS
01:18:12 <bsmntbombdood> NihilistDandy: i've been grepping to no avail
01:18:16 <NihilistDandy> elliott: I don't doubt it.
01:18:31 <elliott> http://okmij.org/ftp/Computation/monadic-shell.html
01:18:48 <NihilistDandy> Mostly it's the stuff about LFE at the end that was vaguely interesting
01:19:46 <elliott> "but your language doesn’t support pointfree style?" can you not define operators in erlang
01:19:50 <elliott> or uh varargs functions
01:19:56 <bsmntbombdood> some stuff on pastebin, other stuff on a personal server which is also no good
01:20:24 <elliott> bsmntbombdood: sounds like you're fucked
01:20:44 <bsmntbombdood> elliott: yep, unless someone happened to save something
01:21:21 <elliott> bsmntbombdood: i might have a copy of bsmntbot lying around on another computer
01:21:23 <elliott> that's it though
01:21:37 <monqy> what did bsmntbot do
01:21:49 <bsmntbombdood> monqy: everything AWESOME
01:22:18 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:22:26 <NihilistDandy> elliott: I like that the thing could be interpreted as "Well, I guess erlang's not that awesome after all, I guess Lisp is the way"
01:27:35 <elliott> why is opengl so bad :(
01:27:56 <NihilistDandy> Bad developers?
01:28:26 <elliott> no the api
01:28:38 <monqy> opengl has the worst api
01:28:46 <monqy> is there anything worse
01:28:51 <elliott> death??
01:28:54 <monqy> oh no
01:28:58 <pikhq> monqy: Glib
01:29:02 <NihilistDandy> Being drawn and quartered
01:29:07 <monqy> I will try to stay away from glib
01:29:33 <elliott> pikhq: no way
01:29:46 <elliott> you can avoid gobject almost entirely when using glib
01:29:48 <elliott> opengl
01:29:49 <elliott> the horribleness
01:29:51 <elliott> is everywhere
01:30:22 <monqy> last night I tried to opengl again and I just couldn't do it
01:30:31 <elliott> :(
01:30:36 <elliott> monqy: im trying to opengl from haskell but
01:30:40 <elliott> it turns out that it isnt better that way
01:30:41 <monqy> i was too
01:30:41 <elliott> its worse
01:30:45 <elliott> because
01:30:51 <elliott> upon exposure to the opengl
01:30:52 <elliott> haskell goes
01:30:53 <elliott> :(
01:31:10 <elliott> monqy: were you doing it with sdl too, are you actually me
01:31:25 <monqy> yes
01:31:48 <monqy> I had made something earlier with GLFW-b and I was porting it to SDL for comparison and just died
01:31:51 <elliott> monqy: what were you trying to code,,, you may actually be me...supsicisous
01:32:12 <elliott> i kind of gave up on everything GLFW because it forces all your callbacks to be in IO
01:32:16 <elliott> i gues sthat might be okay but
01:32:22 <elliott> monqy: but um SDL is actually nicer??
01:32:24 <monqy> yeah that's what I dislike about GLFW
01:32:31 <elliott> SDL's api is really nice
01:32:33 <monqy> well I wanted to compare them
01:32:57 <NihilistDandy> elliott: I couldn't even get the GLFW lib from Hackage to compile
01:32:59 <NihilistDandy> SURPRISE
01:33:03 <elliott> NihilistDandy: GLFW-b is different
01:33:05 <elliott> it's an alternate binding
01:33:08 <NihilistDandy> Ah
01:33:09 <monqy> the thing i was porting was just a little thing with spinning boxes. for comparison between GLFW-b and SDL. so I would know what to use to make my magical graphics library so i would be able to avoid opengl and still have things the way i wanted them
01:33:18 <monqy> GLFW-b is better than GLFW imo
01:33:20 <pikhq> elliott: Okay, fine, I'll go with real awfulness.
01:33:22 <pikhq> Win32.
01:33:29 <elliott> monqy: what problem did you have with SDL?
01:33:36 <pikhq> (don't say it twice more, you'll some Beelzebub)
01:33:36 <monqy> elliott: it wasn't SDL that killed me
01:33:40 <pikhq> *summon
01:33:43 <monqy> elliott: it was looking at opengl again
01:33:53 <monqy> elliott: the thing that finally did me in was matrixMode
01:33:57 <elliott> monqy: also: can i have your spinning boxes code, currently my minecraft code is blocked on "how do i get this fucking box to draw without being stretched and dark grey"
01:34:03 <elliott> i suppose i should write camera-moving code
01:34:14 <monqy> my spinning box code kind of sucks :(
01:34:21 <monqy> it's all 2d too
01:34:24 <monqy> if that matters
01:34:24 <elliott> oh
01:34:30 <monqy> by sucks I mean
01:34:32 <elliott> well i dunno it can't suck more than my threedee stuff
01:34:35 <monqy> I hadn't taken the time to make it pretty
01:34:42 <monqy> because I died before then
01:34:51 <elliott> let size = length xs * 3 * sizeOf (undefined :: GL.GLfloat)
01:34:51 <elliott> ptr <- mallocBytes size
01:34:51 <elliott> foldM (\idx (a,b,c) -> do pokeElemOff ptr (idx*3) a
01:34:51 <elliott> pokeElemOff ptr ((idx*3)+1) b
01:34:51 <elliott> pokeElemOff ptr ((idx*3)+2) c
01:34:52 <elliott> return (idx+1)) 0 xs
01:34:58 <elliott> GL.vertexAttribPointer (GL.AttribLocation 0) GL.$= (GL.ToFloat, GL.VertexArrayDescriptor (fromIntegral (length xs)) GL.Float 3 ptr)
01:35:01 <elliott> let f v = [v,(0,0,0.51),(0,0.51,0.51),(0,0.51,0),(0.51,0.51,0),(0.51,0,0),(0.51,0,1),(0,0,0.51)]
01:35:01 <elliott> let xs = f (0,0,0) ++ f (0.51,0.51,0.51) :: [(GL.GLfloat,GL.GLfloat,GL.GLfloat)]
01:35:03 <elliott> just a few sample lines
01:35:07 <monqy> i died
01:35:07 <elliott> your code cannot possibly be worse than this
01:35:10 <elliott> ugh the pointer stuff its just like
01:35:13 <elliott> my code currently segfaults
01:35:16 <elliott> that should not even be possible :(
01:35:19 -!- cheater_ has joined.
01:35:27 <elliott> segfaults should not even be a thing that are a thing.
01:35:36 <monqy> i wanted to try gpipe just to see if it was better but it didn;t compile so whatever
01:35:40 <monqy> is gpipe bad
01:35:53 <elliott> "It is an alternative to using OpenGl, and has the advantage that it is purely functional, statically typed and operates on immutable data as opposed to OpenGl's inherently imperative style. Another important difference with OpenGl is that with GPipe you don't need to write shaders in a second shader language such as GLSL or Cg, but instead use regular Haskell functions on the GPU data types."
01:36:04 <elliott> monqy: it sounds like a really nice library that you can't use because it's stupidly unfinihed
01:36:07 <elliott> "GLUT is used in GPipe for window management and the main loop."
01:36:08 <elliott> lol
01:36:33 <elliott> haha
01:36:36 <elliott> it depends on Deewiant's trie library
01:37:30 <NihilistDandy> Deewiant wrote GLUT?
01:37:33 <NihilistDandy> TIL
01:37:39 <elliott> yeah totally that is what i said
01:37:48 -!- cheater_ has quit (Excess Flood).
01:37:53 <monqy> im attest
01:37:55 <NihilistDandy> I was only paying half-attention
01:38:00 <elliott> monqy: gpipe seems nice but like
01:38:12 <elliott> too... experimental? I don't want to say that but
01:38:20 <elliott> it seems like writing my own shader dsl thing would be a better choice
01:38:31 <elliott> and the GLUT dependency is kind of silly
01:38:37 -!- cheater_ has joined.
01:38:55 <elliott> monqy: how spinny r ur boxes
01:39:03 <elliott> mine dont even pspin :(
01:39:07 <monqy> well one of them spins and goes up and down
01:39:11 <monqy> the other one goes side to side
01:39:14 <monqy> without spinning
01:39:40 <elliott> this is so advantacesd
01:39:48 <elliott> plz impart on me, ur wisdom
01:40:25 <monqy> i have a square thing that draws a square.... and i use preservingMatrix???????
01:40:57 <elliott> what is that
01:40:59 <monqy> at least i hope i used preservingMatrix properly
01:40:59 -!- cheater_ has quit (Excess Flood).
01:41:05 <elliott> im dont even know
01:41:25 <monqy> o
01:41:31 -!- cheater_ has joined.
01:41:37 <elliott> i need ur wisdom in my life
01:41:39 <elliott> or i cannot opengl,ever,
01:41:54 <monqy> it's like you push a new matrix onto the matrix stack and then do the action supplied as an argument and then pop the matrix off
01:42:09 <monqy> so the matrix transformations done in there are nice and contained
01:42:12 <elliott> wow;
01:42:16 <monqy> and don't muck up the rest of everything else
01:42:17 <NihilistDandy> Someone's just going to come up with some other standard tomorrow and all the OpenGL effort will have been in vain~
01:42:21 <elliott> how much does your code, cost,
01:42:29 <monqy> cosT???
01:42:33 -!- evincar has joined.
01:42:39 <elliott> for access to its AMZING, POWERS
01:43:20 <NihilistDandy> cosT = 1/secT
01:43:30 * elliott looks at example GPipe code... it would be kind of nice except that this static-length vector code has an ugly interface
01:43:31 -!- augur has changed nick to augur[sleep].
01:43:43 <elliott> and i dont even think its being used in a >one-d manner so........
01:43:53 <elliott> monqy: what cost,,,,,,,,,,,,,,,,,,at WHAT jcoist,
01:45:03 <elliott> monqy: AT WHAT COST MONQY
01:45:07 <monqy> ihhhh
01:45:08 <elliott> HOW FAR WILL YOU GO
01:45:09 <monqy> its fre?
01:45:27 <elliott> :OOOOOOOoooooooooooooooooooooooooooooo
01:45:30 <elliott> you are so generous
01:45:33 <evincar> This is a wonderfully dramatic bit of the conversation to waltz in on.
01:45:37 <elliott> im one day hope be as genreous as yuo
01:45:40 <monqy> but this code is guly
01:45:41 <NihilistDandy> WHAT WOULD YOU DOO-OO-OO FOR SOME WORKING OPENGL CODE?
01:45:49 <monqy> it's like
01:45:54 <elliott> monqy: im guly too,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................... we all have our roels in theis world
01:46:03 <elliott> {- GL.defineNewList GL.CompileAndExecute $ do -}
01:46:03 <elliott> {- do
01:46:03 <elliott> -- ???
01:46:03 <elliott> GL.color (GL.Color3 (maxBound::GL.GLbyte) maxBound maxBound)
01:46:03 <elliott> {- GL.renderPrimitive GL.Lines $ do
01:46:04 <elliott> GL.vertex $ GL.Vertex2 (-0.9::GL.GLdouble) 0.9
01:46:06 <elliott> GL.vertex $ GL.Vertex2 (0.9::GL.GLdouble) (-0.9)-}
01:46:08 <elliott> let f v = mapM_ (\(x,y,z) -> GL.vertex (GL.Vertex3 (x::GL.GLdouble) y z)) [v,(0,0,0.51),(0,0.51,0.51),(0,0.51,0),(0.51,0.51,0),(0.51,0,0),(0.51,0,1),(0,0,0.51)]
01:46:08 <monqy> I have to specify whether i am using glfloats or gldoubles or it won'te even compile wTF?
01:46:11 <elliott> even the comments are guly
01:46:19 <elliott> monqy: well thatstzh inherent
01:46:21 <NihilistDandy> I can't stop laughing
01:46:51 <monqy> i forget what rotate even does
01:46:55 <monqy> bsides rotate
01:47:16 <elliott> monqy: ur people need youuuuuuu
01:47:19 <elliott> ur people = me
01:47:44 <monqy> i am cleanign upt it.....
01:47:58 <elliott> finally a clean tit......................
01:48:32 <evincar> Should I leave? Are you two having a moment?
01:48:42 <evincar> Three, even.
01:49:11 <elliott> evincar: its,,,,,,, life
01:49:42 -!- cheater_ has quit (Excess Flood).
01:50:44 -!- cheater_ has joined.
01:50:54 -!- CakeProphet has quit (Ping timeout: 246 seconds).
01:52:31 <monqy> ok i think its cleaner now??
01:52:32 <elliott> monqy: is ur upt tit,clen
01:52:35 <elliott> yay
01:52:55 <monqy> clearnwer...but not.....ttotaly clean....
01:53:08 <elliott> monqy: i can cleanse it,,,,,,,,,,,,,,,,,,,,,,,,, it is my duty
01:53:13 <monqy> it misses out on a bit of sepearation of concern et c because it was a really quicke thing
01:53:23 <monqy> anywa....heres the rendering ....of the bozxwse
01:53:25 <monqy> render :: GL.GLdouble -> GL.GLdouble -> IO ()
01:53:25 <monqy> render width time = do
01:53:25 <monqy> GL.clear [GL.ColorBuffer]
01:53:25 <monqy> GL.color (GL.Color3 0 0 (1 :: GL.GLdouble))
01:53:27 <monqy> GL.preservingMatrix $ do
01:53:30 <monqy> GL.translate (GL.Vector3 (100 * sin time) 0 0)
01:53:32 <monqy> square width
01:53:35 <monqy> GL.preservingMatrix $ do
01:53:37 <monqy> GL.translate (GL.Vector3 0 (200 * sin time) 0)
01:53:40 <monqy> GL.rotate (time * 100) (GL.Vector3 0 0 (1 :: GL.GLdouble))
01:53:42 <monqy> square width
01:53:45 <monqy> square :: GL.GLdouble -> IO ()
01:53:47 -!- cheater_ has quit (Excess Flood).
01:53:47 <monqy> square w = GL.renderPrimitive GL.Quads $ do
01:53:50 <monqy> vt w w
01:53:52 <monqy> vt w (-w)
01:53:55 <monqy> vt (-w) (-w)
01:53:57 <monqy> vt (-w) w
01:54:00 <monqy> vt :: GL.GLdouble -> GL.GLdouble -> IO ()
01:54:02 <monqy> vt x y = GL.vertex (GL.Vertex2 x y)
01:54:05 <monqy> too cool for.pastebisn/
01:54:15 <evincar> Apparently.
01:54:18 -!- cheater_ has joined.
01:54:39 <evincar> So, why "do"?
01:54:48 <elliott> monqy: dont you have any other GL functions in the program
01:54:50 <elliott> i have a lot of
01:54:52 <elliott> light initialisiation
01:54:53 <elliott> things
01:54:54 <elliott> :(
01:54:56 <monqy> elliott: that's tjuset the rendering
01:54:59 <elliott> and i dont, know what to do with them
01:55:03 <monqy> elliott: do you want the ienteklziaton too??
01:55:11 <monqy> elliott: because.... i have very little cloae about that either.
01:55:14 <elliott> monqy: yezsjop, i am but a poor pheasant
01:55:17 <elliott> with no cloaes
01:55:27 <elliott> http://www.klein.com/dvk/photos/birds/golden_pheasant.jpg me
01:55:30 <elliott> note lack of cloaes
01:55:44 <evincar> I FEEL AS THOUGH I HAVE FALLEN IN A WORLD WHICH IS NOT LIKE THE WORLD TO WHICH I AM USED
01:55:44 <monqy> it is glfw-b becase i died before porteng the sdl'e
01:56:09 <elliott> evincar: you need cloaes
01:58:34 <monqy> actually i guess i didn't do much initalization
01:58:36 <elliott> monqy: together, we will escaepje the opengl teror
01:58:37 <monqy> well
01:58:38 <elliott> oh
01:58:41 <monqy> a lto of it
01:58:41 <elliott> none at all???????????:(
01:58:41 <monqy> but
01:58:44 <monqy> most is GLFW
01:58:44 <elliott> im basically just
01:58:46 <elliott> without a clue on anything
01:58:48 <monqy> except ofr this really nasty bit
01:58:49 <elliott> that starts with "GL."
01:59:08 <monqy> most of the openGL initty stuff is iwthin an GLFW callbacke
01:59:18 <monqy> the part that....isnt:
01:59:22 <monqy> GL.clearColor $= GL.Color4 0 0 0 0
01:59:34 <monqy> the part that...is:
01:59:38 <monqy> GLFW.setWindowSizeCallback $ \ w h -> do
01:59:38 <monqy> let size = GL.Size (fromIntegral w) (fromIntegral h)
01:59:38 <monqy> GL.viewport $= (GL.Position 0 0, size)
01:59:38 <monqy> GL.matrixMode $= GL.Projection
01:59:38 <monqy> GL.loadIdentity
01:59:40 <monqy> GL.ortho2D 0 (realToFrac w) (realToFrac h) 0
01:59:42 <monqy> GL.translate $ GL.Vector3 (realToFrac w / 2) (realToFrac h / 2) (0 :: GL.GLdouble)
02:00:15 <monqy> which basically means whenever you resize the window you make a new view thingy and center it????
02:00:25 <monqy> is there a ...better waY?
02:00:28 <elliott> who the hell resizes windows,
02:00:31 <elliott> i just use a fixed size,
02:00:47 <monqy> i should do that
02:00:57 <monqy> but
02:01:00 <monqy> a bad thing
02:01:19 <monqy> for some reason GLFW stuff stopped getting floated so it gets tiled which messes it all u;p
02:01:25 <monqy> I think SDL stuff gets flaoted though
02:01:25 <monqy> so
02:01:37 <monqy> if i use SDL...no problem??
02:01:50 <monqy> i really should stop dieying, finish porting....myabe later
02:02:38 <evincar> Myabe indeed.
02:04:21 <elliott> monqy: if you give me the file i could port it to SDL,,, and then,, transform it into doing cubes, so that, eventually, my entire game would be descended from ur code............................ a once in a lifetime opportunity of lineaejge (this is total lies id probably throw it out after i got it doing cubes and then modularise it)
02:05:06 <monqy> but what af its..embaraseng
02:05:24 <monqy> (acause of its is.)
02:05:40 <elliott> YouH ATLK TO ME ABOUT EMBARASIONEGNG.... YOU CANT ENHANDLE THE ENMAHERBSINGYLY!!!!!!!!!!!!!!!!!!!!!!!!!! LOOKE AT MY SHAME,,,: http://sprunge.us/dNeD
02:05:43 <elliott> I AM TORN ASUNDER
02:05:50 <elliott> THIS PRISON OF SHAME I CAN NEVER ESCAPE
02:05:56 <monqy> oh god'e
02:06:28 <monqy> oh right one thing i didn't like about SDL......using 1 instead of True for SDL.glSetAttribute......what?
02:07:04 <monqy> oh god all the 3d stuff
02:07:11 <monqy> it hurts and i am not even to the pointer pokery
02:07:21 <elliott> monqy: yeah so,,, dont U tell ME about embaraseng
02:07:29 <elliott> im practicaly an eorphan of gl
02:07:32 <elliott> and ur denying me hot gl soup
02:07:43 <elliott> the pointer pokerery is,,, an optimzioejnigatinog
02:07:56 <monqy> optimzioejnigatinogs make me died
02:09:16 * elliott starts to starv,e of lack of gl soup...... my life
02:09:58 <monqy> im cleanigne ite up..>?
02:10:00 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:11:41 <elliott> monqy: ur a vitcim
02:11:42 <elliott> of society
02:12:57 -!- parcs has joined.
02:13:16 -!- parcs has left ("WeeChat 0.3.5").
02:13:57 <monqy> I have these really great functions I made
02:14:03 <monqy> but I can't think of half-decent names for them
02:14:36 <monqy> thing b m = b >>= flip when m
02:14:40 <monqy> (and another but for unless)
02:15:16 <elliott> monqy: hahahaha
02:15:19 <elliott> is it really called thing
02:15:26 <monqy> :(
02:15:32 <elliott> monqy: did you write that just now when cleaning it up or was it actually already there
02:15:36 <elliott> ?pl b >>= flip when m
02:15:36 <lambdabot> flip when m =<< b
02:15:40 <monqy> help
02:15:43 <elliott> ?pl b >>= \b' -> if b' then m else return ()
02:15:44 <lambdabot> flip (flip if' m) (return ()) =<< b
02:15:50 <monqy> it was already there
02:15:52 <elliott> monqy: hleps, at yuoere service?
02:16:16 <monqy> whjat is that
02:16:31 <elliott> monqy: you asked ed for helpes
02:16:43 <monqy> is that.....thing's name>????????????????????????
02:16:54 <elliott> <monqy> help
02:17:16 <monqy> i have to think of a half decent name right now they are thing and notThing
02:17:44 <elliott> monqy: whenM?
02:17:50 <monqy> i uh
02:17:52 <monqy> have a conefesion
02:17:55 <monqy> that was its
02:17:56 <monqy> former name
02:18:01 <monqy> then i changed it to thing
02:18:03 <elliott> monqy: show me, a usgae, of ite,
02:18:04 <monqy> when i got frustrated
02:18:06 <monqy> with whenM
02:18:18 <monqy> notThing GLFW.initialize
02:18:18 <monqy> (fail "failed to initialize")
02:18:23 <monqy> (that used to be unlessM)
02:18:41 <elliott> monqy: whats wrong with just
02:18:47 <elliott> GLFW.initialize >>= wh... oh right
02:18:49 -!- Fenhl has joined.
02:18:49 <elliott> monqy: well um
02:18:56 <elliott> monqy: I'd just have (flip when) as something
02:18:58 <elliott> and (flip unless)
02:19:00 <elliott> so you could say
02:19:15 <elliott> GLFW.initialize >= orM $ fail "failed to initialize"
02:19:16 <elliott> maybe???
02:19:20 <elliott> orM/andM
02:19:22 <elliott> i dunno
02:19:40 <monqy> it was that (but just (flip when) and (flip unless) no fancy names) before it was whenM
02:19:54 <monqy> then i got frustrated and made whenM
02:19:58 <monqy> and then i got frustrated and made thing
02:20:58 <elliott> letse, ask haskel
02:21:13 <monqy> #haskell?
02:21:33 <elliott> <elliott> What's a good name for (\b m -> b >>= flip when m)? (and the same with when -> unless). I've been using whenM/unlessM, but those are kind of ugly.
02:21:34 <elliott> im become you
02:21:43 <monqy> thanske youe
02:22:26 <elliott> <kmc> elliott, *shrug* ugly how?
02:22:26 <elliott> <kmc> uglier than mapM, filterM, zipWithM, etc?
02:22:28 <elliott> he;lp monqy
02:23:17 <monqy> takcing M onto things makes me feel bad i donte even know if whenM follows the same namethodology as those others which is part of my frustratosn :'(
02:23:29 <elliott> monqy: well with those
02:23:30 <elliott> :t mapM
02:23:31 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b]
02:23:32 <elliott> :t filterM
02:23:33 <lambdabot> forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a]
02:23:34 <elliott> :t zipWithM
02:23:35 <lambdabot> forall a b (m :: * -> *) c. (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m [c]
02:23:39 <elliott> monqy: it tends to take a monadic function
02:23:45 <elliott> but the actual "value" being operated on is non-monadic
02:24:26 <monqy> i guese i will go back to whenM/unlessM now i feel less bad.
02:26:09 <elliott> monqy: yese kmc is , convinucnging me
02:28:01 <monqy> ok i think its
02:28:02 <monqy> ready
02:28:39 <elliott> monqy: im
02:28:40 <elliott> rady
02:28:41 <elliott> (mentally)
02:30:39 <monqy> http://dl.dropbox.com/u/13786158/help.tar.bz2 shoulde be eit
02:30:51 <monqy> kindly, compressed
02:31:29 <elliott> kindley,
02:32:16 <elliott> this is, a work of great beuty,
02:32:23 <elliott> asterisk booty
02:32:40 <monqy> i tepyed it all with ym....posteriour
02:32:50 <elliott> a posteriori
02:33:04 <elliott> did u modularise it, just for me,
02:33:11 <elliott> im, feel so lucky, if that is, the case,
02:33:11 <monqy> it was ;like that..aredly
02:33:14 <elliott> o
02:33:22 <elliott> <,-- not so lucky but (still apprecijoateive)
02:33:56 <elliott> monqy: im, install glfw-b, to try it,
02:34:12 <elliott> monqy: also, im, maybe try out that GPipe thing?
02:34:20 <monqy> does it compile for you
02:34:24 <elliott> im, dont know yet,
02:34:29 <elliott> im try glfw-b tfrist,
02:35:07 <elliott> monqy: is, its name, "help",
02:35:17 <elliott> oh my gosh it is the most beautiful box display ive ever encountered
02:35:26 <elliott> wowee is, the best game,
02:35:37 <elliott> also it, is using all my cpu ?
02:35:55 <monqy> i didnt borhter throtelying the framerate oops
02:36:07 <elliott> oops,
02:36:16 <monqy> next time....
02:36:23 <elliott> monqy: but, arent you meant to, like, not throttle but,
02:36:27 <elliott> insetad base thing son, real time
02:36:35 <monqy> that's what it does now maybe??
02:36:41 <monqy> ther'es a clocky thing
02:36:57 <monqy> and it bases the rotation on that if id di d it right so many ages ago...
02:37:01 <elliott> im, must resist urge, to make this game purely-functional frp
02:37:10 <elliott> now, I cabal install, GPipe
02:37:21 <NihilistDandy> --glabol
02:37:21 <monqy> purely functional frp sounds goodis it good
02:37:23 <elliott> -rw-r--r-- 1 elliott elliott 329 2011-07-24 03:06 Input.hs
02:37:26 <elliott> monqy: im truly ages,
02:37:32 <elliott> also, yes, FRP is, so cool,
02:38:15 <monqy> the touching it on 24 was porting it glfw->glfw-b i think
02:38:22 <monqy> i originally wrote it much longer ago i think
02:38:26 <monqy> months....
02:38:43 <monqy> which is the ... best ... frp library
02:39:09 <elliott> monqy: unfortaentounely, none of them,
02:39:10 <monqy> there are too many
02:39:12 <monqy> :'(
02:39:16 <elliott> frp is, fraught, with problems, for, reasons,
02:39:21 <elliott> reason onE, space laeak
02:39:25 <monqy> oh no
02:39:32 <NihilistDandy> bananabananabanana
02:39:35 <elliott> reason TWo, you can avoid space leak if you avoid using functions as structure but then this become ugly...........................
02:39:46 <monqy> ho no
02:39:48 <elliott> monqy: luke palmer, says, that if you have al azy specialiser, you can use the obvious model and, the space leak, goes away,,,,
02:39:54 <elliott> but,,, we do not have,, a lazy specialiser.................................
02:40:05 <monqy> i have heard of a thing rdp was it here or ltu mayve both does it fix frps bprolems
02:40:06 <elliott> NihilistDandy: is, banana, a good frp.......
02:40:13 <monqy> is it even...finoished....usab.ey
02:40:21 <NihilistDandy> http://hackage.haskell.org/package/reactive-banana
02:40:22 <elliott> monqy: remote desktop protocol, sdoes no, fijxioaje, frp,
02:40:24 <NihilistDandy> I've heard good things
02:40:28 <elliott> NihilistDandy: im know, is it good, but, ok
02:40:43 <monqy> reactive.....something...programming....i think
02:40:45 <elliott> monqy: i think, i remember, what you are saying about, but, what was the name....
02:41:07 <monqy> demand
02:41:08 <monqy> is the d
02:41:30 <monqy> there was a webpage,,,but i forgrot everything it said
02:41:34 <monqy> oops
02:41:46 <elliott> reactive demand pugs
02:44:43 <elliott> monqy: ok i,
02:44:44 <elliott> installed gpipe,
02:44:46 -!- Fenhl has left.
02:44:47 <elliott> how does it not, work for you?
02:44:52 <monqy> it uh
02:44:53 <monqy> i forget
02:44:57 <monqy> i think itwas the examples
02:44:59 <monqy> that didfnt'e compile
02:45:04 <monqy> and i kind of
02:45:05 <monqy> gave up then
02:45:07 <monqy> oops
02:45:36 <monqy> the
02:45:39 <monqy> gpipe-examples
02:45:41 <monqy> i think
02:46:12 <elliott> i will try or nyou
02:46:16 <elliott> cabal: unrecognised command: intsall (try --help)
02:46:19 <elliott> help
02:46:24 <monqy> try...install
02:47:11 <evincar> What is this, Let's Do Some Haskell Whilst Intoxicated?
02:47:11 <monqy> somehow gpipe-exmaples is compiling
02:47:18 <elliott> monqy: me too,
02:47:21 <monqy> im too young to intocixatiod
02:47:34 <elliott> evincar: keayboeards are not eahsyi, stop awaviong your advatnages
02:47:37 <elliott> some ouf seus have bad fngiers
02:47:57 <monqy> im just too lazy to georcete myself <:( usually not here i am not as lazy
02:48:03 <monqy> georcete what
02:48:07 <monqy> i meant
02:48:08 <monqy> correct
02:48:13 <monqy> not georcete what is georcete
02:48:27 <monqy> also why is the compilation of example 2 hanging i think i had this problem last time
02:48:36 <monqy> and then when i tried to hand-compile them...it exploded
02:48:58 <monqy> where by exploded I mean
02:48:58 <elliott> it is, hangging for me, too, not, reassuring
02:48:59 <monqy> didn't work
02:49:08 <elliott> lets, find out whats in the box
02:49:16 * elliott looks at, the box
02:49:23 <elliott> oh my god
02:49:28 <elliott> monqy: look at demonHead :: [CUChar]
02:49:34 <elliott> it's a fucking gigantic list
02:49:35 <monqy> demonHead
02:49:39 <elliott> look at it
02:49:41 <monqy> og hod
02:49:42 <elliott> get gpipe examples and just look at it
02:49:43 <elliott> the second one
02:49:48 <elliott> jesus
02:49:55 <elliott> who thought that wwas a good idea
02:50:07 <monqy> ogh od
02:50:23 * elliott control c
02:50:25 <monqy> poor
02:50:27 <monqy> ghc
02:50:29 <elliott> monqy: gpipe examples, bad examples,
02:50:31 <elliott> but maybe gpipe, not bad,
02:50:33 <elliott> but
02:50:37 <elliott> foo :. bar :. ()
02:50:38 <elliott> bad, because ugly,
02:50:45 <monqy> yeah i dislike it too
02:50:45 <elliott> but maybe, wrappable
02:50:49 <monqy> why does it a thing
02:50:55 <elliott> monqy: static-length vectors at compile time
02:51:07 <elliott> im look here for goodneess: http://www.koonsolo.com/news/dewitters-gameloop/
02:51:24 <monqy> where there
02:51:37 <elliott> im "Constant Game Speed independent of Variable FPS" looks good
02:51:44 <elliott> monqy: it is, continuation, of famous, article baout game loops,
02:52:16 <elliott> monqy: im, try porting help, to sdl,
02:52:32 <monqy> good;e lucke
02:52:37 <elliott> -- windopening
02:52:40 <elliott> i like, your comnets
02:52:41 <monqy> why do i het e at the end of words helpe
02:53:12 <monqy> hitting e at the end of words is the worse t reflesx
02:53:17 <monqy> or......
02:53:19 <monqy> the BEST????
02:53:35 <elliott> http://hackage.haskell.org/packages/archive/SDL/0.6.2/doc/html/Graphics-UI-SDL-Time.html
02:53:37 <elliott> should,,, i use this,
02:53:48 <monqy> is it
02:53:49 <monqy> a godo thing
02:53:55 <elliott> "SDL_GetTicks() tells how many milliseconds have past since an arbitrary point in the past.
02:53:56 <elliott> "
02:54:00 <elliott> maybe????
02:54:34 <monqy> better than getcpu time maybe since word32 more fficient than Integer milliseconds more eficient than picosecodns help??
02:54:38 <elliott> , GLFW.displayOptions_numAlphaBits = 8 })
02:54:40 <elliott> thats not, bit depth right,
02:54:42 <elliott> just alpha bit depth,
02:54:48 <monqy> alpha bit depth
02:54:50 <monqy> yes
02:54:53 <monqy> i thingk
02:54:54 <monqy> at least
02:56:31 <elliott> -- using angle for things other than rotation like a TOTAL LOSER
02:56:32 <elliott> oh
02:56:40 <monqy> i
02:56:43 <monqy> didn't kwnoe
02:56:45 <monqy> what todoo
02:56:49 <monqy> so i had to
02:56:51 <monqy> discipline myself
02:56:52 <monqy> in coments
02:57:01 <elliott> im dont like how you leave a blank line after all your imports
02:57:02 <monqy> ;_;
02:57:17 <elliott> like, so there is,
02:57:19 <elliott> two blank lines before code,
02:57:40 <monqy> i usually do double-blank to sepearte sections of code (and a single blank to sepearate different things in the same section)
02:57:52 <monqy> so i group imports/definitions/whateverelse like this
02:58:03 <elliott> im think that, more than two blank lines, is a bad thing, probably,
02:58:07 <elliott> you could do the GNU thing, and use form feed,
02:58:25 <monqy> and for big monadic actions with do notations i pepper blank lines throguhout them since there are lots of different things happened
03:00:06 <monqy> what is this
03:00:07 <monqy> gnu theng
03:00:27 <monqy> Did you mean:
03:00:28 <monqy> Nu THAng
03:00:28 <monqy> GUn THIng
03:00:30 <NihilistDandy> I can't remember if this came from this channel
03:00:30 <monqy> helep
03:00:30 <NihilistDandy> http://www.reddit.com/r/explainlikeimfive/comments/j4ohk/explain_the_pnp_problem_li5/
03:00:39 <NihilistDandy> monqy: GNU metal
03:01:24 <monqy> i do not feel comfortable with form feeds
03:01:25 <monqy> they are
03:01:27 <monqy> too powerful
03:01:37 <elliott> monqy: ok, im, almost done convertheing it
03:02:12 <monqy> is it
03:02:14 <monqy> beaugtufle
03:03:51 <elliott> monqy: more, beautifuler,
03:04:09 <monqy> this makes me hapey
03:04:36 <elliott> monqy: also I think, most people use GLfloat, rather than GLdouble,
03:04:45 <monqy> oh
03:04:47 <monqy> is glfloat
03:04:48 <monqy> better
03:04:54 <elliott> monqy: also i take it, your things are all separate IORefs, because of glfw,
03:05:00 <monqy> yes
03:05:01 <monqy> :(
03:05:05 <elliott> you should, probably use ReaderT, with MVars,
03:05:11 <monqy> probalby,
03:05:19 <elliott> I, can do that, since I am also, going to use that
03:05:34 <monqy> aslo i was using float last time but then if reaked out and changed it to double but why
03:05:42 <elliott> what is theta,
03:05:43 <monqy> sometimes i am bad at reasons
03:05:56 <monqy> theta is a lot of thjings
03:06:07 <elliott> also, I do not quite understand, this theta stuff
03:06:10 <elliott> oh game loops
03:06:13 <elliott> um
03:06:15 <elliott> game busyloops
03:06:15 <elliott> lol
03:06:21 <monqy> yeah :(
03:06:36 <monqy> theta was the rotation angle but then other stuff happened
03:06:38 <monqy> like translation
03:06:39 <NihilistDandy> For the sake of curiosity, whose mannerisms are you mimicking right now?
03:06:42 <monqy> and
03:06:46 <elliott> NihilistDandy: ours
03:06:57 <monqy> it became averything
03:07:05 <NihilistDandy> Oh, fun.
03:07:10 <elliott> monqy: its ok, im going to, give it a proper game loop
03:07:12 <elliott> lovingly
03:07:16 <elliott> bye bye, quitter thing,
03:07:20 <monqy> bye bye
03:07:23 <monqy> i will not, miss you
03:07:48 <elliott> monqy: so what is theta exactly
03:07:52 <elliott> just like
03:07:53 <elliott> a game counter
03:07:56 <monqy> ther eis no exact meaning
03:07:58 <elliott> at this point??
03:08:02 <elliott> it's like ticks isn't it
03:08:03 <monqy> check render for usage
03:08:04 <elliott> and do you like
03:08:06 <elliott> ok
03:08:08 <monqy> no ticks goes in time
03:08:14 <monqy> er
03:08:16 <elliott> modifyIORef theta (+ (delta * 10))
03:08:17 <monqy> time goes in time
03:08:19 <NihilistDandy> check render for ticks
03:08:21 <elliott> does theta ever decrease
03:08:32 <monqy> no
03:08:34 <elliott> monqy: ok so basically time is time, theta is ticks, which happen to be used as angle
03:08:37 <elliott> right??/////
03:08:44 <monqy> maybe??
03:08:55 <elliott> you see im, not sure why you have a time ioref,
03:09:00 <elliott> because you only read it directly after writing it
03:09:04 <monqy> i kind of
03:09:05 <monqy> forget
03:09:06 <monqy> why
03:09:08 <monqy> i have it
03:09:10 <monqy> oops
03:09:13 <elliott> oops
03:09:37 <monqy> maybe it s historical cruft i never removed
03:09:38 <monqy> probalby
03:09:41 <monqy> this is my answer
03:12:11 <elliott> SDL_GetTicks -- Gets the number of milliseconds since SDL library initialization.
03:12:22 <elliott> least helpful thing ever but ok
03:12:28 <monqy> probably better than getCPUTime or whatever i used
03:14:39 <evincar> elliott: How is that unhelpful?
03:14:47 <elliott> too, arbaojrbtary,
03:14:49 <evincar> I stopped paying attention because of your shenanigans.
03:14:55 <elliott> our shannigans
03:14:56 <elliott> are good
03:14:57 <elliott> ok
03:14:57 <elliott> racist
03:15:19 <evincar> You're the first one to say anything about race. Now who's the racist?
03:15:23 <elliott> raciest
03:15:26 <elliott> monqy: also, does your key stuff trigger on key up, or key down
03:15:30 <evincar> Mrowr.
03:17:16 <elliott> monqy: also, you indent, by one too many spaces,
03:17:18 <elliott> :(
03:18:14 <monqy> im back. hi
03:18:22 <elliott> monqy: how many ticks per second do you do,
03:18:23 <elliott> i cannot figure it out,
03:18:35 <monqy> uhhhhhhhhhhhhhhhhhhhhhhhhhhhh
03:18:52 <evincar> Fixed frame rates make me sad.
03:19:09 <monqy> i think it triggers on key down i think
03:19:23 <monqy> or while the key is held down
03:19:24 <monqy> or something
03:19:37 <monqy> as for ticks per second, uhh, what's a tick
03:19:47 <elliott> monqy: your, delta thing
03:19:53 <monqy> oh
03:19:53 <elliott> evincar: frame rate =/= tick rate
03:20:08 <elliott> evincar: unless you like the world running at different speeds on different computers?
03:20:37 <monqy> delta is the number of seconds since the last whatever, i think?? why did i convert to seconds??? i don't know????
03:20:43 <elliott> monqy: uh I mean theta
03:20:46 <monqy> oh
03:20:47 <elliott> how many times does theta increase per seconds
03:20:50 <elliott> per second
03:20:56 <monqy> uhh
03:20:56 <elliott> oh
03:20:58 <elliott> ten times per second?
03:21:01 <elliott> modifyIORef theta (+ (delta * 10))
03:21:12 <monqy> the number of times it increases per second is machine-dependant
03:21:12 <monqy> but
03:21:18 <monqy> the amount it increases per second
03:21:21 <monqy> is 10 i think
03:21:27 <monqy> i hope
03:21:43 <monqy> i probably
03:21:44 <monqy> uh
03:21:47 <monqy> screwed it up somewhere
03:21:49 <elliott> right
03:22:00 <monqy> (ages ago)
03:22:34 <monqy> ugh why are all these things iorefs stop being iorefs
03:22:42 <elliott> :t whileM
03:22:43 <lambdabot> Not in scope: `whileM'
03:22:45 <elliott> monqy: im making them MVars,
03:22:50 <elliott> MVars are nice, they are, concurrency-friendly
03:22:52 <elliott> ?hoogle whileM
03:22:53 <lambdabot> No results found
03:22:59 <monqy> whats' whileM
03:23:03 <NihilistDandy> Cannot be true
03:23:04 <elliott> huh whileM is not a stock thing
03:23:16 <monqy> MVar sounds nice..is TVar the STM thing..is it nice too..
03:24:03 <NihilistDandy> @hoogle IfElse
03:24:03 <lambdabot> No results found
03:24:42 <monqy> is whileM like..... forever.... but guarded by a when
03:24:44 <monqy> except
03:24:46 <monqy> different
03:24:48 <monqy> because
03:24:51 <monqy> it's not when
03:24:51 <monqy> it's
03:24:54 <monqy> uh
03:24:59 <monqy> something more like whenM??
03:25:46 <elliott> start <- SDL.getTicks
03:25:47 <elliott> SDL.delay (ticksPerSecond * millisecondsPerSecond)
03:25:47 <elliott> end <- SDL.getTicks
03:25:47 <elliott> forM_ [0 .. (end - start) `div` ticksPerSecond] $
03:25:47 <elliott> im good practices,,,,,
03:26:02 <elliott> monqy: the only gamestate you have is the ticks increasing isn't it
03:26:03 <elliott> haha
03:26:11 <monqy> :'(
03:26:24 <monqy> it was not a real game it was a
03:26:25 <monqy> uh
03:26:30 <monqy> i forget what it was
03:26:31 <monqy> oh right
03:26:48 <monqy> it was like a hello world
03:27:03 <monqy> something to get me started with opengl so i could make something decent out of it
03:29:09 <monqy> except
03:29:15 <monqy> with a badloop and iorefs
03:29:18 <monqy> instead of hello world
03:31:25 <elliott> with actual type `GHC.ForeignPtr.ForeignPtr SDL.SurfaceStruct'
03:31:25 <elliott> Expected type: IO ()
03:31:25 <elliott> Actual type: IO SDL.Surface
03:31:31 <elliott> monqy: SDL, leaked my things, i did not, want to know :(
03:31:47 <monqy> what is that :( :( :( :( (:
03:31:54 <elliott> SDL.Surface's real identity :(
03:31:59 <elliott> also il like the smile at the end
03:34:09 <elliott> monqy: i dont like how some of the mVar functions want me to use IO too :(
03:34:19 <elliott> maybe monad stacks, are bad,
03:34:26 <monqy> monad stacks...:(
03:35:22 <elliott> ?hoogle mask
03:35:23 <lambdabot> No results found
03:35:28 <monqy> mask?
03:35:30 <elliott> monqy: but, i thought you disliked glfw, because callabcks in io,
03:35:43 <elliott> mask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
03:35:44 <elliott> oh
03:35:45 <monqy> callbacks in io are gross too :(
03:35:55 <monqy> what does mask do
03:36:05 <monqy> oh
03:36:13 <elliott> <monqy> callbacks in io are gross too :(
03:36:14 <elliott> whats not gross
03:36:22 <monqy> hgel p i i dopnt knwo :_;
03:36:23 <elliott> thats the true question :(
03:36:36 <monqy> maybe if
03:36:38 <monqy> (magic here)
03:37:03 <monqy> which is why not being gross .... maybe needs a new language??
03:37:16 <elliott> monqy: its probably frp :P
03:37:31 <monqy> probalby
03:37:50 <monqy> maybe banana is good
03:38:13 <monqy> i have never tried any of them because i was too busy freaking over not knowign which to use
03:38:14 <NihilistDandy> is i said!
03:38:51 <elliott> i bet...conal doesnt like banan
03:39:14 <monqy> oh no
03:39:49 -!- MDude has changed nick to MSleep.
03:40:04 <monqy> i am looking at this list and iwll a comment on each of them
03:40:12 <elliott> conal, wouldnt like any of them, :(
03:40:16 <elliott> he would say, they are, not the true path,
03:40:48 <monqy> did conal not have a hand in making a few of them
03:41:01 <monqy> or did he hate that too
03:41:34 <NihilistDandy> conal elliott fruit
03:41:38 <NihilistDandy> Google it
03:41:54 <NihilistDandy> He's all over FRP, it seems
03:42:08 <elliott> NihilistDandy: i know
03:42:09 <monqy> didn't everyone knew that
03:42:11 <NihilistDandy> Also, fruit leather, apparently
03:42:19 <elliott> but on his blog, he is all,
03:42:22 <elliott> "oops, it is all the wrong path,"
03:42:24 <NihilistDandy> I'll bet you didn't know *that*
03:42:25 <elliott> and then eh is like
03:42:32 <elliott> "hey luke palmer,,, what u r doing is good" and i am like
03:42:36 <elliott> but we dont have that compiler yet................
03:42:38 <elliott> :(
03:43:05 <monqy> :(
03:43:16 <NihilistDandy> (:
03:43:24 <NihilistDandy> Turn that frown upside down
03:43:32 <elliott> monqy: now, it has,
03:43:33 <elliott> blackness,
03:43:39 <elliott> oh
03:43:45 <elliott> monqy: i think it is painting once ever y second
03:43:45 <monqy> blac kense
03:43:49 <monqy> oops?
03:43:50 <monqy> ??>?
03:43:52 <monqy> ?
03:44:00 <elliott> SDL.delay (ticksPerSecond * millisecondsPerSecond)
03:44:01 <elliott> oh,
03:44:52 <evincar> NihilistDandy: Don't you mean "turn that frown 180 degrees, or mirror it horizontally"?
03:45:18 <evincar> :( upside-down is, y'know, :(.
03:45:25 <elliott> monqy: oh my god yuou have to see what i have created
03:45:28 <evincar> Approximately.
03:45:29 <elliott> it is hilarious
03:45:37 <monqy> elliott: i want/need to see it
03:45:47 <monqy> elliott: where is it
03:45:57 <elliott> -rwxr-xr-x 1 elliott elliott 14M 2011-08-02 04:44 help
03:46:00 <elliott> how can i get this to you.........
03:46:04 <NihilistDandy> If you mirror it horizontally, it's still a frown
03:46:07 <monqy> source fiels???
03:46:12 <NihilistDandy> What I really mean is "transpose that frown"
03:46:14 <elliott> monqy: but then you could, figure out, the hilarity,...
03:46:22 <NihilistDandy> :( -> (:
03:46:22 <monqy> i will not look,,,untill i see
03:46:34 <monqy> a...conandrum?
03:46:46 <elliott> ok,
03:50:08 <monqy> og hod whats hapenming
03:50:13 <elliott> monqy: love,
03:50:31 <monqy> it is going faster than my head can understand it
03:50:35 <evincar> Transposition sounds hella painful on your face.
03:50:44 <elliott> monqy: its not going fast
03:50:46 <elliott> its actually going too slow
03:50:51 <elliott> its painting the screen really slowly
03:50:52 <monqy> what
03:50:55 <monqy> i
03:50:56 <elliott> like
03:50:58 <elliott> ten times a second only
03:51:01 <elliott> or something
03:51:04 <elliott> so it's really jerky
03:51:12 <NihilistDandy> evincar: Morphine heals all wounds
03:52:02 <elliott> oh wtf
03:52:23 <monqy> it segfaulted when i ^C it help
03:52:37 <elliott> ok its going about 10000 ticks per second lmao
03:52:39 <elliott> erm per real tick
03:52:41 <elliott> monqy: um
03:52:42 <elliott> dunno
03:53:01 <elliott> oh
03:53:03 <elliott> now the boxes just sit there...
03:54:18 <elliott> monqy: soon, it will be rperfect
03:54:50 <elliott> umm
03:54:57 <elliott> what's (ten ticks per second) in (milliseconds per tick)
03:55:01 <elliott> help,
03:55:16 <Zwaarddijk> 100
03:55:24 <elliott> thank you,
03:56:58 <elliott> monqy: ok it is, a bit better,
03:57:01 <elliott> i am going to make it even better,
03:57:13 <monqy> :o
03:57:36 <elliott> SDL_AddTimer -- Adds a timer which will call a callback after the specified number of milliseconds has elapsed.
03:57:36 <elliott> oh
03:57:38 <elliott> sdl has real timer things
03:57:44 <monqy> are they
03:57:45 <monqy> good
03:57:49 <evincar> These are all things I could've told you. :P
03:57:54 <elliott> only one way to fihgtn out
03:57:57 <evincar> Yes, they work fine.
03:58:03 <elliott> where are they in the haskell bindgfindignins......
03:58:08 <elliott> and do they force using io
03:58:11 <elliott> (my bett: yes)
03:58:23 <evincar> But I quit using them for the most part when I switched to variable-frame-rate games.
03:58:32 <elliott> The timer callback function may run in a different thread than your main program, and so shouldn't call any functions from within itself. However, you may always call SDL_PushEvent.
03:58:33 <elliott> ugh
03:58:44 <elliott> evincar: as i said, frame rate =/= tick rate
03:58:57 <evincar> I know, that's why I said "for the most part".
03:59:50 <evincar> I don't often have a world that needs stuff that updates every so many milliseconds.
04:00:14 <evincar> I prefer to construct things from in-world objects that all run in the same timeline.
04:00:23 <elliott> monqy: i have, a plan,
04:00:54 <elliott> evincar: so how would you handle, say, a crate dropping downwards at a rate of one metre per second
04:01:41 <monqy> seconds are slow on my computr...e
04:01:50 <monqy> or metres are biger
04:01:55 <evincar> Drop the crate each frame by an amount proportional to the current actual framerate.
04:02:00 <monqy> or smaler
04:02:01 <monqy> or
04:02:03 <monqy> soemthinger
04:02:31 <evincar> Because chances are the current frame is going to take about as long as the previous one, and if it doesn't, oh well.
04:02:47 <evincar> The effects of local time discontinuities aren't my concern.
04:02:57 <evincar> As long as the rendering is smooth and predictable-ish.
04:03:26 <elliott> "and if it doesn't, oh well"
04:03:39 <elliott> cool, so on slow computers, your game's physics break
04:03:41 <elliott> cool
04:03:43 <evincar> Nope.
04:03:49 <evincar> You just can't predict the future.
04:03:52 <evincar> That's all.
04:03:59 <evincar> And you shouldn't try.
04:04:05 <elliott> what
04:04:12 <monqy> what;e
04:04:12 <NihilistDandy> MY DETERMINISM
04:05:13 <evincar> Time begins. First frame is rendered. Time has elapsed. Next frame is rendered based on elapsed time.
04:05:28 <evincar> That's all I'm saying.
04:05:39 <monqy> that's basically what i did for my dumb boxes hello world i think??
04:06:00 <evincar> The most recently rendered frame always expresses the correct view of the instant in time it began rendering.
04:06:33 <evincar> But the frames are only predictably far apart insofar as the objects in the world behave more or less the same each frame.
04:07:16 <evincar> So introducing many objects might drop my simulation from 110 to 100, but it's still well above the target threshold.
04:09:32 <monqy> im thinking im liking the fixed tickrate with variable framerate thing thouhg it sounds nice
04:09:42 <monqy> or whatever it was
04:09:56 <elliott> all I want is an SDL_Delay that breaks when an event happens
04:10:02 <elliott> does such a thing exist
04:10:12 <monqy> uhhhh
04:10:15 <monqy> i;ve no clue
04:10:18 <elliott> i geuss i could use threads
04:10:34 <monqy> one thing I Remember hating about handling events and stuff is
04:10:36 <monqy> handling events and stuff
04:10:55 <monqy> I forget the speciifcs
04:11:24 <elliott> monqy: yay this is working-ish now
04:11:35 <monqy> wooho
04:11:44 <monqy> whats the -ish mean is it bad
04:12:09 <monqy> i imagine frp would hekp with the evcent handline nightmares
04:12:12 <elliott> well it's really jerky and still uses all the cpu
04:12:19 <evincar> elliott: No such thing exists exactly in SDL.
04:12:28 <monqy> :(: :(* :(* :(
04:14:39 <elliott> help: user error (RTS doesn't support multiple OS threads (use ghc -threaded when linking))
04:14:41 <elliott> evincar: im dum
04:14:42 <elliott> oops
04:14:43 <elliott> i mean monqy
04:14:51 <monqy> oops
04:15:10 <monqy> does that
04:15:11 <monqy> fix it
04:15:12 <monqy> good
04:17:37 * quintopia climbs up the event handline
04:18:44 <elliott> monqy: it is, getting good,
04:18:54 <monqy> yes.....sssss
04:19:55 <elliott> monqy: but, there is bad things, with your modules,
04:19:59 <elliott> i think, maybe,
04:20:01 <elliott> hmm, probably not
04:20:03 <monqy> oopse.
04:20:04 <monqy> oh.
04:20:08 <monqy> oopse??
04:20:46 <elliott> also
04:20:47 <elliott> resizing
04:20:49 <elliott> segfaults it??
04:20:59 <elliott> i think what happens is
04:21:00 <elliott> like
04:21:04 <elliott> all the resizing handling happens
04:21:07 <elliott> while the stuff is drawing...
04:25:16 <elliott> evincar: anyway, I don't see how you can do a decent framerateless game without either using all the CPU or blocking all events
04:25:40 <elliott> eating all the CPU because you're effectively busylooping, or blocking all events because you're sleeping to keep a maximum framerate
04:28:48 <evincar> Just throw a minimal SDL_Delay in the otherwise busy loop so the game can switch out. You do get an artificially imposed maximum frame rate, but you also don't use all of the CPU.
04:29:10 <evincar> And said maximum rate is still rather high.
04:30:24 <evincar> It has more graceful degradation than a fixed frame rate, at least.
04:31:17 <evincar> With frame dropping, you jump in whole fractions of your frame rate.
04:31:39 <elliott> so events are only processed at your constant frame rate.
04:31:54 <elliott> unless you handle events in another thread
04:33:31 <elliott> monqy: ti still segfaults :(
04:33:36 <monqy> :'(
04:33:46 <monqy> how do you mange to segfault...haske.L??
04:33:51 <elliott> with opengl
04:33:56 <monqy> <:I
04:34:01 <monqy> did you
04:34:03 <monqy> poke
04:34:04 <monqy> peointers
04:34:05 <elliott> no
04:34:10 <elliott> monqy: should i, port this, to gpipe,
04:34:22 <elliott> maybe that is
04:34:23 <elliott> the ultimat esolution
04:34:24 <monqy> is gpipe,,,,,,,,owrking-good???
04:34:28 <elliott> maybe it is
04:34:33 <elliott> there is only one way to find out,,,,,,,,,
04:34:58 <monqy> an good idea???/
04:35:15 <elliott> monqy: im will maybe make this less ugly first though...
04:35:22 <monqy> ok
04:38:31 <elliott> monqy: with
04:38:32 <elliott> MY
04:38:32 <elliott> MAGIC
04:39:03 <monqy> what did You DO
04:39:31 <monqy> did you bananana it ....
04:40:06 <elliott> no,
04:41:36 <elliott> monqy: apart from the segufalts inthis is better...
04:41:55 <monqy> sounds like a good
04:42:27 <elliott> huh, gpipe is a bit old
04:42:31 <elliott> last updated september
04:46:31 <elliott> monqy: what if... I gave you this current code, and in the process of fixing it, turned it into my game instead, rather than fixing yours.......
04:46:32 <elliott> would that be bad
04:47:18 <monqy> its fine i'll just pry out the stuff i want
04:47:37 <monqy> it's not like i need the spinny boxes
04:47:52 <monqy> just a starting point from which to make amazing
04:48:43 <elliott> monqy: oh,,, but,,, my game's source code is not released,,,,, until it is completely done
04:49:07 <monqy> oh..,
04:49:14 <monqy> what about
04:49:17 <monqy> jus t part of it
04:49:26 <monqy> or how long will it take to
04:49:27 <elliott> ok,,,maybe
04:49:29 <monqy> completely done
04:49:32 <elliott> a long time
04:50:20 <monqy> ;----;
04:50:31 <elliott> evincar: Anyway, another problem with your approach is that you effectively do have a fixed tick rate: the precision of your OS timer.
04:50:51 <elliott> And if you're afraid of floats like right-thinking people, you have to pick a fixed tick rate.
04:51:30 <monqy> floats scare me dead
04:52:31 <evincar> elliott: Alright, so it's fixed-ish. My current game varies by about 30fps, broadly, depending on load.
04:52:50 <evincar> The point is that it does so without my intervention or imposition of a specific upper bound.
04:53:12 <evincar> And it does it more gracefully than dropping frames.
04:53:17 <elliott> evincar: No, but the specific bound is right there, it's just hidden.
04:53:22 <elliott> Nobody's proposing frame-dropping. :p
04:54:02 <elliott> I'm just saying that a few sleep calls let you use an int for the ticks rather than an ugly float, provides greater consistency, and reduces CPU usage immensely.
04:54:55 <evincar> I am sleeping. It doesn't bog the CPU. And if I really cared about avoiding floats, I'd use a fix.
04:55:06 <elliott> If you're sleeping, then you have a fixed tick rate.
04:55:46 <evincar> Approximately. Maximum.
04:56:30 <evincar> Sleeping alone isn't the way to handle frame timing.
04:56:38 <evincar> I hope you're not saying that.
04:57:30 <elliott> Of course not.
04:57:39 <elliott> start <- SDL.getTicks
04:57:39 <elliott> SDL.delay (millisecondsPerSecond `div` ticksPerSecond)
04:57:39 <elliott> end <- SDL.getTicks
04:57:39 <elliott> return $ (end - start) `div` (millisecondsPerSecond `div` ticksPerSecond)
04:57:43 <elliott> That's the obvious way to do it.
04:57:49 <elliott> (getTicks returns in milliseconds.)
05:01:50 <Lymee> Haskell doesn't have a wait function in it's standard library?
05:02:09 <elliott> Yes.
05:02:14 <Lymee> @hoogle Int -> IO ()
05:02:15 <lambdabot> Control.Concurrent threadDelay :: Int -> IO ()
05:02:15 <lambdabot> System.Console.Editline.Readline setCompletionQueryItems :: Int -> IO ()
05:02:15 <lambdabot> System.Console.Editline.Readline setEnd :: Int -> IO ()
05:02:16 -!- GreaseMonkey has joined.
05:02:17 <elliott> But I'm using SDL's because, I don't know, it must be better.
05:02:49 <evincar> It doesn't have particularly good guarantees.
05:03:03 <elliott> Well, that's why I use it resiliently.
05:03:11 <elliott> It's impossible to have good guarantees with traditional OSes.
05:03:15 <evincar> 10ms is the best it promises for minimum delay, but in practice it varies a lot platformwise.
05:03:41 <evincar> And 10ms is also the minimum resolution it promises.
05:03:52 <Lymee> > 1000/60
05:03:53 <lambdabot> 16.666666666666668
05:04:15 <Lymee> No wonder why 60 FPS is so hard to maintain without feedback...
05:04:49 <elliott> evincar: That's still enough for more thanenough fps.
05:04:51 <elliott> [asterisk]than enough
05:06:02 <elliott> monqy: it sads me that gpipe depends on glut :(
05:06:42 <monqy> sads me too:((((
05:07:11 <Lymee> elliott, I had to put a timing loop on the wait command for it to be reliable
05:07:14 <monqy> i wonder what gpipe does..internally...if it would be a good idea to use that as a starting point...formaking something.. better
05:07:40 <Lymee> s/put a timing loop on/add timing code to/
05:07:41 <elliott> monqy: it just does opengl :P
05:07:45 <elliott> monqy: but there's a lot of code
05:07:50 <monqy> yes but in what manner
05:07:57 <Lymee> OpenGL can sync FPS for you?
05:08:28 <Lymee> @hoogle Int -> IO Int
05:08:29 <lambdabot> System.Console.Editline.Readline complete :: Int -> Char -> IO Int
05:08:29 <lambdabot> Control.Exception evaluate :: a -> IO a
05:08:29 <lambdabot> Control.OldException evaluate :: a -> IO a
05:08:44 <Lymee> Strange that there's no wait command that returns the actual time waited.
05:09:19 <Lymee> > a / b = a `div` b
05:09:19 <lambdabot> <no location info>: parse error on input `='
05:09:49 <elliott> monqy: what do you mean
05:10:05 <Lymee> elliott, how would you write a sync loop with OpenGL?
05:11:27 <monqy> elliott: i mean if gpipe screws some things up maybe a modified gpipe with better things would be better??? or would it be better to start with opengl??
05:11:56 <elliott> Lymee: ?
05:12:05 <elliott> monqy: i dont like, forking things, because always worse than rewriting,
05:12:18 <monqy> :(
05:13:35 <evincar> elliott: All of my well-intentioned branch-rewrites turn into "fuck this, I'll do it from scratch".
05:15:16 <Lymee> @hoogle a -> b
05:15:16 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
05:15:16 <lambdabot> Prelude ($) :: (a -> b) -> a -> b
05:15:17 <lambdabot> Prelude ($!) :: (a -> b) -> a -> b
05:15:37 <Lymee> :t undefined
05:15:38 <lambdabot> forall a. a
05:15:57 <Lymee> :t \x -> undefined
05:15:57 <lambdabot> forall t a. t -> a
05:16:30 <elliott> monqy: im going to backup this code as-is, port it to GPipe, then maybe see about reactive-banana????
05:16:30 -!- jimtendo has quit (Read error: Connection reset by peer).
05:16:31 <elliott> but ugh glut
05:16:34 -!- jimtendo_ has joined.
05:16:57 <monqy> is there any way to remove glut from gpope
05:17:02 <elliott> yes by modifying it
05:19:26 <Lymee> :t (,,) 1
05:19:26 <lambdabot> forall t b c. (Num t) => b -> c -> (t, b, c)
05:19:43 <elliott> monqy: lol.... i commented on the initial gpipe submission a year ago
05:19:53 <Lymee> Eh?
05:19:54 <monqy> you did???
05:19:56 <elliott> but i...forgot....
05:20:00 <elliott> monqy: yes.......... http://www.reddit.com/r/programming/comments/9qrl5/gpipe_a_functional_graphics_api_for_programmable/c0e0vmo?context=1
05:20:01 * elliott famous
05:20:05 <elliott> got an whole two points
05:20:06 <monqy> was it a good comment a wise comment
05:20:10 <Lymee> Is there a way to get any arbitrary Num from "1"?
05:20:22 <pikhq> :t 1
05:20:22 <elliott> monqy: it was an anti-bonch comment so yes...
05:20:23 <lambdabot> forall t. (Num t) => t
05:20:25 <elliott> Lymee: What?
05:20:32 <Lymee> <Lymee> :t (,,) 1
05:20:32 <Lymee> <lambdabot> forall t b c. (Num t) => b -> c -> (t, b, c)
05:20:35 <monqy> who's bonch he looks like an awful person
05:20:39 <elliott> he is
05:20:43 <elliott> he's an anti-haskell spammer
05:20:54 <elliott> and also just a generally awful person
05:20:57 <monqy> hwo can people b.e.... anti-haskelle
05:21:01 <elliott> full of hatred and death
05:21:11 <pikhq> monqy: "Derp malloc is fast"
05:21:21 * elliott read shis user page
05:21:24 <elliott> ok now he is anti-idra
05:21:24 <elliott> who is
05:21:26 <elliott> some starcraft playe
05:21:27 <elliott> r
05:21:47 <elliott> "Because the number of people using something determines its quality. Also, Britney Spears is a superior artist to Mozart because more people are listening to her songs than Mozart concerts." --bonch
05:21:49 <elliott> "Haskell is a niche language nobody uses but a small cabal of Reddit users." --bonch
05:22:04 -!- jimtendo_ has quit (Ping timeout: 252 seconds).
05:22:31 <Lymee> Therefore PHP > Haskell?
05:24:01 -!- evincar has quit (Quit: Presumably!).
05:24:02 <NihilistDandy> wut
05:24:07 <pikhq> Therefore "hey id like to make thsi computer thing" > Haskell.
05:25:08 <elliott> "The first parameter is the primitive type (currently Triangle, Line or Point)"
05:25:13 <elliott> monqy: canat use quads :(
05:25:27 <monqy> what about trianglestrips
05:25:43 <elliott> yes there is that....
05:25:50 <monqy> my amazing secret project only needs trianglestrips
05:25:58 <elliott> oh wait hmmmm
05:26:01 <elliott> monqy: is it TriangleCraft
05:26:38 <monqy> it's hard to describe
05:27:24 <elliott> monqy: there is also, LineStrip, LineList, TriangleList, TriangleFan
05:27:27 <elliott> also describe it :{
05:28:07 <monqy> special-purpose graphics libary for my purposes only which draws everything in a special way using trainglestrips
05:28:29 <elliott> monqy: what about TriangleFans....... my test code uses TriangleFans because fast??
05:28:44 <elliott> monqy: and i will assume it's a minecraft clone until proven otherwise :P
05:29:33 <monqy> 1) maybe i actually want trianglefans I should actually do some reasearching on what these things do
05:29:49 <elliott> monqy: with trianglefans you can draw a cube with only like
05:29:57 <elliott> let f v = [v,(0,0,0.51),(0,0.51,0.51),(0,0.51,0),(0.51,0.51,0),(0.51,0,0),(0.51,0,1),(0,0,0.51)]
05:29:59 <elliott> let xs = f (0,0,0) ++ f (0.51,0.51,0.51) :: [(GL.GLfloat,GL.GLfloat,GL.GLfloat)]
05:30:02 <elliott> not many elements.................
05:30:05 <monqy> 2) it is for me making things involving graphics and it might end up 2d only and it would probably be totally inappropriate for minecraft clones
05:30:14 <elliott> A triangle fan is a primitive in 3D computer graphics that saves on storage and processing time. It describes a set of connected triangles that share one central vertex (unlike the triangle strip that connects the next vertex point to the last two used vertices to form a triangle).
05:30:28 <elliott> monqy: if you're just doing two dimensional i'd use sdl and save all the hassle
05:30:49 <elliott> monqy: looks like triangle strips are the fastest thing
05:31:03 <monqy> does sdl do trianglestirps
05:31:16 <monqy> im not good at this
05:32:15 <elliott> monqy: no.................but you could code them
05:32:18 <elliott> sdl just does blitting basically :P
05:32:30 <elliott> The cube is defined in model-space, i.e where positions and normals are relative the cube. We now want to rotate that cube using a variable angle and project the whole thing with a perspective projection, as it is seen through a camera 2 units down the z-axis.
05:32:35 <elliott> help gpipe tutorial is hurting me hlep
05:33:04 <fizzie> If you pass vertex data designed for GL_QUAD_STRIP to a GL_TRIANGLE_STRIP, it'll draw it just fine, IIRC the vertex ordering works like that. The hardwares only draw triangles anyway.
05:35:04 <elliott> translate :: (Transpose m mt, Reverse' () mt (v' :. t), Reverse' (v' :. ()) t v'1, Transpose v'1 m, Num v', Num a, Snoc v a v') => v -> m -> m
05:35:05 <NihilistDandy> 90% of bonch is apparently bitching about the lack of Starcraft content in /r/starcraft
05:35:08 <NihilistDandy> How cute
05:35:09 <elliott> help
05:35:38 <elliott> help help help
05:36:10 <elliott> help
05:36:15 <elliott> ;__;
05:36:39 <elliott> monqy: this is compmpalitcated
05:36:56 <fizzie> (And I would suppose a triangle fan is the fastest primitive when your faces happen to be in a fanlike configuration.)
05:38:25 <monqy> elliott: help how to help help
05:38:38 <monqy> elliott: what's even hgapp[ening haelp
05:40:28 <elliott> Context reduction stack overflow; size = 21
05:40:28 <elliott> Use -fcontext-stack=N to increase stack size to N
05:40:30 <elliott> help
05:40:35 <monqy> qhwats that
05:40:36 <monqy> helwp
05:41:52 <monqy> also would it be reasonably efficient to base my whatever on whatever sdl does to do triangles if that would be simpler
05:42:07 <monqy> or i guess i could use quads if that would be simpler??
05:42:33 <Lymee> elliott, don't you need two triangle fans to draw an cube?
05:43:53 <elliott> Lymee: i dont know
05:43:58 <elliott> monqy: sdl doesnt do anything to do triangles
05:44:05 <elliott> monqy: you literally blit arrays of pixels to the screen that' sit
05:44:08 <elliott> it's totally software-based
05:44:20 <monqy> :(
05:44:46 <Lymee> elliott, can you draw two parallel surfaces with a triangle fan? You'd need two corner shaped ones, right?
05:44:52 <elliott> im doing sauqraes
05:44:53 <coppro> well you can use its window-handling functions in conjunction with OpenGL
05:45:06 <elliott> > transform angle (width:.height:.()) (pos, norm, uv) = (transformedPos, (transformedNorm, uv))
05:45:07 <elliott> > where
05:45:07 <elliott> > modelMat = rotationVec (normalize (1:.0.5:.0.3:.())) angle `multmm` translation (-0.5)
05:45:07 <elliott> > viewMat = translation (-(0:.0:.2:.()))
05:45:07 <elliott> > projMat = perspective 1 100 (pi/3) (fromIntegral width / fromIntegral height)
05:45:07 <elliott> > viewProjMat = projMat `multmm` viewMat
05:45:07 <lambdabot> <no location info>: parse error on input `='
05:45:08 <lambdabot> <no location info>: parse error on input `='
05:45:08 <lambdabot> <no location info>: parse error on input `='
05:45:08 <lambdabot> <no location info>: parse error on input `='
05:45:08 <lambdabot> <no location info>: parse error on input `='
05:45:09 <elliott> > transformedPos = toGPU (viewProjMat `multmm` modelMat) `multmv` (homPoint pos :: Vec4 (Vertex Float))
05:45:09 <lambdabot> <no location info>: parse error on input `where'
05:45:11 <lambdabot> <no location info>: parse error on input `='
05:45:12 <elliott> > transformedNorm = toGPU (Vec.map (Vec.take n3) $ Vec.take n3 $ modelMat) `multmv` norm
05:45:13 <lambdabot> <no location info>: parse error on input `='
05:45:14 <elliott> halp monqy
05:45:16 <elliott> coppro: duh
05:45:18 <elliott> oh god lambdabot
05:45:19 <monqy> helpe
05:45:27 <coppro> lol
05:46:06 <monqy> elliott: thats gpipe? whats it doing
05:46:15 <elliott> monqy: i dont know........
05:46:19 <elliott> transforming a cube
05:46:23 <Lymee> elliott, that type definition scares me.
05:46:24 <elliott> BUT NOT IN A SIMPLE WAY
05:46:31 <elliott> Lymee: there's no type definition there.
05:46:37 <Lymee> I mean the one you posted.
05:46:43 <elliott> oh
05:46:44 <elliott> right
05:46:46 <elliott> yeah
05:46:48 <monqy> the hellish monad stack?
05:46:51 <elliott> no
05:46:56 <elliott> <elliott> translate :: (Transpose m mt, Reverse' () mt (v' :. t), Reverse' (v' :. ()) t v'1, Transpose v'1 m, Num v', Num a, Snoc v a v') => v -> m -> m
05:46:58 <Lymee> Is it considered good practice to leave out type definitions when they get like that?
05:47:00 <monqy> oh
05:48:18 <fizzie> Lymee: The first vertex is shared among all triangles of the triangle fan, so you definitely can't draw a cube with a single fan; it can't draw any of the faces that don't touch the corner you start from. Drawing a cube with two starting from opposite corners sounds possible, though.
05:48:49 <quintopia> drawing a cube with a triangle strip is easier
05:49:03 <NihilistDandy> Lymee: I would think it would be *worse* practice to leave them out if they got like that
05:49:27 <fizzie> Oh? One strip to go "around" the cube, and then the top and bottom separately?
05:49:37 <quintopia> no
05:49:42 <quintopia> one strip period
05:49:57 <monqy> sdl-gfx has trangles maybe i think. would it maybe help me maybe
05:50:03 <quintopia> some vertices have to be repeated either way
05:51:16 <elliott> <Lymee> Is it considered good practice to leave out type definitions when they get like that?
05:51:21 <elliott> it probably won't even be inferred with that
05:51:30 <elliott> but yeah, no, it'd be worse
05:51:34 <quintopia> erm, maybe it can't be done with one strip. maybe it still needs two.
05:52:05 <quintopia> i tried
05:53:41 <elliott> <interactive>:1:24:
05:53:41 <elliott> Couldn't match type `CPU m0'
05:53:42 <elliott> with `(Float :. (Float :. (Float :. (Float :. ()))))
05:53:42 <elliott> :. ((Float :. (Float :. (Float :. (Float :. ()))))
05:53:42 <elliott> :. ((Float :. (Float :. (Float :. (Float :. ()))))
05:53:42 <elliott> :. ((Float :. (Float :. (Float :. (Float :. ())))) :. ())))'
05:53:44 <elliott> help
05:54:00 <fizzie> Those are some wonderful types you have there.
05:54:05 <elliott> fizzie: its Vecs fault
05:54:13 <Lymee> .........................................
05:54:25 <Lymee> That is a joke right
05:54:49 <Lymee> :. = two tuple?
05:55:09 <Lymee> (Float :. (Float :. (Float :. (Float :. ())))) = four tuple?
05:55:42 <Lymee> Why isn't that ((Float,Float,Float,Float),(Float,Float,Float,Float),(Float,Float,Float,Float),(Float,Float,Float,Float)), or something similar with an alias for (Float,Float,Float,Float) defined?
05:55:46 <elliott> its Mat44 ghc just sucks at types
05:55:50 <elliott> and because vectors are more general
05:57:49 <fizzie> You can map over them and everything.
05:58:39 <fizzie> elliott: Maybe you could steal a page from C++'s book, and implement a STLFilt-like tool ("VecFilt"?) to shorten those error messages.
05:58:55 <elliott> :-)
05:59:12 <Lymee> fizzie, how would you map over a structure (a :. b)
05:59:37 <Lymee> In particular, check if one of them is a list?
05:59:40 <Lymee> Does Haskell let you do that?
06:00:03 <elliott> what?
06:00:03 <fizzie> Lymee: http://hackage.haskell.org/packages/archive/Vec/0.9.8/doc/html/Data-Vec-Base.html#t:Map
06:00:32 <pikhq> Lymee: What, you mean like ([a] :. b)? Well, you'd define a function on ([a] :. b)...
06:01:11 <elliott> monqy: im cry
06:01:32 <monqy> elliott: ;_+;
06:01:38 <monqy> elliott: whats hapen
06:05:10 -!- pikhq has quit (Ping timeout: 250 seconds).
06:05:11 <elliott> monqy: gpipe types, are hard,
06:05:40 <monqy> :(
06:06:36 <elliott> monqy: but i am, persevering
06:06:45 <elliott> because it would be totally cool if all of my game could be purely-functional
06:07:34 <elliott> ok ive got this from the article
06:07:37 <elliott> transform :: Float -> Vec2 Int -> (Vec3 (Vertex Float), (Vec3 (Vertex Float),c)) -> (Vec4 (Vertex Float), (Vec3 (Vertex Float), c))
06:07:39 <elliott> now to make it proper...
06:08:01 -!- derrik has joined.
06:08:12 -!- TeruFSX has quit (Read error: Operation timed out).
06:10:11 -!- pikhq has joined.
06:16:27 <elliott> asdpogidgjofkhljdpoghklm
06:16:34 <elliott> monqy: this is complicated :(
06:16:48 <elliott> like in this tutorial...
06:16:51 <elliott> they're doing cubes like
06:16:56 <elliott> PrimitiveStream Triangle (Vec3 (Vertex Float), Vec3 (Vertex Float), Vec2 (Vertex Float))
06:16:59 <elliott> positions, normals and uv-coordinates
06:17:07 <elliott> and im just like.................. how do i draw a square
06:17:46 * elliott looks at gpipe-examples insetad
06:17:49 <elliott> triangle :: PrimitiveStream Triangle (Vec3 (Vertex Float))
06:17:50 <elliott> triangle = toGPUStream TriangleList $
06:17:50 <elliott> [ (-0.8):.0.8:.0.0:.(),
06:17:50 <elliott> 0.8:.0.8:.0.0:.(),
06:17:50 <elliott> 0.0:.(-0.8):.0.0:.() ]
06:17:51 <elliott> this is more like it...
06:19:00 <monqy> snazzey
06:19:30 <monqy> though I must admit I don't like invisible boundries
06:19:37 <monqy> between triangles in trianglelists, in this case
06:19:52 <monqy> that is, unless trianglelists are different than how im thinking
06:20:00 <monqy> are they more like strips
06:20:12 <monqy> in which case i guess it would make sense to just have a big list of points
06:24:18 <elliott> monqy: donot worry..... soon i will have your entire game working with reactive-banana and GPipe........
06:24:41 <monqy> im hapey
06:25:19 <elliott> monqy: can i have a five
06:25:29 <monqy> 5
06:25:34 <elliott> thx
06:26:18 -!- derrik has quit (Quit: gone).
06:27:36 <elliott> monqy: it segfault :(
06:27:40 <monqy> :'(
06:37:28 <elliott> monqy: it no segfault
06:37:31 <elliott> but im having troubles
06:37:32 <monqy> :')
06:37:33 <elliott> but i will prevail
06:37:35 <monqy> :'(
06:37:37 <monqy> :')
06:37:40 <elliott> and probably make the resulting program like 900 times larger and slower
06:37:41 <elliott> but OH WELL
06:37:45 <monqy> :'(
06:39:18 <elliott> monqy: im sorry for emotional rollercoaster
06:39:31 <monqy> its okay i like roalercoasters
06:40:21 <elliott> square :: PrimitiveStream Triangle (Vec3 (Vertex Float))
06:40:22 <elliott> square = toGPUStream TriangleFan $ [vt 1 1, vt 1 (-1), vt (-1) (-1), vt (-1) 1]
06:40:22 <elliott> where vt a b = a :. b :. 0 :. ()
06:40:32 <elliott> fizzie: You told me I could just pass quads data to a trianglefan expecter.
06:40:34 <elliott> But you were WRONG
06:40:44 <elliott> Or wait.
06:40:46 <elliott> fizzie: Did you say TriangleStrip
06:41:21 <fizzie> TriangleStrip, yes.
06:41:28 <fizzie> If it's QuadStrip data, that is.
06:41:33 <fizzie> Not separate quads, obvsly.
06:42:08 <fizzie> Also you may want to check the vertex order. But I think it went the right way around.
06:42:38 <elliott> fizzie: but it was separate quads....
06:42:43 <elliott> But all I want to draw is a square.
06:42:47 <elliott> SUERLY IT CANT BE SO HARD
06:43:11 <fizzie> If you want a single square, you can just give the four points into a single TriangleFan.
06:43:28 -!- lament has quit (Ping timeout: 252 seconds).
06:43:33 <elliott> Oh, right, that actually works.
06:43:51 <fizzie> Not sure what would be the optimal way to draw a large amount of non-connected quads though. Maybe a TriangleList and manually doing each quad as two triangles.
06:43:57 <elliott> Except... wait what... hmm.
06:50:04 <fizzie> GL_TRIANGLE_FAN's vertices are (1, n+1, n+2) while GL_TRIANGLE_STRIP's are (n, n+1, n+2) for odd n, (n+1, n, n+2) for even; so if you pass four vertices, that's (1, 2, 3)+(1,3,4) for the fan, (1,2,3)+(3,2,4) for the strip. Both could be used to draw a square, you'd just have to pass the corners in a different order.
06:59:44 <elliott> "Ugh. Hipster activists are so annoying. I bet you ride a fixed speed bike and eat granola bars for breakfast." --bonch on saving the lions
07:01:28 <elliott> monqy: when you passed width=fifty to square stuff
07:01:32 <elliott> that was width in pixels right??
07:01:50 <monqy> uhh
07:01:53 <monqy> i dunno maybe
07:01:59 <monqy> wait no
07:02:00 <monqy> that uh
07:02:06 <monqy> was half the width in pixels, if anything
07:02:22 <elliott> monqy: oh rigth
07:02:24 <elliott> monqy: but it's like...
07:02:29 <elliott> now i have something that takes a float as the width and....
07:11:18 <monqy> yep
07:12:04 <elliott> monqy: and what do i.... do..
07:12:07 <elliott> to make it pixel again
07:12:23 <monqy> what haepend what bborke ;_;
07:12:31 <elliott> <elliott> monqy: oh rigth
07:12:31 <elliott> <elliott> monqy: but it's like...
07:12:31 <elliott> <elliott> now i have something that takes a float as the width and....
07:12:35 <elliott> its turned into something that takes like
07:12:40 <elliott> a float where one = full screen width/height
07:13:24 <monqy> floats
07:13:28 <elliott> yes
07:13:29 <elliott> so
07:13:33 <elliott> i want to turn it into something taking pixels again
07:13:34 <elliott> help?
07:13:38 <monqy> oh
07:13:43 <monqy> i've never used gpipe help
07:13:48 <elliott> but its not gpipe its just
07:13:49 <monqy> is flaots how gpipe workse
07:13:51 <elliott> things
07:13:51 <monqy> oh
07:13:55 <monqy> what is this things
07:14:06 <elliott> things
07:14:11 <monqy> things
07:14:30 <monqy> how did you manage to make it only work in terms of total screen size
07:14:38 <monqy> how does this happen
07:14:56 <elliott> thats jsut how it works :(
07:15:05 <elliott> monqy: whats preservingMatrix
07:15:10 <elliott> again??
07:15:40 <monqy> it basically isolates matrix transformations
07:15:46 <monqy> contains them
07:15:47 <monqy> it's real nice
07:15:56 <elliott> monqy: what does that mean,
07:16:16 -!- cheater_ has joined.
07:16:51 <monqy> it duplicates the top of the matrix stack (the current matrix) and pushes it onto the matrix stack (new current matrix) and then does the provided action (its argument) and then pops the matrix (so all transformations to that matrix don't affect following actions)
07:17:03 <elliott> monqy: what
07:17:05 <elliott> ok
07:17:11 <elliott> monqy: is that how your squares appear like
07:17:12 <monqy> so it's not like you're mucking around with global state
07:17:12 <elliott> pixelwise
07:17:15 <elliott> rather than screen percentage wise
07:17:16 <monqy> uhh
07:17:17 <monqy> no
07:17:18 <elliott> then
07:17:19 <elliott> how
07:17:19 <elliott> that
07:17:20 <elliott> :(
07:17:22 <monqy> it's how I turn and transform them
07:17:23 <monqy> uhh
07:17:24 <elliott> ive never had pixelwise in my opengl programs
07:17:26 <elliott> it
07:17:28 <monqy> what
07:17:28 <monqy> i
07:17:30 <elliott> :(
07:17:50 <monqy> maybe my magic is in the stuff i put at the beginning in the initialization
07:17:53 <monqy> the stuff that made the view
07:17:57 <monqy> and the ortho2d stuff
07:17:58 <elliott> what was that
07:18:00 <elliott> oh
07:18:00 <monqy> uhh
07:18:01 <elliott> right....
07:18:04 <monqy> do you still have it
07:18:34 <elliott> GL.viewport $= (GL.Position 0 0, size)
07:18:34 <elliott> GL.matrixMode $= GL.Projection
07:18:34 <elliott> GL.loadIdentity
07:18:34 <elliott> GL.ortho2D 0 (realToFrac w) (realToFrac h) 0
07:18:34 <elliott> GL.translate $ GL.Vector3 (realToFrac w / 2) (realToFrac h / 2) (0 :: GL.GLdouble)
07:18:39 <elliott> i dont understand what it is doing :(
07:19:10 <monqy> uhh
07:19:13 <monqy> i copied most of it from a thing
07:19:21 <monqy> but i think i understand it
07:20:32 <elliott> monqy: what does orthotwodee mean
07:21:05 <fizzie> It's ortho3D with the near and far clipping planes at -1 and 1.
07:21:19 <monqy> ok first it creates the viewport with width and height specified by size, and the lower-left corner being (0, 0), then it sets the current matrix on which it operates to the projection matrix, initializes it to the identity matrix, sets up a projection matrix there spanning from 0-width and height-0, and then translates to centre it
07:21:26 <monqy> this is
07:21:27 <monqy> my analysis
07:21:30 <elliott> ok... but what does that do that's not default
07:21:31 <elliott> like
07:21:32 <elliott> what do you do
07:21:33 <elliott> get
07:21:35 <elliott> if you do none of that
07:21:37 <elliott> ???
07:21:41 <monqy> ????
07:21:47 <elliott> :(
07:21:49 <elliott> maybe fizzie knows
07:21:58 <fizzie> The default projection matrix is the identity matrix.
07:22:02 <elliott> ok
07:22:08 <elliott> one day i will be expert :(
07:22:15 <fizzie> That would be a glOrtho from -1 to 1.
07:22:22 <elliott> oh SO
07:22:23 <elliott> is the reason
07:22:29 <elliott> that (-one,one) like fills my screen
07:22:30 <elliott> because
07:22:32 <fizzie> Instead of -w/2 to w/2 like that.
07:22:34 <elliott> that's what the projection matrix is?
07:22:37 <fizzie> Yes, that sounds likely.
07:22:42 <elliott> ahhhhhhhhh now i understnand :D
07:22:45 <monqy> i set it to identity because that's in a glfw windowresizecallback i think so the projectionmatrix will be mucked up and i'll have to reset it to identity
07:22:46 <elliott> so is that like how i set FOV
07:22:53 <elliott> when i have a hypothetical block world
07:23:03 <monqy> well with a block world you want 3d stuff
07:23:11 <elliott> well yeah but i mean
07:23:13 <elliott> the ortho stuff in general
07:23:21 <fizzie> For that you'd want a perspective projection matrix.
07:23:27 <elliott> oh
07:23:32 <elliott> what would an orthographic thing do
07:23:33 <elliott> in threedee
07:23:34 <fizzie> Those tend to take the FOV quite directly.
07:23:42 <fizzie> It would do an isometric-style thing.
07:23:47 <elliott> :DDD omg
07:24:05 <monqy> or you could muck with the matrix yourself??
07:24:07 <monqy> make it go all wack
07:24:41 <olsner> use the matrix of solidity as the projection matrix
07:24:52 <elliott> :DDD
07:25:55 <Patashu> oh hey, haskell opengl bindings
07:26:13 <elliott> they suck (thats why im (using gpipe :') ))
07:26:20 <elliott> well they don't suck
07:26:22 <elliott> but opengl sucks in general
07:26:29 <monqy> so what does gpipe do
07:26:30 <monqy> i mean
07:26:32 <monqy> about this stuff
07:26:36 <elliott> what do you mean
07:26:53 <monqy> deal with opengl's matricies and stuff
07:26:58 <elliott> it just
07:27:00 <elliott> transforms them into functional matrices
07:27:02 <elliott> with a bunch of like
07:27:04 <elliott> toGPU stuff
07:27:07 <elliott> which turns things into shaders
07:28:42 -!- pikhq_ has joined.
07:30:49 -!- pikhq has quit (Ping timeout: 240 seconds).
07:36:24 -!- elliott has quit (Remote host closed the connection).
07:36:53 -!- elliott has joined.
07:37:02 <elliott> ao um,
07:37:07 <elliott> asterisk so
07:37:14 <elliott> monqy: im going to, totally gpipe it up
07:37:19 <monqy> oh man
07:37:31 <elliott> r u, PREPARED,
07:37:52 <monqy> per haps
07:43:59 -!- NihilistDandy has quit (Read error: Connection reset by peer).
07:48:31 <elliott> "I don't make video games. I am not involved with the video game industry. I do not want to talk to you about graphics, textures, engines, or anything of that sort." --John Carmack
07:50:18 -!- NihilistDandy has joined.
07:52:24 -!- NihilistDandy has quit (Read error: Connection reset by peer).
07:52:59 -!- NihilistDandy has joined.
07:54:05 <elliott> orthoProj = toGPU $ orthogonal (-10) 10 (2:.2:.())
07:54:12 <elliott> fizzie: monqy: this looks like the ortho to me...
07:54:17 <elliott> i think???
08:00:56 <fizzie> Soubds likely, though I don't know about the values. Maybe width, height and then a Vec2 for the center and/or corner.
08:01:20 <fizzie> I suppose it has documentation.
08:02:02 <elliott> fizzie: I'm not sure though, since that's the projSquare function.
08:02:08 <elliott> Then it gets rasterised and drawn onto the frame.
08:02:14 <elliott> And I think orthogonals are a global thing.
08:02:39 <elliott> In fact it seems like orthoProj is just multiplied with the ... homPoint of the vertex position thing.
08:02:45 <elliott> To form a four-dimensional vector. Umm.
08:02:54 <coppro> elliott: so I finally got back to watching old doctor who... I like the vulcan neck pinch
08:03:22 <fizzie> Well, maybe it's not using the fixed-function OpenGL pipeline, I think you can opt for that nowadays.
08:03:38 <elliott> coppro: The Doctor: literally a Vulcan.
08:03:41 <elliott> fizzie: im not sure what this means,,
08:04:19 <fizzie> In old-style OGL you'd set the (global-state) projection matrix, which is then used to transform coords in the camera coordinate system to the screen's, by multiplying them.
08:04:46 <elliott> Right.
08:04:49 <fizzie> But I suppose you can nowadays opt for doing all geometry with programmed shaders.
08:04:52 <fizzie> Maybe.
08:06:08 <elliott> fizzie: It does convert things to shaders automagically, yes.
08:06:19 <elliott> It's a little SPOOKY.
08:07:03 <Patashu> I didn't learn shaders in my opengl class :(
08:07:07 <Patashu> they sound cool though
08:07:18 <elliott> i need an opengl class
08:07:26 <elliott> or just, opengl not to exist
08:07:32 <monqy> in vanalla open gl you have to specifiy shaders an a special langauge???
08:07:39 <monqy> crayze
08:07:39 <elliott> yes
08:07:42 <elliott> its
08:07:45 <elliott> monqy: they're written in like
08:07:48 <elliott> opencl language
08:07:49 <monqy> is it good langauge
08:07:53 <elliott> it's based on C
08:08:00 <elliott> __kernel void fft1D_1024 (__global float2 *in, __global float2 *out,
08:08:00 <elliott> __local float *sMemx, __local float *sMemy) {
08:08:01 <elliott> int tid = get_local_id(0);
08:08:01 <elliott> int blockIdx = get_group_id(0) * 1024 + tid;
08:08:01 <elliott> float2 data[16];
08:08:01 <elliott>
08:08:02 <monqy> is this basing appropriate
08:08:03 <elliott> // starting index of data to/from global memory
08:08:05 <elliott> in = in + blockIdx; out = out + blockIdx;
08:08:07 <elliott>
08:08:07 <monqy> ewwww
08:08:11 <elliott> globalLoads(data, in, 64); // coalesced global reads
08:08:13 <elliott> fftRadix16Pass(data); // in-place radix-16 pass
08:08:15 <elliott> twiddleFactorMul(data, tid, 1024, 0);
08:08:16 <elliott> this is what it looks like.................
08:08:19 <elliott> monqy: no, because GPUs are even lower-level than C
08:08:21 <elliott> C is too high-level
08:08:23 <elliott> see Checkout
08:08:25 <elliott> monqy: ... but with gpipe it like does your haskell all symbolic and compiles it to a shade
08:08:27 <elliott> r
08:08:31 <elliott> automagically
08:08:35 <elliott> monqy: (http://esolangs.org/wiki/Checkout)
08:08:49 -!- Taneb has joined.
08:08:54 <elliott> god ais can't write
08:08:57 <monqy> ah right
08:09:02 <monqy> walls of text
08:09:06 <elliott> A different form of checkout/2 can move or (possibly readonly) copy between level 1 memory and level 3 memory. The semantics of this need a little explanation, as referring to level 1 memory from a level 2 command is mostly meaningless. What happens is that the command refers to one slab of level 3 memory, and one word of level 1 memory in each subunit, which comes to the same amount (as the size of a slab is that necessary for each level 1 subun
08:09:06 <elliott> it to get one word of it). The access is allowed to be misaligned. In fact, the slab of level 3 memory does not even need to be contiguous in an absolute sense; rather, it has to be contiguous in the segmented sense that if memory is divided into a set of power-of-2-sized blocks each of which wraps around, it's contiguous from the point of view of some block. (So, for instance, in a hypothetical system with 8 level 1 subunits per level 2 unit, [2
08:09:09 <elliott> 7]/3 [28]/3 [29]/3 [30]/3 [31]/3 [16]/3 [17]/3 [18]/3 would be contiguous in this sense, with block size 16.) The third argument gives the block size needed for the block in question to be considered contiguous, and must be a constant integer that's a power of 2, and at least as great as the number of level 1 subunits of a level 2 unit. (The level 1 subunit with identifier 0 gets the first word of the slab, [27]/3 in the example above, the subuni
08:09:14 <elliott> t with identifier 1 gets the second, and so on.) Indirect memory addresses can be given for the first two arguments, with the same restrictions as in the previous case. This instruction is very fast compared to other checkout instructions, taking around twice as long to execute as arithmetic instructions. Additionally, two move/2 instructions with the same arguments, the first from level 3 to level 1 and the second in the other direction, can tak
08:09:19 <elliott> e less time between them to execute than either would individually; the condition for this to happen is that the block size must be set to the amount of level 3 memory per unit (or higher), that they are separated by nothing but arbitrary level 1 i
08:09:21 <monqy> soryt im not reading that
08:09:23 <elliott> lmao
08:09:25 <elliott> xchat
08:09:27 <elliott> cut that off
08:09:29 <elliott> it wouldn't let it all go in the input field
08:09:33 <elliott> http://esolangs.org/wiki/Checkout/Quick_reference
08:09:36 <elliott> there you go....
08:10:22 <monqy> so i guess shaders are such a thing such that a c-like language is appropriate??
08:11:05 <elliott> monqy: C is too high-level like I said
08:11:10 <elliott> makes bad assumptions :|
08:11:15 <monqy> right but I mean
08:11:33 <monqy> by appropriate, not high- or low-level but
08:11:35 <monqy> right-level
08:11:36 <elliott> well it couldn't be like, java if that is what you mean..........
08:12:09 <monqy> i mean like how HOtMEfSPRIbNG is really high-level but the wrong abstraction entirely for pretty much anything
08:12:25 <monqy> except in this case instead of HOtMEfSPRIbNG it is C
08:12:32 <elliott> :D
08:12:58 <elliott> http://www.overclock.net/coding-programming/345618-wide-world-code.html oh no the overclockers have found us
08:13:11 <monqy> oh no overclockers
08:13:15 <elliott> "what about LOLCODE?"
08:13:19 <elliott> IM GOING TO PUNCH MY FACE THROUGH YOUR BRAIN
08:13:25 <elliott> oh thank god it ended after three posts
08:13:50 <elliott> i wish i understood homespring
08:14:43 <monqy> what about snack
08:14:52 <elliott> no,
08:16:03 <monqy> i wonder what
08:16:08 <monqy> snack's creator genius
08:16:09 <monqy> was thinkign
08:16:13 <monqy> when making
08:16:14 <monqy> snack
08:16:30 <elliott> probably "im smart"
08:16:38 <elliott> in five days snack is a month old
08:16:56 <itidus20> obviously not cakes and chips
08:17:01 <elliott> and one day (warning: scary story ahead)
08:17:05 <NihilistDandy> Fucking lolcode
08:17:05 <elliott> it will be a hundred years old
08:17:08 <elliott> people will say
08:17:11 <monqy> a month? two months?
08:17:13 <elliott> how can we make our langauges last a hundred years
08:17:14 <elliott> like snack has
08:17:22 <elliott> and they decide
08:17:28 <elliott> "there is only one way
08:17:33 <elliott> we need a command that prints SLEEP? ARE YOU CRAZY? LETS GET UP FOR MIDNIGHT DINNER"
08:17:35 <monqy> in a month ago from five days from now snack willwas be a month old
08:17:49 <elliott> what
08:17:56 <monqy> wasn't it a june lnaguage
08:18:08 <elliott> holy shit
08:18:10 <elliott> i love how
08:18:15 <elliott> monqy: oh right
08:18:16 <elliott> i love
08:18:16 <elliott> how
08:18:18 <elliott> http://esolangs.org/wiki/Snack
08:18:21 <elliott> there is an undocumented command
08:18:39 <elliott> how can you not even document the like five commands your awful language has
08:18:40 <monqy> what does it mean
08:18:52 <monqy> well he documented 5 of them
08:18:52 <Patashu> who's SmallBug
08:18:54 <monqy> that's a start
08:18:56 <monqy> a bad person
08:18:59 <itidus20> LOL
08:19:08 <monqy> is smallbug you, itidus20
08:19:31 <elliott> are you implying itidus20 is a bad erson
08:19:32 <elliott> :|
08:19:55 <itidus20> no! Je ne suis pas sur le wiki.
08:20:06 <monqy> i also like how in the implementation
08:20:07 <itidus20> (google translated)
08:20:07 <monqy> the int
08:20:08 <NihilistDandy> Ceci n'est pas une snack
08:20:09 <monqy> is called stack
08:20:11 <elliott> yes
08:20:16 <itidus20> Dandy =))
08:20:28 <monqy> and everything is indented a space
08:20:43 <monqy> or is that just the first two lines after the include
08:20:47 <monqy> help snakes killed me
08:20:52 <monqy> snack's
08:20:54 <monqy> snack
08:21:04 <monqy> help i cant smell snacks i mean spell help
08:21:11 <monqy> i cant spell spoepll ahELP
08:21:12 <coppro> elliott: not the Doctor; Ian
08:21:21 <elliott> coppro: same person obviosuly
08:21:29 <itidus20> its ok to not smell snacks as long as you can: grave get eat them
08:22:12 <Taneb> Hello
08:22:13 <monqy> You have eaten as a snack right 1 people. Happy?
08:22:53 <pikhq_> Ceci n'est pas une “Ceci n'est pas une “Ceci n'est pas une “Ceci n'est pas une “...
08:22:58 <monqy> oh man what if you do grave then let a nonexistant people free
08:22:59 <monqy> then eat
08:23:04 <monqy> you will have eaten...negative people
08:23:09 <Patashu> O_O
08:23:12 <NihilistDandy> Do eet
08:23:41 <Lymee> pikhq_, what does that mean?
08:23:53 <pikhq_> Lymee:
08:24:06 <NihilistDandy> This is not a "This is not a "This is not a..."
08:24:11 <pikhq_> Lymee: This is not a “This is not a “This is not a...
08:24:52 <NihilistDandy> Monospaced font made that awesome
08:24:57 <Lymee> > fix ("Ceci n'est pas une “++)
08:24:58 <lambdabot> <no location info>:
08:24:58 <lambdabot> lexical error in string/character literal at end o...
08:25:02 <Lymee> :<
08:25:05 <Taneb> Ce n'est pas un truc l'esprit
08:25:16 <pikhq_> See: https://secure.wikimedia.org/wikipedia/en/wiki/La_trahison_des_images
08:25:18 <Lymee> > recurse ("Ceci n'est pas une \"“++) "Ceci n'est pas une “
08:25:19 <lambdabot> <no location info>: lexical error at character '\8220'
08:25:20 <elliott> Lymee: wrong quote type
08:25:25 <Lymee> > recurse ("Ceci n'est pas une “"++) "Ceci n'est pas une “
08:25:26 <lambdabot> <no location info>:
08:25:26 <lambdabot> lexical error in string/character literal at end o...
08:25:31 <Lymee> > recurse ("Ceci n'est pas une “"++) "Ceci n'est pas une “"
08:25:31 <lambdabot> Not in scope: `recurse'
08:25:31 <elliott> t pas une “++)
08:25:32 <elliott> god
08:25:33 <elliott> look at it
08:25:35 <elliott> “++)
08:25:36 <elliott> that's not a "
08:25:38 <Lymee> Blah.
08:25:40 <NihilistDandy> srsly
08:25:43 <Lymee> Doesn't show up in my editbox.
08:25:52 <Lymee> i hate you edit box
08:26:09 <NihilistDandy> > fix ("Ceci n'est pas une "++)
08:26:10 <lambdabot> "Ceci n'est pas une Ceci n'est pas une Ceci n'est pas une Ceci n'est pas un...
08:26:23 <NihilistDandy> > fix ("\"Ceci n'est pas une "++)
08:26:24 <lambdabot> "\"Ceci n'est pas une \"Ceci n'est pas une \"Ceci n'est pas une \"Ceci n'es...
08:26:30 <NihilistDandy> Uglier, but closer
08:26:44 <pikhq_> > fix ("Ceci n'est pas une “"++)
08:26:46 <lambdabot> "Ceci n'est pas une \8220Ceci n'est pas une \8220Ceci n'est pas une \8220Ce...
08:26:55 <pikhq_> Shame about the uglyprinting.
08:27:00 <Patashu> sour
08:27:26 <NihilistDandy> We should write an ugly-printer
08:27:32 <Lymee> > cycle "”"
08:27:33 <lambdabot> "\8221\8221\8221\8221\8221\8221\8221\8221\8221\8221\8221\8221\8221\8221\822...
08:27:40 <pikhq_> Like a Perl compiler?
08:27:44 <itidus20> Dandy: suffice to say you detected in my post the influence of the Magritte reference I saw yesterday
08:27:52 <Lymee> > (fix ("Ceci n'est pas une “"++)) ++ (cycle "”")
08:27:53 <lambdabot> "Ceci n'est pas une \8220Ceci n'est pas une \8220Ceci n'est pas une \8220Ce...
08:27:59 <NihilistDandy> itidus20: Haha. Good on me :D
08:28:14 <NihilistDandy> pikhq_: Well, yes, but with a nicer user interface
08:28:32 <Patashu> LOL lymee
08:28:39 <pikhq_> Lymee: Exactly equivalent to the statement sans ++ (cycle "”"). :)
08:28:50 <Patashu> Nuh-uh, 0.000...1 is a real number
08:29:03 <NihilistDandy> ...
08:29:29 <elliott> 0.999999999...0 =/= one dumbtarjsds
08:29:33 <Lymee> pikhq_, well.
08:29:36 <Lymee> The program doesn't cheat!
08:29:36 <Patashu> lolll
08:29:51 <Lymee> If we ever build a computer capable of infinite cycles per second, the code will become useful.
08:30:15 <pikhq_> Well. Nearly equivalent. Under some Haskell implementations, that would reconstruct the first list, giving you completely pointless allocation.
08:30:42 <Lymee> > tail $ (fix ("Ceci n'est pas une “"++)) ++ (cycle "”")
08:30:43 <lambdabot> "eci n'est pas une \8220Ceci n'est pas une \8220Ceci n'est pas une \8220Cec...
08:30:49 <elliott> .com.com.com
08:30:49 <Lymee> > last $ (fix ("Ceci n'est pas une “"++)) ++ (cycle "”")
08:30:53 <lambdabot> mueval-core: Time limit exceeded
08:30:53 <elliott> .com
08:30:54 * Lymee runs
08:30:58 <elliott> do you remember .com
08:31:02 <elliott> .com
08:31:05 <NihilistDandy> elliott: Well, that's true, in that's it's meaningless
08:31:06 <elliott> .xomc.om.cm
08:31:09 <elliott> .com
08:31:13 <pikhq_> elliott: com.com? God that was a stupid thing.
08:31:19 <elliott> .com
08:31:20 <elliott> .comcomcom
08:31:25 <elliott> .com.com.com.com.com
08:31:31 <elliott> www.ww.w.com
08:31:37 <NihilistDandy> Apparently com.com redirects to cnet
08:31:45 <elliott> ..........q;come
08:31:46 <elliott> come
08:31:47 <elliott> .com
08:31:49 <elliott> .sompdf.com
08:31:52 <elliott> some.come
08:31:54 <elliott> pony.com
08:32:07 <Taneb> dotat.at
08:32:07 -!- asiekierka has joined.
08:32:08 <asiekierka> hi
08:32:10 <asiekierka> long time no see! D:
08:32:11 <Taneb> Hello
08:32:18 <elliott> you were in here days ago
08:32:21 <pikhq_> NihilistDandy: Yes, they used to maintain a hierarchy of sites under com.com.
08:32:24 <asiekierka> but didn't really talk
08:32:26 <pikhq_> NihilistDandy: I am not fucking kidding.
08:32:31 <elliott> so you're going to talk
08:32:37 <NihilistDandy> pikhq_: That depresses me on an existential level
08:32:43 <Taneb> Ve have ways of making you TALK!
08:32:43 <asiekierka> much to your disappointment, possibly, elliott
08:32:49 <NihilistDandy> And that's saying something
08:33:06 -!- GreaseMonkey has quit (Read error: Connection reset by peer).
08:33:07 <pikhq_> CNET seems to have cornered the market on stupid domain names.
08:33:07 * Lymee pokes at asiekierka
08:33:12 * asiekierka pokes back
08:33:18 -!- GreaseMonkey has joined.
08:33:33 <NihilistDandy> Also, what the shit, FURscript
08:33:39 <pikhq_> They also have, like, download.com, upload.com, tv.com, search.com, radio.com, and computers.com...
08:33:43 <Lymee> hi stop being missing from espernet
08:33:59 <pikhq_> It's like they think extraordinarily simple nouns make good brand names. Cute.
08:34:31 <NihilistDandy> pikhq_: My heart hurts
08:34:44 <pikhq_> To be fair, it was the 90s.
08:35:21 <Taneb> I always feel a bit weird when I realise I was alive during the dot.com bubble
08:35:22 <pikhq_> This was a magical time when everyone got on a computer and forgot every single bit of knowledge we learned over the course of centuries.
08:35:28 <coppro> lolcnet
08:35:31 <NihilistDandy> Damnable 90s and their non-exhausted IPv4 space
08:35:56 <pikhq_> It's not like having a bunch of domains uses up IPv4 space.
08:36:02 <NihilistDandy> I know
08:36:09 <NihilistDandy> I'm not talking about domains :D
08:36:22 <NihilistDandy> I'm complaining about yesteryear
08:36:29 <NihilistDandy> Yesterdecade
08:36:31 <NihilistDandy> Whatever
08:36:38 <pikhq_> You should damn an older period for being insufficiently forward-thinking.
08:36:53 <pikhq_> "Oh, 32 bits should be enough. It's not like more than 100 hosts will use it anyways, right?"
08:37:02 <NihilistDandy> The fools
08:37:25 <NihilistDandy> "This computer thing will never catch on. And networking? Pish tosh."
08:37:41 <pikhq_> Well, they presumed it was a research network.
08:37:49 <itidus20> apparently it was just a demo thing and before long someone pressed the accelerator while everyone was just sitting on top of the car
08:37:53 <NihilistDandy> Vacua and nuclear ovens are the future damn it!
08:38:00 <pikhq_> Not a network that would leap off into production.
08:38:04 <itidus20> and before they knew it the world was full of 32bit addresses
08:38:10 <NihilistDandy> I'm aware -_-
08:38:31 <Taneb> The world wide web was invented to make it easier to get data from one computer to another in the same room somewhere deep on the France-Switzerland border
08:38:50 <NihilistDandy> Those wacky Europeans
08:38:54 <pikhq_> The World Wide Web was also a wiki protocol.
08:39:02 <coppro> pikhq_: HTTP
08:39:05 <pikhq_> Erm, HTTP.
08:39:07 <pikhq_> Yeah.
08:39:14 <Taneb> HTTP is not the World Wide Web
08:39:15 <NihilistDandy> First the Web, then the LHC... It's like they WANT the world to die
08:39:30 <pikhq_> The World Wide Web was intended as a giant wiki, though.
08:39:41 <Taneb> It kinda is
08:39:47 <Taneb> But with many, many locked pages
08:40:00 <pikhq_> Not in *any* way like it was designed.
08:40:13 <pikhq_> Half of HTTP gets completely ignored.
08:40:47 <pikhq_> PATCH, DELETE, PUT? Hah.
08:41:06 <fizzie> I'm not sure how you can be "deep on the border".
08:41:09 <elliott> patch is new............
08:41:11 <elliott> it was invented last year..........
08:41:16 <pikhq_> elliott: Srsly?
08:41:19 <elliott> yes.............
08:41:32 <elliott> Internet Engineering Task Force (IETF) L. Dusseault
08:41:32 <elliott> Request for Comments: 5789 Linden Lab
08:41:32 <elliott> Category: Standards Track J. Snell
08:41:32 <elliott> ISSN: 2070-1721 March 2010
08:41:32 <elliott> PATCH Method for HTTP
08:41:41 <elliott> "After a long, long time, the HTTP PATCH verb has become an official standard: IETF RFC 5789."
08:41:43 <pikhq_> Also, stop using that many dots, it makes you look like you're 8. In the 90s.
08:41:46 <elliott> might have been invented earlier i dunno
08:41:50 <elliott> pikhq_: i am.............
08:42:11 <Taneb> Oh god
08:42:15 <pikhq_> Still, PUT.
08:42:20 <Taneb> The nineties was the decade before last
08:42:58 <elliott> "Given that it’s taken something like 10 years to get PATCH in"
08:42:58 <elliott> oh ok
08:42:59 <monqy> what do 8 years old do now anyway
08:43:12 <elliott> monqy: irc
08:43:35 <elliott> it would be cool if i could become eight again and be all awesome ahead of time........
08:43:46 <monqy> i was probably a horrible person when i was 8
08:43:57 <elliott> me too
08:43:58 <monqy> are any 8 years olds not horrible people
08:43:59 <pikhq_> I am glad I don't have IRC logs from when I was 8.
08:44:00 <elliott> except i know it
08:44:01 <elliott> :(
08:44:01 <NihilistDandy> With a robot body, you can be!~
08:44:04 <Taneb> I was an idiot who thought he was the best at everything
08:44:20 <NihilistDandy> I have IRC logs from when I was 8...
08:44:33 <elliott> thankfully,
08:44:35 <monqy> I didn't irc when I was 8, thankfully
08:44:37 <elliott> the only traces of me being eight
08:44:40 <elliott> are under a different nickname
08:44:44 <elliott> that has, to my knowledge,
08:44:53 <elliott> never, ever been publicly linked to my name or any of the nicks i've ever used on irc or ever
08:44:57 <NihilistDandy> Been expunged from the judicial record?
08:44:59 <elliott> so i am ............. safe .........
08:45:00 <monqy> what do 8 year olds do on irc anyway
08:45:03 <pikhq_> The only traces of me being eight that I know of *are* my nickname.
08:45:10 <monqy> embarrass themselves and fail to notice it?
08:45:12 <pikhq_> monqy: Internet Relay Chat?
08:45:14 <elliott> monqy: cyber.........esolangs........................haskell.........
08:45:24 <monqy> cyber
08:45:27 <elliott> u be haskell, ill be brainfuck, i put on my robe and type theory hat
08:45:30 <NihilistDandy> elliott: These things are isomorphic
08:45:44 <monqy> I don't think I knew about esolangs or haskell when I was 8 :(
08:46:18 <elliott> im not ready for twenty days time... can i put off becoming sixteen until im like sixteen
08:46:23 <Taneb> When I was eight, the closest I got to esolangs was writing down roman numerals in Excel
08:46:37 <elliott> im not ready to sixteen yet :{
08:46:46 <monqy> i;ll never ready to sixteen
08:47:00 <Taneb> I got ready to sixteen just before I sixteened
08:47:01 <NihilistDandy> I'm still not ready to sixteen
08:47:10 <NihilistDandy> And I already sixteened
08:47:11 <elliott> Taneb: help, its going to fast,
08:47:14 <elliott> make it stop,
08:47:21 <pikhq_> elliott: Congrats, you're 61.
08:47:26 <Taneb> You can't stop it
08:47:31 <Taneb> You can only make it go faster
08:47:38 <elliott> Taneb: how, is it meth,
08:47:40 <elliott> (i think its meth)
08:47:45 <pikhq_> Taneb: Well, you can stop the flow of time.
08:47:50 <Taneb> brb
08:47:55 <pikhq_> Just fine a nearby event horizon.
08:48:05 <NihilistDandy> Easy as pie
08:48:12 <coppro> `/win 7
08:48:16 <HackEgo> No output.
08:48:27 <coppro> HackEgo: that's cause you suck
08:56:25 <Taneb> Back
08:56:35 <Taneb> Or maybe it hates Windows 8
08:56:39 <Taneb> s/88/7/
08:56:43 <Taneb> s/88/8/
09:08:36 -!- Phantom_Hoover has joined.
09:26:14 -!- FireFly has joined.
09:30:32 -!- asiekierka has quit (Ping timeout: 258 seconds).
09:35:44 <elliott> "It is built on top of the programmable pipeline (i.e. non-fixed function) of OpenGL 2.1"
09:35:45 <elliott> ok
09:36:32 <monqy> what does this mean
09:37:38 <fizzie> It doesn't use the "global" projection/modelview matrices, pretty much. (And the same applies to lighting and things like that.)
09:39:11 <fizzie> There's an awesome flowchart somewhere which shows the fixed-function pipeline, and where shaders fit there, and which parts are/can be skipped if you feed stuff to them.
09:39:55 <elliott> fizzie: it is confusing :(
09:40:03 <elliott> fizzie: why does gpipe use all this advanced stuff but then depend on glut.......
09:40:47 <fizzie> elliott: Maybe you should use DirectX instead, the fixed-function D3D 9.0 pipeline is much simpler: http://www.ategpu.com/wp-content/uploads/2009/06/20090605_0ae51d1100b0ce18cfa6kJFDIv2M25XR.png
09:40:58 <elliott> ah
09:41:11 <elliott> isn't directx actually simpler to use though :)
09:42:39 <fizzie> Probably not by much, really. But I'm no expert.
09:43:38 <fizzie> Aw, I can only find a flowchart of the current, programmable pipeline: http://www.opentk.com/files/OpenGL%20machine%20diagram%20v2.png -- I'm sure there was one that showed the old, more complicated one, which pretty much replaces the blocks that say "Shader" with a mess.
09:44:27 <elliott> why is it so complicated :(
09:44:30 <elliott> why not simples
09:47:09 <fizzie> Here's the old OpenGL 1.1 state machine: http://www.opengl.org/documentation/specs/version1.1/state.pdf -- the programmable pipeline just skips large parts of that and replaces them with your shaders.
09:47:21 <fizzie> Google image search doesn't seem to find pictures that are inside PDF documents. :/
09:48:49 -!- pitufoide has quit (Read error: No route to host).
09:49:01 -!- cheater_ has quit (Ping timeout: 255 seconds).
09:49:45 <fizzie> I think they have officially labeled most of the "old-fashioned" parts as deprecated in current (3 and later) OpenGL versions.
09:50:16 <elliott> GL.ortho2D 0 (realToFrac w) (realToFrac h) 0
09:50:16 <elliott> orthoProj = orthogonal (-10) 10 (2:.2:.())
09:50:17 <elliott> hmm
09:50:21 <elliott> wonder how the first becomes the second...
09:50:30 <elliott> fizzie: yeah they've deprecated practically everything :(
09:50:42 <fizzie> You should probably look at the docs of "orthogonal" to specify that.
09:51:11 <elliott> fizzie:
09:51:11 <elliott> -- | An orthogonal projection matrix for a right handed coordinate system looking down negative z. This will project far plane to @z = +1@ and near plane to @z = -1@, i.e. into a left handed system.
09:51:12 <elliott> orthogonal :: Fractional a
09:51:12 <elliott> => a -- ^ Near plane clipping distance
09:51:12 <elliott> -> a -- ^ Far plane clipping distance
09:51:13 -!- pitufoide has joined.
09:51:13 <elliott> -> Vec2 a -- ^ The size of the view (center aligned around origo)
09:51:15 <elliott> -> Mat44 a
09:51:17 <elliott> but then
09:51:19 <elliott> I'm not exactly sure on GL.ortho2D :)
09:51:28 <fizzie> Well, it's already centered, then.
09:52:06 <fizzie> So that's just orthogonal (-1) 1 (w :. h :. ()) or whatever you need to do to 'w' and 'h' in there.
09:52:27 <fizzie> (ortho2D puts the clipping planes at -1 and 1.)
09:52:48 <elliott> fizzie: Ah.
09:52:49 <elliott> ?src when
09:52:49 <lambdabot> when p s = if p then s else return ()
09:52:58 <elliott> :t when
09:52:59 <lambdabot> forall (m :: * -> *). (Monad m) => Bool -> m () -> m ()
09:53:01 <elliott> oh wait
09:53:02 <elliott> nm
09:55:27 <fizzie> You may need to flip that thing though, since I guess "GL.ortho2D 0 (realToFrac w) (realToFrac h) 0" sets up a coordinate system where Y points down, not up.
09:55:40 <fizzie> (Might be enough to just provide -h to it.)
09:56:25 <elliott> now to find the equivalents of
09:56:28 <elliott> GL.viewport $= (GL.Position 0 0, size)
09:56:29 <elliott> GL.matrixMode $= GL.Projection
09:56:31 <elliott> GL.loadIdentity
09:56:32 <elliott> GL.translate $ GL.Vector3 (realToFrac w / 2) (realToFrac h / 2) (0 :: GL.GLdouble)
09:56:55 <fizzie> As mentioned, you don't need the GL.translate, if your 'orthogonal' is already centered.
09:57:21 <elliott> oh
09:57:21 <elliott> right
09:57:24 <elliott> blame monqy
09:57:37 <elliott> I suppose that matrixMode/loadIdentity thing is abstracted out by GPipe
09:57:45 <fizzie> Probably not a GL.loadIdentity either if it's building the matrix from scratch and not multiplying it over some existing one.
09:58:18 <monqy> im blamed
09:58:32 <fizzie> Viewport and how to set the projection matrix depends on how your pipe does things, I suppose.
09:58:34 <elliott> And what is EVEN a MODE of MATRICES.
09:59:08 <fizzie> It's just the global flag that decides which matrix the matrix-operating functions (like loadIdentity and such) operate on.
09:59:11 <Taneb> The most common matrix?
09:59:58 <elliott> What about the viewport?
10:00:00 <elliott> ortho thing also handle that?
10:00:02 <elliott> I suppose so.
10:00:54 -!- cheater_ has joined.
10:01:06 <fizzie> That I don't know about. In the fixed-function pipeline it's an affine transformation from "normalized device coordinates" (i.e. what you get after the projection matrix is applied) into window coordinates.
10:01:26 <elliott> Well, it seems to work-ish.
10:01:44 <monqy> whats the -ish
10:02:07 <elliott> Well things.
10:02:11 <elliott> I need to make it actually move for instance.
10:02:16 <monqy> segfaults
10:02:20 <monqy> oh
10:02:31 <monqy> and banana?
10:03:35 <elliott> monqy: yes.
10:03:36 <elliott> im so banana
10:05:09 -!- clog has quit (Ping timeout: 252 seconds).
10:05:48 <elliott> rip
10:05:48 <elliott> clog
10:07:26 -!- oerjan has joined.
10:07:30 <elliott> hi oerjan
10:07:31 <elliott> bye clog
10:07:35 <oerjan> hello
10:07:38 <oerjan> argh
10:08:39 <elliott> oerjan: codu,,,
10:08:40 <elliott> learn it,,,
10:09:35 <oerjan> oh i do. btw it was removed from topic.
10:10:07 <elliott> fuk quintopia
10:10:13 -!- elliott has set topic: http://codu.org/logs/_esoteric/.
10:10:18 <elliott> no tunes in topic in retaliation
10:12:39 <elliott> monqy: im think, rotate, now,
10:12:55 <elliott> GL.rotate (blah * 100) (GL.Vector3 0 0 (1 :: GL.GLfloat))
10:12:55 <elliott> ok
10:13:01 <monqy> congarts
10:14:35 <elliott> monqy: http://i.imgur.com/FQdnB.png
10:14:46 <monqy> blue
10:14:49 <monqy> adn greene
10:14:54 <elliott> its title "Green Triangle" of window
10:15:05 <monqy> is there a second box too wheres the traingle
10:15:11 <monqy> is this a threedee box
10:15:32 <monqy> my eyes are going funny in the blue and green and tired and it's going distortey
10:15:50 <monqy> and i cannot make heads or tales of the specifics of what this box actually looks like
10:15:58 <monqy> but i'm thinking it's a square
10:16:03 <monqy> nothing fancy
10:16:13 <elliott> it is
10:16:14 <elliott> im just
10:16:19 <elliott> replicating the thing you did
10:16:21 <monqy> oh
10:19:35 -!- Sgeo has joined.
10:20:05 <oerjan> <elliott> no tunes in topic in retaliation <-- well now you are annoying _me_...
10:20:27 <oerjan> mind you, i'm in a bad mood to start with.
10:20:42 <elliott> annoyed over log bots in topics
10:20:47 <elliott> the oerjan life
10:21:09 <oerjan> no, annoyed over stupid "retaliation" games
10:22:12 <elliott> oerjan: you realise im not serious...................
10:22:44 <oerjan> i'm too gloomy to realize anything. HOW DO YOU WANT YOUR BAN SERVED?
10:22:58 <Patashu> have you guys ever used the spectrogram in foobar2000 or an equivalent
10:24:06 * oerjan suddenly thinks spectrogram sounds like something at the other meaning of "esoteric"
10:24:28 <oerjan> presumably the ghostbusters have one
10:24:35 <fizzie> Ghostrogram.
10:25:13 <elliott> .debian.com.net.org.opengl
10:26:13 <fizzie> I'm unsure whether that was "an equivalent of foobar2000" or "an equivalent of a spectrogram in foobar2000".
10:26:13 <oerjan> elliott: my 3-cell BF fractran seems to have a snag :(
10:26:19 <Patashu> latter
10:26:52 <fizzie> I don't know exactly what its spectrogram looks like, but I've drawn quite a lot of them with matlab and such.
10:26:59 <oerjan> i don't see how to do the equivalent of if (!a) { a = C1*b+D1; b=0; }
10:27:01 <elliott> oerjan: :{
10:27:46 <oerjan> it's not the arithmetic that's the problem, it's actually conditioning on something being zero without clobbering when it isn't...
10:28:15 <elliott> four cells??
10:28:57 <oerjan> four cells should be fine i guess
10:29:20 <oerjan> then you can actually use a cell for a test flag
10:29:41 <elliott> monqy: ok, im going to try introducing the reactive bananas
10:29:51 <monqy> oh man oh man
10:29:59 <elliott> BE PREPARED FOR POTASSIUM
10:30:58 <elliott> monqy: it occurs to me that this niceness of GPipe will be ah... tarnished a bit when i actually write gamey stuff
10:31:01 <elliott> because I need OpenAL too
10:31:07 <monqy> :(
10:31:08 <elliott> and i dont htink theres an APipe.........
10:31:22 <monqy> is openal........saddening
10:31:32 <monqy> and are there no alternatives
10:31:33 <elliott> monqy: its modelled to be as much like opengl as possible
10:31:36 <elliott> (seriously)
10:31:38 <monqy> ew
10:31:44 <elliott> and well there are alternatives but openal is cool because it offers threedee sound???
10:31:45 <elliott> so like
10:31:47 <elliott> i can just position sounds properly
10:31:51 <elliott> and they'll doppler properly
10:31:55 <elliott> and get quietier as you walk away
10:31:56 <elliott> and if you turn around
10:32:00 <elliott> they'll sound like they're behind you
10:32:01 <elliott> and stuff
10:32:05 <elliott> it's cool................
10:32:14 <monqy> good thing i don't need threedee sound for what i want to do because what i want to do is twodee
10:32:23 <elliott> what do you, want to do,
10:32:29 <monqy> i dont
10:32:30 <monqy> quite
10:32:30 <monqy> know
10:32:35 <elliott> but, try, to explain,
10:32:41 <oerjan> <elliott> and they'll doppler properly <-- wait, as in actually consider relative velocity? :P
10:32:53 <monqy> all i know is it's twodee and it involves a very special type of graphicals which is also hard to explain
10:32:54 <elliott> oerjan: well "The rendering engine performs all necessary calculations as far as distance attenuation, Doppler effect, etc." --wikipedia
10:33:03 <elliott> oerjan: so i think so
10:33:08 <oerjan> heh
10:34:24 <fizzie> oerjan: You can even vary the speed of sound (though only globally) which affects the doppler calculations.
10:35:35 <monqy> also what i want to do is kind of bizarre
10:35:39 <elliott> what is it........
10:35:42 <monqy> which makes explaantion..h.arder.
10:35:46 <elliott> try,
10:35:49 <monqy> im cant
10:35:54 <monqy> ;_:
10:36:05 <elliott> try,
10:36:56 <monqy> well i guess the graphicals might be described as subtley wavy or something and they vary over time??
10:37:03 * Sgeo feels unwell
10:37:06 <monqy> i have a vision for this but i m bad at descirbe
10:37:12 <monqy> the rest is even less concrete
10:37:13 <Sgeo> Better than yesterday, but still unwell
10:37:16 <elliott> what is, gameplay,
10:37:22 <monqy> the least concrete
10:37:30 <elliott> are the graphics triangles
10:37:38 <monqy> they are rendered using triangles
10:37:47 <elliott> so is evrything
10:37:53 <Sgeo> Captai Obvios
10:38:08 <Sgeo> n
10:38:10 <Sgeo> nnnn
10:38:11 <fizzie> Patashu: Now I am curious as to what that spectrogram question was all about?
10:38:12 <monqy> i use triangles instead of lines because then i can vary their specifics over position and time??
10:38:12 <elliott> u
10:38:13 <Sgeo> uuuuu
10:38:25 <elliott> monqy: ok?
10:38:29 <monqy> ok.
10:38:29 <elliott> monqy: what is the game like,
10:38:44 <monqy> it may or may not. involve the display of text.
10:38:49 <elliott> oh
10:38:52 <elliott> TELL ME ABOUT THE FUCKING GAME
10:38:59 <elliott> >:{
10:39:03 <elliott> im must know........
10:39:07 <monqy> it is not relevant to gameplay. though. it is more of fan . aesthetic.
10:39:12 <monqy> i uh
10:39:20 <monqy> haven't really decided much about the actual
10:39:21 <monqy> gameplay
10:39:21 <monqy> yet
10:39:25 <monqy> if anything
10:39:26 <monqy> at all
10:39:33 <elliott> >:(
10:39:57 <elliott> reactimate :: Event PushIO (IO ()) -> NetworkDescription ()Source
10:39:57 <elliott> Output. Execute the IO action whenever the event occurs.
10:40:00 <elliott> REACTIMATE....
10:40:05 <monqy> reactimate
10:41:02 <monqy> is there any good way to do gameplay
10:41:04 <monqy> because if there is
10:41:06 <Deewiant> reactimate :-D
10:41:07 <monqy> i may want to use that
10:42:07 <elliott> Deewiant: its FRRRPY
10:42:12 <elliott> and then
10:42:15 <elliott> after you compile your event network
10:42:16 <elliott> with reactimations in it
10:42:18 <elliott> you do
10:42:21 <elliott> -- register handlers and start producing outputs
10:42:21 <elliott> actuate network
10:42:24 <elliott> you ACTUATE YOUR REACTIMATIONS
10:42:38 <elliott> Deewiant: btw the library i am using... depends on your tries... you are famous...
10:42:58 <oerjan> <monqy> it may or may not. involve the display of text. <-- i am still going to assume it's pornographic until you tell what it is.
10:43:14 <elliott> Deewiant: (not reactive-banana)
10:43:15 <monqy> oh dear
10:43:40 <monqy> well it's PROBABLY NOT pornographic
10:43:46 <oerjan> O KAY
10:44:01 <oerjan> at least not in _all_ countries
10:44:15 <monqy> what are the criteria for being pornographic
10:44:26 <oerjan> in denmark, it would probably be considered entirely appropriate for children.
10:45:28 <oerjan> in iran, it would probably be considered entirely appropriate as firewood.
10:45:37 <Deewiant> elliott: So you'll blame me if it doesn't work?
10:46:55 <elliott> Deewiant: yes
10:47:01 <Deewiant> Great
10:47:06 <elliott> Deewiant: (its GPipe)
10:47:17 <elliott> Deewiant: (it also uses Vec which means the type errors are really confusing :( )
10:55:38 -!- monqy has quit (Quit: hello).
10:56:54 <elliott> ?hoogle ThreadId -> IO ()
10:56:54 <lambdabot> Control.Concurrent killThread :: ThreadId -> IO ()
10:56:54 <lambdabot> Control.OldException throwDynTo :: Typeable exception => ThreadId -> exception -> IO ()
10:56:54 <lambdabot> Control.Concurrent throwTo :: Exception e => ThreadId -> e -> IO ()
11:01:58 <elliott> ?hoogle delete
11:01:59 <lambdabot> Data.HashTable delete :: HashTable key val -> key -> IO ()
11:01:59 <lambdabot> Data.IntMap delete :: Key -> IntMap a -> IntMap a
11:01:59 <lambdabot> Data.IntSet delete :: Int -> IntSet -> IntSet
11:02:00 <elliott> ?hoogle remove
11:02:00 <lambdabot> Data.Graph.Inductive.Monad.IOArray removeDel :: IOArray Node Bool -> Adj b -> IO (Adj b)
11:02:00 <lambdabot> System.Directory removeDirectory :: FilePath -> IO ()
11:02:00 <lambdabot> System.Directory removeDirectoryRecursive :: FilePath -> IO ()
11:02:38 <fizzie> ?hoogle exterminate
11:02:38 <lambdabot> No results found
11:02:40 <fizzie> :(
11:02:48 <oerjan> ?hoogle eviscerate
11:02:48 <lambdabot> No results found
11:05:09 <Patashu> ?hoogle obliterate
11:05:10 <lambdabot> No results found
11:06:51 <oerjan> http://holumbus.fh-wedel.de/hayoo/hayoo.html#0:obliterate
11:07:35 <oerjan> darcs and wumpus both sound appropriate
11:09:52 <elliott> obliterate is the thing that permanently removes a patch from a repository
11:09:58 <elliott> scary stuff :)
11:10:15 <Patashu> *everyone gasps and puts hands to their mouthes*
11:10:21 <coppro> which vcs are we talking about?
11:10:29 <coppro> in perforce, obliterate removes a file, not a patch
11:10:37 <elliott> coppro: dunno, maybe you could look a single line up to find out
11:10:44 <coppro> it rewrites all the vcs history to remove all mention of that file
11:10:44 <elliott> also who the fuck uses perforce
11:10:53 <coppro> elliott: big companies
11:11:08 <elliott> coppro: i know
11:11:21 <elliott> i like how perforce is terrible in every way, that's a good thing about perforce
11:11:58 <coppro> Perforce is a precursor to modern dvcs
11:12:12 <elliott> bullshit, perforce is centralised
11:12:31 <coppro> that's why I said precursor
11:12:38 <elliott> then so is sccs
11:12:57 <coppro> I don't know about sccs specifically, but I suspect not in the sense that I mean
11:13:33 <coppro> perforce's changelists allow for easy communication of small groups of changes in a manner similar to a dvcs
11:14:03 <Taneb> Well, I've just worked out how to do lambda calculus in VB.NET
11:14:07 <elliott> other similarities perforce has to dvcses: it has files; it has commands
11:14:15 <elliott> also, it uses an alphabet
11:14:22 <elliott> total precursor
11:14:48 <coppro> elliott: okay I'm guessing you actually have no fucking clue how perforce works
11:15:08 <elliott> i'm guessing you're experiencing stockholm syndrome :)
11:15:19 <coppro> ... what
11:15:36 <Patashu> so what's bad about perforce exactly
11:16:41 <coppro> Patashu: It tracks changes at a file level; it is centralized; it is proprietary
11:17:20 <oerjan> <Taneb> Well, I've just worked out how to do lambda calculus in VB.NET <-- wait, should we cheer or boo now?
11:18:10 <Taneb> You could just ignore it
11:18:19 <coppro> Taneb: not physically possible
11:18:20 <oerjan> INCONCEIVABLE
11:18:39 <Taneb> Or wish VB.NET luck in its slow progress to becoming a useable programming language
11:19:15 <oerjan> i actually recall that some people think it does some things better than C#
11:19:33 <Taneb> It was the first programming language I learnt
11:19:36 <oerjan> mind you i don't actually know either, just following the hivemind...
11:20:03 -!- GreaseMonkey has quit (Remote host closed the connection).
11:22:07 <elliott> hi oerjan...................
11:22:16 <elliott> -- Typeable instances, yikes!
11:22:16 <elliott> -- Also, these instances are wrong, but I don't care.
11:22:16 <elliott> instance Typeable WX.EventKey where
11:22:16 <elliott> typeOf _ = mkTyConApp (mkTyCon "WX.EventKey") []
11:22:16 <elliott> instance Typeable WX.EventMouse where
11:22:17 <elliott> typeOf _ = mkTyConApp (mkTyCon "WX.EventMouse") []
11:22:57 <oerjan> that's the function which is being deprecated, isn't it
11:23:18 <elliott> which function
11:23:25 <oerjan> mkTyConApp
11:23:30 <elliott> huh, why?
11:23:41 <coppro> elliott: also "Dr. Who" in the credits :(
11:23:48 <elliott> "My understanding is the part that will be changing in future versions of GHC is that you should use a different function, mkTyCon3, which takes the package name, module name, and type name as separate arguments."
11:23:49 <elliott> ah
11:23:56 <oerjan> yep
11:24:07 <elliott> coppro: the writers and producers are much less anal about the show than the fans :P
11:24:19 <elliott> coppro: see also: every script was titled "Doctor Who and the X"
11:24:24 <coppro> elliott: "were"
11:24:26 <elliott> oerjan: that does seem saner...
11:24:41 <elliott> coppro: they're anal now?
11:25:13 <coppro> they are more careful now
11:26:16 <elliott> oerjan: good news....i think i cna....extricate the glut
11:26:45 <oerjan> elliott: that sounds like a somewhat painful procedure. do you have enough anesthetics?
11:26:55 <elliott> i dont know.,, but i do have teh world
11:27:56 <oerjan> Doctor Who and the furbies
11:28:50 <elliott> im a furby
11:29:21 <oerjan> google suggest correcting it to "furies". not that that exists either.
11:29:25 <oerjan> *s
11:29:48 <elliott> its furbys ur prlaurl wrong
11:29:57 <oerjan> oh
11:30:26 <oerjan> "A Furby (plural Furbys or Furbies) was [...]"
11:30:33 <elliott> SHUT UP IM EXPERT
11:31:37 <elliott> oh that monqy slipe aaway,
11:31:45 <elliott> help im having trouble extricating
11:35:36 <elliott> "GLFW doesn't work well with GHC threads, forkIO or threadDelay. So avoid them if you can.
11:35:37 <elliott> "
11:35:37 <elliott> ugh
11:36:14 <Patashu> seriously?
11:36:18 <Patashu> so what can you use it with
11:36:21 <oerjan> it's probably the usual "must be called from the main thread" thing?
11:36:24 -!- clog has joined.
11:36:30 <elliott> (non-portable) native threads
11:36:32 <elliott> its understandable it just sucks
11:36:38 <Sgeo> http://www.reddit.com/r/science/comments/j5sdo/electrical_engineers_at_duke_university_have/c29f9o6 there should be a language called cross-talk
11:36:48 <Patashu> cross talk:
11:36:54 <Patashu> there's a physical board of objects
11:36:58 <Patashu> objects have to be very close to talk
11:36:58 <Patashu> ???
11:37:12 <elliott> Whatever happened to string theory? (self.askscience)
11:37:20 -!- boily has joined.
11:37:20 <Patashu> Whatever happened to Robot Jones?
11:37:49 <oerjan> string theory is just waiting for us to develop a galactic empire powerful enough to actually _test_ it, duh
11:38:03 <Patashu> what's the collatz conjecture waiting for then?
11:38:23 <elliott> oerjan: wait, string theory has tests? :)
11:38:58 <elliott> I wish elliottcable would shut the fuck up whenever I talk in #haskell.
11:39:12 <elliott> I get it, you want my nick; you've already offered to pay me for it, and I've named a price, so pay up or shut up.
11:40:17 <oerjan> elliott: well there was a test recently which might have been relevant to _some_ string theories, about whether photons change polarization over huge cosmic distances. alas nothing unexpected was found.
11:41:03 <oerjan> that was also relevant to loop quantum gravity iirc
11:41:46 <oerjan> and of course the idea is presumably that we can find some relevant tests once we can create black holes and stuff at will...
11:42:19 <elliott> right. you get right on that, then.
11:42:20 -!- azaq23 has joined.
11:42:37 <elliott> new she version, let us all dance: \o/
11:42:38 <myndzi> |
11:42:38 <myndzi> >\
11:42:39 <oerjan> elliott: soon as we got that galactic empire, 'guv
11:44:30 <Taneb> Is it possible to send messages by quantum entanglement?
11:44:59 <elliott> Taneb: No.
11:45:03 <elliott> Taneb: No. No. No. No.
11:45:03 <elliott> Taneb: No.
11:45:07 <elliott> Taneb: No. No. No.
11:45:08 <elliott> And,
11:45:10 <elliott> Taneb: No.
11:45:13 <oerjan> Patashu: "Mathematics is not yet ready for such problems." -- Paul Erdős
11:45:23 <Taneb> Well, that sucks, in the scheme of things
11:45:43 <elliott> Taneb: Yes, the inability to go faster than light sucks a bit.
11:46:10 * elliott forks GPipe.
11:46:14 <Taneb> But no matter is moving faster than light!
11:46:22 <Taneb> Only information!
11:46:27 <Taneb> Then we can test that paradox!
11:46:32 <Taneb> And solve the halting problem!
11:46:44 <oerjan> otoh they've found P and CP violation, why not lorentz invariance violation
11:47:42 <Taneb> Here comes the rainm
11:48:07 <elliott> Taneb: it is an incredibly common misconception that quantum entanglement can cause information to be propagated faster than the speed of light.
11:48:08 <elliott> it is not so.
11:48:17 <oerjan> Taneb: you're british, that's not even news
11:48:32 <elliott> Deewiant: Man, I would be downright offended as GPipe's dependency on list-tries if I were you -- it simultaneously uses Data.HashTable!
11:48:43 <Taneb> It was a statement of truth
11:48:46 <Taneb> Rather than news
11:48:51 <oerjan> O KAY
11:48:52 <Taneb> Olds, if you will
11:49:17 <Deewiant> Nothing wrong with using Data.HashTable if that's what you need
11:50:36 <elliott> Deewiant: I seem to recall that Data.HashTable is strongly deprecated.
11:50:47 <elliott> Deewiant: You may be thinking of the http://hackage.haskell.org/package/hashtables version.
11:50:52 <elliott> Which is not the base Data.HashTable module.
11:51:05 <oerjan> v Pravde net izvestiy, v Izvestiyakh net pravdy
11:51:10 <Deewiant> Actually I didn't even know about that
11:51:17 <Deewiant> Data.HashTable doesn't say it's deprecated
11:52:01 <elliott> Deewiant: Well, I know that people who use HashTable are yelled at :-)
11:52:14 <Deewiant> Probably because they don't have a good reason for using it
11:52:28 <elliott> http://gregorycollins.net/posts/2011/06/11/announcing-hashtables is pretty biased, obviously, but comes down to "lol the structure sucks".
11:52:51 <elliott> /home/elliott/Code/GPipe/src/Resources.hs:124:62:
11:52:51 <elliott> No instance for (Data.ListTrie.Base.Map.Map
11:52:51 <elliott> Map (ShaderKeyNode, [Int]))
11:52:51 <elliott> arising from a use of `TrieMap.lookup'
11:52:53 <elliott> Deewiant: This your fault?
11:53:17 <elliott> Gah, the GitHub commit is older than the targz
11:54:13 <oerjan> elliott: i thought the hashtable implementations had been greatly improved
11:54:18 <elliott> oerjan: in base?
11:54:20 <elliott> i was unaware
11:54:23 <oerjan> but maybe it hasn't reached that module
11:54:28 <Deewiant> elliott: Don't think so, no
11:55:05 <oerjan> elliott: i dunno, but why wouldn't they replace the base version if there are improvements...
11:55:50 <oerjan> oh there was this GC card marking thing, which presumably helps for all implementations...
11:56:05 <oerjan> but i guess that's old news now
12:01:30 <elliott> hahahaha wow
12:01:33 <elliott> the hierarchical layout of this package
12:01:34 <elliott> is constructed
12:01:37 <elliott> entirely from the hierarchical packages
12:01:41 <elliott> importing and reexporting flat-hierarchy packages
12:01:42 <elliott> like
12:01:46 <elliott> Graphics.GPipe.FrameBuffer
12:01:47 <elliott> is just
12:01:50 <elliott> import OutputMerger
12:01:54 <elliott> with a bunch of re-exported stuff
12:01:56 <elliott> from that module
12:02:00 <elliott> beautiful
12:03:08 -!- augur[sleep] has changed nick to augur.
12:07:25 <elliott> dear GOD this code is horrible
12:10:01 <elliott> extensions: ParallelListComp
12:10:02 <elliott> MultiParamTypeClasses
12:10:02 <elliott> NoMonomorphismRestriction
12:10:02 <elliott> ScopedTypeVariables
12:10:02 <elliott> FlexibleContexts
12:10:02 <elliott> FlexibleInstances
12:10:04 <elliott> EmptyDataDecls
12:10:06 <elliott> GeneralizedNewtypeDeriving
12:10:08 <elliott> TypeFamilies
12:10:11 <Patashu> wtf is that shi
12:10:12 <elliott> TypeOperators
12:10:14 <elliott> are you kidding me
12:10:14 <Patashu> fuck haskell
12:10:25 <oerjan> "And the LORD heard Elliott, and He smote the code with fire and obliterated it from the world. Then He got annoyed when elliott complained of his burning computer."
12:10:28 <elliott> Patashu: this has nothing to do with haskell
12:10:36 <elliott> and those are all reasonable extensions
12:10:40 <elliott> i'm complaining about the way they're being used
12:32:10 <elliott> Deewiant: OK, seriously, how the heck could cabal compile a module, but with all the same extension flags set, GHCi be unable to load it because of a missing list-tries instant?
12:32:11 <elliott> instance
12:33:29 <Deewiant> list-tries uses CPP, maybe that's being somehow problematic?
12:33:43 <Deewiant> Although that shouldn't cause that kind of error
12:33:44 <Deewiant> So beats me
12:35:01 <elliott> Deewiant: I sure hope it isn't recompiling list-tries when I load it in ghci
12:35:05 <elliott> ghc --make with the same flags also fails
12:35:34 <elliott> Deewiant: Well, I do have to do "-hide-package monads-tf", so that Control.Monad.Reader imports correctly in the module I'm compiling
12:35:44 <Sgeo> What's wrong with those extensions?
12:35:44 <elliott> But I don't think there's any way for list-tries to observe this and fail to provide an instance because of it
12:37:40 <elliott> Sgeo: Nothing.
12:39:21 <Deewiant> elliott: WFM
12:39:37 * Sgeo wonder how much that lucid dreaming sleeping mask is
12:40:01 <elliott> Deewiant: I've got a conveniently-clonable repository that proves it doesn't WFY :P
12:40:14 <Deewiant> Darn
12:40:39 <elliott> git://github.com/ehird/GPipe.git :-P
12:40:51 <elliott> (src/Resources.hs, to be specific; warning: hideous)
12:40:55 * Sgeo has no desire to muffle sounds at night
12:41:04 <Sgeo> What if there's an emergency of some sort?
12:41:04 <elliott> Sgeo: wat
12:41:32 <Sgeo> http://www.sleepmaster.us one of my Google results. Also, not exactly what I'm googling for anyway
12:42:15 <Sgeo> http://www.amazon.com/Dreamer-Lucid-Dreaming-Induction-Device/dp/B003EH4V8I/ref=sr_1_2?ie=UTF8&qid=1312288764&sr=8-2 ok, that's a bit expensive
12:42:25 <elliott> well duh, it does induction
12:42:36 <elliott> as oerjan can tell you, that's very difficult.
12:42:59 <Sgeo> lol
12:44:07 -!- TeruFSX has joined.
12:44:38 <fizzie> "Proof by Engineer's Induction: Suppose P(n) is a statement. 1. Prove true for P(1). 2. Prove true for P(2). 3. Prove true for P(3). 4. Therefore P(n) is true for all n."
12:45:10 <Deewiant> elliott:
12:45:11 <Deewiant> Warning: This package indirectly depends on multiple versions of the same
12:45:11 <Deewiant> package. This is highly likely to cause a compile failure.
12:45:11 <Deewiant> package GPipe-1.3 requires containers-0.3.0.0
12:45:11 <Deewiant> package list-tries-0.4.1 requires containers-0.4.0.0
12:45:27 <Deewiant> (cabal configure)
12:45:39 <elliott> Deewiant: Hmm.
12:45:58 <elliott> Oh, duh.
12:46:02 <elliott> build-depends: containers >= 0.3 && < 0.4,
12:46:03 <elliott> Bad.
12:46:25 <elliott> Deewiant: Still -- not sure how that should change my ghci results.
12:46:31 <elliott> Deewiant: I mean, it's not looking at the cabal file.
12:46:59 <elliott> And it works with the cabal compile, anyway ;-)
12:47:25 <quintopia> elliott: wai
12:47:46 <elliott> Deewiant: So, erm, wait, list-tries' containers dependency is a bit wide-ranging
12:47:49 <Deewiant> elliott: So what was the issue, 'cabal build' works but 'ghci src/Resources.hs' doesn't?
12:47:55 <elliott> Is it meant to pull in point-three or point-four
12:48:09 <elliott> Deewiant: cabal build works but ghc --make -hide-package monads-tf (ALL THE EXTENSION FLAGS) src/Resources.hs doesn't
12:48:14 <elliott> (Similarly for s/ghc --make/ghci/)
12:48:56 <Deewiant> It's meant to pull in the latest you've got
12:49:17 <Deewiant> It worked with point-two until last september when I pulled out the workarounds for it
12:51:24 <elliott> Heh
12:51:34 <Deewiant> Anyway, I don't know what cabal does with that multiple versions stuff
12:52:09 <Deewiant> I can imagine it building everything against 0.3 and then ghci looking only at list-tries's dependency on 0.4 (since that's what it was built against) and that not working then
12:52:12 <Deewiant> Or something
12:52:25 <elliott> Eurgh
12:52:29 <elliott> But why would it do that
12:52:34 <elliott> There is no multiple versions stuff in the source
12:52:38 <Deewiant> Like said, I don't know what it does
12:52:38 <elliott> That's purely in the cabal file
12:53:09 <elliott> This is going to make my modifications quite difficult :)
12:53:13 <Deewiant> 'cabal build' would grab whatever it thinks is fine, and I don't know what it thinks is fine if that depends on 0.3 but its dependencies on 0.4
12:53:41 <Deewiant> 'ghc'/'ghci' would look at 'ghc-pkg describe list-tries' (and for all the other dependencies) and go 'ah, 0.4'
12:53:46 <elliott> elliott@katia:~$ ghc-pkg list | grep containers
12:53:47 <elliott> WARNING: there are broken packages. Run 'ghc-pkg check' for more details.
12:53:47 <elliott> containers-0.4.0.0
12:53:47 <elliott> containers-0.3.0.0
12:53:47 <elliott> ah hm
12:53:57 <elliott> $ ghc-pkg check
12:53:57 <elliott> There are problems in package hashed-storage-0.5.7:
12:53:57 <elliott> dependency "binary-0.5.0.2-b471fd4ae9e6a992eed4cf652dba019b" doesn't exist
12:53:57 <elliott> The following packages are broken, either because they have a problem
12:53:57 <elliott> listed above, or because they depend on a broken package.
12:53:58 <elliott> hashed-storage-0.5.7
12:54:00 <elliott> darcs-2.5.2
12:54:01 <elliott> ah hm
12:54:04 <elliott> what is going on ;_;
12:54:06 <Deewiant> That helps as well :-D
12:54:22 * elliott installs that binary...
12:54:23 <Deewiant> But I guess it shouldn't matter since those aren't being used here
12:55:31 <elliott> $ ghc-pkg check
12:55:32 <elliott> There are problems in package list-tries-0.4.1:
12:55:32 <elliott> dependency "binary-0.5.0.2-67c6c6f05b738dc39b1e1d3f0e7a53aa" doesn't exist
12:55:32 <elliott> The following packages are broken, either because they have a problem
12:55:32 <elliott> listed above, or because they depend on a broken package.
12:55:32 <elliott> list-tries-0.4.1
12:55:34 <elliott> GPipe-1.3
12:55:36 <elliott> GPipe-TextureLoad-1.0.2
12:55:38 <elliott> Deewiant: help
12:55:42 <elliott> Hmm
12:55:44 <elliott> help :D
12:55:47 <Deewiant> :-D
12:55:56 <elliott> $ cabal install binary-0.5.0.2-67c6c6f05b738dc39b1e1d3f0e7a53aa
12:55:56 <elliott> Resolving dependencies...
12:55:56 <elliott> No packages to be installed. All the requested packages are already installed.
12:55:56 <elliott> If you want to reinstall anyway then use the --reinstall flag.
12:56:02 <elliott> ok it wants
12:56:03 <elliott> two different hashes
12:56:05 <elliott> of the same library
12:56:17 <Deewiant> cabal install --reinstall binary-0.5.0.2 and everything that depends on it
12:56:25 <elliott> How do I know what depends on it :P
12:56:29 <Deewiant> ghc-pkg check ;-P
12:56:46 <fizzie> I thought there was no Cabal. :/
12:56:48 <elliott> Weeeeeeeeeeeeeeeeeeeeeell
12:56:50 <elliott> The following packages are broken, either because they have a problem
12:56:50 <elliott> listed above, or because they depend on a broken package.
12:56:50 <elliott> list-tries-0.4.1
12:56:50 <elliott> GPipe-1.3
12:56:50 <elliott> GPipe-TextureLoad-1.0.2
12:56:56 <elliott> Deewiant: It is missing at least hashed-storage
12:57:00 <elliott> Because of the different hash
12:57:02 <Deewiant> Or 'ghc-pkg dot' if you like
12:57:15 <elliott> How did my packages get so broken :/
12:57:19 <Deewiant> elliott: Well, you only need to reinstall the ones that depend on the missing hash :-P
12:58:08 <Deewiant> My alternative solution that I have sometimes applied is rm -rf ~/.cabal/lib
12:58:10 <elliott> Hmm, it occurs to me that I've never used GraphViz before
12:59:32 <elliott> Wow
12:59:35 <elliott> dot sure does fail on ghc-pkg
13:00:05 <elliott> Fifteen thousand by one thousand three hundred
13:00:08 <Deewiant> The recommendation was ghc-pkg dot | tred | dot -Tpdf >pkgs.pdf
13:00:12 <Deewiant> Did you run tred?
13:00:21 <Taneb> Who turned red?
13:00:30 <Deewiant> elliott soon, if not already
13:00:47 <elliott> Deewiant: That helps... a bit
13:01:38 <elliott> Deewiant: There appears to be no binary on this graph
13:01:53 <elliott> Oh, there it is
13:02:24 <elliott> Deewiant: Apparently list-tries just depends on containers and dlist
13:02:46 <Deewiant> It should depend on binary and base as well
13:02:57 <elliott> Well, it doesn't :-)
13:03:00 <elliott> I guess base is omitted
13:03:10 * elliott tries reinstalling binary, list-tries, GPipe, GPipe-TextureLoad
13:03:17 <Deewiant> ghc-pkg describe doesn't, it seems strange that ghc-pkg dot would
13:03:27 <Deewiant> You sure it's not because of the tred
13:03:35 <elliott> Might be
13:03:38 <elliott> What does tred do
13:03:51 <Deewiant> I guess not because containers doesn't depend on binary
13:03:58 <Deewiant> tred - transitive reduction filter for directed graphs
13:04:13 <elliott> But bytestring depends on binray
13:04:23 <elliott> And I bet something that list-tries depends on depends on binary :P
13:04:25 <elliott> Or GPipe
13:04:26 <elliott> I don't know
13:05:05 <elliott> Now to recompile binary, hashed-storage, and darcs
13:05:07 <Deewiant> base doesn't
13:05:15 <Deewiant> containers depends only on array and base, which don't
13:05:23 <Deewiant> dlist depends only on base, which doesn't
13:06:34 <elliott> GPipe depends on everything, though :-P
13:12:14 <elliott> $ ghc-pkg check
13:12:14 <elliott> There are problems in package list-tries-0.4.1:
13:12:14 <elliott> dependency "binary-0.5.0.2-67c6c6f05b738dc39b1e1d3f0e7a53aa" doesn't exist
13:12:14 <elliott> The following packages are broken, either because they have a problem
13:12:14 <elliott> listed above, or because they depend on a broken package.
13:12:14 <elliott> list-tries-0.4.1
13:12:16 <elliott> GPipe-TextureLoad-1.0.2
13:12:18 <elliott> GPipe-1.3
13:12:20 <elliott> JESUS FUCKING CHRIST
13:12:22 <oerjan> <elliott> How did my packages get so broken :/ <-- sounds like augustss's (?) "butterfly" conflicts?
13:12:23 <elliott> It's literally toggling between those two as I reinstall binary
13:14:29 <elliott> oerjan: got a link?
13:14:40 <elliott> Oh well, I don't have _that_ many packages installed
13:15:01 <elliott> Installing darcs, GPipe, and cid-state should get most of them
13:15:03 <Deewiant> http://cdsmith.wordpress.com/2011/01/17/the-butterfly-effect-in-cabal/ presumably
13:15:05 <oerjan> elliott: if you aren't having a conflict within a single application, you might try cabal-dev
13:15:19 <elliott> yeah I've considered cabal-dve
13:15:33 <elliott> Oh I need to install hscolor too
13:15:35 <elliott> Argh
13:15:40 <elliott> Which needs to be done bootstrappingly
13:15:44 <Deewiant> elliott: "What [cabal] does is certainly… suboptimal. When you build twitclient, it will recompile twittertags against parsec-2.1, which will break superblog. If you then reinstall superblog to fix it, Cabal will recompile twittertags against parsec-3.1, and break twitclient… and so on, ad infinitum."
13:15:48 <elliott> Because I'm OCD enough to die if hscolor doesn't get hscolor documentations
13:15:54 <elliott> Deewiant: BUT THEY'RE THE _SAME_ _VERSION_
13:16:00 <elliott> How can the same version have two hashes????????????
13:16:15 <elliott> Dependenciesbase (<2.0), bytestring (≥0.9) or
13:16:15 <elliott> base (≥2.0 & <2.2) or
13:16:15 <elliott> base (≥3 & <3.0), bytestring (≥0.9) or
13:16:15 <elliott> array, base (≥3.0), bytestring (≥0.9), containers
13:16:16 <elliott> Argh
13:16:17 <elliott> That's how
13:16:18 <elliott> FML
13:16:34 <Deewiant> What's that, Binary.cabal?
13:17:08 <elliott> Well, from Hackage, but yeah
13:17:23 <elliott> So different hashes because different dependencies
13:17:26 <elliott> Although, wait
13:17:30 <elliott> "≥3 & <3.0"
13:17:31 <oerjan> Deewiant: right
13:17:32 <Deewiant> Right, so the butterfly effect in this case is binary getting built against different stuff
13:17:34 <elliott> There's no way that one is getting selected
13:17:38 <elliott> I guess it's bytestring
13:17:41 <elliott> Argh
13:17:47 <elliott> I guess I should nuke ~/.cabal and ~/.ghc, right?
13:17:56 <elliott> And then install binary manually, I guess
13:17:59 <elliott> Argh
13:18:05 <elliott> I don't even know why list-tries got built against different stuff
13:18:12 <Deewiant> I wouldn't nuke .cabal unless you save .cabal/config
13:18:19 <elliott> Is it because GPipe has that old containers dependency?
13:18:23 <elliott> containers (0.3.*)
13:18:32 <elliott> And binary just depends on "containers"
13:18:38 <Deewiant> binary is old :-P
13:18:49 <elliott> That doesn't explain anything
13:19:01 <Deewiant> It somewhat explains its dependency style
13:19:18 <elliott> GPipe pulls in list-tries (which needs containainers and is ok with point three), and also pulls in containers which MUST be zero point three; and binary gets pulled in
13:19:24 <elliott> But we can't use a binary built against containers zero point four
13:19:30 <elliott> So cabal builds a binary against containers zero point three
13:19:33 <elliott> Links list-tries and GPipe against it
13:19:34 <elliott> Right?
13:19:56 <elliott> So if I change GPipe's containers dependency to "containers >= 0.4 && < 0.5,", everything should be fine
13:20:02 <Deewiant> Sounds plausible
13:20:06 <elliott> Deewiant: Anyway if binary is old, why do you depend on it :-P
13:20:17 <Deewiant> Somebody sent me a patch
13:20:27 <Deewiant> "Hey, depend on this" and I was like "ok"
13:20:38 <Deewiant> (They wanted Binary instances)
13:20:43 <elliott> It would simplify my life were you to remove that dependency :-P
13:21:00 <Deewiant> I think a lot of people use Binary for stuff
13:21:08 <elliott> So make list-tries-binary?
13:21:17 <Deewiant> With the instances? :-P
13:21:19 <elliott> Yes.
13:21:23 <elliott> That's the "standard" thing, at least.
13:21:33 <Deewiant> Howso
13:21:56 <elliott> Deewiant: Whaddya mean
13:22:06 <elliott> There's plenty of "instance glue" packages out there
13:22:34 <elliott> Just put them in Data.ListTrie.Binary
13:22:36 <Deewiant> Aren't orphan instances supposed to be bad
13:22:47 <elliott> Deewiant: That's a controversial opinion :-P
13:22:54 <elliott> They work fine
13:23:18 <elliott> And in this case it's pretty unambiguous
13:23:27 <elliott> Because you'd only want one instance of Binary
13:23:32 <elliott> And it'd be "blessed"
13:24:37 <Deewiant> Fair enough I guess
13:24:58 <elliott> As you may have gathered I'm forking GPipe to s/GLUT/GLFW-b/
13:25:04 <elliott> And hopefully reduce the ugly Vec shit
13:25:19 <elliott> So my official opinion in that capacity is that I hate your binary dependency :-)
13:25:42 -!- Taneb has quit (Read error: Connection reset by peer).
13:26:42 <oerjan> elliott: btw i realized that i might be able to reorganize if (!a) { a = C1*b+D1; b=0; } as b = C1*b+D1; if (a) { b = (b-D1)/C1; } modulo some moving around, so the 3-cell attempt is not quite dead yet.
13:27:00 <elliott> oerjan: woot
13:28:53 -!- oerjan has quit (Quit: Later).
13:29:43 <Deewiant> elliott: Too bad, the Set types need the instance for an unexported type
13:30:24 <elliott> Deewiant: Eh?
13:30:48 <Deewiant> As in: I'm not sure the instances can be defined with just the public API
13:31:02 <elliott> Then your API is not good enoug :P
13:31:03 <elliott> enough :P
13:31:35 <elliott> I mean, if someone can't implement their own alternate binary serialisation for some other package with your aPI, that kind of sucks
13:40:49 <elliott> Haha, shit, I clobbered cabal-install
14:01:37 <elliott> Deewiant: Hooray, now it works
14:08:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:08:56 <elliott> It is ridiculous how many maps this thing has
14:08:59 <elliott> Just to support multiple windows
14:09:02 <elliott> Does anyone use multiple windows
14:09:05 <elliott> Even with GLUT
14:11:03 -!- MSleep has changed nick to MDude.
14:17:57 -!- Taneb has joined.
14:18:29 -!- Patashu has quit (Ping timeout: 240 seconds).
14:21:54 <elliott> Deewiant: Do you know of a Haskell reformatter tool, GPipe's code is really right-leaning and just hideous
14:30:29 <elliott> ?hoogle (a -> m ()) -> Maybe a -> m ()
14:30:29 <lambdabot> Data.Foldable traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
14:30:29 <lambdabot> Data.Foldable mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
14:30:29 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
14:32:08 <elliott> where takeOne a = case Map.lookup w a of
14:32:09 <elliott> Nothing -> Left $ Map.elemAt 0 a
14:32:09 <elliott> Just t -> Right t
14:32:09 <elliott> Sigh
14:34:53 -!- lament has joined.
14:42:49 <Deewiant> Does that just lookup again if the lookup failed? :-P
14:43:11 <Deewiant> Oh, no, 0
14:44:56 <elliott> Deewiant: I thought the (Map GLUT.Window TextureObject) would translate to (Maybe TextureObject)
14:45:00 <elliott> Apparently not
14:45:18 <elliott> I would think it'd just be TextureObject, but, haha no, because it treats the Left and Right results differently there
14:45:29 <elliott> In that the Right result just sets the textureBinding but the Left result initialises everything
14:45:34 <elliott> I have no clue what it's actually trying to do
14:49:02 -!- copumpkin has joined.
14:49:08 -!- CakeProphet has joined.
14:49:08 -!- CakeProphet has quit (Changing host).
14:49:08 -!- CakeProphet has joined.
15:21:12 -!- lambdabot has quit (Ping timeout: 252 seconds).
15:32:15 <elliott> Is there a way to tell git you moved a file after-the-fact?
15:33:01 <Deewiant> What I tend to do is git rm the old location and git add the new
15:33:16 <Deewiant> Maybe there's a better way
15:34:26 <elliott> Doesn't that make it not record it as a rename
15:34:47 <Deewiant> It should detect it, if you check git status it should say it was renamed
15:37:48 <elliott> Okay
15:37:57 <elliott> Stupid heuristics
15:43:00 <elliott> Hmm, wonder if I should migrate it to another vector/linear algebra library
15:43:03 <elliott> vect or hmatrix or repa or something
15:47:15 -!- azaq23 has quit (Ping timeout: 252 seconds).
15:55:59 <fizzie> Move it back and then "git mv" it for reals?
15:57:09 <elliott> That's the Boering 747 solution.
15:57:40 <Deewiant> Strictly speaking that's not how you "tell git you moved a file after-the-fact"
16:04:19 <elliott> The Vec library looks like how my code ends up before I realise I've made a terrible mistake and abandon it.
16:11:04 -!- lament has quit (Ping timeout: 252 seconds).
16:11:20 -!- Nisstyre has quit (Ping timeout: 264 seconds).
16:13:46 -!- derrik has joined.
16:24:13 -!- Nisstyre has joined.
16:31:35 -!- elliott has quit (Remote host closed the connection).
16:32:18 -!- elliott has joined.
16:37:29 -!- MigoMipo has joined.
17:05:41 <elliott> copumpkin: do you have a link to that generalised static-length vector fold you linked a while ago? it was on hpaste
17:05:58 <copumpkin> foldr is easy to write
17:06:01 <copumpkin> foldl is tougher
17:06:06 <copumpkin> should be on hpaste though
17:06:20 <copumpkin> http://hpaste.org/41453
17:07:02 <elliott> thanks
17:10:31 <elliott> hmm, it'd be nice if the VecFlip stuff could be abstracted out somehow...
17:12:10 <elliott> mapV f = unCev . foldrV (\x xs -> f x -: xs) (Cev V)
17:12:14 <elliott> I guess that's good enough
17:13:06 -!- augur has quit (Remote host closed the connection).
17:28:28 -!- Taneb has quit (Ping timeout: 260 seconds).
17:32:31 <Phantom_Hoover> OK, the Museum of Scotland is RUINED FOREVER.
17:45:54 <Phantom_Hoover> Although it turns out that antimony is really pretty.
17:46:03 <Phantom_Hoover> Why do I only fall for highly toxic elements?
17:49:33 -!- sebbu has quit (Ping timeout: 246 seconds).
17:50:29 -!- sebbu has joined.
17:56:13 -!- sebbu has quit (Read error: Connection reset by peer).
17:56:38 -!- sebbu has joined.
17:56:39 -!- sebbu has quit (Changing host).
17:56:39 -!- sebbu has joined.
18:09:20 -!- pingveno_ has joined.
18:10:11 -!- pingveno_ has quit (Client Quit).
18:10:33 -!- pingveno has joined.
18:17:56 -!- Taneb has joined.
18:19:13 <Taneb> Well, thanks to Scandinavia in the World, I've started swearing in vilely mispronounced Finnish
18:26:20 <Deewiant> s/in/and/
18:26:32 <fizzie> Scandinavia outside the World.
18:26:50 <Taneb> I type pseudophonetically
18:26:55 <Deewiant> s/s\/in/s\/\\<in/
18:27:13 <fizzie> Scandandavia, sounds funky.
18:37:36 <Taneb> I really should stop typing phonetically
18:39:09 <itidus20> http://www.artchive.com/artchive/m/magritte/telescop.jpg
18:40:18 <Taneb> Nice
18:40:47 <itidus20> next to the random place i found it on a forum someone said "Note that you can only see when you look through the glass. I saw this one in person, and it was stunning. There's something frightening about the black outside. "
18:45:18 <Sgeo> Parting channels in Quassel is a bit more aggrivating than it needs to be
19:16:26 <Sgeo> elliott, Phantom_Hoover update
19:18:28 <fizzie> So what does the updated Phantom_Hoover do that the old one didn't?
19:19:11 <Phantom_Hoover> Backflips.
19:19:22 <Taneb> ...I read MSPA too, guys
19:20:00 <elliott> Taneb: You don't count as human, though.
19:20:10 <Phantom_Hoover> EXILES
19:20:27 <Taneb> THE SUSPICIOUS LACK OF IRONY IN THE UPCOMING REVALATION
19:20:38 <elliott> You misspelled revelation.
19:20:45 <Taneb> I misspell nothing.
19:21:04 <Taneb> Speech is the natural form of the language, spelling is based on speech
19:21:38 <derrik> Taneb: both are natural forms of language..
19:22:41 <derrik> your spelling may suck so bad that it cannot be considered language.. then it's not natural
19:24:11 <Phantom_Hoover> Taneb, welcome to the English language!
19:25:33 <NihilistDandy> ohai
19:31:39 -!- monqy has joined.
19:32:46 * pikhq_ is tempted to write a partial git implementation. Anyone think of reasons I shouldn't?
19:33:02 <Taneb> There is absolutely no reason to?
19:33:06 <monqy> how bothersome would it be
19:33:08 <pikhq_> Taneb: Aside from that.
19:33:22 <pikhq_> monqy: Actually, the core semantics of git seem utterly *simple*.
19:33:39 <pikhq_> It's just a fairly simple immutable data structure.
19:35:31 <Taneb> I'll help, if I can
19:38:00 -!- derrik has left.
19:38:19 <elliott> monqy: hi i forked gpipe into glfwpipe
19:38:22 <elliott> also bye
19:39:26 <monqy> :o
19:41:55 <Taneb> However, I probably will not be able to help
19:42:09 <Taneb> I'm here to make myself feel stupis
19:42:20 <Taneb> s/stupis/stupid/
19:43:08 -!- elliott has quit (Ping timeout: 264 seconds).
19:57:08 -!- oerjan has joined.
19:59:20 <Taneb> I feel like changing the Numberwang spec so its less easily proved Turing Complete
20:00:39 <oerjan> <elliott> Deewiant: Do you know of a Haskell reformatter tool, GPipe's code is really right-leaning and just hideous
20:00:58 <oerjan> there was a reddit thread about this just last week
20:01:06 <monqy> what does right-leaning mean help
20:01:30 <oerjan> monqy: too much nesting of indentation levels, i assume
20:01:44 <Taneb> Fascist?
20:02:19 <oerjan> http://www.reddit.com/r/haskell/comments/j31f4/is_there_a_haskell_code_formatter/
20:02:31 <oerjan> (includes link to stackoverflow)
20:05:02 <oerjan> <Taneb> Well, thanks to Scandinavia in the World, I've started swearing in vilely mispronounced Finnish
20:05:14 <oerjan> perkele hakkapellittä!
20:05:31 <Taneb> I'm assuming perkele isn't pronounced perk-ell-ay
20:05:53 <oerjan> (i'm not sure if that ä should be an a)
20:06:05 <olsner> perky-lay
20:06:14 <oerjan> Taneb: i think that's about as close as you could expect from an englishman
20:06:32 <oerjan> well the perk might need some work
20:06:42 <fizzie> oerjan: "Hakkapellittä" -- "without a hakkapelti". ITYMM "hakkapeliitta".
20:06:53 <oerjan> fizzie: quite possibly
20:07:12 <oerjan> fizzie: but then it was supposed to be vilely mispronounced, anyway
20:07:13 <fizzie> It's not much of a swearword really.
20:07:17 <Deewiant> Taneb: http://www.youtube.com/watch?v=u1PjDNWFOAc
20:07:41 <oerjan> fizzie: maybe not, but it sounds like one to a norwegian
20:07:54 <oerjan> dæven hakke og skalpere
20:08:19 <Taneb> I managed to read that as "Does Haskell have Shakespeare?"
20:08:22 <Taneb> Don't ask how
20:09:11 <Taneb> ...Does Haskell have Shakepeare?
20:09:38 <oerjan> except for replacing the "dæven" by a euphemism, i think that's the signature swearing style of an old norwegian comic character, "obersten"
20:10:10 <fizzie> Shakespeare's page only has C and Perl implementations, no Haskell there.
20:10:35 <Taneb> A challenge! For a better programmer than I
20:11:27 <oerjan> Taneb: i think your "than I" is actually grammatically incorrect in that position *MWAHAHAHA*
20:11:43 <olsner> you can use any finnish word as a swear word (as long as no-one knows finnish)
20:11:48 <olsner> http://www.youtube.com/watch?v=b82jMIkZMv0#t=34s for example
20:12:15 <oerjan> (it's "for me", so it should be "for ... than me")
20:12:17 <Taneb> Olen käsine! Ei, olen kaksi käsineet!
20:12:42 <Deewiant> s/et!/ttä!/
20:12:53 <fizzie> Or "kahdet käsineet".
20:12:57 <oerjan> otoh you _could_ think of it as eliding a final "am". hm...
20:13:49 <Taneb> "I am a glove! No, I am two gloves!" is my standard foreign phrase
20:14:26 <fizzie> Then it's "kaksi käsinettä"; the "kahdet käsineet" variant would be "two pairs of gloves".
20:14:44 <oerjan> Eg er ein hanske! Nei, eg er to hanskar!
20:14:53 <oerjan> (there's your nynorsk)
20:15:04 <Deewiant> Or "two sets of gloves" in general, but I guess you can assume they're pairs
20:15:32 <olsner> hmm, I was about to write the swedish, but half-way through realized I was writing it in english
20:15:54 <olsner> Jag är en handske! Nej, jag är två handskar!
20:16:09 <fizzie> Though I think "hanska" is perhaps closer to "glove" maybe. Or a slightly less formal term anyway. (No points for guessing from where *that* word comes from.)
20:16:45 <Deewiant> I think it's just the more informal variant
20:17:15 <fizzie> Wiktionary translates "käsine" as "any garment used to protect a hand, such as glove or mitten", while hanska/hansikas is only "glove".
20:17:41 <fizzie> And indeed I can imagine a non-glove "käsine".
20:18:06 <olsner> swedish has "vantar" for mittens and less formal gloves
20:18:21 <Deewiant> "vanttuut"
20:18:24 <olsner> less formal or technical, in case of e.g. surgical gloves
20:18:46 <fizzie> Vanttuut ja lapaset.
20:19:29 <fizzie> "vanttuut /pl/ 1. (dialectal) One ore more pairs of knitted mittens or mitts. Singular form vantus is only rarely used." --wiktionary. Oo, it's quite comprehensive.
20:20:05 <oerjan> vott are you talking about
20:20:43 <Taneb> Laughing at this headline: http://www.bbc.co.uk/news/technology-14370878
20:20:55 <olsner> though we actually call mittens something like thumbmittens in swedish
20:21:36 <NihilistDandy> Ég er hanska! Nei, ég tvær hanska!
20:22:14 <oerjan> "The report has sparked anger from IE supporters, who have threatened AptiQuant with legal action.
20:22:16 <NihilistDandy> For you Íslendingar
20:22:17 <oerjan> "
20:22:48 <olsner> NihilistDandy: are you from iceland?
20:22:52 <NihilistDandy> Not even a little
20:22:57 <NihilistDandy> I just studied it for a while
20:23:40 <NihilistDandy> I quite like it, though
20:23:44 <fizzie> oerjan: Are you even allowed to quote things without following-up with a pun?
20:24:11 <NihilistDandy> I think it started when the volcano was blowing up, and I wanted to learn how to pronounce its name properly
20:25:15 <oerjan> fizzie: i cannot comment on that, i may be involved in a relevant class action suit
20:25:30 <NihilistDandy> My translation's probably a bit off, really :|
20:26:04 <olsner> NihilistDandy: so from there you went to learning the whole language? wow...
20:26:25 <NihilistDandy> olsner: I don't need a lot of motivation to learn a language :D
20:26:54 <Taneb> You could be the next Tolkein!
20:27:03 <NihilistDandy> Tolkien, even
20:27:18 <Taneb> No, definitely Tolkein.
20:27:26 <Taneb> Who'd want to be Tolkien?
20:27:28 <NihilistDandy> Also, I once tried to learn Elvish when I was like 8, but I got bored.
20:27:35 <NihilistDandy> Taneb: What with him being dead? Not me.
20:27:42 <olsner> might be missing an article for the "a glove" case there, but I don't know icelandic well enough to know if they use those the same way we do
20:27:44 <oerjan> dammit i may no longer be the most awesome /// programmer
20:27:54 <olsner> looks like it's saying "I am glove"
20:28:04 <olsner> I AM GLOVE
20:28:08 <olsner> I AM TOO GLOVE
20:28:35 <olsner> (that felt like it needed saying in all-caps)
20:28:42 <fizzie> Too glove for my shirt, like the popular song goes.
20:29:15 <NihilistDandy> IIRC articles are a bit different in Icelandic.
20:29:17 <Taneb> Je suis trop gants pour ma chemise?
20:30:03 <NihilistDandy> I'm too gloves for my shirt. lol
20:30:13 <fizzie> Not just Tolkein, maybe the Tolkeist.
20:30:56 <olsner> Tolkzwei?
20:31:21 <oerjan> <NihilistDandy> Ég er hanska! Nei, ég tvær hanska! <-- isn't there an "er" missing in the last sentence?
20:32:00 <NihilistDandy> Ég er of hanska fyrir skyrtu mína.
20:32:35 <oerjan> olsner: in any case istr icelandic has no indefinite article
20:34:03 <NihilistDandy> oerjan: Good point
20:34:12 <NihilistDandy> And I probably should have used tvö
20:34:31 <NihilistDandy> Maybe. I can barely remember, anymore
20:34:34 <copumpkin> NihilistDandy: if you come to the next bostonhaskell, there's an icelandic dude
20:34:41 <NihilistDandy> copumpkin: Shweet
20:34:44 <NihilistDandy> I'll have to brush up
20:34:46 -!- boily has quit (Ping timeout: 255 seconds).
20:35:01 <Taneb> Those leaves are getting annoying
20:35:02 <NihilistDandy> Not a lot of use for Icelandic in the middle of nowhere where I am :D
20:36:40 <olsner> I think you'd have to be in the exact same middle of nowhere as iceland to find a use for it :P
20:37:08 <olsner> oerjan: wikipedia agrees with you
20:37:23 <Taneb> Iceland has a comparitive population with Northumberland
20:38:51 <NihilistDandy> Iceland's awesome. I'd like to teach there
20:39:01 <Taneb> I'd like to teach Maths
20:39:29 <oerjan> i love the lava live and it loves me
20:40:22 <NihilistDandy> Taneb: Me, too
20:40:37 <Taneb> But you said you want to teach Iceland!
20:40:42 <Taneb> Iceland is not Maths!
20:41:24 <oerjan> i've been wondering if icelandic makes up its own math terms, and up to what level there are enough icelanders to do it...
20:42:19 <Taneb> Sshh..
20:42:22 <oerjan> copumpkin: you should ask the icelandic dude what zygohistomorphic prepromorphism is in icelandic
20:42:23 <Taneb> They may be listening in
20:43:07 <NihilistDandy> oerjan: They probably just reuse old words. There's some language purity movement to replace all loanwords with native Icelandic equivalents
20:43:28 <oerjan> NihilistDandy: well it's that purity which makes it an interesting question, duh
20:43:29 <Taneb> There's one of those for English
20:43:43 <NihilistDandy> oerjan: I'm still not clear on what zygohistomorphic prepromorphism is in English :/
20:43:48 <oerjan> copumpkin: maybe he'll make one up on the spot
20:44:16 <oerjan> NihilistDandy: "zygohistomorphic prepromorphism". hth, and congratulations on speaking a rampantly stealing language.
20:44:18 <copumpkin> oerjan: he'd probably just repeat it to me in english
20:44:37 <olsner> zygohistomorfisk prepromorfism
20:44:37 <NihilistDandy> oerjan: :/
20:44:45 <olsner> there, "translated" into swedish
20:44:54 <NihilistDandy> Not quite what I meant, but I should have expected that
20:45:00 <oerjan> olsner: *+e and you've got the norwegian
20:45:17 <olsner> -morfisme?
20:45:21 <oerjan> yeah
20:46:10 <oerjan> olsner: if it gets _really_ often used, maybe we'll change the z into an s.
20:47:16 <olsner> oh, right, you do that funny respelling words the way they sound
20:47:54 <oerjan> olsner: well you changed the ph to f too
20:48:13 <olsner> true
20:52:18 -!- zzo38 has joined.
20:52:33 <zzo38> Is the "clog" broken?
20:53:10 <Taneb> It's clogged
20:53:15 <olsner> maybe it's too glove
20:53:26 <Taneb> Hang on..
20:53:26 <NihilistDandy> I'm too glove for this clog
20:53:42 <Taneb> Inform 7 docs?
20:54:21 -!- GreaseMonkey has joined.
20:55:43 -!- MigoMipo_ has joined.
20:56:47 <zzo38> What about Inform 7 docs?
20:56:57 <Taneb> You just reminded me of them
20:57:11 <zzo38> OK.
20:58:25 -!- MigoMipo has quit (Ping timeout: 258 seconds).
21:00:13 <itidus20> lol
21:00:51 <itidus20> english language would steal a word, and then if anyone else used it it would be called loaned from english
21:01:26 <Taneb> Worked out why I was reminded of Inform 7 docs
21:01:29 <Taneb> "Heatwave bone breaks clog hospital."
21:01:30 <olsner> "whaddayamean, we stole it. it's ours now."
21:01:46 <Taneb> Finders keepers
21:23:40 -!- lambdabot has joined.
21:24:59 <Taneb> Is it too late to significantly change the Numberwang spec?
21:25:27 <copumpkin> 7
21:25:40 <olsner> yes, they've already made many episodes of mitchell and webb with numberwang, too late to change now
21:25:55 <Taneb> Fair enough
21:26:18 <Taneb> But I was referring to the one of the four+ esoteric programming languages by that name that I invented
21:26:51 <olsner> it is never too late
21:32:22 <oerjan> well if you invented four+ esoteric programming languages named numberwang i guess it won't really matter if you make one more.
21:32:35 <Taneb> Four have been invented
21:32:37 <Taneb> One by me
21:32:45 <oerjan> ah
21:32:46 <NihilistDandy> As long as the total number of languages remains numberwang, all is well
21:32:56 <Taneb> One is undefined
21:33:12 <Taneb> One is useless, and is the only one thusfar implemented
21:33:20 <Taneb> !Numberwang 20
21:33:43 * NihilistDandy is checking his home game books
21:33:50 <oerjan> ye olde case sensitive bot
21:33:54 <NihilistDandy> That's not numberwang
21:33:56 <Taneb> One is a rather lame BF derivative
21:34:10 <Taneb> !numberwang 20
21:34:12 <EgoBot> That's numberwang!
21:34:16 <NihilistDandy> Lies
21:34:35 <Taneb> Numberwang depends on more variables than a single number
21:34:56 <NihilistDandy> Have you ever played the home edition?
21:35:13 <Taneb> No, but I was once in the studio audience of the show
21:35:34 <NihilistDandy> http://www.youtube.com/watch?v=swV3E3HPQC4
21:42:10 <Taneb> I want
21:44:44 <NihilistDandy> ikr
21:45:20 <zzo38> Is it possible to use Template Haskell to implement rulebooks-based programming like Inform 7 does?
21:46:21 <zzo38> Are duplicate definitions allowed in Haskell?
21:47:50 <Taneb> I believe so
21:48:35 <oerjan> um you cannot define the same identifier twice in the same scope
21:49:29 <zzo38> Even if the definitions are identical?
21:50:08 <oerjan> i don't recall it being allowed, so i would be surprised if it is supported
21:50:15 <oerjan> > let x = 3; x = 3 in x
21:50:16 <lambdabot> Conflicting definitions for `x'
21:50:17 <lambdabot> Bound at: <interactive>:1:4
21:50:17 <lambdabot> <in...
21:50:59 <oerjan> so, no.
21:51:51 <zzo38> OK.
21:52:26 <zzo38> How much do you know about Template Haskell, though?
21:52:39 <olsner> Taneb: you've seen numberwang *LIVE*!?
21:52:40 <oerjan> i know almost nothing about it
21:52:42 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
21:52:57 <oerjan> as i've never used it myself
21:53:20 <oerjan> it's for compile-time metaprogramming, afaik
21:55:17 <NihilistDandy> There's probably a GHC extension that allows for conflicting definitions~
21:55:51 <Taneb> olsner: Nah, that was a joke. Wish I hadd.
21:55:59 <olsner> meh
21:56:17 <NihilistDandy> joke == lie
21:56:38 <oerjan> there's OverlappingInstances but that's somewhat different (only applies to selecting which class instance to use for a type)
21:57:16 <oerjan> oh and there's something for records, i think? but they have to be defined in different modules.
21:57:37 <oerjan> and belong to different types.
21:57:59 <zzo38> Do you know, if it is allowed in Template Haskell, to have one $ command that will return something for use of the next $ command that is found if it can use it?
21:58:16 <zzo38> It would seem a bit difficult but I don't know much about it
21:58:43 <oerjan> zzo38: i don't know
21:59:09 <oerjan> maybe copumpkin knows, is the resident haskell expert now *evil cackle*
21:59:16 <oerjan> *he is
21:59:39 <zzo38> Can you compile Haskell codes into LLVM codes? I have read LLVM documentation it does suppports Haskell calling convention
21:59:52 <oerjan> (he just become a mod of reddit's haskell subreddit)
22:00:27 <coppro> zzo38: Some people have been working on it
22:00:31 <coppro> I do not know how mature it is
22:00:50 <oerjan> zzo38: haskell has an LLVM backend yes, and there's also i believe a package for using llvm's api from haskell
22:01:21 <zzo38> I am not looking for the package for using LLVM's API from Haskell, but thanks for information anyways
22:01:50 <zzo38> I do want to use LLVM's API from C, although I don't know everything about it
22:02:18 <oerjan> as for mature, i think the llvm backend is the recommended one now, and the gcc one has been deprecated
22:02:56 <zzo38> Can you use LLVM with the GHC extensions of Haskell?
22:03:14 <oerjan> well it's a backend for ghc...
22:03:49 <zzo38> Does it have any syntax for adding direct LLVM codes in a Haskell program?
22:03:50 <oerjan> i would assume it supports essentially everything ghc does
22:04:44 <oerjan> zzo38: hm i don't know if you can do that while compiling, there are so many stages
22:05:23 <oerjan> i think i saw a blog post about creating llvm code in a haskell program and then running it
22:07:58 <zzo38> Not what I am looking for, though. What it is, is if there is something for adding LLVM codes into a program similar to "asm" command in C, except using LLVM codes instead of native codes, and for Haskell instead of only with C
22:08:49 <oerjan> like inlining llvm into haskell?
22:08:56 <NihilistDandy> So you want inlining
22:09:43 <zzo38> Yes
22:11:11 <oerjan> well i found an old reddit thread which doesn't look _that_ promising http://www.reddit.com/r/haskell/comments/cpiwm/ghc_llvm_backend_add_support_for_inline_assembly/
22:14:09 <oerjan> given that you cannot currently even inline ghc _core_, i somewhat doubt it's possible to inline lower level stages
22:14:53 <zzo38> (Actually I would like also supporting inline LLVM codes in other programming languages too, including C and so on, is something like inline assembly codes but can be portable to different computers)
22:15:22 <NihilistDandy> Aww, you can't inline Core?
22:15:25 <NihilistDandy> sadface
22:17:36 <oerjan> NihilistDandy: there isn't currently a _parser_ for core afaiu
22:17:56 <NihilistDandy> Ah
22:18:39 <oerjan> when i looked, i found a badly tested ghc-api function for compiling a module from the internal core representation in ghc
22:19:23 <zzo38> Computer Modern fonts doesn't seem to have lowercase Greek letters without italic
22:19:26 <oerjan> but according to the docs, that only has been tested for a single, whole module
22:20:24 <oerjan> mind you this is coincidentally the only looking into the ghc-api i've done, so i may not be the best person to ask :P
22:21:13 <oerjan> (i kept wondering why the reflection package wasn't implemented in core rather than the ridiculously convoluted portable oleg solution)
22:22:09 <oerjan> zzo38: i guess they're not much used in math
22:22:36 <oerjan> but you'd think there was something for writing text in greek
22:23:46 <zzo38> Of course a parameter file can be written so that it is not slanted, but it would still be italic style and also would still not be a standard file.
22:24:58 <oerjan> zzo38: http://stackoverflow.com/questions/6246310/inline-assembly-in-haskell may be relevant, although that too doesn't seem to allow putting anything directly in the haskell code
22:26:57 <zzo38> Can it be done, declare an external function and then write that function in LLVM telling it to be always inline, and then put the LLVM files together?
22:27:39 -!- Patashu has joined.
22:27:48 <oerjan> hm i don't know if that will work
22:28:15 <oerjan> (as in i don't know, not that i'm doubting it)
22:28:26 -!- nooga has joined.
22:28:28 <nooga> hi
22:28:35 <oerjan> hi nooga
22:29:02 <nooga> I'm looking for some digestive papers on category theory
22:29:45 <oerjan> sorry, we only have categorical papers on digestion theory
22:30:27 -!- azaq23 has joined.
22:30:28 <nooga> and, so far, I've got some theoretical slides on digestion category
22:30:50 <oerjan> ic
22:37:00 * oerjan learns that there exists http://hackage.haskell.org/package/derp
22:37:20 <Taneb> How appropriate
22:38:22 <oerjan> the backronym looks plausible, i wonder if it was intentional...
22:40:23 <Taneb> I'm going for intentional
22:40:30 <Taneb> I'da called it DP
22:41:56 <oerjan> sadly there is no herp package yet
22:42:54 <Taneb> Heroic parsing?
23:05:15 -!- olsner has quit (Read error: Operation timed out).
23:07:48 -!- nooga has quit (Ping timeout: 258 seconds).
23:10:59 <copumpkin> oerjan: what?
23:11:36 <oerjan> copumpkin: you're a haskell mod so clearly you must know everything about haskell. QED.
23:15:28 <copumpkin> oh, duh
23:15:29 <copumpkin> yeah
23:15:38 <copumpkin> or maybe I know everything about haskell
23:15:42 <copumpkin> and am therefore a mod
23:16:12 <oerjan> it's an isomorphism!
23:17:30 <NihilistDandy> Just like Howard Curry would have wanted~
23:18:22 <copumpkin> oh, was that his name!
23:19:13 <NihilistDandy> Yeah, I don't know what all this hyphen nonsense is about. It's the Curry, Howard Isomorphism
23:19:16 <NihilistDandy> Jeez
23:21:46 <oerjan> hyphen hype
23:34:30 <Taneb> Good morning
23:34:32 -!- Taneb has quit (Quit: He's a big quitter he is.).
23:37:16 <quintopia> hypehen
23:53:13 <Lymee> !sanetemp 110
23:53:13 <EgoBot> 43.3
23:53:14 <Lymee> help
23:53:49 <oerjan> better call a doctor
23:54:22 <Lymee> Do doctors carry weather control devices?
23:55:02 <oerjan> well the Doctor probably does.
2011-08-03
00:10:06 <pikhq_> Probably another feature of the sonic screwdriver.
00:10:20 -!- FireFly has quit (Quit: swatted to death).
00:12:27 -!- GreaseMonkey has quit (Quit: The Other Game).
00:16:33 <Phantom_Hoover> <Lymee> help
00:16:33 <lambdabot> Phantom_Hoover: You have 11 new messages. '/msg lambdabot @messages' to read them.
00:16:40 <Phantom_Hoover> Wait, is that the actual temperature where you are?
00:19:27 <NihilistDandy> oerjan, pikhq_: There was a special in the new series...
00:19:52 * Phantom_Hoover notes that for some reason his DF fortress has no food.
00:20:06 <Phantom_Hoover> I'll just wait for the tantrum spiral, then.
00:20:07 <NihilistDandy> Phantom_Hoover: Your Dwarf Fortress Fortress?
00:20:24 <Phantom_Hoover> NihilistDandy, I decided that it was necessary for disambiguation.
00:25:14 * Phantom_Hoover decides to dig through damp stone.
00:28:40 -!- augur has joined.
00:45:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:16:16 -!- Phantom_Hoover has quit (Quit: Leaving).
01:16:26 -!- copumpkin has joined.
01:17:57 -!- cheater__ has joined.
01:21:20 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:48:18 -!- comex has quit (Remote host closed the connection).
02:09:04 -!- evincar has joined.
02:20:50 -!- lament has joined.
02:22:22 -!- oerjan has quit (Quit: Good night).
02:39:05 -!- azaq23 has quit (Quit: Leaving.).
03:03:01 -!- MDude has changed nick to MSleep.
03:47:06 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
04:14:41 -!- evincar has quit (Quit: To bed!).
04:22:30 -!- GreaseMonkey has joined.
04:22:30 -!- GreaseMonkey has quit (Changing host).
04:22:30 -!- GreaseMonkey has joined.
04:41:51 -!- variable has quit (Quit: I found 1 in /dev/zero).
04:42:12 <zzo38> I started making the prettyprinting literate Haskell program in TeX, now what I have so far it works. Now I have to make the other parts too.
04:42:58 -!- variable has joined.
04:45:21 -!- pumpkin has joined.
04:48:09 -!- pumpkin has changed nick to copumpkin_.
04:48:50 -!- copumpkin has quit (Ping timeout: 276 seconds).
04:52:42 <quintopia> is there a name for a numbering system where every single positive integer has a distinct symbol?
04:53:05 <coppro> unary
04:53:10 <zzo38> I don't know.
04:53:40 <quintopia> nah, its the extremme opposite of unary
04:54:21 <coppro> unary gives each positive integer a distinct symbol
04:55:06 <quintopia> i thought unary was where every positive integer got a different sized collection of the same symbol
04:55:27 <quintopia> aka, n is n digits long
04:55:45 <CakeProphet> unary = tick marks. 1, 11, 111, 1111
04:55:45 <zzo38> coppro: Are you sure?
04:55:46 <CakeProphet> etc
04:55:46 <quintopia> and i'm talking about where n is one digit long for all n
04:56:00 <quintopia> i guess you could call it base infinity
04:56:05 <coppro> zzo38: yes
04:56:09 <CakeProphet> he's talking about an infinite number of symbols. I don't think that has a name.
04:56:10 <zzo38> quintopia: Yes it is wat I would think
04:56:13 -!- copumpkin_ has changed nick to copumpkin.
04:56:15 <coppro> quintopia: define a digit
04:56:21 <CakeProphet> usually alphabet sets are restricted to be finite.
04:56:35 <coppro> 11 can be taken to be a single symbol
04:56:43 <CakeProphet> except it's not. it's two..
04:56:44 <coppro> that just happens to be a repitition of a subsymbol
04:56:47 <CakeProphet> in the unary system.
04:56:59 <coppro> CakeProphet: suppose I have two images
04:57:00 <quintopia> i think you know what i mean now
04:57:07 <coppro> I can make a new image by putting them next to each other
04:57:13 <quintopia> it is the numbering system using an infinite alphabet
04:57:14 <coppro> quintopia: no because that requires an infinite alphabet which is dumb
04:57:28 <quintopia> it is not dumb
04:58:11 <quintopia> becuase youll only ever need a finite subset of the digits, its basically the same as "base x, where x is the largest number you need right now"
04:58:27 <CakeProphet> symbols aren't images though. You don't make new symbols from existing symbols. You could invent a similar algorithm for decimal system by saying that 23, 24, 25, etc are all distinct symbols. But we call these "symbols" strings, not symbols...
04:59:02 <quintopia> i just saw a minecraft display system where binary numbers are split into separate symbols for each number, and the each segment of the display is wired to the symbols that need to drive that segment
04:59:43 <quintopia> and i feel like that middle step probably has a name
04:59:58 <quintopia> its obviously modular to do as many different numbers as you need
05:01:35 <CakeProphet> how are the symbols constructed.
05:01:58 <fizzie> I think the whole "base k" term implies a positional system, and I don't think it really counts when you only ever use one digit. But that's just an opinion.
05:02:02 <quintopia> each is a wire
05:02:07 <quintopia> i could link it
05:02:23 <CakeProphet> so 1 wire = 1, 2 wires = 2, ...?
05:02:31 <quintopia> fizzie: i agree. which is why i originally asked
05:03:01 <quintopia> CakeProphet: no, there is a wire for 1, a wire for 2, a wire for 3, etc.
05:04:01 <quintopia> only one wire can be active at a time
05:04:54 <quintopia> so a symbol here is "a collection of wires distinguished by the one that is active"
05:05:12 <quintopia> obviously every number has a different symbol
05:06:40 <quintopia> the pythagoreans used a similar system "let k be symbolized by a line segment of length k"
05:09:23 <CakeProphet> okay so the wires aren't really the symbols they just signify if a symbol is on or off. What are the symbols themselves?
05:09:43 <CakeProphet> or... are they the symbols?
05:10:33 <CakeProphet> but in either case, I'd probably say that "baseless" is a good description of this numeral system.
05:10:55 <Patashu> this is unary
05:10:56 <quintopia> what is the difference between a signifier of a symbol, and a symbol
05:10:58 <CakeProphet> but I don't know of an existed term, no.
05:11:06 <quintopia> i'm thinking i agree with patashu
05:11:17 <quintopia> it is all unary in disguise
05:11:22 <CakeProphet> but it's not.....
05:11:36 <Patashu> it's equivalent to the system where you turn wire 1 on for 1, 1+2 on for 2, 1+2+3 on for 3...
05:11:38 <Patashu> which is unary
05:11:45 <quintopia> yes
05:11:50 <CakeProphet> in unary, you take the length of all of your symbols and that is the number that it represents. This system does not work this way
05:11:59 <CakeProphet> you could have 3 symbols turned on and they would not represent 3.
05:12:19 <CakeProphet> because the symbols could each represent a number greater than 1.
05:12:20 <quintopia> you could say "the distance in wires from the zero point to the active wire"
05:12:38 <quintopia> whether that space is filled with ones or zeroes is irrelevant
05:12:46 <quintopia> the greek system is unary too
05:12:58 <CakeProphet> okay so the symbols are added together?
05:13:10 <quintopia> they concatenate their length 1 tick marks end to end rather than side by side
05:14:11 <CakeProphet> okay so it's base 1 but there is more than one symbol.
05:15:22 <quintopia> nah i think it is just that unary should best be understood as "a number represented by the appropriate measurement of a potentially infinitely long/detailed symbol"
05:16:37 <CakeProphet> I'm pretty sure unary just means that you have one arbitrarily chosen symbol that represents 1, and each number N is represented by repeating the symbol N times. Changing the definition would make it inconsistent with the rest of bases.
05:16:41 <quintopia> thanks for clarifying my thoughts
05:16:58 <fizzie> There's a non-positional system of Greek numerals; they have separate digits for 1, 2, ..., 9, 10, 20, ..., 90, 100, 200, ..., 900, and then you denote numbers by a group of 1, 2 or 3 of those. But that's not quite "one symbol for each number", and I don't think it has any special name either.
05:17:02 <quintopia> unary is already inconsistent with the other bases
05:17:16 <CakeProphet> how so?
05:17:34 <CakeProphet> well, traditionally there is no 0.
05:17:51 <quintopia> the length of a base n number is log(x)/log(n)
05:18:10 <quintopia> for n=1, this comes out undefined
05:19:12 <fizzie> Base-k is supposed to have digits from 0 to k-1; so "base 1" should have just a 0; also the value of a string is d_0*b^n + d_1*b^(n-1) + ... + d_n*b^0, so if b=0 and d_n=0 for all d_n, 0 is the only number you can represent.
05:19:38 <fizzie> People still call it base-1 though.
05:19:42 <CakeProphet> fizzie: the choice of symbol is irrelevant. 1 is the single symbol for most unary systems, you could use 0 as well.
05:20:32 <quintopia> so you see again unary is inconsistent with other bases
05:20:44 <CakeProphet> yes, there is no zero, as I said.
05:21:03 <quintopia> in other bases, the positions of symbols matters, in unary, only the "length" of the string matters
05:21:06 <fizzie> CakeProphet: Well, you're entitled to your opinion; I believe saying "base K" should imply you have a positional symbol with that base, and the value of a string is computed by adding multiplied copies of base^n. That's not what happens with unary.
05:21:48 <fizzie> Okay, I sort-of guess it works with powers of one.
05:22:00 <quintopia> which is why one can write unary numbers as line segments of a prescribed length
05:23:11 <CakeProphet> I'm just saying that qhat quintopia is talking about isn't the standard definition of the unary number system, in the strictest sense. What he's talking about eitherh as a different name, is a modification of unary, or has not been named.
05:23:42 <quintopia> you said yourself the choice of symbol doesnt matter CakeProphet
05:24:05 <CakeProphet> yes but unary has /one/ symbol. two if you use a special zero symbol.
05:24:07 <fizzie> You could call unary bijective base-1 though.
05:24:10 -!- lament has quit (Ping timeout: 240 seconds).
05:24:46 <quintopia> so what if instead of zeroes or ones, i choose as my symbol "the number of non-wire regions between wires before the first active wire"
05:24:55 <quintopia> that is just as good as 0 or 1
05:25:06 <quintopia> each nonwire region
05:25:51 <quintopia> and really, the symbols dont have to be the same all the way through
05:26:14 <quintopia> for instance, the length of a string over the english alphabet
05:26:40 <quintopia> a garble of a's and b's and c's is just as good as a long line of 1's
05:26:51 <quintopia> since only the length defines the number
05:27:02 <quintopia> okay sleeptiems
05:27:11 <CakeProphet> well, that does sound quite similar to unary at least. I was going by an earlier explanation that didn't seem to fit unary.
05:35:11 <zzo38> Computer Modern fonts does not have the "double-sharp" sign
05:44:25 <CakeProphet> > join . replicate (length "111") $ length "11111"
05:44:26 <lambdabot> Couldn't match expected type `[a]'
05:44:26 <lambdabot> against inferred type `GHC.Types...
05:44:41 <CakeProphet> > join . replicate (length "111") $ "11111"
05:44:44 <lambdabot> "111111111111111"
05:45:51 <CakeProphet> division will be a bit more difficult.
05:46:17 <CakeProphet> integer division, specifically.
05:46:35 <CakeProphet> which brings up an interesting question. If extend unary to the real numbers, then what is 1.111
05:46:52 <CakeProphet> I don't think that represents anything.
05:47:03 <Patashu> .1 is 1
05:47:04 <Patashu> I think
05:47:12 <Patashu> Because .1 in binary is 1/2, .1 in ternary is 1/3 and so on
05:47:16 <Patashu> so .1 in unary is... 1/1!
05:47:21 <Patashu> :eng101:
05:47:35 <CakeProphet> so the unary system can't describe all of the real numbers.
05:47:48 <CakeProphet> only integers.
05:48:21 <Patashu> yup!
05:48:50 <Patashu> just as places left of the decimal point are all equivalent, places right of the decimal point are all equivalent
05:48:59 <CakeProphet> right.
05:49:25 <CakeProphet> unary is essentially devoid of place value at all.
05:51:26 <Patashu> Woah o.O
05:51:29 <Patashu> I'm looking at the spectogram for this song
05:51:30 * Patashu np: 12120. Klippa - [So #01] The Tree [01:45/02:38]
05:51:32 <Patashu> and it has poplar trees in it
05:51:35 <Patashu> I wonder if it's a coincident
05:51:37 <Patashu> *coincidence
05:53:43 <CakeProphet> coincidence. It's probably just heavier in the bass frequencies.
05:54:37 <Patashu> I'll show you a picture
05:54:57 <CakeProphet> though it could not be coincidence, actually. There is an Aphex Twin track where Richard James encoded a picture of his face into the spectrogram (when view on a logarithmic scale)
05:55:10 <CakeProphet> *viewed
05:58:57 <Patashu> http://img.photobucket.com/albums/v216/Mechadragon/thetree.png
05:59:06 <Patashu> do you see it?
05:59:11 <Patashu> it's like a little forest of 8 poplars
06:08:00 <fizzie> There are quite a lot of "things hidden in spectrogram" songs, I believe.
06:08:17 <fizzie> That image looks quite coincidental though.
06:09:35 <fizzie> Or at least something that could easily be coincidental.
06:38:17 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
07:02:33 -!- olsner has joined.
07:21:00 -!- TeruFSX has quit (Ping timeout: 250 seconds).
07:30:58 -!- pikhq_ has quit (Ping timeout: 250 seconds).
07:30:58 -!- pikhq has joined.
07:49:17 -!- Deewiant_ has joined.
07:51:14 -!- Deewiant has quit (Ping timeout: 252 seconds).
08:10:50 -!- GreaseMonkey has quit (Quit: The Other Game).
08:15:26 -!- nooga has joined.
08:17:20 -!- copumpkin has quit (Ping timeout: 250 seconds).
08:17:45 -!- copumpkin has joined.
08:41:35 -!- zzo38 has quit (Remote host closed the connection).
08:56:12 -!- Taneb has joined.
08:56:50 <Taneb> Hello!
08:59:14 <Taneb> So, what's up?
09:01:17 <Taneb> Not much, I guess
09:02:00 <fizzie> No, it all fell down.
09:03:01 -!- Deewiant_ has changed nick to Deewiant.
09:03:50 <Taneb> Well, I'm now experimenting with clients
09:06:12 <fizzie> It doesn't sound like good PR to say that out loud.
09:10:06 <Taneb> No such thing as bad advertising
09:16:46 <Taneb> Well, just worked out I'll probably be in London on my birthday
09:17:29 <Taneb> And I'll be on TV the day afterwards
09:18:42 <fizzie> And in jail the day after that?
09:18:51 <fizzie> Sounds like quite a celebration.
09:20:09 <Taneb> IN THE SAME BUILDING WHERE RUPERT MURDOCH GOT PIED!
09:20:41 <Taneb> Also, I need breakfast.
09:22:30 <Taneb> Having breakfast now
09:27:31 <Taneb> Had breakfast
09:29:47 <fizzie> A quick breakfast.
09:30:18 <fizzie> A multi-level breakfast can breakfast through any number of surrounding loops.
09:35:20 -!- pikhq has quit (Ping timeout: 250 seconds).
09:35:24 -!- pikhq_ has joined.
09:42:52 -!- monqy has quit (Quit: hello).
09:45:10 <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
09:45:40 <Taneb> Now I must leave
09:45:47 -!- Taneb has quit (Quit: He's a big quitter he is).
09:48:03 -!- Phantom_Hoover has joined.
09:52:37 <Phantom_Hoover> What are the haps my friends.
09:56:00 <fizzie> Today it's been mostly about breakfasts.
10:19:49 -!- FireyFly has joined.
10:20:56 <itidus20> i hate jargon
10:21:12 <itidus20> eh, i mean, notations and jargons
10:24:00 <itidus20> it brings me to a crushing halt reading a mathematical wikipedia article
10:24:02 <itidus20> http://en.wikipedia.org/wiki/Rewriting_system#Abstract_rewriting_systems @ "is the transitive closure of , where is the identity relation, i.e. is the smallest preorder (reflexive and transitive relation) containing . It is also called the reflexive transitive closure of ."
10:25:44 <itidus20> I suppose the logical way to go forward is to examine exactly which terms i cannot understand
10:29:41 <itidus20> and moving on
10:34:46 -!- oerjan has joined.
10:49:31 <oerjan> <itidus20> it brings me to a crushing halt reading a mathematical wikipedia article
10:49:48 <itidus20> lol
10:49:50 <oerjan> sometimes those are ridiculous even when you _do_ know math
10:50:08 <itidus20> i exaggerated a bit. and typed out the answer :D
10:50:18 <oerjan> ok
10:50:30 <itidus20> but seriously it appears the way to proceed is to list the unknown terms
10:50:41 <itidus20> and to research them
10:50:56 <itidus20> sounds like something i was probably told in school
10:51:43 <oerjan> mhm
11:01:46 <coppro> lol
11:01:47 -!- Patashu has joined.
11:01:56 <coppro> I love terminology
11:02:01 <coppro> it lets us say complex things quickly
11:02:04 -!- Taneb has joined.
11:02:08 <coppro> transitive closure especially
11:02:12 <coppro> whoever made that up is a genius
11:02:17 <Taneb> Hello
11:02:54 <Taneb> Transitive closure?
11:03:37 <coppro> yes
11:05:28 <oerjan> does anyone know of a way of testing whether a number is even or odd in just 3 cells of bf. basically turning n,0,0 -> n, n%2, 0 or something similar which can be used to decide whether to quit a loop
11:05:35 <oerjan> *?
11:06:14 <oerjan> (basically, i'm having trouble getting my fractran encoding to _halt_ :P)
11:07:37 * oerjan checks [[Brainfuck algorithms]]
11:07:58 <coppro> the body's healing process is insane
11:08:14 <coppro> in 3 cells? no
11:08:49 <NihilistDandy> Do they not teach the Trivium, anymore?
11:09:48 <coppro> oerjan: wait do you mean 3 cells on a tape?
11:09:56 <oerjan> yes
11:10:06 <coppro> ah
11:10:07 <coppro> hmm
11:10:25 <itidus20> Dandy: there is no teacher:>
11:10:56 <coppro> I can do an evenness test in 5.. hmm
11:11:23 <oerjan> oh i'm pretty sure i could do it in 4 :P
11:11:32 <oerjan> but that's no fun :(
11:11:43 <coppro> ooh actually I can do it in 3
11:11:49 <NihilistDandy> itidus20: Le sigh
11:11:51 <coppro> n,n,0->n,n-1,0
11:12:09 <oerjan> it's important not to lose the n itself, at least if it's odd
11:12:15 <coppro> oh
11:12:27 <coppro> actually can still do it
11:12:32 <coppro> n,n,0->n,n,n-1
11:12:40 <oerjan> preferably in any case
11:12:45 -!- itidus21 has joined.
11:13:31 <coppro> alternately subtract two from the second and third cells
11:13:53 <oerjan> i don't understand what you mean
11:14:09 <coppro> n,n,0->n,n,n-1->n,n-2.n-1 etc.
11:14:37 <oerjan> i don't see how to achieve n,n,n-1 btw
11:14:53 <coppro> oh right..
11:15:00 <coppro> hmmm
11:15:07 -!- itidus20 has quit (Ping timeout: 258 seconds).
11:16:08 -!- itidus21 has changed nick to itidus20.
11:16:34 <coppro> oh easy
11:16:43 <coppro> n,0,0->n,n,0
11:17:09 <oerjan> yes that's ok
11:17:24 <coppro> then until the second cell is 0, subtract one from the second cell and if (the third cell is 0) then (add 2 to the third cell) then subtract 1 from the third cell
11:17:42 <coppro> you get n,0,n%2
11:18:03 <coppro> you can apply this generally to take arbitrary modulus
11:18:35 <oerjan> um that "if (the third cell is 0)" kind of thing is actually a stopping point
11:18:57 <coppro> do it backwards then
11:19:09 <coppro> if (the third cell is not 0) then (subtract 2 from it) then add 1 to it
11:19:22 <coppro> although that works only for base 2
11:19:42 <oerjan> it's not base 2, it's unbounded
11:19:56 <coppro> I mean taking %2
11:20:00 <coppro> hmm...
11:20:01 <oerjan> and i'm trying to avoid negatives
11:20:15 <coppro> why?
11:20:45 <coppro> that seems arbitrary
11:20:54 <oerjan> so it's a direct improvement on the previous 5 cell algorithm, which i don't think needs them
11:21:02 <coppro> dude
11:21:08 <coppro> using negatives is not a flaw
11:21:49 <oerjan> in any case i'm not sure your method works even with negatives.
11:22:07 <oerjan> recall we don't _have_ "if" as a primitive.
11:22:49 <Taneb> Do you need to preserve the number?
11:22:51 <oerjan> it has to be done with loops, and it's awkward to fit things in just 3 cells
11:23:01 <oerjan> Taneb: yes. at least if it's odd.
11:23:14 <oerjan> preferably always, since it would be the final program result.
11:23:35 <Taneb> Hmmm
11:23:49 -!- nooga has quit (Ping timeout: 258 seconds).
11:24:23 <coppro> oerjan: given my pointer at n
11:25:19 <coppro> >[-]>[-]<<[->+>+<<]>>[-<<+>>]<[->[--]+<]
11:25:37 <coppro> leaves me pointing at the 0 in n,0,n%2
11:26:13 <oerjan> yay
11:26:48 <coppro> you can shorten it a bit
11:26:48 <oerjan> ok it's 0,n,*n before the [-<<+>>]<[->[--]+<] right
11:26:58 <coppro> yeah
11:27:11 <coppro> the first block just moves you to *n,n,0
11:27:42 <coppro> the second block flips the third cell from 0 to -1 as you decrement the second
11:27:43 <oerjan> oh and actually n,*n,0 before the [->[--]+<]
11:27:52 <coppro> yeah
11:28:16 <oerjan> coppro: i can do moving things around myself ;P
11:28:26 <coppro> I know
11:28:33 <Taneb> [->+>+<<]>+[>[--<--<++>>]<][<->]+ could work, haven't checked it
11:28:39 <coppro> the last block is the only one actually involved in the calculation
11:28:54 <oerjan> coppro: erm [->[--]+<] doesn't halt if n is odd
11:29:07 <coppro> oerjan: what are you talking about
11:29:14 <oerjan> oh wait duh
11:29:20 <coppro> oh wait...
11:29:23 <coppro> no I got that wrong
11:29:37 <coppro> hmm
11:29:44 <coppro> this would be easy if I had another 0 to work with
11:29:47 <oerjan> i misinterpreted, but is still expect that [--] to sometimes not halt
11:29:50 <coppro> yeah
11:29:51 <oerjan> coppro: you don't say :P
11:30:03 <oerjan> *i
11:30:03 <fizzie> oerjan: Do you need a finite-length program too?
11:30:26 <oerjan> fizzie: yes...
11:30:35 <coppro> oerjan: I take it relying on wraparound is bad?
11:30:49 <oerjan> very bad, unboundedness is essential here
11:31:15 <oerjan> it's supposed to a proof bf is TC with just 3 unbounded cells
11:31:25 <coppro> ah
11:31:28 <oerjan> *be a
11:31:37 <NihilistDandy> I was just about to ask for context, then I got it
11:33:24 <coppro> oerjan: I'm going to bed but will think about it
11:33:35 <oerjan> thanks
11:35:54 <coppro> wait changed my mind I have it
11:36:02 <coppro> given *n,0,0
11:36:10 <oerjan> Taneb: that [<->] looks rather unlikely, it'll either infloop or do nothing
11:37:38 <coppro> [->+<[->>+<<]] >> [-<-<+>>] < [-<+>>+<] >
11:37:48 <coppro> gives you n,0,*n%2
11:37:48 <oerjan> Taneb: i think your main loop also infloops if n is odd
11:38:02 <coppro> first block gives you 0,n/2+1,n/2
11:38:15 <coppro> second block gives you n-n%2,n%2,0
11:38:29 <coppro> third block gives you n,0,n%2
11:38:35 <oerjan> erm n/2 as in integer division?
11:38:37 <coppro> yeah
11:38:46 <coppro> wait fuck no
11:38:48 <coppro> fffff
11:38:48 <oerjan> wouldn't that rather _obliterate_ whether n is even or odd
11:38:59 <coppro> damn you brainfuck
11:39:16 <coppro> nvm
11:39:19 <oerjan> glad to see you are getting the genuine fucked experience :P
11:39:19 <coppro> back to bed
11:39:29 <coppro> lol
11:39:41 <Taneb> This should be simple.
11:39:45 <Taneb> Why isn't this simple.
11:40:08 <coppro> oerjan: /win 7
11:40:11 <coppro> err
11:40:13 <coppro> something
11:40:22 <coppro> k actually going back to bed this time
11:40:39 <oerjan> i'm afraid i don't have that window, coppro. unless it's some secret i haven't heard about.
11:41:16 <oerjan> although i have frequently wondered why irssi always makes an empty /win 3
11:45:19 <quintopia> Patashu: those dont look much like trees to me. you should check ou the spectrum of hildegard westerkamp's "beneath the forest floor" for a real image of a forest. it's so uncanny, it's surely intentional.
11:46:03 <oerjan> Taneb: in fact i made that odd/even distinction in the first place to manage to get an extra bit of "are we finished yet" information out of each applied fractran rule. the problem now is just actually extracting that information again on the top level loop...
11:46:28 <quintopia> oerjan: sounds like you saved a layout with a window open to a channel on a net you don't connect to. do another /layout save and it probably won't anymore.
11:47:12 <oerjan> quintopia: i haven't visited non-freenode for years, if ever :P
11:47:38 <oerjan> but let's try it anyhow
11:47:46 <Taneb> I'm going to think about this differently
11:48:02 <Taneb> We have three variables, a, b, and c
11:48:25 <Taneb> We can add or subtract a constant from any of these variable
11:48:35 <oerjan> Taneb: probably a good idea
11:48:50 <Taneb> And we can start a loop that loops while a variable is not 0
11:49:25 <oerjan> and that same variable must be 0 when we end (i don't think there's enough room to do unbalanced loops usefully)
11:49:57 <Taneb> Yes
11:50:28 <Taneb> variable a is equal to an arbitary number, b and c are zero
11:50:46 <Taneb> Call the number initially in a n
11:51:04 <Taneb> What we want is one variable to hold n, and another to hold n%2
11:51:21 <oerjan> or well, let's not exclude unbalanced loops completely. the problem would be finding out where you are afterwards.
11:51:28 -!- boily has joined.
11:51:35 <quintopia> wb boily
11:57:59 <quintopia> taneb: is your goal to determine if a value is even or odd?
11:58:32 <Taneb> Yes
11:58:41 <Taneb> In three cells in brainfuck
12:00:08 <quintopia> do you know its possible?
12:00:12 <Taneb> No
12:00:22 <Taneb> It is with 5 cels
12:00:25 <Taneb> *cells
12:00:37 <quintopia> the only method i could think of needs four
12:00:54 <Taneb> oerjan
12:00:55 <Taneb> ?
12:01:14 <Taneb> Four would be easy
12:01:43 <Patashu> I can think of a way of doing it in four cells too
12:01:56 <quintopia> its a good problem
12:02:30 <Patashu> n,0,0,0. add 2 to b and 1 to c and after each addition check to see which one equals a using d
12:02:35 <Patashu> hmm, not sure if that translates into bf
12:03:41 -!- FireyFly has changed nick to FireFly.
12:11:49 <coppro> ok I think I have an idea
12:13:21 -!- PatashuPikachuRe has joined.
12:14:29 -!- Patashu has quit (Ping timeout: 252 seconds).
12:17:32 -!- itidus20 has quit (Ping timeout: 255 seconds).
12:23:03 <oerjan> Taneb: yes i believe 4 should be easy. (basically there is then room to include an extra bit of information from the loop i'm using for each fractran rule. although there may be an even simpler way.)
12:25:52 <oerjan> PatashuPikachuRe: the thing is translating to bf frequently means adding an extra cell for flow control...
12:28:27 <oerjan> oops now i'm wondering if _that_ is working again. oh well.
12:31:35 <coppro> ok so I have what appears to be a solution
12:34:25 <coppro> .. dammmmmmmmit
12:34:31 <PatashuPikachuRe> yeah it's tricky it's like, one scratch cell per conditional deep you go
12:34:37 <PatashuPikachuRe> where conditional includes things like moving
12:35:21 <coppro> wait no this is right
12:36:18 <coppro> hrm k so loops that don't evenly affect the IP hurt my mind
12:36:44 -!- derrik has joined.
12:36:53 <oerjan> yes, also they're hard to use here
12:37:12 <oerjan> but then maybe it could be essential
12:40:43 <coppro> pretty sure it can be done with them
12:40:55 <coppro> just need to figure out how to recenter
12:41:04 * coppro turns on light and pulls out whiteboard
12:42:53 <oerjan> well trouble is if you have two cells that need to have an essentially arbitrary value, and the zero you left the loop through, then it seems very hard to check where you are. only if there are two zero cells does it seem reasonable, but can you use that case..
12:43:10 <coppro> ok I see how to do it
12:43:23 <coppro> I will pseudocode because I need to be up in a few hours
12:44:26 * NihilistDandy is on the edge of his seat
12:44:32 <coppro> basically you have an input stack and an output stack
12:44:45 <coppro> let n be the input stack and m be the output stack
12:45:33 <Taneb> I've just had a rather stupid idea
12:45:54 <coppro> wait fuck thta gives no termination codition
12:46:13 <coppro> still I think what you really want to rely on is the position of the stacks
12:46:30 <oerjan> stack of unaries?
12:46:37 <coppro> yeah
12:46:41 <coppro> rather than using value
12:48:24 <oerjan> the thing is, afaict you cannot actually check the position if both "stacks" are filled (i.e. two cells both have arbitrarily large values)
12:50:54 <oerjan> after the end of a loop, you will have either *0,m,n; m,*0,n; or m,n,*0; and neither pair of these can be distinguished
12:51:37 <coppro> what I'm envisioning is [ (move 1 from n to m) [ (move 1 from n to m and something else) ] (something) ]
12:52:31 <oerjan> coppro: that's essentially the idea i am trying to use for the _inner_ fractran loops. i just cannot see a way to get the information out of the loop...
12:52:40 <coppro> fractran loop?
12:53:03 <oerjan> um yes, the idea is to convert fractran to brainfuck
12:53:53 <oerjan> i should write that part down properly
12:56:01 <derrik> how do you write down properly "the idea is to convert fractran to brainfuck"
12:56:04 <derrik> ?
12:56:46 <oerjan> i mean the inner loop structure for that, which i thought i had clear enough idea of but i'm suddenly unsure.
13:00:52 <coppro> got it
13:01:05 <coppro> start with *n,0,m
13:01:16 <coppro> go to *n-1,0,m+1
13:02:06 <coppro> now do a if n-1 is nonzero, you go to m,*0,n-1
13:02:44 <coppro> wait I had it backwards the IP doesn't work that way
13:02:47 <coppro> fff
13:03:14 <oerjan> is this loop supposed to be unbalanced?
13:03:19 <coppro> yeah
13:03:22 <coppro> probably
13:03:36 <coppro> but not necessarily
13:03:37 <oerjan> well looks possible so far
13:04:04 <oerjan> you are either at *0,0,m+1 or m,*0,n-1
13:04:05 <coppro> wait yes you can do this
13:04:07 <coppro> right
13:04:26 <coppro> now go to 0,*0,m+1 or m,0,*n-1
13:04:33 <coppro> and if the cell pointed to is nonzero, move left
13:04:51 <oerjan> right that synchronizes
13:04:55 <coppro> err sorry replace m,*0,n-1 with m+2,*0,n-1
13:04:59 <Taneb> Anyway, my stupid idea was a programming language that spews brainfuck code and immediately interprets it.
13:05:25 <Taneb> This allows for infinite-length programs
13:05:38 <coppro> hmm wait this has the same problem an earlier idea did in that you can't tell when you're done the loop
13:06:17 <coppro> unless, hmm
13:07:06 <coppro> if you then go right and subtract one, you have 0,0,*m or m+2,0,*n-2
13:07:49 <coppro> where n-2 might be zero
13:08:04 <coppro> but you want to end the loop if that or the far left cell is 0
13:08:57 -!- ais523 has joined.
13:09:32 <coppro> aha there's a way and I'm actually sure this time
13:10:22 <coppro> start at 0,m,n. Go to *n-1,m+1,0 and branch
13:10:49 <coppro> if you took the branch, go to *0,m+2,n-2
13:11:09 <oerjan> ok, that's still balanced
13:11:50 <coppro> add one to each cell
13:11:59 <oerjan> all of them?
13:12:18 <coppro> err don't
13:12:26 <coppro> instead, go right one cell. if nonzero go right again
13:13:02 <oerjan> i think that runs off the tape
13:13:21 <coppro> oh damn
13:13:24 <coppro> damndamndamn
13:13:32 <coppro> fucking brainfuck
13:13:56 <coppro> I wonder if you can shift columns to get that algorithm anyway?
13:14:26 <ais523> you know, I think I'm going to not delete http://esoteric.voxelperfect.net/wiki/User:Icornellhoffmane until elliott gets a chance to see it
13:14:35 <ais523> especially because it looks like a parody of spam rather than actual spam
13:14:57 -!- copumpkin has quit (Ping timeout: 264 seconds).
13:15:01 * oerjan realizes ais523 said "not"
13:15:36 -!- copumpkin has joined.
13:17:42 <PatashuPikachuRe> what's the behaviour of brainfuck if you run off the edge of the tape?
13:17:48 <PatashuPikachuRe> segfault? loop? ignore?
13:17:59 -!- ais523 has quit (Read error: Connection reset by peer).
13:18:13 <coppro> aha
13:18:50 <Taneb> implementation dependant
13:18:57 <oerjan> PatashuPikachuRe: i'm pretty sure all of those options will have been tried
13:19:10 <PatashuPikachuRe> figures it's undefined behavior
13:21:15 -!- ais523 has joined.
13:21:27 <ais523> <ais523> off the left edge, it should crash
13:21:30 <ais523> you can't go off the rightedge
13:21:33 <ais523> *right edge
13:21:35 <ais523> because there isn't one
13:22:25 <coppro> from *0,m+2,n-2 and *0,0,m+1 go right, if nonzero then swap the first two columns and then swap the right two columns
13:22:36 <coppro> err
13:22:39 <coppro> swap is a bad term
13:22:43 <oerjan> ais523: original bf had a 30k or so limit
13:22:44 <coppro> move each column left
13:22:51 <coppro> this is fine because the left column is 0
13:22:54 <ais523> oerjan: that was a bug
13:23:20 <oerjan> in any case _this_ problem has tape length 3, and don't you dare leave it.
13:25:42 <fizzie> ais523: What are you basing that assessment on? The original brainfuck-2.lha:README file says "The 30000 array elements".
13:26:20 <coppro> ahaha wait
13:26:27 <coppro> I fail
13:26:33 <coppro> I figured out how to loop only if you got to 0
13:26:43 <coppro> useful but wrong
13:26:51 <ais523> fizzie: I think the spec has mutated over time
13:26:58 <ais523> making the original interp retroactively buggy
13:27:27 <coppro> oerjan: are you in need of a negation operator? :P
13:27:44 <oerjan> coppro: wat
13:27:54 <fizzie> ais523: "Who died and made you a spec-maker?" (IOW, if there's no de jure or de facto standard, I don't see how you'd get to arbitrarily pick one.)
13:29:35 <ais523> fizzie: hmm
13:29:45 <ais523> doesn't more or less every article on BF say that it's Turing-complete?
13:29:49 <coppro> oerjan: I can make it loop if one, but not two, columns are nonzero
13:29:53 <ais523> I think it's that that retroactively changed the spec
13:30:25 <fizzie> ais523: That doesn't mean it unambiguously changes the spec to have an unbounded tape; it could as easily retroactively change it to have unbounded cells instead.
13:30:34 <oerjan> coppro: i'm afraid the reverse would be more impressive
13:30:37 <ais523> fizzie: I suppose so
13:30:42 <oerjan> oh wait
13:30:51 <ais523> majority vote of implementations gives it 8-bit cells, at least
13:30:53 <oerjan> coppro: misread you. hm, interesting...
13:30:57 <ais523> although I'm aware that that's not completely standard
13:31:11 <fizzie> "The brainfuck language uses a simple machine model consisting of the program and instruction pointer, as well as an array of at least 30,000 byte cells initialized to zero; --" <-- wikipedia, the final arbitrator of truth and justice.
13:31:41 <oerjan> coppro: that would indeed make things easier.
13:32:10 <fizzie> (Aways.)
13:32:35 * ais523 originally misparsed that as a typo for "always"
13:32:57 <oerjan> ais523: um it wasn't?
13:33:06 -!- Tritonio has joined.
13:33:14 <ais523> oerjan: I think it's more likely to mean "I am away, at least for a while"
13:35:46 <oerjan> ais523: anyway you're welcome to try to implement n,0,0 -> n,0,n%2 in 3-cell unbounded bf as well :P
13:36:50 <ais523> heh
13:37:05 <ais523> for %2 in gcc-bf, I just multiply by 128, then check zeroness
13:37:12 <ais523> bu that requires 8-bit bounded cells
13:37:55 <oerjan> sorry, no can do
13:39:05 <ais523> you can use repeated negation with unbounded cells, but I'm not sure if three cells is enough
13:39:44 <oerjan> hm i got an idea, what if you calculated n/2 first...
13:40:08 <oerjan> then you can get n,0,(n/2)*2
13:41:07 <oerjan> actually scratch that, you can directly get n%2,n/2,0
13:41:44 <ais523> and you don't need a temporary to swap a cell with a known zero cell in BF (although you need to know its sign in unbounded BF, as always)
13:41:54 <oerjan> and from that i think you can get to n,0,n%2
13:42:24 <oerjan> ais523: well i'm assuming nonnegative so far
13:42:32 <ais523> are you trying to do a Minsky machine with three cells?
13:42:39 <ais523> I've just realised what the conversation's probably about
13:43:04 <oerjan> fractran, actually, which is just a simplified version of that 1-register division machine that's mentioned on the Minsky machine page
13:43:47 <oerjan> (and which is afaiu part of the proof that minsky machines only need 2 registers)
13:44:56 <oerjan> basically to get from the 1-register minsky machine to bf you want to include the machine state in the register, and suddenly you're _very_ close to fractran.
13:45:50 <oerjan> *-minsky, although it was probably invented by minsky
13:46:54 <ais523> can't you just use the BF IP to record the machine state?
13:47:24 <oerjan> maybe but the fractran control flow is so much easier :P
13:48:34 <ais523> I suppose that given that you need mod-2 and mod-3 already, mod-other-primes is probably not too difficult
13:50:44 -!- itidus20 has joined.
13:51:31 <oerjan> note that assuming my ideas work, the actual fractran rules _don't_ need to put the mod in a cell, keeping track of _that_ is handled by BF IP. but there is this little snag at the end of the program, where the test _does_ need to be put in a cell so that the main loop can test it to exit. that one needs only a mod 2 test, not general primes. at least that's my idea and why i asked the channel.
13:54:25 <oerjan> i guess my real question is "how do you exit a loop only when a cell n is even, without clobbering it if it isn't?" but i think that's pretty much equivalent to calculating n%2 anyway.
13:55:56 <quintopia> just solved the 3-cell parity problem. took long enough :/
13:56:05 <oerjan> hey!
13:56:40 <quintopia> i wont spoil. dont have time to right now.
13:57:17 <oerjan> ah. i have to leave in a moment myself anyhow.
13:58:52 -!- oerjan has quit (Quit: Later).
14:01:41 -!- MSleep has changed nick to MDude.
14:05:52 -!- Patashu has joined.
14:07:29 -!- PatashuPikachuRe has quit (Ping timeout: 260 seconds).
14:13:06 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
14:13:53 -!- BeholdMyGlory has joined.
14:14:05 -!- Tritonio has quit (Quit: Leaving).
14:18:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:25:36 -!- Phantom_Hoover has joined.
14:28:30 -!- lament has joined.
14:35:53 -!- lament has quit (Ping timeout: 246 seconds).
14:44:33 -!- copumpkin has joined.
14:56:16 <Sgeo> http://www.mspaforums.com/showthread.php?41081-CARCINOgeneticist-More-like...-oh-wait.&p=5406631&viewfull=1#post5406631 *facepalm* (Homestuck spoilers)
15:01:47 -!- ttm_ has quit (Ping timeout: 276 seconds).
15:05:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:05:35 -!- ais523 has quit (Remote host closed the connection).
15:07:38 -!- lament has joined.
15:08:59 -!- Taneb has quit (Ping timeout: 255 seconds).
15:09:00 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:09:35 -!- cheater__ has joined.
15:10:57 -!- Phantom_Hoover has joined.
15:15:54 -!- cheater__ has quit (Excess Flood).
15:16:17 -!- cheater__ has joined.
15:17:31 -!- GameOverR has joined.
15:18:26 -!- GameOverR has left.
15:19:12 -!- cheater__ has quit (Excess Flood).
15:21:58 -!- EgoBot has quit (Remote host closed the connection).
15:22:00 -!- HackEgo has quit (Remote host closed the connection).
15:22:10 -!- EgoBot has joined.
15:22:10 -!- HackEgo has joined.
15:22:32 -!- cheater__ has joined.
15:25:36 -!- cheater__ has quit (Excess Flood).
15:30:29 -!- cheater__ has joined.
15:30:29 -!- cheater__ has quit (Excess Flood).
15:30:53 -!- cheater__ has joined.
15:36:26 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:41:32 -!- azaq23 has joined.
15:55:49 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:08:19 -!- ais523 has joined.
16:09:54 -!- lament has quit (Ping timeout: 252 seconds).
16:13:14 -!- iamcal has quit (Ping timeout: 258 seconds).
16:13:33 -!- jix_ has quit (Ping timeout: 252 seconds).
16:14:11 -!- jix has joined.
16:14:19 -!- Nisstyre has quit (Ping timeout: 252 seconds).
16:18:48 -!- cheater has joined.
16:27:52 -!- iamcal has joined.
16:32:54 -!- iamcal has quit (Ping timeout: 260 seconds).
16:44:23 -!- Sgeo_ has joined.
16:44:32 -!- Sgeo_ has quit (Read error: Connection reset by peer).
16:45:07 -!- iamcal has joined.
16:59:54 -!- zzo38 has joined.
17:04:24 -!- Nisstyre has joined.
17:15:21 <tswett> Mikä.
17:17:19 <tswett> Mikä on mikä?
17:31:30 <fizzie> Mika on Häkkinen.
17:31:53 <tswett> Ah.
17:32:12 <tswett> Mikä on "ne panee koiriaan ihan oikeasti"?
17:32:21 <fizzie> "They're really fucking their dogs."
17:32:34 <tswett> I see. What sort of word is "koiriaan"?
17:33:20 <tswett> Oh, it's "koiria -an", isn't it.
17:33:26 -!- CakeProphet has quit (Ping timeout: 276 seconds).
17:33:58 <fizzie> Well, "koira" is the nominative case for "dog".
17:34:40 -!- Taneb has joined.
17:34:53 <Taneb> Hello
17:35:04 -!- Gregor has quit (Excess Flood).
17:35:10 -!- Gregor has joined.
17:35:36 -!- Gregor has changed nick to Guest47670.
17:36:16 <fizzie> I think it possibly should be "koiriansa" in formal written text, and what you have there is a bit of a colloquialism maybe. Since "their dogs" would be "heidän koiransa", and then, uh, is it the partitive case? I just speak the language, sorry.
17:38:05 <Taneb> What, ...Klingon?
17:38:11 <fizzie> Finnish.
17:38:25 -!- zzo38 has quit (Remote host closed the connection).
17:38:51 -!- Guest47670 has changed nick to Gregor.
17:39:02 <fizzie> Ah, there it is: http://en.wiktionary.org/wiki/-an#Usage_notes "(third-person possessive suffix variant): When the third-person suffix -nsa is appended to non-nominative noun forms that end in a single -a (those that are in singular and plural inessive, elative, adessive, ablative, essive and abessive and plural partitive and singular partitive ending with -ta), the S and A are very often omitted from the suffix and the last A of the case suffix preceding the r
17:39:02 <fizzie> emaining N is doubled — resulting in this -an. In standard Finnish, both the "full" form and the shortened form are acceptable (cf. -nsä). This same omission takes very often place also in the nominal verb forms used in shortened sentences (see the meanings of -nsa) and in the adverbs requiring this suffix:"
17:39:18 <fizzie> They even use the dog example.
17:41:41 <fizzie> So "koiriansa -> koiriaan" and it's the third-person possessive-suffixed partitive case. I couldn't really even begin to explain why nominative -> partitive in this case goes "koiransa" -> "koiriansa" when normally the partitive suffix is -(t)a. (E.g. "koira" -> "koiraa" in the simplest case.)
17:46:52 <tswett> Could you begin to explain why the partitive plural is "koiria"? :P
17:48:24 <tswett> But, yes. Then I guess "ihan oikeasti" is just an intensifier.
17:48:39 <fizzie> Yes, it's pretty much like "-- for real".
17:49:11 <tswett> If you wanted to ask that phrase, would it be "ihan oikeastiko"?
17:49:26 <fizzie> You could ask that, yes.
17:49:58 <fizzie> You could even just ask "oikeesti?" with the suitable intonation when speaking.
17:50:40 <tswett> If you just asked "ko?", I suppose people would suspect that you're asking whether the ko rule applies.
17:51:20 <fizzie> I'm not sure what I'd suspect; it would be a bit weird thing to say. Maybe that.
17:51:35 <Taneb> What would make the perfect programming language, in your eyes?
17:52:14 <tswett> Taneb: having all necessary features and lacking all unnecessary features.
17:53:55 <tswett> It should have a static typing system that's really fucking expressive.
17:54:50 <tswett> Vitun expressive ihan oikeasti.
17:57:13 <Taneb> Define expressive?
17:58:22 <tswett> Well, it should be able to define types such as "valid strategy for playing Euchre".
17:58:57 <tswett> Which is, I suppose, a function taking a Euchre situation and returning an action valid in that situation.
18:00:46 <tswett> Speaking of which, I think there's really one feature an "esoteric API" ought to have: the ability to dynamically link libraries.
18:06:22 <tswett> Though I wonder, how much information does a dynamic library usually contain about the functions within it? Is it just a list of addresses, or do you also know the calling convention and number of arguments?
18:07:28 <fizzie> On Windows, where multiple calling conventions are common, the names are mangled differently based on the convention.
18:07:32 <pikhq_> tswett: It's just addresses.
18:08:13 <tswett> Neat.
18:08:21 <fizzie> So you could do some deducing based on the mangling type. But mostly it's just symbols-to-addresses.
18:08:41 <pikhq_> You can also deduce whether something is a function or data.
18:09:58 <fizzie> I don't know if any debugging info formats include much metadata. Source locations and all that, at least.
18:11:13 <tswett> I guess dynamically linking libraries is not really enough; you must also be able to call the functions in the libraries you just linked.
18:12:20 <tswett> That could be mostly left up to the esoteric program itself, and you could just have API functions like "stick this stuff into these registers, push that stuff onto the stack, and call him".
18:13:10 <pikhq_> fizzie: Those generally *do* include type metadata.
18:13:18 -!- TeruFSX has joined.
18:13:28 <pikhq_> Part of why debugging symbols take quite a bit of space.
18:13:45 <fizzie> The Windows name mangling for stdcall functions also include the number of argument bytes the function pops off the stack, possibly because that's one calling convention which breaks really badly if the caller and callee disagree about the number of arguments.
18:19:28 -!- ais523_ has joined.
18:19:49 -!- ais523 has quit (Disconnected by services).
18:19:51 -!- ais523_ has changed nick to ais523.
18:19:54 -!- TeruFSX has quit (Read error: Connection reset by peer).
18:20:00 -!- TeruFSX has joined.
18:29:13 -!- pumpkin has joined.
18:32:11 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:39:16 <Lymee> !show test
18:39:17 <EgoBot> That is not a user interpreter!
18:39:22 <Lymee> !show sanetemp
18:39:23 <EgoBot> sh dc -e "1k?32-5*9/p"
18:39:25 <Lymee> !show insanetemp
18:39:25 <EgoBot> sh dc -e "1k?9*5/32+p"
18:39:34 <Lymee> !show nop
18:39:35 <EgoBot> That is not a user interpreter!
18:39:51 <Lymee> !addinterp sanetemp cat
18:39:51 <EgoBot> ​There is already an interpreter for sanetemp!
18:39:52 <Sgeo> !sanetemp 5
18:39:53 <EgoBot> ​-15.0
18:39:54 * Lymee runs
18:40:10 <Sgeo> !sanetemp -40
18:40:10 <EgoBot> dc: stack empty
18:40:22 <Sgeo> ...
18:40:26 <Sgeo> !sanetemp 100
18:40:27 <EgoBot> 37.7
18:40:39 <Sgeo> !insanetemp 0
18:40:40 <EgoBot> 32.0
18:40:58 <Lymee> !sanetemp 100000000000000000000000000
18:40:59 <EgoBot> 55555555555555555555555537.7
18:41:07 <Lymee> That is not a sane tempature. You lie.
18:41:17 <Lymee> !sanetemp 20
18:41:17 <EgoBot> ​-6.6
18:41:20 <Lymee> !sanetemp 30
18:41:20 <EgoBot> ​-1.1
18:43:48 <Lymee> !delinterp sanetemp
18:43:48 <EgoBot> ​Interpreter sanetemp deleted.
18:44:06 <Lymee> !addinterp sanetemp "1k?9*5/459-p"
18:44:06 <EgoBot> ​Interpreter _1k_9_5_459_p_ does not exist!
18:44:15 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459-p"
18:44:15 <EgoBot> ​Interpreter sanetemp installed.
18:44:31 <Lymee> !sanetemp 104
18:44:32 <EgoBot> ​-271.8
18:44:49 <Lymee> !delinterp sanetemp
18:44:49 <EgoBot> ​Interpreter sanetemp deleted.
18:45:37 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459 67 100/++p"
18:45:38 <EgoBot> ​Interpreter sanetemp installed.
18:45:47 <Lymee> !sanetemp 104
18:45:47 <EgoBot> 646.8
18:46:03 -!- pumpkin has changed nick to copumpkin.
18:46:07 <Lymee> !delinterp sanetemp
18:46:07 <EgoBot> ​Interpreter sanetemp deleted.
18:46:13 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459.67+p"
18:46:13 <EgoBot> ​Interpreter sanetemp installed.
18:46:16 <Lymee> !sanetemp 104
18:46:17 <EgoBot> 646.87
18:46:20 <Sgeo> !sanetemp -40
18:46:21 <EgoBot> dc: stack empty
18:46:26 <fizzie> That "?" is going to have trouble with negative numbers
18:46:27 <Sgeo> !sanetemp _40
18:46:28 <EgoBot> 387.67
18:46:49 <Sgeo> !insanetemp 387.67
18:46:49 <EgoBot> 729.8
18:47:03 <Lymee> !delinterp sanetemp
18:47:03 <EgoBot> ​Interpreter sanetemp deleted.
18:47:04 <Lymee> !addinterp sanetemp sh dc -e "1k?459.67-5*9/p"
18:47:04 <EgoBot> ​Interpreter sanetemp installed.
18:47:06 <Lymee> !sanetemp 104
18:47:07 <EgoBot> ​-197.5
18:47:10 <Lymee> What.
18:47:14 * Sgeo knows nothing about dc
18:47:18 <Lymee> !delinterp sanetemp
18:47:18 <EgoBot> ​Interpreter sanetemp deleted.
18:47:20 <Lymee> !addinterp sanetemp sh dc -e "1k?459.67+5*9/p"
18:47:20 <EgoBot> ​Interpreter sanetemp installed.
18:47:22 <Lymee> !sanetemp 104
18:47:22 <EgoBot> 313.1
18:56:13 <Gregor> EgoBot responds to PM y'know
18:56:46 <Phantom_Hoover> <EgoBot> dc: stack empty
18:56:46 <Phantom_Hoover> <Sgeo> ...
18:56:57 <Phantom_Hoover> !sanetemp 40_
18:56:57 <EgoBot> 255.3
18:57:24 <Phantom_Hoover> Oh, right.
18:57:26 <Phantom_Hoover> Stupid dc.
19:03:40 -!- oerjan has joined.
19:08:18 -!- monqy has joined.
19:13:56 <Taneb> `addquote <Taneb> Well, I'm now experimenting with clients
19:13:58 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients
19:14:06 <Taneb> Did that wrong
19:14:11 <Taneb> How do I remove that?
19:14:40 <monqy> try `delquote, if it works
19:14:41 <Taneb> `delquote 558
19:14:43 <HackEgo> ​*poof*
19:14:49 <monqy> `quote 558
19:14:51 <HackEgo> No output.
19:15:32 <Taneb> `addquote <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:15:34 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:16:14 <Taneb> That's wht I wanted to do
19:16:35 <fizzie> You ignored the two-space rule elliott religiously holds to.
19:16:44 <fizzie> `delquote 558
19:16:46 <HackEgo> ​*poof*
19:16:47 <fizzie> `addquote <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:16:48 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:17:01 -!- pumpkin has joined.
19:17:13 <Taneb> Those people from Hexham are weird
19:17:23 <Taneb> I know this from personal experience
19:17:53 -!- derrik has left.
19:18:37 <ais523> hmm, so I bought the Humble Bundle (#2 and #3), and Amazon needed nothing but the credit card number and expiry date
19:18:42 <ais523> not even the security code on the back
19:18:44 <ais523> that's sort-of amazing
19:18:52 <Taneb> And sort of creepy
19:19:05 <ais523> yep
19:19:17 <ais523> I thought the whole process of that code was to safeguard electronic transactions
19:19:29 -!- copumpkin has quit (Ping timeout: 252 seconds).
19:19:40 <fizzie> It's Amazon; it's only proper that it behaves in amazing ways.
19:19:47 <ais523> I think they're using the typical bank approach of "get contact details, then if something looks off, refund the charge, if it happens a lot go find someone to sue"
19:20:24 <fizzie> For the record, I bought it too thirteen minutes ago, and Paypal's "add card to your account" thing wanted the security code too, but of course now it's rememberating all the details, which is a bit bad.
19:21:11 <Taneb> It's better than it remembering your personal PIN number that identifies you
19:21:26 <ais523> I avoided Paypal; I reasonably-trust Amazon, in that they're big enough that if they were doing particularly evil things in their payment system then I'd probably have heard about it by now
19:22:11 * Sgeo has a few questions about Sam Hughes's Perl tutorial
19:22:13 <Sgeo> "A hash is merely a list with an even number of elements, where the even-numbered elements (0, 2, ...) are all considered as strings."
19:22:14 -!- pumpkin has changed nick to copumpkin.
19:22:34 <Sgeo> Is that accurate? Sounds inefficient for look-ups etc.
19:22:36 <fizzie> Paypal is, I guess, pretty big too. At least they move a lot of money.
19:22:53 <Sgeo> Oh, hmm, maybe "list" in Perl terms, not as a typical... meh
19:23:15 <Sgeo> "Again, unlike sort, and like grep, this block is NOT a small anonymous subroutine and you do NOT call return inside it"
19:23:20 <ais523> Sgeo: that's a bit inaccurate; an even-length list is the representation of a hash used when you put data into it
19:23:30 <ais523> the hash itself is not ordered, it's just a dictionary
19:23:36 <Sgeo> Isn't that sort of inconsistency the thing that plagues PHP?
19:23:41 <ais523> but there's no such thing as a "hash literal", you use an array literal and it converts
19:24:07 <fizzie> It's also "physically" implemented as a usual-ish hashtable.
19:24:22 <Sgeo> my $scalar = ("Alpha", "Beta", "Gamma", "Pie");
19:24:22 <Sgeo> print $scalar; # "4"
19:24:40 <Sgeo> n/m that one
19:26:00 <Sgeo> Um, that's it for my questions, I think.
19:26:44 <ais523> the weird syntax for things like sort/grep/etc is a historical reason
19:27:02 <ais523> I think they finally sorted that out in Perl 6, and the effort of finally sorting it out means that it still isn't finished
19:27:57 <Phantom_Hoover> Hmm, the SQA exam results are being released.
19:28:10 <Phantom_Hoover> I wonder if they'll remember my address this year.
19:30:59 <Taneb> Silly PH, living in a country some of which is west of me!
19:35:44 <ais523> Taneb: surely it's both east /and/ west
19:36:48 <Taneb> Yeah, but I'm not walking East to get to Scoland
19:36:48 <Taneb> Or Scotland or that matte
19:36:48 <Taneb> r
19:37:02 <Taneb> Actually, I'm not going to walk West either
19:37:25 <Taneb> Unless I want to go to Dumfries
19:40:48 <Taneb> And had no money
19:40:58 <Taneb> Nor the charisma to get a lift
19:41:24 <Taneb> Nor the sauveness required to ge away without paying on a train
19:42:55 <Taneb> So, I'm not going to walk to Dumfries
19:43:10 <Taneb> Even though it's to the east o me
19:43:17 <Taneb> I can't type for some reason
19:50:58 -!- invariable has joined.
19:52:23 -!- variable has quit (Read error: Operation timed out).
20:01:03 <coppro> oerjan: how do you calculate n/2? I scrapped that idea when I realized it's probably not possible
20:01:57 <oerjan> i'm not sure that's possible either, but i think either of n/2 and n%2 gives you the other
20:02:10 <coppro> yeah
20:02:19 <coppro> and as for paypal, if you don't store money in the account, you're fine
20:02:26 <coppro> they aren't actually sketchy on credit card or anything
20:02:41 <coppro> just very trigger-happy and arbitrary when it comes to termination
20:04:06 <oerjan> coppro: that idea for doing something conditionally on ther being _two_ zero cells rather than one, how does that work, if it does?
20:04:10 <oerjan> *there
20:08:23 <Taneb> Trying to introduce a friend of mine Haskell
20:08:36 <Taneb> Realised he doesn't understand algebra
20:08:42 <Taneb> Persevering
20:08:52 <oerjan> Taneb the masochist
20:09:16 <Taneb> Okay, he's refusing to do 2 + 2
20:09:28 <oerjan> Taneb the doomed
20:15:32 <Taneb> Hmm...
20:15:57 <Taneb> Can anyone recommend a programming language to an aspirin actor who's crap at maths?
20:16:04 <oerjan> wait, does he understand any form of programming at all?
20:16:07 <Phantom_Hoover> Shakespeare.
20:16:20 <oerjan> ...what's an aspirin actor
20:16:33 <oerjan> someone who gives you headaches?
20:16:34 <Phantom_Hoover> One who acts in aspirin ads, duh.
20:17:20 <oerjan> incidentally, i've never noted that similarity before. i suppose it must have been intentional branding.
20:17:26 <oerjan> *noticed
20:18:05 <oerjan> is the first i long or short?
20:18:27 <Phantom_Hoover> In 'aspirin'? Short.
20:18:32 <oerjan> or wait, hm...
20:20:01 <Taneb> It's a combination of acetyl and spirsäure
20:20:10 <oerjan> "The new drug, formally acetylsalicylic acid, was named Aspirin by Bayer AG after the old botanical name for meadowsweet, Spiraea ulmaria."
20:21:24 <oerjan> and it was german, so the long vs. short i is irrelevant.
20:25:54 <oerjan> aspirieren seems to be german
20:28:55 <Taneb> null []
20:29:05 <Taneb> Woops, wrong tab
20:29:35 <Deewiant> True
20:29:48 <Taneb> Thank you, Deewiant
20:30:09 <Deewiant> <interactive>:1:10 parse error on input `,'
20:31:41 <Taneb> :quit
20:32:02 <Deewiant> Leaving GHCi.
20:35:48 -!- boily has quit (Read error: Operation timed out).
20:35:54 <Sgeo> http://www.gutenberg.org/wiki/Mathematics_%28Bookshelf%29 are any of these a good read?
20:45:46 -!- elliott has joined.
20:46:10 <elliott> hi
20:47:01 <oerjan> hello
20:47:05 <Deewiant> ho
20:47:19 <Sgeo> hi
20:49:53 <monqy> hy
20:50:28 <elliott> 19:32:46: * pikhq_ is tempted to write a partial git implementation. Anyone think of reasons I shouldn't?
20:50:28 <elliott> sg
20:50:31 -!- GreaseMonkey has joined.
20:50:31 -!- GreaseMonkey has quit (Changing host).
20:50:32 -!- GreaseMonkey has joined.
20:50:46 <elliott> 20:01:06: <monqy> what does right-leaning mean help
20:50:46 <elliott> the guy never dedents the code
20:50:47 <elliott> like
20:50:52 <elliott> reallylongfunction = do ...
20:50:55 <elliott> all the code lines are aligned with ...
20:50:58 <elliott> and a bunch of nested conditionals
20:51:04 <elliott> so it's like three hundred chars long :(
20:51:23 <coppro> oerjan: I've forgotten
20:51:33 <oerjan> oh
20:51:42 <Deewiant> I do that, but I also stick to 80 columns
20:51:42 <Lymee> elliott, "codelipo"
20:51:46 <Lymee> Go make a pretty printer named that.
20:52:01 <elliott> Deewiant: You should put a newline after "do" and then one indent :(
20:52:12 <elliott> Unless you write C like
20:52:15 <Deewiant> I don't, if it fits in 80 columns
20:52:18 <elliott> int foo(int a, int b) { printf("...");
20:52:19 <monqy> I usually do a newline after do but sometimes I don't
20:53:05 <elliott> 20:22:14: <oerjan> "The report has sparked anger from IE supporters, who have threatened AptiQuant with legal action.
20:53:06 <elliott> wow
20:53:21 <Taneb> That was later revealeed a fraud
20:53:32 <Taneb> The whole shazam
20:53:44 <ais523> yep, it was a hoax
20:54:21 <elliott> Taneb: um that quote appeared a few lines after the article saying it was a hoax.
20:54:22 <oerjan> darn you mean i won't get my money?
20:54:47 <elliott> oerjan: yes you will. (good thing you're stupid enough to believe this)
20:55:08 <oerjan> ah. excellent.
20:55:33 <elliott> AptiQuant was set up in late July 2011 by comparison shopping website AtCheap.com, in order to launch a fake “study” called “Intelligent Quotient and Browser Usage.” The study claimed that people using Internet Explorer have a below than average IQ score. The study took the IT world by storm. The main purpose behind this hoax was to create awareness about the incompatibilities of IE6, and not to insult or hurt anyone.
20:55:53 <elliott> next time on aptiquant.com: Report on Just How Fucking Stupid We Can Possibly Be
20:56:13 <monqy> isn't ie6 dead
20:56:18 <elliott> no
20:56:20 <monqy> :(
20:56:27 <Lymee> Hmm...
20:56:33 <Lymee> Does cpp work well on Java code?
20:56:45 <olsner> it does, yes
20:56:49 <monqy> I've done it
20:57:14 <ais523> not massively well, because Java code tends not to include #include and #define and all the other stuff that's generally needed to make cpp do something useful
20:57:19 <elliott> People with higher IQ are shunning Internet Explorer study - Computer Business Review
20:57:36 <olsner> I heard that was a hoax
20:57:45 <elliott> :P
20:57:52 <elliott> In May 2010, Microsoft started its "milk campaign", saying that using IE6 is like drinking nine-year-old milk.
20:58:04 <elliott> ah, this explains Firefox's new "release once every week" policy.
20:58:05 <olsner> but as long as it isn't it gives us opera users more reason to feel good about ourselves and look down on other-browser users
20:58:15 <ais523> elliott: oh, there was an awesome bit of spam which I left for you, but Keymaker deleted it
20:58:20 <Taneb> Well, goodnight
20:58:21 <elliott> ais523: :(
20:58:24 <ais523> elliott: so using IE9 is like drinking month-old milk?
20:58:28 <ais523> elliott: it was advertising Google
20:58:34 <elliott> ais523: that was my Firefox joke >:(
20:58:35 <ais523> and had a link to google.com at the end
20:58:39 <elliott> :D
20:58:42 -!- Taneb has quit (Quit: THEY ARE HERE).
20:58:46 <elliott> can you delete it for like three seconds or something
20:58:55 <elliott> (diff) (hist) . . N AnyPL‎; 18:55 . . (+18,908) . . PLarsen (Talk | contribs) (Renamed APL to AnyPL to avoid misconceptions)
20:58:57 <elliott> (diff) (hist) . . APL‎; 18:58 . . (-18,999) . . PLarsen (Talk | contribs) (APL is renamed to AnyPL)
20:59:03 <monqy> whats move page
20:59:03 <monqy> help
20:59:06 <elliott> ais523: hmm, can I ask you to delete AnyPL, revert that change to APL, and move it to AnyPL?
20:59:29 <ais523> <spambot> google is a search engine which clearly is a search google will give google maps ,google world, google news google mail etc[http://www.google.com google]
20:59:41 <elliott> not a license violation since they're the only contributor and we're public domain, but it still erases history
20:59:49 <elliott> ais523: it clearly is a search :D
21:00:08 <elliott> I'm not sure I can call a language User:Icornellhoffmane
21:00:17 <oerjan> elliott: there are probably edits to AnyPL for at least the name change...
21:00:21 <elliott> Icornellhoffmane sounds like a cool language name, though
21:00:28 <elliott> oerjan: um yes but they can easily be repeated.
21:00:41 <elliott> by saving AnyPL's source code
21:00:45 <elliott> and saving it over the resulting article
21:00:49 <monqy> User:Icornellhoffmane/index.php
21:00:58 <olsner> oh... this: http://www.bbc.co.uk/news/technology-14389430 is sad news then
21:01:14 <ais523> elliott: err, please don't tell me how to do a history merge
21:01:15 <olsner> (the "Internet Explorer story was bogus" story)
21:01:21 <elliott> ais523: :D
21:01:22 <ais523> especially not if you get it wrong
21:01:26 <oerjan> elliott: well i'm just worried ais523 might take you literally
21:01:26 <elliott> ais523: oh did I :(
21:01:38 <elliott> oerjan: he has access to deleted pages, anyway
21:01:49 <elliott> ais523: I forgot it was common practice, and also forgot the name
21:01:49 <ais523> wait, I didit wrong too
21:01:52 <elliott> hahaha
21:01:56 <elliott> do you want me to tell you how to do it
21:02:02 <elliott> oh, groan
21:02:09 <elliott> you forgot to omit the blanking change
21:02:24 <ais523> no I didn't
21:02:29 <ais523> it was a change made to the combined pages
21:02:50 <elliott> well, it breaks the diffs
21:03:10 <ais523> it was just vandalism + revert
21:03:16 <elliott> haha
21:03:37 <ais523> anyway, you do a combined delete+move first, then undelete, then set the top revision
21:03:46 <ais523> and I got the last two steps in the wrong order, and so set the wrong top revision
21:04:20 <elliott> well, my way was equivalent if the wrongly moved page has no changes made
21:04:47 <ais523> except it leaves there with no revisions on the page for a while, and people wonder why the page has been deleted
21:04:56 <ais523> you used to have to do something like that
21:05:03 <elliott> haha
21:05:13 <ais523> and I ended up editing db-histmerge to say "this page needs to be temporarily deleted" or something like that
21:05:24 <ais523> because people are all "WHY ARE YOU DELETING MY PAGE"
21:08:02 -!- invariable has quit (Remote host closed the connection).
21:08:30 -!- variable has joined.
21:12:42 <oerjan> ^def test bf ,[[->+<],]>.
21:12:42 <fungot> Defined.
21:12:45 <oerjan> ^test hm
21:12:45 <fungot>
21:12:50 <oerjan> wat
21:13:17 <oerjan> that, indeed, was unexpected.
21:13:29 <oerjan> oh wait
21:13:52 <oerjan> ^def test bf ,[>[-]<[->+<],]>.
21:13:52 <fungot> Defined.
21:13:55 <oerjan> ^test hm
21:13:56 <fungot> m
21:20:38 <elliott> furniture: the movie
21:23:20 <elliott> monqy: im....glfwpipe.........................................................
21:23:26 <monqy> :o
21:23:39 <cheater> is logo a functional language?
21:24:56 <elliott> is scheme a functional language
21:25:33 <monqy> help whats a functieonl language help
21:25:57 <GreaseMonkey> is BASIC a functional language?
21:26:08 <elliott> is cobol a functional language
21:26:13 <elliott> is monqy a functional language
21:26:40 <monqy> im the most fucntioanl language hello
21:26:47 <olsner> is elliott a functional
21:26:51 <GreaseMonkey> is english a functional language
21:26:53 <elliott> is olsner functional
21:27:02 <olsner> elliott is functional?
21:27:09 <elliott> functional olsner
21:27:15 <elliott> .com
21:27:30 <GreaseMonkey> objective elliott
21:28:10 <olsner> structured water: functional healing
21:28:33 <olsner> also, why is the topic so empty nowadays?
21:28:47 <elliott> because anti-clog sentiment
21:28:48 <elliott> brewed
21:28:52 <elliott> and i clamp on down on it
21:28:57 <elliott> with my fsits
21:29:03 <monqy> is clog a functional language
21:29:08 <olsner> topic is glove, much too glove
21:29:20 <elliott> anti-glove it
21:29:48 <monqy> is a functional language
21:29:50 <olsner> unglove my heart^Wtopic
21:31:15 <elliott> .org
21:31:17 <elliott> .com
21:31:41 <olsner> .org.com.net.ng
21:31:51 <elliott> .tk
21:31:58 <olsner> .co.uk
21:32:05 <elliott> .biz.info
21:32:21 <olsner> (this is all concatenated, right? otherwise it's just silly...)
21:32:22 <monqy> .java.lang
21:32:34 <elliott> olsner: yes
21:32:39 <elliott> .Exception
21:32:40 <olsner> elliott: good
21:33:09 <elliott> .good
21:33:18 <olsner> .god
21:33:28 <elliott> .jesus
21:33:39 <elliott> .holyghost
21:33:44 <elliott> .email
21:33:56 <olsner> .xxx
21:34:43 <elliott> @istanbul.cn
21:34:43 <lambdabot> Unknown command, try @list
21:34:54 <elliott> my new email address
21:36:23 <oerjan> istanbul isn't in china
21:36:45 <oerjan> <elliott> YET!
21:37:51 -!- ais523 has quit (Remote host closed the connection).
21:43:22 -!- variable has quit (Ping timeout: 258 seconds).
21:44:14 <cheater> hello
21:44:41 <cheater> does anyone know what mathematical formula appears in this video at the time 2:08? http://www.youtube.com/watch?v=kbGVIdA3dx0
21:45:48 <olsner> oh please, you already sent me that link
21:46:31 <olsner> youtube links should probably be forbidden in #esoteric, they seldom do anything good in here
21:48:42 <olsner> now, something like "lol, this zardoz thing! you should, like, totally, check out the trailer on like youtube" would be a different issue entirely
21:49:01 <olsner> hmm, mostly anyway
21:50:06 -!- zzo38 has joined.
21:51:13 <elliott> olsner: what
21:53:09 <olsner> elliott: indeed
21:53:28 <zzo38> In D.
21:54:02 <olsner> In Dd.
21:54:16 <elliott> "CLICK ON VAN DAMMES MULLET TO SEE MORE" -- actual internet advert
21:55:42 <monqy> what
21:55:56 <monqy> what sort of ad
21:55:57 <monqy> is this
21:56:06 <monqy> is the mullet moving
21:56:13 <elliott> no
21:56:16 <elliott> do you want a picture
21:56:21 <monqy> do you get a free ipod if you click it
21:56:32 <elliott> it is for coors light i think
21:57:00 <elliott> http://ompldr.org/vOXF3bQ
21:57:40 <olsner> hmm, but technically his mullet would be behind his face, wouldn't it?
21:58:42 <oerjan> ^def test bf ,[>+[-[---->+++++<]<[>>[-----<++++>]<++<-[->>+<<]]>>[-<<+>>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<]<.,]
21:58:43 <fungot> Defined.
21:58:50 <oerjan> ^test 0123456789
21:58:51 <fungot> <123A567F9
21:59:17 * oerjan cackles evilly
21:59:46 <oerjan> > chr 60
21:59:47 <lambdabot> '<'
21:59:56 <quintopia> whats going on :/
22:00:06 <oerjan> i'm testing part of my fractran conversion
22:00:38 <oerjan> that appears to be a working "if (n%4 == 0) then n=5*(n/4);"
22:01:05 <oerjan> (iterating over input characters, for testing)
22:02:22 <elliott> oerjan: :DDDDDDDDDDDDddddddddd
22:02:45 <zzo38> Probably it can be done (if a program is written) converting MSE file into TeXnicard file. For card data you could probably do it both ways, although various template features and stuff has only in TeXnicard. You also probably it is difficult to convert the scripts between MSE and TeXnicard.
22:03:14 <oerjan> elliott: i still have that minor halting problem you'll find in the logs
22:03:38 <elliott> oerjan: oh
22:03:47 <elliott> oerjan: i will click on van dammes mullet to see more,
22:05:06 <oerjan> basically, i can iterate things of the form if (n%C1 == 0) then n=C2*(n/C1)+C3; but the == 0 detection is such that i cannot use it to halt the main program...
22:05:36 <zzo38> I now have made prettyprinting Haskell, although, there is still a few things wrong. It includes:
22:05:40 <zzo38> * Spacing is a bit wrong
22:05:46 <zzo38> * Template Haskell is not supported
22:06:03 <zzo38> * Pragmas not yet supported
22:06:48 <zzo38> * Magic hash is only partially supported
22:07:06 <cheater> does it have bullet points
22:07:10 <zzo38> * Cannot make strings span multiple source texts
22:07:25 <zzo38> * Some of the default symbols should be changed and more should be added
22:07:45 <zzo38> But, can you see how it currently is? See if it seem good, or whatever else it is?
22:08:04 <elliott> 21:34:35: <Taneb> Numberwang depends on more variables than a single number
22:08:04 <elliott> 21:35:13: <Taneb> No, but I was once in the studio audience of the show
22:08:04 <elliott> i was going to go "cool" but tHTNE,....
22:08:06 <elliott> I EREALISED IT WAS A FAKE SHOW
22:08:17 <quintopia> well due to the problem posed tnis morning, i did figure out how to find x%n in n+1 cells for all positive n (and i suspect i could make n a parameter for just one more cell). that was fun puzzle, thanks.
22:08:20 <zzo38> cheater: Bullet points? Do you mean as a part of the program code or else?
22:08:20 <elliott> <oerjan> basically, i can iterate things of the form if (n%C1 == 0) then n=C2*(n/C1)+C3; but the == 0 detection is such that i cannot use it to halt the main program...
22:09:01 <elliott> oerjan: hmm well I know a BF Joust technique is to turn if(a){b}else{c};d into while(a){b;d};c;d
22:09:11 <elliott> oerjan: but that's when you have bounds on program running time, etc...
22:09:19 <elliott> so you can know it'll never go past d
22:09:23 <oerjan> quintopia: note that the original x needs to be preserved in some cell
22:09:42 <cheater> zzo38, no i mean more bullet points than the ones you just posted
22:09:47 <quintopia> oerjan: i didnt assume that. it takes one more cell if you want to do that
22:09:50 <oerjan> or at least reconstructable
22:09:53 <cheater> it seems like the main feature of your program is bullet points
22:09:55 <oerjan> quintopia: darn :(
22:09:58 <elliott> 21:52:39: <olsner> Taneb: you've seen numberwang *LIVE*!?
22:09:58 <elliott> 21:52:40: <oerjan> i know almost nothing about it
22:09:58 <elliott> 21:52:57: <oerjan> as i've never used it myself
22:09:58 <elliott> 21:53:20: <oerjan> it's for compile-time metaprogramming, afaik
22:10:22 <zzo38> cheater: No, I was just listing what some of the problem are currently with the program.
22:10:33 <elliott> 21:57:59: <zzo38> Do you know, if it is allowed in Template Haskell, to have one $ command that will return something for use of the next $ command that is found if it can use it?
22:10:41 <elliott> zzo38: you mean an impure splice, basically?
22:10:45 <elliott> i.e. $(foo) could be 9 one place and 0 another
22:11:31 <olsner> elliott: it turned out he hadn't, he merely simply just lied about having done that
22:11:33 <elliott> splices run in the Q monad which is a MonadIO, so yes, they can be non-deterministic, and even delete files or whatever if they want. storing a value for next time is probably possible by manipulating places you can store state in IO. they couldn't use an IORef without unsafePerformIO
22:11:40 <elliott> olsner: numberwang is not real.........
22:11:40 <zzo38> elliott: Yes I mean a bit like that
22:11:46 <olsner> elliott: of course it is
22:12:06 <elliott> 21:59:39: <zzo38> Can you compile Haskell codes into LLVM codes? I have read LLVM documentation it does suppports Haskell calling convention
22:12:13 <elliott> zzo38: GHC has this
22:12:18 <elliott> and I think it's quickly becoming the most favoured backend.
22:12:28 <monqy> r.i.p. c--
22:12:54 <oerjan> <elliott> oerjan: but that's when you have bounds on program running time, etc... <-- not particularly useful when you're trying to make a program which _actually_ halts :P
22:12:58 <elliott> 22:07:58: <zzo38> Not what I am looking for, though. What it is, is if there is something for adding LLVM codes into a program similar to "asm" command in C, except using LLVM codes instead of native codes, and for Haskell instead of only with C
22:13:13 <elliott> zzo38: well you can achieve something semi-equivalent by compiling LLVM IR at runtime using the API, and then casting that to a function type
22:13:17 <elliott> oerjan: indeed
22:13:26 <elliott> oerjan: you could use <<< as a sure-fire halter >:)
22:14:02 <zzo38> elliott: But can you, for example, the return value of a $(...) can be a pair of one value (probably a union type) and the second one is the object representing what is replaced in the program code
22:14:26 <olsner> elliott: but I rather referred to the numberwang sketch(es), which might have had live audiences (though I think they wouldn't have been watching numberwang per se, but rather would've been watching mitchell and webb)
22:14:43 <elliott> zzo38: I don't understand what you mean by "the object representing what is replaced in the program code"
22:14:48 <zzo38> elliott: OK, but I mean can you include LLVM codes at compile-time? I don't mean at run-time
22:15:33 <elliott> zzo38: i don't think so
22:15:52 <oerjan> <monqy> r.i.p. c-- <-- wait it's gone?
22:16:26 <monqy> i do not know
22:16:42 <monqy> is it not gone
22:16:50 <monqy> or not going, that is
22:17:44 <elliott> 04:52:42: <quintopia> is there a name for a numbering system where every single positive integer has a distinct symbol?
22:17:45 <quintopia> oerjan: you might find the flagging technique i used helps with the halting issue (if you dont already use it). it essentially lets you exit a loop if any of a whole bunch of cells has been zeroed...
22:17:46 <elliott> quintopia: the naturals
22:17:53 -!- GreaseMonkey has quit (Quit: The Other Game).
22:18:02 <quintopia> elliott: that subject is over
22:18:02 <elliott> "whole bunch" he has precisely three cells
22:18:08 <elliott> quintopia: i un-overed it
22:18:15 <zzo38> elliott: I mean, the type of "..." expression in $(...) which can be "Q Exp" or "Q Typ" or "Q [Dec]" so can it be made a pair instead so that you can keep track of previous things? Such as, you can do put everything figured out previously at the end, or prevent duplicates, or whatever
22:18:38 <quintopia> wait, is he trrying to fit the entire converter into 3 cells?
22:18:48 <oerjan> <elliott> oerjan: you could use <<< as a sure-fire halter >:) <-- i don't think so. also i'm not sure i can actually perform an action _specifically_ when something is %2 == 0
22:18:53 <elliott> zzo38: i'm not quite sure i understand
22:18:56 <elliott> quintopia: that's the whole point of the converter
22:19:06 <elliott> oerjan: it was a joke, if you only have three cells then <<< is necessarily invalid
22:19:08 <quintopia> why
22:19:17 <elliott> quintopia: to prove that three-cell BF is tc
22:19:24 <quintopia> aha
22:19:37 <quintopia> so we know already that four cell BF is?
22:19:46 <elliott> 04:56:09: <CakeProphet> he's talking about an infinite number of symbols. I don't think that has a name.
22:19:47 <elliott> it does, it's called a "set"
22:19:50 <elliott> quintopia: no. oerjan is just hardcore.
22:19:53 <elliott> we know that six is IIRC
22:19:55 <elliott> or was it seven
22:20:06 <monqy> or was it five
22:20:14 <elliott> zzo38: are you basically saying that you want foo in $(foo) to be able to use global state?
22:20:14 <monqy> im dont know ;_;
22:20:22 <elliott> i.e. if you do $(foo "a") it will note that "a" has been done
22:20:29 <elliott> and not do it again if you say $(foo "a") later or whatever
22:21:23 <oerjan> elliott: five
22:21:24 <elliott> 04:57:28: <quintopia> it is not dumb
22:21:25 <elliott> 04:58:11: <quintopia> becuase youll only ever need a finite subset of the digits, its basically the same as "base x, where x is the largest number you need right now"
22:21:25 <elliott> this is the same fallacy that makes a language with a fixed-but-arbitrary-size heap TC
22:21:32 <cheater> olsner, i hadn't sent you any links
22:21:35 <cheater> don't feel so special
22:21:47 <zzo38> elliott: You failed to understand? O, well, I don't know much about Haskell so maybe I wrote everything mixed up. But, I mean, for example, if "xyz" is a function receiving (Integer) and then returns (Integer,Q Exp) type then you can type $(xyz) so it expects the last pair with Integer type at first and makes the new one Integer and then put the Q Exp expression spliced out
22:22:06 <cheater> i don't really care if you've seen it 2 or 0 times unless you're going to recognize the formula, then i care but only a tiny bit.
22:22:26 <quintopia> elliott: i realized it was dumb later...it'd be better if you just finished reading everything before commenting
22:22:26 <olsner> cheater: I see what you mean, but then again anything I see on my screen has been sent to me, regardless of who the recipient(s) was/were
22:22:42 <elliott> quintopia: that is not the Way.
22:22:50 <cheater> i hadn't sent it to you. i had sent it to a channel, to which you subscribed by joining.
22:22:58 <elliott> zzo38: sorry, I still don't quite understand
22:23:28 <olsner> cheater: still your fault I saw it
22:23:37 <cheater> if anything, i hadn't opted to send it to you, you opted to receive it
22:23:46 <quintopia> i know its not how you do things, and that you intentionally elect to be annoying about backlog commenting, but i can still hold out hope you will become civilized can't i?
22:23:52 <elliott> fuck that olsner
22:23:54 <elliott> how dare he say "oh please, you already sent me that link"
22:23:55 <elliott> asshole
22:23:57 <elliott> you show him dude
22:24:07 <elliott> quintopia: you realise oerjan did it first :)
22:24:09 <elliott> and continues to
22:24:16 <cheater> quintopia, elliott is always annoying
22:24:26 <cheater> learn to live with it, he can't be changed
22:24:29 <olsner> elliott: Indeed.
22:24:32 <elliott> i think cheater woke up on the wrong side of the bed today
22:24:35 <elliott> (his bed has two wrong sides)
22:24:49 <cheater> my bed has about six sides
22:24:57 <cheater> given that it's in 3-D Space
22:24:59 <olsner> hmm, two wrong sides... how many sides does that leave for being the right side(s)?
22:25:06 <cheater> four.
22:25:10 <quintopia> no
22:25:16 <quintopia> dont forget inside and outside
22:25:19 <elliott> olsner: well i assumed it is against a wall
22:25:19 <olsner> (I would hate to wake up on the under-side of my bed)
22:25:22 <elliott> so i guess he could lunge over the front
22:25:27 <cheater> oh man, those are SIDES too!
22:25:28 <olsner> and the inside, of course
22:25:35 <elliott> there are other sides, but none of them are practical to exit from.
22:25:39 <elliott> exit on
22:25:58 <olsner> but who said anything about exiting the bed?
22:26:04 <olsner> it's waking up that's the issue
22:26:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:26:19 <cheater> i live in a room with no walls
22:26:27 <elliott> cheater is homeless.
22:26:32 <cheater> not really.
22:26:43 <cheater> the world is my home!!!!!
22:27:54 <elliott> 05:58:57: <Patashu> http://img.photobucket.com/albums/v216/Mechadragon/thetree.png
22:27:54 <elliott> those are really shitty trees
22:28:21 <olsner> looks like a spectrogram
22:28:35 <elliott> `addquote <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
22:28:37 <HackEgo> 559) <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
22:28:44 <cheater> why do people call logo the lisp without parentheses?
22:28:49 <zzo38> Maybe I can explain better. something :: String -> (Integer,Q Exp) something x = [| aaa bbb |] f x = $(something) Now there must be at least one previous $(...) of type "(anything) -> (String,Q (anything))"
22:28:51 <olsner> almost exactly like the spectrograms that websdr gives you
22:29:21 <zzo38> (But it doesn't have to be the directly previous one, there can be anything else in between)
22:29:32 <elliott> cheater: because it is a fixed-arity lisp.
22:29:40 <oerjan> cheater: because it is rather similar below the syntax
22:29:42 <cheater> that song totally does not look sequenced.
22:29:44 <elliott> something :: String -> (Integer,Q Exp) something x = [| aaa bbb |]
22:29:46 <elliott> zzo38: this is not valid
22:29:59 <elliott> zzo38: something x = (length x, [| aaa |]) might be.
22:30:08 <zzo38> Yes, I know that, sorry. Now you made better.
22:30:13 <zzo38> I got mixed up.
22:30:21 <elliott> f x = $(something)
22:30:27 <elliott> also not valid, because something is not of type Q Exp
22:30:31 <zzo38> Your example is the kind of things I mean.
22:30:49 <zzo38> elliott: Yes I know is not valid. I am asking if there is some way to do something similar to what I described
22:30:56 <elliott> hmm
22:31:04 <zzo38> Like, is there a way to make it valid.
22:31:10 <elliott> "Now there must be at least one previous $(...) of type "(anything) -> (String,Q (anything))"" <-- what do you mean by "there must be at least one previous" etc.?
22:31:19 <elliott> like, do you want to stop anyone using that splice once?
22:31:22 <elliott> they have to use it two or three times or whatever
22:31:37 <zzo38> elliott: No, I mean there must be an input otherwise how can it be used?
22:31:39 <elliott> does the Integer record the number of times the splice has been used?
22:31:53 <elliott> zzo38: ah. well yes, (String -> Q Exp) is not of type Q Exp.
22:31:57 <zzo38> The "Integer" would be the input. So there must be a input
22:31:58 <cheater> zzo38, do you just mean state
22:32:15 <zzo38> cheater: Yes, maybe I mean like that
22:32:17 <elliott> zzo38: the Integer there is part of the return type
22:32:21 <elliott> not part of the input
22:33:08 <cheater> except in state
22:33:21 <quintopia> arrive in state
22:33:25 <elliott> 11:21:02: <coppro> dude
22:33:25 <elliott> 11:21:08: <coppro> using negatives is not a flaw
22:33:29 <elliott> coppro: it is if negatives impact his translation
22:34:04 <Sgeo> Is it bad that I'm bruteforcing VVVVVV puzzles?
22:34:42 <elliott> i'll pass this question on to our VVVVVVVVVVVvvvvvvvvv expert FireFly
22:34:43 <elliott> erm
22:34:44 <elliott> fizzie
22:34:59 <FireFly> Well, I did finish VVVVVV
22:35:11 <monqy> i finished the uh
22:35:13 <monqy> free demo
22:35:19 <monqy> ages ago
22:35:32 <elliott> i should buy the bnudle............
22:35:38 <elliott> idnie bnudle.
22:35:40 <FireFly> Yes, you should
22:36:58 <monqy> the bnudle is probably good but the trailer killed me and did bad things to my corpse
22:37:29 <monqy> at least i think it was the trailer
22:37:43 <elliott> 12:36:53: <oerjan> yes, also they're hard to use here
22:37:44 <elliott> 12:37:12: <oerjan> but then maybe it could be essential
22:37:49 <elliott> oerjan: is BF with only balanced loops TC?
22:38:00 <elliott> I somewhat doubt it considering how simple an instruction set you can translate them to
22:38:16 <elliott> if it isn't, then you _must_ used an unbalanced loop somewhere.
22:38:17 <oerjan> elliott: yes it is.
22:38:20 <elliott> oerjan: huh, okay
22:38:26 <elliott> oerjan: cool, we should eliminate them, then
22:38:31 <elliott> would make optimisation a hell of a lot easier.
22:39:06 <oerjan> in fact i haven't used any unbalanced loops in the conversion yet, but i'd use one if it could help with the halting...
22:39:43 <oerjan> elliott: pikhq_'s BFM worked much better when generating balanced loops iirc
22:39:49 <elliott> well if you can arrange things so that you would fortuitously land on a 0 when you need to halt...
22:39:58 <monqy> how do unbalanced loops workii forget the spec
22:39:58 <elliott> oerjan: heh, well obviously compilers can do balanced loops really quickly
22:40:04 <elliott> because of the polynomial translation
22:40:28 <elliott> monqy: unbalanced = doesn't move left as much as it moves right
22:40:49 <monqy> oh
22:40:54 <monqy> oh right
22:40:59 <monqy> I was thinking different things oops
22:41:14 <zzo38> elliott: Yes the Integer is part of return type in that example, which means the input type of one of the $(...) in the future can be Integer. But since the input type this time is String, requires one of the previous ones to have a pair with String as the output
22:41:27 <zzo38> Now do you understand what I mean?
22:41:41 <Sgeo> FireFly, I feel like I was mashing buttons for the chords
22:41:57 <elliott> zzo38: you mean...
22:42:04 <elliott> zzo38: $(something 9) could return (Integer, Q Exp)
22:42:06 <elliott> erm
22:42:09 <elliott> zzo38: $(something 9) could return (String, Q Exp)
22:42:13 <elliott> then in $(something x)
22:42:17 <elliott> x would have to be a String??
22:42:22 <elliott> I don't really see what you mean at all
22:42:58 <Sgeo> Bleeping diode
22:43:08 <monqy> bleeping?
22:43:57 <zzo38> elliott: No! I mean, probably you would have a function with a type "Integer -> String -> (Integer, Q Exp)" then you can have "$(something 42)" which results in a type "String -> (Integer, Q Exp)" which is the type of the splice. And then it call it with the previous one having type "(String, Q Exp)" or "(String, Q [Dec])" etc, the first of that pair is the input of the function, the output the second part makes the expression.
22:44:18 <elliott> ah, hmm
22:44:20 <elliott> you mean
22:44:22 <elliott> you would use it like:
22:44:27 <elliott> $($(something 99) "abc")?
22:44:43 <zzo38> No. That is not what I mean.
22:45:12 <elliott> :(
22:45:16 <zzo38> Probably at first you would need something with the input type being () so that you can start
22:45:26 <zzo38> Otherwise you always need a input value and you don't have any
22:46:29 <zzo38> I will write a better example
22:46:32 <elliott> 17:51:35: <Taneb> What would make the perfect programming language, in your eyes?
22:46:32 <elliott> @lang :-P
22:46:32 <lambdabot> pong
22:47:14 <monqy> zepto
22:47:21 <monqy> @lang too
22:47:21 <lambdabot> pong
22:47:25 <oerjan> monqy: apparently c-- is still used when compiling with llvm, it's the last common stage before all the separate backends, http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/HscMain
22:47:31 <monqy> aha
22:50:07 <oerjan> although i do recall there was some backend which went off an earlier stage
22:50:29 <oerjan> an experimental one, i wonder if it was the javascript one
22:50:46 <oerjan> or wait that wasn't ghc at all was it.
22:51:11 <monqy> yhc, apparently
22:51:26 <oerjan> mhm
22:51:31 -!- copumpkin has joined.
22:51:47 <elliott> rip yhc
22:52:30 <elliott> 20:28:55: <Taneb> null []
22:52:30 <elliott> 20:29:05: <Taneb> Woops, wrong tab
22:52:31 <elliott> 20:29:35: <Deewiant> True
22:52:31 <elliott> 20:29:48: <Taneb> Thank you, Deewiant
22:52:31 <elliott> 20:30:09: <Deewiant> <interactive>:1:10 parse error on input `,'
22:52:31 <elliott> 20:31:41: <Taneb> :quit
22:52:33 <elliott> 20:32:02: <Deewiant> Leaving GHCi.
22:52:37 <elliott> Deewiant: you should have done /quit Leaving GHCi. instead :P
22:54:46 <elliott> Five Humble Indie Bundle 2 games added to the Humble Indie Bundle 3
22:54:48 <elliott> oh for goodness sake
22:57:07 <monqy> what does this mean
22:57:17 <cheater> it means you get to play gish
22:57:22 <cheater> or was that in HIB1
22:57:38 <monqy> what's hib2 specific now
22:57:39 <monqy> if anything
23:00:24 <zzo38> Here is better example http://sprunge.us/cHbI I know it is wrong that is why I ask what other way to do a similar thing.
23:02:47 <zzo38> Now it is understand??????????????????????????????????????????????????????????????????????????????????????????????????????
23:02:57 <elliott> zzo38: I'll check
23:03:31 <elliott> zzo38: OK, so what you want is mutable state
23:03:37 <elliott> you could do this:
23:03:51 <elliott> state :: IORef Bool; state = unsafePerformIO $ newIORef False
23:03:55 <elliott> bbb :: Q Exp
23:04:28 <elliott> bbb = do r <- liftIO $ readIORef state; liftIO $ writeIORef state False; if r then [ | 5 |] else [| 7 |]
23:04:33 <elliott> similarly for cc
23:04:39 <elliott> and aaa becomes unneccessary because we specify an initialiser
23:04:47 <elliott> zzo38: this requires unsafePerformIO though, which is Bad
23:04:50 <elliott> and indeed breaks the type system
23:04:54 <elliott> and is thus kept in an unsafe module
23:05:04 <elliott> zzo38: if you want to do it safely, then you need to exploit the fact that you can access the IO monad from Q
23:05:06 <zzo38> elliott: I know, it is unsafePerformIO that is why I wanted it differently without unsafe
23:05:15 <elliott> for instance, you could use whether stdout is in binary mode or not
23:05:26 <elliott> or some other piece of internal state that doesn't matter to you
23:05:30 <elliott> this is a huge hack, of course
23:05:37 <elliott> you could write out the boolean to a file and read it back in, too
23:05:38 <elliott> etc.
23:05:45 <elliott> but generally i'd say that you shouldn't :P
23:05:57 <elliott> ofc if it's just for a fun hack then it's fine. but then if it's just for a fun hack unsafePerformIO is ok too.
23:06:07 <elliott> so, yes it can almost certainly be done
23:06:10 <elliott> it'll be ugly though :)
23:06:47 <monqy> alternatively, don't mutable state ;_;
23:06:54 <zzo38> I know that wouldn't be very well, which is why I asked it differently. But, OK, now I know at least it can be done in case it is necessary
23:08:00 <elliott> well it probably can. if your user has no permissions to write any kind of file at all, you rely on stdout being in a certain encoding so you can't change that, ..., then you couldn't do it
23:08:12 <elliott> but I suspect the base libraries have some way to twiddle a bit on and off without effecting everything, by accident :)
23:09:55 <cheater> anyone got an idea why gawk AND mawk would both only output one space when doing this? LC_ALL=en_US.UTF-8 gawk 'BEGIN{ printf(".%3s.\n", "ü")}'
23:10:27 <zzo38> Maybe another way would be to make $(doeverything x) where doeverything :: [([Integer], Q [Dec])] -> Q [Dec]
23:10:28 <cheater> apparently it works on other people's computers
23:10:30 <zzo38> Does this way work?
23:10:36 <cheater> but i tried on all my computers and it doesn't
23:10:52 <elliott> zzo38: um well x would have to be a list of ([Integer], Q [Dec])s
23:10:55 <elliott> which is a weird thing to pass
23:11:13 <zzo38> Yes I know it is
23:11:24 <cheater> can it be that my libc is somehow fucked up?
23:12:54 <zzo38> Or maybe a different type instead of [Integer] it should be a monad on the first half of the pair, or a function type. And then you can have commands that can check these thing the function "doeverything" pass each result to the next one and then make the output Q [Dec] based on each one put it together
23:13:50 <zzo38> I was wrong when I put [Integer] probably a function type or a monad type (or maybe you need both?) would work instead
23:14:19 <elliott> zzo38: no. if you return type is (Q Dec), then you cannot cause any effects outside of Q.
23:14:35 <elliott> you are restricted to what effects Q offers
23:16:19 <pikhq_> cheater: So, what, ". ü." is the string it should output?
23:18:21 <elliott> monqy: http://sprunge.us/WZLA help this is too funny (guy in haskell logs has team, is developing online version of Risk, apparently no good at concurrent programming, expects 10000 concurrent users)
23:19:20 <elliott> 06:37:42 <Zyclops> do you guys compile your haskell to machine code?
23:19:37 <elliott> (06:47:05 <Zyclops> what do they mean when they say pascal is pure?)
23:20:37 <monqy> i dont know whether to keep this guy away from haskell or force him to learn it until he becomes smart
23:20:51 <elliott> what do they mean when they say pascal is pure
23:20:53 <elliott> help
23:22:18 <cheater> pikhq_, it should output two spaces to the left of the umlaut u
23:22:31 <cheater> . ü.
23:23:10 <cheater> notice the string specifier is %3s which means the field should be formatted to 3 characters wide.
23:23:57 <monqy> elliott: did they reach a conclusion
23:24:07 <elliott> monqy: im not srue...................................................................
23:25:56 <cheater> pikhq_, you'll notice that it works for ascii letters and other single-byte characters. it does for me too. now for multibyte characters it might work for you, but it most certainly does not work here
23:26:36 <monqy> im searching for zyclops does this make me a bad person
23:26:53 <monqy> 02:17Zyclopshey pythoners, anyone know how to get python-setuptools installed under bsd?
23:26:56 <monqy> 02:22Zyclopsah ha
23:26:59 <monqy> 02:23Zyclopsi't py-setuptools under /ports/devel/
23:27:10 <monqy> never heard from again
23:27:17 -!- elliott has quit (Read error: Connection reset by peer).
23:27:23 -!- elliott has joined.
23:28:04 <zzo38> Maybe you can pass the list [((Xyzzy, Q [Dec]) -> (Xyzzy, Q [Dec]), Q [Dec])] So that, you can have a type "Xyzzy" which tells the things need to keep track of, and then Q [Dec] is the program codes and the other one is a function that transform it based on the state, you can have a function taking parameter and make output due to currying functions too
23:28:12 <elliott> 07:40:06 <Guest28011> erus`: linux-programmers only know about shell scripting and C
23:29:14 -!- ttm_ has joined.
23:29:27 <monqy> i am having trouble finding zyclops' risk adventures online
23:29:44 <elliott> http://tunes.org/~nef/logs/haskell/11.07.31
23:29:46 <monqy> maybe he gave up :(
23:29:46 <elliott> ur welcmome
23:30:08 <monqy> oh that recent?
23:30:14 <zzo38> I know some things of AWK, but I never used AWK with Unicode, I have only used AWK with ASCII, so I don't know the answer of the questions you asked about AWK
23:30:47 <elliott> wait no
23:30:59 <elliott> argh
23:31:00 <elliott> where is it
23:31:15 <elliott> http://tunes.org/~nef/logs/haskell/11.07.31
23:31:16 <elliott> yeah
23:33:39 <monqy> 07:02:34 <Zyclops> erm.. my progamming liniage went…. BBC basic -> basic -> visual basic -> c++ -> java -> php -> ruby
23:33:51 <monqy> then he leaves
23:33:52 <monqy> :'(
23:34:59 <zzo38> (Where, "Xyzzy" is a object that keeps track of all the information needed tp be kept track of between the different pieces of the Haskell codes, so that the record might include a number and a function that increments that number and include it, or a list to keep track of duplicates and put all fields of a record spread out moved together, etc)
23:37:14 -!- FireFly has quit (Quit: swatted to death).
23:37:18 <zzo38> Because, how can you otherwise make a number in Template Haskell that increments after each time?
23:37:37 <zzo38> (That is, if you don't use unsafe or other I/O stuff that doesn't belong)
23:41:01 <elliott> zzo38: using IO from within Q is perfectly acecptable.
23:41:03 <elliott> acceptable.
23:41:18 <elliott> using unsafe functions probably is not, but IO is supposed to be accessible from Q.
23:41:45 <elliott> runIO :: IO a -> Q aSource
23:41:45 <elliott> The runIO function lets you run an I/O computation in the Q monad. Take care: you are guaranteed the ordering of calls to runIO within a single Q computation, but not about the order in which splices are run.
23:41:45 <elliott> Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself.
23:41:49 <elliott> s/aSource/a/
23:41:57 <elliott> oh right
23:42:01 <elliott> zzo38: my solution was _incorrect_
23:42:07 <elliott> because splices can be run in any order
23:42:17 <elliott> so basically, no, there is no way for them to predictably keep state
23:49:30 -!- Sulmersal has joined.
23:50:37 -!- Sulmersal has left ("Leaving").
23:51:26 <zzo38> elliott: OK, so there isn't a way. Maybe I can propose the variant which keeps state. In addition to types "Q Exp" and "Q Typ" and so on, the result can also be of a type "x -> (y, Q Exp)" and "x -> (y, Q Typ)" and so on, where "y" can be any type, and "x" must be either "()" or the same as the "y" type of a previous splice. The ordering of splices in a "chain" is guaranteed but others aren't.
23:51:43 -!- variable has joined.
23:53:03 <zzo38> I don't know how well it would work with the rest of the stuff they have.
23:56:56 <elliott> back
23:57:11 <elliott> zzo38: Well, umm, that's just the state monad.
23:57:26 <elliott> But, you cannot really force an ordering of splices at all.
23:57:32 <elliott> Because the compiler can compile modules in any order, etc.
23:58:26 <monqy> do it all in a single splice?
2011-08-04
00:01:05 -!- Patashu has joined.
00:16:14 -!- Sgeo has quit (Read error: Connection reset by peer).
00:17:44 -!- Sgeo has joined.
00:23:39 <elliott> wow, "paragraph" actually meant 16 bytes on sixteen bit intel
00:23:40 <elliott> :DD
00:23:42 <elliott> as opposed to page
00:23:52 <elliott> so amazing.
00:34:38 * elliott appends http://hackage.haskell.org/package/gloss to the "To look at" list
00:34:45 <elliott> oh hmm it looks two dimensional
00:35:48 <monqy> yeah I looked at gloss too. I forget exactly why I didn't use it
00:35:52 <monqy> maybe I should look more at it
00:36:04 <elliott> look at it with the fiery power of a thousand suns...
00:36:22 * elliott considers looking at Frag sometime too :P
00:36:26 <elliott> it uses FRP at least.
00:36:29 <elliott> and OpenGL.
00:36:54 <elliott> my game is going to be SO AWESOME.
00:37:05 <monqy> elliottcraft or what
00:37:09 <elliott> yes.
00:38:18 <Sgeo> elliott, I thought you said there were unsolved problems with FRP?
00:38:47 <elliott> well yes. but you can wing it.
00:38:58 <elliott> ?t \f g -> (f .) . g
00:38:58 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
00:39:00 <elliott> :t \f g -> (f .) . g
00:39:01 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f1 (f a) -> f1 (f b)
00:39:07 <elliott> :t \f g -> (f Prelude..) Prelude.. g
00:39:08 <lambdabot> forall b c a a1. (b -> c) -> (a1 -> a -> b) -> a1 -> a -> c
00:39:13 <elliott> hate lambdabot forever
00:39:23 <elliott> hmm
00:39:26 <elliott> ?pl \f g -> (f Prelude..) Prelude.. g
00:39:26 <lambdabot> flip ($ Prelude..) Prelude..
00:39:29 <elliott> ?pl \f g -> (f .) . g
00:39:29 <lambdabot> (.) . (.)
00:39:32 <elliott> just as i suspected
00:42:03 <oerjan> ye olde horriblie broken parser
00:42:11 <elliott> wat
00:42:30 <oerjan> ($ Prelude..) is not legal syntax
00:42:37 <elliott> oh, heh
00:42:42 <elliott> cute
00:44:06 <monqy> :t ($ Prelude..)
00:44:07 <lambdabot> parse error on input `Prelude..'
00:44:44 <monqy> ?unpl (.) . (.)
00:44:45 <lambdabot> (\ i b c f -> i (b c f))
00:44:58 <monqy> ?unpl flip ($ Prelude..) Prelude..
00:44:58 <lambdabot> Parse error at "Prelu..." (column 9)
00:47:15 * Phantom_Hoover concludes that Tindeck is entirely a Homestuck fansite.
00:55:30 <elliott> it existed before homestuck
00:55:35 <elliott> it's an SA thing
00:55:44 <oerjan> ok, so a printer error more than a parser error
00:55:59 <Phantom_Hoover> elliott, I guessed both of those.
00:56:14 <oerjan> ?pl \f g -> (f hm) hm g
00:56:15 <lambdabot> flip ($ hm) hm
00:56:37 <Phantom_Hoover> But there are about 3 tracks on 'popular now' which aren't Homestuck-related.
00:56:39 <oerjan> hm no
00:57:09 <oerjan> ?pl \f g -> hm (hm f) g
00:57:10 <lambdabot> hm . hm
00:58:01 <oerjan> seems to be parser
00:59:42 <Sgeo> I should put my karaoke on tindeck
01:00:31 <monqy> I still had that until like yesterday
01:05:08 -!- evincar has joined.
01:06:55 <evincar> How are the times?
01:08:08 <Phantom_Hoover> monqy, you deleted it‽
01:08:16 <Phantom_Hoover> HOW
01:09:04 <monqy> i forgot i didn't move it from my downloads directory and then i cleared my downloads directory :'(
01:11:25 <Phantom_Hoover> It's back up on his website, though.
01:12:04 * Sgeo decides to just look up the answer for VVVVVV's I Love You
01:12:29 <Phantom_Hoover> wat
01:15:27 <Sgeo> Oh come on, I thought I tried that
01:18:59 <Phantom_Hoover> What are you going on about?
01:19:24 <Sgeo> Phantom_Hoover, VVVVVV is one of the games in Humble Indie Bundle 3
01:19:33 <Phantom_Hoover> Ah.
01:19:38 <Phantom_Hoover> Yeah, I should probably get that thing.
01:20:01 <Phantom_Hoover> Someone do me a favour after I quit and @tell lambdabot to remind me.
01:20:33 -!- cheater has quit (Ping timeout: 255 seconds).
01:28:58 * Phantom_Hoover → sleep
01:29:02 <Phantom_Hoover> @tell Phantom_Hoover I wonder if this works.
01:29:03 <lambdabot> You can tell yourself!
01:29:13 <Phantom_Hoover> @dammit
01:29:13 <lambdabot> Unknown command, try @list
01:29:16 -!- Phantom_Hoover has quit (Quit: Leaving).
01:32:41 <evincar> @tell Phantom_Hoover Get that thing.
01:32:41 <lambdabot> Consider it noted.
01:32:52 <evincar> Well, that's taken care of.
01:33:34 -!- cheater has joined.
01:41:39 -!- lament has joined.
01:48:25 <evincar> So I finished Gödel, Escher, Bach. I found it off-puttingly clever and absurdly long for the subject matter.
01:48:35 <evincar> Those interested, discuss.
01:49:39 <zzo38> Yes I have read that book too. I notice many things. Even it mentioned in the bibliography, is a book that doesn't even exist. There is many references to copper,silver,gold (can you find it?) and a lot of other things. I like this book too.
01:51:38 <evincar> It was...something. I feel like it was just written in a "ho ho aren't I clever" sort of way merely for the sake of it.
01:51:43 <evincar> It doesn't necessarily obscure the point.
01:51:52 <evincar> But it certainly makes it longer and more irritating to get to the point.
01:51:54 <quintopia> the interludes were amusing as clever stories yes
01:52:10 <quintopia> it was good to know more details of godel's proof
01:52:15 <evincar> Oh, certainly.
01:52:22 <quintopia> but other than that i didnt really learn anything from it
01:53:13 * Sgeo wants recommendations for Gutenberg Project books to read
01:53:14 <quintopia> and yeah, i spread the reading of it over months because it was kind of tedious
01:53:39 <quintopia> sgeo: have you read all the classics yet?
01:53:57 <Sgeo> No
01:54:03 <zzo38> The entire book it makes many things. I happen to like this book. I have the Vintage edition. Find all the secret messages and everything else in this book including everything wrong with it and so on.
01:54:08 <evincar> quintopia: I did it in a couple days because otherwise I wouldn't've bothered continuing with it.
01:54:11 <Sgeo> Not sure I'd be interested in classical fiction
01:54:25 <quintopia> if youve finished with the english language classics, start in on the icelandic language classics. Njalssaga is on PG i think
01:54:36 <Sgeo> Unless maybe some humorous classical fiction?
01:54:53 <quintopia> alice in wonderland?
01:55:00 <quintopia> its like required reading...
01:55:25 <zzo38> Yes, Alice in Wonderland; very good.
01:55:54 <quintopia> also flatland
01:56:11 <oerjan> jules verne
01:56:15 <Sgeo> Read Flatland a while ago. Tried to get the PG version, doesn't seem to work well
01:56:43 <Sgeo> I know Jules Verne is science fiction, but... hm
01:56:52 <elliott> try the R version
01:57:11 <evincar> It's much more...interesting. ;)
01:57:31 <elliott> hot square on square action
01:57:34 <evincar> In any case, Flatland is bothersome not for what it is.
01:57:46 <evincar> But rather for what people interpret it to mean.
01:58:07 <evincar> Rather like Huxley's work, it gets misinterpreted by people who miss the point but use the work to make their own faux-points.
01:58:11 <quintopia> flatland is interesting if you understand it as a commentary on victorian culture
01:58:34 <quintopia> sort of like gullivers travels (also recommend)
02:13:00 <elliott> <evincar> So I finished Gödel, Escher, Bach. I found it off-puttingly clever and absurdly long for the subject matter.
02:13:02 <elliott> it has no subject matter
02:13:15 <elliott> it is a bunch of confused rambling leading up to a stupid "BRAINS = RECURSION DOOD" non-conclusion
02:13:31 <elliott> also see http://esolangs.org/wiki/User:Chris_Pressey#G.C3.B6del.2C_Escher.2C_Bach:_An_Eternal_Golden_Braid :P
02:14:10 <elliott> it should have just been a book of achilles/tortoise dialogues :)
02:14:57 <MDude> Zombies sure do love recursion.
02:15:26 <zzo38> The dialogues is good, but so is the other things. I think it is very good although you would have to think of these things various things mentioned, see if you can figure it out or just have your own opinions about these things, you might agree/disagree whatever. But it has dialogues too and also other things, such as art and music.
02:16:00 <elliott> Death penalty could be debated in Commons after e-petition calls
02:16:00 <elliott> Leader of Commons says ignoring topics raised by new scheme allowing submissions would be unfair to public
02:16:04 <elliott> ah.
02:16:58 <zzo38> And even the various jokes, secret message and partially obscured references maybe you can find, and descriptions of typographical number theory and the author's own opinions of various ideas, and many wordplays, even a well annotated bibliography, etc. Is good!
02:17:13 -!- oerjan has quit (Quit: Good night).
02:46:07 -!- naryfa has joined.
02:46:19 <naryfa> helleaoh
02:47:25 -!- naryfa has left.
03:05:19 -!- azaq23 has quit (Ping timeout: 250 seconds).
03:15:08 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:17:23 <Sgeo> I think I'll just watch a blind LP of VVVVVV
03:17:29 <Sgeo> It sounds a bit difficult
03:28:04 <elliott> as opposed to playing it??
03:28:06 <elliott> s/??/?/
03:40:50 -!- MDude has changed nick to MSleep.
03:41:50 <elliott> Sgeo: update/
03:42:18 <monqy> im infer that blind lps of vvvvvv are hard to watch because they are painful because they are awful
04:00:03 -!- evincar has quit (Quit: Tomorrow comes a day too soon.).
04:08:52 <zzo38> ARMCUBLENS SCANBLUREM LAMNUBRECS
04:09:32 <zzo38> Are these real words?
04:09:48 <elliott> almost as real as word 'monqy'
04:14:05 -!- Patashu has quit (Ping timeout: 260 seconds).
04:19:09 <elliott> http://www.jwz.org/blog/2011/07/mork-keeps-on-giving-when-the-database-worms-eat-into-your-murder-trial/
04:19:11 <elliott> oh my god
04:19:45 <elliott> i cant stop laughing
04:36:22 <monqy> wow what
04:37:28 <monqy> [Mork] was developed ... with the aim of creating a minimal database replacement that would be reliable, flexible, and efficient, and use a file format close to plain text.
04:40:48 -!- lament has quit (Ping timeout: 276 seconds).
05:01:47 <elliott> monqy: oh man have you not
05:01:49 <elliott> read jwz's posts on it
05:02:00 <elliott> monqy: http://www.jwz.org/blog/2004/03/when-the-database-worms-eat-into-your-brain/
05:02:17 <monqy> i read that one (i followed the link from the one about murder trial)
05:02:19 <monqy> but
05:02:23 <elliott> read the comments too
05:02:24 <elliott> they're so amazing
05:02:45 <elliott> and the top of mork.pl
05:02:48 <elliott> just so amazing
05:03:17 <elliott> "In case the true comedy of this part isn't apparent: he's clearly going to all this trouble to hyper-compress this file, what with the lookup tables for every identifier, right? And then, when writing out strings, he doesn't write them as UTF-8: he writes them as raw wchar_t strings. If he was writing them as raw bytes, that would multiply his file size by either 2 or 4 (depending on how big wchar_t is -- but wait! He doesn't write them raw, he
05:03:17 <elliott> writes them A) hex encoded and B) with a $ before each hex byte! So even on 16-bit wchar_t systems, he's tripled the file size."
05:05:24 <elliott> monqy: but......................
05:05:56 <monqy> no others
05:05:59 <monqy> assuming they exist
05:07:01 <elliott> i odn't know if they do
05:07:05 <elliott> the .pl is a blog ,,, in itself,,,
05:07:12 <pikhq_> That's *horrifying*.
05:07:23 <monqy> it's great
05:07:45 <pikhq_> And they WONTFIX'd it? *shudder*
05:08:12 <pikhq_> There's so *many* alternatives to that shit that'd be better.
05:08:57 <pikhq_> Sqlite, Berkeley DB, CSV, JSON, *XML*, a shell script, a Brainfuck script, a Lazy K script, ...
05:09:12 <elliott> pikhq_: Mork is finally gone in Firefox seven
05:09:16 <elliott> It hasn't been used regularly since three
05:09:19 <elliott> (when Places came in)
05:09:22 <elliott> (thus SQLite)
05:09:29 <elliott> It's only in current versions as a converter, IIRC
05:09:43 <pikhq_> elliott: Praise be to (eventual) sanity.
05:09:52 <elliott> so, umm, does anyone know how this happened?
05:09:54 <elliott> http://arstechnica.com/tech-policy/news/2011/08/the-british-government-has-endorsed.ars
05:09:57 <elliott> s/ [dollar]//
05:11:51 <pikhq_> Probably Murdoch stopped paying for hookers for members of Parliament long enough for them to decide to act in the interests of the country.
05:14:23 <elliott> The government is not exactly on speaking terms with Murdoch right now :-P
05:16:32 <pikhq_> Ours decided to go back to ignoring Murdoch, preferring to take the economy hostage for a bit before going on vacation, leaving the Federal Aviation Administration not running for a month.
05:27:14 -!- pikhq_ has quit (Ping timeout: 240 seconds).
05:27:25 -!- pikhq has joined.
05:37:46 -!- TeruFSX has quit (Read error: Connection reset by peer).
05:48:25 <pikhq> Hmm. In theory, Linux could have as good backwards compatibility as Microsoft tends to, regarding ABI...
05:49:34 <pikhq> I wonder if it'd be worthwhile to try and set up a scheme whereby a modern distro could pull that off.
05:49:46 <pikhq> "Why yes, it runs Netscape! 0.93!"
05:51:16 <Lymee> pikhq, arn't the syscalls rather stable?
05:51:48 <pikhq> Lymee: Exceptionally.
05:52:06 <pikhq> Lymee: What you need to do to pull this off is all in userspace.
05:52:27 <elliott> elliott@katia:~$ wget ftp://archive.netscape.com/archive/navigator/3.04/shipping/english/unix/linux12/navigator_gold_complete/netscape-v304-export.x86-unknown-linux-elf.tar.gz
05:52:29 <elliott> let's do this shit
05:52:38 <elliott> uh oh, not resolving :/
05:52:38 <Lymee> How stable is glibc?
05:52:57 <pikhq> elliott: http://home.mcom.com/archives/
05:53:05 <elliott> Lymee: static linking
05:53:09 <pikhq> Lymee: Irrelevant; we're talking Linux libc.
05:53:10 <elliott> pikhq: oh, neat
05:53:27 <elliott> elliott@katia:~$ wget http://home.mcom.com/archives/3/netscape-v304-export.x86-unknown-linux-elf.tar.gz
05:53:50 <elliott> 0.93 is earliest Linux version, it seems
05:54:04 <elliott> sigh
05:54:07 <elliott> that netscape tgz is a tarbomb
05:54:34 <pikhq> With, apparently, a dependency on libc4 (and, hence, an a.out ld.so and the a.out binfmt module)
05:54:36 <Lymee> *boom*
05:54:51 <elliott> $ ./netscape
05:54:51 <elliott> bash: ./netscape: No such file or directory
05:54:52 <elliott> ur rite :(
05:55:03 <elliott> why would they even dynamically link it.
05:55:04 <elliott> so silly.
05:55:07 <elliott> oh hm
05:55:10 <elliott> libc.so.5 => not found
05:55:10 <elliott> libc.so.6 => /lib32/libc.so.6 (0xf7433000)
05:55:17 <elliott> ok, the only thing I'm missing is... libdl?
05:55:20 <elliott> libdl.so.1 => not found
05:55:21 <elliott> how weird
05:55:35 <pikhq> You'll want libc5. Which shouldn't be *too* hard to hunt down.
05:55:41 <elliott> pikhq: um but ldd says six is ok
05:55:42 <pikhq> Gentoo still packages it. :)
05:55:45 <elliott> i.e.
05:55:46 <pikhq> elliott: It lies.
05:55:46 <elliott> libc.so.5 => not found
05:55:47 <elliott> libc.so.6 => /lib32/libc.so.6 (0xf7433000)
05:55:48 <pikhq> Horribly.
05:55:48 <elliott> pikhq: :(
05:56:01 <fizzie> That's not "okay", that means "references to both".
05:56:05 <elliott> elliott@katia:~/netscape$ apt-cache search libc5
05:56:05 <elliott> elliott@katia:~/netscape$
05:56:08 <fizzie> Probably the .6 comes from some other library.
05:56:09 * elliott cries.
05:56:33 <pikhq> elliott: http://archive.debian.net/sarge/libc5
05:56:41 <elliott> sarge, nice
05:56:55 <elliott> http://archive.debian.net/sarge/i386/libc5/filelist
05:56:58 <elliott> ok, I'll just surgically extract it
05:57:09 <pikhq> http://archive.debian.net/sarge/ldso You might want this, too.
05:57:16 <elliott> oh goody, it's all fourohfoured
05:57:21 <elliott> I guess I need to find the archive server
05:57:22 <elliott> eurgh
05:57:41 <pikhq> http://archive.debian.org/debian/pool/main/libc/libc/libc5_5.4.46-15_i386.deb
05:57:56 <pikhq> And http://archive.debian.org/debian/pool/main/l/ld.so/ldso_1.9.11-15_i386.deb
05:58:00 <elliott> ah, thanks
05:58:35 <pikhq> Also, I suspect you could just barely *build* libc5.
05:58:54 <pikhq> Though you'd probably want to use GCC 3 to be safe.
05:59:58 <elliott> elliott@katia:~/netscape$ LD_LIBRARY_PATH=lib:usr/lib ./netscape
05:59:58 <elliott> bash: ./netscape: No such file or directory
05:59:58 <elliott> gah
06:00:03 <elliott> ldd says all its dependencies are filled
06:00:23 <pikhq> It's probably missing ld.so.
06:00:29 <pikhq> Why do you think I linked to it?
06:00:51 <elliott> I extracted that, too.
06:00:54 <elliott> libdl.so.1 => lib/libdl.so.1 (0xf7545000)
06:01:12 <pikhq> ... /lib/ld-linux.so.1?
06:01:59 <elliott> /lib/ld-linux.so.1 => /lib/ld-linux.so.2 (0xf773a000)
06:02:00 <elliott> hmm
06:02:03 <elliott> that's not thirty-two bit is it
06:02:10 <pikhq> That is 32 bit.
06:02:31 <pikhq> It's also not the requested dynamic linker.
06:02:43 <pikhq> Linux will try to execute /lib/ld-linux.so.1.
06:02:46 <pikhq> Directly.
06:03:14 <pikhq> Hence the "No such file or directory".
06:03:22 <elliott> $ LD_LIBRARY_PATH=lib:usr/lib /lib/ld-linux.so.2 ./netscape
06:03:22 <elliott> ./netscape: Symbol `_res' has different size in shared object, consider re-linking
06:03:22 <elliott> ./netscape: Symbol `_sys_errlist' has different size in shared object, consider re-linking
06:03:22 <elliott> Segmentation fault
06:03:24 <elliott> ah
06:03:51 <pikhq> You want http://archive.debian.org/debian/pool/main/l/ld.so/ldso_1.9.11-15_i386.deb
06:04:02 <pikhq> Specifically, /lib/ld-linux.so.1 from it.
06:04:09 <elliott> pikhq: Hey, you're in Colorado Springs, right?
06:04:12 <pikhq> Yes.
06:04:12 <elliott> And oh, didn't realise it had that.
06:04:21 <elliott> pikhq: Just was reminded of you by http://cdsmith.wordpress.com/2011/08/03/haskell-for-kids-introduction/
06:04:24 <elliott> ("You’re asking about the town for my class? Colorado Springs, CO.")
06:04:25 <fizzie> I wouldn't be surprised if you hit problems related to having some of your shared libs built on glibc (the new ones) and some code built on libc5, even if you got all that stuff to resolve.
06:04:40 <fizzie> I'd just try to do that sort of stuff in a completely-from-the-sarge-age chroot or something.
06:04:45 <elliott> elliott@katia:~/netscape$ LD_LIBRARY_PATH=lib:usr/lib lib/ld-linux.so.1 ./netscape
06:04:45 <elliott> Segmentation fault
06:04:46 <elliott> Welp.
06:04:59 <elliott> fizzie: sarge age is only 2005, you know; I'd want something much older.
06:05:19 <fizzie> Well, yes, but something based on libc5.
06:05:32 <pikhq> elliott: What's the list of libraries for that, anyways?
06:05:41 <pikhq> ...
06:05:55 <pikhq> LD_LIBRARY_PATH=$(pwd)/lib:$(pwd)/usr/lib might help.
06:06:40 <elliott> pikhq: Haha, really?
06:06:54 <elliott> Doesn't.
06:07:01 <pikhq> It was a thought.
06:07:08 <elliott> Only one thing for it... GDB!
06:07:27 <elliott> Program received signal SIGSEGV, Segmentation fault.
06:07:27 <elliott> 0xf7ff8cec in _dl_boot ()
06:07:27 <elliott> Oh well.
06:07:44 <fizzie> debootstrap in a 'potato' or something. (Note: not sure if it can actually install something that old.)
06:09:45 <elliott> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=112778
06:09:45 <elliott> Maybe.
06:10:46 <fizzie> Not sure how well its oldlibs/libc5 thing goes either, but even hamm is libc6-based. 'bo' has a libc5 in base, but...
06:11:40 <elliott> :-D
06:11:54 <fizzie> "So ok, I went to install Bo:# debootstrap bo /mnt/hda7 http://archive.debian.org/debian-archive/
06:11:54 <fizzie> E: No such script: /usr/lib/debootstrap/scripts/bo
06:11:54 <fizzie> Doh! I didn't know a script would be required. Suprisingly though, it appears that there are scripts that will let me go all the way back to Slink."
06:12:09 <elliott> fizzie: You want me to go for buzz, maybe? :-)
06:12:19 <fizzie> I don't think there's binaries for it in archive.debian.org.
06:12:27 <fizzie> But of course if you *want*...
06:13:16 <pikhq> How's 'bout Gentoo's package?
06:14:29 <elliott> "Ahh, I've found out that apt-get wasn't included until the release of Slink in '98! I may have to use a version of apt-get that is newer than the actual distro, depending on how far back I go. (think it'll werk?)"
06:14:47 <elliott> "Ok, I've downloaded the Bo (Peep) base (http://debian.crosslink.net/debian-archive/dists/Debian-1.3.1/main/disks-i386/current/base1_3.tgz)."
06:14:49 <elliott> THIS IS SO THRILLING.
06:15:16 <pikhq> http://gentoo-distfiles.mirrors.tds.net/distfiles/lib-compat-1.4.2.tar.bz2
06:15:29 <elliott> pikhq: Oh gawd. What is it.
06:15:33 <pikhq> libc5.
06:15:38 <elliott> :)
06:15:46 <elliott> I think the dependency of all my other libraries on glibc is breaking Netscape
06:15:50 <elliott> [asterisk]Netscape.
06:15:51 <pikhq> And an older ABI of stdlibc++.
06:15:52 <elliott> So I should really chroot.
06:16:16 <pikhq> Maybe you'll need lib-compat-loki-0.2, too?
06:16:41 <pikhq> No, wait, that relies on libc6...
06:18:40 <elliott> fizzie: this guy is my hero
06:20:39 <elliott> I wonder if it's been possible to run a sid installation that's upgraded automatically every single time sid was updated from the mid-nineties to present? pikhq?
06:20:40 <elliott> :p
06:20:44 <elliott> Any hard-breaking changes in sid ever?
06:21:09 -!- lament has joined.
06:21:35 <pikhq> Uh.
06:21:45 <pikhq> Define "hard".
06:22:33 <elliott> pikhq: As in "there is no way to recover a system in this state without basically reinstalling".
06:22:43 <elliott> Say, no way to fix it without replacing the dpkg/apt database.
06:22:51 <elliott> In a way that destroys all information about installed packages.
06:22:52 <pikhq> I don't think so.
06:23:10 <elliott> That's an impressive track-record, if sid has never actually broken every system.
06:23:12 <pikhq> However, I'd be willing to bet that it'll not boot on some updates.
06:23:38 <pikhq> sid is, contrary to popular belief, not where they actually do development.
06:24:00 <elliott> Yeah, I know.
06:24:00 <pikhq> It's the least stable testing branch.
06:24:24 <pikhq> Your concept of "hard-breaking" is just very, very hard to happen, anyways.
06:25:11 <elliott> Well, I mean, system-booting failures are unavoidable.
06:25:14 <pikhq> Since basically it just means "sh and dpkg stopped working".
06:25:22 <elliott> I'm just asking if you can maintain a sid system from the 90s to present without getting a hex editor and twiddling bits. :p
06:25:54 <pikhq> Though I'd be a little bit wary of the switch from bash to dash for /bin/sh.
06:26:14 <pikhq> Someone might have fucked up a boot script or /etc/profile or something. :P
06:30:20 <cheater> pikhq, did you get my msg?
06:30:58 <pikhq> cheater: What msg?
06:31:07 <cheater> about what is broken with awk
06:31:11 <pikhq> Oh.
06:31:36 <cheater> basically printf's field width specifiers end up counting bytes, instead of counting characters
06:31:51 <pikhq> I do believe gawk is fucked.
06:32:02 <cheater> so if you have a character that's two bytes, the field ends up being one character narrower
06:32:08 <cheater> that would be nice, but mawk does the same thing
06:32:23 <cheater> so it's some underlying mechanism, maybe they both use a system call that's fucked up on ubuntu
06:32:35 <pikhq> Same behavior on busybox awk...
06:32:52 <pikhq> And on busybox musl awk.
06:33:09 <cheater> i asked in #awk and some people have it working while some don't
06:33:22 <cheater> did you set your LC_ALL when invoking the code?
06:33:34 <pikhq> Yes, but it's irrelevant for musl.
06:33:47 <pikhq> The only locale on musl is C.UTF-8
06:35:19 <cheater> sweet
06:36:01 -!- zzo38 has quit (Remote host closed the connection).
06:36:22 <cheater> so i wonder, what could be broken?
06:36:28 <elliott> printf.
06:38:52 <pikhq> Yeah, it's probably just thinking char = character.
06:39:35 <cheater> Thus,
06:39:35 <cheater> printf("%'.2f", 1234567.89);
06:39:36 <cheater> results in "1234567.89" in the POSIX locale, in "1234567,89" in
06:39:36 <cheater> the nl_NL locale, and in "1.234.567,89" in the da_DK locale.
06:39:41 <cheater> that's from the printf manual
06:40:03 <cheater> $ LC_ALL=da_DK gawk 'BEGIN{printf("%'"'"'.2f\n", 1234567.89) }'
06:40:03 <cheater> 1234567.89
06:40:39 <pikhq> Orrrr it's not using C printf.
06:40:46 <cheater> yeah.
06:41:16 <cheater> HOWEVER, the fact that many awk's have the exact same problem makes me think it's some linux lib
06:41:30 <cheater> what OS have you been trying on pikhq?
06:49:29 <pikhq> cheater: Linux, with 2 different libcs.
06:49:42 <pikhq> One of which I can vouch for. :P
06:50:26 <cheater> i'm looking at the strace
06:50:38 <cheater> it doesn't seem to be using the OS printf
06:51:14 <cheater> wait, what's gconv? that's something to do iwth locale right?
06:52:26 <Sgeo> http://souleyedigitalmusic.bandcamp.com/album/pppppp-the-vvvvvv-soundtrack <3
06:53:58 <Sgeo> There is no game music that I dislike.
06:54:05 <Sgeo> Except for isolated songs in some games
06:58:30 <fizzie> It's glibc's bundled iconv implementation, isn't it?
06:58:56 <fizzie> Also strace will not show printf ever, since it traces syscalls, not library functions.
06:59:58 <fizzie> I would think awk uses its own printf, though. Otherwise it'd have to parse the format string to know which sort of types to pass to the libc printf.
07:00:12 -!- lament has quit (Ping timeout: 240 seconds).
07:01:09 <elliott> printf is totally a syscall doood.
07:03:02 <pikhq> Aren't all C functions?
07:05:57 <elliott> totes
07:44:57 <elliott> hmm... I wonder if there's a nice way to define isomorphisms in Haskell nicer than (a->b, b->a)
07:45:01 <elliott> (cat a b, cat b a) :-)
07:49:58 -!- GreaseMonkey has joined.
08:06:40 <elliott> ?pl \x -> let (x'r) = to g x in let (x'',r') = to f x in (x'', (r,r'))
08:06:40 <lambdabot> (line 1, column 11):
08:06:40 <lambdabot> unexpected "("
08:06:40 <lambdabot> expecting "()", natural, identifier or "in"
08:06:45 <elliott> argh
08:06:48 <elliott> ?pl \x -> let (x',r) = to g x in let (x'',r') = to f x in (x'', (r,r'))
08:06:49 <lambdabot> (line 1, column 11):
08:06:49 <lambdabot> unexpected "("
08:06:49 <lambdabot> expecting "()", natural, identifier or "in"
08:07:25 <elliott> ?pl \x -> (fst (to f (fst (to g x))), (snd (to g x), snd (to f x))
08:07:26 <lambdabot> (line 1, column 33):
08:07:26 <lambdabot> unexpected ","
08:07:26 <lambdabot> expecting variable, "(", operator or ")"
08:07:30 <elliott> ?pl \x -> (fst (to f (fst (to g x)), (snd (to g x), snd (to f x))
08:07:30 <lambdabot> (line 1, column 32):
08:07:31 <lambdabot> unexpected ","
08:07:31 <lambdabot> expecting variable, "(", operator or ")"
08:07:42 <elliott> ?pl \x -> (fst (to f (fst (to g x))), (snd (to g x), snd (to f x)))
08:07:42 <lambdabot> ap ((,) . fst . to f . fst . to g) (ap ((,) . snd . to g) (snd . to f))
08:07:52 <elliott> ugh
08:11:29 <elliott> ?pl \x -> here (to f x)
08:11:29 <lambdabot> here . to f
08:47:24 -!- cheater has quit (Ping timeout: 255 seconds).
08:57:55 <Lymee> ?pl (\x y z -> z z y z x)
08:57:55 <lambdabot> flip (flip . join . flip (join id))
08:58:01 <Lymee> ?pl (\x y z -> z $ z $ y $ z $ x)
08:58:01 <lambdabot> ((ap id . ap id) .) . flip (.) . flip id
08:58:12 <Lymee> ?pl (\x y z -> (z, z, y, z, x))
08:58:12 <lambdabot> flip (flip . join . flip (join (,,,,)))
08:59:32 -!- cheater has joined.
09:09:20 -!- zzo38 has joined.
09:10:21 -!- Taneb has joined.
09:10:26 <Taneb> Hello!
09:11:12 <elliott> hello
09:11:57 <Taneb> Thursday.
09:12:11 <Taneb> No need to get down on Thursdays.
09:18:59 <Taneb> God, how sensationalist can the Daily Mail get?
09:19:19 <Taneb> "MPs to vote on death penalty"
09:20:04 <elliott> haha
09:20:16 <elliott> They forgot "Yay!" :(
09:20:49 -!- FireFly has joined.
09:21:58 <Taneb> The cite an e-petition of all things
09:23:16 <Taneb> An e-petition that hasn't been released
09:30:51 <elliott> Oh, um, that's a credible story, apart from the "voting" bit.
09:30:59 <elliott> http://www.guardian.co.uk/world/2011/aug/04/death-penalty-e-petition-commons
09:31:25 <elliott> Looking up the blog mentioned, uh, correlates it: http://order-order.com/
09:32:18 <zzo38> Have you ever played pokemon card and the opponent has 1 side-card remain and you have 6 side-card remain you didn't knock out any of opponent's cards yet, but your opponent ran out of cards before either of you can pick up the side-cards?
09:32:32 <elliott> All the time.
09:34:27 <zzo38> Why do you think I played GENGAR [Lv38] on HAUNTER [Lv17] even though I had enough energy for NIGHTMARE but not for DARK MIND, and had no use for the CURSE power?
09:34:47 <Taneb> Because you like Geengar?
09:34:59 <Taneb> s/Geengar/Gengar/
09:35:09 <zzo38> Taneb: No, that isn't the reason. There is a better reason.
09:35:52 <Taneb> Because Gengar is more than twice Haunter's level
09:35:58 <zzo38> (Whether or not I like Gengar is not relevant. Also, this is a situation which has only happened to me once so far)
09:36:02 <Taneb> With no type-thingy baad thing
09:36:09 <Taneb> Weakness
09:36:49 <zzo38> Taneb: Level is not relevant in this game (except for distinguishing the cards). And both cards have the same Weak/Resist as each other.
09:38:38 <Taneb> Because you only have one card?
09:39:27 <zzo38> No. That isn't it either.
09:39:49 <zzo38> Do you want the text of those cards repeated?
09:40:46 <Taneb> Okay
09:42:07 <zzo38> GENGAR [Lv38] Stage 2 - HAUNTER E: { @ } HP: 8 W: - R: { # } RC: 1 - CURSE: Unless this card is sleep/confuse/paralyze, you can once per turn, move one damage from one of opponent's pokemon to another. - { @@@ } DARK MIND [3]: If opponent has bench pokemons, select one and does 1 damage to that card.
09:43:28 <zzo38> HAUNTER [Lv17] Stage 1 - GASTLY E: { @ } HP: 5 W: - R: { # } RC: 1 - TRANSPARENCY: When an attack affects this card while this card is not sleep/confuse/paralyze, you must toss a coin. If heads, this card is unaffected by the attack. - { @* } NIGHTMARE [1]: Defending pokemon is now sleeping.
09:43:54 <zzo38> (Note: The { * } means you can use any energy, while { @ } means requires only that kind of energy card)
09:44:23 <Taneb> I have absolutely no idea
09:45:26 <zzo38> Does this help? RECYCLE ENERGY Energy { rc } - Provides { * } energy. When discarded from play, return this card to your hand.
09:45:54 <zzo38> (Note: The { rc } is an abbreviation used when listing attached energy to a card. The * in a cost can use this kind or the basic energy, but the @ cannot use this)
09:46:27 <zzo38> Oops! I made a mistake. HAUNTER [Lv17] should be RC: 0
09:46:44 <zzo38> Now hopefully you know.
09:46:57 <zzo38> But still there are other strange things about the situation it happened in.
09:47:29 <Taneb> I can't work it out
09:47:43 <zzo38> OK then I will type one more card.
09:49:06 <zzo38> CLEFAIRY [Lv15] Basic E: { * } HP: 5 W: { # } R: { @ } RC: 1 - { * } WIND: Switch opponent's active pokemon card with one of their bench pokemons of your choice. - { ** } SHINE [1]: Defending pokemon is now asleep.
09:49:55 <Taneb> You were going to use the Haunter with the recycle energy to make the clefairy wipe out the opponent with wind
09:51:12 <zzo38> The wind does no damage, and the opponent's weak/resist is not relevant either. But, yes I did play an evolution card FOR THE SOLE PURPOSE OF INCREASING MY RETREAT COST. How often does *that* ever happen?
09:52:09 <Taneb> At least once?
09:53:55 <Taneb> brb
09:54:07 <zzo38> Yes it happened. Yet because of that, I won, even though the opponent never took any damage for the rest of the game. And, they had only 1 side-card remaining (they knocked out 5 of my pokemons) while I had 6 side-cards (I never knocked out any of their pokemons). I also had to guess the number of energy cards in my opponent's hand as it turned out.
09:55:22 <zzo38> Does this ever happen to you as strange as this situation is?
09:56:29 <zzo38> My opponent had rain dance and all that stuff. I still won, however.
09:57:24 -!- Phantom_Hoover has joined.
09:57:59 <zzo38> Now you play.
10:00:24 <Taneb> I once won a game of chess with pretty much a rook and a few pawns
10:00:33 <Taneb> When my opponent had most of their pieces left
10:03:01 <Taneb> If I made an Ook derivative, would anyone try to kill me?
10:03:12 <zzo38> Taneb: So you have done chess. I fail to remember which ways I have won and lost in chess. I am not a particularly good player at chess. I play much better at pokemon card.
10:03:45 <Taneb> My opponent had horrible pawn structure
10:04:02 <itidus20> what about 8 regular english words mapped onto the brainfuck instructions
10:04:58 <itidus20> such as: "You", "are", "a", "smelly", "piece", "of", "dog", "shit"
10:05:49 <monqy> this happens too much
10:05:50 <zzo38> Or: the is a and or but with what
10:05:57 <zzo38> And other words have no meaning
10:06:21 <itidus20> So I realized that teres another way it can go.
10:06:23 <monqy> itidus20: see the list on http://esolangs.org/wiki/Joke_language_list of brainfuck with translated instructions
10:07:35 -!- Patashu has joined.
10:07:39 <monqy> the most english of those looks like fuckfuck
10:08:24 <itidus20> hmm..
10:08:38 <itidus20> it would help if i actually knew brainfuck
10:08:42 <itidus20> which i don't xD
10:08:44 <monqy> it's simple
10:08:52 <itidus20> jumping to the page
10:11:07 -!- monqy has quit (Quit: hello).
10:11:12 <itidus20> is brainfuck self modifying or is the program separate from the tape?
10:11:45 <Taneb> The second one
10:11:54 <itidus20> i can't imagine why i assume it to be self modifying
10:23:36 <Phantom_Hoover> <itidus20> what about 8 regular english words mapped onto the brainfuck instructions
10:23:36 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
10:23:36 <Phantom_Hoover> DIE
10:23:39 <Phantom_Hoover> DIE DIE DIE
10:23:41 <Phantom_Hoover> DIEEEEEEEEEEEEEEEEe
10:24:44 <Patashu> self modifying brainfuck would be interesting
10:26:18 -!- GreaseMonkey has quit (Quit: The Other Game).
10:26:57 <itidus20> int a[100]; int p=0; char prog[100]; int prog_p=0; 1)p++; 2)p--; 3)a[p]++; 4)a[p]--; 5)cout<<a[p]; 6)cin>>a[p]; 7)if(!a[p])prog_p=next(prog,prog_p); 8)if(a[p])prog_p=prev(prog,prog_p); ... int next(int prog[100],int prog_p){while(prog[prog_p]!=']')prog_p++;return prog_p;} ... int prev(int prog[100],int prog_p){while(prog[prog_p]!='[')prog_p--;return prog_p;}
10:27:06 <itidus20> ok i think i understand it
10:29:25 <fizzie> That looks like a translation that's broken w.r.t. nested loops, on a quick glance.
10:29:42 <itidus20> yup... i didn't think of that >.<
10:29:54 <Patashu> you need a 'nestedness' counter
10:30:01 <itidus20> thats why noone can write an entire program in one chat post
10:30:04 <Patashu> lol
10:30:22 <Phantom_Hoover> itidus20, except lifthrasiir.
10:32:32 <itidus20> thanks for the feedbacks
10:33:21 <itidus20> seems that what went wrong is i misread "matching ]" as "next ]" kind of wishful thinking
10:34:30 <Phantom_Hoover> <Patashu> self modifying brainfuck would be interesting
10:34:39 <Phantom_Hoover> I suspect it has been done ~20 times.
10:36:08 <Patashu> yep
10:38:35 <NihilistDandy> How goes the BF battle?
10:38:50 <Phantom_Hoover> Battle?
10:38:52 <itidus20> brainfuck reminds me of those arcade machine initials entry systems
10:39:03 <Patashu> haha
10:39:36 <Patashu> it reminds me of a turing machine except more difficult to change state in
10:40:17 <NihilistDandy> Phantom_Hoover: oerjan and coppro were trying to prove that BF is Turing complete with only three unbounded cells
10:40:27 <Phantom_Hoover> Ah, right.
10:41:59 <itidus20> if i consider a NES controller. up = + down = - left = < right = > B = . A = , Start = [ Select = ]
10:42:17 <NihilistDandy> itidus20: You'll get a hand cramp if you consider it that way
10:42:38 <itidus20> Start and Select might be the other way around i can't be sure
10:42:51 <Patashu> hahahah
10:42:59 <Patashu> what do X and Y do then
10:43:07 <itidus20> that would be SNES
10:43:15 <Patashu> what about the square button?
10:43:17 <Patashu> 1 and 2?
10:43:17 <NihilistDandy> Patashu: SHORYUKEN
10:43:19 <Patashu> the white and black buttons?
10:43:23 <Patashu> what about this joystick here
10:43:28 <itidus20> uhmm
10:43:31 <Patashu> if I wave my arm like this what does that do
10:43:40 <NihilistDandy> USE THE SIXAXIS
10:44:26 <itidus20> the whole thing would be much more understandable without the [ and ]
10:44:35 <Taneb> What if you had a NES zapper?
10:44:35 <Patashu> um yeah
10:44:38 <Taneb> Or a power glove?
10:44:40 <Patashu> [ and ] are what make brainfuck brain fuck
10:45:18 -!- azaq23 has joined.
10:50:42 <fizzie> Yes, we should all just use Brainfuck with no loops, that's the most useful language ever.
10:51:03 <itidus20> so on looking at some page it says "Matching [] before execution is fastest,"
10:51:11 <Phantom_Hoover> That's... the closest thing to outright hostility I've ever seen fizzie get.
10:51:32 <fizzie> Phantom_Hoover: I think I've been more hostile, that was downright tame.
10:51:39 <Phantom_Hoover> fizzie, WHEN
10:51:44 <Phantom_Hoover> YOU ARE NEVER ANGRY
10:51:50 <fizzie> Phantom_Hoover: Perhaps it was just a dream.
10:52:09 <itidus20> what this tells me is that [ and ] could be rewritten as "JZ x" and "JNZ x" with all jump addresses precalculated
10:52:27 <Patashu> yup
10:52:28 <Patashu> that's the idea
10:52:49 <Patashu> brainfuck was designed as a language with an easy compiler
10:53:01 <itidus20> that is somewhat less of a brainfuck once you see it that way :-?
10:53:12 <fizzie> Even fungot does that much when it "compiles" to the bytecode format it actually executes, IIRC.
10:53:12 <fungot> fizzie: when a speaker transition occurs. if a criminal case can be revoked by directive. the recordkeepor for offices need not be stayed or vacated. the initiating speaker ceases to be
10:53:42 <itidus20> fizzie: im dumb so its ok.
10:54:43 <fizzie> Mostly I just wanted to get some chat from the bot.
10:54:51 <fizzie> ^style something-else-except-that-agora-nonsense
10:54:51 <fungot> Not found.
10:54:51 <itidus20> lol
10:55:02 <fizzie> ^style ct
10:55:03 <fungot> Selected style: ct (Chrono Trigger game script)
10:55:07 <fizzie> fungot: Can the sword alone stop?
10:55:08 <fungot> fizzie: i, myself, will bring an end to all. ghosts lurk in the ruins! the structural damage is severe. the tale? my, your majesty! and queen. he and a friend left on a journey 10. all functions are down... got the terra arm and the crisis arm! found a dreamstone?! then i'll repair the masamune!
10:55:14 <Patashu> lol
10:55:37 <fizzie> (It used to have -- maybe it still has -- a bug where it goes into "sword alone can't stop" loop occasionally.)
10:55:44 <Phantom_Hoover> fungot, are you going to start with the death threats again?
10:55:45 <fungot> Phantom_Hoover: yes, it's been awhile prometheus! ayla like crono! strong! what's the big deal? so what if we won a war out there! can't it see i love my daddy! the children are going!
10:55:55 <Phantom_Hoover> fungot, yay!
10:55:55 <fungot> Phantom_Hoover: are you a man, if there weren't evil in this kingdom to you! eat! fun!
10:56:05 <fizzie> That's one hyper bot.
10:56:15 <Phantom_Hoover> fungot, what shall we eat?
10:56:15 <fungot> Phantom_Hoover: it's time you jumped off this mortal coil...
10:56:20 <Phantom_Hoover> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
10:56:24 <fizzie> Heh.
10:56:29 <itidus20> my naive attempt at a bf interpreter which i posted before showed my initial ignorance of the [ and ] :D
10:56:38 <fizzie> `addquote <fungot> fizzie: i, myself, will bring an end to all.
10:56:38 <fungot> fizzie: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
10:56:42 <HackEgo> 560) <fungot> fizzie: i, myself, will bring an end to all.
10:57:11 <zzo38> Too much exclamation!
10:57:14 <fizzie> Sounds like a direct quote, but appropriate.
10:57:43 -!- azaq23 has quit (Quit: Leaving.).
10:57:54 <itidus20> fungot, what is your opinion of brainfuck?
10:57:54 <fungot> itidus20: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alon
10:57:59 <Phantom_Hoover> To all who may be confused, zzo38 is not a bot.
10:58:16 <Phantom_Hoover> fizzie, did anything come of Homestuck mode?
10:58:18 <fizzie> Hah, it still can't stop with the sword.
10:58:30 <itidus20> yeah.. it would be me who puts it into the loop
10:58:37 <Phantom_Hoover> ^style pa
10:58:37 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
10:58:43 <zzo38> Even more too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation! Too much exclamation!
10:58:56 <fizzie> Phantom_Hoover: I just crawled it into plaintext, then forgot about it. Should try it out, small though the dataset is.
10:59:05 <Phantom_Hoover> Hmm, have we ever given zzo38 a Turing test?
10:59:33 <Phantom_Hoover> fizzie, I suppose you didn't include the pesterlogs?
10:59:42 <fizzie> I did.
10:59:48 <Patashu> wait, 'small'?
10:59:49 <fizzie> Colors and all.
10:59:51 <Patashu> isn't homestuck huuuuuuuuuuuuuuuuge?
11:00:07 <fizzie> Patashu: Most of it is in images/Flash though. There's not *that* much plain text.
11:00:23 <Patashu> the pesterlogs go on for fucking ever
11:00:29 <Patashu> or at least now they do
11:01:26 <fizzie> Not really; a few thousand lines in total, is about all. I don't think there's usually more than a hundred lines/log.
11:02:23 <NihilistDandy> brb, installing Lion
11:03:00 <NihilistDandy> ~roar~
11:03:10 <Phantom_Hoover> fizzie, hmm, that seems hard to believe.
11:03:35 <Phantom_Hoover> There were tonnes and tonnes of long pesterlogs throughout act 5.
11:03:45 <fizzie> Phantom_Hoover: Well, I don't have the very latest strips, and it's been more text-heavy in the end than in the beginning.
11:04:08 <Phantom_Hoover> fizzie, I mean from Hivebent onwards.
11:04:51 <fizzie> Phantom_Hoover: I've fetched up to page 4673, which is like ~1300 pages less.
11:05:32 <Phantom_Hoover> That... would explain it.
11:05:56 <fizzie> The data was mostly to test the parsing script.
11:05:57 <Phantom_Hoover> You have to do this now, if only for the glory of all the pesterlogs being mixed together.
11:06:15 <Patashu> it would be some horrific blend of every troll, sprite and boy @.@
11:06:18 <Patashu> err
11:06:18 <Patashu> boy/girlk
11:06:22 <Patashu> human maybe
11:07:03 <fizzie> The current fungot code won't really do punctuation well, and lowercases everything, so it'd lose them quirks.
11:07:04 <fungot> fizzie: you got through the line, but then everyone just plays as tiger woods. inside, he found three computers each with their own game! the biggest of games. if we hit every stupid person, we'd never make it out of the picture, your collection of pac-man merchandise should fetch a tidy sum on ebay.
11:07:47 <Patashu> yeah
11:07:53 <Patashu> but you'd still see typing styles
11:08:15 <fizzie> Also we have the +c mode, so no colors. :/
11:08:20 <fizzie> 27194 lines of text when line-wrapped to 80 columns.
11:08:50 <fizzie> Lots of rather uninteresting ones. Like page titles, which are quite often just "==>".
11:09:06 <Patashu> I imagine it also has all the names before lines still
11:09:21 -!- NihilistDandy has quit (Quit: brb roaring).
11:09:29 <fizzie> Yes.
11:10:00 <fizzie> I can do a really-quick-and-dirty thing for my current data if you wish. Just don't expect anything impressive.
11:11:07 * Phantom_Hoover notes that Homestuck is starting to look like it's on the threshold of EoA5.
11:11:23 <Patashu> EoA5?
11:11:24 <Patashu> oh
11:14:19 <fizzie> 14216 "good" lines, I guess that's more than some of the existing sets.
11:14:57 <Phantom_Hoover> fizzie, DO IT
11:16:47 <fizzie> I'm doing it. I'm making this happen. (Or at least trying to. I can't quite recall how to use my scripts.)
11:22:27 <fizzie> Normally I'd try to use some fancy ^code magic to online-alter the styles list, but let's just do it the boring way this time.
11:22:28 -!- fungot has quit (Quit: OH NO).
11:23:02 <fizzie> Note that I haven't even tested the thing, and it might just be broken in a non-amusing way.
11:23:13 -!- fungot has joined.
11:23:15 <fizzie> ^style
11:23:16 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa speeches ss wp youtube
11:23:18 <fizzie> ^style homestuck
11:23:18 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
11:23:22 <fizzie> There you: go.
11:23:29 <Patashu> fungot: have you ever really gone so far etc
11:23:29 <fungot> Patashu: is it!!! 38'( tricked john into skipping on a groove its tracing ' round the earth, preparing for a symphony it fears impossible. so here are a couple things i have not even encountered the black king. before they were exiled by some means of dark prognostication and the advantages, to play pranks.
11:23:33 <Patashu> looks good to em
11:23:52 <Phantom_Hoover> fungot, oh my god this is amazing.
11:23:53 <fungot> Phantom_Hoover: like just reverse and/ or'ing the flower pot. the items they contain a viable in the redrom, and vice versa. over the last one. wait no, that just made you disappear" and stuff
11:25:52 <fizzie> fungot: Some day you'll learn how to use " properly. But that day is not today.
11:25:52 <fungot> fizzie: so that is like
11:26:14 <fizzie> fungot: It's not, like, tomorrow either.
11:26:14 <fungot> fizzie: so just to review, your schemes, convoluted. you are planning a heist in your underground hideout. implement nefarious as you might, you can't out troll me in these like
11:29:42 <Patashu> request
11:29:53 <Patashu> parse text from every sbahj panel/comic and add it in
11:30:01 <Phantom_Hoover> Patashu, not enough text.
11:30:33 <Patashu> in addition to what's already added for homestuck
11:32:13 <fizzie> I'm not sure such a small drop would really be that visible in the output.
11:32:22 <fizzie> Plus OCR. :/
11:32:50 <Phantom_Hoover> fungot, are you going to give me death threats on this setting as well?
11:32:50 <fungot> Phantom_Hoover: in a good way though because it is just glittery powder with no magical frivolity and practical japery. this one looks really old, perhaps an original printing. could a bunch of your bro's weird nude puppets strewn around haphazardly throughout different points in the kids' game session.
11:33:02 <Patashu> there's only finitely many of them
11:33:07 <Phantom_Hoover> fungot, how do you give death threats in a good way.
11:33:07 <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds? joining a particularly interesting series of really coy riddles about it and stop the thief in the throes of an unraveling alibi. " the massacre of syrs gnelph was not as written a message you got, my brother, and we just keep the safe or tub handy or that it is your backup hat. problem solved, you guess. at the last minute she flung through skaian defense.
11:33:51 <Phantom_Hoover> fungot, your hate for me is pure pumpkin seeds?
11:33:51 <fungot> Phantom_Hoover: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, li
11:34:14 <fizzie> Heh, another sword that can't stop.
11:34:22 <fizzie> I really should implement the backoffs.
11:34:29 <Patashu> what's with those repeats
11:34:29 <Phantom_Hoover> fungot, by any chance, can the sword alone not stop the linear concept?
11:34:30 <fungot> Phantom_Hoover: just as i was initially believed they were new additions. for that. busy
11:36:16 <fizzie> Patashu: See, it's because it's a variable-length n-gram model, and fungot's code always uses the longest-length n-grams there are in the model. So there's quite a few places where there's either a 1 or close-to-1 probability for always continuing with a particular word.
11:36:16 <fungot> fizzie: also it looks so 8ad! that is the case, it is a free card in your sylladex and let's see, who else would it be the same of you. business as usual for blue bloods.
11:37:10 <fizzie> The VariKN toolkit it uses to build the model calculates appropriate backoff weights, but my sampler doesn't use those.
11:38:22 <fizzie> ^source
11:38:22 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
11:38:34 <fizzie> As you can clearly see from lines 129-135, it just keeps going down that road.
11:38:47 <Patashu> Wow
11:38:50 <Patashu> It's in befunge @.@
11:40:14 <fizzie> That's the main reason I haven't really managed to motivate myself to fix the "unclosed ()s and ""s" problem. The Perl script I have for testing does those well, by keeping a stack of opened things and refusing mismatching paired delimiters.
11:41:34 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
11:44:38 -!- oerjan has joined.
11:46:12 -!- boily has joined.
11:46:32 -!- NihilistDandy has joined.
11:46:41 <NihilistDandy> And we're back
11:46:55 <oerjan> ayeeeeeeeeeeee
11:47:53 <Taneb> Today's IWC annotatin made me think
11:48:02 <Taneb> ANDREW HUSSIE IS COVERED IN BRAS
11:48:03 <Taneb> S
11:52:00 <NihilistDandy> I like the first way better
11:52:21 <NihilistDandy> Also, am I the only one who finds the phrase "covered in bees" hilarious?
11:52:37 <Taneb> No
11:52:53 <NihilistDandy> Good. Even the word "bees" can make me smile. It's the oddest thing.
11:53:10 <Taneb> I've got a great uncle who's a beekeeper
11:53:58 <fizzie> Colloquially known as "a beeper". (Not really.)
11:54:00 <NihilistDandy> I'll bet he laughs a lot
11:57:07 <oerjan> it's the bee's knees
12:01:43 <fizzie> Perhaps even the wasp's nipples.
12:02:13 <itidus20> god damnit... can't concentrate
12:02:37 <Taneb> What do you need to concentrate on?
12:02:48 <itidus20> ok i will show what i am doing
12:03:42 <itidus20> I am saying that there is an expression like: 4bitTruthTable 1bitVariable 1bitVariable .. examples are (AND 0 1) (XOR 1 1)
12:04:02 <itidus20> and 2bitTruthTable 1bitVariable , examples are (NOT 1)
12:04:18 <itidus20> These can be combined indefinitely: (AND (NOT 1) (AND 0 (AND 1 1)))
12:04:37 <Taneb> 0
12:04:55 <itidus20> and now im getting stuck trying to write actual rules to describe this.. such as: 4bitTruthTableExpression = 4bitTruthTable 1bitVariable 1bitVariable
12:05:11 <itidus20> and: ImmediateValue = 1bitVariable
12:05:43 <Taneb> Use prefixes
12:05:58 <Patashu> given everything can be described by NANDs
12:05:59 <Taneb> Values and expressions all have an additional 1
12:06:02 <Patashu> don't make it more complex than you need it to be
12:06:18 <Taneb> Brackets are 01 and 00
12:06:19 <itidus20> i don't have nearly enough experience with backus naur forms.. but.. basically i can't figure out the kinds of rules need to be made to express it
12:07:12 <itidus20> Like, I can't tell which direction these statements should be going
12:07:20 <Taneb> If the only expression allowed is NAND
12:07:37 <Taneb> AND 1 0 can be expressed as...
12:07:52 <Patashu> just as an example, don't actually do it O_O
12:08:07 <itidus20> I am saying that a truth table is 4bits, and that what the bits are doesn't actually matter
12:08:31 <Patashu> in EBNF you can't specify to have a certain number of tokens
12:08:34 <Taneb> NAND (NAND 1 0) (NAND 1 0)
12:08:37 <Patashu> only zero/one/many in branches and loops
12:08:54 <Taneb> Which becomes 0011100100111001
12:08:55 <Patashu> ensuring the number of tokens is correct is a job for something differen
12:09:32 -!- Phantom_Hoover has joined.
12:09:56 <itidus20> well.. i am looking for a way to describe the substitution rules
12:10:08 <Taneb> If we scrap prefixes and use letters for variables
12:10:23 <Patashu> how about lots and lots of regexes, will that work?
12:10:25 -!- myndzi has quit (Remote host closed the connection).
12:10:29 <itidus20> where "AND" would more formally look like 4bittruthtable0001
12:10:40 <itidus20> i don't want to compile it or anything
12:10:43 <oerjan> 10:03:01: <Taneb> If I made an Ook derivative, would anyone try to kill me?
12:10:48 -!- myndzi has joined.
12:10:55 <oerjan> go deeper, make a Cow derivative
12:11:09 <Taneb> But cows only say moo!
12:11:14 <Taneb> And they're scary!
12:11:33 <Taneb> And orang-utans say Eek! as well as Ook!
12:11:48 <fizzie> If you just want a BNF grammar for that sort of expressions, it sounds remarkably straight-forward. Something to the style of Exp ::= BinExp | UnExp | Immediate; BinExp ::= "(" BinOp Exp Exp ")"; UnExp ::= "(" UnOp Exp ")" and then suitable rules for UnOp/BinOp/Immediate.
12:11:48 <oerjan> OOK AY
12:12:11 <Patashu> it sounds like he doesn't want a grammar but substitution rules
12:12:18 <itidus20> well.. (NOT 1) = (2bitTT10 1) = (0)
12:12:27 <fizzie> Well, the original question sounded like a grammar.
12:12:31 <Patashu> yes
12:13:12 <itidus20> maybe i need more states
12:13:13 <Phantom_Hoover> Taneb, about that succession fort.
12:13:32 <itidus20> immediate0, immediate1, variable
12:13:47 <Patashu> just call it an identifier
12:13:58 <Patashu> an identifier is either 0, 1 or resolves to one of those two
12:14:23 <itidus20> im doing it to sort of concrete my ideas about term rewriting and truth tables :P
12:14:26 <Taneb> phantom_hoover: Dwarf Fortress?
12:14:31 <Phantom_Hoover> Taneb, of course.
12:14:37 <itidus20> but it sorta caught up to me
12:14:43 <Phantom_Hoover> Also, do you not have tab completion or something?
12:14:53 <Taneb> No
12:15:07 <Taneb> And I don't want it
12:15:17 <Phantom_Hoover> ...why?
12:15:23 <oerjan> itidus20: something like (2BitTT(a,b) 0) = a, (2BitTT(a,b) 1) = b ?
12:15:25 <Taneb> Because I'm not used to it
12:15:29 <Taneb> It would be weird
12:15:59 <fizzie> "Some of sirc's features: ircII-like -- with enhancements like built-in "tabkey" handling --"
12:16:16 <fizzie> (Going by realname; didn't want to CTCP.)
12:16:17 <Taneb> Tab makes "/m nickserv"
12:17:04 <fizzie> Just plain tab is often "message to last messaged-to person"; but are you saying "ph<tab>" also does that?
12:17:25 <Taneb> "/m nickserv"
12:17:34 <fizzie> That's one weird client.
12:17:59 <Taneb> I like it
12:18:40 <fizzie> I didn't used to use tab completion either, but it doesn't make the lack of it any less weird.
12:19:56 <itidus20> oerjan, well.. i am presupposing that "d = 2BitTT(a,b) c" means, if c = 0 then d = a, else if c = 1 then d = b
12:20:14 <Phantom_Hoover> Taneb, shouldn't that at least me /m nickserv identify?
12:20:23 <Taneb> No
12:20:30 <oerjan> itidus20: that was the idea
12:20:34 <itidus20> ok
12:20:41 <itidus20> i have it drawn up in a spreadsheet
12:20:43 <fizzie> Phantom_Hoover: Not if it's the "new message to the last person I was talking to" key, like tab-without-context often is.
12:21:19 <Patashu> has anyone made a language where you represent, in ASCII, a wired circuit?
12:21:20 <Patashu> so funge-ish
12:21:37 <Taneb> I thought Wierd, but that's not it
12:21:46 <itidus20> oerjan: i think my confusion might come from having not actually implemented anything
12:22:20 <oerjan> itidus20: if you renamed it to tt2Bit, you could even make it in haskell
12:22:42 <oerjan> tt2Bit (a,_) 0 = a; tt2Bit (_,b) 1 = b
12:22:44 <itidus20> i think i could remove the word bit also
12:22:51 <Taneb> Phantom_Hoover: What about the bloodline game?
12:23:21 <fizzie> Wierd and Rail both do the "codeflow along explicitly drawn paths" thing -- incidentally, I rather like Rail -- but it's not really circuit simulation if that's what you're looking for.
12:23:26 <Phantom_Hoover> Taneb, well, elliott expressed enthusiasm; it might be worth trying.
12:23:27 <itidus20> oerjan: do you like it? :D
12:24:52 <Taneb> Phantom_Hoover: Who wants to start?
12:24:55 <fizzie> Patashu: Circute is an ASCII-represented CA that looks like NAND-based circuits.
12:25:13 <Phantom_Hoover> Taneb, I suspect it'd have to be you, since I've only been playing for about 2 days.
12:25:17 <itidus20> the elegance of your code suggests i really need to learn haskell
12:25:32 <fizzie> Patashu: It's slightly like Wireworld-in-ASCII.
12:27:08 <oerjan> itidus20: haskell is pretty succinct
12:28:20 <Patashu> yeah it's p. close
12:28:30 <oerjan> itidus20: this sounds a little bit obvious to me, but then it's been at least 25 years since i learned about truth tables :P
12:30:41 <fizzie> > let tt4Bit (a,_,_,_) 0 0 = a; tt4Bit (_,b,_,_) 0 1 = b; tt4Bit (_,_,c,_) 1 0 = c; tt4Bit (_,_,_,d) 1 1 = d; and = tt4Bit (0,0,0,1); or = tt4Bit (0,1,1,1) in and 1 (or 1 0)
12:30:42 <lambdabot> 1
12:31:49 <Taneb> That's...
12:31:57 <oerjan> > and [True, or [True, False]]
12:31:57 <Taneb> Short.
12:31:58 <lambdabot> True
12:33:25 <oerjan> @src Ix
12:33:25 <lambdabot> class (Ord a) => Ix a where
12:33:26 <lambdabot> range :: (a,a) -> [a]
12:33:26 <lambdabot> index :: (a,a) -> a -> Int
12:33:26 <lambdabot> inRange :: (a,a) -> a -> Bool
12:33:26 <lambdabot> rangeSize :: (a,a) -> Int
12:33:51 <itidus20> so the main idea of it is for things like trying to get through my head what: tt4Bit(1,1,0,1) it_is_raining the_ground_is_wet , really means
12:35:18 <fizzie> @hoogle Bool -> Bool -> Bool
12:35:19 <lambdabot> Prelude (&&) :: Bool -> Bool -> Bool
12:35:19 <lambdabot> Prelude (||) :: Bool -> Bool -> Bool
12:35:19 <lambdabot> Data.Bool (&&) :: Bool -> Bool -> Bool
12:35:25 <fizzie> Aw, no implication there.
12:35:39 <Phantom_Hoover> http://en.wikipedia.org/wiki/Interpretations_of_2001:_A_Space_Odyssey
12:35:45 <Phantom_Hoover> "Wheat often uses anagrams as evidence to support his theories. For example, of the name Heywood R. Floyd, he writes "He suggests Helen - Helen of Troy. Wood suggests wooden horse - the Trojan Horse. And oy suggests Troy." Of the remaining letters, he suggests "Y is Spanish for and. R, F, and L, in turn, are in ReFLect." Finally, noting that D can stand for downfall, Wheat concludes that Floyd's name has a hidden meaning
12:35:45 <Phantom_Hoover> : "Helen and Wooden Horse Reflect Troy's Downfall"."
12:36:04 <Phantom_Hoover> Best interpretation.
12:36:14 <oerjan> > let tt4bit = flip $ curry (flip (!!) . index ((0,0),(1,1))) in or = tt4bit [0,1,1,1]; and = tt4bit [0,0,0,1] in and 1 (or 1 0)
12:36:15 <lambdabot> <no location info>: parse error on input `='
12:36:18 <NihilistDandy> fizzie: You can define implication in terms of not and or, IIRC
12:36:20 <oerjan> wat
12:36:29 <oerjan> > let tt4bit = flip $ curry (flip (!!) . index ((0,0),(1,1))); or = tt4bit [0,1,1,1]; and = tt4bit [0,0,0,1] in and 1 (or 1 0)
12:36:31 <lambdabot> No instances for (GHC.Num.Num [t1], GHC.Arr.Ix [t1])
12:36:31 <lambdabot> arising from a use ...
12:36:35 <fizzie> NihilistDandy: Sure, but you can define everything in terms of nand, yet it provides and/or.
12:36:41 <Phantom_Hoover> NihilistDandy, a → b == b \/ ¬a.
12:36:46 <itidus20> but what exactly is implication?
12:36:53 <NihilistDandy> Phantom_Hoover: That's the one
12:36:54 <Phantom_Hoover> itidus20, see above.
12:37:21 <oerjan> :t flip $ curry (flip (!!) . index ((0,0),(1,1)))
12:37:22 <lambdabot> forall a b t. (Num t, Num a, Ix t, Ix a) => a -> t -> [b] -> b
12:37:32 <NihilistDandy> I could never remember the proposition that gets the not :D
12:38:08 <oerjan> :t flip (!!) . index ((0,0),(1,1))
12:38:08 <itidus20> the example i am looking at says if it is raining then the ground is wet
12:38:08 <lambdabot> forall b t t1. (Num t, Num t1, Ix t, Ix t1) => (t, t1) -> [b] -> b
12:38:29 <NihilistDandy> itidus20: If 2+2 = 5, I am a paper cup
12:39:39 <Phantom_Hoover> itidus20, note that the version of implication I defined is not a terribly intuitive one.
12:39:52 <itidus20> i suppose that could be phrased like: int ground_is_wet = check_if_it_is_raining();
12:40:09 <Phantom_Hoover> itidus20, eeeewwwwwwwwwwwwww
12:40:37 <itidus20> otherwise i see nothing.
12:40:51 <itidus20> it just won't stick for me in my head
12:40:53 <oerjan> ?pl \a b c -> f (b,c) a
12:40:53 <lambdabot> flip (flip . (f .) . (,))
12:41:27 <oerjan> gah
12:41:33 <Phantom_Hoover> itidus20, you might want to read up on the Curry-Howard isomorphism.
12:41:47 <fizzie> ?pl \a b -> burger b a
12:41:48 <lambdabot> flip burger
12:41:52 <fizzie> "Heh heh."
12:42:05 <NihilistDandy> hehe
12:42:26 <itidus20> the implications are the section of the 4bit truth tables which seem to have never actually been named.. never actually been used
12:42:26 <fizzie> (For some reason "flipping burgers" pops into my head every time I see one of those flip sequences.)
12:42:41 <itidus20> at least not in imperative languages
12:43:05 <oerjan> > let tt4bit = curry . flip $ flip (!!) . index ((0,0),(1,1)); or = tt4bit [0,1,1,1]; and = tt4bit [0,0,0,1] in and 1 (or 1 0)
12:43:06 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `[a1]'
12:43:06 <Taneb> There's a World Microsoft Excel championship1?
12:43:23 <oerjan> :t curry . flip $ flip (!!) . index ((0,0),(1,1))
12:43:24 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `[a1]'
12:43:24 <lambdabot> In the first argument of `flip', namely `(!!)'
12:43:24 <lambdabot> In the first argument of `(.)', namely `flip (!!)'
12:43:46 <fizzie> oerjan: Are you *entirely* sure you're still making the original more clearer by all this.
12:44:03 <oerjan> no?
12:44:17 <itidus20> everyone loves logical and,or,not,xor ... and their counterparts nand nor xnor... but i can't help thinking that the implications and non-implications seem to have been deemed useless for languages like C
12:44:56 <fizzie> The logical xor isn't really that often used; they didn't even bother with a non-bitwise operator for it in C. (Perhaps because it couldn't be made short-circuiting like and/or.)
12:45:30 <oerjan> well which means the bitwise one works non-bitwise too
12:45:48 <fizzie> oerjan: Not when the values aren't 0 or 1.
12:45:57 <fizzie> The other logical operators autobooleanize.
12:46:03 <oerjan> oh hm
12:46:19 <fizzie> 1 && 2 == 1, but 1 ^ 2 == 3.
12:46:35 <NihilistDandy> fizzie: What's unclear?~
12:46:38 <fizzie> Of course you can just !!1 ^ !!2 == 0, but...
12:46:50 <itidus20> ah so its this autobooleanizing property
12:47:08 <oerjan> <fizzie> Aw, no implication there. <-- you can use <=
12:47:09 <fizzie> That's the other main difference between & and &&; they could've done that for ^^.
12:48:00 <Phantom_Hoover> oerjan, brilliant.
12:48:53 <fizzie> oerjan: "But the arrow's pointing at the wrong direction then."
12:49:32 <oerjan> always a critic
12:49:52 <itidus20> what does an implication truthtable actually determine?
12:50:49 <itidus20> i can see that "it's raining" can be 0 or 1...
12:51:04 <itidus20> a person looks around and decides.. its_raining = 1
12:51:13 <Patashu> when A is on, it fixes B. when A is off, B can be anything
12:52:07 <Taneb> itidus20: But it's /not/ raining!
12:53:47 <oerjan> > let tt4bit = curry . flip (flip (!!) . index ((0,0),(1,1))); or = tt4bit [0,1,1,1]; and = tt4bit [0,0,0,1] in and 1 (or 1 0)
12:53:49 <lambdabot> 1
12:53:51 <oerjan> yay
12:54:17 <oerjan> so clear and obvious
12:54:28 <itidus20> is implication actually useful in code?
12:54:34 <fizzie> oerjan: A grand victory for pointlessness.
12:54:56 <itidus20> i struggle to see myself ever actually using implication on 2 bits
12:55:01 <NihilistDandy> itidus20: Maybe if you use Agda
12:55:12 <NihilistDandy> ~
12:55:59 <itidus20> e.g.: if (a IMPLIES b) blah();
12:56:01 <oerjan> itidus20: it's probably there, just written in a different way with branches instead
12:56:02 <Patashu> hmm, how can I represent logic gates and flip-flops with single ASCII characters...
12:56:04 <fizzie> Also you might by accident have a need for the "!a || b" conditional, with which it is equivalent to, in which case you could use a hypothetical implication operator to confuse people.
12:56:31 <oerjan> and no one thinks of using an implication operator for it
12:56:50 <itidus20> does the cpu support it in an efficient way?
12:56:53 <Patashu> I tyhought about using the same symbols as in C, but | is the up-down wire so it would be confusing
12:56:56 <itidus20> im guessing not
12:57:03 <Patashu> lol, a bitwise implication operator
12:57:28 <fizzie> Patashu: Doesn't some BASIC have that?
12:57:37 <Patashu> really?
12:57:44 <fizzie> I think I saw one with almost the full set.
12:57:50 <itidus20> i suspect that there would be no direct implication operator in the x86 instruction set
12:58:00 <fizzie> Patashu: QBASIC, for example: http://zem.fi/~fis/qbc.html#QEw4MDli
12:58:02 <itidus20> which makes it kind of pointless
12:58:07 <fizzie> The IMP operator.
12:58:11 <itidus20> :o
12:58:14 <fizzie> Haven't seen it used ever.
12:58:21 <oerjan> <fizzie> Of course you can just !!1 ^ !!2 == 0, but... <-- !1 == !2 is shorter
12:58:22 <itidus20> ok sweet
12:58:23 <Patashu> wow
12:58:25 <Patashu> EQV, IMP...
12:58:39 <Patashu> but no NAND?
12:58:41 <itidus20> ya.. see.. i am digging in no mans land
12:58:41 <Patashu> ;_;
12:58:51 <itidus20> a tru pioneer
12:59:27 <itidus20> so.. you know what this means?
12:59:49 <itidus20> a language in which the only boolean operator is the implication
13:00:06 <Patashu> it's equivalent to NAND
13:00:08 <Patashu> so should be doable
13:00:19 <Patashu> well hmm
13:00:22 <Patashu> can you make NOT with implies?
13:00:34 <Patashu> I'm not sure if you can
13:00:40 <fizzie> I don't think it is.
13:00:44 <NihilistDandy> It is not
13:00:47 <fizzie> http://en.wikipedia.org/wiki/Functional_completeness#Minimal_functionally_complete_operator_sets
13:00:47 <itidus20> a language is still a language even if its not turing complete
13:00:50 <fizzie> Minimal sets.
13:01:05 <Taneb> I've found a location for the bloodline game
13:01:33 <itidus20> i have a soft spot for this IMP
13:02:20 <oerjan> <itidus20> what does an implication truthtable actually determine? <-- well it's called "material implication". i find that it helps to see it as an implication if it is used with quantifying over a whole bunch of things. "forall x. P(x) or not Q(x)" feels more obviously like an implication that P(x) implies Q(x) than when you are looking at just one case.
13:02:39 <oerjan> er wait
13:02:50 <Phantom_Hoover> Taneb, is that location as in paradise or location as in Headshoots?
13:02:53 <oerjan> *forall x. Q(x) or not P(x)
13:03:01 <Taneb> No, Temperate
13:03:12 <Taneb> With good resources
13:03:18 <NihilistDandy> Temperate Haskell
13:03:32 <Phantom_Hoover> itidus20, another, Curry-Howardy way of viewing it, is that a → b means that if you have a proof that a is true, you can turn it into a proof that b is true.
13:05:10 <itidus20> ok
13:05:27 <oerjan> <Patashu> can you make NOT with implies? <-- no. this is the point where i use to link to http://en.wikipedia.org/wiki/Post_lattice which has all the information for such questions, extremely technically.
13:06:44 <Taneb> Found a better location
13:06:52 <oerjan> to be precise, implication gives T_1^infinity, NOT gives UD, and the latter is not directly beneath the former.
13:07:51 <oerjan> in fact the only thing they're both under is the top T, showing that _together_ they generate everything.
13:08:34 <oerjan> (diagram near the middle)
13:09:08 <itidus20> ok i found a possible use for it: if ( x > 50 IMP flag ) printf("X is larger than 50\n");
13:09:10 <oerjan> (and table to the left of it)
13:09:28 <itidus20> or.. no wait i didn't :-s
13:09:32 <Taneb> Even better location
13:09:35 <Taneb> Warm
13:09:36 <itidus20> i didn't at all..
13:09:37 <Taneb> Woorland
13:09:46 <Taneb> s/r/d/
13:09:54 <Taneb> Moderate vegetation
13:09:55 <Taneb> Calm
13:09:56 <Taneb> Brook
13:09:58 <Taneb> Clay
13:10:01 <Taneb> Some soil
13:10:07 <Taneb> Shallow metals
13:10:10 <Taneb> Deep metals
13:10:13 <Taneb> Flux stone
13:10:15 <Taneb> Spam
13:10:20 <Taneb> Flux stone and spam
13:10:28 <Taneb> Spam and flux stone
13:10:37 <Taneb> Spam and flux stone and spam
13:10:40 <oerjan> (btw T_1^infinity is the rightmost dot, UD is in the middle, third from bottom)
13:10:41 <Taneb> Spam and spam
13:10:44 <Taneb> I'll stop
13:11:08 <NihilistDandy> And spam
13:11:43 <Phantom_Hoover> <Patashu> can you make NOT with implies?
13:11:52 <Phantom_Hoover> You can with nonimplication and constants.
13:12:51 <fizzie> itidus20: Here's one: if (quiet IMP critical) log("thing"); that's equivalent to if (!quiet || critical) log("thing"); i.e. "log if we haven't been asked to be quiet, or if the situation is critical", and it's much clearer when written without the IMP in there.
13:13:23 <oerjan> Phantom_Hoover: nonimplication is dual to implication, T_0^infinity :)
13:13:50 <itidus20> lol
13:14:12 <oerjan> and the constants are down near the bottom at UP_0 and UP_1
13:16:30 <Taneb> Can I found #esoteric-dwarf-fortress ?
13:16:46 <Phantom_Hoover> Taneb, nah, just use -minecraft.
13:22:48 <oerjan> Phantom_Hoover: incidentally iirc, satisfiability of your boolean circuits is NP-complete precisely when your building blocks can construct nonimplication
13:23:11 <Phantom_Hoover> In Minecraft?
13:23:11 <oerjan> that's a bit vague iirc though
13:23:24 <oerjan> O_o
13:23:31 <Phantom_Hoover> Building blocks?
13:23:37 <Phantom_Hoover> Oh, wait.
13:23:40 <Phantom_Hoover> That was a general term.
13:23:56 <oerjan> Phantom_Hoover: it was in relation to <Phantom_Hoover> You can with nonimplication and constants.
13:24:08 <Phantom_Hoover> Yeah.
13:25:25 -!- BeholdMyGlory has joined.
13:25:33 <itidus20> ok i think i get it.. since IMP can be constructed from other things, and is basically a specialization of OR there is not any hidden use for it
13:26:37 <itidus20> at least in terms of imperative languages
13:27:04 <Phantom_Hoover> itidus20, well, as oerjan said, it's not very intuitive unless you're working with quantifiers.
13:41:29 <Patashu> Okay, I came up with a first draft spec for the 'ascii circuitry' language
13:42:58 <Patashu> What should I call it...
13:43:41 <Taneb> ASCII circuitry?
13:43:43 <Taneb> Togic?
13:44:14 <Patashu> I'm wondering if I should make a befunge pun or if it would be unwarranted
13:49:01 <NihilistDandy> Patashu: bffunge
13:54:08 <NihilistDandy> http://i.imgur.com/mwOmg.jpg
14:00:45 <Taneb> Done that
14:02:04 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:22 <Patashu> kay http://esolangs.org/wiki/Wirefunge
14:10:30 <Patashu> hmm, I just realized it needs a way to exit
14:12:14 <Patashu> and now it has one \o/
14:12:14 <myndzi> |
14:12:15 <myndzi> /<
14:13:58 <fizzie> Not sure how "funge" that is.
14:14:08 <Patashu> me neither, but I can't think of a snazzy name that's not a pun
14:14:09 <Patashu> can you?
14:14:12 <Patashu> I'll happily rename it
14:14:24 <fizzie> I'm no good with names, unfortunately.
14:15:37 <fizzie> http://www.esolangs.org/wiki/Category:Two-dimensional_languages -- that's quite a big category.
14:16:27 <fizzie> Any pun name you make can't be worse than "Sir. Cut".
14:18:45 <Patashu> I like Sir. Cut
14:25:21 -!- copumpkin has joined.
14:25:22 -!- lament has joined.
14:59:34 -!- cheater has quit (Ping timeout: 255 seconds).
15:08:26 -!- oerjan has quit (Quit: Later).
15:12:14 -!- cheater has joined.
15:21:24 -!- CakeProphet has joined.
15:23:03 -!- MSleep has changed nick to MDude.
15:24:26 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:27:54 -!- Taneb has quit (Quit: Walking dog).
15:30:30 -!- Gregor has set topic: Enjoy being locked in your #matrixofsolidity | http://codu.org/logs/_esoteric/.
15:30:50 -!- Gregor has set topic: Enjoy being locked in your matrix of solidity | http://codu.org/logs/_esoteric/.
15:34:40 -!- elliott has quit (Ping timeout: 255 seconds).
15:36:26 <itidus20> with implications, i am trying to figure out why it is not the case that i can say if (it_is_raining), then render_my_carpet_as_I_am_indoors();
15:38:04 <itidus20> i guess the problem is I can't say if (A) then B;
15:38:22 <itidus20> I mean: if (A) then B();
15:40:21 <itidus20> which could also look like: if (A()) B();
15:42:52 <itidus20> ok ill drop it... i have had all the explanations..
15:43:09 <Phantom_Hoover> itidus20, what are you going on about?
15:43:18 <Phantom_Hoover> You can say that; you just said it.
15:45:37 <CakeProphet> itidus20: what?
15:46:08 <CakeProphet> what language, what context?
15:46:27 <itidus20> is it that the typical programming line: "if (conditional) then statement();" is not relevant to material implication?
15:46:53 <CakeProphet> oh, do you mean logical implication?
15:47:02 <CakeProphet> a conditional statement in logic?
15:47:07 <CakeProphet> yes they're different.
15:47:09 <itidus20> seems like they have left out the words "do"
15:47:13 <CakeProphet> in most languages that I know of
15:47:18 <itidus20> if (X) then do Y
15:47:39 <CakeProphet> well yes, that's because in logic a conditional does not specify a procedure, it is a statement of truth or false.
15:47:51 <MDude> SOme languages includ that.
15:48:08 -!- elliott has joined.
15:48:12 <MDude> It's just that a lot of them leave it out because an aversion to making poeple type letters.
15:48:33 <itidus20> it's an implicit "do" which can leave uneducated ones like me a bit peeved
15:48:37 -!- cheater has quit (Ping timeout: 255 seconds).
15:48:53 <MDude> Yes.
15:49:13 <MDude> For similar reasons, most languages don't have "set" before assignment.
15:50:11 <CakeProphet> P -> Q is equivalent to ~P v (P ^ Q) where v is or and ^ is and
15:51:00 <MDude> Really, impliation seemed ot be kind of an odd name.
15:51:23 <itidus20> i thought it was (~P) v Q from my researching
15:51:23 <MDude> When it's not true, it's obviously because the implication is proved false.
15:51:30 <CakeProphet> I don't know of a language whose conditional statement works like that, because the conditional is either returning some useful data value, or is an imperitive control flow statement that specifies a procedure and not a logical assertion.
15:52:11 <MDude> But when it's true, it's not really shown to be true, only not shown to be false.
15:52:27 <CakeProphet> itidus20: yes that's equivalent actually.
15:52:35 <itidus20> ok
15:53:07 <CakeProphet> well, no... it's not.. :P
15:53:11 <CakeProphet> yours is right. My mistake.
15:53:29 <itidus20> i have been studying this for hours so i am bound to have it right
15:53:31 <CakeProphet> ......er, no, they actually are equivalent nevermind. :P
15:53:39 <MDude> Welll I tihnk they are the same, in binary lgic.
15:53:51 <CakeProphet> lol. tired, as usual.
15:54:12 <MDude> If P is not false, it is true.
15:54:26 <CakeProphet> itidus20: so anyways a conditional in a proof in a conditional in a program as different, more or less. I ca
15:54:34 <CakeProphet> n't really formally show why that is though...
15:55:06 <CakeProphet> .... s/in/and/ s/as/are/ what the hell.
15:55:15 <CakeProphet> this is a sign that I should sleep, clearly.
15:55:48 <MDude> Well I know that in a program, the statement part of the conditional isn't used to determine wheter the condition it's in is met.
15:56:22 -!- ais523 has joined.
15:56:37 <MDude> Though of course you could make it that way if you wanted.
15:56:41 <CakeProphet> even conditional expressions, such as the ones in functional languages and some procedural languages, are different. They require an else operand, which is not something that makes sense with the logical conditional.
15:58:21 <CakeProphet> > let (-->) a b = not p || q in if False --> True then "this is not making a truth assertion, but the logical conditional is" else ""
15:58:21 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
15:58:22 <lambdabot> against inferred type ...
15:58:50 <CakeProphet> > let (-->) a b = not a || b in if False --> True then "this is not making a truth assertion, but the logical conditional is" else ""
15:58:51 <lambdabot> "this is not making a truth assertion, but the logical conditional is"
15:59:56 <CakeProphet> so yeah, I probably haven't cleared anything up, but oh well.
16:00:52 -!- cheater has joined.
16:03:18 -!- cheater has quit (Excess Flood).
16:04:37 -!- cheater has joined.
16:05:24 <Phantom_Hoover> <CakeProphet> P -> Q is equivalent to ~P v (P ^ Q) where v is or and ^ is and
16:05:26 <Phantom_Hoover> No, it's not.
16:06:45 -!- lament has quit (Ping timeout: 260 seconds).
16:07:46 -!- cheater has quit (Excess Flood).
16:09:34 <CakeProphet> > (\p q -> not p || (p && q)) <$> [True, False] <*> [True, False]
16:09:35 <lambdabot> [True,False,True,True]
16:09:57 -!- cheater has joined.
16:09:57 -!- cheater has quit (Excess Flood).
16:10:03 <CakeProphet> is that not the truth table for a condition?
16:11:47 -!- cheater has joined.
16:15:14 <itidus20> ok so.. if (it_is_raining) render_rain(); if (ground_is_wet) render_mud(); if (!(!it_is_raining || ground_is_wet)) error();
16:15:50 <itidus20> i am trying to imagine practical uses for implications within a program
16:16:48 <ais523> hmm, I completed VVVVVV (with all trinkets and all map) in 3 hours 58 minutes the first time
16:16:52 <ais523> it seems a little short as games go
16:17:04 <CakeProphet> when you want something to occur when one thing implies another or you also want the same thing to happen when the condition is false and thus irrelevant, or something.
16:17:08 <CakeProphet> anyways, it's not common to use.
16:17:28 -!- Nisstyre has quit (Ping timeout: 250 seconds).
16:17:43 <CakeProphet> basically you would use it wherever you have the condition ~p v q
16:18:09 <CakeProphet> if something fits that pattern, it could be rewritten as implication, if the language supports it or if it's defined somewhere.
16:18:14 <itidus20> it would be a way for the program to catch out a logical incongruity
16:18:24 <ais523> elliott: someone else I've been talking to online a lot spells eliot with one l and one t, it's disconcerting after getting used to the spelling of your name
16:19:52 <CakeProphet> also ~p -> q would be the same thing as using ||
16:21:51 <CakeProphet> if a is not a prime number, then it is a composite number.
16:22:01 <CakeProphet> thus, a is a prime number or a composite number.
16:22:29 <itidus20> like... void Implies(int a, int b) { if (!(!a || b)) error(); } ... Implied(hp == 0, gameover); Implied(time_remaining == 0, gameover);
16:22:58 <itidus20> i'm really stretching there though
16:23:25 <CakeProphet> also you capitalized Implies which kind of scares me a little.
16:23:40 <itidus20> i spelled it with an s instead of a d also
16:23:56 <CakeProphet> I live in a safe world of variable naming schemes and you brought me out of my safety box.
16:24:04 <CakeProphet> it's a scary world out here.
16:24:13 * variable looks at CakeProphet
16:24:23 <CakeProphet> aaaaaah!
16:24:28 <itidus20> at least it's not basic.. where ABC == Abc = abc
16:24:30 * CakeProphet hides under pillow.
16:25:09 <CakeProphet> so the contents of the all lowercase variable modifies the result of testing the upper case variable with the title case variable?
16:25:12 <CakeProphet> those are some odd semantics.
16:25:25 <itidus20> no i just forgot the second =
16:25:34 <CakeProphet> oh, of course. silly me.
16:25:48 <itidus20> in basic, the identifier ABC == Abc == abc
16:26:00 <itidus20> scared?
16:26:05 <itidus20> you should be
16:26:23 <CakeProphet> nah that's sensible.
16:26:43 <CakeProphet> it just makes naming similar things of different kinds difficult.
16:27:12 <Phantom_Hoover> <CakeProphet> is that not the truth table for a condition?
16:27:26 <CakeProphet> awww yeah. there's something satisfying about getting something in the mail 2 days after you order it.
16:27:34 <ais523> itidus20: not in all BASICs
16:27:35 <Phantom_Hoover> If A is false, A → B is true.
16:27:38 <ais523> BBC BASIC was case sensitive
16:27:43 <Phantom_Hoover> This is the case in every logic I know of.
16:27:45 <ais523> also, keywords had to be in uppercase
16:27:47 <CakeProphet> kind of a "holy crap mail is ridiculous" moment.
16:27:57 <ais523> and you couldn't type lowercase by holding shift with capslock on
16:28:03 <ais523> so programs tended to be all uppercase
16:28:12 <CakeProphet> Phantom_Hoover: correct... ~p v ... makes that happen.
16:28:38 <Phantom_Hoover> CakeProphet, oh, right.
16:28:40 <itidus20> ok
16:28:50 <Phantom_Hoover> Yeah, your expression is correct, but there's no need for the and.
16:29:11 <CakeProphet> yeah I see that now it's just how I worked it out in my head because I forgot the usual equivalence.
16:30:13 <CakeProphet> I think every programming language should be in upper case.
16:30:31 <CakeProphet> to convey forcefulness to the computer. To let it know who is in charge.
16:31:12 <itidus20> it would be interesting to me if, in C, numl1 => num2; meant if (num1) num2 = 1;
16:31:29 <itidus20> darn typo
16:31:38 <CakeProphet> Haskell would much more elegant if the Fibonacci sequence were FIBS = 0 : 1 : ZIPWITH (+) FIBS (TAILS FIBS)
16:33:16 <itidus20> i guess tertiary operator does similar
16:33:26 <itidus20> trinary^?
16:33:28 <CakeProphet> PUBLIC STATIC VOID MAIN(STRING[] ARGS) {...}
16:33:31 <CakeProphet> ternary
16:33:50 <CakeProphet> tertiary is the third of primary, secondary, ...
16:33:57 <CakeProphet> ternary is the third of unary, binary, ...
16:34:22 <Deewiant> And trinary is an alternative form of ternary
16:34:43 <CakeProphet> oh hey what do you know it is.
16:35:00 <CakeProphet> Sounds better really, I just don't see it as often.
16:35:25 -!- cheater has quit (Ping timeout: 255 seconds).
16:36:28 <CakeProphet> also nullary technically comes before unary. I don't think there's a step above primary...
16:38:47 <Phantom_Hoover> Nullary numbers.
16:38:53 <CakeProphet> maybe kindergarden.
16:39:04 <CakeProphet> or pre-k
16:39:51 <CakeProphet> but pre-k might just be a US thing.
16:41:12 <ais523> you have nursery before primary school in the UK
16:41:18 <ais523> assuming that children go there at all, they don't all do
16:44:49 <CakeProphet> hmmm, so if I plug in my new VGA-to-YPbPr adapter into my laptop's VGA port and my display manager doesn't detect a new monitor, does that mean that my graphics card doesn't support TV-out or does that mean I just need to plug the other end of the adapter into something before I can find out?
16:45:26 <CakeProphet> I don't see how the latter would be possible... so, I'm going with the former most likely.
16:54:27 <Phantom_Hoover> CakeProphet, if you plug your vanadium gallium to yttrium lead praesodymium adaptor?
16:55:01 <CakeProphet> ...
16:55:22 <CakeProphet> yeah I don't have those I'll have to wait to find out.
16:55:42 <CakeProphet> I'm just not really sure how my hardware would detect that something is plugged into the other end.
16:55:59 <Phantom_Hoover> Oh wow, WP has updated its appeals to include one of the sad nobodies that make all the edits.
16:59:26 <ais523> edit count is a really bad measurement of anything
17:06:13 <CakeProphet> edit count is a pretty good measurement of editing activity, though.
17:06:21 <Phantom_Hoover> CakeProphet, not even that.
17:06:38 <CakeProphet> ....? edits per week?
17:06:50 <Phantom_Hoover> No, you'd need to look at the size of each edit.
17:07:00 -!- cheater has joined.
17:09:57 <CakeProphet> Phantom_Hoover: that would be a good measurement of spamming, I guess.
17:11:06 <CakeProphet> well, no, it would be good. But someone with thousands of typo corrections will probably still have a higher cumulative "edit size" than someone who writes hundreds of paragraph-sized and larger edits.
17:11:36 <CakeProphet> or they would be close to equal.
17:12:26 -!- cheater has quit (Excess Flood).
17:12:29 <CakeProphet> total number of bytes changed would be good, I guess. Factors in revisions as well as new content.
17:12:54 <CakeProphet> but then people who revert spam, unsourced material, etc, would get an advantage.
17:13:49 <ais523> smallest diff to any previous version of the page is probably a more reasonable metric
17:14:02 <ais523> but you'd need to ensure that the edits stayed in the page, too
17:14:18 <Sgeo> What about when the page has seen heavy spam?
17:14:21 <ais523> anyway, doing routine admin work, or wikignoming, can rack up edits extremely quickly without doing much real work
17:14:28 <ais523> Sgeo: that's why "any previous version"
17:14:47 <Sgeo> But "any previous version" includes spam, is what I meant
17:14:52 <CakeProphet> but really those are important maintenance functions, especially on a site with millions of articles. It's equally important to maintain the existing quality as it is to add new content. Also, improving quality doesn't necessarily take a lot of bytes.
17:16:01 <ais523> Sgeo: well, the diff against spam will be quite large, so it won't be the smallest
17:16:30 -!- cheater has joined.
17:16:30 -!- cheater has quit (Excess Flood).
17:25:24 <itidus20> So I was laying there and dreamed up a chess piece. 1d4 = starting position d4,d5,e4,e5; every turn 1d4 = north, south, east, west; every turn 1d6 = number of steps; It captures anything in it's path but it gets stopped in it's tracks by doing so. Also it is stopped by the edge of the board.
17:26:52 <itidus20> Possible additional rules. It could die of hunger if it doesn't capture a piece for N turns.
17:28:55 -!- Taneb has joined.
17:29:00 <Taneb> Hello!
17:30:49 <Sgeo> Hmm. Eating too many carrots can discolor skin, but it's harmless and temporary
17:36:24 -!- Nisstyre has joined.
17:36:26 -!- Nisstyre has quit (Max SendQ exceeded).
17:37:09 -!- Nisstyre has joined.
17:39:15 -!- copumpkin has quit (Read error: Connection reset by peer).
17:47:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:47:48 -!- copumpkin has joined.
17:47:55 -!- MigoMipo has joined.
17:57:57 -!- atome has joined.
18:04:51 -!- atome has quit (Quit: http://quassel-irc.org - Discuter simplement. Partout.).
18:06:38 -!- atome_ has joined.
18:06:42 -!- monqy has joined.
18:07:31 -!- atome_ has quit (Client Quit).
18:08:17 -!- atome has joined.
18:08:21 -!- atome has quit (Client Quit).
18:08:57 -!- atome has joined.
18:36:28 -!- ais523 has quit (Ping timeout: 255 seconds).
18:39:08 -!- ais523 has joined.
18:56:31 -!- pingveno has quit (Ping timeout: 260 seconds).
18:58:21 -!- pingveno has joined.
19:09:21 -!- oerjan has joined.
19:16:25 <Taneb> ...Are there any examples of two games of Nomic having diplomatic negotiations with eachother?
19:17:18 <oerjan> we did have Ambassadors in Agora once, iirc. whether they ever got anything useful done, i'm not sure.
19:17:44 <Taneb> I'm running a small game of Nomic on the MSPA forums
19:17:53 <oerjan> and we declared war against Rishonomic.
19:18:06 <Taneb> ...
19:18:16 <Taneb> Did anything come of that?
19:18:41 <oerjan> Taneb: they had the chutzpah to declare us boring :P
19:18:54 <Taneb> How could they!?
19:19:30 -!- cheater has joined.
19:20:03 <oerjan> i think they declared basically everyone else their enemy, so of course _we_ had to go to war :P
19:20:11 <oerjan> (everyone _except_ us)
19:21:10 <ais523> yes, they declared war on every nomic they knew of but Agora, and did "not go to war with Agora, because they are a generally boring lot"
19:21:15 <oerjan> i'm not entirely sure how much came of it. rishon _did_ collapse, but i'm not sure if it was agorans' fault
19:21:19 <ais523> ah, not way, it was sworn enemy
19:21:29 <ais523> oerjan: it collapsed just after repelling an Agoran invasion, for unrelated reasons
19:21:40 <Taneb> How could you invade?
19:21:46 <Taneb> How would that even work?
19:22:00 <ais523> basically, you try to force a rule into the other nomic's ruleset
19:22:02 <itidus20> sounds like metagame
19:22:10 <ais523> normally via scam
19:22:55 <Taneb> Nomic's a meta-metagame
19:23:43 <Taneb> I think it actually is
19:24:03 * oerjan gets hit by a falling anvil, just in case
19:25:09 <Taneb> The rules define how to define the rules
19:28:03 <itidus20> so ais, i know this will be a fun question but i didn't want to hog it... what sort of rules do they try to force into the other Nomic's ruleset?
19:28:16 -!- GreaseMonkey has joined.
19:30:45 <oerjan> i think agora went for trying to get rishon to declare agora their masters, or something
19:31:05 <itidus20> hehe
19:32:03 <oerjan> i vaguely recall there may have been something about making that rule unrepealable, as well
19:33:31 -!- BeholdMyGlory has quit (Remote host closed the connection).
19:33:52 -!- BeholdMyGlory has joined.
19:37:33 -!- boily has quit (Quit: WeeChat 0.3.5).
19:47:34 -!- NihilistDandy has quit (Ping timeout: 276 seconds).
19:49:03 <Taneb> When does a game of Nomic become a Micronation?
19:51:43 <ais523> so far yet, none have managed it, so we don't know
19:51:49 <ais523> Agora tried at one point
19:53:57 <itidus20> so are their any constraints on the game? is it confined to a forum or text type of thing?
19:54:07 <itidus20> ^there
19:54:08 <oerjan> what does a micronation have that a nomic doesn't
19:54:28 <oerjan> itidus20: all constraints are temporary, in principle
19:54:38 <oerjan> since they can be repealed
19:54:47 <itidus20> humm
19:55:20 <oerjan> nomic has been played on many fora, i'm not sure if any have moved to a radically different one...
19:55:28 <itidus20> i don't think it would be right of me to say that some players will necessarily be evil...
19:55:35 <itidus20> i just don't understand human nature well enough
19:55:38 <oerjan> oh wait frc is of course an example
19:55:45 <oerjan> it moved from nomic world to email
19:56:08 <itidus20> well, suppose for example that some nomic players met up in a shopping center
19:56:18 <itidus20> they might be trapped in a kind of limbo between the two worlds
19:56:28 <oerjan> itidus20: my first nomic game was around a table in a gaming club
19:56:52 <Taneb> Did it get very far?
19:57:05 <oerjan> then someone posted a link to nomic world on the club's email list, and there i was.
19:57:14 -!- Sulmersal has joined.
19:57:17 <oerjan> Taneb: it was a one evening thing
19:57:30 <itidus20> oerjan: well.. ok like a contrasting game is truth or dare
19:57:48 <Taneb> Agora is older than me
19:57:56 -!- Sulmersal has quit (Client Quit).
19:58:02 <itidus20> .. truth or dare being like a ventilation system of the inhibitions and ceaseless agony of existence
19:58:08 <oerjan> itidus20: you _could_ include real life elements, i guess.
19:58:14 <itidus20> i dont think you should
19:58:22 <itidus20> i mean all hell could break loose
19:58:23 * oerjan has never played truth or date, anyway
19:58:23 <ais523> <oerjan> what does a micronation have that a nomic doesn't <--- Aerica complained that the situation was the reverse, that Agora wasn't a micronation because it had victory conditions
19:58:36 <ais523> is truth or date some sort of truth or dare modification?
19:58:36 <oerjan> ais523: heh
19:58:42 <oerjan> *dare
19:59:03 <itidus20> oerjan: well.. so.. playing around a table at a gaming club... what is the substance of the game? is it played through talking?
19:59:18 <oerjan> perhaps a freudian slip, i've heard _some_ truth and dares can get into such territory
20:00:33 <Taneb> brb
20:00:36 <itidus20> truth or dare is just like an excuse for horny teenagers to make out and laugh at embarassing moments in history
20:00:45 <itidus20> but...
20:00:57 <oerjan> itidus20: ok so you are saying it's _most_ truth and dares. o kay
20:01:24 <itidus20> oerjan: ok what i mean though... is..
20:01:36 <itidus20> truth or dare does invoke real life consequences
20:01:50 <itidus20> it would be dangerous if nomic ever combined itself with truth or dare somehow
20:02:02 <ais523> invoking real life consequences is the whole purpose of truth or dare, isn't it?
20:02:11 <ais523> reveal some embarassing fact, or do something to create a new embarassing fact?
20:02:22 <oerjan> itidus20: peter suber's original ruleset was intended for table play, anyway. play went around the table with players taking turns. the original ruleset of agora had already removed that aspect.
20:02:47 <ais523> apparently, people who've played in-person nomic say that having a word processor handy is helpful
20:03:07 <itidus20> lawyers would probably be good at it
20:03:11 <oerjan> itidus20: nomic has a "you can always quit instead" rule for such situations, anyway.
20:03:16 <MDude> Tooth or Bear: Each turn, either take out your own tooth, or wrestle a bear.
20:04:09 <itidus20> oerjan: i am so boring to discuss such things
20:04:59 <MDude> SOunds like it would be rather difficult to teach a comptuer to play nomi, since it would have to understand arbitrary new rules.
20:05:02 <oerjan> itidus20: oh i vaguely recall agora once passed a rule that all players should brush their teeth properly :P there was a following judgement to the effect that agora _could_ affect real life things, iirc
20:05:20 <Taneb> Back
20:05:35 <oerjan> i'm not aware that anything else of the kind has been done
20:05:41 <oerjan> (in agora)
20:05:50 <itidus20> oerjan: theres probably erotic Nomics :P
20:06:35 <Taneb> Rule 34 or whatever
20:06:41 <Taneb> There's erotic everything
20:06:53 <itidus20> the BDSM community would really take to it
20:06:54 <Taneb> There's probably an erotic esoteric programming language out there
20:07:19 <Taneb> esoterotic?
20:08:27 <oerjan> `addquote <MDude> Tooth or Bear: Each turn, either take out your own tooth, or wrestle a bear.
20:08:28 <HackEgo> 561) <MDude> Tooth or Bear: Each turn, either take out your own tooth, or wrestle a bear.
20:09:02 <itidus20> well real life is very complicated. something like Nomic is best to stay in its own dimension
20:09:04 <itidus20> hehehe
20:09:12 <oerjan> <itidus20> oerjan: i am so boring to discuss such things <-- beware of self fulfilling thought patterns
20:09:23 <oerjan> i say that in the most hypocritical way possible
20:11:03 <itidus20> The way I am trying to view life lately is that everything is going to go wrong around me... and that I just have to make something of my time and energy in the space i've got left for myself
20:11:16 -!- GreaseMonkey has quit (Quit: The Other Game).
20:11:57 <oerjan> MDude: there have been programming language "nomics", btw. but there the players had to actually make the code to make the game do what they wanted. it solves the understanding problem, since the players cannot code that requirement :P
20:12:37 <oerjan> well i guess the computer wasn't really a player there
20:12:53 <itidus20> There are those who will try to say "it's not so bad".. but you know.. the world really is that bad... it really is.. but so what? who is really listening when you complain about the state of things?
20:13:07 <monqy> me
20:13:09 <monqy> im listening
20:13:14 <monqy> should i stop
20:13:17 <itidus20> so.. you have to take responsibility for what you can do
20:13:32 <itidus20> because.. noone is ever going to make everything ok
20:13:55 <MDude> Well, it's not like you shouldn't take responsibility anyway.
20:13:59 <coppro> ok, I need to get involved in this conversation at some point
20:14:35 <itidus20> i have to back away from the conversation because i tend to hog chats
20:15:00 <coppro> everything will not go wrong
20:15:08 <coppro> everything will not go right either
20:15:38 <monqy> not everything will go
20:17:05 <itidus20> When I have to stop and ask myself, "why do they do this to me?", at that point I realize that I have the power to change my situation in small ways, and it is my choice whether I exercize that or not.
20:17:44 <monqy> why does who do what
20:18:21 <Taneb> They do this
20:20:10 <itidus20> salespeople, loansharks, ponzi schemers...
20:20:15 <oerjan> fungot: are you familiar with Them?
20:20:15 <fungot> oerjan: what the hell is that??? you are quite a sn0b
20:20:22 <oerjan> O KAY
20:20:36 <oerjan> ^style
20:20:36 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
20:21:12 <itidus20> spyware, software installers with browser toolbars which can only be turned off by clicking a subtle checkbox,
20:21:29 <Lymee> ^style lovecraft
20:21:29 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
20:21:36 <Lymee> fungot: hi?
20:21:37 <fungot> Lymee: it was a rough parallel in all essential features of the dead
20:21:39 <itidus20> facebook wreaking havoc with your privacy, lulzsec revealing your details
20:21:44 <Lymee> nya
20:21:50 <Lymee> ^style nethack
20:21:50 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
20:21:53 <Lymee> fungot: hihihihi
20:21:53 <fungot> Lymee: master of thieves: there was a handsome young man lifted the sword and thrust with both arms; the blade broke the surface, the prince himself is about the newspaper stories which recounted the alleged existence of creatures in the depths of the shopkeep logic ( hence our former mailing list address).
20:22:33 <itidus20> makeup product testing on animals
20:22:53 <monqy> itidus20: is there a word for people like you
20:23:12 <Lymee> ^style youtube
20:23:12 <fungot> Selected style: youtube (Some YouTube comments)
20:23:13 <itidus20> ENDLESS junkmail in my email inbox
20:23:17 <Lymee> fungot: Hi~
20:23:18 <fungot> Lymee: air france? typical american, you ll never see youtube with this jaybad... he is like the punching kola ad and the airbus
20:23:24 <Lymee> I approve.
20:23:27 <itidus20> endless spam in blog comment sections
20:23:42 <itidus20> endless automated signups leading to the creation of captchas
20:24:21 <itidus20> endless car thefts leading to sensitive car alarms that are triggered by a strong wind
20:24:36 <itidus20> identity thieves
20:24:49 <itidus20> pickpockets
20:25:02 <monqy> itidus20: so these are them?
20:25:06 <itidus20> some of them
20:25:09 <monqy> itidus20: and what did they do to you specifically
20:25:24 <itidus20> they force me into the corner to hide
20:25:41 <itidus20> they are out there everyday stalking
20:25:48 <monqy> are you paranoid
20:25:50 <itidus20> i am probably one of them
20:26:04 <monqy> there has to be a better word for you
20:26:10 <itidus20> they ARE after me... they are after anyone they can get their clutches on
20:26:25 <itidus20> its just probability that they don't get the opportunity
20:27:02 <itidus20> i am sure i haven't managed to cast a wide enough net to define "them" though
20:29:09 <itidus20> but, also, there is a trickle down effect... they do take their damage.. and it trickles down to everyone. everyone needing to pass the buck
20:29:23 -!- Cheery has joined.
20:29:35 <Cheery> jou!
20:30:10 <oerjan> a finn. hide everyone!
20:30:37 <itidus20> sort of like if there is an economic plane which is a manifold and heavy balls were dropped on it distorting it in places
20:31:34 <itidus20> like.. if a father is beaten up.. their family was dependant on him for economic security.. and the pressure on everyone builds up
20:31:45 <itidus20> or if someone is on drugs.. and has to steal from their family
20:31:47 <itidus20> a similar effect
20:31:58 <Cheery> but.. I'm about as esoteric as what are you all non-finns..
20:32:13 <oerjan> itidus20: all i know is that while not thinking about those kind of things doesn't necessarily make my day a good one, _all_ my good days are when i manage to avoid it.
20:32:31 <olsner> Cheery: the question is, how glove are you?
20:33:17 <Cheery> olsner: as much as what a herd of cats is.
20:33:49 <olsner> ouch! I think that's too glove, but hopefully that's glove enough
20:34:43 <oerjan> Cheery: no finns here. _especially_ not fizzie or Deewiant. or tswett, even if he sounds like one at times.
20:35:21 <tswett> Kaive ottani ei olla espataa elmä soo.
20:35:46 <itidus20> oerjan: yeah :)
20:35:48 <Cheery> that sounds like estonian.
20:36:04 <tswett> I wouldn't be surprised if Estonians thought it sounded like Finnish.
20:37:07 <oerjan> tswett: according to google, you failed to make two of those words untranslatable
20:37:42 <tswett> Well, "ei" and "olla" are definitely real words. Any others?
20:37:56 <oerjan> beats me
20:38:30 <olsner> after applying the suggested corrections of the finnish text, google gives me "Ozone can not be a drain espataa life soo."
20:38:55 <olsner> (ooh! I see the matrix of solidity has made a comeback in the topic, good stuff)
20:39:46 <oerjan> olsner: darn i was hoping i had escaped
20:40:27 <olsner> there's a reason it's called the matrix of *solidity*, you know
20:40:59 <oerjan> well i thought if i drank enough, i'd become fluid instead
20:41:01 <Cheery> funniest thing I know about estonia is that there is a city called 'hawk' they have tried to cover from their map.
20:41:19 <oerjan> cover?
20:41:26 <Cheery> because 'hawk' in estonian sounds much like 'dick' in finnish.
20:42:16 <oerjan> friendship town: Fucking, Austria
20:42:57 <oerjan> (note: not actually true)
20:43:25 <oerjan> unless it happens to be, let's check
20:43:30 <Cheery> " are definitely real words. Any others?
20:43:30 <Cheery> 23:37 < oerjan> beats me
20:43:41 <Cheery> http://maps.google.com/maps?q=viro+kulli&hl=en&ll=58.636935,26.334229&spn=4.868035,7.756348&sll=58.378679,26.312256&sspn=2.451155,3.878174&t=h&z=7
20:44:05 <fizzie> "ottani" is a plausible dialectical way of saying "otsani", i.e. "my forehead".
20:44:50 <Cheery> hmm..
20:44:57 <Cheery> there seems to be multiple 'kulli' in estonia
20:45:02 <fizzie> And "kaive" could I guess be some sort of a digging; from "kaivaa" 'to dig'; also "kaiverrus" 'engraving'. But I don't think it's quite a standard word.
20:46:06 <fizzie> And "soo soo" is what you can say to a young child who has behaved badly.
20:46:24 -!- Phantom_Hoover has joined.
20:46:39 <Cheery> "kaive" the gap between buttocks
20:47:18 <Phantom_Hoover> Wow, the channel has gone downhill while I was away.
20:47:25 <Cheery> or something else you might dig into
20:47:39 <olsner> Phantom_Hoover: always downhill
20:47:50 <Cheery> I wonder when it goes uphill..
20:48:00 <monqy> always downhille
20:48:08 <olsner> well, it goes uphill backwards in time
20:48:18 <oerjan> "In 2009, the European Union's OHIM trademarks agency forbade a German brewery to market a beer called "Fucking Hell". It appealed, and was granted permission in January 2010 to market the beer.[23] It claims the beer is named after the Austrian village Fucking and the German term for pale lager, Hell."
20:48:43 <Cheery> I guess it does that when the variable underflows.
20:49:05 <Phantom_Hoover> Cheery, honestly, we use bigints for our hills.
20:49:16 <olsner> arbitrary-precision suckage
20:49:47 <Cheery> so it's like worldwide economy then?
20:49:56 <Cheery> except that it's always downways instead of upwards..
20:50:55 <Cheery> "kaive ottani ei olla espataa elmä soo." <- if you wonder at this thing. it really means nothing in finnish even though someone might think it's estonian
20:51:00 <oerjan> > let depth = exp(100) in ceiling depth
20:51:01 <lambdabot> 26881171418161356094253400435962903554686976
20:51:09 <oerjan> er darn
20:51:12 <Cheery> fucking lambda!
20:51:28 <oerjan> > let debt = exp(100) in ceiling debt -- i can't spel
20:51:29 <lambdabot> 26881171418161356094253400435962903554686976
20:51:54 <Cheery> or then.. it could also be drunkspeak
20:52:15 <monqy> 26881171418161356094253400435962903554686976 is pretty deep
20:52:23 <oerjan> Cheery: i wasn't particularly wondering. this _is_ tswett, after all.
20:52:34 <monqy> pretty deeb too
20:52:43 <oerjan> monqy: yeah hard to dig oneself out of
20:52:54 <Cheery> "kai se ottava ei ole espanja enmä osaa sanoa"
20:53:07 <monqy> digging upwards is my favourite sport and hobby
20:54:24 <Cheery> I could try continue my language project..
20:54:30 <Cheery> except that it's again night. :)
20:54:44 <monqy> night time is best time
20:54:50 <Cheery> and I've spent my daytime playing games, talking, driving a car and shopping.
20:55:09 <Phantom_Hoover> Cheery, what language project?
20:55:23 <Phantom_Hoover> (Does it involve brainfuck in which case DIE)
20:56:19 <Cheery> it involves personally handwritten retargetable compiler backend.
20:56:25 <Taneb> I managed to read that as make a brainfuck IDE
20:57:19 <Cheery> if you like to kill people by virtually stabbing them. you could try: http://www.kongregate.com/games/icecreambreakfst/racing-comrade
20:57:27 <Taneb> Whicch would certainly be interesting
20:58:21 <Taneb> And boring
20:59:21 <oerjan> Phantom_Hoover: hey i have a project involving brainfuck neener neener
21:00:22 <oerjan> also, no one found a way to calculate n%2 in 3 cells while preserving n :(
21:01:29 <oerjan> i _think_ i can manage to end the main loop on a finite, fixed set of values, but that's sort of unsatisfying
21:01:29 <Cheery> basicly, if I'd get off from the unproductivity cycle, I'd get on to writing stuff that converts bunch of expressions in a program flow graph into thin amount of assembly language in x86 and nvidia gtx460
21:02:01 <oerjan> at least it's enough to do decision problems
21:02:21 <Cheery> then I'd continue from that by implementing a language, so I can implement graphical IDE in the language so I can skip parsing entirely.
21:02:43 <Cheery> then I'd rewrite the whole compiler in the language I just created.
21:02:53 <Cheery> :)
21:03:46 <oerjan> Cheery: you mean making a language without a text syntax?
21:04:21 <Cheery> oerjan: yes.
21:05:11 <Cheery> I played with the editing concepts but distracted into other things entirely, and then I distracted into doing compiler stuff, which is indeed very useful for all of my earlier projects.
21:07:07 * oerjan looks at BRB and notes that for most esolangs, the _more_ commands they have the _less_ interesting they are
21:08:01 <Cheery> sounds like correct
21:08:06 <Cheery> more commands means more crap anyway
21:08:09 <ais523> oerjan: indeed
21:08:30 <oerjan> befunge being an exception
21:08:38 <Cheery> I've got some sort of semi esoteric semi production -thingy as goal.
21:08:57 <Cheery> and I'm not sure whether it's even esoteric after all then..
21:09:08 <pikhq> oerjan: Just a special instance of the general scenario in software: the more stuff your software has, the worse it is.
21:10:15 <Cheery> true too
21:10:45 <Cheery> except that in some cases the complexity can be handled and it's actually awesome.
21:10:58 <oerjan> see: haskell?
21:11:21 <oerjan> (ok haskell has some creaky parts too)
21:11:27 <pikhq> There's necessary and unnecessary complexity.
21:11:39 <pikhq> Most complexity is unnecessary.
21:13:11 <itidus20> Cheery: I think if it is developed without anyone investing any money then it is esoteric
21:13:11 -!- lin0mak has joined.
21:13:38 <itidus20> that might be going too far though,,,
21:13:52 <Phantom_Hoover> itidus20, it's going so far that light takes ten minutes to reach it.
21:14:15 <itidus20> the assumption there is that all these 1000s of people who learn to make compilers don't actually ever invent their own languages
21:14:17 <Taneb> That's further than the sun!
21:14:44 <Taneb> And the sun's pretty far away
21:14:45 <itidus20> or if they do they're kept private
21:14:48 <Phantom_Hoover> Taneb, 25% further!
21:14:58 <oerjan> itidus20: well there are all kinds of money, do academic grants count?
21:15:00 <Taneb> 125% as far!
21:15:33 <Taneb> I think an esoteric language is defined as being designed to be unusable
21:15:40 <oerjan> because it may be just a matter of many people don't having _time_ to make anything big without being paid.
21:15:42 <Cheery> itidus20: I don't know whether 'doing your own language' auto-ensures esoteric.. or wait
21:16:04 <Cheery> um yeah.. no
21:16:06 <itidus20> ok ill cluster bomb my definition
21:16:07 <oerjan> Taneb: that's a bit far in the other direction again
21:16:27 <Taneb> Linux was a doing your own operating system
21:16:46 <Taneb> How about themed?
21:16:46 <pikhq> Taneb: An esoteric language is defined as being strange.
21:16:48 <Phantom_Hoover> oerjan, yeah, just get oko to go on about how he gets paid to study esolangs.
21:17:05 <itidus20> 1) no funding 2) not done as part of schoolwork/academic work 3) no committee 4) non-commercial
21:17:10 <oerjan> Phantom_Hoover: well he would have to be HERE for that.
21:17:37 <itidus20> ok so.. esolangs can be studied >.<
21:17:48 <itidus20> i dont think i am the one to define it then..
21:18:01 <itidus20> i am mixing esolang with indielang
21:18:09 <Phantom_Hoover> oerjan, nah, he could bang on about it from inside a sealed metal box.
21:18:50 <oerjan> one case: is P'' an esolang? böhm was probably paid in some way.
21:19:13 <Taneb> P'' was a thingy to prove something
21:19:29 <Taneb> That goto-less imperative languages can be turing complete
21:19:38 <oerjan> it wasn't intended as "eso", but many of those initial TC formalisms are indistinguishable from what we consider quality in an esolang
21:19:59 <monqy> better than mordern esolangs
21:20:00 <Taneb> Imagine programming in Code 110
21:20:01 <monqy> :'(
21:20:44 <oerjan> *not
21:20:52 <Taneb> s/code/rule/
21:20:54 * oerjan cackles evilly
21:22:03 <monqy> how did i misspell modern
21:22:09 <Taneb> Hell, imagine programming in a tag system
21:22:21 <Taneb> Maybe it was freudian?
21:22:41 -!- lin0mak has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:22:43 <Taneb> Like, you aspire to be like Sauron or something
21:23:14 <monqy> I hardly know what that is
21:23:16 <oerjan> <itidus20> [...] 3) no committee [...] <-- objection. magenta was made by committee. also the 1.Adjudicated Blind Collaborative Design Esolang Factory, although it failed.
21:23:31 <monqy> abcdef
21:23:44 <olsner> one does not simply goto mordor;
21:23:53 <oerjan> ... in which oerjan bickers about automatic copying of item numbers
21:24:04 * oerjan swats monqy -----###
21:24:09 <monqy> took long enough
21:24:14 <Taneb> I was waiting for that
21:24:21 <Cheery> I thought it was qwop
21:24:22 <oerjan> I WAS PONDERING WHETHER TO SWAT OR BAN
21:24:29 <Cheery> qwop to mordor
21:24:45 <Cheery> except I'd do that quite easily I guess..
21:25:16 <Cheery> http://www.funnyjunk.com/funny_pictures/1359404/One+does+not+simply+QWOP+into+Mordor/
21:25:25 <Taneb> olsner: the veloceraptors will get you
21:25:34 <Taneb> PHP specs say so
21:26:41 <Taneb> Are there any implemented esoteric operating systems?
21:27:18 <monqy> by what standard of esoteric/operating system
21:27:25 <monqy> also implemented
21:28:16 <Taneb> An OS that could concievably have an article on the wiki is considered esoteric for this purpose
21:28:24 <Cheery> if all you need to do is an operating system.. then you're quite easily esoteric
21:28:46 <Taneb> Implemented in that I could get it on a computer and boot it
21:29:10 <Cheery> yep
21:29:47 <monqy> but what is an operating system
21:29:57 <itidus20> ok fair enough my definition failed
21:30:26 <monqy> this seems to happen a lot
21:32:01 <olsner> making something sufficiently esoteric runs the risk of failing to make it an operating system
21:33:51 <Taneb> I know nothing about making operating systems
21:33:57 -!- variable has quit (Remote host closed the connection).
21:33:59 <Taneb> If I did, I would probably do this
21:34:35 -!- variable has joined.
21:34:56 <oerjan> itidus20: esolangs are similar to nomic in that whatever restrictions you try to make, _someone_ is going to try something not fitting in it :P
21:35:28 <itidus20> ok
21:35:31 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:38:14 <Taneb> Dammiit, I'm 9 years and 41 weeks of experience off becoming a "Cloud Evangelist" for Canonical
21:38:39 <olsner> What does that even mean.
21:39:39 <Taneb> It's the guy who says "This is cool! C'mon, folks!"
21:39:51 <monqy> still not getting it
21:40:07 <Taneb> About Cloud computing
21:40:17 <Taneb> Specifically with Ubuntu
21:40:55 <monqy> I don't get all the fuss over it
21:41:02 <Taneb> Neither do I
21:41:02 <monqy> only some of the fuss
21:41:06 <oerjan> is that like those 20 years experience with java requirements?
21:41:16 <Taneb> Maybe
21:41:30 <monqy> 20 years is a lot of java experience
21:41:50 <oerjan> i guess java does not fit very well as an example any longer
21:41:53 <Taneb> In twenty years time, I'd be 36
21:42:22 <Taneb> In 60 years time, I might be coming up to retirement
21:42:49 <Cheery> I guess you won't find anyone doing *programming* who has that long experience of mainstream languages
21:43:03 <oerjan> Cheery: *whoosh*
21:51:50 <Cheery> I can't simply imagine a person with internal drive towards programming would stay away from other languages and wouldn't become able of using many other languages he'd much more prefer than java.
21:54:25 -!- Cheery has quit (Quit: Lost terminal).
22:02:16 <ais523> oerjan: there have been cases of people rejecting one of the early Java testers (from before it was publicly released) for not having enough Java experience
22:13:58 <Taneb> I wonder if there's an eclipse plugin for Befunge developement?
22:15:18 <Taneb> Goodnight
22:15:28 -!- Taneb has quit (Quit: He's a big quitter he is).
22:15:44 <Vorpal> hm, I just found out that Torvalds went xfce due to hating gnome 3. Calling it a step down compared to gnome 2 but a huge step up compared to gnome 3
22:15:53 <Vorpal> I have to agree completely
22:16:21 <Phantom_Hoover> Vorpal, why, is it so impossible to use Gnome 2?
22:16:40 <Vorpal> Phantom_Hoover, downgrading major things like gtk+ and glib is always going to be a pita
22:16:53 <Vorpal> Phantom_Hoover, further, who is going to maintain gnome 2?
22:37:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:03:47 -!- ais523 has quit (Read error: Connection reset by peer).
23:04:51 <fizzie> Didn't they say next Ubuntu (11.10) is dropping classic Gnome desktop completely, in favour of Unity (with a 2D-Unity for machines with less 3D hardware horsepower)?
23:20:06 -!- copumpkin has joined.
23:20:10 -!- copumpkin has quit (Changing host).
23:20:10 -!- copumpkin has joined.
23:21:35 <cheater> fizzie, something like that. i want to see it. it'll be great, i think.
23:24:53 -!- sebbu has quit (Ping timeout: 240 seconds).
23:26:00 <elliott> fizzie: Um, they already did.
23:26:00 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
23:26:07 <elliott> Oh, I see.
23:26:24 <elliott> Thus making Ubuntu completely unusable without manual installation.
23:29:51 <Phantom_Hoover> elliott, why?
23:29:58 <Phantom_Hoover> Is Unity *that* bad?
23:30:01 <elliott> Yes.
23:30:03 <elliott> It really is.
23:30:18 <elliott> And I gave an honest, complete effort to love and use it when the last Ubuntu came out.
23:30:26 <elliott> I looked past all its implementation flaws.
23:30:32 <elliott> It really is horrendous at the core.
23:30:55 <Phantom_Hoover> Horrendous != unusable.
23:31:43 <Phantom_Hoover> Everyone's struggled through one or two horrendous interfaces because they needed to.
23:33:07 <elliott> Phantom_Hoover: When that interface is your /entire desktop/...
23:33:30 <elliott> Windows 95's desktop is, all sincerity, more usable than Unity.
23:34:03 <Phantom_Hoover> elliott, would a precis of why it's awful be too much to ask for@?
23:37:02 <elliott> Phantom_Hoover: Yes, because I've summarised on here before; no, I don't remember log dates.
23:37:07 <elliott> Maybe later.
23:45:26 -!- FireFly has quit (Quit: swatted to death).
23:54:48 <elliott> 10:54:51: <fizzie> ^style something-else-except-that-agora-nonsense
23:54:49 <elliott> DIEEEEE
23:55:22 <Phantom_Hoover> fungot, show elliott your new style.
23:55:23 <fungot> Phantom_Hoover: he was a glitch in the accident was the kid pissed me off, was beautiful... geezzz... didn't see half of these
23:55:29 <Phantom_Hoover> ^style
23:55:29 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa speeches ss wp youtube*
23:55:32 <Phantom_Hoover> What.
23:55:34 <Phantom_Hoover> Who.
23:55:37 <Phantom_Hoover> THIS IS A TRAVESTY
23:55:41 <Phantom_Hoover> ^style homestuck
23:55:41 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
23:55:44 <Phantom_Hoover> fungot, now do it.
23:55:44 <fungot> Phantom_Hoover: your sylladex will prevent it from being destroyed: 4/ 13, 1910, exactly, numskull. might as well just use that? i mean from your tree? with all your amaaaaaaaazing powers.
23:55:46 <elliott> What who did that.
23:57:00 <elliott> fungot: that was like the most stereotypical line you could possibly blurt out in that style btw
23:57:00 <fungot> elliott: is it.
23:57:03 <elliott> fungot: yes.
23:57:04 <fungot> elliott: his birthday is in a few minutes.
23:57:06 <oerjan> Phantom_Hoover: it was just a glitch in the accident
23:57:06 <elliott> fungot: ah.
23:57:06 <fungot> elliott: what, the last one. wait no, that just made you disappear" and stuff?
23:57:09 <elliott> fungot: yes.
23:57:10 <fungot> elliott: you like to chat up one of those other clowns prototyped. go me t0 break it first before moving
23:57:20 <elliott> fungot: this is terrible.
23:57:26 <elliott> someone say fungot
23:57:29 <Phantom_Hoover> fungot, come on, there's got to be a death threat or two in there somewhere.
23:57:29 <fungot> Phantom_Hoover: and in time, though prone to do that
23:57:42 <elliott> 10:57:54: <itidus20> fungot, what is your opinion of brainfuck?
23:57:42 <fungot> elliott: is it possible for one of your b100d and a beating heart. you can be as good a time as any
23:57:42 <elliott> 10:57:54: <fungot> itidus20: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alon
23:57:42 <fungot> elliott: an old colonel lost, but a new brother gained. together they will ascend, each time you must be adventurin'.
23:57:43 <Phantom_Hoover> fungot, I can't wait!
23:57:43 <fungot> Phantom_Hoover: just as i was initially believed they were new additions. for that. busy
23:57:44 <elliott> YES IT RETURNS
23:57:59 <Phantom_Hoover> elliott, we got a new one.
23:58:07 <elliott> `addquote <fungot> elliott: an old colonel lost, but a new brother gained. together they will ascend, each time you must be adventurin'.
23:58:07 <fungot> elliott: it was a big goofy adult. seems like that's the only sort. if it were up to him we would try to be these mysterious characters but you suspect. what a royal mess of his lovely new horseleather bib. it just so happens that today, the 13th of april. another day of uneventful but highly satisfying
23:58:09 <HackEgo> 562) <fungot> elliott: an old colonel lost, but a new brother gained. together they will ascend, each time you must be adventurin'.
23:58:19 <elliott> it sounds like lyrics
23:58:21 <elliott> really bad lyrics
23:58:22 <Phantom_Hoover> fungot, hey, you gave that death threat to elliott!
23:58:22 <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
23:58:25 <Phantom_Hoover> ;_;
23:58:32 <Phantom_Hoover> fungot, but you were meant to hate ME
23:58:33 <fungot> Phantom_Hoover: you really wish your side.
23:58:38 <Phantom_Hoover> fungot, I DO
23:58:38 <fungot> Phantom_Hoover: you pick the time that happens, right. some numbers are already supplied are being cross-referenced with understandings i already was.
23:58:43 <elliott> `addquote <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
23:58:43 <fungot> elliott: your name is john. is that correct? ok, whatever it does. perhaps you will take this from the top. ve l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v l. v
23:58:44 <HackEgo> 563) <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
23:58:51 <elliott> v l. v l. v l.
23:58:52 <copumpkin> :o
23:59:04 <Phantom_Hoover> fungot, the time I pick is NOW!
23:59:04 <fungot> Phantom_Hoover: but it is your journey i am just as confused. you will have your questions answered, but they kind with this mutant candy-red blood. an outcast. he thinks it's about to be. someone needs to grab the beta ( 6) in the room. he briefly speaks to its strife! quota for the day. she simply returns to the land of thought and focus on the matter
23:59:25 <Phantom_Hoover> Land of Thought and Focuss.
23:59:28 <Phantom_Hoover> *Focus
23:59:45 <Phantom_Hoover> fungot, are you so confused as to threaten to kill me?
23:59:46 <fungot> Phantom_Hoover: though the fact that this is apparently a bull penis, and a beating heart. you can be as good a time as any to start a new memo
2011-08-05
00:00:25 <elliott> It's a bull penis _and_ a beating heart.
00:01:25 <Phantom_Hoover> fungot, are you going to threaten to kill me with the bull penis?
00:01:26 <fungot> Phantom_Hoover: though the fact that this is apparently a bull penis, and a variety of interests. you have a passion for really terrible movies. he would just go on and on about it.
00:01:41 <Phantom_Hoover> fungot, it's a variety of interests too?
00:01:41 <fungot> Phantom_Hoover: is it there she is.
00:02:24 -!- Patashu has joined.
00:18:02 <Lymee> fungot, are you still in youtube mode?
00:18:03 <fungot> Lymee: the stuff scattered about your room. you of course it was a nasty pair of beagle puss glasses, several () a blank card, producing a different hole in the roof
00:18:07 <Lymee> ^style youtube
00:18:08 <fungot> Selected style: youtube (Some YouTube comments)
00:18:09 <Lymee> fungot, are you still in youtube mode?
00:18:10 <fungot> Lymee: got footage of the a-320 that had been certified by the computer overrode the automatic throttle system but it keeps skippin for me, you managed to contradict yourself there big time, this movie will be epic
00:18:11 <Lymee> :D
00:18:15 <Phantom_Hoover> Lymee, IT WAS YOU
00:18:36 <Phantom_Hoover> ^style homestuck
00:18:36 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:18:43 <Phantom_Hoover> fungot, NEVER LEAVE THIS MODE
00:18:43 <fungot> Phantom_Hoover: this is it, like an apple or a cunning prankster than a common sort of
00:18:52 <Lymee> ^style
00:18:52 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:18:57 <Lymee> ^style irc
00:18:57 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
00:18:59 <elliott> ^style homestuck
00:18:59 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:02 <Lymee> ^style irc
00:19:02 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
00:19:04 <Lymee> >:c
00:19:04 <elliott> ^style homestuck
00:19:04 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:17 <Phantom_Hoover> ^style
00:19:17 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa speeches ss wp youtube
00:19:19 <elliott> ^style homestuck
00:19:19 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:25 <monqy> whats homestuck
00:19:30 <Lymee> fungot: hi
00:19:31 <elliott> hams on steaks
00:19:31 <fungot> Lymee: i see def-bf as being used to do that
00:19:34 <Phantom_Hoover> monqy, go to mspaintadventures.com
00:19:36 <elliott> ^style
00:19:36 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa speeches ss wp youtube
00:19:37 <Lymee> ^_^
00:19:38 <elliott> Phantom_Hoover: He knows.
00:19:39 <elliott> ^style homestuck
00:19:39 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:46 <Phantom_Hoover> elliott, -_-
00:19:46 <elliott> Anyway, stop talking, I need to war with Lymee.
00:19:50 <elliott> ^style homestuck
00:19:50 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:50 <elliott> ^style homestuck
00:19:50 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:51 <elliott> ^style homestuck
00:19:51 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:51 <elliott> ^style homestuck
00:19:51 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:51 <elliott> ^style homestuck
00:19:51 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:19:53 <elliott> fungot: there.
00:19:53 <fungot> elliott: are you in the medium.
00:19:59 <elliott> ^style
00:19:59 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:20:03 <Phantom_Hoover> Lymee, CONTINUE AND I SHALL MURDER YOUR DWARF SOMEHOW
00:20:06 <Lymee> ;-;
00:20:10 <elliott> ^style
00:20:10 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:20:26 <Phantom_Hoover> ^style
00:20:26 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:21:07 <elliott> ^style
00:21:07 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7* fisher homestuck ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:21:10 <elliott> ^style homestuck
00:21:10 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:21:30 <Lymee> ^style youtube
00:21:30 <fungot> Selected style: youtube (Some YouTube comments)
00:21:38 <elliott> ^style homestuc
00:21:38 <fungot> Not found.
00:21:39 <elliott> ^style homestuck
00:21:39 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:21:40 <Lymee> ^style youtube
00:21:41 <fungot> Selected style: youtube (Some YouTube comments)
00:21:43 <elliott> ^style homestuck
00:21:43 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:21:44 <Lymee> ^style youtube
00:21:44 <fungot> Selected style: youtube (Some YouTube comments)
00:21:47 <elliott> fizzie: You should totally just remove ^style.
00:21:48 <elliott> ^style homestuck
00:21:48 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:21:50 <Lymee> ^style youtube
00:21:50 <fungot> Selected style: youtube (Some YouTube comments)
00:21:52 <elliott> ^style homestuck
00:21:53 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:21:55 <elliott> Lymee: asie.
00:22:03 <Lymee> :(
00:22:04 <monqy> this is dumb and makes me sad
00:22:13 <elliott> monqy: its my sworn duty to fight all asies
00:22:17 <elliott> swron,,,
00:22:24 <Lymee> fungot: Hi. Are you Homestuck? :D
00:22:24 <fungot> Lymee: listen guys it was a test
00:22:32 <elliott> ^style homestuck
00:22:32 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
00:22:34 <elliott> fungot: hams
00:22:34 <fungot> elliott: as it turned out, fooling around and transportalize as far as the details of the game mythology by now. try to be careful, ok? this book is full of more meow." she mistook this for more nonsense, but it is of course.
00:23:13 <Lymee> fungot: do not homestuck style ever again. OK?
00:23:14 <fungot> Lymee:/ more enduring social instincts conquer other less persistent instincts--the social virtues alone regarded by savages--the self-regarding virtues acquired at a later period over/ lighter and upper lavas :)/ uspallata range; origin subsequent to that :)/ perfect flowers 4.27 inches in height; or as 100 to 75.
00:24:12 <monqy> ^style
00:24:13 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:24:23 <Lymee> ^style jargon
00:24:24 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
00:24:24 <elliott> fungot: hi
00:24:25 <fungot> elliott: cisco systems pays dec for stolen software developers, system v release 4 and osf/ 3 globbing, which bloomed into a daze where they kept the cadr carcasses they now have a link to a
00:24:32 <elliott> fungot: sup
00:24:32 <fungot> elliott: like a very clear mirror
00:24:38 * Lymee ninja success
00:24:50 <Lymee> ^style c64
00:24:50 <fungot> Selected style: c64 (C64 programming material)
00:24:55 <Lymee> fungot: hihi
00:24:55 <fungot> Lymee: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear conc
00:25:00 <elliott> fungot: sup
00:25:01 <fungot> elliott: about his hat dirty. either way, spoils are yours toward a common goal, and because you can't understand
00:25:02 <elliott> Lymee: you try
00:25:05 <Lymee> ^style ct
00:25:05 <fungot> Selected style: ct (Chrono Trigger game script)
00:25:14 <Lymee> ^stylewp
00:25:16 <Lymee> ^style wp
00:25:16 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
00:25:20 <Lymee> ^style ss
00:25:21 <fungot> Selected style: ss (Shakespeare's writings)
00:25:25 <Lymee> fungot: hi
00:25:25 <fungot> Lymee: as a veteran of the game. it's what happens when you start running, she'll have to pry the cigarette holder to support.
00:25:29 <Lymee> fungot: hi
00:25:29 <fungot> Lymee: your blood is, he's a total badass, and that his awesomeness was also sort of a thing i do. she is the best character, you know. forever!
00:25:41 <Lymee> fungot: hi
00:25:41 <fungot> Lymee: enter name.
00:25:42 <Lymee> fungot: hi
00:25:43 <fungot> Lymee: that happens, right. maybe it would be best not to be near it when this happens every little gag and expected to arrive today that i was about to get blown up! this does not seem to exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no. cold. really cold shit flushed from derse. dave's package
00:25:48 <Lymee> >:c
00:25:53 <Lymee> Jerk.
00:25:56 <elliott> looks like hamsteak to me
00:25:58 <monqy> that does not sound like shakespeare that osunds like hommestucke
00:26:13 <Lymee> fungot: hi
00:26:50 <monqy> ^style
00:26:51 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:27:21 <Lymee> fungot: hi
00:27:27 <Lymee> fungot: hi
00:27:30 <Lymee> :(
00:27:40 <elliott> fungot: hi
00:27:40 <fungot> elliott: the point is its important! everyone )(as just been so busy abjuring, you don't actually give a shit. if it were up to him we would try to be these mysterious characters but you suspect. what a royal mess of his lovely new horseleather bib. it is a good idea.
00:27:42 <elliott> it doesnt like us now
00:27:54 <elliott> it ignores you after a while
00:29:11 <Lymee> fungot: hi
00:29:12 <fungot> Lymee: keep. i will walke my selfe to thy direction, toward london then, for we haue put thee in comfort, not by two that i know our greatest friends attend vs
00:34:28 <Lymee> fungot, if elliott messed with your brain, I swear...
00:34:28 <fungot> Lymee: in that reality. she flew in his window, seized the game with a dead heir and witch
00:34:31 <Lymee> ...
00:34:39 * Lymee knife glint
00:41:52 -!- atome has quit (Ping timeout: 250 seconds).
01:01:04 <Lymee> ^style ss
01:01:04 <fungot> Selected style: ss (Shakespeare's writings)
01:01:09 <Lymee> fungot: kill elliott please
01:01:10 <fungot> Lymee: hub. vpon my sword, and turne her out, and therefore more valiant, being as good a man as york! vernon. hark ye: not so much as conjure fort, and make a darke night too of halfe the day: which better then the male. it is
01:19:40 -!- cheater has quit (Ping timeout: 255 seconds).
01:32:24 -!- cheater has joined.
01:46:17 -!- lament has joined.
01:47:35 <monqy> http://esoteric.voxelperfect.net/wiki/User:UToneyNicholsonm this userpage makes me happy
01:59:26 -!- Phantom_Hoover has quit (Quit: Leaving).
02:03:39 <quintopia> it is clearly the best
02:04:26 * oerjan suddenly has an idea for a weird captcha
02:04:41 <oerjan> "What is the URL of this page?"
02:05:11 <oerjan> it's sole purpose would be to reveal the location of captcha farms
02:05:14 <oerjan> *its
02:05:32 <elliott> haha
02:05:55 <oerjan> ok, it might also work slightly as an ordinary captcha
02:07:14 * Lymee did not edit that userpage with a stupid meme
02:08:35 * oerjan refuses to admit that it is an improvement
02:16:14 <MDude> For it to work, you'd need to find a way to prevent it form being recognised automatically.
02:16:49 <oerjan> always a problem
02:16:49 <MDude> Since a bot would be able to know what url it's looking at.
02:17:39 <MDude> Maybe have a number of different types of tasks, and instead of obfuscating the answer, do so with the question.
02:17:48 -!- Sulmersal has joined.
02:18:51 <Patashu> 'what is the URL of this page'?
02:18:55 <Patashu> how would that reveal captcha farms?
02:19:40 -!- Sulmersal has quit (Client Quit).
02:21:07 <pikhq> Patashu: Mechanical Turk type captcha farms.
02:21:44 <Patashu> Oh, I see, captchas being solved on another side
02:21:52 <Patashu> But would the captcha being executed know what url it's on?
02:23:41 <elliott> gah how does this work
02:27:34 <MDude> That would be hard.
02:28:11 <oerjan> i was imagining the sort of thing where your captcha is used for a captcha on another page, which the spammers control... something i read about somewhere
02:28:20 <MDude> Though really, it's not like it needs to know. If someone gives the wrong url from seeing it on a farmign site, then it's the wrong one.
02:28:37 <MDude> Er, then it's not like you need ot let them go through anyway.
02:28:50 <MDude> What oerjan jsut said.
02:29:37 <elliott> oerjan: that would most likely be an iframe, though
02:29:44 <elliott> in which case the URL that the captcha saw would be itself
02:30:00 <oerjan> hm
02:30:10 <elliott> I guess it could detect whether it was in frames, but
02:31:58 <pikhq> oerjan: i.e. Mechanical Turk.
02:32:01 <oerjan> hm shouldn't captchas do that kind of detection anyway
02:32:11 <itidus20> MDude: i think it would help if they found a way to integrate the name of a website into the background of a captcha
02:32:39 <elliott> oerjan: I suspect they simply screenshot it or similar
02:32:40 <itidus20> the problem then would be that the varmints would try to unintegrate the background
02:33:01 <oerjan> elliott: if it's screenshot, then the scheme should work...
02:33:09 <elliott> oerjan: oh hm true
02:33:29 <itidus20> like, supposedly they do captcha redirections too
02:33:32 <elliott> hmm, this sucks (maybe)
02:33:47 <itidus20> like having a site which borrows someone elses capcthas
02:33:58 <itidus20> to get naive people to fill them in
02:34:09 <oerjan> itidus20: that's what i'm talking about
02:34:12 <MDude> If they just type what's in the image, though, it doesn't give away the location.
02:34:16 <elliott> oh no fuck
02:34:18 <elliott> im in utrecht land
02:34:32 <elliott> MDude: the image asks them to input the url they are on
02:34:33 <itidus20> i think if they were to put the URL into the captcha image itself it would help
02:34:33 <monqy> what happened
02:34:34 <elliott> presumably
02:34:42 <itidus20> like a watermark
02:34:47 <elliott> monqy: utrecht
02:34:52 <elliott> oerjan: help im utrecht
02:34:53 <itidus20> which they would then of course try to remove
02:34:58 <oerjan> itidus20: um you are having the opposite idea of what this is intended to do
02:34:58 <monqy> all I remember is utrecht is scary
02:35:22 <elliott> itidus20: knowing they're helping spammers won't stop people helping
02:35:34 <oerjan> itidus20: this is supposed to trick the people filling in the captchas to reveal what website they are filling it in on
02:35:34 <elliott> not starving > not helping spammers
02:35:40 <MDude> Well I think it would actually stop a few folk.
02:35:46 <MDude> Just not enough.
02:35:54 <elliott> MDude: I gather they mainly use farms of Chinese people and the like
02:36:02 <elliott> so... I doubt it
02:36:11 <elliott> gotta love slavery
02:36:15 <MDude> Yes, though that wouldn't exactly be like Mechanical Turk.
02:36:23 <elliott> indeed
02:38:04 <MDude> In that case, it seems like it would be easier to help decrease poverty in china that to stop an army of determined slaves.
02:38:29 <itidus20> its also prisoners
02:38:48 <itidus20> i heard that they make prisoners play world of warcraft for example
02:39:10 <MDude> I would think that would be a bit risky.
02:39:18 <elliott> "Welcome to prison... here's your MMO account."
02:39:26 <elliott> "NOOOOOOOOOOOOOOO!!!"
02:39:31 <elliott> "ANYTHING BUT WORLD OF WARCRAFT!!!!!!"
02:39:32 <MDude> How to they prevent the prisoners from leaking out information?
02:39:41 <elliott> "I'm a great Starcraft player -- I swear!"
02:39:43 <oerjan> ok if these are really mostly chinese farms, then i get another idea: make captchas that require people to know something the chinese government is censoring :P
02:39:51 <itidus20> they're not allowed to "play" as such.. they have to tediously earn money
02:40:01 <elliott> oerjan: :D
02:40:05 <MDude> Ah, so no chat ability I guess.
02:40:10 <oerjan> and/or which reveals such information
02:40:11 <elliott> oerjan: "What is the Tienanmen square massacre?"
02:40:13 <itidus20> dunno
02:40:14 <monqy> alternatively: get --yes
02:40:16 <elliott> s/What is/When did the - happen/
02:40:25 <oerjan> elliott: precisely :P
02:40:42 <itidus20> oerjan :o
02:40:44 <itidus20> haha
02:40:55 <itidus20> you're genious
02:41:28 <itidus20> now... how to convince them to do that
02:42:17 <itidus20> i don't think blizzard would like that
02:42:50 <MDude> I don't think WoW uses captchas anyway.
02:42:51 <monqy> ...why did someone edit idiocy into a spam userpage
02:43:16 <itidus20> MDude, but still... the game of WoW could be edited to send such messages
02:43:17 <monqy> is 68.95.248.65 2 years of age
02:43:19 <oerjan> monqy: see above
02:43:24 <elliott> monqy: lymia
02:43:28 <monqy> oh
02:43:32 <monqy> how far above
02:43:35 <monqy> I'm bad at looking
02:43:56 <oerjan> monqy: *:06
02:44:02 <Lymee> I...
02:44:04 <Lymee> Uh....
02:44:10 * Lymee hides
02:44:13 <MDude> I would've made a joke referencing Crab Nicholson.
02:44:35 <itidus20> they could introduce new creature into WoW.. three watch crab and grass mud horse
02:45:33 <itidus20> but that would just cause a fury of immense proportions
02:46:42 <oerjan> itidus20: iirc that wouldn't be any different from a dirty pun in english
02:46:52 <oerjan> which would upset the americans i assume
02:49:17 <elliott> monqy: so the gpipe guy........
02:49:23 <elliott> monqy: responded to my issues and is looking at my fork...............
02:49:29 <elliott> and is supportive of making it windowing-system-generic...............
02:49:32 <elliott> and replacing Vec.............
02:49:55 <oerjan> unforking in progress...
02:50:01 <monqy> ........
02:50:19 <monqy> elliott: replacing vec with what
02:50:26 <elliott> monqy: something else.........maybe tuples..........
02:50:38 <elliott> these are...... the iksues.............
02:50:40 <elliott> https://github.com/tobbebex/GPipe/issues/1
02:50:40 <elliott> https://github.com/tobbebex/GPipe/issues/2
02:51:04 <monqy> but can tuples do linear algebra
02:51:42 <elliott> why not :P
02:51:56 <monqy> effort in rewriting whatever vec did
02:52:27 <elliott> gpipe doesn't use so much that rewriting the functions for tuples would be worse than keeping it
02:52:28 <oerjan> > (1,2) + (3,4) -- hm?
02:52:29 <lambdabot> (4,6)
02:52:35 <oerjan> :D
02:52:44 <elliott> oerjan: ok gpipe does a _bit_ more than that with them :D
02:52:44 <itidus20> oerjan: ok so rather something like WoWleaks
02:53:00 <elliott> oerjan: http://hackage.haskell.org/packages/archive/Vec/0.9.8/doc/html/Data-Vec-LinAlg.html
02:53:32 <itidus20> finding out what is being censored and leaking it in WoW
02:53:49 -!- pumpkin has joined.
02:54:36 <oerjan> itidus20: i really don't think WoW is a useful place for this. all it would achieve is to get it banned in china.
02:55:27 <itidus20> yeah
02:56:38 -!- copumpkin has quit (Ping timeout: 250 seconds).
02:56:47 -!- pumpkin has changed nick to copumpkin.
02:58:33 <oerjan> i have this idea that the captcha would discriminate based on IP - it would use bad information about any country _except_ the one you are connecting from
02:59:54 <oerjan> thus you would only get your own country insulted if you are doing something like rerouting through a botnet in another country
03:00:39 <elliott> :D
03:00:44 <oerjan> (as spammers are likely to do)
03:01:59 <elliott> Warning: Ignoring unusable UNPACK pragma on the
03:02:00 <elliott> second argument of `Cons'
03:02:01 <elliott> noooooooooooooo
03:02:17 -!- BeholdMyGlory has quit (Read error: Operation timed out).
03:02:36 <oerjan> elliott: UNPACK cannot be used on polymorphic types, can it?
03:02:42 <oerjan> (vague recall here)
03:03:04 <oerjan> because the unpacked size has to be known
03:03:12 <Lymee> oerjan, why would you do that?
03:03:27 <oerjan> Lymee: do what?
03:03:44 <elliott> oerjan: yeah, I just want these compile-time vectors to end up as effectively tuples, really :P
03:03:49 <elliott> compile-time-size that is
03:04:23 -!- BeholdMyGlory has joined.
03:04:55 <elliott> I really wish GHC had pattern synonyms
03:05:53 <monqy> a few things about patterns make me sad but I forgot what they are oops
03:05:58 <Lymee> :t tmap f (a, b, c) = (f a, f b, f c)
03:05:58 <lambdabot> parse error on input `='
03:06:06 <Lymee> :t \f (a, b, c) -> (f a, f b, f c)
03:06:06 <lambdabot> forall t t1. (t -> t1) -> (t, t, t) -> (t1, t1, t1)
03:08:21 <oerjan> monqy: well they aren't truly first class for one thing
03:08:38 <oerjan> well, i guess that's most of it
03:09:22 <elliott> oerjan: what's the maximum tuple length the report guarantees again?
03:09:40 <oerjan> 15 rings a bell, but don't count on it
03:09:45 <elliott> heh
03:11:41 <oerjan> of course only 2 has more than a couple useful functions
03:12:29 <monqy> was that a pun aaaaaaa
03:12:35 <oerjan> no
03:12:38 <monqy> ok
03:12:48 <oerjan> unless by accident
03:13:39 <monqy> lack of general support for n-touples makes me sad
03:15:05 <monqy> does TH help much at all?
03:15:36 <monqy> it's been so long since I used it, but I remember some general tuple constructy stuff
03:17:29 <elliott> im trying to figure out how to make constructing tuples non-ugly :(
03:17:33 <elliott> a :- b :- c :- Nil is ugly because of the :- Nil
03:17:43 <elliott> but (a :- b :- c) is unsustainable, you have to use ugly type-family crap and it doesn't really work
03:17:52 <elliott> or typeclass shit i suppose
03:18:32 <monqy> the :- Nill reminds me of the :.() or whatever it was in Vec
03:18:51 <monqy> .: ????????
03:20:32 <elliott> monqy: yeah it's pretty much the same
03:20:34 <elliott> and :.
03:20:35 <elliott> it's a constructor
03:20:45 <elliott> it's just that Vec doesn't use gadts so it can be more flexible about waht the nil value is
03:20:48 <elliott> hmm, I could try a quasiquotation thing
03:21:15 <itidus20> ok i just had an idea for a programming game.. basically the interpreter is undocumented.. so you have to uncover the syntax of the language somehow
03:21:19 <elliott> [vec| a, b, c |] or something I guess
03:21:35 <monqy> are the commas necessary
03:21:47 <elliott> monqy: well I guess not
03:21:48 <monqy> I guess they might help make it cleaner
03:21:49 <itidus20> perhaps you could infer the syntax entirely through error messages
03:21:54 <elliott> [vec| (9+0) (9+9) |] is kind of ugly
03:21:58 <monqy> yeah
03:21:59 <elliott> compared to [vec| 9+0, 9+9 |]
03:22:00 <elliott> but umm
03:22:04 <elliott> f [vec| a, b |] = ...
03:22:05 <elliott> is ugly too
03:22:06 <elliott> maybe v
03:22:09 <elliott> f [v|a,b|] = ...
03:22:10 <elliott> ugh
03:22:23 <elliott> hmm
03:22:27 <elliott> I guess f [v|(a,b)|] = ...
03:22:29 <elliott> might be ok
03:22:36 <itidus20> and back to nap
03:23:13 <monqy> I prefer [v|a,b|] over [v|(a,b)|]
03:23:22 <monqy> the parens seem a bit extraneous
03:23:23 <elliott> oh and that means you can't shadow v
03:23:25 <elliott> :(
03:23:33 <monqy> ???
03:23:38 <elliott> yeah
03:23:42 <elliott> in [abc|...|]
03:23:44 <elliott> abc is a varname
03:24:08 <monqy> oh, that stuff doesn't have its own namespace
03:24:09 <monqy> ?
03:25:07 <elliott> yeah
03:26:48 <monqy> I think my favourite so far might be [vec| a, b |], in that case
03:28:00 <elliott> vecSizeIsNat :: ((Nat n) => r) -> Vec n a -> r
03:28:01 <elliott> vecSizeIsNat k V = k
03:28:01 <elliott> vecSizeIsNat k (_ :- xs) = vecSizeIsNat k xs
03:28:01 <elliott> mah proofs,,,
03:32:50 <copumpkin> :o
03:32:56 <copumpkin> statically sized vectors, eh
03:33:01 <copumpkin> I bet you need
03:33:04 <copumpkin> THE PROOF WIZARD
03:33:08 -!- copumpkin has changed nick to ProofWizard.
03:33:12 <elliott> YAAAAAAAAAAAY
03:33:19 <elliott> I wish GHC had proper existential quantification, can you make this happen?????????????????
03:33:24 <ProofWizard> NO
03:33:39 <elliott> I am all kinds of down on having to choose between continuation-passing style and a typeclass for my fromList, ProofWizard
03:33:40 <elliott> All kinds of down
03:33:53 <ProofWizard> or just an existential wrapper
03:34:00 <ProofWizard> saves you from explicit continuations, at least
03:34:14 <ProofWizard> besides, things aren't all fun and games with real existentials
03:34:39 <elliott> ProofWizard: Well, yeah.
03:34:44 <elliott> And I know they aren't, but I can dream.
03:35:44 <elliott> ProofWizard: I don't suppose proof wizards have an opinion on how to mitigate or avoid the ugly ":- V" in (a :- b :- c :- V) without resorting to an even uglier [vec| a, b, c |]
03:36:11 <ProofWizard> no
03:36:52 <elliott> ProofWizard: You are the shittiest kind of wizard, man
03:36:56 <ProofWizard> :(
03:37:20 <elliott> ProofWizard: I'm sorry :(
03:37:22 <elliott> I take it back
03:37:56 <elliott> ProofWizard: I don't suppose you know of any decent existing statically-sized vector packages on Hackage, though? I was incredibly surprised that I couldn't find a good one :-P
03:38:02 <ProofWizard> nope
03:38:09 <Patashu> Hmm, I'm still not happy with the name of http://esolangs.org/wiki/Wirefunge
03:38:15 <ProofWizard> most of the decent ones I've written live in dark corners of my hard drive or on hpaste
03:38:47 <elliott> Patashu: Call it the wire-crossing problem
03:39:09 <elliott> ProofWizard: You should join my (one-man) Bitter About All the Old Hpastes Being Lost Brigade
03:39:27 <monqy> im join too
03:39:36 <monqy> one time I couldn't find a hpaste I wanted to find
03:39:39 <monqy> because it was lost
03:39:43 <monqy> this upset me
03:41:20 <Patashu> lol
03:48:41 <elliott> http://hpaste.org/49865 whats meant to be seemingly impossible about this....
03:49:30 <Patashu> what do you call those, nondeterministic functions?
03:49:31 <Patashu> like in haskell
03:50:00 <elliott> wat?
03:50:09 <Patashu> I saw one that made power sets in learnyouahaskell
03:50:28 <monqy> what
03:52:48 <oerjan> > filterM (const [False, True]) "abcd"
03:52:49 <lambdabot> ["","d","c","cd","b","bd","bc","bcd","a","ad","ac","acd","ab","abd","abc","...
03:52:52 <oerjan> that one?
03:52:56 <Patashu> that one yes
03:52:57 -!- ProofWizard has changed nick to copumpkin.
03:53:10 <oerjan> in that case, "list monad"
03:53:54 <elliott> (diff) (hist) . . List of ideas‎; 03:03 . . (+504) . . Saulrh (Talk | contribs) (→General Ideas - Structifuck and Protofuck: create a spec for object-oriented Brainfuck, then write google protocol buffers using for it.)
03:53:57 <elliott> kill dead
03:54:25 <oerjan> webscalefuck
03:54:30 <Patashu> cloudfuck
03:55:35 <Patashu> Everyone can provide their own implementation of '+'
03:55:51 <Lymee> Object-oriented.....
03:55:52 <Lymee> WHAT
03:55:54 <monqy> hi
04:00:22 <pikhq> Insufficiently object.
04:00:54 <pikhq> I simply propose that everything is an object factory.
04:01:46 <oerjan> AdditionServerProxyRequestFactory
04:01:54 <oerjan> (am i doing it right?)
04:02:06 <elliott> tc factories
04:02:22 <pikhq> oerjan: Except that you obviously also have an AdditionServerProxyRequestFactoryFactory.
04:02:32 <pikhq> And so on.
04:02:40 <Patashu> Hmm
04:02:49 <Patashu> What we need is something to dynamically create factory classes at runtime
04:02:54 <Patashu> Then we don't need to define them all \o/
04:02:54 <myndzi> |
04:02:54 <myndzi> >\
04:03:31 <pikhq> I think that's called "partial application".
04:04:25 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:07:16 <itidus20> JustAnotherVirtualmachineApplicationFactory
04:07:25 -!- sebbu has joined.
04:07:26 -!- sebbu has quit (Changing host).
04:07:26 -!- sebbu has joined.
04:11:38 -!- myndzi has quit (Remote host closed the connection).
04:12:01 -!- myndzi has joined.
04:12:32 -!- myndzi has quit (Client Quit).
04:12:39 -!- myndzi has joined.
04:16:16 -!- MDude has changed nick to MSleep.
04:19:19 -!- oerjan has quit (Quit: Good night).
04:28:10 -!- CakeProphet has quit (Ping timeout: 240 seconds).
04:28:43 <fizzie> They did not "already do"; they made Unity the default, sure, but the old classic Gnome desktop is still an option in 11.04.
04:31:49 <elliott> Right.
04:35:07 <fizzie> Though the "not an option in 11.10" seems to mean that it's not going to be on the CD; I suppose they'll still hae packages for it.
04:42:39 -!- CakeProphet has joined.
04:42:39 -!- CakeProphet has quit (Changing host).
04:42:39 -!- CakeProphet has joined.
04:52:56 <Lymee> http://www.4clojure.com/problem/26 < pfft, fail
04:52:58 <Lymee> Cheaty solution is shortest.
05:02:37 -!- lament has quit (Ping timeout: 240 seconds).
05:06:29 -!- CakeProphet has quit (Ping timeout: 255 seconds).
05:14:17 -!- itidus21 has joined.
05:17:47 -!- itidus20 has quit (Ping timeout: 246 seconds).
05:42:18 -!- quintopia has quit (Ping timeout: 258 seconds).
05:43:53 -!- quintopia has joined.
06:01:04 -!- angstrom has quit (Ping timeout: 252 seconds).
06:37:41 <elliott> i just want to use old versions of netscape and fvwm all day, is that so wrong
06:39:05 <olsner> sounds pretty wrong, yes
06:39:10 <elliott> :(
06:43:50 <fizzie> My first window manager (IIRC): fvwm95. (Pretty sad.)
06:44:52 <fizzie> If you don't count the rather screwed-up "Workplace Shell" clone for Windows 3.1; http://toastytech.com/guis/wps.html
06:45:06 <fizzie> "It was created because people might find it useful if they used OS/2 and also had to use Windows 3.1, or for people who just wanted to learn about the OS/2 Workplace Shell without having to install OS/2."
06:46:22 <elliott> fvwm95 is wonderful
06:46:25 <elliott> im so happy for you fizzie
06:48:00 <fizzie> http://fvwm95.sourceforge.net/screenshot-full.gif OH IT LOOKS SO FAMILIAR
06:48:14 <fizzie> The dithered Netscape screen and all.
06:50:08 <pikhq> My first non-DE WM was IceWM, I think.
06:50:33 <pikhq> Still have a soft spot for IceWM, TBH.
06:51:07 <fizzie> I think I went with fvwm95 not because of some conscious choice, but because it was installed I-think-almost-by-default by the Slackware 7-point-something.
06:51:50 <fizzie> Later on Enlightenment was an order of magnitude prettier, but ran too slow on my hardware to really be usable. I can't quite recall what I was using at that point instead.
06:52:20 <fizzie> Window Maker, I think.
06:52:24 -!- elliott has quit (Read error: Connection reset by peer).
06:52:33 <fizzie> Yes, that.
07:13:32 -!- elliott has joined.
07:34:11 <elliott> oh dear, the Lion installer repartitions the disk
07:34:18 <elliott> this could get messy
07:35:32 <monqy> what is this
07:35:44 <monqy> oh mac
07:36:04 <elliott> yes, im anticipating a horrific upgrade process
07:36:04 <monqy> I forgot about their cat thing
07:36:07 <elliott> lol
07:36:08 -!- NihilistDandy has joined.
07:36:24 <elliott> in the meantime I'm entertaining myself by reading the Ars Technica review: "If you can imagine three dials labeled "color," "contrast," and "contour," Apple has been turning them down slowly for years. Lion accelerates that process."
07:36:36 <elliott> more color, contrast and contour, only twenty-nine dollars
07:36:40 -!- Nihilist1andy has joined.
07:36:41 <elliott> jobs hath spoken
07:37:28 <elliott> "The new look is not a radical departure—everything hasn't gone jet black and grown fur, for example" this review is just gonna be a list of the ways in which apple are going to let me down with this upgrade
07:37:50 <NihilistDandy> Which upgrade?
07:37:50 <lambdabot> NihilistDandy: You have 1 new message. '/msg lambdabot @messages' to read it.
07:38:02 <elliott> NihilistDandy: Jobs OS Lion
07:38:31 <NihilistDandy> I rather like it. Then again, I've been playing with it since Dev
07:38:31 <elliott> I'm on the less pleasant OS partition of my computer
07:38:37 <elliott> (the one that isn't Linux)
07:39:03 <NihilistDandy> @tell Phantom_Hoover I'm so proud of my meta-dwarf
07:39:03 <lambdabot> Consider it noted.
07:39:28 <elliott> "Finally, there's Apple's budding love affair with a particular linen texture."
07:39:36 <elliott> tell me more
07:40:21 <NihilistDandy> About the linen texture?
07:40:33 <elliott> "Though I can assure you that Lion comes with more than eight applications, you wouldn't know it from looking at this screenshot." but it has chess and a dictionary, why would i need anything else..................
07:40:37 <NihilistDandy> It's just this gray thing on the login screen
07:40:44 <elliott> why cna't there be only eight applications...............
07:40:48 <elliott> NihilistDandy: im not talking to you :P
07:40:57 <elliott> i'm having an imagined dialogue with sirawhatever
07:41:03 <NihilistDandy> lol
07:41:23 <elliott> "Apple isn't (yet) asking us to start poking our fingers at our Mac's screen" more disappointments
07:41:30 * elliott attacks his screen a few times in protest
07:42:03 <elliott> "Lion further cements the dominance of touch by making all touch-based scrolling work like it does on a touchscreen."
07:42:14 <elliott> "just rebooted into my other OS, time to learn how to scroll again"
07:42:29 <NihilistDandy> elliott: You can shut that off
07:42:35 <elliott> so I learned next paragraph
07:42:40 <NihilistDandy> Ah
07:43:02 <NihilistDandy> I'm not particularly tied to my scrolling direction. I go both ways, as the kids say
07:44:22 <elliott> I wonder how you pirate the retail Lion, a .dmg with the installer .app in it?
07:44:29 <elliott> (Not that I would ever commit such an abhorrent crime, of course.)
07:46:27 <NihilistDandy> elliott: I have a pirated copy
07:46:31 <NihilistDandy> But I also bought it
07:46:46 <elliott> Shock!
07:46:52 <elliott> You should be hung.
07:46:55 <NihilistDandy> JUST LIKE FUCKING MINECRAFT
07:47:28 <NihilistDandy> I've also decided I'm going to write a MIPS interpreter in Haskell
07:48:02 <elliott> "Interpreter" :-D
07:48:10 <elliott> Finally, formal semantics for MIPS
07:48:55 <NihilistDandy> s/interpreter/simulator/
07:48:59 <NihilistDandy> I'm a touch drunk
07:49:26 <NihilistDandy> Like spim, but in Haskell
07:49:37 <NihilistDandy> I just need to come up with a pun suitable for hackage
07:49:39 <elliott> I might have a go at it, too
07:49:43 <elliott> Sounds like "fun"
07:50:05 <elliott> NihilistDandy: Are you going to emulate a system, or just have the simulator provide its own syscalls a la JSMIPS?
07:50:07 <Lymee> Build an i386 CPU in Minecraft.
07:50:12 <NihilistDandy> I'm gonna call mine "Elliottcraft"
07:50:57 <NihilistDandy> elliott: Not sure, yet, but knowing me it could easily be the former
07:51:04 <elliott> NihilistDandy: Gross :)
07:51:36 <NihilistDandy> No one ever had fun staying clean
07:51:46 <elliott> that is one hideous window-opening animation
07:53:24 <elliott> http://i.imgur.com/RytKT.png <-- also something has gone terribly wrong with the player controls
07:53:38 <elliott> Infinity:0NaN:0NaN is a good film length
07:53:49 <NihilistDandy> Caption hilarity
07:54:30 <elliott> god this review really is nineteen pages isn't it
07:54:55 <NihilistDandy> Is it Ars Technica?
07:55:06 <elliott> yes
07:55:10 <NihilistDandy> Knew it
07:55:35 <Patashu> link me please
07:55:49 <elliott> http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars
07:55:57 <elliott> im reading it more out of principle than anything
07:57:22 <elliott> http://static.arstechnica.net/2011/07/04/lion/ical-big.png suddenly i am puking
07:57:28 <elliott> how did this happen
07:57:49 <Patashu> is that... wood grain?
07:57:50 <NihilistDandy> I know, right?
07:57:55 <NihilistDandy> Look at Address Book
07:57:58 <Patashu> wait no
07:58:05 <Patashu> it's... leather? or something
07:58:06 <elliott> Patashu: leather
07:58:08 <elliott> fucking leather
07:58:12 <elliott> its a fucking leather diary thing
07:58:13 <elliott> jesus christ
07:58:17 <Patashu> the first OS that vegans can't use
07:58:25 <elliott> apple what are you DOING
07:58:30 <elliott> i thought brushed metal was bad
07:58:45 <NihilistDandy> srsly
07:58:55 <NihilistDandy> I hope there's a skinning system on the way
07:58:59 <elliott> this reminds me of the first few versions where the pinstripes were like
07:59:02 <elliott> really dark
07:59:04 <NihilistDandy> Or I just have to go an change the damn textures myself
07:59:09 <NihilistDandy> *and
07:59:11 <elliott> and so you couldn't read any window title or toolbar icon or anything
07:59:19 <elliott> NihilistDandy: remember UNO?
07:59:39 <NihilistDandy> Maybe?
07:59:49 <elliott> http://gui.interacto.net/
07:59:53 <NihilistDandy> Oh, yeah
08:00:02 <NihilistDandy> Now I've remembered it
08:00:13 <elliott> i love how there was an application designed solely to stop the system having like ten wildly different themes
08:00:50 <NihilistDandy> :D
08:01:18 <NihilistDandy> Apple needs to stop hiring hipsters, or marketing to hipsters, or whatever caused this
08:01:32 <NihilistDandy> Stop raping puppies
08:01:33 <elliott> i love how leopard was like, fuck this, we're using exactly one theme from now on
08:01:37 <elliott> then the itunes team went
08:01:43 <elliott> "... hi we have a new theme :D :D :D :D :D :D"
08:01:56 <elliott> and nobody shot them for some reason???
08:02:00 <elliott> i hate this os
08:02:10 <Patashu> why do you use it then
08:02:14 <NihilistDandy> At least iTunes is finally 64-bit.
08:02:23 <elliott> Patashu: i don't
08:02:24 <elliott> i use linux
08:02:34 <elliott> i boot into os x only when i need to use something that doesn't run on linux, or when i need to upgrade it
08:02:54 <elliott> NihilistDandy: woo, now _there's_ a change that will have no conceivable effect on me whatsoever
08:02:58 <elliott> hmm, wait, so they ported it to Cocoa?
08:03:04 <NihilistDandy> Yeah
08:03:16 <elliott> does it still have the fucking window management buttons vertically
08:03:20 <NihilistDandy> Still pretty horrendous
08:03:30 <elliott> because if it does
08:03:36 <NihilistDandy> And no, the buttons are back to a sensible horizontal
08:03:36 <elliott> i think i'll still avoid opening it for my sanity
08:03:40 <elliott> oh good
08:03:45 <elliott> does it...
08:03:48 <elliott> ummm
08:03:49 <elliott> like
08:03:51 <elliott> what's the catch
08:04:01 <NihilistDandy> It's actually unified fairly well, as they say
08:04:07 <elliott> http://static.arstechnica.net/2011/07/04/lion/address-book.png
08:04:07 <NihilistDandy> It's just also boring
08:04:09 <elliott> oh my god
08:04:10 <elliott> im actually laughing
08:04:19 <NihilistDandy> Didn't I tell you?
08:04:27 <elliott> yes but
08:04:30 <elliott> i didnt know it would be that bad
08:04:38 <NihilistDandy> I know
08:04:49 <NihilistDandy> I mean, many iPad owners don't know what a book is
08:04:56 <NihilistDandy> How will they know how to parse this design?
08:05:12 <elliott> clicking that address book screenshot opens this: http://static.arstechnica.net/2011/07/04/lion/dangerous.html
08:05:41 <NihilistDandy> :/
08:05:53 <elliott> "The three-pane view (groups → people → detail) is gone, presumably because a book can't show three pages at once."
08:06:11 <NihilistDandy> Triptych
08:06:41 <elliott> :DD
08:06:45 <elliott> best address book format
08:07:07 <elliott> on iCal, in March: "That pic has got to be fake, it's waaaaaay to different to the shots/video of DP1."
08:07:39 <NihilistDandy> :D
08:07:44 <elliott> "causes the current desktop picture to recede slightly into the center of the screen, revealing behind it our old friend the linen pattern."
08:07:46 <elliott> i love you, linen pattern
08:09:42 <elliott> "Holding down the option key makes all the icons sprout close widgets as they start to wiggle."
08:09:55 <elliott> oh more linen. hi linen
08:12:33 -!- Nihilist1andy has quit (Ping timeout: 250 seconds).
08:12:44 <elliott> monqy: oh that RDP
08:12:58 -!- Nihilist1andy has joined.
08:13:10 <monqy> yes that rdp
08:13:35 <Nihilist1andy> And the main benefit to the iTunes 64 bit nonsense is that it stops me having a fit every time I look at System Monitor
08:13:49 <elliott> monqy: dmbarbour rdp reactive demand programming thing
08:13:56 -!- NihilistDandy has quit (Ping timeout: 260 seconds).
08:13:59 <monqy> elliott: I forget everything else about it
08:14:18 <elliott> Nihilist1andy: I have a fit when I look at System Monitor because when I do that it means I'm trying to kill something that's about to hang the system because my OS sucks
08:14:56 <elliott> http://static.arstechnica.net/2011/07/04/lion/save-a-version.png
08:15:04 <elliott> THEY STOLE LEADEN'S CORE FEATURE
08:15:08 <elliott> BASTARDS
08:15:15 <Nihilist1andy> I just use it to watch ghc blow up when I do odd things
08:15:21 -!- NihilistDandy has joined.
08:15:26 -!- Taneb has joined.
08:15:45 <Taneb> Hello!
08:15:48 -!- Nihilist2andy has joined.
08:16:30 <elliott> Nihilist1andy: im glad that the review is basically advocating orthogonal persistence for an entire chapter
08:16:36 <elliott> maybe i'll just throw it at people to convince them
08:17:13 <Nihilist1andy> I'm glad that Ars published a new version of War and Peace that's a little more Cupertino-flavored
08:17:25 <elliott> :D
08:17:41 <elliott> Nihilist1andy: this is shorter than the average length i think
08:17:47 <elliott> the last one was over twenty pages
08:17:53 <Nihilist1andy> But about a fucking OS update?
08:18:09 <Nihilist1andy> Does Whiny Wombat get this kind of treatment?
08:18:53 <Taneb> Whiny Wombat?
08:18:58 <elliott> "the OS may terminate applications that are not in use in order to reclaim resources—primarily memory, but also things like file descriptors, CPU cycles, and processes." yess keep arguing for things i've been arguing for for years
08:19:01 <Taneb> Are you one of them time travelling ubuntu users?
08:19:07 <elliott> WHO'S THE CRACKPOT NOW ASSHOLES...........................
08:19:51 <elliott> Nihilist1andy: Ubuntu users get OMG! Ubuntu!... this is one of the few superior points of OS X
08:19:58 <zzo38> Apparently according to Canadian law, in case of a riot the sheriff or mayor is required to go there if they have received notice, and tell them that the queen has authorized them to be imprisoned for life. However, the punishment for a riot is listed as only two years. Are they trying to confuse everyone?
08:20:44 <Nihilist1andy> Taneb: THERE'S STILL TIME
08:20:46 <Taneb> Them Canadians don't listen to the Queen much
08:20:50 -!- Nihilist4andy has joined.
08:20:53 <Taneb> They're more Rolling Stones fans
08:21:52 -!- Nihilist1andy has left ("http://haskell.org").
08:22:04 -!- Nihilist1andy has joined.
08:22:13 <Nihilist1andy> What the hell, client :/
08:22:14 <elliott> Nihilist1andy: stop reproducing
08:22:16 <Nihilist1andy> brb
08:22:30 -!- Nihilist1andy has quit (Quit: leaving).
08:22:30 -!- NihilistDandy has quit (Quit: leaving).
08:22:30 -!- Nihilist4andy has quit (Client Quit).
08:22:57 -!- NihilistDandy has joined.
08:22:58 -!- Nihilist2andy has quit (Ping timeout: 252 seconds).
08:23:40 <NihilistDandy> Is it just me, yet?
08:23:47 <NihilistDandy> Christ on sale
08:24:08 <NihilistDandy> My irssi bouncer and my head client appear to have been fighting after my connection died, there
08:24:28 <NihilistDandy> And they're usually such a nice couple
08:25:01 <elliott> "The previous release of Mac OS X focused on internal changes. My review did the same, covering compiler features, programming language extensions, new libraries, and other details that were mostly invisible to end-users." <-- i remember that, it was a nice review
08:25:10 <elliott> like he talked about clang for at least a chapter
08:25:23 <elliott> to an audience the vast majority of which has probably never written a single line of code in their life
08:26:13 <NihilistDandy> So it's like reddit, only it's just a single voice
08:26:54 <elliott> "Lion includes a trusted daemon process called Powerbox (pboxd) whose job is to present and control open/save dialog boxes on behalf of sandboxed applications."
08:27:06 <elliott> i sure wish os x didn't suck or i'd be happy that someone is finally listening to good ideas
08:27:17 <elliott> "Oh, and in case it doesn't go without saying, all sandboxed applications must be signed."
08:27:18 <Patashu> that's a good idea
08:27:19 <elliott> s i g h
08:27:21 <Patashu> lol
08:28:03 <pikhq> ... *Why* would you require sandboxed applications to be signed, exactly?
08:28:17 <pikhq> Surely, surely sandboxing makes that even *less* useful.
08:28:21 <Taneb> So you can get developer's autographs?
08:28:23 <elliott> because jobs must controleverything [insert picture of steve jobs with horns]
08:28:36 <pikhq> Ah, right, Jobs thinks the iPhone is the future of computing.
08:28:40 <Taneb> You know what's fun?
08:28:49 <Taneb> Asking random people for their autographs
08:29:03 <pikhq> When, at *best*, it's the future of small-device touchscreen UIs.
08:29:08 <elliott> you're way too social, get out
08:29:32 <elliott> pikhq: the iPhone, probably not; the iPad... well, it's closer than current desktop PCs
08:29:46 <pikhq> elliott: I did say "at best".
08:29:46 <monqy> tthe future is a bad place
08:29:51 <elliott> "Apple has decreed that all applications submitted to the Mac App Store must be sandboxed, starting in November."
08:29:52 <elliott> oh
08:30:11 <Taneb> The only way to find out what the future's like is to go there
08:30:14 <elliott> pikhq: I meant re computing
08:30:42 <elliott> "What a developer can do instead is isolate the video decoding task in its own process with severely reduced privileges. A process that's decoding video probably doesn't need any access to the file system, the network, the built-in camera and microphone, and so on. It just needs to accept a stream of bytes from its parent process (which, in turn, probably used Powerbox to gain the ability to read those bytes from disk in the first pla
08:30:43 <elliott> ce) and return a stream of decoded bytes. Beyond this simple connection to its parent, the decoder can be completely walled off from the rest of the system."
08:30:43 <elliott> SOUNDS
08:30:44 <elliott> LIKE
08:30:46 <elliott> A
08:30:48 <elliott> PURE
08:30:49 <pikhq> elliott: Ah. Yeah, the iPad is probably *closer*, but it feels almost like for every step forward they made a step back.
08:30:50 <elliott> FUNCTION
08:30:52 <elliott> TO
08:30:54 <elliott> ME
08:30:58 <elliott> FUCKIN' FUNCTIONAL SUPERIORITY SLAM DUNK
08:31:04 <elliott> SHAZAAAAAAAAAAAM
08:31:12 * elliott plays air guitar
08:31:27 <NihilistDandy> Is it lambda-shaped?
08:31:35 <elliott> oh ym god
08:31:36 <pikhq> "Hmm. Some amount of orthogonal persistence... But you don't own the machine!"
08:31:45 <elliott> i never knew i needed a lambda shaped electric guitar in my life until now
08:31:48 <elliott> NihilistDandy
08:31:51 <elliott> NihilistDandy i am going to start a band
08:31:53 <elliott> and
08:31:54 <elliott> lambda
08:31:54 <elliott> shaped
08:31:55 <elliott> guitars
08:31:57 <elliott> only
08:31:57 <NihilistDandy> YES
08:31:59 <NihilistDandy> YES
08:32:03 <NihilistDandy> YES
08:32:05 <pikhq> "Nice UI, but YOU NO GET COMPILER"
08:32:15 <fizzie> elliott: Is it just me, or have you not been sleeping again?
08:32:24 <Patashu> I'll bring the ellipses shaped drumkit
08:32:50 <elliott> fizzie: I've not been awake for very long.
08:32:59 <elliott> Less than fifteen hours, that's for certain.
08:33:06 <elliott> I'm just this cool all the time.
08:33:14 <fizzie> Must be.
08:33:16 <elliott> NihilistDandy: OK DO YOU WANT TO JOIN.
08:33:24 <NihilistDandy> I'M SO FUCKING IN
08:33:27 <elliott> You need to play an instrument shaped like some kind of ... thing.
08:33:43 <NihilistDandy> Tambourines look like composition
08:33:44 <elliott> Monadic bind xylophone????
08:33:49 <NihilistDandy> Also good
08:34:12 <Taneb> Identity function microphone?
08:34:12 <elliott> Like, two lines of keys oriented vertically going diagonally that meet and then go horizontally
08:34:18 <NihilistDandy> <$> What instruments look like this?
08:34:21 <elliott> Except split into two when they meet I guess
08:34:22 <NihilistDandy> ZIthers?
08:34:29 <elliott> NihilistDandy: A... symmetrical triangle?
08:34:49 <Patashu> <=> Can this be made into an instrument
08:34:56 <NihilistDandy> KEYTAR
08:35:12 <elliott> We're called the Knights of the Lambda Calculus, no arguments.
08:35:20 <elliott> I guess the real Knights might sue us but who cares.
08:35:55 <NihilistDandy> Alternatively, theremin built into a frame with some shape
08:36:10 <NihilistDandy> Why would they sue?
08:36:18 <elliott> For using their name :-P
08:36:19 <NihilistDandy> Would we not rock them purely and without side effects?
08:36:30 <elliott> oh my god this is the best worst thing
08:36:46 <NihilistDandy> We'll have a song called
08:37:12 <NihilistDandy> @type curry . curry . uncurry
08:37:13 <lambdabot> forall a b b1 c. ((a, b) -> b1 -> c) -> a -> b -> b1 -> c
08:37:15 <NihilistDandy> That
08:37:25 <elliott> Clearly we have to cover http://www.youtube.com/watch?v=HM1Zb3xmvMc.
08:37:39 <NihilistDandy> Don't ask me Y
08:38:12 <elliott> Genre: Funktional
08:38:13 <elliott> This is so bad
08:38:14 <elliott> We have to stop
08:38:35 <NihilistDandy> NO
08:38:47 <NihilistDandy> Also, related videos made me a pedophile :/
08:38:48 <NihilistDandy> http://www.youtube.com/watch?v=dLLDWw7r3nQ&feature=related
08:38:59 <NihilistDandy> I thought she was gonna talk about parentheses
08:39:02 <NihilistDandy> BUT NO
08:39:10 <Patashu> It is imperative that you listen to my band
08:39:36 <NihilistDandy> Patashu: WE ARE BUSY CONSTRUCTING A NEWTYPE OF AWESOME
08:40:02 <NihilistDandy> :D
08:40:17 <elliott> A Newtype of Science.
08:40:43 <NihilistDandy> Just "Dance"
08:40:58 <NihilistDandy> That will be our single
08:41:11 <NihilistDandy> Gotta get them out of their ergonomic desk chairs
08:41:47 <elliott> As soon as you sellouts play at RailsConf I'm quitting.
08:42:21 <Patashu> The first track on the album should be called Cons
08:42:41 <NihilistDandy> lol
08:42:54 <Lymee> @type uncurry. curry
08:42:54 <lambdabot> forall a b c. ((a, b) -> c) -> (a, b) -> c
08:43:08 <NihilistDandy> elliott: The headlines will read "eta reduction" as our record sales climb
08:43:19 <elliott> NihilistDandy: idgi
08:44:07 <NihilistDandy> I equate lambda expressions with obscurity, for this metaphor
08:44:11 <elliott> heh
08:44:29 <NihilistDandy> Slightly more sense
08:44:34 <NihilistDandy> Not much, though
08:44:47 <elliott> oh my god
08:44:55 <elliott> he's explaining how you can't do precise garbage collection for C
08:45:02 <elliott> because of the untypedness of memory
08:45:09 <elliott> my hero
08:45:16 <elliott> educate the masses....educate.....
08:45:31 <NihilistDandy> Who is?
08:46:05 <elliott> siracusa, the review-writer
08:47:10 <NihilistDandy> Ah
08:47:32 <elliott> "To ensure that ARC can do what it's designed to do in a correct manner, a few additional language restrictions have been added. Most of them are esoteric, existing on the boundaries between Objective-C and plain C code (e.g., C structs and unions are not allowed to contain references to Objective-C objects)."
08:47:35 <elliott> huh
08:47:46 <elliott> now the reverse just has to happen and they'll have two entirely separate data models :D
08:47:59 <elliott> oh it's per-compilation-unit
08:49:33 <Patashu> Lol
08:49:37 <Patashu> The address book in lion is literally a book
08:49:39 <Patashu> THANKS
08:50:02 <elliott> Patashu: welcome to five pages up :P
08:51:01 <fizzie> At least the videoconferencing app doesn't look like a phone. (Cf. http://homepage.mac.com/bradster/iarchitect/phone.htm )
08:53:31 <elliott> "and to top it off, normal Objective-C message sending is 33 percent faster."
08:53:38 <elliott> how have they not eked every last bit of performance out of that code path yet?
08:53:46 <elliott> I know it involves looking up a string in a hash table, but c'mon...
08:53:56 <fizzie> And the CD player probably doesn't look like http://homepage.mac.com/bradster/iarchitect/realcd.htm either; I've forgotten what it looks like if you try to play an audio CD in OS X.
08:54:25 <NihilistDandy> fizzie: iTunes
08:54:44 <NihilistDandy> So meh
08:54:52 <elliott> fizzie: I note that QuickTime four is also on that site :-P
08:55:04 <elliott> "Furthermore, ARC does very little to address the other pillar of modern, high-level programming: memory safety."
08:55:12 <elliott> i wonder if most people reading this review just skip this section
08:57:01 <monqy> ARC?
08:57:42 <monqy> the only arc I know is that lisp dialect paul graham's was it whatever happened to that
08:57:42 <elliott> monqy: automatic reference counting
08:57:44 <monqy> ah
08:57:47 <elliott> and it sucked
08:57:53 <elliott> it continues to suck to the present day
08:57:55 <elliott> (pg's that is)
08:58:13 <monqy> yeah I never really understood the point
08:58:42 <elliott> "When searching for unused nodes in a b-tree file, Apple's HFS+ implementation processes the data 16 bits at a time."
08:58:46 <elliott> i cant believe os x still uses hfs+
08:58:48 <elliott> its amazing
08:58:57 <elliott> "All HFS+ file system metadata read from the disk must be byte swapped because it's stored in big-endian form."
08:59:11 <monqy> really, apple?
08:59:18 <elliott> (ok ok so actually [dunno how to type an at symbol without number keys on os x] has this too)
08:59:21 <Taneb> Is wirefunge going to use the entire of Unicode?
08:59:28 <elliott> (because the on-disk format has to be platform-independent)
08:59:40 <Patashu> nah
08:59:44 <Patashu> I can't think of enough uses anyway
08:59:48 <elliott> "File system metadata structures in HFS+ have global locks. Only one process can update the file system at a time"
08:59:49 <elliott> wow
09:00:05 <Patashu> though being able to embed a circuit in one cell and have it link to another file that implements the circuit wolud be nice
09:00:51 <elliott> "Some of those features were an easy fit, but others were very difficult to add to the file system without breaking backwards compatibility. One particularly scary example is the implementation of hard links on HFS+. To keep track of hard links, HFS+ creates a separate file for each hard link inside a hidden directory at the root level of the volume. Hidden directories are kind of creepy to begin with, but the real scare comes when yo
09:00:51 <elliott> u remember that Time Machine is implemented using hard links to avoid unnecessary data duplication.
09:00:51 <elliott> Listing the contents of this hidden directory (named "HFS+ Private Data", but with a bunch of non-printing characters preceding the "H") on my Time Machine backup volume reveals that it contains 573,127 files. B-trees or no b-trees, over half a million files in a single directory makes me nervous."
09:00:53 <elliott> oh apple
09:02:11 <Vorpal> elliott, *ouch*
09:03:14 <elliott> "The biggest is the introduction of Apple's first real crack at creating a logical volume manager: Core Storage."
09:03:16 <elliott> oh boy
09:03:45 <elliott> "At the very top level is the Logical Volume Group, which may contain one or more Physical Volumes. A Physical Volume provides storage; it may be a single physical disk, a disk image file, or even a RAID device. A Logical Volume Group exports zero or more Logical Volume Families. A Logical Volume Family contains one or more Logical Volumes, each of which presents a blank canvas onto which—finally!—a volume format like HFS+ may res
09:03:45 <elliott> ide."
09:03:48 <Vorpal> <elliott> (because the on-disk format has to be platform-independent) <-- presumably this is the case for ext4 and so on too on some platforms
09:03:53 <elliott> Vorpal: isn't this just lvm terminology lifted directly :D
09:04:06 <elliott> Vorpal: also, yeah, but for [at] it's more pronounced
09:04:17 <elliott> Vorpal: because, e.g. every integer, pointer, in every stored object, must be in one format
09:04:19 <elliott> on all platforms
09:04:37 <elliott> whereas file content can be whatever on a (big|little|whichever it is)-endian ext platform
09:04:42 <Vorpal> elliott, I think apple added "logical volume families" step
09:05:06 <Vorpal> elliott, LVM is just "volume group made out of physical volumes, from those volume groups you allocate logical volumes"
09:05:16 <Vorpal> apple has at least one extra step of indirection there
09:05:17 <elliott> "Lion's FileVault doesn't just encrypt users' home directories, and it doesn't use encrypted disk image files. Instead, it's Apple's implementation of whole disk encryption. This means that every byte of data that makes up the volume is encrypted. Furthermore, this encryption is completely transparent to all software (including the implementation of HFS+ itself) because it takes place at a layer above the volume format—a layer that
09:05:17 <elliott> application software does not see at all."
09:05:18 <elliott> good
09:06:13 <elliott> http://static.arstechnica.net/2011/07/04/lion/file-vault-recovery-key.png
09:06:14 <elliott> http://static.arstechnica.net/2011/07/04/lion/file-vault-apple-recovery-key.png
09:06:15 <elliott> cool
09:06:25 <elliott> so it constructs a private key where the password is the combination of the questions and answers, I guess
09:06:29 <elliott> then encrypts the key with it
09:06:34 <elliott> and throws away the questions and answers
09:06:50 <NihilistDandy> Is FileVault finally unshitty enough to actually use is the question
09:07:07 <Vorpal> elliott, ugh, fixed easy security questions suck
09:07:15 <elliott> Vorpal: oh, agreed
09:07:19 <elliott> Vorpal: I'm just talking about the mechanism
09:07:24 <elliott> NihilistDandy: It's entirely reimplemented, so yes
09:07:29 <NihilistDandy> Shweet
09:07:33 <Vorpal> elliott, well they have fixed stupidly easy security questions there...
09:07:34 <elliott> NihilistDandy: There can't be any compatibility problems because it's transparent
09:07:50 <Vorpal> elliott, what algorithm does filevault use on the disk
09:07:51 <NihilistDandy> Finally I don't have to use PGP, anymore
09:08:01 <elliott> Vorpal: I'm talking about the mechanism by which Apple prevents themselves from being able to have your decryption key
09:08:03 <elliott> And I don't know
09:08:18 <elliott> Also :D at the Clarus reference in that screenshot
09:08:23 <NihilistDandy> AES
09:08:26 <NihilistDandy> By the way
09:08:27 <elliott> (http://en.wikipedia.org/wiki/Dogcow for those not in the know)
09:08:41 <Vorpal> NihilistDandy, that is not very specific
09:08:57 <NihilistDandy> Not sure about the keys, themselves
09:08:59 <NihilistDandy> Hang on
09:09:00 <Vorpal> NihilistDandy, aes-cbc-essiv?
09:09:07 <elliott> "Like any talented dog, it can do flips. Like any talented cow, it can do precision bitmap alignment." so good
09:09:20 <Vorpal> NihilistDandy, I mean I can query my disk under linux and get that it uses aes-cbc-essiv:sha256 on my laptop
09:09:29 <Vorpal> (device-mapper, crypsetup)
09:09:43 <NihilistDandy> Oh, I haven't set it up, yet
09:09:48 <Vorpal> cryptsetup*
09:09:54 <NihilistDandy> So I couldn't do such a query even if I knew how
09:10:19 <elliott> Vorpal: please don't do your standard "LOL [PIECE OF NON-OPEN SOFTWARE] ISN'T OPEN HOW WEIRD" routine :P
09:10:20 <Vorpal> NihilistDandy, I wouldn't trust it if apple doesn't tell what mode they use aes in
09:10:31 <NihilistDandy> I'll see if I can find out
09:10:43 <elliott> Vorpal: You wouldn't trust OS X for anything in a million years, so that statement is misleading.
09:10:46 <Vorpal> elliott, while I doubt they would use AES in counter mode, they should specify what mode they use
09:10:54 <elliott> OK, or just keep trolling.
09:11:01 <elliott> http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/13
09:11:04 <Vorpal> elliott, for cryptography it is very important to be open, so people can trust you
09:11:05 <elliott> Vorpal: Grep /CoreStorage logical volume groups (1 found)/ and shut up
09:11:09 <elliott> It shows the mode
09:11:27 <Vorpal> ah, xts
09:13:23 <NihilistDandy> Is this good news?
09:13:42 <elliott> It looks fancy :-P
09:13:43 <elliott> OpenBSD uses it
09:13:53 <Vorpal> NihilistDandy, complicated, depends on how they do the key as far as I understood it. Which I don't see any info about ther
09:13:55 <Vorpal> there*
09:14:03 <elliott> Haha, did he really just paste a SQLite schema into one of the most widely-read OS X reviews on the internet
09:14:15 <elliott> So awesome
09:14:15 <NihilistDandy> Where?
09:14:19 <elliott> http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/14
09:15:01 <NihilistDandy> He had to pad the article
09:15:29 <fizzie> This Mozilla technology evangelist guy (who's talking about doing multimeeediatic stuff in the interwebs; this is one of the Assembly 2011 seminar things) says "which is particularly exciting" of every sort of technology he's presenting.
09:15:44 <fizzie> I guess if your job title is "technology evangelist" you sort of have to be excited about everything.
09:16:13 <cheater> especially teen ministers
09:17:44 <NihilistDandy> You aren't excited about teen ministers?
09:17:59 <NihilistDandy> They're particularly interesting
09:19:11 <elliott> "Imagine taking a dish out of the dishwasher and then having it start flopping around like a fish in your hand."
09:19:15 <fizzie> Mostly it's just about WebGL.
09:20:06 <Taneb> Patashu: can I make a feature request for Wirefunge?
09:20:26 <elliott> NihilistDandy: Does the Finder really open in All My Files by default rather than the home directory?
09:20:29 <elliott> That's interesting.
09:20:43 <NihilistDandy> It's a little unnerving
09:20:44 <Vorpal> elliott, I can't believe apple is using sqlite for any sort of largish db
09:20:49 <NihilistDandy> But you get used to it
09:20:53 <NihilistDandy> Or you shut it off
09:20:58 <elliott> Vorpal: Why?
09:21:09 <NihilistDandy> They use sqlite for every damn thing
09:21:11 <Vorpal> elliott, because sqlite scales badly in my experience
09:21:13 <elliott> SQLite is incredibly well-written and I haven't heard anything concrete about it scaling badly.
09:21:28 <elliott> "in my experience" is not really worth much, I doubt you've done a tenth of the testing they have :)
09:21:35 <Vorpal> elliott, okay, lets say it doesn't scale as good as postgre then
09:21:42 <elliott> Obviously it doesn't work well in multiple-user situations but that's irrelevant here
09:21:45 <elliott> Vorpal: So?
09:21:50 <Vorpal> hm
09:22:09 <elliott> Vorpal: That's RAM and CPU being used all the time.
09:22:14 <NihilistDandy> I think the server tools come with postgres now instead of MySQL
09:22:19 <Vorpal> elliott, anyway computers are multi-user. Even if there is only one interactive human user, there are many daemons
09:22:22 <elliott> For a probably unnoticeable performance increase.
09:22:28 <elliott> Vorpal: They're not causing revisions to be made
09:22:32 <Vorpal> ah
09:22:35 <elliott> That's an act a human does by definition
09:22:39 <elliott> (In OS X)
09:23:08 <elliott> 10:18 elliott: "Imagine taking a dish out of the dishwasher and then having it start flopping around like a fish in your hand."
09:23:10 <elliott> this is a quote from the review btw
09:24:08 <elliott> "Aesthetically speaking, the Finder, like the rest of Lion, has been visited by the color vampire."
09:24:12 <elliott> scarry,,,,
09:24:44 <NihilistDandy> I vant to suck your blue~
09:25:28 <elliott> the redesigned Mail looks nice
09:25:31 <elliott> and finally has conversations
09:26:30 <elliott> "Or rather, look at how much of the surrounding interface isn't there." Look how much code I'm NOT writing!
09:26:34 <NihilistDandy> It is actually very nice
09:26:41 <elliott> (Apologies if you get the reference.)
09:27:08 <NihilistDandy> Sounds like the Agda lament
09:27:30 <elliott> Hmm? Link?
09:27:43 <elliott> I was referring to the insufferable Rails screencast of two-thousand-and-five yore.
09:27:58 <elliott> NihilistDandy: Also, is that accordion effect as annoying as it looks?
09:28:04 <NihilistDandy> I mean that's what Agda people say when they switch from Haskell :D
09:28:21 <NihilistDandy> Which accordion effect?
09:28:33 <elliott> If you're writing less code in Agda than in Haskell... then you were doing horrible things to Haskell. :p
09:28:36 <NihilistDandy> *because no one ever writes any Agda, they just talk about it
09:28:39 <elliott> NihilistDandy: On expanding quotes in Mail
09:28:40 <elliott> And heh
09:28:50 <elliott> Hmm, wait, does Mail actually support gmail-style conversations now?
09:28:51 <elliott> I can't tell
09:29:24 <NihilistDandy> elliott: Re accordion, it's not annoying so much as twee
09:29:31 <NihilistDandy> Re conversations, yes.
09:29:40 <elliott> Twee is a synonym for annoying :P
09:29:52 <NihilistDandy> Only in some circles
09:29:52 <elliott> Oh thank god, the Downloads window is gone.
09:30:18 <NihilistDandy> elliott: Right, but god help you if you want to look at your downloads without an entire Safari window open
09:30:29 <elliott> When do you ever not have an entire Safari window open
09:30:32 <elliott> If you're a Safari user
09:30:46 <NihilistDandy> Often
09:31:05 <NihilistDandy> Usually when I'm done
09:31:06 <elliott> Oh sweet, Terminal supports full-screen mode; now everybody can forget that the rest of the OS exists
09:31:33 <NihilistDandy> I mentioned that ages ago
09:31:46 <NihilistDandy> It's the best part, really
09:32:13 <elliott> Yay, they've moved around the System Preferences icons again
09:32:17 <elliott> I'd almost had them memorised
09:33:31 <Lymee> elliott, doesn't support text mode?
09:33:38 <elliott> ?
09:33:51 <Lymee> Why full screen terminal instead of just not starting up the GUI. =p
09:33:57 <elliott> http://static.arstechnica.net/2011/07/04/lion/system-preferences-time-zone.png Well that's an ugly square
09:33:59 <NihilistDandy> Lymee: You can do that
09:34:05 <elliott> Lymee: Well, text editing, for one :-P
09:34:10 <elliott> NihilistDandy: You have to start in single-user mode, though
09:34:19 <NihilistDandy> elliott: Or log in with >console
09:34:20 <elliott> And then work upwards
09:34:25 <elliott> NihilistDandy: Eh?
09:34:31 <NihilistDandy> Fo to the login screen
09:34:32 <elliott> http://static.arstechnica.net/2011/07/04/lion/auto-correction.png
09:34:35 <NihilistDandy> Use the name >console
09:34:38 * elliott taps screen impatiently
09:34:45 <elliott> IT ISN;T WORKING/
09:35:00 <elliott> NihilistDandy: That sounds like a nice security hole
09:35:01 <NihilistDandy> Autocorrect is awesome and slightly unsettling
09:35:11 <NihilistDandy> elliott: You still have to log in with an account
09:35:18 <NihilistDandy> It's safer than that super user nonsense
09:35:21 <elliott> Ah
09:35:28 <elliott> s/super user/single user/?
09:35:34 <NihilistDandy> Yes
09:35:42 <NihilistDandy> I disabled it months ago
09:35:45 <elliott> http://static.arstechnica.net/2011/07/04/lion/lock-screen-big.png Well, that's certainly the prettiest lock screen I've seen today
09:35:47 <NihilistDandy> Years, even
09:35:51 <elliott> Which isn't saying much
09:36:09 <elliott> "FACE WITH NO GOOD GESTURE (U+1F645); MOON VIEWING CEREMONY (U+1F391); PILE OF POO (U+1F4A9)" <-- good image caption
09:36:28 <elliott> Oh my god wait.
09:36:39 <elliott> NihilistDandy: Do the emojis work in any application that displays Unicode text via the usual mechanisms?
09:36:44 <elliott> Can you send them OVER IRC??
09:36:50 <NihilistDandy> Maybe
09:36:50 <elliott> Do it now, send us a pile of poo.
09:36:53 <elliott> Do it.
09:36:54 <NihilistDandy> It'd be worth a shot
09:36:56 <elliott> Go go go
09:37:00 <elliott> THE WORLD IS WAITING
09:37:00 <NihilistDandy> Okay, lemme look
09:37:06 <elliott> http://static.arstechnica.net/2011/07/04/lion/emoji.png
09:37:06 <elliott> HTH
09:37:20 <elliott> http://static.arstechnica.net/2011/07/04/lion/terminal-blur.png Caption: "I want to know what's behind my terminal window, but I don't want to know every detail."
09:37:22 <elliott> also good caption
09:37:36 <elliott> "Just... gimme a VAGUE IDEA of what's behind here."
09:37:47 <fizzie> Ubuntu 11.10's swapping from GDM to LightDM for the login screen; wonder if it's really going to look any different.
09:37:52 <elliott> "Terminal also—finally—supports 256 text colors with its new xterm-256color terminal type." Man, it still hasn't had them?
09:37:54 <NihilistDandy> 💩
09:37:56 <NihilistDandy> Sent
09:38:01 <elliott> NihilistDandy: Nice square
09:38:04 <elliott> NihilistDandy: Work for you?
09:38:06 <NihilistDandy> Yep
09:38:10 <elliott> fizzie: "LightDM is a cross-desktop display manager that aims is to be the standard display manager for the X.org X server."
09:38:17 <elliott> fizzie: Oh, freedesktop.org; does your hubris know no bounds?
09:38:32 <cheater> fizzie: i'm fknthrilled for 11.10
09:38:34 <fizzie> Well of course they "aim" to be the standard everything of everything.
09:38:34 <NihilistDandy> So you *can* send them over IRC
09:38:35 <elliott> They could release literally any piece of software and say it should be the standard forever.
09:38:40 <NihilistDandy> That was the poo, by the way
09:39:00 <elliott> "fknthrilled": experts say, not strictly a word.
09:39:10 <fizzie> [01F4A5] (or something) as rendered by XChat.
09:39:22 <cheater> innovation is often made by amateurs.
09:39:23 <monqy> fkn- is totally a prefix
09:39:37 <fizzie> (At least it manages to put non-BMP characters in a bigger-than-four-digits box.)
09:39:43 <elliott> Which amateur is innovating again
09:39:44 <cheater> EXPERTS IN ARGUMENT.
09:39:51 <elliott> Oh
09:39:54 <elliott> You're being tedious
09:39:55 <elliott> I see
09:40:07 <cheater> as opposed to you being a breeze, yeah.
09:40:08 <elliott> fizzie: That sort of looks like a pile of poo.
09:40:09 <NihilistDandy> Does Font Book still suck according to the article?
09:40:28 <Taneb> I'm going to call PINs Personal PIN Numbers that Identify you
09:40:31 <elliott> http://static.arstechnica.net/2011/07/04/lion/system-info-overview.png Well, umm, that's certainly a pretty System Profiler, I guess
09:40:50 <elliott> http://static.arstechnica.net/2011/07/04/lion/system-info-storage.png Not sure what inspired that colour scheme
09:41:13 <monqy> very coloure
09:41:15 <NihilistDandy> Can't imagine~
09:41:32 <fizzie> elliott: If you hit the case with a hammer, does it show the resulting bump in that System Profiler picture?
09:41:38 <elliott> More good captioning: "Unfilled RAM slots are sinful. I am ashamed."
09:41:48 <elliott> fizzie: Yes. (If we do not test it, we can continue to believe.)
09:42:10 <elliott> "Want an eBook or PDF copy? Support Ars and it's yours."
09:42:16 <elliott> Yes, I definitely want an eBook copy of this review.
09:42:20 <elliott> I will enjoy it time and time again.
09:42:22 <elliott> It is a classic.
09:42:44 <NihilistDandy> I WILL PASS THIS FILE ONTO MY GRANDCHILDREN WHEN THEY ARE OLD ENOUGH
09:43:58 <NihilistDandy> *ON TO
09:44:20 <cheater> unto
09:44:59 <elliott> "Mainstream reviews of software and hardware alike spend far less time pondering technical specifications and implementation details than they did only a few years ago."
09:45:06 <elliott> I guess I'm definitely not reading a mainstream review, then
09:45:13 <elliott> "This phenomenon extends even to the geekiest among us, those who didn't just skip to the conclusion of this review but actually read the entire thing."
09:45:16 <elliott> Oops, I'm being branded.
09:45:27 <elliott> Oh, it's finally over.
09:46:22 <elliott> NihilistDandy: Hahaha, it really forces you to prove you know how to scroll in the new way before letting you in
09:46:27 <elliott> That's amazing
09:46:41 <elliott> "Okay, got i-" "I DON'T BELIEVE YOU. SCROLL FOR ME, CHILD."
09:46:41 <NihilistDandy> lol
09:47:02 <NihilistDandy> `addquote <elliott> "Okay, got i-" "I DON'T BELIEVE YOU. SCROLL FOR ME, CHILD."
09:47:06 <HackEgo> 564) <elliott> "Okay, got i-" "I DON'T BELIEVE YOU. SCROLL FOR ME, CHILD."
09:47:09 <NihilistDandy> Better out of context
09:47:33 <monqy> what's this new scrolling thing is it good
09:47:45 <NihilistDandy> monqy: Aviator controls
09:47:51 <elliott> im aviate
09:47:55 <monqy> hlep i dont'e know aht that is helep
09:48:01 <NihilistDandy> Plane
09:48:04 <NihilistDandy> *s
09:48:05 <elliott> http://static.arstechnica.net/2011/07/18/lion_finder_airdrop-4e24a31-intro.png THE POWERFUL SPHERE OF HARRIET
09:48:09 <NihilistDandy> Go up to go down
09:48:12 <elliott> monqy: up is down down is up
09:48:18 <elliott> true is false,,,,,, two is nine,,,,
09:48:21 <elliott> rite is rong,,,
09:48:27 <elliott> just is injust,,,
09:48:28 <monqy> why woudle thye do thate
09:48:29 <elliott> x is unx,,,,,
09:48:32 <NihilistDandy> elliott: AirDrop sadly doesn't work on mine
09:48:37 <NihilistDandy> Too old
09:48:56 <elliott> NihilistDandy: mine was new but then they came out with a new model seven months later,,,,, assholes,
09:49:37 <monqy> are scrollbares inverted tooe
09:49:52 <elliott> ill invert ur scrollbar . com
09:51:24 <zzo38> Apparently paintball games are technically illegal in Canada. Does anyone care?
09:52:09 <elliott> paintballers
09:52:11 <monqy> paintball always makes me think
09:52:14 <monqy> extreme paintbrawl
09:52:18 <monqy> http://www.youtube.com/watch?v=li5mXnHyg9w
09:52:36 <monqy> best music best game
09:52:40 -!- FireFly has joined.
09:53:05 <elliott> "tabs please?" "Are you serious? Drag your fingers across the frets and cluck like a chicken."
09:53:17 <Vorpal> <elliott> http://static.arstechnica.net/2011/07/18/lion_finder_airdrop-4e24a31-intro.png THE POWERFUL SPHERE OF HARRIET <-- ad-hoc wlan? or bluetooth?
09:53:28 <elliott> Vorpal: radiant sun energy
09:53:33 <NihilistDandy> Vorpal: Ad hoc
09:53:37 <elliott> (visualised by bands of holiness)
09:53:38 <Vorpal> NihilistDandy, wlan or bluetooth
09:53:45 <NihilistDandy> wlan
09:53:48 <Vorpal> ah
09:53:53 <elliott> http://en.wikipedia.org/wiki/Extreme_Paintbrawl
09:53:54 <elliott> wow
09:53:57 <elliott> monqy: is it as good as it looks
09:54:01 <Vorpal> NihilistDandy, then any card supporting ad-hoc should work
09:54:09 <NihilistDandy> Vorpal: It doesn't.
09:54:17 <NihilistDandy> I don't remember the specifics of why
09:54:19 <Vorpal> NihilistDandy, but it would also disconnect you from any network you were currently connected to
09:54:24 <monqy> elliott: confession time i have never played extreme paintbrawl
09:54:33 <elliott> monqy: :(
09:54:35 <NihilistDandy> Vorpal: Oh, I can do standard ad-hoc stuff
09:54:45 <NihilistDandy> AirDrop operates differently, apparently
09:54:50 -!- Phantom_Hoover has joined.
09:54:51 <NihilistDandy> Though similarly, as well :|
09:54:52 <elliott> "Oh my god.
09:54:53 <elliott> I now have the most glorious mental image of a paintball fight taking place in a barnyard with Frosty the Snowman systematically violating all the animals with akimbo electric banjos, and all of this is in a Benny Hill-style fast-forwarded scene with several dancing hillbillies and a single Mariachi in the background.
09:54:53 <elliott> I am sincerely disappointed that I cannot convey this image through this text box. It's fucking fantastic. Probably make a great mural."
09:54:57 <elliott> hi Phantom_Hoover
09:55:24 <Vorpal> <NihilistDandy> AirDrop operates differently, apparently <-- ouch, non-standard?
09:55:33 <NihilistDandy> Let me look it up
09:56:06 <Vorpal> NihilistDandy, what does it let you do? share files?
09:56:10 <elliott> Vorpal: Radiant sun orbs are very standard
09:56:14 <NihilistDandy> Yeah, basically
09:56:27 <NihilistDandy> http://www.appleinsider.com/articles/11/03/10/inside_mac_os_x_10_7_lion_airdrop_local_file_sharing.html
09:56:38 <elliott> NihilistDandy: I wonder how long until the zoom button on windows disappears
09:56:49 <elliott> It does a pretty bad job of automatically sizing things
09:56:57 <elliott> And with the magic wonder full-screen zoom button thing...
09:57:00 <elliott> Only a matter of time
09:57:04 <NihilistDandy> Exactly
09:57:36 <elliott> I guess the zoom button will take its place, because just having two capsules on the left is really weird... except that that destroys the fact that the button to undo it is in the same place
09:57:45 <elliott> And also undoes any conditioning of users
09:57:46 <elliott> Hmmmmmmmm
09:57:56 <elliott> Maybe the buttons will move to the right side :O :O :O
09:58:17 <elliott> And get the same embossed look, I guess
09:58:32 <NihilistDandy> Embossing is good
09:58:35 <elliott> Or maybe minimised windows will just stop existing :-P
09:58:59 <elliott> That at least has the nice sort of consistency that you could have an embossed X on the left to close, an embossed zoom-thing on the right, and nothing else
09:59:03 <elliott> Kind of inconvenient though
09:59:10 <NihilistDandy> As it happens, you can now set minized windows to disappear "in" the app on the Dock
09:59:16 <NihilistDandy> *minimize
09:59:18 <elliott> But hey, if Apple are dedicated to this orthogonal persistence thing, then you can just call the window up again if you need it again, who needs minimised windows?
09:59:19 <NihilistDandy> *minimized
09:59:23 <elliott> NihilistDandy: Default?
09:59:28 <NihilistDandy> Sadly, no
09:59:38 <NihilistDandy> But it's a checkbox
10:02:25 <NihilistDandy> The persistence thing is surprisingly ungimmicky
10:04:02 <NihilistDandy> When I accidentally hit Cmd-Q in Safari, it doesn't bother asking me if that's okay since I have all this shit open
10:04:06 <NihilistDandy> It just goes away
10:04:12 <NihilistDandy> And then I open Safari again
10:04:20 <NihilistDandy> And there's all my shit, right where I left it
10:05:43 <elliott> NihilistDandy: It should do the minimising animation, except every single window goes into the icon :-D
10:05:55 <elliott> Actually, if it was fast enough, that would be a good cue, assuming it's the zoom minimise animation rather than the unbearable genie
10:06:00 <elliott> Hmm
10:06:04 <elliott> Cmd-H should disappear
10:06:09 <elliott> Since it's literally the same as Cmd-Q now
10:06:23 <NihilistDandy> Hopefully. Though I do use Cmd-H a lot. Or did
10:06:32 <elliott> A windows move into Dock icon/windows burst out of Dock icon model seems like the best way to analogise it
10:06:35 <elliott> I'd just alias Cmd-H to Cmd-Q
10:06:38 <NihilistDandy> Now I just keep everything in its own space
10:06:40 <elliott> Or vice versa
10:06:41 <NihilistDandy> Fullscreened
10:06:42 <elliott> Probably vice vesa
10:07:16 <NihilistDandy> Also, you can turn off the "app is open" lights
10:07:46 <elliott> YES I READ THAT IN THE REVIEW
10:07:54 <NihilistDandy> I like it
10:08:37 <elliott> So when are they going to fix real issues like the Dock being fucking hideous
10:09:04 <NihilistDandy> elliott: That's what Alfred's for
10:09:20 <elliott> Not another QuickSilver clone
10:09:24 <elliott> s/Sil/sil/
10:09:46 <NihilistDandy> Better than QS, and actually still developed
10:10:01 <elliott> NihilistDandy: QS is actively developed.
10:10:05 -!- monqy has quit (Quit: hello).
10:10:09 <NihilistDandy> Since when?
10:10:19 <NihilistDandy> I thought it died out after SL came out
10:10:19 <elliott> Since recently.
10:10:24 <NihilistDandy> Oh, neat
10:10:37 <elliott> Quicksilver is now developed by a team of volunteers with work on the open source project increasing throughout 2010.[3]
10:10:37 <elliott> In November 2009, development shifted to using GitHub.[4]
10:10:37 <elliott> At the end of 2010, a new website QSApp.com was launched, with the aim of unifying and collating all of Quicksilver's fragmented builds, plugins and support groups. Since its launch, the site has included a new Plugins Repository, Wiki and Downloads section. After several months of development, Quicksilver version β59 was released; a marked point in the history of the application.
10:10:49 <elliott> Last release was in June.
10:10:54 <NihilistDandy> Ooh
10:11:01 <NihilistDandy> I might have to switch back
10:11:10 <elliott> Dunno if it's improved much, mind — it used to be so crashy.
10:11:19 <NihilistDandy> Indeed
10:11:31 <NihilistDandy> Have you tried Alfred?
10:11:54 <Vorpal> elliott, what is quicksilver now again... the name sounds familiar?
10:11:59 <elliott> No, I don't use OS X. :p
10:12:05 <elliott> Vorpal: A... thing.
10:12:14 <Vorpal> oh okay
10:12:20 <elliott> It's sort of like an object-oriented linguistic user interface.
10:12:28 <elliott> Most of the time it's just used as a launcher. :p
10:12:33 <Vorpal> elliott, hah
10:13:23 <Vorpal> hm so AirDrop is vendor specific. That is rather stupid of apple I think.
10:13:33 <Vorpal> iphone + windows can't be too uncommon
10:13:45 <Vorpal> and if iphone gets airdrop...
10:14:05 <elliott> Have you seen what happens when Apple try to write Windows applications?
10:14:17 <Vorpal> elliott, not in person no
10:14:22 <elliott> Lucky.
10:14:24 <Vorpal> is it terrible?
10:14:27 <NihilistDandy> It is.
10:14:40 <elliott> QuickTime is one of the most-hated pieces of crapware on Windows.
10:14:47 <Vorpal> oh yes that
10:14:57 <elliott> NihilistDandy: I wish I could turn off mouse acceleration and make my trackpad absolute-positioned.
10:14:59 <elliott> That would be fun.
10:15:03 <Vorpal> elliott, my point was that apple would probably gain more from using some technology for airdrop that would also work under windows
10:15:18 <NihilistDandy> elliott: I'm sure there's a way to hack it :D
10:15:20 <Vorpal> sure, maybe not as well-integrated sure... but would at least work
10:15:24 <elliott> Apple don't care much about Windows users.
10:15:41 <Vorpal> elliott, wait, isn't iphone + windows a very common combo?
10:15:47 <Vorpal> more than iphone + mac possibly
10:15:53 <NihilistDandy> Windows users, on the other hand, care very much about Mac users and their stupid smug faces
10:15:57 <elliott> Vorpal: Yes.
10:15:59 <Vorpal> elliott, they just ignore that market segment?
10:16:02 <elliott> They get to suffer through iTunes for Windows.
10:16:06 <elliott> It isn't pleasant.
10:16:22 <elliott> iTunes is pretty much the only Windows application Apple cares about. I don't even know why they ported Safari.
10:16:24 <Vorpal> elliott, how comes iphones still sell
10:16:36 <elliott> Vorpal: Because other phones suck that much more.
10:16:40 <NihilistDandy> ^^
10:16:41 <elliott> And, well, you only need iTunes for syncing.
10:16:45 <Vorpal> elliott, android is worse?
10:16:46 <NihilistDandy> I want an @phone
10:16:56 <elliott> Vorpal: Android is... well, getting better.
10:17:02 <NihilistDandy> Vorpal: Have you ever used Eclipse?
10:17:07 <zzo38> I have idea I wanted to make up some programming language that can do a few things including implement rules of Magic: the Gathering cards. I have a few ideas about it, including:
10:17:10 <NihilistDandy> Android is worse
10:17:13 <zzo38> * First class functions and first class rules
10:17:27 <elliott> My current solution to the problem of either buying a bad phone or contributing to the complete downfall of any kind of computing freedom is to... not use a phone.
10:17:30 <Vorpal> NihilistDandy, for windows integration?
10:17:49 <fizzie> Another place in the interwebs says they support AirDrop only on hardware that has firmware that can do infrastructure and the AirDrop-used ad-hoc mode simultaneously.
10:17:53 <NihilistDandy> Vorpal: No, for writing code on the platform
10:17:56 <Vorpal> ah
10:17:58 <elliott> 11:16 NihilistDandy: I want an @phone
10:18:04 <zzo38> * Basic types: boolean, integer, static strings (usable only for comparison and that C codes can use directly)
10:18:06 <elliott> I was going to mumble something about hardware requirements.
10:18:10 <elliott> But, umm, phones are pretty fast aren't they.
10:18:14 <NihilistDandy> They are
10:18:16 <Vorpal> NihilistDandy, at least android can run java and flash, unlike iphone
10:18:31 <zzo38> * Other types: enumeration, tagged union, structure, function
10:18:32 <elliott> Vorpal: Says the guy who doesn't use Flash.
10:18:33 <NihilistDandy> Vorpal: Those are not laudable qualities
10:18:39 <elliott> Anyway, Flash support on phones is laughable.
10:18:41 <fizzie> They have quad-core phones either out or coming-out-soonishly.
10:18:42 <elliott> It's the laggiest piece of shit imaginable.
10:18:46 <elliott> It's utterly unusable.
10:18:47 <fizzie> Dual-core ones they do at least have.
10:18:54 <elliott> And... um, Java doesn't even exist any more for desktop applications.
10:18:56 <Vorpal> elliott, indeed, but I know a lot of people do, which is what I'm talking about
10:19:00 <elliott> Minecraft is the only Java program anyone uses.
10:19:05 <zzo38> * Function types are allowed to include themself or types including themself
10:19:13 <Vorpal> elliott, I do not consider myself the typical case here
10:19:18 <NihilistDandy> HTML5 video players abound, and you don't need Flash games
10:19:19 <elliott> Vorpal: Well that's a change ;-)
10:19:25 <Vorpal> elliott, har
10:19:26 <NihilistDandy> Why is Flash necessary again?
10:19:33 <elliott> NihilistDandy: You do need Flash games, you definitely do.
10:19:39 <Vorpal> elliott, I know I would be most happy with something meego-based :P
10:19:39 <elliott> iOS is just big enough to get them ported ;-)
10:19:51 <NihilistDandy> elliott: Exactly :D
10:20:02 <elliott> Vorpal: Yeah, MeeGo is totally dead.
10:20:07 <Vorpal> elliott, sadly
10:20:10 <Vorpal> :(
10:20:11 <elliott> It just hasn't realised that yet.
10:20:20 <zzo38> * Procedural rulebooks
10:20:49 <Vorpal> <NihilistDandy> HTML5 video players abound, and you don't need Flash games <-- no one can agree on the format for the video though
10:20:52 <zzo38> * Rulebooks specifying reading/writing properties of an object
10:21:06 <zzo38> * Pure functions
10:21:22 <elliott> I really wish they'd just release the patents to H.twosixfour and stop being jackasses.
10:21:41 <NihilistDandy> Vorpal: Just because there's a hostage taker in the house doesn't mean you don't have a favorite child.
10:21:47 <Vorpal> elliott, I forgot who "they" are here
10:22:04 <Vorpal> NihilistDandy, err?
10:22:15 <Vorpal> how is that relevant!?
10:22:29 <zzo38> * External access to/from C codes and other program
10:22:30 <elliott> Vorpal: A bunch of people.
10:22:36 <Vorpal> elliott, right
10:22:42 <Vorpal> elliott, apple?
10:22:45 <fizzie> The "audio data" API (that lets you actually do stuff to it realtime, instead of just doing playback of existing samples like the HTML5 <audio> element) is completely unstandardized still, and only supported by Firefox and Chrome (and I think they do it differently too).
10:22:46 <NihilistDandy> I can't decide if Apple or Google or Mozilla or whoever is the hostage taker
10:22:51 <elliott> Vorpal: VCEG/ISO/IEC/MPEG.
10:22:55 <NihilistDandy> Regardless, something something codecs
10:23:02 <Vorpal> ah
10:23:08 <elliott> Vorpal: Apple just use it.
10:23:22 <Vorpal> elliott, are you saying ISO and IEC owns patents on it?
10:23:26 <Vorpal> that I don't believe
10:24:01 <elliott> In countries where patents on software algorithms are upheld, vendors and commercial users of products that use H.264/AVC are expected to pay patent licensing royalties for the patented technology[7] that their products use. This applies to the Baseline Profile as well.[8] A private organization known as MPEG LA, which is not affiliated in any way with the MPEG standardization organization, administers the licenses for patents applyin
10:24:01 <elliott> g to this standard, as well as the patent pools for MPEG-2 Part 1 Systems, MPEG-2 Part 2 Video, MPEG-4 Part 2 Video, and other technologies. The MPEG-LA patents in the US last at least until 2027.[9]
10:24:07 <elliott> MPEG-LA are the relevant people here, I suppose.
10:24:19 <fizzie> "MPEG LA, LLC, is a Denver-based firm that licenses patent pools covering essential patents required[1][2] for use of the MPEG-2,[3] MPEG-4 Visual (Part 2), IEEE 1394, VC-1, ATSC and AVC/H.264 standards. The firm is also working towards pooled licensing of LTE patents pertaining to 4th generation cellular telephony and patents essential for WebM."
10:24:19 <Vorpal> question: how do you change the sound card firefox uses to play the sound in html5 videos?
10:24:21 <fizzie> Nice collection.
10:24:35 <elliott> Yeah, Apple hold relveant patents, it seems
10:24:38 <elliott> relevant
10:24:40 <Vorpal> right
10:24:46 <elliott> Vorpal: Abstraction leak error, surely?
10:24:53 <elliott> Whatever Firefox outputs to is what decides what soundcard to use
10:25:06 <Vorpal> elliott, yeah, hm what decides that
10:25:20 <Vorpal> elliott, for various reason I don't use the mess known as pulse audio.
10:25:24 <fizzie> "The following organizations hold one or more patents in the H.264/AVC patent pool. [list of everyone -- 26 companies]" -- http://en.wikipedia.org/wiki/MPEG_LA
10:25:54 -!- nooga has joined.
10:26:07 <nooga> ARK
10:26:15 <elliott> fizzie: I'm surprised MPEG isn't upset with them using the name.
10:27:28 <fizzie> Ubuntu's firefox package depends on libasound2 and nothing else very sound-like, so I suppose it speaks to ALSA.
10:27:45 <fizzie> If so, then I suppose it should respect the ALSA_BLAH envvars.
10:28:16 <Vorpal> fizzie, ah. I'm on firefox 5 or whatever on arch though, guess I'll check the deps there
10:28:21 <Vorpal> good idea that
10:28:32 <fizzie> Well, that was the Firefox 5 package.
10:28:45 <fizzie> But I suppose it could support other audio output things too, depending on how it gets built.
10:29:00 <Vorpal> huh, nothing soundy at all
10:29:01 <Vorpal> wtf
10:29:34 <elliott> Different package, perhaps?
10:29:44 <Vorpal> oh xulrunner depends on alsa-libs
10:29:44 <Vorpal> right
10:30:08 <Vorpal> firefox -> mozilla-common -> xulrunner -> alsa-lib
10:33:07 -!- nooga has quit (Ping timeout: 240 seconds).
10:45:15 <coppro> So I was interested in looking at Agda. I am no longer.
10:46:14 <elliott> Too much mathematics 'n shit
10:46:20 <coppro> too much emacs
10:46:22 <elliott> Not hood programming
10:46:37 <elliott> coppro: Oh noes, a language with editor support
10:46:43 <elliott> How dare they make it more convenient to use for users of emacs
10:46:48 <coppro> elliott: no
10:46:53 <coppro> I have no issues with language support
10:47:06 <coppro> I have issues with "compile your program with C-c C-x C-c"
10:47:14 <coppro> in the language docs
10:47:36 <coppro> I can spend my time better than try to decipher that
10:48:08 <coppro> this is like those C++ tutorials that start with "first, install <IDE>"
10:48:13 <elliott> Your loss
10:48:24 <elliott> Generally tutorials don't cater to uncommon masochistic situation
10:48:25 <elliott> s
10:48:38 <elliott> Like not using the interactive proof system
10:48:40 <elliott> Which is what agda-mode is
10:48:55 <elliott> They could have written their own program to do that from scratch
10:49:01 <elliott> And thus alienate users of EVERY editor
10:49:06 <elliott> And also give themselves ten times as much work
10:49:12 <elliott> And have to reinvent the wheel pointlessly
10:49:15 <elliott> That'd be great, wouldn't it?
10:49:42 -!- Lymee has quit (Ping timeout: 260 seconds).
10:49:45 <Phantom_Hoover> <elliott> Like not using the interactive proof system
10:49:46 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
10:49:48 <Phantom_Hoover> What proofs?
10:49:56 <elliott> Phantom_Hoover: What?
10:50:08 <Phantom_Hoover> elliott, is 'proof system' the right word?
10:50:15 <coppro> elliott: As I said, I have better things to do with my time than learn emacs
10:50:24 <coppro> Phantom_Hoover: yes
10:50:40 <Phantom_Hoover> coppro, you mean learn like 10 key bindings?
10:50:44 <elliott> coppro: So instead of learning a text editor that you can use in other situations as well, you would like to learn a completely new text editor?
10:50:55 <elliott> Like I said, you need an interactive proof system to use such languages comfortably.
10:51:07 <elliott> The only thing not using Emacs results in is: a lot more work; more alienation; and no transferrable skills.
10:51:11 <elliott> WOOOOOOO SO MANY ADVANTAGEEEEEEEEES
10:51:26 <coppro> elliott: except I already have a text editor I can use in most situations in vim
10:51:43 <elliott> coppro: Congratulations, you fail at basic reading comprehension.
10:51:46 <coppro> elliott: if I desperately needed an interactive proof system then perhaps emacs would be the correct choice
10:51:51 -!- Lymee has joined.
10:51:54 <elliott> coppro: You do need an interactive proof system to use Agda effectively.
10:51:55 <coppro> but I don't
10:51:55 <elliott> Or Coq.
10:51:58 <elliott> Or any dependently-typed language.
10:52:06 <elliott> If you think you don't, well, what the fuck do you know? You gave up at the first hurdle.
10:55:17 <coppro> elliott: well, for starters, a quick glance at Coq says that I can play with it more easily than Agda outside an interactive system more easily, which is all I want at this stage. If I go on to want an interactive system, if I'm still just playing around, I don't want features I want speed, and emacs has a fucking learning curve
10:55:55 <NihilistDandy> Learning wheelchair ramp
10:56:07 <elliott> coppro: Umm, Coq is used via Proof General (nicer) or coqtop (interactive command-line system).
10:56:23 <elliott> I know of not a single person who develops Coq outside of one of these, because it would be simply impossible.
10:56:36 <elliott> Unless you have a perfect memory and also a built-in logical system.
10:56:41 <elliott> In which case... congratulations, you don't need Coq.
10:56:49 <NihilistDandy> Robots always win
10:57:03 <Phantom_Hoover> coppro, every single Coq tutorial I've seen uses Coqtop.
10:57:04 <elliott> coppro: And if you really think that Emacs has a sufficient learning curve to make using agda-mode difficult... lol, seriously, are you _trying_ to come off as a noob?
10:57:15 <coppro> elliott: okay, I admit to being unfamiliar with dependently typed languages and not realising that that coqtop was fully-featured
10:57:18 <coppro> if it is
10:57:27 <elliott> coqtop is... fully-featured, but not nice to use.
10:57:37 <elliott> Proof General -- built on top of Emacs -- is by far the nicest way to use Coq.
10:57:50 <elliott> It makes writing proofs incredibly convenient, especially with the three-window interface and electric terminator mode.
10:58:03 <elliott> And handles all the regular indentation/highlighting for functional-style code.
10:58:42 <coppro> elliott: I am also plenty aware of how emacs works generally, thank you
10:58:58 <elliott> Never did I suggest you weren't
10:59:10 <elliott> You did however claim that Emacs presented a learning curve that is difficult for using agda-mode
10:59:26 <elliott> Which is a laughable claim considering that newbies to programming pick up the essentials of Emacs within a few hours
10:59:55 <Phantom_Hoover> coppro, BtW, if you're complaining about Agda being officially Emacs-based, coqtop has a built-in -emacs option.
10:59:57 <NihilistDandy> And that no one actually knows any Agda~
11:00:27 <itidus21> How does emacs compare to MS Word for learning curve?
11:00:43 <elliott> itidus21: :D
11:00:53 <elliott> Phantom_Hoover: Proof General uses that, right?
11:01:02 <NihilistDandy> itidus21: Much shallower. Word shortcuts make no sense at all
11:01:06 <itidus21> MS Word is childs play in comparison.
11:01:19 <Phantom_Hoover> elliott, yes, and I think it's there specifically for PG's use.
11:01:24 <elliott> itidus21: o rly?
11:01:26 <NihilistDandy> C-x C-f makes so much more sense than Ctrl-O
11:01:29 <elliott> Word is incredibly unintuitive
11:01:40 <NihilistDandy> Or whatever the fuck it is
11:01:44 <itidus21> but it has less features
11:01:51 <NihilistDandy> I haven't used a word processor in years
11:02:11 <NihilistDandy> LaTeX does it for me
11:02:11 <itidus21> as for me I use openoffice.org writer
11:02:20 <Phantom_Hoover> itidus21, just as bad.
11:02:25 <Phantom_Hoover> Also use LibreOffice.
11:02:27 <elliott> itidus21: You realise Emacs is not primarily a word processor, right?
11:02:44 <itidus21> can emacs interpret lisp?
11:03:00 <NihilistDandy> itidus21: Emacs is the only way it is actually possible to stand writing Lisp.
11:03:19 <itidus21> but can it execute lisp?
11:03:34 <elliott> NihilistDandy: You forgot Edwin :-)
11:03:43 <elliott> itidus21: Yes, Emacs is based upon and in large parts written in Emacs Lisp.
11:03:58 <elliott> All configuration is done through Emacs Lisp (well, there's Custom, but it just outputs Emacs Lisp based on your interactive configuration.)
11:03:59 <itidus21> lol :o
11:04:02 <coppro> Phantom_Hoover: My issue is not with language + IDE integration
11:04:12 <NihilistDandy> Edwin~
11:04:16 <elliott> coppro: It's not an IDE.
11:04:22 <coppro> Phantom_Hoover: My issue is with the language saying "use this editor/IDE/OS/whatever"
11:04:24 <itidus21> does emacs support any other languages in addition to lisp?
11:04:26 <elliott> An interactive environment is really critical to using a dependently-typed language with any sort of convenience whatsoever.
11:04:31 <elliott> coppro: The language said no such thing.
11:04:34 <elliott> coppro: The tutorial said such a thing.
11:04:40 <coppro> elliott: I checked multiple
11:04:45 <elliott> coppro: The tutorials said such a thing.
11:04:48 <NihilistDandy> itidus21: It supports all of them
11:04:53 <elliott> coppro: And that's because refusing to use an interactive system is /a masochistic case/.
11:05:12 <NihilistDandy> In that it can call out to anything to run code
11:05:18 <elliott> Nobody does it. Because that's simply not productive at all, because to program in a dependently-typed language without an interactive system,
11:05:24 <elliott> you have to literally emulate the system in your head.
11:05:33 <elliott> Which would defeat the point for the language existing in the first place.
11:07:21 <elliott> coppro: And consider that if there were two different interactive proof systems for the same underlying language, /a tutorial for one would not apply to the other at all/. And a tutorial for the raw language alone, read without consulting a tutorial for the interactive system, would, again, be useless, as that is a /masochistic case/, it is simply not a viable way to use these languages.
11:07:34 <elliott> And maybe you can do it if you really want to for some perverse reason, but tutorials aren't written for that.
11:07:57 <elliott> Tutorials are written for people who want to use the language in a manner that at least vaguely resembles one which could be described as "proper".
11:09:04 <NihilistDandy> elliott: Let's see if No Starch will green light "Formally Construct You a Agda"
11:09:18 <elliott> NihilistDandy: :D
11:10:26 <coppro> ^5
11:10:43 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
11:11:04 <NihilistDandy> We could make 30 whole dollars, man
11:11:18 <NihilistDandy> Assuming we sell a thousand copies, that is
11:12:00 -!- nooga has joined.
11:14:40 -!- karl_ has joined.
11:15:02 -!- karl_ has quit (Client Quit).
11:16:03 <cheater> who cares about money
11:16:08 <cheater> think about all the chicks you'd be getting
11:16:37 -!- itidus21 has quit (Ping timeout: 240 seconds).
11:21:34 <NihilistDandy> Yeah, chicks are really into obscure proof assistants
11:22:22 <elliott> `addquote <Phantom_Hoover> Oh look, Dax has brought TWO glowy science sticks. <Phantom_Hoover> SHIT JUST GOT REAL
11:22:23 <HackEgo> 565) <Phantom_Hoover> Oh look, Dax has brought TWO glowy science sticks. <Phantom_Hoover> SHIT JUST GOT REAL
11:23:01 <NihilistDandy> Where'd that come from?
11:23:18 <elliott> /msg.
11:25:04 <Sgeo> Is Phantom_Hoover spoiled?
11:25:15 <Phantom_Hoover> Spoiled?
11:25:18 <elliott> Yes, he's a right brat.
11:25:30 <Phantom_Hoover> I'm still watching DS9 and I don't want the rest of it spoiled, no.
11:25:36 <Sgeo> Ok
11:25:46 * Sgeo is somewhere near the beginning of season 7
11:25:58 <Sgeo> It's been a while since I've watched
11:29:28 -!- itidus20 has joined.
11:31:38 <cheater> "i've rewritten agda in bash. wanna fuck?"
11:34:09 <NihilistDandy> Someone on the Agda list wrote an IRC bot/client in Agda
11:34:32 <elliott> There's that new web framework written in it. :p
11:34:44 <elliott> I'm sure it can display a blog index in only a few hours
11:35:15 <NihilistDandy> But it will display it rigorously
11:36:10 <NihilistDandy> And it's type-safe, in that you can post anything you want because no one will be able to load enough of it to bother typing up the complaint email
11:36:31 <cheater> haha
11:37:09 <cheater> so, i wonder when they're gonna do another good star trek series
11:37:28 <cheater> ds9 and stv were disappointing, with straight-to-vhs quality
11:37:50 <cheater> the newer ones were just embarassing
11:38:09 <elliott> DS9 was straight-to-vhs quality ahahahahaha
11:38:33 <elliott> Because TNG had so much more special-effects budget....... and so much more plot
11:38:47 <elliott> And, ummmm, TOS was so... good?
11:38:58 <cheater> i have enjoyed tng much more than ds9 which was boring
11:39:26 <elliott> It may just be that you're too stupid to enjoy anything with a plot. Which is really sad since while DS9 has a plot, it's still fucking Star Trek.
11:39:55 <cheater> nah, it's not that.
11:41:25 * Sgeo likes plot
11:41:28 <Phantom_Hoover> elliott, says the guy who is on record as having said he despised DS9 because it was boring :P
11:41:42 <elliott> Phantom_Hoover: I honestly never said that.
11:41:50 <Phantom_Hoover> elliott, want me to find the log?
11:41:57 <elliott> That has never been an opinion I have held; I can only assume I was joking.
11:42:09 <elliott> My jokes falling flat is... not... a rare occurrence.
11:42:30 <cheater> in fact, everything you say here is a joke, right?
11:42:42 <cheater> that is the only explanation.
11:42:52 <elliott> Yawn
11:43:01 <cheater> oh good one
11:43:26 <Phantom_Hoover> cheater, there's only so much effort worth spending on responding to you.
11:43:32 <cheater> i know right
11:43:58 <cheater> am i currently in the black though?
11:44:32 <Phantom_Hoover> The only way you could be in the black would be tasteless and racist.
11:45:14 <elliott> Phantom_Hoover: Sounds right up cheater's alley.
11:45:36 <cheater> all the way up the alley, yes.
11:48:20 <cheater> i am truly enjoying filibustering the conversation when elliott makes comments telltale that he hasn't taken his pills
11:49:08 <elliott> I'm not sure you know what filibuster means. Also if I'm prescribed pills, you might want to let someone know, because sure as hell nobody else does.
11:50:35 <cheater> and in this way you perpetuate your own penalty for being stupid
11:51:15 <elliott> I know; it's truly awful, especially since I talk something like twice as much as the second-top person in here. Thankfully, people can escape from my prison with a simple /part.
11:51:26 <elliott> I'll try talking more to make the decision easier for you.
11:51:55 <Phantom_Hoover> fungot, you are stupid and I hate you.
11:51:57 <fungot> Phantom_Hoover: king. trip, fnord trip, george. speak big words, and threats shall be the queen of audience nor desire shall faile, i with things new borne. here's a head, dissevered from the trunk, there mangled arms and legs quite fnord off, and in the fortune of my choice, immediately to leave you and be acquainted with. where are the waits? go, villain, for ' tis most like he will
11:53:11 <cheater> that's not really what i mean, what i mean is that every time you act like an idiot i'm fairly easily able to draw you into a stupid, pointless conversation which just aggravates you. it has been working perfectly for as long as i can remember. you really should think about fixing the habit of going into that cycle.
11:54:11 <elliott> I'm... so aggravated.
11:54:21 <elliott> Wait, that's actually an explicit admission of trolling.
11:54:29 <elliott> Congratulations, you're an idiot.
11:54:57 <cheater> you're still going on, even though as you say talking to me is such a terrible pastime
11:55:31 <elliott> Well, I'm also reading an article and laughing about this in /msg, so I can afford to spend a small amount of time on this, since it's sufficiently hilarious right now.
11:55:52 <elliott> Do you plan your schedule for each day around when you're going to draw me into stupid, pointless conversations that apparently just aggravate me?
11:55:59 <elliott> Because I'm flattered.
11:56:28 <cheater> not really, i only do that when you start it by doing something stupid.
11:56:51 <elliott> So you monitor the channel constant just in case your thirst for aggravation can be satisfied?
11:57:05 <elliott> It really seems like a lot of work for such a meagre gain; do you have some feelings you want to talk out?
11:57:14 <elliott> I won't judge. It's okay to be gay.
11:57:44 <cheater> no, i come here to chat, and when you come up with one of your idiotic interjections, i take out some of my time (and your time).
11:57:52 <Phantom_Hoover> All this talk about his alley must have flustered him.
11:57:57 <cheater> totally
11:58:25 <elliott> "I come here to chat" -- "one of your idiotic interjections" -- a nice representation of a situation where I produce like a third of the lines in each day's log and you produce about three, and also nobody ever responds to you because you're a troll.
11:58:33 <elliott> Well, apart from me and Phantom_Hoover because it's amusing.
11:59:00 <cheater> if that's what you say
11:59:03 <elliott> Unless you mean the stupid things I say every time you talk, because yeah, that's just plain mocking and if that isn't obvious to you then lol.
11:59:14 <cheater> yeah. what do you mean by that?
11:59:32 <elliott> You're not a convincing ELIZA without the punctuation.
11:59:47 <elliott> Uh, capitalisation. What's the difference.
11:59:50 <cheater> really?
12:00:27 <cheater> the correctness of spelling.
12:04:54 <cheater> oh, i see, well done teleporting out of the bear trap.
12:05:30 <elliott> Good Markov bot.
12:05:33 <elliott> fungot is better though.
12:05:34 <fungot> elliott: shepherd. so she parted, and with deep groans the fnord bear would couch, the lion would suspect thee, when peraduenture thou wert accus'd by the asse: if thou want'st any thing, nor be so hardy ever to take a bribe to pay my legions, which you are, what is your fnord face
12:06:05 <cheater> i make a much better impression when i speak german
12:06:16 <Phantom_Hoover> ^style
12:06:16 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa speeches ss* wp youtube
12:06:21 <Phantom_Hoover> ss?
12:06:25 <Phantom_Hoover> ^style ss
12:06:25 <fungot> Selected style: ss (Shakespeare's writings)
12:08:54 -!- derrik has joined.
12:17:17 <fizzie> fungot: Are you a poet now?
12:17:18 <fungot> fizzie: for. his quarry cries on hauocke. oh proud death, what cannot be avoided ' t were prejudicial to his crown? if not, he fnord cassio, cassio! what's the matter?
12:17:33 <fizzie> "if not, he fnord cassio, cassio!"
12:20:53 <Sgeo> It's just... "wonderful" how Quassel freezes when I switch to a channel I haven't looked at in a while
12:21:25 <elliott> Why are you using Quassel
12:22:05 <fizzie> It is only natural to experiment in IRC client orientation at that age.
12:22:10 <fizzie> (Not that I know the age.)
12:22:48 <Sgeo> I like how it remembers what channels I'm in instead of having an autojoin list
12:23:07 <Sgeo> It seems easier to use in some ways
12:23:17 <Sgeo> (Harder to use in others)
12:23:34 <Sgeo> And I am considering putting a Quassel core somewhere
12:23:42 <elliott> fizzie: He's... what, about six years younger than you?
12:23:50 <elliott> <fizzie> AIEEEEEEEEEEEEEEEEEEEEE
12:24:00 <elliott> If that.
12:24:03 <elliott> How old are you Sgeo.
12:24:07 <Sgeo> 22
12:24:10 <fizzie> Yes, well, I meant I don't know how old he is.
12:24:12 <fizzie> Didn't.
12:24:25 <Phantom_Hoover> Sgeo, weren't you 20 a year ago?
12:24:27 <elliott> How old are you fizzie.
12:24:36 <fizzie> 28.
12:24:39 <fizzie> So, six.
12:24:46 <elliott> SO CLOSE.
12:25:11 <elliott> Does anyone know a way to track an Apple order back to its originating Apple ID thing? I, uh, have about four of them, and I'm not sure which one is the one I actually use.
12:27:15 <Sgeo> I also like that I can use my mousepad to scrol
12:27:17 <Sgeo> scroll
12:27:30 <Sgeo> trackpad
12:28:31 <elliott> mousepad to scroll
13:10:23 -!- nooga has quit (Read error: Operation timed out).
13:24:59 -!- MSleep has changed nick to MDude.
13:31:57 -!- Taneb has joined.
13:32:04 <Taneb> Hello!
13:37:48 <Sgeo> "Rinderpest was"
13:37:53 <Sgeo> What beautiful word
13:37:56 <Sgeo> word
13:37:57 <Sgeo> words
13:38:18 <Sgeo> http://en.wikipedia.org/wiki/Rinderpest
13:38:19 <elliott> Bundle bort.
13:44:55 <Sgeo> Bah, /r/worms is practically empty
13:48:15 <elliott> Not much to talk about.
13:48:19 <elliott> Doesn't look practically empty to me.
13:48:29 <elliott> Huh, Coestar has posted there.
13:48:49 <elliott> Sgeo: You bought the Bundle, right?
13:49:04 <Sgeo> Yes
13:49:44 <elliott> Sgeo: How much did you pay, I need to calibrate my sense of white, liberal guilt
13:49:59 <Sgeo> Please don't use me as a reference
13:50:05 <Sgeo> >.>
13:50:12 <Sgeo> $1 *ducks*
13:50:41 <Sgeo> I don't have much money in my paypal account, and want to be able to buy future bundles
13:50:43 <Taneb> Wow, same
13:50:54 <Taneb> The $1 part, anyway
13:51:48 <elliott> I bought it for fifteen dollars, you bum
13:51:49 <elliott> s
13:51:59 <cheater> he has money!
13:52:01 <cheater> attack!
13:52:14 * cheater chews on elliott's boot.
13:55:40 <Sgeo> How can VMoo not have LambdaMoo in it list of MOOs?
14:09:31 <elliott> Taneb: I'm playing my first real game of DF; I chose a site that, I now realise, has no river. How fucked am I.
14:10:00 <Taneb> On a scale of one to ten, actually not very
14:10:24 <elliott> Good
14:10:45 <Taneb> Unless youu run out of alcohol
14:13:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:14:01 <cheater> i hadn't noticed: http://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html
14:21:14 <elliott> Taneb: I don't suppose bone opal is anything to get excited about
14:21:41 <elliott> Seems not
14:23:04 <Taneb> There's only two things to get excited about
14:23:15 <Taneb> Bituminous coal
14:23:20 <Taneb> And lignite
14:23:39 <elliott> Taneb: What about ADAMANTINE?????
14:23:59 <Taneb> Overrated
14:25:31 <elliott> NATIVE COPPER WOOO
14:25:58 <Sgeo> What's bituminous coal and lignite?
14:26:44 <elliott> "Note- When assigning stockpiles, you should make sure they're in a vacant area. IE; the tiles should only "contain" the ground. Dwarves will not haul stuff to filled tiles, so make sure the area is vacant (Assign the area for dump)"
14:26:45 <Taneb> You can make coal out of them
14:26:48 <elliott> Taneb: What's this about assigning the area for dump
14:27:09 <Taneb> Press i, then... g?
14:27:27 <Taneb> And mark a zone ass a rubbish dump near where you want stone to go to
14:27:40 <elliott> Outside my fortress?
14:27:43 <Sgeo> Maybe to clear any stuff away from that area?
14:27:49 <elliott> Sgeo: I'ma sking how
14:27:50 <Sgeo> Is why they're saying assign it for dump?
14:27:51 <Taneb> Next to your mason
14:27:54 <Sgeo> Oh
14:28:02 <elliott> Taneb: You realise I have exactly two rooms at this point.
14:28:05 <Taneb> You want your refuse pile outside
14:28:10 <elliott> Okay.
14:28:21 <elliott> So, wait for this storeroom to get minedo ut fully, assign a rubbish dump outside, and then mark the inside of it to be emptied?
14:28:52 <elliott> And... do cats usually adopt dwarves?
14:29:16 <Taneb> Yes
14:29:27 <Taneb> To both
14:29:36 <elliott> Nice
14:30:55 <elliott> This dwarf is such a lazy ass
14:31:06 <elliott> Taneb: So, erm, do I have to empty it out? I'm not sure how I can tell whether a room is vacant.
14:31:16 <elliott> Surely dwarves should vacantise a room when mining it out
14:31:41 -!- derrik has quit (Quit: take carezzz).
14:32:04 <elliott> Uhh, i just gives x: remove zones / Enter: place / e: rectangle / ESC: done / (disabled) v: next
14:32:18 <elliott> I guess it's a tool for adding a zone...
14:32:20 <Taneb> lace it then press g
14:32:22 <elliott> Do I place one out with the usual
14:32:23 <elliott> Right
14:32:23 <Taneb> *Place
14:32:31 <elliott> Just... anywhere? :-p
14:32:36 <elliott> How big, roughly?
14:32:47 <Taneb> One tile
14:32:56 <Taneb> Next to your potential mason's workshop
14:33:38 <elliott> You're assuming I have a potential mason; and that e has a workshop
14:33:54 <Taneb> No, you have a mason
14:33:59 <Taneb> And he has a potential workshop
14:34:30 <elliott> Oh
14:34:37 <elliott> Will k identify thus?
14:34:45 <Taneb> u would be better
14:35:11 -!- copumpkin has joined.
14:35:15 <elliott> Miner, woodworker, woodcutter, stoneworker, leader, fish cleaner, fisherdwarf. Why do I have a fish cleaner.
14:35:25 <Sgeo> How much does DF cost (j/k)
14:35:39 * Sgeo wonders if he should start playing again
14:35:54 <Sgeo> I think I stopped because it ate hours for breakfast lunch and dinner
14:36:04 <Taneb> Approximately 0 USD
14:36:06 <elliott> What
14:36:24 <Taneb> elliott: to clean fish.
14:36:25 <Sgeo> And I think I preferred reading about it to playing it
14:36:32 <Taneb> Useless unless you have a river
14:36:38 <elliott> Taneb: So, OK, I've got my stoneworker -- how do I locate his workshop? I'm a bit of an idiot, you see.
14:36:49 <Taneb> b->w->m
14:36:54 <Taneb> Then place it
14:37:14 <Taneb> And you're good at a lot of things I'm not
14:37:23 <elliott> Is b meant to do nothing at all observable?
14:37:30 <Taneb> No
14:37:46 <Taneb> Look to your right?
14:38:00 <Sgeo> Let's see if I can at all remember how to play
14:38:08 <Sgeo> Probably not
14:38:14 <Taneb> When did you stop?
14:38:14 <elliott> Taneb: To my right? There's just the screen with all these creatures.
14:38:20 <elliott> Blackness is to the right.
14:38:25 <Taneb> Pless esc
14:38:27 <Sgeo> Taneb, probably a year or two ago
14:38:28 <elliott> Oh
14:38:48 <elliott> Taneb: I'm trying to find eir workshop, though
14:38:52 <elliott> I'm not sure where it is
14:38:56 <Taneb> They don't have a workshop!
14:38:59 <Taneb> It's potential!
14:39:03 <Taneb> You have to designate it!
14:39:10 <elliott> Oh.
14:39:12 <Taneb> Calming down...
14:39:20 <elliott> I'll just plonk it... here.
14:39:25 <Taneb> Good choice
14:39:29 <Taneb> I'm an awful teacher
14:40:04 <elliott> OK, resume'd; I guess I'll wait for this thing to appear then designate a tip.
14:40:17 <elliott> And I'm more of an awful learner than you're an awful teacher, most likely.
14:40:25 <Taneb> Possibly both
14:40:29 <Sgeo> How much of my initial dwarves should be an army?
14:40:46 <Taneb> I'm no good at that
14:41:06 <elliott> Taneb: So, erm, okay, a workshop isn't quite appearing.
14:41:08 <Sgeo> So: I'm going to die when goblins come. That's nice
14:41:14 <elliott> Is it meant to look like something?
14:41:21 <Taneb> Maybe?
14:41:31 <Taneb> Can your dwarves get to where you've placed it?
14:41:41 <elliott> I should think so, it's blocks away from the wagon.
14:41:49 <elliott> No obstructions I can see.
14:41:54 <Taneb> Press q
14:42:07 <elliott> "Profile requires manager" in red, at leats
14:42:09 <elliott> least
14:42:20 <Taneb> Any more than that?
14:42:24 <elliott> It highlights a few blocks and calls 'em Mason's Workshop
14:42:27 <elliott> And I can add a new task
14:42:32 <Taneb> Then it's built
14:42:34 <elliott> It also offers to remove the building
14:42:35 <elliott> Huh
14:42:37 <elliott> Doesn't look like much
14:42:45 <Taneb> You have to use your...
14:42:51 <Taneb> IMAAAAAGINAAAATION
14:43:10 <elliott> OK, so I guess I have to designate a tip.
14:43:25 <elliott> Does that count as a type of building? :p
14:44:08 <Taneb> I don't know
14:44:56 <elliott> Darn.
14:45:40 <Taneb> Tip?
14:45:46 <elliott> You know, rubbish dump.
14:45:49 <Taneb> Oh yeah
14:45:56 <Taneb> That's in p
14:46:00 <Taneb> Then you press r
14:46:11 <Taneb> I was thinking arrows
14:46:32 <Sgeo> What is this object testing arena?
14:46:40 <Taneb> That's for testing objects
14:46:45 <Taneb> It's basically you and him fight
14:46:47 <elliott> Taneb: Designated. I think. k just shows it still as a "shrub".
14:46:53 <Taneb> q?
14:47:25 -!- lament has joined.
14:47:57 <elliott> Well, yes, the workshop is there.
14:48:04 <elliott> Oh, I seem to have designated it inside the workshop
14:48:07 <elliott> I'll try to the side of it
14:48:29 <elliott> Aha, I needed two enter keys
14:48:36 <elliott> There we go
14:48:42 -!- BeholdMyGlory has joined.
14:49:05 <elliott> Taneb: I take it these "gold nuggets" / native gold are not as valuable as they seem :P
14:49:42 <Taneb> You need bituminous coal or lignite
14:49:51 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:50:11 -!- BeholdMyGlory has joined.
14:50:16 -!- BeholdMyGlory has quit (Changing host).
14:50:16 -!- BeholdMyGlory has joined.
14:50:38 <elliott> Taneb: I'm just saying, it's OK to move them into the refuse pile?
14:50:39 * Sgeo makes there be very little savagry and a lot of mineral
14:51:36 <elliott> NihilistDandy: BTW, the "minimise into applications" thing is in Snow Leopard too.
14:52:15 <Sgeo> Is the age of myths suppose to tick off at 1 year a second?
14:52:24 <Taneb> elliott:yes
14:52:28 <Taneb> Sgeo: can do
14:52:29 <Sgeo> Or maybe too much is running on my computer right now
14:52:55 <elliott> Hmm
14:53:01 <elliott> Standing order "Refuse"? Maybe not
14:53:12 <elliott> It's not a designation, at least
14:53:17 <elliott> (Trying to clear out the room)
14:53:39 <lament> the age of MIPS
14:55:18 <elliott> Taneb: Ah, when I "k" around there's d: Dump
14:55:24 <elliott> Do I just do that individually for each block it's offered for?
14:57:43 <itidus20> "the shortest distance between any pair of points is invariant on translation from one frame to another (barring relativistic cases)."
14:58:22 <Taneb> There's a shortcut, but I can't currrenty remember it
14:58:54 <itidus20> what might a relativistic case be?
14:59:33 <lament> a moving frame
14:59:59 <itidus20> thanks
15:03:10 <elliott> Taneb: umm, wait, do I want a garbage dump or a refuse stockpile?
15:03:25 <elliott> Seems like I want a garbage dump
15:04:48 <Taneb> Garbage dump
15:05:02 <Taneb> You want a refuse stockpile where you want the garbage to go
15:05:42 <lament> i want 10 garbage dumps
15:07:31 <elliott> Taneb: I just have a garbage dump and no refuse stockpile
15:07:32 <elliott> Is that okay :P
15:07:45 <elliott> Oh, all the dwarves are partying to get rid of the stones. Glad it entertains them.
15:08:14 <elliott> RIP Badger Sow's enragedness.
15:11:09 <elliott> Stockpilin' time
15:11:54 <elliott> Taneb: http://i.imgur.com/WDpg4.png
15:12:00 <elliott> Taneb: Look at my pro square room building skills
15:13:18 <elliott> "Uvash Timnärmosus, Fisherdwarf cancels Fish: Interrupted by Pike."
15:13:21 <zzo38> My OpenID has seems to always fail to work on Blogger but works everywhere else I have tried it.
15:15:19 <Taneb> elliott: all fisherdwarves have an irrational fear of fish
15:15:24 <elliott> wow
15:15:28 <elliott> really?
15:16:13 <elliott> MICROCLINE
15:16:29 <Taneb> USELESS
15:16:50 <Taneb> I once tried to make an upside-down pyramid out of microcline
15:16:58 <Taneb> It worked until it didn't
15:17:27 <elliott> Is there any way to undo a designation?
15:17:50 <Taneb> Dump or mine?
15:18:05 <elliott> Stairway :P
15:18:13 <Taneb> d->x
15:18:22 <Taneb> Unless it's already been built
15:18:24 <elliott> Ah
15:18:25 <elliott> Thanks
15:20:39 <zzo38> in a text adventure game, that you have an inventory limit. But, one room types in its own commands for you (you can type in your own command after each of its automatic commands). If the first command is PICK UP THE BOMB and it will cause it to explode, then how can you enter that room without explodiing?
15:20:54 <zzo38> O, what you need, is carry too many things now you cannot pick up the bomb. But, what happened after some wizard made you have infinite carrying capacity?
15:20:59 <elliott> Taneb: O...K... I inexplicably have seven downwards staircases.
15:21:02 <zzo38> Well, then, what you should do is get your own defused bomb and throw it into the room with the other bomb before entering. Now the command PICK UP THE BOMB is ambiguous.
15:21:04 <elliott> That's six more than I need.
15:21:07 <elliott> Will those cause any harm?
15:21:13 <zzo38> elliott: Then destroy six of thm.
15:21:20 <Taneb> Not really
15:21:24 <Taneb> They'll get in the way
15:23:04 <zzo38> What is your opinion of this text adventure game?
15:23:14 <elliott> Hmm, what's the proper method to remove a staircase once it's built...? Or, well, any construction of that nature.
15:24:12 <Taneb> d->n
15:24:22 <Taneb> Possibly
15:24:50 <elliott> I tried that, but I don't seem to be able to designate it on the staircase
15:24:51 <elliott> How odd
15:25:38 <elliott> Argh
15:25:42 <elliott> They can't seem to get at the layer below at all
15:25:52 <elliott> Can't mine it, and I can't get any stairway designation on the tiles there
15:25:57 <Taneb> You need a corresponding up stair
15:26:00 <elliott> Yes
15:26:03 <elliott> But I /can't build it/
15:26:08 <elliott> It simply won't place the designation
15:26:14 <elliott> I think it's because there are only wall-ish tiles below
15:26:19 <elliott> The light grey background things
15:26:23 <elliott> But I can designate them to mine
15:26:26 <elliott> And absolutely nothing happens
15:26:35 <elliott> Could the multiple staircase mess be blocking them?
15:26:36 <elliott> It's
15:26:40 <elliott> `>>
15:26:41 <elliott> >>>
15:26:41 <HackEgo> No output.
15:26:41 <elliott> >>`
15:27:07 <Taneb> Possible
15:27:21 <elliott> So I need to get rid of the others :/
15:28:38 <Taneb> Dig a channel on them
15:28:40 <Taneb> d-h
15:28:59 <elliott> Wiki implies that remove construction /should/ work, but I will try that
15:29:35 -!- Elizacat has left ("Leaving").
15:30:16 <elliott> http://i.imgur.com/fMibO.png O...K...
15:30:19 <elliott> Nice downward slopes, I guess.
15:32:06 <Taneb> Then go down a level and do remove up stairs/ramps on the ramps
15:33:00 <Sgeo> Why doe my world only have age of myths?
15:33:02 <elliott> OK
15:33:49 <elliott> Taneb: Hooray, thank you
15:34:11 <elliott> Oops, nice cave-in.
15:36:05 <elliott> Taneb: So, erm, how would I get my dorfs to lay some nice floor where open space is? Or am I pretty much going to have to deal with the hole for now
15:36:29 -!- cheater has quit (Ping timeout: 255 seconds).
15:37:44 <Taneb> b-shift+c-f
15:38:51 <elliott> Ah, thanks
15:38:54 <elliott> Long menu :P
15:39:51 <elliott> Oh, I'm out of floor :-/
15:42:45 <elliott> Taneb: Oh great, my only miner is currently a floor below in the cave-in
15:43:42 -!- nooga has joined.
15:45:07 <Taneb> Sucks to be you
15:45:47 <Taneb> Make him mine himself outta there
15:46:06 <elliott> I think she's knocked out.
15:46:13 <elliott> Not sure.
15:46:48 <Taneb> Going now, bye
15:47:02 -!- Taneb has changed nick to TanebIsCurrently.
15:47:10 -!- TanebIsCurrently has changed nick to NotHeree.
15:48:22 -!- cheater has joined.
15:49:38 <Sgeo> elliott, have fun!
15:49:48 <elliott> Sgeo: I'm heading rapidly towards Fun, methinks.
15:50:09 <Sgeo> =P
15:51:17 <elliott> Oh, there we go.
15:52:08 <elliott> Now I just gotta replace this upward stairway with an up/down stairway.
15:52:54 <Phantom_Hoover> Back.
15:56:09 <nooga> elliott?
15:56:48 <elliott> nooga?
16:01:49 -!- NotHeree has changed nick to Taneb.
16:07:20 <nooga> what stairway :>?
16:07:31 <elliott> dorf forterss
16:07:46 <Phantom_Hoover> nooga, hey, I forgot to make you a dwarf.
16:11:18 -!- MigoMipo has joined.
16:12:12 <Sgeo> http://news.cnet.com/8301-27080_3-20088441-245/researchers-find-avenues-for-fraud-in-square/
16:12:17 <Sgeo> FUCKING GENIUSES
16:13:02 -!- lament has quit (Ping timeout: 252 seconds).
16:13:30 <elliott> Sgeo: Oh my god shut up, the Square thing is no less insecure than ANYTHING INVOLVING A CREDIT CARD EVER.
16:13:43 <elliott> HERE'S A FUCKING CREDIT CARD EXPLOIT FOR YOU:
16:13:48 <elliott> - Take credit card from person.
16:13:53 <elliott> - Take covert photo of number.
16:14:01 <elliott> - Turn it over, memorise three-digit security code.
16:14:10 <elliott> - CONGRATULATIONS, YOU'VE PWNHAXORED THE CREDIT CARD
16:14:45 <Sgeo> http://twitter.com/#!/sgeocomet/status/6413186030 note to self: stop assuming that people are competent
16:15:04 * elliott gives up on reasoning with Sgeo.
16:19:41 <zzo38> Even chip/PIN systems of debit cards and credit cards has many things insecure, I have once written part of a protocol which improves the security a lot.
16:20:02 <zzo38> (However I don't need any debit cards and credits cards anyways)
16:20:56 <Taneb> I HAVE THREE MILLION DOLLARS IN CASH IN MY POCKET
16:21:00 -!- Nisstyre has quit (Ping timeout: 264 seconds).
16:21:18 <elliott> Taneb: orly
16:22:30 <nooga> how does two-way staircase look in df text tileset?
16:23:10 <Taneb> X
16:23:56 <nooga> uh
16:24:31 <Taneb> ...With it's carefully concealed eyes?
16:25:34 -!- Patashu has quit (Ping timeout: 240 seconds).
16:26:30 <elliott> X is reasonable
16:26:31 <elliott> > + <
16:26:32 <lambdabot> <no location info>: parse error on input `+'
16:26:33 <elliott> = X
16:27:10 <zzo38> Actually, one protocol for a new kind of chip system (it uses passwords as well, but in a different way to the current system, and has other differences as well), and another protocol for bank accounts. If you want transfer using bank accounts: Either SSH into your bank account and issue a "SPLIT" command, or go to the bank, give them the cash, and a temporary account is created (just as if you used SPLIT).
16:33:01 -!- Nisstyre has joined.
16:46:20 <elliott> Gregor: Hey, what was that MIDI renderer thing again?
16:48:54 -!- Cheery has joined.
16:49:24 <Gregor> elliott: AlgoRhythms?
16:49:27 <elliott> No
16:49:30 <Gregor> fluidsynth?
16:49:30 <elliott> The soundfont webservice thing
16:49:33 <Gregor> Oh
16:49:34 <elliott> On codu
16:49:38 <Cheery> http://bayimg.com/KaJcdaadh
16:49:40 <Gregor> http://codu.org/webmidi/
16:50:03 <elliott> Cheery: Well that sure is incomprehensible.
16:50:22 <elliott> Gregor: Which was nicest for what purpose again X-D
16:51:20 <Cheery> elliott: it's just a composition about google's 'what do you love' -search results.
16:51:36 <Cheery> appears google doesn't tolerate sex. but it tolerates terrorism
16:51:55 <Gregor> elliott: Sonivox is good. Steinway is a piano. Auto-pan is usually a good idea.
16:51:57 <elliott> Or it could just be a ``joke''
16:52:21 <elliott> Gregor: Oh god, I need that Britney Spears piano rendition in my life again
16:52:28 <elliott> It was divinity itself
16:53:16 <Cheery> I know it's a ``joke''. but this contrast is even funnier :)
16:53:33 <Cheery> http://image.bayimg.com/kajcdaadh.jpg - the full pic is perhaps nicer to look at
16:53:54 <elliott> It's funny, if by funny you mean ... not funny.
16:53:55 <Cheery> I personally like the "Plan your terrorism events" and "Scour the earth for terrorism"
16:54:10 <elliott> Not that the porn->kittens thing is really funny either
16:54:20 <elliott> But isn't this joke about a month late
16:56:49 <Cheery> somwhat
16:57:08 <Gregor> `"Find terrorism nearby"
16:57:12 <HackEgo> No output.
16:57:33 <Gregor> Where'd that backtick come from :P
16:58:19 <Gregor> "nudity" was the most naughty non-kitten word I could find that's not also fetishy and supernaughty :P
16:58:20 * Sgeo is going to start watching Carl Sagan's Cosmos
16:58:32 <elliott> OH NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:59:20 <Phantom_Hoover> Someone left the cake out in the cosmic rain.
17:03:24 <Taneb> Silly Italy and Spain
17:03:44 <Taneb> Causing people with money to panic
17:19:39 <zzo38> Now if I make up a game system (it is also a computer system), I can have optional stereovision mode, because I invented the protocol for doing so.
17:19:45 -!- itidus21 has joined.
17:20:15 <zzo38> At first it starts with a syncrhonization signal, which must consist of frames all of one color in the following order: Gray,Gray,Black,White,Black,White,Black,White,Black,White,Black,White,Gray,White.
17:20:22 <zzo38> And then, you alternate output of left and right channels.
17:20:35 <zzo38> To exit stereovision mode consist of five consecutive identical frames.
17:21:07 <Gregor> elliott: Well?
17:21:14 <elliott> Gregor: Hmm?
17:21:26 <zzo38> But it can be used wither any other systems too, you can make programs that can use this stereovision mode.
17:21:27 <Gregor> elliott: Piano Spears lighting your word yet?
17:21:33 <elliott> Gregor: I was unable to find it. ALAS.
17:22:13 <zzo38> Probably even NES/Famicom is capable of using this stereovision mode.
17:22:35 -!- itidus20 has quit (Ping timeout: 276 seconds).
17:31:25 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
18:15:01 <nooga> unfoldr (\b -> fmap (const . (second $ drop 1) . break (==' ') $ b) . listToMaybe $ b)
18:17:15 <nooga> what a nice way to split strings
18:22:50 <elliott> split package is better :P
18:31:23 -!- pumpkin has joined.
18:33:26 -!- copumpkin has quit (Ping timeout: 276 seconds).
18:37:00 -!- micahjohnston has joined.
18:42:56 -!- pumpkin has changed nick to copumpkin.
19:08:06 <elliott> Atom Zombie Smasher bonus!
19:08:07 <elliott> Humble Indie Bundle 3 now includes Atom Zombie Smasher.
19:08:10 <elliott> Oh for goodness sake.
19:12:08 -!- copumpkin has quit (Ping timeout: 258 seconds).
19:13:08 -!- copumpkin has joined.
19:14:20 <Phantom_Hoover> elliott, it's clearly just a covert scheme to guilt the hell out of everyone.
19:14:29 <elliott> "Covert".
19:15:30 <elliott> That starving indie developer picture, "It appears that you have no heart! Please prove that you are really human.", "You determine how much we deserve to earn or lose from your purchase."...
19:15:36 <elliott> It's a business model based on guilt :-P
19:16:05 <itidus21> getting analytical...
19:17:34 <itidus21> the message "pay whatever you want" registers in your concious reasoning as the ultimate bargain... of being entirely in your best interests since it is putting you in control
19:18:26 <itidus21> and that... any concious attempt to find fault with it could be smothered or rationalized by the fact that it's your fault if you're not happy with the price you pay
19:19:43 <itidus21> however, such explanations do not account for the role of the individual in a society... complete with norms, expectations, feelings of guilt, feelings of shame, ethics of reciprocity, people-pleasers
19:20:11 <itidus21> and the idea that in a way you condone things, or vote for them, or sometimes boycott them, with your money
19:20:29 <elliott> pro
19:20:32 <itidus21> that collectively people make and break projects by how they spend their money
19:21:04 <itidus21> thats my take on it.
19:21:44 <itidus21> there is surely a game theory aspect to it
19:23:18 <Phantom_Hoover> itidus21, it's really just a matter of balancing the amount you're paying with the obligation you feel to pay and the incentive for them to provide further bundles.
19:24:40 <zzo38> Someone ask me for their money back under warranty because when trying to use my software, a big spider touch them. But, there is no payment required for use of this software nor is there any warranty of this software. And you also shouldn't sue someone just because their ladder doesn't have a sign that says "Don't fall down"
19:25:35 -!- oerjan has joined.
19:25:44 <zzo38> Do you believe me?
19:26:41 <itidus21> its quite possible this person is targetting all creators of free software with this threat seeking out of court settlements
19:26:56 <zzo38> Or, do you think I am lying?
19:27:09 <itidus21> since with free software its much easier to install it, and thus provide evidence
19:27:59 <itidus21> i suspect its probably a wider stunt.... spider "touch" them.. hence they don't need a bite mark.. and they don't need to pay for the software
19:28:50 <itidus21> maybe even a mass mailer
19:29:17 <itidus21> was it specific about the nature of your software, or could it be mass?
19:29:27 <Phantom_Hoover> Spiders
19:29:27 <Phantom_Hoover> What
19:29:52 <Phantom_Hoover> Are the spiders
19:29:54 <itidus21> such a person, with such low odds of success sending such an email, would need a large population
19:29:54 <Phantom_Hoover> Capitalism
19:30:27 <itidus21> so its unlikely they have the time to actually try out every piece of software .. oor maybe they did
19:30:39 <zzo38> itidus21: No I think it was a few years ago in some IRC channel someone asked me directly. Maybe they are trying to be confusing or lying or joking or something I don't know, or tricked me
19:31:20 <itidus21> oh i see
19:31:22 <zzo38> (Obviously I did *not* give them a refund, since they did not pay me anything for it at first anyways)
19:31:30 <itidus21> so they asked for money back on some free software... thats really bizzare]
19:33:05 <zzo38> Do you know what a respose such as "VarI a_1627393744 (VarT t_1946157056) Nothing (Fixity 9 InfixL)" means in Haskell?
19:34:06 <zzo38> itidus21: Probably because my software confuses some people due to it being different from other software.
19:35:14 <itidus21> im trying to study some mechanics...
19:35:30 <itidus21> someone in another room said game coding rarely needs calculus
19:35:47 <itidus21> but... i seem to encounter calculus at every turn in this subject of mechanics
19:36:30 -!- sebbu2 has joined.
19:36:37 <zzo38> itidus21: I also seem game coding rarely needs calculus, but I have found many kinds of mathematics useful in a few cases in various programming whether it is a game or something else
19:37:14 <zzo38> Once I was making a program to convert colorspace and I figured it out by solving some algebra on paper at first, and then programming it into the computer.
19:37:47 <itidus21> these topics are pretty tough
19:38:21 <itidus21> kinematics, acceleration, proper acceleration, geodesic
19:38:39 <zzo38> However, the game programs I write rarely need kinematics, acceleration, geodesic, etc
19:38:57 <itidus21> i just want a good grasp of how everything works
19:39:07 <itidus21> i want to create a skeletal animation system
19:39:18 <itidus21> in 2d
19:39:33 <itidus21> maybe i should just jump into a tutorial on that directly :P
19:39:40 -!- monqy has joined.
19:39:44 -!- sebbu has quit (Ping timeout: 276 seconds).
19:40:11 <zzo38> Yes you can try but what programming language do you want to use? And, in some cases, what kind of libraries to do graphics output?
19:40:30 <itidus21> i want to design it in pseudocode terms
19:40:48 <itidus21> design more than implementation
19:41:01 <itidus21> not necessarily pseudocode
19:41:06 <itidus21> just the design of it yeah
19:41:42 <zzo38> With some literate programming tools you can type design and implementation, including pseudocode terms, in the same document
19:42:02 <itidus21> i only want design though.. like on paper
19:42:26 <zzo38> Then how can the program work? How can you run the program?
19:42:36 <itidus21> that can come later
19:42:41 <zzo38> OK.
19:42:58 <itidus21> lol... its different because i am under no constraints
19:43:06 <itidus21> so there is no rush to implement
19:43:18 <zzo38> Often I also write things on paper when deciding something about computer programming
19:43:49 <zzo38> However I write it my own notes, and is not really for other people to read my notes. Other people can read the implementation instead.
19:44:24 <itidus21> so i am trying to figure out how a 2d skeleton would work in practice
19:45:09 <itidus21> i could certainly make one if it was frozen in place.... but the important part of actually making it animate is lots of thinking involved
19:45:26 <zzo38> But a lot of the things I just figure out when doing the implementation. Since it is literate programming, I just put the chapters I need and the blocks, and the descriptions of what it is supposed to be, once I have thought about it a bit at first, and then typing
19:46:27 -!- ais523 has joined.
19:46:27 <itidus21> ah.. so it could be that a model to experiment with would be a good start
19:47:01 <zzo38> One thing you can do, too, is figure out a few of the equations on paper, first.
19:47:35 <zzo38> And then, if you want to, you can typeset the equations using TeX or whatever else you want to use.
19:47:52 <itidus21> hmm still to early for prototype i suppose..
19:48:31 <itidus21> so.. to youtube... the great colony google
19:48:39 <itidus21> ^colony of
19:50:10 <zzo38> But, I think, YouTube cannot be printed out. Because, it is motion video/audio. And it requires Flash and those other stuff.
19:50:12 -!- pumpkin has joined.
19:50:15 -!- pumpkin has quit (Changing host).
19:50:16 -!- pumpkin has joined.
19:50:31 <zzo38> So, you can make a document that can be printout, instead.
19:51:30 <zzo38> So you think so, or not?
19:51:37 <zzo38> s/So/Do/
19:51:41 <MDude> What do you mean by 2d skeleton?
19:51:58 -!- copumpkin has quit (Ping timeout: 252 seconds).
19:52:23 <MDude> I guess I'm mostly wondering whether parts will be allowed to overlap or not.
19:53:56 <zzo38> Has anyone ever done literate programming including a DVD of the program in the back of the book?
19:54:02 <MDude> Though I guess that doens't really affect the skeleton part itself, just what you use it for.
19:54:08 <itidus21> back
19:54:53 <itidus21> MDude: i mean like an invisible frame of interconnected vertices onto which visible pieces are added
19:55:02 <itidus21> ^added or.. skinned in some way
19:55:20 <MDude> I thought so.
19:55:29 <oerjan> ah.
19:55:30 <itidus21> i also want to give it inverse kinematics... just to be awesome
19:55:37 <oerjan> wrong window
19:56:10 <itidus21> its all part of some hare-brained scheme for a game engine
19:57:25 <itidus21> its been done before and all... but it is a pretty sexy thing
19:58:40 <MDude> I guess the hard part is deciding how joints work in it.
19:58:49 <itidus21> yup
19:59:00 <itidus21> well see... i don't know this kind of math very well
19:59:03 -!- pumpkin has changed nick to copumpkin.
19:59:27 <itidus21> so its basically, i know its possible, and its just a matter of finding out which formulas do what i need
19:59:41 <MDude> Well, th reason they say calculus isn't needed in games much is because the nature of games tends ot lend itself to interation.
20:00:32 <quintopia> zzo38: probably, but i doubt anyone has ever done literate programming such that the book cover is a flash drive, and the usb plug hangs down on a cord as a bookmark
20:00:59 <itidus21> my plans are too freeform to be bound up by something like literate programming
20:01:07 <quintopia> (which is obv coller than just hanging a flash drive on as a bookmark)
20:01:33 <MDude> I'm not quite sure what literate programming ahs to do with calculus,s icne I jsut heard of it.
20:01:49 <MDude> Though I was thinking of making an esolang based on a very strict idea of essay writing.
20:01:53 <itidus21> you could almost say the whole thing is a thought exercize...
20:02:08 <itidus21> this thing i am working on i mean
20:02:34 <quintopia> the heist of the nasa moon rocks was just a thought experiment too
20:02:40 <quintopia> until it actually happened
20:03:21 <MDude> What I do know is that with game stuff, you usually only need to take the current and maybe previous state of the things in the game and figure out what their next state is.
20:04:29 <MDude> Which means you usually don't need to plan out what anything is going to do more than a single world update from now.
20:05:04 -!- sebbu2 has changed nick to sebbu.
20:05:09 <MDude> At least that's how it works when using interative stuff..
20:05:11 <itidus21> ok i found a tutorial it seems
20:06:15 <itidus21> I have implemented things in the past, despite not being very good, I know that I can implement things if I have to. So I am focused on the system now.
20:06:55 <itidus21> perhaps an overengineered monster, perhaps just an experiment
20:08:11 <elliott> monqy: rdp is a thing
20:08:18 <elliott> i dunno if it's a thing thing
20:08:21 <elliott> but, a thing, definitely
20:08:57 * Sgeo wants public domain book recommendation
20:08:59 <Sgeo> s
20:09:26 <monqy> elliott: is it a good thing
20:09:31 <elliott> `addquote <Phantom_Hoover> OK, Taneb's been taken by a mood and he needs raw emeralds. <Phantom_Hoover> It's been fun knowing him.
20:09:34 <HackEgo> 566) <Phantom_Hoover> OK, Taneb's been taken by a mood and he needs raw emeralds. <Phantom_Hoover> It's been fun knowing him.
20:09:37 <elliott> monqy: it's a thing... it's interesting at leas
20:09:38 <elliott> t
20:09:57 <elliott> and well-thought-out, seemingly
20:10:18 <elliott> monqy: you should totally play in the df succession game that Phantom_Hoover currently has
20:10:20 <elliott> or wait are you already
20:10:23 <elliott> i forget
20:10:31 <quintopia> sgeo: you are limiting yourself right out of all the good books by insisting they be public domain. you might consider reading fanfics and creative commons books too.
20:10:49 <elliott> creatve commons fanfic of public dmain bookes,,,,,
20:11:13 <monqy> elliott: I dunno how to play dwarf fortrese but sure?? I'll need a half-decent tileset or whatever it is first.
20:11:14 <Sgeo> What good CC books are there?
20:11:24 <elliott> monqy: im just play with the default tileset,, i learned,, to be gangsta
20:11:42 <elliott> you have a nice look-walkabout type thing so it's not really that bad
20:11:50 <elliott> and the default at least gets a bunch of information on screen at once if you maximise it
20:11:54 <quintopia> sgeo: down and out in the magic kingdom is supposed to be good, though i never finished it
20:11:57 <elliott> obviously squares not being... square
20:11:58 <elliott> is
20:11:59 <elliott> suboptimal
20:12:02 <elliott> but it doesn't really matter at all
20:12:06 <elliott> apart from like aesthetic concerns
20:12:14 <elliott> and ugly text is a way bigger aesthetic failure than that
20:12:27 <monqy> aesthetic concerps are improtate but the uggly text is what I catre about
20:12:33 <elliott> quintopia: but doctorow
20:12:42 <elliott> monqy: yeah just use the default it's pretty fine
20:12:47 <itidus21> regarding implementation languages, i have this idea of doing a virtual machine language based around vector graphics primitives
20:12:58 <itidus21> so this puppy is all about over-engineering
20:13:04 <monqy> last time I tried the default it made me sad maybe it chagned????
20:13:14 <elliott> monqy: get sad about dying dorfs instead :(
20:13:16 <monqy> :(
20:13:42 <elliott> monqy: im next in line after Phantom_Hoover, I think Lymee is meant to be after me but uh Lymee will probably inevitably the last player in the whole thing for obvious reasons so you should totally go after me
20:13:48 <quintopia> elliott: do you have an articulate complaint?
20:14:08 <monqy> elliott: first I will learn how to dwarfe
20:14:16 <elliott> quintopia: the premise sounds kind of cool but i don't see how it can't possibly be sufferable if doctorow wrote it
20:14:17 -!- itidus21 has changed nick to itidus20.
20:14:25 <elliott> monqy: but......that spoils all the funne................
20:14:44 <coppro> elliott: did you mean '... don't see how it can possibly ...'
20:14:54 <elliott> monqy: boatmurdered was built on the solid foundation of people who don't know what the fuck they're doing
20:15:01 <elliott> coppro: uh yeah
20:15:24 <elliott> Phantom_Hoover: whats the name of our forte btw
20:15:32 <elliott> is it pianomurdered
20:15:32 <monqy> elliott: ok i wont'e learn how tto dwarfe
20:23:15 <coppro> elliott: why not a fan?
20:23:23 <elliott> coppro: of?
20:23:49 <Cheery> naming proposals? it holds contiguous segment of instructions and usually ends up in exit or jump of some kind.
20:24:00 <coppro> elliott: doctorow
20:24:04 <elliott> Cheery: um, procedure?
20:24:11 <elliott> coppro: I just find boingboing irritating in general
20:24:14 <elliott> ais523: oh, since when are you here?
20:24:23 <Cheery> elliott: good, except that it's smaller grain.
20:24:24 <coppro> elliott: ah. What about non-boingboing writings?
20:24:30 <ais523> elliott: since I joined
20:24:31 <lambdabot> ais523: You have 3 new messages. '/msg lambdabot @messages' to read them.
20:24:32 <elliott> Cheery: Thunk.
20:24:40 <ais523> (20:46)
20:24:44 <ais523> @messages
20:24:45 <lambdabot> elliott said 19d 20h 14m 47s ago: Request a copy of the wiki page "100_free_dutch_dating_sites_2008".
20:24:45 <lambdabot> elliott said 18h 24m 54s ago: Do you know of the Confluence functional HDL?
20:24:45 <lambdabot> elliott said 18h 24m 29s ago: It seems to have a compiler written in OCaml too :)
20:24:56 <elliott> you broke the usage instructions :)
20:25:09 <Cheery> elliott: what does 'thunk' mean?
20:25:24 <elliott> Cheery: It's commonly used in implementing lazy functional languages
20:25:29 <elliott> it basically just means an unevaluated piece of code
20:25:33 <ais523> Cheery: it's basically a bit of code that hasn't been run but will be when its answer is needed
20:25:38 <elliott> or, a 0-argument procedure designed to evaluate a piece of code
20:25:41 <elliott> in more operational terms
20:26:01 <ais523> and is typically used as a procedure argument when converting call-by-name to call-by-value (e.g. to implement it)
20:26:59 <Sgeo> http://www.barnesandnoble.com/s/down%20and%20out%20in%20the%20magic%20kingdom?store=ebook lol
20:27:03 <elliott> hmm, Wikipedia seems to mention Confluence
20:27:03 <oerjan> :t let testB bool arrow = proc () -> do if bool then arrow -< () else arrow -< () in testB
20:27:04 <lambdabot> parse error on input `->'
20:27:23 <elliott> I just found it a fairly good coincidence that there's another functional HDL with a compiler written in OCaml
20:27:29 <elliott> oerjan: arrows :(
20:27:37 <Sgeo> Why does the download page say "for Stanza"?
20:27:58 <monqy> I like arrows but I've never bothered learning their do notation. Is it any good?
20:28:32 <elliott> monqy: why do you liek arrows,,,
20:28:32 <oerjan> elliott: http://www.haskell.org/pipermail/haskell-cafe/2011-August/094454.html
20:28:56 <oerjan> fortunately/unfortunately lambdabot doesn't have them on...
20:30:07 <monqy> elliott: ther'y kind of nice....but they could be better........i wish they were better
20:30:15 <elliott> monqy: they are
20:30:27 <elliott> monqy: they're (almost) equivalent to Category + universal Applicative instance
20:30:35 <elliott> i.e. instance Category arr and instance Applicative (arr a)
20:30:46 <elliott> monqy: cdsmith is working on a two-parter about the almost-equivalence now
20:30:53 <monqy> ok
20:30:57 <elliott> monqy: IIRC the almost part is just that things like [three ampersands] have to have no defined ordering
20:30:57 <elliott> as in
20:30:58 <elliott> as opposed to arrows
20:30:59 <elliott> which are hacky
20:31:02 <elliott> because they say "left first
20:31:03 <elliott> "
20:31:04 <elliott> arbitrarily :(
20:31:25 <elliott> but yeah I never liked arrows... the functions are nice to use but everyone always uses them on (->)
20:31:27 <elliott> and as a typeclass it's a mess
20:31:32 <elliott> especially the tuples
20:31:42 <oerjan> !haskell {-# LANGUAGE ArrowNotation #-} import Control.Arrow; testB :: ArrowChoice arrow => bool -> arrow () () -> arrow () anything; testB bool arrow = proc () -> do if bool then arrow -< () else arrow -< (); main = print (testB False (const ()) () () :: [()])
20:31:46 <monqy> one of the things I dislike about arrows is they're tupley yeah
20:31:50 <EgoBot> ​/tmp/input.24917.hs:1:13: unsupported extension: ArrowNotation
20:32:00 <oerjan> hm
20:32:05 <monqy> and I've only ever used them on (->)
20:32:09 <oerjan> !haskell import Control.Arrow; testB :: ArrowChoice arrow => bool -> arrow () () -> arrow () anything; testB bool arrow = proc () -> do if bool then arrow -< () else arrow -< (); main = print (testB False (const ()) () () :: [()])
20:32:13 <Lymee> :t uncurry
20:32:14 <lambdabot> forall a b c. (a -> b -> c) -> (a, b) -> c
20:32:16 <elliott> monqy: http://cdsmith.wordpress.com/2011/07/30/arrow-category-applicative-part-i/ is part one
20:32:33 <Lymee> :t curry
20:32:34 <lambdabot> forall a b c. ((a, b) -> c) -> a -> b -> c
20:32:35 <oerjan> no suggestion :( oh wait...
20:32:48 <oerjan> !haskell {-# LANGUAGE Arrows #-} import Control.Arrow; testB :: ArrowChoice arrow => bool -> arrow () () -> arrow () anything; testB bool arrow = proc () -> do if bool then arrow -< () else arrow -< (); main = print (testB False (const ()) () () :: [()])
20:32:50 <Lymee> :t curry . uncurry
20:32:51 <lambdabot> forall a b c. (a -> b -> c) -> a -> b -> c
20:33:09 <monqy> elliott: what if there was a better arrows
20:33:11 <elliott> monqy: warning contains (PROOOFFS)S)S
20:33:17 <elliott> monqy: there is a better arrows it is category + applicative
20:33:22 <monqy> o
20:33:27 <elliott> unless you want to combine those for no gain i guess
20:33:32 <elliott> but yeah read http://cdsmith.wordpress.com/2011/07/30/arrow-category-applicative-part-i/ it is a Good Post
20:33:59 <oerjan> !haskell {-# LANGUAGE Arrows #-} import Control.Arrow; testB :: ArrowChoice arrow => bool -> arrow () () -> arrow () anything; testB bool arrow = (proc () -> do if bool then arrow -< () else arrow -< ()); main = print (testB False (const ()) () () :: [()])
20:35:15 <oerjan> ok EgoBot doesn't have the bug
20:35:33 <elliott> oerjan: if you could break egobot/hackego by segfaulting it...
20:35:47 <elliott> if it _does_ have the bug, that's what it'd look like
20:36:25 <monqy> did it privately send errors or something
20:36:40 <monqy> (type errorse)
20:38:28 <oerjan> monqy: yes
20:39:03 <elliott> oh
20:39:15 <oerjan> <elliott> unless you want to combine those for no gain i guess <-- i read that post as implying that you needed laws relating the category and applicative parts
20:39:33 <elliott> oerjan: i thought it was just a trivial restriction because Arrow is more general than it should be
20:39:36 <elliott> what with ordering of effects
20:39:38 -!- micahjohnston has quit (Ping timeout: 252 seconds).
20:39:44 <elliott> dunno, guess we'll see
20:41:09 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
20:42:06 <zzo38> Is it important to understand category theory to use Haskell?
20:42:15 <elliott> no
20:43:00 <elliott> ais523: hmm, I swear I had important revelations about [at sign] earlier.......... but they're gone now
20:43:15 <olsner> can't have been that important then
20:43:35 <ais523> Feather doesn't do that to me, so presumably @ is more viable
20:43:48 <ais523> with Feather, I have important revelations that I don't understand
20:43:52 <elliott> olsner: saying such a thing belies your lack of understanding of [COMMERCIAL AT]
20:44:28 <elliott> ais523: oh i think it was just that the whole "sending an object" thing is only needed if you want to do it indirectly for some reason — if you have an encrypted channel open, you can just send the serialisation directly
20:44:39 <Sgeo> Going outside to read
20:44:41 <Sgeo> Bye
20:44:42 <ais523> that's a reasonable optimization
20:45:15 <elliott> unfortunately, I'm not sure how I can generically serialise anything in a way that lets anyone read it while still gelling with my library model and type system/language that doesn't make every serialisation completely huge and redundant
20:45:32 <Sgeo> This epub has no table of contents
20:45:40 <elliott> (the obvious way is just to reduce everything to sum, product, etc. types and send source code for functions, basically reduce everything down to primitives)
20:45:49 <elliott> (but obviously, sending anything in this form is completely impractical, as it'll be huge)
20:47:00 <ais523> what about hashes for functions, and parts of them?
20:47:14 <elliott> also I should probably try to understand RDP, as it seems to have things to say about all this :)
20:47:16 <ais523> that way, say if the same library happened to be used by objects on both computers already
20:47:22 <elliott> ais523: umm, a hash doesn't really let you compute (a->b)
20:47:30 <ais523> elliott: it does if you have (a->b) already
20:47:31 <elliott> [asterisk](x:A).B
20:47:36 <ais523> by letting you recognise that you have it already
20:47:37 <elliott> ais523: well, yes
20:47:44 <elliott> but still, encoding everything as sums and products is horrible
20:47:48 <ais523> that should save huge amounts of bandwidth, because probably you will
20:47:51 <elliott> especially since it breaks encapsulation
20:48:00 <elliott> because everything is reduced to its _implementation_
20:48:04 <ais523> ah, right
20:48:06 <elliott> it's definitely not The Way
20:48:21 <elliott> but I'm not sure what is
20:48:35 <elliott> I'm starting to wonder if the remote access of objects is the correct way to handle networking
20:48:46 <elliott> there's a sense in which RAM:disk is not comparable to disk:internet at all
20:48:59 <elliott> because a disk failure is a critical scenario and not something you expect to deal with at all
20:49:06 <elliott> but an internet failure is almost as common as an internet success
20:49:18 <elliott> and ofc the disk generally doesn't lie to you as a matter of course
20:49:20 -!- micahjohnston has joined.
20:49:24 <elliott> and it isn't quite so slow as to take minutes to transfer things.
20:49:45 <elliott> and... passing around objects doesn't really solve the problem of how to _communicate_ between computers.
20:49:57 <elliott> which isn't the same as just communicating within the same computer
20:50:00 <elliott> because of all the above issues
20:50:08 <elliott> but then that just makes me think, maybe the problem is how intra-computer communication is done
20:50:27 <pikhq> Not to mention that conceptually, the disk is persistent, slow non-RAM, whereas a remote system is conceptually more akin to an additional *user*, that you don't really want to trust much.
20:50:32 <ais523> elliott: gah, you may end up agreeing with me about the usefulness of pervasive communication if you keep thinking along those lines
20:50:34 <elliott> because, why shouldn't it be fault-tolerant and resistant to slowness and outages, too?
20:50:37 <ais523> and that would be so out of character I'd die from shock
20:50:53 <elliott> admittedly, that's not exactly terribly _useful_ on a PC
20:50:59 <elliott> but the properties are nice, they sound like nice guarantees
20:51:05 <elliott> this is spurred on by me reading the RDP stuff a bit
20:51:14 -!- Taneb has joined.
20:51:19 <Taneb> Hello!
20:51:23 <elliott> which is basically designed so that you can do everything over the most unreliable connections possible and it works because of the static guarantees
20:51:27 <ais523> (well, possibly not, but I'd be very surprised)
20:51:28 <elliott> ais523: hmm, what's that?
20:51:42 <elliott> pervasive communication, in this context, that is
20:51:57 <elliott> (RDP is basically a competitor/refinement-according-to-the-guy-who-made-it of FRP, if none of this makes sense)
20:51:59 <ais523> having a constant Internet connection, and using it without thinking abuot that you're using it
20:52:02 <elliott> of/to
20:52:18 <elliott> ais523: presumably something you disapprove of :)
20:52:20 <ais523> my mind keeps expanding it to "remote desktop protocol", but apart from that I'm fine
20:52:22 <ais523> elliott: yes
20:52:40 <elliott> well, no, I still disagree with you about that. but that isn't the same thing as thinking that servers never go down.
20:52:46 <ais523> indeed
20:52:54 <elliott> or that internet connections can be as fast as disk. or that all agents on the internet are trustable, etc.
20:53:32 <elliott> ais523: note that I would consider it a bug if [AMPHERE] didn't work without an internet connection, too
20:53:46 <ais523> meanwhile, I've been playing Humble Bundle games
20:53:57 <ais523> and will probably surprise the channel by liking Hammerfight the most out of the ones I've played
20:54:01 <elliott> because, one, internet connections aren't even remotely as reliable as they should be, and I'm not writing an OS that you can't actually use;
20:54:02 <ais523> Crayon Physics was fun, but felt a bit limited
20:54:11 <elliott> and two, why should [insert name for the at sign] depend on anything at all?
20:54:18 <ais523> (I haven't completed it, and probably won't end up doing so)
20:54:24 <elliott> ais523: I bought it today
20:54:30 <Taneb> at siign?
20:54:32 <elliott> how much did you pay, out of curiosity, if you're willing to disclose?
20:55:00 -!- Phantom_Hoover has joined.
20:55:13 <elliott> the guilt model for selling software works surprisingly well
20:55:21 <ais523> elliott: marginally above 5 GBP (due to rounding errors in currency conversions)
20:55:31 <ais523> I may increase it, depending on how much I think the games are actually worth
20:55:32 <elliott> especially with the option to give them more money after-the-fact, combined with the fact that they won't fucking stop adding games
20:55:39 <ais523> none's impressed me enough to pay full price yet
20:55:51 <ais523> as in, none are games I'd pay typical game-like prices for
20:55:57 <elliott> ais523: ah, I paid nine pounds (fifteen dollars)
20:56:05 <elliott> and, well, typical game-like prices are like forty quid, that's ridiculous for /any/ game
20:56:38 <elliott> I also reduced the allocation to the indie-bundle-two developers because I've already been gifted a copy of that one. I think that makes sense, because bits aren't scarce. think.
20:56:43 <elliott> I'm not sure it does, but :)
20:56:52 <ais523> elliott: it makes sense, but not for that reason
20:57:05 <elliott> as in, bundletwo + bundletwo = bundletwo, so they've already gotten paid for what they're giving me
20:57:09 <ais523> yep
20:57:11 <ais523> that makes sense
20:57:32 <elliott> and bundletwo + bundletwo = bundletwo because it's non-scarce. or hmm, I suppose that could apply to scarce goods too
20:57:56 <ais523> indeed, just as long as they only need the one copy
20:58:05 <ais523> if something's scarce but not useful in multiples, it's still 1+1=1
20:58:09 <ais523> but I can't think of anything like that offhand
20:58:15 <ais523> I expect it exists, though
20:58:21 <elliott> the average cost thing is a really brilliant guilting mechanism, too
20:58:26 <ais523> hmm, some professional-quality tools, I suppose
20:58:31 <elliott> it also made me feel momentarily good at Linux users being the highest average payers
20:58:35 <elliott> even though that doesn't make much sense
20:58:45 <ais523> elliott: it didn't guilt me, I'd decided how much I'd pay before visiting the site
20:58:51 <ais523> and it turned out to be more than the average anyway
20:59:02 <elliott> oh, it didn't really guilt me
20:59:18 <elliott> but it's obvious that they're relying on guilt to a large degree to avoid people making it completely unprofitable
20:59:21 <ais523> also, if you're going to donate just 1 cent, aren't you going to report your OS as Windows?
20:59:43 <ais523> actually, I think even with 1¢ donations, they may well make a profit, unless the bandwidth costs them more than that
20:59:44 <elliott> hmm... you don't get to choose
20:59:47 <elliott> I imagine it users your user-agent
20:59:49 <ais523> you do get to choose
20:59:51 <elliott> which I doubt most people care enough to customise
20:59:53 <ais523> scroll to the bottom of the download page
21:00:06 <elliott> ais523: oh, hmm
21:00:15 <elliott> I didn't even notice that, because it's below a statistics box identical to one I've seen
21:00:17 <elliott> so I just ignored it
21:00:21 <elliott> I suspect most people do the same
21:00:23 <ais523> also, I was very amused at the top payments list
21:00:37 * elliott wonders whether counting it as OS X is correct, as well as Linux
21:00:42 <ais523> when I looked, #1 was Mt.Gox (one of the main Bitcoin exchange sites), and #2 was Notch of Minecraft
21:00:46 <elliott> I purchased it on OS X because I was busy downloading four gigabytes that could only be downloaded from OS X
21:00:52 <ais523> which version did you download?
21:00:57 <elliott> none, so far
21:00:59 <elliott> ais523: last time, Notch had a price war with Garry of Garry's Mod
21:01:22 <Sgeo> Is it bad that I'm now taking notes while reading fiction?
21:01:26 * Sgeo goes back to readinng
21:01:32 <elliott> I'd just like to take the opportunity to point out the never-unfunny fact that MtGox stands for Magic the Gathering Online Exchange
21:01:49 <ais523> elliott: I know far too much about the M:tG economy
21:01:52 <ais523> which is, admittedly, >0
21:02:05 <elliott> presumably, so do the Mt. Gox people
21:02:10 <elliott> although obviously they're trying to hide that etymology :-P
21:02:33 <ais523> but it seems unclear why a separate exchange would be useful
21:02:46 * elliott is disappointed that nobody asked me what the four gigs more, though I guess it was obvious to most
21:03:19 <ais523> except for the dubious purpose of trading tix you own for real money you don't; you'd have to undercut list prices to be able to do that, but that's entirely plausible
21:03:30 <ais523> I assume Wizards don't like people doing that
21:03:59 <elliott> I find the total payments by platform list very interesting on the humble bundle site
21:04:14 <Sgeo> elliott, what?
21:04:20 <elliott> I suppose the data is skewed by the fact that its fame is partly /because/ it's available for OS X and Linux too
21:04:28 <ais523> (the basic unit of the M:tG economy is a bizarre choice; it's a ticket that allows you to enter an official tournament that has prizes, and is approximately equal in value to the average value of the prizes divided by the number of participants)
21:04:31 <elliott> but it sure does poke a hole in all the "os x and linux are non-markets for games" rhetoric
21:04:55 <fizzie> This time Notch paid $4048, and I immediately wondered whether it was a thinko for $4096, even before that MtG-oxen one.
21:04:55 <ais523> elliott: I'd expect the values to be way proportionally higher on non-Windows
21:05:26 <elliott> ais523: eh?
21:05:26 <Sgeo> Back to reading
21:05:34 <Sgeo> elliott, what are the 4 gigs?
21:05:42 <elliott> Sgeo: I can't tell you, that'd ruin everyone /else's/ guessing
21:05:47 <ais523> part of it is that if you have $n to spend on games, and don't run Windows, you're less likely to have spent it already
21:05:50 <ais523> elliott: PM exists
21:05:51 <elliott> which I am sure will happen IF I JUST WAIT LONG ENOUGH
21:05:54 <elliott> ais523: boooring
21:05:56 <elliott> but fine
21:06:25 <elliott> ais523: well, the average is higher on mac and linux, but not /that/ much so to offset the huge disproportionality of windows users
21:07:21 <ais523> well, gamers fall into quite a few subsets
21:07:38 <ais523> I imagine the sort of people who think Halo is the best game ever wouldn't care for the Humble Bundle at all
21:07:48 <ais523> which is disproportionately heavy on puzzle platformers
21:07:50 <elliott> well, obviously it's an indie market :)
21:07:58 <elliott> but plenty of indie devs think that non-windows doesn't exist
21:08:07 <ais523> I used to, once
21:08:11 <elliott> the lugaru dev proved that wrong ages ago, but it's good to have even more data to back it up
21:08:14 <ais523> but it turned out to not be too hard to port DNA Maze
21:08:16 <elliott> ais523: well, erm, in a less literal sense :-P
21:08:23 <ais523> elliott: I'd, umm, heard of UNIX
21:08:25 <ais523> but wasn't sure of what it was for
21:08:33 <fizzie> Incidentally, And Yet It Moves flat out refuses to run on my laptop ("no suitable GLX visual available", even though glxinfo lists billions; forums say others have the same issue, no solution yet) and Hammerfight runs somehow really really choppily. (Crayon Physics Deluxe, VVVVVV and Cogs worked just fine though.)
21:08:37 <elliott> ais523: I once went to unix.com and got upset that there wasn't a download link (it was some forum for Unix-alike users)
21:08:44 <elliott> oh, it still is
21:09:00 <ais523> fizzie: Hammerfight didn't become playable until I turned the graphics settings right down and set the mouse DPI to a very low value (because I have a touchpad)
21:09:10 <ais523> Cogs crashes my GPU
21:09:23 <ais523> first time I've ever seen a GPU crash on my own computer, normally it's my students doing it
21:09:38 <ais523> and then I need a hard reboot before anything but text and framebuffer works
21:09:44 <elliott> ais523: so, ummm, it's a bad sign if I ever think "hey, I wish we had Checkout here", right?
21:09:52 <ais523> elliott: maybe not
21:09:57 <fizzie> ais523: I tried twiddling the mouse DPI, but it just affected the motion/pixels ratio; the animation stayed choppy. Also the graphics slider did nothing to the menu.
21:10:06 <ais523> the menu's still unplayable
21:10:09 <fizzie> I didn't actually try proceeding from the menu though.
21:10:12 <elliott> ais523: i'm quite worried, personally
21:10:28 <fizzie> I guess I'll try the actual game then.
21:10:31 <ais523> anyway, the annoying thing about the game is that the graphics slider needs to be at about 0.2 or 0.3 for smooth, good-looking play
21:10:34 <elliott> ais523: mostly because I never managed to actually _read_ the Checkout article
21:10:43 <ais523> but it only starts telling you which units are on which teams at 0.5
21:10:46 <ais523> which is kind-of fundamental
21:10:50 <elliott> I hate people who say tl;dr, so pretend I said something analogous here
21:10:54 <ais523> and turns on a lot of pointless embellishments below that
21:11:04 <ais523> why can't I turn on team display without having big flowy banners?
21:11:43 <fizzie> Mhm. The machine in question *should* be able to run a 2D physics game though, weird that it manages to be oh-so-slo.
21:11:55 <ais523> it's pretty graphics-heavy
21:12:03 <ais523> and it's probably trying to software-render everything
21:12:28 <ais523> the graphics don't look 10 to 60 years old, like indie game graphics normally do
21:12:29 <Taneb> Oh dear god I'm bored
21:12:32 <monqy> hi
21:12:33 <elliott> ais523: OK, rephrase: Is it bad if I think "hey, Checkout would be really useful here", and I'm coding in /Haskell/? In pure code? (i.e. no IO monad, pure denotational compositional goodness)
21:12:36 <ais523> they look more recent than that
21:12:39 <ais523> elliott: probably
21:12:49 <fizzie> But that thing has a Core i7 2720QM something. You can't get very much more on a laptop. (Okey, there's two faster models still.)
21:12:50 <elliott> ais523: :(
21:13:11 <Taneb> AAAH! THEY'VE GIVEN ME MORE GAMES!
21:13:16 <elliott> ais523: wait, sixty years old?
21:13:18 <ais523> Checkout isn't massively imperative, it's sufficiently low-level that it's starting to get functional again
21:13:31 <elliott> that's not even Pong, that's that somethingvac tic-tac-toe
21:14:03 <fizzie> Assembly had the "GameDev" competition videos yesterday, but I don't thing there's much worth highlighting.
21:14:25 <ais523> meanwhile, today I've a) bought a new bed, and b) attempted to, for the tenth time today, get past Viridian City in Pokémon Blue
21:14:26 <elliott> hmm, I don't become a "game dev" :-/
21:14:37 <ais523> I keep accidentally deleting one or the other save file
21:14:37 <fizzie> There was one rather prettier-than-usual cave-flyer game (a traditional Finnish genre).
21:14:39 <ais523> or sometimes both
21:14:43 <elliott> erm
21:14:45 <elliott> hmm, I hope I don't become a "game dev" :-/
21:14:49 <elliott> I can't type
21:14:54 <fizzie> Oh, and an Atari 2600 port of that "Winterbells" flash game.
21:15:02 <fizzie> Points for platform there.
21:15:06 <monqy> becoming "game dev" is my nightmare
21:15:09 <ais523> cave-fliers are Finnish?
21:15:19 <ais523> elliott: just refuse to use C++, that's the simplest way
21:15:23 <elliott> fizzie: "a traditional Finnish genre" -- I'm imagining you have it with your national dish on insert-patriotic-dish-here.
21:15:26 <fizzie> ais523: Many are. V-Wing, Kops, Luola, Wings, ...
21:15:27 <ais523> being a "game dev" complete with quotes requires C++ knowledge
21:15:40 <elliott> ais523: s/C++/suspiciousC++/
21:15:47 <elliott> erm, not suspicious
21:15:48 <elliott> what's the word
21:15:50 <Taneb> I'm increasing the amount I paid
21:15:51 <elliott> superstitious
21:15:56 <ais523> oh no, I remember the quote about people being able to write FORTRAN in any language
21:15:58 <elliott> Taneb: what, from one dollar?
21:16:03 <Taneb> Yep
21:16:06 <Taneb> To 25
21:16:11 <ais523> and am wondering if there are people who can write C++ in any language
21:16:26 <fizzie> I was guessing "to two!"
21:16:42 <ais523> hmm, I've ended up writing a detailed guide to the first battle in Pokémon just because I've had to play it so many times
21:16:49 <oerjan> cave-fliers with mämmi
21:16:58 <elliott> ais523: Well, I'm doing it all in Haskell, with all the graphics code using GPipe (a type-safe thing that uses symbolic values to compile purely-functional Haskell code to super-efficient shaders), with the whole thing tied together with FRP rather than any kind of traditional imperative state-munging code
21:17:01 <Taneb> PAYED
21:17:05 <elliott> So I think I'm avoiding the whole "game dev" thing pretty well
21:17:12 <elliott> I might also be avoiding the "having an actual working game" thing too, though
21:17:22 <ais523> don't worry, so do most of the
21:17:24 <ais523> *them
21:17:26 <elliott> haha
21:17:35 <elliott> ais523: GPipe was, incidentally, where I thought that Checkout would come in handy
21:17:47 <ais523> actually, the hardest part of game development, in terms of dollars spent, is things like art and 3D models
21:17:57 <elliott> ais523: because, why compile pretty, strongly-typed, functional Haskell code into shaders, when you could compile it into Checkout and have it go even faster?
21:18:43 <ais523> elliott: compile it into shaders, or possibly OpenCL; in practice, there's no real way to get Checkout actually onto the chips even though they think like that, and you'd have to abstraction-inverse it into shaders anyway
21:18:50 <elliott> ais523: art and threedee models are easier for me than for most games because it's both a Minecraft-esque game (FSvery looseVO esque), and because I'm doing them procedurally
21:18:54 <zzo38> Did anyone even make the Checkout compiler anyways?
21:18:59 <ais523> and hope that the compiler optimised it back to the original
21:18:59 <elliott> (because I'm not making a few thousand stone textures for all the different kinds of stone you can get)
21:19:00 <ais523> zzo38: no
21:19:11 <elliott> (or a few hundred dirt textures for all the different moisture levels it can be at... per type of dirt)
21:19:15 <zzo38> I would also like to have the Checkout compiler, though.
21:19:26 <elliott> thousands literally, I'm basically bundling a bunch of values into every block
21:19:31 <ais523> elliott: heh, Elliottcraft has procedurally generated palettes for the textures
21:19:37 <elliott> yep :D
21:19:38 <ais523> they're pretty much the only bit I've written, apart from the spec
21:19:42 <ais523> elliott: no, I mean my program
21:19:43 <elliott> umm, wait
21:19:44 <elliott> haha
21:19:47 <elliott> ais523: well, me too
21:19:48 <Taneb> I'm losrr
21:19:59 <Taneb> losrr is now my state
21:20:13 <elliott> ais523: it also means I can do nice things like have textures that aren't just the one thirty-two by thirty-two bitmap tiled
21:20:22 <Taneb> I meant to say, I'm lost
21:20:24 <elliott> as in, a clump of ore together can look different to just a bunch of ore blocks
21:20:39 <elliott> because textures aren't fixed bitmaps
21:20:46 <elliott> and since textures compile down to shaders, I /think/ this should be fast enough
21:20:53 <zzo38> Are there programs for writing Haskell program without IO monad?
21:20:55 <ais523> I think my game, if I write it, might not be massively fun to play, but it'll make a great esolang
21:21:11 <zzo38> ais523: Try.
21:21:16 <elliott> zzo38: well, you have to use IO because main has to be of type (IO a) for some a, but yes, you can avoid the imperative model outside of that with FRP libraries
21:21:34 <ais523> because I care more about the esolang aspects than the game aspects
21:22:33 <elliott> ais523: with me, 90 percent of the fun of Elliottcraft is thinking about implementing it
21:22:36 <ais523> but I have so many other things to work on (this Pokémon playthrough, the Secret Project, AceHack, my day job...)
21:22:41 <zzo38> elliott: But can the main function be a C program? And then you can write other part of the program in Haskell?
21:22:44 <ais523> elliott: same here
21:22:55 <elliott> I'm basically planning to carve out hundreds of modules where I make everything JUST AS I LIKE IT
21:22:56 <Taneb> I want to play these games
21:23:00 <ais523> much of the fun of Enigma comes from me as how to express a particular puzzle as an Enigma level
21:23:04 <elliott> zzo38: yes
21:23:22 <elliott> ais523: with me, quite a lot of it is about solving the things that aren't directly related to the game idea in The Right Way
21:23:32 <elliott> ais523: mostly fuelled by Minecraft being full of The Wrong Way
21:23:35 <ais523> hmm, with me, it's more the game idea itself
21:23:42 <zzo38> elliott: Then probably you don't have to use IO monad, you can use whatever way you want by writing the C program that way, isn't it?
21:23:56 <elliott> ais523: well, yeah, the other half of the excitement comes from the insane world generation stuff and the like
21:23:57 <ais523> I have basically just three types of cube plus air, although two of the cubes can be static or mobile
21:24:03 <ais523> which makes six total
21:24:05 <elliott> we're talking DF levels
21:24:15 <elliott> except infinite world, which basically means it has to generate a huge area in advance
21:24:15 <ais523> but most of them have six possible orientations
21:24:20 <elliott> so that it can generate new areas before you can reach them
21:24:21 <fizzie> (Also this year's "joke game" -- well, one of them -- was a lathe simulator game. You try to get your piece of wood to resemble the given cross-section, and the can buy new chisels, including a light-saber one. And so on.)
21:24:27 <ais523> elliott: at least it isn't Slaves to Armok III
21:24:47 <elliott> ais523: well, it indeed isn't that (good time to reference that, since me and Phantom_Hoover have just started playing DF)
21:24:59 <Taneb> I reckon Slaves too Armok: God of Blood: Part III will be a space-shootemup
21:25:02 <ais523> I don't think anything will be the #esoteric version of that
21:25:12 <ais523> Taneb: the #esoteric version is awesome and impractical
21:25:14 <elliott> Taneb: haha
21:25:18 <elliott> that'd be great
21:25:23 <elliott> or a Pacman clone
21:25:27 <elliott> except you're a dorf instead of pacman
21:25:29 <ais523> the basic idea is that Slaves to Armok I : Slaves to Armok II :: Slaves to Armok II : Slaves to Armok III
21:25:34 <ais523> (II is, of course, Dwarf Fortress)
21:25:37 <elliott> ais523: precisely; it just goes /backwards/
21:25:43 <ais523> oh, Slaves to Armok 0?
21:25:52 <elliott> well, III, but it's a rebound in terms of complexity
21:25:56 <zzo38> How do you write 0 in roman numbers?
21:26:00 <elliott> as I is to II, 0 is to II
21:26:01 <fizzie> Slaves to Armok 0 is what we're living in.
21:26:04 <elliott> umm, or something
21:26:07 <ais523> zzo38: you write it out in words, generally, as NIHIL
21:26:12 <elliott> basically III is an incredibly stupidly simple game.
21:26:14 <ais523> although people typically write it as 0 nowadays
21:26:17 <elliott> maybe it is Dot Action.
21:26:20 <elliott> 22:23 ais523: I have basically just three types of cube plus air, although two of the cubes can be static or mobile
21:26:20 <Taneb> http://www.bay12games.com/armok/
21:26:21 <zzo38> Write how many Bibles you have stolen (use roman numerals)
21:26:28 <elliott> ais523: I, on the other hand, am worried about running out of bytes
21:26:30 <ais523> 0
21:26:34 <elliott> as in, one byte per block might not be enough
21:26:38 <elliott> block type, I mean
21:26:49 <elliott> umm, what I'm saying is I might have more than two hundred and fifty six block types
21:26:54 <elliott> (Obviously things like moisture level and the like are stored separately)
21:27:04 <zzo38> ais523: Yes I think I have read, CLC-INTERCAL uses NIHIL? But INTERCAL-72 uses just a bar with nothing
21:27:12 <ais523> elliott: I've been trying to work out if I can use Hashlife to implement my language
21:27:20 <ais523> zzo38: that's nonstandard, because it's INTERCAL
21:27:21 <elliott> `addquote <Phantom_Hoover> Taneb's been hit by melancholy. <Phantom_Hoover> He didn't have any friends, fortunatel.y
21:27:22 <HackEgo> 567) <Phantom_Hoover> Taneb's been hit by melancholy. <Phantom_Hoover> He didn't have any friends, fortunatel.y
21:27:23 <elliott> Phantom_Hoover: good poem
21:27:43 <zzo38> ais523: Well, yes
21:28:15 <elliott> ais523: heh
21:28:20 <Taneb> Taneb cancels chat: taken by mood.
21:28:26 <Taneb> Taneb is melancholy!
21:28:27 <elliott> ais523: I'd probably end up liking your game more than mine
21:28:28 <Sgeo> CA: A rule transforms an input into an output that itself can be put into the rule
21:28:34 <elliott> ais523: but that's okay, since I'm more interested in making it than playing igt
21:28:40 <elliott> I might even still play MC once it's "done"
21:28:42 <ais523> yep, indeed
21:28:45 <elliott> [asterisk]it
21:28:46 <Sgeo> Differentiation: A rule transforms an input into an output that itself can be put into the rule
21:29:05 -!- CakeProphet has joined.
21:29:06 -!- CakeProphet has quit (Changing host).
21:29:06 -!- CakeProphet has joined.
21:29:06 <ais523> well, Elliottcraft/CUBE is a bully automaton
21:29:17 <ais523> because I was inspired by RUBE, and trying to make a 3D version
21:29:24 <ais523> and realised that 3D doesn't need nearly the components that 2D does
21:29:31 <elliott> ais523: now that's just confusing; the Cube is the name of a famous (not-yet-)structure in our Minecraft games
21:29:41 <ais523> the capitalisation matters
21:29:44 <elliott> your disambiguation needs disambiguation :D
21:30:02 <ais523> in this Pokémon LAP I'm writing, I'm using Pokémon grammar when I'm writing in-person
21:30:08 <ais523> which is basically, that proper nouns are in allcaps
21:30:09 <elliott> haha
21:30:15 <ais523> and é is considered capital
21:30:31 <elliott> (LAP?)
21:30:41 <ais523> let's all play, it's a sort of evolution of the let's play concept
21:30:54 <ais523> you get loads of people to let's play the same game simultaneously, each under a different restriction
21:31:07 <ais523> although in this case "the same game" was defined rather loosely as "Pokémon"
21:31:13 <Sgeo> My nook is consistently freezing :(
21:31:22 <ais523> which is a kind-of vague method of naming a game
21:31:26 <elliott> ais523: LNP sounds like more fun
21:31:33 <elliott> you specify one game, and everyone has to play any game but that one
21:31:45 <ais523> that wouldn't be too different from what happens on LP forums anyway
21:31:48 <elliott> haha
21:32:07 <ais523> anyway, I'm doing a glitchrun
21:32:20 <ais523> and not shying away from doing really tricky glitches that randomly delete the savefile right at the start of the game
21:32:31 <ais523> (right at the start of the game is obviously the best time to do them, in fact)
21:33:06 <ais523> and I'm doing them on a real Game Boy (for reasons you can probably guess), so no savestates
21:33:31 <ais523> oh, and you = elliott there, not = unspecified person
21:34:00 <elliott> (bleh, it's probably a bad sign when you realise that your game is at least as ambitious as Dwarf Fortress, without the single "compromise" that made Dwarf Fortress even possible: not having "real" graphics)
21:34:08 <elliott> ais523: for hardcoreness? accuracy?
21:34:10 <ais523> real graphics can be retrofitted
21:34:20 <elliott> and yes, they can, but it's not always a good idea
21:34:21 <ais523> elliott: no, think about what sort of person I am
21:34:31 <ais523> and in particular, whether I'd know where to get a ROM of Pokémon Blue from
21:34:35 <elliott> OpenGL is a pretty different model to an ncurses program, after all
21:34:36 <elliott> ais523: oh, duh
21:35:02 <ais523> (and nobody tell me, that happened last time I made a comment like that)
21:35:17 <elliott> ais523: now why would you tempt me like that?
21:35:19 <ais523> I actually deleted the link from my logs
21:35:23 <elliott> hahahaha
21:35:31 <itidus20> elliott: well you would have the insight into which features of dwarf fortress are unnecessary
21:35:36 <ais523> and I can't remember who it was, fortunately for them if anyone ever asks me
21:35:43 <elliott> itidus20: none of them are, it does not go far enough >:D
21:35:50 <elliott> ais523: they have AVOIDED PRISON thanks to your bad memory
21:36:00 <ais523> and thanks to nobody caring
21:36:06 <ais523> well, nobody but me
21:36:22 <itidus20> ais523: do you want a ROM of pokemon blue, essee?
21:36:27 <ais523> no
21:36:28 <itidus20> i dunno if thats the correct spelling
21:36:34 <elliott> ais523: I'm sure some people care, they're just particularly irritating people
21:36:41 <ais523> format shifting isn't legalised in the UK yet, and even if it were, I'd probably have to dump it myself
21:36:51 <elliott> I'm sure the RIAA would find a reason to care about it, somehow
21:37:02 <ais523> elliott: (that's a serious "yet", there is currently legislation to legalise it going through Government at the moment)
21:37:33 <elliott> ais523: have you seen http://arstechnica.com/tech-policy/news/2011/08/the-british-government-has-endorsed.ars?
21:37:40 <elliott> (presumably yes)
21:37:46 <ais523> elliott: no, I saw some people on Slashdot mention it
21:37:52 <ais523> but had no reason to doubt them
21:37:52 <elliott> ais523: do you have any explanation????
21:37:55 <elliott> it seems completely out of left field
21:38:07 <ais523> yes, it's political manouevering
21:38:11 <itidus20> ais523: is it best to not comment on a topic like gameboy roms in here?
21:38:17 <ais523> itidus20: indeed
21:38:27 <ais523> the way the Digital Economy Bill was forced through had nomic-like levels of dubiousness
21:38:28 <itidus20> not that i have anything to say about it
21:38:52 <ais523> and I expect the current government, formed of every major party who didn't vote for that bill, is annoyed at it and wants to tone it down
21:38:55 <elliott> itidus20: nobody gives a shit apart from ais523
21:39:02 <ais523> and so is doing the opposite out of spite
21:39:03 <elliott> so just don't do it too much while ais523 is here or he'll rage/part
21:39:06 <elliott> hth
21:39:07 <ais523> elliott: it's technically against Freenode rules
21:39:16 <elliott> ais523: so's our channel name :-P
21:39:25 <ais523> and, fwiw, the rules of basically every IRC server and forum in existence
21:39:56 <ais523> every webforum I've seen has an explicit "do not discuss ROMs" rule, unless it's a sufficiently unlikely event for that forum that they didn't point it out explicitly
21:40:38 <elliott> It's okay, I have a perfect shield
21:40:52 <elliott> totalromsforever.invalid/pokemonblue.rom [NO COPYRIGHT INTENDED]
21:41:00 <Sgeo> lol
21:41:04 <elliott> (.invalid so that ais523 doesn't panic and erase it from his logs)
21:41:06 <itidus20> i understand
21:41:29 <ais523> anyway, I signed the petition against the Digital Economy Act; it got a non-answer from the government, but they probably noticed that it was a) unpopular, and b) possible to overturn without losing any face at all, in fact gaining it
21:41:30 <pikhq> ais523: There is an *obvious* solution to finding a Pokémon Blue ROM.
21:41:36 <Sgeo> Oh, I thought you were making fun of YouTube people who put that in the description of clearly infringing works
21:41:36 <pikhq> http://www.google.com/
21:41:36 <ais523> so they may be overturning it to gain political points
21:41:48 <ais523> Sgeo: so did I
21:41:51 <zzo38> I have played Pokemon Red, but I prefer Pokemon Card
21:41:51 <ais523> in fact, he may have been
21:42:13 <ais523> note that streaming copyrighted information from YouTube doesn't actually violate any laws on the part of the downloader, only the uploader
21:42:14 <elliott> Sgeo: I was
21:42:56 <Sgeo> ais523, awesome. I feel vindicated
21:43:05 <ais523> hey, we have a matrix of solidity in the topic again!
21:43:40 <elliott> ais523: so did you what?
21:43:43 <elliott> oh, right
21:43:55 <elliott> ais523: hmm, it doesn't?
21:44:08 <ais523> err, context?
21:44:14 <elliott> I always thought "downloading is legal" is a persistent myth
21:44:21 <ais523> streaming != downloading
21:44:27 <ais523> because it explicitly doesn't make a copy
21:44:28 <zzo38> elliott: Probably it depends what country?
21:44:28 <elliott> ais523: oh come on, my browser has a cache
21:44:49 <ais523> well, it's YouTube's fault for not turning it off
21:44:55 <ais523> also, I tend to view YouTube random-access
21:45:01 <ais523> as in, I don't watch videos in order
21:45:15 <ais523> and the loading properties imply it isn't being cached properly
21:45:19 <ais523> it sometimes gets confused, in fact
21:45:26 <elliott> ais523: YouTube is just terrible at loading videos for some reason
21:45:32 <elliott> I'm not sure how, it's really spectacularly bad
21:45:43 <elliott> they seemed to update their software at some point and suddenly everything broke
21:45:47 <ais523> elliott: and it's still better than all the other streaming sites on the Internet
21:45:51 <elliott> that's true
21:45:53 <ais523> (DailyMotion is second, btw)
21:45:58 <elliott> well, vimeo is about as good nowadays
21:46:00 <elliott> it used to be much worse
21:46:03 <elliott> but then YouTube got terrible
21:46:10 <elliott> (as far as streaming sanity goes)
21:46:48 <ais523> hmm, Google have messed a lot of things up
21:47:12 <ais523> OK, attempt #10 at this glitch
21:47:16 <ais523> let's see how it goes wrong this time
21:48:05 <ais523> "The file data is destroyed!"
21:48:41 <ais523> this is as bad as startscumming NetHack :)
21:49:27 <Taneb> I was never any good at Nethack
21:49:49 <olsner> vimeo makes flash hide the mouse cursor in the whole browser window, youtube doesn't do that
21:50:48 <Vorpal> issue: nwn uses OSS. That means the ALSA OSS emulation. Now: how do I tell it which sound card to use, it ignores ~/.asoundrc
21:50:49 <Vorpal> hrrm
21:51:09 <ais523> Vorpal: heh, you bought Linux NWN?
21:51:18 <Vorpal> ais523, I had it since ages. A gift
21:51:24 <ais523> I only have the one sound card, so it doesn't bother me
21:51:32 <Vorpal> ais523, well I have two, and it is using the wrong one
21:51:44 <Vorpal> in other words, it is using the on-board stuff
21:52:04 <zzo38> I have written a GameBoy game once. But probably the program can still be shortened
21:52:46 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
21:53:05 <Vorpal> ais523, in fact it seems to think I have 3 cards... what
21:53:24 <Vorpal> oh one is hdmi thingy on my video card
21:54:51 <itidus20> wow nice
21:55:08 <itidus20> on the list of things i'd like to do in life is to write a homebrew gameboy game
21:55:39 <zzo38> itidus20: Yes please learn try it. Do you want color GameBoy or the mono GameBoy?
21:55:53 <itidus20> mono
21:55:57 <zzo38> OK
21:56:02 <itidus20> i have an emulator
21:56:06 <itidus20> visualboyadvance
21:56:12 <itidus20> just incase i do try homebrewing
21:56:34 <itidus20> and of course theres the public domain roms from zephyrs domain
21:56:59 <itidus20> although the sound is kinda scratchy on that emulator
21:58:01 <pikhq> You'd probably be better off with a more accurate emulator. Gambatte is the most accurate GB/GBC emulator that I know of, BTW.
21:58:16 <itidus20> ganbatte o kudasai
21:58:27 <pikhq> Yes, that is the origin of the name.
21:58:54 <pikhq> Though it'd just be "ganbatte kudasai"; wo isn't used with verbs.
21:59:21 <zzo38> When I wrote a GameBoy game, I had to do some things so that it works on TGB-Dual, VisualBoyAdvance, and GoombaColor.
21:59:48 <Vorpal> ais523, solved by the aoss user-space hack
22:00:11 <ais523> hmm, I'm still not sure how to do sound in the Secret Project
22:00:16 <fizzie> ais523: If you buy Windows NWN, you can download the Linux files and use the CD key, IIRC.
22:00:19 <ais523> pulseaudio doesn't run properly inside it, for whatever reason
22:00:21 <ais523> fizzie: that's what I did
22:00:46 <ais523> and even got the system-independent files by extracting them from the CD with Wine and copying them over (this is explicitly allowed)
22:00:55 <fizzie> The module editor tools they didn't port. :/
22:01:15 <ais523> they run pretty well in Wine, nowadays; the main issue is some sort of slow crash bug, and menu item duplication that seems to be related
22:01:30 <ais523> (as in, menu items are duplicated, and the more you interact with menus, the more likely the crash gets)
22:02:36 <itidus20> zzo38: so what do i expect to bring to homebrew gameboy? for one thing, good controls
22:02:51 <zzo38> itidus20: Actually I just wrote one program
22:02:51 <itidus20> which made me stop and think... does it have floating point?
22:03:01 <zzo38> And I could probably shorten it by at least 100 bytes
22:03:02 <itidus20> im guessing i might have to just simulate fractions instead
22:03:18 <itidus20> if it doesn't have native floating point
22:03:27 <ais523> itidus20: it's an 8-bit system, floating-point would be ridiculously inefficient even if native
22:03:33 <ais523> it doesn't work well at that sort of bitwidth
22:03:38 <ais523> fixedpoint or even BCD is more common
22:03:46 <itidus20> humm
22:03:54 <zzo38> The actual program code is less than 1K but there is a lot more data in the file, which is level data.
22:03:56 <itidus20> oh fixed point
22:04:01 <itidus20> well anyway
22:04:16 <itidus20> i would encode my velocities as real numbers
22:04:20 <itidus20> whatever it took
22:05:22 <itidus20> for some subpixel effects
22:05:46 <itidus20> rather, that you could move in gamespace without necessarily moving 1 whole pixel
22:06:05 <fizzie> Subpixel positions tend to be fixed-point.
22:06:15 <itidus20> cool
22:06:22 <itidus20> ya.. thats what i would end up doing
22:07:03 <itidus20> i forgot that floating point doesn't mean "real numbers"
22:07:04 -!- elliott has quit (Remote host closed the connection).
22:07:08 <fizzie> The subpixel position seems to be quite a common concern for TAS-makers.
22:07:11 <itidus20> its the novice in me
22:07:22 <itidus20> whats TAS?
22:07:33 <fizzie> Tool-assisted speedrun.
22:07:38 <itidus20> ahhhh
22:07:46 <fizzie> Those beyond-human-limits videos they do.
22:07:57 <itidus20> oh yeah i watch a lot of mario videos
22:08:04 <itidus20> but not used to the acronym
22:08:19 <monqy> mario videos?
22:08:28 <itidus20> super mario bros 1
22:08:43 <ais523> itidus20: are you anywhere near as good as andrewg?
22:08:45 <itidus20> since TAS tends to exploit all kinds of cool glitches
22:08:51 <itidus20> i watch the videos i dont make them
22:08:59 <itidus20> i have never even beaten that game ;_;
22:09:29 <itidus20> but yeah.. TAS in super mario means... wild crazy shit...
22:09:57 <itidus20> also.. uh.. super mario kart apparently there has been some new findings .. some new exploit
22:10:09 <itidus20> which makes even faster laps possible
22:10:12 <ais523> itidus20: actually, IIRC andrewg's non-TAS record is now within a couple of seconds of happylee's TAS record
22:10:28 <ais523> and they're both below 5 minutes
22:11:06 <itidus20> i havent watched any side scrollers with TAS though
22:11:16 <itidus20> something like castlevania would be cool as a TAS I suppose
22:11:25 <ais523> you should (if you mean sidescrolling platformers), they're probably the most popular genre to TAS
22:11:30 <ais523> and have most of the bestknown tricks
22:11:36 <itidus20> or contra
22:11:38 <ais523> things like zips and corner boosts, etc
22:12:01 <ais523> if you want to see really broken plaforming, try watching a TAS of any early Sonic game
22:12:16 <ais523> (2 and 3-and-Knuckles are both good choices)
22:12:39 <ais523> Mario games are pretty broken too, just not quite as dramatically
22:12:53 <itidus20> sonic is more broken than mario?
22:12:58 <itidus20> haha
22:13:02 <itidus20> i did not know
22:13:04 <fizzie> That no-star Mario 64 is quite brokeneded.
22:13:32 <ais523> that doesn't count as a sidescroller
22:13:34 <ais523> although indeed it is
22:13:51 <ais523> however, the Sonic runs have comparable levels of brokenness (!)
22:14:29 <itidus20> i have been obsessed with game glitches ever since i read about street fighter 2's glitches in a magazine once
22:15:00 <fizzie> I vaguely recall a Sonic video where Sonic really doesn't get much screen-time, the camera's mostly trying to catch up.
22:15:25 <itidus20> by gllitch i mean... when a glitch is signifigant enough to add a new gameplay mechanic then it becomes very exciting
22:15:53 -!- copumpkin has joined.
22:16:19 <cheater> fizzie, not that uncommon
22:16:25 <cheater> especially with transporter tubes
22:17:08 <Taneb> I'm going to get some sleep now
22:17:10 <Taneb> Goodnight
22:17:13 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
22:17:14 <cheater> NO
22:17:17 <cheater> oh damn
22:17:20 <cheater> i was too slow :(
22:17:42 <ais523> fizzie: they're mostly like that
22:17:48 <fizzie> There's some sort of "pass through objects that haven't been loaded yet because the camera is lagging too badly behind" stuff going on there.
22:17:53 <ais523> also, with Sonic's engine, if something isn't onscreen, it doesn't exist
22:18:17 <ais523> and the levels wrap both vertically and horizontally, so zipping backwards off the screen makes you win as soon as the camera catches up enough for the level exit to spawn
22:18:26 <ais523> *backwards off the level
22:19:00 -!- Taneb has joined.
22:19:07 <Taneb> Why did my departure get NO'd?
22:19:52 <oerjan> Taneb and his short naps
22:20:18 <Taneb> It's like a lightning strike
22:20:30 <Taneb> There's actually two strikes, a short one and a much longer one
22:20:34 <fizzie> I have a sort of a phobia when it comes to graphical glitches in 3D games though. They always make me worry this side of the screen might start bugging out too.
22:20:42 <Taneb> Of course, I cannot verify that factoid
22:20:44 <oerjan> reminds me of this story i've been told about how Fridtjof Nansen took his afternoon nap
22:21:20 <itidus20> fizzie: i dont play much 3d games so i havent experienced that. but. i think you will find its a very natural phobia to feel. because
22:21:21 <Taneb> Go on...?
22:21:27 <oerjan> he sat down in his armchair with his keychain in one hand
22:21:37 <itidus20> a glitch in 3d conditions you to expect a certain thing to happen in 3d...
22:21:39 <oerjan> when the chain hit the floor, his nap was over
22:21:57 <itidus20> now when you encounter the 3d world on this side there is probably some residue of that conditioning of expecting glitches
22:22:23 <Taneb> I sorta expect glitches and loss of player data in the real world
22:22:25 <itidus20> the... troubles of 3d
22:22:31 <itidus20> :-s
22:22:40 <itidus20> is this actually happening to people who play 3d games?
22:22:53 <Taneb> Not realy
22:23:01 <Taneb> I just read too many webcomics
22:23:09 <Taneb> And get paranoid easily
22:23:16 <itidus20> no thats just concious rationalizations
22:23:41 <Taneb> No, this is to do with webcomics
22:23:45 <Taneb> Specifficaly Misfile
22:24:05 <itidus20> heavy
22:24:17 -!- GreaseMonkey has joined.
22:24:30 <Taneb> Nothing of the sort has happened yet...
22:24:46 <Taneb> YET
22:24:56 <ais523> OK, let's see if attempt 11 worked
22:25:03 <itidus20> player data presupposes a player data storage
22:25:16 <Taneb> Maybe it's p2p?
22:25:19 <ais523> hmm, either it did, or I was too early
22:25:33 <ais523> I'm guessing the latter
22:25:43 <Taneb> Any, goodnight for reals
22:25:57 <ais523> I hate having to hit subframe-perfect timings without even knowing what the timing is or having a countdown to help
22:26:09 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
22:26:55 -!- Cheery has quit (Quit: Lost terminal).
22:27:13 <itidus20> the thing is that subpixel position is very important in creating fluid controls
22:27:28 <ais523> itidus20: have you seen SML2 (for the Game Boy)
22:27:34 <ais523> its controls are fluid, but it doesn't have subpixels, at all
22:27:44 <ais523> what it has instead, well, it's exploitable in a really crazy way which spams sound effects
22:28:15 <itidus20> actually i haven't
22:28:34 <ais523> go check out tasvideos.org, it's full of this sort of thing
22:30:13 -!- FireFly has quit (Quit: swatted to death).
22:30:37 <itidus20> ok i suppose i should take it that i am wrong then about the control thing
22:30:42 <itidus20> it was an assumption after all
22:32:24 <ais523> bleh, it was too early
22:34:20 <oerjan> ^show test
22:34:29 <oerjan> er
22:34:35 <oerjan> ^help
22:34:35 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
22:34:39 <oerjan> ^show
22:34:39 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord
22:35:08 <oerjan> what happened to my program :(
22:35:45 <oerjan> ^show hw
22:35:45 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
22:38:12 <fizzie> Ut-oh.
22:38:25 <fizzie> It does not autosave.
22:38:27 <oerjan> i do have it in a file, anyway
22:39:17 <fizzie> Well, if you want something permanent to fungot, let me know. I didn't remember to ^save before restarting it when enabling ^style homestuck.
22:39:18 <fungot> fizzie: a well mannered query to ask what your names are. you're going.
22:39:37 <oerjan> nah this was only a fragment
22:39:44 <fizzie> Hokay.
22:40:30 <ais523> it'll be in the logs anyway
22:40:35 -!- CakeProphet has quit (Ping timeout: 240 seconds).
22:40:35 <ais523> unless it was PMed
22:45:45 <fizzie> I had a gameboy (the classic one) and SML2 for it once. Haven't seen it in years. I suppose the SRAM-backed savefiles could still be intact?
22:46:34 <ais523> fizzie: they were on mine, when I found it
22:46:44 <ais523> old gameboy games often but not always have intact savefiles
22:47:00 <ais523> out of the ones my family own, all the ones we tested did but Pokémon Silver
22:47:22 <fizzie> I think I have a six-coins 99-lives save there.
22:47:24 <ais523> which was unable to maintain a save while not turned on, for more than a few minutes (the length seemed to go up over time, must be some sort of wonky battery)
22:47:33 <ais523> fizzie: and 999 regular coins?
22:47:37 <ais523> it's not too hard in that game, admittedly
22:47:48 <fizzie> Possibly-probably.
22:48:17 <fizzie> I think the lives mostly came out of some sort of random-lottery thing I recall it having.
22:48:27 <fizzie> Maybe payable with regular coins?
22:49:25 <ais523> yes, indeed
22:49:32 <ais523> that was the fastest way to farm lives
22:49:40 <ais523> and the only use of regular coins, too
22:56:45 <Sgeo> quintopia, thank you
23:11:19 <oerjan> ^def test bf ,[>+[-[---->+++++<]>[-<+>]<<[->[----->++++<]>[-<+>]<+<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>[-<+>]<]<.,]
23:11:19 <fungot> Defined.
23:11:25 <oerjan> ^test 0123456789
23:11:26 <fungot> <123A567F9
23:12:01 <oerjan> much shorter than the previous one
23:12:17 <Lymee> What does ^test do?
23:12:18 <Lymee> ^test 1942
23:12:18 <fungot> 19A2
23:12:25 <Lymee> Oh...
23:13:25 <oerjan> it applies if (n%4 == 0) { n = 5*(n/4); } to each input character
23:14:16 <Lymee> ^test Um what exactly is this supposed to do that's not-totally-useless
23:14:21 <fungot> Um(wa(eacy(is(is( ...out of time!
23:14:43 <oerjan> it's supposed to apply a fractran rule
23:15:06 -!- Anvilgames has joined.
23:15:14 <Anvilgames> Hi.
23:15:15 <oerjan> using only 3 cells
23:15:20 <oerjan> hello
23:15:32 <Anvilgames> ... wow, I wasn't expecting that to work.
23:15:38 <ais523> ooh, another Brit
23:15:41 <Anvilgames> sorry, carry on
23:15:45 <Phantom_Hoover> Anvilgames, what, saying 'hi'?
23:15:47 <Anvilgames> Yes
23:15:57 <ais523> saying hi is one of the few things that often does get responses
23:16:03 <Anvilgames> I thought I'd have to authentificate my password or something first though
23:16:14 <ais523> I suppose, in that sense, it's technically trolling, in that it's done just to bait a reaction
23:16:15 <Anvilgames> ... this is a Freenode channel, right?
23:16:20 <ais523> yes
23:16:26 <Anvilgames> Okay, never mind.
23:16:27 <ais523> you can use it unregistered (some you can't, most you can)
23:16:32 <Anvilgames> :)
23:16:34 <ais523> registration just prevents people stealing your nick
23:16:46 <oerjan> heh this program could be described with bfjoust notation
23:16:48 <Anvilgames> So what was that about 3 cells?
23:16:51 <ais523> how useful that is depends on how likely you think it is that people would try to steal your nick
23:17:02 <ais523> Anvilgames: Fractran in unbounded-integer-bounded-tape BF
23:17:12 <Anvilgames> ...
23:17:33 <Anvilgames> I think I understood one word in that
23:17:37 <ais523> "in"?
23:17:39 <Anvilgames> yup
23:18:07 <ais523> let's see... http://esolangs.org/wiki/Fractran http://esolangs.org/wiki/brainfuck should explain the proper nouns
23:18:13 <ais523> and might explain the rest of the sentence too
23:18:35 <Anvilgames> It does
23:18:54 <Anvilgames> I have a passing familiarity with unbounded integers
23:19:14 <oerjan> Anvilgames: i think there is a channel setting which makes only registered nicks able to speak, but we're a pretty lenient channel, and too small to need such things
23:19:19 <Anvilgames> from wasting my youth by actually going to lectures
23:19:22 <ais523> now I'm trying to figure out if "brainfuck" is a proper noun, given that it doesn't start with a capital letter; I guess it is
23:19:38 <ais523> oerjan: it's mostly used as a response to spambot attacks
23:19:43 <oerjan> ok
23:19:47 <ais523> and we don't get many spambots on the IRC channel (as opposed to the wiki)
23:19:52 <Phantom_Hoover> Anvilgames, what's there to be familiar with?
23:19:59 <Phantom_Hoover> They're integers... without bounds.
23:20:02 <Anvilgames> Yup
23:20:13 <ais523> Phantom_Hoover: well, they aren't a natural programming concept if you're only used to imperative/machinecodish langs
23:20:34 <ais523> even if, in a way, they're simpler than bounded integers
23:20:36 <Anvilgames> For some reason I am supremely smug about using the word "integer" instead of "natural number"
23:20:42 <Anvilgames> er...
23:20:52 <Anvilgames> wait, I think I should lose my math license for that sentence
23:20:52 <ais523> they have different meanings
23:21:14 <ais523> and "natural number" is often avoided because it's ambiguous as to whether it includes 0 (people are inconsistent about that)
23:21:27 <Anvilgames> Second year of my maths degree and I get my integers and natural numbers mixed up :(
23:21:40 <monqy> :(
23:21:44 <Anvilgames> should just say "nonnegative integer" anyway
23:21:52 <Anvilgames> OKAY ANYWAY
23:22:14 <Anvilgames> fractran looks fun
23:22:17 <Anvilgames> sort of
23:22:27 <ais523> btw, anyone here know how to type ¿ on Gnome 2/X11/Linux (not sure which is relevant here)?
23:22:32 <ais523> the one in the above line is copy-pasted
23:23:12 <oerjan> incidentally my fractran encoding only uses natural numbers, anyway
23:23:35 <ais523> integers unbounded both ways in BF are annoying, as there's no way, in general, to tell if they're positive or negative
23:23:42 <ais523> BF Joust is rather based on that principle, in fact
23:24:50 <oerjan> hm do you need parentheses in bfjoust around a single command again?
23:25:10 <ais523> only if you're repeating it
23:25:17 <ais523> e.g. + but (+)*10
23:25:19 <oerjan> er that's what i meant
23:26:11 -!- iconmaster has joined.
23:28:05 <Phantom_Hoover> ais523, <compose>??.
23:28:15 <ais523> there's no compose button configured
23:28:36 <Anvilgames> oh hey, quantum brainfuck
23:28:38 <Phantom_Hoover> ais523, well... there should be.
23:28:49 <Phantom_Hoover> Anvilgames, my feelings are split on quantum brainfuck.
23:28:59 <oerjan> ,[>+[-[(-)*4>(+)*5<]>[-<+>]<<[->[(-)*5>(+)*4<]>[-<+>]<+<([->+<{[>[->+<]>++<<-[->+<]]}])%2>[-<+>]>[-<+>]<]<.,]
23:29:05 * Anvilgames busts out the quantum graphics card to try it out
23:29:16 <Phantom_Hoover> On the one hand... it's a brainfuck derivative. On the other, it's a a fairly innovative and well-intentioned one.
23:29:17 <oerjan> where the 2 is 4-2
23:29:22 <Anvilgames> don't have a QCPU on me at the moment¨
23:29:48 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:29:51 <zzo38> Then you need a emulation, maybe it will use up too much time and memory
23:29:59 <Anvilgames> indeed
23:30:23 <Anvilgames> unfortunately, my computer is a deterministic Turing Machine
23:30:29 <Anvilgames> I got the cheap model
23:31:00 <Anvilgames> no quantum computing, no infinite processing speed, no time travel...
23:31:10 <Anvilgames> not even infinite storage space.
23:31:21 * Anvilgames will stop now
23:43:24 -!- cheater has quit (Ping timeout: 255 seconds).
23:49:18 <Lymee> Anvilgames, I've heard that time travel's cheep these days...
23:49:35 <Anvilgames> Which days?
23:49:41 <Lymee> ...crippleware versions without "go backwards" options...
23:49:50 <Anvilgames> oh yeah
23:49:53 <nooga> wtf
23:49:59 <Anvilgames> I got a 30 day trial of my time machine
23:50:03 <Anvilgames> what a ripoff
23:50:07 <nooga> who are you
23:50:16 <Anvilgames> me?
23:50:21 <Lymee> Hugs~ ^__^
23:50:25 -!- pumpkin has joined.
23:50:26 <nooga> You and Lymee
23:50:31 <nooga> and pumpkin
23:50:37 <Anvilgames> What pumpkin?
23:50:37 <Lymee> We are people.
23:50:39 <Lymee> Doh
23:51:16 <nooga> Hugs is a pitty haskell environment
23:51:26 <Lymee> Nyan~
23:51:33 * Lymee hugs nooga <3
23:51:46 <nooga> oerjan: still here?
23:51:55 <oerjan> boo!
23:51:57 * nooga hugs Lymee
23:52:15 * oerjan ghc nooga
23:52:20 <nooga> I've got quite a big problem
23:52:33 * Lymee rot13 oerjan
23:53:08 * Phantom_Hoover brickbrain Lymee
23:53:19 <nooga> I need a name for my own business, firm
23:53:23 <Phantom_Hoover> Hey, who set the topic back to matrix of solidity?
23:53:25 <Phantom_Hoover> It's been a while.
23:53:30 * Lymee reboot
23:53:34 <Anvilgames> I am so out of my depth it's not even funny
23:53:38 <Deewiant> Phantom_Hoover: Gregor
23:53:56 -!- Lymee has set topic: Enjoy being locked in your matrix of solidity | wget redpill | http://codu.org/logs/_esoteric/.
23:54:18 <Phantom_Hoover> nooga, Delicious Noogat.
23:54:19 -!- copumpkin has quit (Ping timeout: 252 seconds).
23:54:49 <nooga> I thought about mørp, because google doesn't know it
23:54:52 -!- zzo38 has set topic: Don't enjoy unlocking the matrix of liquidity | wget -o 42 -KaRmgH redpill | http://codu.org/logs/_esoteric/.
23:55:01 <oerjan> Ylzrr: onu, uhzoht!
23:56:05 <Phantom_Hoover> `quote metallurgy
23:56:06 <HackEgo> 333) <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster. <Phantom_Hoover> Iridium is way too mainstream.
23:56:10 <Phantom_Hoover> `delquote 333
23:56:11 <HackEgo> ​*poof*
23:56:22 <zzo38> Thozhu, Uno, Rrzly???
23:56:26 <Phantom_Hoover> `addquote <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster.
23:56:27 <HackEgo> 567) <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster.
23:56:29 -!- cheater has joined.
23:57:06 <oerjan> ånkh mørpørk
23:57:21 <nooga> MORP is taken
23:57:31 <nooga> so I need weird letters
23:58:03 <Anvilgames> hmm
23:58:09 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
23:58:14 <Anvilgames> add a ~ to the n
23:58:16 <oerjan> nooga: similar trademarks can be violations
23:58:50 <Phantom_Hoover> nooga, myzzle.
23:58:57 <nooga> I often say morp or sznyf or baerk or lyk
23:59:05 <Phantom_Hoover> Nope, Google knows that.
23:59:22 <zzo38> Please use only control characters in the name of your business in order to confuse you.
23:59:26 <nooga> I've got this contract for 60k euros
23:59:34 <Phantom_Hoover> nooga, to do *what*?
23:59:45 <nooga> and I NEED to name my oddamn company
23:59:52 <Phantom_Hoover> nooga, oddamn.
23:59:55 <nooga> goddamn*
23:59:56 <oerjan> gnimmargorp
2011-08-06
00:00:04 <Anvilgames> call your company ' OR ''='
00:00:19 <nooga> Phantom_Hoover: really stupid, interactive webapp
00:00:26 <oerjan> ...no one would bat an eyelid if they found that word in old norse
00:00:32 <nooga> Y combinator is taken
00:00:43 <Vorpal> <oerjan> ånkh mørpørk <-- lol
00:00:49 <Phantom_Hoover> nooga, Z combinator.
00:01:20 <Phantom_Hoover> nooga, alternately, omega combinator.
00:01:56 <Vorpal> Phantom_Hoover, why remove and readd that quote above?
00:01:58 <nooga> oerjan: btw. did You know that my grandfather was norwegian and probably my surname is from kaspersen or something like that? :D
00:02:10 <oerjan> no.
00:02:17 <Phantom_Hoover> Vorpal, I thought it was better without the last line.
00:02:24 <nooga> i found out recently
00:02:24 <Vorpal> ah
00:02:29 <nooga> and this is weird
00:02:37 <Phantom_Hoover> Vorpal, the lack of explanation makes it madder.
00:02:50 -!- variable has quit (Read error: Connection reset by peer).
00:02:53 <Vorpal> Phantom_Hoover, so what metals interest you?
00:02:57 <Vorpal> scandium?
00:03:10 <oerjan> if you say so, Mr. Kaszperzsky
00:03:14 <Phantom_Hoover> Vorpal, the relevant one was rhenium.
00:03:18 <Vorpal> ah
00:03:33 -!- zzo38 has set topic: Don't enjoy unlocking the matrix of liquidity, please. | wget -s 42 redpill | http://codu.org/logs/_esoteric/.
00:03:35 <nooga> oerjan: it's Gasperowicz pronouced like Kasperoveetch
00:03:45 <nooga> but germans and WW II
00:03:50 <oerjan> ah
00:04:06 -!- cheater has quit (Ping timeout: 255 seconds).
00:04:24 -!- Patashu has joined.
00:04:31 -!- cheater has joined.
00:04:37 <nooga> huh
00:04:42 <Vorpal> Phantom_Hoover, did you know that yttrium, terbium, erbium and ytterbium are all named after the same place?
00:04:52 <nooga> it colud be Gasperowicz IT Consulting
00:04:59 <nooga> but it sucks
00:04:59 -!- variable has joined.
00:05:11 <nooga> I need a name for my firm NAO!~
00:05:25 <oerjan> Gasprom. i'm sure no one could complain about that.
00:05:30 <nooga> hahaha
00:05:36 <nooga> i hate you
00:05:48 <nooga> not really
00:05:50 <pikhq> Meh, too Russian.
00:05:56 <pikhq> Go with Zyklon.
00:06:05 <oerjan> pikhq: thatsthejoke.jpg
00:06:21 <pikhq> oerjan: Yes.
00:06:43 -!- Anvilgames has quit (Quit: Anvilgames).
00:07:08 <oerjan> IT consulking
00:07:41 -!- Lymee has set topic: Don't enjoy unlocking the matrix of liquidity, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
00:07:45 <oerjan> gasperating
00:08:05 <nooga> oerjaning
00:08:37 <oerjan> the world according to gasperowicz
00:09:41 <nooga> in our law there's this thing that the formal name of your firm should consist of the name, surname and some word
00:09:51 <nooga> usually you would use only the word
00:09:58 <oerjan> hm
00:10:48 <nooga> SADOL realm Marcin Gasperowicz
00:10:52 <nooga> nagh\
00:14:27 -!- micahjohnston has quit (Ping timeout: 255 seconds).
00:17:08 <zzo38> Have you read the stuff in this channel recently about the new kind of program language I have the idea?
00:19:00 <nooga> no
00:19:10 <Phantom_Hoover> zzo38, you are a native English speaker, right?
00:19:30 <zzo38> Phantom_Hoover: I am a native Canadian speaker.
00:19:40 <Phantom_Hoover> zzo38, Canadian English, I presume?
00:19:47 <zzo38> Yes.
00:19:54 <Phantom_Hoover> Right...
00:20:39 <nooga> c'est la super plus
00:20:45 -!- cheater has quit (Ping timeout: 255 seconds).
00:24:17 -!- micahjohnston has joined.
00:27:33 <Phantom_Hoover> Mica H. Johnston.
00:27:47 <Phantom_Hoover> Daughter of ardent mineralogists.
00:30:10 <nooga> Kate Winiarski, dental c'est la super plus
00:30:15 <nooga> ghhh
00:30:33 <nooga> Kate Winiarski, dental prosthetist
00:30:39 <nooga> stupid irssi
00:31:43 <Phantom_Hoover> They fight crime.
00:32:33 <zzo38> About the new kind or program language I was mentioning, it is near the UNIX timestamp 1312539427.
00:32:51 <nooga> zzo38: just paste the log
00:33:10 <Phantom_Hoover> zzo38, you might want to check your client; I think you might've accidentally connected a Markov bot to it.
00:33:38 <zzo38> Phantom_Hoover: I do not even have a Markov bot program (although maybe I am wrong I don't know what a Markov bot is, even)
00:33:52 <zzo38> nooga: OK I will just repeat what I typed before
00:34:05 <zzo38> I have idea I wanted to make up some programming language that can do a few things including implement rules of Magic: the Gathering cards. I have a few ideas about it, including:
00:34:13 <zzo38> * First class functions and first class rules
00:34:20 <zzo38> * Basic types: boolean, integer, static strings (usable only for comparison and that C codes can use directly)
00:34:26 <zzo38> * Other types: enumeration, tagged union, structure, function
00:34:35 <zzo38> * Function types are allowed to include themself or types including themself
00:34:44 <zzo38> * Procedural rulebooks
00:34:48 <zzo38> * Rulebooks specifying reading/writing properties of an object
00:34:53 <zzo38> * Pure functions
00:34:57 <zzo38> * External access to/from C codes and other program
00:35:06 <zzo38> Can you understand now?
00:35:12 <nooga> erm
00:35:14 <nooga> no
00:35:46 <nooga> i'm not completely sober
00:36:14 <zzo38> I expect probably not completely understand, since it is not even complete. It is why I would like some help and other people idea about it too
00:39:51 <Phantom_Hoover> nooga, that's... not the reason.
00:39:58 <itidus20> i cant say i wanna be sober
00:40:18 <itidus20> but i cant say i wanna be drunk... cos its a hell of a habit
00:40:46 <nooga> usually I don't drink too much
00:41:07 <nooga> but now I'm quite blown
00:41:14 <nooga> because of that contract
00:41:52 <Lymee> fungot: who is nooga?
00:41:52 <fungot> Lymee: for a while it was frustrating. still no sign, perhaps? a phone or it will 8e the most powerful adversary you have ever had a physical card for the stack or queue. items can be removed, the queen is a vain. yes, the sun." -mark twain
00:42:03 <Lymee> ^style youtube
00:42:03 <fungot> Selected style: youtube (Some YouTube comments)
00:42:04 <Lymee> fungot: who is nooga?
00:42:05 <fungot> Lymee: fucking hilarious.
00:42:10 <Lymee> ...
00:42:14 <nooga> wtf
00:42:19 <nooga> wtf
00:42:41 <nooga> fungot: who is Lymee?
00:42:41 <fungot> nooga: she is. do i do think the that the plane alone. you have.
00:42:50 <nooga> fungot: who is oerjan?
00:42:51 <fungot> nooga: hes hot! i can't find one in the game and check out latino review on the japanese reissue of risk. and ' whatever'?
00:43:02 <nooga> fungot: who is elliott?
00:43:02 <fungot> nooga: fuck all about how the fuck? the only conclusion that can do this in blender...
00:43:13 <nooga> fungot: who is jsdbfab?
00:43:13 <fungot> nooga: wow!!!! its not that cool.
00:43:28 <Lymee> fungot, who is god?
00:43:28 <fungot> Lymee: he's so good as the trees. in simple terms when the toga is initiated, but cool.
00:43:45 <nooga> ihf}Ihedz[bife
00:44:06 <Phantom_Hoover> fungot, well, god clearly is an accomplished treesmith, yes.
00:44:06 <fungot> Phantom_Hoover: o.o a snow mobile... looks awesome
00:45:00 <nooga> fungot: who is fungot?
00:45:01 <fungot> nooga: another thing are we? and you think
00:45:11 <nooga> aaaaaaargh
00:46:44 <pikhq> https://www.eff.org/deeplinks/2011/07/widespread-search-hijacking-in-the-us
00:48:05 <Phantom_Hoover> nooga, oh god what if fungot is the Orz.
00:48:05 <fungot> Phantom_Hoover: cdj2255, as a punk song, good commercials. lets do it? i think
00:53:45 <nooga> aaaaaaaaaaaaaaaaaaa
00:53:49 <nooga> no no no no no
00:54:05 <nooga> I will leave this place at once
00:54:22 <Phantom_Hoover> fungot, go back *outside*.
00:54:22 <fungot> Phantom_Hoover: that... for real lmao, wow im not joking, is a counter tenor. my guess, and, ironically, the hotel, what can i repeat to you tube. com/ watch?v=bxp8lwsarya more
00:54:50 <nooga> 0-o
00:55:02 <Phantom_Hoover> Video isn't available.
00:55:53 -!- lament has joined.
01:02:37 -!- nooga has quit (Quit: I AM FED UP WITH THIS CRUFT AAARGH).
01:03:58 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
01:08:47 -!- CakeProphet has joined.
01:08:47 -!- CakeProphet has quit (Changing host).
01:08:47 -!- CakeProphet has joined.
01:13:50 <Phantom_Hoover> CakeProphet, do you have any prophecies of cake.
01:15:21 <oerjan> the cake is a lie
01:15:41 <Phantom_Hoover> fungot, do you?
01:15:41 <fungot> Phantom_Hoover: ahaha. hillary is flya than that. american public education for you."
01:15:53 <Phantom_Hoover> fungot, yes, yes she is.
01:15:53 <fungot> Phantom_Hoover: holy shitttt i can't wait. ( this is comedic gold, save your gold till this economy is still a punk song, but i love this
01:16:22 <Phantom_Hoover> fungot, what do I do with the gold once the economy is still a punk song?
01:17:03 <Phantom_Hoover> fungot, well?
01:17:10 <Phantom_Hoover> ^help
01:17:10 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
01:17:19 <Phantom_Hoover> ^style irc
01:17:19 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
01:17:22 <Phantom_Hoover> fungot,
01:17:39 <Phantom_Hoover> Oh, wait, he's rate limited isn't he.
01:19:04 <Lymee> fungot, what do you think of Brainfuck?
01:19:05 <fungot> Lymee: haskell i dont like knowing my money is prolly majority paying for the name?
01:19:18 <Lymee> fungot, Write a Brainfuck cat program. Now.
01:19:19 <fungot> Lymee: as there is matthiases vibrating. good thinking there.... :d.) that would force a string or a regex, but for supporting general user macros you'd probably first need to do
01:27:51 -!- pumpkin has changed nick to copumpkin.
01:31:17 * Phantom_Hoover → sleep
01:31:27 -!- Phantom_Hoover has quit (Quit: Leaving).
01:39:56 <Lymee> fungot, please kill ell
01:39:56 <fungot> Lymee: really? are you volunteering??? 38o catchalogue disk and captchalogue the server cd.
01:40:08 <Lymee> >:c
01:44:49 <MDude> http://animuchan.net/django_php/ [I don't know enough about web development to know how bad an idea this is, but apparently it's pretty bad.]
01:45:18 <monqy> helpful faq, that
01:58:53 <zzo38> I found the instructions for Complex Hearts, a variant where the queen of spades is worth 13i and the ten of clubs multiplies your score of the hand by 2i, and the jack of diamonds is worth -10. Whoever first reaches an absolute value of 100 or more loses.
02:02:50 <Patashu> Wow, complex hearts
02:14:59 * tswett observes Gregor.
02:24:26 <zzo38> When were the Magic: the Gathering rules properly made precise in the comprehensive rules document, and who wrote it?
02:24:51 -!- Sgeo has quit (Read error: Connection reset by peer).
02:26:27 -!- Sgeo has joined.
02:31:24 <zzo38> O, and one more thing, to add to the list I typed about the programming language for that purpose:
02:32:08 <zzo38> * Rules and functions can look inside of rules and functions of the correct types and change things of the correct type inside of them (the oompiler can check types and constraints to make the compiled program more efficient by eliminating unnecessary checks)
02:39:26 <NihilistDandy> @tell Phantom_Hoover Do not underestimate the power of the Scepter of Recursion
02:39:26 <lambdabot> Consider it noted.
02:40:09 <Lymee> @tell Phantom_Hoover Also, hugs
02:40:09 <lambdabot> Consider it noted.
03:08:30 -!- MDude has changed nick to MSleep.
03:10:02 -!- evincar has joined.
04:05:55 <zzo38> Do you know answers of any of my questions?
04:08:17 <zzo38> And you should also type on https://devlabs.linuxassist.net/projects/texnicard This new programming language is somewhat related to TeXnicard although is a separate program, it is not part of TeXnicard. However I would include something in TeXnicard allowing you to make export files of this that you can convert natural language into this format.
04:24:43 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:27:45 <zzo38> Other idea about this programming language:
04:28:00 <zzo38> * That you can have types that you can select zero or more.
04:28:04 <zzo38> I can make example
04:30:29 <zzo38> Suppose Haskell has a new hypothetical "multidata" command like "data" but you can select none of the types or many of the types somehow.
04:32:10 <zzo38> multidata CardTypes = Artifact ArtifactSub | Creature CreatureSub Integer Integer | Enchantment EnchantmentSub | Instant SpellSub | Sorcery SpellSub | Tribal CreatureSub | Land LandSub | Planeswalker PlaneswalkerSub Integer
04:32:45 <quintopia> *plainswalker
04:32:58 <zzo38> No.
04:33:03 <quintopia> planeswalkers are biplane acrobats
04:33:22 <quintopia> :P
04:33:48 <zzo38> Wikipedia.
04:34:11 <quintopia> yeahyeah
04:34:31 <quintopia> fucking wotc and their puns
04:42:06 <oerjan> next: the Planker monster
04:43:12 <oerjan> it lies down waiting where you least expect it
05:01:08 -!- oerjan has quit (Quit: Good night).
05:08:42 <zzo38> So, this new kind of programming language should have something like this hypothetical "multidata", I guess.
05:15:08 <zzo38> Although, I don't know if this example is correct. Can a "Tribal Creature" have two sets of creature subtypes? Does it matter?
05:16:05 -!- Sgeo_ has joined.
05:17:45 -!- Sgeo has quit (Ping timeout: 255 seconds).
05:18:02 -!- evincar has quit (Quit: leaving).
05:50:15 -!- zzo38 has quit (Remote host closed the connection).
06:16:29 <NihilistDandy> I just realized that VLC has a really detailed icon
06:17:41 <CakeProphet> motherfucking cone of justice.
06:18:29 <NihilistDandy> I like coming home from work because everytime I do I have some new highlight from PH telling me something awesome about the dwarf named after me
06:19:17 <lament> I like coming home from work because I come home from work
06:20:39 <NihilistDandy> Meh. The only difference between work and home is that I'm not on IRC at work
06:20:45 <NihilistDandy> Also all the food
06:20:49 <NihilistDandy> And the dog
06:20:55 <NihilistDandy> And beds
06:20:57 <NihilistDandy> And
06:20:58 <NihilistDandy> Shut up
06:29:01 <lament> i can't meditate at work :(
06:32:09 <NihilistDandy> lament: What kind of work do you do?
06:32:26 <lament> programming
06:33:21 <NihilistDandy> Tell them that if you can't meditate your code will lose serenity as its ego develops
06:35:34 -!- Nisstyre has quit (Ping timeout: 258 seconds).
06:45:01 -!- GreaseMonkey has quit (Quit: The Other Game).
06:47:42 -!- cheater has joined.
06:52:31 -!- lament has quit (Ping timeout: 246 seconds).
06:59:15 -!- micahjohnston has quit (Ping timeout: 240 seconds).
07:06:48 -!- Taneb has joined.
07:06:50 <Taneb> Hello!
07:08:51 -!- micahjohnston has joined.
07:10:18 <CakeProphet> Taneb: hey
07:10:30 <NihilistDandy> Hello
07:11:17 <Taneb> What is happening in the world of Esoteric Programming?
07:13:30 <CakeProphet> we don't know anymore. It became too esoteric and has now collapsed upon itself and vanished.
07:13:38 <CakeProphet> we're still trying to find it.
07:13:56 <Taneb> That sucks
07:14:18 <NihilistDandy> Taneb: Only metalanguages exist now
07:15:26 <monqy> i only feel comfortable with metacircularity
07:19:02 -!- NihilistDandy has quit (Read error: Connection reset by peer).
07:20:49 -!- NihilistDandy has joined.
07:28:43 <Taneb> The world wide web is 20 years old today
07:30:09 <NihilistDandy> Yet Google chose Lucille Ball
07:30:27 <CakeProphet> oh hey, I'm the same age as the web.
07:30:38 * CakeProphet turned 20 on July 26th
07:30:50 <NihilistDandy> Crap, I'm older than the Web
07:32:31 <Taneb> But not the Internet
07:32:35 <CakeProphet> I wonder what it will look like in another 20 years.
07:32:39 <CakeProphet> probably a huge clusterfuck.
07:32:48 <CakeProphet> of standards
07:33:01 <Taneb> Or a ghost-town
07:33:27 <Taneb> of standard
07:33:29 <Taneb> s
08:02:00 <Taneb> I am going to CREATE a NEW esoteric programming language!
08:03:50 <Taneb> Based on the travelling salesman problem
08:04:27 <NihilistDandy> "Based"?
08:04:37 <Taneb> Yes!
08:05:03 <Taneb> The program will be a series of co-ordinates
08:05:42 <Taneb> Which will then be translated into a series of scalars representing the difference between points
08:05:49 <Taneb> In the shortest rout
08:05:50 <Taneb> e
08:06:51 <Taneb> Then these scalars are interpreted as a Numberwang program Taneb variant)
08:07:06 <Taneb> Or maybe something else!
08:07:11 <Taneb> Yeah, something else!
08:07:15 <NihilistDandy> So it's actually just Numberwang with an inconvenient API
08:07:23 <Taneb> No, it's something else!
08:07:27 <Taneb> I changed my mind!
08:09:07 <Taneb> By pythagoras's theorem, the square of any possible scalar between two points with integer co-ordinates is an integer
08:09:23 <Taneb> I'm thoroughly misusing the word scalar, but never mind
08:10:10 <Patashu> So wait, how do you determine the ordering of your scalars
08:10:21 <Taneb> Shortest route
08:10:26 <Patashu> Yes but
08:10:31 <Patashu> Which segment comes first in the program
08:10:33 <Taneb> Starting from the most North-Westerly point
08:10:36 <Patashu> Ah ok
08:11:03 <CakeProphet> I'll scale your scalars, bitch.
08:14:45 <Taneb> Except there'll be an instruction to build a road between two nodes
08:14:48 -!- FireFly has joined.
08:14:58 <Taneb> Thus making them effectively closer
08:15:08 <CakeProphet> Taneb: you should probably name this instruction "pave"
08:15:11 <Taneb> However, only one road can be built between each node
08:15:17 <Patashu> self-rearranging travelling salesman problem which rewrites the program sounds interesting
08:15:30 <Patashu> how wonderfully malbolge
08:15:37 <Taneb> And after a certain amount of use the roaad is destroyed
08:15:57 <Patashu> hahah
08:16:04 <Patashu> civilization the programming language
08:16:05 <Taneb> Roads half the effective distance
08:16:09 <CakeProphet> The program space is a stateless society with no government transportation department.
08:16:10 <Patashu> or wait. oasis?
08:16:20 <Patashu> SMAC?
08:16:30 <Patashu> nah totally oasis
08:16:34 <Patashu> make that game into a programming language
08:18:39 <CakeProphet> I should make an RTS programming language.
08:19:03 <CakeProphet> different factions have different interpreters. At the start of the program you specify the matchup, up to 4v4 or 8 free-for-all
08:19:08 <CakeProphet> each competitor is a thread.
08:19:09 <Patashu> your program is being assaulted by barbarian hordes
08:19:21 <CakeProphet> you must construct additional pylons.
08:20:28 <NihilistDandy> Prepare the LOIC
08:21:09 <NihilistDandy> Also, C&C on the N64 was the best RTS ever
08:21:18 <Patashu> sandbag
08:21:19 <Patashu> sandbag
08:22:22 <NihilistDandy> http://www.youtube.com/watch?v=qpl5mOAXNl4
08:23:39 <Patashu> best song
08:23:54 * CakeProphet wants a 2048-bit computer
08:24:13 <CakeProphet> > 2^2048
08:24:13 <lambdabot> 323170060713110073007148766886699519604441026697154840321303454275246551388...
08:24:22 <CakeProphet> some would say this is an unreasonable address space.
08:24:27 <CakeProphet> but I would call it entirely sufficient.
08:24:32 <Patashu> > 2^2^2^2
08:24:33 <lambdabot> 65536
08:24:45 <NihilistDandy> CakeProphet: Not enough future proofing for your tastes?
08:24:59 <pikhq> Wow. Last week, someone placed a single trade betting, basically, $1 billion that the US's credit rating would be dropped or that the US would default.
08:25:02 <Patashu> hmm, does haskell have an operator for tetration?
08:25:04 <pikhq> 1. Billion. USD.
08:25:09 <NihilistDandy> I would call it perfectly reasonable, at a minimum
08:25:34 <NihilistDandy> @hoogle tetration
08:25:34 <lambdabot> No results found
08:25:38 <NihilistDandy> @hoogle tetra
08:25:38 <lambdabot> No results found
08:25:43 <Patashu> @hoogle supre
08:25:44 <lambdabot> No results found
08:25:45 <Patashu> @hoogle super
08:25:45 <lambdabot> No results found
08:25:57 <NihilistDandy> Write one!
08:25:59 <Patashu> @hoogle hyper
08:26:00 <lambdabot> No results found
08:26:36 <CakeProphet> > let tetra a b = foldr1 (**) (replicate b a) in tetra 2 4
08:26:37 <lambdabot> 65536.0
08:26:48 <NihilistDandy> Exactly
08:27:14 <CakeProphet> actually wouldn't foldl work fine?
08:27:16 <Taneb> bye
08:27:17 <Patashu> no
08:27:26 <pikhq> There's not many entities capable of throwing that freaking much liquid capital at something.
08:27:28 <CakeProphet> ah, yeah I guess not.
08:27:29 <Patashu> because taking the power isn't symmetrical
08:27:34 <Patashu> > (2^2)^2
08:27:35 <lambdabot> 16
08:27:39 <Patashu> > 2^(2^2)
08:27:39 <lambdabot> 16
08:27:41 <Patashu> oh
08:27:44 <Patashu> well it is in this case
08:27:56 <pikhq> (in order to place such a trade on the market, you must have that sitting in cash, ready to pay out.)
08:27:56 <Patashu> > 2^(2^(2^2))
08:27:57 <lambdabot> 65536
08:28:12 <Patashu> > ((2^2)^2)^2
08:28:13 <lambdabot> 256
08:28:15 <Patashu> there
08:28:24 <CakeProphet> hmmm okay.
08:28:26 <pikhq> That someone has made out like a bandit.
08:28:31 <Patashu> wikipedia says 65536 is correct
08:29:05 <Patashu> I want this operator so I can make thinly veiled sexual innuendo http://en.wikipedia.org/wiki/Pentation
08:29:08 <pikhq> Patashu: Yeah, that's 64k.
08:29:12 <Patashu> I'm going to pentate these numbers
08:29:13 <NihilistDandy> pikhq: Where do you go to make these bets, anyway?
08:29:52 <CakeProphet> > let tetra _ 0 = 1; tetra a b = foldr1 (**) (replicate b a) in map (`tetra` 2) [0..]
08:29:53 <lambdabot> [1.0,1.0,4.0,27.0,256.0,3125.0,46656.0,823543.0,1.6777216e7,3.87420489e8,1....
08:30:09 <pikhq> NihilistDandy: The stock market. It's a somewhat more complex market than just shares of companies — you're also able to sell various short trades on things, where you speculate on a negative outcome for some entity.
08:30:28 <pikhq> NihilistDandy: Other people buy that trade, so that if you were right they pay you, and otherwise you pay them.
08:30:33 <NihilistDandy> Betting on failure is my new business model~
08:30:50 <pikhq> I really wish I could go back in time a short sell some SCO stock.
08:31:06 <NihilistDandy> srsly
08:31:36 <pikhq> Selling stocks short is really nice because your profit is based entirely on how much the stock dropped. :)
08:31:43 -!- Taneb has quit (Ping timeout: 258 seconds).
08:32:47 <Patashu> who pays for shorts though?
08:32:54 <Patashu> if you bet on a stock going up, you get money by reselling it at the new price
08:32:59 <Patashu> where does the negative money become positive?
08:34:05 <pikhq> Well, the thing is, if you buy someone else's short and gain on it, you get the stock for the value it was at *when you bought the short*, but have the stock at its current value.
08:34:05 <CakeProphet> addition.
08:34:15 <pikhq> So, you got it for cheap.
08:34:39 <CakeProphet> or, more precisely, the negative money becomes positive when it increases above zero.
08:34:48 <CakeProphet> I assume this is what you were asking, truly. :P
08:35:08 <Patashu> hmm, wait...
08:35:15 <Patashu> is it where you sell a stock and agree to buy it back, or something?
08:35:39 <pikhq> Patashu: You agree to sell a stock to someone at a future date at a current cost.
08:36:05 <Patashu> ah ok
08:51:21 <Patashu> http://math.eretrandre.org/tetrationforum/showthread.php?tid=675 infinite operator plz
08:53:37 <NihilistDandy> Deltas are emprically inferior to lambdas
08:59:39 <Patashu> http://math.eretrandre.org/tetrationforum/showthread.php?tid=665 how about circles?
09:02:16 <NihilistDandy> I already have composition, how many circles do I really need in my life?
09:04:52 -!- Cheery has joined.
09:06:38 <pikhq> You need every circle.
09:09:15 <coppro> circles suck, get triangles
09:10:44 <NihilistDandy>  /_\
09:11:05 <coppro> ^
09:12:03 <NihilistDandy> ^
09:12:04 <NihilistDandy> /_\
09:14:10 <coppro> eww
09:15:18 <NihilistDandy> Mmm, recursion: http://www.smbc-comics.com/index.php?db=comics&id=2319#comic
09:24:29 <Cheery> http://cache.gawker.com/assets/images/comment/12/2011/08/579f406878ae68a95ee9ce8fc2f908b4/340x.jpeg
09:27:26 <quintopia> who is jmsnxn?
09:37:09 -!- monqy has quit (Quit: hello).
09:52:16 -!- derrik has joined.
09:57:39 -!- pikhq has quit (Ping timeout: 240 seconds).
09:57:58 -!- pikhq has joined.
10:02:50 -!- MigoMipo has joined.
10:41:48 <CakeProphet> fungot: colorless green ideas sleep furiously
10:41:48 <fungot> CakeProphet: and it is just a matter of fact, his cadre of fellow wizards
10:52:09 -!- Phantom_Hoover has joined.
10:57:19 <cheater> quintopia, this guy seems like he's up to fun things
11:11:52 -!- derrik has quit (Quit: left).
11:20:42 <Phantom_Hoover> fungot, what are the haps my friend.
11:20:42 <fungot> Phantom_Hoover: the other pair does as well give it a try? he is so lucky the gun. widebody's gotta settle his big ass down for a bit. your appetite for monochrome beauties. no lovely lady will be fit in the slot.
11:20:43 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
11:47:32 <Phantom_Hoover> @tell elliott Homestuck update oh god nothing makes sense any more
11:47:32 <lambdabot> Consider it noted.
11:53:16 -!- azaq23 has joined.
12:22:44 -!- Taneb has joined.
12:22:53 <Taneb> Hello!
12:25:41 <Taneb> brb
12:38:03 <Taneb> Is it a safe assumption that a travelling salesman will never cross his own path?
12:38:52 <fizzie> Sounds very unlikely, given a graph where it's not possible to visit all nodes without revisiting any.
12:39:35 <Taneb> I think that graph is not suitable for this need
12:40:14 <Taneb> On a complete graph, is my assumption true?
12:40:31 <Patashu> I think given crossed paths, it's always a correct optimization to uncross them
12:40:34 <Patashu> If you think about Pythagoras and so on
12:42:39 <Taneb> That works!
12:42:58 <fizzie> Well, assuming also Euclidean distances.
12:43:02 <Patashu> well yeah
12:43:11 <Patashu> ... there are non-euclidean traveling salesman problems? hmmm
12:43:37 <Taneb> Yes
12:44:37 <Taneb> But I just need euclidean
12:44:37 <Taneb> Thanks
12:44:43 <fizzie> In general I thik it's just a graph with arbitrary edge costs.
12:44:47 <Taneb> Although this may quickly become non-euclidean, it is initially euclidean
12:45:05 <fizzie> Horribly laggy 3G here.
12:47:51 <Taneb> I think I have just designed an NP-hard programming language
12:48:19 <Taneb> Self-modifying travelling salesman
12:48:20 <Taneb> Going to put it on the wiki now
12:49:18 <Taneb> Uploaded, terrible formatting
12:49:25 <Taneb> Going now
12:49:27 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
13:00:21 -!- Taneb has joined.
13:01:05 <Taneb> http://esoteric.voxelperfect.net/wiki/User:Taneb/Salesman
13:08:22 -!- Taneb has quit (Remote host closed the connection).
13:11:12 <Patashu> I await the first hell world program for Salesman
13:20:42 <CakeProphet> > let mul a b = foldl (>>=) id (repeat (+)) in mul 4 5
13:20:43 <lambdabot> Overlapping instances for GHC.Show.Show (b -> b)
13:20:43 <lambdabot> arising from a use of `...
13:23:07 <CakeProphet> > let mul _ 0 = 0; mul _ 1 = 1; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
13:23:08 <lambdabot> 20
13:23:22 <CakeProphet> er...
13:23:29 <CakeProphet> > let mul _ 0 = 0; mul a 1 = a; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
13:23:30 <lambdabot> 20
13:23:34 <CakeProphet> there we go.
13:30:03 <CakeProphet> > let hyper z f _ 0 = z; hyper z f a 1 = a; hyper z f a b = foldl (>>=) id (replicate (b-1) f) a in mul = hyper 0 (+); exp = hyper 1 mul; tetra = hyper 1 exp; penta = hyper 1 tetra in (($3).join) <$> [(+),mul,exp,tetra,penta]
13:30:04 <lambdabot> <no location info>: parse error on input `='
13:30:58 <CakeProphet> > let hyper z f _ 0 = z; hyper z f a 1 = a; hyper z f a b = foldl (>>=) id (replicate (b-1) f) a; mul = hyper 0 (+); exp = hyper 1 mul; tetra = hyper 1 exp; penta = hyper 1 tetra in (($3).join) <$> [(+),mul,exp,tetra,penta]
13:31:00 <lambdabot> [6,9,27,19683,*Exception: stack overflow
13:32:40 <CakeProphet> @pl hyper z f a b = foldl (>>=) id (replicate (b-1) f) a
13:32:40 <lambdabot> hyper = const (flip . (foldl (>>=) id .) . flip (replicate . subtract 1))
13:33:18 <CakeProphet> @pl hyper f a b = foldl (>>=) id (replicate (b-1) f) a
13:33:19 <lambdabot> hyper = flip . (foldl (>>=) id .) . flip (replicate . subtract 1)
14:08:41 -!- Taneb has joined.
14:08:45 <Taneb> Hello!
14:10:27 <Taneb> Can I ask what people think of Salesman?
14:15:59 -!- derrik has joined.
14:16:16 <Taneb> Wow, amazing response
14:19:24 <Vorpal> Taneb, traveling ones? telephone ones?
14:23:01 <fizzie> Okay, here's a response: yes.
14:23:03 <Taneb> Travelling ones
14:23:15 <Taneb> What do people think of Salesman?
14:23:22 <Vorpal> Taneb, it is an interesting NP-complete problem
14:23:37 -!- nooga has joined.
14:24:09 <Taneb> The Esolang I made earlier today was what I was referring to
14:24:14 <Taneb> Based on the problem
14:24:20 <fizzie> Vorpal: I suppose he wanted an opinion on http://www.esolangs.org/wiki/User:Taneb/Salesman and not just the problem in general.
14:27:09 <Patashu> Can you prove it's turing complete?
14:28:14 <Taneb> No
14:28:19 <Taneb> I think it is, though
14:28:50 <Taneb> Its memory system is effectively a deque plus an unbounded two-dimensional array
14:29:02 <Taneb> Although the array is harder to use
14:30:03 <Taneb> Assuming the stack is unbounded and contains unbounded values, I believe it is turing complete
14:30:11 <Taneb> Also self-modifying
14:30:16 <Taneb> And NP-hard
14:30:52 <Taneb> And possibly non-deterministic
14:32:30 -!- derrik has quit (Quit: reconnect).
14:32:54 -!- derrik has joined.
14:40:09 -!- lament has joined.
14:48:58 <Taneb> So, any reviews?
14:52:00 -!- MSleep has changed nick to MDude.
14:52:25 -!- BeholdMyGlory has joined.
14:53:58 -!- Nisstyre has joined.
15:20:52 <Taneb> Anyone?
15:30:21 <MDude> Hm
15:32:06 <MDude> I'd have to play aroudn with and/or learn about solving the traveling salseman's problem to even know where to start trying to make anything in paticular in it.
15:32:46 <MDude> Although, I could just make a big diagonal line of nodes if I jsut wanted ot make a simple sequence.
15:33:10 <MDude> The shortest path would then of course be from one end to the other.
15:37:42 <Taneb> And then back to the beginning
15:38:54 <Patashu> I think more interesting would be golfing travelling salesman
15:38:55 <MDude> I think it's be pretty funny if the map for Taxi were used as a Salseman program.
15:39:01 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:40:29 <MDude> Though the Taxi map isn't purely topoligical, and thus has roads that aren't simply straight lines form one destination to another.
15:49:22 <Taneb> I'm bored, I'm going to make a Brainfuck to Zot translator
15:53:04 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
15:53:37 -!- Taneb has quit (Ping timeout: 250 seconds).
15:56:47 <Sgeo_> Is Taxi TC?
15:58:04 <quintopia> probs
15:58:16 <quintopia> i remember it being p powerful
15:58:28 <MDude> It has at least one queu and one stack.
15:58:41 <MDude> I think two of at least one of them.
15:59:28 <MDude> Two queues.
16:00:42 <quintopia> of queues you only need one and a couple registers, yes?
16:01:56 <MDude> I don't know, though there is one register, and a shuffle tool that would act as a register if you only stored one value in it.
16:03:14 <MDude> Oh wait, two registers plus the randomiser.
16:03:30 <quintopia> sounds TC to me
16:05:34 -!- Taneb has joined.
16:05:47 <quintopia> so hows that bf to zot translator
16:05:59 <Taneb> Poorly
16:06:10 <quintopia> sounds good
16:06:14 <Taneb> I still don't really understand combinatory logic
16:08:56 -!- derrik has joined.
16:09:53 <CakeProphet> Taneb: you combine things, with combinators.
16:10:19 <Taneb> I tried, I really did
16:11:05 <CakeProphet> essentially a combinator is a higher-order function. An example of a simple combinator is function composition.
16:12:09 <Taneb> Generally, when I say combinatory logic, I mean SKI combinator calculus
16:12:27 <CakeProphet> oh, well, that's similar.
16:12:42 <Taneb> It's a subset
16:14:48 <CakeProphet> are you familiar with Haskell?
16:15:00 <Taneb> I'm aquainted
16:15:44 <CakeProphet> > f >>= g h
16:15:45 <lambdabot> Ambiguous type variable `a' in the constraints:
16:15:45 <lambdabot> `SimpleReflect.FromExpr ...
16:16:03 <CakeProphet> hmmm
16:16:09 <CakeProphet> @src (>>=) (-> e)
16:16:10 <lambdabot> Source not found. That's something I cannot allow to happen.
16:16:19 <CakeProphet> well essentially >>= for functions is S
16:16:21 <CakeProphet> const is K
16:16:22 <CakeProphet> id is I
16:16:34 <CakeProphet> er wait. I think ap is S actually.
16:16:50 <Deewiant> @src (->) (>>=)
16:16:50 <lambdabot> f >>= k = \ r -> k (f r) r
16:17:04 <CakeProphet> @src (->) ap
16:17:04 <lambdabot> Source not found. Do you think like you type?
16:17:11 <Deewiant> @src ap
16:17:11 <lambdabot> ap = liftM2 id
16:17:16 <Deewiant> @src liftM2
16:17:16 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
16:17:42 <Deewiant> @undo \f m1 m2 -> do { x1 <- m1; x2 <- m2; return (f x1 x2) }
16:17:43 <lambdabot> \ f m1 m2 -> m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2)
16:17:49 <Deewiant> @src (->) return
16:17:49 <lambdabot> return = const
16:17:51 <Deewiant> Figure it out!
16:18:22 <CakeProphet> if I recall ap a b c = a c (b c)
16:18:30 <CakeProphet> which is S.
16:18:53 <Deewiant> ?pl \a b c -> a c (b c)
16:18:53 <lambdabot> ap
16:19:46 <CakeProphet> :t ap id id
16:19:47 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
16:19:47 <lambdabot> Probable cause: `id' is applied to too few arguments
16:19:47 <lambdabot> In the second argument of `ap', namely `id'
16:20:43 <Taneb> :t ap (id) (id)
16:20:44 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
16:20:44 <lambdabot> Probable cause: `id' is applied to too few arguments
16:20:44 <lambdabot> In the second argument of `ap', namely `(id)'
16:21:16 <Taneb> Didn't think that would work
16:22:28 <CakeProphet> yeah I don't think it will directly translate without some extra steps.
16:23:13 <CakeProphet> :t const id
16:23:14 <lambdabot> forall a b. b -> a -> a
16:23:20 <CakeProphet> :t const
16:23:21 <lambdabot> forall a b. a -> b -> a
16:23:32 <CakeProphet> true and false.
16:24:03 <Taneb> Handy
16:24:32 -!- zzo38 has joined.
16:25:34 <CakeProphet> :t let t = const; f = const id; not = f t in not f
16:25:36 <lambdabot> forall b a. b -> a -> a
16:26:24 <CakeProphet> well no, that's false, I think. not f should have the same type as t.. I would think.
16:27:22 <CakeProphet> :t let t = const; f = const id; not = f t in f not
16:27:23 <lambdabot> forall a. a -> a
16:27:57 <CakeProphet> :t let t = const; f = const id; not = f t in t not
16:27:58 <lambdabot> forall a b. b -> a -> a
16:28:11 <CakeProphet> hmmm
16:30:37 <CakeProphet> :t let t = const; f = const id; not = f t in t t f
16:30:38 <lambdabot> forall a b. a -> b -> a
16:30:46 <CakeProphet> :t let t = const; f = const id; not = f t in t f f
16:30:47 <lambdabot> forall b a. b -> a -> a
16:31:01 <CakeProphet> f is a postfix AND, t is an infix OR.
16:31:56 <CakeProphet> so t t f is both true OR false as well as true AND true
16:32:46 <Taneb> Which are both true
16:33:41 <Taneb> Handy
16:34:13 <CakeProphet> yes, the main thing to understand is that everything is in terms of higher-order functions.
16:35:37 -!- pikhq has quit (Ping timeout: 246 seconds).
16:35:51 -!- pikhq has joined.
16:36:25 <CakeProphet> hmmm, this is the first time I've read about the B,C,K,W system.
16:36:51 <CakeProphet> b = (.); c = flip; k = const; w = join
16:36:58 <CakeProphet> sounds like a lot of point-free fun.
16:37:02 <zzo38> Now what are you trying to make with Haskell?
16:37:13 <quintopia> nothin
16:37:14 <CakeProphet> zzo38: boolean logic via SKI combinators.
16:37:57 <quintopia> just giving taneb a tour of ski combinators so they can make a bf to zot translator
16:38:20 <CakeProphet> :t let b = ap (const ap) const in b
16:38:21 <lambdabot> forall a b b1. (a -> b) -> (b1 -> a) -> b1 -> b
16:38:29 <CakeProphet> look familiar?
16:39:05 <CakeProphet> :t let b = ap (const ap) const in b (++"blah") reverse "hello"
16:39:06 <lambdabot> [Char]
16:39:08 <CakeProphet> > let b = ap (const ap) const in b (++"blah") reverse "hello"
16:39:10 <lambdabot> "ollehblah"
16:40:55 <CakeProphet> > let c = ap (ap (const (ap (const ap) const)) ap) (const const) in c (++) "hello" "blah"
16:40:57 <lambdabot> "blahhello"
16:41:25 <CakeProphet> interesting.
16:41:29 <zzo38> Does Haskell have types that you can select zero or more? Regardless of that, it would be useful feature of the other program language I was mentioning
16:41:37 <CakeProphet> I really have a hard time what the hell is going on there.
16:41:43 <zzo38> Is there?
16:41:50 <CakeProphet> zero or more of what?
16:42:17 <CakeProphet> zero or more of another type would be list. Or do you mean zero or more types?
16:42:30 <zzo38> Pretend you have a new command in Haskell "multidata" that you can write like that:
16:42:31 <zzo38> multidata CardTypes = Artifact ArtifactSub | Creature CreatureSub Integer Integer | Enchantment EnchantmentSub | Instant SpellSub | Sorcery SpellSub | Tribal CreatureSub | Land LandSub | Planeswalker PlaneswalkerSub Integer
16:43:08 <zzo38> So, now the value of "CardTypes" type can be none of these, or using both the Artifact and Creature constructors, etc
16:43:18 <CakeProphet> ah.
16:43:33 <CakeProphet> no. But that could be simulated with a list.
16:43:48 <zzo38> Yes I suppose you are correct.
16:43:59 <CakeProphet> but it won't give you typing for each constructor, if that's what you mean.
16:44:04 <CakeProphet> you could simulate that with a tuple and GADT.
16:44:13 <zzo38> OK.
16:44:26 <CakeProphet> so then each constructor has its own phantom type. (CardTypes Artiface, CardTypes, Creature)
16:44:29 <CakeProphet> er
16:44:40 <CakeProphet> (CardTypes Artifact, CardTypes Creature)
16:44:46 <CakeProphet> or whatever.
16:45:14 <CakeProphet> also a typeclass could be used in place of GADT.
16:45:20 <quintopia> CardTypes Artifact Creature
16:45:20 <CakeProphet> so many options.
16:45:39 <CakeProphet> ..unless there's specifically two type parameters that definitely wouldn't work.
16:45:41 <quintopia> dont forget the full power set must be available :P
16:46:05 <CakeProphet> the union of two different constructors was being represented by the tuple.
16:46:07 <zzo38> However, the thing I mentioned would be the kind of thing for a new programming language, with different features (although some of the Haskell stuff but not all, and some stuff that is not part of Haskell, as well as different uses of it)
16:46:49 <CakeProphet> I've always thought Haskell's type system could be extended to be more flexible, but then you run the risk of becoming undecidable.
16:47:28 <zzo38> So you can do something, such as, if it contains the "Creature" type then use the final Integer parameter, otherwise use 0, and so on, you make function like that.
16:47:57 <CakeProphet> well that can be accomplished with pattern matching.
16:48:18 <zzo38> And such things can be specified as rules which can have names and be overridden by procedural rulebooks and so on.
16:48:37 <CakeProphet> I was thinking in particular that a tuple could be made equivalent to a value with an anonymous type, but with known constructor type.
16:48:59 <CakeProphet> thus (Int,Int) could represent data Point a b = Point Int Int
16:49:10 <CakeProphet> or data Complex a b = Int :+ Int
16:49:41 <CakeProphet> and values constructed with Point and :+ are of type (Int, Int)
16:50:05 <CakeProphet> ...simultaneously. Two different flavors of type, essentially.
16:51:57 <zzo38> I wouldn't think so. Maybe same in LLVM, but I don't think they should be same in Haskell. However, it should have something allowing typing direct LLVM codes and if you do that, then you can treat them as the same type in the LLVM codes
16:55:55 -!- zzo38 has quit (Remote host closed the connection).
16:59:38 <Phantom_Hoover> What are the haps my friends also why was zzo going on about LLVM and Haskell.
17:00:55 <Phantom_Hoover> CakeProphet, isn't that what... oh, I forget, it's either type or typedef does.
17:01:08 <CakeProphet> dunno, but I made BCKW out of SKI in Haskell, with the help of Wikipedia. It was somewhat enlightening but also confusing.
17:01:30 <CakeProphet> Phantom_Hoover: type just creates a type synonym. Which isn't quite what I mean. I wasn't aware Haskell had a typedef keyword.... actually.
17:01:43 <Phantom_Hoover> It doesn't.
17:02:13 <Taneb> Zero in BCKW is C K
17:02:17 <Phantom_Hoover> It does have newtype, which was being confused in my head into typedef.
17:02:47 <Phantom_Hoover> Taneb, in SKI it's just K I, isn't it?
17:02:56 <Taneb> Yeah, I think so
17:03:00 <CakeProphet> I'm saying that each value would have a "nominal type" and a "constructor type". The nominal type is your typical Haskell type.
17:03:20 <CakeProphet> but the constructor type shows the types of the constructor's parameters.
17:03:44 <CakeProphet> and is written as a tuple. A tuple is thus a kind of anonymous constructor with nominal type a
17:04:38 <CakeProphet> (Int,Int) -> Int could accept a Complex, a Point, or a tuple, in this system.
17:04:57 <CakeProphet> anything that is constructed from two ints.
17:06:06 <CakeProphet> I was also thinking it would interesting to introduce sum types that don't require the use of Either.
17:06:23 <CakeProphet> (Int | Char) -> (Int | Char)
17:06:34 <CakeProphet> but I'm not quite sure if that's decidable.
17:06:54 <CakeProphet> or how useful it would be in practice.
17:07:22 <Phantom_Hoover> CakeProphet, still... not quite sure where the difference with type synonyms comes from.
17:08:17 <CakeProphet> the difference is that it goes deeper than synonyms. You could have a single nominal type with many different constructors, and each constructor would have a different constructor type.
17:08:55 <CakeProphet> (Int, Int) might accept some of those constructors but not others, even though they given the same type name.
17:09:20 -!- elliott has joined.
17:09:24 <Phantom_Hoover> I... nope, still not following.
17:09:30 <Phantom_Hoover> elliott, check messages now plx.
17:10:22 <elliott> Phantom_Hoover: /msg
17:10:22 <lambdabot> elliott: You have 7 new messages. '/msg lambdabot @messages' to read them.
17:10:30 <CakeProphet> data T = A | B Int | C Int Int
17:11:13 <CakeProphet> with this type system. The function () -> Int would accept values constructed by A
17:11:32 <CakeProphet> (Int, Int) -> Int would accept values constructed by C, but not B or A.
17:12:24 <CakeProphet> ....not sure about the single-parameter case. I think you would need to introduce 1-tuples... otherwise Int -> Int would just accept values constructed by B.
17:12:44 <CakeProphet> which might be fine actually;
17:14:42 <elliott> what
17:14:57 <CakeProphet> ...I don't understand what is difficult to understand about this.
17:15:21 <elliott> i've seen the few lines since I came in and the thing that's difficult to understand is that you're not actually making any sense
17:16:24 <elliott> 22:15:00: <fizzie> I vaguely recall a Sonic video where Sonic really doesn't get much screen-time, the camera's mostly trying to catch up.
17:16:24 <elliott> :d
17:16:25 <elliott> :d
17:16:26 <elliott> ...
17:16:27 <elliott> :D
17:16:30 <elliott> stupid capslock
17:16:55 <Phantom_Hoover> CakeProphet, a function A → B is well-typed for values of type A only, and for all values of A.
17:17:16 -!- MigoMipo has quit (Read error: Connection reset by peer).
17:17:48 -!- MigoMipo has joined.
17:18:09 <Phantom_Hoover> CakeProphet, I'm willing to bet that changing that is going to mess up an awful lot of the existing type system.
17:18:14 -!- Taneb has quit (Ping timeout: 252 seconds).
17:21:48 <CakeProphet> Phantom_Hoover: right but if you looked at the types as sets constructed from products and unions of other sets... then you could deduce that some types are subsets and supersets of other types.
17:23:51 <CakeProphet> and maybe. I don't know. I haven't considered all of the ramifications.
17:26:13 <elliott> "if you looked at the types as sets constructed from products and unions of other sets"
17:26:19 <elliott> you might want to learn type theory.
17:30:06 <CakeProphet> that's quite a bit of stuff to learn for what is essentially a quick thought experiment. Perhaps you could enlighten me on some specific points?
17:31:12 <elliott> it's not much to learn if what you are doing is proposing extensions to type systems
17:33:45 <elliott> CakeProphet: Anyway, you can't view all types as being constructed from products and unions, because recursive types exist.
17:35:17 <CakeProphet> how about a type-level let? :)
17:35:43 <CakeProphet> not sure what that would fix exactly.
17:35:52 <CakeProphet> but it would include recursive types.
17:36:07 <elliott> It would not.
17:36:19 <elliott> It would only do so if your let includes implicit fix, i.e. general recursion.
17:36:27 <CakeProphet> also, I'm not sure that I have to treat /every/ type as a product or union in order to treat /some/ types as equivalent or subsets of others.
17:36:34 <elliott> You can just introduce type-level fix, if you're okay with an inconsistent type system.
17:36:40 <elliott> (Haskell is OK with this, but no type theory is, for obvious reasons.)
17:38:15 <CakeProphet> though type inference would become problematic as types are no longer unambiguous in this kind of model.
17:39:32 <Phantom_Hoover> elliott, what does 'inconsistent' actually mean in the context of type systems?
17:39:44 <elliott> Phantom_Hoover: Curry-Howard.
17:39:47 <Phantom_Hoover> elliott, ah.
17:40:08 <elliott> Phantom_Hoover: Which is sort of the point of type theory.
17:40:14 <elliott> It's a foundational system, after all.
17:40:35 <Phantom_Hoover> (I'd guessed it was C-H, but I failed to see the relevance to day-to-day uses of type theory.)
17:41:08 <elliott> Phantom_Hoover: Well, uh, Agda and Coq are generally used to prove things.
17:41:12 <elliott> So that's quite relevant.
17:41:26 <Phantom_Hoover> elliott, sure, and that's why recursion is tightly controlled in both.
17:41:45 <elliott> Phantom_Hoover: It's not really "tightly controlled", but, um, that's not really the point.
17:41:48 <Phantom_Hoover> But when you're talking about extensions to the Haskell type system? Not so much.
17:41:54 <elliott> Phantom_Hoover: I was talking about type theory.
17:42:03 <elliott> Haskell's type system does not really count as an application of type theory.
17:42:08 <Phantom_Hoover> elliott, 'tightly controlled' as in you need to be careful where you use it.
17:42:22 <elliott> Obviously some things carry over, but the fact that it's completely inconsistent makes it a rather different beast in reality.
17:42:25 <Phantom_Hoover> elliott, then... why was anyone even talking about it, then.
17:42:31 <elliott> Because it's relevant wrt. sums and products.
17:42:45 <elliott> Consider Martin-Löf type theory (aka "Type Theory", annoyingly); http://en.wikipedia.org/wiki/Intuitionistic_type_theory#Connectives_of_Type_Theory.
17:43:34 <CakeProphet> I want a whatever type that's just all like "whatever"
17:43:35 <Phantom_Hoover> elliott, not what CakeProphet was talking about.
17:43:50 <Phantom_Hoover> CakeProphet, is this the Cake-Prophet type theory?
17:43:53 <elliott> Phantom_Hoover: It's constructing types out of sums and products, which is exactly what CakeProphet was talking about.
17:44:07 <Phantom_Hoover> (All type theory names need hyphens.)
17:44:42 <CakeProphet> ...I didn't mean constructing them exclusive by that. I meant that you could use sums and products to deduce equivalence/subset relationships in types. I suppose this would have to exclude recursive types.
17:45:36 <CakeProphet> so that, for example, the tuple type acted as a kind of anonymous type, that specifies values by their constructor parameters rather than by the type name that they're given.
17:46:48 <CakeProphet> the 2-tuple type being equivalent to some types (such as Complex), and subsets of others (I can't think of any good examples..)
17:47:43 <CakeProphet> data Something a b = A a | B b | C a b
17:47:51 <CakeProphet> bam, this bitch is a superset of (a,b)
17:48:42 <CakeProphet> fst (C 2 2) -- now magically valid in CakeProphet Haskell
17:48:51 <CakeProphet> fst (A 1) --motherfucking type error
17:50:10 <CakeProphet> I'm sure there's something horribly wrong with this, but oh well.
17:50:29 <CakeProphet> I'm going to sleep soon, anyways.
17:51:20 <Phantom_Hoover> CakeProphet, learn you some typeclasses.
17:52:05 <CakeProphet> done. they're somewhat annoying to use all the time. And the standard library doesn't use them everywhere to make generalizations like that standard.
17:52:20 <CakeProphet> they're entirely sufficient for the job though.
17:52:57 <Phantom_Hoover> The standard library is a pretty crappy thing
17:53:04 <Phantom_Hoover> As far as typeclasses go.
17:53:18 <Phantom_Hoover> Monads, for instance, don't have to be Functors.
17:54:08 <CakeProphet> well that's fine. It frees Monads from the oppressive malice of the overbearing Functor.
17:54:31 <CakeProphet> let all data be free!
17:55:09 <Phantom_Hoover> CakeProphet, learn you some category theory too.
17:55:19 <CakeProphet> oh I know about that.
17:55:44 <CakeProphet> I'm just saying... what if you don't /need/ the Functor instance, but do need the Monad one?
17:56:08 <CakeProphet> why should it be required to write more than necessary?
17:57:13 <CakeProphet> trivial code, but still.
17:57:21 <CakeProphet> POWER TO THE PROGRAMMER, MAN.
17:57:31 <CakeProphet> it's a radical new age, dude.
17:58:01 <CakeProphet> where Monads don't have to have a functor.
18:00:21 <Phantom_Hoover> CakeProphet, yes they do.
18:00:29 <Phantom_Hoover> Even if you don't define them as one, they still are.
18:00:43 <CakeProphet> ...shhhh.
18:00:49 <Phantom_Hoover> Or at least, you can make any monad into a functor.
18:01:04 <CakeProphet> but we can just omit that for the sake of laziness, can't we?
18:02:05 <CakeProphet> this is a brave new world we're living in. Where Num instances have to have Show instances for some reason.
18:03:25 -!- Taneb has joined.
18:03:27 <Taneb> Hello
18:03:30 <elliott> Num is the biggest joke.
18:04:49 <Taneb> ...I don't get it
18:05:05 <elliott> <CakeProphet> this is a brave new world we're living in. Where Num instances have to have Show instances for some reason.
18:05:17 <Taneb> Okay
18:05:20 <Phantom_Hoover> And where nats aren't numbers.
18:10:54 <elliott> They're numbers, just not Num...bers.
18:15:00 <Taneb> Well, my Brainfuck to Lambda Calculus translater, because that's easier, has had a slight problem
18:18:02 -!- myndzi has quit (Ping timeout: 240 seconds).
18:18:14 <MDude> What's it having a problem with?
18:20:05 <Taneb> It loops infinitely when it shouldn't
18:20:18 <Phantom_Hoover> `dc -e "16i2o5F3759DFp"
18:20:22 <HackEgo> No output.
18:20:29 <Phantom_Hoover> -_-
18:21:01 * Phantom_Hoover wonders why he always goes to dc for calculations despite never quite knowing how it works.
18:21:52 <MDude> How maybe bots like Lambdabot and HackEgo are even on here?
18:22:23 <Taneb> 4
18:22:33 <lament> 62
18:22:34 <Phantom_Hoover> MDude, lambdabot, HackEgo and EgoBot are the orthodox programming bots.
18:22:43 <Phantom_Hoover> fungot is a bit of an edge case.
18:22:43 <fungot> Phantom_Hoover: man. it is a good idea. leave me alone.
18:23:03 <Phantom_Hoover> fungot, OK.
18:23:03 <fungot> Phantom_Hoover: what, the last one. wait no, that just made you disappear" and stuff
18:23:19 <olsner> fungot: flrgl, bork
18:23:19 <fungot> olsner: that it makes a guest of it, much as the moon takes liberty. reason. justice. civility. edification. perfection. your hands,
18:23:31 <MDude> And I guess glogbot is the unorthodox one?
18:23:44 <MDude> It's a name that ends in bot.
18:24:13 -!- Taneb has changed nick to TanebBot.
18:24:33 <TanebBot> I'm going to get into trouble for this, aren't I?
18:24:38 <TanebBot> It's not even that funny.
18:24:40 -!- TanebBot has changed nick to Taneb.
18:24:54 <MDude> Please, you're the other kind of bot.
18:25:03 <MDude> That stealthily pretends not to be one.
18:25:58 <MDude> I'm wondering about different kind of logical tools and/or how to combine them.
18:26:20 -!- myndzi has joined.
18:26:28 <MDude> For instance, modal logic looks like it could be recursivly applied to itself to form a tree structure.
18:27:43 <MDude> I'm not sure if it makes sense to try applying modal logic to ternary logic.
18:27:55 <MDude> I don't know how mu relates to either of those.
18:28:56 <Taneb> Ternary with Mu is pretty easy
18:29:36 <elliott> <MDude> It's a name that ends in bot.
18:29:37 <elliott> as opposed to egobot
18:30:05 <lament> fungot: you seem to be the sanest person here.
18:30:06 <fungot> lament: the other pair does as well try it again. this prototyping had no idea. you'll mess with it later, somehow. this young man be??? now you've seen everything!
18:30:23 <MDude> I'd guess that maybe mu could be related to the contradictory state in modal logic, while ternary lgoc's unknown could relate to the lacking information state.
18:30:26 <lament> now i've seen everything.
18:31:08 <Taneb> No you haven't
18:31:50 <Taneb> I refuse to succumb to relitively common expressions!
18:31:54 <Taneb> Or the correct spelling of certain words!
18:32:00 <Phantom_Hoover> MDude, if you can define undefined, then you can prove anything in the corresponding logical system.
18:35:14 <Taneb> Does that work with circular definitions of undefined?
18:36:05 <MDude> Well, in ternary, unknown is jsut another state like true or false.
18:36:41 <Taneb> Not in all variants
18:36:46 <Taneb> eg. Balanced Ternary
18:36:57 <MDude> Well yeah, I did mean that.
18:37:40 <cheater> this fromage cathare was amazing.
18:38:14 <Phantom_Hoover> Taneb, that's the canonical way to define undefined.
18:38:22 <Phantom_Hoover> undefined :: a
18:38:26 <Phantom_Hoover> undefined = undefined
18:38:57 <Phantom_Hoover> And ternary doesn't really make sense as far as C-H goes.
18:39:07 <Phantom_Hoover> A type is either inhabited or it isn't.
18:39:22 <MDude> C-H?
18:40:08 <Phantom_Hoover> Curry-Howard isomorphism.
18:40:26 <Phantom_Hoover> The one that associates types and functions to logical statements.
18:41:55 -!- micahjohnston has quit (Ping timeout: 255 seconds).
18:42:32 <MDude> I see, I don't think I've read much about that.
18:42:54 <elliott> Phantom_Hoover: s/types and values/
18:42:59 <elliott> I'm pro at s///.
18:43:52 <Phantom_Hoover> elliott, you need functions in there as well, but I guess they count as values of types.
18:44:07 <Deewiant> /\/$/s/\/$/\/\//
18:44:41 <elliott> Phantom_Hoover: I...what?
18:44:42 <elliott> Functions are values.
18:46:43 <Phantom_Hoover> elliott, yes, they are.
18:51:12 -!- KingOfKarlsruhe has joined.
18:51:25 -!- Taneb has quit (Ping timeout: 246 seconds).
18:51:30 -!- micahjohnston has joined.
18:54:22 -!- ais523 has joined.
18:54:30 <elliott> hi ais523
18:54:40 <ais523> hi
18:55:04 <ais523> what does the -s option to wget do?
18:55:44 <elliott> ais523: prints the headers sent by HTTP servers
18:55:49 <ais523> ah, OK
18:55:52 <elliott> and responses set by FTP servers, apparently
18:55:56 <elliott> were you timing me against man(one)?
18:56:06 <ais523> elliott: no, I was trying to understand the topic
18:56:15 <ais523> and your answer just made me more confused
18:56:19 <cheater> no that's -S. there's no -s.
18:56:56 <elliott> blame less' / command.
18:57:26 <cheater> it's case-sensitive here. i blame your configuration.
18:57:48 <cheater> oh right, i forgot macs were cAsE InsEnsItIvE
18:59:24 <ais523> the way HFS does Unicode is pretty dubious, too
18:59:49 <ais523> (it actually tries to compare filenames using a Unicody comparison, but it do so by normalizing them on disk, which causes all sorts of interesting breakages)
18:59:50 <elliott> I don't use OS X.
19:00:00 <elliott> ais523: normalising filenames on disk is fairly reasonable in theory
19:00:09 <ais523> indeed
19:00:23 <ais523> but not when you have to interact with filesystems you might not own
19:00:27 <elliott> ais523: I mean, you don't want to be able to specify the exact same filename to a program but have it fail to load because the real file has a differently-normalised name
19:00:35 <ais523> yep
19:00:50 <elliott> especially since it might be hard to specify the true name, if, say, your terminal's output system normalises on output
19:00:55 <ais523> but I think I read something that argued that it was saner to do that in the open call, rather than on the disk itself
19:01:00 <elliott> or even your toolkit's "paste" function does
19:02:51 <cheater> elliott, so you have finally bought that usb cdrom?
19:03:03 <cheater> or firewire or whatever
19:03:41 <elliott> you really do never give up
19:03:54 <cheater> never gonna give you up
19:04:11 <ais523> I have a USB floppy disk drive
19:04:14 <cheater> i was just wondering if you finally succeeded getting that superdrive based linux installation going
19:04:19 <cheater> ais523, they're surprisingly useful
19:04:26 <cheater> even as "usb keys"
19:04:31 <cheater> there's always a floppy disk around
19:04:54 <ais523> most of the floppy disks I own are full of data, and many have bad sectors
19:10:36 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
19:11:44 <Sgeo_> http://scienceblogs.com/pharyngula/2011/08/somebody_doesnt_understand_bas.php#comment-4721628 someone with my habit of making excuses for idiots?
19:14:03 <elliott> Sgeo_: Isn't that the old Pharyngula site?
19:14:07 <elliott> ISTR he moved.
19:15:12 <Phantom_Hoover> You mean as part of the general SB exodus?
19:15:19 <elliott> Yes.
19:19:37 <Sgeo_> There's an SB exodus?
19:19:47 <Sgeo_> And he still seems to be posting on there
19:20:18 <elliott> "More articles by PZ Myers can be found on Freethoughtblogs at the new Pharyngula!"
19:20:20 <Sgeo_> Or, well, I kind of have a backlog in my "Slow" feeds
19:20:22 <elliott> Those posts are just mirrored, it seems.
19:20:32 <elliott> From http://freethoughtblogs.com/pharyngula/.
19:20:37 <elliott> http://freethoughtblogs.com/pharyngula/2011/08/06/somebody-doesnt-understand-basic-genetics/
19:21:03 <elliott> And yes; IIRC the SB exodus was due to adverts.
19:21:10 <elliott> Or something like that; they did something shitty and everyone jumped ship.
19:30:16 -!- derrik has quit (Quit: left).
19:33:40 -!- CakeProphet has quit (Ping timeout: 276 seconds).
19:39:29 <NihilistDandy> As much as I enjoy the sort of obscure math jokes in the new season of Futurama, they seem a little wanky most of the time
19:39:47 -!- monqy has joined.
19:40:50 <NihilistDandy> s/a little/really/
19:44:12 <elliott> hello monqy
19:44:40 <monqy> hello
19:45:07 <elliott> welcome to the house
19:45:16 <monqy> house
19:45:22 <monqy> the house
19:49:17 -!- oerjan has joined.
19:49:44 -!- pikhq_ has joined.
19:50:13 -!- pikhq has quit (Ping timeout: 246 seconds).
19:53:38 <oerjan> ok, so i think i have found a way to implement fractran such a way as to get the usual halting condition for it. even though i _still_ don't know a way to calculate n%2 in a standalone way.
19:53:46 <oerjan> *in such
19:54:35 <oerjan> and in fact i suspect it is impossible.
19:54:56 <elliott> :(
19:55:43 <oerjan> essentially my problem was that i was trying to get information out of the loop for each fractran rule about whether it had triggered.
19:56:13 <oerjan> now _each_ fractran rule loop is perfectly capable of understanding an n%2 halting condition, though.
19:57:40 <oerjan> so the solution is to merge all the rule loops into one which does a gigantic case branch modulo the lcm of all the denominators.
19:57:45 -!- Taneb has joined.
19:57:57 <Taneb> 'Lo
19:58:00 <oerjan> hi
19:59:10 <oerjan> thus, the necessary information for halting the program no longer needs to leave that loop, and no separate main loop is needed.
20:00:12 -!- zzo38 has joined.
20:00:36 <zzo38> Can you make real numbers in Haskell if you have enough constructors for what you are making?
20:01:39 <pikhq_> zzo38: There exist uncomputable real numbers.
20:02:39 <oerjan> using this, and a bit of exponentiation and logarithm at the end, it should be possible to calculate any computable function of a single natural number in 3-cell brainfuck. but quite probably not without clobbering the original, even for n%2.
20:02:58 <zzo38> pikhq_: Yes I know that. But, you would have constructors for all the things you are making compute in your program. Not for uncomputable things
20:04:00 <zzo38> But pretend you have a hypothetical "oracle" function, now you could make up a consrtuctor for that and you can have uncomputable things. Of course it is impossible, which is why it is hypothetical.
20:04:52 <pikhq_> It'll still not get you the reals.
20:05:12 <zzo38> I know that.
20:05:14 <elliott> Haskell could have reals just fine.
20:05:20 <pikhq_> Perfectly possible to do the *computable* reals, though.
20:05:26 <elliott> You just couldn't get at most of them.
20:05:31 <elliott> But you could easily define a constant
20:05:33 <elliott> chaitin :: Real
20:06:13 <zzo38> But then you could not compute anything about it, many of the operations defined on Real number will fail when used with such constantss if they represent uncomputable numbers
20:07:50 <zzo38> I think you would just need constructors for the various ways of computing reals, such as trigonometric, exponent, logarithm, arithmetic, etc, and then the compare function, add function, floor, so on, must based on which constructor is being used
20:09:12 <zzo38> But I don't know for sure or for exactly
20:09:13 <oerjan> even _that_ may make the compare function uncomputable. there are easy constants that are unknown whether they are rational numbers...
20:09:39 <oerjan> for example e*pi, iirc
20:10:26 <oerjan> and it is conceivable that if it _is_ a particular rational number, you can never prove it
20:11:16 <oerjan> (whether this is possible for e*pi in particular, i don't know)
20:12:30 <zzo38> Maybe the program might not halt in some cases due to that...
20:13:02 <oerjan> quite likely.
20:17:12 <zzo38> But which things are possible?
20:19:54 <oerjan> you can compute continuous functions
20:20:21 <oerjan> so all those you mentioned except compare and floor
20:21:20 <oerjan> hm well, except logarithm of zero or division by it
20:21:41 <zzo38> But compare and floor can probably work in some cases; and in other cases it will not halt, I think.
20:21:58 <oerjan> yes.
20:25:37 <oerjan> <Patashu> I think given crossed paths, it's always a correct optimization to uncross them
20:25:49 <oerjan> but can you always do that without adding a new crossing?
20:26:41 <oerjan> also, this might disconnect the graph.
20:28:12 <oerjan> hm indeed uncross does shorten it, since a side of a triangle is always shorter than the sum of the other two
20:28:58 <oerjan> oh and since it _does_ shorten, you can keep doing it until it stops
20:29:16 <oerjan> at which point there will be no crossings left.
20:31:29 <oerjan> oh and at least one of the two possible uncrossings won't disconnect.
20:31:58 <oerjan> Q.E.D.
20:33:33 <oerjan> <CakeProphet> > let mul _ 0 = 0; mul a 1 = a; mul a b = foldl (>>=) id (replicate (b-1) (+)) a in mul 4 5
20:33:37 <oerjan> hm...
20:33:42 <Taneb> That's handy
20:37:45 <elliott> oerjan: did you just solve the wire crossing problem? ;D
20:38:05 <oerjan> one of them, perhaps
20:40:14 <Taneb> A problem involving the crossing of wires
20:40:49 <Taneb> Actually closer related to the travelling salesman problem
20:42:45 <Taneb> I think I've just either completely misunderstood or solved the wire crossing problem
20:43:27 <Taneb> I'm probably cheating
20:44:18 <Taneb> I'm cheating
20:46:23 <elliott> What was the cheat?
20:46:41 <Taneb> Unless...
20:46:47 <elliott> Gregor: Ping.
20:47:05 <Gregor> elliott: NO
20:47:06 <ais523> the wire crossing problem is rather underspecified
20:47:13 <elliott> Gregor: What.
20:47:17 <Gregor> Just no :P
20:47:22 <ais523> pretty much any correct solution could be declared as cheating
20:47:28 <elliott> Gregor: I was just asking if there were any non-xvkbd virtual keyboards that weren't utterly terrible :P
20:47:39 <Gregor> 'fraid not.
20:47:40 <elliott> xvkbd simply isn't working for me with this SDL app, y'see.
20:47:43 <ais523> one thing I'm wondering about is if two-dimensional Formula is TC
20:47:45 <elliott> So I can't actaully use it.
20:47:53 <ais523> but even if it were, it would probably still count as cheating
20:47:57 <Gregor> I've tried 'em all (as of some point :P )
20:47:59 <elliott> I guess that's likely inherent to SDL, isn't it
20:47:59 <oerjan> the wire crossing problem is either very vague, obviously possible, or specific to a particular wire language
20:48:09 <elliott> Gregor: How bad's kvkbd :-P
20:48:16 <ais523> elliott: ooh, sounds like a useful Secret Project feature
20:48:26 <elliott> ais523: I just mean on-screen keyboard
20:48:32 <ais523> elliott: I know
20:48:46 <elliott> ais523: Well this puts what I thought Secret Project was out of whack
20:48:49 <ais523> I mean, you could possibly use Secret Project to make xvkbd work with an SDL program
20:48:51 <elliott> It's an... interactive... repeatable test system?
20:48:54 <elliott> Oh
20:48:54 <Gregor> elliott: IIRC, my main problem with it was configuring its size/configuration/etc. I would try to change something and just end up with a nonsense keyboard.
20:49:06 <ais523> not that it's anything close to its intended use, but meh, I like unintended uses
20:49:14 <oerjan> ais523: i think the wire-crossing problem applies perfectly well to 3-colorings, iirc. (and is solvable.)
20:49:18 <elliott> Gregor: Well, sounds "good enough". But yeah, I'm pretty sure the problem is that SDL reads from the keyboard device directly or whatever.
20:49:32 <Gregor> Probably.
20:49:43 <ais523> in fact, probably virtual keyboard input would be more useful than real keyboard input
20:49:46 <Gregor> You may want to check the SDL docs for environment variables controlling how it reads the keyboard.
20:49:54 <ais523> elliott: it ioctls /dev/term to tell it to send scancodes rather than keys, then reads from that
20:50:01 <elliott> ais523: What, SDL?
20:50:04 <ais523> yes
20:50:05 <elliott> Tell me you're joking.
20:50:09 <ais523> I know this all too well
20:50:16 <elliott> I could believe it if /dev/term was a file that actually existed
20:50:22 <ais523> umm, /dev/tty
20:50:22 <elliott> SDL is so 90s, though.
20:50:32 <elliott> ais523: But... surely that only works in a terminal.
20:50:34 <ais523> oh, it tries /dev/vc/0 first
20:50:38 <ais523> but that isn't a real file
20:50:56 <ais523> elliott: well, I didn't have X loaded in my tests
20:50:57 <Taneb> I wasn't cheating, I was wrong
20:51:07 <ais523> so it may have tried something X-related first but failed
20:51:09 <elliott> ais523: >_<
20:51:12 <elliott> Obviously it will :P
20:51:35 <elliott> SDL_NO_RAWKBD
20:51:35 <elliott> For the libvga driver: If set, do not attempt to put the keyboard in raw mode.
20:51:35 <elliott> NOT HELPFUL
20:52:16 <ais523> (other side-effects of the Secret Project; I've been running programs on the control-alt-f1 VT a lot, and have been changing permissions on /dev more than is fully sane)
20:52:22 <ais523> also, seems permissions on /dev don't persist between reboots
20:52:38 <ais523> probably because it isn't backed by disk
20:52:47 <Taneb> I'm also annoyed at all these things that are going on and I know nothing about them
20:52:51 <ais523> perhaps I should create a regular file in it to see what happens
20:52:56 <Taneb> That at sign thing, the secret project...
20:53:06 <ais523> @ just takes a long time to explain
20:53:17 <ais523> the secret project wouldn't take massively long to explain, but I don't because it's secret
20:53:23 <Taneb> That doesn't really help
20:53:26 <elliott> Taneb: I could send you at.html.
20:53:31 <Taneb> Go for it
20:53:42 <ais523> I just give hints every now and then so that the channel keeps giving me advice when I need it
20:53:50 <Taneb> You want e-mail, elliott?
20:53:55 <elliott> Nah.
20:53:59 <elliott> I can /msg you a sprunge link to download it.
20:54:01 <ais523> it's harder in other channels, as I have to come up with plausible unrelated reasons to ask related questions, then imply them as heavily as I can without actually lying
20:54:04 <Taneb> Do it
20:54:08 <elliott> Somewhat bothered by the fact that my go-to introduction to my OS is a barely-edited forum post I wrote months ago.
20:55:49 -!- ooozanoodles has joined.
20:55:50 <ais523> Taneb: if you're curious about the Secret Project, though, you could ask other channel members what they think it is
20:55:59 -!- ooozanoodles has quit (Client Quit).
20:56:33 <Phantom_Hoover> ais523, that the one with programs that quit with the wrong PID?
20:56:42 <ais523> yes
20:56:59 <ais523> I'm vaguely considering rolling PIDs from the actual system round past 65535 if they start close to it, too
20:57:08 <ais523> but I rarely leave my computer running long enough for PIDs ever to get that high
20:57:16 <ais523> and besides, it just makes the implementation harder, rather than being necessary
21:02:05 <oerjan> ais523: well, say hi to skynet for me
21:02:30 <ais523> he isn't online right now
21:02:37 <ais523> (Skynet's a friend of mine from another channel)
21:02:40 <ais523> or I would have done
21:02:59 <oerjan> yes, a "friend" from the secret project
21:03:44 <ais523> no, secret project is alone
21:03:49 <ais523> you people know more about it than anyone else but me
21:04:05 <oerjan> or would, if we were paying attention
21:04:23 <ais523> no, even then
21:05:12 <monqy> I think I know something about some project but I don't know if I actually know this, or if it's about the right project
21:05:59 <ais523> monqy: spill it anyway, it'll bea musing
21:06:05 <Phantom_Hoover> monqy, ISTR it involves some insanish system-level hack.
21:06:29 <ais523> it's both Linux-specific and x86-specific, which is pretty insanely nonportable for me
21:06:49 <ais523> I might modify it to handle x86_64 at some point too, which will need lots of tweaking of constants but not much else
21:07:45 <monqy> the only thing I think I know is multiplayer co-op nethack being a project but I don't know if it actually is or if it's this project at all
21:07:53 -!- augur has changed nick to augur[hl2e1].
21:07:53 <Taneb> So, that's what @ is.
21:08:11 <Taneb> Well, sounds interesting.
21:08:17 <Taneb> I'd love to help!
21:08:53 <elliott> Excuse me but humans are in direct opposition to the @ philosophy.
21:09:00 <elliott> The first phase is everyone else dying.
21:09:12 <monqy> are subhumans in direct opposition to the @ philosophy
21:09:27 <elliott> No. You may live.
21:09:52 <Taneb> I don't legally qualify as human
21:10:45 <elliott> wat
21:10:48 <ais523> monqy: multiplayer co-op nethack isn't secret, it's just unfinished
21:10:54 <monqy> i see
21:10:58 <ais523> you can even get source code from me on request, although it won't actually work
21:11:04 <ais523> so there's not much point
21:11:22 <monqy> all I know about the secret project, then, is what you revealed today
21:11:56 <ais523> I didn't reveal much that wasn't common knowledge anyway, but managed to confuse elliott
21:11:59 <ais523> I'll count that as a win
21:13:04 <oerjan> <MDude> For instance, modal logic looks like it could be recursivly applied to itself to form a tree structure.
21:13:08 <elliott> ais523: you did?
21:13:10 <oerjan> kripke models, dude
21:13:10 <elliott> oh
21:13:11 <elliott> right
21:13:44 <oerjan> this channel has too many nicks starting with m.
21:14:22 <ais523> elliott: I think I just managed to confuse you again :)
21:14:30 <elliott> ais523: ;_;
21:14:43 <Taneb> oerjan: I get confused with the o's.
21:15:02 <elliott> oerjan, oklopol
21:15:03 <elliott> what's the difference
21:15:26 <oerjan> well, first of all there is no oklopol in the channel.
21:16:09 <monqy> whos olsner
21:16:16 <elliott> so you are not here either
21:16:22 <oerjan> monqy: some rutabaga
21:16:26 <oerjan> i mean, swede
21:17:47 <Taneb> btw elliott, your html was missing a few rather important tags
21:17:55 <Taneb> i.e. html, head, and body
21:18:06 <elliott> Taneb: lol
21:18:27 <elliott> Taneb: Please point me to the paragraph in http://www.whatwg.org/specs/web-apps/current-work/ that invalidates my page, thanks
21:18:44 <elliott> http://dev.w3.org/html5/spec/Overview.html is also acceptable
21:18:52 <elliott> as is http://www.w3.org/TR/html5/
21:20:19 <ais523> does it still have <?doctype html followed by some sequence of characters (possibly >)?
21:21:19 <tswett> Gee. How do you refer to inanimate objects with pronouns in Finnish?
21:21:32 <elliott> ais523: No, because that would invalidate it
21:21:44 <elliott> (My pedantic asshole mode has been enabled by someone taking fault with the HTML.)
21:22:00 <ais523> oh, hmm, HTML5 allows fragments to serve as the whole document (in only certain circumstances?)?
21:22:17 <elliott> ais523: Nope, you just think exclamation marks are exclamation marks
21:22:19 <elliott> Um...
21:22:21 <elliott> Are question marks.
21:22:29 <ais523> aha
21:22:38 <ais523> I haven't written any HTML for a while
21:22:52 <ais523> and my method for writing standards-compliant HTML is to write approximately what I think is right from memory, then run it through Tidy
21:22:55 <Taneb> elliott: found one!
21:23:03 <ais523> in fact, I don't even bother writing doctypes manually
21:23:04 <elliott> Taneb: Go on.
21:23:06 <Taneb> You used a title element outside of a head element!
21:23:17 <elliott> Taneb: No, I did not.
21:23:17 <zzo38> I also haven't written any HTML for a while, because I usually use other formats such as raw ASCII text, or TeX document
21:23:38 <elliott> Taneb: BTW, if you run it through the official W3C validator, you will see that it is perfectly valid.
21:23:40 <elliott> validator.nu agrees.
21:24:21 <Taneb> The SECOND LINE OF YOUR DOCUMENT!
21:24:43 <elliott> Taneb: Nope. You are wrong.
21:24:58 <Taneb> Then you have linked it to me weirdly
21:25:05 <elliott> Nope.
21:25:09 <elliott> You are just misreading the spec.
21:25:22 <elliott> Or rather, misinterpreting what my syntax means.
21:26:18 <oerjan> <html><body><head><ear>BZZZZZZZ</ear></head></body>
21:26:27 <oerjan> </html>
21:39:51 * tswett katson Gregor:n.
21:40:31 <Gregor> tswett: NOOOO
21:41:43 * tswett en katso Gregor:n.
21:42:01 <tswett> "En" means "not", so I'm doing what you asked.
21:42:46 <nooga> 9init
21:44:10 <pikhq_> tswett: HTML is much less complex than you think.
21:44:23 <pikhq_> Well, rather, HTML has much less mandatory complexity in HTML source than you think.
21:44:54 <nooga> html is so passe
21:45:09 <elliott> pikhq_: I don't think tswett thinks that.
21:45:17 <tswett> pikhq_: how do you know how complex I think HTML is?
21:45:17 <nooga> haml is the thing!
21:45:22 <elliott> But yeah, Taneb is wrong about my HTML being invalid.
21:45:27 <tswett> By my katsoation of Gregor:n?
21:45:30 <pikhq_> elliott: He thinks <head> needs to be explicitly named!
21:45:37 <zzo38> In addition to raw ASCII text, and TeX document, I also use gopher menu format.
21:45:49 <elliott> pikhq_: He does?
21:46:00 <tswett> Taneb: have you been impersonating me?
21:46:30 <pikhq_> ... Wrong tab complete.
21:46:49 -!- ais523 has quit (Remote host closed the connection).
21:47:01 <pikhq_> t<tab> completed to tswett, not Taneb.
21:49:07 <Phantom_Hoover> elliott, which HTML?
21:49:19 <Phantom_Hoover> That of "Files Suck"?
21:49:22 <elliott> No.
21:49:24 <elliott> That of at.html.
21:49:52 <Phantom_Hoover> What's at.html?
21:50:01 <elliott> Something you don't have. :p
21:51:24 <Taneb> The w3 HTML5 spec clearly says that the title element can only be used in a head element containin no other title elements
21:51:33 <elliott> Taneb: Indeed.
21:51:39 <elliott> Taneb: And I did not violate that constraint.
21:51:50 <Taneb> You have used a title element that is not in a head element
21:51:53 <elliott> No.
21:51:57 <elliott> That title element is within a head element.
21:52:14 <elliott> When both the widely-used validators disagree with you, you might want to consider that you're misinterpreting the spec :-P
21:52:53 <Gregor> Implicit head, bizziches!
21:53:20 <Taneb> ...I hate you.
21:53:31 <elliott> Taneb: What.
21:53:33 <pikhq_> Taneb: Can only be used in a head DOM element. The DOM element exists.
21:53:43 <pikhq_> And the title element gets put in there.
21:54:15 <Taneb> I am going to go away and cry now.
21:54:23 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
21:54:29 <elliott> I...
21:54:31 <elliott> Is he being serious?
21:54:40 <oerjan> we might find out
21:54:44 <Gregor> Probably only about the "going away" part :P
21:54:56 <monqy> literally cryeing
21:55:11 <elliott> oerjan: now if he comes back under another nickname, I think we have to seriously consider the prospect that e might be fax, lying about eir location to avoid suspicion...
21:55:12 <elliott> :tinfoil:
21:55:55 <oerjan> elliott: i find it _very_ doubtful that fax would have been able to participate peacefully on the iwc forum for this long.
21:56:18 <elliott> oerjan: haha
21:56:29 <elliott> oerjan: well is there any programming discussion there :D
21:56:41 -!- Taneb has joined.
21:56:45 <Taneb> Sorry about that
21:56:46 <oerjan> well not much
21:56:56 <Taneb> I'm a little upset, now
21:57:00 <Taneb> But you are right.
21:57:02 <Taneb> I am wrong.
21:57:05 <oerjan> Taneb: hate the sin, not the sinner. in this case, hate html.
21:57:05 <Taneb> I accept that.
21:57:11 <elliott> I'm not arguing with you :-P
21:57:24 <elliott> But html, head and body can be inserted implicitly in HTML5.
21:57:29 <Taneb> I was arguing with you, that's what matters
21:57:45 <Taneb> And I have lost that argument, which may have only existed in my head
21:57:56 <Taneb> And...
21:57:58 <Taneb> And I
21:58:09 <Taneb> I'm sorry I said I hated you
21:58:17 <pikhq_> elliott: It lets you use HTML as a halfway-reasonable markup language.
21:58:19 <pikhq_> :)
21:58:22 <elliott> WELL I STILL HATE YOU
21:58:25 -!- augur[hl2e1] has changed nick to augur.
21:58:29 * elliott hopes Taneb's sarcasm parser is working.
21:58:29 <Taneb> And I'm sorry I left as soon as I was proven wrong.
21:59:11 <Taneb> It's working
22:00:27 <Taneb> I am going to continue to use html, head, and body tags in my html documents.
22:00:46 <elliott> PLEBEIAN
22:00:50 <nooga> HTML is painfully redundant
22:00:59 <monqy> I try to avoid htmle
22:01:08 <lament> htmlle
22:01:08 <nooga> use this instead -> http://haml-lang.com/
22:01:59 <elliott> nooga: How much are you being paid
22:02:09 <elliott> Second time you've mentioned Haml in the last half an hour or so :P
22:02:17 <nooga> haml haml haml haml
22:02:22 <nooga> haml haml haml haml
22:02:25 <nooga> use haml!
22:02:29 <lament> no.
22:02:30 <fizzie> Spaml.
22:02:37 <Phantom_Hoover> nooga, is this what omega combinator's job is?
22:02:42 <nooga> no
22:02:50 <Phantom_Hoover> Crappy web app... FP-oriented name...
22:02:53 <nooga> i just like haml
22:02:59 <elliott> Phantom_Hoover: What?
22:03:11 <oerjan> nooga: you don't have to haml it in
22:03:19 <Phantom_Hoover> elliott, weren't you there?
22:03:23 <elliott> Phantom_Hoover: No.
22:03:30 <Phantom_Hoover> nooga mentioned he got a contract for some crappy web app.
22:03:33 <nooga> Phantom_Hoover: the name is different
22:03:38 <elliott> Phantom_Hoover: When?
22:03:53 <Phantom_Hoover> Yesterday? Today?
22:03:59 <Phantom_Hoover> One of them.
22:04:01 <nooga> you don't even know what the web app is so how can you say it's crappy
22:04:02 <elliott> 23:49:53: <nooga> wtf
22:04:02 <elliott> 23:50:07: <nooga> who are you
22:04:02 <elliott> nooga finds out that people join when he isn't here.
22:04:32 <nooga> wait
22:04:34 <Phantom_Hoover> nooga, you said it was crappy.
22:04:34 <nooga> no
22:04:37 <nooga> yes
22:04:43 <nooga> I remember, excuse me
22:04:47 <nooga> it is crappy
22:05:03 <nooga> almost every webapp is crappy
22:05:08 <oerjan> <fizzie> Spaml. <-- perfect
22:06:05 <oerjan> the extremely verbose web scripting language with a hindley/milner type system.
22:06:56 <elliott> "Hindley/Milner" <-- be careful with that
22:07:18 <oerjan> why
22:08:32 <tswett> Well, you don't want to accidentally say "Hindley/Minler", or "Hildney/Milner".
22:09:13 <Taneb> Hilled the miner!
22:09:43 <elliott> oerjan: it reads as something you don't quite intend
22:10:03 <oerjan> wat
22:12:24 <Sgeo_> I love Quassel except for the bug that makes it nearly unbearable
22:12:42 <elliott> oerjan: JUST ACCEPT IT
22:13:04 <oerjan> Let the Function Map of Anything and Nil be Nil and Map of f and Cons of first and rest be Cons of (f of first) and Map of f and rest
22:13:32 <elliott> what
22:13:58 <oerjan> elliott: oh wait you wanted me to use a hyphen
22:14:08 <oerjan> O KAY
22:14:28 <oerjan> elliott: just a little sample of Spaml
22:14:56 <oerjan> a small Spaml Map sample
22:15:42 <elliott> oerjan: I didn't want you to use a / :P
22:16:37 -!- Taneb has quit (Ping timeout: 276 seconds).
22:16:38 <oerjan> ok i have registered the elliott/tswett objection
22:18:02 <Phantom_Hoover> Sgeo_, oh ffs stop going on about Quassel.
22:18:57 -!- Taneb has joined.
22:21:02 -!- nooga has quit (Ping timeout: 264 seconds).
22:22:03 <tswett> oerjan: I disapprove of your parentheses. They make it too unambiguous.
22:23:24 <oerjan> tswett: there's still a possible ambiguity left with the last "and"
22:24:31 <tswett> Yes, but there should be more ambiguity.
22:24:52 <oerjan> oh and the second last could be the start of a new match
22:25:08 -!- Cheery has quit (Quit: Lost terminal).
22:27:58 <oerjan> *Let the Function Map of Anything and Nil be Nil and the Map of f and the Cons of first and rest be the Cons of the f of first and the Map of f and rest
22:30:17 <oerjan> might need more articles
22:30:32 * tswett ponders an enthusiastic progamming language.
22:31:16 <Phantom_Hoover> tswett, it really enjoys evaluating things?
22:32:17 <Taneb> "Yeah! Printing 'Hello World!' I love that! Woo!"
22:33:05 <tswett> Definition! Function: Map! Situation! First Argument: Anything! Second Argument: Nil! Result: Nil! Situation! First Argument: f! Second Argument: Cons! Arguments to Cons! First Argument: first! Second Argument: rest! Result: Cons! Arguments to Cons! First Argument: Application! Function: f! Number of Arguments: one! Argument: first! Second Argument: Application! Function: Map! First Argument: f! Second Argument: rest!
22:33:38 -!- FireFly has quit (Quit: swatted to death).
22:39:08 -!- Sgeo_ has changed nick to Sgeo.
23:13:15 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:22:50 -!- Taneb has quit (Ping timeout: 264 seconds).
23:37:36 -!- bsmntbombdood has quit (Quit: leaving).
2011-08-07
00:10:32 <oerjan> ^def test bf ,[>+>+<[-[---->+++++<]>[-<+>]+<<[->[----->++++<]>[-<+>]<<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>[-<+>]<]<.,]
00:10:32 <fungot> Defined.
00:10:41 <oerjan> ^test 0123456789
00:10:44 <fungot> }efgijkm
00:11:09 <oerjan> argh
00:11:32 <oerjan> oh
00:11:56 <oerjan> ^def test bf ,[>+[-[---->+++++<]>[-<+>]+<<[->[----->++++<]>[-<+>]<<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>[-<+>]<]<.,]
00:11:57 <fungot> Defined.
00:12:01 <oerjan> ^test 0123456789
00:12:02 <fungot> K123A567F9
00:12:22 <oerjan> > map ord "K123A567F9"
00:12:23 <lambdabot> [75,49,50,51,65,53,54,55,70,57]
00:13:11 <oerjan> excellent
00:14:42 <oerjan> ^test @ABCDEFGHIJKLMNOP
00:14:46 <fungot> }ABCUEFGZIJK_MNO}
00:15:00 <oerjan> > map ord "}ABCUEFGZIJK_MNO}"
00:15:01 <lambdabot> [125,65,66,67,85,69,70,71,90,73,74,75,95,77,78,79,125]
00:15:29 <elliott> oerjan: Is it working?
00:15:43 <oerjan> for the fractran program 5/4, yes
00:16:01 <oerjan> the @ there got multiplied 3 times, as it should
00:16:09 <elliott> oerjan: so you managed the mod-two thing?
00:16:19 <oerjan> well technically not
00:17:32 <oerjan> technically i _still_ cannot get the check (which is actually for mod-four now) to escape the loop, but it _can_ be used to terminate it
00:18:37 <oerjan> with this new method there's no need to give mod 2 a special meaning
00:20:31 <oerjan> heh i think i ended up just making a single character change to the previous program which only applied 5/4 once
00:20:47 <oerjan> oh wait 2 characters
00:21:20 <oerjan> changing a 0 to 1, and vice versa, causing it to redo the loop with a new initial value instead of halting
00:21:46 <quintopia> oerjan: can do two fractions yet?
00:21:57 <oerjan> and this ability to redo with a new value means there is no need to have a surrounding main loop
00:22:17 <oerjan> (well except that i'm reading in a list of chars, but that's different)
00:22:48 <oerjan> quintopia: in principle, but it requires combining the fractran fractions
00:23:18 <quintopia> i cant parse the algorithm in my head. whats the basic method?
00:23:25 <oerjan> say for the program 5/2, 5/3 i would need to combine the 2's and 3's into a branch modulo _6_
00:24:34 <quintopia> makes sense
00:24:39 <elliott> quintopia: BTW, you're a good dorf.
00:24:45 <oerjan> dorf?
00:24:50 <quintopia> whats the division alg?
00:24:57 <quintopia> elliott: what's my full name?
00:25:29 <elliott> oerjan: dwarf
00:25:51 <elliott> quintopia: 'quintopia' Okillòr, Gem Setter
00:26:28 <quintopia> oerjannnnn hows the mod check work?
00:27:04 <elliott> oerjan: (We've named the dwarves in our DF succession game after channel members.)
00:27:11 <quintopia> elliott: put me on a boat and let me explore hell. i was made to travel.
00:27:11 <elliott> oerjan: You're a carpenter.
00:27:17 <elliott> quintopia: Tempting.
00:27:52 <quintopia> <3 stupid dorf tricks
00:30:25 <oerjan> quintopia: well it's essentially repeated decrement in a 4 level nested if
00:31:41 <oerjan> where each level first sets up the resulting registers _if_ the main register n has reached 0 by then, so that falling through gives the right behavior (halting or redoing)
00:32:46 <oerjan> after the ]]]] point, the cells are *0 n m+1 for redoing (m=0 when starting an entirely new number) or *0 r 0 for halting
00:33:26 <oerjan> each iteration which _doesn't_ let n reach 0, will decrement n by 4 and increment m by 4
00:36:44 <oerjan> it varies by level how the new n and m are constructed from the old ones.
00:37:39 <oerjan> but the outcome is the ability to branch on n%4, with either halting with some linear function of n/4, or redoing the whole loop again with one
00:39:45 <oerjan> quintopia: got it?
00:41:02 <oerjan> so to do a fractran program 5/2, 5/3 you'd want to do a similar branch modulo 6.
00:43:01 <elliott> oh cute, oerjan has picked up the math monologuing from oklopol
00:43:18 <oerjan> elliott: erm quintopia asked
00:43:19 <elliott> admittedly quintopia asked :D
00:44:26 <zzo38> I don't like the "snow permanent" rule in Magic: the Gathering; I would prefer it be "snow object".
00:54:35 <elliott> quintopia: you're about to become implicit in a murder.
00:55:19 <elliott> complicit.
01:01:19 <zzo38> Would you anything write more ideas/opinions/comment/question based on my idea of new programming language? I also have some other ideas about it too.
01:02:59 <zzo38> * The program cannot have a main function; it must be linked with a module in a different programming language in order to compile it into an executable program.
01:04:38 -!- azaq23 has quit (Quit: Leaving.).
01:08:41 -!- CakeProphet has joined.
01:08:41 -!- CakeProphet has quit (Changing host).
01:08:42 -!- CakeProphet has joined.
01:15:06 -!- cheater_ has joined.
01:18:15 -!- cheater has quit (Ping timeout: 250 seconds).
01:36:16 <Lymee> zzo38, can't self-host then.
01:36:17 <Lymee> No.
01:37:49 <zzo38> Lymee: I know it can't self-host. There are other programming languages, too, that I wouldn't expect to self-host. However, if you really want to, you could write some stub that allows it to, I guess; and a program in itself could be able to generate this stub
01:41:15 <oerjan> ^def test bf ,[>++[-[----<+++++>]+<<[->[----->++++<]>[-<+>]<<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>>]<<.,]
01:41:15 <fungot> Defined.
01:41:30 <oerjan> ^test @ABCDEFGHIJKL
01:41:35 <fungot> ...out of time!
01:41:43 <oerjan> wat
01:41:55 <oerjan> ^test @A
01:42:00 <fungot> ...out of time!
01:42:07 * oerjan suspects a bug
01:42:51 <oerjan> ^def test bf ,[>>+[-[----<+++++>]+<<[->[----->++++<]>[-<+>]<<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>>]<<.,]
01:42:51 <fungot> Defined.
01:42:55 <oerjan> ^test @ABCDEFGHIJKL
01:43:15 <oerjan> fungot: now what?
01:43:16 <fungot> oerjan: will that make life possible.
01:43:21 <oerjan> ^test @A
01:43:40 <elliott> "Here is the beginnings of my new "Turducken" fortress: A fortress that contains a volcano in it's center. Mostly submerged in this volcano will be another smaller fort, which will also contain an even smaller volcano."
01:44:07 <elliott> oerjan is organising a party ahahahaha HOW OUT-OF-CHARACTER
01:45:07 <oerjan> ^def test bf ,[>>+[-[----<+++++>]+<<[->[----->++++<]>[-<+>]<<[->+<[->+<[>[->+<]>++<<-[->+<]]]]]>[-<+>]>]<<.,]
01:45:07 <fungot> Defined.
01:45:11 <oerjan> ^test @ABCDEFGHIJKL
01:45:12 <fungot> }ABCUEFGZIJK_
01:45:16 <oerjan> whew
01:45:30 * CakeProphet maintains a noble facade of bakery soothsaying
01:55:16 -!- micahjohnston has quit (Ping timeout: 255 seconds).
01:58:44 <Gregor> The world of video games loathes the man with one eye and no thumbs.
01:58:51 <elliott> Gregor: You're also a dorf.
01:58:57 <elliott> A pretty good soldier, as it happens.
01:59:14 <Gregor> *dwarfpimp
01:59:46 <elliott> Gregor: Well technically you're dead.
01:59:48 <elliott> But Gregor II isn't.
02:01:17 -!- Sgeo has quit (Remote host closed the connection).
02:01:22 -!- Sgeo_ has joined.
02:01:27 <zzo38> Probably some game are more difficult if no thumbs
02:01:38 -!- Sgeo_ has changed nick to Sgeo.
02:01:49 <oerjan> Dorfdorfbürger
02:02:10 <Sgeo> Eyes need to readjust
02:05:37 -!- micahjohnston has joined.
02:12:44 <elliott> `addquote <Phantom_Hoover> You realise the micromanagement it took to make quintopia encrust my silver throne with emeralds rather than a jug?
02:12:48 <HackEgo> 568) <Phantom_Hoover> You realise the micromanagement it took to make quintopia encrust my silver throne with emeralds rather than a jug?
02:38:05 <Phantom_Hoover> O...K...
02:38:08 <Phantom_Hoover> It's... nearly 4.
02:38:10 <Phantom_Hoover> I
02:38:14 <Phantom_Hoover> I should really go to bed.
02:38:19 -!- Phantom_Hoover has left ("Leaving").
02:38:20 -!- Phantom_Hoover has quit (Quit: Leaving).
02:39:40 <elliott> PH is such a wimp.
02:40:59 <elliott> NihilistDandy: Lymee: Vorpal: Help.
02:41:02 <elliott> Ping ping ping help.
02:41:26 <Lymee> なになに
02:41:55 <elliott> Lymee: OK so the fortress just got sieged.
02:41:57 <elliott> By goblins.
02:42:04 <elliott> Seigen. Whatever.
02:42:27 <elliott> And I need help because I'm useless.
02:42:47 <elliott> There's seven of them.
02:42:48 <elliott> Help.
02:42:57 <elliott> Do... do I want my military to attack them?
02:43:04 <Lymee> Yes.
02:43:14 <elliott> All of them at once? Okay.
02:43:30 <Lymee> I don't know if your military is strong enough, but.
02:43:36 <elliott> It... isn't.
02:43:47 <Lymee> The other option is to lock your gates.
02:43:52 <elliott> I can do that too, yes.
02:43:56 <elliott> But I think a lot of them are already inside.
02:44:00 <Lymee> ...
02:44:03 <elliott> Perhaps all of them.
02:44:04 <Lymee> Send your military.
02:44:08 <elliott> Yeah.
02:44:11 <Lymee> And close up sooner next time.
02:44:23 <elliott> Lymee: Uh, dude, I'm like two ticks after it told me there was an ambush.
02:44:29 <elliott> I can't monitor my traps twenty four seven.
02:44:30 <Lymee> Ah.
02:44:37 <Lymee> You could add a detector animal.
02:44:39 <elliott> It only tells you there's an ambush after they become visible, apparently.
02:44:52 <elliott> OK, time to remember the keycombo to flip the lockdown lever.
02:44:57 <coppro> elliott: are you playing dwarf fortress
02:45:04 -!- CakeProphet has quit (Ping timeout: 276 seconds).
02:45:07 <elliott> coppro: Yes. We're doing a succession fortress, and it might not live beyond me.
02:45:19 <coppro> I don't know what that is.
02:46:00 <elliott> qaP apparently.
02:46:16 <elliott> coppro: Play a year -> pass it on to the next person -> repeat until it's dead.
02:46:30 <Lymee> Or purposefully slaughtered...
02:46:49 <elliott> Dammit PH, where is the lever???
02:47:33 <elliott> HAHAHA there's a pool of elf blood at my entrance.
02:47:46 <elliott> (I seized all the elves' possessions and murdered them and their donkey.)
02:47:58 <elliott> By the time they send something nasty the fortress will by Lymee's or monqy's.
02:48:24 <Lymee> Lymee will welcome them.
02:48:25 <Lymee> With lava.
02:49:11 <elliott> Lymee: OK but seriously how can I find the lever I need to qaP on.
02:49:21 <Lymee> Umm...
02:49:30 <Lymee> I'm quite sure there's a building list with "b" or "B
02:49:34 <monqy> I'll never be able to handle anything nasty
02:49:50 <elliott> Lymee: That's the build menu, isn't it.
02:50:04 <Lymee> Use "R"
02:50:11 <elliott> Oh, thanks
02:50:51 <elliott> Aha, here we go
02:53:30 <elliott> Lymee: Hmm, it looks like every one of the goblins is outside
02:53:46 <elliott> Should I cancel the military orders and just wait for them to go away?
02:53:57 <Lymee> Depends on if you think the military can handle them.
02:54:09 <elliott> Lymee: Well... they were started late last year, and it's now late summer.
02:54:16 <elliott> PH doesn't seem exceptionally confident in them.
02:54:18 <Lymee> What are their skills?
02:54:24 <elliott> They massacred the elves, but, well, elves have wooden weapons.
02:54:27 <Lymee> And what are the goblins armed with?
02:54:32 <elliott> Lymee: Wildly varying skills :-P
02:54:43 <elliott> I'm not sure what the goblins have.
02:54:53 <elliott> I mean, they will go away if I just lockdown long enough, right?
02:55:29 <Lymee> Dunno...
02:55:33 <Lymee> I'm not sure I've ever seen that happen.
02:56:00 <elliott> Oh well.
02:56:06 <elliott> My lever doesn't appear to work.
02:56:44 <elliott> Yeah, OK, our militia commander Vorpal just died.
02:57:38 <Lymee> RIP Vorpal
02:57:41 <elliott> Time to pull 'em out.
02:57:57 <elliott> Pretty sure Gregor II, our best soldier, is a goner.
02:58:01 <elliott> He's running from them in the wrong direction.
02:58:06 <Sgeo> Am I still alive?
02:58:27 <elliott> Sgeo: I think so; you're a boring administrator.
02:58:42 <elliott> Lymee: I wonder if they're not heading back to the fortress because they know you can't get in?
02:58:45 <elliott> Because I pulled the lever.
02:58:47 <elliott> I don't think it worked mind you.
02:59:00 <Lymee> I've had armies not rush in before.
02:59:48 <elliott> Oh wait
02:59:51 <elliott> It's Vorpal's corpse that's not moving
02:59:54 <elliott> Vorpal's mutilated corpse at that
03:00:12 <elliott> Why are you heading for the river, Gregor II?
03:00:22 <Lymee> Suicidal tendencies.
03:00:34 <Lymee> Have you encountered a forgotten beast yet?
03:01:04 <elliott> Yeah this guy is so gonna die.
03:01:07 <elliott> Lymee: Yes.
03:01:14 <elliott> He and/or she's boarded up safely.
03:01:17 <Lymee> Was it tasty?
03:01:26 <elliott> He and/or she's boarded up safely.
03:01:36 <elliott> Just gonna... leave it there.
03:01:50 <Lymee> Can you sic it on the goblins?
03:02:04 <Lymee> elliott, also, minor tip.
03:02:04 <elliott> Lymee: I... is that even possible?
03:02:11 <Lymee> High skill miners are good at killing things.
03:02:39 <elliott> Lymee: Dude. I'm not risking monqy. He is our only miner.
03:03:00 <monqy> who what
03:03:06 <elliott> monqy: Yeah.
03:03:19 <MDude> What game are you talking about?
03:03:25 <Sgeo> Dwarf Fortress
03:03:25 <elliott> MDude: Dwarf Fortress.
03:03:30 <Lymee> ...
03:03:32 <Lymee> There's a giant lake.
03:03:35 <Lymee> In the middle of a desert
03:03:37 <Lymee> Embark: Y/N
03:03:42 <elliott> Lymee: X-D
03:03:47 <elliott> Lymee: Stop playing your game of DF and help me play mine
03:03:59 <Lymee> :[
03:04:23 <elliott> MDude: If you don't know of it, it's like NetHack except instead of doing things, you order a large number of idiots to do them; and also it's about a thousand times more complicated, and at least twice as difficult.
03:06:09 <elliott> Lymee: Can I, like, specifically order Gregor II to come back inside? :-P
03:06:14 <Lymee> Umm...
03:06:19 <Lymee> There might be an alert for that.
03:06:28 <elliott> It's on the highest default alert, at least.
03:06:52 <Lymee> Ah.
03:07:05 <elliott> But military overrides that because dumb.
03:07:11 <Lymee> You have to make an emergency burrow of sorts and restrict everybody to it, I think.
03:08:32 <elliott> On Gregor II: "She is not a risk-taker. She is mostly unaware of her own emotions and rarely expresses them. She dislikes helping others. She is compassionate. She needs alcohol to get through the working day. She doesn't really care about anything anymore."
03:09:11 <elliott> Also her left foot is cut open, her left foot is bruised, her left lower arm is broken, her left lower arm is cut open, her left lower arm is oozing 'Gregor II' Cloistertrampled's dwarf blood [who else's? Also, best surname -Ed.], her right foot is cut open, her right upper arm is cut open, and her left lower leg is cut open.
03:09:22 <Lymee> Woops.
03:10:07 <elliott> Lymee: I should just give up on Gregor II, huh.
03:13:10 <Lymee> YEp~
03:13:11 <Lymee> Yep*
03:13:22 <elliott> Yep, dead.
03:14:33 <elliott> The goblins seem to be leaving.
03:14:36 <elliott> FUCKING HELL NIHILISTDANDY
03:14:39 <elliott> STOP CREATING MASTERPIECES
03:14:42 <elliott> YOU DO IT LITERALLY MULTIPLE TIMES A MINUTE
03:17:47 <Sgeo> Can't that be lethal if you're short on supplies?
03:18:30 <elliott> Sgeo: I don't think we are.
03:19:25 <elliott> I wish the goblins would make their way to the entrance or leave.
03:24:21 <elliott> itidus just got himself killed.
03:25:38 <elliott> Lymee: Well, the goblins are going through traps now.
03:27:31 <elliott> Lymee: Haha, I think the goblins are neutralised
03:27:36 <elliott> There's only three goblins not in cages
03:27:40 <elliott> And I think they're trapped between cages
03:27:50 <Lymee> You can't get trapped between cages.
03:28:00 <elliott> Well. They're standing perfectly still.
03:28:03 <elliott> With caves on each side of them.
03:28:08 <elliott> It's a cage trap.
03:28:10 <elliott> Not cages.
03:28:11 <Lymee> They're waiting.
03:28:16 -!- micahjohnston has quit (Ping timeout: 240 seconds).
03:28:20 <Lymee> Wait, are they active traps?
03:28:27 <elliott> Lymee: The cage traps both have goblins in.
03:28:28 <elliott> It's
03:28:29 <elliott> T
03:28:29 <elliott> g
03:28:29 <elliott> T
03:28:30 <elliott> G
03:28:36 <elliott> where T = cage trap that is filled with a goblin.
03:28:39 <elliott> s/G/g/
03:28:40 <Lymee> Yeah.
03:28:44 <Lymee> That won't trap them, I don't think
03:28:47 <elliott> And then there's just floor eblow the bottom g.
03:28:51 <elliott> And to the right of the top g, for that matter.
03:28:59 <elliott> Oh wait
03:29:06 <elliott> Lymee: One of them is ... standing on top of a goblin cage
03:29:11 <Lymee> <3
03:29:12 <elliott> So's the other, in fact
03:29:21 <elliott> The other has two goblins on top of a cage.
03:29:24 <elliott> So, umm...
03:29:26 <elliott> Are they trapped?
03:29:30 <Lymee> Nope.
03:29:35 <elliott> Then what are they doing.
03:29:44 <Lymee> Camping around I guess.
03:29:47 <Lymee> They seem to do that.
03:29:57 <elliott> I really, really want to get off alert soon, because there's human traders and I want to give them shit.
03:30:06 <elliott> But nobody can get to the depot.
03:30:09 <elliott> Because of my alert level.
03:30:15 <Lymee> Send your military at them.
03:30:19 <Lymee> They should be weakened.
03:30:34 <elliott> They're... not, but fine.
03:30:40 <elliott> I only have to fight the tree that aren't trapped, right?
03:30:42 <elliott> three.
03:31:02 <elliott> Also...
03:31:05 <elliott> My entire military squad is dead.
03:31:26 <Lymee> ...
03:31:39 <elliott> There was only like three people.
03:31:44 <elliott> Maybe four.
03:32:23 * elliott tries to figure out which skill I need for military.
03:32:58 <elliott> Siege engineering??
03:33:25 <elliott> Lymee: ha;lp
03:33:48 <Lymee> Siege Engineering is for building balista and stuff
03:34:00 <elliott> Damn.
03:34:21 * elliott decides to make quintopia a miner while he's at it, since we only have monqy, and quintopia is the only one with any other mining skills.
03:34:24 <elliott> Plus he's a gem setter.
03:34:28 <elliott> So I guess he isn't doing that much.
03:34:43 <elliott> Lymee: So are there really no labours good for -- oh wait, military has its own set.
03:34:53 <Lymee> Mining.
03:35:03 <Lymee> Pretty much the only non-military skill that can be used to kill stuff.
03:35:14 <elliott> monqy is a legendary mining, it seems.
03:35:15 <elliott> miner.
03:35:33 <elliott> Lymee: Yeah, I just don't have any half-decent soldiers elft.
03:35:34 <elliott> left.
03:35:46 <elliott> Apart from MAYBE monqy, and I am NOT going to risk him.
03:36:09 <elliott> Besides, he's busy smoothing my bedroom floor ;-)
03:36:18 <elliott> Hmm, one of the goblins moved.
03:36:47 <elliott> Lymee: I mean, there's like over ten traps still for them to pass through.
03:36:51 <elliott> So they're practically guaranteed to get trapped.
03:36:54 <elliott> But I hate waiting for it.
03:37:53 -!- micahjohnston has joined.
03:39:33 <elliott> Excellent, another one trapped.
03:39:35 <elliott> And another one.
03:39:36 <elliott> Only one goblin left.
03:40:01 <Lymee> I'm sure monqy can take care of them~
03:40:06 <elliott> DIE NGEBZO DIE
03:40:08 <elliott> Lymee: NOOOOOOOOOOOOOO
03:40:44 <elliott> Lymee: Let me try and explain :-P
03:41:02 <elliott> monqy's mining skill level: Twenty.
03:41:04 <elliott> He is Legendary.
03:41:24 <elliott> quintopia's...
03:41:32 <elliott> Is five.
03:41:36 <Lymee> Well...
03:41:38 <elliott> Lymee: So yeah.
03:41:41 <elliott> And NOBODY else
03:41:42 <elliott> Not a single person
03:41:44 <elliott> Has any mining skills at all
03:41:55 <Lymee> With high enough quality pickaxes and some armor, a miner should be a good last resort. But...
03:42:02 <Lymee> No need to use a last resort =p
03:42:08 <elliott> But I'd lose my last fucking miner :P
03:42:11 <elliott> Yeah, these guys are gonna be trapped.
03:42:17 <elliott> I just need this one dude to walk in.
03:42:23 <elliott> They can't escape, AFAIK.
03:42:26 <Lymee> Seriously though, I'm quite sure mining is the easiest combat usable skill to train.
03:42:47 <elliott> I'm gonna ask for an extension of time with this fortress considering that I've lost... well, far too long, fighting these goblins X-D
03:42:55 <elliott> Lymee: Yeah, well, quintopia should learn it up now that I've designated him as one.
03:43:09 <zzo38> I noticed, Redmine still asks your SREG "nickname", "fullname", and "email" fields even if you have already registered, although it seems doesn't use them.
03:43:16 <zzo38> (Except when registering)
03:43:45 <elliott> Hmph, our still has no brew drink task going.
03:43:48 <elliott> T-Pain has been slacking off.
03:44:07 <elliott> Lymee: Think monqy could take on a single goblin in a field of traps?
03:44:17 <elliott> I am really getting sick of that guy.
03:44:19 <Lymee> Dunno.
03:44:25 <elliott> And he has AN INJURY
03:44:29 <elliott> "His right lower arm is dented."
03:44:32 <Lymee> Shouldn't be a problem, but....
03:44:42 <elliott> If I recall monqy, he shouldn't have any problem getting back in.
03:44:47 <elliott> It's a single-file trap place.
03:44:55 <elliott> Apart from five blocks open to the right at one point.
03:45:09 <elliott> I'll give this goblin another minute or so.
03:45:20 <Lymee> Send in somebody on a random outside job as bait.
03:45:32 <elliott> X-D
03:45:37 <elliott> I'm on too high an alert level for that.
03:45:47 <elliott> I could sacrifice someone, but they probably wouldn't kill the dude.
03:45:58 <Lymee> elliott, you see.
03:46:01 <Lymee> They encounter goblin.
03:46:04 <Lymee> Goblin gives chase.
03:46:06 <Lymee> Person runs.
03:46:08 <Lymee> Goblin gets trapped.
03:46:19 <elliott> Nah; the goblin's at the beginning of the trap plcae.
03:46:19 <elliott> place.
03:46:25 <elliott> So the goblin would just run in free space.
03:47:45 * elliott just removes the alert level out of curiosity.
03:48:00 <elliott> People are coming upstairs now.
03:48:06 <elliott> Hopefully it'll tempt the goblin to come here. :p
03:48:11 <elliott> Gosh, a right rush it is.
03:50:03 <elliott> OK, Sigun Artoboslan, who has basically no skill in everything, and is a milker, and who has no job, is gonna get sacrificed.
03:50:50 <elliott> Lymee: Will my militia squad commander fight if he's the only guy on a squad...?
03:51:16 <Lymee> Yep.
03:51:46 <elliott> Awesome.
03:52:17 <elliott> Doesn't... seem to be happening.
03:52:51 <cheater_> maybe he's just not good at fighting.
03:53:26 <elliott> Lymee: Umm, are you sure about that?
03:53:39 <Lymee> Mostly.
03:55:39 <elliott> Bye merchants.
03:55:42 <elliott> Oh god.
03:55:43 <elliott> They're about to.
03:55:45 <elliott> You know.
03:55:46 <elliott> Leave.
03:55:53 <elliott> You know what that means.
03:55:55 <elliott> Going through the traps.
04:05:21 <NihilistDandy> elliott: What'd I do?
04:05:31 <NihilistDandy> Oh, masterpieces
04:05:35 <NihilistDandy> What kind of masterpieces?
04:05:55 <elliott> NihilistDandy: So many.
04:05:57 <elliott> You're a stonecrafter.
04:06:00 <elliott> And literally the best one ever.
04:06:13 <NihilistDandy> As if there were ever a doubt
04:06:22 <NihilistDandy> Any choice items?
04:07:01 <NihilistDandy> Also, multiple times a minute? Damn, I'm good
04:08:32 <NihilistDandy> Additionally, did I survive the goblin onslaught?
04:09:08 <elliott> NihilistDandy: Only military has died so far
04:09:13 <elliott> zzo38: hi
04:09:14 <NihilistDandy> Sweet
04:09:20 <elliott> NihilistDandy: But seriously, you create bags of the stuff on a regular basis
04:09:23 <elliott> You churn out masterpieces
04:09:48 <elliott> NihilistDandy: It's annoying enough that I want to turn off the messages about you creating a masterpiece
04:10:05 <NihilistDandy> This has been the best shit all week
04:10:40 <elliott> NihilistDandy: Hey, do you play DF, I forget
04:11:04 <NihilistDandy> I've thought about it. I played for like 8 seconds the other day when you started talking about it, but I haven't gotten way into it, by any means
04:11:19 <elliott> NihilistDandy: So clearly you want to play in the succession game
04:11:43 <NihilistDandy> As in the next game? Or is "succession game" a technical term?
04:11:54 <NihilistDandy> But yes, clearly I do
04:12:07 <NihilistDandy> Hopefully I'll survive and continue being masterful
04:12:34 <monqy> I should probably learn the controls before my turn
04:12:36 <elliott> NihilistDandy: Succession game = everyone plays a year, passes the fortress on, repeat
04:12:41 <elliott> monqy: There's an awful lot of controls.
04:12:52 <monqy> what should I learn befroe I start
04:13:01 <NihilistDandy> elliott: Hmm. Sure. I should probably play a couple of games before my turn, though
04:13:36 <elliott> NihilistDandy: "A couple of games"
04:13:38 <elliott> Games can last indefinitely :-P
04:13:43 <elliott> monqy: I dunno, go through the quickstart guide?
04:13:47 <elliott> monqy: On the wiki
04:13:53 <monqy> elliott: will do
04:14:04 <monqy> probably either later tonight or tomorrow
04:14:21 <elliott> monqy: That could take a while ;-)
04:14:39 <NihilistDandy> elliott: Well, I need to play until I don't just die, then
04:14:47 <NihilistDandy> Well, don't die immediately, that is
04:15:00 <elliott> I think it's quite hard to just die early on
04:25:09 -!- MDude has changed nick to MSleep.
04:27:45 <zzo38> Please help the wiki https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language
04:28:25 <NihilistDandy> Well, I applied some skin or other to it, now. I have no desire to look at ASCII all night. I got nethack out of my system, thank you. (Okay, that's not quite true)
04:28:35 <NihilistDandy> But the interface is nice, overall, for a spreadsheet
04:29:58 <elliott> NihilistDandy: Oh come on, there's barely any micromanagement at all with a reasonable playstyle.
04:30:14 <NihilistDandy> I'm just kidding, jeez :P
04:30:18 <elliott> There's even a job interface which makes everyone coordinate and fetch resources and craft things and put them in piles just from a task like "construct 99 beds" :p
04:30:38 <elliott> NihilistDandy: Honestly though, I have trouble believing any really-graphical set could convey the same amount of info the pseudo-textual set does
04:30:55 <NihilistDandy> Such as?
04:31:01 <elliott> Attempting to look realistic just decreases the number of possible designs
04:31:04 <NihilistDandy> And it's not really that graphical
04:31:07 <elliott> And there's a fuckload types of block
04:31:10 <NihilistDandy> It's just shitty little sprites
04:31:25 <NihilistDandy> Screenshotting
04:31:30 <elliott> Plus sprites will always be bigger than the pseudo-text tiles, and so it'll pack less info onto the screen at once :-P
04:32:14 <elliott> NihilistDandy: Here's what I see, and I find that I strongly wish for a bigger viewing area: http://ompldr.org/vOXNobA
04:32:33 <elliott> Overground is much more complicated
04:34:37 <NihilistDandy> http://dl.dropbox.com/u/21008274/blah.tiff
04:34:52 <NihilistDandy> Would have been faster, but I didn't realize Dropbox wasn't "Lion-ready"
04:35:25 <elliott> Nice ... wand with a Wii strap.
04:35:36 <elliott> Oh, now it works.
04:35:46 <elliott> NihilistDandy: That's most definitely a very graphical set.
04:35:57 <elliott> And what kind of fort is that? Isn't that some mod?
04:36:07 <elliott> I like how it's fucked up your text
04:36:12 <elliott> See that one step thing?
04:36:14 <elliott> It's a .
04:36:17 <elliott> Every . in text will look like that
04:36:18 <elliott> Have fun with that
04:36:35 <NihilistDandy> elliott: That's just the object blah blah blah
04:36:39 <NihilistDandy> Sandbox thing
04:36:50 <elliott> What?
04:36:53 <elliott> Oh
04:37:04 <NihilistDandy> The fort, that is
04:37:08 <elliott> I wish they'd smooth my floor more quickly.
04:37:11 <elliott> Hmm.
04:37:13 <elliott> Actually.
04:37:18 <elliott> I don't like how...
04:38:03 -!- oerjan has quit (Quit: Good night).
04:39:17 * elliott channels out his bedroom.
04:40:37 <elliott> Is oerjan just sitting there...
04:41:32 <elliott> These dorfs are incompetent.
04:41:33 <elliott> Argh, migrants.
04:42:36 <NihilistDandy> Well, shit. Now that I've removed the graphical set (i.e., I untar'd again), shit doesn't even run :|
04:43:28 <elliott> What error
04:43:39 <NihilistDandy> Found a fix
04:43:41 <NihilistDandy> No problems
04:44:35 <elliott> NihilistDandy: NOT ANOTHER FUCKING MASTERPIECE
04:44:49 <NihilistDandy> FUCK YES
04:45:20 <NihilistDandy> And you know what? I take it back. The text was *is* better
04:45:24 <NihilistDandy> Flowing water, for one
04:45:47 <NihilistDandy> Though what all this shit means, I can't begin to imagine
04:46:35 <elliott> NihilistDandy: Try using k to examine shit
04:46:41 <elliott> Quickstart guide is recommended, I read, like, half of it ;D
04:46:41 <NihilistDandy> Doing so
04:46:47 <NihilistDandy> I'll get right on that
04:49:33 <NihilistDandy> elliott: Does it say what kind of masterpieces, or is it just "NihilistDandy created another fucking masterpiece"?
04:50:20 <elliott> NihilistDandy: The latter
04:50:29 <elliott> I suppose I could look, but we just sell off bags of them instead
04:51:14 <NihilistDandy> My works will probably cause economic collapse
04:51:25 -!- derrik has joined.
04:51:28 <NihilistDandy> All currency, devalued, and all because of me
04:51:30 <pikhq_> Oh, so you're a Congressman?
04:51:44 <NihilistDandy> pikhq_: A MASTERPIECE OF MALICE
04:57:14 <elliott> Fuck
04:57:14 <elliott> Fuck
04:57:14 <elliott> Fuck
04:57:17 <elliott> Lymee: FUCK HELP
04:57:26 <Lymee> なになになになに
04:57:28 <elliott> fungot: MULE WENT BEZERK
04:57:28 <fungot> elliott: he is so silly!!! :d divided by your number
04:57:32 <elliott> THEN THE HUMAN MERCHANT WENT BERZERK
04:57:33 <elliott> AND
04:57:39 <elliott> FUCKING
04:57:43 <elliott> JUST
04:57:44 <elliott> LIKE
04:57:45 <elliott> YEAH
04:57:45 <elliott> HELP
04:57:49 <elliott> MILITARY?????
04:58:02 <Lymee> Send in monqy
04:58:21 <elliott> Gah
04:58:21 <elliott> No
04:58:27 <Lymee> Let the traps do the work.
04:58:40 <elliott> They're downstairs
04:58:41 <elliott> For some reason
04:59:22 <elliott> Lymee: I think maybe I locked them in??
05:00:23 <Lymee> Feed them lava.
05:01:13 <elliott> Lymee: Not... practical.
05:02:07 <Lymee> Open a tunnel between them and the forgotten beast.
05:03:07 <NihilistDandy> LET THE MASTERPIECES FLOW LIKE WINE
05:03:34 <elliott> Lymee: lol
05:03:38 <elliott> Would that even work
05:03:41 <Lymee> Dunno.
05:05:42 <Sgeo> luke-jr> Sgeo: if people are going to commit sexual abuse, they should be infected.
05:06:03 <NihilistDandy> With what? Kid AIDS?
05:06:27 <elliott> Why are you in jesus again.
05:06:32 <elliott> I cba to type the octothorpe so deal with that ambiguity.
05:07:03 <NihilistDandy> I think the infection comes double if you sexually abuse jesus
05:07:29 <Lymee> It doesn't have to be non-consensual.
05:08:06 <elliott> OK seriously someone help me deal with this rmpage.
05:08:23 <elliott> rampage.
05:11:29 <monqy> not me im too legendarey
05:11:42 <NihilistDandy> Same
05:11:49 <NihilistDandy> I'm busy making masterpieces
05:14:49 <elliott> monqy: I'll send you in if I have to.
05:20:52 <Sgeo> <luke-jr> opt1mus: women have too many "rights" today
05:20:52 <Sgeo> <opt1mus> luke-jr: which ones are too many?
05:20:52 <Sgeo> <luke-jr> everything's gone downhill ever since they were allowed to vote
05:20:52 <Sgeo> <opt1mus> oh dear.
05:20:52 <Sgeo> <luke-jr> maybe even before
05:21:37 <NihilistDandy> reading
05:21:49 <NihilistDandy> That was the first nail in the coffin
05:22:02 <quintopia> where is this happening?
05:22:16 <Sgeo> quintopia, #jesus
05:22:22 <elliott> Sgeo: hahaha
05:22:23 <Lymee> ohheyhowunexpected
05:22:31 * Lymee resists clicking for her sanity
05:22:33 <quintopia> yeah i figured it out
05:22:39 * Lymee not in the mood to blow up on somebody
05:22:48 <elliott> Lymee: you cant blow up on luke-jr hes amazing
05:22:52 <elliott> is it him that supports book burning Sgeo
05:22:53 <elliott> i think it is
05:22:55 <elliott> or is it the other one
05:23:16 <Sgeo> elliott, I think there are several that support book burning
05:23:20 <zzo38> This game is bad because Hitler played it.
05:23:25 <Lymee> Sgeo, tell him that men have way too many rights.
05:23:27 <Lymee> Watch explosion~
05:23:39 <zzo38> This is the king's lava, please don't step in it.
05:25:08 <quintopia> hahha
05:25:14 <quintopia> zzo++
05:25:16 <NihilistDandy> Joining for lulz
05:25:23 <NihilistDandy> My name alone should be enough to cause trouble
05:26:17 <Lymee> I should join using the name "HaruhiSuzumiya"
05:26:27 <Lymee> Nobody will notice~
05:27:12 <Sgeo> Did I just say something luke-jr agreed with? I feel dirty
05:27:24 <NihilistDandy> You should take it back
05:27:31 <NihilistDandy> Tell him that the Trinity is awesome and perfect
05:27:41 <NihilistDandy> NON-BELIEVERS ARE TO BE SHUNNED
05:27:55 <Lymee> Should I join #jesus as "MadokaKaname" or "HaruhiSuzumiya"
05:28:12 <NihilistDandy> Kaname
05:29:01 <Lymee> Or would it be obvioustroll...
05:29:08 <NihilistDandy> "I abjured that heresy"
05:29:14 <NihilistDandy> He talks like a D&D manual
05:30:11 -!- MadokaKaname has joined.
05:30:12 <MadokaKaname> ^__^
05:30:43 <pikhq_> Meh, just ask "What reasons are there to think that a god exists?". That should leave them arguing for ages.
05:31:56 <Sgeo> pikhq_, luke-jr believes the Catholic Church can be proven to be authoritative through logic
05:32:05 <NihilistDandy> "HAI GUISE. I just read this awesome proof of God's existence. You should all go tell #math about it"
05:32:27 <pikhq_> Sgeo: Does he even have true premises?
05:32:46 <Sgeo> I don't remember if I've even heard his logic
05:32:48 * elliott saves the fort for today.
05:33:13 <elliott> Gonna... handle that rampage tomorrow.
05:33:15 <elliott> Someone remind me.
05:36:23 <elliott> NihilistDandy: How's your fort doing
05:36:33 <NihilistDandy> I haven't been playing :D
05:36:40 <NihilistDandy> I have to sleep in a minute
05:36:49 <NihilistDandy> Have to take my brother to school in the morning
05:36:56 <NihilistDandy> And it's a long-ass drive
05:37:07 -!- MadokaKaname has left ("Huggles for everybody~♪ ^_^").
05:37:18 <Lymee> Neither trolling nor arguing seems fun.
05:37:18 <Lymee> :[
05:37:28 <NihilistDandy> Yeah, srsly
05:38:05 <elliott> Lymee: The best game is to see what they will believe in
05:38:19 * Lymee too depressed
05:47:11 <quintopia> i love "there is one authority that can interpret Scripture"
05:47:26 <NihilistDandy> This is painful
05:47:29 -!- Patashu has joined.
05:48:03 <Sgeo> quintopia, he's fundie Catholic
05:48:27 <elliott> someone talk about the da vinci code in there to rile them up
05:48:42 <NihilistDandy> I demand quintopia do it
05:49:30 <quintopia> blahblahblah but jesus had a wife and they liked sexing blahblahblah
05:49:39 <Lymee> Get a Satanist.
05:49:41 <Lymee> <3
05:49:43 <NihilistDandy> DO IT
05:49:52 <Lymee> Don't know any
05:49:53 <quintopia> IT'S TRUE I SAW IT IN THE LAST TEMPTATION OF CHRIST
05:50:07 <NihilistDandy> quintopia: You're doing it in the wrong channel
05:50:12 <Patashu> David Brown esoteric lang
05:50:28 <quintopia> NihilistDandy: i dont care enough. you do it.
05:50:33 <Patashu> Solve puzzles to figure out how the syntax works
05:50:53 <NihilistDandy> quintopia: I'm too involved now. THEY MIGHT JUDGE ME
05:51:06 <NihilistDandy> Patashu: FSVO puzzle
05:51:36 <Patashu> 'fsvo' means what
05:51:44 <elliott> Lymee: guy talked about burning the satanic bible in there
05:51:45 <elliott> it was beautiful
05:51:49 <elliott> Patashu: for some value of fsvo
05:51:56 <Patashu> ah ok
05:52:08 <NihilistDandy> Sgeo: Nice
05:52:27 <Lymee> So... why are we trolling again?
05:52:33 <NihilistDandy> fsvo some value of
05:52:43 <elliott> Lymee: Who said you're trolling
05:52:45 <elliott> You're just observers
05:52:57 <Lymee> Why are you trolling again
05:53:59 <quintopia> Patashu: you mean Dan Brown?
05:54:18 <Patashu> oops yeah, dan
05:55:00 <NihilistDandy> HONORIUS IS NOT AN EXAMPLE
05:55:13 <Lymee> elliott, see what the reaction from saying negative things about God is.
05:55:59 <elliott> Lymee: probably boring
05:55:59 <pikhq_> They think that God is a perfectly good being that endorses mass murder.
05:56:12 <pikhq_> That's going to be hella boring.
05:56:15 <NihilistDandy> pikhq_: Just like me
05:56:22 <NihilistDandy> The fist part
05:56:25 <NihilistDandy> *first
05:56:28 <NihilistDandy> But also fist
05:56:51 <pikhq_> NihilistDandy: The "They think" bit?
05:57:13 <NihilistDandy> I'm a perfectly good being that endorses mass murder
05:57:35 <pikhq_> I don't think you're perfectly good.
05:57:55 <NihilistDandy> Not in the sense of "the apotheosis of goodness"
05:58:00 <NihilistDandy> But in the sense of
05:58:05 <Lymee> Call God a hypocrite.
05:58:08 <NihilistDandy> "A perfectly good sandwich"
05:58:14 <Lymee> Hopefully sparks fly.
06:00:35 <NihilistDandy> Sgeo: Do you hang out in there a lot, or are you *ONE OF THEM*?
06:01:22 <Sgeo> Hey, the channel owner said he considered making me an op...
06:01:28 <NihilistDandy> quintopia: He'll just say Honorius didn't do it ex cathedra so it's not infallible
06:01:52 <NihilistDandy> Sgeo: That doesn't answer the question~
06:04:09 <elliott> Sgeo: hahaha really
06:05:36 <quintopia> well
06:05:46 <quintopia> i want him to say it
06:06:14 <quintopia> wtf? infallible not impeccable?
06:06:18 <quintopia> he is a weird one
06:06:41 <Sgeo> quintopia, I don't think he considers Pope John Paul II to be a pope.
06:06:45 <Sgeo> Or something, not sure
06:06:55 <coppro> Pope John Paul II is a pope
06:07:17 <NihilistDandy> The Church is above the Bible
06:07:17 <quintopia> he was certainly a legally elected pontiff
06:07:18 <NihilistDandy> Wow
06:08:04 <coppro> what?
06:09:08 <pikhq_> quintopia: He could be an antiPope.
06:09:13 <pikhq_> Erm, antipope?
06:09:40 <pikhq_> Though, to be an antipope the Church has to declare a pope to be that way.
06:09:52 <pikhq_> I'm pretty sure the Church is about to sanctify him.
06:10:04 <Sgeo> I may be mistake
06:10:28 <NihilistDandy> pikhq_: You mean canonize?
06:10:29 * Sgeo baits
06:10:40 <pikhq_> NihilistDandy: Erm, yes.
06:10:52 <pikhq_> NihilistDandy: Having never been Catholic, it's easy to screw up their terminology.
06:11:31 <NihilistDandy> Having only been Catholic in the sense of being baptized that way, I still really like all their silly arcana
06:11:38 <NihilistDandy> Judaism has them beat, of course
06:11:55 <pikhq_> Judaism practically invented arcana. :P
06:12:11 * Sgeo has been unaware of Jewish arcana
06:12:17 <NihilistDandy> I almost converted just so I could look at my roommate's books
06:12:35 <Sgeo> I should add that this "racism" person is someone I've never seen in #jesus before
06:13:33 <elliott> `addquote <NihilistDandy> Having only been Catholic in the sense of being baptized that way, I still really like all their silly arcana <NihilistDandy> Judaism has them beat, of course <NihilistDandy> I almost converted just so I could look at my roommate's books
06:13:34 <pikhq_> Sgeo: https://secure.wikimedia.org/wikipedia/en/wiki/Sephirot Here, have fun.
06:13:35 <HackEgo> 569) <NihilistDandy> Having only been Catholic in the sense of being baptized that way, I still really like all their silly arcana <NihilistDandy> Judaism has them beat, of course <NihilistDandy> I almost converted just so I could look at my roommate's books
06:14:00 <NihilistDandy> Yay!
06:15:26 <pikhq_> And yes, that is esoteric in the *other* sense.
06:16:03 <NihilistDandy> I HAVE COME FULL-CIRCLE
06:18:24 <zzo38> "This game is bad because Hitler played it." and "This is the king's lava, please don't step in it." are quotations from a computer game I made once
06:18:41 <NihilistDandy> lol
06:18:44 <pikhq_> I don't care whose lava it is.
06:18:49 <NihilistDandy> I like that game already
06:19:47 <zzo38> How can you like this game without playing this game at first?
06:20:05 <quintopia> is it a text adventure?
06:20:10 <quintopia> text adventures are good
06:20:27 <zzo38> quintopia: No. It is not. Sorry. But I like text adventures too
06:20:46 <quintopia> zzo38: what kind of game?
06:21:32 <zzo38> It is a MegaZeux game.
06:23:12 <zzo38> Here is 2 screenshots http://www.digitalmzx.net/wiki/index.php?title=File:Ascmzxto.png
06:25:06 <quintopia> looks fun
06:26:49 <Lymee> :t \l -> ceil $ (log (read (map (\x -> '5') l) :: Int)) / (log 10)
06:26:50 <lambdabot> Not in scope: `ceil'
06:26:55 <zzo38> http://zzo38computer.cjb.net/mzx1/ASCMZXTO/ASCMZXTO.ZIP is download game world file, and http://zzo38computer.cjb.net/mzx1/mzx_extended/ is download MegaZeux itself (required for loading the world file in order to play game)
06:26:58 <Lymee> Super stupid length function, yay
06:27:19 <Lymee> :t \l -> ceiling $ (log (read (map (\x -> '5') l) :: Int)) / (log 10)
06:27:20 <lambdabot> No instance for (RealFrac Int)
06:27:20 <lambdabot> arising from a use of `ceiling' at <interactive>:1:6-12
06:27:20 <lambdabot> Possible fix: add an instance declaration for (RealFrac Int)
06:27:30 <Lymee> :t \l -> ceiling $ (log (read (map (\x -> '5') l) :: Double)) / (log 10)
06:27:31 <lambdabot> forall b a. (Integral b) => [a] -> b
06:27:33 <zzo38> (You do not need to download "megazeux.4th" unless you are creating your own MegaZeux games and they are using Forth codse)
06:27:37 <quintopia> zzo38: what languages have you written games in
06:27:47 <Lymee> > ceiling $ (log (read (map (\x -> [1, 2, 3, 4]) l) :: Double)) / (log 10)
06:27:48 <lambdabot> Couldn't match expected type `GHC.Types.Char'
06:27:48 <lambdabot> against inferred type...
06:27:56 <Lymee> > ceiling $ (log (read (map (\x -> '5') [1, 2, 3, 4]) :: Double)) / (log 10)
06:27:57 <lambdabot> 4
06:28:02 <Lymee> How stupid is this code?
06:28:11 <Lymee> @pl \l -> ceiling $ (log (read (map (\x -> '5') l) :: Double)) / (log 10)
06:28:12 <lambdabot> ceiling . (/ log 10) . log . (:: Double) . read . map (const '5')
06:28:21 <zzo38> quintopia: MegaZeux, ZZT, QBASIC, Game Maker, C, GameBoy machine codes, etc.
06:28:32 <Lymee> @src ::
06:28:32 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
06:28:36 <Lymee> :t ::
06:28:36 <lambdabot> parse error on input `::'
06:28:43 <NihilistDandy> @type (::)
06:28:44 <lambdabot> parse error on input `::'
06:28:53 <zzo38> I have made many games with QBASIC.
06:29:02 <NihilistDandy> I don't think that's even a thing really
06:29:08 <NihilistDandy> It's just an annotation
06:29:37 <zzo38> And even Forth.
06:29:46 <zzo38> And TI-92 calculator.
06:29:56 <quintopia> oooh
06:30:15 <Lymee> :t (:: Double)
06:30:16 <lambdabot> parse error on input `::'
06:30:25 <Lymee> Oh, does pl not support :: right?
06:30:34 <Lymee> :t ceiling . (/ log 10) . log . (:: Double) . read . map (const '5')
06:30:34 <lambdabot> parse error on input `::'
06:30:48 <Lymee> :t ceiling . (/ log 10) . log . read :: Double . map (const '5')
06:30:49 <lambdabot> Illegal symbol '.' in type
06:30:49 <NihilistDandy> It probably assumes it's a function
06:30:49 <lambdabot> Perhaps you intended -XRankNTypes or similar flag
06:30:49 <lambdabot> to enable explicit-forall syntax: forall <tvs>. <type>
06:30:56 <Lymee> :t ceiling . (/ log 10) . log . (read :: Double) . map (const '5')
06:30:57 <lambdabot> Couldn't match expected type `Double'
06:30:57 <lambdabot> against inferred type `String -> a'
06:30:57 <lambdabot> In the first argument of `(.)', namely `(read :: Double)'
06:31:04 <NihilistDandy> @pl doesn't actually know anything about most things
06:33:31 <quintopia> :/
06:33:47 <Lymee> :t ceiling . (/ log 10) . log . (\x -> read x :: Double) . map (const '5')
06:33:48 <lambdabot> forall b a. (Integral b) => [a] -> b
06:33:53 <Lymee> Which isn't really point free buttt
06:34:30 <Lymee> :t ceiling . (/ log 10) . log . read . map (const '5')
06:34:31 <lambdabot> forall b a. (Integral b) => [a] -> b
06:35:12 <Lymee> > (ceiling . (/ log 10) . log . read . map (const '5')) [1..10]
06:35:13 <lambdabot> 10
06:35:19 <Lymee> > (ceiling . (/ log 10) . log . read . map (const '5')) [1..10000]
06:35:21 <lambdabot> 179769313486231590772930519078902473361797697894230657273430081157732675805...
06:35:27 <Lymee> :(
06:35:28 <Lymee> > (ceiling . (/ log 10) . log . read . map (const '5')) [1..1000]
06:35:29 <lambdabot> 179769313486231590772930519078902473361797697894230657273430081157732675805...
06:35:31 <Lymee> > (ceiling . (/ log 10) . log . read . map (const '5')) [1..100]
06:35:33 <lambdabot> 100
06:35:38 <Lymee> whathappened D:
06:35:58 <Lymee> My super-convoluted len function broke
06:36:22 <Lymee> @pl \x -> foldl (+) (map (const 1) x)
06:36:22 <lambdabot> foldl (+) . map (const 1)
06:36:32 <Lymee> > (foldl (+) . map (const 1)) [1..100]
06:36:32 <lambdabot> Overlapping instances for GHC.Show.Show ([[t]] -> [t])
06:36:32 <lambdabot> arising from a us...
06:36:50 <Lymee> :t \x -> foldl (+) (map (const 1) x)
06:36:51 <lambdabot> forall t a. (Num [t], Num t) => [a] -> [[t]] -> [t]
06:37:11 <Lymee> :t \x -> foldl1 (+) (map (const 1) x)
06:37:12 <lambdabot> forall a a1. (Num a) => [a1] -> a
06:37:21 <Lymee> > (foldl1 (+) . map (const 1)) [1..100]
06:37:23 <lambdabot> 100
06:37:24 <Lymee> > (foldl1 (+) . map (const 1)) [1..100000]
06:37:25 <lambdabot> 100000
06:37:27 <Lymee> > (foldl1 (+) . map (const 1)) [1..100000000]
06:37:30 <lambdabot> mueval-core: Time limit exceeded
06:38:19 -!- Nisstyre has quit (Ping timeout: 255 seconds).
06:38:39 <zzo38> I once programmed a Star Wars game into the computer, even though I have never watched Star Wars and don't actually know much about it.
06:38:41 -!- pikhq_ has quit (Read error: Operation timed out).
06:38:44 <Lymee> > (foldl1 (+) . map (const 1)) [1..10000000]
06:38:47 -!- pikhq has joined.
06:38:54 <lambdabot> mueval: ExitFailure 1
06:38:54 <lambdabot> mueval-core: Time limit exceeded
06:38:56 <Lymee> > (foldl1 (+) . map (const 1)) [1..1000000]
06:39:00 <lambdabot> mueval-core: Time limit exceeded
06:39:02 <Lymee> > (foldl1 (+) . map (const 1)) [1..200000]
06:39:04 <lambdabot> 200000
06:39:05 <Lymee> > (foldl1 (+) . map (const 1)) [1..300000]
06:39:07 <lambdabot> *Exception: stack overflow
06:39:10 <Lymee> > (foldl1 (+) . map (const 1)) [1..300000]
06:39:12 <lambdabot> *Exception: stack overflow
06:39:13 <Lymee> what
06:39:16 <Lymee> > (foldr1 (+) . map (const 1)) [1..300000]
06:39:18 <lambdabot> *Exception: stack overflow
06:39:25 <Lymee> > (foldl1' (+) . map (const 1)) [1..300000]
06:39:27 <lambdabot> 300000
06:39:30 <Lymee> > (foldl1' (+) . map (const 1)) [1..400000]
06:39:31 <lambdabot> 400000
06:39:32 <Lymee> > (foldl1' (+) . map (const 1)) [1..500000]
06:39:34 <lambdabot> 500000
06:39:35 <Lymee> > (foldl1' (+) . map (const 1)) [1..600000]
06:39:36 <lambdabot> 600000
06:39:37 <Lymee> > (foldl1' (+) . map (const 1)) [1..700000]
06:39:38 <lambdabot> 700000
06:39:39 <Lymee> > (foldl1' (+) . map (const 1)) [1..800000]
06:39:41 <lambdabot> 800000
06:39:42 <Lymee> > (foldl1' (+) . map (const 1)) [1..1000000]
06:39:43 <lambdabot> 1000000
06:39:45 <Lymee> > (foldl1' (+) . map (const 1)) [1..10000000]
06:39:47 <lambdabot> 10000000
06:39:48 <Lymee> > (foldl1' (+) . map (const 1)) [1..100000000]
06:39:52 <lambdabot> mueval-core: Time limit exceeded
06:39:57 <Lymee> > (foldl1' (+) . map (const 1)) [1..50000000]
06:40:00 <lambdabot> mueval-core: Time limit exceeded
06:40:03 <Lymee> > (foldl1' (+) . map (const 1)) [1..40000000]
06:40:07 <lambdabot> mueval-core: Time limit exceeded
06:40:08 <Lymee> > (foldl1' (+) . map (const 1)) [1..30000000]
06:40:12 <lambdabot> mueval-core: Time limit exceeded
06:40:13 <Lymee> > (foldl1' (+) . map (const 1)) [1..20000000]
06:40:15 <lambdabot> 20000000
06:40:16 <Lymee> Totally not bot abuse.
06:40:19 <Lymee> > (foldl1' (+) . map (const 1)) [1..25000000]
06:40:22 <lambdabot> 25000000
06:40:24 <Lymee> > (foldl1' (+) . map (const 1)) [1..27000000]
06:40:27 <lambdabot> Terminated
06:44:31 <elliott> ...
06:45:53 <Lymee> I DID NOTHING
06:46:13 <Sgeo> The most annoying character to listen to in the Bible has got to be Jesus in the Gospel of Joh
06:46:16 <Sgeo> John
06:46:23 <Lymee> @pl \x y->x+1
06:46:23 <lambdabot> const . (1 +)
06:46:44 -!- lament has quit (Ping timeout: 258 seconds).
06:46:46 <Lymee> > (foldl1' (const . (1 +))) [1..10000000]
06:46:49 <lambdabot> 10000000
06:46:54 <Lymee> > (foldl1' (const . (1 +))) [1..100000000]
06:46:57 <lambdabot> mueval-core: Time limit exceeded
06:47:10 <Patashu> Bored much?
06:47:26 <elliott> Sgeo: try not using an audiobook
06:49:02 <zzo38> Someone made a scientific experiment relating to copy protection. Copy protection does hurt sales. Unencrypted previews of works workout copy protection do slightly increase sales (and possibly save you money, too).
06:50:09 <zzo38> The experiment was only books, though, in this case. But evidence (but not any proper scientific experiment) has shown similar for other things too.
06:50:51 <Lymee> > (foldr1' (const . (1 +))) [1..100000000]
06:50:52 <lambdabot> Not in scope: `foldr1''
06:53:33 -!- zzo38 has quit (Remote host closed the connection).
06:59:28 <NihilistDandy> [02:53:56] <luke-jr> racism: strings ~/.bitcoin/blk0001.dat -n21 | perl -nle 's/^.*(?=B)//&&print' | uniq | head -n13
07:00:03 <NihilistDandy> Isn't perl heretical?
07:01:05 <elliott> What.
07:01:09 <elliott> That's something to do with bitcoin at least.
07:01:15 <elliott> Has he explained that...............
07:02:13 <NihilistDandy> Not at all
07:02:18 <NihilistDandy> No one's even asked about it
07:03:05 <elliott> NihilistDandy: Got bitcoin installed?
07:03:11 <elliott> There is only one option
07:03:15 <NihilistDandy> Not right now, actually
07:03:17 <NihilistDandy> I used to
07:07:17 <elliott> I stopped being vaguely interested in Bitcoin when it turns out that everyone is either incompetent, or incompetent and an anarcho-capitalist idiot
07:07:37 <NihilistDandy> Right
07:09:21 -!- derrik has quit (Quit: left).
07:09:45 <NihilistDandy> And he refuses to explain it
07:09:52 <NihilistDandy> I hate perl people
07:12:48 <NihilistDandy> [03:08:39] <luke-jr> NihilistDandy: I am embedding the Divine Praises into the Bitcoin block chain.
07:12:51 <NihilistDandy> [03:11:02] <NihilistDandy> Yes, I suppose you could say that, in a sense
07:12:54 <NihilistDandy> [03:11:15] <luke-jr> …
07:12:57 <NihilistDandy> [03:11:19] <luke-jr> no, I literally am.
07:12:59 <NihilistDandy> [03:11:27] <luke-jr> that command line extracts them from it :P
07:13:02 <NihilistDandy> [03:11:50] <NihilistDandy> That's odd
07:13:49 <elliott> hahaha
07:13:58 <elliott> yeah the block chains can have like strings in them?
07:14:01 <elliott> so that's just... extracting the strings...
07:14:29 <Sgeo> So, this means luke-jr put a block with Divine Praises in the chain?
07:14:34 <Sgeo> Anyone want to find the block?
07:15:06 <Lymee> Is it even possible to do that?
07:15:11 <elliott> Sgeo: or he just made his own chain
07:15:11 <elliott> duh
07:17:53 <Lymee> Sgeo, ask him "in what language"
07:18:21 <Sgeo> Lymee, you do it?
07:18:25 <elliott> NihilistDandy: What was it with the racism anyway
07:18:27 -!- CakeProphet has joined.
07:18:29 <Sgeo> Oh, you're not on
07:18:33 -!- Taneb has joined.
07:18:35 <Taneb> Hello!
07:19:02 <NihilistDandy> racism is not welcome in #jesus, despite his having the requisite zealousness
07:20:02 <elliott> "I've done haskell for about 5-6 years now" -- person who uses "return $ f $ unsafePerformIO x" in place of "f <$> x"
07:20:08 <elliott> because they think it's more readable
07:20:30 <copumpkin> ಠ_ಠ
07:20:51 <Taneb> I've done Haskell for... two hours maybe?
07:20:59 <Taneb> And I have no idea what either of them do
07:21:00 <elliott> copumpkin: can you ban them with your mod powers............................
07:21:03 <elliott> i cant deal........
07:21:39 <NihilistDandy> elliott: Wait, what?
07:21:53 <copumpkin> elliott: I'm not sure what to make of that guy
07:21:55 <NihilistDandy> /r/haskell?
07:22:04 <elliott> NihilistDandy: Yeah
07:22:08 <NihilistDandy> Link?
07:22:09 <elliott> copumpkin: bad person :(
07:22:15 <CakeProphet> Taneb: <$> is another name for fmap, which is the single method defined by the Functor typeclass.
07:22:19 <elliott> NihilistDandy: http://www.reddit.com/r/haskell/comments/jarp0/hi_guys_i_made_a_haskell_to_clojure_translator/ WARNING FLAMMABLE....................................................................
07:23:12 <CakeProphet> Taneb: for lists, fmap is equivalent to map. For most other monads, it does a similar "lifting" operation, changing a function of type a -> b to type f a -> f b
07:23:28 <NihilistDandy> "It would be a good idea for me to actually use the type system in this project though"
07:23:29 -!- Nisstyre has joined.
07:23:33 <NihilistDandy> MY MIND
07:23:36 <CakeProphet> lol
07:23:40 <CakeProphet> how do you not use the type system?
07:23:51 <NihilistDandy> this person hurts my soul
07:23:54 <NihilistDandy> BAD MAN
07:23:56 <elliott> newtype LC = LC (LC -> LC)
07:24:00 <elliott> enjoy typeless.......
07:24:11 <CakeProphet> Taneb: make sense?
07:24:13 <CakeProphet> lol
07:24:22 <Taneb> Sort of...
07:24:30 <CakeProphet> I mean, you know how map works right?
07:24:36 <Taneb> Yeah
07:24:38 <NihilistDandy> And he can't even git correctly
07:24:50 <Taneb> Applies a function over every member of the list
07:24:54 <Sgeo> NihilistDandy, Jason?
07:25:12 <NihilistDandy> Sgeo: No, this person on /r/haskell
07:25:15 <elliott> Taneb: a Functor f has the function fmap :: (a -> b) -> f a -> f b
07:25:17 <elliott> Taneb: the rules are:
07:25:19 <CakeProphet> if you just say "map f" then you've lifted the function to a parametric type, in this case being []. So f, whose type was a -> b, is now lifted to the type f a -> f b, where f, in this specific case, is []
07:25:20 <elliott> Taneb: fmap f . fmap g = fmap (f . g)
07:25:22 <elliott> Taneb: fmap id = id
07:25:23 <elliott> as in
07:25:26 <elliott> fmap id x = id
07:25:27 <elliott> and
07:25:31 <CakeProphet> fmap is the more general form of map. Where f can be any instance of the Functor typeclass.
07:25:32 <elliott> fmap f (fmap g x) == fmap (f . g)
07:25:36 <elliott> do you know what . is?
07:25:38 <elliott> Taneb: That's all there is to know
07:25:57 <NihilistDandy> And why on earth would you translate Haskell to Clojure? Those words almost don't make sense when you say them all together like that.
07:25:58 <elliott> literally anything that satisfies those laws is a functor
07:26:07 -!- pikhq_ has joined.
07:26:09 <elliott> and you don't need any analogies to understand it :)
07:26:16 <CakeProphet> though they tend to help.
07:26:25 <pikhq_> Y'know how I know this person used commit -a?
07:26:36 <elliott> CakeProphet: really? most monad tutorials make people completely confused for weeks.
07:26:40 <NihilistDandy> Are functors a monoid?
07:26:42 <elliott> the functor laws are really simple.
07:26:49 <elliott> NihilistDandy: no
07:27:35 <pikhq_> CakeProphet: Y'know, a really awesome git tutorial would be a series of posts on *implementing git*.
07:27:54 <copumpkin> endofunctors form a nice monoidal category :)
07:27:57 <pikhq_> CakeProphet: Maybe people like this person would be able to actually grasp it after that.
07:28:07 <NihilistDandy> Ah, right, no associative binary operator
07:28:08 <NihilistDandy> Silly me
07:28:13 <pikhq_> Or maybe not, since he's not "using the type system".
07:28:19 <CakeProphet> I have found that analogies can be helpful as well as just listing laws and definitions.
07:28:50 <CakeProphet> in some cases the laws can be obtuse and not very enlightening if you don't already know how to understand what they reveal.
07:28:52 <NihilistDandy> Well, wait… mwh
07:28:55 <NihilistDandy> *meh
07:29:03 <NihilistDandy> Too tired. Have to be up in two hours
07:29:05 <elliott> I'm still scared of that unsafeperformIO
07:29:11 <elliott> it's not like fromJust............................ it's like a hammer.................
07:29:12 -!- pikhq has quit (Ping timeout: 250 seconds).
07:29:13 <elliott> ok maybe it is like fromJust
07:29:13 <NihilistDandy> Later
07:29:19 <elliott> but that's fromJust's fault, not unsafePerformIO's unfault
07:29:24 <CakeProphet> ...
07:29:38 <CakeProphet> Taneb: have you learned about Maybe?
07:29:45 <pikhq_> I'd argue fromJust is safer than unsafePerformIO.
07:29:53 <copumpkin> yeah
07:29:56 <CakeProphet> fromJust is as safe as head.
07:30:02 <elliott> yeah but head isn't safe either
07:30:03 <elliott> :)
07:30:04 <Patashu> unsafeCrashProgram
07:30:04 <copumpkin> with unsafePerformIO, I can cause segfaults
07:30:05 <Patashu> someone make this
07:30:07 <CakeProphet> elliott: well, right.
07:30:13 <elliott> copumpkin: yeah but how wide is the gap :)
07:30:27 <copumpkin> one can conceivably be caught
07:30:27 <copumpkin> the other can't
07:30:29 <CakeProphet> unless you use GADTs, but then your list type becomes a bit wordier.
07:30:42 <elliott> copumpkin: I never said they were literally equal :-P
07:30:54 <pikhq_> elliott: unsafePerformIO $ Foreign.Storable.peek nullPtr
07:30:59 <pikhq_> :D
07:31:11 <copumpkin> oh, I meant even without foreign stuff
07:31:18 <copumpkin> you can write unsafeCoerce with unsafePerformIO
07:31:22 <copumpkin> and then do your evil coercions
07:31:23 <elliott> yeah
07:31:27 <pikhq_> copumpkin: Mmm, yeah, unsafeCoerce manages that.
07:31:30 <CakeProphet> I've never quite understood the purpose of unsafeCoerce...
07:31:32 <elliott> technically unsafeperformio is foreign stuff though
07:31:37 <elliott> CakeProphet: i've used it
07:31:37 <elliott> legitimately
07:31:42 <pikhq_> CakeProphet: It's beating the type system into compliance.
07:31:42 <CakeProphet> like, what does it... do.
07:31:49 <CakeProphet> nothing right?
07:31:49 <elliott> CakeProphet: nothing
07:31:50 <pikhq_> unsafeCoerce :: a -> b
07:31:51 <CakeProphet> okay.
07:31:53 <elliott> it's a nop
07:31:59 <elliott> I mean, in GHC
07:32:00 <CakeProphet> at runtime anyways.
07:32:02 <elliott> right.
07:32:11 <CakeProphet> okay, that's... weird.
07:32:18 <CakeProphet> what happens if you use it badly?
07:32:22 <pikhq_> Segfault.
07:32:28 <CakeProphet> ah, lovely.
07:32:36 <CakeProphet> when would you use it legitimately?
07:32:45 <elliott> when the type system is too dumb
07:32:54 <elliott> (if you don't know exactly when you need it, you are not allowed to use it)
07:33:04 <CakeProphet> ah, so when elliott is trying to abuse Haskell.
07:33:13 <CakeProphet> is when it is permissible.
07:33:20 <pikhq_> It's a "beat the runtime into compliance" button.
07:33:27 <elliott> CakeProphet: Yes. You are banned for life.
07:34:19 <pikhq_> "I've done haskell for about 5-6 years now" and he doesn't grok monads.
07:34:20 <pikhq_> Shit.
07:34:27 -!- mustelo has joined.
07:34:28 <CakeProphet> lol
07:34:29 <pikhq_> That's genuinely scary.
07:34:38 <coppro> who is this?
07:34:47 <CakeProphet> some random guy. not worth the trouble, probably.
07:34:54 <coppro> BURN HER
07:35:24 <pikhq_> Also doesn't know git well (or at all).
07:35:35 <CakeProphet> so would this break? unsafeCoerce (a :: Char) :: Word8
07:35:47 <pikhq_> That would break on GHC.
07:35:56 <CakeProphet> since Char represents Unicode characters right?
07:36:02 <pikhq_> I think unsafeCoerce (a :: Char) :: Word32 would work, though.
07:36:13 <pikhq_> It's doing UTF-32.
07:36:18 <CakeProphet> ah okay.
07:36:26 <CakeProphet> but there's probably already a way to do that
07:36:34 <shachaf> It depends on what "break" means, I suppose.
07:36:48 <CakeProphet> the meaning of "break" is quite straightforward...
07:36:52 <pikhq_> Yeah, I don't think it'd actually segfault, it'd just do something strange.
07:36:57 <shachaf> I doubt treating something as a Word8 would segfault.
07:37:12 <pikhq_> Probably like casting from int to char, actually.
07:37:21 <CakeProphet> yes that's what I would imagine.
07:42:06 <CakeProphet> > fmap (==2) (Just 3) --Taneb
07:42:07 <lambdabot> Just False
07:42:19 <CakeProphet> > fmap (==2) Nothing --Taneb
07:42:20 <lambdabot> Nothing
07:42:43 <Patashu> > Just "War"
07:42:44 <lambdabot> Just "War"
07:42:47 <Patashu> :smug:
07:42:53 <Taneb> Hmm
07:43:02 <Patashu> didn't know haskell was so politically motivated!!
07:43:38 <elliott> Taneb: do you know what . is that is the KEY TO UNDERSTANDING WHAT I SAID.........
07:44:05 <Taneb> Is that like "returns"
07:44:14 <elliott> um
07:44:14 <elliott> ok
07:44:20 <Patashu> . is 'wrap the function on the left around the function on the right'
07:44:21 <Patashu> kinda
07:44:30 <elliott> Taneb: a Functor f has the function fmap :: (a -> b) -> f a -> f b
07:44:31 <elliott> now
07:44:32 <Patashu> it's like brackets except you're not writing all the brackets
07:44:34 <elliott> a Functor has to follow these rules
07:44:47 <elliott> fmap f (fmap g x) = fmap (\y -> f (g y)) x
07:44:50 <elliott> fmap id x = x
07:44:53 <elliott> that's it
07:44:57 <elliott> Patashu: no.
07:45:00 <elliott> Patashu: that's dollar sign.
07:45:07 <elliott> stop confusing my student >:D
07:45:13 <Patashu> so what's . then?
07:45:14 <elliott> <elliott> Taneb: a Functor f has the function fmap :: (a -> b) -> f a -> f b
07:45:14 <elliott> <elliott> now
07:45:14 <elliott> <elliott> a Functor has to follow these rules
07:45:14 <elliott> <elliott> fmap f (fmap g x) = fmap (\y -> f (g y)) x
07:45:14 <elliott> <elliott> fmap id x = x
07:45:15 <elliott> <elliott> that's it
07:45:19 <elliott> Taneb: literally anything that follows these rules is a Functor
07:45:19 <CakeProphet> elliott: I think it would be easier to explain that . is function composition, instead of rewriting everything as lambdas.
07:45:26 <elliott> Taneb: for instance, you know Maybe?
07:45:33 <elliott> Maybe is a functor: fmap :: (a -> b) -> Maybe a -> Maybe b
07:45:46 <elliott> if the maybe value is (Just a), then we do (Just (f a))
07:45:48 <CakeProphet> Taneb: . is function composition, by the way.
07:45:51 <elliott> otherwise, the result is just Nothing
07:45:59 <elliott> this satisfies all the laws (you can check it yourself)
07:46:10 <elliott> Taneb: lists are functors, obviously -- (a -> b) -> [a] -> [b]
07:46:17 <elliott> ([a] is just sugar for [] a)
07:46:20 <elliott> (so f = [])
07:46:21 <elliott> aaand
07:46:21 <elliott> that's it
07:46:28 <Taneb> Maybe
07:46:29 <elliott> or just read the chapter in learn you a haskell :P
07:46:40 <CakeProphet> data Maybe t = Just t | Nothing
07:46:53 <elliott> CakeProphet: Nothing | Just t actually.
07:47:00 <CakeProphet> ...does that make a difference?
07:47:12 <elliott> Yes.
07:47:12 <CakeProphet> ah, for deriving Ord and such?
07:47:20 <elliott> Yes.
07:48:45 <Taneb> No, I don;t
07:49:05 <CakeProphet> Taneb: you use Maybe t when there's a possibility that you might have Nothing instead of something of type t. Nothing is similar to "null" in other languages, except it's explicitly wrapped in a data type.
07:49:15 <elliott> Taneb: You might just want to read LYAH, dude
07:49:24 <elliott> It'll be quicker than me and CakeProphet fighting over who can explain things the worst
07:49:27 <CakeProphet> lol
07:49:29 <elliott> Overlappingly :P
07:49:42 <Patashu> LYAH is lengthy but it's good
07:49:48 <Patashu> I mean you can't explain haskell consisely
07:49:50 <CakeProphet> hey you can assault him with formal definitions and I can provide analogy. It'll be a winning combination.
07:49:50 <elliott> lengthy??///
07:50:01 <elliott> it is fourteen chapters long
07:50:16 <elliott> RWH is twenty-eight
07:50:22 <elliott> although it covers a lot more and is good reading after LYAH
07:52:02 <CakeProphet> the null analogy was good, right? :( :( :(
07:52:05 <CakeProphet> lol
07:52:35 -!- cheater_ has quit (Ping timeout: 255 seconds).
07:52:41 <Taneb> So, Nothing is like null, but proper?
07:52:53 <elliott> It's misleading because Nothing is not a value of every type.
07:52:58 <CakeProphet> kind of, you have to also wrap everything in the Just constructor
07:52:59 <elliott> It's best to forget null and learn Maybe later.
07:52:59 <CakeProphet> right.
07:53:13 <CakeProphet> Nothing is only a value of type Maybe t.
07:53:26 <CakeProphet> and Just 2 has type Maybe Int
07:53:32 <CakeProphet> er
07:53:32 <CakeProphet> well
07:53:35 <CakeProphet> yeah, not Int.
07:53:40 <Patashu> know what haskell needs? bitcoins.
07:53:45 <CakeProphet> Just 'a' has type Maybe Char
07:53:55 <elliott> Patashu: bticons
07:53:58 <elliott> with prop hets,,,
07:53:59 <coppro> This is one case where qualification makes more clear
07:54:08 <coppro> Nothing is of type forall t. Maybe t
07:54:22 <CakeProphet> uh, if you say so.
07:55:01 <CakeProphet> Taneb: so for example, [Just 2, Just 4, Nothing, Just 5] is a valid list, but [2, 4, Nothing, 5] is a type error.
07:55:11 <Taneb> Oh, okay
07:55:36 <elliott> Taneb: read lyah read lyah read lyah
07:55:58 <Taneb> Once I've finished House of Leaves
07:56:01 <pikhq_> Taneb: LYAH
07:56:51 <CakeProphet> > fix ("LYAH " ++)
07:56:52 <lambdabot> "LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH LYAH...
07:56:59 <monqy> lyah
07:57:07 <monqy> about what are we talking, now?
07:57:20 <Patashu> > fix ("learn you a " ++) ++ "haskell"
07:57:21 <lambdabot> "learn you a learn you a learn you a learn you a learn you a learn you a le...
07:57:24 <monqy> Taneb wants to learn himself a Haskell, I take it
07:58:06 <CakeProphet> for great good, most likely.
07:58:13 <coppro> CakeProphet: are you aware of repeat
07:58:19 <CakeProphet> of course.
07:58:23 <CakeProphet> I just like fix.
07:58:26 <CakeProphet> also repeat is not what I wanted.
07:58:28 <CakeProphet> more like cycle.
07:58:46 <coppro> yeah, repeat's the more specific one though
07:58:53 <Patashu> > take 500 (cycle "learn you a ")
07:58:54 <lambdabot> "learn you a learn you a learn you a learn you a learn you a learn you a le...
07:59:05 <pikhq_> Now that that's estabilished, C418's Minecraft - Volume Alpha is wonderful.
07:59:29 <CakeProphet> coppro: what do you mean the more specific one?
07:59:38 <elliott> pikhq_: didn't you listen to it when it came out............................
08:00:26 <CakeProphet> repeat a = fix (a:); cycle a = fix (a ++)
08:00:28 -!- Taneb has quit (Ping timeout: 252 seconds).
08:00:39 <CakeProphet> if I wanted cycle from repeat, I would have to say join . repeat
08:00:57 <CakeProphet> which is less specific... I think? I'm still not sure what you mean by that.
08:00:58 <pikhq_> elliott: When it came out I didn't play Minecraft.
08:01:04 <elliott> pikhq_: true....
08:01:09 <coppro> @src cycle
08:01:09 <lambdabot> cycle [] = undefined
08:01:09 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
08:01:18 <elliott> :t fix . mplus
08:01:19 <lambdabot> forall (m :: * -> *) a. (MonadPlus m) => m a -> m a
08:01:24 <elliott> gah which one is monoid again :)
08:01:26 <elliott> ?src Monoid
08:01:26 <lambdabot> class Monoid a where
08:01:26 <lambdabot> mempty :: a
08:01:26 <lambdabot> mappend :: a -> a -> a
08:01:26 <lambdabot> mconcat :: [a] -> a
08:01:37 <elliott> > (fix . mappend) (\x -> 'a':x)
08:01:37 <lambdabot> Overlapping instances for GHC.Show.Show
08:01:37 <lambdabot> ([GHC....
08:01:40 <elliott> > (fix . mappend) (\x -> 'a':x) []
08:01:41 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
08:01:43 <monqy> a
08:01:46 <coppro> lol
08:01:46 <elliott> nice function instance
08:02:14 <elliott> > (fix . mappend) (fix . mappend)
08:02:15 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
08:02:15 <lambdabot> arising from a use of `...
08:02:20 <elliott> > (fix . mappend) (fix . mappend) (\x -> 'a':x ++ "b") []
08:02:21 <lambdabot> "ababababababababababababababababababababababababababababababababababababab...
08:02:25 <elliott> oh
08:02:26 <elliott> beautiful...
08:02:30 <elliott> > (fix . mappend) (fix . mappend) (\x -> 'a':x ++ "b") "a"
08:02:31 <lambdabot> "aabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaa...
08:02:36 <elliott> > (fix . mappend) (\x -> 'a':x) "abc"
08:02:37 <lambdabot> "aabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaa...
08:02:40 <elliott> so beautiful...
08:02:42 <CakeProphet> yes, uh, beautiful. that's the word, elliott.
08:02:44 <CakeProphet> for that.
08:03:12 <elliott> > (fix . mappend) (\x -> pure 'a' `mappend` x) "abc"
08:03:14 <lambdabot> "aabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaabcaa...
08:03:20 <elliott> :t (fix . mappend) (\x -> pure 'a' `mappend` x)
08:03:20 <lambdabot> forall (f :: * -> *). (Monoid (f Char), Applicative f) => f Char -> f Char
08:03:27 <elliott> beautetauetouyoiful...........
08:03:44 <CakeProphet> yes, so many ways to spam. generally.
08:04:44 -!- cheater_ has joined.
08:05:31 <monqy> > "abc" >>- (fix . mappend . return)
08:05:33 <lambdabot> "abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacab...
08:05:48 <elliott> sOB EUATEIFUL
08:05:54 <CakeProphet> interleavened like bread.
08:05:58 <coppro> //win 6
08:06:42 <CakeProphet> it appeals to my sense of baking.
08:06:59 <pikhq_> > "abc" >>- (fix . mappend . pure)
08:07:00 <lambdabot> "abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacab...
08:07:02 <pikhq_> Now with less typing.
08:07:34 <CakeProphet> that String sure is constraining.
08:07:50 <CakeProphet> > fromString "abc" >>- (fix . mappend . pure)
08:07:51 <lambdabot> Not in scope: `fromString'
08:08:11 <monqy> overloadedstrings?
08:08:44 <elliott> monqy: DONT REMIND HIM
08:08:50 <CakeProphet> I never forgot.
08:09:08 <CakeProphet> hey, like I said, they should have known better when they made it an extension.
08:09:15 <monqy> dead
08:09:16 <monqy> dead
08:09:24 <CakeProphet> they are naive.
08:09:41 <CakeProphet> to the perverse machinations of dark wizard programmers.
08:10:14 <monqy> but overloadedstrings abuse is so
08:10:15 <monqy> boring
08:10:21 <monqy> why not abuse something fun
08:10:36 <monqy> at the least
08:10:43 <pikhq_> CakeProphet: You shouldn't be a dark wizard programmer.
08:10:52 <CakeProphet> what could be more fun than arbitrary and unsafe programming language interpretation?
08:11:07 <pikhq_> Writing good, clean code that functions correctly.
08:11:32 <monqy> writing a monad instance that doesn't obey the monad laws
08:11:47 <CakeProphet> but Haskell could sorely use a Sh newtype with an IsString instance...
08:12:53 <CakeProphet> hey it would even be safe and return the error output upon unsuccessful execution!
08:13:28 <monqy> "safe"
08:14:06 <monqy> what if it did bad things first....
08:14:19 <monqy> besides, runtime errors are awful
08:14:27 <CakeProphet> I don't understand this notion of "bad"
08:14:32 <monqy> "don't be stupid catch things at compile time"
08:14:38 <CakeProphet> and besides, don't think of as runtime error, just unexpected output!
08:48:27 <fizzie> "Don't think of it as a runtime error, think of it as a surprise birthday party."
09:09:25 -!- Phantom_Hoover has joined.
09:15:04 -!- derrik has joined.
09:18:44 -!- nooga has joined.
09:28:48 -!- MigoMipo has joined.
09:28:54 -!- derrik has left.
09:29:31 -!- monqy has quit (Quit: hello).
09:51:13 -!- mrcrabs has joined.
09:56:10 -!- mrcrabs has quit (Ping timeout: 260 seconds).
10:08:10 -!- Taneb has joined.
10:09:37 <Taneb> Well, now there are two MSPAFA's in the MSPA Forums called PixelQuest
10:09:51 <Taneb> At least
10:11:08 <Lymee> @pl \maxIters c = len $ takeWhile (\x -> (magnitude x)<2) $ take maxIters $ iterate (\x -> x*x+c) $ 0 :+ 0
10:11:08 <lambdabot> (line 1, column 13):
10:11:08 <lambdabot> unexpected "="
10:11:08 <lambdabot> expecting pattern or "->"
10:11:13 <Lymee> @pl \maxIters c -> len $ takeWhile (\x -> (magnitude x)<2) $ take maxIters $ iterate (\x -> x*x+c) $ 0 :+ 0
10:11:13 <lambdabot> ((len . takeWhile ((< 2) . magnitude)) .) . (. flip (iterate . (. join (*)) . (+)) (0 :+ 0)) . take
10:11:16 <Taneb> ...Can someone explain the Brane theory to me?
10:14:33 <elliott> there are breanes,, but sometimes they dont think
10:14:35 <elliott> the ned???
10:15:16 <Lymee> @hoogle unsafeCoerceIO
10:15:16 <lambdabot> No results found
10:15:30 <Lymee> @hoogle IO a -> a
10:15:30 <lambdabot> Foreign unsafePerformIO :: IO a -> a
10:15:30 <lambdabot> Data.ByteString.Internal inlinePerformIO :: IO a -> a
10:15:30 <lambdabot> System.IO.Unsafe unsafePerformIO :: IO a -> a
10:15:37 <Lymee> Oh wrong name
10:16:09 * Lymee is not using it
10:16:13 * Lymee nope
10:16:15 <Phantom_Hoover> Taneb, it's... generally best to let physics well alone unless you're trying to actually learn it.
10:16:49 <Phantom_Hoover> You run the risk of ending up with an understanding of things which isn't really true, but more understandable.
10:17:05 -!- elliott has quit (Read error: Connection reset by peer).
10:17:05 <Taneb> For this, that is exactly what I need
10:17:31 -!- elliott has joined.
10:18:31 <Phantom_Hoover> Taneb, in which case it seems to be along the lines of "there are objects called branes and other objects are really just branes in disguise."
10:19:11 <elliott> brane wearing a moustache
10:19:30 <Phantom_Hoover> elliott, will suggest to Stephen Hawking for his next book.
10:19:42 <elliott> stephen moustacheking
10:19:46 <elliott> a brane
10:19:49 <Phantom_Hoover> (Universe in a Nutshell is full of quirky little illustrations like that.)
10:22:21 <elliott> I really think we need to ban the word "quirky".
10:22:36 <Taneb> I disagree
10:22:55 <elliott> I don't
10:23:04 <Phantom_Hoover> elliott, no, we need to ban terrible people from using it and ruining it for the rest of us.
10:23:15 <elliott> It is already ruined
10:23:21 <Taneb> It can be restored
10:23:25 <Taneb> To its former glory
10:43:38 <Phantom_Hoover> I think flange might be my favourite word.
10:45:06 <Phantom_Hoover> "Fascism is anti-anarchist, anti-communist, anti-conservative, anti-democratic, anti-individualist, anti-liberal, anti-parliamentary, anti-bourgeois and anti-proletarian."
10:45:33 <Phantom_Hoover> How do you hate the bourgeoisie *and* the proletarians?
10:50:17 <Patashu> Fascism is anti-fascism
10:50:19 <Patashu> Like the cos function
10:53:29 <Taneb> Or a photon
10:56:40 <Phantom_Hoover> http://www.youtube.com/watch?v=kD0EztnNOhk
10:56:41 <Phantom_Hoover> XD
10:57:01 <Phantom_Hoover> Taneb, so wait, fascism is a Majorana ideology?
11:01:49 <Taneb> Perhaps
11:05:13 <Taneb> brb
11:09:41 -!- Taneb has quit (Ping timeout: 255 seconds).
11:21:49 <Phantom_Hoover> http://www.youtube.com/user/ThePhantomHoover
11:21:51 <Phantom_Hoover> whaaaaaaat
11:25:39 -!- derrik has joined.
11:26:39 -!- MSleep has changed nick to MDude.
11:27:09 <Phantom_Hoover> Argh, I now have a hit on ESR's website WHAT HAVE I BECOME
11:27:32 -!- itidus20 has quit (Ping timeout: 250 seconds).
11:32:30 -!- itidus20 has joined.
11:34:01 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
11:36:57 -!- elliott has quit (Ping timeout: 258 seconds).
11:39:42 -!- Taneb has joined.
11:48:37 <Phantom_Hoover> `quote
11:48:41 <HackEgo> 5) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them.
11:53:41 -!- FireFly has joined.
11:56:13 <Phantom_Hoover> "The recent 'Halo' game has an interesting perspective on the construction of ringworlds. Instead of making it massive enough to encircle a star, make it the same diameter as earth. Here is my idea:
11:56:13 <Phantom_Hoover> "
11:56:15 <Phantom_Hoover> C2
11:56:17 <Phantom_Hoover> YOU IDIOTS
11:56:19 <Phantom_Hoover> HALO
11:56:26 <Phantom_Hoover> WAS EXPLICITLY INSPIRED
11:56:31 <Phantom_Hoover> BY BANKS' ORBITALS
12:00:39 -!- cheater__ has joined.
12:03:04 -!- cheater_ has quit (Ping timeout: 250 seconds).
12:07:02 <Phantom_Hoover> Huh, there are 3 different banks in Scotland which print banknotes.
12:07:13 <NihilistDandy> It's not unreasonable to think of recursion and induction as equivalent, is it?
12:07:20 <NihilistDandy> Phantom_Hoover: How many of them have orbitals?
12:07:39 <Phantom_Hoover> NihilistDandy, dunno, but RBS has pretty snazzy headquarters.
12:08:26 <coppro> NihilistDandy: induction is effectively recursive logic
12:08:46 <NihilistDandy> Good, then. I'm glad I haven't just been imagining that
12:09:18 <Phantom_Hoover> NihilistDandy, suggest you look into Coq.
12:09:43 <NihilistDandy> That's my plan. Agda, too, but mostly just for shits and giggles
12:10:22 <Phantom_Hoover> Hmm, apparently Scotland doesn't have legal tender at all.
12:10:33 <NihilistDandy> Maybe I'll have a run through Concrete Mathematics to test them out
12:11:24 <Phantom_Hoover> Wow, NI has 4 kinds of note.
12:15:41 <Phantom_Hoover> http://upload.wikimedia.org/wikipedia/commons/f/f7/Roman-calendar.png
12:15:47 <Phantom_Hoover> This... this is the best calendar.
12:23:40 <olsner> nice, they had leap months too
12:30:19 <Taneb> My attempt to make lambda calculus easy in BYOB is working!
12:30:46 <Phantom_Hoover> BYOB?
12:30:58 -!- NihilistDandy has quit (Quit: Back later).
12:31:43 <Taneb> Modification of a programming language aimed at children with the purpose of educating about first-class functions, recursions, etc. for people aged 7-12
12:32:08 <Phantom_Hoover> You mean that crappy Scratch thing?
12:32:15 <Taneb> Yep
12:32:28 <Phantom_Hoover> (I was turned against Scratch waaay back.)
12:32:34 <Taneb> Why?
12:32:48 <Phantom_Hoover> I was given the option between learning Pascal, and learning Scratch.
12:32:53 <Taneb> Fair enough
12:33:06 <Phantom_Hoover> Scratch forced me into the arms of Pascal. I can never forgive it.
12:34:36 <Taneb> Oddly, Scratch is descended from Lisp
12:35:17 <Taneb> Bears no resembalence to it
12:39:29 <Taneb> Well, I've just cocked it up big time
12:40:14 <Phantom_Hoover> Yes. Yes you have.
12:42:38 -!- derrik has joined.
12:42:41 <Patashu> I hosted a java enterprise BYOB party. Bring Your Own Beans
12:43:01 <Phantom_Hoover> Taneb, out of curiosity, what did you cock up?
12:44:14 -!- derrik has left.
12:44:19 <Taneb> BYOB
12:44:25 <Taneb> It froze
12:44:45 <Taneb> When I tried to evaluate something
12:50:44 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/jbhpp/how_does_one_program_a_programming_language/
12:52:07 <Taneb> Not the stupidest of questions
12:52:46 <Gregor> But close!
12:53:53 <Patashu> How about 'how do you compile a compiler'
12:54:20 <Phantom_Hoover> There's an answer dealing with it but... it refers to C++ as a high-level language.
12:55:02 <Patashu> Compared to punch cards it's very high level
12:55:31 <Patashu> Punch cards being a higher level than manual configuration
12:55:45 <olsner> punch cards are just an input method, not a language
12:55:53 <olsner> put C++ on punch cards, you still have C++
12:56:16 <Patashu> why doesn't my computer have a punch card reader? this is outrageous
12:56:19 <Patashu> it can't even read a floppy
12:57:15 <olsner> do you have a scanner? just put some black paper behind the card, scan it, then read the blacks and whites from the picture
12:57:27 <Patashu> haha
12:57:28 <olsner> (assuming white punch cards)
12:58:21 <Patashu> But how will I emulate the ability of a lace card to jam it then
17:00:11 -!- esowiki has joined.
17:00:12 -!- glogbot has joined.
17:00:13 -!- EgoBot has joined.
17:00:23 <Phantom_Hoover> Finally.
19:08:37 -!- esowiki has joined.
19:08:37 -!- glogbot has joined.
19:08:38 -!- glogbackup has left.
19:08:40 -!- HackEgo has joined.
19:08:41 -!- EgoBot has joined.
19:09:07 -!- Gregor has joined.
19:09:16 -!- Gregor has changed nick to Guest69881.
19:16:44 -!- Taneb has joined.
19:16:46 <Taneb> Hello!
19:17:08 <zzo38> Good day
19:27:12 <zzo38> I have these 3D movie glasses, I realized that when looking at the computer screen through it, it changes the color based on not only the angle but also whether or not it is backwards
19:28:14 <zzo38> Forwards the angle changes yellow/blue. Backwards the angle changes light/dark. (This is even without wearing the glasses)
19:28:47 -!- oerjan has joined.
19:33:18 <Taneb> Polaroid glasses, I presume?
19:36:18 -!- ais523 has joined.
19:36:50 -!- monqy has joined.
19:37:02 <ais523> today I did something I should have done ages ago
19:37:05 <ais523> I mapped Caps Lock to Compose
19:37:26 <Deewiant> Do you use Compose enough to make that worthwhile?
19:38:33 <ais523> no, but only because I don't have a Compose key
19:38:43 <ais523> I expect I will now, I type nonASCII characters quite a lot
19:39:03 <ais523> although, annoyingly, KDE programs don't seem to respect the keybinding
19:41:39 <ais523> I probably need to add new compositions to it, though
19:41:47 <ais523> it seems a little short on things like mathematical characters
19:42:12 <zzo38> I got a mirror to see what can be done with the 3D movie glasses, the computer screen, and the mirror, together.
19:49:06 <Phantom_Hoover> ais523, wait, you didn't use something to the right of the spacebar?
19:49:29 <ais523> I have backslash, menu, and control there
19:49:33 <ais523> I considered mapping it to menu
19:49:45 <ais523> but I actually use that one sometimes
19:52:29 <fizzie> Caps-lock to control is a traditional remapping.
19:52:38 <fizzie> That would free control for compose.
19:52:51 <ais523> but I find control in a more convenient place than caps lock
19:53:43 <fizzie> So do I, but presumably many people think capslock is easier to reach.
19:54:20 <ais523> it's because most people keep their fingers on the home row, and caps lock is quite easy to reach from there
19:54:30 <zzo38> Then where do you want caps lock to be?
19:57:46 <Deewiant> I've swapped caps lock and backspace
19:58:36 <ais523> interesting
19:58:44 <ais523> I suppose backspace is a bit of a long way away
19:59:02 <ais523> but normally when I'm pressing backspace, it's because I've made a typo, so I need to stop and recentre my fingers anyway
19:59:23 <Deewiant> I also have a Japanese keyboard so my backspace is smaller
19:59:34 <pikhq_> And your space is teensy.
19:59:35 <Deewiant> But I did the switch before getting such a keyboard anyway
20:00:06 <Deewiant> The space bar is fine, its edges are right where I always hit it
20:00:43 <pikhq_> Y'mean you always hit it under v or n? You have freakish hands.
20:01:01 <ais523> my spacebar goes from halfway past c to n
20:01:06 <ais523> halfway along
20:01:18 <pikhq_> ais523: Japanese keyboards have extra keys on that row, so the space bar is tiny.
20:01:22 <Deewiant> It's from halfway along c to halfway along m here
20:01:30 <Deewiant> Or thereabouts
20:01:30 <zzo38> I think in some keyboard the "rub out" key is in the home row for that purpose
20:01:32 <pikhq_> Like, reaching from half of v to half of n. tiny.
20:01:32 <ais523> pikhq_: this keyboard has ` and \ on that row
20:01:45 <ais523> as well as two alts, two controls, menu, fn, and super
20:01:46 <ais523> and the arrow keys
20:02:25 <pikhq_> http://upload.wikimedia.org/wikipedia/commons/2/21/MacBookProJISKeyboard-1.jpg
20:02:32 <pikhq_> That has a *generously large* spacebar.
20:03:02 <Deewiant> That's a tiny keyboard
20:03:10 <pikhq_> It's a laptop keyboard.
20:03:21 <Deewiant> Yep
20:03:39 <pikhq_> http://upload.wikimedia.org/wikipedia/commons/2/29/Japanese_keyboards.jpg These ones are a bit more typical.
20:03:56 <copumpkin> you don't use spaces much in japanese
20:04:35 <Deewiant> Mine has this layout http://www.diatec.co.jp/image_prod/FKBN91MCJB2_01.jpg
20:05:12 <pikhq_> copumpkin: The space bar on Japanese computers is used to request IME conversion.
20:05:16 <pikhq_> It's rather extensively used.
20:05:22 <copumpkin> oh
20:05:48 <pikhq_> About as much in English, in fact.
20:07:12 -!- Taneb has quit (Ping timeout: 276 seconds).
20:11:26 <zzo38> If I have five pins: data-in, data-out, clock, power, ground; what is the best way to wire it on a RJ-45 cable?
20:13:15 <zzo38> At a range of 1 to 40 feet
20:19:05 <oerjan> does anyone know of a known name for this modulus branching machine i've been finding when generalizing my 3-cell bf algorithm
20:20:23 <oerjan> let's say it's described by k tuples (a1,b1,c1), ... , (ak,bk,ck), ai > 0, bi >= 0, ci \in {0,1}
20:21:41 <oerjan> and it does f n = case n `divMod` k of (x,i) -> if c i then f (a i * x + b i) else a i * x + b i
20:22:39 <oerjan> (ai and bi are natural numbers)
20:22:50 <oerjan> um *if c i == 1
20:24:33 <oerjan> basically each step does a linear function dependent on the modulus, and may halt or not
20:27:40 <oerjan> it's obviously too simple not to have been invented before, but i don't find any promising search results
20:28:30 <oerjan> also, why is there swedish sex spam on the wiki.
20:29:08 <zzo38> Do you know answers of my question?
20:29:31 <oerjan> no one knows any answers here.
20:29:38 <oerjan> evidence: see above
20:31:06 <zzo38> Which channel do they know the answers?
20:33:35 <oerjan> i'm afraid we don't know the answer to that either. #omniscience appears to be empty.
20:35:57 <Sgeo_> http://www.archive.org/details/Tags12345-ATHEISMISSOFOOLISH922-2
20:36:48 <ais523> zzo38: I don't think there is a best way to wire an RJ-45 cable like that, because it's not intended for that sort of signal and doesn't have dedicated power lines
20:36:59 <ais523> all eight of its wires are identical, and the pinout won't be compatible no matter what you do
20:37:01 <zzo38> My idea is so that it can work with common network cables even though the protocol (and maybe even the power) is different.
20:37:06 <ais523> so you may as well just use an arbitrary assignment
20:37:20 <ais523> it won't work with common network cables, because RJ-45 doesn't have a clock line nor power lines
20:37:35 <zzo38> Would it be better to pair certain signals?
20:37:36 <ais523> and it uses twisted pair logic levels
20:38:46 <zzo38> I know. However such cables are just very common, which is why I want to use them. It is not intended to be connected to any network device
20:39:43 <ais523> you aren't going to be able to be compatible, and you aren't using paired logic levels
20:39:55 <ais523> I'd say, put data-in, data-out, clock all in different pairs, to try to avoid crosstalk
20:40:10 <ais523> and then put power in the fourth, and connect ground to the other side of all four of them
20:40:20 <ais523> that'll mostly prevent the manufacture of the cable hurting
20:40:39 <zzo38> Thanks for the idea. OK.
20:41:10 <ais523> you're not going to get 40 feet like that unless the clock rate is pretty slow, though
20:41:19 <ais523> nor any other way
20:41:36 <zzo38> How slow? I don't need it very fast, so maybe it is OK.
20:41:52 <ais523> bleh, I'm no good at that calculation
20:41:56 <ais523> kilohertz are probably OK, though
20:42:03 <ais523> at a guess
20:42:14 <ais523> megahertz, I have no idea
20:42:41 <zzo38> I doubt I need more than 4 kHz, and even that might be faster than I need.
20:43:01 <ais523> then you'll probably be OK
20:45:50 <zzo38> OK thanks for information
20:55:40 <oerjan> :t (mappend.($))
20:55:50 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
20:56:34 <Sgeo_> Has Diaspora fixed its security issues yet?
20:57:25 -!- copumpkin has changed nick to tater.
20:57:31 -!- tater has changed nick to copumpkin.
20:59:13 -!- mtve has joined.
21:11:51 <cheater__> zzo38, you'll take each of the leads (data in, data out, clock, power) on a separate pair each, and then each of those pairs is hooked up to ground
21:12:19 <cheater__> make sure not to put power on the weaker pair (i believe that's brown, there's one pair that is thinner)
21:12:34 <cheater__> you can probably use that for clock then
21:15:59 <fizzie> Since it's almost even on-topic here... there was a rather funky piece of hardware on the next table at this demoparty I was; the "Speccy2010". To quote the summary: "It’s a Spectrum clone developed in the Ukraine, which replicates the original 48 and 128K Spectrums -- built around an FPGA programmable logic chip which can be reflashed with new firmware versions --"; so it's basically a general-purpose FPGA thingie that comes preloaded with a speccy simulator.
21:16:57 <zzo38> cheater__: Thanks for that advice too. (I didn't know there was a weaker pair)
21:17:49 <cheater__> i think they stopped doing that in cat 5e
21:18:58 <fizzie> oerjan: I read your A{80} as an answer to the :t, and thought "well that's a curious type".
21:19:44 <oerjan> it's the type of a lambdabot absence
21:21:01 <zzo38> If you have Haskell installed just use that
21:22:15 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:22:28 <zzo38> Wikipedia has a list of USB device classes. I propose adding class 90h for Plan 9 Protocol.
21:23:12 <oerjan> oh hm
21:23:58 <oerjan> zzo38: no, because i was trying to find out lambdabot's weird mappend instance for functions
21:24:19 <oerjan> i do not believe there is a standard one
21:24:42 <zzo38> oerjan: Is lambdabot difference from standard? Is it possible to download a local version of lambdabot?
21:24:44 <oerjan> otherwise, i could also use EgoBot sometimes
21:25:26 <monqy> mempty is identity function and mappend is function composition?
21:25:32 <oerjan> zzo38: lambdabot has a lot of extra or weird definitions and instances. for example it defines (.) = fmap
21:25:51 <oerjan> monqy: that's what it looked like, but it's not the only possibility
21:26:06 <oerjan> you could also have Monoid b => Monoid (a -> b)
21:26:20 <monqy> hmm
21:26:30 <oerjan> and lambdabot has many other instances of that form, like for Num
21:26:34 <zzo38> But do you know if it is possible to download a local version of the program?
21:27:22 <oerjan> zzo38: oh. yes it is possible to download lambdabot, and i think even to use it from inside ghci. but i've not tried it myself, and istr people complaining that it is awkward sometime in the past
21:27:23 -!- sebbu has quit (Read error: Connection reset by peer).
21:27:46 -!- azaq23 has joined.
21:27:48 <oerjan> also you probably need linux for it
21:28:08 <oerjan> (that's also something istr)
21:29:11 -!- sebbu has joined.
21:29:21 <zzo38> Can it be compiled for Cygwin or other UNIX systems other than Linux?
21:29:40 <oerjan> i don't know. check the online documentation.
21:30:01 <oerjan> (hopefully there is some.)
21:30:37 <oerjan> i think they've reworked some of lambdabot since my #haskell time.
21:32:57 <oerjan> http://www.haskell.org/haskellwiki/Lambdabot
21:33:11 <oerjan> although it looks like it's not up to date on ghc versions
21:33:35 <oerjan> (ghc is on version 7 now)
21:36:22 -!- CakeProphet has quit (Ping timeout: 258 seconds).
21:38:04 -!- CakeProphet has joined.
21:38:14 -!- CakeProphet has quit (Changing host).
21:38:14 -!- CakeProphet has joined.
21:44:18 <zzo38> Lambdabot includes Unlambda and Brainfuck, but does it include Lazy-K?
21:44:37 <oerjan> not unless you make a plugin for it
21:44:42 <oerjan> i should think
21:45:41 <zzo38> Maybe a better question is whether or not it should.
21:46:08 <oerjan> i suspect the unlambda and brainfuck plugins are not that heavily used
21:47:01 -!- CakeProphet has quit (Ping timeout: 260 seconds).
21:47:58 <zzo38> I found a .lhs file that uses .lhs so that it can include a #! line
21:49:36 <zzo38> http://www.augustsson.net/Darcs/Djinn/Setup.lhs
21:50:06 <zzo38> Although from what I have read, I don't think that is valid, because a blank line is required before the > line
21:53:51 -!- NihilistDandy has joined.
21:56:00 -!- NihilistDandy has quit (Client Quit).
22:22:12 -!- micahjohnston has quit (Ping timeout: 276 seconds).
22:31:10 -!- micahjohnston has joined.
22:32:58 -!- MDude has quit (Ping timeout: 252 seconds).
22:35:04 <Sgeo_> Phantom_Hoover, elliott update
22:35:19 <Phantom_Hoover> Oh, what's he up to now?
22:35:33 <oerjan> wat
22:36:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:36:20 <Phantom_Hoover> Sgeo_, c'mon, don't keep oerjan waiting!
22:36:38 <Sgeo_> Phantom_Hoover, my mind is full of fuck
22:38:26 -!- BeholdMyGlory has joined.
22:46:18 -!- variable has quit (Read error: Connection reset by peer).
22:46:31 -!- variable has joined.
22:57:48 -!- Guest69881 has changed nick to Gregor.
23:23:06 -!- micahjohnston has quit (Ping timeout: 260 seconds).
23:26:01 -!- nooga has quit (Ping timeout: 258 seconds).
23:32:00 -!- micahjohnston has joined.
23:32:34 -!- Patashu has joined.
23:41:51 -!- lambdabot has joined.
23:42:03 <oerjan> :t mappend.($)
23:42:09 <lambdabot> forall a b. (Monoid b) => (a -> b) -> (a -> b) -> a -> b
23:42:35 <oerjan> aha so it _was_ the same kind as the Num thing
23:43:52 <oerjan> > mconcat [show . length, head] "test"
23:43:55 <lambdabot> Couldn't match expected type `GHC.Types.Char'
23:43:55 <lambdabot> against inferred type...
23:43:57 <oerjan> erm
23:44:04 <oerjan> oops
23:44:10 <oerjan> > mconcat [show . length, take 1] "test"
23:44:14 <lambdabot> mueval-core: Time limit exceeded
23:44:17 <oerjan> wat
23:44:27 <oerjan> > mconcat [show . length, take 1] "test"
23:44:29 <lambdabot> "4t"
23:46:02 <oerjan> > iterate (mconcat [show . length, take 1] <=< group) "1"
23:46:04 <lambdabot> ["1","11","21","1211","111221","312211","13112221","1113213211","3113121113...
23:46:46 <copumpkin> > iterate (sequence [length, head] <=< group) [1]
23:46:47 <lambdabot> [[1],[1,1],[2,1],[1,2,1,1],[1,1,1,2,2,1],[3,1,2,2,1,1],[1,3,1,1,2,2,2,1],[1...
23:49:21 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:50:14 -!- BeholdMyGlory has joined.
23:51:55 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:52:15 -!- BeholdMyGlory has joined.
23:56:38 <zzo38> Which Computer Modern or AMS symbol should I use to represent the = in Haskell?
23:56:48 <lament> =
23:58:09 <zzo38> I use the equal sign for the Haskell == instead since that is the one testing equality, so == print out using the equal sign.
23:59:14 <ais523> zzo38: you should probably use the define-equal symbol
23:59:24 <ais523> I forget what it's called in the fonts
23:59:29 <ais523> but it looks like an = with "def" or a triangle above it
2011-08-08
00:00:04 <zzo38> OK thanks. Yes, "define-equal" is a good name to describe what = means in Haskell. I will use the = with triangle above it.
00:00:57 <zzo38> OK, I worked it out.
00:01:03 <zzo38> s/out/now/
00:09:20 -!- FireFly has quit (Quit: swatted to death).
00:10:20 <Sgeo_> "I'm also not making any profit off of this, therefore fair use, so HA!"
00:10:30 <Sgeo_> http://www.youtube.com/watch?v=vfecIEHoYN0
00:10:53 <ais523> is that some sort of variant on "no copyright intended"?
00:12:02 <zzo38> I am trying to decide some of the symbols to use for various Haskell stuff by http://hackage.haskell.org/package/base-unicode-symbols but some seems missing or difficult a bit
00:12:30 <zzo38> Such as, there is no asterism symbol
00:12:42 <zzo38> Although maybe I can try to fake it.
00:14:04 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:16:26 -!- sebbu has quit (Read error: Connection reset by peer).
00:16:43 -!- BeholdMyGlory has joined.
00:16:59 -!- sebbu has joined.
00:16:59 -!- sebbu has quit (Changing host).
00:16:59 -!- sebbu has joined.
00:26:34 -!- Nisstyre has quit (Ping timeout: 276 seconds).
00:27:58 -!- MDude has joined.
00:28:23 -!- Nisstyre has joined.
00:28:24 -!- Nisstyre has quit (Max SendQ exceeded).
00:29:10 -!- Nisstyre has joined.
00:32:04 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:35:41 -!- BeholdMyGlory has joined.
00:37:41 -!- CakeProphet has joined.
00:37:41 -!- CakeProphet has quit (Changing host).
00:37:41 -!- CakeProphet has joined.
00:45:39 -!- Sgeo_ has changed nick to Sgeo.
00:48:58 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:51:45 -!- NihilistDandy has joined.
00:55:31 -!- BeholdMyGlory has joined.
01:11:54 -!- evincar has joined.
01:12:27 -!- cheater_ has joined.
01:15:49 -!- cheater__ has quit (Ping timeout: 250 seconds).
01:25:45 <zzo38> How should the _ of Haskell be typeset using mathematical symbols?
01:26:13 <ais523> I don't know, I don't think I've seen the equivalent used in a mathematical paper
01:26:21 <ais523> unless it was quoting a Haskell-like language, in which case it used _
01:26:37 <NihilistDandy> Zen bred tomato
01:28:50 <zzo38> I don't think just using _ looks very good in a mathematical paper, or at least not as is. Also, what symbol should represent the $ operator in the printout?
01:29:23 <NihilistDandy> zzo38: You should probably just wrap the expression in parentheses if you're not going to use $
01:29:46 <ais523> zzo38: you should replace $ by parens, I think
01:30:29 <zzo38> I can use a dollar sign on printout too, I guess; I should not make it change everything around it instead of typesetting the operator itself.
01:30:31 <NihilistDandy> And I suppose _ could be thought of as "all x", though it's really not that clear cur
01:30:34 <NihilistDandy> *cut
01:32:05 <NihilistDandy> Or define some meaningless variable and let people know ahead of time
01:33:37 <zzo38> Maybe I should just use a rule box that touches or is slightly below the baseline, although the default underscore symbol is not so good for mathematics
01:34:19 <NihilistDandy> zzo38: Are you using lhs2tex?
01:34:26 <zzo38> No.
01:34:29 <zzo38> I am using Plain TeX.
01:35:05 <NihilistDandy> Apparently lhs2tex has some pretty useful modes of operation that might save you some trouble
01:35:28 <oerjan> aha, the formalism i came up with is essentially what conway called a collatz function. and he proved it TC by reduction - from fractran :P
01:35:33 <zzo38> To use this program the thing you have to do is simply to type at the top of the file: \input prettybird
01:35:51 <zzo38> And now you can typeset Haskell program with TeX.
01:35:55 -!- CakeProphet has quit (Ping timeout: 276 seconds).
01:39:12 <zzo38> Anyways lhs2tex is both an external program and is using LaTeX rather than Plain TeX.
01:41:44 <zzo38> There is also lambdaTeX but it is not quite right either, it is using Helvetica fonts and PDF rather than Computer Modern, AMS, and DVI.
01:46:28 <zzo38> Currently I have no support for pragmas and Template Haskell, although I hope to add those things in the future.
01:47:11 <oerjan> <ais523> zzo38: you should replace $ by parens, I think <-- not all uses of $ can be replaced by parens. in particular ($ x) sections may not have any obvious replacement.
01:48:17 <ais523> oerjan: (. x)?
01:48:27 <ais523> or, wait, no
01:48:30 <ais523> $ is more like space
01:48:44 <ais523> zzo38: clearly you should replace $ by that invisible function application character from Unicode
01:48:44 <oerjan> ok there's one alternative: (`id` x)
01:48:58 <oerjan> but i doubt that's an improvement :P
01:50:17 <oerjan> i had the impression there was already a sort of convention for how to print haskell in papers, implemented with hs2tex (although zzo38 won't like it because it is latex)
01:50:46 <zzo38> ais523: I don't think so because it is not Unicode and $ has different operator precedence so it should not be made invisible. For now I just made it use the dollar sign.
02:13:12 <evincar> zzo38: You could go culture-neutral and use the currency sign (U+00A4).
02:15:33 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:16:06 <pikhq_> Or go in favor of our glorious Chinese overlords and use ¥.
02:17:31 -!- micahjohnston has quit (Ping timeout: 276 seconds).
02:17:45 -!- NihilistDandy has quit (Ping timeout: 250 seconds).
02:17:46 <ais523> I thought the yen was a Japanese currency?
02:17:52 <ais523> (and why is that not on compose Y =?)
02:18:29 <pikhq_> Because it's = Y.
02:18:49 <pikhq_> And ¥ is the symbol for both the JPY and the CNY.
02:19:12 -!- NihilistDandy has joined.
02:19:18 <ais523> oh, it has to be capital Y
02:19:29 <ais523> but it can be done either way round
02:19:50 <pikhq_> And makes sense for approximately the same reason. "Yuan" obviously can be shortened to "Y", and sticking = through it makes it look like other currency symbols.
02:20:15 -!- NihilistDandy has quit (Client Quit).
02:20:16 <pikhq_> Though "yen" *itself* makes no sense for the Japanese currency; it's "en" in Japanese.
02:20:42 -!- NihilistDandy has joined.
02:22:19 -!- BeholdMyGlory has joined.
02:27:06 -!- micahjohnston has joined.
02:28:01 -!- tyoc213 has joined.
02:28:58 <evincar> pikhq_: It's a holdover from the old misguided Portuguese transliteration.
02:30:15 <evincar> Japanese /e/ used to be pronounced [je].
02:31:11 <zzo38> evincar: That that was probably also before grid-ordered Japanese alphabet is invented, I think? Is it?
02:33:09 <zzo38> Can something similar to https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language be invented by making a preprocessor for Haskell that does some of these things?
02:33:50 <evincar> Uh, the old transliteration is 16th century. I don't know which collation (gojuon or iroha) is earlier. Probably iroha.
02:34:12 <pikhq_> evincar: Japanese /ye/ used to be a real phoneme, rather.
02:34:21 <pikhq_> Iroha is the old collation.
02:34:35 <lament> iroha is the only reason japanese doesn't suck
02:34:40 <zzo38> evincar: I think yes it is iroha is the old order, now it is usually grid order being used.
02:35:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:35:06 <pikhq_> And no longer usable, due to both containing morae that don't exist and missing morae that now do exist.
02:35:39 <itidus20> wow you guys are pretty smart
02:35:39 <evincar> Well, /we/ and /e/ were both [je], but it's always been dialectic.
02:35:50 <zzo38> But must have someone added the new ones into iroha order in case you want to use that one?
02:36:07 <evincar> Smart, maybe, but also resourceful when it comes to searching to back up hunches.
02:36:13 <pikhq_> zzo38: No. "Iroha order" is actually a poem.
02:36:26 <evincar> Right. Like the origin of solfege.
02:36:30 <itidus20> i may well be the only one present who doesn't know the word iroha
02:36:30 <ais523> it's a poem that's used to order the alphabet
02:36:42 <pikhq_> "Iroha" being the first three morae of the poem.
02:36:49 <ais523> itidus20: I didn't know the word, but I knew what it was referring it to, so I figured out the meaning of the word from context
02:36:50 <zzo38> Then can you make a modified version of the poem?
02:36:58 <itidus20> ah
02:37:01 <pikhq_> Also the name of the poem.
02:37:22 <pikhq_> zzo38: It'd require translation.
02:37:37 <zzo38> Does it use many words that no longer exist?
02:37:56 <evincar> No, but sound changes have happened in the intervening years.
02:37:59 <pikhq_> Rather, it uses a radically different orthography.
02:38:36 <pikhq_> When "kyō" (kiȳô) was written "kefu" (kehu).
02:38:59 -!- Patashu has quit (Ping timeout: 240 seconds).
02:39:15 <zzo38> I suppose that is why grid order is used now, since it is more logical and does not require any poem to be made up, and that you can easily see how to fit everything into the grid
02:39:30 <pikhq_> It also completely omits voicing marks (which were inferred from context)
02:39:47 <Lymee> pikhq_, ...
02:40:23 <Lymee> wait, then how do you use iroha with voiced mora?
02:40:41 <pikhq_> "Iroha" only orders the basic kana, sans "n".
02:40:59 <pikhq_> (which was not distinct from "mu" at the time)
02:41:22 <pikhq_> So, "you don't".
02:42:45 -!- BeholdMyGlory has joined.
02:43:07 <zzo38> If you want to include voice in the order, you can use Unicode order or "almost Unicode order" (both are basically like grid order).
02:44:21 <zzo38> (Almost Unicode order moves the characters added to later versions into the places where they would belong if they were all added in the first version of Japanese character encoding (whether Unicode or not))
02:45:05 <pikhq_> The later characters only exist for the sake if Ainu.
02:45:09 <zzo38> (Actually I just invented that now. I don't know about other thing)
02:45:24 <pikhq_> And only in katakana.
02:45:26 <pikhq_> s/if/of/
02:46:25 <zzo38> Actually MS Gothic includes the letters named "VU", "SMALL KA", and "SMALL KE", all are at the end.
02:47:53 <zzo38> This is what I mean; I don't mean Ainu. Although if you did use the Ainu characters as well, then you would move those too.
02:49:29 <pikhq_> I think those wouldn't really be in the collation...
02:49:46 <pikhq_> I don't think I've ever seen xka or xke in use at all.
02:49:55 <pikhq_> And ù only rarely.
02:50:24 <oerjan> <itidus20> i may well be the only one present who doesn't know the word iroha <-- no.
02:50:32 <pikhq_> It'd be a bit like collating ſ.
02:53:51 <zzo38> I suppose if you want to you can also order "ka" equal to "ga" (which, as far as I know, should work in both grid order and in iroha order). But then you would still need a tiebreaker
02:53:56 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
02:54:18 <zzo38> What is the most common way in Japanese?
02:54:23 -!- BeholdMyGlory has joined.
02:55:31 <pikhq_> Voicing as tiebreaker.
02:56:01 <pikhq_> Or collate via radicals, for kanji-only collation.
02:56:07 <pikhq_> (e.g. in a kanji dictionary)
02:56:32 <zzo38> Unicode order just orders "ga" directly after "ka" which can work. You can also do this with almost Unicode order if you prefer.
02:58:10 <zzo38> TeXnicard's collation algorithm allows some level of customizability, and is sophisticated enough to order roman numerals from I to XXXIX but it cannot do everything. (But you could add a separate collation field if you needed to)
02:58:35 <zzo38> One limitation is it only supports alphabets up to 64 letters
02:59:15 <itidus20> 64 isnt a lot
02:59:34 <evincar> I'd be interested to read literature on why Unicode uses fully composed characters rather than radical-based composition.
02:59:50 <evincar> It'd make the CJK section so much neater.
02:59:54 <evincar> And allow for new characters.
03:00:33 <evincar> I guess they didn't want to deal with specifying a hanzi/kanji/hanja layout algorithm. :P
03:00:41 <zzo38> Yes, I know. Although you could use double cell encoding to overcome this limit, and then use ligatures or whatever else to do printout, and exporting, as well as converting single to double when doing input.
03:01:05 <itidus20> hmm .. does 64 include uppercase?
03:01:12 <itidus20> as in abcABC?
03:01:29 <Sgeo> Hussie, Phantom_Hoover update
03:01:46 <zzo38> itidus20: Uppercase are considered equal to lowercase, with the exception that lowercase are not considered when collating roman numerals.
03:01:55 <Phantom_Hoover> Sgeo, I'm flattered by his interest.
03:01:56 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
03:01:57 <itidus20> ah
03:02:19 * Phantom_Hoover → sleep
03:02:20 -!- Phantom_Hoover has quit (Quit: Leaving).
03:03:17 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:03:25 <zzo38> These are simply the conventions of Plain TeXnicard; if you override it, you can make it not consider anything for roman numerals, or treat punctuation as letters, or whatever you want.
03:04:55 <zzo38> (And you are not even required to use Plain TeXnicard; you can also write your own metatemplate, although Plain TeXnicard does set up a lot of the things that primitive TeXnicard does not have, and that includes even such things as function composition.)
03:06:29 <zzo38> Here is the Plain TeXnicard metatemplate file: http://repo.or.cz/w/TeXnicard.git/blob_plain/HEAD:/system/plain.cards
03:10:45 <zzo38> It also includes the stuff for numbers to words, plurals, table operations, string operations, function composition, delayed execution, and more. It is currently incomplete.
03:12:46 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:16:46 -!- mustelo has left ("Ex-Chat").
03:17:11 -!- azaq23 has joined.
03:38:45 <zzo38> How should https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language be done: * A preprocessor to Haskell * An entirely new programming language * Something in between * Other (please specify)
03:44:47 <zzo38> (You could discuss in the wiki as subitems of the corresponding items, or in IRC)
03:50:25 <evincar> Not a clue. Needs more information.
03:52:27 <zzo38> What more information? Please write the request for mandatory more information
03:53:01 -!- micahjohnston has quit (Ping timeout: 255 seconds).
03:54:22 -!- nisstyre_ has joined.
03:55:13 -!- Nisstyre has quit (Disconnected by services).
03:55:45 -!- nisstyre_ has changed nick to Nisstyre.
04:01:31 -!- tyoc213 has quit (Remote host closed the connection).
04:02:42 -!- micahjohnston has joined.
04:10:09 * oerjan looks at http://www.haskell.org/pipermail/haskell-cafe/2011-August/094464.html and wonders why the _hell_ there is still software in 2011 which is susceptible to the mailbox "From " bug
04:10:43 <oerjan> hm i guess that list page may simply be that old...
04:10:59 <Sgeo> mailbox "From " bug?
04:11:45 <oerjan> Sgeo: that message was cut off. evidence from other times this has happened is that it's because the next line starts with "From " which in certain mailbox formats signifies a new message
04:16:41 <zzo38> Probably it would be better to do something such as using the ASCII "file separator" control character?
04:16:55 -!- variable has quit (Ping timeout: 258 seconds).
04:17:08 <oerjan> oh i'm sure there are lots of more modern mail formats
04:18:20 -!- kwertii has joined.
04:18:32 <NihilistDandy> Just sign everything and differentiate emails by the ends of the signature blocks~
04:19:22 <oerjan> um the problem isn't that the problem is hard to solve, it's that it's still unsolved in whatever generates that webpage
04:20:10 <zzo38> That won't work.
04:20:20 <NihilistDandy> Hence the (~)
04:20:26 <zzo38> For SMTP messages, just a line with . by itself will work.
04:20:34 <oerjan> NihilistDandy: UNKNOWN MODIFIER
04:20:39 <zzo38> But it might not necessarily be SMTP
04:21:25 <oerjan> ...which presumably means they'll have the same problem if someone makes a message with such a line in it
04:21:25 <NihilistDandy> let ~ = sarcasm in everyFuckingThingISay
04:22:03 <oerjan> NihilistDandy: INSUFFICIENTLY DISTINGUISHABLE FROM SCREEN DUST
04:22:49 <NihilistDandy> oerjan: △
04:25:01 <oerjan> insufficiently distinguishable from blank space in my putty font
04:25:30 <NihilistDandy> Your putty font sucks
04:25:36 <NihilistDandy> Use DejaVu Sans Mono
04:26:01 <oerjan> istr i tried that and it was worse
04:26:35 <NihilistDandy> Impossible
04:26:37 <NihilistDandy> Also
04:26:38 <NihilistDandy>
04:26:38 <NihilistDandy> WHITE UP-POINTING TRIANGLE
04:26:39 <NihilistDandy> Unicode: U+25B3, UTF-8: E2 96 B3
04:28:13 <oerjan> ok it does show in dejavu
04:28:21 <monqy>
04:28:21 <NihilistDandy> Told you
04:28:33 <oerjan> the problem is that the font _looks_ so horrendous i cannot bear it
04:28:39 <NihilistDandy> What?
04:28:43 <NihilistDandy> It's better than Inconsolata
04:28:50 <monqy>
04:29:41 <NihilistDandy> What's so bad about it?
04:29:46 <oerjan> but not better than courier new
04:29:57 <oerjan> i told you, it looks horrendous
04:30:13 <NihilistDandy> Courier New is for people who type screenplays at Starbucks
04:30:38 <NihilistDandy> 💩
04:30:38 <NihilistDandy> PILE OF POO
04:30:38 <NihilistDandy> Unicode: U+1F4A9 (U+D83D U+DCA9), UTF-8: F0 9F 92 A9
04:30:49 <NihilistDandy> Emoji
04:31:26 <monqy> why is this a thing
04:31:39 <oerjan> now why putty shows unknown characters as blank space, the least useful representation imaginable, i don't know
04:31:40 <NihilistDandy> I have no idea
04:32:48 <oerjan> and that seems to be the case for dejavu as well, it shows nothing for your pile
04:33:02 <NihilistDandy> oerjan: I think they only place they even exist is on OS X
04:33:05 <NihilistDandy> And only in Lion
04:33:22 <NihilistDandy> And probabaly Japan
04:33:27 <NihilistDandy> Everywhere
04:33:31 <NihilistDandy> http://en.wikipedia.org/wiki/Emoji
04:34:26 <ais523> oerjan: I get /two/ unknown character squares for NihilistDandy's pile of poo
04:34:43 <ais523> so I think Konversation (and thus Qt) is misreading the encoding for the astral plane character
04:35:51 <zzo38> My computer does not show unknown characters as blank space on PuTTY. Probably it is due to the font
04:36:23 <NihilistDandy> Why on earth is everyone using putty? o.O
04:37:17 <oerjan> how else would i connect from windows to my ancient linux shell account
04:37:45 <NihilistDandy> Installing a new OS?~
04:37:48 <ais523> PuTTY is one of the most competent terminal/telnet/ssh systems on Windows
04:37:54 <oerjan> (when i got it, it was not linux, but a VAX)
04:38:06 <NihilistDandy> And that is true, about puTTY
04:38:07 <ais523> it works just fine on Linux too; there's just less of a reason to use it
04:38:09 <NihilistDandy> *P
04:40:21 <zzo38> In my case I am connecting to an IRC client running on my own computer by using PuTTY.
04:41:38 -!- variable has joined.
04:51:24 -!- kwertii has quit (Quit: bye).
04:51:48 -!- kwertii has joined.
05:03:11 -!- MDude has changed nick to MSleep.
05:13:17 -!- lament has quit (Ping timeout: 260 seconds).
05:20:31 -!- zzo38 has quit (Remote host closed the connection).
05:23:04 -!- invariable has joined.
05:25:09 -!- variable has quit (Ping timeout: 258 seconds).
05:25:19 -!- invariable has changed nick to variable.
05:27:41 -!- oerjan has quit (Quit: Good night).
05:28:01 <Sgeo> HUSSSSSSSSSSSSSSSIIIIIIIIIIIIIIIIIEEEEEEEEEEEEEEEEEE http://www.formspring.me/mspadventures/q/224752048803967489
05:40:07 -!- evincar has quit (Quit: leaving).
05:59:55 -!- kwertii has quit (Quit: bye).
06:27:52 -!- nooga has joined.
06:35:12 -!- nooga has quit (Ping timeout: 250 seconds).
06:39:27 -!- jcp has quit (Read error: Connection reset by peer).
06:40:07 -!- jcp|1 has quit (Read error: Connection reset by peer).
06:46:51 -!- jcp has joined.
06:51:56 -!- javawizard has joined.
07:39:15 <ais523> <Wikipedia> The following is an example of a program in a hypothetical BASIC dialect with "COMEFROM" instead of "GOTO". An actual example in INTERCAL would be too difficult to read.
07:39:49 <Lymee> Let's write an example then~
07:41:03 <ais523> hmm, I always thought the sarcasm mark was meant to come after a full stop
07:41:06 <ais523> rather than replace it
07:41:12 <ais523> so it became .~ in full
07:41:27 * ais523 wonders if SARCASM MARK will ever be added to Unicode
07:43:11 <ais523> heh, double-comefrom creates a new process in Perl as well as INTERCAL
07:44:05 <ais523> also, it finds comefroms by regexing the code, which is beautiful
07:58:34 -!- azaq23 has quit (Quit: Leaving.).
07:58:40 -!- ais523 has quit (Remote host closed the connection).
08:14:14 -!- nooga has joined.
08:41:27 -!- monqy has quit (Quit: hello).
08:55:04 -!- variable has quit (Read error: Operation timed out).
09:06:24 -!- nooga has quit (Ping timeout: 250 seconds).
09:30:10 <Vorpal> #8 0x00000000 in ?? ()
09:30:10 <Vorpal> (gdb) up
09:30:10 <Vorpal> #9 0xf71ae233 in __libc_start_main () from /usr/lib32/libc.so.6
09:30:12 <Vorpal> how the fup
09:30:15 <Vorpal> fuck*
09:30:31 <Vorpal> how can 0x00000000 be #8?
09:31:08 <Vorpal> full weird backtrace: http://sprunge.us/GNHA
09:31:39 <fizzie> It's reconstructed from the stack; if you get it mangled, it can be anything.
09:31:57 <Vorpal> right
09:32:16 <Vorpal> so useless for figuring out this crash
09:32:28 <Vorpal> I don't even have the source to the thing, it from the humble indie bundle
09:32:55 <fizzie> Which one of them?
09:34:24 <fizzie> The tail end of the stack trace can be pretty weird anyways. If I gdb /bin/echo and break at _start, it's
09:34:25 <fizzie> #0 0x00007ffff7ddcaf0 in _start () from /lib64/ld-linux-x86-64.so.2
09:34:25 <fizzie> #1 0x0000000000000001 in ?? ()
09:34:25 <fizzie> #2 0x00007fffffffe99f in ?? ()
09:34:25 <fizzie> #3 0x0000000000000000 in ?? ()
09:34:44 <fizzie> The 0x00..01 is a bit weird place too.
09:35:02 -!- Sgeo has quit (Ping timeout: 250 seconds).
09:44:22 -!- Taneb has joined.
09:44:24 <Taneb> Hello!
09:52:37 -!- jcp|other has joined.
09:53:52 -!- jcp has quit (Ping timeout: 240 seconds).
09:54:17 -!- javawizard has quit (Ping timeout: 260 seconds).
09:55:57 -!- jcp has joined.
10:07:42 -!- Taneb has quit (Ping timeout: 260 seconds).
10:21:26 -!- FireFly has joined.
10:35:44 -!- Taneb has joined.
10:36:33 <Taneb> Can anyone tell me how to convert a string such as "1.2" to a float in Python?
10:42:12 <Taneb> Or JavaScript. JavaScript is good too
10:46:14 <fizzie> float("1.2") in Python.
10:47:01 <fizzie> parseFloat("1.2") in JavaScript.
10:51:40 -!- itidus20 has quit (Ping timeout: 276 seconds).
10:52:10 <Taneb> Thanks
11:40:20 -!- Patashu has joined.
11:45:17 <Taneb> I think I may have just implemented Numberwang.
11:48:06 -!- jcp|other has quit (Read error: Operation timed out).
11:48:23 -!- jcp|other has joined.
11:49:24 -!- jcp has quit (Ping timeout: 252 seconds).
11:49:42 -!- elliott has joined.
11:51:58 -!- jcp has joined.
11:54:20 -!- Phantom_Hoover has joined.
11:54:34 -!- jcp|other has quit (Read error: Operation timed out).
11:55:21 <elliott> 19:59:23: <Deewiant> I also have a Japanese keyboard so my backspace is smaller
11:55:22 <elliott> Topre?
11:55:39 -!- jcp|other has joined.
11:55:41 <Deewiant> Filco
11:55:43 <Taneb> Well, I broke Python's maximum recursion depth
11:56:09 <elliott> Deewiant: So I discovered lines later :-P
11:56:12 <elliott> Taneb: That's trivial to do
11:56:19 <elliott> Just increase it until Python segfaults
11:56:33 <Deewiant> It's not the exact one I linked, but the key layout is the same
11:56:35 <Taneb> I meant I reached it.
11:56:39 <Taneb> How do I increase it?
11:56:42 <Taneb> Or even remove it?
11:56:43 -!- jcp has quit (Ping timeout: 252 seconds).
11:57:13 <elliott> Taneb: sys.setrecursionlimit
11:57:22 <elliott> you really can segfault python by putting it too high, though
11:57:25 <elliott> try a manual stack
11:58:00 -!- derrik has joined.
11:58:05 <Taneb> Numberwang implementation
11:58:15 <Taneb> Anything but recursion is very tricky
11:58:32 -!- derrik has quit (Client Quit).
11:59:05 -!- derrik has joined.
11:59:11 <elliott> 21:27:22: <oerjan> zzo38: oh. yes it is possible to download lambdabot, and i think even to use it from inside ghci. but i've not tried it myself, and istr people complaining that it is awkward sometime in the past
11:59:23 <elliott> well, GOA has been started to be maintained again recently
11:59:26 <elliott> so you may be in luck
11:59:29 <elliott> it's on hackage
12:00:27 <elliott> 23:58:09: <zzo38> I use the equal sign for the Haskell == instead since that is the one testing equality, so == print out using the equal sign.
12:00:35 <elliott> I suggest you use \equiv for (==) instead
12:00:37 <elliott> and = for =
12:01:38 <Phantom_Hoover> Man, I had a dream last night when I ate my t, r and h keys.
12:01:54 <Phantom_Hoover> And then I was typing and I was like "oh no!"
12:01:58 -!- jcp has joined.
12:02:07 <elliott> 01:47:11: <oerjan> <ais523> zzo38: you should replace $ by parens, I think <-- not all uses of $ can be replaced by parens. in particular ($ x) sections may not have any obvious replacement.
12:02:10 <Phantom_Hoover> But then I realised that eating my keys was a stupid thing to do so it must have been a dream.
12:02:17 <elliott> not only that but _dollar sign is not always equivalent to parens_
12:02:24 <elliott> under presence of extensions
12:02:25 <elliott> (rank-n types)
12:04:19 <fizzie> Phantom_Hoover: Don't you mean "o no!"?
12:04:24 <Taneb> Dammit. Python won't let me set the recursion limit to "Bloody high"
12:04:47 <Phantom_Hoover> fizzie, no, I don't type when I think, silly.
12:04:55 <Phantom_Hoover> Taneb, consider using a good language.
12:05:02 <fizzie> Phantom_Hoover: But how can you THINK an 'h' without the key?
12:05:13 <fizzie> Sorry, I mean, TINK.
12:05:26 <Phantom_Hoover> fizzie, I still had the key, it was just in my stomach.
12:05:35 <elliott> Taneb: use a manual stack
12:05:58 <elliott> 04:10:09: * oerjan looks at http://www.haskell.org/pipermail/haskell-cafe/2011-August/094464.html and wonders why the _hell_ there is still software in 2011 which is susceptible to the mailbox "From " bug
12:05:58 <elliott> I see no obvious problem with the page?
12:06:25 <Phantom_Hoover> Mailbox "From" bug?
12:06:38 <Taneb> Can a manual stack work with non-tail end recursion
12:06:40 <elliott> Phantom_Hoover: google mbox
12:07:03 <elliott> oh, is the problem that the mail is truncated?
12:07:10 <elliott> oh, oerjan says so two lines later
12:07:14 <elliott> three actually
12:07:21 <elliott> 04:11:45: <oerjan> Sgeo: that message was cut off. evidence from other times this has happened is that it's because the next line starts with "From " which in certain mailbox formats signifies a new message
12:07:33 <elliott> well, it is usually the mail sender's obligation to include the > or space or . before "From"
12:07:40 <elliott> I guess many clients don't now
12:07:49 <elliott> but anything naive that archives it in mbox...
12:07:56 <elliott> I imagine mailman is naive in this sense :P
12:08:43 <elliott> 04:33:02: <NihilistDandy> oerjan: I think they only place they even exist is on OS X
12:08:43 <elliott> 04:33:05: <NihilistDandy> And only in Lion
12:08:43 <elliott> 04:33:22: <NihilistDandy> And probabaly Japan
12:08:43 <elliott> 04:33:27: <NihilistDandy> Everywhere
12:08:43 <elliott> 04:33:31: <NihilistDandy> http://en.wikipedia.org/wiki/Emoji
12:08:51 <elliott> NihilistDandy: um no, emoji are an official part of Unicode.
12:08:57 <elliott> and supported by many devices
12:09:19 <elliott> I think that OS X is the only desktop-computer-or-laptop operating system that ships with fonts containing emoji characters, though
12:09:29 <elliott> 04:34:43: <ais523> so I think Konversation (and thus Qt) is misreading the encoding for the astral plane character
12:09:29 <elliott> KDE only supports BMP
12:09:31 <elliott> because KDE sucks
12:09:37 <Phantom_Hoover> You mean someone let Lymee at the Unicode spec?
12:09:47 <elliott> Phantom_Hoover: what
12:09:57 <elliott> oh, yeah, gmail also has emoji
12:15:59 <NihilistDandy> Exist as in "actually sahow up in the system's Unicode tables"
12:16:03 <NihilistDandy> *show
12:16:49 <elliott> Define system's Unicode tables
12:17:01 <elliott> Everything supporting a recent enough Unicode will know the names of the emoji characters
12:17:23 <NihilistDandy> ...
12:17:37 <NihilistDandy> I have to go get a brain scan in a half hour
12:17:48 <NihilistDandy> I don't have time for this :P
12:18:34 <elliott> I'm not being obstinate, I have no clue how you think Apple are giving emoji special support beyond adding a category for them in the character map, and shipping an appropriate font
12:21:01 <NihilistDandy> "shipping an appropriate font" probabaly encapsulates the idea best
12:21:09 <NihilistDandy> *probably
12:21:30 <NihilistDandy> In that it is the only sensible way of thinking about it
12:22:31 <NihilistDandy> Now, I'm off
12:23:48 -!- BeholdMyGlory has joined.
12:25:44 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
12:26:12 -!- BeholdMyGlory has joined.
12:42:33 <Taneb> I think this program is outputting an endless stream of "iiiiiit's NUMBERWANG!"
12:42:55 <Taneb> AND it just crashe
12:42:55 <Taneb> d
12:44:18 <Taneb> I think as Numberwang stands it's a push-down automaton.
12:44:22 <Taneb> Maybe not even that.
12:44:29 <Taneb> Gonna change the spec
12:58:21 -!- Sgeo has joined.
13:32:40 -!- augur has quit (Read error: Connection reset by peer).
13:56:01 -!- derrik has quit (Read error: Connection reset by peer).
13:58:08 -!- derrik has joined.
14:07:19 -!- derrik has quit (Ping timeout: 258 seconds).
14:09:02 -!- derrik has joined.
14:16:48 -!- derrik has quit (Read error: Connection reset by peer).
14:17:28 -!- lament has joined.
14:18:58 -!- derrik has joined.
14:19:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:32:02 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
14:42:38 <Patashu> http://www.esolangs.org/wiki/Funciton this is a beautiful language
14:43:19 <elliott> yes; if only the author didn't want to take over our wiki :)
14:43:24 <Patashu> he does?
14:43:54 <Patashu> let him, if he makes beautiful languages like Funciton :D
14:44:08 <elliott> he tried to become an admin while repeatedly demonstrating lack of understanding of MediaWiki (he wanted to make us a new skin, but didn't seem to actually know how that was done), and then when Graue didn't reply to his email told us we should take control of the domain and move the wiki to something under his control
14:44:16 <elliott> because of Graue's horrible injustness
14:44:23 <Patashu> oh
14:44:25 <elliott> cue silence until he went away
14:44:37 <Patashu> :(
14:45:01 <lament> the diagrams look broken
14:45:14 <Patashu> are you on a unicode browser?
14:45:17 <Patashu> they work fine on chrome
14:45:23 <elliott> whats a unicode browser
14:45:29 <lament> elliott: not Lynx
14:45:32 <Patashu> *a browser in which unicode is properly displayed
14:45:48 <lament> the diagrams look broken though
14:46:52 <lament> or are they supposed to look broken?
14:47:55 <Patashu> they're meant to look like boxes and lines
14:48:02 <Patashu> if you don't see boxes and lines then your browser sucks & dead
14:48:04 <Patashu> (or font)
14:48:31 <lament> they do look like lines and boxes, but in a non-fixed-width font
14:49:00 <Patashu> aah
14:49:04 <Patashu> font sucks & dead
14:49:22 <lament> i choose to blaim the programming language
14:49:27 <lament> *blame
14:49:45 -!- FireFly has quit (Remote host closed the connection).
14:50:33 -!- FireFly has joined.
14:54:11 -!- copumpkin has joined.
15:10:16 -!- variable has joined.
15:19:17 -!- variable has quit (Ping timeout: 258 seconds).
15:39:59 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:40:45 -!- Patashu has quit (Ping timeout: 252 seconds).
15:41:17 -!- yorick has quit (Quit: leaving).
15:47:21 -!- Sgeo has joined.
15:58:09 -!- yorick has joined.
16:10:37 -!- BeholdMyGlory has quit (Remote host closed the connection).
16:11:55 -!- lament has quit (Ping timeout: 252 seconds).
16:12:08 -!- MigoMipo has joined.
16:13:15 -!- BeholdMyGlory has joined.
16:13:17 -!- BeholdMyGlory has quit (Changing host).
16:13:17 -!- BeholdMyGlory has joined.
16:20:37 -!- copumpkin has quit (Ping timeout: 250 seconds).
16:28:08 -!- copumpkin has joined.
16:34:29 -!- Taneb has quit (Ping timeout: 250 seconds).
16:47:28 -!- derrik has joined.
16:52:12 -!- derrik has quit (Client Quit).
16:54:34 -!- derrik has joined.
16:57:07 <Gregor> I suggest we s/liquidity/fluidity in the topic.
16:57:13 <Gregor> *tries that again
16:57:16 <Gregor> I suggest we s/liquidity/fluidity/ in the topic.
16:57:19 -!- zzo38 has joined.
16:58:56 <elliott> Gregor: You do it :P
16:59:11 -!- Gregor has set topic: Don't enjoy unlocking the matrix of fluidity, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
17:06:55 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
17:24:15 -!- atome has joined.
17:24:27 -!- atome has quit (Client Quit).
17:27:15 -!- derrik has joined.
17:32:25 -!- derrik has quit (Ping timeout: 258 seconds).
17:39:12 <zzo38> I think LLVM also includes an example program for compiling Brainfuck codes into LLVM codes
17:46:47 <pikhq_> Yeah, but it's not exactly any good.
17:47:09 <pikhq_> It doesn't give LLVM enough information to do anything *useful*.
17:48:12 <zzo38> But possibly a better one can be written, that checks some stuff at first before sending to LLVM, to allow more information to be sent
17:50:51 <pikhq_> I'd imagine the biggest win would be eliminating as many pointer movements as possible.
17:51:43 <pikhq_> Which would allow LLVM to do meaningful optimisation.
17:54:09 -!- derrik has joined.
17:59:08 <pikhq_> Dow Jones is down another 450 so far...
17:59:43 <pikhq_> Aaaah, the sound of the world going up in flames.
18:00:34 <zzo38> Can there be a LLVM transform pass that is used for eliminating pointer movements?
18:01:06 <pikhq_> Probably, but it's only really useful *for Brainfuck*. Nothing else really does that.
18:01:39 <pikhq_> It's not so much that it's impossible as it is a heavily language-specific optimisation.
18:01:41 -!- zzo38 has quit (Remote host closed the connection).
18:04:21 <Phantom_Hoover> <pikhq_> Aaaah, the sound of the world going up in flames.
18:04:23 <Phantom_Hoover> Wait, what?
18:04:34 <Phantom_Hoover> There's a stock market crash?
18:04:39 <Phantom_Hoover> Or are you just being sensationalist.
18:05:15 <pikhq_> Phantom_Hoover: Ongoing one.
18:05:58 <pikhq_> Phantom_Hoover: The past week or so the markets have been going down 3 to 5% each day.
18:06:44 <Phantom_Hoover> /r/worldnews says nothing, and you and Reddit share a lot of common ground.
18:08:12 <pikhq_> ATM the DJI is at 11,000, lowest it's been for a couple years now.
18:09:00 -!- monqy has joined.
18:09:12 <fizzie> Well, you know... "/r/Worldnews is for major news from around the world except US-related news (especially US politics)"
18:09:45 <fizzie> news.google.com top story "US Stocks Tumble as Rating Downgrade Sparks Concern" + see all 5060 sources.
18:11:05 <Phantom_Hoover> Oh, huh.
18:11:08 <Phantom_Hoover> Fair dos.
18:27:22 -!- Taneb has joined.
18:56:01 -!- MSleep has changed nick to MDude.
19:04:34 -!- ais523 has joined.
19:16:14 -!- zzo38 has joined.
19:22:19 <elliott> monqy: Are you... up for that.
19:22:24 <elliott> That being the DF fort.
19:22:28 <monqy> am I up for oh
19:22:37 <monqy> I forgot to do the introduction thing
19:22:38 <monqy> oops
19:22:39 <elliott> Like, it is going to be my year pretty much soon.
19:23:55 <monqy> getting dwarf fortresse
19:24:24 <elliott> monqy: I'm... not having an extreme feeling of confidence about handing the fort over to you.
19:24:29 <elliott> And that's saying something because I'm terrible.
19:24:36 <monqy> 8)
19:24:51 <monqy> I do not have any confidence at all about handling the fort
19:25:02 <Taneb> That makes it more Fun, elliott
19:25:07 <elliott> monqy: Do you even want the fort.
19:25:16 <monqy> im not sure
19:25:17 <elliott> Taneb: Succession fortresses... generally try and avoid Fun.
19:25:28 <monqy> i might want to find out if i like dwarf fortresse first
19:25:30 <Phantom_Hoover> elliott, no they don't.
19:25:45 <elliott> Phantom_Hoover: They avoid complete and utter Fun on only the fourth person.
19:25:47 <Phantom_Hoover> They just make sure it won't be boring when it happens.
19:26:13 <elliott> monqy: You'll probably want to set a lot of time aside to do it, since you have to complete a year in, like, no more than a week before we'll all get impatient. :p
19:26:45 <monqy> ok I'll skip my turn for now at least
19:27:11 <elliott> I guess we should just loop back to Taneb?
19:27:31 <monqy> what happened to Lymee
19:28:02 <elliott> monqy: About ten big holes in our Minecraft base happened to Lymee.
19:28:45 <Taneb> Oh Jeremy Paxman
19:36:22 -!- oerjan has joined.
19:38:17 -!- augur has joined.
19:40:19 <oerjan> 04:38:43 <elliott> not only that but _dollar sign is not always equivalent to parens_
19:40:22 <oerjan> 04:38:50 <elliott> under presence of extensions
19:40:24 <oerjan> 04:38:51 <elliott> (rank-n types)
19:40:39 <oerjan> my impression was that turning $ to parentheses usually makes it type _better_, though
19:40:49 <elliott> oerjan: yes, but this is for a pretty-printer...
19:41:00 <elliott> imagine trying to write an article on the pitfalls of $
19:41:06 <oerjan> heh :P
19:41:09 <elliott> oh, and not to mention that you can of course rebind ($).
19:41:19 <oerjan> :t ($)
19:41:20 <lambdabot> forall a b. (a -> b) -> a -> b
19:42:00 <shachaf> Rank-2 types ruin everything.
19:42:18 <shachaf> > runST (return True)
19:42:18 <oerjan> i wonder if there's some caleskellish generalization you could do to $
19:42:19 <lambdabot> True
19:42:20 <shachaf> > id runST (return True)
19:42:21 <lambdabot> Couldn't match expected type `m GHC.Bool.Bool'
19:42:21 <lambdabot> against inferred typ...
19:42:26 <shachaf> > let x = id runST in x (return True)
19:42:27 <lambdabot> True
19:42:40 <elliott> :-)
19:42:48 <oerjan> wtf
19:43:03 <oerjan> > ($) runST (return True)
19:43:04 <lambdabot> True
19:43:08 <zzo38> Maybe the pointer movement optimization can be used in some cases for some parts of some C programs, too, I think.
19:43:10 <oerjan> huh
19:43:35 <shachaf> $ is also not equivalent to parentheses on the type level.
19:43:41 <shachaf> Fortunately you can say type a :$ b = a b
19:43:45 <zzo38> What is rank-2 types?
19:44:02 <shachaf> Battle-hardened types that have been promoted.
19:44:25 <elliott> :-D
19:45:09 <copumpkin> zzo38: in general?
19:45:21 <oerjan> zzo38: types for functions that take arguments that can be used with more than one type
19:45:57 <copumpkin> and if those functions themselves are rank-2
19:46:01 <copumpkin> then the outer one is rank-3 and so on
19:46:23 <shachaf> Up to RANK OMEGA.
19:46:32 * shachaf needs sleep.
19:46:45 <NihilistDandy> Sgeo: How the hell do Ruby programmers deal with that syntax
19:46:46 <NihilistDandy> ?
19:46:49 <zzo38> copumpkin: What about "in general"?
19:46:58 <copumpkin> ohm nothing
19:47:03 <copumpkin> -m
19:47:22 <oerjan> > let g h = (h 'a', h True); g :: Functor f => (forall t. t -> f t) -> (f Char, f Bool) in (g (:[]), g Just)
19:47:23 <lambdabot> (("a",[True]),(Just 'a',Just True))
19:47:31 * oerjan cackles evilly
19:48:31 <zzo38> Is there any kind of auto-unbox mode that can be used with GHC?
19:49:48 <olsner> hmm, auto-unbox?
19:50:35 <elliott> zzo38: GHC tries to be smart about unboxing.
19:52:11 <olsner> right, so the auto-unbox mode is just -O2 :)
19:52:15 <oerjan> !egobot {-# LANGUAGE UnboxStrictFields #-} main = print "Was this the name?"
19:52:22 <oerjan> er
19:52:27 <oerjan> !haskell {-# LANGUAGE UnboxStrictFields #-} main = print "Was this the name?"
19:52:32 <elliott> -funbox-strict-fields, it seems
19:52:34 <elliott> so you want OPTIONS_GHC
19:52:34 <EgoBot> ​/tmp/input.17681.hs:1:13: unsupported extension: UnboxStrictFields
19:52:45 <olsner> sometimes you need to poke and prod GHC to show it the way though
19:52:50 <oerjan> what, no LANGUAGE? i guess it has no semantic effect
19:54:41 <zzo38> olsner: So, -O2 does that. Does that include such things as enumerations?
19:54:43 <oerjan> i think there's also some UNPACK pragma, is there not. but both those are about unboxing in data types
19:54:44 <ais523> presumably pragmas with no semantic effect potentially have sandbox-security bugs, and give no benefit
19:54:53 <elliott> zzo38: enumerations won't be boxed anyway
19:55:11 <zzo38> elliott: OK. I didn't know that at first, but now I know.
19:55:12 <elliott> ais523: UNPACK pragma has no semantic effect
19:57:07 <zzo38> I mean, like, can it replace Int with Int# automatically wherever it is possible without damaging anything or resulting in an invalid program? As well as things such as considering "data" commands.
19:58:26 <zzo38> Another thing, is there any option to tell it to use 8-bit Char instead of unicode?
19:58:44 <oerjan> <Taneb> Well, I broke Python's maximum recursion depth
19:58:51 <elliott> zzo38: see Word8 in Data.Word
19:59:03 <elliott> "I mean, like, can it replace Int with Int# automatically wherever it is possible without damaging anything or resulting in an invalid program?" <-- GHC tries to do this
19:59:05 <oerjan> if this is for numberwang, i suspect you are either doing it wrong, or it would have broken anyway
19:59:06 <elliott> it's not as good as a human of course :)
19:59:39 <zzo38> "Enumerations don't count as single-constructor types as far as GHC is concerned, so they don't benefit from unpacking when used as strict constructor fields, or strict function arguments. This is a deficiency in GHC, but it can be worked around."
19:59:55 <olsner> oerjan: python's maximum recursion depth is probably 3 or something, to discourage using functions and other fancy stuff
20:00:16 <oerjan> (the latter if you had an infinite recursion of 3 commands)
20:00:24 <elliott> zzo38: oh, well right, I thought you meant enumeration values themselves
20:00:36 <elliott> but yeah you can just do that yourself :-P
20:00:59 <elliott> data Foo = Foo ... {-# UNPACK #-} !SomeEnum ...
20:02:10 <pikhq_> olsner: Well, yeah, can't have programmers daring to abstract things.
20:02:20 <oerjan> elliott: um if ghc thinks enumerations are the same as a general data type, it shouldn't be able to do UNPACK either...
20:02:55 <elliott> oerjan: hmm right
20:02:59 <elliott> oerjan: yeah that sucks a bit
20:03:00 <oerjan> or does it allocate the maximum size for it?
20:03:07 <elliott> you can just use an unboxed int though :P
20:03:09 <elliott> oerjan: dunno
20:03:22 <elliott> oerjan: no, surely you can unpack multiple-constructor data types
20:03:26 <elliott> I mean, even Integer is that
20:04:06 <oerjan> hm
20:04:12 <zzo38> I suppose one way you can do it is if you have C preprocessor macros
20:04:24 <oerjan> elliott: actually there's no f way you can unpack integer
20:04:29 <elliott> oerjan: erm right
20:04:32 <elliott> :D
20:04:39 * elliott decides to ask #ghc
20:05:52 <oerjan> maybe it could manage to unpack only the small integer case
20:06:46 <oerjan> @src Integer
20:06:46 <lambdabot> data Integer = S# Int#
20:06:47 <lambdabot> | J# Int# ByteArray#
20:06:54 <elliott> oerjan:
20:06:54 <elliott> <elliott> Can data types with more than constructor be {-# UNPACK #-}'d?
20:06:54 <elliott> <nominolo> Probably not
20:07:09 <elliott> oerjan: hmm Integer _could_ be unpacked then
20:07:16 <elliott> if the ByteArray# consists of e.g. (length, pointer)
20:07:17 <elliott> oh wait
20:07:18 <oerjan> remarkable reading comprehension, that nominolo
20:07:25 <elliott> that Int# is probably size
20:07:27 <elliott> oerjan: ?
20:07:39 <oerjan> elliott: "more than constructor"
20:07:48 <elliott> oops
20:09:06 <elliott> "I would like to introduce you to a very general algorithm that I like to call the Gauss-Jordan-Floyd-Warshall-McNaughton-Yamada algorithm. With this simple algorithm (an algorithm whose implementation is not very much longer than its name)"
20:11:01 <elliott> oerjan: <thoughtpolice> well, GHC does not complain when you do it. data T = T {-# UNPACK #-} !Int | S {-# UNPACK #-} !Int compiles without complaint. looking at core...
20:11:27 <oerjan> elliott: less reading comprehension
20:11:34 <elliott> <nominolo> thoughtpolice: it will unpack the Ints. But you can't do data Foo = Foo {-# UNPACK #-} !T | Bar ...
20:11:37 <elliott> oerjan: right :P
20:12:19 <zzo38> How can you tell GHC to make only a LLVM code output?
20:12:54 <elliott> zzo38: http://www.haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html; see -keep-llvm-files
20:13:04 <Vorpal> <elliott> "I would like to introduce you to [...]" <-- where is that from? :D
20:13:10 <elliott> Vorpal: http://r6.ca/blog/20110808T035622Z.html
20:13:16 <elliott> zzo38: Not sure how to turn off generating executables entirely, but
20:14:11 <olsner> Vorpal: googling would've told you btw
20:14:21 <Vorpal> olsner, probably
20:14:42 -!- variable has joined.
20:16:01 <elliott> <nominolo> What would you expect this to be unpacked to? Note that A and B in this case will be static pointers.
20:16:02 <elliott> <elliott> Well, obviously a T could be represented by an Int# or similar, but yeah
20:16:02 <elliott> <nominolo> GHC can only unpack into Words not bits, so you can't turn Foo !T !T into a bitset.
20:16:02 <elliott> <nominolo> So, Foo !T !T already is represented (almost) the same way as Foo Int# Int#
20:16:07 <elliott> zzo38: so enumerations _are_ unboxed
20:16:09 <elliott> for all practical purposes
20:16:15 <elliott> they're still pointers, but they're static
20:16:23 <elliott> <nominolo> it's just that A and B don't map to 0 and 1, but to 0x342421000 and 0x349024092 or so
20:16:54 -!- GreaseMonkey has joined.
20:16:54 -!- GreaseMonkey has quit (Changing host).
20:16:54 -!- GreaseMonkey has joined.
20:17:34 -!- oerjan has set topic: Don't enjoy unlocking the matrix of fluoride, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
20:18:11 <oerjan> i find this change has a certain purity of essence
20:18:39 <olsner> matrix of fluoridity
20:19:27 -!- derrik has quit (Quit: nite on earth).
20:33:32 <zzo38> OK, put fluoride if you want to put that instead
20:46:26 <Sgeo> elliott, Phantom_Hoover update Hussie
20:46:42 -!- Taneb has quit (Read error: Connection reset by peer).
20:46:58 <Phantom_Hoover> Who's update?
20:47:22 <elliott> fizzie's.
20:48:36 <zzo38> When compiling the Haskell program to LLVM codes, it looks like generating a lot of complicated stuff even for a short program, and with a higher -O number it makes larger LLVM file
20:58:52 <zzo38> (The program does not have a main function, I don't know if this has to do something with it too)
21:02:34 -!- MigoMipo has quit (Remote host closed the connection).
21:03:59 <pikhq_> TIL GCC follows Greenspun's Tenth Rule.
21:04:18 <ais523> pikhq_: which one is that? the one about reading mail?
21:04:26 <pikhq_> ais523: No, about containing a Lisp.
21:04:29 <ais523> ah
21:04:40 <pikhq_> In this case, *in its build system*.
21:05:06 <ais523> clearly, we should implement a mailreader as an llvm plugin
21:05:32 <NihilistDandy> LLVMail
21:05:36 <Vorpal> <pikhq_> In this case, *in its build system*. <-- what function does it fill
21:05:50 <NihilistDandy> Vorpal: Tee hee, "function"
21:06:03 <Vorpal> NihilistDandy, pun not intended
21:06:07 <pikhq_> Vorpal: Generating a giant table of details about every CPU type for an architecture.
21:06:12 <pikhq_> Y'know the -march= stuff?
21:06:15 <Vorpal> pikhq_, ah
21:06:26 <Vorpal> pikhq_, done before tarballs?
21:06:43 <pikhq_> After.
21:06:58 <Vorpal> pikhq_, so where is the interpreter?
21:07:06 <pikhq_> In the source.
21:07:13 <Vorpal> pikhq_, oh, which one did they use
21:07:20 <fizzie> ais523: The reversed question mark (U+2E2E, ⸮) has been proposed to be used to "indicate that a sentence should be understood at a second level (e.g. irony, sarcasm, etc.)."
21:07:29 <pikhq_> An ad hoc, informally-specified, bug-ridden, slow one.
21:07:34 * Sgeo listens to a bizzare song
21:07:34 <Vorpal> pikhq_, heh
21:07:44 <ais523> fizzie: good to know
21:07:46 <ais523> but it's hardly commonly used
21:07:54 <elliott> i wonder why⸮
21:08:11 <Vorpal> fizzie, proposed by who, to whom?
21:08:48 <fizzie> It's from an older "percontation point ( ؟ )" notation used to denote rhetorical questions, "invented by Henry Denham in the 1580s -- its use died out in the 17th century".
21:08:59 <Vorpal> ah
21:09:37 <fizzie> Vorpal: The sarcasm/irony variant was "proposed by the French poet Alcanter de Brahm (alias Marcel Bernhardt) at the end of the 19th century"; doesn't quite seem to have caught on -- this was all from http://en.wikipedia.org/wiki/Irony_punctuation
21:09:52 <elliott> it's like rain on your wedding day⸮
21:10:14 <fizzie> (It's next to the interrobang in the "uncommon typography" section of the punctuation template, that's how I happened to come across it.
21:10:47 <ais523> heh, compose works on ‽ even if it doesn't really work on a whole load of other things I'd expect it to work on
21:10:57 <fizzie> But the page lists a "doubt point", a "certitude point", an "acclamation point", an "authority point", an "indignation point" and a "love point" punctuation mark too.
21:11:09 <elliott> ais523: I recommend creating your own compose file
21:11:14 <elliott> you can derive one from the original, it has an include statement
21:11:17 <elliott> and they can go in your home directory
21:11:19 <ais523> elliott: I think I should
21:11:21 <ais523> but not right now
21:11:24 <elliott> requires restarting the X server to check changes, though
21:11:33 <elliott> personally I'd start one from scratch though, the defaults suck really badly
21:12:07 <Vorpal> <elliott> ais523: I recommend creating your own compose file <-- iirc gtk by default ignores it
21:12:12 <Gregor> http://www.qwantz.com/index.php?comic=2016 <-- the mouseover text for this comic = greatest ever
21:12:17 <Vorpal> you need to change input method
21:12:37 <ais523> Vorpal: well, I introduced the compose key via Gnome's keyboard preferences dialog
21:12:49 <ais523> presumably that tells X about it, but it probably tells GTK stuff about it too
21:12:55 <elliott> Vorpal: I think that was accurate as of like five years ago, dude.
21:13:09 <fizzie> It wasn't as long as all that.
21:13:28 <fizzie> It was quite recently still that GTK had hardcoded composition tables.
21:13:33 <Vorpal> elliott, uh, tried a few months ago, you need to set X input
21:13:33 <fizzie> Don't know about the current status though.
21:13:38 <elliott> Five years ago, two seconds, what's the difference.
21:13:41 <elliott> Vorpal: On how new a distro?
21:13:52 <Vorpal> elliott, arch, so bleeding edge at the time
21:13:59 <Vorpal> elliott, I guess in january
21:14:02 <Vorpal> night →
21:17:00 -!- GreaseMonkey has quit (Quit: The Other Game).
21:17:02 <fizzie> The relevant Ubuntu page -- https://help.ubuntu.com/community/ComposeKey#Compose%20key -- at least hasn't been edited and still says GTK has their silly in-code hardcoded table (unless the input method is swibbed to XIM, after which ~/.XCompose works); though help.ubuntu.com isn't exactly stranger to outdated documentation either.
21:17:08 -!- CakeProphet has joined.
21:17:08 -!- CakeProphet has quit (Changing host).
21:17:08 -!- CakeProphet has joined.
21:23:58 -!- azaq23 has joined.
21:32:31 <Sgeo> Phantom_Hoover, "Doctor" theme usually applies to John?
21:32:45 <Sgeo> I hope you immediately see why I ask
21:33:05 -!- nisstyre_ has joined.
21:33:07 -!- Nisstyre has quit (Ping timeout: 260 seconds).
21:35:19 -!- nisstyre_ has changed nick to Nisstyre.
21:47:09 -!- micahjohnston has quit (Quit: leaving).
22:07:04 <oerjan> > let coll2bf l = ">>+[-" ++ foldr branch "++<<[->+<]" l ++ ">[-<+>]>]"; branch (a,b,c) s = "[-<" ++ replicate a '+' ++ ">]" ++ replicate c '+' ++ '<' : replicate b '+' ++ "<[->" ++ replicate b '-' ++ '[' : replicate a '-' ++ ">+<]>" ++ replicate c '-' ++ s ++ "]" in coll2bf $ (5,0,1):[(5,i,0)|i<-[1..3]]
22:07:05 <lambdabot> ">>+[-[-<+++++>]+<<[->[----->+<]>-[-<+++++>]<+<[->-[----->+<]>[-<+++++>]<++...
22:07:09 <oerjan> eek
22:07:24 <elliott> oerjan: is it actually working :D
22:07:27 <oerjan> !haskell let coll2bf l = ">>+[-" ++ foldr branch "++<<[->+<]" l ++ ">[-<+>]>]"; branch (a,b,c) s = "[-<" ++ replicate a '+' ++ ">]" ++ replicate c '+' ++ '<' : replicate b '+' ++ "<[->" ++ replicate b '-' ++ '[' : replicate a '-' ++ ">+<]>" ++ replicate c '-' ++ s ++ "]" in coll2bf $ (5,0,1):[(5,i,0)|i<-[1..3]]
22:07:30 <EgoBot> ​">>+[-[-<+++++>]+<<[->[----->+<]>-[-<+++++>]<+<[->-[----->+<]>[-<+++++>]<++<[->--[----->+<]>[-<+++++>]<+++<[->---[----->+<]>++<<[->+<]]]]]>[-<+>]>]"
22:07:37 <oerjan> well let's find out
22:07:50 <elliott> im letsing
22:08:31 <oerjan> ^def test bf ,[>>+[-[-<+++++>]+<<[->[----->+<]>-[-<+++++>]<+<[->-[----->+<]>[-<+++++>]<++<[->--[----->+<]>[-<+++++>]<+++<[->---[----->+<]>++<<[->+<]]]]]>[-<+>]>]<<.,]
22:08:31 <fungot> Defined.
22:08:36 <elliott> ^test
22:08:37 <oerjan> ^test 0123456789
22:08:38 <fungot> ]=>?QBCDWG
22:08:39 <elliott> ^test asdojasdj
22:08:40 <ais523> wow, elliott is so much less annoying than eliot
22:08:41 <fungot> yy
22:08:42 <oerjan> oops
22:08:44 <elliott> ^test :))))))
22:08:45 <fungot> H333333
22:08:46 <elliott> ais523: wat
22:08:54 <elliott> fungot: tz what are you doing.................
22:08:55 <fungot> elliott: again in a fresh memo later ( from the capsule's perspective) jade would retrieve that beta. the kid's out of his mind games
22:08:57 <ais523> elliott: there's been an eliot pestering me in another channel
22:09:05 <elliott> ais523: are you sure that's not me
22:09:06 <ais523> and the difference in name spelling really surprised me
22:09:06 <elliott> sounds like me
22:09:12 <oerjan> well it's doing _something_, but not exactly what it should. oh wait...
22:09:13 <ais523> elliott: not completely sure, but it seems likely
22:09:19 <ais523> you wouldn't spell your name like that
22:09:23 <elliott> "wait, that guy normally has twice those letters! just as irritating though."
22:09:29 <oerjan> !haskell let coll2bf l = ">>+[-" ++ foldr branch "++<<[->+<]" l ++ ">[-<+>]>]"; branch (a,b,c) s = "[-<" ++ replicate a '+' ++ ">]" ++ replicate c '+' ++ '<' : replicate b '+' ++ "<[->" ++ replicate b '-' ++ '[' : replicate a '-' ++ ">+<]>" ++ replicate c '-' ++ s ++ "]" in coll2bf $ (5,0,1):[(4,i,0)|i<-[1..3]]
22:09:32 <EgoBot> ​">>+[-[-<+++++>]+<<[->[----->+<]>-[-<++++>]<+<[->-[---->+<]>[-<++++>]<++<[->--[---->+<]>[-<++++>]<+++<[->---[---->+<]>++<<[->+<]]]]]>[-<+>]>]"
22:09:54 <oerjan> ^def test bf ,[>>+[-[-<+++++>]+<<[->[----->+<]>-[-<++++>]<+<[->-[---->+<]>[-<++++>]<++<[->--[---->+<]>[-<++++>]<+++<[->---[---->+<]>++<<[->+<]]]]]>[-<+>]>]<<.,]
22:09:54 <fungot> Defined.
22:09:59 <oerjan> ^test 0123456789
22:09:59 <fungot> K123A567F9
22:10:05 <NihilistDandy> oerjan: Did you ever solve your BF conundrum?
22:10:15 <oerjan> > map ord "K123A567F9"
22:10:16 <lambdabot> [75,49,50,51,65,53,54,55,70,57]
22:10:19 <ais523> NihilistDandy: I think he's solving it at the moment
22:10:22 <oerjan> NihilistDandy: see the above
22:10:26 <NihilistDandy> Ah
22:10:49 <oerjan> it compiles a general "collatz function" to 3-cell bf
22:10:54 <oerjan> well, almost general
22:11:11 <ais523> oerjan: for the implementation of Fractran, presumably
22:11:43 <oerjan> ais523: conway in fact proved that fractran reduces to collatz functions
22:11:50 <oerjan> afaiu
22:12:06 <elliott> oerjan: so two cells are definitely not TC, rihgt?
22:12:11 <ais523> well, it's moderately obvious
22:12:28 <oerjan> elliott: um i don't see how they could be, you cannot end a loop without zeroing one of them
22:12:28 <ais523> fractran corresponding to collatz functions, that is
22:12:29 <elliott> ais523: so was :caret() underload being subtc
22:12:31 <elliott> oh
22:12:34 <elliott> oerjan: right
22:13:08 <ais523> elliott: you must find esolang programming really tricky
22:13:16 <ais523> regular programming too, come to think of it
22:13:19 <elliott> ais523: wat
22:13:35 <ais523> because you're missing eight numbers, and the corresponding punctuation marks
22:13:37 -!- zzo38 has left.
22:13:50 <elliott> ais523: oh, I'm practically used to that by now
22:13:54 <oerjan> the restriction here is that the first elements of the triple must be > 0 and the second >= 0. but that's automatic for fractran programs of positive fractions
22:14:06 <elliott> ais523: I just google "<number name> in decimal" and "asterisk" and "exclamation mark" and copy from there
22:14:17 <ais523> wow
22:14:20 <ais523> hey, do you use a compose key?
22:14:23 <elliott> my browser search history is going to be somewhat useless once I get these keys back
22:14:31 <elliott> ais523: I considered it multiple times but, hey, it's only temporary, right? :-P
22:14:31 <oerjan> (the last element is just a flag whether to halt for that remainder)
22:14:34 <ais523> that seems like the obvious thing to put keybindings on
22:14:35 <elliott> for numbers
22:14:35 <elliott> that is
22:14:39 <elliott> and punctuation
22:14:49 <ais523> I know that my first computer was a BBC Micro for which the B and Y keys didn't work
22:14:50 <elliott> do manta rays have skeletons
22:15:06 <ais523> I used to write short BASIC programs to print them, and then keybind them to function keys
22:15:27 <ais523> (actually, I could copy/paste the B from the splashscreen, but not the Y)
22:16:09 <ais523> (so I generally converted Z to a number, subtracted 1, and converted it back to a string)
22:17:01 <elliott> "Elephant two has been encased in cooling lava." --DF
22:17:56 <ais523> elliott: in your game?
22:18:00 <ais523> or someone else's?
22:18:08 <olsner> elephant two takes a cooling bath in the cooling lava
22:18:54 <elliott> ais523: object arena :P
22:19:03 <elliott> (basically a sandbox)
22:19:21 <olsner> lava turns sandboxes into pools!
22:19:31 <olsner> this is awesome
22:21:11 <ais523> wouldn't lava turn sandboxes to glass?
22:22:07 <olsner> sure, if the lava isn't hot enough - otherwise, a pool of molten glass?
22:42:05 -!- cheater_ has quit (Ping timeout: 255 seconds).
22:44:07 <Phantom_Hoover> http://www.guardian.co.uk/uk/blog/2011/aug/08/london-riots-third-night-live
22:44:14 <Phantom_Hoover> I love the graphic they use for the map.
22:52:30 <fizzie> The local "7pm news" TV program had interviewed a random Finn in London who had managed to get tangentially involved (was in a taxi, rioters broke the windows and stole a bag, or something like that), and coincidentally it turned out the interviewee was an old school acquaintance of my wife's.
22:52:50 <fizzie> Small world, like they say.
22:53:41 <ais523> there have been riots in Birmingham too, but it's not like the ones in London
22:54:01 <ais523> it seems like a group of people have got organised and are rioting and looting a bit
22:54:10 <ais523> then running away when the police arrive and doing it again elsewhere
22:54:28 <ais523> it's probably the same people who were trying to organise gangs of shoplifters as some sort of complex protest against the government's economic policy
22:54:59 <oerjan> V for Vandal
22:55:57 -!- cheater_ has joined.
22:56:11 <oerjan> :t find
22:56:12 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe a
22:57:27 <fizzie> > find (==2) [1,2,3,2,1]
22:57:28 <lambdabot> Just 2
22:57:33 <fizzie> I suppose it's the first 2?
22:58:08 <oerjan> you'd think
22:58:31 <Lymee> > find (>2) [1,2,3]
22:58:32 <lambdabot> Just 3
22:58:45 <Lymee> > find (>2) [1,3,2]
22:58:46 <lambdabot> Just 3
22:58:54 <Lymee> > find (>=2) [1,2,3]
22:58:54 <elliott> <fizzie> Small world, like they say.
22:58:55 <lambdabot> Just 2
22:58:56 <elliott> s/world/country/
22:58:58 <Lymee> > find (>=2) [1,3,2]
22:58:59 <lambdabot> Just 3
22:59:15 <elliott> `addquote <ais523> it's probably the same people who were trying to organise gangs of shoplifters as some sort of complex protest against the government's economic policy
22:59:18 <HackEgo> 570) <ais523> it's probably the same people who were trying to organise gangs of shoplifters as some sort of complex protest against the government's economic policy
22:59:43 <ais523> elliott: I'm not sure if you were aware of them; it may have been specific to Birmingham
22:59:57 <ais523> anyway, I'm the right age and other vital statistics to be in their target audience
23:00:05 <ais523> I just have completely the wrong sort of personality
23:00:44 <elliott> it is really weird to be tired at midnight and to have slept the previous night
23:00:47 <ais523> wrong political opinions, too
23:00:56 <ais523> elliott: go to sleep, then
23:01:01 <elliott> yes ok soon
23:01:05 <ais523> you may currently be on a normal sleep schedule
23:01:08 <ais523> that's not something to fight
23:01:17 <ais523> and it's got to happen by chance /sometimes/
23:01:31 <elliott> ais523: well, waking up at half six is a bit hardcore for me, even if it classes as normal
23:01:41 <elliott> also I don't think eighteen hours of sleep a day is usual
23:01:41 <ais523> I don't mind waking up that early
23:01:52 <ais523> and I've managed 18 hours of sleep before now
23:02:10 <ais523> I did around 16, with a 2-hour break, last month
23:02:18 <elliott> it was a 0-hour break
23:02:24 <elliott> or, well, I woke up at around eight pm
23:02:33 <elliott> but I didn't do much other than try and get back to sleep
23:02:53 <elliott> maybe my sleep schedule has become so bizarre it's wrapped around and become normal again
23:05:20 <CakeProphet> > ((++)<*>show)"((++)<*>show)"
23:05:21 <lambdabot> "((++)<*>show)\"((++)<*>show)\""
23:06:08 <CakeProphet> I'd say that's the basic layout of a quine, in essence.
23:08:49 <oerjan> :t replicate
23:08:50 <lambdabot> forall a. Int -> a -> [a]
23:20:56 <Lymee> !python a='"""';b="""print "a='"+a+"';b="+a+b+a+';exec b'""";exec b
23:20:57 <EgoBot> a='"""';b="""print "a='"+a+"';b="+a+b+a+';exec b'""";exec b
23:23:53 <CakeProphet> !python print((lambda x:x%x)("print ((lambda x:x%%x)(%r)" )
23:23:54 <EgoBot> File "<stdin>", line 2
23:23:59 <CakeProphet> ... :)
23:25:20 <fizzie> Well, for completeness.
23:25:22 <fizzie> ^ul (aS(:^)S):^
23:25:22 <fungot> (aS(:^)S):^
23:25:28 <ais523> elliott: I ended up completing Hammerfight, by the way; the end seems a little arbitrary
23:25:42 <ais523> and the game itself is very glitchy
23:25:55 <ais523> not only does it crash randomly, I managed to deal INT_MIN damage at one point, several times in a row
23:26:13 <ais523> also, at least twice it's forgotten my entire inventory due to a crash, but rebuilding from there wasn't too hard
23:26:40 <ais523> now I'm trying to work out if its "official" name is "The History of Hammerfight" or not
23:27:24 <Lymee> !python a='"""';b="""exec "a='"+a+"';b="+a+b+a+';exec b'""";exec b
23:27:26 <EgoBot> Traceback (most recent call last):
23:27:28 <Deewiant> I'm pretty sure it just went from Hammerfall to Hammerfight
23:27:59 <ais523> well, "The History of Hammerfight" is what it's called on the title screen
23:28:01 <ais523> but not anywhere else
23:28:10 <ais523> the problem is, the title screen is typically kind-of official
23:28:35 <ais523> melee-fighting helicopters is one of the best concepts for a game ever, though
23:29:10 <oerjan> ^def test bf ,[[>>+[-[-<+++++>]+<<[->[----->+<]>-[-<++++>]<+<[->-[---->+<]>[-<++++>]<++<[->--[---->+<]>[-<++++>]<+++<[->---[---->+<]>++<<[->+<]]]]]>[-<+>]>]<<.,]
23:29:10 <fungot> Mismatched [].
23:29:24 <oerjan> wat
23:29:29 <ais523> it has various other problems; as far as I can tell, armour's main drawback actually benefits its user
23:29:29 <elliott> [[
23:29:30 <Phantom_Hoover> <ais523> melee-fighting helicopters is one of the best concepts for a game ever, though
23:29:44 <ais523> so there's no reason not to max it out
23:29:44 <Phantom_Hoover> It's kind of good, but the controls are a bit clumsy.
23:29:57 <ais523> Phantom_Hoover: setting the mouse DPI right down helps
23:30:09 <Phantom_Hoover> I just sent the rock into orbit around me and hoped for the best.
23:30:12 <ais523> and is basically essential if playing with a touch pad
23:30:27 <oerjan> ^bf >>+[-[-<+++++>]+<<[->[----->+<]>-[-<++++>]<+<[->-[---->+<]>[-<++++>]<++<[->--[---->+<]>[-<++++>]<+++<[->---[---->+<]>++<<[->+<]]]]]>[-<+>]>]
23:30:31 <elliott> I haven't played any of the bundle games yet
23:30:31 <ais523> sending the rock into orbit is what you're meant to do; it becomes increasingly difficult to do in time as the game goes on
23:30:33 <fungot> ...out of time!
23:30:35 <elliott> been too busy wrecking the fortress
23:30:37 <Deewiant> It does have a bunch of issues (although I haven't run into any actual bugs since it was named Hammerfight), but it's still awesome
23:30:45 <ais523> because hitting something often generally knocks it out of orbit
23:31:08 <ais523> and you often want it to swing in a particular direction
23:31:21 <oerjan> ^def test bf ,[>>+[-[-<+++++>]+<<[->[----->+<]>-[-<++++>]<+<[->-[---->+<]>[-<++++>]<++<[->--[---->+<]>[-<++++>]<+++<[->---[---->+<]>++<<[->+<]]]]]>[-<+>]>]<<.,]
23:31:21 <fungot> Defined.
23:31:29 <oerjan> ^test 0123456789
23:31:29 <fungot> K123A567F9
23:31:35 <elliott> Deewiant: Naming something Hammerfight is indeed a very effective way to avoid bugs
23:31:51 <Deewiant> Yup, seemed to work well
23:32:01 <Phantom_Hoover> elliott, And Yet It Moves is OK but it doesn't have any real draw.
23:32:19 <ais523> Deewiant: I get random crashes, occasional loss of the entire inventory, audio randomly fading out (and coming back about a minute later), damage numbers sometimes not coming up for a while, cutscenes (especially the victory cutscene) randomly lasting up to several minutes longer than it should
23:32:29 <ais523> Phantom_Hoover: AYIM is a pretty typical puzzle platformer, as far as I can tell
23:32:41 <Deewiant> I get none of that
23:32:47 <Phantom_Hoover> ais523, yes, which has... little draw.
23:32:50 <ais523> it's one of the better examples of those that I've seen
23:32:51 <Deewiant> I used to get random crashes but as said, not any more
23:33:01 <ais523> some people like puzzle platformers
23:33:13 <Phantom_Hoover> ais523, dunno, I found Braid more engaging.
23:33:20 <Phantom_Hoover> If fiendish.
23:33:30 <ais523> Phantom_Hoover: I haven't played that on
23:33:31 <ais523> *one
23:33:33 -!- Patashu has joined.
23:33:38 <elliott> I should probably download one of the games from the second one I got gifted
23:33:42 <ais523> elliott: anyway, when Vorpal talks about VVVVVV requiring reflexes, what he means is that it requires precision
23:33:43 <elliott> I'm kind of bad at doing things.
23:33:57 <ais523> reflexes are mostly unimportant; precision is, as is memorized timings
23:33:59 <elliott> ais523: well, obviously; it's Vorpal
23:34:26 <elliott> I can only assume his hands are so big that he basically just presses the arrow keys as one amorphous block
23:34:30 <ais523> the trinket normally referred to as "Veni, Vidi, Vici" took me about half an hour, that's pretty much just memorising timings
23:34:36 <elliott> and if it starts going in the wrong direction, he smashes it wildly until it stops
23:34:41 <fizzie> AYIM was all "can't find a suitable OpenGL visual" on both of the two computers I tried it on. But according to the forums it's a known bug, and there's a fixed build already in beta-testing.
23:34:41 <ais523> and that's how long it took me to get the timing down
23:34:42 <elliott> which he interprets as requiring reflexes
23:34:51 <fizzie> ais523: The up-and-down one?
23:34:52 <Deewiant> Did you get a minute in the super gravitron?
23:34:56 <ais523> fizzie: yes
23:35:00 <ais523> Deewiant: nah
23:35:04 <ais523> the gravitron /does/ need reflexes
23:35:08 <elliott> hmm, I'd like to say I find games based on memorisation and repetition boring, but that's bullshit, Dot Action four lyfe
23:35:09 <Deewiant> Yep :-P
23:35:10 <ais523> but that's about the only point in the game that does
23:35:18 <Patashu> it could be said that -learning- the timings requires reflexes
23:35:30 <elliott> what's Cogs like, nobody's mentioned Cogs yet
23:35:31 <fizzie> I suck at the gravitron, I have survived something like 15 seconds in it at most.
23:35:39 <elliott> oh, it's a generic-looking puzzle game
23:35:41 <ais523> elliott: it crashes my GPU
23:35:45 <ais523> so I don't know
23:35:46 <elliott> `addquote <fizzie> I suck at the gravitron, I have survived something like 15 seconds in it at most.
23:35:47 <HackEgo> 571) <fizzie> I suck at the gravitron, I have survived something like 15 seconds in it at most.
23:35:52 <ais523> fizzie: regular, or super?
23:35:55 <elliott> RIP fizzie
23:35:59 <ais523> for super, that's comparable with mine
23:36:00 <Phantom_Hoover> elliott, it segfaults without even starting.
23:36:03 <fizzie> ais523: The super.
23:36:03 <elliott> ais523: what about, umm, Atom Zombie Smasher
23:36:06 <ais523> and that's using the trick where you can wrap the map
23:36:09 <ais523> elliott: haven't played it
23:36:09 <elliott> that's a promising name
23:36:22 <Phantom_Hoover> It's like a Dwarven Atom Smasher.
23:36:25 <Deewiant> After a few weeks of trying I got 90ish seconds, IIRC
23:36:30 <ais523> wow
23:36:42 <ais523> although, that's weeks of trying, so it's plausible
23:36:58 <elliott> I guess Braid is meant to be great but I will have to suspend my knowledge that the developer is stupid (or at least he made a talk linked on reddit that said a bunch of stupid things about programming)
23:37:09 <Deewiant> Not like several hours a day active trying, though
23:37:12 <ais523> I think VVVVVV suffers from running out of things to do with its idea, too
23:37:15 <ais523> that's probably why it's so short
23:37:27 <oerjan> winghci frustration: i don't see a way to end stdin input to :main
23:37:34 <Deewiant> These days I'll typically get 30ish seconds
23:37:34 <ais523> (I don't really like to be able to complete a game I've bought 100% in under 4 hours in my first playthrough)
23:37:54 <fizzie> elliott: I just played Cogs' "End Credits" level. It's... well, it looks nice, and even though it's just block-sliding (which I usually hate) I still managed to slog through.
23:37:56 <ais523> oerjan: does newline control-Z newline work?
23:38:04 <oerjan> hm...
23:38:04 <elliott> I know Gish is good, because oklopol likes it
23:38:06 <ais523> what's the basis of Cogs?
23:38:13 <oerjan> ais523: nope
23:38:51 <elliott> what's, ummm, what's Samorost 2 like
23:39:12 <Deewiant> Weird
23:39:13 <fizzie> ais523: The usual "grid of squares with one empty, you push them around" except what's on the squares are cogs and pipes, and you need to slide them so that the thing works.
23:39:14 <Phantom_Hoover> I didn't get Gish ;_;
23:39:26 <oerjan> oh well it's just main = interact $ collatzToBF . read anyway, so since the parts work...
23:39:32 <elliott> Phantom_Hoover: that's in the first bundle
23:39:34 <ais523> fizzie: ah, I see
23:39:36 <elliott> so if you got the second you'd have it
23:39:38 <elliott> or the first, ofc
23:39:47 <Phantom_Hoover> elliott, FROZENBYYYYYYYYTE
23:39:48 <ais523> so it's basically two independent puzzle games combined
23:39:56 <elliott> Phantom_Hoover: oh, that one doesn't even count
23:40:07 <ais523> you need to work out where the parts go, and once you have, to solve a fifteen puzzle to put them there
23:40:17 <ais523> I don't normally like that sort of design
23:40:37 <fizzie> ais523: There's chimes you sometimes need to ring, and cogs of different size to speed things up, and sometimes there's stuff on the other side of the squares too, and sometimes you need to mix different colors of steam, and sometimes the squares are on a cylinder, and so on.
23:40:39 <elliott> ais523: it might be fun if you could automate the sliding :)
23:40:46 <fizzie> So it has some variation in there.
23:40:49 <Phantom_Hoover> elliott, oh, wait, that's not the people who make it.
23:40:59 <elliott> also is world of goo any good, i played the demo years ago and it was boring
23:41:04 <NihilistDandy> I liked it
23:41:08 <NihilistDandy> But I could never replay it
23:41:10 <fizzie> I liked to Goo too.
23:41:17 <ais523> I haven't played it, but I've seen both playthroughs and speedruns of it
23:41:24 <NihilistDandy> And it's too easy to brute force the whole game
23:41:28 <fizzie> But not enough to get the "OCD" flags on all levels.
23:41:29 <ais523> the plot's a bit surreal, and the level design is relatively interesting
23:41:34 <Deewiant> WoG was okay, not that great IMO
23:41:43 <ais523> but I don't think it's massively difficult, and gets a bit repetitive after a while
23:41:54 <ais523> that was my issue with Crayon Physics, most of the levels can be solved much the same way
23:42:02 <elliott> Osmos
23:42:04 <elliott> is osmos any good
23:42:07 <elliott> WILL I LEAVE ANY GAME UNASKED ABOUT
23:42:11 <ais523> I think the whole point of the game is to find alternate solutions, but there are only four or five strategies you can use
23:42:19 <NihilistDandy> elliott: Osmos was pretty lame
23:42:34 <ais523> I love my "elegant" solution to the sideways-H level, though
23:42:48 <ais523> which uses one pivot, and one approximately-spiral shaped thing to rotate on it
23:42:53 <fizzie> It's not massively difficult to actually get through the Goo, but some of the OCD achievements require quite inspired solutions.
23:43:10 <Phantom_Hoover> <elliott> is osmos any good
23:43:18 <elliott> fizzie: oh no
23:43:19 <Phantom_Hoover> Interesting concept, annoying execution.
23:43:28 <elliott> fizzie: that just leads to me considering the OCD achievements as the _real_ victory
23:43:29 <ais523> how does Osmos work?
23:43:30 <elliott> because the real game was too easy
23:43:31 <Phantom_Hoover> There's a reason Newtonian controls are largely neglected.
23:43:38 <Phantom_Hoover> ais523, you're a bubble.
23:43:44 <elliott> Phantom_Hoover: ASTEROIDS II TREASON
23:43:48 <Phantom_Hoover> And you move by shooting bits of yourself away.
23:43:51 <Deewiant> I liked osmos
23:43:58 <ais523> hmm, weird
23:44:19 <Phantom_Hoover> If two bubbles come into contact, the larger leeches from the smaller.
23:44:56 <ais523> and what's the goal of the game? combat? "platform"-style?
23:45:11 <Phantom_Hoover> ais523, it varies; normally it's to become the largest.
23:45:19 <MDude> That doens't quite make sense unless concentration of solute is somehow proportional to size.
23:45:22 <ais523> competing against other bubbles trying to do the same thing?
23:45:47 <MDude> In fact it makes no sense at all unless that's the case.
23:45:55 <Phantom_Hoover> ais523, the levels I played had them all static.
23:46:09 <ais523> well, I assume that in Osmos, bubbles are intelligent
23:46:15 <Phantom_Hoover> So if you got larger than a certain fraction it was pretty simple to do the rest.
23:46:23 <Phantom_Hoover> ais523, like I said, not in the one I said.
23:46:23 <ais523> and rules for passing of intelligence between bubbles are presumably reasonably arbitrary
23:46:29 <Sgeo> <luke-jr> cyth: except JP2 wasn't a pope
23:46:30 <Deewiant> ais523: Some levels have competitors; some have gravity in which just survival gets tricky
23:46:32 <ais523> or, at least, don't have to reflect real-life physics
23:47:13 <Phantom_Hoover> What makes the controls annoying is that the system means you have fairly limited delta-v, which is pretty hard to get your head around.
23:47:24 <NihilistDandy> Sgeo: lol
23:47:34 <Deewiant> I didn't find it difficult to get used to
23:47:38 <ais523> Phantom_Hoover: I think that's meant to be heavy armour's drawback in Hammerfight
23:47:45 <ais523> but you can counteract it just by moving the mouse faster
23:47:54 <Phantom_Hoover> That's acceleration, not delta-v.
23:48:08 <ais523> ah, right
23:48:09 <Deewiant> You can move noticeably faster without armour, still
23:48:21 <Deewiant> Assuming there's a maximum speed at which you can move your mouse
23:48:39 <fizzie> I did see a non-singular number of people playing Limbo last weekend, and it looked vaguely interesting, at least from a distance.
23:48:44 <ais523> I suppose that, with armour, there's no need to move massively fast
23:48:54 <ais523> when in trouble, I just held down the shield button until I wasn't in trouble any more
23:49:01 <Sgeo> NihilistDandy, http://en.wikipedia.org/wiki/Sedevacantism
23:49:08 <ais523> (you do move noticeably slower while shielding, so slowly that it's basically impossible to swing a weapon)
23:49:18 <Deewiant> Limbo was fun but it suffers from ais's "100% in under 4 hours" problem
23:49:35 <Phantom_Hoover> ais523, delta-v is a rocket thing and it means more or less what it says on the tin.
23:49:37 <ais523> and I'm not even good at computer games!
23:50:04 <Deewiant> Armour doesn't help against the piles of explosives the enemies start throwing at you in the arena
23:50:06 <ais523> well, maybe I am, but I don't think of myself as being good at computer games
23:50:09 <ais523> Deewiant: indeed
23:50:13 <Deewiant> Well, it helps, but not much
23:50:31 <Deewiant> So the "hold the shield button" tactic doesn't always work that well
23:50:37 <ais523> but if you wait for the whole pile to be thrown then run, you're typically just stunned rather than taking damage
23:50:47 <ais523> you don't hold the shield button then, because you're nowhere near the enemies when that happens
23:51:02 <Deewiant> Depends on the explosives in question
23:51:07 <ais523> I suppose so
23:51:15 <Deewiant> The powder keg or whatever it is is one that you really want to distance yourself from as soon as you see it
23:51:26 <ais523> siege bomb?
23:51:32 <ais523> nobody's tried one of those against me in the arena
23:51:54 <ais523> the hardest level for me to beat was the one with the crazy alien boss that has an attack that damages at any range, and also shoots you away from the boss
23:51:58 <Deewiant> Where'd you get the name?
23:52:10 <Deewiant> Available in the shop?
23:52:11 <ais523> you can buy it in the special equipment shop in the hall, sometimes
23:52:17 <ais523> it's random whether it's there or not
23:52:18 <Deewiant> Fair enough
23:52:23 <Deewiant> I don't think I've looked at the shop in years
23:52:24 <ais523> it costs 30 gold, pretty expensive
23:52:36 <Deewiant> But yeah, those
23:52:44 <Phantom_Hoover> elliott, Cortex Command was... a bit too hard?
23:52:46 <ais523> it's how I beat the boss in question, two HP restoratives I've forgotten the name of and a siege bomb
23:52:54 <ais523> together with repeatedly hitting it with an Empire
23:53:08 <ais523> (I set the bomb off by deliberately crashing into it with the boss next to it)
23:53:09 <Phantom_Hoover> I mean, I couldn't clear the tutorial without basically doing a sequential zerg rush.
23:53:32 <Deewiant> The only stuff I've bought from the shop is armour in an emergency, I think
23:53:40 <Phantom_Hoover> Or abusing the fact that you can pilot the dropships and they make a very nice improvised missile.
23:53:44 <Deewiant> I've never used the more exotic stuff
23:53:58 <ais523> the HP restoratives are basically extra lives
23:54:05 <Sgeo> What game is this?
23:54:06 <ais523> if you would die, you get an extra 100 health instead
23:54:06 <Sgeo> Oh
23:54:09 <ais523> Sgeo: Hammerfight
23:56:33 <Deewiant> Bed time -->
23:56:38 <ais523> oh, another annoyance: if a stone mace breaks, the chain is left attached to you, and you can't drop it
2011-08-09
00:01:52 <Sgeo> http://pastie.org/private/bwfbg9itrsaqres5uuyfrw
00:01:53 <Sgeo> oops
00:02:48 <NihilistDandy> lol
00:03:27 <Sgeo> That really wasn't an invitation, it was intended to be pasted in #jesus for luke's benefit
00:05:12 <fizzie> Time bed -->
00:05:21 <Sgeo> Night fizzie
00:05:48 <elliott> hey it's pthing
00:07:19 <NihilistDandy> lol, Phantom_Hoover
00:07:58 <elliott> what
00:08:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:08:14 <Sgeo> <Phantom_Hoover> Worst party.
00:08:14 <Sgeo> <luke-jr> cyth: he was never a pope
00:08:14 <Sgeo> <Phantom_Hoover> Fuck this shit.
00:08:14 <Sgeo> * angelBot sets ban on *!~phantomho@unaffiliated/phantom-hoover/x-3377486
00:08:14 <Sgeo> * angelBot has kicked Phantom_Hoover from #jesus (For swearing)
00:08:25 <oerjan> conversion program now put in http://esolangs.org/wiki/Collatz_function
00:09:09 <NihilistDandy> oerjan: I'm so proud
00:10:42 <NihilistDandy> Have a lizard: http://en.wikipedia.org/wiki/File:Sphaerodactylus_parthenopion_004.jpg
00:11:14 <oerjan> whether the word "optimal" can really be applied to a computational model which is something like doubly exponential, i dunno
00:12:26 <Phantom_Hoover> Sgeo, I always leave #jesus that way.
00:12:50 <Patashu> Oh hey, 3-cell brainfuck
00:13:02 -!- myndzi\ has joined.
00:13:41 <oerjan> NihilistDandy: cute
00:13:46 <Sgeo> <FathZippyZanny> In conclusion, go NY Jets
00:13:46 <Sgeo> <FathZippyZanny> Amen
00:13:52 <NihilistDandy> lol
00:14:36 <Sgeo> I was under the impression that this person was Christian of a ... "Jesus is love' variety
00:15:17 * Phantom_Hoover → sleep
00:15:18 -!- Phantom_Hoover has quit (Quit: Leaving).
00:15:34 -!- myndzi has quit (Ping timeout: 250 seconds).
00:17:25 <NihilistDandy> Skunks are adorable
00:17:27 <Patashu> are there any popular pro-life responses to http://mypage.direct.ca/w/writer/anti-tales.html ?
00:18:23 <NihilistDandy> Patashu: "You'll kill a baby but not a convicted rapist?"
00:18:43 <NihilistDandy> I dunno, I'm pro-death
00:22:27 <oerjan> pro-death and anti-choice
00:23:25 <Patashu> nihilistdandy, have you read the page?
00:24:53 <NihilistDandy> Some of it
00:25:10 <Patashu> it's about pro-lifers having abortions, not pro-choicers
00:25:16 <NihilistDandy> I know
00:25:43 <Patashu> including two right to life club presidents which I lol'd at
00:25:58 <NihilistDandy> But that's the "hypocrisy" of pro-choice, if you listen to the lifers talk
00:26:45 <Patashu> yup but that would not be a response to 'the only moral abortion is my abortion'
00:27:02 <Patashu> tomaima says: even pro-lifers make the choice that we want to give you when needed
00:27:05 <Patashu> the pro-life response is?
00:27:23 <NihilistDandy> Probably none
00:27:34 <NihilistDandy> Ask #jesus
00:27:42 <Patashu> hi jesus
00:35:41 -!- Phantom_Hoover has joined.
00:40:13 -!- elliott has quit (Ping timeout: 240 seconds).
00:47:54 -!- copumpkin has joined.
00:48:42 <Phantom_Hoover> OK, → sleep for real now.
00:48:44 -!- Phantom_Hoover has quit (Quit: Leaving).
00:50:47 -!- MDude has quit (Ping timeout: 255 seconds).
00:51:16 -!- MDude has joined.
00:56:46 <NihilistDandy> Sgeo: http://luke.dashjr.org/tmp/pics/fam.jpg
00:56:49 <NihilistDandy> Oh, god, cannot unsee
00:58:12 <NihilistDandy> Also, he's an idolater, fo' sho': http://luke.dashjr.org/tmp/reference/pkmn/
01:14:38 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:21:34 -!- CakeProphet has quit (Ping timeout: 246 seconds).
01:22:41 <Sgeo> zzo38 is a MegaZeux person right?
01:26:14 -!- zzo38 has joined.
01:26:40 <zzo38> How can I know some thing about compiling rulebook programming?
01:27:13 -!- FireFly has quit (Quit: swatted to death).
01:27:56 <Sgeo> zzo38, http://www.digitalmzx.net/wiki/index.php?title=Zzo38 is you right?
01:28:00 -!- cheater_ has joined.
01:28:07 <Sgeo> Although I don't think I've met "classic" zzo38
01:28:26 <oerjan> wait zzo38 has more than one meaning?
01:30:27 <zzo38> Sgeo: I don't know; that isn't a user page. Although User:Zzo38 on that wiki is me; and the game linked there is mine, so are the three external resources.
01:32:16 <zzo38> (In fact I can see they have mentioned whoever wrote that also seems to be unsure, although the stuff under "MegaZeux Games" and "External Links" headings I can confirm are correct)
01:34:03 <zzo38> But the game described on http://www.digitalmzx.net/wiki/index.php?title=Super_ASCII_MZX_Town is a game I have made. And there are still some mistakes in that game I ought to correct.
01:34:47 <zzo38> (None of the mistakes would deceive you or prevent the game from being completed from what I know, though. Some just allow you go to in ways that is not supposed to be permitted)
01:44:28 <zzo38> How many things in the "Criticize" list do you believe are correct?
01:49:12 <zzo38> oerjan: What do *you* think? Of course a lot of words can have more than one meaning.
01:52:33 <zzo38> I just realized I can use 3D movie glasses to find the dust on my computer screen.
01:52:58 <oerjan> brilliant :P
01:53:41 <zzo38> Not actually wearing them; I need to use the glasses backwards to make this work (I don't know why).
01:54:24 <zzo38> And the computer needs to be showing a white screen.
01:54:37 <zzo38> If you have LCD monitor and REALD 3D movie glasses, you can try it yourself.
01:55:11 <oerjan> only the former
01:56:12 <zzo38> You also need to rotate 45 degrees counterclockwise
01:57:50 <zzo38> I wonder if I can somehow use the movie glasses and a mirror in order to create stereovision pictures on my computer.
01:58:13 <zzo38> Or maybe just these things are not sufficient.
02:01:04 <zzo38> Do you know how these movie glasses work and why they have the effects they do? I do know about some simpler ones that are simply linear polarization filters, but these are something else. Someone told me it is circular polarization.
02:04:11 <ais523> it's circular polarizatoin
02:04:15 <ais523> *polarization
02:05:32 <zzo38> I do not completely understand circular polarization though. I read something about it in Roger Penrose's book "Road to Reality". But I still don't know completely.
02:06:02 <ais523> it's basically linear polarization, but the direction changes over time, very quickly
02:06:20 <zzo38> I look up some things in Wikipedia about it
02:07:30 <zzo38> OK, so there is left-handed and right-handed; maybe this explains why it is different when looking through it forward or backward. Is it? I don't know.
02:08:09 <ais523> yes, it should be
02:09:09 <Lymee> > takeWhile (<5) [1, 2, 3, 4, 5, undefined]
02:09:11 <lambdabot> [1,2,3,4]
02:09:12 <Lymee> > takeWhile (<=5) [1, 2, 3, 4, 5, undefined]
02:09:13 <lambdabot> [1,2,3,4,5*Exception: Prelude.undefined
02:09:35 <Lymee> Obfuscating Haskell must be fun.
02:09:42 <zzo38> Now, how are LCD monitors polarized?
02:29:27 -!- CakeProphet has joined.
02:44:03 -!- lament has joined.
03:09:13 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:21:31 -!- azaq23 has joined.
03:27:31 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:48:14 -!- derrik has joined.
03:48:45 -!- derrik has left.
04:15:59 -!- sebbu has quit (Ping timeout: 255 seconds).
04:37:57 -!- sebbu has joined.
04:39:44 -!- MDude has changed nick to MSleep.
04:52:24 <zzo38> The rulebook programming I want to implement and figure out how to compile (probably into Haskell) is similar to that of Inform 7 (refer to chapter 18 of the Inform 7 manual), although the Inform 7 rulebooks is insufficient, and Inform 7 is very insufficient. Do you know anything about this?
04:52:56 <zzo38> I can describe various examples (including both things in the Inform 7 manual and things that are not in Inform 7 at all) if you want example, please.
04:59:26 -!- oerjan has quit (Quit: Good night).
05:03:50 <coppro> which manual?
05:04:21 <coppro> inform 7 has two
05:05:35 -!- evincar has joined.
05:06:01 <zzo38> The "Writing with Inform" manual.
05:06:37 <zzo38> But to truly understand what I mean, you would also have to understand both Haskell and Magic: the Gathering.
05:07:06 <zzo38> The features of rules in Inform 7 is not quite sufficient, although they do have some of the stuff I want.
05:07:44 -!- burned has joined.
05:07:55 <zzo38> If you would like examples, please ask about it.
05:08:04 <zzo38> Or, clarification, etc
05:08:53 <burned> how esoteric?
05:09:31 <zzo38> burned: About what?
05:09:47 <burned> this room. how esoteric is this room?
05:10:04 <coppro> I understand Haskell and Magic
05:11:15 <lament> burned: pretty fucking esoteric
05:11:25 <burned> hmm, indeed
05:11:27 <lament> "We're not really esoteric. It's just that nobody cares about us."
05:11:38 <burned> indeed, indeed.
05:11:43 <zzo38> coppro: Good, because I would need help from someone who understands these things.
05:11:47 <NihilistDandy> dead inside
05:12:03 <evincar> Esoteric programming languages is (ostensibly) the topic.
05:12:39 <coppro> zzo38: are you talking about writing something akin to a Magic card rules parser?
05:12:58 <NihilistDandy> coppro: I think he's talking about writing a language that obeys Magic rules
05:13:36 <zzo38> coppro: Sort of. Not quite. Rather, something that is a programming language that has the features for designing such things.
05:13:47 <zzo38> NihilistDandy: Not quite.
05:14:20 <coppro> zzo38: interesting
05:14:26 <coppro> zzo38: can you provide some examples?
05:14:38 <coppro> preferably not Inform as I'm not familiar with it
05:15:37 <zzo38> coppro: Good, because I am not actually familiar with Inform either; I just read the documentation and examples. But yes I can give some examples.
05:15:42 <burned> zzo38: you would like a man who goes by the nick betta_y_omega
05:17:14 <burned> very much into difficult existential observations, just as you seem to be.
05:17:23 <zzo38> You could have the "if a creature has toughness>0 and damage>=toughness, destroy it immediately" rule belonging to the "state based effects rules".
05:17:41 <zzo38> An object could have a rule or rulebook belonging to it.
05:18:56 <zzo38> Such as, a static ability (represented by some Haskell type, possibly) belonging to something, and the static ability is a category of a rule, belonging to it, that means when calculating the power of a creature, if that creature is black, add 1 to the result.
05:19:07 <zzo38> And then it too can be called, overridden, and everything else.
05:19:56 <evincar> By the way, folks in here might like this question of mine on Programmers.SE: http://programmers.stackexchange.com/q/99582/2107
05:20:06 <zzo38> Consider you have: power :: Object -> (Maybe Int)
05:20:20 <coppro> zzo38: Hmm... I sort of understand the concept
05:20:31 <coppro> but I would need to see a prototype or more fully-fleshed example
05:21:45 <zzo38> Now there is a rule belonging to something, the rule adds stuff onto this function, and the rule has to be told by the other rules when it is to be applied.
05:23:45 <zzo38> I can try to figure out prototypes and more fully-fleshed examples, possibly tomorrow or I have no more time today (it is 10:22 PM in my timezone). I also have the following wiki page, which I will try to type more things on, and anyone with an account can help type things. Possibly some things already there can also be adjusted: https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language
05:23:50 <burned> I suspect it stops being a rule at this point
05:23:51 <zzo38> s/ or / if /
05:24:40 <zzo38> s/ or I have no more time today / in case I have no more time today /
05:26:56 <NihilistDandy> Sgeo: jasonmxristos is funny
05:27:27 <zzo38> If you have anything else to say about it before I join again tomorrow, either type it on here (and I might review the logs, or you can tell me which UNIX timestamps they are near, etc), or type it on the wiki I mentioned, or type it on my User Talk page on esolang wiki.
05:27:38 <zzo38> But for now, I think I will sleep.
05:28:09 <coppro> ok
05:28:13 <Sgeo> NihilistDandy, I think he needs help
05:28:13 -!- zzo38 has quit (Quit: Oops the light exploded now I cannot read the book anymore (just joking)).
05:28:53 <NihilistDandy> Sgeo: DIVINE INTERVENTION
05:30:07 <pikhq_> May the blessing of Athe be upon him.
05:39:18 <Sgeo> NihilistDandy, please don't kill me
05:39:41 <NihilistDandy> Are you directing #jesus here tangentially?
05:39:43 <NihilistDandy> :D
05:43:23 -!- Wamanuz has quit (Read error: Connection reset by peer).
05:43:48 -!- Wamanuz has joined.
05:47:57 -!- GreaseMonkey has joined.
06:05:02 <Sgeo> Hussdate
06:05:26 -!- lament has quit (Ping timeout: 276 seconds).
06:11:15 <fizzie> Is that some sort of a silly-calendar 'date' replacement, like 'ddate'?
06:11:47 <fizzie> `run ddate
06:11:48 <HackEgo> Today is Sweetmorn, the 2nd day of Bureaucracy in the YOLD 3177
06:11:55 <fizzie> Heh, that thing is so widespread.
06:12:07 <ais523> I thought it was in coreutils
06:12:11 <ais523> but I'm not entirely sure
06:12:26 <fizzie> htkallas@pc112:~$ dpkg-query -S `which ddate`
06:12:26 <fizzie> util-linux: /usr/bin/ddate
06:12:31 <ais523> ah no, util-linux-ng
06:13:29 <fizzie> I have a vague recollection some distribution or another opted to manipulate their util-linux package to not include ddate.
06:14:22 <ais523> sdate is great too, particularly because it /isn't/ a silly date replacement, but something infinitely more awesome
06:15:00 <fizzie> There have been "ddate should be in some other package, we don't want this sort of nonsense and idiocy on our servers -and/or- makes baby Jesus cry" bug reports in Debian every now and then.
06:15:38 <fizzie> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=149321 "People with more traditional moral values might not appreciate a reference to or advertisement for this movement being present on their system. -- This is significant because it can prevent such people from recommending Debian."
06:15:55 <pikhq_> That'd be much easier to respond to if they had Slackware-type sensibilities.
06:16:12 <pikhq_> Namely, "fuck non-necessary patches".
06:16:18 <NihilistDandy> morals are just paintings on the wall
06:16:19 <fizzie> Oh, they actually did drop it at one point.
06:16:26 <pikhq_> Though the Church of the Subgenius sensibilities help too.
06:17:10 <fizzie> util-linux 2.11z-3 "* Drop ddate. Closes: #149321, #174459, #180737"; seems it came back later on though.
06:17:33 <fizzie> "I for one will not stand for this. I personally use ddate, I use it in some scripts, I know other people do the same, and I know some Debian developers would be annoyed if ddate was removed. There are even programs that use ddate, e.g. freecraft and the games that use its engine."
06:18:39 <pikhq_> Pity it's not POSIX.
06:18:45 <NihilistDandy> Today is Sweetmorn,the 2nd day of Bureaucracy in the YOLD 3177
06:19:01 <NihilistDandy> I guess the bot and I are on the same day, for once
06:19:20 <pikhq_> Also, people who complain about that shouldn't see Xscreensaver.
06:19:27 <pikhq_> Last I checked that's full of Bob.
06:19:53 <ais523> $ sdate ddate
06:19:54 <ais523> Today is Sweetmorn, the 2nd day of Bureaucracy in the YOLD 3159
06:19:59 <ais523> interesting
06:26:33 <fizzie> ais523: It uses tm_yday and tm_year members; based on a quick look at the sdate sources, the septemberfy() function does not modify that. (Just tm_mon and tm_mday.)
06:26:48 <ais523> ah, OK
06:27:31 <fizzie> Otherwise it would overflow the season; there's a while (funkychickens.day >= 73) { funkychickens.season++; funkychickens.day -= 73; } loop in ddate.
06:29:15 <fizzie> It is not the cleanest codebase of them all, what with lines like "wibble = snarf;" and "hastur = convert(bob, raw);".
06:29:39 <ais523> time for me to go home, anyway
06:29:42 -!- ais523 has quit (Remote host closed the connection).
06:29:44 <pikhq_> Eh, it's ddate.
06:30:06 <pikhq_> If it were slackdate it'd have slack. But alas, it does not.
06:32:48 <fizzie> util-linux 2.11z-3 "Drop ddate."; util-linux 2.11z-4 "Put ddate back in, just to keep the natives quiet."
06:33:00 <pikhq_> :D
06:49:55 -!- evincar has quit (Quit: leaving).
07:04:44 -!- azaq23 has quit (Quit: Leaving.).
07:59:12 <Vorpal> <ais523> elliott: it crashes my GPU <-- Hammerfight crashes X11 for me, cogs just crashes itself.
07:59:55 <fizzie> Aquaria crashes itself for me.
08:00:02 <fizzie> 2011 - year of Linux on the desktop?
08:00:42 <fizzie> Admittedly Cogs too segfaulted at start-up, but only once. Don't know what was up with that.
08:01:24 <Vorpal> fizzie, Aquaria being?
08:01:48 <fizzie> I guess it was in the #1 bundle.
08:01:57 <Vorpal> fizzie, I'm on ATI, and catalyst. So I'm not terribly surprised stuff crashes for me
08:01:57 <fizzie> Which I got as part of the #2 one.
08:02:02 <Vorpal> ah
08:02:15 <Vorpal> fizzie, same deal with "more than average" as this time?
08:02:19 <fizzie> Yes.
08:02:29 <fizzie> They seem to have a hobbit of doing that.
08:02:37 <Vorpal> heh
08:03:01 <fizzie> Someone suggested only purchasing every other bundle, to "optimize".
08:03:47 <Deewiant> Aquaria was good.
08:04:12 <fizzie> I guess I should try it on the laptop; only tried desktop so far.
08:06:35 <fizzie> I think I have something like 15 bundle games still completely untested, sadly.
08:07:20 <Vorpal> <Deewiant> Aquaria was good. <-- what sort of game is it?
08:07:38 <Deewiant> "Aquaria is a 2D sidescrolling action-adventure computer game"
08:07:42 <Vorpal> <fizzie> Someone suggested only purchasing every other bundle, to "optimize". <-- I was thinking about that just before you said it, but the frozenbyte one breaks the pattern
08:08:00 <Vorpal> fizzie, btw I found that steelstorm one quite fun
08:08:08 <Vorpal> I don't normally like that sort of game
08:08:33 <fizzie> Vorpal: Well, given that the two-in-one deals require above-average prices, the most optimal way (moneywise, I mean) would probably to get each bundle separately and pay $0.01 for each.
08:09:08 <Vorpal> fizzie, actually they gave it to everyone who got it before they announced the above-average this time.
08:09:11 <Vorpal> iirc
08:09:30 <Vorpal> at least I heard so from a friend who got it on day 1, but was below average.
08:09:39 <Vorpal> (personally I was above average)
08:10:14 <Vorpal> fizzie, tried And Yet It Moves?
08:10:19 <Vorpal> it is really great
08:10:58 <fizzie> <fizzie> AYIM was all "can't find a suitable OpenGL visual" on both of the two computers I tried it on. But according to the forums it's a known bug, and there's a fixed build already in beta-testing.
08:11:04 <Vorpal> fizzie, oh
08:11:28 <fizzie> http://andyetitmoves.net/forum/index.php?topic=162.0
08:11:46 <Vorpal> fizzie, btw do we indie bundle buyers get future updates to things like VVVVV and AYIM?
08:12:09 <Vorpal> fizzie, I don't get any sound in crayon physics for example
08:12:51 <fizzie> No clue. I would sort-of assume that they update the bundle download page packages, but perhaps not quite immediately.
08:13:15 <Vorpal> ah
08:13:27 <fizzie> But that was just a guess.
08:13:50 <Vorpal> also I have to say braid was bloody good
08:16:37 <fizzie> I liked the game, but I recall getting a bit of a "pretentious asshole" feel from something the author had written. Still, that was easy enough to ignore.
08:16:52 <fizzie> Also (like others have commented) it's not very replayable after going through it once.
08:17:08 -!- choochter has joined.
08:17:28 -!- teuchter has joined.
08:21:12 <Vorpal> fizzie, that is true
08:21:44 <fizzie> Not sure I can think of any very replayable platformers though.
08:22:08 <Vorpal> fizzie, hm randomised platformer maps?
08:22:14 <Vorpal> never seen that
08:22:19 <Vorpal> but I guess it could work
08:22:50 <fizzie> Level design is hard enough for humans; getting something that's both fun and challenging out of rand() might be slightly difficult.
08:23:01 <fizzie> I don't think I've seen it done either.
08:23:24 <Deewiant> http://www.supermariobrothers.org/infinite-mario.html
08:24:04 <Vorpal> Deewiant, it is flash, can't play it. Is it any good?
08:24:46 <Deewiant> http://www.mojang.com/notch/mario/ is Java
08:25:18 <Vorpal> java in browser, might work in appletviewer I guess
08:25:49 <Vorpal> loads in appletviewer, input broken
08:25:50 <fizzie> Deewiant: I think I saw that; also have seen one of those mario AIs been tested against random levels.
08:25:54 <Vorpal> guess I'll check another day
08:26:10 <Vorpal> bbl, several hours
08:33:52 -!- copumpkin has quit (Ping timeout: 252 seconds).
08:34:18 -!- copumpkin has joined.
08:40:21 <Patashu> The best approach to take with a procedural platformer would be to take challenges, jumps, enemy placements and so on that are known to work and string them together
08:40:29 <Patashu> Kind of like the infinite mode in megaman 10 but more flexible?
08:49:55 -!- choochter has quit (Read error: Connection reset by peer).
08:50:07 -!- teuchter has quit (Read error: Connection reset by peer).
08:50:45 -!- choochter has joined.
08:50:55 -!- teuchter has joined.
09:00:59 -!- teuchter has quit (Quit: lang may yer lum reek..).
09:07:06 -!- NihilistDandy has quit (Quit: sleep).
09:10:01 -!- myndzi\ has quit (Ping timeout: 240 seconds).
09:14:19 <cheater_> anyone know if XQuery's "return" is similar to Python's "yield"?
09:26:00 -!- myndzi has joined.
09:26:31 <fizzie> I don't think it's quite as generic as a Python generator, but somewhat similar, yes; the other parts define a stream of values-for-the-variables, and then the "return" expression is evaluated for each set of values, and the result is a sequence of those. (Disclaimer: never actually *used* XQuery for reals.)
09:30:31 -!- FireyFly has joined.
09:33:57 -!- myndzi\ has joined.
09:35:04 -!- FireyFly has quit (Client Quit).
09:35:14 -!- monqy has quit (Quit: hello).
09:35:22 -!- myndzi has quit (Ping timeout: 258 seconds).
09:38:36 -!- FireyFly has joined.
09:42:02 -!- myndzi has joined.
09:45:09 -!- myndzi\ has quit (Ping timeout: 276 seconds).
09:47:21 <Lymee> Um.
09:47:26 <Lymee> Why arn't generators in Python callable?
09:48:22 <Lymee> !python exec "def generator():\n\twhile True:\n\t\tyield 1\ngen=generator()\nprint gen.next()"
09:48:24 <EgoBot> 1
09:48:29 <Lymee> !python exec "def generator():\n\twhile True:\n\t\tyield 1\ngen=generator()\nprint gen()"
09:48:30 <EgoBot> Traceback (most recent call last):
09:50:33 <fizzie> Maybe they just assume you'll always be using them in places such as for loops where the generator interface (.next()) is used implicitly.
09:51:31 <Nisstyre> fizzie: you can use them in infinite loops as well
09:51:41 <Nisstyre> you can also pass things back and forth between them after you start them
09:54:37 <Lymee> Can you write coroutines with generators?
09:55:07 <Nisstyre> Lymee: not quite
09:55:20 <Nisstyre> it depends on your definition of coroutines
09:55:41 <Nisstyre> you might be able to get something similar
09:58:19 <fizzie> Google finds at least one wrapper class that wraps a generator object into a class so that "foo()" does "foo.next()" and "foo(x)" does "foo.send(x)".
09:59:35 <fizzie> (So seems that other people have also wanted that sort of syntactic sugar.)
10:00:20 <Nisstyre> yeah, that is pretty cool
10:04:03 <Patashu> I think changing it now might break people's generators that have something for () already?
10:04:16 <Patashu> unless a new () implementation shadowed the default generator one
10:05:33 <fizzie> I don't think a generator can currently have anything for (), since you can't stick a __call__ attribute into the generator object. (That's why the wrapper class provides a separate class instead of mungling the generator.)
10:05:51 <Patashu> aah, ok
10:05:52 <Patashu> then why not do it?
10:06:20 <fizzie> I'm actually a bit surprised there doesn't seem to be a PEP for it.
10:06:32 <fizzie> Perhaps people just don't mind the .next/.send method names so much?
10:12:51 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:13:02 -!- myndzi\ has joined.
10:15:33 -!- myndzi has quit (Ping timeout: 255 seconds).
10:25:37 -!- cheater_ has joined.
10:28:10 -!- GreaseMonkey has quit (Quit: The Other Game).
10:29:57 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:42:05 -!- sebbu2 has joined.
10:42:58 -!- cheater_ has joined.
10:44:26 -!- sebbu has quit (Ping timeout: 240 seconds).
10:44:39 -!- sebbu2 has changed nick to sebbu.
11:34:37 -!- cheater_ has quit (Quit: Ex-Chat).
11:35:08 -!- cheater_ has joined.
11:43:10 <tswett> Meinaa nukahtaa.
11:58:56 -!- Phantom_Hoover has joined.
12:00:23 <Phantom_Hoover> I go to bed an hour and a half earlier than normal and I get up an hour later.
12:00:39 <Phantom_Hoover> IT'S NOT MEANT TO WORK THAT WAY
12:20:12 -!- aloril has quit (Ping timeout: 258 seconds).
12:33:48 -!- aloril has joined.
12:36:19 -!- BeholdMyGlory has joined.
13:07:02 <Gregor> Phantom_Hoover: Sleep works in ~3-hour cycles. If your sleeping time presented an ideal wakeup time before, then your choices were to either wake up ~1.5 hours earlier or ~1.5 hours later. Since one factor in when we wake up is our environment (i.e. how light it is), you probably weren't inclined to choose the earlier. But waking up at your normal time was never an option.
13:42:02 -!- choochter has quit (Quit: lang may yer lum reek..).
13:47:40 -!- burned has left.
13:55:29 -!- MSleep has changed nick to MDude.
14:03:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:07:50 -!- lament has joined.
14:14:45 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:19:10 -!- FireyFly has changed nick to FireFly.
14:27:04 -!- copumpkin has joined.
15:05:42 -!- itidus20 has joined.
15:19:36 <Gregor> Suggestion for a simple X window manager which needs only the left mouse button?
15:19:50 <Gregor> (And has a menu)
15:19:58 <Gregor> (And is not twm :P )
15:37:11 <pikhq_> Oh, sure, be anti-tiling.
15:40:59 -!- jcp|1 has joined.
15:42:12 -!- jcp has quit (Ping timeout: 276 seconds).
15:42:48 <Phantom_Hoover> <Gregor> Suggestion for a simple X window manager which needs only the left mouse button?
15:42:56 -!- jcp|other has quit (Ping timeout: 250 seconds).
15:43:01 <Phantom_Hoover> What X window manager *do* you need the right mouse button for?
15:46:34 -!- jcp has joined.
15:46:55 <Phantom_Hoover> <pikhq_> Oh, sure, be anti-tiling.
15:47:00 <Phantom_Hoover> twm... isn't tiling?
15:49:40 <CakeProphet> I prefer the fruit-based metaphor
15:49:46 <CakeProphet> I have irssi displaying on a pear.
15:50:00 <CakeProphet> in one of my many fruit baskets.
15:51:19 -!- lament has quit (Ping timeout: 252 seconds).
15:52:18 <pikhq_> Phantom_Hoover: "has a menu" is fairly anti-tiling though.
15:54:51 -!- derrik has joined.
15:57:50 -!- elliott has joined.
16:21:02 <Gregor> Phantom_Hoover: Many of the desktop-menu ones need the right mouse button to access the menu
16:24:41 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of chloride, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
16:29:02 -!- Taneb has joined.
16:34:01 <elliott> 05:15:42: <burned> zzo38: you would like a man who goes by the nick betta_y_omega
16:34:01 <elliott> 05:17:14: <burned> very much into difficult existential observations, just as you seem to be.
16:34:03 <elliott> oh my god
16:34:22 * elliott wipes tears from eyes
16:35:27 <Phantom_Hoover> WTF, VVVVVV
16:35:39 <Phantom_Hoover> Why
16:35:40 <Sgeo> Phantom_Hoover, what?
16:35:45 <Phantom_Hoover> Is there a giant crying elephant
16:35:58 <Sgeo> (No, I am not Satan)
16:36:09 -!- Taneb_ has joined.
16:36:17 <elliott> 05:19:56: <evincar> By the way, folks in here might like this question of mine on Programmers.SE: http://programmers.stackexchange.com/q/99582/2107
16:36:17 <elliott> i assumed you were linking this as a stupid question before i read the rest of the line
16:36:28 -!- Taneb has quit (Ping timeout: 260 seconds).
16:36:37 -!- Taneb_ has changed nick to Taneb.
16:36:44 <elliott> "But there seems to be a broad consensus that Lisp represents the theoretical pinnacle of programming language design."
16:36:46 <elliott> ahahahahauaihuifkjgfdjdkfg
16:36:51 <elliott> "Which I guess amounts to questioning whether the lambda calculus is in fact the ideal abstraction of computation."
16:36:58 <Phantom_Hoover> Someone cites Clojure as being better.
16:37:02 <elliott> yes Lisp is definitely the closest possible language to the lambda calculus
16:37:12 <elliott> this is the stupidest question i've ever read good lord
16:37:35 * Phantom_Hoover wonders if, just maybe, liking Clojure is not grounds for immediate hatred.
16:37:51 <elliott> Phantom_Hoover: The guy behind Arcane Sentiment likes Clojure well enough, so it isn't
16:37:52 <elliott> .
16:37:58 <elliott> Try not to be a Stanislav.
16:38:12 <Phantom_Hoover> elliott, but... you know what happened when I talked to the Clojurians.
16:38:29 <elliott> Phantom_Hoover: Yes, so the IRC channel is of especially bad quality.
16:39:01 <elliott> Rich Hickey seems intelligent enough; I remember looking into Clojure when he announced it on reddit years ago.
16:39:11 -!- Taneb has quit (Read error: Connection reset by peer).
16:40:50 <fizzie> Best automated customer support line ever. It's open only until 6pm for June-August, but the recently mailed letter didn't say so. Calling the number gives a recording which requests an account number and a personal passcode, and says "if you don't have a passcode, you can order it by calling [the same number I'm calling to]", and nowhere in the recording does it bother to mention that all their humans have left the building already.
16:41:22 <fizzie> At least the website does list the summer opening hours.
16:41:47 <CakeProphet> So what's wrong with Clojure?
16:42:04 <elliott> 08:13:50: <Vorpal> also I have to say braid was bloody good
16:42:04 <elliott> 08:16:37: <fizzie> I liked the game, but I recall getting a bit of a "pretentious asshole" feel from something the author had written. Still, that was easy enough to ignore.
16:42:15 <CakeProphet> also, more importantly I guess, what makes appreciation of a language a fault in character.
16:42:24 <elliott> fizzie: I had this feeling that he was that type, but it was the "abstraction is totally bad, doods" programming talk he gave that made me start my seething rage subprocess.
16:42:32 <elliott> (Also known as: the process that dominates my system.)
16:42:44 <elliott> CakeProphet: You'd talk to a PHP fan?
16:42:48 <Phantom_Hoover> CakeProphet, the time I went into the IRC channel I spent ages trying to overcome the consensus that O(log_32(n)) == O(ln n)/
16:42:48 <CakeProphet> elliott: dynamic typing = pinnacle of programming language design
16:42:54 <CakeProphet> elliott: sure. I don't agree though.
16:43:06 <elliott> CakeProphet: See, you're CakeProphet, so I don't know whether you're joking or being serious.
16:43:08 <elliott> Please clarify.
16:43:20 <elliott> Phantom_Hoover: =/=, surely.
16:43:28 <Phantom_Hoover> Oh, duh.
16:43:37 <CakeProphet> elliott: first statement was serious. second was serious.
16:43:44 <CakeProphet> ...er first statement was joking. :P
16:43:53 <elliott> CakeProphet: Sorry you're already on /ignore :-P
16:43:59 <elliott> FOREVEVR
16:44:03 <elliott> Also I can't type.
16:45:27 <elliott> 13:07:02: <Gregor> Phantom_Hoover: Sleep works in ~3-hour cycles. If your sleeping time presented an ideal wakeup time before, then your choices were to either wake up ~1.5 hours earlier or ~1.5 hours later. Since one factor in when we wake up is our environment (i.e. how light it is), you probably weren't inclined to choose the earlier. But waking up at your normal time was never an option.
16:45:39 <elliott> Gregor: Citation? I've never heard this but I should probably pay attention if it's true/
16:45:39 <elliott> .
16:45:59 <Phantom_Hoover> I'm slightly sceptical that sleep is aligned to 3-hour periods.
16:46:06 <Phantom_Hoover> I mean, what's the alignment held by?
16:46:47 <elliott> Weeeell, there is the circadian rhythm body clock crap, so it /could/ be true, but I'm gonna hold out on a citation.
16:46:48 <fizzie> Phantom_Hoover: You can add __attribute__ ((aligned (1))) to your sleep to get unaligned sleep.
16:50:54 <Vorpal> <Phantom_Hoover> I mean, what's the alignment held by? <-- those radio clock signals. Yet another reason for a tinfoil hat
16:51:46 <Vorpal> elliott, I seem to remember hearing about a 3 hour cycle thingy when sleeping, never heard anything about it being aligned to anything in specific
16:52:05 <elliott> Sounds like pop science bull to me, at least at first glance
16:52:21 <itidus20> the thing is
16:52:42 <itidus20> um
16:54:17 <itidus20> ok just to put things into perspective, say what you will of my next statement but the science of sleep will be used by evil people
16:55:01 <itidus20> its like, just imagine if you can set off an atomic bomb inside someones mind
16:55:11 <itidus20> metaphorically
16:55:33 <itidus20> psychology is probably looking for the great mental nuke
16:55:34 <Phantom_Hoover> Will we have.........
16:55:49 <Phantom_Hoover> Sleep schedule bombs
16:55:57 <Vorpal> http://en.wikipedia.org/wiki/Sleep#Physiology <-- "In humans, each sleep cycle lasts from 90 to 110 minutes on average."
16:56:02 <Vorpal> hm doesn't really fit 3 hours
16:56:03 <Vorpal> at all
16:56:37 <itidus20> control over our minds and our thoughts requires some degree of harmony with the environment around us
16:57:06 <Sgeo> And the use of quantum mechanics to prove that our minds are not material?
16:57:25 <Sgeo> ^^indicator that I think this is going into pseudoscience territory
16:57:49 <itidus20> they apparently don't know exactly what triggers sleep yet
16:57:56 <Phantom_Hoover> No, as the official science consultant I say it's fine.
16:57:56 <itidus20> or if they do they're keeping awfully quiet about it
16:58:00 <Vorpal> thunderstorm, bbl
16:58:26 <Phantom_Hoover> Lightning strike, lightning strike, lightning strike.
16:58:33 <itidus20> it seems like to me its a kind of distributed defence against an external force controlling ones sleep
16:58:53 <itidus20> distributing the causes of sleep widely
16:59:42 <itidus20> for the 1% benefit of this control, is 99% disaster
16:59:49 <elliott> death causes sleep
17:00:24 <itidus20> death is a mystery too right?
17:00:32 <Phantom_Hoover> Yes.
17:00:44 <Phantom_Hoover> We have no idea what causes it.
17:00:45 <itidus20> the eidetic reduction of sleep and death remain elusive
17:01:02 <CakeProphet> life begats deaths.
17:01:06 <Phantom_Hoover> Isn't eidetic a thing with your memory?
17:01:31 <itidus20> eidetic reduction is a thing i stumbled on in a wiki page once... you guys probably know it by a better name
17:01:33 <Phantom_Hoover> "eidetic reduction, in phenomenology, a method by which the philosopher moves from the consciousness of individual and concrete objects to the transempirical realm of pure essences and thus achieves an intuition of the eidos (Greek: “shape”) of a thing"
17:01:34 <elliott> Phantom_Hoover: It's a kind of cheese.
17:01:37 <Phantom_Hoover> Oh, makes sense now.
17:01:45 <Phantom_Hoover> It's just pretentious bullshit.
17:01:50 <elliott> Transempirical.
17:01:51 <elliott> Best word.
17:02:13 <CakeProphet> java interfaces.
17:02:16 <CakeProphet> are eidetic.
17:02:25 <Phantom_Hoover> You can put trans- or quasi- in front of any desirable adjective and immediately you can use it for anything.
17:02:28 <Sgeo> I think it's like asking "What _is_ a chair, and chairness"?
17:02:42 -!- Sgeo has changed nick to WhatIsAChair.
17:02:46 <elliott> Quasieidetic.
17:02:47 <itidus20> i think its related to parameterization
17:02:48 <Phantom_Hoover> The answer is transquasichairness
17:02:48 -!- Vorpal has quit (Ping timeout: 255 seconds).
17:02:58 <elliott> itidus20: Traansparameterisation
17:03:00 <Phantom_Hoover> itidus20, *metaparameterisation
17:03:06 <elliott> Quasimetatransparameterisation.
17:03:16 <elliott> even though the sound of it is something quite atrocious
17:03:22 <itidus20> parameterization is much of a nicer word
17:03:29 <Phantom_Hoover> *supratrocious
17:03:43 <Phantom_Hoover> itidus20, *circumnicer
17:03:44 <elliott> if you say it loud enough you'll always sound quasimetatransprecocious
17:03:53 <elliott> quasimetatranscircumparameterisation
17:04:06 <Phantom_Hoover> elliott, you forgot supra.
17:04:23 <elliott> Phantom_Hoover: You just don't understand ologyology.
17:04:23 <itidus20> people use big words around me.. i go on wiki.. find a few new big words.. im just an agent of these words
17:04:34 <elliott> itidus20: the words are controlling you
17:04:49 <CakeProphet> the words call me to a higher existence.
17:04:56 <CakeProphet> I do their will as it is my own.
17:05:07 <elliott> is anything more powerful than quasimetatranscircumparameterisation
17:05:11 <elliott> (in this joke quasimetatranscircumparameterisation stands in for lisp)
17:05:34 <Phantom_Hoover> itidus20, your knowledge is measured by the length of the words it's expressed in, after all.
17:05:40 <itidus20> in other words..
17:05:44 <itidus20> what i meant to say was
17:06:05 <CakeProphet> superextraintersubquasimetatranscircumparameterisation
17:06:31 * itidus20 stops. Backs up a second. Sometimes I try to squeeze what i'm trying to say into some obscure word which doesn't mean what I want it to mean.
17:06:58 <Phantom_Hoover> *contramean
17:07:42 <itidus20> The minimal state of things which makes something go from being awake to asleep.. alive to dead
17:08:06 <itidus20> minimal as in minimal *shrugs shoulders*
17:09:31 <Phantom_Hoover> *iridiminimal
17:09:31 <Phantom_Hoover> (iridi- is not a real prefix, I just made it up and it probably means rainbows.)
17:09:44 <itidus20> we know that chopping off the head of an animal with a head will usually kill it
17:11:07 <itidus20> which could be related to destroying the circulatory and respitory systems
17:11:16 <Phantom_Hoover> So you're saying that going to sleep is basically having your head chopped off?
17:11:40 <CakeProphet> But then does saying something make it true? :3
17:11:45 <Phantom_Hoover> Also it's nothing to do with either, it's because life is more or less defined in terms of brain activity and decapitation removes the energy supply to the brain.
17:11:46 * CakeProphet sits in his armchair.
17:11:52 <Phantom_Hoover> CakeProphet, AHA I KNEW YOU WERE LYMEE ALL ALONG
17:11:56 <itidus20> i know giving someone tranquilizers is likely to put them to sleep
17:12:00 <elliott> Phantom_Hoover: AHA SO PLANTS ARE DEAD
17:12:07 <itidus20> plants don't die easy
17:12:18 <itidus20> heheheh
17:12:22 <Phantom_Hoover> elliott, well OK among things that have a brain it is.
17:12:29 <elliott> Phantom_Hoover: That's brainism.
17:12:33 <itidus20> plants are resilient motherfuckers
17:12:48 <CakeProphet> Phantom_Hoover: what gave it away?
17:12:54 <CakeProphet> Phantom_Hoover: also, what?
17:13:08 <Phantom_Hoover> Because the brain is almost always the central control system so removing it breaks all the rest sooner or later.
17:13:34 <Phantom_Hoover> Also because the supply systems to it are so integral that their removal disrupts the whole network.
17:13:49 <elliott> https://bugzilla.mozilla.org/show_bug.cgi?id=661719
17:13:51 <elliott> Gregor.......................
17:13:58 <derrik> not nice to discriminate against non-brainers
17:14:01 <CakeProphet> death is absence of what constitutes life in something that once had it.
17:14:26 <itidus20> well... the idea of a human living without a brain freaks us all out massively
17:14:49 <itidus20> related to the zombie fear
17:15:14 <itidus20> even zombies have brains right.. skeletons don't though
17:15:32 <Phantom_Hoover> itidus20, no it doesn't, it's a regular occurence.
17:16:09 <Gregor> elliott: Brendan made me do it!
17:16:31 <elliott> Gregor: You're in the habit of listening to the kind of person who does things like invent JavaScript?
17:16:51 <elliott> Gregor: (I was googling JSMIPS because I want to figure out how MIPS works without doing any actual work.)
17:17:27 <Gregor> elliott: It was at a talk at Mozilla :P
17:17:43 <itidus20> "Ashton Kutcher has publicly stated that he is afraid of his wife Demi Moore's collection of dolls, having grown-up watching Child's Play as a kid."
17:17:44 <elliott> Gregor: If Eich told you to jump off a cliff would you do it??????????????????????
17:17:52 <elliott> Gregor: If Eich told you to use IE would you do it?????????????
17:17:53 <CakeProphet> I think we should do away with all programming languages because elliott doesn't like any of them.
17:18:11 <elliott> CakeProphet: True statements: I am always serious all the time and mocking JavaScript is unreasonable.
17:18:14 <elliott> WAIT, by true I mean false.
17:18:31 <itidus20> elliott: you know what would be a cool graph? "If X told Y to jump off a cliff, would they do it?"
17:18:42 <Phantom_Hoover> CakeProphet, also he likes languages that don't exist because he hasn't had time to hate them.
17:18:58 <itidus20> the fact is that some instances hte answer is yes
17:19:07 <itidus20> its a balancing factor in the power dynamics of the world
17:19:33 <elliott> Gregor: Look at these posers: https://github.com/Esteth/JSMips
17:19:39 <elliott> CoffeeScript: SO NOT JAVASCRIPT???
17:19:44 <WhatIsAChair> Does "power dynamics" and "balancing factor" actually represent anything in the real world?
17:19:53 <CakeProphet> it would be false for all X that can't jump off of cliffs.
17:20:00 <WhatIsAChair> Well, ok, "power dynamics" does, I guess, but "balancing factor"?
17:20:06 <CakeProphet> which becomes ambiguous if we interpret the sentence metaphorically.
17:20:07 <itidus20> CakeProphet: well thats a start
17:20:12 <CakeProphet> can a marriage jump off of a cliff?
17:20:13 <Phantom_Hoover> WhatIsAChair, try not to know the mind of itidus.
17:20:30 <itidus20> CakeProphet: i was thinking of humans :P
17:20:30 <Phantom_Hoover> CakeProphet, yes, if the wedding is on a giant robot
17:20:37 <CakeProphet> ah, but a marriage can't be told things.
17:20:42 * WhatIsAChair wonders what would happen if itidus20 was in #jesus
17:20:49 <WhatIsAChair> Would there be an explosion?
17:20:51 <Phantom_Hoover> WhatIsAChair, WHAT HAVE YOU DONE
17:20:52 <elliott> Gregor: BTW, any citation on that three-hour sleep remark?
17:20:53 <itidus20> and.. also.. presuming that this statement can be translated into any language
17:20:56 * CakeProphet joins #jesus
17:21:13 -!- NihilistDandy has joined.
17:21:36 <itidus20> yeah, people love to use the cliff jumper statement casually.. but it has meaning
17:22:09 <itidus20> X is likely to be percieved by Y as an authority figure
17:22:21 <itidus20> or else why would Y be listening to X at all
17:22:21 <elliott> Add immediateaddi $t,$s,C$t = $s + C (signed)
17:22:22 <elliott> Add immediate unsignedaddiu $t,$s,C$t = $s + C (signed)
17:22:26 <elliott> Uhh, surely "C (unsigned)"...?
17:22:41 <itidus20> If Y is unassertive, then Y will percieve a larger set X
17:22:48 <itidus20> I would say
17:22:57 <elliott> See, clearly Gregor's problems are because he coded his emulator based on Wikipedia.
17:23:04 <Gregor> elliott: Nope, it's probably just a folk tale :P
17:23:23 <itidus20> Milgram wondered about this.
17:23:35 <itidus20> If Milgram asked you to shock a guy, would you?
17:23:36 <elliott> I guess it could do an /unsigned/ add with a /signed/ constant
17:23:40 <elliott> But would that even mean anyting
17:23:41 <elliott> anything
17:24:06 <itidus20> It's sort of related... only a little bit
17:24:23 <Phantom_Hoover> itidus20, please join #jesus pleeeaaaaasssseeee.
17:24:50 <NihilistDandy> itidus20: Additionally, your presence is requested in #jesus.
17:24:59 <itidus20> #jesus was created by the large hadron collider
17:25:07 <elliott> I...
17:25:16 <Phantom_Hoover> itidus20, yes please look at it and find out more.
17:25:25 <itidus20> i fear i would never escape
17:25:29 <elliott> NihilistDandy: WhatIsAChair
17:25:30 <elliott> Phantom_Hoover:
17:25:30 <elliott> I AM
17:25:32 <elliott> A DIFFERENT
17:25:33 <elliott> PERSON
17:25:33 <elliott> OK
17:25:34 <NihilistDandy> ONE OF US
17:25:35 <elliott> OBVIOUSLY
17:25:36 <NihilistDandy> ONE OF US
17:26:33 <itidus20> nah.. i don't like to go to a room and pick fights
17:26:51 <Phantom_Hoover> itidus20, we don't want fights.
17:27:00 <Phantom_Hoover> Fights are the exact opposite of what we want.
17:27:02 <NihilistDandy> We just want you
17:27:05 <Phantom_Hoover> We want actual discussion.
17:27:05 <NihilistDandy> baby
17:27:29 -!- zzo38 has joined.
17:27:36 -!- WhatIsAChair has changed nick to Sgeo.
17:29:12 <CakeProphet> I seek the one true language.
17:29:12 <itidus20> im going off topic anyway..
17:29:20 <elliott> >going
17:29:21 <itidus20> ill simmer down
17:29:33 -!- boily has joined.
17:34:37 <zzo38> Due to the lack of QUIT commands in the log file, it makes it difficult to use AWK and stuff to check for things I might want to check for. Can Gregor correct this?
17:34:47 <elliott> use the raw logs
17:36:37 <CakeProphet> also Perl.
17:36:51 <itidus20> Phantom_Hoover: the trick is that i keep fuelling my steam engine... so that i don't have to force myself into a rant... but that my environment draws a rant out of me. that is how i like it
17:37:59 <Phantom_Hoover> itidus20, are you a 300-pound matronly freight train.
17:38:11 <itidus20> it is like uh... you can drill anywhere deep enough and create a lava pool ya know
17:38:19 <itidus20> the lava is always waiting for the drill
17:39:29 <itidus20> yeah ive got issues
17:40:31 <Phantom_Hoover> The lava... isn't *waiting* for the drill.
17:40:36 <Phantom_Hoover> It's just *there*.
17:41:17 <zzo38> elliott: That doesn't help
17:41:34 <elliott> zzo38: you can get raw logs for the whole day
17:41:36 <elliott> that includes all channels
17:41:38 <elliott> those include QUIT
17:41:40 <itidus20> humm
17:41:47 <itidus20> reification fallacy
17:41:55 <itidus20> good show
17:42:17 <Phantom_Hoover> elliott, it really should log those things in the formatted logs, though.
17:42:26 <elliott> It should.
17:42:26 <itidus20> i need to learn my fallacies.
17:42:32 <zzo38> elliott: OK. Yes, those ones do. But the individual channell logs do not. I think I understand why, although I think it should be corrected anyways.
17:43:06 <Phantom_Hoover> itidus20, memorising fallacies won't make you think logically.
17:43:11 <Phantom_Hoover> Learning to think logically will.
17:43:20 <itidus20> humm
17:43:25 <itidus20> ok
17:43:37 <CakeProphet> I think logically all the time.
17:43:42 <elliott> lol
17:44:01 <CakeProphet> so does elliott.
17:44:12 <elliott> it is true
17:44:25 <CakeProphet> elliott and I are quite alike.
17:44:38 <zzo38> Phantom_Hoover: I am talking about unformatted logs
17:44:44 <CakeProphet> I like bears. I want a programming language with bears.
17:44:52 <CakeProphet> and forests of grazing deer.
17:45:13 <zzo38> CakeProphet: Then invent one in esolang wiki.
17:45:22 <CakeProphet> yes I'm thinking about it.
17:47:31 <itidus20> I think that inventing a language is an art.
17:47:55 <CakeProphet> it would be interesting to simulate an ecosystem as a programming model\.
17:48:12 <CakeProphet> where life acts as code and data.
17:49:51 <itidus20> you already have a PC... and the CPU already has as many instructions as it will ever have.. so that tells us a language is not about making a PC do low level things that it couldn't do before
17:49:57 <elliott> Sgeo: ahahaha did luke-jr really just
17:50:07 <CakeProphet> itidus20: sure.
17:50:16 <CakeProphet> it's the means of expression that is important.
17:50:21 <Sgeo> elliott, he considers all non-Catholics to be heretics
17:50:26 <elliott> i know
17:50:26 <elliott> but
17:50:27 <elliott> glorious
17:50:35 <itidus20> CakeProphet: i wish my statement could be perfect.. but it is useless empty words
17:50:47 <itidus20> it collapses under its own weight
17:50:50 <Sgeo> elliott, and the current Papacy too
17:51:16 <elliott> Sgeo: oh
17:51:17 <elliott> really
17:51:26 <CakeProphet> itidus20: nah it's just not detailed. abstract thought doesn't really have to be very specific to be helpful or constructive.
17:51:41 <elliott> Prayer: The same thing as meditation.
17:51:55 <Phantom_Hoover> I like the fact that the Christians in #jesus evidently hate each other as much as anyone else.
17:52:16 <CakeProphet> ....pwnted.
17:52:20 <CakeProphet> that word is not allowed.
17:52:22 <elliott> Phantom_Hoover: the problem with #jesus is that they let atheists who are open about it in
17:52:32 <elliott> Phantom_Hoover: and they ruin the atmosphere :(
17:52:38 <itidus20> CakeProphet: so.. standard libraries... they get connected to languages
17:52:45 <itidus20> in practice they may infact be a part of the language
17:52:48 <Phantom_Hoover> I did try /msging one of those people.
17:53:09 <elliott> the... guy with japan in his name was particularly bad
17:53:13 <Phantom_Hoover> And another who may have just been a sane Christian; he called me a troll and /ignored me.
17:53:29 <Phantom_Hoover> Which is completely unfair, since I'm not trolling anyone and never have.
17:53:29 <Sgeo> Phantom_Hoover, who?
17:53:35 <Phantom_Hoover> Cheery, IIRC.
17:53:40 <elliott> huh
17:53:43 <elliott> Cheery has been in here
17:53:44 <elliott> I think
17:53:49 <Sgeo> Hmm, that name only rings the faintest of bells
17:53:51 <elliott> yep
17:53:53 <elliott> it's that guy
17:53:54 <Phantom_Hoover> I'm just gently leading them along the path they're going along.
17:53:55 <elliott> the .cockfile guy
17:53:56 <elliott> `quote cock
17:53:59 <HackEgo> 57) <GregorR> ??? <GregorR> Are the cocks actually just implanted dildos? <GregorR> Or are there monster dildos and cocks? <GregorR> Or are both the dildos and cocks monster? \ 299) <elliott_> The context is Gracenotes releasing an illegal copy of a film about monster cock dildos. \ 391) <Cheery> [...] OOPS.. my cockfile got
17:54:02 <elliott> `quote cockfile
17:54:03 <HackEgo> 391) <Cheery> [...] OOPS.. my cockfile got destroyed
17:54:07 <CakeProphet> yes, they can be defined by the language or built-in to the runtime
17:54:15 <CakeProphet> itidus20: ^
17:54:23 <itidus20> well they extend what the human can do at least
17:54:27 <Phantom_Hoover> Sgeo, hang on, it was after I turned on XChat logs.
17:54:30 <Phantom_Hoover> I'll check them.
17:54:43 <itidus20> which defeats my first comment
17:54:50 <CakeProphet> hmm?
17:55:02 <itidus20> hummm
17:55:55 <Phantom_Hoover> Sgeo, it was char|ie.
17:56:03 <itidus20> so you have the very lowest level supplied to you.. the asm/machine language level.. that is a given.. video, audio, keyboard, disk I/O, RAM.. also a given
17:56:14 <Sgeo> Phantom_Hoover, that name also rings a faint bell
17:56:24 <elliott> Sgeo: hmm, wait, does pthing identify as christian in hash-jesus?
17:56:34 <Sgeo> elliott, I think so
17:56:53 <elliott> hmm
17:57:02 <itidus20> but the CPU isn't really aware of all the other hardware
17:57:13 <CakeProphet> well, the only thing that is aware is the human....
17:57:16 <itidus20> oops im using wrong words again
17:57:31 <NihilistDandy> Thought he identifies as no such thing in #not-math
17:58:13 <itidus20> CPU doesn't have many (if any) instructions for dealing with the various hardware
17:58:40 <itidus20> all the instructions revolve around the registers and ram
17:58:56 <Sgeo> Sgeo> Pthing, do you identify as Christian?
17:58:56 <Sgeo> <Pthing> of course
17:59:16 <itidus20> it has the ports and interrupts but it doesn't really go further than that..
17:59:30 <CakeProphet> how would they feel about a Discordian, I wonder?
17:59:42 <elliott> Sgeo: identifying as christian in hash-jesus doesn't make one christian, naturally
17:59:45 <pikhq_> itidus20: There exists precisely one builtin API for dealing with the hardware on common PC systems.
17:59:49 <Phantom_Hoover> itidus20, funny, it has more than enough instructions to.
17:59:51 <pikhq_> itidus20: BIOS. And it sucks.
18:00:05 <pikhq_> Okay, I suppose ACPI too. And it sucks harder.
18:00:31 <Phantom_Hoover> What's the XChat command for NUL?
18:00:49 <itidus20> whats ACPI about?
18:01:06 -!- Phantom_Hoover has left ("Leaving").
18:01:10 -!- Phantom_Hoover has joined.
18:01:21 <Phantom_Hoover> C'mon guys I'm counting on you
18:01:23 <NihilistDandy> This: http://i.imgur.com/k8zrC.jpg
18:01:44 <pikhq_> itidus20: ACPI is about various forms of power management.
18:01:49 <itidus20> ok
18:01:52 <pikhq_> It is also one of the dozen or so ways of shutting off a PC.
18:01:54 <itidus20> wasn't sure
18:02:12 <Phantom_Hoover> Helo.
18:02:15 <itidus20> do most standard libs use BIOS? or do any reimplement BIOS?
18:02:16 <elliott> he,ia,el
18:02:17 <elliott> ,
18:02:19 <Phantom_Hoover> OK, that's not it.
18:02:26 <itidus20> or is it inefficient to reimplement BIOS?
18:02:27 <elliott> Phantom_Hoover: just paste in a NUL, dude
18:02:30 <elliott> if your clipboard can handle it
18:02:35 <elliott> xchat might not even be able to
18:02:36 <elliott> because gtk
18:02:42 <pikhq_> itidus20: No, the BIOS sucks so damned much that it's utterly ignored by the time you're in 32-bit execution.
18:02:44 <Phantom_Hoover> elliott, but I'm sure there was one!
18:02:45 <pikhq_> Possibly sooner.
18:02:47 <Phantom_Hoover> A usable one!
18:03:00 <elliott> Phantom_Hoover: settings->advanced->keyboard shortcuts
18:03:09 <pikhq_> It was pitiful *even on the original IBM PC*.
18:03:09 <CakeProphet> :)
18:03:24 <NihilistDandy> lol CakeProphet
18:03:27 <elliott> CakeProphet: boring
18:03:31 <pikhq_> Nowadays, the BIOS is an overblown boot loader.
18:03:32 <itidus20> pikhq_: ok. sorry to respond to every question with an inference, but, so the BIOS is replaced by the OS APIs then?
18:03:41 <itidus20> ^to every reply with an inference
18:03:43 <CakeProphet> elliott: well I wasn't really going to plan anything clever.
18:03:51 <pikhq_> itidus20: Yes. Completely and utterly replaced.
18:04:24 <pikhq_> To the point where if they could actually remove the BIOS from memory (it's in ROM that's always mapped into physical memory space), they would.
18:04:39 <pikhq_> And you can, in fact, remove it while the system's running to no ill effect.
18:04:43 <Sgeo> =P
18:04:43 <elliott> Every Christian swear filter IRC ban thing after http://bash.org/?178890 sucks.
18:05:27 <pikhq_> (this, incidentally, is one of the ways of getting coreboot on a system without making it impossible to go back to the original BIOS)
18:05:52 <NihilistDandy> What about that one where where luke-jr mentioned some Latin paper and got kicked for saying cum?
18:06:27 <elliott> NihilistDandy: ok that was good.
18:06:34 <elliott> CakeProphet: <darkmatter> I may not categorize people based on beliefs, but that... yeah... pass me a woodchipper and that guys personals
18:06:41 <elliott> I require your personal ads.
18:06:47 <itidus20> Due to the benefits of driver abstraction layers noone would want to reimplement API functionality except in extreme cases.
18:06:57 <CakeProphet> elliott: lol
18:07:00 <NihilistDandy> For pulping
18:07:00 <CakeProphet> don't have any.
18:07:12 <elliott> Meanwhile, Sgeo practices the ancient Christian tradition of self-incriminating.
18:07:20 <NihilistDandy> SWP seeking cake
18:07:43 <pikhq_> itidus20: Experience tells us that hardware manufacturers universally suck, and should never be trusted to implement code.
18:08:08 <elliott> CakeProphet: * angelBot removes ban on *!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake
18:08:11 <elliott> CakeProphet: Just so you know.
18:08:19 <CakeProphet> hmm...
18:09:06 <itidus20> CakeProphet: I have surmised that when building a language, the CPU was the wrong place for me to look.
18:09:14 <pikhq_> itidus20: Linux has a giant swath of workarounds for things like vendor's ACPI stacks.
18:09:27 <pikhq_> And now EFI.
18:09:47 <pikhq_> It *really* doesn't help that their idea of "done" means "Windows boots".
18:09:48 -!- monqy has joined.
18:10:12 <CakeProphet> itidus20: why would you even start there in the first place?
18:10:49 <pikhq_> In short: the PC architecture is terrible, the first thing anyone on bare hardware should do is abstract it out of existence.
18:10:51 <itidus20> because in the end the language will become a stream of machine code
18:11:21 <elliott> hmm
18:11:28 <CakeProphet> or it will be the input to someone elses stream of machine code.
18:11:33 <CakeProphet> in the case of an interpreter.
18:11:49 <itidus20> yeah the stream analogy is very broken
18:12:01 <itidus20> especially if one considers threads and multicores
18:12:05 <pikhq_> elliott: This should frighten you, but every single OS in use abstracts most the hardware nearly out of existence.
18:12:24 <elliott> pikhq_: good to know
18:12:30 <elliott> (misping?)
18:13:19 <itidus20> CakeProphet: i am looking at the givens.
18:13:29 <pikhq_> elliott: More misthink. :P
18:14:13 <itidus20> pikhq_: yet ironically it all rests within the hardware which it abstracts
18:14:39 <monqy> wjat
18:14:52 <pikhq_> Hmm. It probably wouldn't take much effort to make Linux into a VM...
18:15:06 <monqy> how much is too much
18:15:16 <itidus20> the hardware provides the physical space for the information space of the OS
18:15:16 <elliott> pikhq_: see UML
18:15:17 <pikhq_> Probably not worth the effort, though.
18:15:30 <pikhq_> elliott: No, I mean in the sense of JVM.
18:16:02 <pikhq_> No, I do not have any intent of doing this at all.
18:16:37 <elliott> <darkmatter> not that that bothers me, but is definitely not appropriate for clicking by any other than the target
18:16:42 <elliott> Sgeo: please offer to link it directly to CakeProphet
18:16:44 <elliott> and/or Phantom_Hoover
18:16:47 <elliott> it is your duty as a good person
18:17:03 <CakeProphet> lolwhat
18:17:17 <elliott> CakeProphet: <darkmatter> I have an awesome .gif for responding to uncalled for douchery, but it contains unwholesome language :(
18:17:28 <CakeProphet> wow they're so easy to offend.
18:17:38 <elliott> CakeProphet: also you're being a fuckwit.
18:17:43 <monqy> is douchery an unwholesome language
18:17:57 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:18:09 <NihilistDandy> CakeProphet: /me claps
18:19:08 <CakeProphet> darkmatter has moved me with his gif.
18:19:10 <itidus20> The abstract machine on which a language is implemented is likely to be no lower than the OS.
18:19:24 <elliott> CakeProphet: You can't say that and then not link it.
18:19:33 <monqy> itidus20: what
18:20:07 -!- myndzi\ has changed nick to myndzi.
18:20:07 <elliott> <NihilistDandy> http://i.imgur.com/Fajmt.gif
18:20:08 <elliott> <NihilistDandy> It's apparently being passed around by Sgeo by PM
18:20:11 <elliott> Sgeo: saved you the effort
18:20:24 <itidus20> monqy, in other words my statement is: most compilers and interpreters require an OS.
18:20:26 <CakeProphet> elliott: ...also, are you saying my mspa and bloodninja references followed by flagrant Jesus pornography was unjustified on #jesus?
18:20:41 <CakeProphet> because I disagree passionately.
18:20:47 <elliott> CakeProphet: yes. if you're going to be a dick to them at least make it amusing
18:20:58 <CakeProphet> I think, in fact, it is the reason for that channel's existence.
18:21:03 <CakeProphet> I have fulfilled its purpose.
18:21:04 <monqy> itidus20: that hardly makes one necessary
18:21:07 <NihilistDandy> CakeProphet: Flagrant Jesus Pornography is the name of my next nonfiction book
18:21:50 <CakeProphet> elliott: my approach is not sophisticated enough for you, yes?
18:21:53 <monqy> itidus20: so i don't see the relevance of your statements
18:21:55 <NihilistDandy> http://marcansoft.com/transf/nandcat1.png
18:21:59 <itidus20> monqy: but even the people here are rarely so masochistic as to do it without one
18:22:05 <NihilistDandy> > cycle "nand"
18:22:06 <lambdabot> "nandnandnandnandnandnandnandnandnandnandnandnandnandnandnandnandnandnandna...
18:22:31 <elliott> i wonder if the thing is a thing
18:23:06 <CakeProphet> http://i.imgur.com/Fajmt.gif
18:23:09 * Sgeo is still offended by nyan cat not appearing in the original video where it used to
18:23:11 <CakeProphet> this is the gif btw.
18:23:15 <Sgeo> CakeProphet, yes, we know
18:23:18 <monqy> a bit too later
18:23:21 <itidus20> monqy: to be honest i don't have any idea what can be done without an OS
18:23:25 <CakeProphet> Sgeo: ah, I thought elliott said to link it..
18:23:30 <CakeProphet> perhaps he was talking to someone else.
18:23:32 <monqy> itidus20: ok
18:23:44 <elliott> itidus20: the exact same as can be done with an OS
18:23:55 <elliott> * Sgeo is still offended by nyan cat not appearing in the original video where it used to
18:23:55 <elliott> what
18:23:57 <itidus20> does one fall back on the BIOS then?
18:24:11 <elliott> itidus20: no, one just uses the same code to accomplish a task as the OS does.
18:24:22 <itidus20> thats masochistic :D
18:24:28 <itidus20> so... uh..
18:24:29 <Sgeo> elliott, the ... bar thing
18:24:34 <CakeProphet> coding it from scratch is masochistic.
18:24:34 <elliott> itidus20: and therefore impossible?
18:24:36 <elliott> Sgeo: scrubber.
18:24:36 -!- Phantom_Hoover has joined.
18:24:42 <Phantom_Hoover> What are the haps my friends.
18:24:43 <itidus20> could a brainfuck interpreter be created on which an OS could be implemented?
18:24:53 <itidus20> with a few changes perhaps
18:24:55 <NihilistDandy> Phantom_Hoover: Flagrant Jesus Pornography
18:25:06 <CakeProphet> not by the original definition of the language.
18:25:19 <CakeProphet> well... actually, yes.
18:25:33 <elliott> itidus20: only if it can do everything the machine language can do, IO-wise. (please don't start CakeProphet)
18:25:48 <elliott> (proof: just write out the machine code for the OS, and jump to it)
18:25:55 <NihilistDandy> lol
18:25:55 <elliott> I guess that isn't really IO
18:26:08 <elliott> but, uhh, it's a trivial answer, but with messy definitions, so let's just ignore the question
18:26:18 <CakeProphet> yeah sounds good.
18:26:37 <itidus20> it would be kinda cool though
18:27:11 <itidus20> what about taking minix and translating it into BF
18:27:23 <monqy> why?
18:27:25 <itidus20> an extended BF which can do what is necesary
18:27:50 <itidus20> afk
18:27:57 <Phantom_Hoover> itidus20, extended BF.
18:28:08 <CakeProphet> you could use BF as an OS, but not alone.
18:28:09 <Phantom_Hoover> There's an idea which has spawned countless fell things.
18:28:19 <elliott> Phantom_Hoover: DF addiction detected.
18:28:22 <itidus20> what i mean by afk is
18:28:31 <itidus20> i can see how dumb it is.. ill make a coffe instead
18:28:37 <Phantom_Hoover> elliott, oh FFS it's a perfectly cromulent word.
18:28:54 <elliott> Phantom_Hoover: Which Humble Bundle game should I try first.
18:28:58 <elliott> `addquote <itidus20> what i mean by afk is <itidus20> i can see how dumb it is.. ill make a coffe instead
18:28:59 <HackEgo> 572) <itidus20> what i mean by afk is <itidus20> i can see how dumb it is.. ill make a coffe instead
18:29:08 <CakeProphet> your mom is germane here, I think.
18:29:25 <Phantom_Hoover> elliott, I went for Braid, TbH.
18:29:35 <Phantom_Hoover> Because the concept interested me and I'd already looked at it.
18:29:41 <Phantom_Hoover> But you already have it sooo....
18:29:53 <CakeProphet> `quote
18:29:54 <HackEgo> 8) <SimonRC> TODO: sex life
18:30:10 <elliott> Phantom_Hoover: I don't. I haven't played any of the previous bundle games.
18:30:14 <elliott> I'm bad at life.
18:30:17 <monqy> :'(
18:30:28 <CakeProphet> I've got mad life-skills.
18:30:42 <monqy> im baddest
18:30:51 <CakeProphet> I randomly click squares and then they explode.
18:31:01 <monqy> i don't even do that
18:31:02 <CakeProphet> no need for gliders and shit.
18:31:36 <Sgeo> Braid++
18:31:51 <CakeProphet> yeah let's just increment everything.
18:32:12 <monqy> i dont beleive in incremetn
18:32:15 <CakeProphet> ++C++
18:32:27 <Sgeo> ++C--
18:33:39 <CakeProphet> bf+[+]
18:33:41 <NihilistDandy> --n
18:33:41 <Phantom_Hoover> Sgeo, I still find Braid slightly insane.
18:34:17 <monqy> insane?
18:34:42 <Phantom_Hoover> Some of the levels seem... impossible.
18:34:47 <NihilistDandy> Getting all the damn puzzle pieces is such a shore
18:34:48 <NihilistDandy> *chore
18:34:49 <Phantom_Hoover> Or more accurately some of the puzzle pieces.
18:34:51 <Phantom_Hoover> Yeah.
18:34:56 <NihilistDandy> I went to work to get that one
18:34:59 <NihilistDandy> You know the one
18:35:14 <NihilistDandy> When I came back I spent a half hour rewinding just to get on that fucking cloud
18:35:46 <Phantom_Hoover> Like, it's not just a matter of precision, I can see no way at all it's possible based on the data available about the level.
18:36:45 <Sgeo> Phantom_Hoover, one of the early ones?
18:36:49 <Sgeo> NihilistDandy, that's a star
18:36:52 <Sgeo> Not a puzzle piece
18:37:15 <Sgeo> Or, wait, are you talking about something else?
18:37:23 <NihilistDandy> I've forgotten
18:37:27 <NihilistDandy> It was forever ago
18:37:34 <NihilistDandy> It might be a star
18:37:38 <NihilistDandy> Probably is
18:38:39 -!- nooga has joined.
18:38:49 <elliott> Hmm.
18:39:23 <Phantom_Hoover> Sgeo, tonnes of them.
18:39:29 <itidus20> CakeProphet: i just had an idea
18:39:38 <itidus20> dun dun dunnn
18:39:53 <CakeProphet> wuzzat?
18:39:55 <itidus20> puzzle game based on life. (i suppose like everything under the sun it has already been done)
18:40:18 <CakeProphet> life the game or... the game of life... or life the... life?
18:40:31 <itidus20> you would get a finite set of live cell chips.. and a pre-layed out board.. and you have to position those chips to bring about a certain event
18:40:32 <Phantom_Hoover> GoL, I suspect.
18:40:48 <Phantom_Hoover> Everyone who's heard of it has thought "what if I made it into..... A REAL GAME"
18:40:53 <itidus20> and then you proceed to the next stage
18:40:53 <Phantom_Hoover> itidus20, it doesn't work out.
18:40:59 <itidus20> why not?
18:41:01 <Phantom_Hoover> Life constructions are waaaaay too fragile.
18:41:27 <Phantom_Hoover> The most resilient can asymptotically resist less than half the gliders fired at it IIRC.
18:41:43 <Sgeo> Phantom_Hoover, is there a proof of that?
18:41:50 <elliott> Phantom_Hoover: Just stack an infinite number of them together PERFECTION.
18:41:59 <itidus20> well the idea would be to say, for each stage, make the level turn to all dead cells
18:42:09 <itidus20> with a finite pile of live cells
18:42:14 <Phantom_Hoover> Sgeo, fine, the most resilient known.
18:42:16 <NihilistDandy> itidus20: That's really hard
18:42:23 <Phantom_Hoover> It's a chain of eater 2s.
18:42:25 <itidus20> so you would have very simple puzzles
18:42:27 <NihilistDandy> Depending on the size of the pile, and the layout
18:42:39 <Phantom_Hoover> *double-sided eater 2s
18:43:21 <itidus20> it could be you have to place all the cells in one go
18:43:27 <itidus20> and watch to see if it works
18:43:50 <NihilistDandy> itidus20: That sounds exactly like GoL, but with goals
18:44:21 <itidus20> the goal of reducing it to all dead cells seems the most workable
18:46:40 <Phantom_Hoover> It's not.
18:46:51 <Phantom_Hoover> Engineering in Life is a very sterile process.
18:47:30 <Phantom_Hoover> Putting everything behind an ash shield is more or less the only way to stop it exploding from stray gliders, and then how do you interact with the outside world?
18:47:36 <elliott> Phantom_Hoover: help what do you prescribe for someone who read the latest Dinosaur Comic and now can't stop laughing.
18:48:17 <CakeProphet> acid.
18:48:34 <CakeProphet> oh wait you want to fix that.
18:48:43 <NihilistDandy> Still acid
18:48:44 <elliott> Hmm, I wonder whether I should make this GPipe change the overly-general way or the ugly way.
18:49:25 <CakeProphet> why are you even asking that question when you already know the answer?
18:49:41 <CakeProphet> ah no question mark. SLY DOG.
18:49:44 <elliott> Well the former would have a runtime speed penalty, I think.
18:50:11 <CakeProphet> no way to have both?
18:50:22 <CakeProphet> have the ugly way as a special case?
18:50:27 <fizzie> Both the ugliness and the speed penalty.
18:50:43 <elliott> CakeProphet: No real way to overcome typeclass overhead.
18:50:54 <itidus20> Phantom_Hoover: you're right. mathematical games and john nash games do not deserve to be video games.
18:50:57 <CakeProphet> isn't there like a specialize pragma or something?
18:50:58 <monqy> special cases suck, should die
18:51:19 <elliott> CakeProphet: It... wouldn't work here.
18:53:01 <NihilistDandy> elliott: http://www.qwantz.com/index.php?comic=2015
18:53:03 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:53:07 <NihilistDandy> Is my prescription
18:53:17 <elliott> That one isn't as good.
18:54:04 <elliott> <lupine_85> esoteric religions have never been as popular as exoteric ones
18:54:05 <elliott> <lupine_85> they're harder work
18:54:12 <elliott> story of our lives
18:55:06 -!- derrik has quit (Quit: bedtime).
18:58:10 -!- nooga has quit (Remote host closed the connection).
18:58:59 <elliott> oh i wonder if
19:01:00 <itidus20> If I could make days last forever. If would could make wishes come true.
19:01:13 <itidus20> I'd save every day like a tresure and then, again, I would spend them with you.
19:01:22 <itidus20> ^words
19:01:30 <itidus20> (cut and paste)
19:01:32 <itidus20> sort of
19:06:26 -!- Phantom_Hoover has joined.
19:06:33 -!- pumpkin has joined.
19:06:46 <cheater_> elliott: are you giving out free thetan measurements
19:06:57 <cheater_> or how about lambdans
19:07:05 <itidus20> taxfree thetans
19:07:14 <cheater_> itidus20, sit down while i measure your lambdans
19:07:27 <itidus20> wow. that was funny on so many levels :D
19:07:43 <cheater_> please hold the two ends of this Y combinator
19:09:01 <cheater_> doesn't seem like your lambdan levels are so high itidus20, do you feel adequately functional?
19:09:23 <itidus20> well... i have a bad sleeping pattern
19:09:29 -!- copumpkin has quit (Ping timeout: 260 seconds).
19:09:33 <cheater_> oh, no
19:09:38 <itidus20> what is it?
19:09:44 <cheater_> indeed, that can have to do with low lambdan levels
19:10:00 <cheater_> have you noticed other people acting imperative around you?
19:10:15 <itidus20> yeah people are full of requests and demands
19:10:55 <cheater_> that's exactly what i'm talking about.
19:11:08 <itidus20> we have established quite a rapport
19:11:24 <cheater_> would you like to live a life without side-effects, where everything is a functor?
19:11:47 -!- MigoMipo has joined.
19:12:21 <itidus20> yes and no
19:12:45 <Phantom_Hoover> cheater_, shut up.
19:12:45 <cheater_> join the Haskell Religion. You start out in the () typeclass, but soon you'll be able to perform monadic actions!
19:13:01 <itidus20> lol.
19:13:12 <itidus20> im too passive. its not cheaters fault
19:13:33 <monqy> cheater killed me and that is his fault
19:13:37 <elliott> cheater is cheater's fault though
19:13:45 <CakeProphet> :t foldl ap
19:13:46 <lambdabot> Occurs check: cannot construct the infinite type: b = a -> b
19:13:46 <lambdabot> Expected type: m (a -> b)
19:13:47 <lambdabot> Inferred type: m b
19:13:48 <Phantom_Hoover> cheater ate my cat.
19:13:58 <CakeProphet> :t foldl (flip ap)
19:13:59 <lambdabot> forall (m :: * -> *) b. (Monad m) => m b -> [m (b -> b)] -> m b
19:14:04 -!- Taneb has joined.
19:14:26 <itidus20> cheater_: i downloaded hugs and an ebook.. but i got sidetracked
19:14:34 -!- azaq23 has joined.
19:14:45 <itidus20> and the side of the track has much less friction than the gravel
19:14:56 <NihilistDandy> ugh, hugs
19:15:00 <monqy> ebook
19:15:01 * itidus20 hugs.
19:15:02 <monqy> what sort of
19:15:03 <monqy> ebook
19:15:22 <itidus20> a legal one.
19:15:55 <itidus20> oh ill be more specific
19:15:56 <cheater_> itidus20, that's no good.
19:15:58 <monqy> does it have a name
19:16:00 <Phantom_Hoover> `quote e-reader
19:16:01 <HackEgo> No output.
19:16:10 <Phantom_Hoover> `quote E-reader
19:16:11 <HackEgo> No output.
19:16:15 <Phantom_Hoover> `quote ereader
19:16:16 <HackEgo> No output.
19:16:20 <Phantom_Hoover> Oh FFS.
19:16:23 <Phantom_Hoover> `quote suffering
19:16:25 <HackEgo> 547) <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
19:16:29 <itidus20> Yet Another Haskell Tutorial by Hal Daume III
19:16:47 <cheater_> why not read LYAH or RWH?
19:16:50 <NihilistDandy> itidus20: Get LYAH
19:17:02 <elliott> I told him about LYAH.
19:17:03 <NihilistDandy> I have it in every electronic format
19:17:04 <itidus20> im not a mathematician. this book is actually up my alley
19:17:13 <NihilistDandy> And one paper one
19:17:13 <monqy> what
19:17:13 <elliott> LYAH is about ten times simpler than YAHT.
19:17:26 <CakeProphet> cheater_: I think you offended Phantom_Hoover's religious beliefs.
19:17:39 <elliott> Download the Haskell Platform, read Learn You a Haskell, praise the Lord.
19:17:48 <CakeProphet> well, you offended /him/, not his beliefs. That would be strange.
19:18:07 <NihilistDandy> Pedantic semantics <3
19:20:41 <cheater_> elliott, your Lambdan levels must be really high today.
19:22:09 <itidus20> so.. in my head I am thinking "haskell is representative of functional languages. c++ is representative of imperative languages. functional and imperative are specializations of programming languages."
19:22:21 <elliott> C++ is not representative of imperative languages.
19:22:34 <itidus20> what is then?
19:22:50 <elliott> It's hard to tell.
19:22:50 <itidus20> C?
19:22:53 <elliott> No.
19:23:00 <Taneb> Visual Basic .NET?
19:23:08 <itidus20> is the word representative the wrong one? :D
19:23:16 <monqy> don't call things representative of things
19:23:19 <elliott> Maybe a modern-ish (but non-OO) Pascal. It's really hard to say because "imperative" is not really a category.
19:23:23 <elliott> There is no single representative example.
19:23:35 <itidus20> is representativeness a fallacy?
19:23:48 <NihilistDandy> Only for imperatives~
19:23:49 * itidus20 does an air guitar solo.
19:23:50 <cheater_> itidus20, i'd say python is a good imperative language with functional paradigms
19:23:59 <elliott> lol.
19:24:00 <NihilistDandy> cheater_: Don't let #python hear you say that
19:24:08 <NihilistDandy> Or anyone else, for that matter
19:24:10 <cheater_> banned already
19:24:13 <cheater_> don't care
19:24:18 <elliott> Oh, so there is at least one channel with sense in this world.
19:24:23 <cheater_> :D
19:24:31 <itidus20> ok ill update my statement
19:24:45 <cheater_> j/k, not banned. but i don't give much crap about that place
19:24:48 <cheater_> they're mostly boring
19:24:53 <Phantom_Hoover> cheater_, shut up.
19:25:03 <elliott> Phantom_Hoover: you do a harsh but necessary duty.
19:25:04 <pikhq_> "Imperative" is a far too broad category to have any really representative example...
19:25:12 <itidus20> so.. in my head I am thinking "haskell is an example of functional languages. pascal is an example of imperative languages. functional and imperative are specializations of programming languages."
19:25:24 <pikhq_> And a better description of coding style than language, anyways.
19:25:28 <Phantom_Hoover> elliott, why is C not imperative BtW?
19:25:44 <itidus20> Phantom_Hoover: the trouble was with the word _representative of_
19:25:44 <elliott> Phantom_Hoover: It is.
19:26:15 <cheater_> representative\ of could be a word
19:26:19 <NihilistDandy> It's just not representative of "imperative programming"
19:26:38 <itidus20> cheater_: i dunno why i did that..
19:26:43 <cheater_> :D
19:26:46 <itidus20> i knew it was wrong
19:27:07 <itidus20> now for stage 2 of my plan
19:27:07 <cheater_> itidus20, i'd say you're asking whether functional and imperative paradigms are compatible
19:27:10 <pikhq_> If "imperative" is intended to be a descriptor of language *anyways*, it'd really only mean "strict evaluation", IME...
19:27:41 <itidus20> cheater_: i was stating in a long winded way that i see them as children of a common parent, namely "programming languages"
19:27:43 <pikhq_> Which is so utterly inclusive as to be meaningless.
19:28:06 <NihilistDandy> I guess procedural might be better, but it's still a wide category
19:28:14 <itidus20> humm
19:28:19 <cheater_> itidus20, i think you mean subsets rather than children in a graph
19:28:24 <cheater_> and those subsets are reral fuzzy
19:28:34 <NihilistDandy> or feral ruzzy
19:28:38 <cheater_> there's no clear distinction, like in a graph, of a language being either the one or the other
19:28:47 <cheater_> NihilistDandy, dachgeschoss!
19:28:52 <CakeProphet> I almost think of imperative and procedural to be close to synonyms, with some mild differences but with considerable overlap.
19:28:55 <zzo38> Pascal could describe imperative, or, maybe even BASIC. Would BASIC do?
19:29:11 <NihilistDandy> cheater_: lol
19:29:20 <CakeProphet> basic is centered on sequential execution of commands
19:29:28 <CakeProphet> that is imperative programming...
19:29:29 <pikhq_> It's a friggin' coding style. You can do imperative code in Haskell. You can also do functional code in assembly.
19:29:34 <zzo38> BASIC might do, I think so
19:29:35 <coppro> ^
19:29:48 <pikhq_> (I will question your sanity for functional assembly, though)
19:30:24 <Deewiant> You can do functional code in assembly better than in C, since at least you can guarantee TCO in assembly
19:30:25 <NihilistDandy> cheater_: I'd like to point out that those lyrics make perfect sense :P
19:30:25 <cheater_> NihilistDandy, i like to differentiate between "declarative" and "constructive"
19:30:36 <CakeProphet> languages tend to match coding styles to a degree. There are coding styles they are comfortable with and those they are not.
19:30:41 <cheater_> NihilistDandy, that's totally dachgeschoss of you
19:31:32 <pikhq_> CakeProphet: Which still leaves functional vs. imperative as a pretty pitiful dichotomy.
19:31:41 -!- NihilistDandy has quit (Read error: Connection reset by peer).
19:31:53 <CakeProphet> it's not really a dichotomy. Just.. two animals in a barn.
19:32:00 -!- NihilistDandy has joined.
19:32:06 <cheater_> except one is part of another
19:32:10 <cheater_> and they're siamese twins
19:32:24 <NihilistDandy> Fucking connection
19:32:24 <cheater_> like a two-headed horse sorta.
19:32:32 <itidus20> i tried to traverse the graph and i failed
19:32:39 <pikhq_> After all, functional code is going to come about fairly naturally from most any language with TCO, closures, and garbage collection, and imperative code is utterly natural in anything with side effects.
19:33:00 <CakeProphet> functional code in Python is not very natural feeling.
19:33:09 <CakeProphet> compared to Haskell and Erlang, anyways.
19:33:11 <pikhq_> Python has neither TCO nor garbage collection.
19:33:26 <pikhq_> And its lambda feature is, ah, limiting.
19:33:32 <CakeProphet> I don't really know what that acronym is.
19:33:40 <pikhq_> Tail-call optimisation.
19:33:43 <CakeProphet> oh, right.
19:34:13 <CakeProphet> Python has garbage collection though.
19:34:44 <pikhq_> No, it has reference counting and some hacks to make circular references not leak memory.
19:35:01 <CakeProphet> does that not count as automatic memory management?
19:35:21 <pikhq_> Well. It does, but that's not garbage collection. :P
19:35:58 <pikhq_> Probably should've said "automatic memory management", though.
19:36:09 <CakeProphet> I don't really follow but okay...
19:36:21 <fizzie> It is also possible to write a Python function decorator that does TCO (well, to self-calls, anyway) by stack inspection, and exception throw/catch to fake a tail call. Assuming you have a barf bag, anyway. http://code.activestate.com/recipes/474088-tail-call-optimization-decorator/
19:36:45 <CakeProphet> maybe there's something specific about the definition of garbage collection that makes it different from automatic memory management that I haven't really paid attention to.
19:36:53 <elliott> Yes, there is.
19:36:53 <pikhq_> fizzie: It is also possible to write a C function that JITs Lisp and hands you a function pointer for it.
19:37:48 -!- oerjan has joined.
19:38:37 <pikhq_> CakeProphet: Automatic memory management refers to any memory management that does not require manual handling of details. Garbage collection refers to one of a number of techniques that scan the heap for unused memory that can be reclaimed.
19:39:05 <CakeProphet> I thought there was a "reference counting garbage collection" technique?
19:40:02 <pikhq_> No. Reference counting never scans the heap. Reference counting simply frees an allocation when the reference count for an allocation drops to 0.
19:40:24 <elliott> reference counting is a kind of garbage collection, really
19:40:35 <elliott> region inference is an example of a non-GC automatic memory management type
19:41:44 <pikhq_> "Never freeing" is also an example of a non-GC automatic memory management type (admittedly, a pathological case).
19:41:48 <CakeProphet> I mean, I can import gc in Python, which stands for garbage collector
19:41:50 <CakeProphet> it must have one!
19:42:04 <elliott> pikhq_: That's the memory management mandated by the Scheme standard.
19:42:27 <pikhq_> elliott: Leaving garbage collection as nothing more than an optimisation?
19:42:28 <CakeProphet> >>> gc.isenabled()
19:42:28 <CakeProphet> True
19:42:33 <CakeProphet> cool. I feel reassured.
19:42:41 <elliott> pikhq_: A specifically-allowed one, yes.
19:42:52 <elliott> (Well, any other management strategy is allowed, so long as it is never visible.)
19:42:54 <oerjan> elliott: wait, does that mean scheme cannot have finalizers? :P
19:43:28 <pikhq_> elliott: Not that surprising, really.
19:43:36 <pikhq_> That's an implementation detail, after all.
19:44:05 <elliott> oerjan: well, any implementation can do what it wants
19:44:14 <elliott> oerjan: RnRS only defines behaviour on RnRS programs :P
19:44:21 <cheater_> elliott: if i'm my own fault, does that mean i'm the embodiment of recursion
19:44:34 <oerjan> good garbage collection in the style of ghc has the advantage that it only touches live objects, which is good for idiomatic haskell where most values die quickly
19:44:45 <elliott> oerjan: "in the style of GHC"
19:44:45 <oerjan> reference counting is almost the opposite to that
19:44:47 <elliott> aka any copying collector
19:45:54 <CakeProphet> in my ecosystem-based language garbage collection will occur in the form of natural disasters.
19:46:08 <oerjan> elliott: naturally ghc is my personal base point :P
19:46:16 <CakeProphet> you can have them strike randomly or on command.
19:46:49 <oerjan> "Collection asteroid coming up"
19:46:59 <cheater_> haha
19:47:07 <NihilistDandy> cheater_: I'm my own grandpaaaa
19:47:42 <itidus20> So the reason I brought up that topic before was that stage 2 of the plan was to say, is it better to understand an abstract generalization by studying a sample of it's specializations, or by studying it without knowledge of it's specializations.
19:48:10 <NihilistDandy> Study the abstraction and make up your own special cases
19:48:27 <CakeProphet> since all of the memory is in use by the program always, the best way to prevent memory leaks is to have occasional ecosystem collapse.
19:48:46 <CakeProphet> though I can't say it will help with the determinism of your program.
19:48:57 <cheater_> NihilistDandy, die untermieter staren die waende an?
19:49:09 <monqy> who cares about determinism
19:49:34 <itidus20> to clarify further, ^of it's implemented specializations and the specializations used in practice.. these can be traditional or standardized or conventions
19:50:36 <CakeProphet> for example a rain storm might kill out some of the more fragile cold-blooded creatures.
19:50:37 <itidus20> For any useful (not a toy) abstract generalization...(is abstract generalization a tautology?) should i just say abstraction?
19:50:54 <CakeProphet> sure.
19:50:59 <itidus20> The specialization space is unreasonably large
19:51:11 <tswett> Ei älä.
19:51:21 * elliott wonders how to join ends.
19:51:32 <monqy> hjlep
19:51:41 <itidus20> like animals
19:52:00 <itidus20> the potential specializations of the abstraction Animal
19:52:06 <itidus20> are very many indeed
19:52:14 <itidus20> so instead we focus on the existing animals
19:52:15 <oerjan> itidus20: e.g. group theory (from mathematics) would be rather useless unless you did _both_
19:52:24 <monqy> abstraction animal what
19:52:37 <itidus20> or we blend parts.. like anthropomorphizing
19:52:44 <CakeProphet> furry.
19:52:45 <itidus20> combining the human animal with another animal
19:53:16 <monqy> hljep
19:53:34 <CakeProphet> itidus20: are you sure you know what you're saying right now?
19:53:39 <oerjan> in fact it may be the first example math students get of an abstraction investigated in general without (just) looking at specific examples
19:53:50 <itidus20> monqy: as in, dog, cat, fish, etc are all specializations of the abstraction animal
19:53:55 <monqy> CakeProphet: I have a feeling he doesn't
19:54:15 <CakeProphet> I could almost imagine this being the topic of a literature or creative writing paper.
19:54:27 <NihilistDandy> CakeProphet: Comparative literature, even
19:54:37 <Gregor> elliott: I don't suppose you ever found a virtual keyboard that isn't terrible?
19:55:00 <elliott> Gregor: I solved my problem by adding jobs in batches of 9 or 99
19:55:10 <elliott> Or one, which conveniently is what's chosen if you just press enter
19:55:13 <itidus20> Talking about animals like this is very darwinian of me.
19:55:21 <elliott> Gregor: So, no, but please let me know if you find one.
19:55:37 <elliott> Gregor: You should just write one, it'd be like three hundred lines of C. :p
19:55:46 <elliott> AS LONG AS IT WORKS AT A LOW ENOUGH LEVEL FOR SDL TO LIKE IT
19:56:18 <CakeProphet> an abstraction is a way to condense information into a single concept.
19:56:26 <CakeProphet> >_> there you go.
19:57:30 <monqy> itidus20: what is it you want, again?
19:58:13 <itidus20> ok what if I said I see a function as an abstraction of a number set
19:58:34 <CakeProphet> I dunno, did you say that?
19:58:37 <Phantom_Hoover> We'd rip you apart because many of us know what functions and sets actually are.
19:58:43 <itidus20> "5" is a specialization of the fibonnacci function
19:58:47 -!- ais523 has joined.
19:58:52 <CakeProphet> no.
19:58:59 <itidus20> "4" is not
19:59:01 <monqy> ripping to shreds
19:59:10 <elliott> hi ais523
19:59:12 <zzo38> Gregor: Can you fix the log program so that QUIT messages are included in the channel raw logs? It would help, if using it to search using AWK or whatever. I think I know why the QUIT messages are not included but I also think it ought to be corrected anyways. Do you know about this?
19:59:15 <ais523> hi elliott
19:59:16 <CakeProphet> abstraction is the wrong word for that.
19:59:34 <CakeProphet> or rather, a function is an abstraction, but not necessarily of a set.
19:59:35 <Taneb> ais523, you are mayor of the #esoteric-minecraft dwarf fortress fortress
19:59:48 <Phantom_Hoover> itidus20, you're talking about the image of the function, I think.
19:59:49 <ais523> hmm
19:59:58 <ais523> does this mean I'll die horribly after making too many awkward demands?
20:00:02 <Phantom_Hoover> Yes, yes you are.
20:00:07 <itidus20> ah
20:00:09 <Taneb> Actually, your demands have been pretty good
20:00:12 <Phantom_Hoover> ais523, you will if I have anything to do with it.
20:00:14 <Taneb> Low boots and copper
20:00:36 <elliott> ais523: no, that's the previous mayer.
20:00:37 <elliott> mayor.
20:00:46 <CakeProphet> So when we're talking about programming languages, a function is an abstraction of the algorithm that defines it. Instead of rewriting the algorithm we just use the name and plug in the inputs.
20:01:07 <Phantom_Hoover> No, it's not.
20:01:07 <monqy> wjat
20:01:15 <Phantom_Hoover> That's how it works in imperative languages.
20:01:48 <itidus20> my not knowing functional languages is limiting me
20:02:09 <itidus20> and so i can't actually process why i am wrong
20:02:15 <monqy> ok
20:02:22 <Phantom_Hoover> That's by far not the big thing limiting you.
20:02:31 <itidus20> my case is pretty good
20:02:33 <Phantom_Hoover> Your essential problem is that you're trying to derive the world from scratch.
20:02:50 <Taneb> Stephen Hawking did it
20:02:58 <Taneb> But he's Stephen Hawking
20:03:14 <CakeProphet> Phantom_Hoover: yes, it was one of way of describing functions as an abstraction. There is more than one.
20:03:15 <Phantom_Hoover> No, he didn't.
20:03:24 <zzo38> Does "ddate" program allow switching between Julian and Gregorian mode? In my opinion, the author of Principia Discordia probably intended Gregorian although the literal reading suggests Julian. What is your opinion?
20:03:44 <itidus20> i see abstraction as one of the most powerful ideas of all
20:03:46 <Phantom_Hoover> Taneb, why do you think he went to university?
20:04:08 <Taneb> Because he was interested in... astrophysics
20:04:09 <Taneb> ?
20:04:42 <pikhq_> Stephen Hawking stands on the shoulders of giants.
20:04:50 <itidus20> is the problem that i named it abstraction?
20:05:35 -!- pumpkin has changed nick to copumpkin.
20:05:36 <itidus20> i don't like it when some group proclaims jurisdiction over everything
20:05:49 <itidus20> its bad.. its like a conceptual black hole
20:05:55 <ais523> zzo38: I think most programmers forget about the problem altogether
20:05:59 <oerjan> pikhq_: you mean sits.
20:05:59 <itidus20> perhaps that is what i am doing to this word abstraction
20:06:02 <elliott> That group being?
20:06:08 <Phantom_Hoover> <Taneb> Because he was interested in... astrophysics
20:06:12 <pikhq_> oerjan: Well, okay. He used to stand there but no longer does.
20:06:13 <Phantom_Hoover> Jesus Taneb.
20:06:30 <Taneb> Yeah, I get your point
20:06:32 <CakeProphet> I claim jurisdiction over every group.
20:06:34 <Phantom_Hoover> Do you really think he worked out cosmology by himself?
20:06:39 <Phantom_Hoover> The Einstein field equations?
20:06:40 <CakeProphet> I am the biggest, baddest group of all.
20:06:51 <Taneb> I think I was using a completely different meaning of from scratch
20:06:52 <Phantom_Hoover> <elliott> That group being?
20:06:54 <Phantom_Hoover> A_5
20:06:58 <Taneb> Context, rather
20:07:04 <itidus20> there is a need for each group to not get too big for it's boots
20:07:12 <pikhq_> Taneb: Yes, the one that doesn't mean "from nothing", apparently.
20:07:24 <CakeProphet> itidus20: familiar with set theory?
20:07:27 <Taneb> He mathematically demonstrated that it is possible for a universe to be created out of nothing
20:07:34 <oerjan> Phantom_Hoover: A_5 is pretty badass
20:07:40 <pikhq_> Did he?
20:07:41 <Phantom_Hoover> <itidus20> i don't like it when some group proclaims jurisdiction over everything
20:07:50 <Taneb> pikhq_: pretty sure he did
20:07:52 <Phantom_Hoover> Nobody's declaring jurisdiction over anything.
20:07:57 <itidus20> i am
20:07:58 <oerjan> smallest simple noncommutative group
20:08:09 <Phantom_Hoover> oerjan, isn't it the rotation group of the icosahedron and dodecahedron too?
20:08:14 <itidus20> im saying everything is a specialization of something else
20:08:25 <oerjan> Phantom_Hoover: i don't know about that
20:08:27 <NihilistDandy> itidus20: What about category theory?
20:08:35 <NihilistDandy> ~
20:08:48 <itidus20> maybe that fits
20:08:50 <Phantom_Hoover> oerjan, I tried to do it when I learnt the orbit-stabiliser thing but I failed.
20:08:57 <monqy> itidus20: and turtles all the way down?
20:08:59 <CakeProphet> category theory is a specialization of mathematics. :)
20:08:59 <itidus20> abstractions and categories sound similar
20:09:01 <zzo38> ais523: Do you understand my question though?
20:09:15 <monqy> itidus20: do you even know what category theory is
20:09:15 <NihilistDandy> CakeProphet: You've got it backwards. :P
20:09:16 <ais523> zzo38: yes
20:09:26 <NihilistDandy> :D
20:09:39 <Phantom_Hoover> <CakeProphet> category theory is a specialization of mathematics. :)
20:09:46 <Phantom_Hoover> It's a field of it.
20:09:54 <itidus20> my brother showed me an episode of "alphas" before.. im the guy who doesn't have a clue what is going on
20:10:00 <NihilistDandy> Is it a well-ordered field?
20:10:13 <ais523> category theory is more general than a mere field!
20:10:20 <CakeProphet> NihilistDandy: yeah, okay, category theory defines everything in mathematics ever. Hasn't that been said about a lot of different fields of mathematics?
20:10:34 <Phantom_Hoover> ais523, well yes, there is the whole everything is a category issue.
20:10:34 <CakeProphet> maybe not literally as I said it. :P
20:10:36 <NihilistDandy> CakeProphet: Sure it has, but category theory also defines them
20:10:39 <elliott> Can we agree on "general abstract nonsense"?
20:10:52 <NihilistDandy> :D
20:10:53 <CakeProphet> elliott: not abstract enough!
20:10:56 <ais523> Phantom_Hoover: not quite everything
20:11:04 <Phantom_Hoover> There's not enough esoteric mathematics.
20:11:08 <ais523> I found something that wasn't in my PhD, and had to justify to my supervisor why it wasn't
20:11:12 <itidus20> we have the capacity for conflict because conflict is healthy... we are not wired to agree on everything
20:11:17 <ais523> and even then, it probably could have been made into a category with a few more definitions
20:11:34 <elliott> ais523: I like how category theory basically reverses the burden of proof :-D
20:11:40 <NihilistDandy> lol
20:11:52 <oerjan> elliott: no, but we might define a natural equivalence with general abstract nonsense
20:12:07 <CakeProphet> perhaps an isomorphism?
20:12:14 <Phantom_Hoover> elliott, burden of proof doesn't exist in maths.
20:12:32 <elliott> Phantom_Hoover: No, but it does in conversation.
20:12:44 <CakeProphet> the burden of proof is on the system!
20:12:46 <CakeProphet> the system I say!
20:12:59 <Phantom_Hoover> elliott, and anyway negative statements aren't assumed by the burden of proof.
20:13:17 <elliott> Phantom_Hoover: STOP RUINING MY JOKE
20:13:31 <Phantom_Hoover> ais523, did you actually say "it isn't a category" in the paper?
20:13:38 <ais523> no, we're not mad
20:13:49 <Taneb> That's uncategorically incorrect
20:13:53 <elliott> "we'd get burned at the stake!"
20:13:57 <ais523> we did have to own up when asked about it at the conference
20:13:59 <itidus20> from wiki "Category theory is an area of study in mathematics that examines in an abstract way the properties of particular mathematical concepts, by formalising them as collections of objects and arrows" AS GRAPHS
20:14:01 * oerjan maps elliott's joke onto a terminal element
20:14:02 <ais523> but by then, it was already too late to reject the paper
20:14:02 <CakeProphet> CakeProphet calculus: $ is the Pope, & is a grave, ^ is a mighty axe. The Pope must die.
20:14:03 <NihilistDandy> nLab will string you up
20:14:12 <ais523> itidus20: a graph is a special case of a category
20:14:13 <itidus20> not collections of objects and arrows... the word for such a collection is a graph
20:14:17 <elliott> itidus20: No... not as graphs.
20:14:19 <ais523> but then, more or less everything is a special case of a category
20:14:26 <itidus20> lol
20:14:34 <CakeProphet> everything is a special case of a dead Pope!
20:14:35 <pikhq_> ais523: Except maybe colorless green dreams.
20:14:37 <ais523> for instance, a group expressed as a category has only one object, and all the elements of the group correspond to arrows
20:14:46 <itidus20> they borrowed their notation from graphs clearly
20:14:47 <elliott> itidus20: Try not to think you're smarter than whoever wrote the Wikipedia on a subject minutes after you're introduced to you.
20:14:48 <ais523> that doesn't act much like a graph
20:14:51 <Phantom_Hoover> Oh for christ's sake.
20:15:04 <Phantom_Hoover> It's stupid to say what defines what in the first place.
20:15:20 <pikhq_> Phantom_Hoover: I define everything.
20:15:22 <Taneb> A dictionary contains definitions of words
20:15:23 <Phantom_Hoover> Categories and graphs just happen to have easily-linked definitions.
20:15:33 <itidus20> elliott: yeah im trolling
20:15:33 <Taneb> They aqre defined, for example, by Oxford University Press
20:15:36 <pikhq_> Ergo, I shall define "stupid" to mean "especially astute and wise".
20:15:49 <CakeProphet> except when the Pope dies you know it's legit...
20:15:54 <Taneb> s/aqre/are/
20:16:04 <NihilistDandy> pikhq_: You're stupid as shit
20:16:11 <Taneb> CakeProphet: $$^&
20:16:12 <itidus20> anyway, notational systems are a function of the euclidean plane
20:16:19 <monqy> what
20:16:22 <elliott> `addquote <itidus20> anyway, notational systems are a function of the euclidean plane
20:16:23 <HackEgo> 573) <itidus20> anyway, notational systems are a function of the euclidean plane
20:16:42 <pikhq_> NihilistDandy: Indeed.
20:17:10 <itidus20> nearly every written language is made of a small set of curves
20:17:17 <itidus20> and drawings are called line drawings
20:17:45 <CakeProphet> the euclidean plane is a function of the pilot's hands.
20:18:02 <Taneb> The pilot's hands are a subset of the pilot
20:18:14 <pikhq_> itidus20: I can write on non-Euclidean geometries just fine.
20:18:41 * pikhq_ holds up a ball
20:18:52 <zzo38> On the weekend I had some dream about pokemon, but I don't remember anything else about it. Maybe that is all it is?
20:18:58 <NihilistDandy> The pilot inhabits the parabolic plane
20:19:24 <itidus20> so all notations are basically about lines
20:19:36 <monqy> what
20:19:41 <NihilistDandy> wut
20:19:42 <itidus20> lines forming glyphs, lines forming polygons
20:19:48 <elliott> im a polygon
20:19:49 <monqy> what
20:19:49 <itidus20> arranged in a nice way
20:19:55 <CakeProphet> itidus20: if you cannot kill the pope with it, then you haven't really rigorously defined anything.
20:20:07 <NihilistDandy> lol
20:20:07 <Taneb> I'm a collection of irregular and regular polyhedra
20:20:38 <itidus20> notations for the most part can be represented on paper or on a monitor
20:20:46 <CakeProphet> nowhere else.
20:20:49 <CakeProphet> unpossible.
20:20:53 <itidus20> nowhere else!
20:21:01 <NihilistDandy> I'm a four dimensional solid inhabiting three dimensional space
20:21:04 <zzo38> Kill the pope with it??
20:21:13 <monqy> Kill the pope with it..
20:21:13 <NihilistDandy> hence all the self-intersection
20:21:49 <CakeProphet> the mighty axe is surely the best way to kill...
20:22:16 <Taneb> But sometimes the subtlety of poison is what is needed
20:22:21 <monqy> poison axe
20:22:24 <itidus20> ok so.. what i'll try to do is stop talking for a bit
20:22:27 <NihilistDandy> CakeProphet: But can you prove your axe's mightiness rigorously?
20:22:47 <itidus20> because the more i don't understand the topic in here, the more relevant it is likely to be.. difficult as that is for me to accept
20:23:08 <itidus20> it is a natural instinct to try to lower the topic to my level
20:24:07 <CakeProphet> CakeProphet calculus is a highly advanced level on the mathematical plane.
20:24:20 <CakeProphet> perhaps you should learn about it sometime.
20:24:23 <CakeProphet> knowledge is power.
20:24:27 <CakeProphet> *lege
20:24:42 <CakeProphet> but knowing ledges is a useful way to avoid falling off of them.
20:24:44 <Taneb> Knowledge is lege?
20:24:52 <monqy> power is a specification of knowledge
20:25:05 <CakeProphet> oh wait it is knowledge nevermind.
20:25:25 <CakeProphet> good to know.
20:25:30 <CakeProphet> OH HO HO HO HO
20:26:24 <itidus20> i don't even know algebra..
20:26:31 <monqy> this is problematic
20:26:32 <NihilistDandy> O.o
20:26:33 <CakeProphet> that would be a good start.
20:27:02 <elliott> itidus20: define algebra
20:27:10 <CakeProphet> itidus20: you should learn how to play an instrument before you attempt to write a concerto.
20:27:37 <Taneb> I've got a friend who is awful at maths
20:27:42 <elliott> Sgeo: Update.
20:27:44 <Taneb> So I tried to teach him Haskell
20:27:46 <itidus20> example: 2/3(2x -5 ) = 2/3(8x - 3)
20:27:56 <monqy> good definition
20:28:54 <Taneb> x = -1/3
20:28:57 <CakeProphet> yep.
20:29:13 <olsner> but how can you play an instrument if you haven't even written a concerto to play on it?
20:29:18 <Taneb> God, I'm out of practice
20:29:27 <CakeProphet> Taneb: yeah it took me way to long to work that one.
20:29:37 <Taneb> I blame summer holidays.
20:29:41 <CakeProphet> I blame time.
20:29:48 <Taneb> I actually began to hallucinate in my last maths exam
20:29:58 <itidus20> for me.. i would have to slowly work through it
20:30:04 <Taneb> Numbers would be wrong, twos would be fives
20:30:07 <itidus20> and i would make a mistake anyway
20:30:12 <Taneb> 14s would be 13s
20:30:23 <CakeProphet> interesting.
20:30:30 <itidus20> the idea of doing algebra in my head is unthinkable for me
20:30:37 <CakeProphet> I occasionally hallucinate when I'm going to sleep or waking up.
20:30:50 <elliott> who does anything in their head
20:30:51 <monqy> sometimes I hallucinate while I'm sleeping
20:30:57 <elliott> CakeProphet: that's not uncommon.
20:31:03 <CakeProphet> elliott: indeed not.
20:31:10 <Phantom_Hoover> `quote fist
20:31:11 <HackEgo> 428) <fizzie> You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice. \ 520) <NihilistDandy> The Russian's emblem was the hammer and sickle, not the fist and other fist
20:31:12 <elliott> Actually you hallucinate every time you go to sleep or wake up.
20:31:39 <CakeProphet> once I felt a ghost, as I was waking up.
20:31:48 <monqy> what did it feel like
20:31:49 <Phantom_Hoover> That's not uncommon at all.
20:31:51 <monqy> I've never felt a ghost
20:31:55 <Phantom_Hoover> Look up sleep paralysis.
20:32:21 <CakeProphet> I wasn't paralyzed though. I got out of bed, because I thought someone was standing outside of my bedroom door, which was out of view.
20:32:35 -!- GreaseMonkey has joined.
20:32:40 <CakeProphet> and then I felt the presence move into my room, through me, and onto the bed next to me. made my heart jump.
20:32:46 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of bromide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
20:33:05 <CakeProphet> er, I sat up in bed, actually. I didn't get out.
20:33:10 <CakeProphet> /story
20:33:22 <itidus20> is a category theory diagram an approximation of neural structures?
20:33:28 <monqy> what
20:33:35 <CakeProphet> I think he's just making stuff up now.
20:33:41 -!- boily has quit (Ping timeout: 240 seconds).
20:33:50 <elliott> itidus20: you should make friends with fungot
20:33:50 <fungot> elliott: but that jackass won't shut up and stop the thief in the throes of an unraveling alibi. " the massacre of syrs gnelph was not as written a message you got, my brother, and we just keep the safe or tub handy or the bottom of the letter is a series of really coy riddles about it and stop the thief in the throes of an unraveling alibi. " the massacre of syrs gnelph was not as written a message you got, my brother, and we
20:34:03 <Phantom_Hoover> ^style
20:34:12 <elliott> ^style
20:34:13 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
20:34:15 <olsner> what's up with the periodic matrices of elements?
20:34:19 <elliott> fizzie: That...
20:34:22 <elliott> fizzie: That wasn't Homestuck.
20:34:24 <elliott> Erm.
20:34:25 <elliott> fungot:.
20:34:25 <fungot> elliott: you and the pogo hammer.
20:34:29 <itidus20> well.. a neuron is to a node and an object, as a dendrite is to a morphism and an edge
20:34:30 <elliott> Although I guess it's a fungot bug so fizzie too.
20:34:36 <olsner> fungot: unlock the bromide
20:34:36 <fungot> olsner: are you on fire yet or what
20:34:41 <elliott> Oh, huh.
20:34:44 <elliott> It is Homestuck.
20:35:00 <CakeProphet> fungot: I love you
20:35:01 <fungot> CakeProphet: a little later... have i mentioned nanna to you, did i?
20:35:16 <Taneb> Do you think it would be possible to rig fungot up to the logs?
20:35:17 <fungot> Taneb: have a look. which of course. now it is my turn to the back inside cover, but it seems the john in the head of your smaller hammer from your deck is really dwindling now. maybe it would be best not to be near it
20:35:20 <Phantom_Hoover> elliott, http://www.mspaintadventures.com/?s=6&p=003752
20:35:21 <Phantom_Hoover> It is.
20:35:24 <CakeProphet> fungot: you want to talk dirty about your grandmother?
20:35:24 <fungot> CakeProphet: the modus recognizes the drawing, but there it is, in case he doesn't want you to be my next wild presumption. ashes. usually these matches his, that is a smart mouth you have. it plays a role in the outcome of the kids' game session.
20:35:26 <elliott> Yeah, I know.
20:35:32 <ais523> Taneb: it already has been, ^style irc
20:35:43 <ais523> although that's the logs of multiple channels, not just #esoteric
20:35:43 <elliott> Taneb: That's how it primarily talks.
20:36:12 <itidus20> monqy, cake: im comparing it with neurons precisely because of how it's creepy to do so
20:36:23 <monqy> itidus20: creepy?
20:36:35 <CakeProphet> >_>
20:36:46 <itidus20> i think it is
20:36:49 <CakeProphet> itidus20: did you know that I am the queen of France?
20:37:03 <itidus20> does france even have a monarchy?
20:37:08 <CakeProphet> sure does.
20:37:13 <itidus20> oh cool
20:37:15 <pikhq_> itidus20: No, but its leader is a monarch.
20:37:18 <Phantom_Hoover> itidus20, do you know... anything.
20:37:19 <oerjan> so many similarities: CakeProphet doesn't have a beard, and there is no evidence he exists.
20:37:46 <Phantom_Hoover> itidus20, like, did you go to school.
20:37:55 <monqy> im the empouress of americas
20:37:58 <pikhq_> (the ruler of France is also Co-Prince of Andorra.)
20:38:10 <itidus20> i tried to
20:38:12 <elliott> Phantom_Hoover: Hey, I didn't know that France had a monarchy.
20:38:17 <elliott> Phantom_Hoover: But I'm not into pop culture.
20:38:25 <elliott> Phantom_Hoover: (OK I didn't know it didn't have one either.)
20:38:34 <elliott> (I swapped that knowledge out to Wikipedia for when I need it, which will be never.)
20:38:37 <Phantom_Hoover> elliott, r u srs.
20:38:44 <Phantom_Hoover> They had that revolution?
20:38:50 <Taneb> Multiple times
20:38:51 <elliott> Phantom_Hoover: Well yeah, I know THAT part.
20:38:55 <elliott> EXACTLY
20:38:58 <Phantom_Hoover> But anyway, I'm more referring to itidus' general lack of knowledge.
20:38:58 <elliott> Maybe they had a monarchy yesterday
20:39:00 <elliott> MAYBE THEY DON'T TODAY
20:39:04 <elliott> HOW COULD I POSSIBLY KEEP TRACK
20:39:09 <olsner> who cares what they had, have or don't have
20:39:21 <monqy> what will they have
20:39:23 <elliott> In conclusion: fuck the French.
20:39:24 <oerjan> <Phantom_Hoover> They had that revolution <-- they've had monarchy since that happened, mind you
20:39:32 <elliott> itidus20: but yeah um did you not learn any elementary algebra.
20:39:36 <olsner> pretty sure they have baguettes
20:40:04 <Taneb> And croissants
20:40:09 <elliott> Bagguoistants.
20:40:29 <olsner> croisettes and baguants
20:40:32 <itidus20> when i approach algebra i find i can't absorb the rules
20:40:35 <Taneb> Except croissants are actually... Hungarian? originally
20:40:42 <NihilistDandy> itidus20: So how do you function?
20:40:52 <monqy> NihilistDandy: I have a suspicion he doesn't
20:41:06 <CakeProphet> :|:|:|:|:|:|:|:|:|:|:|:|:|
20:41:19 <olsner> french baguettes originated in france, obviously
20:41:24 <elliott> itidus20: s/algebra/elementary algebra/.
20:41:27 <olsner> *croissants
20:41:28 <elliott> This has nothing to do with abstract algebra.
20:42:06 <Taneb> If x = 2, what is x+2, itidus20?
20:42:07 <monqy> french fries, freedom fries
20:42:09 -!- myndzi has quit (Remote host closed the connection).
20:42:15 <Taneb> Which were originally Belgia
20:42:16 <Taneb> n
20:42:17 <itidus20> 4
20:42:21 <Taneb> Yep
20:42:29 <oerjan> speaking of elementary algebra like it were abstract algebra is like someone confusing a danish hill with mount everest
20:42:30 <monqy> america land of the bad names for things
20:42:41 <Taneb> If x-4 =5, what is x?
20:42:53 <itidus20> 9
20:42:54 <olsner> freedom fries aka invade-some-desert fries?
20:43:09 <Taneb> See, you're not that bad
20:43:13 <NihilistDandy> x + y = 2y - 9, solve for x.
20:43:17 <monqy> freedom fries aka fuck the french fries
20:43:33 * oerjan watches itidus20's head explode
20:43:48 <Taneb> (get x on its own)
20:43:51 <elliott> monqy: that sounds,,,,, palnfaiful,
20:44:07 <oerjan> fuck the french, but be sure to make them shower first
20:44:11 <itidus20> x = 2y - 9 - y
20:44:18 <monqy> itidus20: simplify, please
20:44:25 <itidus20> hunnnf
20:44:27 <NihilistDandy> oerjan: Cheese everests are delicious
20:44:40 <Phantom_Hoover> itidus20, 2x - x = what?
20:45:06 <CakeProphet> itidus20: expand (x+4)(x+5)
20:45:18 <monqy> if x is apples, and you have two apples, and you take one away, how many apples do you have........
20:45:28 <itidus20> 2x - x = x?
20:45:34 <monqy> applause
20:45:47 <Phantom_Hoover> itidus20, I'm not going to confirm the answer, but monqy just ruined it THANKS MONQY
20:45:53 <Taneb> So, what's 2y-9-y
20:46:10 <elliott> monqy: apples
20:46:15 <CakeProphet> itidus20: calculuate 5!. show all work.
20:46:18 <monqy> elliott: hlep
20:46:39 <elliott> CakeProphet: 5! = an excited 5
20:46:42 <elliott> (end work)
20:46:45 <NihilistDandy> 86 choose 17, show all work
20:46:55 <itidus20> Phantom_Hoover: the problem for me in that situation was uhh..
20:47:03 <CakeProphet> itidus20: use the quadratic equation to solve 23x^2 + 13x + 4
20:47:09 <oerjan> "The Iranian confectioner's union designated "Roses of the Prophet Muhammad" as the new name for Danish pastries made in the country as of 15 February 2006, although compliance with the proposed name in bakeries was mixed and short-lived."
20:47:10 <monqy> prove that 5=5 ok
20:47:19 <NihilistDandy> Prove the rationality of sqrt(2)
20:47:29 <oerjan> also cheese on danishes, are you crazy?
20:47:34 <NihilistDandy> monqy: That's really hard
20:47:44 <NihilistDandy> oerjan: Have you never heard of a cheese danish/
20:47:46 <NihilistDandy> *?
20:47:51 <elliott> Phantom_Hoover: was?
20:47:53 <pikhq_> oerjan: If they draw Muhammed on them, I approve.
20:47:56 <itidus20> (x+4)(x+5) = x^2 + 9x + 20
20:48:00 <CakeProphet> oerjan: Danish people make a delicious treat when topped with a little cheese.
20:48:11 <Phantom_Hoover> monqy, refl_equal 5.
20:48:13 <Phantom_Hoover> Qed.
20:48:25 <NihilistDandy> oerjan: It's cream cheese
20:48:35 <itidus20> 2y-9-y=y-9
20:48:45 <Phantom_Hoover> Well OK that should be "exact (refl_equal 5). Qed."
20:48:50 <Taneb> So, simplify x=2y-9-y?
20:48:50 <elliott> Phantom_Hoover: s/refl_equal/eq_refl/.
20:48:57 <elliott> Phantom_Hoover: And if you're going to do that then: reflexivity. Qed.
20:48:59 <Phantom_Hoover> elliott, nope.
20:49:01 <oerjan> pikhq_: i'd imagine that's not the idea
20:49:01 <elliott> Or even just auto. Qed.
20:49:06 <pikhq_> oerjan: Alas.
20:49:12 <Phantom_Hoover> elliott, Coq < Print eq.
20:49:12 <Phantom_Hoover> Inductive eq (A : Type) (x : A) : A -> Prop := refl_equal : x = x
20:49:12 <elliott> Phantom_Hoover: Yep. Notation refl_equal := eq_refl (only parsing).
20:49:14 <elliott> Phantom_Hoover: Yep. Notation refl_equal := eq_refl (only parsing).
20:49:14 <pikhq_> Also, mmmm cheese danish.
20:49:15 <oerjan> CakeProphet: yummy
20:49:22 <elliott> Inductive eq (A:Type) (x:A) : A -> Prop :=
20:49:22 <elliott> eq_refl : x = x :>A
20:49:23 <itidus20> x=y-9
20:49:30 <elliott> Source: http://www.lix.polytechnique.fr/coq/stdlib/Coq.Init.Logic.html.
20:49:39 <CakeProphet> 5 = 5 because (=) = (=)
20:49:39 <Taneb> I've never seen a danish. The closest to a danish I've ever seen was Scooby Doo.
20:49:51 <Phantom_Hoover> elliott, so your correction was complete crap because both are perfectly correct?
20:49:58 <NihilistDandy> Taneb: *rimshot*
20:49:58 <Phantom_Hoover> As were the rest of your 'corrections'?
20:50:09 <elliott> Phantom_Hoover: I marked them as corrections where?
20:50:14 <pikhq_> NihilistDandy: Well, not just cream cheese. It's more like what's in a cheesecake, i.e. a cream cheese based filling.
20:50:16 <elliott> I would use s/// to make someone's programming style better, too.
20:50:23 <NihilistDandy> CakeProphet: (==) Pointfree is better
20:50:30 <NihilistDandy> pikhq_: Well, yes, that's true
20:51:22 <oerjan> > 5 == (5 :: CReal)
20:51:23 <lambdabot> True
20:51:28 <oerjan> sneaky
20:51:42 <oerjan> > 5 == (5 + pi - pi :: CReal)
20:51:43 <lambdabot> True
20:51:55 <itidus20> ok the trouble is when i am doing an elementary algebra equation which is unfamiliar, my attention becomes focused on trying to conform to the rules without knowing what they are
20:51:58 <oerjan> huh
20:51:59 <NihilistDandy> I want to make a Cantor/Connect Four joke
20:52:15 <NihilistDandy> But I can't think of how to work in "There, diagonally" in a sufficiently funny way
20:52:29 <elliott> oerjan: wat
20:52:32 <elliott> oerjan: oh hm wait
20:52:36 <elliott> oerjan: CReal isn't CReal, is it
20:52:37 <elliott> in lambdabot
20:52:42 <elliott> > pi :: CReal
20:52:43 <lambdabot> 3.1415926535897932384626433832795028841972
20:52:46 <monqy> cereal
20:52:47 <elliott> oerjan: I mean it's not really infinite-precision is it?
20:52:49 <oerjan> elliott: i'm surprised it halted on the second one
20:52:58 <NihilistDandy> "I proved that the reals are uncountably infinite. Where? There, diagonally. Pretty sneaky, sis."
20:53:02 <oerjan> elliott: well _output_ is a different thing...
20:53:06 <elliott> oerjan: yes me too, which is why I don't think it is the standard CReal
20:53:09 <elliott> (from Few Digits)
20:53:14 <oerjan> elliott: maybe it just cheats on ==
20:53:26 <elliott> > pi == (e :: CReal)
20:53:27 <lambdabot> Couldn't match expected type `Data.Number.CReal.CReal'
20:53:27 <lambdabot> against infe...
20:53:30 <elliott> oerjan: oh, right
20:53:35 <itidus20> like i don't normally know how to break down a fraction.. the book i was looking at suggested that: 2/3(x) = 2(x)/3 ... this kind of thing isn't intuitive to me
20:53:36 <elliott> > (9/900000000000000000000000000000000000000000000000) == 0
20:53:37 <lambdabot> False
20:53:39 <elliott> > (9/900000000000000000000000000000000000000000000000) == (0 :: CReal)
20:53:40 <lambdabot> True
20:53:44 <elliott> oerjan: indeed
20:53:51 <elliott> > (9/900000000000000000000000000000000000000000000000 :: CReal)
20:53:52 <lambdabot> 0.0
20:54:04 <elliott> > (9/900000000000000000000000000000000000000000000000 :: CReal) * 900000000000000000000000000000000000000000000000
20:54:05 <lambdabot> 9.0
20:54:06 <Phantom_Hoover> elliott working with numbers is the very height of comedy.
20:54:07 <elliott> oerjan: yep
20:54:16 <elliott> Phantom_Hoover: Stop mocking me for being disabled.
20:54:27 <Phantom_Hoover> elliott, no.
20:54:49 <NihilistDandy> Well, that's true in the sense that (2/3)x = (2x/3)
20:54:56 <NihilistDandy> @itidus20:
20:54:57 <lambdabot> Unknown command, try @list
20:55:18 <itidus20> dandy: yup but i don't know such facts
20:55:28 <NihilistDandy> It's multiplication
20:55:29 <itidus20> that is what i mean by i don't know elementary algebra
20:55:42 <elliott> itidus20: x=m/n for some m and n
20:55:55 <NihilistDandy> non-zero n
20:56:09 <monqy> learn abstract algebra and it will make so much more sense????
20:56:09 <elliott> 2/3 * m/n = (2*m/n)/3 blah blah blah
20:56:15 <elliott> monqy: this isn't even abstract algebra
20:56:16 <NihilistDandy> monqy: I find that is the case, yes
20:56:21 <elliott> monqy: this is "reducing the division rule for rationals"
20:56:28 <elliott> it is literally alpha replacement
20:56:39 <NihilistDandy> I don't even do division
20:56:45 <NihilistDandy> I just multiply by fractions
20:56:50 <NihilistDandy> I don't do subtraction, either
20:56:51 <Phantom_Hoover> Why do you even need to have x as m/n.
20:57:02 <elliott> Phantom_Hoover: I was... trying to make it easy for itidus20 to see why it's true, but then I gave up.
20:57:25 <Phantom_Hoover> elliott, and therefore failed to get across that it's true for all numbers, not just rationals.
20:57:29 <NihilistDandy> elliott: Try (1/2) * 2 = (2/2) = 1
20:57:36 <monqy> maybe itidus21 will get it.....
20:57:56 <oerjan> i recall from when i was little this nice diagonal diagram for x/y = w/z, where you can move any term across to the opposite diagonal
20:58:17 <oerjan> very mnemonic
20:58:26 <NihilistDandy> Cross products, or whatever
20:58:34 <elliott> <Phantom_Hoover> elliott, and therefore failed to get across that it's true for all numbers, not just rationals.
20:58:44 <elliott> Phantom_Hoover: SORRY but I don't ACCEPT the existence of the REALS
20:58:47 <elliott> </lies>
20:58:49 <elliott> <lies>
20:59:02 <elliott> Phantom_Hoover: But seriously, it still works out if you just remove the integral restriction on m and n, I think.
20:59:05 <monqy> reals just arent real sorry
20:59:12 <itidus20> so basically (a/b)c means: MUL c,a; DIV c,b; (not sure if operands in the right order)
20:59:16 <NihilistDandy> elliott: Quite a… cutting… remark YEEEAAAAAAAAHHHHHH
20:59:17 <Taneb> They're imaginary
20:59:42 <monqy> itidus20: what
20:59:46 <Taneb> And integers are complex
20:59:51 <elliott> itidus20: do you know what the rationals are
20:59:55 <NihilistDandy> itidus20: It means (ac/b)
20:59:55 <itidus20> monqy: if i was to express it as assembly language
21:00:00 <monqy> itidus20: why
21:00:08 * oerjan notes how elliott deftly continued with a new "<lies>" block
21:00:35 <NihilistDandy> oerjan: It's really a nested lie block
21:00:50 <NihilistDandy> You'd have to go back in the logs to determine the real truth value
21:00:54 <oerjan> lies all the way down?
21:01:02 <NihilistDandy> lies == turtles
21:01:06 <itidus20> rationals.. yes my book told me that rationals are either repeating or terminating
21:01:09 <elliott> oerjan: That's my schtick, ever since I-forget-when I reopened a tag just in caes
21:01:12 <elliott> itidus20: your Book
21:01:21 <NihilistDandy> What book?
21:01:22 <Taneb> The big book of itidus20
21:01:40 <Phantom_Hoover> It can kill small children if mishandled
21:01:40 <Taneb> Magnus Liber Itidi XX
21:01:46 <itidus20> its a humble book called the bedside book of algebra
21:01:46 <NihilistDandy> And if you think about it, they're really all repeating
21:01:50 <NihilistDandy> But most of them repeat 0s
21:01:51 <olsner> oh, good idea! <lies> it is then
21:02:03 <NihilistDandy> So lies it isn't?
21:02:16 <Phantom_Hoover> itidus20, did you just come here to comprehensively out-Sgeo Sgeo?
21:02:21 <Taneb> I'm going to try something
21:02:25 <NihilistDandy> Phantom_Hoover: olawd
21:02:26 <olsner> NihilistDandy: ... or is it?
21:02:34 <Taneb> <statement type="clever">
21:02:49 <elliott> Phantom_Hoover: excuse me itidus20 is like ten times as awesome as Sgeo.
21:03:05 <NihilistDandy> olsner: ( 0-_) I turn away from you
21:03:05 <monqy> supercomprehensively outsgeoed
21:03:12 <Phantom_Hoover> elliott, yes, because he's so Sgeo he comes around the other side?
21:03:14 <oerjan> <elliott> itidus20: your Book <-- itidus20 somehow has got hold of erdős's Book, but sadly he understands not a word of it
21:03:20 <elliott> Phantom_Hoover: That... may be so.
21:03:46 <itidus20> no its actually called "the bedside book of algebra" ... :-"
21:03:53 <itidus20> its a cute little book
21:03:55 <monqy> :-"
21:04:12 <Phantom_Hoover> itidus20, see, that's a very Sgeo thing to have.
21:04:16 <itidus20> but the elementary algebra examples are able to break me.. over little details
21:04:24 <oerjan> itidus20: are you sure? try to look for a page starting something like "Proof that P = NP" or "Proof that P != NP"
21:04:41 <Taneb> The Bedside Book of Algebra By Paul Erdős and Kevin Bacon?
21:04:44 <NihilistDandy> The ABC of X plus Z
21:05:00 <itidus20> oerjan: i do know that theres $1,000,000 on the table for whoever can prove it
21:05:10 <oerjan> indeed
21:05:13 <Phantom_Hoover> oerjan, what's Erdos' book?
21:05:20 <itidus20> however, surely that is a pittance compared to the value of the actual act
21:05:38 <Taneb> Phantom_Hoover: Love's Labours Won
21:05:43 <NihilistDandy> Phantom_Hoover: It's where God keeps all the proofs
21:05:44 <oerjan> Phantom_Hoover: the hypothetical book that contains the most elegant proof of every mathematical theorem
21:05:56 <itidus20> they're just hoping some indian with a family to feed gives the answer to them
21:06:03 <Phantom_Hoover> Taneb, if this is going to become a Doctor Who reference don't bother.
21:06:04 <NihilistDandy> http://jpg.artige.no/store/9871.jpg
21:06:26 <Taneb> No, I was thinking of all the missing books I could
21:06:32 <elliott> NihilistDandy: I...
21:06:44 <monqy> me too
21:06:48 <elliott> <Phantom_Hoover> oerjan, what's Erdos' book?
21:06:52 <elliott> Phantom_Hoover: the one with all the nice porofs
21:07:04 <NihilistDandy> @where+ horror http://jpg.artige.no/store/9871.jpg
21:07:04 <lambdabot> Done.
21:07:06 <elliott> oerjan: um of every theorem? I don't recall him saying that, I HAVE READ HIS WIKIPEDIA ARTICLE _SEVERAL_ TIMES
21:07:09 <itidus20> its one of the last books i bought before officially having no more money
21:07:26 <Phantom_Hoover> NihilistDandy, ARGH
21:07:27 <NihilistDandy> itidus20: Use topology to make more money
21:07:30 <Phantom_Hoover> I HATE YOU
21:07:35 <NihilistDandy> lol
21:07:40 <elliott> NihilistDandy: Can I set that as my desktop background, tiled.
21:07:44 <NihilistDandy> DO IT
21:07:47 <elliott> Can GNOME display animated gifs as the background and if not, why not.
21:08:05 <elliott> Actually zooming in tells me that stretching it may be better.
21:08:13 <itidus20> noone "really" wants an animated desktop
21:08:17 <elliott> I DO
21:08:20 <monqy> "really"?
21:08:26 <elliott> In the sense that I don't relaly
21:08:27 <elliott> really
21:08:27 <Taneb> I very rarely actually look at my desktop
21:08:30 <elliott> But I do for, like, whole seconds
21:08:31 <itidus20> elliott thinks he wants one.
21:08:45 <elliott> Taneb: Nobody does, that's why wallpapers are stupid and people who care about wallpapers are stupid.
21:08:48 <itidus20> just for kicks
21:08:51 <NihilistDandy> Zooming in just makes it worse
21:08:59 <monqy> my background is just black
21:09:06 <elliott> AND IF MY FRIEND WHO CARES ABOUT WALLPAPERS IS READING THIS, YOU'RE TSUPID!!!!!!!!!!!!!!!
21:09:17 <elliott> monqy: mine is the default ubuntu wallpaper (im creative)
21:09:21 <NihilistDandy> elliott: I have a very nice wallpaper with a Gagarin quote on it
21:09:49 <Phantom_Hoover> Gagarin has quotes??
21:09:54 <elliott> Gagarin, more like GagarBIN.
21:09:58 <elliott> Because he should be put into the BIN.
21:10:13 <NihilistDandy> Phantom_Hoover: "I see no God up here."
21:10:30 <itidus20> i have a range of math books... some with actual substance.. but to elementary algebra
21:10:35 -!- myndzi has joined.
21:10:38 <elliott> When was the last time someone said God was literally in space
21:10:40 <Phantom_Hoover> NihilistDandy, Misattributed
21:10:40 <Phantom_Hoover> I see no God up here.
21:10:40 <Phantom_Hoover> This has been reported as a remark Gagarin made while in orbit aboard Vostok 1, but there is no indication of it in the official transcripts of his communications. It is similar to the above statements he reportedly made after his return to earth, which might have given rise to this account.
21:10:42 <Taneb> I would have the default Ubuntu desktop wallpaper
21:10:43 <Taneb> But!
21:10:47 <elliott> Like did the Soviets go:
21:10:47 <Phantom_Hoover> OH SNAP
21:10:49 <elliott> Let us know if you see God up there
21:10:52 <elliott> Just sorta hoverin' all big like
21:10:53 <elliott> Because
21:10:55 <elliott> That would sort of
21:11:00 <elliott> Damage our position on that matter a bit
21:11:02 <Phantom_Hoover> Not Russian enough.
21:11:02 <Taneb> I am temporarily using Windows due to reasons I don't fully understand
21:11:03 <elliott> So just
21:11:05 <elliott> Let us know
21:11:23 <itidus20> one trouble i get is if i see something like: x / 5 = 2x + 3
21:11:29 <NihilistDandy> Phantom_Hoover: The wallpaper doesn't say he said it in space.
21:11:41 <NihilistDandy> So it's just a terrible paraphrase
21:11:42 <elliott> Поехали!
21:11:42 <elliott> Let's go!
21:11:42 <elliott> Uttered during the launch of Vostok 1 (12 April 1961); quoted by Sergey Viktorovich Novikov, in Большая историческая энциклопедия [The Greater Historical Encyclopedia] (2003) by Olma Media Group, p, 943
21:11:42 <elliott> Variant translations: Let's ride!
21:11:42 <elliott> Let's drive!
21:11:45 <elliott> INSPIRING WORDS FROM AN INSPIRING MAN
21:11:55 <NihilistDandy> AWESOME
21:12:02 <Phantom_Hoover> NihilistDandy, it doesn't say he didn't say it in space.
21:12:16 <elliott> I am a friend, comrades, a friend!
21:12:17 <elliott> First words upon returning to earth, to a woman and a girl near where his capsule landed (12 April 1961) The woman asked: "Can it be that you have come from outer space?" to which Gagarin replied: "As a matter of fact, I have!" As quoted in The Air Up There : More Great Quotations on Flight (2003) by Dave English, p. 118
21:12:19 <elliott> OK that
21:12:21 <elliott> is awesome
21:12:24 <elliott> Were they just like two random people
21:12:28 <elliott> Drops out of space
21:12:29 <elliott> gets out
21:12:31 <Phantom_Hoover> That should be the quote.
21:12:31 <elliott> "SUP GUYS"
21:12:43 <NihilistDandy> "FROM SPACE"
21:13:04 <elliott> All astronauts should land in random places specifically chosen to be populated but only by people who have no idea there's a space mission going on.
21:13:13 <elliott> I am disappointed in NASA for not arranging this
21:13:18 <NihilistDandy> "GOOD MORNING STALINSHINE, THE VACUUM OF SPACE SAYS HELLO"
21:13:24 <itidus20> One trouble I get is if I see something like: x / 5 = 2x + 3 Do I say x = 2x + 3(5) OR x = (2x + 3)5
21:13:33 <itidus20> im guessing its the latter though
21:13:40 <pikhq_> elliott: The US would do well for that.
21:14:01 <elliott> When they saw me in my space suit and the parachute dragging alongside as I walked, they started to back away in fear. I told them, don't be afraid, I am a Soviet like you, who has descended from space and I must find a telephone to call Moscow!
21:14:02 <elliott> Recalling his meeting with workers in a field, upon his landing, as quoted in "Life on Mars?" by Jesse Skinner in Toro magazine (14 October 2008)
21:14:02 <Phantom_Hoover> pikhq_, I'm just going to stop you before you start bitching
21:14:02 <elliott> OK
21:14:05 <elliott> this
21:14:10 <elliott> this is the best landing ever.
21:14:20 <NihilistDandy> itidus20: x = 10x + 15, -9x = 15, x = -(15/9)
21:14:22 <elliott> Nobody said anything that cool after landing to the moon.
21:14:33 <elliott> Nobody asked for a telephone to call Moscow after landing on the moon.
21:14:43 <elliott> Landing on the moon: less cool than landing on Earth.
21:15:07 <Phantom_Hoover> "Mr Stalin, phone is ringing!"
21:15:14 <Phantom_Hoover> "Who is it?"
21:15:31 <Phantom_Hoover> "He says he is from space!"
21:16:05 <monqy> itidus20: ...:(
21:16:34 <Phantom_Hoover> "Hey guys it's me I landed and I'll just stay with these guys until you get here.
21:17:05 <NihilistDandy> "Please don't execute me when you get here."
21:17:28 <itidus20> monqy: i was fairly sure but i know i need to be certain
21:18:32 <elliott> Oh; gcc was ported to System Seven
21:18:35 -!- Swiss_ has joined.
21:18:35 <elliott> excellent
21:18:35 <NihilistDandy> itidus20: Remember that whatever you do to one side, you have to do the same thing on the other side
21:18:45 <Swiss_> Hi
21:18:46 <elliott> FINALLY MY IMPOSSIBLE PROJECT IS ONE STEP CLOSER TO COMPLETION
21:18:53 <Taneb> Hey, Swiss_
21:18:54 <elliott> Swiss_: How much pride would you say you have in your country
21:18:57 <NihilistDandy> At least if you're trying to maintain equality
21:18:59 <monqy> which impossible project
21:19:10 <NihilistDandy> elliott: _ <- this much, apparently
21:19:13 -!- Swiss_ has left.
21:19:18 <Phantom_Hoover> "Following the flight, Gagarin told the Soviet leader Nikita Khrushchev that during reentry he had whistled the tune "The Motherland Hears, The Motherland Knows" Following the flight, Gagarin told the Soviet leader Nikita Khrushchev that during reentry he had whistled the tune "The Motherland Hears, The Motherland Knows" "
21:19:21 <elliott> monqy: (A) Cygwin(-alike) for Macintosh System 7
21:19:23 <Taneb> Oh, he actually was swiss
21:19:27 <elliott> NihilistDandy: Well, his username is swiss_guy
21:19:34 <elliott> monqy: (or earlier)
21:19:35 <NihilistDandy> _o_
21:19:35 <myndzi> |
21:19:35 <myndzi> /|
21:19:42 <elliott> monqy: (preferably system software 6)
21:19:43 <NihilistDandy> Ah
21:19:46 <oerjan> <elliott> oerjan: um of every theorem? I don't recall him saying that, I HAVE READ HIS WIKIPEDIA ARTICLE _SEVERAL_ TIMES <-- well it must be true since i made up that phrasing on the spot
21:19:49 <elliott> monqy: Including pre-emptive multitasking.
21:19:56 <NihilistDandy> What the hell is myndzi?
21:19:58 <Phantom_Hoover> "Ah, damn, I didn't realise reëntry would take this long."
21:20:03 <Phantom_Hoover> "Might as well whistle."
21:20:11 <NihilistDandy> _o_
21:20:11 <myndzi> |
21:20:11 <myndzi> /|
21:20:12 <Phantom_Hoover> NihilistDandy, an ungodly fusion of machine and man.
21:20:36 <NihilistDandy> \o/
21:20:36 <myndzi> |
21:20:36 <myndzi> /<
21:20:49 <elliott> OK I am officially a Gagarin Fan now.
21:20:52 <itidus20> dandy: but supposing i had: x + y/5 = 2x + 3 ... would it then become x+y = 10x + 15 .. or would it be something else?
21:20:53 <NihilistDandy> \o\
21:20:53 <myndzi> |
21:20:53 <myndzi> /|
21:20:55 <elliott> I don't care how much of a communist he was.
21:21:15 <NihilistDandy> itidus20: You have to multiply each side by 5
21:21:20 <oerjan> <NihilistDandy> itidus20: Use topology to make more money <-- sheesh Banach-Tarski isn't topology
21:21:21 <Phantom_Hoover> Unfortunately, it's an ungodly fusion that uses a justification that nobody else does.
21:21:25 <NihilistDandy> So it would be 5x + y = 10x + 15
21:21:40 <elliott> Phantom_Hoover: Most people use that justification.
21:21:46 <elliott> The only common client that doesn't is XChat.
21:22:00 <NihilistDandy> oerjan: Oh, psh. Set theoretic geometry, topology, whatevs
21:22:10 <elliott> NihilistDandy: It's not geometry either
21:22:14 <NihilistDandy> Bananas and plantains
21:22:20 <elliott> Weeell
21:22:28 <elliott> I guess I'll grant "set theoretic geometry", even Wikipedia seems to call it that
21:22:34 <elliott> But it seems unfair
21:22:50 <NihilistDandy> What would you call it?
21:23:04 <NihilistDandy> Spacewank?
21:23:05 <elliott> Probably just "set theory"
21:23:17 <elliott> It starts off with geometry, then goes off and does its own thing
21:23:22 <elliott> Then ends in the same bit of geometry
21:23:46 <monqy> cool
21:24:03 <Phantom_Hoover> It's group theory as well.
21:24:21 <Phantom_Hoover> The group theory is the important bit, really.
21:24:25 <copumpkin> :o
21:25:16 <NihilistDandy> Group theory is really what gets you laid
21:25:37 <elliott> groupie theory
21:25:45 <elliott> See also: stable marriage problem
21:26:07 <itidus20> what about if i have (x + y)/5 = 2x + 3 ... can I say x+y = 10x + 15?
21:26:16 <NihilistDandy> itidus20: Yes
21:27:06 <NihilistDandy> But putting parentheses around an expression isn't an operation, so don't try to be cute. :P
21:27:45 <itidus20> humm... i see
21:27:59 <itidus20> so (x + y)/5 = x/5 + y/5
21:28:07 <NihilistDandy> Yes
21:28:32 <elliott> `quote Mafia
21:28:33 <HackEgo> No output.
21:29:25 <itidus20> so if i want to remove a term on one side, i add the inverse term on hte other side.. but if i want to remove a division from one term, i multiply all the terms on both sides by the inverse of the division
21:29:40 <monqy> wjat
21:29:53 <NihilistDandy> Multiplication is the inverse of division
21:29:59 <itidus20> well ya
21:30:14 <monqy> "multiply ... by the inverse of the division" what does this mean
21:30:31 <itidus20> bad english
21:30:52 <itidus20> err.. its a tautology
21:31:10 <itidus20> or something
21:31:14 <Taneb> Multiply by multiplication?
21:31:20 <oerjan> <elliott> Probably just "set theory" <-- also an important bit of group theory
21:31:26 <Taneb> > 1 * (*)
21:31:27 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a -> a)
21:31:27 <lambdabot> arising from a use...
21:31:52 <NihilistDandy> > (*).(*)
21:31:53 <lambdabot> Overlapping instances for GHC.Show.Show (a -> (a -> a) -> a -> a)
21:31:53 <lambdabot> arisin...
21:32:03 <NihilistDandy> > @type (*).(*)
21:32:04 <lambdabot> <no location info>: parse error on input `@'
21:32:06 <monqy> > (1 * (*)) <$> [0..10]
21:32:07 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
21:32:07 <lambdabot> arising from a use of `...
21:32:08 <NihilistDandy> @type (*).(*)
21:32:09 <lambdabot> forall a. (Num a) => a -> (a -> a) -> a -> a
21:32:12 <NihilistDandy> derp
21:32:28 <NihilistDandy> > 1 ** 10
21:32:29 <lambdabot> 1.0
21:33:01 <Taneb> Goodnight
21:33:17 <NihilistDandy> itidus20: Anyway, the basic idea is that you perform actions on the entire LHS and the entire RHS
21:33:43 <NihilistDandy> You can't just operate on little pieces
21:33:46 <oerjan> > ((*).(*)) 1 2 3
21:33:47 <lambdabot> 6
21:33:52 -!- Taneb has quit (Read error: Connection reset by peer).
21:34:09 <NihilistDandy> oerjan: I need to come up with a name for that
21:34:20 <monqy> > (1 * (*)) <$> [0..3] <*> [0..3]
21:34:21 <lambdabot> [0,0,0,0,0,1,2,3,0,2,4,6,0,3,6,9]
21:34:35 <NihilistDandy> oerjan: I know! Jukebox Combinator
21:35:06 <Lymee> @src (.)
21:35:06 <lambdabot> (f . g) x = f (g x)
21:35:07 <lambdabot> NB: In lambdabot, (.) = fmap
21:35:16 -!- CakeProphet has quit (Ping timeout: 258 seconds).
21:35:28 <oerjan> heh they added a clarification :P
21:35:34 <oerjan> @src flip
21:35:34 <lambdabot> flip f x y = f y x
21:35:38 <oerjan> but not to that one
21:35:42 <monqy> what's flip
21:35:42 <oerjan> :t flip
21:35:43 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
21:35:45 <Sgeo> elliott, Phantom_Hoover datehuss
21:35:53 <Sgeo> Oh
21:36:14 <Lymee> > ((*).(*)) 10 10 10
21:36:16 <lambdabot> 1000
21:36:24 <oerjan> :t flip fmap (flip ($))
21:36:25 <lambdabot> forall b a b1. (((a -> b1) -> b1) -> b) -> a -> b
21:36:28 <oerjan> oops
21:36:52 <oerjan> :t flip (fmap.(flip ($)))
21:36:52 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
21:37:09 <NihilistDandy> @type (((*).).(.(*)))
21:37:10 <lambdabot> forall b a. (Num b, Num a) => ((a -> a) -> b) -> a -> b -> b
21:37:17 <zzo38> Do you know it is possible in Windows, to copy disk images, using the DefineDosDevice API? Hopefully whoever designs ReactOS should know about this too.
21:37:19 -!- Nisstyre has quit (Ping timeout: 255 seconds).
21:37:42 <itidus20> can expressions be considered as a list of terms to be summed together in any order?
21:38:01 <NihilistDandy> (((*).).(.(*))) ((*).(*)) 10 10 10
21:38:04 <NihilistDandy> > (((*).).(.(*))) ((*).(*)) 10 10 10
21:38:06 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> a) -> a -> a)
21:38:06 <lambdabot> arising fro...
21:38:19 <NihilistDandy> hmm
21:38:20 <itidus20> and in such a list, 2 terms which are inverse of each other are negated..
21:38:39 <NihilistDandy> itidus20: Sum sort of has a well-defined meaning
21:38:43 <itidus20> ListOfTermsLHS = ListOfTermsRHS
21:38:57 <oerjan> itidus20: yes, that's saying that addition is a commutative group operation
21:39:01 <NihilistDandy> I mean, if the equality is true, then yes
21:39:14 <itidus20> if you allow for a term to have a sign
21:39:15 <NihilistDandy> Also what oerjan said
21:39:31 <itidus20> then subtraction can be performed with addition of course
21:39:54 <oerjan> you can do the same for products as long as there are no zeros, because multiplication is also a commutative group operation except on zeros
21:40:12 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:40:47 <itidus20> but suppose you want to change one of the coefficients in one of these lists, then you have to change the coefficient in every term in both lists right?
21:41:32 <oerjan> itidus20: generally what you do is to apply the _same_ operation to the LHS and the RHS, with parentheses around everything, and then you simplify each side
21:42:02 <itidus20> but you can't really do addition on groups i guess
21:42:02 <NihilistDandy> > (((*).).(.(*))) 2 90 3
21:42:04 <lambdabot> 6
21:42:56 <NihilistDandy> This is my new definition for multiplication forever
21:43:01 -!- sllide has joined.
21:43:03 <itidus20> like you can't say....( 5 + 6 + 4)+3 = (8+9+7)
21:43:07 <itidus20> hehe
21:43:18 <oerjan> NihilistDandy: wtf happened to the 90
21:43:22 <sllide> are esolangs really this popular?
21:43:30 <NihilistDandy> oerjan: It doesn't do anything
21:43:33 <NihilistDandy> > (((*).).(.(*))) 2 150 3
21:43:34 <elliott> sllide: this counts as popular?
21:43:34 <lambdabot> 6
21:43:42 <elliott> there's more people on the wiki than on here, by far
21:43:43 <oerjan> :t (((*).).(.(*)))
21:43:44 <lambdabot> forall b a. (Num b, Num a) => ((a -> a) -> b) -> a -> b -> b
21:43:57 <sllide> i know, i was talking about esolangs in general not this channel compared to the wiki
21:44:04 <oerjan> aha
21:44:10 * NihilistDandy nods
21:44:18 <elliott> sllide: Well... they're popular enough to have a smallish wiki and IRC channel, yes :-P
21:44:26 <sllide> good
21:44:27 <NihilistDandy> oerjan: SO POINTFREE
21:44:32 <sllide> i am thinking of creating a esolang
21:44:39 <elliott> sllide: Although I must warn you we're off-topic most of the time.
21:44:44 <sllide> even better
21:45:35 <Phantom_Hoover> sllide, indeed, being on-topic is generally the sign of a noob.
21:45:46 <ais523> on-topic is better
21:45:47 <elliott> But the primary sign of that is being Phantom_Hoover.
21:45:48 <ais523> it's just harder
21:45:51 <ais523> and off-topic is often interesting
21:46:01 <elliott> ais523: but but, @
21:46:07 <Phantom_Hoover> elliott, it's this time dilation!
21:46:13 <ais523> elliott: I consider @ ontopi
21:46:14 <ais523> *ontopic
21:46:16 <sllide> Phantom_Hoover, and refusing to go off-topic makes you anti social
21:46:22 <oerjan> <itidus20> like you can't say....( 5 + 6 + 4)+3 = (8+9+7) <-- nope, that would be distribution which is a special relationship between addition and multiplication
21:46:24 <elliott> sllide: it makes you ais523
21:46:25 <coppro> wait what's the topic
21:46:35 <sllide> i shall remember that
21:46:42 <Phantom_Hoover> sllide, nah, antisocial doesn't worth that way on IRC.
21:46:48 <oerjan> coppro: bromide
21:46:53 <monqy> hating brainfuck derivatives makes Phantom_Hoover antisocial
21:47:03 <elliott> hmm, I like how we complain about various minor character traits as being vaguely ais523-esque, but calling someone ais523 would be an unwarranted compliment in 99 percent of cases
21:47:03 <sllide> i like this channel
21:47:06 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of iodide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
21:47:11 <elliott> poor guy must be so confused
21:47:24 <ais523> elliott: I, umm, think that's a compliment?
21:47:31 <elliott> ais523: my thoughts exactly
21:47:34 <Phantom_Hoover> ais523, no it's a complement.
21:47:45 <monqy> complemint
21:47:53 <elliott> complete mint flavour diagram freshness
21:47:53 <elliott> what
21:47:56 <sllide> so is the design of a esolang hard?
21:48:00 <sllide> i am brainstorming atm
21:48:06 <sllide> not even knowing what is comming next
21:48:08 <ais523> sllide: making a bad esolang is really easy
21:48:10 <elliott> sllide: no. see http://esolangs.org/wiki/Category:Shameful
21:48:12 <ais523> making a good esolang is pretty hard
21:48:13 <sllide> cool
21:48:21 <oerjan> <ais523> elliott: I consider @ ontopi <-- what did the ontopus do to you
21:48:26 <sllide> my goal isnt to make it a good language
21:48:33 <ais523> if you make another boring brainfuck derivative, everyone will shout at you
21:48:36 <ais523> I mean, good at being an esolang
21:48:37 <elliott> oerjan: thank you for showcasing your character trait to sllide.
21:48:52 <NihilistDandy> sllide: Define multiplication as (((*).).(.(*)))
21:48:53 <monqy> do I have a character trait
21:48:57 <elliott> monqy: monqy
21:49:12 <sllide> i was thinking about something befunge like
21:49:23 <Phantom_Hoover> sllide, always a bad sign.
21:49:28 <elliott> Is it?
21:49:29 <monqy> be careful or you'll make another boring befunge derivative
21:49:36 <elliott> That's more interesting than thinkign about something BF-like
21:49:37 <sllide> yeah i know
21:49:41 <oerjan> elliott: yw
21:49:41 <NihilistDandy> I was thinking of making an English-like conlang
21:49:49 <Phantom_Hoover> elliott, only because it's not been done to death.
21:49:50 <sllide> well the only thing i want is it to be 2d like bf
21:50:00 <sllide> i like that concept
21:50:00 <Phantom_Hoover> sllide, oh, that's OK.
21:50:02 <elliott> Phantom_Hoover: If there were a billion Feather derivatives that'd be boring too
21:50:05 <coppro> oerjan: oh ok
21:50:08 <oerjan> puns and proving things TC, that's my shtick
21:50:08 <elliott> sllide: Careful abbreviating Befunge as BF
21:50:11 <elliott> BF means brainfuck :P
21:50:26 -!- coppro has set topic: Don't enjoy unlocking the matrix of bromide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
21:50:27 <sllide> ah
21:50:31 <monqy> befunge and brainfuck "one and the same"
21:50:33 <elliott> oerjan: can you prove my toaster TC... it can't duplicate things, but it can toast them
21:50:35 <Phantom_Hoover> elliott, but also the design of Brainfuck is also far more amenable to making terrible derivatives.
21:50:54 <ais523> BF is generally used as an abbreviation for "brainfuck"
21:50:58 <ais523> because that word needs abbreviation
21:51:05 <ais523> Phantom_Hoover: you miscapitalised "brainfuck"
21:51:07 <NihilistDandy> Phantom_Hoover: I'll just replace all the >'s with % and I'll be interesting
21:51:17 <elliott> ais523: it doesn't really need abbreviation
21:51:20 <sllide> i am so bad at being creative
21:51:22 <Phantom_Hoover> ais523, I couldn't care less.
21:51:27 <ais523> elliott: it's painful to type
21:51:36 <sllide> i cant even come up with a project name
21:51:37 <elliott> ais523: does it physically hurt you to type out curses
21:51:39 <oerjan> elliott: well duplication might be simulated. can you do _two_ toastings looking like jesus?
21:51:48 <ais523> elliott: no, I'm fine with them in an appropriate context
21:51:52 <elliott> sllide: that's not lack of creativity, that's one of the two hard problems of computer sciience.
21:52:01 <elliott> sllide: the others are caching and fencepost errors
21:52:02 <ais523> but I don't use them very often, so they aren't ingrained in muscle memory
21:52:07 <Phantom_Hoover> You miscapitalise most sentences. Please stop being prescriptivist about things that aren't even prescribed, kthxbye
21:52:10 <elliott> ais523: try swearing a lot
21:52:15 <ais523> elliott: I rarely have problems naming things
21:52:21 <elliott> Phantom_Hoover: try not whining so much about people who correct your capitalisation of bf
21:52:22 <NihilistDandy> elliott: lol
21:52:25 <sllide> i hate fencepost errors
21:52:36 <ais523> Phantom_Hoover: I have correct spelling and grammar for IRC
21:52:42 <Phantom_Hoover> elliott, why, they're the ones correcting me.
21:52:43 <ais523> the grammar I use is consistent, it's just different from normal written English
21:52:55 <NihilistDandy> different == wrong
21:53:01 <sllide> i remember having one in the graphics driver of my OS
21:53:15 <elliott> Phantom_Hoover: because you went into a full-blown rant when you incorrectly corrected an esowiki page's capitalisation of it and I fixed it
21:53:43 <elliott> ais523: English really needs a syntax-tree nesting limit enforced at gunpoint
21:53:48 <oerjan> <elliott> Phantom_Hoover: If there were a billion Feather derivatives that'd be boring too <-- there can only be one feather derivative in recorded history, although it might change
21:53:59 <Phantom_Hoover> elliott, and I don't want to go into another one, so please shut up about it.
21:54:04 <elliott> ais523: anyone who disagrees will be shown [[Checkout]]
21:54:05 <ais523> elliott: why? I'd be more likely to break it than almost anyone else
21:54:26 <elliott> Phantom_Hoover: You're really overreacting, btw.
21:54:41 <elliott> sllide: you have an OS? let me tell you about how much better @ is...
21:54:51 <Phantom_Hoover> elliott, I'm shutting up about it; please return the favour.
21:54:53 <sllide> it wasnt a os
21:54:59 <sllide> it was a attempt at a os
21:55:04 <elliott> So's @ ;-)
21:55:12 -!- pumpkin has joined.
21:55:18 <oerjan> <ais523> elliott: it's painful to type <-- just write some slash fiction for practice and that should pass
21:55:21 <ais523> elliott: different OSes are good for different purposes, I don't think you could use @ for hard-realtime control of a microcontroller
21:55:31 <sllide> what...
21:55:34 <elliott> ais523: I wouldn't use an OS for hard-realtime control of a microcontroller
21:55:45 <ais523> elliott: if it's doing more than one thing, you need at least a trivial OS
21:55:55 <elliott> oerjan: careful, he'll rage/part
21:56:09 <NihilistDandy> > (/) fiction
21:56:10 <lambdabot> Not in scope: `fiction'
21:56:15 <ais523> I know that last time I programmed a DSP, I used a pre-empting OS where each process had a number and pre-empted lower-numbered processes
21:56:29 <elliott> ais523: Weeeeeeeeeeeeeeeeeeeeeeell I think you could get @ to be hard-realtime
21:56:31 -!- copumpkin has quit (Ping timeout: 252 seconds).
21:56:35 <ais523> oerjan: I'm not imaginative enough to write truly great slash fiction
21:56:37 <elliott> You'd have to not run most of the standard system though
21:56:47 <elliott> But you could keep, like, the equivalent of the language stdlib
21:56:52 <elliott> As long as its performance guarantees were OK for you
21:56:56 <elliott> (you could replace the language itself)
21:57:02 <elliott> `addquote <ais523> oerjan: I'm not imaginative enough to write truly great slash fiction
21:57:03 <HackEgo> 574) <ais523> oerjan: I'm not imaginative enough to write truly great slash fiction
21:57:28 <elliott> I like how right after sllide entered the channel went insane
21:57:38 <sllide> i tend to do that
21:57:39 <NihilistDandy> So ais523 is a clay tureen?
21:58:06 <ais523> elliott: we're that insane anyway, but someone new joining increases activity, so it becomes more obvious
21:58:12 <ais523> NihilistDandy: I'm not sure what you're referencing
21:58:38 <NihilistDandy> I guess it depends what you mean by "great"
21:58:52 <sllide> i like a bit of chaos
21:59:16 <elliott> hmm, I wonder if I can modify that dataflow model to handle mutable references
21:59:39 <elliott> I must salvage my terribleness
22:01:08 <sllide> actually i have 2 goals, one is to have a 2d non liniar programming language, and a way to add graphical i/o later on
22:01:49 <oerjan> <elliott> oerjan: careful, he'll rage/part <-- oh right, should get him addicted first
22:02:14 <elliott> hey fungot, increase our standards
22:02:15 <fungot> elliott: just be patient, the answer, the fact remained except a note of this, since it just looks so 8ad!
22:02:16 <ais523> oh, I only just got the joke
22:02:20 <ais523> sorry
22:02:30 <elliott> ais523: wait, there was a joke?
22:02:32 <elliott> fungot: you're not helping
22:02:32 <fungot> elliott: for a while it was frustrating. they will come a day
22:02:33 -!- Vivio-chan has joined.
22:02:35 <Lymee> ~ship
22:02:36 * Vivio-chan ships GreaseMonkey/ineiros <3 <3
22:02:41 <elliott> I
22:02:41 <ais523> elliott: glad to know it wasn't intentional
22:02:44 -!- Vivio-chan has quit (Client Quit).
22:02:46 <elliott> Lymee: other things that aren't helping: you
22:02:52 <pikhq_> elliott: Yeah, I can't imagine @ not being flexible enough to be able to remove/replace any impediments to realtime.
22:02:54 <elliott> ais523: oh, I see it now
22:02:56 <Lymee> ais523, go write the slashfic. Now.
22:02:59 <elliott> I think, probably
22:03:03 <ais523> Lymee: you have a bot ready to bring into channels just in case that happens/
22:03:07 <elliott> this is terrible how did everything suddenly become terrible
22:03:12 <Lymee> ais523, um. Nope!
22:03:15 <elliott> what a chanel,,,
22:03:21 <elliott> monqy: help
22:03:27 <ais523> Lymee: I suppose it wouldn't have taken that long to write one
22:03:33 <pikhq_> Heck, worst case scenario you'd make your hard realtime thing be the only thing running, disable the scheduler, and voila.
22:03:36 <ais523> and it could have been done in the time since oerjan's commetn
22:03:38 <ais523> *comment
22:03:48 <pikhq_> You're running on bare hardware, except less painful.
22:03:50 <ais523> pikhq_: hard realtime stuff often does need a scheduler
22:03:52 <elliott> pikhq_: I think it's kind of cheating
22:03:53 <ais523> just a very deterministic one
22:04:04 <elliott> because you're not really running @ any more
22:04:11 <pikhq_> elliott: Yes, this would be cheating.
22:04:16 <elliott> you're running some other OS that happens to use some of @'s libraries
22:04:19 <pikhq_> elliott: Hence why I said "worst case".
22:04:23 <elliott> which may involve its object creation stuff
22:04:25 <elliott> right
22:04:51 <sllide> whats @?
22:04:52 <monqy> hi im back
22:04:55 <monqy> help????
22:04:59 <elliott> @ is certainly targeted at things that aren't any kind of realtime, with one person sitting at them, with a fairly decent processor on it
22:05:00 <pikhq_> More practically, you'd probably just make the scheduler give hard realtime guarantees.
22:05:06 <elliott> monqy: channel explode,
22:05:08 <elliott> sllide: ah
22:05:18 <elliott> sllide: will you not ask if I say don't ask?
22:05:27 <sllide> sure
22:05:36 <sllide> is it that bad?
22:05:39 <sllide> or just hard to explain
22:05:43 <elliott> sllide: ask me again slightly later when I have nothing to do that isn't explaining @
22:05:45 <elliott> so like
22:05:46 <elliott> in five minutes
22:05:52 <sllide> okay
22:06:04 <oerjan> sllide: @ is an OS made out of only the finest vapour
22:06:12 * oerjan hides
22:06:18 * elliott hunts down, murders oerjan
22:06:21 <elliott> standard policy
22:06:29 <pikhq_> elliott: Which might even already exist — there's a chance you'd want some things for the end user being realtime... (though I can't really think of much that's *hard* realtime for that)
22:06:31 <ais523> elliott: at least your city isn't rioting at the moment
22:06:32 <sllide> i see
22:06:58 <ais523> I live far enough from the centre that it hasn't affected me other than preventing me travelling easily
22:07:03 <ais523> but it's still annoying
22:07:04 <elliott> ais523: why don't people live in fireproof buildings; hypothesis: they're idiots
22:07:13 <pikhq_> `addquote <oerjan> sllide: @ is an OS made out of only the finest vapour
22:07:14 <HackEgo> 575) <oerjan> sllide: @ is an OS made out of only the finest vapour
22:07:16 <ais523> elliott: because completely fireproofing a building is really hard
22:07:18 <elliott> what i am saying is, riots only affect people who live in stupid buildings.
22:07:21 <elliott> next question
22:07:27 <elliott> <pikhq_> elliott: Which might even already exist — there's a chance you'd want some things for the end user being realtime... (though I can't really think of much that's *hard* realtime for that)
22:07:39 <elliott> pikhq_: well user input always gets processed immediately in the standard desktop @
22:07:40 <oerjan> elliott: hey i was carefully using british spelling for you
22:07:59 <Phantom_Hoover> <ais523> elliott: at least your city isn't rioting at the moment
22:08:00 <pikhq_> elliott: Pretty sure that's still soft realtime.
22:08:02 <elliott> because otherwise you don't really have many options if something starts hogging your CPU
22:08:03 <elliott> also
22:08:15 <Phantom_Hoover> Silly ais, elliott doesn't live in a city.
22:08:17 <elliott> because it's really annoying to have your cursor start moving slower when your system is under load
22:08:18 <pikhq_> But eh, you can overkill that just fine. :)
22:08:33 <ais523> Phantom_Hoover: has the rioting reached Scotland yet? I haven't heard any reports of it, but am not sure I would if it had
22:08:43 <Phantom_Hoover> ais523, nothing I've heard of.
22:08:43 <elliott> ais523: in Glasgow, they call that Tuesday
22:08:49 <Phantom_Hoover> That too.
22:09:05 <elliott> oh no, have I become an agent of Edinburgh unwittingly?
22:09:10 <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:10 <ais523> I think in London/Birmingham/Manchester, the rioters are really just trying to create a diversion so that they can burgle things
22:09:17 <Phantom_Hoover> elliott, MWAHAHAHAHAHA
22:09:27 <Phantom_Hoover> RESISTANCE IS FUTILE
22:09:29 <oerjan> `addquote <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:30 <HackEgo> 576) <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:35 <elliott> `addquote <ais523> Phantom_Hoover: has the rioting reached Scotland yet? I haven't heard any reports of it, but am not sure I would if it had <elliott> ais523: in Glasgow, they call that Tuesday <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:36 <HackEgo> 577) <ais523> Phantom_Hoover: has the rioting reached Scotland yet? I haven't heard any reports of it, but am not sure I would if it had <elliott> ais523: in Glasgow, they call that Tuesday <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:42 <elliott> oerjan: oops........
22:09:42 <oerjan> oops
22:09:46 <elliott> which is better........
22:09:50 <Phantom_Hoover> I PREFER OERJAN'S
22:09:54 <elliott> `delquote 577
22:09:55 <HackEgo> ​*poof*
22:09:56 <ais523> so do I, i think
22:09:57 <elliott> `quote Glasgow
22:09:59 <HackEgo> 576) <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime.
22:09:59 <Phantom_Hoover> It doesn't have those two unfunny idiots.
22:10:05 <NihilistDandy> lol
22:10:51 <monqy> ok i think i finally caught up
22:10:55 <elliott> ais523: have a nightmare: you're remotely administrating an @ system, when suddenly, every UI element living on it stops updating........ and responding to input
22:10:59 <monqy> are we done exploding
22:11:10 -!- copumpkin has joined.
22:11:15 <oerjan> monqy: MAYBE
22:11:20 <elliott> ais523: you discard them and open a remote emergency console object........... and it doesn't load
22:11:33 <elliott> ~sequel~
22:11:39 <ais523> elliott: sounds like a connection drop?
22:11:41 <elliott> you call the hosting company and ask them to check on the physical machine.........
22:11:44 <elliott> and it's NOT THERE
22:11:55 <pikhq_> Sounds like a quantum teleportation to the moon.
22:12:02 <elliott> ais523: I was trying to imply it was completely frozen, which in @ is a situation as difficult to create as it is to get out of
22:12:10 <monqy> this is my nightmare every night
22:12:40 -!- pumpkin has quit (Ping timeout: 252 seconds).
22:13:02 <itidus20> the physical machine is not there? that sounds like trouble
22:13:11 <elliott> ~hollywood sequel~
22:13:12 <elliott> the machine
22:13:13 <elliott> was NEVER THERE
22:13:19 <monqy> :0
22:13:20 <elliott> the hosting company check their records...
22:13:21 <elliott> and YOU
22:13:22 <elliott> DON'T
22:13:23 <elliott> EXIST
22:13:29 <sllide> fuck, everything i come up with is almost identical like befunge
22:13:34 <elliott> you look at your body
22:13:36 <elliott> and discover IT DOESN'T EXIST
22:13:43 <elliott> then you retreat into your conscious mind
22:13:45 <elliott> only to find out that
22:13:45 <elliott> IT
22:13:46 <elliott> DOESN'T
22:13:47 <elliott> EXIST
22:13:49 <elliott> roll credits
22:14:09 <itidus20> only to find.. the movie doesn't exist
22:14:10 <Phantom_Hoover> The director...
22:14:16 <Phantom_Hoover> DOESN'T EXIST
22:14:23 -!- GreaseMonkey has quit (Quit: The Other Game).
22:14:32 <elliott> Dear diary: today itidus20 and Phantom_Hoover made the same joke simultaneously. Today my life fulfilled itself.
22:14:53 <monqy> I don't have a diary
22:14:56 <elliott> ais523: actually, I wonder why Linux systems can freeze up totally?
22:15:01 <olsner> elliott: hmm, your life did? not itidus20 and Phantom_Hoover?
22:15:03 <elliott> I can only assume the scheduler is really dumb
22:15:15 <itidus20> So you stop to count the number of things which have gone wrong, and discover that integers do not exist
22:15:16 <ais523> elliott: presumably a lock on something really important doesn't get released
22:15:24 -!- Patashu has joined.
22:15:28 <elliott> ais523: but you can lock up a linux system without running into any kind of critical bug
22:15:33 <ais523> not to mention, a kernel panic deliberately locks up the system
22:15:34 <Phantom_Hoover> elliott, actually I was aiming for a subversion of the M. Night Shyamalan joke, but it obviously fell flat.
22:15:36 <elliott> ais523: just start a load of memory-hogging and CPU-hogging processes
22:15:38 <elliott> Phantom_Hoover: No, I got that
22:15:39 <ais523> and just loops with the caps lock light flashing
22:15:43 <olsner> haven't you read the whole soap opera about some guy's heroic efforts at making a sane scheduler for linux?
22:15:51 <elliott> olsner: BFS?
22:15:56 <elliott> I don't know that it avoids total lockups
22:16:01 <ais523> it'd be better if it were actually written in BF
22:16:02 <elliott> I mean, obviously total lockups
22:16:05 <elliott> aren't total lockups
22:16:12 <elliott> because it's still running the really intensive processes
22:16:18 <elliott> but why is it never switching to your UI long enough for it to do anything?
22:16:36 <elliott> why does a bunch of processes being really demanding of resources deprive other processes that don't even want much?
22:17:19 <ais523> oh, I see, you're talking about thrashing, etc?
22:17:26 <elliott> yes
22:17:29 <ais523> I've had that happen on Windows too
22:17:38 <elliott> yes, but I generally expect Linux to be slightly saner
22:17:40 <elliott> and BSDs too
22:17:41 <ais523> I wonder if it can happen on OS X? my guess is yes, but I'm not sure
22:17:45 <elliott> yes
22:17:59 <elliott> I mean, obviously it's easy to write an OS naively that has this problem, but I don't see why you can't solve it
22:18:15 <elliott> It might slow down things that actually do really intensive stuff, but those are generally servers and it is OK for servers to use different schedulers
22:18:44 <Phantom_Hoover> I guess in Linux's case it's because X is a normal process and it'd be hard to do nicely?
22:19:02 <ais523> elliott: when you get a lock up that hard, does control-alt-F1 work well?
22:19:06 <elliott> Phantom_Hoover: I'd be very surprised if setting X + your WM + your terminal to realtime priority would solve the issue
22:19:09 <Phantom_Hoover> No.
22:19:13 <elliott> ais523: Sometimes.
22:19:19 <elliott> ais523: If it does, it is generally really slow.
22:19:23 <Phantom_Hoover> ais523, I've had lockouts much worse than that in the past.
22:19:25 <elliott> Like, faster than your GUI, but still hugely lagged.
22:19:32 <ais523> I turned memory overcommit off, and it helped
22:19:34 <elliott> as in it can take over a minute to log in
22:19:43 <elliott> ais523: but now you can't run SBCL :)
22:19:44 <ais523> last time I accidentally wrote a program that took up all of memory, I just got an "out of memory" error
22:20:06 <ais523> (I was trying to brute-force a travelling salesman problem solution, using A*)
22:20:19 <elliott> using all of an @ system's memory would be Fun
22:20:21 <ais523> (the number of places to visit was small enough that I thought it might be bruteforceable, but it turns out it wasn't)
22:20:33 <ais523> elliott: you clearly need an rlimit equivalent
22:20:46 <elliott> indeed
22:20:59 <elliott> ais523: that's just "only giving code an allocator that keeps track of how much space it's used so far", etc.
22:21:09 <ais523> yep
22:21:19 <Gregor> What's the nonshittiest way to share big files for free? Like rapidshare and such only ... not terrible.
22:21:25 <ais523> cpu time limiting might he harder
22:21:29 <elliott> Gregor: mediafire is what I use, because it's... acceptable.
22:21:36 <ais523> Gregor: I ran into that problem recently; in the end, we used netcat + md5
22:21:39 <ais523> *md5sum
22:21:45 <elliott> Gregor: It has ads and it's shittyish, but it doesn't force you to wait before downloading
22:21:51 <elliott> It's the best of the bunch since filebin.ca went down
22:22:13 <ais523> mediafire doesn't work well with wget
22:22:18 <monqy> how big is big
22:22:35 <Phantom_Hoover> monqy, DF-region-file big?
22:22:48 <Gregor> monqy: 200M
22:23:02 <sllide> i am going outside smoke a cig and hope something comes up in my mind while i'm doing that
22:23:04 <elliott> Gregor: Yeah, go with Mediafire
22:23:10 <elliott> ais523: You can get it to work, it's just awkward
22:23:14 <elliott> But for two hundred megs, [browser] should be fine
22:23:25 <Gregor> elliott: Okidoke.
22:23:36 <elliott> Gregor: There's also email, if you have lenient enough servers
22:24:20 <Phantom_Hoover> sllide, well-established technique.
22:24:21 <ais523> Gregor: I tried email first, the other end's gmail rejected it because I was sending a tarball and one of the files in it had a .bat extension
22:24:25 <ais523> which is, umm, a little silly
22:24:30 <Phantom_Hoover> Just look at all the languages... nooga... erm.
22:25:03 <elliott> Phantom_Hoover: Hey, oklopol liked SADOL moderately.
22:25:43 <Phantom_Hoover> elliott, I didn't know he made it, though.
22:29:02 <zzo38> ais523: Then can you do something such as reverse the file before sending?
22:29:21 <elliott> <lupine_85> I try to avoid PMs on IRC
22:29:22 <elliott> <lupine_85> and there was that nutter who kept trying to get me on google voice or whatnot
22:29:22 <elliott> <lupine_85> deeply unpleasant
22:29:23 <elliott> Sgeo: is this the hacker guy
22:29:37 <elliott> <lupine_85> 8 bits per character should be enough for anyone!
22:29:38 <elliott> ah
22:29:49 <Sgeo> elliott, hm?
22:30:06 <ais523> zzo38: I could have done, but we'd already set up netcat by then
22:30:09 <elliott> Sgeo: is that the guy who thought notice was hacking
22:30:27 -!- myndzi\ has joined.
22:30:28 <elliott> <Elisha> for instance nations who use most characters should have only 1byte, and chinese can take 6bytes for a sign, since their sign tells you much more than 10bytes of long word in 1byte
22:30:42 <Sgeo> elliott, I don't think there is such a person, but at one point I thought jasonmxristos thought that
22:30:51 <ais523> elliott: are you busy quoting unintelligable people?
22:30:56 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:31:01 <elliott> ais523: it's #jesus, the #esoteric away from #esoteric
22:31:22 -!- myndzi has quit (Ping timeout: 258 seconds).
22:31:23 <elliott> <Preacha_Warg> the tough questions <Preacha_Warg> why does God do such and such
22:31:26 <elliott> definitely the tough questions
22:33:13 <itidus20> lol
22:34:41 <itidus20> i can do better than that
22:34:50 <monqy> :)
22:36:02 <itidus20> From whose tradition did you start to refer to god in capitalized pronouns? The people in the bible were largely illiterate and thus they couldn't say pronouns with a capitalization. When did this start?
22:36:22 <itidus20> is the kind of question I can think up when I am looking to show off that i am tougher than warg
22:36:33 <elliott> ok Sgeo i must ask
22:36:44 <elliott> is #jesus ever anything BUT reiterations of "debates" people have had about a thousand times
22:37:06 <Phantom_Hoover> It'd be way better if all the atheists just shut up.
22:37:06 <elliott> because i love it, it is like groundhog day, if that were an IRC channel, and not a film starring bill murray. or si bill murray in#jesus/s?????????///
22:37:08 <ais523> itidus20: actually, nouns/pronouns used to be capitalised in English
22:37:11 <ais523> "I" still is
22:37:19 <elliott> Phantom_Hoover: totally, they're so annoying
22:37:19 <ais523> but many lost their capitalisation over time
22:37:20 <Patashu> how can #jesus ever NOT be reiterations of debates
22:37:26 <Patashu> you can't prove anything empirically re: religion
22:37:29 <Patashu> so you can't get anywhere
22:37:33 <elliott> Patashu: it could be a circlejerk
22:37:40 <elliott> that's kind of the POINT of #jesus
22:37:45 <elliott> it's meant to be like a christian hangout
22:37:50 <elliott> but all these atheists are ruining it for the rest of us
22:37:51 <Phantom_Hoover> Well, except the ones who just gently egg them on.
22:37:56 <Patashu> haha
22:38:15 <olsner> elliott: i.e. the atheists are ruining the show?
22:38:23 <elliott> olsner: precisely.
22:38:36 <olsner> I kind of expected atheists to create some action, but maybe they are boring atheists
22:38:46 <elliott> olsner: it's mostly just
22:38:53 <elliott> olsner: "HURR YOU CAN'T EMPIRICALLY PROVE GOD - I WIN"
22:39:04 <ais523> you can't empirically disprove God either
22:39:09 <elliott> olsner: and then responding to people who talk with "(ha ha this is funny because christians are stupid)"
22:39:20 <itidus20> I like to argue. I do it for the thrill much like a hunter shooting down pidgeons.
22:39:25 <pikhq_> ais523: No, but you can't empirically disprove that you're a figment of my imagination.
22:39:30 <elliott> ais523: nor Russell's teapot, but there are far simpler reasons to reject god
22:39:50 <ais523> pikhq_: and why would I want to?
22:39:55 <elliott> what i am saying is, exterminating atheists worldwide to make #jesus a more entertaining place: a reasonable proposition?
22:40:02 <ais523> elliott: no
22:40:07 <olsner> just ban them from #jesus
22:40:11 <NihilistDandy> pikhq_: I already did that one.
22:40:32 <NihilistDandy> elliott: Totally reasonable
22:40:35 <elliott> ais523: yes
22:40:45 <pikhq_> elliott: You first.
22:40:47 <elliott> olsner: they're allowed there which is STUPID
22:40:53 <elliott> pikhq_: no im a christian now
22:41:08 <pikhq_> elliott: The offer still stands.
22:41:13 <olsner> elliott: just... unallow them
22:41:23 <elliott> olsner: i cant im not op :(
22:41:26 <elliott> injustices
22:41:34 -!- kwertii has joined.
22:41:48 <olsner> you need to produce the image of a good christian so you get op
22:41:50 <elliott> if I were op I would provide a stable and caring environment for people who talk about how they burn books to circlejerk in peace
22:42:03 <elliott> olsner: but Sgeo was almost op and is athiest..... more athie than anyone else in there...................
22:42:15 -!- myndzi\ has quit (Ping timeout: 240 seconds).
22:42:20 <olsner> maybe complaining some about the atheists would help giva a "good guy for cleaning up the channel" impression
22:42:46 <pikhq_> "Yeah, man, those atheists should be crucified!"
22:42:53 <NihilistDandy> Upside down
22:43:05 <monqy> spinning
22:43:19 <elliott> olsner: Sgeo would out me because he's a jerk
22:43:20 <monqy> cross on rotating platter
22:43:25 <olsner> the eighth seven sin: being an unfunny atheist in a christian forum
22:43:27 <sllide> nope, just more ideas that look like befunge >.<
22:43:29 <elliott> * DanFred (~asd@0x55531367.adsl.cybercity.dk) has joined #jesus
22:43:33 <elliott> <DanFred> real christianity in ##christian
22:43:33 <elliott> <DanFred> here you are banned for saying killing is not christian
22:43:37 <elliott> pro
22:43:52 <monqy> oh man is ##christian like #jesus but more so
22:43:54 <pikhq_> NihilistDandy: What, and tarnish St. Peter?
22:44:18 <NihilistDandy> pikhq_: I'm willing to make a case that Peter was the first ever atheist. :D
22:44:49 <NihilistDandy> No wait, fuck that, I'm eating chicken now
22:44:52 <elliott> * Users on ##christian: elliott Sgeo Phantom_Hoover DanFred ^peter^ ljrbot luke-jr sec^nd luke-jr|otg @ChanServ
22:44:56 <elliott> monqy: initial evidence says "yes"
22:45:08 <monqy> it looks brilliant
22:45:21 <ais523> elliott: is ChanServ christian?
22:45:23 <pikhq_> Astonishing considering what Peter did.
22:45:28 <itidus20> ais523: i didn't know that by the way about pronouns... cool stuff
22:45:33 <elliott> ais523: ChanServ is literally jesus. (this is the best religion ok.)
22:45:58 <elliott> <lupine_85> ^peter^, incidentally, I am aware that your demands that I prove I exist are an attempt to distract me from your failure to provide *any evidence* (not a proof, merely evidence that meets the mainstream definition of what evidence is) of the form you claimed was available using basic research
22:46:01 <itidus20> Sometimes I don't know which way to go on the "i"
22:46:11 <elliott> YOU ARE RUINING THE CHANNEL LUPINE :/
22:46:34 <elliott> `don'taddquotebutireallywantto <DanFred> christianity is not a badge you buy in USA with your gun purchase
22:46:35 <HackEgo> No output.
22:51:11 <monqy> so what is this so-called real christianity
22:51:19 <elliott> monqy: catholicism
22:51:52 <monqy> do they ever quibble about which flavour of christianity is right
22:51:55 <zzo38> "Real Christianity", who knows.... maybe...
22:52:34 <elliott> <DanFred> I am banned from this channel for saying that soldiers are evil because they kill and Jesus is pacifism
22:52:39 <Sgeo> monqy, constantly
22:52:44 <elliott> pacifism wafers
22:52:49 <elliott> Sgeo: he means hash hash christian
22:52:54 <Sgeo> Oh
22:52:58 <monqy> I meant both
22:53:08 <Sgeo> #jesus bickers all the time
22:53:18 <Sgeo> I'm not a ##catholic or ##christian regular
22:53:24 <elliott> Someone who doesn't have predisposed lament bias against them ask him what he thinks qualia are
22:53:36 <monqy> wait now danfred is pacifism??? I thought last he said that killing is christian???????
22:53:41 <monqy> hlep????????
22:53:46 <elliott> monqy: <elliott> <DanFred> here you are banned for saying killing is not christian
22:53:52 <monqy> yes
22:54:03 <monqy> am I misinterpret that
22:54:12 <elliott> that was in jesus
22:54:23 <monqy> right
22:54:32 <elliott> <lupine_85> we've even weighed bodies before and after death to see if anything changes
22:54:34 <monqy> and then what was "soldiers are evil because they kill" about
22:54:37 <elliott> apparently this is a test of dualism
22:54:42 <elliott> monqy: he hates hash-jesus
22:54:46 <elliott> he was making a complaint
22:54:52 <elliott> <elliott> <lupine_85> we've even weighed bodies before and after death to see if anything changes
22:54:52 <elliott> ok i think
22:54:55 <elliott> we need to all appreciate how this is
22:54:58 <elliott> the best test for dualism possible
22:55:24 <zzo38> The weight cannot test for dualism, that is dumb.
22:55:28 <monqy> the classic "souls have mass" hypothesis
22:55:32 <ais523> elliott: it was how phlogiston was proved to not exist
22:55:36 <ais523> or at least, have a negative weight
22:55:49 <elliott> phlogiston = the matter->spirit bridge??
22:55:51 <elliott> SCIENCE SAYS YES
22:55:56 <elliott> `addquote <monqy> the classic "souls have mass" hypothesis
22:55:57 <HackEgo> 577) <monqy> the classic "souls have mass" hypothesis
22:56:06 <zzo38> monqy: Yes, if you assume souls have both location and mass... but how can you know either one is correct?
22:56:18 -!- myndzi has joined.
22:56:25 <elliott> "Is the sentence, "This is a load of bull" really necessary for the scholarly development of the article?" --[[Talk:Phlogiston theory]]
22:56:25 <monqy> zzo38: maybe that's what they were testing. secretly.
22:56:53 <elliott> <Sgeo> lupine_85, I'm going to agree with Phantom_Hoover on this. I'd think opening up the brain, and seeing only neurons, and their parts, etc., is a better evidence against dualism
22:57:03 <elliott> Sgeo: you realise that dualism could be implemented in the laws of physics
22:57:14 -!- copumpkin has joined.
22:57:24 <elliott> just run a process over everything that looks like a brain and copy the information you get out of them to the spirit world
22:57:36 <Sgeo> elliott, that would be zombie world stuff
22:57:40 <elliott> maybe like
22:57:40 <Sgeo> Not back and forth communication
22:57:42 <elliott> avoided a race condition
22:57:47 <elliott> [asterisk]maybe that like
22:57:47 <zzo38> elliott: I don't think that disproves dualism though, but it does show what dualism is not. Of course that does not mean dualism exists either; it just means that if it does, it is not that.
22:57:51 <elliott> maybe god is just a really bad programmer
22:58:07 <elliott> Sgeo: well ok.
22:58:08 <zzo38> But "just run a process over everything that looks like a brain and copy the information you get out of them to the spirit world" is absurd.
22:58:34 <sllide> okay, anyone here got some ideas for me?
22:58:42 <monqy> sllide: ideas?
22:58:47 <sllide> for a esolang
22:58:52 <itidus20> sllide is here for making an esolang
22:59:00 <sllide> yup
22:59:02 <elliott> zzo38: you can do that in a computer simulation, so you can do it in a universe
22:59:04 <Patashu> sllide, make an RTS themed esolang
22:59:07 <Patashu> or a roguelike themed esolang
22:59:10 <zzo38> sllide: I don't know. You can look at the list of ideas and make up something else new
22:59:11 <Patashu> or a religion themed esolang
22:59:18 <Patashu> or a civilization/SMAC themed esolang
22:59:20 <sllide> zzo38, where is that list?
22:59:21 <zzo38> elliott: Yes you probably can, but that does not mean it is not absurd
22:59:28 <zzo38> sllide: In wiki
22:59:30 <itidus20> speaking of religion, what about a political themed esolang?
22:59:32 <sllide> okay
22:59:36 <zzo38> In esolang wiki
22:59:46 <zzo38> http://esolangs.org/wiki/List_of_ideas
22:59:48 <Patashu> haha politics
22:59:57 <elliott> lupine is really stupid
23:00:06 <Patashu> made up of politicians, who each have a voting function
23:00:09 <itidus20> Elect President Democrat
23:00:13 <sllide> zzo38, thanks
23:00:15 <Patashu> when a value is put up, all politicians vote aye or nay and it either passes or fails...
23:00:18 <Patashu> hmm, this is sounding like a neural network
23:00:22 <itidus20> Vote on Proposition 25
23:00:32 <itidus20> oops hmm
23:00:56 <sllide> heh bugmaker
23:01:40 <monqy> I dislike tehz
23:01:46 <monqy> is this bad
23:01:49 <itidus20> Democrats Propose Presidential Candidate Obama. Republicans Propose Presidental Candidate McCain. Elect President. Move President to White House.
23:01:52 <elliott> no that is called being human monqy
23:01:55 <elliott> or being a monkey
23:01:56 <elliott> as it may be
23:02:13 <monqy> are monkeys subhuman
23:02:14 <itidus20> While in office, uhmm
23:02:16 <NihilistDandy> Phantom_Hoover: We need to get ^peter^ banned because it's really annoying to highlight him
23:02:49 <zzo38> I think monkeys are unhuman. That is, everything not human is unhuman, and human is not unhuman. It is my opinion.
23:03:12 <zzo38> However, note that "unhuman" should not imply anything other than just this, please!
23:03:12 <itidus20> Senate Votes on x > 5.
23:03:35 <itidus20> if x > 5 wins the ballot...
23:04:31 <elliott> NihilistDandy++
23:04:32 <oerjan> NihilistDandy: have you tried p<tab> ?
23:04:36 <itidus20> don't mind me sllide... i have many unbaked ideas
23:04:43 <sllide> haha
23:04:45 <elliott> <Free-man> elliott bc that's what yhvh had writ in Gen. 1.
23:04:45 <zzo38> One idea I had about esolang is the "Crab's Jukebox"-style programming language.
23:04:45 <elliott> ah
23:04:51 <NihilistDandy> oerjan: It doesn't work
23:04:58 <oerjan> aww
23:04:58 <NihilistDandy> His name starts with "^"
23:05:01 <sllide> i was thinking of something related with images
23:05:08 <elliott> Sgeo: Please ask lament exactly how he defines qualia it's insanely irritating.
23:05:21 <Sgeo> elliott, you can't do it?
23:05:33 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of iodide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
23:05:34 <oerjan> NihilistDandy: well i'm asking if you've _tried_. i believe some clients ignore non-alphanums for selecting nicks to expand to
23:05:38 <elliott> Sgeo: no, because he dislikes me and won't respond with the full sincerity he might give you.
23:05:42 <elliott> or at least the sixty percent sincerity.
23:05:50 <NihilistDandy> oerjan: I did try. Sadly, no joy. T_T
23:05:51 <elliott> ideally one of the regular Christians would ask.
23:05:58 <elliott> (of the slightly less bizarre variety)
23:06:23 <NihilistDandy> Also, ^peter^'s weird spacing drives me insane
23:06:35 <elliott> <Patashu> I think debates about qualia, intelligence, emotions, pain and so on would be improved by a healthy dose of computer science/programming knowledge
23:06:37 <elliott> Patashu: r u srs
23:06:50 <itidus20> qualia is that which is percieved yet cannot be communicated directly. you can only assume that it exists
23:07:03 <Phantom_Hoover> elliott, sure, it'd be like every debate having itidus20.
23:07:08 <sllide> i think i'm going with images
23:07:12 <Patashu> elliot a little
23:07:19 <elliott> ,addquote <DanFred> Patashu, I am a genius computer scientist with special skills in AI. and yes it can help
23:07:25 <Phantom_Hoover> itidus20, on that subject, get into #jesus already lupine is running it into the ground.
23:07:27 <NihilistDandy> lol
23:07:30 <Patashu> <DanFred> Patashu, I am a genius computer scientist with special skills in AI. and yes it can help
23:07:32 <Patashu> damnit
23:07:34 <elliott> itidus20: YES GET INTO #JESUS WE NEED YOU
23:07:35 <Patashu> I just got disproven
23:07:58 <elliott> god
23:08:00 <monqy> wow im a genious computer scientist too
23:08:01 <elliott> this is my favourite channel
23:08:02 <elliott> not this one, jesus
23:08:06 <elliott> monqy: are you in jesus... if not why not
23:08:10 <ais523> elliott: fun situation in the Oracle vs. Google court case; Oracle are claiming that autosaves of an email from a Google employee to a Google lawyer don't fall under attorney-client privilege because the To: filed wasn't filled in when the autosave was taken
23:08:12 <itidus20> oops i need to focus on esolang topic
23:08:15 <monqy> i dont kwon
23:08:15 <elliott> you're not... misisng out
23:08:20 <elliott> ais523: amazing
23:08:21 <NihilistDandy> Where can I get these "special skills in AI"?
23:08:21 <monqy> should i
23:08:22 <monqy> join
23:08:24 <ais523> *To: field
23:08:24 <monqy> jesus
23:08:26 <elliott> monqy: yes its mandatory
23:08:30 <elliott> NihilistDandy: bible
23:08:31 <ais523> elliott: I'm not entirely sure if their reasoning is correct or not
23:08:36 <elliott> <DanFred> ^peter^, ye of little faith
23:08:36 <elliott> <lupine_85> lament, and you do have qualia
23:08:37 <sllide> or maybe a person walking and everything it encounters is executing
23:08:39 <elliott> this combined as "ye of little qualia"
23:08:40 <elliott> mentally
23:08:41 <NihilistDandy> elliott: Oh, duh. What a stupid question.
23:08:44 <ais523> after all, the autosaves /weren't/ sent to a lawyer...
23:08:55 <elliott> <^peter^> Free-man Dan does speak in tongues, English and danish at least.
23:08:56 <elliott> ok
23:09:00 <elliott> we need a quote base just for that other channel
23:09:04 <itidus20> lament is just a bot
23:09:08 <elliott> that i've mentioned by name enough times that if i do it again ais523 might get annoyed
23:09:14 <elliott> itidus20: wat
23:09:16 <monqy> im feeling uncomfortable
23:09:21 <ais523> elliott: I can be generally annoyed anyway
23:09:23 <itidus20> lupine is assuming that lament is a person and hence has a conciousness
23:09:28 <elliott> monqy: i am going to cyberbully you into joining
23:09:30 <monqy> ;_;
23:09:34 <elliott> ais523: well, yes
23:09:38 <monqy> elliott: it is done
23:09:45 <elliott> ais523: I'm just attempting to keep it at nothing greater than "moderately fuming"
23:09:51 <itidus20> but we know better that lament is a bot, and hence is highly unlikely to have qualia
23:09:54 <NihilistDandy> monqy: I'm gonna call all your friends and tell them you're not cool unless you join
23:09:55 <ais523> <elliott> monqy: i am going to cyberbully you into joining <--- I'll report it to Facebook!
23:09:58 <elliott> <Phantom_Hoover> I think we should all consider solipsist missionaries now because it is very funny.
23:09:58 <itidus20> any more than my toaster oven
23:09:59 <elliott> Phantom_Hoover: MY
23:09:59 <elliott> FUCKING
23:10:00 <elliott> IDEA
23:10:02 <elliott> OMG
23:10:03 <elliott> YOU
23:10:03 <elliott> ARE
23:10:07 <elliott> SO
23:10:09 <elliott> COPYRIGHT
23:10:15 <Phantom_Hoover> :D
23:10:28 <elliott> YOU NEVER SAID IT WAS FUNNY TO ME ;____________-;
23:10:48 <itidus20> elliott: just need to get lupine to try a turing test on lament
23:10:55 <itidus20> ^a reverse turing test
23:10:58 <elliott> itidus20: You must join and make it happen it is mandatory.
23:11:09 <olsner> too late now, maybe tomorrow I'll join #jesus to see what the fuzz is about
23:12:02 <itidus20> lament is a bot made by bill gates to spy on rms
23:12:21 <elliott> <DanFred> bool pain=true; that's pain?
23:12:22 <elliott> <DanFred> float pain=1000000; that's a lot of pain?
23:12:37 <Patashu> I take it back
23:12:38 <Patashu> I take it baaaack
23:12:40 <Patashu> just make him stop
23:12:47 <elliott> Patashu: jesus never stops
23:12:53 <oerjan> itidus20: you _do_ know lament is a sometimes regular here?
23:13:00 <NihilistDandy> I always think ^peter^ is agreeing with whoever's above hi
23:13:01 <elliott> oerjan: not any more, thanks to me :D
23:13:02 <NihilistDandy> *him
23:13:21 <itidus20> oerjan "<elliott> <lupine_85> lament, and you do have qualia"
23:13:24 * Sgeo braces for jason
23:13:29 <oerjan> i said "sometimes".
23:13:35 <elliott> oerjan: sometimes regular
23:13:44 <elliott> Sgeo: wow who is this guy
23:13:48 <elliott> and how has he started already
23:13:53 <itidus20> my point is that it is unlikely that this lupine can prove lament is a human.. let alone prove he has qualia
23:14:00 <monqy> god damn #jesus is ridiculous
23:14:10 <elliott> monqy: sorry you are misspelling "the best channel"
23:14:26 <oerjan> elliott: JUST DON'T BELIEVE YOU'LL GET OPS BY WEARING OUT THE OLD ONES
23:14:40 <Patashu> <DanFred> lupine_85, I wont waste my time on you. when you are ready you can think about how to make a simple robot feel pain. it cannot be done. it's not very hard, it's not super hard. it cannot be done
23:14:49 <Patashu> it can't be done
23:15:06 <itidus20> you just can't prove it feels pain
23:15:09 <itidus20> there is no metric
23:15:14 <elliott> `addquote <Phantom_Hoover> What is it with Cardassians, they're all really nice and then they hit you with a rock.
23:15:15 <HackEgo> 578) <Phantom_Hoover> What is it with Cardassians, they're all really nice and then they hit you with a rock.
23:15:20 <zzo38> Can you make a *complicated* robot feel pain?
23:15:41 <Patashu> it's the pain of the gaps argument
23:15:46 <Patashu> no matter how good your robot is at feeling pain
23:15:48 <Patashu> it's never close enough
23:15:52 <itidus20> it's all like "did that part of your brain which percieves pain activate?".. or as a doctor says "does it hurt when I do this?"
23:16:13 <itidus20> with a robot there is no way of knowing
23:16:16 <Sgeo> Be back soon
23:16:29 <itidus20> since the robot has all come about artificially
23:16:39 <itidus20> it is as Magritte would say..
23:16:48 <elliott> `addquote <Patashu> it's the pain of the gaps argument <Patashu> no matter how good your robot is at feeling pain <Patashu> it's never close enough
23:16:49 <HackEgo> 579) <Patashu> it's the pain of the gaps argument <Patashu> no matter how good your robot is at feeling pain <Patashu> it's never close enough
23:16:56 <oerjan> ceci n'est pas une pain
23:17:00 <NihilistDandy> ^^
23:17:06 <elliott> <jasonmxristos> brainproxy: come in do you read me?
23:17:09 <elliott> Sgeo: does he believe hes a spaceman...
23:17:11 <NihilistDandy> Though pain is masculine
23:17:17 <itidus20> oerjan :thanks
23:17:32 <elliott> Phantom_Hoover: have you encountered this jason guy before is he amazing...
23:17:33 <NihilistDandy> So, ceci n'est pas un pain
23:17:46 <Phantom_Hoover> I think so.
23:17:49 <NihilistDandy> elliott: Jason's a big ball of crazy. It's awesome
23:17:50 <itidus20> ceci n'est pas un sentient being
23:17:58 <NihilistDandy> He was trying to get Sgeo kicked
23:18:03 <elliott> <DanFred> lupine_85, I'm a genius beyond what you will ever be. I am incomparably ahead of you. there is no chance I could be wrong about this. you are the one who doesn't think because you are not ready to handle the implications of it. ironically it is a spiritual failing.
23:18:07 <elliott> god
23:18:11 <elliott> it's like a breakdown in realtime
23:18:14 <oerjan> the uncanny valley of pain
23:18:18 <Patashu> loooooooooool
23:18:28 <elliott> im sorry ais523 but this is just too amazing not to be a part of
23:18:41 <ais523> I disagree.
23:18:42 <oerjan> <NihilistDandy> Though pain is masculine <-- dammit
23:18:45 <elliott> <jasonmxristos> ^peter^: come in do you read me
23:18:50 <elliott> does he ping everyone like this NihilistDandy
23:19:00 <NihilistDandy> He does, elliott
23:19:09 <elliott> ok jesus chat in #esoteric-blah since ais523 is close to rage/parting
23:19:09 <itidus20> nice call oerjan @ uncanny valley of pain
23:19:24 <NihilistDandy> Though usually he'll do it over and over until he gets some attention, elliott
23:19:53 <ais523> elliott: actually I'm close to going home for unrelated reasons
23:20:09 <itidus20> you have to remember that the definition of that which can feel pain, is not met by a robot .. since it is all built up artificially and mechanically
23:20:16 <oerjan> you mean close to doing your riot shopping
23:20:40 <ais523> nah, I'm not like that
23:20:55 <ais523> and the buses don't run this late, and walking to the city centre would take a couple of hours
23:20:59 <oerjan> Dr. ais523 and Mr. looter
23:21:24 <itidus20> just as magritte says you cannot eat a painting of an apple... so, a robot does not gain human 'soul' is the word i think, by coming to more and more resemble a human
23:21:47 <Patashu> itidus then it's just a semantic argument
23:21:55 -!- NihilistDandy has quit (Read error: Connection reset by peer).
23:22:00 <itidus20> but... i don't know where i came from :P
23:22:01 <itidus20> so..
23:22:07 <zzo38> Then what is the proper definition of that which can feel pain? Is it difficult? Possibly it is.
23:22:12 <oerjan> itidus20: that all depends on exactly what physical qualities are necessary to support a soul
23:22:33 <itidus20> hehehe
23:22:45 <zzo38> oerjan: But then, you also need to have the correct proper definition of a soul, if you want to figure that out using proper scientific methods.
23:22:58 <itidus20> oh you can just make a soul chair out of wood
23:23:06 <oerjan> it seems biased to assume carbon water solutions are needed
23:23:07 <itidus20> no drmas
23:23:27 <itidus20> oerjan: yes.. that theory is falling apart at the seams with that ammonia thing
23:23:28 <zzo38> oerjan: Yes I think it is biased
23:23:35 <Phantom_Hoover> I... guess I should sleep?
23:23:37 <sllide> is there a monospaced pastebin?
23:23:40 <Phantom_Hoover> itidus20, what ammonia thing?
23:23:44 <itidus20> not ammonia
23:23:45 <elliott> sllide: almost all of them; we tend to use sprunge.us
23:23:53 <itidus20> that lifeform discovered in some acid pool
23:24:01 <itidus20> there was carbon present i think
23:24:02 <zzo38> Yes, I also prefer sprunge
23:24:04 <Phantom_Hoover> That was misreported.
23:24:05 <Phantom_Hoover> http://en.wikipedia.org/wiki/Hypothetical_types_of_biochemistry
23:24:20 <sllide> i'm in windows atm >.<
23:24:29 <oerjan> itidus20: arsenic but yes it was rather dubious science
23:24:44 <itidus20> ok i got ammonia mixed up with arsenic..
23:25:00 <itidus20> arsenic didn't replace the carbon as i recall but rather the phosphate
23:25:10 <oerjan> itidus20: i think ammonia has been suggested as a possibility for those cold planets/moons like titan
23:25:15 <itidus20> oops phosphorus
23:25:24 <Phantom_Hoover> itidus20, except it didn't.
23:25:29 <Phantom_Hoover> It was misreported.
23:25:33 <itidus20> ok now tell me this..
23:25:35 -!- NihilistDandy has joined.
23:25:39 <elliott> sllide: what about windows?
23:25:42 <itidus20> does a liquid depend on any special type of molecule
23:25:43 <elliott> NihilistDandy: #esoteric-jesus
23:25:46 <oerjan> well the phosphorus is probably mostly in phosphate anyway
23:26:10 <itidus20> any things made of molecules can go through stages of gas liquid and solid or whatever
23:26:23 <oerjan> itidus20: no, but water is a very _unusual_ liquid with many other extraordinary properties
23:26:23 <itidus20> in the same way it is feasible that life can exist out of any molecules
23:26:46 <oerjan> so while it might be replaced, it might not work as well
23:26:49 <Phantom_Hoover> itidus20, ice floats.
23:26:51 <zzo38> itidus20: Yes, that does make sense.
23:26:53 -!- ais523 has left ("rage/part").
23:26:55 <zzo38> oerjan: And yes that is true too.
23:27:03 <Phantom_Hoover> Very few liquids have that property.
23:27:11 <Phantom_Hoover> I don't actually know of any other than water.
23:27:15 <sllide> elliott, does cmd support tunneling of arguments?
23:27:25 <sllide> output i mean
23:27:26 <oerjan> Phantom_Hoover: highly compressed diamond, remarkably :P
23:27:35 <Phantom_Hoover> `quote eigenratio
23:27:36 <HackEgo> 445) <Phantom_Hoover> The eigenratio of reality has to be enormous, though.
23:27:37 <oerjan> (and heated)
23:28:07 * oerjan saw that on reddit some months ago
23:28:24 <elliott> sllide: sure
23:28:29 <sllide> oh >.<
23:28:30 <sllide> never knew
23:28:32 <oerjan> it was hypothesized that this diamond liquid might exist inside planets like jupiter
23:28:36 <elliott> you'll need curl, though
23:28:37 <oerjan> iirc
23:28:45 <elliott> sllide: you don't need pipes to paste to sprunge though
23:28:49 <elliott> sllide: curl -F 'sprunge=<filename' sprunge.us
23:28:55 <itidus20> ok the way i see it is bounding volumes inside each other...
23:29:04 <sllide> ah
23:29:15 <oerjan> well, i guess it's really carbon
23:29:16 <elliott> http://curl.haxx.se/latest.cgi?curl=win32-devel-msvc is curl for windows
23:29:24 <elliott> oh, no ssl support
23:29:27 <elliott> http://curl.haxx.se/latest.cgi?curl=win32-ssl-devel-msvc
23:29:28 <itidus20> each bounding volume represents an assumption... inside it, the majority is wrong, but there are some areas of truth
23:29:36 <elliott> or http://curl.haxx.se/latest.cgi?curl=win64-ssl-sspi if you're on 64-bit I suppose
23:29:39 <oerjan> somewhat remarkable since carbon does not become liquid at _all_ at earth pressures
23:29:48 <itidus20> so assumptions gradually break down into smaller and smaller pieces
23:29:54 <zzo38> Some people say, life creates the universe, instead of the other way around. I say, unverse creates life, however, it doesn't mean that it doesn't create each other. Time is just part of the universe, anyways. And the mathematics of quantum physics and quantum entanglement and superposition and all that stuff, describe it as entangled and stuff including states nonexisting due to not directly part of the universe?
23:30:49 <elliott> hey oerjan Patashu thinks that P=NP is obviously going to turn out to be false, be a fanboy at him >:
23:30:50 <elliott> >:D
23:30:57 <Patashu> LOL
23:31:13 <Patashu> man danfred is really something
23:31:22 <sllide> ah thanks
23:31:39 <elliott> Patashu: (cheap plastic imitation of oerjan: "read Gödel's Last Letter - http://rjlipton.wordpress.com/")
23:31:40 <Patashu> he also thinks P!=NP
23:31:52 <zzo38> So, what do *you* think about quantum free will? It is a bit different from classical free will, I think.
23:31:59 <elliott> Patashu: you misspelled PN
23:32:08 <Patashu> is PN!=NP?
23:32:15 <Phantom_Hoover> Yes.
23:32:34 <itidus20> i am not a buddhist, but I am one who finds buddha regularly offers the most suitable answers about things
23:32:41 <zzo38> Do beans contain the souls of dead people? Perhaps it is but such things would be completely irrelevant. There cannot be a proper "position" anyways
23:32:49 <Phantom_Hoover> Yes.
23:32:50 <oerjan> elliott: *Lost
23:32:52 <Phantom_Hoover> Yes they do.
23:32:54 <elliott> oerjan: oh duh
23:32:55 <zzo38> itidus20: Yes they probably do answer some things too
23:33:01 <Phantom_Hoover> It's like in the latest Culture book.
23:33:08 <Phantom_Hoover> Heaven is a massive computer simulation
23:33:13 <Phantom_Hoover> Run inside beans.
23:33:17 <Patashu> beans?
23:33:27 <elliott> zzo38: not quite:
23:33:28 <elliott> zzo38: <DanFred> elliott, only the rotten sobs
23:33:28 <elliott> <DanFred> no
23:33:36 <itidus20> the main presupposition of buddhism is rebirth
23:33:40 <elliott> Phantom_Hoover: sssssssssssssh don't spoil me
23:34:03 <Phantom_Hoover> elliott, THEN READ THEM FFS
23:34:09 <Patashu> a computer program running on my computer is qualia if I can't serialize it and move it to a different computer
23:34:17 <Phantom_Hoover> PAPERBACK/HARDBACK IS NOT THAT IMPORTANT
23:34:21 <elliott> Patashu: ah, so @ is anti-qualia
23:34:29 <Patashu> yes
23:34:33 <elliott> Phantom_Hoover: It is funny because you do not understand how obsessive I am.
23:34:38 <Patashu> and so is win32-hourglass
23:34:41 <oerjan> elliott: wait what is PN
23:35:02 <elliott> oerjan: like np but more christian
23:35:15 <oerjan> aha
23:36:02 <Patashu> screw #jesus, terraria 1.0.6 is finally out http://www.terrariaonline.com/threads/1-0-6-changelog.50278/
23:36:38 <zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:36:41 -!- myndzi has quit.
23:36:48 -!- myndzi has joined.
23:37:03 <elliott> `addquote<zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:37:04 <HackEgo> No output.
23:37:15 <elliott> Patashu: oh terraria is like elliottcraft but crap and with one fewer dimension.
23:37:16 <elliott> `addquote <zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:37:18 <HackEgo> 580) .<.zzo38.>.. Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:37:21 <elliott> argh
23:37:23 <elliott> `delquote 580
23:37:24 <HackEgo> ​*poof*
23:37:25 <elliott> oerjan: you do it
23:37:43 <Patashu> elliot less dimensions = worse game
23:37:46 <zzo38> Why do you have CTRL+H in your text? Where did that come from? HackEgo just replaces it with dots
23:37:56 <elliott> Patashu: yes
23:38:02 <elliott> Patashu: elliottcraft takes place in 999-dimensional space
23:38:03 <sllide> stack based cubes
23:38:06 <Patashu> LOL
23:38:12 <Patashu> make it take place in infinite dimension hilbert space
23:38:30 <sllide> err cubes that are stack based
23:38:34 <sllide> or something
23:38:37 <elliott> Patashu: tempting
23:38:38 <oerjan> `addquote <zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:38:39 <HackEgo> 580) <zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
23:39:18 <oerjan> elliott: i always get nervous whether irssi will cut/paste multilines properly
23:39:27 <oerjan> *wrapped lines
23:39:33 <elliott> oerjan: heh
23:39:47 <monqy> it does wrapped lines as doublespaces for me, which frustrates
23:39:48 <zzo38> Of course Pythagoras had a few strange religion and this is one of them.
23:39:58 <Patashu> 'Hellstone now spawns lava when it is mined, but only in the underworld.' hardcore
23:39:59 <zzo38> I think he also did not want to touch a mirror.
23:41:01 <zzo38> And had some ideas about astronomy that were wrong but they wouldn't know because they didn't have equipment as well. Such as, that both the sun and the earth go around the "central fire", which is toward the uninhabited side of the Earth.
23:41:39 <elliott> Patashu: actually wait, how is terraria better than df
23:41:45 <elliott> that I sincerely don't get :D
23:41:51 <Patashu> dwarf fortress?
23:42:01 <zzo38> He still called the central fire a planet. And adding other things, resulting in 9 planets in total. So, they decided to add one more to make ten.
23:42:33 <elliott> Patashu: yes
23:42:39 <elliott> i guess that game is technically threedee
23:42:41 <elliott> but you only see one at a time
23:42:42 <elliott> so
23:42:44 <elliott> same thing??
23:42:45 <elliott> (yes)
23:42:47 <Patashu> dwarf fortress is GOTY
23:42:48 <Patashu> every year
23:42:54 <Patashu> so how can I argue terraria is better than it
23:43:00 <elliott> EXACTLY
23:44:34 <itidus20> so I was reading about the definition of prime numbers and then reading about prime factorization.. and i started to think about it more carefully
23:45:07 <elliott> you didn't know the definition of primes?
23:45:35 <oerjan> itidus20: for more on-topicness, you might want to read about Fractran
23:45:50 <sllide> this is what i came up with http://pastebin.com/EY712Ljy
23:45:58 <sllide> (i am really bad at explaining things)
23:46:00 <itidus20> and I realized that a number with N prime factors cannot be folder into a rectangle in N+1 dimensions, where a rectange is a shape where each dimension of the object is > 1
23:46:36 <elliott> Google summary: Starting from a scientific world view, the mission of the Kira Institute is to foster fresh approaches to exploring “what else is true?”
23:46:38 <elliott> first sentence of webpage:
23:46:39 <elliott> We are an interdisciplinary institute based in Second Life.
23:47:10 <sllide> is it any good? :)
23:47:30 <oerjan> before it can be good, it has to be loading
23:47:38 <oerjan> there
23:47:52 <monqy> sllide: your language specification? that's just the syntax, right?
23:48:09 <sllide> yup, only syntax
23:48:42 <oerjan> sllide: the word "cube" usually implies all sides being equal length
23:48:50 <sllide> oh ofc..
23:48:57 <sllide> ah well
23:49:01 <Patashu> rect prism
23:49:13 <elliott> Sgeo: isn't the trinity catholic doctrine...
23:49:14 <sllide> e-rect
23:49:17 <itidus20> sllide, i just referred to such things as rectangles in a very recent post
23:49:19 <Sgeo> What hilarity did I miss in #jesus ?
23:49:27 <elliott> Sgeo: danfred is literally the best
23:49:29 -!- myndzi has quit (Ping timeout: 260 seconds).
23:49:30 <elliott> jason is almost as good
23:49:37 <elliott> Sgeo: #esoteric-jesus is the new hub of discussion
23:49:41 <elliott> NO MOCKING JUST DISCUSSION
23:49:47 <sllide> dot rect doesnt sound so good :(
23:49:48 <elliott> its official mission statement is a channel about jesus not #jesus
23:49:51 <elliott> so it is totally ok.
23:49:59 <itidus20> i know this is wrong but just a few lines up i said "where a rectangle is a shape where each dimension of the object is > 1"
23:50:12 <sllide> i didnt read that..
23:50:17 <itidus20> its unrelated
23:50:32 <itidus20> and its not a true definition
23:50:41 -!- FireFly has quit (Quit: swatted to death).
23:50:54 <sllide> well, i get your point
23:50:55 <itidus20> i thought it was clever though.. but it should be obvious to everyone here
23:50:59 -!- myndzi has joined.
23:51:02 <itidus20> since they're all very smart
23:51:12 <itidus20> and im the dumb guy
23:51:15 <oerjan> it's a topological product of 3 lines, anyhow ;P
23:51:51 <itidus20> so if you try to take a 1 dimensional number... and create a rectangle with width > 1 and length > 1 and you can't... then it's a prime
23:52:03 <itidus20> i think?
23:52:10 <sllide> idk tbh
23:52:11 <itidus20> :-?
23:52:15 <itidus20> humm yeah.. that sounds right
23:52:30 <sllide> i just dont like the idea of having more than one character per opcode
23:52:32 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of astatide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
23:52:54 <oerjan> itidus20: yeah, assuming integer length sides
23:53:07 <itidus20> oerjan: well.. can you have a non-integer prime? :>
23:53:16 <itidus20> oh haha. i see.. well yeah
23:53:22 <itidus20> my definition had holes
23:53:31 <sllide> and it really isnt a 2d code either
23:53:31 <itidus20> natural number length sides
23:53:35 <Phantom_Hoover> itidus20, there's... a way of extending the concept.
23:53:46 <itidus20> i'll repost
23:53:52 <itidus20> and I realized that a number with N prime factors cannot be folder into a rectangle in N+1 dimensions, where a rectange is a shape where each dimension of the object is > 1
23:54:33 <sllide> ill try to be original tomorrow
23:55:34 <itidus20> it looks original, your thing
23:55:36 <oerjan> sllide: oh i think you mean rectangles, anyhow, this is 2d
23:55:44 <itidus20> i wasn't talking about an esolang
23:56:10 <itidus20> i was just talking about my conception of prime numbers
23:56:12 <sllide> with 2d i mean code getting executing more ways than just down
23:57:32 <itidus20> oops what i meant to say is
23:57:47 <itidus20> a number with "at least N prime factors"
23:58:26 <oerjan> *at most
23:59:18 <itidus20> oro
2011-08-10
00:00:07 * Phantom_Hoover → sleep
00:00:08 -!- Phantom_Hoover has quit (Quit: Leaving).
00:00:31 -!- Nisstyre has joined.
00:00:33 <itidus20> and 1 gets excluded from being a prime factor by the "> 1" bit
00:00:43 <itidus20> it fits very perfectly
00:00:46 <oerjan> yes
00:01:53 <itidus20> do mathematicians ever feel threatened by computers? is it like chess?
00:01:55 <zzo38> Many things work when 1 is not considered prime
00:02:15 <zzo38> Therefore 1 is not prime
00:02:36 <Patashu> if we just trust in 1
00:02:39 <Patashu> 1 will become the greatest prime
00:03:21 <oerjan> itidus20: well eventually computers should reach human level intelligence, at which point _everyone_ might feel threatened. whether higher mathematics research falls long before that, remains to be seen.
00:03:47 * elliott blinks at oerjan displaying an opinion he didn't think oerjan held.
00:04:01 <itidus20> but at least humans have a reason to exist.. humans have the security of knowing they can die
00:04:12 <elliott> itidus20: computers can die too
00:05:00 <itidus20> james cameron obviously felt threatened
00:05:26 <itidus20> the irony being his movie is rendered with computers
00:05:40 <elliott> hmm
00:05:47 <elliott> itidus20: what
00:05:56 <itidus20> terminator 2
00:06:29 <itidus20> on the one hand he issues a grave warning against computers.. and on the other hand he renders a lot of things with them
00:06:46 <monqy> what's ironic about this
00:06:53 <elliott> was Avatar rendered by terminators
00:07:02 <oerjan> elliott: well whether intelligence requires some "soul" component also remains to be seen, but even _so_ it might be achievable by computers unless there really is a carbon-based water solution bias in the universe for it
00:07:02 <itidus20> latent terminators
00:07:07 <elliott> also: is Terminator intended as a serious warning
00:07:12 <elliott> or an action flick
00:07:22 <itidus20> im pretty sure its a serious warning
00:07:24 <elliott> (granted that media has effects whether it intends" to be serious commentary or not)
00:07:32 <elliott> (but I doubt Cameron thinks skynet is about to happen)
00:07:49 <sllide> well good night
00:07:50 <itidus20> its like... james cameron the real guy.. i think he meant it
00:07:54 <sllide> i will brainstorm alot tomorrow
00:07:57 <sllide> and posssibly in bed
00:08:04 <elliott> oerjan: so, umm, do you think that neurons will fail if you replicate them in a computer?
00:08:17 <zzo38> Patashu: But that doesn't make 1 prime. What makes 1 not prime is mathematics; how much you trust is not relevant.
00:08:18 <itidus20> so.. to wikipedia
00:08:22 <oerjan> it is even possible that the soul component is so subtle that it manages to attach to a computer algorithm without scientists noticing...
00:08:32 <elliott> I removed the assertion that Cameron is an atheist per WP:BLPCAT policy.
00:08:32 <elliott> This is not a matter of opinion but of policy though I know wikipedia also frowns on editors slandering others.
00:08:32 <elliott> --CatholicW (talk) 06:15, 21 April 2011 (UTC)
00:08:36 <elliott> thakns catcholicw
00:08:39 -!- sllide has quit (Read error: Connection reset by peer).
00:08:50 <zzo38> oerjan: It is a possible thing to think about philosophically, at least.
00:09:29 <elliott> oerjan: <elliott> oerjan: so, umm, do you think that neurons will fail if you replicate them in a computer?
00:09:30 <oerjan> elliott: i think my previous line indicates i do not assume that they _will_ fail
00:09:30 <itidus20> oerjan: what the books say buddha's view is, is that there are all these questions which we would go crazy trying to answer
00:09:45 <elliott> oerjan: ok so what you are saying is, any emulation of a neuron will have the soul code?
00:09:58 <elliott> oerjan: insert standard "how is this different to neurons just being neurons" argument
00:10:15 <oerjan> any emulation of a correctly assembled brain of neurons, perhaps
00:10:17 <zzo38> I don't think any emulation needs a "soul code", and I am not sure it can work anyways.
00:10:27 <elliott> oerjan: ok, so you could possibly have a soulless neuron emulator?
00:10:33 <zzo38> However, the emulation is not necessarily perfect anyways possibly?
00:10:39 <elliott> oerjan: and then if you (with Science(tm)) scanned someone's brain to gloop up all the neurons
00:10:41 <zzo38> But it is worth a try.
00:10:42 <elliott> and plugged it into the former
00:10:44 <elliott> it would not work?
00:10:51 <elliott> despite being a correct simulator of a single, soulless neuron?
00:10:58 <elliott> or would the soul be in the scanned neural net
00:11:04 <oerjan> elliott: ah but the soul may not actually be _part_ of the emulator, just something any suitable structure will attach to.
00:11:08 <zzo38> You would change things by measuring it in quantum mechanics so I think it might not work.
00:11:19 <zzo38> Well, it might work.
00:11:21 <zzo38> Just not perfectly.
00:11:22 <elliott> oerjan: ok, so the soul is part of the _process_ of thinking?
00:11:34 <itidus20> is it possible or desirable to take the war out of animals and plants?
00:11:37 <elliott> oerjan: it sounds to me like you're defining a soul to be indistinguishable from "consciousness"
00:11:42 <oerjan> i am imagining a form of dualism, but mediated via some information channel
00:11:45 <elliott> i.e. the byproduct of thinking
00:11:46 <itidus20> the feeding and hunger out of animals and plants?
00:11:56 <oerjan> which brains are evolved to use
00:12:44 <zzo38> itidus20: Then you will be dead how can you eat? Unless, of course, you want to be dead. But if you want to be dead you can jump off a cliff into the navy ship where they will shoot you for target practice
00:12:46 <oerjan> but which might be achievable by any information system with sufficient I/O
00:12:55 <itidus20> and.. if we could take the war out of animals and plants thus creating mechanical living things, and the feeding and hunger and thirst out of animals and plants thus creating mechanical living things...
00:13:14 <monqy> i wish i were a robot
00:13:16 <itidus20> would we not have a means to take the war and feeding and hunger and thirst directly out of animals and plants?
00:13:35 <zzo38> I think you would eventually run out of energy if you tried such things, no matter how hard you tried or how much energy you have.
00:14:16 <itidus20> by the "war" .. well...
00:14:25 <itidus20> i mean the fighting instincts from nature
00:14:35 <zzo38> Including people too?
00:14:38 <itidus20> the drive to survive and reproduce and evolve
00:14:44 <Patashu> without the drive to survive
00:14:46 <Patashu> what drive is left?
00:14:50 <Patashu> if there is no scarcity and no suffering
00:14:52 <Patashu> why strive?
00:14:54 <Patashu> you'll live anyway
00:15:09 <zzo38> You need to have the drive to be dead if you do not want to have the drive to be living. But it is up to your choice.
00:15:26 <zzo38> Your choice can be to not have any children.
00:15:36 <itidus20> also.... just because we can do something, doesn't mean we should
00:15:42 <zzo38> Or, to see how long you can survive while starving to death.
00:15:50 <elliott> Patashu: standard anti-religious argument: you'd go clubbing people to death without god???
00:15:52 <itidus20> just like you would tell a person who planned to burn down your city that they shouldn't do it even if they could
00:15:53 <zzo38> itidus20: Yes.
00:16:16 <elliott> Patashu: possible argument against what you're saying: you'd stop doing shit just because scarcity is gone???
00:16:44 <Patashu> elliott: eventually
00:16:48 <Patashu> if only due to genetic drift and the meme version of it
00:16:52 <oerjan> <itidus20> is it possible or desirable to take the war out of animals and plants? <-- huh i've about that, and my immediate reaction is that we should do it if possible
00:16:53 <elliott> Patashu: so when are you eventually going to start clubbing people?
00:16:56 <Patashu> there's no 'upward pressure'
00:17:02 <Patashu> wow wow wow.
00:17:05 <Patashu> calm down
00:17:10 <elliott> I'm uncalm?
00:17:12 <itidus20> oerjan: it doesn't work like that
00:17:15 <itidus20> :-D
00:17:27 <itidus20> of course
00:17:39 <Patashu> anyway, I still live under scarcity
00:17:39 <itidus20> i shouldn't accuse you of suggesting it does
00:17:52 <elliott> Patashu: but not under god, unless I misunderstand your position
00:17:56 <elliott> Patashu: anyway, in any reasonable such scenario evolution by natural selection would only take place if we wanted it to, and why would we?
00:18:16 <zzo38> oerjan: My immediate reaction is you should not do it if possible. Maybe instead you should do it if it is impossible. Now it is a scientific experiment instead. But be careful please! Don't do it.
00:18:20 <itidus20> the freedom for war is not very much different than the freedom for peace
00:18:31 <itidus20> i am not sure why.. but it seems to be so
00:18:55 <Patashu> elliot, the opposite of evolution by natural selection. evolution with NO natural selection = random drift
00:18:58 <Patashu> since there's no suffering
00:18:59 <Patashu> no one ever dies
00:19:04 <itidus20> take war away and you will want it back very soon
00:19:05 <zzo38> It is true; you shouldn't have a war too much, but sometimes they do anyways. So, what can you do? Well, that is very complicated and is why they have the army. But even the army doesn't quite know.
00:19:07 <Patashu> and so negative traits are never punished (because they aren't negative now)
00:19:15 <itidus20> it will be missed
00:19:16 <elliott> Patashu: there is no need for any sort of breeding to happen.
00:19:23 <elliott> genetics are irrelevant
00:19:28 <Patashu> how will you stop people who want to breed?
00:19:46 <elliott> presumably not. people might not want to breed if they understand this, however.
00:20:04 <elliott> and if there's no scarcity, then we can support a zombie population who don't want to do anything just fine, along with a population of people who do want to do things
00:20:13 <zzo38> If nobody is dead, then if everyone is born then there is overpopulation. If nobody is dead or born, then you still need other things too otherwise what can come of anything? You need change of everything all the time at infinite speed of changing.........
00:20:45 <zzo38> It should be the job of mortals to eat the immortals.
00:20:53 <Patashu> the purpose of the human body, mind, personality, quirks etc is to best cope with survival in the environment they evolved in
00:21:01 <Patashu> what does it mean to take all that and place it in a zero scarsity environment?
00:21:06 <oerjan> <itidus20> oerjan: it doesn't work like that <-- how do you know it is not possible to end suffering for all lifeforms on earth, at least for a very long time? it would obviously require a huge redesign of species and ecosystems, and may be beyond our means for centuries or millennia, but that doesn't mean we shouldn't do it if we do become able
00:21:29 <zzo38> Patashu: It means, you have to make a very small part to make a scientific experiment.
00:22:25 <elliott> Patashu: you think we are controlled entirely by our genetics, etc.?
00:22:31 <Patashu> you can imagine a person playing a game with savestates - with no penalty for death, they make no effort to improve or think through puzzles except by blindly throwing themslves at them
00:22:34 <Patashu> elliot it's always going to be there
00:22:40 <Patashu> it'll always be the base of everything we build onto it
00:22:40 <elliott> not to make personal actions of violence by you, but I guess you go around murdering people who anger you, then?
00:22:43 <Patashu> there HAS to be an initial drive
00:22:45 <oerjan> <itidus20> take war away and you will want it back very soon <-- if you can change organisms enough to "take war away" you can probably change their motivations to desire it that way too
00:22:57 <itidus20> humm
00:23:20 <elliott> Patashu: if you think we can't overcome our base desires etc. ... lol. If you also think that whatever instincts we have even "understand" what lack of scarcity means... lol
00:23:23 <itidus20> the reason i mentioned it is that... in the quest to define a soul... we must remember we are on one side of the equation
00:23:54 <itidus20> whatever can be done to a computer to give it a soul, we can perhaps regress to without losing our soul
00:23:54 <Patashu> let me rephrase
00:23:56 <elliott> "so, you see, we have this separate stupid brain that overrides everything we do past a certain point, and acts idiotically about a lack of scarcity. BUT it understands what a lack of scarcity is, despite being the stupidest thing."
00:24:00 <Patashu> imagine a perfectly rational being who can't suffer
00:24:11 <Patashu> the typical disembodied observor with free will and omniscience, right?
00:24:12 <Sgeo> "Just skip to Act 3. That's when the crazy shit starts going down.
00:24:12 <Sgeo> Also, skip Hivebent."
00:24:13 <zzo38> Actually game with savestates, not quite. Because, some people can still try to think about it better. However, if you cannot think of it, you might try something without knowing or just stop and think about it and try again tomorrow.
00:24:15 <Patashu> what is its drive?
00:24:27 <elliott> Patashu: you're imagining it, you tell me
00:24:37 <Patashu> okay. there is no drive
00:24:40 <Patashu> no reason to do anything
00:24:43 <elliott> ok. you arbitrarily decided that.
00:24:46 <Patashu> because there's no punishment or reward system in place
00:24:48 <Patashu> no, because of ^^
00:24:51 <elliott> no
00:24:52 <cheater_> elliott opens his mouth and we're down to social sciences. i sincerely prefer talking about pokemon, ais makes it sound infinitely more interesting.
00:24:54 <elliott> you decided it would have no such system
00:25:01 <itidus20> Patashu: i heard uhmmm whats his name... alan watts explain that if a person did that.. they would gradually work their way back to exactly who they are now
00:25:09 <itidus20> that they would get terribly bored
00:25:12 <Patashu> itidus, if they did what?
00:25:16 <elliott> cheater_: actually, oerjan started it this time. then Patashu.
00:25:16 <zzo38> cheater_: I know some things about pokemon, too. I also play Pokemon Card
00:25:21 <itidus20> if they had all the omniscience
00:25:35 <Patashu> zzo38, I'm thinking of raocow, who when he plays with save states all but stops trying to play well
00:25:36 <cheater_> "this time" is not relevant to the trend
00:25:42 <Patashu> so it's not going to be an absolute thing but it's a big factor
00:25:49 <elliott> cheater_: you are the shittiest troll.
00:26:07 <cheater_> zzo38, please rescue this channel from misery and talk about pokemon right away
00:26:08 <cheater_> also chess
00:26:27 <cheater_> elliott: nothing bad about being shitty at trolling
00:26:27 <zzo38> Patashu: O, OK. Well, I generally don't play like that.
00:26:40 <zzo38> cheater_: Like, what about pokemon and chess?
00:26:49 <elliott> cheater_: when your modus operandi is trolling there is
00:27:13 <elliott> you're good at avoiding getting banned, but have you considered that this might be eating into your effectiveness as a troll?
00:27:37 <itidus20> cheater_: http://www.youtube.com/watch?v=4T_FYsAkhAc&feature=player_detailpage#t=134s
00:28:01 <zzo38> Later on you can consider helping me with this https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language if you know how, coppro was understanding a bit once I explained in this channel, and I wrote the stuff in there too, some of the things discussed, in "Examples" section.
00:28:03 <cheater_> zzo38, what about a game of chess where if a piece moves onto another one, then the players play a round of pokemon
00:28:26 <cheater_> the person who wins keeps their piece
00:28:37 <itidus20> cheater_: its chess related link
00:28:57 <cheater_> itidus20, interesting, let me have a look
00:28:58 <zzo38> cheater_: OK. I suppose that is possible, if you want to play like that.
00:29:55 <zzo38> Have you ever invented any pokemon card?
00:30:00 <cheater_> zzo38, do you think an amount of strategy could be added to chess this way? e.g. players start out with the same cards, except they play them or don't..
00:30:06 <cheater_> no
00:30:28 <zzo38> cheater_: Possibly, have some of the cards and chess be correlated somehow
00:30:29 <cheater_> if i invented one it would be an elliott card, and when it levels up it changes into Sgeo
00:30:48 <zzo38> And what would be the effects of the card?
00:30:53 <cheater_> zzo38, i think maybe each piece could allow you to do more/less
00:31:03 <elliott> cheater_: hmm, or actually you _have_ realised that, and are being much more obvious about things
00:31:38 <itidus20> and pokemon related here: http://www.youtube.com/watch?v=_2n5aSo32aw
00:31:57 <cheater_> say if your fighting piece is a pawn, you just get 1 card, if your piece is a laufer you get 3 or 4 cards..
00:31:59 <cheater_> etc
00:32:07 <zzo38> cheater_: There are many ways. One way, have pieces affecting rules of cards somewhat and cards affecting chess, and have the kind of pieces being stepping on each other corresponding to what cards you have
00:32:21 <cheater_> but if your pawn is important to your strategy you might want to play a stronger card
00:32:30 <cheater_> ah, that would be interesting
00:32:39 <cheater_> how could the cards affect the chess?
00:32:55 <Patashu> go might be a better game than chess
00:32:59 <Patashu> easier to give marginal advantage in
00:33:06 <Patashu> whereas in chess things like capturing and getting an extra move are huge
00:33:18 -!- kwertii has quit (Quit: bye).
00:35:04 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:36:12 <itidus20> hmm
00:36:16 <itidus20> ok heres an idea
00:36:25 <zzo38> Yes. Well, you could also use a larger chess variant, where the different pieces has energy types of pokemon card, and then the trainer cards, etc. I don't know for sure.
00:36:32 <itidus20> what about an RTS on a virtual chessboard?
00:36:38 <Patashu> what about it?
00:37:09 <itidus20> could starcraft be translated onto a virtual chessboard for example?
00:37:19 <Patashu> in what sense?
00:37:24 <Patashu> there are chess custom maps FOR starcraft
00:37:31 <Patashu> but somehow Idon't think that's what you mean
00:37:54 <zzo38> There are many chess variants, including Xiangqi and Shogi as well.
00:38:00 <itidus20> well, by virtual chessboard I mean that using a computer you can achieve certain tricks easily like having hidden squares
00:38:03 <Patashu> there are some very large chess variants
00:38:09 <Patashu> like a variant where every piece is a chessboard
00:38:18 <pikhq_> Metachess?
00:38:20 <Patashu> and you make moves on the smaller chessboard to unlock that piece's ability to capture (if you win)
00:38:28 <Patashu> something like that
00:38:32 <Patashu> it was on chess variants dot org
00:38:32 <itidus20> wow...
00:39:15 <itidus20> so.. first you would have the starcraftian idea of only being able to see parts of the map which you build near
00:39:33 <Patashu> since starcraft is played on a square co-ordinate system
00:39:37 <Patashu> you could translate it to a very large chessboard
00:39:39 <Patashu> but it's just a semantic thing
00:39:44 <Patashu> you're not changing anything
00:40:05 <itidus20> well it could be turn based perhaps
00:40:10 <itidus20> could that work? :D
00:40:26 <Patashu> turn based RTS?
00:40:34 <itidus20> TBS
00:40:47 <Patashu> well without micro
00:40:49 <itidus20> i was wrong to say RTS.. because it would just be starcraft
00:40:50 <Patashu> you miss the point of starcraft
00:41:29 <itidus20> ok so.. 1) multiple pieces can move per turn 2) can only see parts of the map which your units are near
00:41:43 <Patashu> I mean
00:41:43 <itidus20> 3) some units take a long time to go to an adjacent square
00:41:46 <Patashu> there are turn based games like that
00:41:48 -!- cheater_ has quit (Ping timeout: 255 seconds).
00:42:06 <itidus20> you might have say.. "This unit is very heavy, it will take 5 turns to move to the adjacent square"
00:42:08 <Patashu> but you can't make a turn based game out of starcraft b/c you'll need to completely change the balance and all the mechanics that expect your reaction time/co-ordination ability to be limited
00:42:47 <oerjan> <itidus20> 3) some units take a long time to go to an adjacent square <-- this + today's iwc gives me the idea of a board game where some pieces go backwards in time
00:43:16 <itidus20> i havent really played starcraft.. just watched my brother play it a bit
00:43:17 <Patashu> it's been done
00:43:18 <oerjan> we'll just need ais523 to implement feather and then we can find out how it works
00:43:34 <Patashu> oerjan, have you heard of the game achron?
00:43:42 <itidus20> archon
00:43:47 <Patashu> no
00:43:47 <Patashu> achron
00:43:50 <itidus20> oops
00:43:51 <Patashu> also
00:43:52 <Patashu> http://www.chessvariants.com/diffmove.dir/timetravel.html
00:43:53 <itidus20> achron
00:44:32 <itidus20> sorry to doubt you
00:44:41 <Patashu> http://www.achrongame.com/forums/viewforum.php?f=29&sid=b7f3fd8b0f925fba406e706736e156e6
00:45:15 <Patashu> in particular look at achronal chess and achronal roguelike
00:45:46 <Patashu> http://www.youtube.com/watch?v=ErutMnueM2g Wow, this looks awesome lol
00:45:57 <Patashu> I bet there's a broken winning strategy though
00:47:52 <Patashu> like if you create that space filling diamond
00:47:53 <Patashu> gg
00:47:56 <Lymee> Build a spacefiller?
00:48:05 <oerjan> hm
00:57:49 -!- cheater_ has joined.
00:58:10 <cheater_> zzo38, what about cards simply disabling some pieces from attacking other pieces? many strategies would be disabled this way
00:58:17 <cheater_> while enabling others
00:58:27 <Patashu> hmm, that's good
00:58:29 <Patashu> it's a defensive boost
00:58:36 <cheater_> not really, also offensive
00:58:37 <Patashu> so you can't use it to win easily
00:58:38 <Patashu> unless you're craft
00:58:39 <Patashu> yeah
00:58:43 <cheater_> if a piece is untouchable it's a good weapon
00:58:45 <Patashu> could use it to make a push otherwise impossible
00:59:01 <itidus20> cheater_: as i grow up and get more cynical and bitter... i find i don't enjoy some games as much as i once did
00:59:09 <itidus20> however,
00:59:41 <itidus20> I suppose that the key element is that a game has room to allow someone to have fun if they are in the mood to have fun.
01:00:41 <itidus20> the game never actually contains the fun... the fun is always the player's responsibility
01:00:54 <zzo38> cheater_: Yes you could have a chess variant where some cards disable some pieces and stuff like that
01:01:12 <cheater_> itidus20, this story is heart-warming
01:01:27 <Patashu> I want power go
01:01:32 <Patashu> what special powers could stones have?
01:01:34 <cheater_> what's power go
01:01:37 <Patashu> idk yet
01:01:48 <cheater_> but you want it? ok.
01:01:53 <itidus20> cheater_: I used to love pokemon
01:01:59 <Patashu> me too
01:02:03 <Patashu> then I realized
01:02:05 <Patashu> 'wow, this is a lot of work'
01:02:07 <Patashu> so I didn't play diamond
01:02:12 <itidus20> I was angry at a magazine when they made fun of pikachu on the cover
01:02:15 <Patashu> and now I am a young adult
01:02:45 <cheater_> we used to have a kid at school that we named pikachu
01:02:49 <Patashu> rofl
01:02:53 <itidus20> aww
01:02:58 <cheater_> we did so to make fun out of him
01:03:26 <itidus20> one of my best friends in high school got nicknamed screech like in saved by the bell
01:03:35 <cheater_> never seen that
01:03:38 <cheater_> what is it?
01:03:48 <itidus20> ah.. you must be a youngin
01:04:22 <itidus20> im australian.. you might just be european or something
01:04:24 <elliott> iti++
01:04:28 <elliott> iti--
01:04:40 <itidus20> but if you're american... then the only explanation is young age
01:05:11 <itidus20> don't get me wrong i love europe
01:05:56 <cheater_> or maybe i'm just someone who doesn't watch many movies, regardless of where i come from
01:08:53 <itidus20> sorry
01:08:57 <itidus20> im out of line
01:13:46 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:16:50 -!- CakeProphet has joined.
01:21:13 <Lymee> Patashu, that game of life thing is interesting.
01:21:56 <Lymee> You can take cells that are already out on the field and add them to your pool, leading to "how the hell do you have so many blocks aaa"
01:22:13 <Lymee> Things happening behind the front line are pretty much useless, sooo
01:26:07 <Lymee> Blinkers can do some serious damage if not interfered with
01:26:12 <Lymee> In stages.
01:27:18 -!- cheater_ has joined.
01:28:00 <Sgeo> What game of life thing?
01:28:18 <Lymee> http://www.java4k.com/index.php?action=games&method=view&gid=190
01:28:34 <Lymee> I kinda want to try and code a multiplayer version now.
01:29:29 <Patashu> In chrome, when a flash widget has focus, hitting backspace acts like hitting the back button on chrome
01:29:31 <Patashu> is there a fix for this?
01:30:08 <zzo38> In Pokemon Card GB2, although HYPNO [Lv30]'s attack ignores weak/resist, the computer opponent doesn't know that! Yet, it does in fact ignore weak/resist.
01:31:19 <elliott> itidus20: I wrote in /msg
01:32:08 <itidus20> Screech you can't elope!
01:32:17 <itidus20> Who are you calling a cantelope you melonhead?
01:32:22 <itidus20> oh my god
01:35:51 <elliott> guys should i be rational or irrational today
01:36:11 <zzo38> elliott: Both.
01:36:25 <elliott> ah
01:36:45 <oerjan> elliott: irrational but algebraic
01:36:54 <Lymee> Patashu, yeah, the size of spacefillers makes me think that you arn't going to be building a spacefiller anytime soon.
01:37:06 <elliott> oerjan: hELP this is ocnfonsugin
01:37:13 <Patashu> :(
01:37:16 <Patashu> what if it was turn based?
01:37:26 <monqy> 18:38:33 < Sgeo> R.I.P. Sgeo?
01:37:29 <monqy> good quote
01:37:40 <oerjan> ^unscramble ocnfonsugin
01:37:40 <fungot> oncingfuosn
01:37:45 <oerjan> much better
01:38:04 <Gregor> http://www.mobileread.com/forums/attachment.php?attachmentid=75336&d=1312936864 <-- I have turned my e-book reader into the world's worst tablet PC :P
01:38:07 <Sgeo> ^unscramble geo
01:38:07 <fungot> goe
01:38:13 <Sgeo> ^unscramble sgeo
01:38:13 <fungot> soge
01:38:18 <Sgeo> ^unscramble sgeo
01:38:18 <fungot> soge
01:38:27 <oerjan> it's deterministic
01:38:36 <elliott> oerjan: and _I_ invented it
01:38:40 <Lymee> Patashu, that.. that might actually be a more fun variant.
01:38:44 <Lymee> Maybe.
01:38:47 <oerjan> true.
01:38:50 <elliott> Gregor: Sorry that looks like the world's best??
01:38:53 <Sgeo> ^unscramble sgeotlhd
01:38:53 <elliott> Gregor: How fast is it
01:38:53 <fungot> sdghelot
01:38:54 <Lymee> X run cycles, then a placement cycle?
01:39:04 <elliott> Gregor: Additionally cut your nails
01:39:07 <Gregor> elliott: The processor is fine ... the screen is ... slow :P
01:39:07 <cheater_> ^unscramble elliott
01:39:07 <fungot> etltloi
01:39:17 <cheater_> ^unscramble Lambdans
01:39:17 <fungot> Lsanmabd
01:39:19 <Lymee> ^scrable test
01:39:22 <Gregor> elliott: I don't cut my thumbnail, but I cut the rest. My cat appreciates it :P
01:39:32 <Lymee> ^unscramble test
01:39:33 <fungot> ttes
01:39:40 <oerjan> Lymee: speling
01:39:49 <Lymee> ^scramble test
01:39:49 <fungot> tste
01:40:01 <Lymee> ^scramble 0123456789
01:40:01 <fungot> 0246897531
01:40:05 <Lymee> ^scramble 01234567890
01:40:05 <fungot> 02468097531
01:40:22 <Lymee> Heh.
01:40:29 <elliott> Lymee: it is simply: copy two, move cursor to middle
01:40:32 <Lymee> ^scramble 0 1 2 3 4 5 6 7
01:40:32 <fungot> 01234567
01:40:45 * elliott waits for oerjan to provide an elegant zipper implementation based on that description
01:40:46 <oerjan> elliott: but afair i wrote it in brainfuck
01:44:43 <oerjan> !haskell scramble = scr [] []; scr z1 z2 (x:y:r) = scr (x:z1) (y:z2) r; scr z1 z2 l = reverse z1 ++ l ++ z2 in scramble "0123456789"
01:44:47 <oerjan> oops
01:44:54 <Patashu> in the windows entertainment pack there's a two player game of life
01:44:55 <oerjan> > let scramble = scr [] []; scr z1 z2 (x:y:r) = scr (x:z1) (y:z2) r; scr z1 z2 l = reverse z1 ++ l ++ z2 in scramble "0123456789"
01:44:57 <lambdabot> "0246897531"
01:44:58 <Patashu> some cells are blue some are red
01:45:04 <Patashu> on your turn you add a cell of your colour then delete a cell
01:45:06 <Patashu> and your opponent does the same
01:45:08 <Patashu> then one generation happens
01:45:16 <Patashu> the first person to have only their colour wins
01:45:23 <oerjan> elliott: ^
01:46:22 <elliott> oerjan: beautiful. however i see no zippers.
01:46:39 <oerjan> z1 and z2 are the zipper
01:46:53 <oerjan> admittedly i'm not using recursion to unwind it
01:47:29 <oerjan> also it's probably nicer without a true zipper
01:47:45 <elliott> ok fine :D
01:48:04 <oerjan> > let scramble = scr []; scr z (x:y:r) = x : scr (y:z) r; scr z l = l ++ z in scramble "0123456789"
01:48:06 <lambdabot> "0246897531"
02:03:45 <oerjan> zzo38: i found the http://esolangs.org/wiki/Talk:Brainfuck#Brainfuck_in_ZZT discussion, and i wondered, is your nick related to ZZT?
02:05:36 <oerjan> wow it's really pouring down
02:05:54 <elliott> silent here
02:06:13 <oerjan> IMPOSSIBLE, YOU'RE ENGLISH
02:18:12 -!- Sgeo_ has joined.
02:18:28 -!- Sgeo_ has quit (Client Quit).
02:18:39 <Sgeo> Oh ffs XChat
02:34:30 -!- lament has joined.
02:36:13 <elliott> oerjan: you would be the best person to ask about GHC memory details, right :D
02:36:57 <oerjan> er have i left that impression somehow
02:37:52 <elliott> oerjan: definitely.
02:38:00 <oerjan> ok then
02:39:18 <elliott> oerjan: in "data X = forall a. X { f :: IO a, g :: a -> IO (), h :: a -> IO Size }", it should be no bigger than the size of the pointers to the three functions f, g, and h (with the a type filled in), plus padding, right?
02:39:37 <elliott> obviously with a typeclass context it would store the dictionary
02:40:01 <elliott> or, hmm, that only works in one field... but anyway, i think i make sense?
02:40:06 <elliott> sometmies i make sense.
02:42:10 <oerjan> there might be a tag field anyhow
02:42:24 <oerjan> even if there's just one possible value for it
02:42:24 <elliott> oerjan: hmm well right that's fine
02:42:43 <elliott> oerjan: more importantly, an Any is no bigger than a standard pointer, right?
02:42:49 <elliott> (I EXPECT PRECISE ANSWERS, NO GUESSING)
02:43:34 <oerjan> i believe all boxed, lazy values have the same pointer size and _must_ have so in order to work with polymorphic functions
02:44:09 <elliott> right
02:44:18 <elliott> oerjan: so in conclusion...
02:44:26 <elliott> test :: X -> Any -> IO Size
02:44:35 <elliott> test X{..} = h . unsafeCoerce
02:45:08 <elliott> should look the same, memory and operation (i.e. performance) wise, as an application of h to a specific specialisation of the a type variable, correct?
02:45:15 <elliott> modulo a slightly bigger pointer, perhaps
02:45:32 <elliott> basically the thing is that "f" and "g" might be called an awful lot
02:45:44 <oerjan> after all you can write test (X f g h) = do a <- f; (,) <$> g a <$> h a
02:45:59 <elliott> I don't want to use a typeclass since the only sane way would be via an existential, which would carry around the typeclass baggage for every single a value
02:46:00 <elliott> which is ridiculous
02:46:06 <elliott> then I considered e.g.
02:46:18 <elliott> data ReifyDict a where Dict :: (Class a) => ReifyDict a
02:46:21 <oerjan> and test can know nothing about any special representation for a
02:46:26 <elliott> but that's just ridiculous since it reduces to a three-argument record
02:46:30 <elliott> oerjan: ofc
02:46:48 <oerjan> er *<*> last one
02:50:25 <elliott> oerjan: hmm, I just realised that my main question came down to "is unsafeCoerce expensive" :D
02:50:38 <oerjan> that seems ... unlikely :P
02:50:44 <elliott> Sgeo: udpate
02:50:53 <Sgeo> I saw, ty
02:51:01 <Sgeo> Didn't read it yet, browser's being slow
03:07:18 -!- azaq231 has joined.
03:08:25 -!- azaq23 has quit (Ping timeout: 260 seconds).
03:14:17 <pikhq_>
03:14:43 <elliott> hi
03:15:02 <zzo38> oerjan: Is my nick related to ZZT? Sort of. There is actually a long story describing how the name "zzo38" came out
03:15:18 <oerjan> aha
03:15:18 <itidus20> as every good nick should have
03:15:45 <itidus20> zzo38: origins.
03:16:08 <oerjan> in the deep forests of canada...
03:16:57 <zzo38> But, yes, ZZT is part of it.
03:17:20 <oerjan> a geek must attempt to get connection using only a barbed wire and a pack of chewing gum
03:17:37 <oerjan> the wire happens to be electrified
03:18:34 <oerjan> a loud ZZOT is heard
03:18:35 <itidus20> not too far away from an enclave of conspiracy theorists who, as a result of being neighbours with USA for so long, were quite suspicious, up a tree watching down at some wild boars roaming past, sat a young zzo38
03:20:42 <itidus20> Though that was not yet his name...
03:20:47 <oerjan> hm boars are not native to the americas, but have been introduced
03:21:04 <itidus20> I don't know I just wanted to send some fun animals past
03:22:46 <itidus20> i admit that "a loud ZZOT is heard" is more creative than what I typed
03:23:01 <itidus20> I tried to use brute force to be creative
03:30:13 <elliott> monqy how doe sflows work
03:30:22 <monqy> whats flows hlep
03:31:55 <elliott> monqy: i was trying to define a dataflow programming model where it was impossible to construct something that depended on the order that its inputs arrived
03:31:57 <oerjan> no no, how does a doe sflow its work
03:31:57 <elliott> like
03:32:13 <elliott> X__
03:32:13 <elliott> \
03:32:13 <elliott> Z
03:32:13 <elliott> Y--/
03:32:15 <elliott> erm
03:32:20 <elliott> X__
03:32:20 <elliott> \
03:32:20 <elliott> Z--
03:32:20 <elliott> Y--/
03:32:28 <elliott> you couldn't make Z output something different if Y arrived point one ms after X
03:32:41 <elliott> the idea being that it's always safe to parallelise
03:32:51 <elliott> because you can't observe time at the lowest level
03:32:52 <elliott> but
03:32:55 <elliott> then
03:33:02 <elliott> i tried to model a simple mutable reference...............
03:33:04 <elliott> and i couldn't....................
03:33:18 <elliott> it ended up depending on order to know whether it was being overriden by a constant (which you'd do to initialise it)
03:33:23 <elliott> or... not overridden...
03:33:26 <elliott> im
03:33:28 <elliott> not really sure :(
03:33:30 <elliott> help
03:33:32 <monqy> im confused help
03:34:16 <elliott> oerjan: help
03:34:26 <oerjan> eek
03:35:10 <elliott> Actually I no longer think native c-based continuations are strictly essential for real input manipulation, I think it is possible to use continuation passing style and e to avoid them. --Ørjan 02:18, 10 August 2011 (UTC)
03:35:13 <elliott> thank god oerjan updated us on that
03:35:17 <elliott> ive been on the edge of my seat for four years
03:35:30 <oerjan> i _have_ mentioned it on the channel before
03:36:15 <oerjan> i just got the idea to reread Talk:Unlambda after i had read Talk:Brainfuck so i saw that conversation again
03:36:47 <oerjan> so i thought i'd leave an update
03:37:06 <elliott> oerjan: so do you have any ideas on my dataflow question ;D; ;D ;D
03:37:10 <oerjan> no
03:37:11 <elliott> hlep my eyes e re everywhere
03:37:15 <oerjan> hlaup
03:37:55 <monqy> i donte evenm wknow why you'd need this dafatlow???
03:38:13 <monqy> nor how to make time-order matter help
03:38:17 <oerjan> HELP THE CHANNEL IS INVADED BY YOUTUBE SPELLERS
03:38:26 <monqy> HLEP
03:39:00 <elliott> monqy: datataafalow, i am trying to, think of, programming languages, that are esoteric, but also, because, parallelism is hard?
03:41:15 <oerjan> !haskell import Control.Parallel; main = do forkIO (putStr "dataflow"); forkIO (putStr "dataflow")
03:41:16 <monqy> oh you want to make it impossible I missed the im ha-ha
03:41:28 <monqy> which confused me
03:41:30 <monqy> a lote?????
03:41:39 <oerjan> huh
03:41:58 <elliott> monqy: the im??
03:42:12 <monqy> oerjan: forkio not in scope or some other error?
03:42:17 <monqy> elliott: in im possible
03:42:22 <elliott> monqy: oh
03:42:28 <oerjan> invalid syntax, no idea why
03:42:29 <elliott> monqy: right...so.... i need.... hlep... probably from oerjan
03:42:36 <elliott> oerjan: need {} around do body
03:42:39 <elliott> trust me
03:42:41 <elliott> im scientist
03:42:59 <oerjan> um that should _not_ be necessary
03:43:12 <oerjan> !haskell import Control.Parallel; main = do { forkIO (putStr "dataflow"); forkIO (putStr "dataflow") }
03:43:33 <oerjan> huh it helped
03:43:37 <elliott> yep.
03:43:46 <oerjan> but why
03:43:47 <monqy> now is it about forkio or what
03:43:51 <elliott> oerjan: because the ; terminates the main definition
03:43:56 <elliott> oerjan: because your _module_ is non-layout
03:44:02 <elliott> so you need to denote nesting explicitly
03:44:09 <elliott> just like you can't say "do do x; y; z"
03:44:13 <oerjan> um no it doesn't, do introduces layout
03:44:17 <elliott> well maybe you can but it won't do what you want
03:44:27 <elliott> oerjan: i am... pretty sure it does
03:44:32 <oerjan> :t do do x; y; z
03:44:32 <elliott> oerjan: you cannot introduce layout inside a non-layout block, correct?
03:44:33 <lambdabot> Couldn't match expected type `m a' against inferred type `Expr'
03:44:33 <lambdabot> In a stmt of a 'do' expression: x
03:44:33 <lambdabot> In the expression:
03:44:34 <elliott> and this looks like
03:44:35 <oerjan> er
03:44:38 <elliott> module Foo where { ... }
03:44:41 <oerjan> :t do do ?x; ?y; ?z
03:44:41 <lambdabot> forall (m :: * -> *) a b a1. (Monad m, ?x::m a, ?y::m a1, ?z::m b) => m b
03:44:48 <elliott> !haskell import Control.Parallel; main = do forkIO (putStr "dataflow"); unmain = forkIO (putStr "dataflow")
03:45:02 <elliott> yep
03:45:04 <elliott> no syntax error
03:45:04 <monqy> whats the arror
03:45:05 <oerjan> elliott: well that's different. i had no further definitions after main
03:45:08 <elliott> just a module error
03:45:15 <monqy> Control.Concurrent right
03:45:17 <elliott> oerjan: um i do not think haskell has an infinite-lookahea grammar in that sense
03:45:31 <monqy> I have been waiting for whole minutes to guess that forkIO is in concurrent instead of parallell
03:46:04 <oerjan> elliott: it doesn't. you need { } if there is a ; _after_ the do block
03:47:01 <oerjan> hm
03:47:10 <elliott> back
03:47:14 <monqy> hi
03:47:15 <oerjan> !haskell import Control.Concurrent; main = do { forkIO (putStr "dataflow"); forkIO (putStr "dataflow") }
03:47:19 <EgoBot> dadta
03:47:25 <monqy> cute
03:47:25 <oerjan> heh
03:47:38 <monqy> it is like a babbling baby
03:47:45 <monqy> !haskell import Control.Concurrent; main = do { forkIO (putStr "dataflow"); forkIO (putStr "dataflow") }
03:47:46 <oerjan> oh
03:47:50 <EgoBot> dat
03:47:57 <oerjan> !haskell import Control.Concurrent; main = do { forkIO (putStr "dataflow"); putStr "dataflow" }
03:48:02 <EgoBot> dadtaatfalfolwo
03:48:17 <elliott> wow
03:48:19 <elliott> that's bad
03:48:20 <oerjan> the program ends before the forkIO runs out
03:48:29 <monqy> nice
03:48:36 <elliott> !haskell import Control.Concurrent; main = do { forkOS (putStr "dataflow"); putStr "dataflow" }
03:48:40 <EgoBot> dadtaatfalfolwow
03:48:46 <oerjan> !haskell import Control.Concurrent; main = do forkIO (putStr "dataflow"); putStr "dataflow"
03:48:51 <EgoBot> dadtaatfalfolwow
03:48:51 <zzo38> Can you do continuation passing in Haskell?
03:48:58 <oerjan> ooh that worked
03:49:26 <elliott> oerjan: oh
03:49:27 <elliott> fuck you :P
03:49:30 <monqy> zzo38: manually write in continuation-passing style, use the Cont monad, others????
03:49:33 <elliott> zzo38: naturally. that's how the Cont monad works.
03:50:13 <zzo38> I didn't know the Cont monad thanks
03:51:42 <oerjan> <elliott> oerjan: you cannot introduce layout inside a non-layout block, correct? <-- you most certainly can. also i sincerely doubt that !haskell puts any module where { } around stuff, so it should be layout anyway
03:52:29 <elliott> ok fine :P
03:53:26 <oerjan> it's not infinite lookahead, it's just that the innermost block is greedy as long as possible
03:53:44 <zzo38> After "module ... where" I think you need neither layout nor { } it still works without that
03:53:49 <oerjan> i have no idea why i got a syntax error on the first attempt
03:54:29 <oerjan> zzo38: you don't need indentation, no, but it's still technically a block, just aligned at beginning of line
03:55:25 <oerjan> it's the layout of it which makes it possible to start new declarations at beginning of line without using ;
03:56:22 <zzo38> Yes, I suppose so. Would it be unambiguous even if you omitted the line breaks?
03:56:41 <oerjan> without line breaks, ; is required
03:57:25 <oerjan> and you might need some { } in inner blocks to ensure ;'s are applied at the right level
03:57:51 <oerjan> actually there are other reasons to use { }
03:58:14 * elliott never uses {} in real code
03:58:23 <oerjan> > do x <- [1,2]; [x,x] ++ [5]
03:58:25 <lambdabot> [1,1,5,2,2,5]
03:58:29 <elliott> Omegamega uses them exclusively though. also that spj paper about stablenames.
03:58:32 <elliott> (ok spj+foo)
03:58:34 <oerjan> > do { x <- [1,2]; [x,x] } ++ [5]
03:58:35 <lambdabot> [1,1,2,2,5]
03:58:43 <oerjan> those are different
03:58:46 <zzo38> What is Omegamega?
03:59:16 <oerjan> of course for do expressions you can use ordinary parentheses instead
03:59:28 <oerjan> > (do x <- [1,2]; [x,x] ) ++ [5]
03:59:29 <lambdabot> [1,1,2,2,5]
03:59:30 <elliott> zzo38: fax's joke name for Ωmega
03:59:46 <elliott> http://en.wikipedia.org/wiki/%CE%A9mega (gross conflation of language and implementation on this page)
03:59:52 <elliott> http://code.google.com/p/omega/
03:59:53 <elliott> that's better
04:00:35 <oerjan> * elliott never uses {} in real code <-- yeah it's only for some bot one liners you need it
04:00:40 <elliott> :D
04:02:09 <zzo38> But {} would probably be useful in "do" notation and such stuff like that, most commands that need layout, it would be useful to use with, I think. But I think in general not use "do" notation, I just prefer using other commands instead, I guess.
04:02:25 <zzo38> But sometimes I don't know very well, I still don't know a lot of stuff about Haskell
04:02:57 <oerjan> well do notation is only syntactic sugar, so a matter of taste
04:03:43 -!- MDude has changed nick to MSleep.
04:03:55 <zzo38> Yes, I know, the same things can be written with or without "do"
04:04:17 <zzo38> What are all the commands in Haskell that use layout?
04:04:57 <oerjan> case ... of ..., ... where ..., let ..., do ...
04:05:23 -!- lament has quit (Ping timeout: 252 seconds).
04:05:58 <oerjan> mdo ... (deprecated) and possibly rec ... (it's replacement) from the monad recursion extensions
04:06:12 <oerjan> oh and proc ... for arrows, i think
04:06:21 <oerjan> maybe others i haven't heard of
04:06:33 <oerjan> only the first line is without extensions
04:07:09 <oerjan> basically the report says that blocks are introduced by the of, where, let and do keywords
04:07:39 <oerjan> *its replacement
04:09:27 <zzo38> The license for Omega is different in the page linked from Wikipedia and in the repository in Google Code. But clearly the page linked on Wikipedia links to the older license from 2005
04:09:46 <zzo38> Also, Wikipedia says "License: Copyrighted" which is too vague
04:10:53 <zzo38> But now I corrected it
04:13:00 <zzo38> I have just once, for a single purpose, used a window transparency program. This slowed down the program a lot but still helped. Do you know what purpose this is?
04:13:10 <elliott> oerjan: help how do i mutable reference in my dataflow
04:19:01 <oerjan> dunno
04:19:06 <elliott> :(
04:19:21 <elliott> such badness
04:19:55 <oerjan> hm how can this order independence even work
04:20:03 <oerjan> say you implement a xor gate
04:20:17 <oerjan> and the inputs change from 00 to 11
04:20:32 <elliott> oerjan: note that the _value_ of a signal and whether it is _sending_ or not differ
04:20:51 <oerjan> how do you know whether output should stay 0 or be temporary 1 in between
04:21:15 <elliott> oerjan: that just means you cannot do a XOR gate (but this doesn't mean you can't do a _logical_ xor gate)
04:21:35 <elliott> basically, the primitive gate operations are like "forward N inputs to N outputs if all of them are sending, otherwise forward none"
04:21:56 <elliott> (I think it is OK to have an order dependence on _ceasing_ to send)
04:22:05 <oerjan> ah
04:22:28 <elliott> (but if not, then it can then simply be defined to e.g. keep forwarding them until _no_ inputs are on)
04:22:32 <elliott> (that introduces state, though)
04:22:34 <elliott> (which is nasty)
04:22:59 <elliott> oerjan: I'm not sure these primitives are useful, but... obviously you can do anything "purely functional" with them
04:23:04 <elliott> because they don't care about synchronisation or anything
04:23:14 <elliott> you just wire up the expression tree
04:23:39 <elliott> the idea is that you'd be able to look at a circuit and _avoid computing_ certain things because the things they're plugged into aren't interested in them
04:23:49 <elliott> i.e. starting to send a signal would not change the rest of the circuit
04:24:01 <elliott> and I think without that you'd end up computing a bunch of things you don't need all the time??
04:24:03 <elliott> I'm really not sure
04:24:19 <elliott> but basically I cannot figure out how to construct a simple mutable reference where you can get the value out of it as a signal and then modify that value
04:24:51 <elliott> hmm
04:24:53 <elliott> oerjan: well by construct
04:24:54 <elliott> I mean as a primitive
04:24:59 <elliott> but it has to follow the laws
04:25:30 <oerjan> food ->
04:25:52 <elliott> hmmmmmmmm
04:25:55 <elliott> how about this...
04:26:09 <elliott> it has two inputs, O and V
04:26:52 <elliott> when O is on, it lies dormant until V is sending, then reads the value it's receiving, repeatedly, and forwards it on
04:27:01 <elliott> i.e., if O is on, it's a simple identity gate
04:27:18 <elliott> but if O is _off_, then it stores the value it's currently sending internally
04:27:20 <elliott> and starts ignoring V
04:27:23 <elliott> and just sending off that constant value
04:27:34 <elliott> (or not-sending-at-all, if that's what it was doing when O was on)
04:27:41 <elliott> the question is, does this violate the ordering rule wrt O and V
04:27:58 <elliott> I think it might, because if V's value changes from X to Y in zero point one ms
04:28:05 <elliott> and O takes between zero point one and zero point two ms to change
04:28:12 <elliott> or whatever
04:28:19 <elliott> then whichever arrives first changes the value it's sendinh
04:28:20 <elliott> sending
04:28:21 <elliott> hmm
04:28:35 <elliott> I feel this might be an innate problem; I think what I'm trying to do is guarantee that there are no timing issues
04:28:45 <elliott> and the only way to do that by totally forbidding any knowledge of time is to forbid state from changing
04:28:54 <elliott> except I can have, like, something that just outputs the integers in sequence forever
04:28:59 <elliott> it's a specific kind of state that can't change
04:29:12 <elliott> and I think it means you can't construct something that outputs the integers in sequence forever _without it being a primitive_
04:29:17 <elliott> because it would depend on ordering
04:42:07 <oerjan> mhm
04:42:34 <elliott> or the model could be perfect
04:42:37 <elliott> WHCIH IS IT??????
04:42:41 <elliott> hey
04:42:42 <elliott> hey oerjan
04:42:42 <elliott> prove
04:42:43 <elliott> my
04:42:44 <elliott> model
04:42:44 <elliott> turing
04:42:45 <elliott> complete
04:42:53 <elliott> with the same primitives as haskell
04:42:56 <elliott> but with the restriction
04:43:00 <oerjan> @_@
04:43:01 <elliott> that you must use at least one mutable cell
04:43:04 <elliott> ;)
04:43:05 <elliott> ;)
04:43:06 <elliott> ;)
04:47:54 -!- elliott has quit (Remote host closed the connection).
04:47:57 -!- elliott_ has joined.
04:54:59 <elliott_> In 7th grade, I was one of the last two people in my grammar school's spelling bee. They gave me the word 'tutu' (I'm a boy). Of course I spelled it wrong, as I had never even seen the word on paper. In your professional opinion, do you think that's cheap and/or rigged?
04:55:05 <elliott_> --reddit
04:55:22 <elliott_> they gave me the word tutu (im a boy)
04:55:47 <pikhq_> ... How can you not know tutu?
04:56:02 <elliott_> pikhq_: because "im a boy"
04:56:06 <elliott_> cheap and/or rigged
04:56:09 <monqy> hes a boy
04:56:22 <pikhq_> What, would that be too potentially gay or some shit?
04:57:45 <elliott_> too tutu
04:58:28 <elliott_> http://londonrioters.co.uk/
04:58:29 <elliott_> i...............
04:58:36 <elliott_> im trying to figure out what this is for
04:58:41 <elliott_> does it send all the filled in things to the policy
05:01:40 -!- pingveno has quit (Ping timeout: 240 seconds).
05:01:44 -!- elliott_ has quit (Remote host closed the connection).
05:02:49 -!- elliott has joined.
05:03:22 <elliott> back to thinking about being polymorphic on laziness/strictness
05:03:31 <elliott> sits here until oerjan asks what he means
05:04:00 -!- pingveno has joined.
05:05:45 * oerjan whistles a merry little tune
05:06:57 <elliott> bits oerjan's head off, digests
05:07:28 <elliott> bites
05:08:39 * elliott attempts to figure out what................................... names are
05:10:42 <elliott> oerjan
05:10:43 <elliott> what
05:10:43 <elliott> is
05:10:43 <elliott> a
05:10:47 <elliott> name
05:11:08 <oerjan> a sweet by any other rose would smell as name
05:12:51 -!- oerjan has quit (Quit: Good night).
05:32:53 -!- GreaseMonkey has joined.
05:35:26 <zzo38> It is late here, and yet coppro's timezone is just three hours ahead of me, so it would be time to sleep over there too.
05:43:09 -!- evincar has joined.
05:44:39 <evincar> So I read the article on Funciton today. It's rather polished.
05:44:55 <evincar> Definitely approve.
05:45:16 <evincar> Now I'm thinking of writing basically a 2D Lisp.
05:45:25 <monqy> would it be a good 2d lisp
05:46:09 <evincar> It could be a goody two-lisp.
05:47:27 <elliott> help monqy what should i call this languag ehelp
05:47:38 <evincar> There's so much room for development in >1D languages, but they're such a pain to edit.
05:47:38 <monqy> is this the
05:47:41 <monqy> dadaflow language
05:47:49 <zzo38> When looking at the display of my calculator using these movie glasses, wearing them forward results in seeing the display fine in one lens and blocked in the other lens. Rotating does not change anything. When wearing the glasses backward, which lens it is visible though and which is blocked depends on the angle of rotation.
05:47:55 <elliott> monqy: no,
05:47:57 <elliott> an functional language,
05:48:04 <elliott> like haskell... but different.....
05:48:07 <monqy> is it
05:48:08 <monqy> @lang
05:48:09 <lambdabot> pong
05:48:21 <elliott> no
05:48:52 <monqy> is it yocto
05:49:09 <elliott> whats yotco
05:49:26 <monqy> like zepto but...smaler
05:50:50 <monqy> lots of names are taken but they were probably bad names anyway
05:51:01 <monqy> and I am bad at names
05:51:55 <monqy> is haskel (not haskell; haskel) a good name
05:52:45 <evincar> elliott: Find a person from history who's awesome and probably wouldn't approve of their name being used for this thing if they were alive.
05:52:49 <evincar> Name it after them.
05:52:52 <elliott> evincar: jesus,
05:52:53 <evincar> Profit.
05:53:04 <elliott> i will call my language Jesus
05:53:12 <Patashu> the algorithm finds Jesus
05:53:18 <monqy> name your language
05:53:18 <zzo38> On the Nintendo DS display, wearing the glasses forward results in one lens changing the color between blue and white depending on rotation, and the other changing between yellow and white depending on rotation. When wearing backward, both lenses change the color between red, green, and white, depending on rotation.
05:53:19 <monqy> dan
05:53:20 <monqy> fred
05:53:31 <evincar> Why not Xesus? Because Xs are cool (see the 90s).
05:53:32 <monqy> your language has a first name
05:53:34 <monqy> and a last name
05:54:14 <evincar> Or Gss (plural of Gs, pronounced "Jeezes").
05:54:23 <elliott> i will name my language evincar
05:54:36 <evincar> As long as you don't pronounce it right, that's fine.
05:54:51 <elliott> pronounced evinSTUPID :|
05:54:51 <evincar> My actual nick should technically be evinçar or evincer.
05:55:14 <evincar> Not Ev-ing-ker.
05:55:30 <monqy> evin car
05:55:38 <evincar> An ev-inker. Someone who inks evs.
05:55:57 <evincar> I should change it to evincdr.
05:56:13 <monqy> evintruck
05:58:21 <elliott> ok #jesus is my favourite work of fiction
05:58:26 <elliott> it's like the most complex drama
06:08:22 -!- zzo38 has quit (Remote host closed the connection).
06:14:57 -!- azaq231 has quit (Quit: Leaving.).
06:15:08 -!- mycroftiv has quit (Read error: Operation timed out).
06:15:20 <evincar> I'm disappointed. Didn't pay attention to this channel for fifteen whole minutes and all I get is two lines from elliott? Bah.
06:15:47 <evincar> Is there an existing generalisation of type systems?
06:16:08 -!- elliott has quit (Ping timeout: 264 seconds).
06:16:22 <evincar> Say, continuations : flow control :: what : type systems
06:17:06 <evincar> Any time there's literature on something, I prefer not to re-invent the wheel.
06:17:22 <evincar> Unfortunately I end up in unexplored territory far too often these days.
06:17:28 <evincar> I guess that's the point of doing a Ph.D.
06:17:36 <pikhq_> evincar: Sounds like either unexplored territory or edging on it.
06:18:16 <Patashu> continuation type systems?
06:18:18 <Patashu> what does that even mean
06:18:27 <pikhq_> Patashu: It means you're underthinking it.
06:18:29 <pikhq_> :)
06:19:10 <evincar> Patashu: I mean, continuations generalise flow control, in the same way that S-expressions generalise program structure, in the same way that macros generalise syntax. Is there a similar abstraction for types?
06:19:21 <Patashu> aaaAaah
06:19:23 <evincar> I'm not speaking strictly Lisp here, but close.
06:19:50 <pikhq_> I doubt you mean "type classes" or other forms of, essentially, providing more general types, here.
06:19:59 <evincar> Right, that's working within the system.
06:20:19 <evincar> I mean, you can (relatively) easily write Lisp macros that implement strong typing.
06:20:22 <pikhq_> (or more specific, either...)
06:20:32 <evincar> But I feel like that's a cop-out.
06:20:45 <evincar> Sure, everything boils down to rewriting eventually.
06:20:50 <evincar> Except for special forms.
06:21:09 <evincar> But I mean, what are the primitives from which a type system is constructed?
06:21:46 <pikhq_> What are the primitives from which a proof is constructed?
06:22:00 <evincar> Axioms, and theorems derived from axioms. :P
06:22:16 <pikhq_> There's your answer, I suppose.
06:22:18 <evincar> The most vacuous response I can manage.
06:22:48 <evincar> I guess what bothers me is that types imbue values with meaning, so you can't have a value without (implicit or explicit) type.
06:22:51 <coppro> evincar: a bunch of values and a relation on those values
06:22:56 <pikhq_> Except that type systems generally aren't specified in terms of their axioms.
06:23:18 <coppro> types are just sets of values, usually constratined in some fashion
06:23:42 <evincar> I guess you could formulate "a type describes a size, alignment, and either signedness or floatness" as your axioms.
06:23:53 <coppro> dude, no
06:23:54 <evincar> Then derive constraints from those axioms.
06:23:55 <coppro> type thoery
06:24:00 <pikhq_> evincar: Well, types are proofs.
06:24:07 <coppro> your set of values forms a complete partial order
06:24:19 <pikhq_> Hence the question...
06:25:00 <evincar> I don't see types in terms of set theory. I see sets as emergent behaviour or secondary restrictions on types.
06:25:25 <coppro> evincar: dude, type thoery
06:25:27 <coppro> *theory
06:25:28 <evincar> The natural numbers emerge from an unbounded unsigned integral type.
06:25:33 <coppro> I'm going to continue repeating this
06:25:41 <coppro> because there exists a branch of mathematics
06:25:47 <coppro> called type theory
06:25:52 <coppro> remarkably, it is the theory of types
06:26:02 <coppro> and you're pulling a Sgeo here
06:26:53 <evincar> What, by being practical? :P
06:28:24 <coppro> no, by saying "I wonder what happens if X?"
06:28:29 <coppro> and hearing "it's been done"
06:28:40 <coppro> and going "Maybe it involves Y?"
06:28:48 <coppro> and hearing "No, it doesn't."
06:28:53 <coppro> and going "If it had Y, you'd need Z"
06:29:02 <coppro> and hearing "Maybe, but it doesn't have Y."
06:29:02 <evincar> I didn't say "if X" to begin with, though.
06:29:03 <coppro> etc.
06:29:11 <coppro> same principle
06:29:24 <evincar> I said "is there such a thing as a primitive of type systems?"
06:29:45 <evincar> A generalisation under which type systems can be constructed.
06:29:54 <coppro> yes
06:29:56 <coppro> it is called type theory
06:32:44 <evincar> So the operation that defines a type system is...?
06:33:39 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
06:34:25 -!- mycroftiv has joined.
06:50:48 -!- evincar has quit (Quit: leaving).
08:05:31 -!- Sgeo has quit (Read error: Connection reset by peer).
08:11:07 -!- GreaseMonkey has quit (Quit: The Other Game).
08:13:16 -!- Vorpal has joined.
08:13:21 -!- Vorpal has quit (Changing host).
08:13:21 -!- Vorpal has joined.
08:39:45 -!- Vorpal has quit (Ping timeout: 260 seconds).
08:42:33 -!- lament has joined.
09:07:07 -!- monqy has quit (Quit: hello).
09:08:11 -!- Taneb has joined.
09:09:05 <Taneb> Morning!
09:11:12 -!- lament has quit (Ping timeout: 252 seconds).
09:45:52 -!- lambdabot has quit (Ping timeout: 255 seconds).
09:51:58 -!- FireFly has joined.
09:54:14 -!- sebbu has quit (Ping timeout: 260 seconds).
10:01:20 -!- sebbu has joined.
10:01:20 -!- sebbu has quit (Changing host).
10:01:20 -!- sebbu has joined.
10:20:04 -!- augur_ has joined.
10:21:48 -!- pingveno_ has joined.
10:26:10 -!- MSleep has quit (Ping timeout: 255 seconds).
10:26:12 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:26:13 -!- rodgort has quit (Ping timeout: 255 seconds).
10:26:14 -!- pingveno has quit (Ping timeout: 255 seconds).
10:26:14 -!- Nisstyre has quit (Ping timeout: 255 seconds).
10:26:17 -!- augur has quit (Ping timeout: 255 seconds).
10:29:12 -!- rodgort has joined.
10:33:22 -!- Nisstyre has joined.
10:33:34 <Taneb> Hello!
10:33:59 -!- cheater_ has joined.
10:39:04 <CakeProphet> hey
10:39:23 <Taneb> How's you?
10:39:24 -!- BeholdMyGlory has joined.
10:42:02 <CakeProphet> not too great, honestly.
10:44:58 <Taneb> The capital-F Future has turned out kinda lame, hasn't it?
10:45:44 <CakeProphet> I guess.
10:47:21 <NihilistDandy> What up what up?
10:47:33 <Taneb> My homies are all up
10:48:05 <NihilistDandy> Capital F Fuck the capital F Future
10:52:44 <CakeProphet> time to watch Dexter and forget about how I feel.
10:58:32 -!- augur_ has changed nick to augur.
11:22:19 -!- itidus20 has quit (Ping timeout: 260 seconds).
11:24:26 -!- Wamanuz has quit (Ping timeout: 240 seconds).
11:24:36 -!- Wamanuz has joined.
11:29:26 <Taneb> A haiku in brainfuck:
11:29:33 <Taneb> ,[.
11:29:37 <Taneb> ,]++
11:29:39 <Taneb> --+
11:31:22 <Taneb> Alternatively:
11:31:40 <Taneb> Comma, bracket, stop
11:31:51 <Taneb> Comma, close bracket, plus, plus
11:31:56 <Taneb> Minus, minus, plus
11:32:29 -!- sebbu has quit (Ping timeout: 250 seconds).
11:39:19 -!- boily has joined.
11:42:48 -!- lambdabot has joined.
11:46:00 <Taneb> Does anyone mind if I make a language called "I hate your 'I hate your bf-derivative I really do' I really do"?
11:47:44 <fizzie> Probably not, but that sort of thing is liable to escalate, and then you run out of different quote-like characters.
11:47:46 <NihilistDandy> Taneb: Make it a recursive acronym
11:48:33 <Taneb> MIBBLLIS?
11:48:48 <Taneb> MIBBLLIS isn't brainfuck but looks like it is?
11:49:03 <NihilistDandy> I like it
11:50:58 <Taneb> It's going to use B,C,K,W combinatory logic
11:51:42 <Deewiant> S isn't short for "is"
11:51:55 <Taneb> YIS
11:52:02 <Taneb> Which stands for Yes It Is
11:52:04 <Deewiant> NII
11:52:13 <Taneb> SU
11:52:16 <NihilistDandy> As in knights who say?
11:52:38 <Taneb> How about "TIARA"
11:52:53 <NihilistDandy> That's the first Python reference I've made since I made fun of shitty interpreted languages
11:53:09 <Taneb> Which stands for "TIARA Is A Recursive Algorithm"
11:54:26 <Deewiant> I thought you'd say s/Algorithm/Acronym/
11:54:42 <Taneb> Yeah, that's what I meant
11:55:38 <NihilistDandy> http://en.wikipedia.org/wiki/Recursive_acronym#Notable_examples
11:55:42 <NihilistDandy> Already been done
11:55:59 <NihilistDandy> Sorry
11:56:00 <NihilistDandy> http://en.wikipedia.org/wiki/Recursive_acronym#Non-technical_examples
11:56:11 <Taneb> Dayum
11:56:27 <Taneb> I'll stick with MIBBLLII
11:56:33 <Taneb> Pronounced mibbly
12:00:54 <Taneb> In MIBBLLII, > and < are IO
12:03:25 <Taneb> <> takes a single bit of input and prints it
12:04:04 <NihilistDandy> Doesn't that mean that > and < are OI?
12:04:15 <Taneb> I never said which order
12:04:24 <Taneb> And actually no
12:05:15 <Taneb> < x prints x 1 0
12:05:37 <NihilistDandy> Ah
12:05:39 <Taneb> > takes a bit from input and returns . if that bit is 1 and .,. if that bit is 0
12:05:40 <lambdabot> <no location info>: parse error on input `,'
12:05:54 <Taneb> Thanks, lambdabot
12:06:36 <Taneb> , a b returns a b b
12:06:44 <Taneb> and . a b returns a
12:10:00 <Taneb> + a b c returns a [b c]
12:10:10 <Taneb> - a b c returns a c b
12:10:21 <Taneb> [ and ] are for grouping
12:10:24 -!- PatashuWarg has joined.
12:10:27 <Taneb> This is Turing Complete
12:10:44 <fizzie> "TITC is Turing Complete"?
12:12:03 <Taneb> TITCBIWSKICC is Turing Complete by isomorphism with SKI combinatory calculus
12:13:00 <Taneb> pronounced titsee-bio-skee-see-see
12:13:07 <Taneb> With a long o
12:13:10 <Taneb> ooooo
12:14:33 <fizzie> TITC as-is sounds like some sort of C variant where all the arithmetic types have been replaced by one that holds a single ternary digit.
12:14:43 -!- MDude has joined.
12:14:50 <PatashuWarg> link?
12:15:01 <Taneb> Work-in-progress
12:16:23 <Taneb> S = +[+[+,]-][++] = +[+,][++-]
12:16:29 <Taneb> K = .
12:16:35 <Taneb> I = ,.
12:18:15 <Taneb> I cannot believe ICBIINB is not brainfuck?
12:18:36 <Taneb> I'll go with TITC
12:19:27 <NihilistDandy> fizzie: I was thinking TITC was just a sexually frustrated C variant
12:19:55 <Taneb> Actually, MIIBBLLII
12:22:37 <Lymee> Taneb, how does that code work? o.o
12:22:48 <Taneb> http://en.wikipedia.org/wiki/B,C,K,W_system
12:23:17 <PatashuWarg> 'This system was discovered'
12:23:22 <PatashuWarg> I'm pretty sure you can't discover maths guys
12:23:46 <Taneb> He found it in his doctoral thesis Grundlagen der kombinatorischen Logik
12:23:54 <Deewiant> It was just lying there
12:23:55 <Taneb> It was there all along and no-one knew
12:23:58 <PatashuWarg> LOL
12:24:02 <Taneb> I'm going to have lunch now, bye
12:24:24 <CakeProphet> Taneb: the problem is that SKI doesn't compute bytes.
12:24:29 -!- Taneb has changed nick to TanebIsHavingLun.
12:24:56 <TanebIsHavingLun> I've defined IO similar to how Binary Lambda Calculus does it
12:25:23 <PatashuWarg> Where are the continuations?
12:25:39 -!- sllide has joined.
12:26:25 <CakeProphet> yes, the problem is that in order for it to work correctly ,. has to input and output a bf program.
12:27:45 <sllide> why is brainfuck so popular?
12:28:04 <PatashuWarg> because it was one of the first
12:28:13 <sllide> ah..
12:29:20 <PatashuWarg> also, because its specification is tiny but working with it is hugely difficult, it's easy to write a compiler/interpreter for and it's still turing complete
12:29:40 <fizzie> Also, it has a dirty word like right there in the name.
12:29:46 <CakeProphet> it's a very minimal model of a Turing machine, yet it's considered "esoteric" because of its unusual programs.
12:31:00 -!- TanebIsHavingLun has changed nick to Taneb.
12:47:33 <Taneb> Bye
12:52:45 -!- Taneb has quit (Ping timeout: 260 seconds).
13:05:20 <coppro> /win 4
13:13:02 -!- copumpkin has quit (Ping timeout: 240 seconds).
13:13:27 -!- copumpkin has joined.
13:16:12 <fizzie> /win some, /lose some.
13:20:06 <Lymee> https://gist.github.com/1136780
13:20:10 <Lymee> I had way too much time on my hands.
13:20:23 <Lymee> Guess how evil.py works.
13:22:02 <NihilistDandy> I wish #esoteric was all up in #haskell right now
13:24:05 <cheater_> all up in that bitch
13:24:51 <NihilistDandy> I think it'd be fun
13:35:45 -!- Taneb has joined.
13:36:17 -!- Phantom_Hoover has joined.
13:38:25 <Taneb> Hello!
13:39:07 -!- Phantom_Hoover has set topic: Don't enjoy unlocking the matrix of ununseptide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
13:40:32 <Phantom_Hoover> (It's disputed whether ununseptium would be a halogen, but I don't think anyone actually cares.)
13:40:32 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
13:42:10 -!- Nisstyre has quit (Ping timeout: 252 seconds).
13:43:27 -!- Sgeo has joined.
14:00:53 <CakeProphet> hmmm, so you could use unsafeCoerce to artificially change the phantom type of a GADT, right?
14:00:56 <CakeProphet> with no issues.
14:10:57 <Phantom_Hoover> Oh dammit, the cat brought in a mouse.
14:11:09 <Taneb> USB or PS/2?
14:11:25 <Phantom_Hoover> Dunno, I'll have to catch it first.
14:11:26 <Phantom_Hoover> BRB.
14:14:43 <Phantom_Hoover> Dammit, I lost it.
14:17:54 -!- Vorpal has joined.
14:18:19 <Phantom_Hoover> I knew it, it's hiding in the curtains.
14:18:27 <Phantom_Hoover> I'll just have to waid.
14:18:30 <Phantom_Hoover> *wait
14:21:44 <Phantom_Hoover> HOW AM I BEING OUTWITTED BY A MOUSE
14:21:50 <Phantom_Hoover> I know, I'll get the cat!
14:22:35 <Phantom_Hoover> WHERE IS HE THE LITTLE BASTARD
14:22:42 <Phantom_Hoover> SHOW SOME MAMMALIAN SOLIDARITY
14:23:18 <Taneb> Mice are mammals too
14:23:23 <Taneb> As are koalas
14:24:24 <Taneb> And platypuses
14:25:20 <Lymee> !python from ctypes import *;tuple=(None,);memmove(id(tuple)+12,byref(c_uint(id(tuple))),sizeof(c_uint));print tuple
14:25:22 <EgoBot> ​/tmp/input.32634: line 1: 32642 Segmentation fault python
14:25:25 <Lymee> :(
14:25:32 <Lymee> !python from ctypes import *;tuple=(None,);memmove(id(tuple)+20,byref(c_uint(id(tuple))),sizeof(c_uint));print tuple
14:25:33 <EgoBot> ​/tmp/input.32692: line 1: 32699 Segmentation fault python
14:26:01 <Lymee> !python from ctypes import *;tuple=(None,);memmove(id(tuple)+20,byref(c_uint(id(tuple))),sizeof(c_uint));print tuple[0]==tuple
14:26:02 <EgoBot> Traceback (most recent call last):
14:26:20 <Lymee> !python from ctypes import *;tuple=(None,);memmove(id(tuple)+12,byref(c_uint(id(tuple))),sizeof(c_uint));print tuple[0]==tuple
14:26:21 <EgoBot> ​/tmp/input.374: line 1: 381 Segmentation fault python
14:26:24 <Lymee> :<
14:26:36 <Lymee> !python from ctypes import *;tuple=(None,);memmove(id(tuple)+24,byref(c_uint(id(tuple))),sizeof(c_uint));print tuple[0]==tuple
14:26:37 <EgoBot> ​/tmp/input.437: line 1: 444 Segmentation fault python
14:26:41 <Gregor> lols
14:26:55 <Taneb> !python print "!python print \"test\""
14:26:56 <EgoBot> ​!python print "test"
14:27:28 <Lymee> !python from ctypes import *;tuple=(None,);memmove(u_void_p(id(tuple)+24),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple
14:27:29 <EgoBot> Traceback (most recent call last):
14:27:44 <Lymee> !python from ctypes import *;tuple=(None,);memmove(c_void_p(id(tuple)+24),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple
14:27:44 <Taneb> Well, EgoBot doesn't call itself
14:27:45 <EgoBot> ​/tmp/input.653: line 1: 660 Segmentation fault python
14:27:53 <Taneb> Also its version of Python is earlier than 3.0
14:28:02 <Lymee> !python from ctypes import *;tuple=(None,);memmove(c_void_p(id(tuple)+38),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple
14:28:03 <EgoBot> False
14:28:21 <Lymee> !python from ctypes import *;tuple=(None,);memmove(c_void_p(id(tuple)+40),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple
14:28:21 <EgoBot> False
14:29:08 <Lymee> !python exec """from ctypes import *;tuple=(None,)\nfor x in range(5):\n memmove(c_void_p(id(tuple)+24+8*x),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple"""
14:29:09 <EgoBot> ​/tmp/input.878: line 1: 885 Segmentation fault python
14:29:26 <Lymee> !python exec """from ctypes import *;tuple=(None,)\nfor x in range(5):\n memmove(c_void_p(id(tuple)+32+8*x),byref(c_uint(id(tuple))),sizeof(c_void_p));print tuple[0]==tuple"""
14:29:26 <EgoBot> False
14:29:39 <Phantom_Hoover> This mouse is mocking me, I swear.
14:29:46 <Lymee> !python exec """from ctypes import *;tuple=(None,)\nfor x in range(5):\n memmove(c_void_p(id(tuple)+32+8*x),byref(c_uint(id(tuple))),sizeof(c_void_p));print id(tuple[0])"""
14:29:47 <EgoBot> 7517664
14:30:06 <Lymee> !python exec """from ctypes import *;tuple=(None,)\nfor x in range(5*8):\n memmove(c_void_p(id(tuple)+32+x),byref(c_uint(id(tuple))),sizeof(c_void_p));print id(tuple[0])"""
14:30:07 <EgoBot> 7517664
14:30:21 <Lymee> Yeah, this isn't working. =p
14:31:01 <Lymee> !c #include <python2.6/Python.c>
14:31:03 <EgoBot> Does not compile.
14:31:14 <Phantom_Hoover> OK
14:31:18 <Phantom_Hoover> I swear
14:31:26 <Lymee> !getinterp c
14:31:26 <Phantom_Hoover> It is not moving around in the same space I am
14:32:27 <Lymee> !c #include <python2.6/Python.c> int main() {PyFunctionObject f;printf("%u",((unsigned int)&(f.ob_item))-((unsigned int)&f));}
14:32:28 <EgoBot> Does not compile.
14:32:58 <Lymee> `run echo "#include <python2.6/Python.c> " > test.c
14:33:01 <HackEgo> No output.
14:33:15 <Lymee> `run echo "int main() {PyFunctionObject f;printf(\"%u\",((unsigned int)&(f.ob_item))-((unsigned int)&f));}" > test.c
14:33:16 <HackEgo> No output.
14:33:20 <Lymee> `run gcc -o test test.c
14:33:21 <HackEgo> No output.
14:33:23 <Lymee> `run ./test
14:33:25 <HackEgo> No output.
14:33:26 <Lymee> `ls
14:33:28 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ test.c \ tmp.tmp \ tmpdir.1749 \ warez \ тэкст
14:33:32 <Lymee> `paste test.c
14:33:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20696
14:33:43 <Lymee> `run echo "#include <python2.6/Python.c> " > test.c
14:33:45 <HackEgo> No output.
14:33:47 <Lymee> `run echo "int main() {PyFunctionObject f;printf(\"%u\",((unsigned int)&(f.ob_item))-((unsigned int)&f));}" >> test.c
14:33:49 <HackEgo> No output.
14:33:52 <Lymee> `run gcc -o test test.c
14:33:53 <HackEgo> No output.
14:33:54 <Lymee> `run ./test
14:33:55 <HackEgo> No output.
14:34:00 <Lymee> `run sh -c ./test
14:34:01 <HackEgo> No output.
14:34:04 <Lymee> `paste test.c
14:34:05 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8594
14:34:07 <Lymee> `ls
14:34:08 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ test.c \ tmp.tmp \ tmpdir.2145 \ warez \ тэкст
14:34:23 <Lymee> `which gcc
14:34:24 <HackEgo> ​/usr/bin/gcc
14:34:30 <Lymee> `run /usr/bin/gcc -o test test.c
14:34:32 <HackEgo> No output.
14:34:37 <Lymee> `gcc -o test test.c
14:34:38 <HackEgo> No output.
14:34:40 <Lymee> `ls
14:34:42 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ test.c \ tmp.tmp \ tmpdir.2361 \ warez \ тэкст
14:34:45 <Lymee> wat
14:35:03 <Gregor> `echo Hello, I am capable of being used via PM
14:35:04 <HackEgo> Hello, I am capable of being used via PM
14:35:22 <Phantom_Hoover> Gregor, can you just make it ignore Lymee.
14:35:46 <Phantom_Hoover> Or give her n uses and then tell her to use her own damn computer.
14:40:58 <sllide> `echo interesting
14:41:00 <HackEgo> interesting
14:41:25 -!- copumpkin has quit (Ping timeout: 260 seconds).
14:41:50 -!- copumpkin has joined.
14:42:23 -!- copumpkin has quit (Client Quit).
14:45:43 -!- PatashuWarg has quit (Ping timeout: 250 seconds).
14:51:05 -!- derrik has joined.
14:51:37 <Sgeo> "there is at least one child on this planet named karkat."
14:52:00 <Taneb> [citation needed]
14:53:28 <Sgeo> http://twitter.com/#!/andrewhussie/status/100799021219708928 Ok, so I don't know where he got that from
14:55:12 <Sgeo> http://www.mspaforums.com/showthread.php?30478-Littlest-Homestuck-Fan
14:55:47 <fizzie> ^echo I am also capable of functioning via PM, and my 'echo' is more interesting.
14:55:47 <fungot> I am also capable of functioning via PM, and my 'echo' is more interesting. I am also capable of functioning via PM, and my 'echo' is more interesting.
14:55:55 -!- lament has joined.
14:56:13 <Gregor> `echo fungot can suck it
14:56:14 <fungot> Gregor: your sylladex, but you're not about to get into it some time
14:56:14 <HackEgo> fungot can suck it
14:57:09 <fizzie> ^reverb NO YOU
14:57:09 <fungot> NNOO YYOOUU
14:59:03 -!- itidus20 has joined.
15:07:36 -!- copumpkin has joined.
15:11:14 <CakeProphet> @src join
15:11:14 <lambdabot> join x = x >>= id
15:11:28 <CakeProphet> ah.
15:11:38 <CakeProphet> so simple.
15:13:47 <CakeProphet> list >>= is a beautiful thing.
15:14:28 <lament> haskell is awful
15:14:37 <CakeProphet> @hoogle IO (IO a)
15:14:38 <lambdabot> System.Exit exitFailure :: IO a
15:14:38 <lambdabot> System.Exit exitSuccess :: IO a
15:14:38 <lambdabot> System.IO fixIO :: (a -> IO a) -> IO a
15:14:48 <CakeProphet> @hoogle (IO (IO a))
15:14:49 <lambdabot> System.Exit exitFailure :: IO a
15:14:49 <lambdabot> System.Exit exitSuccess :: IO a
15:14:49 <lambdabot> System.IO fixIO :: (a -> IO a) -> IO a
15:14:53 <CakeProphet> ...not what I want.
15:15:08 <lament> hoogle is even worse than haskell
15:15:17 <CakeProphet> lament >>= is an ugly thing.
15:15:47 <CakeProphet> > filterM (const [True,False]) "Take this!"
15:15:48 <lambdabot> ["Take this!","Take this","Take thi!","Take thi","Take ths!","Take ths","Ta...
15:16:04 <CakeProphet> powerset to the face.
15:16:06 <CakeProphet> how does it feel.
15:16:30 <CakeProphet> feel those 2^n possibilities.
15:21:03 <sllide> is there a esolang that refuses to listen sometimes?
15:21:08 <sllide> like refusing to assign variables
15:21:11 <sllide> skipping instructions
15:21:59 <Taneb> INTERCAL
15:22:06 <Taneb> ZOMBIE
15:22:57 <sllide> ah a language for necromancers
15:23:17 <sllide> sounds good
15:27:30 <sllide> wtf
15:27:39 <sllide> that is weird
15:30:11 -!- sebbu has joined.
15:30:11 -!- sebbu has quit (Changing host).
15:30:11 -!- sebbu has joined.
15:30:30 -!- derrik has quit (Quit: kthxbye).
15:33:52 -!- sebbu2 has joined.
15:34:44 <sllide> hmm what about the IP following a maze, when it finds a spot where it can go multiple ways it goes where previous instructions pointed it
15:34:45 -!- sebbu has quit (Ping timeout: 246 seconds).
15:37:15 -!- Taneb has quit (Ping timeout: 260 seconds).
15:39:36 <itidus20> thats a cool idea
15:40:00 <sllide> a second stack to point the IP
15:40:32 <sllide> and the first stack for normal operations like calculations and stuff
15:41:21 <itidus20> the IP as a maze wanderer and the program as a maze
15:41:29 <sllide> yup
15:42:09 <sllide> i just dont know if i should use images or a normal text file as the input
15:42:17 <cheater_> and then you get befunge.
15:43:18 <sllide> again? D:
15:46:17 <cheater_> D:
15:46:25 <sllide> damn befunge
15:46:33 -!- Nisstyre has joined.
15:46:35 <sllide> it has everything i want in my own esolang
15:47:06 -!- sllide has quit (Read error: Connection reset by peer).
15:50:21 -!- sllide has joined.
15:52:52 <sllide> oops
15:53:07 <sllide> when my pc rebooted i got the best idea ever
15:53:09 <sllide> lol
15:53:25 <sllide> a diagonal stack based programming language
15:54:23 <sllide> 4 bit instruction followed by a 4 bit operand
16:01:44 -!- lament has quit (Ping timeout: 264 seconds).
16:04:30 <itidus20> my main interest area is scripting languages, because i could use them towards making games. as to whether they would be esoteric or not i guess not really
16:05:19 <itidus20> but it doesn't have to be that way
16:05:21 <fizzie> sllide: There's Java2K, it only does what you want with a certain probability.
16:06:00 <itidus20> Rephrasing, I want a language which people would enjoy using. Like a passtime
16:06:37 <itidus20> I want it to be the pinocchio of programming languages.
16:06:46 <sllide> hah
16:07:07 <itidus20> Taking care of poor old Gepetto in his darkest hour.
16:09:21 <itidus20> As a designer th-- badum bum bum.. that's it. That is the formalization of something I have been trying to say. Something truely great will smash through the shell of it's use-cases like a baby bird.
16:09:55 <sllide> mine has to be understandable but still be unique
16:11:41 <itidus20> It is said that my ramblings are incoherent. So it is.
16:11:53 <sllide> incoherent?
16:12:45 <itidus20> Regardless of that, I look on this thing called 'design'. So how does design progress? Questions are asked such as "what is this supposed to do?" "what are it's use cases?"
16:12:59 <sllide> ah
16:13:15 <itidus20> Eventually some things reach a point where the users transcend the plans of the designers.
16:14:51 <itidus20> So as a designer the challenge is there of how should one consider the possibility that his design will eventually be transcended by it's users.
16:15:28 <sllide> okay
16:15:29 <itidus20> If he builds in walls and stoppages to prevent this, then it may prevent the design spreading its wings
16:15:46 <sllide> you want it to be as much expandable as possible?
16:16:41 <itidus20> Users will find uses for the thing you design beyond what you imagined.
16:18:15 <itidus20> So the question I see there is, can we help those users after they have escaped the prison of our design
16:18:27 <itidus20> or should we let them go and not interfere
16:18:41 <sllide> i see
16:19:02 <itidus20> or should we ensure they never do anything we didn't plan for them to do?
16:19:45 <itidus20> The ego wants to do the first option. But the second option is probably the "right" one.
16:19:50 <CakeProphet> itidus20: yes, see OverloadedStrings in Haskell.
16:19:56 <CakeProphet> I have found several uses that the designer did not intend.
16:20:00 <CakeProphet> :)
16:20:17 <CakeProphet> ask elliott about it.
16:21:17 <itidus20> So this raises some pretty serious questions for me. Such as, can you even design a good programming language around possible uses
16:21:38 <itidus20> Or just where the hell does it come from. So the design becomes a creative art.
16:22:48 <itidus20> Some bizzare thing which cannot be explained any more than how to paint the Mona Lisa.
16:23:41 <itidus20> Tarantino says he holds his pen up like an antenna
16:24:14 <itidus20> And the dialog comes to him
16:25:30 <itidus20> Now while there is no sure method to paint a Mona Lisa... what people do to compromise is come together and share ideas and what not. Gatherings
16:25:56 <itidus20> There have been over the years schools of art, schools of philosophy.. and the mathematicians would have their disciples etc
16:26:46 <itidus20> I'm not actually saying anything meaningful but perhaps it is inspiring
16:27:10 -!- Taneb has joined.
16:29:14 <Taneb> What does anyone think of MIBBLLII?
16:33:41 <Taneb> Because I'm an attention whore who likes to know what people think of things I have created
16:34:31 <itidus20> i looked at the wiki page just now.. and i laughed at the title but didn't realize you made it
16:34:59 <Taneb> There is a link to my user page right there
16:35:07 <itidus20> well yeah
16:37:23 <itidus20> Taneb: So I need to train myself to think in a certain way. Perhaps by telling you this it will advance my cause.
16:37:39 <Taneb> Is this still about algebra?
16:37:43 <itidus20> nope
16:38:18 -!- azaq23 has joined.
16:38:20 -!- azaq23 has quit (Changing host).
16:38:20 -!- azaq23 has joined.
16:40:32 <itidus20> A PC is a platform. It has it's CPU and instruction set. It has it's RAM, buses, addressing scheme, Operating System, monitor,speakers, network card, disks, etc. And then there is the human operator. The human has the body and the brain and the PC and his bedroom or garage. The human has his textbooks and notebooks and his sciences, emotions, thoughts, etc.
16:41:16 <itidus20> I think a programming language is about going from the human to the PC, according to _such_ understandings of 'human' and 'PC'.
16:41:32 <Taneb> Ish.
16:41:45 <Taneb> Actually, yes
16:42:19 <Taneb> The higher-level the programming language, the less work a human has to do and the more a PC. Low level is the other way round
16:42:51 <itidus20> Even on the lowest level programming language, the separation between humand and pc is still pertinent.
16:43:20 <Taneb> Yes
16:43:35 <Taneb> All programming languages are somewhere between the human and the computer
16:44:23 <itidus20> I know that the actual history of that which can be called programming goes back centuries, possibly millenia, but the punch cards represent the first common modern interface.
16:44:42 <itidus20> If not punch cards then it was a matter of rewiring
16:45:27 <Taneb> Yes
16:46:09 <itidus20> So I think there may be a vast chasm of unexplored space which has been largely ignored because someone built a bridge over it
16:46:36 <Taneb> Such as?
16:47:13 <itidus20> Well, first of all.. why is there a 1 to 1 association between programming and language
16:47:26 -!- Nisstyre has quit (Ping timeout: 260 seconds).
16:47:29 <CakeProphet> itidus20: you'd make a great liberal arts major.
16:47:32 <itidus20> is there no other means of programming a computer than using a language?
16:48:20 <Taneb> I can't think of any
16:48:28 <itidus20> This juncture gets us to ask what do we even mean by a language
16:48:38 <Taneb> Unless raw machine code doesn't count as a language
16:48:53 <itidus20> raw machine code is the PC side of things
16:49:18 <itidus20> so are we making a reification fallacy by saying language?
16:49:45 <itidus20> anthropomorphizing the pc
16:50:26 <itidus20> Oh somehow it seems to help, seems to work better that way
16:50:47 <itidus20> I am just questioning it. Theres probably good reasons for it to be the way it is.
16:51:46 <itidus20> Perhaps it is because modern PC is designed as a kind of robot
16:51:53 -!- Nisstyre has joined.
16:52:57 <CakeProphet> ........
16:53:13 <itidus20> maybe uhh... maybe we sort of anthropomorphize a book when we read it, as though it was speaking to us.
16:53:35 <itidus20> aside from the question of subvocalization
16:54:02 <itidus20> sort of a way to approximate the author who cannot be present
16:55:00 <itidus20> ... i know that enough is enough.. im gonna end rant.
16:55:32 <CakeProphet> basically a language is such a formalism used to describe a kind of data.
16:55:41 <CakeProphet> s/such/just/
16:56:13 <CakeProphet> or, in theory, used for the sake of being defined.
16:57:41 <Taneb> A language is less of a language and more of a notation
16:57:48 <Taneb> A protocol is more of a language
17:00:05 <CakeProphet> itidus20: so no, a language is not the only way to program a computer, but you can probably model most means as a language.
17:02:25 <Phantom_Hoover> ARGH THAT BLOODY MOUSE
17:02:30 <Phantom_Hoover> IT MOCKS ME
17:02:35 <Phantom_Hoover> AAAAAAAA
17:02:39 <Phantom_Hoover> WHAT IF THE MOUSE
17:02:42 <Phantom_Hoover> IS ACTUALLY
17:02:45 <Phantom_Hoover> BEHIND ME
17:02:47 <Phantom_Hoover> WHAT IF I
17:02:50 <Phantom_Hoover> AM ACTUALLY
17:02:52 <Phantom_Hoover> THE MOUSE
17:02:55 <CakeProphet> what if you are a finite state automata.
17:03:01 <Phantom_Hoover> WHAT IF
17:03:03 <CakeProphet> a theoretical vending machine.
17:03:04 <Phantom_Hoover> WHAT IF INDEED
17:03:10 <Taneb> Then eventually he would either halt or repeat
17:03:19 <Phantom_Hoover> What if I am... a phantom hoover.
17:03:23 <CakeProphet> I suppose "dude..." would be an acceptable answer to most "what if" questions.
17:04:09 <CakeProphet> or "whoa..."
17:04:21 <itidus20> back
17:05:38 <Taneb> What If I am actually itidus20 dreaming he is Taneb?
17:05:44 <itidus20> ok so I feel I am drawing towards the whorf sapir hypothesis. which i first heard about in relation to lojban. so someone in here nicely told me that it is all but discredited.
17:06:11 * itidus20 knows that chuang tzu wrote such a story about a butterfly.
17:06:23 <Taneb> Its in about the same state as the wire-crossing problem
17:06:30 <itidus20> But.. what about a graph of creatures dreaming they are other creatures?
17:06:38 <itidus20> now we're cooking
17:06:44 <Taneb> The strong form is pretty much certainly false, but the weak form is pretty much certainly true
17:07:23 <itidus20> The man dreams he is a butterfly. The butterfly dreams it is a snake. The snake dreams it is a pidgeon. The pidgeon dreams it is a butterfly.
17:08:05 <itidus20> nah forget it.
17:08:32 <itidus20> i mean, lets ignore my last post
17:08:53 <itidus20> Taneb: ok here is the paradox.
17:10:22 <itidus20> Despite having no obstructions, machine code or perhaps assembly is not necessarily the language with which the computer can be most fully exploited
17:11:08 -!- zzo38 has joined.
17:11:09 <itidus20> we speak of turing complete a lot.. but what about CPU-complete? :D
17:11:46 <Taneb> You mean a finite state automaton with an exceedingly large number of states?
17:12:00 <Gregor> The problem is that that's a bit harder to define. e.g. Bitxtreme is arguably "CPU-complete", but entirely useless.
17:12:15 <Gregor> Also, like Taneb said :P
17:12:40 <itidus20> I never shut up.. I am the bane of those who would read the logs
17:12:53 <Gregor> That being said, see http://esoteric.voxelperfect.net/wiki/Bounded-storage_machine
17:13:38 <Phantom_Hoover> itidus20, no, that's elliott.
17:13:54 <Phantom_Hoover> He takes great pride in the fact that he talks twice as much as his nearest contender.
17:14:17 <itidus20> Taneb: I mean it is likely that some compilers will have certain opcodes which they simply never generate.
17:14:53 <itidus20> And the question of whether a compiler should have a means other than inline asm to generate every last opcode, or, if not, does it imply that those missing opcodes are like appendages
17:15:17 <itidus20> ^compiler/interpreter :-?
17:15:26 <Taneb> Compiler is right
17:15:57 <Taneb> If the compiled language is capable of everything raw machine code is, and the compiler actually works, that implies that those opcodes are redundant
17:17:32 <zzo38> In Hofstadter's book, Godel Escher Bach, the Lamp is made of copper, the Meta-Lamp is silver, the Meta-Meta-Lamp is gold, it does not say what the Meta-Meta-Meta-Lamp is made of, I can probably guess but what do you think?
17:17:59 <itidus20> assembly programmers like to tout(spelling?) that they have more control than a higher level programmer
17:18:06 <Taneb> zzo38: platinum?
17:18:38 <Taneb> itidus20: they have more control over what the computer is doing, but exactly the same control on what it does
17:18:43 <Phantom_Hoover> Taneb, step aside, I'm the official channel expert on precious metals.
17:18:47 <zzo38> Maybe. But I think it would be roentgenium
17:19:36 <zzo38> Phantom_Hoover: OK if you are expert probably you know better than either of us. What do you think?
17:19:48 <itidus20> Gregor: I really like ORK. I haven't tried to use it but it seems to stand tall as an esolang.
17:20:32 <Phantom_Hoover> zzo38, platinum is still the obvious one.
17:22:03 <Taneb> A case can be made for unbipentium
17:22:06 <quintopia> i really like aubergine still.
17:22:11 <Taneb> Even though it hasn't been discovered
17:22:12 * quintopia winks at boily
17:22:17 <zzo38> Phantom_Hoover: Well, OK. I am not expert on precious metals so I suppose you know better. But, then what is the Meta-Meta-Meta-Meta-Lamp made of? Do you know? I don't know.
17:22:28 <quintopia> zzo38: that one's made of upsidaisium
17:23:27 <Gregor> <3 quintopia
17:23:35 -!- derrik has joined.
17:23:46 <Gregor> quintopia: Thank you for putting that voice in my head :P
17:23:51 <Gregor> "Upsidaisium?!"
17:24:00 <Phantom_Hoover> zzo38, palladium.
17:24:20 <zzo38> Phantom_Hoover: OK. What's next?
17:24:30 <Phantom_Hoover> Iridium!
17:24:45 <zzo38> O, OK.
17:25:12 <quintopia> zzo38: you should ask the genie whether PH is just pulling metal out of his ass
17:26:34 <zzo38> quintopia: Yes, it would be a way to do so, if it were possible
17:27:22 <zzo38> But I said roentgenium but I don't know anything about precious metals anyways so maybe I am wrong
17:29:26 <zzo38> It is true that some compilers do not generate all opcodes of the CPU, but some of them could be used to do things that the code does, in a shorter way. Such as, the ASCII adjust commands in x86
17:29:57 <itidus20> Taneb: So going back to my point about PC/human. I think what has happened is that everyone in programming has been channeled into a very standard mindset of programming with many unnecessary bonds to mathematics.
17:30:41 <itidus20> A programmer does not NEED to know what a number is.
17:31:28 <quintopia> does a fractran programmer need to know?
17:31:31 <zzo38> itidus20: I think it depends on the program, isn't it?
17:31:43 <quintopia> i think you can't program without concept of quantity
17:31:45 <itidus20> zzo38: yup
17:31:50 <itidus20> i think you can
17:32:01 <itidus20> oh but
17:32:36 <itidus20> humans function with quantity instinctively without a complex mathematical concept of it
17:33:01 <quintopia> give me an example of a program that one could make whilst completely ignoring the concept of quantity
17:33:19 <itidus20> What about.. a programming language for the illiterate :D
17:33:24 <zzo38> quintopia: Parts of programs, perhaps.
17:33:31 <itidus20> oh they can still speak.. i am forgetting that
17:33:32 <quintopia> and i mean even the human instinctive concept of quantity
17:33:44 <itidus20> they could speak into a microphone if they are illiterate
17:34:10 <quintopia> at the very least, you should be able to compare entities
17:34:12 <zzo38> In some cases you just need a series of bits but it is still convenient to write it as a number, in base 2, base 8, or base 16.
17:34:22 <quintopia> aka, one is "more" or "less" than another
17:34:41 <itidus20> this is the fruit of my earlier rant
17:35:32 <zzo38> And numbers are still useful to describe things in the program even for parts of the program which are not based on numbers.
17:35:39 <itidus20> you can extend or diminish the responsibility of the compiler/interpreter to whatever degree you like. but then it becomes a question of implementability
17:36:05 <zzo38> Bit shifting by a constant is one such example.
17:36:08 <itidus20> like.. suppose you are a customer.. and you tell a programmer your requirements.. are you a programmer then?
17:36:51 <quintopia> i suppose if someone chose to differentiate "location" from "quantity" you could do it, if all you needed to do was reference where things were and where they need to be moved to. you could name every location instead of numbering them, thus removing quantity. but if you do that, it becomes much more difficult to determine the spatial relationships between locations
17:37:23 <itidus20> or does the demarcation of programmer and mere designer occur at the point where you speak to a human who speaks to a PC
17:38:10 <quintopia> even in a warehouse, when they aren't even checking the crate contents or counting them, they speak in terms of quantity, like "put this three rows left, four columns back, second shelf"
17:38:43 <quintopia> or equivalently, "put this in C4 second shelf"
17:38:45 <itidus20> Ok. I formally accept that a concept of quantity is necessary.
17:39:33 <itidus20> Because otherwise it's just @_@
17:39:59 <itidus20> wa hahahahaa
17:40:12 <quintopia> but now you want to be able to differentiate implicit programming (describing a process to another human) and explicit programming (describing a process to a computer)?
17:40:32 <Gregor> And Star Trek programming, where you describe the process to a computer in broad English :P
17:40:38 <sllide> damn steam sales always happen when i dont have money :(
17:40:49 <quintopia> Gregor: that goes in implicit programming. strong AI is practically human.
17:41:08 <Gregor> So, s/another human/an intelligent entity/
17:41:47 -!- MSleep has joined.
17:41:52 <itidus20> mind reading is the wrong answer... it has always been the wrong answer the "mind reading/neural control"
17:42:20 <itidus20> since anything "non-qualia" you can think in your head you can tell another human
17:44:10 <itidus20> so be afraid if they inject you with intelligence medicine, be afraid if they implant a chip in you, be afraid if they hook an EEG machine up to your cubicle
17:45:32 <Gregor> Pfff, you're just being paranoid.
17:45:34 -!- MDude has quit (Ping timeout: 255 seconds).
17:45:50 * Gregor hooks his desktop's USB port into the downlink node in his right temple.
17:47:20 -!- Taneb has quit (Ping timeout: 260 seconds).
17:47:37 <itidus20> I say "be afraid" because by the time they are at the door.. it will be too late to just "assert" that you're not interested.
17:48:07 <Gregor> We are the Bork. Resistance is futile.
17:49:39 <itidus20> quintopia: I think the line between implicit and explicit is quickly blurring
17:51:14 <itidus20> or maybe not. wiki is telling me about implicit functions
17:51:50 <quintopia> yeah i think the difference is pretty clear
17:52:05 <quintopia> one is used to describe problems, the other, solutions
17:52:15 <quintopia> only the latter can be rigorously analyzed
17:55:32 <itidus20> well suppose there was a language which had 256 strings which it would output with a newline based on the value of a byte.
17:55:37 <itidus20> I admit it is certainly not turing complete. And it is basically a limited database
17:56:15 -!- pikhq has joined.
17:56:16 -!- pikhq_ has quit (Ping timeout: 240 seconds).
17:57:23 <itidus20> it would be a derivative of hello
17:58:08 -!- Taneb has joined.
18:00:43 <MSleep> I'm not sure if quantity is entirely needed for saving location, at least in the sense of recognising numbers.
18:01:14 -!- MSleep has changed nick to MDude.
18:05:52 <itidus20> There is another question here. :D The question of whether a programmer is still a programmer if they do not understand their own language.
18:06:19 <Taneb> Can they use that language effectively?
18:08:01 <itidus20> The possible solutions which can be created by a turing machine are an unbounded quantity.
18:08:22 <Taneb> Unbounded but countable
18:08:25 <itidus20> So it seems anyway.. i am not in any position to make such a bold claim
18:09:11 <itidus20> The implication is that noone truely understands what the turing machine is capable of.
18:09:27 <itidus20> So do they understand it if they do not understand it's full potential?
18:09:53 <Taneb> Do you know every single word in your native language?
18:10:13 <Taneb> (I'll assume English)
18:10:22 <itidus20> They understand how to build one. But they don't have an omniscient grasp of it.
18:10:28 <itidus20> No I don't!
18:10:31 <derrik> English has too many loan words
18:10:44 <derrik> you'd have to know all greek and latin to know english
18:10:47 <Taneb> But do you count yourself as an English speaker
18:10:53 <itidus20> I do.
18:11:50 <itidus20> Uh.. perhaps I am distorting the meaning of understanding.
18:12:35 <itidus20> into something which is not good for much but my arguing
18:13:55 <itidus20> An implicit programmer doesn't know what is possible.
18:14:17 <itidus20> He doesn't even fully understand himself (one assumes), let alone another human.
18:20:21 <itidus20> Often it is taught that how programming works is create the source code and it is fed into compiler or interpreter. Fair enough. What I am talking about is the nature of the source code editor.
18:20:58 <itidus20> Oops. Not only the editor but the language itself too.
18:21:06 -!- sebbu has joined.
18:21:07 -!- sebbu has quit (Changing host).
18:21:07 -!- sebbu has joined.
18:21:19 <sllide> you sound like some conspiracy theorist
18:21:24 <itidus20> hehe
18:21:24 <sllide> or something
18:21:35 <itidus20> not really.. but i sometimes listen to them
18:21:51 <itidus20> I just had a nice idea.
18:22:39 <MDude> A programming language made to have the source code resemble a consipiracy theory?
18:23:41 -!- sebbu2 has quit (Ping timeout: 250 seconds).
18:23:46 -!- monqy has joined.
18:26:01 <itidus20> this: http://oi52.tinypic.com/10ckho8.jpg
18:26:39 <Taneb> 6, 7, 8, 9
18:27:26 <itidus20> perhaps can be expressed as: if (a > 5 && a < 10) printf("a\n");
18:27:45 <itidus20> oops
18:27:57 <itidus20> printf("%d\n",a);
18:28:02 <zzo38> The memory locations in a computer could just be described as a series of bits, not as numbers. The index into an array could also be a series of bits, and not necessarily even the low bits.
18:28:53 <itidus20> wish i could think of a slightly less trivial
18:29:37 <MDude> I was thinking it could be based on something like compass and traightedge.
18:31:05 -!- MigoMipo has joined.
18:31:23 <MDude> Though I'm not really sure how to sue it to represent memory.
18:32:19 <MDude> Oragami can also be used for math, and can so some things compass and straightedge can't, but I'm not sure it it would really be easier to make a programming language based on it.
18:34:20 <itidus20> venn diagrams don't really lend themselves to sequence very well
18:34:41 <itidus20> perhaps they would be better for functional programming
18:35:04 <monqy> your venn diagram looked kind of not at all like a venn diagram
18:35:05 <itidus20> nah
18:35:25 <itidus20> ah.
18:37:55 <itidus20> Still, I can think of no better way of drawing conditional expressions
18:38:21 <itidus20> i should try a more complex expression
18:46:22 <zzo38> I think the documentation for the ZOMBIE programming language is a bit vague, some things are not written clear and I do not exactly understand some things about it.
18:46:36 <Taneb> Yeah, it is vague.
18:46:49 <Taneb> Take it up with Dr. David Morgan-Mar
18:47:23 <Vorpal> <zzo38> The memory locations in a computer could just be described as a series of bits, not as numbers. The index into an array could also be a series of bits, and not necessarily even the low bits. <-- you could also describe the memory locations in a computer as a set of capacitor connected in an intricate manner, providing a way to access individual ones.
18:47:40 <Vorpal> actually, not quite true. You address it by the word length
18:48:05 <Vorpal> not sure what the word length for common PC DRAM modules is. 8 bits or larger i guess
18:50:13 <itidus20> It is largely up to the language designer as to whether the programmer needs to know how much memory is being used. :D
18:51:04 <Vorpal> <itidus20> this: http://oi52.tinypic.com/10ckho8.jpg <-- image based language?
18:51:10 <Vorpal> (I hope that is the input file!)
18:51:30 <itidus20> there is no actual language spec or interpreter or compiler.. only that image.
18:51:40 <Vorpal> aww
18:51:45 <itidus20> and it is much of a dead end :P i just wanted to throw it out there
18:52:25 <itidus20> and i don't endorse the idea that someone else pick up what i discard
18:52:31 <itidus20> but what you will
18:52:43 <Vorpal> itidus20, don't worry, I'm too lazy
18:52:44 <itidus20> someone else mentioned similar things though perhaps
18:52:57 <Vorpal> itidus20, anyway I gather you are no fan of open source then?
18:53:01 <sllide> i just watched cube2: hypercube
18:53:05 <sllide> i cant think straight anymore
18:53:24 <itidus20> Vorpal: i just thnk that.. the idea is broken
18:53:46 <itidus20> i mean the idea of the picture i drew
18:53:49 <Vorpal> itidus20, how so?
18:53:50 <itidus20> not the idea of open source
18:54:01 <Vorpal> itidus20, still: how so?
18:54:12 <itidus20> and.. i would not like to be responsible for someone else wasting hours away just to implement that piece of cra
18:54:15 <itidus20> p
18:54:46 <Vorpal> itidus20, it could be done as a part of a larger language, where control flow is input as a flow chart
18:54:56 <Vorpal> with venn diagram in the condition boxes
18:55:01 <Vorpal> itidus20, that way it could work
18:55:06 <itidus20> also.. the idea doesn't really scale very well
18:55:19 <Vorpal> itidus20, true, but many esolangs don't
18:55:23 <Vorpal> they can still be interesting
18:55:24 <itidus20> maybe it does. maybe theres something in it
18:55:48 <itidus20> oh i like open source.. more specificially i hate patents
18:56:29 <Vorpal> open source and patents are not opposites though
18:57:11 <itidus20> but then what is the benefit of reading an open source which is patented
18:57:22 -!- invariable has joined.
18:57:48 <Vorpal> itidus20, indeed. I'm opposed to patents and I like open source. But it is perfectly possible for someone to oppose patents and oppose open source
18:57:57 <Vorpal> or oppose patents and not care about open source
18:58:02 <itidus20> ah
18:58:27 <MDude> I wouldn't mind patents if they were shorter.
18:58:49 <itidus20> humm
18:59:05 <itidus20> I am slowly realizing that my opinion about them is of no value.
18:59:06 -!- variable has quit (Ping timeout: 258 seconds).
18:59:35 <Taneb> I think I have written a MIBBLLII CAT
18:59:36 <itidus20> that my opinion is self-interested from a specific position in relation to larger economic entities than myself
19:00:51 <itidus20> basically it seems highly likely in this world of no free lunches that something dear would have to be sacrificed to eliminate software patents
19:00:57 <Vorpal> Taneb, never heard of that language before
19:01:07 <Taneb> Because I created it earlier today
19:01:32 <Taneb> MIBBLLII stands for MIBBLLII Isn't Brainfuck But Looks Like It Is
19:01:36 <Sgeo> Phantom_Hoover,
19:01:39 <Vorpal> Taneb, is it on the wiki
19:01:40 <itidus20> It is economic thermodynamics.
19:01:44 <Sgeo> How are you not in the other channel
19:01:47 <Taneb> Vorpal: yes
19:01:50 <Vorpal> hm
19:02:33 <Taneb> Sgeo: which other channel? He's in #esoteric-minecraft
19:02:43 <itidus20> Just as we can never rid ourselves of germs
19:02:43 <Sgeo> The other other channel
19:02:49 <Taneb> Okay
19:02:59 <Taneb> I've only ever been on two channels on freenode
19:03:05 <itidus20> supposing we were to rid ourselves of harmful germs.. would then our good germs not take up the opportunity to turn bad
19:03:19 <itidus20> perhaps the nasty germs keep the good germs in check
19:04:35 <itidus20> Taneb: I admit some envy of MIBBLLII
19:04:43 <itidus20> i hope this is not taken as offence
19:04:52 <Phantom_Hoover> Taneb, he means #jesus
19:05:00 <Taneb> Oooh
19:05:03 <Taneb> That other channel
19:05:11 <Taneb> itidus20: define envy
19:05:20 <Taneb> You wish you did it first?
19:05:24 <itidus20> one moment...
19:05:45 <itidus20> it is a word from my language english, so I shall consult my dictionary
19:06:55 <itidus20> Without notion of malevolence: a Desire to equal another in achievement or excellence; emulation.
19:07:06 <Taneb> Okay, that's a compliment
19:07:33 <itidus20> eg. His aduancement shall ingender in noble men an honest enuie.
19:07:58 <itidus20> eg. Such as cleanliness and decency Prompt to a virtuous envy.
19:09:22 <itidus20> at least thats what I think I meant.
19:09:28 <itidus20> It is hard to be sure of these things.
19:14:06 <Sgeo> Just signed up for the Spotify waiting list
19:14:19 <Sgeo> Less than a minute later, I get an email saying my wait is over
19:14:44 <Taneb> Convinient
19:17:40 <Gregor> You people.
19:17:43 <Gregor> Youuuuuuuuuuuu people.
19:17:52 <coppro> Hey Gregor
19:17:55 <Taneb> Uuuuuuuuuuuuuuuuuuuuuuuuus people
19:17:56 <coppro> haven't seen you in a while
19:18:21 <Phantom_Hoover> OK there is a guy in #jesus who is a Wolfram employee and thinks Wolfram is a genius.
19:18:42 <Gregor> Hey pooppy.
19:19:14 <Gregor> Since #jesus is not the official channel of Jesus, shouldn't it be ##jesus?
19:23:16 <itidus20> attempting to apply my truth table notation from about a week ago to combinatrics I get: I x = 2bitTT(0,1) x = x; K x y = 4bitTT(0,0,1,1) x y = x; S f g x = ??? = f x(g x);
19:23:40 <itidus20> ya... i didn't try very hard.. >.<
19:23:47 <Taneb> Combinatorics and combinatory logic are different
19:24:39 <itidus20> My conception of the truth tables fully covers the I and K .. but S seems like it would screw my head a bit
19:25:14 <Taneb> You need a truth table that can take a truth table as input
19:25:24 <itidus20> and that is how i envisiioned them
19:25:34 <itidus20> i tried writing up a BNF of it
19:26:39 <itidus20> i think i deleted it in the end from the looks of it but te idea is simple enough
19:27:19 <itidus20> since a truth table will ultimately resolve to 0 or 1 once all free variables are filled in
19:27:48 <itidus20> (reading about combinatory logic as linked from miibbllii
19:28:37 <itidus20> but i don't think my idea really had the sufficient flexibility to support the S combinator
19:32:08 <itidus20> never mind you are right the are different
19:32:37 <zzo38> I think the Plan 9 Protocol should be assigned a USB device class number (possibly number 0x90).
19:33:33 -!- derrik has quit (Quit: bedtimezzz).
19:49:23 -!- oerjan has joined.
19:55:14 -!- pikhq has quit (Quit: New kernel.).
20:02:18 -!- pikhq has joined.
20:03:21 <oerjan> <elliott> help monqy what should i call this languag ehelp
20:03:26 <oerjan> ehelp it is, then
20:04:43 <oerjan> <elliott> evincar: jesus,
20:04:57 <oerjan> no, he would probably approve. his followers, on the other hand...
20:05:34 <oerjan> <evincar> Why not Xesus? Because Xs are cool (see the 90s).
20:05:51 <oerjan> in that case i think Xristos would be more traditional
20:09:23 -!- CakeProphet has quit (Ping timeout: 240 seconds).
20:10:46 <oerjan> <fizzie> Probably not, but that sort of thing is liable to escalate, and then you run out of different quote-like characters.
20:10:53 <oerjan> ' and " can be alternated
20:11:15 <oerjan> like in INTERCAL iirc
20:11:27 <NihilistDandy> Oh snap
20:11:31 -!- ais523 has joined.
20:11:55 <oerjan> 22:12 oerjan> <fizzie> Probably not, but that sort of thing is liable to escalate, and then you run out of different quote-like characters.
20:11:58 <oerjan> 22:12 oerjan> ' and " can be alternated
20:12:01 <oerjan> 22:12 oerjan> like in INTERCAL iirc
20:12:31 <oerjan> cannot keep the main INTERCAL maintainer out of the discussion, er monologue
20:12:34 <cheater_> <oerjan> 22:12 oerjan> <fizzie> Probably not, but that sort of thing is liable to escalate, and then you run out of different quote-like characters.
20:12:35 <cheater_> 22:12 oerjan> ' and " can be alternated
20:12:35 <cheater_> 22:12 oerjan> like in INTERCAL iirc
20:12:36 <ais523> actually, you typically don't even need to alternate in INTERCAL
20:12:41 <cheater_> is this copypaste day
20:12:52 <ais523> although, it makes things clearer, and it makes them less ambiguous in some cases involving array subscripts
20:12:57 <cheater_> do we want to make a reenactment of the last time we did it
20:13:33 <oerjan> cheater_: you almost managed to irritate me there
20:13:54 <cheater_> oerjan, i thought it was fun the last time we did that though
20:14:06 <cheater_> we ended up with something like 12-13 nicks in one message.
20:14:12 <oerjan> ok
20:14:26 <cheater_> i think that was in 2009.
20:20:40 <cheater_> sorry oerjan i didn't want to irritate you!!
20:21:22 <Gregor> <oerjan> But what irritates me the most is when people use multiple exclamation points!
20:21:23 <cheater_> in fact, i have just thought about this place, because someone in #postgresql was asking if CTE's are TC
20:21:47 <cheater_> interestingly enough they can be recursive
20:22:02 <cheater_> which is very cool, i don't even know how to imagine this sort of thing
20:22:17 <cheater_> how do you picture a recursive select statement??
20:23:06 <NihilistDandy> Stuffed mushrooms nom
20:23:28 <Gregor> Sounds like the perfect answer to me.
20:24:47 <cheater_> NihilistDandy, with cheese?
20:25:01 <NihilistDandy> Among other things, yes
20:25:03 <NihilistDandy> Homemade
20:25:11 <cheater_> onions?
20:26:13 <Gregor> Caramel?
20:26:31 <cheater_> lemon jelly?
20:26:41 <Gregor> Marmite?
20:26:48 <cheater_> mmm, marmite.
20:27:01 <cheater_> could have some now, but damn if i find any in stupid germany
20:27:02 <Gregor> Marmite: Now with 25% more earwax!
20:27:24 <cheater_> earwax: now with 50% more maggots!
20:27:39 <Gregor> I convinced a German colleague of mine to try Marmite while we were in Lancaster.
20:27:42 <Gregor> He was not amused :P
20:27:50 <cheater_> really?
20:27:56 <cheater_> did he take a goop
20:27:58 <cheater_> thinking it's nutella
20:28:02 <Gregor> No, he spread it thin.
20:28:20 <Gregor> But considering that Marmite tastes like a slow, miserable death, I can understand his feelings.
20:28:21 <cheater_> weak
20:28:35 <cheater_> marmite is amazing
20:28:47 <cheater_> it's the sweet, sweet sanguine of lonely decay
20:29:04 <ais523> oerjan: if you have two punctuation marks, say ' and ", you can use '" and "' as nesting brackets
20:29:08 <olsner> but what does marmite taste like?
20:29:10 <ais523> that's the way I normally program in Shove
20:29:18 <Gregor> olsner: It's yeast.
20:29:24 <Gregor> olsner: It tastes ... like yeast.
20:29:24 <cheater_> it tastes like nothing else
20:29:28 <cheater_> it doesn't taste like yeast!
20:29:43 <ais523> I'm not actually sure what yeast tastes like in the abstract
20:29:46 <Gregor> olsner: I'm told that it tastes similar to the solid gunk that collects in the bottom of a wheat beer.
20:29:52 <ais523> I know what bread tastes like, but am not sure which part of the taste is yeast-related
20:30:05 <cheater_> ais523, bread that hasn't been baked well enough tastes like yeast.
20:30:22 <olsner> oh, just yeast then, I can relate to that
20:30:28 <cheater_> wet. soggy bread CAN taste like yeast
20:30:58 <monqy> I should try marmite sometime but how
20:31:06 <cheater_> ais523, we were talking about pokemon chess yesterday
20:31:32 <olsner> http://upload.wikimedia.org/wikipedia/commons/e/e9/Compressed_fresh_yeast_-_1.jpg
20:31:40 <olsner> that's what I imagine marmite is now
20:31:43 <cheater_> what do you think of making a meta-game around chess which makes some pieces not attackable by other pieces depending on the meta-game happening?
20:31:44 <ais523> cheater_: was the conversation at all interesting?
20:31:53 <ais523> and I think it defeats the point of chess
20:31:56 <cheater_> yes it was very interesting
20:32:21 <cheater_> zzo38 also mentioned the possibility of having "elemental chess"
20:32:30 <cheater_> where pieces have elements/colors/whatever
20:32:46 -!- boily has quit (Ping timeout: 240 seconds).
20:33:20 <cheater_> ais523, marmite has the consistence of very sticky very dark brown honey
20:33:27 <zzo38> Each one corresponds to a different basic energy card in pokemon card
20:33:31 <ais523> I know its consistency, that's obvious from looking at it
20:33:49 <cheater_> it tastes like maybe salty toffee or something
20:33:51 <cheater_> i don't know
20:33:51 <ais523> zzo38: but the basic Pokémon card types don't follow a sensible elemental rock-paper-scissors table
20:33:54 <cheater_> it's salty.
20:33:57 <ais523> because each represents multiple console types
20:33:58 <cheater_> goes well with toast.
20:34:15 <ais523> so you have, say, some water-energy Pokémon weak to grass-energy Pokémon moves, and some weak to electric-energy Pokémon moves
20:34:19 <zzo38> ais523: Well yes, it is true. Different card have different weak/resist depending on things too
20:34:28 <zzo38> Yes that is true
20:34:37 <ais523> zzo38: the weak/resist mostly just reflects what the weaknesses and resistances are in the console game
20:35:19 <cheater_> we have also mentioned the option of playing a round of pokemon every time two chess pieces are in conflict
20:35:24 <cheater_> who wins keeps the square
20:35:31 <NihilistDandy> That is insane
20:35:35 <cheater_> why
20:35:43 <cheater_> or rather..
20:35:46 <cheater_> why would it NOT BE?
20:36:02 <zzo38> You could do that but combining it with rules about what cards are selected at random depending on the pieces and on other things too, such as the energy types, and so on
20:36:19 <cheater_> hmm yes
20:36:31 <cheater_> so a grass energy piece could only use grass energy cards
20:36:37 <cheater_> and you'd shuffle and pick out 3 grass energy cards
20:36:41 <cheater_> and same for the other piece
20:36:48 <cheater_> which would be e.g. water energy
20:36:50 <ais523> well, most moves allow off-color energy too
20:36:55 <cheater_> and then you play this way
20:37:09 -!- MigoMipo has quit (Ping timeout: 250 seconds).
20:37:10 <ais523> moves that represent Normal-type moves normally allow you to use any energy, others typically require 1 or 2 oncolor energy
20:37:27 <zzo38> Yes some attacks in the cards allow you to use any energy, or only partially the correct energy and others can be any one.
20:38:21 <cheater_> what about using the proximity of other pieces
20:38:28 <cheater_> say if your attacking piece is water energy
20:38:50 <cheater_> but you have a grass energy piece in proximity to the square being attacked
20:38:50 <zzo38> I suppose you could make something like that too.
20:38:56 <cheater_> then you also get a grass card
20:39:12 <zzo38> OK. Perhaps that can also be used.
20:39:37 <cheater_> that would be a totally different game!
20:40:41 <zzo38> You can also do things such as use different board sizes, or whatever; note that in shogi game you have 9x9 board and you can capture opponent's pieces later you can put them back on the board and use them as your own pieces.
20:41:12 <cheater_> why do you?
20:41:40 <ais523> unlike zzo38, I prefer the console game to the card game
20:41:43 -!- MigoMipo has joined.
20:46:53 <zzo38> That is OK, I suppose, different people can prefer different thing.
20:47:46 -!- GreaseMonkey has joined.
20:53:06 <cheater_> you two are like yin and yang.
20:55:29 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
20:57:03 <zzo38> Are you able to help more with this? I remember coppro was able to answer my questions to the best way. But, is anyone else? Any idea? https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language
20:57:20 -!- Phantom_Hoover has joined.
20:59:48 <zzo38> Please add stuff if you have, you can type it directly on the wiki although you probably need an account (it is not up to me that makes you require an account)
21:01:53 <oerjan> <Phantom_Hoover> It is not moving around in the same space I am
21:02:10 <oerjan> it is a multidimensional being, haven't you read H2G2?
21:02:41 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
21:06:15 <oerjan> <lament> hoogle is even worse than haskell
21:06:30 <oerjan> are we _sure_ someone hasn't hacked lament's account?
21:07:06 <olsner> did he said that in #esoteric or somewhere else?
21:07:12 <oerjan> here
21:07:53 <olsner> you can't draw any conclusions from what anyone says in here, I think :)
21:08:01 <zzo38> I am trying to design the project, something related to Haskell, and to TeXnicard, and Magic: the Gathering, and even Inform 7, and a few other things that nobody knows, and hopefully design the proper programming language for this purpose. And then make some things with it including Magic: the Gathering rules, and possibly even a roguelike game.
21:08:13 <zzo38> Would you know anything about this please?
21:09:46 <ais523> oerjan: a troll once came to Esolang using a name which was incredibly similar to "Lament"
21:10:12 <oerjan> ais523: lament is on account lament, though
21:11:56 <zzo38> Does pokemon card not have any IMPOSTOR BILL card or OPPONENT POTION card? Are you going to use this card if it is?
21:14:39 <oerjan> although not from the same IP as when making that comment, so there's no proof it was the real lament who said that i guess
21:15:50 -!- Phantom_Hoover has joined.
21:17:39 <zzo38> Play pokemon card with nearly random deck construction.
21:18:35 -!- elliott has joined.
21:19:13 <Taneb> That's odd
21:19:24 <NihilistDandy> wut
21:19:34 <Taneb> Python's shouting at me because it all of a sudden hates the word "def"
21:19:51 <Taneb> The third def into the program
21:20:11 <fizzie> The def that broke the camel's back.
21:20:15 <zzo38> You can allow any evolution card even if it does not match, as long as it is of the same energy type of the card it is played on, and must be the correct stage number, and not more than the maximum for any of the cards underneath. You can also evolve into the card that is labeled as doing so regardless of energy type.
21:20:46 <monqy> do snakes have backs
21:20:57 <Taneb> Snakes have nothing but
21:21:05 <fizzie> (Though I suppose that would be more appropriate for Perl.)
21:21:13 <monqy> perl has sub though doesn't it
21:21:52 <fizzie> Sure, keyword-substitute appropriately first.
21:21:57 <Taneb> Found the problem
21:22:08 <Taneb> I had missed an ] on the previous line
21:22:10 <monqy> indentation? oh
21:22:36 <zzo38> For example, you can evolve Seel into Misty's Starmie but no further. If you play Charmeleon on Ponyta there is no more evolve (because Ponyta only evolves once), but you can play Abra->Kadabra->Gengar because both cards allow evolution up to Stage 2 cards.
21:23:22 <zzo38> These would be the rules only when using nearly random deck construction, and should not apply in the normal game.
21:23:59 <elliott> 06:25:33: <coppro> I'm going to continue repeating this
21:23:59 <elliott> 06:25:41: <coppro> because there exists a branch of mathematics
21:23:59 <elliott> 06:25:47: <coppro> called type theory
21:23:59 <elliott> 06:25:52: <coppro> remarkably, it is the theory of types
21:23:59 <elliott> 06:26:02: <coppro> and you're pulling a Sgeo here
21:24:00 <elliott> 06:26:53: <evincar> What, by being practical? :P
21:24:09 <elliott> coppro: for once i am in complete agreement with you, also this hurts to read
21:24:25 <monqy> i agree with elliott
21:24:28 <Phantom_Hoover> This last night's logs.
21:24:35 <Phantom_Hoover> Also I agree with Sgeo.
21:24:37 <Sgeo> Reinventing stuff is a stereotype of me?
21:24:38 <zzo38> I have made a lot of thinking about type theory in the past but I have not know about actual mathematical type theory much.
21:24:49 <elliott> Sgeo:
21:24:49 <elliott> 06:28:24: <coppro> no, by saying "I wonder what happens if X?"
21:24:49 <elliott> 06:28:29: <coppro> and hearing "it's been done"
21:24:49 <elliott> 06:28:40: <coppro> and going "Maybe it involves Y?"
21:24:51 <elliott> 06:28:48: <coppro> and hearing "No, it doesn't."
21:24:53 <elliott> 06:28:53: <coppro> and going "If it had Y, you'd need Z"
21:24:55 <elliott> 06:29:02: <coppro> and hearing "Maybe, but it doesn't have Y."
21:25:27 <Sgeo> I honestly don't recall doing something like that. Example please?
21:25:51 <elliott> ask coppro im busy logreading
21:26:22 <zzo38> Is coppro on here today?
21:26:50 <zzo38> And what timezone is the messages you have repeated now?
21:28:04 <elliott> UTC
21:28:31 <zzo38> OK.
21:29:41 <NihilistDandy> zzo38: He is
21:30:17 <elliott> 11:52:38: <Taneb> How about "TIARA"
21:30:17 <elliott> 11:53:09: <Taneb> Which stands for "TIARA Is A Recursive Algorithm"
21:30:18 <elliott> 11:54:26: <Deewiant> I thought you'd say s/Algorithm/Acronym/
21:30:18 <elliott> 11:54:42: <Taneb> Yeah, that's what I meant
21:30:25 <elliott> EVEN _I_ INVENTED "TIARA"
21:30:56 <Taneb> Spoiler: I ended up calling it MIBBLLII
21:31:01 <elliott> 12:23:17: <PatashuWarg> 'This system was discovered'
21:31:02 <elliott> 12:23:22: <PatashuWarg> I'm pretty sure you can't discover maths guys
21:31:08 <elliott> "invent" is not really that much more appropriate...
21:31:35 <NihilistDandy> I invented topoi in associative assembly spaces
21:31:41 <Phantom_Hoover> AAAAAAAAAAAAa
21:31:43 <elliott> 12:29:20: <PatashuWarg> also, because its specification is tiny but working with it is hugely difficult, it's easy to write a compiler/interpreter for and it's still turing complete
21:31:43 <elliott> Working with BF is easier than in many esolangs
21:31:43 <Phantom_Hoover> THE MOUSE
21:31:44 <Phantom_Hoover> IS RIGHT
21:31:45 <elliott> Most, even
21:31:47 <Phantom_Hoover> IN FRONT OF ME
21:31:48 <Phantom_Hoover> ARGH
21:31:49 <Phantom_Hoover> AAAAAAAAAAAAAAaa
21:31:51 <elliott> Phantom_Hoover: what
21:31:51 <Phantom_Hoover> aAAAAAAAAAAAAAAAAAAAAAAAa7
21:31:52 <Phantom_Hoover> WHY
21:31:55 <Phantom_Hoover> IS THIS AIHESFAWEKFN
21:31:55 <elliott> is it
21:31:57 <elliott> a squeaky
21:31:57 <Phantom_Hoover> WHY
21:31:58 <elliott> mouse
21:31:58 <elliott> or
21:31:58 <elliott> a
21:31:59 <Phantom_Hoover> AM
21:31:59 <elliott> computer
21:32:00 <Phantom_Hoover> I
21:32:01 <elliott> mouse
21:32:03 <Phantom_Hoover> OUTSMARTED
21:32:04 <Phantom_Hoover> BY
21:32:05 <Phantom_Hoover> A
21:32:06 <Phantom_Hoover> MOUSE
21:32:10 <elliott> it
21:32:12 <elliott> it is the squeaky kind
21:32:12 <Taneb> Phantom_Hoover is being taunted by a mouse his cat brought in
21:32:13 <elliott> right
21:32:17 <Phantom_Hoover> IT HID
21:32:18 <elliott> because
21:32:19 <elliott> i suggest
21:32:19 <elliott> you
21:32:19 <Phantom_Hoover> IN THE CURTAINS
21:32:20 <elliott> adopt it
21:32:21 <Phantom_Hoover> IT WAS LIKE
21:32:24 <elliott> because
21:32:25 <elliott> there is
21:32:27 <Phantom_Hoover> A HORROR MOIE
21:32:28 <NihilistDandy> Phantom_Hoover: Marry it
21:32:28 <elliott> no other
21:32:29 <elliott> possible
21:32:32 <elliott> action
21:32:32 <elliott> relating
21:32:33 <Phantom_Hoover> *MOVIE
21:32:33 <elliott> to
21:32:34 <elliott> things
21:32:35 <elliott> that
21:32:37 <elliott> attack
21:32:39 <elliott> humans
21:32:39 <fizzie> A horror mouse.
21:32:41 <elliott> with
21:32:43 <elliott> cuteness
21:32:44 <Phantom_Hoover> I WAS LIKE
21:32:45 -!- Phantom_Hoover has left ("Leaving").
21:32:45 <elliott> ok
21:32:49 <elliott> why are we talking like this Phantom_Hoover
21:32:54 -!- Phantom_Hoover has joined.
21:32:57 <Phantom_Hoover> THE MOUSE DID THAT
21:33:06 <Phantom_Hoover> I WAS LIKE
21:33:11 <elliott> 13:20:06: <Lymee> https://gist.github.com/1136780
21:33:11 <elliott> 13:20:10: <Lymee> I had way too much time on my hands.
21:33:11 <elliott> 13:20:23: <Lymee> Guess how evil.py works.
21:33:15 <Phantom_Hoover> YOU'RE UNDER THE CURTAIN I HAVE YOU YOU LITTLE BASTARD
21:33:16 <elliott> Lymee: huh, I gave up on this
21:33:20 <elliott> Lymee: can I see evil.py?
21:33:23 <fizzie> Soon: /nick Phantom_Mouse.
21:33:24 <Phantom_Hoover> THEN I LOOKED
21:33:28 <Phantom_Hoover> AND IT WAS GONE
21:33:37 <NihilistDandy> elliott: http://i.imgur.com/mevGN.jpg
21:33:40 <itidus20> they're FAST
21:33:47 <Phantom_Hoover> elliott, I think she used C memory stuff.
21:33:54 <elliott> Phantom_Hoover: Yes, that's what I tried.
21:33:59 <fizzie> elliott: There's some possibly-related hackego ctypes fluff later in the log.
21:34:08 <elliott> https://gist.github.com/1136828
21:34:09 <elliott> heh
21:34:31 <elliott> 14:00:53: <CakeProphet> hmmm, so you could use unsafeCoerce to artificially change the phantom type of a GADT, right?
21:34:31 <elliott> 14:00:56: <CakeProphet> with no issues.
21:34:31 <elliott> Don't... don't do this.
21:34:41 <ais523> wow, Apple was the most valuable US company, for a short period of time, according to the stock market
21:34:41 <elliott> I don't think "no issues" is guaranteed at all.
21:34:45 <ais523> that... makes no sense at all
21:34:49 <elliott> Because it makes it totally inconsistent.
21:35:00 <elliott> ais523: Apple stock is really good
21:35:02 <Phantom_Hoover> oh god
21:35:04 <elliott> or so I gather
21:35:09 <Phantom_Hoover> i cant see the mouse any more
21:35:11 <ais523> elliott: it's good because people think it's good
21:35:20 <Phantom_Hoover> its behind me isnt it
21:35:25 <ais523> the stock market is about doing what everyone else will do, but a few days earlier
21:35:27 <oerjan> elliott: but, it's essentially the same kind of unsafeCoerce question you asked me yesterday :P
21:35:30 <elliott> ais523: right, I guess the iPod and iPhone have nothing to do with it :)
21:35:50 <elliott> oerjan: yes, but I made sure not to overstep the guarantees GHC offers
21:35:52 <ais523> they do have something to do with it, but even if Apple cornered the entire market, I imagine they still wouldn't be as profitable as, say, ExxonMobil, who they overtook
21:36:04 <elliott> oerjan: and it's _not_ the same, because I never tried to destruct a constructor with the wrong type???
21:36:05 <elliott> like
21:36:14 <fizzie> Our cat once dropped a still-mostly-alive mouse to my father's bed one morning while summer-vacatitioning. The nicest way to wake up?
21:36:17 <elliott> data Foo a where X :: a -> Foo A; Y :: a -> Foo B
21:36:22 <elliott> unsafeCoerce (X 9) :: Foo B
21:36:25 <elliott> how are you going to destruct that
21:36:31 <elliott> only by coercing it back
21:36:34 <elliott> which makes the whole thing pointless
21:36:44 <elliott> I think CakeProphet wants a type variable that doesn't appear on the RHS, i.e. a real phantom type
21:36:46 -!- augur has quit (Remote host closed the connection).
21:36:51 <oerjan> elliott: well the thing is phantom types without type classes should have absolutely _no_ effect on the runtime representation...
21:36:51 <elliott> in which case a GADT, and unsafeCoerce, are totally unnecessary
21:37:14 <elliott> oerjan: well it's only safe if you have like
21:37:24 <elliott> data Foo a where X :: forall b. a -> Foo b
21:37:27 -!- augur has joined.
21:37:28 <elliott> which avoids like one reconstruction??
21:37:37 <elliott> and if it's recursive then unsafeCoerce could save time
21:37:39 <elliott> but maybe...
21:37:42 <elliott> you don't...
21:37:43 <elliott> need...
21:37:46 <elliott> the type variable... if you do that...
21:38:24 <monqy> why does cakeprohpet want this
21:38:43 <elliott> 14:32:58: <Lymee> `run echo "#include <python2.6/Python.c> " > test.c
21:38:44 <elliott> 14:33:01: <HackEgo> No output.
21:38:44 <elliott> 14:33:15: <Lymee> `run echo "int main() {PyFunctionObject f;printf(\"%u\",((unsigned int)&(f.ob_item))-((unsigned int)&f));}" > test.c
21:38:45 <elliott> > vs. >>
21:38:46 <lambdabot> <no location info>: parse error on input `>>'
21:39:10 <elliott> 14:34:37: <Lymee> `gcc -o test test.c
21:39:10 <elliott> cough
21:40:13 <oerjan> <elliott> data Foo a where X :: forall b. a -> Foo b <-- um i don't think the two a's have anything to do with each other if you use that syntax
21:40:34 <elliott> oerjan: oh shut up, you know what i mean :D
21:40:41 <elliott> oh um
21:40:46 <elliott> data Foo a b where X :: forall b. a -> Foo a b
21:40:48 <elliott> YOU KNOW WHAT I MEAN
21:40:58 <oerjan> well i might be a little closer now
21:41:35 <elliott> basically unsafeCoerce to change a phantom type is useful _only_ if you have some kind of polymorphism on the phantom type
21:41:44 <elliott> otherwise you can't do anything with it without coercing it back
21:41:54 <elliott> and if you _do_ have polymorphism, it's always just an optimisation
21:42:02 <elliott> because you could just reconstruct the value instead
21:42:36 <NihilistDandy> Does it mean something when a channel starts with ##?
21:42:44 <elliott> 16:19:50: <CakeProphet> itidus20: yes, see OverloadedStrings in Haskell.
21:42:44 <elliott> 16:19:56: <CakeProphet> I have found several uses that the designer did not intend.
21:42:44 <elliott> 16:20:00: <CakeProphet> :)
21:42:44 <elliott> 16:20:17: <CakeProphet> ask elliott about it.
21:42:44 <elliott> stop getting on my bad side :|
21:42:46 <elliott> NihilistDandy: yes, "about"
21:42:50 <NihilistDandy> Ah
21:42:50 <ais523> NihilistDandy: it means that the channel wasn't officially approved by the people who own the name
21:42:55 <elliott> # channels are meant to have an official group registration blah
21:43:02 <NihilistDandy> I see
21:43:05 <elliott> and we'll get booted in to ##esoteric once the new system is up unless we can make a claim to the name
21:43:09 <ais523> e.g. #feather-lang (which I own) versus ##nomic (which Peter Suber doesn't own)
21:43:10 <elliott> which I think we can do, but it's not certain
21:43:15 <ais523> elliott: actually, I looked at their name claiming guide
21:43:22 <elliott> me too, but go on
21:43:22 <ais523> and I think either us or cpressey has the best claim to the name
21:43:26 <NihilistDandy> elliott: You have a wiki. I don't see why not
21:43:32 <elliott> NihilistDandy: we have the "Esolang" wiki
21:43:36 <NihilistDandy> blah
21:43:39 <elliott> ais523: cpressey has said that we have a claim to the name
21:43:45 <ais523> elliott: oh, in that case there's no issue
21:43:45 <elliott> ais523: in here, publicly
21:43:58 <elliott> so I'm sure he'd agree that we should have it
21:44:00 <tswett> Tulessa.
21:44:03 <ais523> I wouldn't have expected him to boot us out anyway
21:44:07 <ais523> or her, I suppose
21:44:12 <elliott> X-D
21:44:13 <ais523> I don't completely know cpressey's gender beyond doubt
21:44:26 <oerjan> tswett: Odessa.
21:44:26 <ais523> and you can't tell from the name
21:44:33 -!- pingveno_ has quit (Quit: leaving).
21:44:39 <elliott> oh, there's another catseye esolang out
21:44:41 <Phantom_Hoover> THE MOUSE IS BACK FOR CHRISTS SAKE
21:44:45 <ais523> I suppose of all the people in here, other than me, I'm most confident about Gregor's gender
21:44:48 <elliott> Phantom_Hoover: ADOPT IT
21:44:55 <ais523> although it's hard to be completely sure wrt anyone
21:44:55 <Phantom_Hoover> elliott, HOW
21:45:00 <oerjan> O_o
21:45:02 -!- pingveno has joined.
21:45:05 <ais523> elliott: what's it called?
21:45:08 <elliott> ais523: I'm sure I've affirmed my gender to you several times
21:45:10 <elliott> ais523: Xoomonk
21:45:18 <elliott> "Xoomonk is a programming language in which malingering updatable stores are first-class objects. Malingering updatable stores unify several language constructs, including procedure activations, named parameters, and object-like data structures.
21:45:18 <elliott> "
21:45:20 <Phantom_Hoover> elliott, YOU COULD BE LYING
21:45:21 <elliott> I guess it's not meant to be an esolang
21:45:22 <Phantom_Hoover> YOU COULD BE
21:45:23 <elliott> but it totally is
21:45:24 <Phantom_Hoover> A MOUSE
21:45:30 <elliott> Phantom_Hoover: Dammit how did you know.
21:45:40 <Phantom_Hoover> elliott, THE RABBITS TIPPED ME OFF
21:45:52 <Phantom_Hoover> YOU WOULD OF COURSE HAVE AN AFFECTION FOR YOUR FELLOW RODENTS
21:45:53 <ais523> elliott: that's a fun set of things to unify
21:46:18 <elliott> Phantom_Hoover: RAAAAAAAAGE
21:46:29 <elliott> (Anyone who doesn't know why I am raging is Not My Friend.)
21:47:02 * oerjan sulks in the corner
21:47:15 <elliott> oerjan: RABBITS ARE LAGOMORPHS
21:47:46 <oerjan> i thought that was a subsomething of rodents
21:47:48 <elliott> NO
21:47:53 <elliott> THEY ARE NOT RODENT
21:47:56 <elliott> RABBITS ARE NOT RODENTS
21:48:07 <elliott> "Though these mammals can resemble rodents (order Rodentia) and were classified as a superfamily in that order until the early twentieth century, they have since been considered a separate order. For a time it was common to consider the lagomorphs only distant relatives of the rodents, to whom they merely bore a superficial resemblance."
21:48:09 <elliott> NOT RODENTS
21:48:12 <elliott> LAGOMORPHS
21:48:30 <ais523> I find it hard to imagine rabbits as rodents at all
21:48:37 <ais523> they don't look much like mice or squirrels
21:49:35 <oerjan> pika pika
21:49:43 <elliott> pikachu is a lagomorph
21:50:12 <monqy> whats a pokemon hlep
21:50:18 <oerjan> ais523: see: capybara
21:51:15 <MDude> Lagomorph used to be considered a subset of rodent but now it isn't.
21:51:29 <oerjan> a hlep is a ravenous beast with a cleft palate
21:51:38 <MDude> I see.
21:52:01 <tswett> Is it just me, or is there only one decent course in Finnish in the world?
21:52:05 <MDude> And also that you already mentoined what I said.
21:52:08 <oerjan> aka harelip
21:52:12 <Phantom_Hoover> OH GOD I AM IN A DARK ROOM WITH THE MOUSE
21:52:22 <MDude> Is it on fire?
21:52:32 <MDude> Well I guess no, or the room woulnd't be dark.
21:52:35 <tswett> Oletko tulessa?
21:52:36 <MDude> Be right back, dinner.
21:52:46 <tswett> Wait, wait.
21:52:55 <tswett> Drat.
21:52:56 <NihilistDandy> elliott: Pikachu is a mouse
21:53:00 <Taneb> Okay, my MIBBLLII CAT program didn't work
21:53:09 <tswett> Oliko tulessa?
21:53:13 <elliott> NihilistDandy: No pikachu is a pikachu.
21:53:15 <tswett> The first time, I asked, "Are you on fire?"
21:53:40 <ais523> pikachu translates as "sparkle mouse" or something like that
21:53:49 <Taneb> Sparkle squeak
21:53:52 <Phantom_Hoover> Taneb, CAN IT CATCH THIS MOUSE
21:53:53 <NihilistDandy> elliott: http://bulbapedia.bulbagarden.net/wiki/Pikachu_(Pokémon)
21:54:01 <NihilistDandy> Species: Mouse Pokemon
21:54:03 <Taneb> I used to be such a Pokemon nerd
21:54:12 <elliott> NihilistDandy: DIE
21:54:17 <Taneb> Then Pokemon faded into Discworld
21:54:17 <ais523> Taneb: why did you stop?
21:54:23 <oerjan> <Phantom_Hoover> OH GOD I AM IN A DARK ROOM WITH THE MOUSE <-- are you sure there really _is_ a mouse and you're not just having hallucinations? you _do_ seem a little psychotic about this...
21:54:28 <zzo38> NihilistDandy: Yes it says that, but the "Species:" is not really relevant for any purpose.
21:54:28 <Taneb> And Discworld into IWC
21:54:36 <Taneb> And IWC into MSA
21:54:37 <elliott> oerjan: it is a cute panic
21:54:39 <Phantom_Hoover> oerjan, my family said the mouse was there BUT THEY MAY HAVE LIED
21:54:42 <Taneb> s/MSA/MSPA/
21:54:47 <elliott> oerjan: GET IT
21:54:50 <oerjan> O KAY
21:54:50 <NihilistDandy> zzo38: Except in distinguishing it from a lagomorph
21:54:51 <zzo38> (And in many cases neither is the weight/height, although it might be sometimes)
21:55:01 <itidus20> bulbapedia isn't necessarily canon on the question of rodent vs lagomorph
21:55:20 <itidus20> probably some 11yr old quickly wrote down mouse
21:55:30 <NihilistDandy> itidus20: That's what it says in the game
21:55:35 <Phantom_Hoover> Man, catching injured pigeons was way easier than this,
21:55:44 <NihilistDandy> Phantom_Hoover: Use a bat
21:55:46 <itidus20> the english game isn't necessarily canon >.>;
21:55:54 <itidus20> you can only be sure by the original japanese
21:56:00 <NihilistDandy> itidus20: That's not true in the least
21:56:23 <itidus20> translators can take liberties with things sometimes
21:56:44 <itidus20> i know how to solve this dilemma anyway
21:57:09 <Taneb> Pikachu is a ねずみポケモン
21:57:10 <zzo38> It doesn't matter. It says "mouse" so I think it is the actual data, but that doesn't mean that it means anything!
21:57:11 <oerjan> elliott: http://i.imgur.com/YkkBj.jpg
21:57:31 <Phantom_Hoover> Oh god
21:57:42 <Phantom_Hoover> I've lost the lid to my mouse capture device.
21:57:44 <elliott> oerjan: heh
21:57:52 <elliott> Phantom_Hoover: STOP IT ADOPT THE MOUSE AT ONCE
21:57:59 <ais523> itidus20: the anime isn't canon either, incidentally
21:58:09 <itidus20> darn
21:58:09 <Phantom_Hoover> elliott, HOW
21:58:14 <NihilistDandy> itidus20: 分類
21:58:14 <NihilistDandy> ねずみポケモン
21:58:37 <zzo38> The game, anime, everything, they do unconsistent things too.
21:58:38 <itidus20> I can only see unicode 0 due to my poor font choice but i will take your words for it now
21:58:40 <Phantom_Hoover> I NEED TO CATCH IT FIRST
21:58:55 <NihilistDandy> itidus20: It says, roughly, "Classification: Mouse Pokemon"
21:59:07 <elliott> Phantom_Hoover: NO
21:59:09 <elliott> JUST
21:59:10 <elliott> TELL IT
21:59:15 <NihilistDandy> This is a stupid conversation
21:59:18 <elliott> THAT THIS LAND IS YOUR LAND
21:59:20 <elliott> AND
21:59:22 <elliott> LIVE IN THAT ROOM
21:59:22 <itidus20> ok thanks
21:59:23 <elliott> TOGETHER
21:59:23 <zzo38> NihilistDandy: Yes, so it is the proper data. It is the actual data! However, it doesn't have any meaning.
21:59:39 <zzo38> Just because something is correct doesn't mean it is of any significance.
21:59:57 <monqy> how to lure mice into mouse traps
22:00:00 <elliott> MONNo
22:00:17 <monqy> mouse traps not mousetraps
22:00:28 <monqy> traps for mice, not those nasty hurty things
22:00:41 <itidus20> all your mouse are belong to us
22:00:42 <elliott> DONT TRAP THEM,,,,, THAT IS RUDE
22:00:46 <elliott> JUST
22:00:47 <elliott> BOX THEM
22:00:48 <elliott> or something
22:00:51 <elliott> that is a nicer word
22:00:51 <monqy> box is a trap
22:01:23 <monqy> box makes me think the sport and packaging
22:01:27 <monqy> is packaging a sport too
22:01:30 <elliott> no i haev played monkey island two and you just need a cheese and a wooden box and string
22:01:31 <elliott> and a stick
22:02:07 <oerjan> boxing a mouse is just plain mean
22:02:09 <elliott> oerjan: have you used the stnadard haskell hughespj prettyprinting library outside of using text in lambdabot...........
22:02:19 <oerjan> no.
22:03:17 <Phantom_Hoover> AAAAAAAAAAAa
22:03:18 <Phantom_Hoover> I HAD IT
22:03:22 <Phantom_Hoover> AND THEN I CHECKED FOR IT
22:03:25 <Phantom_Hoover> AND IT GOT AWAQA$HEFTA78
22:03:29 <Phantom_Hoover> awkyhgqaliukns\G2wf
22:03:32 <monqy> did your box have a hole in it
22:03:37 <Phantom_Hoover> No
22:03:43 <monqy> did you lift the box
22:03:46 <Phantom_Hoover> Yes
22:03:51 <elliott> be
22:03:52 <elliott> friends
22:03:52 <elliott> with
22:03:55 <elliott> the mouse
22:04:01 <Phantom_Hoover> NO
22:04:11 <monqy> flood room with
22:04:12 <monqy> friend
22:04:13 <monqy> fumes
22:04:30 <Taneb> Didn't you ever watch the fourth episode of the first series of Xialin Showdown?
22:04:33 <Taneb> The one with the mime?
22:04:36 <oerjan> friend mustard gas
22:04:42 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
22:04:47 <NihilistDandy> Taneb: Yes
22:05:11 <Taneb> THEN YOU KNOW WHAT Phantom_Hoover MUST DO
22:05:20 <Taneb> Hey, this client has tab completion
22:05:23 <NihilistDandy> I DO
22:05:25 <elliott> oops we did it,
22:05:29 <elliott> ais523 ragepatted
22:05:32 <NihilistDandy> Taneb: Welcome to the fucking future of 15 years ago
22:05:37 <elliott> mice: worse than jesus
22:06:10 <NihilistDandy> To #esoteric-mice?
22:06:30 <monqy> new channel for every topic
22:06:32 <monqy> every
22:06:33 <monqy> topic
22:07:10 <Phantom_Hoover> Cat brought another mouse but it's already dead
22:07:16 <Phantom_Hoover> i will show it to the mouse
22:07:22 <Phantom_Hoover> to lower its moral
22:07:23 <Phantom_Hoover> e
22:07:26 <monqy> and then they will be freinds
22:07:32 <monqy> ??
22:07:56 <elliott> pikhq: help i told the tup people their code is invalidaed but theyre just ingore///
22:08:02 <Phantom_Hoover> monqy, no
22:08:10 <Phantom_Hoover> then the mouse will renouce mousekined
22:08:16 <Phantom_Hoover> and be my friend
22:08:36 <elliott> Phantom_Hoover: MOUSEKIND ARE NICE.
22:08:51 <elliott> I HATE PHANTOM HOOVER HE IS A TERRIBLE HORRIBLE EVIL BAD
22:09:10 <oerjan> <Gregor> We are the Bork. Resistance is futile.
22:09:20 <oerjan> `swedish Resistance is futile.
22:09:22 <HackEgo> No output.
22:09:28 <oerjan> wat
22:09:32 <oerjan> oh
22:09:35 <oerjan> !swedish Resistance is futile.
22:09:36 <EgoBot> Reseestunce-a is footeele-a. Bork Bork Bork!
22:10:25 <olsner> that's not swedish :(
22:10:57 <Phantom_Hoover> olsner, how would you know.
22:11:01 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:11:52 <oerjan> Haren är lagom orf
22:12:26 <olsner> Phantom_Hoover: my knowledge in swedish matters is extensive
22:12:42 <monqy> olsner invented swedish
22:12:46 <elliott> <elliott> oerjan: have you used the stnadard haskell hughespj prettyprinting library outside of using text in lambdabot...........
22:12:48 <elliott> oh you said no
22:12:50 <elliott> damminit,
22:13:01 <monqy> is it a good library
22:13:14 <oerjan> elliott: Unnecessary loquaciousness is contraindicated.
22:14:03 -!- GreaseMonkey has quit (Quit: The Other Game).
22:14:12 <elliott> monqy: is it a library if it is part of the stdlib,,
22:14:17 <elliott> well it's in a different hackage package but
22:14:19 <elliott> (to base)
22:14:37 <elliott> it's in the haskell account on github and bugtracked as part of ghc.....
22:15:06 <monqy> but is it
22:15:07 <monqy> good
22:15:47 <olsner> of course it is, it's been passed down the ages from the ancient masters of haskell
22:15:50 <elliott> i dont know, if it can do what i want, then yes
22:16:17 <elliott> basically i want
22:16:19 <elliott> test =
22:16:19 <elliott> (text "data" <+> text "FunTimes") <+>
22:16:19 <elliott> ((equals <+> text "Foo") $$ (char '|' <+> text "Bar"))
22:16:21 <elliott> but if it gets too long
22:16:23 <oerjan> the ancient haskell monks of the hindu kush
22:16:24 <elliott> then i want it to do the same as
22:16:24 <olsner> (though it doesn't seem to actually be used a lot, so maybe it's ungood in some ways)
22:16:36 <elliott> test =
22:16:36 <elliott> (text "data" <+> text "FunTimes") $$ nest 2
22:16:37 <elliott> ((equals <+> text "Foo") $$ (char '|' <+> text "Bar"))
22:16:37 <elliott> but i dont
22:16:40 <elliott> know how to make that happen
22:17:05 <elliott> the latter looks like
22:17:06 <elliott> *Main> test
22:17:07 <elliott> data FunTimes
22:17:07 <elliott> = Foo
22:17:07 <elliott> | Bar
22:17:09 <elliott> the former looks like
22:17:15 <elliott> data FunTimes = Foo
22:17:15 <elliott> | Bar
22:17:27 <elliott> and the thing with $$ is
22:17:30 <elliott> if the argument to nest was high enough
22:17:32 <elliott> so that
22:17:40 <elliott> it would be further to the right than the s in FunTimes
22:17:44 <elliott> it would omit the linebreak
22:17:46 <elliott> which would be good
22:17:49 <elliott> but the problem is that
22:17:49 <elliott> then
22:17:51 <elliott> when it breaks the line
22:17:54 <elliott> it indents like 9 spaces.....
22:17:58 <elliott> rather than just two...
22:21:19 <oerjan> > text "data" <+> text "FunTimes"
22:21:20 <lambdabot> Ambiguous occurrence `<+>'
22:21:21 <lambdabot> It could refer to either `Control.Arrow.<+>', i...
22:21:53 <oerjan> i thought i saw someone say once that they had worked on removing ambiguities in lambdabot...
22:22:11 <oerjan> they might wish to improve their methods.
22:22:25 <monqy> is anything an instance of arrowplus
22:22:47 <oerjan> :t (Control.Arrow.<+>)
22:22:48 <lambdabot> forall (a :: * -> * -> *) b c. (ArrowPlus a) => a b c -> a b c -> a b c
22:23:17 <elliott> > text "data" Text.PrettyPrint.HughesPJ.<+> text "FunTimes"
22:23:19 <lambdabot> data FunTimes
22:23:21 <oerjan> there's probably a MonadPlus m => ArrowPlus (Kleisli m) instance
22:23:25 <monqy> yeah
22:23:32 <elliott> it's "beside, with a space"
22:23:38 <sllide> i want a interpreter that executes CLI HLT when you make a error in your code
22:23:44 <sllide> lol
22:23:46 <monqy> the one thing I like about arrowplus is how it's broken up into arrowzero and arrowplus
22:26:17 <olsner> sllide: except you can't change the interrupt flag or halt in user mode
22:27:15 <elliott> maybe sllide uses dos
22:30:27 <Phantom_Hoover> mouse just wnet under sthe stofa aaaaaarrgghhh
22:30:35 <monqy> its new home
22:30:45 <monqy> friendship home
22:30:57 <Phantom_Hoover> maybe
22:31:01 <Phantom_Hoover> i can give it cheese?
22:31:08 <monqy> friendship cheese
22:32:12 <elliott> yes
22:32:36 <Phantom_Hoover> i don't have any
22:32:43 <Phantom_Hoover> wait
22:32:48 <Phantom_Hoover> i have beetter idea
22:32:52 <Phantom_Hoover> i will but the cheese
22:33:02 <Phantom_Hoover> in front of the sova
22:33:04 <Phantom_Hoover> and when the mouse
22:33:08 <Phantom_Hoover> goes to get it
22:33:12 <Phantom_Hoover> i catch it
22:33:50 <monqy> drug cheese with friendship, mouse eats cheese, best friends forever
22:34:16 <elliott> monqy: thatsm diehosnt :(
22:35:54 <monqy> drug cheese with honesty
22:35:56 <oerjan> ^unscramble diehosnt
22:35:56 <fungot> dtinesho
22:36:25 <Phantom_Hoover> wha
22:36:28 <Phantom_Hoover> ti
22:36:34 <Phantom_Hoover> had it pinned down under the tabl
22:36:35 <Phantom_Hoover> e
22:36:38 <Phantom_Hoover> i made sure
22:36:42 <Phantom_Hoover> that i could see it at all times
22:36:44 <Phantom_Hoover> and yey
22:36:49 <Phantom_Hoover> it excaped
22:36:51 <Phantom_Hoover> how
22:36:55 <Phantom_Hoover> ok
22:36:56 <Phantom_Hoover> i ha e
22:36:58 <Phantom_Hoover> best plan
22:37:02 <Phantom_Hoover> i will wait
22:37:03 <Phantom_Hoover> catlike
22:37:06 <Phantom_Hoover> on my chair
22:37:09 <Phantom_Hoover> and when it moves
22:37:15 <oerjan> at least you are making a great scientific confirmation of the theory that phantoms cannot catch mice
22:37:17 <Phantom_Hoover> fling myself towards it and get the mouse box
22:37:27 <Phantom_Hoover> oerjan, JUST YOPU WAIT
22:37:38 <Phantom_Hoover> brb stakeouting
22:37:55 <oerjan> why do i have this feeling that atrocious spelling is spreading in the channel
22:38:12 <elliott> oerjan: REAL DISTRESS IS BEGINNINGEGING,
22:38:14 <elliott> LIFE IS NOW SERIOUS
22:38:25 <elliott> IT IS A COMING OF AGE STROYROY
22:38:35 <oerjan> the age of aquarius
22:38:54 <elliott> http://esolangs.org/wiki/R
22:38:58 <elliott> this is fucking stupid and i want to kill it
22:39:04 <oerjan> by next june, everyone will be completely incomprehensible
22:39:13 <Phantom_Hoover> oerjan, its the mose
22:39:14 <elliott> we need cpressey
22:39:17 <elliott> to write an article on the real R
22:39:19 <elliott> so that we can move this
22:39:20 <elliott> to
22:39:22 <elliott> R (shit)
22:41:28 <monqy> category:shameful
22:42:29 <elliott> no we cannot ater it down
22:42:34 <elliott> someone type five two three
22:42:40 <monqy> five two three
22:43:39 <monqy> when will he returne.....
22:43:47 <elliott> no
22:43:47 <elliott> as
22:43:48 <elliott> numbers
22:43:50 <elliott> fucker :(
22:43:53 <monqy> ;_+:
22:44:02 <Phantom_Hoover> ij
22:44:04 <Phantom_Hoover> ok
22:44:11 <Phantom_Hoover> i think
22:44:16 <Phantom_Hoover> i will grow old
22:44:17 <monqy> 5 2 3
22:44:17 <Phantom_Hoover> and die
22:44:19 <Phantom_Hoover> and the mouse
22:44:27 <Phantom_Hoover> will nibble on my grave
22:44:37 <monqy> friendship grave
22:45:03 <elliott> awwwwwwwwww friendship argargeve
22:45:19 -!- ais523 has joined.
22:45:33 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:45:54 <elliott> so that R lang
22:46:16 <ais523> oh, I saw that being posted to the wiki
22:46:19 <ais523> I haven't looked at it yet, though
22:46:23 <elliott> ais523: don't
22:46:25 <ais523> oh right, I have
22:46:30 <ais523> I just forgot about it in self-defence
22:46:30 <elliott> try to not remember
22:46:42 <elliott> the worst thing is, there could be a good article at [[R]]
22:46:44 <ais523> I remember that it has lots of links to things that shouldn't be on the wiki
22:46:45 <elliott> one written by cpressey :(
22:46:50 <Phantom_Hoover> ais523, did the mouse make you ragequit.
22:46:56 <elliott> on the premier IRC-bot language R :-P
22:47:10 <ais523> what about the statistics lang? or is that insufficiently eso?
22:47:20 <elliott> ais523: it's an IRC-bot language, not a statistics language
22:47:29 <ais523> well, there's a non-eso lang called R too
22:47:38 <elliott> ais523: https://bitbucket.org/catseye/rtype/overview
22:47:45 <elliott> IRC bot language, not statistics.
22:47:51 <elliott> (https://bitbucket.org/catseye/rtype/src/0ebaf62da919/bot.R)
22:48:13 <ais523> http://en.wikipedia.org/wiki/R_%28programming_language%29
22:48:20 <ais523> wow, I didn't realise GNU was responsible for itg
22:48:21 <ais523> *it
22:48:25 <elliott> ais523: yes, it's an IRC bot language
22:48:33 <elliott> https://bitbucket.org/catseye/rtype/raw/0ebaf62da919/bot.R if you hate HTML too much to open a page with it
22:48:46 <ais523> oh, you mean that cpressey wrote a bot in it?
22:48:54 <elliott> YES WHICH IS OBVIOUSLY ITS INTENDED USE
22:48:58 <ais523> I thought you were implying he'd invented a language for writing bots which had the same name
22:49:11 <elliott> xform <- gsub('^:(.*?)\\!(.*?)\\s+PRIVMSG\\s+(.*?)\\s+\\:(.*?)$', '\\1\u2603\\2\u2603\\3\u2603\\4', line, perl=TRUE)
22:49:11 <elliott> if (length(xform) == 0) { next }
22:49:11 <elliott> if (xform != line) {
22:49:11 <elliott> parts <- strsplit(xform, '\u2603', fixed=TRUE)
22:49:13 <elliott> that's the amazing part
22:49:28 <elliott> (it uses three ☃s to separate the fields because R is terrible at string handling)
22:49:55 <ais523> snowman-separated data?
22:50:01 <elliott> it's the standard
22:50:08 <elliott> SSV
22:50:17 <ais523> doesn't that break if there are snowmans in the original
22:50:21 <ais523> or can you escape them somehow?
22:50:38 <elliott> of course it breaks, you just have to avoid using three snowmans in your line and it should be OK
22:50:41 <elliott> "Note that despite our extensive work to improve the functioning of the Java applet, there are known issues with it on Ubuntu 10. If you encounter these, try upgrading to Ubuntu 11, or try using your mom's computer."
22:50:46 <elliott> chris.....i dont like ubuntu eleven....
22:50:51 <elliott> stop discriminating :(
22:51:11 <monqy> what abunto alevem
22:51:20 <monqy> jelp
22:51:25 * elliott reads cpressey talk about intricacies of commodore sixty-four emulation
22:52:06 <elliott> ais523: hmm, two months until the next Ubuntu release, right?
22:52:28 <ais523> probably
22:52:35 <elliott> I've forgotten the schedule
22:52:40 <ais523> I'm relatively confident that they'll get their DE fixed eventually
22:52:42 <Taneb> The 10/10 was just for 2010
22:52:44 <ais523> and it's .04 and .10
22:52:49 <Taneb> It'll be on the 21st, I think
22:52:56 <elliott> Taneb: Not two months exactly
22:53:09 <elliott> ais523: OK, then I'd better jump ship sooner or later...
22:53:15 <elliott> this version is bound to bitrot eventually, after all
22:53:31 <ais523> I'm on the LTS version
22:53:37 <monqy> what's this new DE
22:53:42 <elliott> monqy: bad
22:53:46 <monqy> how bad
22:53:47 <monqy> bad how
22:53:48 <ais523> once support's about to end, I'll upgrade to the current Ubuntu if it's usable, or probably Debian if it isn't
22:53:52 <elliott> ais523: is 10.10 LTS?
22:54:02 <elliott> supported until a few months before the end of the world, it seems
22:54:04 <Taneb> 10.04
22:54:08 <ais523> I think every 4th is an LTS
22:54:10 <elliott> oh, right
22:54:11 <ais523> so 8.04 to 10.04
22:54:23 <olsner> isn't it every third?
22:54:30 <Taneb> Nope
22:54:34 <elliott> I'm just wary of Debian because I'm sceptical of how well it'll work on this hardware OOTB
22:54:40 <elliott> It might need a lot of hacking even to boot
22:54:50 <ais523> is it really weird hardware?
22:54:57 <elliott> ais523: it's Apple, so yes
22:55:04 <elliott> and a relatively recent Apple model at that
22:55:20 <monqy> is hte keybaord still broken
22:55:22 <elliott> recent enough that Ubuntu 10.04 wouldn't even be able to connect to the internet with it, I think
22:55:30 <elliott> well, without the separate, money-costing Ethernet adaptor
22:55:33 <elliott> monqy: yes I'm going to fix that
22:55:40 <elliott> just need to back up and start the lion installer
22:55:42 <elliott> and then send it off
22:56:01 <monqy> what wikll you do whale it's off
22:56:09 <elliott> use my old laptop
22:56:16 <elliott> (which runs Debian, FWIW)
22:56:26 <ais523> elliott: the one that's almost the same as mine but an inch larger?
22:56:34 <monqy> does the new ubuntu de have a name i want to see how bad it is
22:56:36 <Taneb> I wonder what the folks at Canonical will call 15.10
22:56:38 <elliott> ais523: two inches
22:56:41 <ais523> monqy: Unity
22:56:46 <elliott> monqy: no dnont
22:57:13 <ais523> elliott: presumably he means looking at screenshots/videos
22:57:15 <Taneb> I like Unity
22:57:15 <ais523> rather than actually using it
22:57:18 <elliott> I couldn't even use the latest Ubuntu with GNOME, because they'd made the mouse pointer move differently in some subtle way that made me utterly inaccurate
22:57:25 <elliott> Taneb: you're a bad person who thinks bad things and has bad opinions :(
22:57:30 <monqy> right. i don't want to use unity. i hate deskop environments.
22:57:30 <elliott> and im crying
22:57:37 <elliott> ...anyway,
22:57:47 <elliott> I was thinking I could just reverse all the changes made to the mouse handling if I could find out what they were
22:57:53 <monqy> unity and its range of technologies brings simplicity, power, and integration to both users and application developers. unity puts design, integration, and Free Software at the heart of delivering a powerful and attractive experience.
22:57:58 <elliott> but then I realised that downgrading would leave me with basically the same system
22:58:01 <elliott> and relieve me of my anger
22:58:04 <ais523> I don't think it's unsalvageable, but I'm not confident it'll be salvaged in a plausible amount of time
22:58:11 <elliott> monqy: technically Unity isn't a DE, just a shell for GNOME
22:58:19 <Phantom_Hoover> nooo
22:58:23 <Phantom_Hoover> i have to go to bed
22:58:29 <monqy> mouse bed
22:58:30 <monqy> friendship bed
22:58:37 <Taneb> It's tomorrow now
22:58:39 <Phantom_Hoover> no
22:58:41 <NihilistDandy> Grass Starter Special

Bulbasaur-
1/2 shot lime vodka
1/4 shot lime juice
1/4 shot melon liqueur 

Ivysaur-
1 shot lime vodka
1 shot lime juice
1 shot melon liqueur
1 shot sprite

Venusaur-
1 Bulbasaur
1 Ivysaur
1 shot lime vodka
1 shot lime juice
1 shot sprite
22:58:42 <elliott> ais523: oh yeah, and the GNOME packages will presumably become GNOME 3 soon enough, now that they're being relegated to not being on the disc
22:58:45 <Phantom_Hoover> the mouse will have to wait
22:58:48 <NihilistDandy> Fucking shitty formatting
22:58:52 <Phantom_Hoover> goodbye
22:59:00 -!- Phantom_Hoover has quit (Quit: Leaving).
22:59:22 <elliott> I guess I'll probably just switch to Debian and maybe Xfce or possibly xmonad
22:59:31 <elliott> monqy: what window manager do you ouse, help
22:59:32 <monqy> i use xmonad
22:59:36 <elliott> oh
22:59:47 <ais523> elliott: xmonad plays badly with gnome-nm-applet
22:59:55 <ais523> and pulseaudio, for that matter
23:00:04 <elliott> ais523: I'm sure plenty of people use it with NetworkManager, it just won't work OOTB
23:00:07 <elliott> and how recent is that info?
23:00:23 <elliott> but, I don't like NetworkManager or PulseAudio, so I don't care much
23:00:42 <elliott> googling brings up http://ubuntuforums.org/showthread.php?t=843341 wrt networkmanager
23:00:48 <elliott> I don't see how xmonad could mess up pulseaudio
23:01:06 <elliott> ais523: but, umm, do you have a more specific bit of info than "plays badly"?
23:01:07 <zzo38> This is one such recording of playing pokemon card: http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/record.1
23:01:13 <ais523> elliott: it's what happened last time
23:01:22 <elliott> ais523: what happened
23:01:23 <ais523> elliott: pulseaudio just doesn't load when I load xmonad
23:01:27 <ais523> presumably I'd hve to start it by hand
23:01:33 <elliott> ais523: that... is not xmonad's fault?
23:01:35 <elliott> that's your distro's fault
23:01:37 <ais523> indeed
23:01:40 <elliott> for not supplying start scripts with it
23:01:43 <ais523> it isn't xmonad's fault at all, but it's still annoying
23:01:57 <elliott> well, it seems disingenuous to respond to someone mentioning xmonad by blaming a distro issue on it
23:02:05 <elliott> is the "problem" with nm-apple the same?
23:02:19 <ais523> elliott: it's more that there's nowhere on the screen to put it
23:02:21 <ais523> it's a really tiny icon
23:02:26 <ais523> and xmonad gives it about half the screen
23:02:26 <elliott> ais523: of course there is, if you run a tray program
23:02:36 <elliott> well, xmonad isn't really convention over configuration...
23:02:39 <ais523> even tray programs don't work well with xmonad
23:02:46 <ais523> because they can't be placed easily either
23:02:47 <elliott> sure they do, most people use it with one
23:02:55 <ais523> I've tried starting gnome-panel, xmonad still gives it half the screen
23:02:55 <coppro> yeah they work fine
23:03:15 <coppro> might require some xmonad.hs twiddling
23:03:21 <coppro> but trayer is minimalistic and works out of the box
23:03:56 <elliott> ais523: http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#Make_space_for_a_panel_dock_or_tray
23:04:12 <ais523> thanks
23:04:25 <ais523> I suppose I'm just annoyed at having to configure a DE
23:04:33 <elliott> xmonad isn't a DE, is it?
23:04:46 <elliott> it certainly doesn't claim to be one on its config page
23:05:00 <ais523> well, it's not even a DE, and yet I still have to configure it!
23:05:00 <elliott> ais523: I think the xmonad-contrib package has various "DWIM" configurations you can use in the xmonad config file
23:05:13 <elliott> but I suspect most people don't use them
23:06:03 * elliott wonders if Yi is developed any more
23:07:06 <elliott> seems not
23:07:09 <monqy> :(
23:07:14 -!- elliott has left ("Leaving").
23:07:17 -!- elliott has joined.
23:07:22 <elliott> I should rewrite leaden sometime :-P
23:07:32 <monqy> what's leaden
23:07:32 <elliott> no elliott, shut up, you're working on elliottcraft
23:07:38 <elliott> monqy: a neditor
23:07:51 <monqy> neditor what help
23:08:01 <monqy> crey
23:08:01 -!- elliott has left ("Leaving").
23:08:06 -!- elliott has joined.
23:08:10 <elliott> t oedit files
23:08:15 <elliott> why do i keep parting
23:08:16 <monqy> disappointmnet/part
23:08:18 <elliott> i'm not very smart :/
23:08:33 <monqy> is it a good editor
23:08:48 <elliott> i don't know, i liked it?? in theory
23:09:48 <monqy> i always forget why i don't use yi then i try it again then i remember then i forget
23:10:22 <elliott> i never really liked yi.... it is not polished.... at all....
23:10:31 <monqy> that may be it
23:11:04 <elliott> ais523: aha
23:11:07 <elliott> ais523: delete [[R]]
23:11:12 <elliott> ais523: copyvio
23:11:16 <ais523> from where?
23:11:18 <ais523> Wikipedia?
23:11:21 <elliott> http://www.illogicopedia.org/wiki/R_(programming_language)
23:11:28 <elliott> Content is available under Attribution-Noncommercial-Share Alike 2.5 .
23:11:28 <ais523> that would explain the broken links
23:11:38 <ais523> same author?
23:11:46 <elliott> ais523: different nick
23:11:53 <elliott> and that same nick on illogicopedia is used on wikipedia by the same person
23:11:57 <elliott> (or so they claim on their illogicopedia user page)
23:12:09 <elliott> so the burden of proof is on them to say they're the same person using another nickname, which I doubt
23:12:11 <ais523> ah, OK
23:12:26 <monqy> i just use vim but sometimes i feel i should learn emacs and decide if i like it more but then i either get scared or never bother :'(
23:12:30 <elliott> yay now we can tell them off sternly........ and pretend it is for copyvio....... (but it is for liking a terrible language....)
23:13:19 <elliott> http://uncyclopedia.wikia.com/wiki/User:Nerd42
23:13:34 <elliott> the person behind R left uncyclopedia because sex isn't funny and they need content warnings and also Ribaldry Cycle???
23:13:37 <elliott> what is this
23:13:44 <ais523> deleted, warned
23:15:50 -!- Taneb has quit (Read error: Connection reset by peer).
23:16:18 -!- Taneb has joined.
23:16:37 <ais523> thanks for catching that elliott
23:18:03 <elliott> I wish I knew more about OpenGL internals so I could structure this change with more confidence
23:18:11 <sllide> damn usermode :C
23:18:29 <monqy> i'm afraid of opengl intenrals
23:18:47 <elliott> me too
23:18:50 <oerjan> infernal opengl
23:19:03 <monqy> and what change is this
23:19:23 <oerjan> This. Changes. Everything!
23:20:25 <itidus20> so what did the R page actually say?
23:20:31 <monqy> bad things
23:20:33 <elliott> you don't want to know
23:21:31 <itidus20> ok. fair enough.
23:26:19 -!- sllide has quit (Quit: Leaving).
23:36:51 -!- Taneb has quit (Read error: Connection reset by peer).
23:37:02 -!- copumpkin has joined.
23:46:13 -!- FireFly has quit (Quit: swatted to death).
2011-08-11
00:04:00 <zzo38> Is coppro even on yet? It seem, that coppro is the only one who even understands what things I am trying to have help with, this programming stuff, etc
00:04:17 <coppro> I am always around
00:05:14 <oerjan> coppro is secretly a brain in a jar. actually _two_ brains in a jar, alternating on sleeping.
00:05:21 <zzo38> OK. I was wondering about stuff such as timezone and so on
00:05:32 <zzo38> But now I checked so that is OK.
00:05:35 <oerjan> or possibly just one dolphin brain
00:06:51 <zzo38> coppro: It is this: https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language I have fixed some things and added more examples, in case that will help you to understand better what kind of things I mean. If you want more, ask more. Because, now is not too late in my timezone, last time it was late and I would sleep
00:07:49 -!- azaq231 has joined.
00:08:33 -!- azaq23 has quit (Ping timeout: 240 seconds).
00:10:00 <elliott> oerjan: why do we need to sleep why cant we just have two brains
00:11:07 <zzo38> elliott: Try.
00:11:22 <elliott> ok
00:11:24 <elliott> how
00:11:28 <zzo38> I don't know.
00:11:31 <oerjan> because we are stupid apes and not supreme dolphins
00:11:44 <oerjan> but we can kill the dolphins if you think that helps.
00:12:28 <zzo38> I doubt that would help.
00:12:33 <oerjan> also, sleep is how we get our orders from outside the matrix
00:12:51 <zzo38> I also doubt *that* would help.
00:14:22 <zzo38> coppro: Do you understand anything more about this now? Also tell me if someone else knows better
00:14:37 <coppro> zzo38: I apologize, I am busy writing a scholarship application
00:14:42 <coppro> zzo38: I will try to read at some point though
00:15:12 <zzo38> coppro: OK. Sorry, I didn't know that, but now I know. Thank you for telling me.
00:16:14 <zzo38> How long will scholarship application take?
00:22:12 <coppro> zzo38: I'm not sure
00:22:36 <elliott> oerjan: help which spam language name do i need to do first
00:23:14 <oerjan> hormel++
00:24:01 <elliott> oerjan: help no it has to be one i said i would help
00:26:05 <oerjan> i don't recall which ones you said
00:26:56 <monqy> somehow hormel++ reminded me of http://alefpp.sourceforge.net/
00:27:16 <oerjan> looking at the deletion log, there's one pointing itself out: http://esolangs.org/w/index.php?title=Incredibly_fascinating_evaluation_of_shopping_cart_software_package_prepared_by_well-known_soccer_professional_or_a_person_known_as_exact_same_as_that_soccer_player
00:27:33 <elliott> ah yes
00:27:39 <elliott> im not sure what that one will be though
00:27:43 <elliott> it is...
00:27:45 <elliott> hard to live up to
00:27:46 <monqy> which was it that elliott moved into userspace
00:28:00 <monqy> im forget
00:28:13 <monqy> then it was brutally delted
00:28:22 <elliott> i dont, remmber
00:28:35 <elliott> http://esolangs.org/w/index.php?title=Special%3ALog&type=delete&user=&page=
00:28:40 <elliott> looks like, none,
00:29:19 <ais523> elliott: you took a local copy of it
00:29:22 <ais523> or at least, I told you to
00:29:23 <monqy> User:Ehird/1st year sobriety and no dating
00:29:38 <ais523> sober and no dating is what happened to me in my first year
00:29:47 <ais523> as I was too preoccupied with other things to get drunk or go dating
00:29:59 <elliott> too occupied with sobrietary
00:30:01 <monqy> (Move log); 16:53 . . Ehird (Talk | contribs) (1st year sobriety and no dating moved to User:Ehird/1st year sobriety and no dating: for my study)
00:30:08 <ais523> (besides, I dislike the taste of alcohol, which means I rarely have much incentive to drink it)
00:30:24 <monqy> http://esolangs.org/wiki/Talk:1st_year_sobriety_and_no_dating what study hlep
00:30:35 <elliott> i sohuld make that language that was like dobela but what it wa in my mind
00:30:37 <elliott> because i never learned dobela
00:30:49 <monqy> whats
00:30:51 <monqy> dobele
00:31:00 <elliott> thing
00:31:11 <elliott> asiekierka made it but thend
00:31:13 <elliott> ewaitn rewrote it
00:31:15 <elliott> and made it not bad
00:31:18 <monqy> DOt-Based Esoteric LAnguage
00:31:30 <elliott> GROSSE GROSSE dobela has hiden state im fix that
00:31:34 <elliott> GROSSSE
00:31:56 -!- itidus20 has quit (Ping timeout: 255 seconds).
00:31:57 <elliott> i wonder if
00:31:57 <elliott> hmm
00:32:10 <elliott> I wonder if I could do non-determinism if I had wires like and maybe..........
00:33:41 <elliott> monqy: do i want wires or no wires
00:33:51 <elliott> i think wires are more ... interesting?? because that is less like befunge i guess
00:34:27 <elliott> ais523: if i accidentally reinvent hardware, sorry
00:34:28 <monqy> what is thsih epl
00:35:04 <elliott> monqy: lanjuaj
00:35:26 <monqy> hnelp
00:35:57 <elliott> i was almos going to type
00:36:03 <elliott> this is interesting enough to get a real name
00:36:03 <elliott> but
00:36:04 <elliott> NO
00:36:07 <elliott> all my names are spam names now
00:36:07 <oerjan> thsih epl was the third emperor of the wey shlow empire of heinan
00:36:22 <elliott> ais523: HEY wait
00:36:28 <elliott> ais523: are there any repeat vandalism pages lately
00:36:32 <elliott> pages you might be wanting to
00:36:32 <elliott> lock
00:36:33 <elliott> perhaps
00:36:40 <oerjan> he was a very heinous emperor
00:37:14 <monqy> last repeat spam I can recall is the List of ideas/Archive
00:37:24 <ais523> elliott: I had to protect List of ideas/Archive from even registered users
00:37:27 <elliott> i cant name al naugaee that
00:37:37 <elliott> sillys.........
00:38:06 <oerjan> yusuf al naugaee, famous kuwaiti general
00:39:15 <elliott> ais523: can you nremae list of ideas archive so i can name my language that
00:39:16 <elliott> :P
00:39:37 <oerjan> his name was because he invented armor made of naugahyde
00:39:45 <ais523> just call it "Incredibly_fascinating_evaluation_of_shopping_cart_software_package_prepared_by_well-known_soccer_professional_or_a_person_known_as_exact_same_as_that_soccer_player"
00:39:52 <ais523> I can't rename it because then it would start being scammed again
00:40:52 <elliott> scammed
00:41:09 <ais523> um, spamed
00:41:42 <elliott> ais523: anyway that doensnt even abbreviate well.........
00:41:43 <elliott> i will scour
00:41:45 <elliott> the deletion log
00:41:48 <oerjan> sadly naugas went extinct when saddam destroyed the euphrates/tigris delta to punish rebels there
00:42:03 <elliott> ->@-
00:42:05 <elliott> ->o-
00:42:07 <elliott> ->.-
00:42:10 <elliott> -.>-
00:42:13 <elliott> -o->
00:42:13 <oerjan> but there's an american company making a synthetic replacement
00:42:13 <myndzi> |
00:42:13 <myndzi> /´\
00:42:16 <elliott> -@-
00:42:17 <elliott> oh come on
00:42:19 <elliott> you're all fired
00:42:29 <elliott> that was an evaluation trace :(
00:43:30 <elliott> >----@----
00:43:30 <elliott> ->---@----
00:43:30 <elliott> -->--@----
00:43:30 <elliott> --->-@----
00:43:30 <elliott> ---->@----
00:43:31 <elliott> ---->o----
00:43:32 <elliott> ---->.----
00:43:35 <elliott> ----.>----
00:43:37 <elliott> ----o->---
00:43:37 <myndzi> |
00:43:38 <myndzi> /`\
00:43:38 <oerjan> make it a language with syntax based on myndzi's figures
00:43:39 <elliott> ----@-->--
00:43:41 <elliott> ----@--->-
00:43:43 <elliott> ----@---->
00:43:45 <elliott> youououre welcome
00:44:46 <elliott> no...............
00:44:50 <elliott> oerjan: did you nderstadnd... the above...
00:45:40 <oerjan> looks TM or CAish
00:45:57 <elliott> CAish, basically
00:46:06 <elliott> sort of like wireworld maybe?? i don't know wireworld
00:46:08 <elliott> but um
00:46:11 <elliott> - is wire
00:46:17 <elliott> > moves right on wire
00:46:19 <lambdabot> Not in scope: `moves'Not in scope: `wire'
00:46:22 <elliott> when > hits into @, it turns into o
00:46:27 <elliott> and >s tays still
00:46:30 <elliott> (same for all other directions)
00:46:37 <elliott> when > hits o it becomes . in the same manner
00:46:43 <Lymee> The most esoteric programming language is Conway's Game of Life
00:46:43 <elliott> when > hits into . they swap places
00:46:46 <Lymee> ....
00:46:48 <elliott> when . isn't hit for a cycle it becomes o
00:46:49 <Lymee> Let's add IO to that
00:46:52 <elliott> when o isn't hit for a cycle it becomes @
00:46:53 <elliott> oerjan: ok
00:47:06 <elliott> oerjan: so it is... a delay...
00:47:20 <elliott> but one that takes time to reset....
00:47:45 <oerjan> phine
00:52:19 <elliott> oerjan: pine
00:52:22 <elliott> trees
00:53:30 <oerjan> just spruce it up a bit
00:56:21 <elliott> spruce willis
00:57:11 <elliott> ais523: whath appens when two little signals bump into each other, with electronics,
00:57:29 <ais523> what do you mean by "little signal"? and "bump into each other"?
00:57:34 <ais523> electronics signals don't work like that
00:58:07 <elliott> ais523: YES THEY DO
00:58:59 <ais523> elliott: well, my answer is that I can't tell you because the question is insignificantly meaningful
00:59:04 <ais523> "they merge" is about the best answer I can give
00:59:08 <ais523> *insufficiently meaningful
01:00:13 <elliott> heh, one model I was thinking of offers faster-than-light travel, oops
01:00:38 <monqy> ????
01:04:16 -!- evincar has joined.
01:05:18 -!- elliott has quit (Ping timeout: 252 seconds).
01:09:52 -!- cheater__ has joined.
01:13:11 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:43:32 <evincar> Awful quiet, isn't it?
01:44:20 <ais523> it was noisier earlier
01:45:35 <zzo38> Dilbert's boss once said something like, it has come to my attention that 40% of sick days are taken on Monday and Friday, this is unacceptable, and so on. Someone else said that is a joke, because 40% is exactly normal. However, I don't think so. I think less than 40% of work days are on Monday and Friday (and I do see why it seems 40% is normal).
01:47:29 <pikhq> *With holidays*, somewhat less than 40%.
01:47:34 <pikhq> But not significantly so.
01:48:23 <zzo38> I have not actually calculated how much less. But it probably depends on where you live. At least in Canada it is less than 40% I think. I don't know what it is in their office.
01:57:17 -!- itidus20 has joined.
01:57:25 -!- elliott has joined.
01:57:49 <elliott> <elliott> heh, one model I was thinking of offers faster-than-light travel, oops
01:57:49 <elliott> <monqy> ????
01:57:49 <elliott> yes
02:01:53 <elliott> (Deletion log); 20:47 . . Ais523 (Talk | contribs) (deleted "My name is Johny, what the F**K?????": offtopic, probable spam)
02:01:58 <elliott> ais523: thanks, this is definitely the name of my next esolang
02:02:10 <ais523> brilliant
02:02:13 <ais523> that's actually a good esolang name
02:02:46 <elliott> I like how it comes pre-censored
02:04:10 <ais523> and how it misspells Johnny
02:04:13 <ais523> which i only just noticed
02:05:38 <elliott> can you misspell a name
02:05:42 <elliott> http://en.wikipedia.org/wiki/Johny
02:06:27 <monqy> parents bad at speling
02:07:23 <MDude> An online translator told me the other page is Spanish for "the people are crazy".
02:07:36 <MDude> I thought it was someone's reaction to reading the wiki.
02:10:20 <elliott> X-D
02:10:55 <ais523> elliott: please make a really good esolang at that name, it deserves one
02:11:20 <elliott> ais523: I think my wire esolang will be cool??? if it is not accidentally derivative
02:11:31 <elliott> It probably won't be HUGELY AMAZING but it'll be fun
02:11:32 <ais523> is it any better than WireWorld?
02:11:42 <elliott> I don't know, I never learned wireworld
02:11:43 <elliott> is it bad
02:11:58 <elliott> Mine will probably be a lot less like real-world circuits
02:12:09 <ais523> it's sub-TC unless you have an infinite program
02:12:10 <elliott> and a lot more like ... noit o' mnain worb?
02:12:21 <elliott> i like how i can remember that name perfectly
02:12:25 <ais523> no, wireworld's something where it makes sense to say "what happens when signals collide?"
02:12:27 <ais523> it's a CA
02:12:32 <elliott> I know
02:12:37 <ais523> oh, I see
02:12:38 <elliott> But, I mean, it's sort of like circuits
02:12:44 <ais523> you're doing a NOMW-alike?
02:12:51 <elliott> I'm not sure, I don't really know nomw either :(
02:12:55 <elliott> it should be obviously TC though
02:12:57 <elliott> so I guess not too similar
02:12:57 <oerjan> <elliott> I like how it comes pre-censored <-- would be nice to discuss it together with brainfuck, just to confuse people
02:13:08 <MDude> Is circuits a new wire idea, or something that's been incomplete for a while?
02:13:43 <elliott> MDude: ?
02:14:08 <MDude> I was jsut wondering since I didn't feel like scrolling up.
02:14:37 <itidus20> "Velocitator" Mr. Burns's archaic name for a car's accelerator pedal. Burns attempts to drive a car for the first time while proclaiming he is sure the owners manual will instruct him as to which lever is the velocitator and which one is the deceleratrix.
02:15:05 <MDude> Also, there are a few other languages that look like wires.
02:20:35 <zzo38> Make up a text adventure game called "My name is Johny, what the F**K?????" as well. Or, a card game, or newspaper, or restaurant, or whatever
02:21:31 <itidus20> humm
02:22:41 <oerjan> the My name is Johny, what the F**K????? franchise
02:22:47 -!- jcp|other has joined.
02:23:34 <elliott> ais523: hmm, I think the main thing that will control how my language turns out is whether I have blips or signals
02:23:40 <elliott> blips along a wire go like
02:23:42 <elliott> >--
02:23:43 <elliott> ->-
02:23:44 <elliott> -->
02:23:48 <elliott> but a signal goes
02:23:49 <elliott> X--
02:23:50 <elliott> XX-
02:23:51 <elliott> XXX
02:23:55 <elliott> i.e. blips move, signals spread
02:23:57 <ais523> WireWorld is based on blips
02:24:38 -!- jcp|1 has quit (Ping timeout: 276 seconds).
02:24:50 -!- jcp has quit (Ping timeout: 276 seconds).
02:24:50 <elliott> ais523: huh, it is?
02:25:35 <ais523> it's a cellular automaton
02:26:27 <oerjan> make it a pneumatic automaton, based on blimps.
02:26:40 <monqy> I learned wireworld a few years ago and only remember how the blippy things work. nothing about how to do logic or anything. never made anything interesting with it. :'(.
02:27:20 <MDude> http://esolangs.org/wiki/Circute [I'm pretty sure this is WireWorld exactly, but with a different name for some reason and also rendered in ASCII.]
02:28:23 <MDude> WireWorld is pretty nice, but there's an odd bug in it where if a "Diode" gets a signal form both directions at the right moment, it goes crazy and starts spewing noise forever.
02:28:36 <elliott> ais523: umm, it can be a CA without that
02:28:49 <elliott> both examples I showed were discrete
02:28:50 <ais523> I know
02:28:52 <elliott> it's just
02:28:56 <elliott> >- ===> ->
02:28:57 <elliott> vs
02:29:01 <elliott> X- ==> XX
02:30:09 <monqy> iirc the way wireworld did it was spark heads spread to adjacent wire cells and turn into spark tails, and spark tails turn into wires, or something like that
02:30:16 <ais523> yep
02:30:31 <ais523> --th-- becomes ---th-
02:31:03 <elliott> that's kind of gross
02:31:13 -!- jcp has joined.
02:31:15 <MDude> Huh, I guess it would be pretty easy to make a CA in a 2D string rewriting system.
02:31:40 <evincar> A CA is essentially a 2D rewriting system. :P
02:31:40 <MDude> That's pretty handy.
02:31:47 <itidus20> humm
02:32:14 <itidus20> I wanna go on record as saying 2d rewriting system
02:32:16 <MDude> Well yeah, but I've been having trouble trying to define my own CA using other methods.
02:32:30 <ais523> whew, just finished my first AceHack ascension
02:32:33 <ais523> and now I want to tell everyone
02:32:43 <Vorpal> firefox: "you are about to close 221 tabs"
02:32:54 <Vorpal> and it isn't sluggish at all
02:32:59 -!- Nisstyre has quit (Ping timeout: 255 seconds).
02:33:06 <itidus20> foxy
02:33:09 <itidus20> browser
02:33:16 <itidus20> bananan woop chik chik
02:33:20 <MDude> Is AceHack a game about being fighter pilot?
02:33:26 <elliott> Yes.
02:33:31 <ais523> no
02:33:38 <monqy> who to believe?????
02:33:42 <ais523> MDude: it's a NetHack variant I develop
02:33:42 <elliott> ais523: NetHack UI nitpick: The plot isn't about being a fighter pilot.
02:33:45 <itidus20> Po.
02:33:45 <Vorpal> MDude, ace pilot stuck in a dungeon of course
02:33:47 <elliott> Eagerly awaiting fix in AceHack.
02:33:57 <elliott> Vorpal: Hahaha
02:33:59 <itidus20> Ace Rimmer lost in nethack land?
02:33:59 <ais523> elliott: that's a bit of a stretch
02:34:04 <Vorpal> itidus20, why not!
02:34:08 <elliott> ais523: Just add "Also you're a fighter pilot." to the end of the game-opening message
02:34:11 <elliott> Problem solved
02:34:15 <itidus20> Smoke me a kipper
02:34:24 <ais523> elliott: you can do that yourself, that message is trivially easy to patch
02:34:40 <elliott> ais523: I thought the point of AceHack was to have all the patches so that I didn't have to
02:34:52 <Vorpal> elliott, better mod the classes, So you are a "fighter pilot and knight"
02:35:00 <Vorpal> or whatever
02:35:16 <ais523> elliott: no, it only has the /good/ classes
02:35:16 <monqy> fighter pilot and caveman
02:35:21 <ais523> */good/ patches
02:35:28 <itidus20> you are the egotistical persona of an hologrammatical astronaut
02:35:30 <elliott> <ais523> elliott: no, it only has the /good/ classes
02:35:30 <elliott> <monqy> fighter pilot and caveman
02:35:30 <elliott> good
02:35:40 <Vorpal> ais523, what about adding pliot as a cast?
02:35:49 <Vorpal> ais523, could make an interesting quest
02:36:28 <elliott> Omg you have to go around that plane that's just air and shit IN A PLANE
02:36:31 <elliott> BEST
02:36:47 <monqy> best
02:37:14 <Vorpal> elliott, hm quest artefact? A famous plane? flight googles?
02:37:42 <elliott> Vorpal: "flight googles"
02:37:47 <itidus20> i dont actually follow red dwarf but i've seen the odd ep
02:37:48 <elliott> good google
02:37:50 <Vorpal> elliott, idea, just add planes as a special cased pet XD
02:37:57 <Vorpal> elliott, oops :P
02:38:15 <elliott> i would play nethack as a pilot every time
02:38:16 <Vorpal> since you can ride horses and so on
02:38:22 <elliott> do the horses fly though
02:38:32 <ais523> you can ride dragons, they fly
02:38:39 <Vorpal> yeah
02:38:42 <ais523> and ki-rins, which are like flying horses
02:39:05 <Vorpal> so the difference would be that a plane remains tame all the time, also doesn't pick up things in shops for you
02:39:07 <itidus20> nethack has rideable dragons? thats amazng it is
02:39:26 <Vorpal> itidus20, I only ever managed that in wiz mode
02:39:28 <elliott> ais523: hmm, can you use those on that one (astral) plane?
02:39:30 <ais523> they're kind-of slow
02:39:37 <elliott> Vorpal: also, I like the idea of planes becoming un-tame
02:39:41 <elliott> a wild plane
02:39:41 <ais523> elliott: yes, you can ride on Astral, but it's a pain keeping your steed alive
02:39:45 <elliott> you have to feed it to tame it
02:39:51 <Vorpal> elliott, uh... I guess they wouldn't move on their own
02:39:57 <Vorpal> and might need fuel
02:39:57 <elliott> ais523: grr, I mean that one plane
02:39:59 <elliott> the one that's just clouds
02:40:11 <Vorpal> elliott, air
02:40:43 <Vorpal> elliott, ais523: go implement this now!
02:41:02 <ais523> Vorpal: no!
02:41:13 <Vorpal> ais523, why not, doesn't it sound awesome!?
02:41:17 <ais523> no
02:41:38 <Vorpal> ais523, why not. There is tourist. How are the tourists supposed to travel if not by plane!
02:41:50 <elliott> he makes a good point (a terrible point but a good one)
02:42:06 <Vorpal> (yes I do see the flaws in that logic)
02:42:12 <MDude> Would it be easier to jsut add a card game at the end?
02:42:20 <Vorpal> MDude, of nethack? why
02:43:06 <Vorpal> ais523, btw I think you should be able to run around floating eyes to kill them. (Note: only makes sense if you played Mario64 I think)
02:48:15 <evincar> Crap, now I have to play that again.
02:48:32 <evincar> I wonder how quickly I can beat it...
02:50:41 -!- invariable has changed nick to variable.
02:50:55 <ais523> Vorpal: I have played Mario 64 (well, the DS port)
02:50:57 <ais523> so I know what you mean
02:51:09 <Vorpal> evincar, XD
02:51:30 <Vorpal> ais523, as far as I remember they added quite a lot of stuff to the DS port
02:51:34 <Vorpal> compared to the original
02:51:40 <Vorpal> like not playing mario all the time
02:51:48 <ais523> yes
02:51:49 <Vorpal> never played the DS port
02:51:55 <ais523> I know the basic differences from the DS version and the original
02:53:57 <itidus20> I had an N64 twice. The first one my brother gave it away to impress a girl. The second one I traded it in towards an xbox360. The second one had mario64 and zelda:oot.
02:54:22 <itidus20> I later traded the xbox360 back in out of fear of RROD and various reasons.
02:58:38 <elliott> hmm...
02:58:46 <elliott> I think I like blips more than signals
02:58:48 -!- CakeProphet has joined.
02:58:48 -!- CakeProphet has quit (Changing host).
02:58:48 -!- CakeProphet has joined.
02:58:55 <elliott> because you need a way to turn signals off
02:59:03 <elliott> which means having some sort of signal-eater block that eats up a signal as it goes along a wire
02:59:05 <elliott> which is... weird?
02:59:17 <elliott> with blips you have the possibility of fun things like duplicators and the like
02:59:24 <elliott> and it's sort of more like an IP
02:59:30 -!- mickayz has joined.
02:59:57 -!- mickayz has left.
02:59:58 <evincar> Agreed, blips are cleaner.
03:01:05 <elliott> ais523: I think the other major choice is whether to have nondeterminism
03:02:42 <elliott> hmm, which I guess is more a question of are blips directional
03:04:13 <elliott> ASCII really needs corners
03:04:34 <evincar> If they are, it offers the possibility of sending information bidirectionally along wires.
03:04:52 <elliott> evincar: oh, hmm, I don't think blips can be non-directional while avoiding hidden state
03:05:00 <evincar> So portions of the program can be implemented in terms of the reverse of other portions.
03:05:33 <evincar> Right, reversability is good evidence for purity. :P
03:05:51 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:07:56 <elliott> ugh, that's annoying though, because directional blips don't really let me justify this cool nondeterminism feature
03:08:25 <itidus20> elliott: alright lets think
03:08:43 <elliott> wut
03:08:45 <itidus20> what is a nondeterministic language good for?
03:09:01 <itidus20> or a nondeterministic feature
03:09:14 <evincar> itidus20: http://en.wikipedia.org/wiki/Nondeterministic_finite_state_machine
03:09:17 <itidus20> surely it is more wide in scope than simply rand() :D
03:09:29 -!- azaq231 has quit (Ping timeout: 276 seconds).
03:09:55 <evincar> Long story short, NFAs are typically more concise and intuitive than DFAs.
03:10:41 <elliott> evincar: um that is obviously not the kind of nondeterminism i mean
03:11:02 <elliott> welllllllllllll
03:11:08 <elliott> yeah it isn't
03:11:19 <elliott> I basically just mean something similar to Befunge's ?
03:11:31 <itidus20> (reading over that page) regarding philosophical determinism debates i have argued before that a non-determinist could emulate a determinist
03:11:39 <evincar> elliott: I wasn't claiming anything about yours. I was just offering an example of what nondeterminism is good for.
03:12:19 <elliott> evincar: well, that's not the same kind of nondeterminism
03:13:22 <itidus20> i think that the determinists can be shown to be possibly non-determinists wearing masks, and non-determinists might possibly be determinists wearing masks but i forget how i arrived at the latter conclusion
03:14:05 <evincar> elliott: Naturally. This is, after all, #esoteric.
03:14:19 <itidus20> humm
03:14:24 -!- lament has joined.
03:15:04 <itidus20> didn't fourier's fast transform not find any good uses until after his death?
03:16:00 <itidus20> ah ---- i should not make such claims without backup
03:17:03 <itidus20> elliott: I think we assume that we want determinism most of the time... but take it away and we might come to not depend on it
03:17:18 -!- copumpkin has quit (Ping timeout: 252 seconds).
03:17:43 -!- copumpkin has joined.
03:19:19 <Sgeo> Gregor, elliott http://www.mspaintadventures.com/?s=ryanquest
03:19:37 <elliott> Sgeo: Why are you pinging me about this?
03:19:46 <CakeProphet> itidus20: it wasn't Fourier's fast transform
03:19:50 <elliott> I'd ask why you're pinging Gregor too but he probably will himself
03:20:04 <pikhq> In other news, cure for cancer.
03:20:15 <Sgeo> I pinged Gregor because I'm under the vague impression that he's interested in Dinosaur Comics
03:21:08 <Sgeo> My brain just broke trying to avoid breaking what I'm assuming is a joke
03:21:31 <CakeProphet> Sgeo: have you considered become a rapper?
03:22:03 <CakeProphet> your rhymes would be quite dapper
03:22:08 -!- azaq23 has joined.
03:22:17 <elliott> Sgeo: What joke?
03:22:28 <Sgeo> <pikhq> In other news, cure for cancer.
03:22:35 <Sgeo> Unless pikhq's being serious
03:22:41 <CakeProphet> >_>
03:22:43 <pikhq> Entirely serious.
03:22:50 <CakeProphet> think about it a little..
03:22:56 <elliott> Sgeo is answering questions non-linearly, and pikhq would believe a pop science magazine.
03:23:05 <CakeProphet> let's say there was a cure for cancer.
03:23:16 <CakeProphet> chances are millions of people would already know about it and be talking about.
03:23:22 <coppro> pikhq: this is unusually stupid for you
03:23:22 <CakeProphet> it would be huge news.
03:23:39 <elliott> CakeProphet: You realise that reddit, etc. claim there are cures for cancer like every other week?
03:24:03 <elliott> Then the top comment is someone thoroughly refuting it as an actual method for curing cancer because reddit's scoring makes no fucking sense.
03:24:25 <CakeProphet> reddit doesn't count as information.
03:24:33 <CakeProphet> but no, I did not realize that.
03:24:33 <Sgeo> Cure for _a_ cancer I would believe
03:24:47 <coppro> I wouldn't
03:24:54 * elliott sits here and waits for pikhq to respond.
03:25:05 <pikhq> Genetic modification of T-cells taken from 3 patients were targetted to antigens unique to the cancer cells, and reinjected into the patient. All cancer cells were killed by the T-cells.
03:25:05 <CakeProphet> I would believe a cure for cancer... if it were actually a cure for cancer.
03:25:18 <pikhq> The scheme is believed to be repeatable on other forms of cancer, but was only tested on leukemia.
03:25:24 <pikhq> Further trials pending.
03:25:33 <coppro> In fact, I'd believe cure for a specific cancer much less than I'd believe of a cure for all cancer
03:25:37 <Sgeo> pikhq, believed to be repeatable on _all_ other forms of cancer, or many other forms?
03:25:39 <coppro> pikhq: that is pretty fucking awesome
03:25:43 <pikhq> Sgeo: All.
03:25:46 <evincar> So: promising research in the topic of cancer.
03:25:51 <evincar> Not "cure for cancer".
03:25:55 <coppro> Sgeo: X cancer is just cancer that happens to be in X
03:26:04 <coppro> Sgeo: Fundamentally they are all the same disease
03:26:10 <evincar> coppro: Not strictly true, I thought.
03:26:13 <pikhq> evincar: So I exaggerate slightly.
03:26:15 <elliott> pikhq: OK, now I'll wait for this to get on reddit and for someone to reply "I'm an expert and this is promising but doens't actually mean anything/isn't new because [..............]".
03:26:17 <CakeProphet> evincar: but then what will pop science news sources use for a headline?
03:26:19 <Vorpal> pikhq, interesting, but 3 patients? Need larger scale tests. And tests on different cancers.
03:26:19 <elliott> Or maybe IT
03:26:19 <elliott> ALREADY
03:26:20 <elliott> HAS
03:26:30 <pikhq> Vorpal: Hence why trials are pending.
03:26:43 <pikhq> s/trials/further trials/
03:26:49 <coppro> pikhq: we also have a theoretical cure for retroviruses from 10 years ago that no one ever got to work at a medical scale
03:27:06 <Vorpal> coppro, what cure is that?
03:27:14 <elliott> Vorpal: death
03:27:23 <coppro> Vorpal: cellular injection of single-stranded RNA that matches the virus' DNA
03:27:26 <pikhq> coppro: This one has at least worked on human patients.
03:27:26 <evincar> So, is it just me, or is "pharmaceutical company" an oxymoron?
03:27:30 <Vorpal> coppro, ah
03:27:32 <elliott> evincar: no
03:27:52 <coppro> Vorpal: The cellrejects the double-stranded retrovirus RNA because of the presence of the single-stranded version
03:27:55 <Vorpal> coppro, yeah I can see getting that to work for anything but single cells might be a bit of an issue
03:27:58 <evincar> Aren't business concerns and research costs at odds with, y'know, providing people with abundant, cheap medication?
03:28:10 <Vorpal> coppro, can't think of how to inject it into cells
03:28:13 <lament> cheap meditation
03:28:13 <evincar> Socialised medicine seems to make the most sense.
03:28:16 <coppro> Vorpal: a different virus
03:28:19 <coppro> or something
03:28:21 <Vorpal> coppro, ah
03:28:23 <coppro> retroviral therapy can be done
03:28:25 <elliott> evincar: do you know what an oxymoron is
03:28:26 <coppro> and has
03:28:40 <coppro> evincar: not for something of this scope
03:28:42 <Vorpal> coppro, what is the catch then
03:28:45 <evincar> elliott: A contradiction in terms.
03:28:58 <elliott> evincar: the words "pharmaceutical" and "company" do not contradict
03:29:13 <elliott> I think what you're trying to say is "pharmaceutical companies are bad"
03:29:14 -!- invariable has joined.
03:29:19 <evincar> elliott: But the notions of providing pharmaceuticals and being a company do. :P
03:29:20 <coppro> evincar: if there was actual significant likelihood that this procedure would be a high-success cure for cancer, governments can and will just legislate their way past th eproblem
03:29:25 <evincar> It's a meta-oxymoron, then.
03:29:35 <elliott> I believe plenty of companies provide pharmaceuticals?
03:29:37 <evincar> Or semanto-oxymoron.
03:29:42 <monqy> what
03:29:43 <monqy> i
03:29:49 <monqy> how
03:29:53 <monqy> hlep
03:30:07 <Vorpal> coppro, what is the catch then with the retrovirus thingy
03:30:29 <elliott> Vorpal: you have to do it before you find out (that's the retro part)
03:30:36 <Vorpal> elliott, ...
03:31:08 <Vorpal> elliott, leave the puns to oerjan next time
03:31:10 <coppro> Vorpal: a) retroviral therapy is very difficult to pull off in a safe manner; the need to get single-stranded RNA involved would make it much more complex since the virus would basically need to be custom-made and we lack that technology
03:31:22 <elliott> Vorpal: or maybe die >:(
03:31:32 <coppro> Vorpal: b) it is a defense easily mutated against
03:31:48 <coppro> the recent development of blocking /all/ dsRNA is very interesting though
03:32:04 <Vorpal> coppro, doesn't the body use that?
03:32:08 <Vorpal> normally I mean
03:32:10 <coppro> Vorpal: No.
03:32:16 <coppro> Vorpal: dsRNA gets copied into the DNA
03:32:20 <pikhq> Vorpal: No. Double-stranded RNA is only used by virus reproduction.
03:32:27 <Vorpal> coppro, will be mutated against in the future probably
03:32:31 <coppro> all RNA in the body naturally is single-stranded
03:32:36 -!- variable has quit (Quit: I found 1 in /dev/zero).
03:32:43 <coppro> Vorpal: No; double-strandedness is fundamental to the mechanics of retroviruses
03:32:50 <Vorpal> hm
03:33:30 <coppro> err wait
03:33:37 <coppro> apparently I am confusing my viruses here
03:33:56 <coppro> retroviruses use single-stranded RNA apparently and supply enzymes to do the copying with; dsRNA is a different class of virus
03:34:39 <coppro> still, dsRNA is not naturally occurring in the body
03:34:42 <Vorpal> coppro, so won't kill off HIV and so on then
03:34:57 <coppro> Vorpal: yeah. Still would hit a vast swath of viruses
03:36:05 <elliott> im a viras
03:36:47 <coppro> btw ribosomes are probably the most ridiculous human structure
03:36:55 <coppro> (or any other cell really)
03:37:46 <elliott> It is now possible to give classes equality superclasses, i.e. you can write something like class (F a ~ b) => C a b where { ... }. See Section 7.7.2.3, “Equality constraints” for more details.
03:37:47 <elliott> yeSSsssSSSSSSSSSSssssss
03:37:47 -!- invariable has changed nick to variable.
03:38:46 <coppro> elliott: what.
03:38:54 <coppro> actually just RNA in general is fucking amazing
03:39:09 <elliott> coppro: ghc
03:39:14 <coppro> elliott: link
03:39:14 <elliott> new release
03:39:17 <elliott> http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/release-7-2-1.html
03:39:23 <coppro> you don't need DNA or proteins if you have RNA
03:39:26 <elliott> The new DefaultSignatures extension allows you to define a default implementation for a class method that isn't as general as the method's type. For example,
03:39:26 <elliott> OMG
03:39:30 <elliott> finally
03:39:31 <coppro> DNA and proteins are just more durable
03:40:21 <elliott> oerjan: fnininlaly
03:40:28 -!- evincar has changed nick to evincar-in-the-s.
03:40:42 -!- evincar-in-the-s has changed nick to evincar-away.
03:40:45 <evincar-away> Sigh.
03:40:57 <elliott> The "evil mangler" has been removed, and registerised compilation via C is no longer supported. This means that the -fvia-c, -fvia-C, -keep-raw-s-file, -keep-raw-s-files, -pgmm, -optm, -monly-2-regs, -monly-3-regs and -monly-4-regs flags are now deprecated, and have no effect. The -fasm-mangling and -fno-asm-mangling flags have been removed.
03:40:57 <elliott> ah
03:41:04 <elliott> monqy: time for wake
03:41:08 <monqy> hi
03:41:17 <Vorpal> <coppro> Vorpal: yeah. Still would hit a vast swath of viruses <-- indeed, meaning the other viruses would take over.
03:41:22 <monqy> what swake hapl
03:41:23 <elliott> monqy: it's wake
03:41:35 <Vorpal> <coppro> btw ribosomes are probably the most ridiculous human structure <-- yep
03:41:36 <elliott> http://en.wikipedia.org/wiki/Wake_(ceremony)....
03:42:08 <monqy> oh
03:42:13 <pikhq> Oh, there's *plenty* of utterly ridiculous human structures.
03:42:13 <monqy> im bad at words
03:42:37 <elliott> ok wake for evil mangler and rest of -fvia-C
03:42:39 <elliott> g
03:42:39 <pikhq> Especially if we look at vestigial structures.
03:42:40 <elliott> go
03:42:59 <Vorpal> pikhq, name one more ridiculous than ribosomes
03:43:15 <coppro> I mean ridiculous as in crazy
03:43:19 <coppro> not ridiculous as in useless
03:43:24 <Vorpal> indeed
03:44:31 * elliott reads about the new generics stuff
03:44:49 <pikhq> Recurrent laryngeal nerve. Especially ridiculous in giraffes.
03:45:19 <pikhq> It's a nerve that goes all the way down from the neck, down around the aorta, and back *up* to the larynx.
03:45:47 <coppro> pikhq: that is ridiculous; not the same kind of ridiculous though
03:46:18 <coppro> ribosomes are assembled from proteins and RNA; the assembly is the coordinated effort of hundreds of proteins to assemble components made in three different parts of the cell
03:46:22 <pikhq> It does so in all the quadrapeds. Well, technically all vertabrates, but that's actually the shortest path in fish.
03:47:28 <pikhq> Erm. Tetrapods?
03:47:56 <elliott> pettatods
03:48:01 <coppro> the genome also has more than 200 redundant copies of the sequences for ribosomes
03:48:27 <pikhq> Well, why not? It has redundant copies of so many things.
03:49:02 <coppro> half a million ribosomal proteins are transported into the nucleus each minute
03:54:45 <coppro> oh also self-splicing introns are ridiculous
03:55:10 <coppro> they're sequences of DNA that take up the middle of genes for who knows why and just remove themselves when the DNA goes up for transcription
03:55:33 <coppro> they actually cut themselves out of the mRNA
03:56:19 <pikhq> But remember, we're intelligently designed.
03:57:00 <coppro> one possibility is that they're actually a very low form of self-reproducing structure; they serve no purpose but manage to get reproduced and inject themselves into other parts of the genome nonetheless
04:03:48 -!- evincar-away has quit (Ping timeout: 258 seconds).
04:05:30 -!- evincar-away has joined.
04:05:35 -!- evincar-away has changed nick to evincar.
04:18:29 <elliott> hmm
04:18:51 <evincar> Hmm?
04:19:20 <monqy> hmm??
04:19:25 <elliott> i don't think the generic stuff in ghc does what i want :(
04:19:26 <elliott> or hmm
04:19:29 <elliott> oh maybe it does
04:23:57 -!- sebbu has quit (Ping timeout: 264 seconds).
04:34:24 <zzo38> How much of the code from Windows version 1 is still used in the newest version?
04:34:57 <ais523> zzo38: it's probably impossible to know
04:34:58 <pikhq> I'd be inclined to say "not much".
04:35:04 <ais523> I'd be surprised if even Microsoft know by now
04:35:14 <ais523> and they don't have public repos, so you can't tell
04:35:37 <evincar> Wasn't NT basically a complete rewrite?
04:35:42 <pikhq> Especially what with Win32 having essentially a rewrite of Win16, and NT being a rewrite *really from scratch*.
04:35:53 <evincar> Yeah, ^ that.
04:36:00 <zzo38> Maybe even Microsoft doesn't know?
04:36:15 <pikhq> NT has more relation with VMS than Windows 1.0.
04:36:55 <elliott> i really want the windows source code
04:36:57 <elliott> just
04:36:58 <elliott> to read
04:37:04 <elliott> i should get that partial leak sometime
04:37:17 <elliott> maybe i should get a job at ms and spend my days reading the windows code
04:37:19 <pikhq> I'd be willing to bet that there's tons of comments saying // Work around moronic program X
04:37:25 <elliott> there are
04:37:33 <elliott> (I read the highlights-of-the-leak posts)
04:37:55 <monqy> posts where
04:38:00 <elliott> internet
04:38:09 <evincar> Or // We can't remove this internal API because so many stupid applications rely on it.
04:39:27 <elliott> i think the windows team and the office team would literally go to war if they had the resources
04:39:42 <evincar> Most likely.
04:39:43 <elliott> ais523: as our Windows Correspondent, how do you feel about this
04:39:47 <pikhq> Don't even need source to see that.
04:39:55 <elliott> ok now i can't stop imagining the war of the microsoft teams and it is hilarious
04:40:07 <elliott> "this is for using private APIs!!!!!"
04:40:16 <pikhq> The Office team seems to *love* reimplementing things.
04:40:21 <evincar> Swinging USB modems by their cables and hurling them over the cube walls toward unsuspecting victims.
04:40:23 <elliott> "oh yeah??? well this is for breaking word 98's menu code!!!!!"
04:40:28 <pikhq> When was the last time Office used native widgets?
04:40:30 <elliott> [throws model m]
04:40:37 <ais523> it did in 3.1, I think
04:40:48 <evincar> Shit, the Model M, best fucking keyboard.
04:40:54 <ais523> that would be, umm Office 4?
04:40:57 <elliott> the model m is not that good
04:41:08 <evincar> If you don't like it, I will hit you with it.
04:41:11 <evincar> And it will still work.
04:41:19 <elliott> there are more durable keyboards :)
04:41:20 <evincar> And then I will rearrange the keycaps to Dvorak and back.
04:41:23 <elliott> still made by ibm though
04:41:25 <ais523> I just want my keyboards to not have stupid extra buttons, and to be sensibly shaped
04:41:29 <elliott> the terminal boards are amazing
04:41:38 <zzo38> I think the Model M is not bad. We had it at Free Geek Vancouver for a few weeks and I liked this keyboard
04:41:46 <elliott> ais523: I was about to go "wtf, we agree" but then I realised my definition of "stupid extra buttons" probably includes more than yours
04:41:55 <elliott> and doesn't include useful things like volume control
04:42:15 <ais523> elliott: I'm actually fine with volume control buttons
04:42:22 <ais523> I use fn-3, fn-4 quite a lot on this keyboard
04:42:31 <ais523> although I'll just map them to super-something if they aren't there
04:42:40 <elliott> ah; most people are complaining about media keys when they complain about stupid extra buttons
04:42:41 <evincar> A super key would be nice for Windows, but I do fine without it on Linux.
04:42:43 <ais523> (I have some super-mappings for play/pause, skip forwards, skip back)
04:42:49 <ais523> no, I'm fine with media keys
04:42:53 <elliott> I'm not sure what they do when they want to change the volume, but it's probably slow
04:42:59 <ais523> I'm complaining about large separate buttons with random things on them like "home" or "calculator"
04:43:04 <ais523> and F lock
04:43:04 <evincar> Yep.
04:43:05 <elliott> yeah, those are silly
04:43:07 <ais523> oh wow do I hate F lock
04:43:12 <elliott> although a home key could be useful if it did the right thing and was in a non-terrible place
04:43:16 <evincar> And fuck keyboard designers who mess with my editing block.
04:43:18 <pikhq> Media keys are just fine. Most of the other vender addons are terrible.
04:43:19 <elliott> i'm not sure what the right thing is
04:43:28 <pikhq> And fuck the numpad.
04:43:31 <ais523> so we all agree with each other? how often does that happen?
04:43:39 <pikhq> ais523: Rarely.
04:43:39 <elliott> well I don't agree that the editing block is sacred >:)
04:43:43 <elliott> but close enough
04:43:52 <ais523> although I bet Vorpal will say that he needs his numpad for playing NetHack
04:43:57 <elliott> I'm actually slightly annoyed that I have more than one non-shift modifier key
04:44:01 <elliott> ais523: DON'T PING HIM YOU'LL RUIN EVERYTHING
04:44:03 <ais523> having a numpad doesn't disturb me, but I don't need one
04:44:03 <evincar> I just like having insert in a sane location. Delete does not need to be a double-high key.
04:44:06 <ais523> evincar: he's probably asleep
04:44:08 <evincar> Delete does need to be there.
04:44:14 <ais523> *elliott:
04:44:22 <elliott> ais523: I'm sure his IRC client is set to wake him up
04:44:29 <elliott> evincar: the editing block is stupid because you have to move your hands to use it
04:44:47 <pikhq> elliott: I use them for browsing read-only things.
04:44:49 <evincar> elliott: Well, that's why I use emacs.
04:44:55 <ais523> not on this laptop, the editing block's squidged in with the other keys
04:45:01 <ais523> although I do C-a C-e quite a lot
04:45:03 <elliott> hmm, "laptops have nice keyboard layouts" -- this surely can't be a very popular opinion I'm holding
04:45:13 <evincar> My netbook has a surprisingly nice layout...
04:45:21 <evincar> ...not nice in the absolute, but tolerable.
04:45:25 <ais523> this one had to compromise a bit, but it's still pretty tolerable
04:45:25 <pikhq> The keyboard layouts on laptops need to be roomier.
04:45:26 <evincar> Especially for a 90%-size keyboard.
04:45:28 <elliott> I kind of want to make @ treat ctrl and alt as identical
04:45:29 <zzo38> I dislike all the extra vendor keys they put on many (not all) keyboards
04:45:34 <ais523> (in particular, ` and \ are near the spacebar)
04:45:54 <ais523> my fingers have memorised this keyboard, though, and they're fine with it
04:45:54 <evincar> Weird.
04:45:56 <elliott> and, umm, treat left windows key as a "bring up prompt" button (doubles as an application launcher)
04:45:56 <pikhq> The editing block could easily go, though. Numpad's wasted space.
04:45:59 <elliott> and the right windows key to be compose???
04:46:01 <elliott> I'm not sure
04:46:03 <evincar> Then again, mine's a Lenovo.
04:46:07 <elliott> I don't like ctrl and alt both existing though
04:46:09 <evincar> They care about keyboards.
04:46:11 <elliott> it doesn't make much sense
04:46:20 <elliott> at least with "standard" style shortcuts
04:46:23 <evincar> elliott: Ctrl is for controlling things. Alt is for alternate things.
04:46:24 <zzo38> elliott: Maybe you should just have one key in the system such as CTRL and then have a keyboard mapping program, so that it can map ALT to be another CTRL key if the @ system does not use ALT?
04:46:27 <ais523> treating super and alt as identical would make more sense
04:46:30 <elliott> evincar: yeaaaaaaaaaah
04:46:38 <elliott> ais523: well, I could also just make it ignore Ctrl
04:46:43 <elliott> ais523: since it's in the less ergonomic position
04:46:44 <evincar> Yeah, try designing a sane interface standards around those vague definitions, right?
04:46:47 <ais523> because it's much easier to miss one and hit the other, than it is to hit super when you mean ctrl
04:46:53 <elliott> ais523: (fun fact: Alt and Ctrl were swapped originally)
04:47:01 <elliott> I don't know who made the more common key, Ctrl, move to the more awkward position
04:47:02 <ais523> elliott: heh, that would make more sense
04:47:05 <elliott> but I dislike them for it
04:47:22 <evincar> Ctrl often used to be where Capslock is, next to A.
04:47:24 <elliott> OS X has the command key in the place where Ctrl used to be, which is nice
04:47:31 <elliott> evincar: well, that's more a Sun thing
04:47:34 <ais523> well, what's alt mainly used for? menu and dialog navigation, right?
04:47:35 <elliott> I don't think IBM did that
04:47:41 <evincar> elliott: True.
04:47:47 <ais523> whereas ctrl is used for controlling tty programs, as well as miscellaneous stuff like copy/paste in GUI programs
04:47:55 <elliott> haha
04:47:55 <pikhq> evincar: That's only traditional on UNIX systems.
04:47:59 <elliott> (umm, you are joking, right?)
04:48:13 <ais523> elliott: who are you laughing at?
04:48:27 <elliott> ais523: <ais523> whereas ctrl is used for controlling tty programs, as well as miscellaneous stuff like copy/paste in GUI programs
04:48:39 <ais523> elliott: GUI users typically don't use ctrl for much
04:48:45 <ais523> they use the mouse
04:48:57 <ais523> most people I've seen click on save rather than using control-S
04:49:08 <elliott> OK, but it's ridiculous to say that using Ctrl to control tty programs is more common than using it for GUI actions
04:49:11 <pikhq> What, do they also not use Alt-Tab?
04:49:13 <ais523> I didn't say that
04:49:21 <evincar> Ugh. It bothers me to no end when I see CS or SE students at my college using the mouse to operate menus for editing commands, *whilst programming*.
04:49:22 <elliott> well, you implied it with the ordering and "miscellaneous stuff"
04:49:22 <ais523> pikhq: they panic if they have more than one program open at once
04:49:26 <ais523> and ask me how to get rid of them
04:49:43 <zzo38> I happen to like the very old clunky IBM PC keyboard. It was very well designed.
04:49:46 <pikhq> Wow.
04:49:55 <elliott> evincar: meh, don't hate the player, hate the game; in this appropriative analogy, the player is the student and the game is WIMP GUIs
04:50:20 <zzo38> But everyone else complains that it is too loud and all that stupid stuff too, and want all these extra keys and mouse and various things
04:50:22 <pikhq> WIMP GUIs do suck, but it's amazing that they apparently suck *more* for the average user.
04:50:34 <ais523> zzo38: now you've got me imagining a Model M with a touchpad
04:50:36 -!- jcp|1 has joined.
04:50:41 <ais523> what does "WIMP GUI" mean in this context?
04:50:49 <elliott> ais523: window, icon, menu, pointer
04:50:53 <ais523> ah, aha
04:51:00 -!- jcp has quit (Ping timeout: 246 seconds).
04:51:04 <ais523> I'd seen the abbreviation before but didn't know what it stood for
04:51:08 <elliott> I really don't know who thinks WIMP UIs are intuitive or easy to learn or anything
04:51:14 <elliott> probably power users and people who work at Microsoft
04:51:14 <evincar> I.e., OS wimpmode.
04:51:25 <evincar> But then again, not really.
04:51:26 <ais523> they can be pretty effective once you get to know them
04:51:36 <ais523> heh, I used to use control-shift-B to bold things in Word, for consistency
04:51:36 <elliott> power users because they're used to them, people who work at Microsoft because kool-aid
04:51:43 <ais523> because basically all the formatting commands are on control-shift
04:51:47 <ais523> I was a Windows power user, once
04:52:00 <ais523> not any more, though, I don't properly understand anything later than about 98
04:52:23 -!- jcp|other has quit (Ping timeout: 276 seconds).
04:52:24 <evincar> ais523: Thought it was just Ctrl? Also, word processors make me cry.
04:52:32 <evincar> No sense of typography or layout.
04:52:37 <elliott> I try to avoid Windows power users, they upset me :(
04:52:41 <evincar> You can't control anything.
04:52:49 <ais523> evincar: both control-B and control-shift-B work
04:52:57 <zzo38> evincar: It is why I use TeX now
04:53:00 <elliott> Word's typography is pretty good nowadays, I think
04:53:01 <ais523> control-shift- is more consistent with the other commands
04:53:03 <elliott> since two thousand and seven or so
04:53:17 <zzo38> Using TeX you can control most things if you know how.
04:53:20 <pikhq> evincar: Friggin' HTML's better than WYSIWYG word processors for some things...
04:53:21 <ais523> elliott: the way Word does styles is stupid, I much prefer the OpenOffice.org/LibreOffice approach
04:53:30 <elliott> ais523: possibly, I'm just talking purely in terms of typography
04:53:35 <ais523> most people don't use styles at all
04:53:43 <ais523> I've even seen people indenting with spaces (in a /word processor/)
04:53:44 <elliott> and anyone who thinks you "can't control anything" with Word hasn't used it
04:53:52 <elliott> it has about ten billion formatting options
04:53:55 <evincar> I still tend to write things in HTML at least, TeX if it needs to be fancy. InDesign isn't bad if you have access to it.
04:54:08 <evincar> But that's got a slew of other features/problems.
04:54:10 <zzo38> WYSIWYG is stupid in general I think. TeX works much better I think. I prefer TeX rather than HTML.
04:54:23 <pikhq> elliott: Arguably, the problem is that Word has too many formatting options.
04:54:33 <pikhq> Making it incredibly non-obvious how to make it act reasonably.
04:54:36 <evincar> zzo38: Interactive previews are intuitive. It's making the underlying model clean that's problematic.
04:54:42 <elliott> Word isn't a good program
04:54:50 <elliott> but lack of control is not its major flaw :)
04:55:07 <pikhq> evincar: Interactive previews are somewhat different from WYSIWYG.
04:55:44 <pikhq> There's no reason your preview has to literally *be* the output.
04:56:06 <elliott> I should really rebind my capslock to something useful
04:56:10 <elliott> umm, /me verifies that he can
04:56:10 <evincar> pikhq: No, I'm talking about actually interacting with the preview, not displaying a preview "interactively" while you work on some other representation.
04:56:13 <elliott> oh good, it's done in software
04:56:19 <ais523> elliott: Ubuntu actually has a menu for caps lock rebinding
04:56:24 <elliott> ais523: not what I meant
04:56:24 <ais523> in the advanced keyboard preferences
04:56:29 <elliott> (the next line explains what I meant if you're psychic)
04:56:34 <ais523> oh, what did you mean?
04:56:39 <pikhq> evincar: Yes, but the WYSIWYG model is based on that not being a preview.
04:56:42 <zzo38> I sometimes want to set up things with macros and that stuff, and other things, and don't want it to change everything as I am typing, or make a macro and then have to manually enter things even though it is a macro if I have changed the macro. Using TeX, editing the macro will change everything that uses that macro. In Word, editing a macro will not change the things that have already been entered.
04:56:56 <pikhq> It is the view.
04:56:59 <evincar> pikhq: No, the WYSIWYG model is based on interacting *solely* with a preview. :P
04:56:59 <elliott> ais523: for a while now, Macs have required caps lock to be pressed for a certain amount of time before it activates; a really, really short amount of time; it's basically meant to avoid accidental presses
04:57:06 <pikhq> evincar: Then it's not a preview!
04:57:07 <ais523> oh, I see
04:57:11 <elliott> ais523: I was checking it was done in OS X software, rather than at the keyboard controller level
04:57:17 <ais523> and you were worried that rebinding capslock would make that happen to whatever it was rebound to
04:57:23 <elliott> which would impede me rebinding caps lock usefully; probably not much, but it would be enough to stop me mothering
04:57:26 <elliott> ...bothering
04:57:28 <evincar> pikhq: Of course it is. It's a preview of what you're going to print. Or what you're going to whatever.
04:57:33 <zzo38> I read somewhere, instead of WYSIWYG another way is YAFIYGI (you asked for it, you got it).
04:57:36 <evincar> The topic is word processors, after all.
04:57:59 <elliott> word processors are way too print-focused; after all, paper is obsolete
04:58:01 <evincar> elliott: Stop your mothering.
04:58:22 <zzo38> If I want to preview the file before printing it, I can use xdvi (on Linux) or Yap (on Windows), etc.
04:58:27 <pikhq> elliott: And, more importantly, bad at being print-focused.
04:58:39 <elliott> guys I wanted you to argue with me....
04:58:40 <elliott> maybe ais523 will
04:59:06 <ais523> elliott: but Word can corrupt a document because it's opened on a computer with a different model of printer
04:59:09 <pikhq> It'd be one thing if it were *merely* pretending everything's paper, but it's pretending everything's paper and then doing ugly shit with it.
04:59:10 <ais523> that's way to printer-focused
04:59:13 <elliott> ais523: wow, really?
04:59:14 <zzo38> Both xdvi and Yap allow zooming in to see the individual dots using the printer's resolution.
04:59:16 <ais523> Word's line-wrapping algo depends on the printer!
04:59:24 <elliott> is that corruption thing true?
04:59:28 <MDude> http://esolangs.org/wiki/Tree [Using L-Systems to make growing tree programs might be nice.]
04:59:32 <zzo38> ais523: And that is dumb!
04:59:38 <evincar> elliott: I love paper books, but they may or may not be more stable than electronic storage.
04:59:50 <evincar> At least they have more graceful degradation when it comes to zombie apocalypses.
04:59:51 <elliott> paper books are dumb and stupid and using them is unpleasant
04:59:58 <elliott> eink is much nicer
04:59:58 <ais523> elliott: well, I'm not sure if my sources for it are reliable, but I didn't make it up myself
05:00:14 -!- jcp has joined.
05:00:15 <ais523> and I have first-hand experience of it happening with MS Publisher (which is not Word)
05:00:23 <elliott> amazing
05:00:25 <evincar> elliott: And when there is no more power due to the apocalypse, I will be reading my books by candlelight and you will be trying to beat zombies away with your dead Kindle.
05:00:28 <elliott> does it happen even before you try to print it?
05:00:32 <MDude> I haven't tried eink, mostly because all the devices I know of that have it are all too controlled for my liking.
05:00:35 <ais523> in Publisher, yes
05:00:36 <elliott> evincar: you make your technological decisions based on the apocalypse?
05:00:41 <elliott> evincar: I have a lot of guns to sell you
05:00:43 <ais523> I don't know about Word
05:01:00 <ais523> evincar: how does reading books by candlelight help you defeat zombies?
05:01:02 <evincar> elliott: Yes. I have faith that the longer we go without killing ourselves, the more likely we are to do so.
05:01:05 <pikhq> elliott: I don't like my books printed in vanishing ink.
05:01:17 <evincar> ais523: Maybe I'm reading the Zombie Survival Guide.
05:01:23 <ais523> I think the action you attributed to elliott (hitting them with a Kindle) is more plausible as a method of beating zombies
05:01:23 <zzo38> It is still dumb to have line wrapping and stuff like that depending on the printer, usually.
05:01:24 <elliott> evincar: and you choose to read fiction on certain media because of this ok
05:01:27 <ais523> at least in the short term
05:01:44 <pikhq> zzo38: Try "moronic".
05:01:45 <MDude> Batteries aren'tt hat hard to make, you just need to be able to refine two different metals with different properties.
05:01:51 <ais523> err, sorry, two bytes
05:01:59 <elliott> a zombie apocalypse would be a fun virtual-reality game
05:02:00 <pikhq> zzo38: They can't even use the One True Line-Breaking Algorithm.
05:02:03 <elliott> as long as it cuts out before your limbs get torn off
05:02:03 <zzo38> Maybe it makes sense if you are sending a plain text file directly to the printer, but it makes no sense to change lines and stuff depending on the printer if you are formatting the page layout by computer!
05:02:12 <evincar> elliott: Actually, no. I just like how paper feels, and how ink looks on paper. I like calligraphy and printing.
05:02:18 <elliott> lots of games would be more fun in a virtual reality format, actually
05:02:20 <evincar> But it's fun to shout about zombies.
05:02:26 <elliott> evincar: the whole point of e-ink is that it looks the same as ink on paper, you know
05:02:43 <elliott> i mean... it's electronic paper.
05:02:54 <evincar> Not the whole point.
05:03:07 <elliott> the rest of the point that isn't being a dynamic screen is that
05:03:11 <zzo38> pikhq: I have never heard of any "One True Line-Breaking Algorithm". I only know some things about TeX's algorithm and about a simple way where you just put whatever fits on one line
05:03:17 <evincar> That's part of it, sure, but it's also low-power, non-backlit, solid-state...
05:03:42 <pikhq> zzo38: That'd be TeX's.
05:03:44 <elliott> ok, but the point is, "it looks like ink on paper" is not a good argument for books against e-reader type things, because they have that property too :P
05:03:53 <evincar> No, they don't.
05:04:04 <elliott> yeah, they do
05:04:07 <evincar> They're a cheap (actually, expensive) approximation.
05:04:34 <evincar> Much lower resolution, and they don't have nearly the same optical qualities.
05:04:47 <evincar> Good ink on good paper has scattering and texture.
05:04:58 <zzo38> pikhq: I don't completely understand TeX's algorithm (I have read it a few times) but I know what it is trying to do, what the "badness" of a line is, what penalties, what demerits and everythinng else that goes into the calculation.
05:05:06 <evincar> There are subtle irregularities where the ink bled into the fiber.
05:05:11 <zzo38> In general, it works very well.
05:05:21 <elliott> http://upload.wikimedia.org/wikipedia/commons/5/54/Kindle_3_texture_%28crop%29.jpg are these subtle irregularities good enough for you
05:05:38 <elliott> (not that the kindle is necessarily ~the best electronic paper~)
05:06:01 <ais523> I dislike the Kindle for the sort of reasons that are guessable (I don't really like devices as locked down as that)
05:06:19 <pikhq> ais523: Hence my "vanishing ink" quip.
05:06:24 <evincar> That's another good point.
05:06:36 <evincar> Paper is freely accessible.
05:06:40 <elliott> ais523: I never said I liked the Kindle
05:06:41 <evincar> Also cheap to produce.
05:06:42 <ais523> e-ink screens don't look massively similar to paper, but I'm fine with them
05:06:43 <ais523> elliott: I know
05:06:49 <ais523> I never said you liked it either
05:07:01 <pikhq> Pretty common fault in ereaders, though.
05:07:01 <elliott> the pixel qi displays seem promising
05:07:14 <ais523> it's just that this conversation has been "state your opinion on things vaguely related to e-readers", so I did
05:07:19 <elliott> e-readers are stupid, as a separate device to computers
05:07:19 <evincar> And I can wheatpaste paper to the sides of buildings when the revolution starts. :P
05:07:22 <Sgeo> Wasn't some... thing based on pixel qi a bit of a flop?
05:07:29 <zzo38> And paper can be reused, recycle, and so on, too. And if I print out something, and don't need it, I can still use it as spare paper to write on the back, too.
05:07:34 <elliott> OH NO SOMEONE MADE A PRODUCT USING ANOTHER PRODUCT AND IT WAS A FLOP
05:07:39 <elliott> abandoning company forever
05:07:49 <evincar> Abandoning all related products forever.
05:07:57 <ais523> you know what I'm upset at? the demise of dotmatrix printers
05:08:03 <pikhq> elliott: Seems unlikely that eink displays will be common soon.
05:08:09 <elliott> dot matrix is stupid and dumb and loud but the output looks cool
05:08:15 <pikhq> elliott: Though if they do become common, I will be very happy.
05:08:18 <elliott> also they can be used as musical instruments
05:08:21 <ais523> they printed easily well enough to be readable, and apart from print quality are better than inkjet in pretty much every way
05:08:25 <evincar> ais523: Printing things in bold actually just printed them twice so the dots were darker.
05:08:31 <elliott> ais523: that's more inkjet's fault
05:08:34 <ais523> evincar: yep, well not exactly
05:08:36 <ais523> twice with an offset
05:08:37 <elliott> ais523: black and white laser printers should be about fifty times as popular as they are
05:08:39 <ais523> elliott: well, OK
05:08:43 <elliott> if not more
05:08:52 <evincar> No, not exactly. If it were exact, it wouldn't be any darker. ;)
05:08:55 <ais523> the main reason that I can tell that laser printers are unpopular for home use is physical size
05:08:56 <zzo38> In fact I often use the back of printed pages as spare paper.
05:09:11 <elliott> ais523: umm, they're not all big
05:09:17 <pikhq> elliott: But inkjets are cheap, and consumers don't consider the cost of ink.
05:09:29 <evincar> Ugh, fucking ink.
05:09:39 <ais523> pikhq: I'm worried, because inkjet marketing people have come across a consistent failing of the majority of humans
05:09:41 <ais523> and are exploiting it
05:09:44 <evincar> Proprietary cartridges and all that.
05:09:52 <pikhq> And crack's cheaper than ink.
05:09:54 <ais523> and I don't like seeing evidence that humans are generally easily fooled, even though I know it's true
05:09:58 <elliott> ais523: I can't find the few models I've seen generally recommended, but basically there are consumer b/w laser printers the same size as inkjets
05:10:00 <elliott> if not smaller
05:10:07 <ais523> elliott: what about weight?
05:10:09 <zzo38> Black and white laser printer is good quality. METAFONT can use high resolutions too, if needed.
05:10:10 <elliott> one of them was a Samsung, IIRC
05:10:13 <ais523> the thing is, they aren't typically sold in places like PC World
05:10:18 <zzo38> Make crack ink printer.
05:10:33 <elliott> ais523: umm, let me try and find one
05:10:46 <elliott> grr, it should be illegal to not list RRPs next to product listings on company sites
05:10:56 <ais523> it used to be that it was cheaper to buy ink if you bought a printer along with it
05:11:00 <elliott> (note: I don't necessarily think this)
05:11:05 <zzo38> What does RRPs means?
05:11:05 <ais523> but they fixed that by making the printers come with only tiny amounts of ink
05:11:11 <ais523> recommended retail price
05:11:17 <zzo38> OK.
05:11:20 <ais523> the price at which the manufacturer suggests that retailers sell it for
05:11:27 <ais523> it's typically a bit higher than the price at which they sell it to the retailer
05:11:45 <zzo38> Yes, if the manufacturer suggests prices then they should in fact put it there for public
05:11:46 <pikhq> And doesn't necessarily have anything to do with actual retail price.
05:11:59 * ais523 vaguely remembers trying to work out the tax situation on a chicken and spinach wrap in Canada
05:12:01 <pikhq> (usually does, though)
05:12:13 <ais523> in the UK, advertised prices typically include all relevant taxes
05:12:20 <elliott> ais523: well, this is the cheapest Brother monochrome laser printer, which I've seen recommended a lot; http://www.brother.co.uk/g3.cfm/s_page/215760/s_level/36180/s_product/HL2132U1 -- I'm trying to find the weight now
05:12:29 <elliott> 6.7 kg
05:12:34 <ais523> and if you want a tax breakdown, you ask for a separate receipt with it on
05:12:39 <elliott> it's also Compact, and it looks pretty small
05:12:53 <ais523> 6.7kg is pretty heavy compared to small inkjets
05:12:54 <pikhq> ais523: In the US, the relevant taxes can vary, heavily.
05:12:55 <elliott> 368 x 360 x 183 mm, apparently
05:12:59 -!- MDude has changed nick to MSleep.
05:13:06 <elliott> ais523: well, OK; is the weight of a printer its main selling point?
05:13:14 <zzo38> Does anyone still make the old clunky IBM PC keyboard?
05:13:21 <ais523> among people I've observed buying printers, apparently
05:13:24 <ais523> although less important than size
05:13:34 <elliott> zzo38: no, but there's enough of them to be sold for about a million years
05:13:38 <elliott> (not ltierally a million years)
05:13:43 <ais523> elliott: that looks about twice the size of the inkjet we have at home
05:13:49 -!- MSleep has changed nick to MDude.
05:14:00 <zzo38> But I know the protocol is different than modern computers
05:14:01 <ais523> although it's hard to tell from an image
05:14:02 <pikhq> Uh, Unicomp still manufactures the model M.
05:14:04 <elliott> ais523: the one we have here is a combined printer/scanner/"photocopier" (just combination of previous two), so it's huge, and terrible at both
05:14:11 <elliott> pikhq: no
05:14:11 <ais523> pictures may be worth a thousand words, but they're typically the wrong thousand words
05:14:11 -!- MDude has changed nick to MSleep.
05:14:17 <elliott> pikhq: they manufacture a similar keyboard
05:14:25 <zzo38> I don't mean the Model M, though. I mean the much older keyboard.
05:14:28 <elliott> it's not the same as the Model M, in non-pedantic ways
05:14:35 <pikhq> elliott: Oh?
05:14:54 <elliott> zzo38: this is one of the biggest still-manufactured keyboards you'll find: http://pckeyboards.stores.yahoo.net/122keyterkey.html
05:14:59 <zzo38> I mean the one with the function keys at the left.
05:15:19 <elliott> pikhq: well it's not scientific, but sufficiently obsessed people who have tried both definitely say that the customizer is less clacky; I think the springs are different, or maybe their oiling
05:15:31 <pikhq> zzo38: Ah, the XT keyboards.
05:15:31 <elliott> zzo38: yep, the one I linked has that
05:15:36 <elliott> or, hmm, it might be a different kind on the side
05:15:58 <elliott> ugh, stop it, guys, you'll make me into a keyboard nerd again, which I somehow managed to do and get over without having bought a single keyboard
05:16:08 <ais523> beautiful
05:16:21 <ais523> is that like the way I know far too much about computer games I've never played?
05:16:41 <elliott> possibly; the trick with me was to be sufficiently obsessed about it that I had to be absolutely sure whatever I bought would be the right choice
05:16:53 <elliott> amplified by the fact that good keyboards are pretty expensive
05:17:03 <elliott> then just sit there marred by indecision for a few weeks until you get bored and do something else
05:17:10 <lament> keyboards suck
05:17:12 <lament> typing sucks
05:17:25 <ais523> that's a bit like me deciding that any girlfriend I would be willing to accept at a girlfriend, compared to not having one, would have to be so unreasonably perfect that there's no point in looking for one in the first place
05:17:30 <zzo38> elliott: No, the one you linked is a terminal emulation keyboard.
05:17:42 <elliott> lament: you could try stopping
05:17:45 <elliott> ais523: see, it works in all areas of life
05:17:53 <lament> ais523: isn't that true
05:18:01 <oerjan> lament: i never hear you say anything except that things suck nowadays
05:18:03 <ais523> lament: well, my standards are pretty high
05:18:18 <lament> i never had a girlfriend because i was waiting for the perfect woman
05:18:20 <lament> then i found her
05:18:26 <lament> turns out, she's waiting for the perfect man :(
05:18:36 <ais523> fair enough
05:18:52 <ais523> there's also the problem that the very small number of people who might potentially qualify, probably do so for other people too
05:19:10 <ais523> however, I think there's more than a 50% chance you just made that up to sound poetic
05:19:25 <lament> you're overestimating me, it's a quote
05:20:26 <evincar> Every relationship I've been in has been fundamentally flawed in some way or another.
05:20:35 <lament> all in the same way
05:20:37 <lament> you were in them
05:20:45 <evincar> Only difference being that I got out of the most recent one quickly.
05:20:47 <evincar> Yes, actually.
05:20:56 <evincar> The important thing is to find someone who's compatibly flawed.
05:20:59 <evincar> Which I have, and I'm happy.
05:23:56 <ais523> hmm, did I just unintentionally compare girlfriends to keyboards?
05:24:14 <elliott> what's the difference
05:24:54 <lament> both are dirty and unhygienic yet you touch them all the time
05:24:58 <evincar> Only some keyboards have clits.
05:25:13 <evincar> To be blunt.
05:26:21 -!- oerjan has quit (Quit: Good night).
05:27:28 <evincar> Also, no keyboard I've ever owned has made me feel as shitty as any of my ex-(girl|boy)friends have.
05:28:15 <evincar> Nor as excellent? Well, there is programming...
05:28:19 <elliott> hmm, this is definitely going to be a horrible hack, maybe I'll do that esolang instead
05:28:25 <elliott> ais523: how soon do I need to fill that name
05:28:37 <ais523> you have a while
05:28:57 <elliott> is there a limit
05:29:00 <ais523> well, about 99% of a while, by now
05:29:05 <elliott> oh
05:29:07 <ais523> you've used some of it discussing keyboards
05:29:09 <elliott> how long is the while
05:29:21 <ais523> I'm not sure, I was approximating
05:29:30 <ais523> it's quite long as whiles go, though
05:30:47 <elliott> hmm
05:30:54 <elliott> I guess blips have to be directional to preserve nice things like symmetry
05:31:02 <elliott> still, it does make the nondeterminism mechanism a bit weird
05:31:30 <monqy> symmetry
05:31:59 <zzo38> I also have a new system, unlike @ it uses both CTRL and ALT, but ALT does not have the meaning like on most computers, instead ALT is like another SHIFT like the TOP and GREEK keys on a Space Cadet keyboard.
05:33:56 <elliott> ais523: monqy: http://sprunge.us/iRVi is this nice... is this worth having directionless blips for and thus losing symmetry
05:34:07 <elliott> it still works with directional blips, it's just weird for blips to suddenly change direction for no reason??
05:34:36 <monqy> directionless blips? as in wireworld or something else?
05:34:39 <ais523> it /needs/ directional blips, or there's no way to prevent it from having a chance of going back the way it cam
05:34:40 <ais523> *came
05:34:46 <elliott> just as in blips travel either vertically or horizontally
05:34:49 <elliott> depending on which way the wire is
05:34:52 <elliott> but it's always right or upwards
05:34:52 <monqy> oh
05:34:57 <elliott> or whatever
05:35:03 <elliott> ais523: no, just one direction is chosen arbitrarily
05:35:13 <elliott> it's hideous but it makes the nondeterminism i showed there ... nicer? kind of.........
05:35:23 <ais523> I mean, how does it know not to go left?
05:35:24 <zzo38> What if you have a tail? The tail can be in space, but I suppose you could also use a time tail instead
05:35:31 <elliott> ais523: because that's the rules
05:35:33 <elliott> it never goes left
05:35:34 <elliott> or down
05:35:52 <ais523> oh, up and right only?
05:35:56 <ais523> how do you do a loop, then?
05:36:14 <elliott> you don't, or there might be another type of wire, BUT LOOK OK IGNORE ALL THE PROBLEMS
05:36:20 <elliott> i'm just like...
05:36:25 <elliott> it's sad that i can't have directionless blimps..
05:36:31 <elliott> because it makes the splits nicer :(
05:36:41 <monqy> would wireworld-style blips work
05:37:32 <elliott> they're kind of ugly?? i think, maybe, i don't know
05:38:11 <ais523> elliott: they're head+tail
05:38:27 <ais523> tails are just locations where there was a head the turn before, and they block blips
05:38:32 <ais523> so blips are forced to keep moving the same way
05:39:00 <elliott> ais523: yeah, I know
05:39:06 <elliott> it's just kind of ugly :(
05:39:11 <monqy> I think wireworld blips would work in your example thing I think??? oh wait no. I forgot you wanted 1/2 probablity thing.
05:39:11 <elliott> is wireworld ugly
05:39:19 <monqy> well they might work but
05:39:23 <elliott> monqy: well it is kind of a cool way to do randomness....
05:39:34 <monqy> i was thinking of them going both ways
05:39:45 <monqy> it would be uglier to make it do random
05:39:46 <monqy> :(
05:40:08 <elliott> well but
05:40:15 <elliott> I was going to have an explicit thing to clone blips
05:40:17 <elliott> to make them go both ways
05:40:26 <elliott> it would be a different kind of join to +....
05:40:40 <evincar> Totally off-topic: does anyone have any suggestions for out-of-copyright (e.g., Project Gutenberg) texts I should use for voice acting samples?
05:40:43 <monqy> oh + is special?
05:41:07 <monqy> I was thinking |+- were all the same oops
05:41:25 <monqy> like just sugar for each other
05:41:52 <monqy> im too used to wireworld style :'(
05:42:08 <elliott> monqy: i don't know :(
05:42:12 <elliott> i want to do something.... different....
05:42:23 <ais523> elliott: make it different from Wireworld, or I'll be annoyed at you
05:42:33 <ais523> interestingly different, that is
05:42:46 <elliott> ais523: is wireworld bad
05:42:47 <ais523> you should probably allow unboundedly many blips on a square, and make it TC that way
05:42:48 <monqy> brainfuck on wires
05:42:50 <ais523> elliott: no, it's good
05:42:55 <ais523> but it's sub-TC without an infinite program
05:43:05 <elliott> ais523: that's non-good
05:43:15 <ais523> well, it's a cellular automaton, what did you expect?
05:43:37 <elliott> GoL is TC with a finite program, right?
05:44:14 <zzo38> Can you make a time tail to tell which direction to don't go?
05:44:16 <ais523> it's TC with a bounded-nonwhite program
05:44:32 <ais523> as in, the playfield has to be infinite, but only a finite portion needs initialising to nonblank
05:44:34 <elliott> good
05:44:36 <elliott> right
05:44:40 <elliott> but not the same for wireworld?
05:45:02 <Sgeo> Well, that makes sense, although what if you allow for infinite wire too?
05:45:03 <elliott> I kind of want to make my language not a CA somehow, like maybe a bully automaton???
05:45:06 <ais523> you need a repeating pattern for wireworld
05:45:17 <monqy> what if blips carried code would that be interesting help
05:45:23 <elliott> monqy: hidden state :(
05:45:26 <monqy> I mean
05:45:30 <ais523> is the "help" meme a specific elliott/monqy thing?
05:45:39 <elliott> i don't know who started it
05:45:39 <zzo38> monqy: Try.
05:45:39 <monqy> there was some way to get them to represent code
05:45:50 <zzo38> Try to see if you can make them carried code
05:45:51 <elliott> but it seems to apply to a wide range of situations in my life
05:45:58 <ais523> but it's mostly you two who use it
05:46:03 <evincar> i not know what do help
05:46:07 <ais523> nearly always pinging each other
05:46:09 <elliott> well that's his fault, if it wasn't him, I would be the person who used it
05:46:54 <monqy> elliott: is the state necessarily hidden or otherwise inelegant I cannot tell
05:47:02 <elliott> monqy: well do you want it to like
05:47:04 <elliott> dangle from the blip
05:47:09 <elliott> because that would take up a lot of space
05:47:10 <monqy> I do not know
05:48:27 <evincar> Crap, as if the Funciton didn't already make me want to make a 2D language, all this talk of cellular automata and Wireworld and whatnot have really sent me over the threshold.
05:48:28 <monqy> I was just thinking maybe making it self-extending/modifying would be interesting but maybe it wouldn't maybe it would ruin it help
05:48:36 <evincar> *the Function article
05:49:31 <monqy> I may have missed the design goals statement was there ever one
05:49:38 <monqy> missed/forgotten
05:55:42 <evincar> *the Funciton article
05:55:43 <evincar> Dammit.
05:57:40 <zzo38> Why do you type "help" after some sentences is the question mark broken on your computer?
05:59:01 <elliott> yes?
05:59:19 <monqy> help?
05:59:25 -!- lament has quit (Read error: Connection reset by peer).
05:59:37 <zzo38> O, it works now.
05:59:43 <elliott> no it's still broken?
05:59:55 <zzo38> O, I didn't know that.
06:01:22 <elliott> hmm, "bully automaton" doesn't even seem well-defined
06:02:09 <ais523> it isn't
06:02:28 <elliott> what about RUBE makes it not a CA?
06:02:34 <elliott> I realise it's about pushing things around
06:02:42 <elliott> but I'm not sure how that implies non-adjacent changes
06:04:39 -!- elliott has quit (Quit: Leaving).
06:05:17 -!- elliott has joined.
06:06:12 <elliott> I wonder if I should just use one character for wire rather than two (- and |)
06:06:22 <elliott> Can't think of a decent character for it, though; maybe =?
06:06:26 <ais523> elliott: consider dozer crate crate crate crate crate...
06:06:32 <ais523> the dozer moves the rightmost crate as well as all the others
06:06:45 <ais523> CAs don't have that sort of action at a distance
06:07:00 <elliott> ais523: ah
06:07:10 <ais523> (bully automata don't have a "speed of light" in the sense that CAs do, for that reason)
06:07:24 <elliott> CLEARLY THIS ALLOWS US TO SUBVERT THE IRL SPEED OF LIGHT
06:07:40 <elliott> SOMEONE GET THE BULLDOZER
06:08:07 <ais523> elliott: in real life, it doesn't work because you can't exceed the speed of sound that way
06:08:08 <ais523> and it's lower
06:08:20 <ais523> (it can be quite high in a sufficiently stiff object, but it's always lower than the speed of light)
06:08:22 <elliott> ais523: you can if you have a fast enough bulldozer
06:08:31 <ais523> no, as in, the speed of sound in crate
06:08:35 <elliott> SSSSHHH
06:08:36 <ais523> that's how the speed of sound is defined
06:08:39 <elliott> you just need a fast enough crate
06:08:42 <ais523> if you push one end, the soonest the other end reacts
06:08:51 <ais523> also, I like the phrase "speed of sound in crate"
06:09:01 <elliott> I like "fast enough crate"
06:10:36 <ais523> you probably mean stiff, not fast
06:11:49 <elliott> no
06:11:52 <elliott> i mean fast >:(
06:11:53 <evincar> I'll give you a sufficiently stiff object.
06:12:08 <evincar> To chime in with extremely poor comedic timing.
06:12:35 -!- Sgeo has quit (Ping timeout: 255 seconds).
06:14:33 <elliott> hmm, oh dear
06:16:53 <elliott> 16:47:13: <itidus20> Well, first of all.. why is there a 1 to 1 association between programming and language
06:16:53 <elliott> 16:47:29: <CakeProphet> itidus20: you'd make a great liberal arts major.
06:16:53 <elliott> lol
06:17:25 <monqy> 1 to 1 association between programming and language what does this even mean
06:17:53 <elliott> 17:11:09: <itidus20> we speak of turing complete a lot.. but what about CPU-complete? :D
06:17:55 <elliott> this is beautiful
06:18:08 <elliott> 17:12:40: <itidus20> I never shut up.. I am the bane of those who would read the logs
06:18:09 <elliott> 17:13:38: <Phantom_Hoover> itidus20, no, that's elliott.
06:18:09 <elliott> 17:13:54: <Phantom_Hoover> He takes great pride in the fact that he talks twice as much as his nearest contender.
06:18:13 <elliott> it might be more by now, Vorpal doesn't talk any more
06:18:22 <elliott> soon it will just be me
06:18:26 <elliott> alone
06:18:28 <elliott> forever
06:18:31 <monqy> ;_;
06:19:42 <evincar> I should talk more to compete with you.
06:19:46 <elliott> 17:29:57: <itidus20> Taneb: So going back to my point about PC/human. I think what has happened is that everyone in programming has been channeled into a very standard mindset of programming with many unnecessary bonds to mathematics.
06:19:46 <elliott> said like someone who wants to program but isn't any good at mathematics
06:19:47 <evincar> You both. You all.
06:19:51 <fizzie> ais523: What about those "rigid bodies" every physics book has? (Along with the massless ideal springs and other such devices.)
06:20:04 <elliott> fizzie: those sound useful can i have one
06:20:10 <elliott> also can you make that talking over time graph thing again
06:20:13 <elliott> i need to see my dominance............
06:20:24 <fizzie> elliott: I think the physicists keep them locked up somewhere.
06:20:47 <elliott> help, tell the physicists to unleash their irc graphs
06:21:20 <elliott> 17:44:10: <itidus20> so be afraid if they inject you with intelligence medicine, be afraid if they implant a chip in you, be afraid if they hook an EEG machine up to your cubicle
06:21:20 <elliott> im afraid
06:21:50 <fizzie> You want a talking-over-time-of-day graph or talking-over-just-plain-old-regular-time-as-in-for-the-last-year-or-so-whatever graph?
06:22:06 <elliott> fizzie: It... was the one that had a lot of misshapen colours piling on top of each other.
06:22:08 <elliott> The "home-grown" one.
06:22:11 <elliott> It was very wide.
06:22:13 <elliott> I think one pixel per hour?
06:22:24 <fizzie> Yes, that's the time-of-day one, I suppose.
06:22:37 <fizzie> The other one had one pixel per 15 days or so in some settings.
06:22:44 <fizzie> I'll see if I can figure out how to use the script.
06:22:46 <elliott> Same thing if you zoom out.
06:22:57 <elliott> I mean you could use the other one if Vorpal looks worse on it.
06:23:17 -!- azaq23 has quit (Quit: Leaving.).
06:23:32 <fizzie> The time-of-day graph takes time modulo a day, the other one doesn't. Anyway, let's see.
06:23:43 <fizzie> die "usage: perldoc $0" unless $network and $chan and $outfile; # ain't that fancy?
06:23:51 <elliott> "perldoc"
06:24:01 <elliott> oh i see
06:24:04 <elliott> that's a stupid help message :D
06:24:09 <elliott> omg arcane sentiment is updating reulglarly again
06:24:15 <fizzie> Yes, and the perldoc's out of date too.
06:25:40 <evincar> Obviously, die `perldoc $0` would be better.
06:27:44 <fizzie> "DBD::Pg::st execute failed: ERROR: operator does not exist: logs.etype = integer"
06:27:52 <fizzie> My poor script seems to have bitrotteded. :( :( :(
06:28:02 <elliott> :(
06:28:08 <evincar> Sigh. Is it so much to ask to have Linux + bidirectional pipes + extra default file descriptors for non-textual console I/O?
06:28:19 <elliott> linux has bidirectional pipes
06:28:20 <fizzie> Maybe this one is an old one.
06:28:33 <elliott> if your shell doesn't provide convenient ways to construct them, that's its problem
06:28:41 <evincar> Most of the time, but with the other thing.
06:28:45 <elliott> what
06:28:50 <monqy> what's a good shell
06:28:56 <elliott> monqy: dunno
06:29:10 <monqy> are they all bad :(
06:29:16 <elliott> maybe :(
06:29:23 <elliott> i use bash because i'm lazy, but when i wasn't feeling lazy I used zsh??
06:29:32 <evincar> Everything is bad.
06:29:32 <elliott> it is very big and bloated but it felt comfortable.......
06:29:35 <elliott> no
06:29:36 <elliott> @ isn't bad
06:30:11 <elliott> 19:00:51: <itidus20> basically it seems highly likely in this world of no free lunches that something dear would have to be sacrificed to eliminate software patents
06:30:33 <elliott> itidus20: so if someone introduced mandatory laws for senseless kitten-killing, because "there are no free lunches" it would necessarily cost something important to eliminate it?
06:30:44 <elliott> some things are just bad.
06:31:31 <elliott> 19:18:21: <Phantom_Hoover> OK there is a guy in #jesus who is a Wolfram employee and thinks Wolfram is a genius.
06:31:31 <elliott> oh my gojdfoijd
06:32:01 -!- Taneb has joined.
06:32:16 <elliott> 20:05:34: <oerjan> <evincar> Why not Xesus? Because Xs are cool (see the 90s).
06:32:17 <elliott> 20:05:51: <oerjan> in that case i think Xristos would be more traditional
06:32:17 <elliott> jason is that you
06:33:46 <evincar> Apparently not.
06:34:42 <Taneb> Technically it's not an X in Xristos. It's a chi.
06:35:53 <Taneb> Ξριστος
06:36:41 <elliott> 21:06:15: <oerjan> <lament> hoogle is even worse than haskell
06:36:41 <elliott> 21:06:30: <oerjan> are we _sure_ someone hasn't hacked lament's account?
06:36:43 <evincar> Taneb: Χριστός
06:36:48 <elliott> wait how is that out of character at all
06:36:56 <elliott> oh i'm done with the looges
06:37:00 <evincar> You used Xi instead of Chi.
06:37:11 <Taneb> I was demistrating what it would be if it was an x
06:37:24 <evincar> Oh. Ksristos.
06:37:38 <Taneb> Exactly
06:37:55 <elliott> more like VISTOS
06:38:10 <Taneb> Greeks didn't have a v?
06:38:23 <evincar> Inorite is the substance of agreement. Amirite is the substance of desperation.
06:38:42 <elliott> oh, elliottcraft needs inorite
06:38:50 <elliott> ais523: how's elliottcraft(ais) doing
06:38:58 <fizzie> elliott: Okay uh this is based on data from 2008-01-01 until now: http://zem.fi/~fis/foo1.png (and the times are probably EET/EEST).
06:39:01 <evincar> Taneb: Beta used to be [b], but now it's [v].
06:39:08 <ais523> evincar: haven't worked on it for a while
06:39:12 <ais523> *elliott
06:39:21 <evincar> ais523: Quit doing that. :P
06:39:23 <ais523> I have the mechanics worked out, I think
06:39:24 <Taneb> evincar: huh.
06:39:25 <evincar> I get all excited.
06:39:26 <ais523> just don't want to code it
06:39:26 <elliott> fizzie: Um surely not, Vorpal hasn't talked much in ages.
06:39:30 <ais523> evincar: stop talking right after elliott does
06:39:33 <elliott> And... what's with that massive slump?
06:39:43 <ais523> elliott: see, this is the problem with most-recently-spoken tabcomplete
06:39:55 <elliott> ais523: I don't have to tab-complete elliott, so I have no problems
06:39:58 <elliott> you're ai<tab>
06:40:05 <monqy> I typically type the first two letters manually, then tab
06:40:13 <elliott> me too, it seems
06:40:15 <evincar> Ditto.
06:40:16 <elliott> you're mo<tab>
06:40:18 <Taneb> I generally type the whole thing
06:40:20 <ais523> I do for most people
06:40:22 <pikhq> I like how our sleep schedules appear to be unified.
06:40:24 <ais523> but elliott is typically just e<tab>
06:40:26 <elliott> taneb is tan<tab> though
06:40:31 <elliott> pikhq is pik<tab>
06:40:38 <monqy> Taneb is ta<tab>
06:40:39 <Taneb> I find tabs awkward
06:40:47 <monqy> pikhq is pi<tab>
06:41:02 <elliott> Taneb: what
06:41:14 <Taneb> I do
06:41:20 <coppro> one thing I dislike about irssi is not having readline-like tabcomplete
06:41:35 <coppro> where it stopes at the first ambiguity, and a second \t lists the options
06:41:41 <Taneb> Because I rotate my hand to get to the tab which puts my thumb above the alt key
06:41:46 <Taneb> For alt-tabbing
06:41:58 <pikhq> You have a freak hand.
06:41:59 <Taneb> Which is fine, but it hurts my wrist a little
06:42:18 <evincar> coppro: I dislike that irssi doesn't have readline-like lots of things.
06:42:33 <evincar> But I gladly use it anyway, because I'm a hipster or something.
06:42:36 <monqy> I use my whatever it's called finget to tab
06:43:14 <fizzie> Even if Vorpal hadn't talked much this year at all, 2008-now still means 2008-2010 accounts for well over three fourths. But here's 2011-only for you if you like to see yourself talk a lot, http://zem.fi/~fis/foo2.png
06:43:17 <evincar> Dude.
06:43:21 <evincar> Old names of fingers.
06:43:36 <evincar> Index finger, fool's finger, leech- or physic-finger, and ear-finger.
06:43:45 <monqy> ear-finger. good name.
06:43:45 <evincar> I'm gonna use these.
06:43:50 <elliott> fizzie: DEFINITELY THINKING THAT THE PER-HOUR THING WILL BE MOST FAVOURABLE
06:43:53 <evincar> Better than "pinkie".
06:43:56 <evincar> I use little finger.
06:44:04 <elliott> Also how does ais523 talk more than PH.
06:44:26 <pikhq> ... elliott is *always* the most talkative person here?
06:44:26 <evincar> s/(li.*er)/"$1"/
06:44:34 -!- GreaseMonkey has joined.
06:44:34 -!- GreaseMonkey has quit (Changing host).
06:44:34 -!- GreaseMonkey has joined.
06:44:39 <elliott> pikhq: Um. Yes.
06:44:44 <monqy> elliott is very talkative.
06:44:47 <elliott> pikhq: That's a per-day thing though.
06:44:58 <elliott> If fizzie produces a per-hour graph there SHOULD be some shallow spots on it.
06:44:58 <elliott> SHOULD.
06:44:59 <monqy> whoa I just realized elliott is just e<tab> for me that's bizarre
06:45:01 <pikhq> Well, yes, but still.
06:45:08 <monqy> help
06:45:24 <pikhq> elliott: http://zem.fi/~fis/foo2.png Uh?
06:45:27 <elliott> pikhq: I think the last time I was not the most active was for the two weeks or so of unit crap
06:45:31 <fizzie> http://zem.fi/~fis/foo2r.png is the relative-talkiness version, basically just scales the total to 1 for each per-minute bin.
06:45:34 <elliott> Then I got the iPhone
06:45:35 <elliott> And
06:45:46 <elliott> Managed to still talk the most having only like two to three hours each day on an iPhone keyboard
06:45:56 <elliott> pikhq: That's not a per-hour graph.
06:46:01 <elliott> (Is it? fizzie?)
06:46:06 <elliott> Oh, I see how it works.
06:46:11 <elliott> I was thinking it was chronological.
06:46:14 <elliott> But it's a day average.
06:46:40 <elliott> fizzie: Which one's the really wide one? That's non-normalised per-hour, right?
06:46:41 <elliott> Or was it normalised.
06:46:48 <elliott> I frog-ret.
06:46:52 <evincar> Damn, I'm in "others"?
06:46:54 <evincar> This is unacceptable.
06:47:03 <evincar> I should speak
06:47:04 <pikhq> evincar: I'm just slightly surprised I'm not.
06:47:05 <evincar> in shorter
06:47:09 <evincar> broken sentences.
06:47:11 <elliott> I
06:47:11 <elliott> od
06:47:12 <elliott> that
06:47:12 <elliott> a
06:47:13 <elliott> lot
06:47:13 <elliott> its
06:47:13 <elliott> quite
06:47:14 <Taneb> I am simultaneously proud, dissapointed, and something else which I can't think of the name to about being in the others
06:47:15 <monqy> I guess I don't talk a lot, or there's some bias, or something.
06:47:15 <elliott> fun
06:47:16 <pikhq> I didn't think I was *that* talkative.
06:47:20 <monqy> also I do that broken thing too
06:47:24 <monqy> but not as much right now???
06:47:32 <monqy> maybe actually a lot right now
06:47:32 <monqy> help
06:47:34 <fizzie> That's the one that's modulo-a-day, yes. I don't think "the wide graph"'s per-hour, that'd be really wide for any appreciable length of time. I'll try to produce one for 2011 or something.
06:47:36 <pikhq> Though, elliott probably makes my point of reference screwy.
06:47:37 <elliott> i cant an help
06:47:59 <evincar> fizzie: Make one where adjacent statements by the same user are merged.
06:48:07 <elliott> evincar: NOOOOOOOOOOOOOooooooooooOOOOOOOOOOooOOOOOOOooOOOOOOOooooooooooooOOOOOOOOOOOOOOoooooo
06:48:07 <evincar> It'll cut down on the noise.
06:48:13 <evincar> Better yet, go by character count.
06:48:21 <evincar> elliott will still be ranked highly no doubt.
06:48:27 <fizzie> evincar: I think it does go by character count, but I'm not entirely sure.
06:48:31 <pikhq> Anyways, I really like how we seem to have an average sleep period in spite of spanning so many time zones.
06:48:44 <monqy> maybe if the graphy thing started after (person) joined for the first time
06:48:53 <evincar> I'm GMT-5 (2:50).
06:49:03 <elliott> Timezone is irrelevant.
06:49:09 <pikhq> I'm UTC-7 (00:50).
06:49:10 <evincar> So it's not terribly late yet.
06:49:15 <pikhq> elliott: Well, yes, you'd think that. :)
06:49:16 <elliott> You must sacrifice your schedule for the sake of the channel.
06:49:20 <monqy> I'm 2351 oops
06:49:25 <elliott> monqy: old,
06:49:34 <monqy> i accidentally let myself age
06:49:42 <elliott> it happens
06:50:11 <pikhq> Your sleep appears to be extraordinarily... Diverse.
06:50:22 <elliott> im sleep connosiuer
06:50:54 <evincar> Not connoiseur. That'd be too classy.
06:51:26 <monqy> sleep (derogatory term for connoiseur)
06:51:32 <evincar> I *always* read "im" as [Im], not [aIm].
06:51:46 <monqy> me too
06:51:49 <fizzie> Oh no, the other graph has managed to lose all X-axis labels. But http://zem.fi/~fis/foo3.png represents stuff from start of 2011; one pixel equals 4 hours, values taken as averages over 3-day Hamming-weighted windows to smooth the daily /\/\ variation out a bit. There's at least one no-elliott gap there.
06:52:06 <monqy> whenever I say "im", I read it like [Im]. it is a thing I do.
06:52:06 <fizzie> Whoops, that one doesn't merge elliott and elliott_.
06:52:10 <fizzie> The other one did.
06:52:18 <elliott> fizzie: >:E
06:52:24 <elliott> UNACCEPTABLE
06:52:34 <evincar> I am still not on there and this is unacceptable. :(
06:52:43 <evincar> I should come on here at all hours and yammer.
06:52:43 <elliott> How am I active simultaneously with my non-_-self
06:52:45 <elliott> X-D
06:52:46 <monqy> when did you first join does that a difference make
06:52:49 <elliott> Seriously, look at it
06:52:50 <evincar> Use the logs to take notes for posterity.
06:53:12 <elliott> monqy: I first joined in two thousand and six, first started saying things the second time I came here in the next year
06:53:23 <elliott> Have been annoying everyone since
06:53:26 <evincar> So I had this absurd dream last night.
06:53:27 <elliott> <evincar> Use the logs to take notes for posterity.
06:53:27 <elliott> sgeo
06:53:30 <monqy> I meant evincar but okay
06:53:33 <evincar> Which I am now going to talk about.
06:53:35 <evincar> At length.
06:53:37 <elliott> OK
06:53:38 <elliott> WELL
06:53:39 <elliott> i think
06:53:42 <elliott> that your dream sounds....
06:53:43 <elliott> intersting?
06:53:46 <elliott> but
06:53:47 <elliott> i mean
06:53:47 <evincar> So I was in this house.
06:53:48 <elliott> let's put it this way:
06:53:50 <evincar> It was a detailed house.
06:53:51 <elliott> I can type a lot faster than you
06:53:51 <monqy> I first joined in 2011 and talked on was it the third day of being here and only after prompted
06:53:52 <elliott> almost ecrtainly
06:53:53 <elliott> so basically
06:53:55 <elliott> also
06:53:56 <evincar> I wasn't aware that I was dreaming
06:53:57 <elliott> I don't care about errors
06:53:58 <elliott> of any kind
06:53:58 <evincar> This is unusual for me.
06:53:59 <elliott> so basically
06:54:01 <elliott> I can always outpace you
06:54:04 <elliott> so basically
06:54:07 <elliott> give up
06:54:08 <elliott> you lose
06:54:10 <fizzie> http://zem.fi/~fis/foo3b.png merged the '_' and ''.
06:54:11 <elliott> ok go on but this sounds shit
06:54:12 <elliott> your dream is shit :(
06:54:18 <Taneb> I came here in 2011 and had fun
06:54:23 <evincar> There was this friend of mine, and this girl, and we were all about eight years older.
06:54:24 <elliott> fizzie: that's better.
06:54:28 <elliott> fizzie: what's with that gap
06:54:32 <elliott> evincar: tell me more please thanks ok
06:54:40 <evincar> And someone suggested a threesome, and we all agreed, but then no one could agree on the mechanics, so we gave up.
06:54:53 <elliott> are all your dreams about threesomes
06:55:02 <evincar> Then she went in another room and when I followed her later I found she'd been eaten from the mid-thigh up by hell-hounds that lived in the closets.
06:55:10 <evincar> And I had to give them a stern talking-to.
06:55:21 <evincar> Actually that's about it.
06:55:29 <monqy> I think two dreams of mine (and I think the only two I talked about in here) made it into the quote database thing
06:55:50 <monqy> where by quote database thing I mean someone did `addquote on them
06:56:04 <elliott> `pastequotes monqy
06:56:05 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25498
06:56:21 <elliott> 362) <monqy> I've only watched bad movies about video game. I enjoyed every second of it.
06:56:21 <elliott> this was a good moment
06:57:01 <elliott> oh it was day of the zeptobot
06:57:10 <elliott> 04:32:52: <monqy> I've never seen a bot forget where it put its PRIVMSG before
06:57:29 <evincar> `pastequotes evincar
06:57:30 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32593
06:57:36 <monqy> amazing
06:57:39 <evincar> :(
06:58:04 <elliott> deserved
06:58:06 <elliott> >:(
06:58:06 <zzo38> What would it make if you replaced the rule of induction in Typographical Number Theory with the negation? Is it possible to define TNT in Haskell using only the type system? Can you represent even how the variable bindings in TNT works representable in Haskell type system only?
06:58:12 <elliott> 404) <monqy> my most fresh dream is one where I'm at a soup contest and a chicken really wants to participate but he's disqualified so he becomes the judge. when all the soups are done and he's ready to taste them he just stares at the soup and then I become the chicken and I really want to make soup
06:58:12 <elliott> monqy: me
06:59:26 <monqy> I have not had a nifty memorable dream in too long (i.e. weeks???) :(
06:59:33 <fizzie> elliott: The gap was from March 15th to 25th or so -- http://p.zem.fi/acrb has your per-day lines -- I think it was that [(anti)^n]optbot... thing.
06:59:56 <elliott> That wasn't really about the 'bots, but yes probably.
07:00:04 <elliott> monqy: but will you always remember malaria....
07:00:18 <fizzie> Well, okay; I can't say I was following too closely.
07:00:22 <zzo38> This week I had a dream about pokemon but other than that I did not remember. (But maybe, that is all there is! Is it?)
07:00:37 <monqy> elliott: it's probably not as memorable as a dream i affectionatley refer to as "afro jesus" for reasons apparent to those who know what the dream is (it was a good dream)
07:00:40 <evincar> It occurs to me that "Christ" means "anointed one", as a literal translation of "Messiah".
07:00:45 <evincar> Jesus covered in oil.
07:01:09 <monqy> elliott: oh right I remember one time saying in here that in my best dream I died at the beginning. that was that dream. it was a good dream.
07:01:10 <Taneb> I have three more quotes than monqy! Ha!
07:01:11 <elliott> monqy: i am interested,
07:01:29 <monqy> it is complicated and I sort of probably forgot a lot of it :(
07:01:31 <elliott> `delqutoe everything with taneb
07:01:33 <zzo38> evincar: So now you can do that if you make any art of Jesus Christ
07:01:35 <HackEgo> No output.
07:02:10 <Taneb> Okay, two of the quotes were kinda cheating
07:02:35 <monqy> at least two of mine are cheaty too
07:03:05 <monqy> unless you didn't count those
07:03:16 <Taneb> I counted them
07:04:40 <fizzie> (Just for completeness' sake, http://zem.fi/~fis/foo3r.png has the relativized version.)
07:05:08 <evincar> That is absurd.
07:05:38 <monqy> anyway the dream I refer to as "afro jesus" started by me being in a car with my family but then bad things happened and it started to bounce and then it fell in water (and I think I died but it is kind of ambiguous)
07:05:45 <zzo38> fizzie: What is that a graph of?
07:06:18 <fizzie> zzo38: It's a graph of how much different people have been talking on this channel during this year.
07:06:27 <monqy> I wake up in a beige shower chamber thing naked so I find clothes and put them on then walk down this corridor and find this group of people walking into this meeting room thing
07:07:53 <elliott> fizzie: I like how I'm fairly competitive with EVERYONE ELSE ON THE CHANNEL COMBINED.
07:08:22 <zzo38> elliott: Well, sort of.
07:08:25 <monqy> I forget what happened in there but then we walked down into this garden/auditorium thing to which a bunch of other people were walking and after a little while this white man in purple robes and with a huge afro walked onto the stage and called himself jesus and said some stuff I forget
07:08:43 <zzo38> But it still is.
07:09:20 <monqy> then he led us into a bathroom and there were paintings on the wall of this guy in dark magenta cloak thing with a bird beak mask and jesus called him death and taught us martial arts so we could fight death and warned us never to be alone or death will find us
07:09:38 <monqy> anyway I forget the rest except the end in which somehow I managed to be alone and then I was death the end
07:10:35 <monqy> I also have other dreams and I even remember some of some of them too.
07:11:23 <elliott> definitlrey hte best dream.
07:11:28 <zzo38> I have also had dreams whatever I remember I recorded and I also recorded other people dreams they told me about
07:11:52 <monqy> like one time I was walking around the world (which was incidentally concave) a bunch of times and then I ended up on a beach and it was getting stormy and there was this tall blue building so I went into it and then got into the elevator and there was a phone on the elevator and my parents called me and tried to convince me I was on drugs
07:12:02 <fizzie> elliott: It looks slightly worse for you if we count characters instead of lines -- http://zem.fi/~fis/foo3rc.png (though I'm not entirely certain the character-count went right)
07:12:34 <elliott> fizzie: I'm still king, yo.
07:12:44 <elliott> monqy: were you
07:12:52 <monqy> elliott: I don't know
07:13:01 <zzo38> monqy: Yes I have recorded that one you wrote on here before
07:13:21 <monqy> I don't record my dreams. maybe I should. :(
07:13:39 <zzo38> OK. I do record both my own and others. That is, if I can.
07:14:17 <zzo38> I also had a dream that there was a new game, it was a maze with signs that said "Retro" and if you hit one of the signs you lost the game. Someone was trying to do something bad with that game, so I tried to break what they were trying to do with a laser, but they immediately fixed it, so I used an ancient Greek gun, which would have permanently stopped them had I aimed properly.
07:14:55 <monqy> in the malaria dream I actually only told a very small part of it, such as to make a good punchline, but the whole of the part I remember of the dream is much better
07:15:28 <zzo38> Some of my dreams partially involve indescribable things, so I do not describe those parts.
07:15:34 <monqy> I'm going to school but the car breaks down so I walk and there's this big glass museum so I figure I should go inside to see what time it is to make sure I'm not late
07:15:41 <elliott> ah
07:16:07 <monqy> I look around, and all the digital clocks all spell "malaria", and the analogue clocks all point to "malaria", and then there's this dancing skeleton who look's like he's bad cgi
07:16:33 <elliott> malaria o'clock
07:16:39 <monqy> his eyes were all glowy red and stuff
07:16:51 <evincar> I'm off to bed to dream crazy things because of this.
07:17:05 <elliott> i have never had a dream this good
07:17:12 -!- evincar has quit (Quit: I hope you're happy.).
07:17:38 <monqy> everyone thinks he's evil so they run outside and I do too, but then I start dancing along and then his eyes turn cyan and he started playing using a ghost jumprope and he gave me half of a really big ghost jumprope but I am awful at jumprope so I just slammed it against the ground a lot and danced with him
07:17:51 <monqy> then someone taunted him or something and he turned red and did his evil dance again
07:18:01 <elliott> this is honestly amazing
07:18:19 <monqy> I think he was just misunderstood
07:18:23 <monqy> and wanted people to love him
07:18:30 <monqy> but they didn't because they misunderstood him
07:18:34 <elliott> deep
07:19:02 <Taneb> CGI skeletons are your friend
07:19:09 <Taneb> Just like Jason and the Argonauts
07:19:53 <zzo38> There is some story someone once made up. A clock maker once entered his store to find all the clocks showing a different time. The television signal was too fuzzy to see the time. So he called his wife. His wife looked at the clock and it just said "OK OK OK OK OK" (both the digital and analog clocks did that). So he called the police. The police first said why do you bother me just to ask me the time? That is stupid, so he looked and saw that
07:20:06 <elliott> monqy: tell more dream story......
07:20:21 <monqy> elliott: i was writing one but i am pausing to read this dream
07:20:23 <zzo38> He called the prime minister. The prime minister's clock had the same problem. He called everyone. Everyone's clock had the same problem.
07:20:34 <Taneb> I had a dream where I was in this mediaeval country and I married the king's daughter
07:20:43 <elliott> zzo38: cut off at " do you bother me just to ask me the time? That is stupid, so he looked and saw tha"
07:20:52 <Taneb> The king got pissed off at my and forced me to marry his other daughter too
07:20:55 <zzo38> t his clock also just says OK OK OK OK OK OK OK
07:21:03 <Taneb> Then disowned both of them and forced me into exile
07:21:14 <monqy> ok so I'm in this treehouse and see these policemen talking to children and filling out red papers and then one of them looks at me at eye level (maybe he grew big legs???) and reminds me it's native american appreciation day (continued on next line)
07:21:20 <Taneb> So I lived with two wives in a pretty awesome treehouse that had a jacuzzi
07:21:37 <zzo38> It was sunny nowhere except for the North Pole, so nobody could make a sundial to figure out the time.
07:21:53 <monqy> so he starts quizzing me on stuff but he's near incomprehensible and pronouncing everything wrong and when I tell him I don't understand he gets all mad and yells at me about how I should appreciate native americans more
07:21:54 <elliott> oh my god its like amazing dream christmas for me
07:22:08 <elliott> monqy learns about his internalised racism
07:22:28 <monqy> and I sneak a glance at the red paper and there's this disability grid pyramid thing and I am classified as having hearing problems and not appreciating native americans
07:23:02 <elliott> disabilities
07:23:37 <Taneb> My friend's uncle or somebody (some relative) calls tomatoes redskins
07:23:45 <Taneb> Or called. He may have died
07:23:47 <monqy> trying to remember more good dreams
07:24:40 <monqy> I almost remember one but nope :(
07:24:44 <zzo38> I had one dream: I was going to play Dungeons and Dragons, and they had a lot of radio machines and stuff for Dungeons and Dragons that we didn't have the equipment for.
07:25:10 <zzo38> There was different sections in different chapters, a compartment to put audio tapes in, a radio transmitter, a few rooms for puzzlement and some boxes on the bottom to keep creature types in. I was unable to figure out why it didn't work. And then I realized that it needed electricity to keep the creature types in the boxes, so I put batteries in and then the machine(s) worked.
07:25:29 <zzo38> It also had to be connected to a VCR, but the only reason for the VCR was to indicate the amplitudes. The VCR was connected to a TV. The TV had no use, neither did the audio tape compartments. Suddenly I arrived at my grandparents house and the machines were interfering with the TV so I turned it off.
07:26:08 <monqy> ooh I remembered one but it's kind of not very happy
07:26:22 <zzo38> Does my things ever make any sense to you?
07:26:27 <elliott> monqy: that is ok, zzo38 yes
07:26:42 <monqy> so I was at the library with my parents and we were leaving but my mother just ran out to the car and drove off without us and my father just disappeared
07:27:16 <monqy> I guess I knew my grandmother was at a nearby beach with my sisters so I walked over there to find her
07:28:13 <monqy> she was sitting at the top of this inflatable slide thing and when I climbed up I found she was wailing about wanting to die and stuff and when I tried to convince her that that was a bad idea and she should take me home instead she stepped and fumbled on the bouncy and laned on a baby and killed it
07:28:18 <monqy> also she died
07:28:23 <monqy> both her and the baby
07:29:03 <elliott> monqy has some internalised issues
07:30:05 <elliott> pikhq: what if i wrote a haskell binding to fltk....none exist....
07:30:12 <elliott> oh darn at least one does
07:30:19 <elliott> oh but it's unupdated
07:30:28 <pikhq> elliott: Hmmm.
07:30:39 <monqy> another dream: I was with a friend who isn't really a friend but my parents force me to pretend he is and we were at one of my one of my sisters' school and it was night and my parents were doing some unpacking or packing or something
07:30:47 <elliott> i haven't even really used fltk but it might be nice I guess????
07:31:21 <monqy> he opens this bag of doritos or something and I forget what happens next but then my dad sneaks up and gets all mad about us doing drugs and yells at me and chases me but eventually we go home
07:31:37 <elliott> monqy: can i be you.... and have dreams.... that you have...
07:31:58 <monqy> next day, at grandparents house, he tells me we should talk, so i follow him; one of my sisters starts following, but he doesn't want her to follow, so he splashes water in her face and she stops
07:32:32 <monqy> while going down the hallway he grabs me and takes me into the bathroom then locks the door and strangles me while yelling about what a disappointment I am
07:33:01 <elliott> so last time i said it i was joking about the internalised issues thing
07:33:59 <zzo38> Someone told me they once had one dream where it ended in credits.
07:34:16 <monqy> another dream all I remember about it is my dad chased me around the house and shot at me with a rifle
07:34:24 <monqy> ooh I just remembered another dream
07:34:35 <elliott> monqy: is your dad nice........
07:34:42 <elliott> also does this next dream involve your dad trying to kill you again
07:34:44 <monqy> he maybe kind of scares me
07:34:46 <monqy> no
07:34:49 <elliott> ok good
07:35:27 <zzo38> This is someone else's dream, someone I know personally, and who told me: The doctor asked me if I had been to the moon. I said no. The doctor asked me to prove it. He said he could not help me if I could not prove that I had never been to the moon.
07:35:44 <monqy> amazing
07:35:51 <monqy> ok so I'm at a theatre and I leave and then this guy in black with a limo tells me my whole family died and i have to come with him so i did and he takes me to foster care where this foster fother will foster father me and also this girl
07:36:09 <zzo38> How do you prove that you had never been to the moon? What is the best way to do so, if at all?
07:36:56 <monqy> anyway day ends, I wake up in a bed with him and the girl and it's inferred that he raped us both and I start freaking out a lot and I think "maybe this is a dream" but then I realize it's not a dream because it is too realistic and freak out even more
07:37:08 <monqy> I run to a phone and try calling for help but the phone is really irc and then i realize it is a dream
07:37:15 <elliott> i like how your dreams are getting progressively more disturbing.
07:37:20 <elliott> is this intentional
07:37:23 <monqy> no
07:37:40 <elliott> do you need a therapist i have the phone book open
07:38:29 <elliott> i wish i had cool dreams :(
07:38:31 <monqy> :(
07:39:44 <zzo38> I realize if a dream is a dream about half the time. Sometimes even when things are illogical, and I do not realized it is illogical and stuff while I am sleeping, I only realized when I woke up. Sometimes I have dream inside of another dream in another dream in another dream. I think once I had a dream where it changed every time I blink.
07:40:16 <monqy> I've had a few dreams within dreams but I think I forgot them all
07:40:17 <monqy> oops
07:40:40 <zzo38> I also forgot the specifics in those cases (if there are specifics, that is)
07:42:13 <monqy> I think in at least two dreams I've been in a hotel made of glass
07:42:38 <monqy> one of them was in a disconnected nearly-forgotten part the malaria dream
07:42:58 <elliott> i really really want internet-networked dreams
07:43:08 <elliott> like you just connect with a program
07:43:13 <elliott> put on some sort of head thing
07:43:16 <zzo38> Another dream of someone I know personally and who told me: The microwave timer was close to zero and was counting down normally, there was only a few seconds left, yet it never reached zero even in a few minutes. So, I tried to push stop, but it still continued. So, I unplugged it, which also didn't help. So I opened it and then got microwaved and died
07:43:18 <elliott> everyone clicks go
07:43:21 <elliott> you put down the computer
07:43:26 <elliott> and all your brains make up a multiplayer dream together
07:43:32 <monqy> that would be amazing
07:43:35 <elliott> and it records it somehow for you???
07:43:38 <elliott> but like
07:43:41 <elliott> you can download plugins
07:43:47 <elliott> so that when it mixes all your dreams together
07:43:51 <elliott> it also adds a computer with irc access??
07:43:58 <elliott> so you can be even more incoherent than usual
07:44:00 <olsner> I think I saw a movie about that
07:44:00 <elliott> it would be so great
07:44:13 <zzo38> I doubt that is possible but you can think about it if you want to.
07:44:31 <monqy> I remember there were also two other disconnected parts of the chicken/soup dream but i can't remember anything about them other than their existance
07:44:32 <elliott> ANYTHING IS POSSIBLE
07:44:49 <elliott> but yeah multiplayer lucid dreams = literally the best?
07:44:54 <monqy> I think one of them invovled a hotel shop, and the other a theatre
07:44:56 <coppro> that sounds awesome
07:45:01 <coppro> think of the sex you could have
07:45:21 <monqy> oh I remember another dream now
07:45:25 <elliott> if i ever become a genius neuroscientist-programmer
07:45:39 <zzo38> elliott: If you do, then you can try to make something like that if you want to.
07:45:39 <elliott> i'm going to make it cut the dream off whenever anyone starts to have sex just to ruin it for about 90 percent of the population
07:45:45 <elliott> HA HA HA I CONTROL YOU ALL
07:46:01 <elliott> ONLY CONNOISSEURS CAN EXPERIENCE THE MULTIPLAYER DREAMS
07:46:22 <zzo38> But don't force everyone to use everything if you don't want to do so, and also don't force yourself to control it if it is someone else's copy of the program/equipment
07:46:26 <monqy> I was back in elementary school but I knew I had already left there or something so maybe there was time travel involved and I was going in the haunted house but then I tripped and these girls jumped out and raped me oops
07:46:38 <monqy> (these were girls i knew from elementary school oops)
07:46:40 <elliott> recurring themes in monqy's dreams:
07:46:41 <elliott> - death
07:46:43 <elliott> - rape
07:46:48 <elliott> - skeletons????
07:46:50 <monqy> i maybe have problems????
07:47:02 <monqy> I think I remembered another dream but then immediately forgot it
07:47:04 <monqy> oops
07:47:28 <monqy> oh right
07:47:38 <coppro> zzo38: I am availablee now, although it is late.
07:47:39 -!- sebbu has joined.
07:47:39 -!- sebbu has quit (Changing host).
07:47:39 -!- sebbu has joined.
07:47:43 <coppro> *available
07:47:44 <monqy> it was part of a really big dream that I like entirely forgot
07:48:08 <coppro> I will be up for a while still in order to pull a move in BlogNomic
07:48:22 <zzo38> coppro: Yes I know it is late. But still, have you read it? I even added some stuff since earlier today
07:48:37 <monqy> anyway I was in these underground passageways thing and then this ke$ha impostor appears and tries to seduce me but I run away and then her body turns into a spider and she climbs on the walls and chases me and then I run home and tell my irc friends about it (that was part of the dream)
07:49:07 <elliott> <elliott> recurring themes in monqy's dreams:
07:49:07 <elliott> <elliott> - death
07:49:08 <elliott> <elliott> - rape
07:49:08 <elliott> <elliott> - skeletons????
07:49:08 <elliott> - irc
07:49:15 <monqy> help
07:49:22 <coppro> zzo38: can you please link again?
07:49:23 <coppro> thanks
07:49:46 <zzo38> coppro: OK. https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language Same URL as before, but some additional contents.
07:49:47 <elliott> monqy: i'm curious did you just realise you have problems now in the course of telling these dreams
07:49:52 <elliott> it's a lot funnier if the answer is yes so can it be yes
07:49:58 <monqy> im not sure
07:50:03 <monqy> maybe yes
07:50:19 <monqy> i don't really think i have problems but maybe i do
07:50:22 <monqy> does that make it funnier
07:51:02 <monqy> oh right and a lot of my dreams involve roadtrips but I think I've forgotten most of those
07:51:17 <elliott> how many road trips have you been on
07:51:26 <monqy> like maybe 2 but they were both awful
07:51:50 <monqy> 2 or more
07:52:02 <monqy> but the big 2 are the probably the reasons i have the dreams
07:52:02 <elliott> do monkeys usually go on road trips
07:52:27 <zzo38> When reviewing, I realized I had a few dreams involving pokemon in some different ways, at different times.
07:52:29 <monqy> last summer and the summer before my family dragged me to ohio in a car road trip to be with relatives etc
07:52:35 <monqy> and I guess I have nightmares about this now
07:52:52 <monqy> ohio the usa state
07:53:09 <monqy> for roadtrip length, imagine me starting in california, because that's where i live.
07:53:09 <elliott> are there other ohios
07:53:33 <monqy> I dunno maybe
07:53:54 <elliott> oh you are from califroania THIS XPEXPLAINS EVERYTHING.........
07:54:00 <monqy> what does it explain help
07:54:15 <elliott> i don't know aren't people from california meant to be weird isnt that like the tsrereoroeoteotoertoeotosertotsoertype
07:54:22 <monqy> I dunno
07:54:32 <monqy> everyone I know is pretty boring
07:54:36 <monqy> then again I don't know people
07:54:36 <monqy> so
07:54:40 <zzo38> I had one dream where the driver of a subway train drove backwards because she is a druid.
07:55:27 <zzo38> ... (You drive backwards because you are a druid?) ??
07:57:06 <monqy> I'm afraid I'm all out of dreams I remember :(
07:57:10 <monqy> at least
07:57:14 <monqy> remember sufficiently to be interesting
07:57:21 <monqy> or that aren't horrible embarrassing
07:57:39 <monqy> actually I guess maybe they aren't
07:57:45 <monqy> but whatever I don't like them
07:58:26 <monqy> oh I just remembered a really early dream I had
07:58:30 <monqy> my first nightmare, I think
07:58:35 <monqy> from when I was a very little kid
07:58:38 <monqy> it's also amazing
07:58:39 <elliott> that is good memroises,
07:58:45 <elliott> im not sogood memroisrsoies,
07:58:45 <zzo38> I had other dreams although some of them are indescribable or have other reasons to don't say, including requiring extremely long description or being too mad to you or something else I don't know
07:59:37 <zzo38> But if you want to, you can review everything I have recorded: http://zzo38computer.cjb.net/misc/weird_dream/dream.txt
07:59:44 <elliott> monqy are you telling us,
07:59:46 <monqy> ok so I was visiting my nextdoor neighbors house which was like a mansion in this dream and everything turned black and their dozens of cats turned into alligators/crocodiles/idontrmemenber/help and were in dishwashers and chased me in the dishwashers
07:59:49 <elliott> oh
07:59:55 <elliott> wow
08:00:19 <monqy> a very profound dream
08:01:11 <elliott> better multiplayer.......
08:01:25 <zzo38> Do you sometimes use the word "help" as if it were a question mark? (I don't know for sure)
08:02:07 <monqy> were it a question mark I think it would be incorrect in most cases
08:02:10 <monqy> or at least
08:02:16 <monqy> incorrect if you're not me???? HELP????
08:02:36 <monqy> I just remembered another dumb small dream I had
08:02:44 <zzo38> Maybe in most cases, but maybe not in all cases.
08:02:56 <monqy> I was in rainbow land and there was this pool of rainbow goo and I touched the rainbow goo and then I melted into rainbow goo
08:03:18 * elliott tries sometihing,
08:03:29 <elliott> (im trying to write a pogrom)
08:03:32 <monqy> sometimes I die in dreams and it always feels the same. it actually kind of feels good. melting into the rainbow goo felt like death, if i recall correctly.
08:04:04 <monqy> it's been a while since I died in a dream though so I forget exactly how it feels
08:05:09 <elliott> is this how your religious beliefs work
08:05:21 <monqy> i dont think i have religious belifes
08:05:29 <elliott> oh
08:05:37 <monqy> it is just how diyeng feels like in dreams for me??
08:06:04 <monqy> sometimes my dreams have afterlives and other weird stuff too
08:09:44 <monqy> apparently I've also told you guys about the bootleg garfield dream, which i happened to forget until now
08:10:02 <monqy> dream.txt is very educational
08:10:51 <monqy> well either that or someone else had the same dream which is real spooky
08:12:49 <olsner> probably pretty common to have the same dream as someone else at some time
08:15:44 <monqy> apparently I've also previously described the walking around the world and blue building on a beach one. I found this out by grepping for garfield in the logs, though.
08:16:02 <elliott> ?pl \x -> signalDisconnect <$> liftIO (widget `on` event $ x)
08:16:03 <lambdabot> (signalDisconnect <$>) . liftIO . (widget `on` event)
08:16:40 <elliott> ?pl \widget event -> fromAddHandler $ fmap signalDisconnect . liftIO . on widget event
08:16:40 <lambdabot> ((fromAddHandler . ((fmap signalDisconnect . liftIO) .)) .) . on
08:16:43 <elliott> aww
08:16:45 <elliott> ?pl \event -> fromAddHandler $ fmap signalDisconnect . liftIO . on widget event
08:16:46 <lambdabot> fromAddHandler . ((fmap signalDisconnect . liftIO) .) . on widget
08:16:49 <elliott> aww
08:18:51 -!- Taneb has quit (Ping timeout: 260 seconds).
08:22:07 <zzo38> monqy: Most likely, I have recorded it when you have typed it somewhere that I have read it. Although it is also possible someone else has the same dream.
08:22:24 <zzo38> But it would seem unlikely that to be the case.
08:22:25 <monqy> zzo38: i found it in the logs. i must have just forgotten describing it
08:23:10 <monqy> the thing about using a phone and the phone being irc was also me, apparently. I was describing just the ending of the dream in which my family died and then I got raped
08:24:23 <zzo38> The file does have stuff that isn't yours, though. So you can read that other kind of stuff too!
08:24:46 <monqy> it's great i bookmarked it
08:24:47 <zzo38> Some of it are attempts to describe my own dream.
08:29:41 -!- Taneb has joined.
08:30:12 <monqy> I remember in at least one of my dreams I figured out it was a dream and tried convincing everyone else in the dream that it was a dream but they didn't listen, which frustrated me.
08:31:48 <elliott> hmm oh dear....
08:32:11 <elliott> pikhq: that FLTK idea sounds good :-P
08:32:23 <elliott> gtk is doing bad things :(
08:34:32 <ais523> elliott: what was that esolang you're designing called? it's scrolled past the end of my scrollback, which is pretty long
08:34:52 <elliott> ais523: jonny something f asterisk asterisk k
08:35:17 <monqy> My name is Johny, what the F**K?????
08:35:37 <ais523> ah, that's it
08:37:05 <zzo38> monqy: That happened to me too once where I figured out it is a dream and the other people did not believe me
08:38:26 <zzo38> Do you know how to encode Fermat's Last Theorem into Typographical Number Theory?
08:44:00 <elliott> ugh, this is supremely ugly
08:44:59 <zzo38> Did you know your messages can even be received in the middle of a WHOIS response?
08:47:13 -!- zzo38 has quit (Quit: I think I will rest now. I have to rest too.).
09:01:07 <elliott> ?pl fmap . const
09:01:08 <lambdabot> fmap . const
09:01:49 <monqy> (<$)?
09:02:00 <monqy> :t fmap . const
09:02:01 <lambdabot> forall a b (f :: * -> *). (Functor f) => b -> f a -> f b
09:02:03 <monqy> :t (<$)
09:02:05 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
09:03:27 <monqy> (how did i remember that i've never even used the function)
09:09:15 <elliott> wow there is something fucked about this
09:09:25 <elliott> how is it this slow
09:09:35 <monqy> help
09:13:44 <elliott> wha
09:13:44 <elliott> t
09:14:03 <Taneb> He is being accosted by ninjae
09:15:58 <monqy> i do not know how to help so i need help helping help
09:20:10 <elliott> ?undo \m ps -> do x <- m; set ps x; return x
09:20:10 <lambdabot> \ m ps -> m >>= \ x -> set ps x >> return x
09:20:13 <elliott> ?. pl undo \m ps -> do x <- m; set ps x; return x
09:20:14 <lambdabot> (. flip (ap . ((>>) .) . set) return) . (>>=)
09:20:15 <elliott> meh
09:20:25 <elliott> ?. pl undo \m ps -> do x <- m; set x ps; return x
09:20:26 <lambdabot> (. flip (ap . ((>>) .) . flip set) return) . (>>=)
09:20:28 <elliott> meh
09:35:44 -!- itidus21 has joined.
09:35:54 <elliott> eek, now there's two of 'im
09:36:23 -!- itidus20 has quit (Ping timeout: 240 seconds).
09:36:56 <elliott> src/CRUD.hs:10:18:
09:36:56 <elliott> Could not find module `Data.Map':
09:36:56 <elliott> It is a member of the hidden package `containers-0.4.0.0'.
09:36:56 <elliott> Perhaps you need to add `containers' to the build-depends in your .cabal file.
09:36:56 <elliott> Use -v to see a list of the files searched for.
09:36:57 <elliott> ugh
09:37:25 <monqy> crud.hs
09:44:28 <Deewiant> Gotta love containers eh
09:47:44 -!- yorick has quit (Ping timeout: 240 seconds).
09:48:05 -!- yorick has joined.
09:50:08 <Taneb> Well, my MIBBLII programming is getting better
09:50:28 -!- ais523 has quit (Remote host closed the connection).
09:51:17 <Taneb> I now end up with λnfx.f(nx) when I try to do a successor function rather than λnfx.f x (f (f x))
09:55:39 <elliott> Deewiant: It's not really containers' fault
09:55:44 <elliott> Deewiant: It's the cabal file being wrong
09:56:00 <elliott> I mean, I get that they're example programs and not part of the library, but if they build automatically they should have their dependencies in roder
09:56:01 <elliott> order
09:56:52 <elliott> It's missing some other files too
09:59:19 -!- monqy has quit (Quit: hello).
10:01:15 -!- FireyFly has joined.
10:04:00 <Taneb> Gotcha!
10:04:22 <Taneb> +,[[++-]+] is the church-numeral succ function in MIBBLLII!
10:07:58 -!- PatashuWarg has joined.
10:18:00 -!- FireyFly has changed nick to FireFly.
10:18:28 <coppro> :t map Just
10:18:29 <lambdabot> forall a. [a] -> [Maybe a]
10:22:10 <elliott> :t fmap pure
10:22:11 <lambdabot> forall a (f :: * -> *) (f1 :: * -> *). (Applicative f, Functor f1) => f1 a -> f1 (f a)
10:22:14 <elliott> coppro: GeneralisedTFY
10:22:24 <elliott> lambdabot: you should really omit the kind signatures, they're noisy
10:22:53 <coppro> elliott: what.
10:24:03 <elliott> > fmap pure [0,9,0] :: [Maybe Int]
10:24:04 <lambdabot> [Just 0,Just 9,Just 0]
10:24:08 <elliott> coppro: I generalised that for you.
10:24:13 <coppro> elliott: ah, thanks
10:24:29 <elliott> coppro: Disclaimer: Generalisation may not necessarily be a good idea. :p
10:24:45 <Taneb> I am somehow now regretting uninstalling Internet Explorere
10:25:16 <coppro> elliott: lies
10:25:36 <elliott> Taneb: I doubt you actually uninstalled it
10:25:42 <elliott> You might have removed a shortcut or two :P
10:25:48 <elliott> (Uninstalling IE is somewhat painful)
10:25:56 <coppro> how goes our freenode GRF
10:26:03 <elliott> The new system isn't up yet, is it?
10:26:06 <coppro> dunno
10:26:16 <coppro> why would I bother caring about that?
10:26:25 <elliott> Because you're asking questions about it?
10:26:32 <Taneb> No, I uninstalled it
10:26:47 <elliott> Taneb: You really didn't, unless your Windows Explorer also doesn't work.
10:27:05 <elliott> Fully uninstalling IE involves ripping about five DLLs out of the Windows folder at the very least
10:27:23 <elliott> The "uninstallation" mechanism provided by the add/remove OS features dialogue just removes the shortcuts
10:27:28 <cheater__> > let r = "re" ++ r in "Internet Explo" ++ r
10:27:30 <lambdabot> "Internet Explorererererererererererererererererererererererererererererere...
10:27:36 <elliott> And maybe iexplore.exe, but that's just a thin shell around the DLL.
10:28:04 -!- BeholdMyGlory has joined.
10:28:31 <cheater__> i think www.ubuntu.com has an internet explorer deinstaller
10:29:28 -!- Taneb has quit (Remote host closed the connection).
10:35:31 -!- Taneb has joined.
10:35:51 <Taneb> Opera installer: only needs Opera closed, takes seconds.
10:36:12 <NihilistDandy> Opera browser: Ugly, bloated piece of shit
10:36:16 <Taneb> IE installer: needs a whole bunch of things close, makes IRC crash, takes ages, and needs me to restart
10:36:31 <NihilistDandy> IE browser: Ugly, bloated piece of shit
10:36:34 <NihilistDandy> WINNER?
10:36:36 <NihilistDandy> OPERA
10:36:46 <Taneb> *shrug* I use Chrome.
10:36:52 <Taneb> I just like to keep my options open
10:37:05 <NihilistDandy> Chrome browser: Google's last step to sentience
10:37:17 <NihilistDandy> ASSIMILATE
10:37:55 <PatashuWarg> > let a = "a" ++ a in "here comes another chinese earthquake " ++ a
10:37:57 <lambdabot> "here comes another chinese earthquake aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
10:38:03 <PatashuWarg> wait I got them mixed up
10:38:11 <PatashuWarg> > let br = "br" ++ br in "here comes another chinese earthquake " ++ br
10:38:13 <lambdabot> "here comes another chinese earthquake brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr...
10:38:17 <PatashuWarg> much better
10:38:33 <NihilistDandy> Don't you mean "bl"
10:38:33 <NihilistDandy> ?
10:38:57 <NihilistDandy> Sorry, #not-math is rubbing off on me
10:39:01 <PatashuWarg> racist
10:39:17 <NihilistDandy> I don't wear much lace, as it happens
10:39:24 * NihilistDandy is on a lorr
10:40:00 <NihilistDandy> I'm done now
10:40:25 <Taneb> Firefox installer: really good
10:40:39 <Taneb> Also, firefox.org is spam
10:40:44 <Taneb> Don't visit it
10:41:13 <NihilistDandy> But I'm so tempted now
10:41:17 <elliott> Isn't not-math terrible
10:41:24 <elliott> I forget which one Quadrescence has his little band of idiots in
10:41:39 <NihilistDandy> elliott: Sort of, yes. And Quadrescence doesn't seem to talk much
10:42:02 <elliott> Libster? dixon?
10:42:09 <NihilistDandy> Yeah, Libster's there
10:42:14 <NihilistDandy> I kinda like CESSMASTER
10:42:21 <NihilistDandy> He's a masshole, and we talk about New England
10:42:27 <coppro> k ima win blognomic this week
10:42:36 <elliott> Yeah, Libster is the guy who trolled weakly here for about three days and then got banned after he decided to spam.
10:43:01 <elliott> dixon was banned for clogging up the channel with bullshit and harrassment with Quadrescence for an entire day... and CESSMASTER's been here, but I don't think for very long or anything.
10:43:27 <NihilistDandy> thermopylae's kind of an asshole, too
10:43:41 <elliott> Don't know that name. But I think I'll avoid the place. :p
10:43:45 <NihilistDandy> Or rather, he claims to find me insufferable, so that's my natural reaction
10:43:52 <NihilistDandy> He also hangs out in #math
10:43:58 <NihilistDandy> He's some sort of professor or something
10:44:33 <elliott> Is #math terrible because it lacks TRWBW or good because it lacks TRWBW, I know absolutely nothing about them other than that they're controversial
10:44:40 <elliott> oklopol likes him, I seem to recall coppro having an opinion on him
10:45:29 <NihilistDandy> TRWBW?
10:45:29 <cheater__> #math is terrible for having had TRWBW at all
10:45:44 <elliott> cheater__: So he's as unto an immaculate god, then.
10:46:33 <cheater__> elliott: i think #python aspies::TRWBW == golden paint :: mother lode
10:46:41 -!- GreaseMonkey has quit (Quit: The Other Game).
10:47:36 <elliott> It is quite remarkable how far along the path to decency a person could get just by taking the opposite of whatever you say. I guess it has to be restricted to the few coherent statements, or that's not really well-defined.
10:48:30 <NihilistDandy> lol
10:48:37 <cheater__> but is it then provably closed under multiplication?
10:49:15 <NihilistDandy> Depends how multiplication's defined in the group, I suppose.
10:49:49 <cheater__> it's pretty much x (DACHGESCHOSS) y
10:50:20 <NihilistDandy> Then yes, I think the proof is obvious, and I leave it as an exercise for the reader.
10:51:56 <cheater__> ah, how applicative of you.
11:33:00 -!- boily has joined.
11:38:36 <Taneb> I HAVE A WORKING MIBBLLII CAT PROGRAM!
11:38:38 <Taneb> ,[<>][,[<>]]
11:41:50 * elliott briefly considers tempting copumpkin into optimising something to unsafeCoerce; decides to not Summon the Beast.
11:42:14 <Taneb> IT'S SO SIMPLE AND ELEGANT
11:50:27 <Taneb> Arrgh, stupid Python data hiding
11:50:42 <cheater__> what's stupid about it
11:50:53 <Taneb> It's doing exactly what I don't want it to
11:53:17 <cheater__> well then it just sounds like it's doing exactly the right thing, modulo being exactly wrong
11:54:39 <Taneb> The bad thing is, what it's doing is exactly right
11:54:58 <Taneb> I want to access a global variable from the middle of a function
11:55:16 <cheater__> and?
11:55:19 <cheater__> what's wrong with that
11:55:27 <cheater__> f = 2
11:55:30 <cheater__> def foo():
11:55:35 <cheater__> print f # 2
11:56:12 <elliott> Taneb: "global foo"
11:56:17 <elliott> put that at the top of the function
11:56:29 <elliott> python makes no distinction between variable declaration and variable assignment because van rossum is a moron
11:56:34 <elliott> so there's that instead.
11:57:03 <CakeProphet> variable declaration in Python? no such thing.
11:57:06 <CakeProphet> except global.
11:57:16 <elliott> CakeProphet: yes there is, otherwise no variables would exist.
11:57:23 <CakeProphet> um, no.
11:57:25 <elliott> they are simply declared automatically if you try to assign to a variable that does not exist.
11:57:50 <elliott> (where "exist" means "exist in this scope")
11:57:58 <elliott> (whereas reading a variable automatically ascends scopes because lol python)
11:58:03 <CakeProphet> I don't really see how that is a meaningful declaration, but okay, that's fine.
11:58:44 <CakeProphet> so I can "declare" variables at runtime in Python, I guess?
11:58:52 <Taneb> Thanks, people
11:58:55 <Taneb> Got it working
11:59:05 <elliott> CakeProphet: more or less everything in Python happens at runtim
11:59:05 <elliott> e
11:59:28 <CakeProphet> ..yes... I know how that works. I am just fuzzy on what it means to declare a variable then.
11:59:34 <CakeProphet> if it apparently means nothing in the case of Python.
11:59:38 <elliott> s/declare/create/, if it makes you happier
11:59:48 <CakeProphet> yes, that does.
11:59:51 <elliott> "inserting into a hash table", if you want to think about things from an implementation point of view
11:59:54 <CakeProphet> I think of a declaration as a static thing.
12:00:37 <CakeProphet> to catch typos and related errors statically instead of at runtime.
12:00:45 -!- itidus21 has changed nick to itidus20.
12:00:51 <CakeProphet> type errors as well, in the case of static typed languages.
12:01:49 <elliott> that's a very dynamic-language pov.
12:02:04 <CakeProphet> elliott: actually I think local variables are stored in an array and the compilation stage transforms local variables into indexes?
12:02:08 <elliott> admittedly, so is the idea of declaring at runtime, but I was simply analogising there because Python is a clusterfuck
12:02:35 <elliott> CakeProphet: indeed, the "implementation point of view" (i.e. don't tell me what it does, just tell me how it does it) is rarely how things actually happen.
12:02:57 <elliott> see also: C is a bad fit for current CPUs
12:03:00 <CakeProphet> that sounds counterintuitive to me, but okay.
12:03:10 <Taneb> brb
12:03:12 <elliott> well, it is; it's a bad way to view things
12:03:18 <CakeProphet> since it's the... implemtnation point of view. I would expect it to reflect the, uh, implementation.
12:03:46 <CakeProphet> maybe there's the "right implementation point of view, and the wrong ones. :P
12:04:13 <elliott> Well, if you really want to know How It Works, you need to start studying microcode.
12:04:16 -!- Phantom_Hoover has joined.
12:04:28 <CakeProphet> no not necessarily on the lowest level.
12:04:44 <CakeProphet> it's a good idea to know what's going on a layer below though, whatever that means.
12:04:45 <elliott> Then accept the hashtable explanation as an abstraction. :p
12:07:16 <CakeProphet> I wonder what would happen if Java added a dynamic keyword
12:07:20 <CakeProphet> for dynamic typing.
12:08:00 <elliott> it's called Object
12:08:18 <CakeProphet> well, kind of.
12:08:35 <fizzie> You just need to say "dictionary" instead of "hashtable" and then it immediately sounds more abstract.
12:08:36 <CakeProphet> it will statically error if you try to access a method that is not declared as part of Object, I believe?
12:08:56 <CakeProphet> er is method dispatch a runtime error in Java? Can't recall.
12:09:09 <elliott> CakeProphet: ((Foo)obj).x()
12:09:21 <elliott> If you want duck typing then you need reflection, I think.
12:09:27 <Taneb> Back
12:09:30 <elliott> Why you'd want such a thing I can't fathom.
12:09:38 <Taneb> I've had a thought
12:09:41 <CakeProphet> you just need laxer compile time errors for duck typing.
12:09:54 <elliott> Another "dynamic" view of the world.
12:09:59 <CakeProphet> ...well, right.
12:10:07 <CakeProphet> if we are talking about dynamic language constructs
12:10:08 <elliott> Type errors and the like aren't additional checks that you can just remove and have everything work out. :p
12:10:09 <CakeProphet> this is a good view to use.
12:10:16 <Taneb> Combinaroty logic is like a program followed by input, which returns another program and input, which is then executed
12:10:17 <elliott> (Otherwise you couldn't do any sort of optimisation based on static guarantees.)
12:10:21 <elliott> And Java is a static language, so.
12:10:37 <CakeProphet> yeah I wasn't saying it was practical from an implemtnation point of view.
12:10:42 <CakeProphet> spelled correctly.
12:10:52 <elliott> Right.
12:11:50 <CakeProphet> Haskell allows Dynamic by actually making it statically typed, so that it can still optimize, though not as much?
12:12:05 <elliott> That, um. No.
12:12:21 <CakeProphet> so Dynamic is literally dynamic typing?
12:12:22 <elliott> Dynamic is basically (void *) bundled with run-time type information.
12:12:31 <elliott> (as provided by Typeable)
12:12:40 <CakeProphet> I thought it was an Typeable existential
12:12:41 <elliott> So for instance
12:12:41 <elliott> fromDyn (Dynamic t v) def
12:12:41 <elliott> | typeOf def == t = unsafeCoerce v
12:12:41 <elliott> | otherwise = def
12:12:49 <elliott> CakeProphet: No. data Dynamic = Dynamic TypeRep Obj
12:13:01 <CakeProphet> ah.
12:13:36 <CakeProphet> right so
12:13:36 <elliott> Oh, where Obj is
12:13:39 <elliott> type Obj = Any
12:13:50 <elliott> which is just a type that can hold any algebraic data-type value.
12:13:55 <elliott> (Or can it hold non-ADT things too? Maybe? I forget.)
12:14:09 <CakeProphet> wouldn't it need to be part of Typeable or something?
12:14:18 <elliott> CakeProphet: What would need to be part of Typeable?
12:14:23 <CakeProphet> Obj
12:14:41 <elliott> No.
12:14:46 <elliott> Any is just an opaque value.
12:14:54 <elliott> You can only get things in and out with unsafeCoerce.
12:14:55 <CakeProphet> :t Dynamic
12:14:56 <lambdabot> Not in scope: data constructor `Dynamic'
12:15:03 <elliott> Dynamic is not a constructor.
12:15:13 <CakeProphet> :t toDyn
12:15:14 <lambdabot> forall a. (Typeable a) => a -> Dynamic
12:15:41 <elliott> The Typeable constraint is because of the requirement for a TypeRep, of course.
12:15:45 <CakeProphet> uh.. then what are you talking about. :P
12:15:48 <elliott> Without which Dynamic would not be able to do the checks that make it safe.
12:15:59 <elliott> CakeProphet: What do you mean?
12:15:59 <CakeProphet> how did you get this constructor that doesn't exist.
12:16:10 <elliott> Well, it's not an /exposed/ constructor.
12:16:19 <elliott> I was providing the implementation details you were interested in.
12:16:26 <elliott> It isn't part of the API.
12:16:28 <CakeProphet> ah okay, thus why you can't give Any an actual type. got it.
12:16:37 <elliott> Any _is_ an actual type.
12:16:39 <elliott> It's in GHC.Prim.
12:17:01 <CakeProphet> > 1 :: GHC.Prim.Any
12:17:02 <lambdabot> Not in scope: type constructor or class `GHC.Prim.Any'
12:17:10 <elliott> lambdabot does not let you access such modules.
12:17:18 <elliott> Anyway, there is no instance for Num Any.
12:18:03 <CakeProphet> nothing in GHC.Prim's docs about Any
12:18:17 <elliott> I beg to differ.
12:18:19 <CakeProphet> are you sure you're not making stuff up? :P
12:18:46 <elliott> http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html#t:Any
12:18:59 <elliott> If lambdabot let you access GHC.Prim, then you could do all sorts of bad things.
12:19:08 <elliott> Well, maybe not without MagicHash.
12:19:12 <elliott> But it'd be stupid.
12:20:06 <elliott> (Oh, and Any does not actually have one type argument as given there; nor is it a data-type. That's a limitation of the tool used to generate the fake Haddock source file.)
12:20:51 <CakeProphet> ...
12:21:06 <elliott> CakeProphet: What?
12:21:17 <CakeProphet> what is it then?
12:21:25 <elliott> An internal type.
12:21:32 <elliott> There's a reason the module is called GHC.Prim.
12:22:25 <CakeProphet> so it still has a "constructor" right?
12:22:58 <elliott> No.
12:23:05 <elliott> It is not a data-type.
12:23:10 <elliott> It is also not a type synonym; it is just a type.
12:23:26 <elliott> The only way to get an Any value is with an unsafe coercion.
12:23:34 <elliott> (Which is actually safe.)
12:23:42 <CakeProphet> so Dynamic requires unsafe coercion?
12:23:57 <elliott> Yes.
12:24:04 <elliott> It is, of course, totally safe.
12:24:14 <CakeProphet> so what is the purpose of Any then?
12:24:31 <elliott> type Obj = Any
12:24:31 <elliott> data Dynamic = Dynamic TypeRep Obj
12:24:31 <elliott> What would Dynamic look like without Obj?
12:24:31 <CakeProphet> Any a = anything?
12:24:35 <elliott> And thus without Any?
12:24:38 <elliott> CakeProphet: There is no a argument.
12:24:40 <elliott> <elliott> (Oh, and Any does not actually have one type argument as given there; nor is it a data-type. That's a limitation of the tool used to generate the fake Haddock source file.)
12:25:22 <CakeProphet> Dynamic forall a. TypeRep a
12:25:33 <CakeProphet> or however forall works in a constructor declaration...
12:25:45 <CakeProphet> forall a. Dynamic TypeRep a looks nicer to me
12:26:39 <elliott> CakeProphet: Not safe.
12:27:04 <elliott> See the guarantees at http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html#v:unsafeCoerce-35-; also this comment in Data.Dynamic's source:
12:27:09 <elliott> -- Use GHC's primitive 'Any' type to hold the dynamically typed value.
12:27:09 <elliott> --
12:27:09 <elliott> -- In GHC's new eval/apply execution model this type must not look
12:27:09 <elliott> -- like a data type. If it did, GHC would use the constructor convention
12:27:09 <elliott> -- when evaluating it, and this will go wrong if the object is really a
12:27:11 <elliott> -- function. Using Any forces GHC to use
12:27:13 <elliott> -- a fallback convention for evaluating it that works for all types.
12:28:11 <elliott> (I'm not sure that definition will break in practice, but it's certainly not guaranteed to work by unsafeCoerce's stringent list of safe uses, and I would expect the runtime representation to be less necessarily predictable in the long-term than with Any.)
12:31:01 <Deewiant> "the constructor convention"?
12:32:14 <elliott> Deewiant: "Other uses of unsafeCoerce# are undefined. In particular, you should not use unsafeCoerce# to cast a T to an algebraic data type D, unless T is also an algebraic data type. For example, do not cast Int->Int to Bool, even if you later cast that Bool back to Int->Int before applying it. The reasons have to do with GHC's internal representation details (for the congnoscenti, data values can be
12:32:15 <elliott> entered but function closures cannot). If you want a safe type to cast things to, use Any, which is not an algebraic data type."
12:32:22 <elliott> Deewiant: Beyond that, beats me; I'm no expert on GHC's evaluation model.
12:33:14 <Deewiant> Right, that just pretty much restates the same thing.
12:33:31 <elliott> Deewiant: Well, you now know it involves entering.
12:33:50 <Deewiant> Yes, I suppose that's quite an improvement.
12:35:07 <fizzie> Breaking and entering.
12:36:25 <CakeProphet> more like an entering and breaking I would say.
12:37:19 <CakeProphet> question
12:37:34 <CakeProphet> is this safe: unsafeCoerce (typeRef, x) :: Dynamic
12:37:50 <Vorpal> <fizzie> Even if Vorpal hadn't talked much this year at all, 2008-now still means 2008-2010 accounts for well over three fourths. But here's 2011-only for you if you like to see yourself talk a lot, http://zem.fi/~fis/foo2.png <-- err, looks like I'm number 2 in that graph? Yet you said I hadn't talked much?
12:38:23 <elliott> Vorpal: Later graphs diminished that a lot more recently.
12:38:29 <Vorpal> elliott, ah
12:38:34 <Vorpal> yeah I have been busy
12:38:40 <elliott> I was the one saying you haven't been talking, though.
12:39:10 <CakeProphet> oh fine that's cool just don't list me.
12:39:13 <CakeProphet> I'm not important.
12:39:28 * CakeProphet cries alone. ;_;
12:39:31 <fizzie> Right; I just assumed so for the sake of the argument; thus, "if you hadn't talked".
12:40:27 <fizzie> It only lists top 8, due to not actually having any more specified colors.
12:40:56 <elliott> ?src [] (<*>)
12:40:56 <lambdabot> (<*>) = ap
12:40:57 <Vorpal> guess I will have to be more active to not drop off the chart
12:41:02 <elliott> Hmph.
12:43:01 <elliott> (f :- fs) <*> (x :- xs) = f x :- (vecSizeIsNat xs $ vecSizeIsNat fs $ fs <*> xs)
12:43:02 <elliott> So ugly.
12:43:11 * CakeProphet sulks over fizzie not allowing him to have arbitrary metric by which to compare himself to other people and promptly creates a Wikipedia account.
12:43:26 <fizzie> Vorpal: When counting the number of characters (as opposed of lines) in http://zem.fi/~fis/foo3rc.png you are no longer #2; ais523 and oerjan pass you. Still, #4 is perfectly respectable too. (That one's for 2011 too.)
12:44:20 <fizzie> I have one script that just exports the activity data into a .json file; was going to protovis out something more customizable, but haven't had the time.
12:44:48 <CakeProphet> you should use YAML instead of JSON
12:44:53 <CakeProphet> because it, uh, makes more sense to do that!
12:44:57 <CakeProphet> yeah!!!
12:45:46 <fizzie> When using a JavaScript-based visualization tool? Uh, sure.
12:45:52 <elliott> I think fizzie is having a breakdown.
12:45:54 <elliott> I mean CakeProphet.
12:46:05 <CakeProphet> nah, that was a few days ago.
12:46:10 <CakeProphet> this is post-breakdown.
12:46:56 <CakeProphet> YAML is better if you intend the files to be human-edited, I guess. JSON is probably a better choice otherwise.
12:48:21 <CakeProphet> but we all know that Python's pickle format is the best data serialization format of all and should be used in all situations regardless of application, environment, or language.
12:50:57 <fizzie> That's a tough pickle.
12:51:38 <CakeProphet> OH HO HO HO HO. I must put on my monocle for this.
12:51:55 <fizzie> "1562 J. Heywood Dialogue Prouerbes Eng. Tounge (new ed.) in Wks. sig. Uiii, Man is brickell. Freilties pickell. Poudreth mickell, Seasonyng lickell. [The exact sense in quot. 1562 is unclear.]" Well, you don't say.
12:51:58 <CakeProphet> apparently JSON is a subset of YAML 1.2
12:52:32 <CakeProphet> the inline-style of YAML is the same syntax as JSON, but if you have newlines and intents in a JSON file it would probably parse incorrectly in YAML.
12:52:37 <CakeProphet> *indents
12:53:09 <elliott> So by subset you mean not a subset.
12:53:31 <elliott> JSON syntax is a subset of YAML version 1.2, which was promulgated with the express purpose of bringing YAML "into compliance with JSON as an official subset."[7] Though prior versions of YAML were not strictly compatible,[8] the discrepancies were rarely noticeable and most JSON documents can be parsed by YAML parsers.
12:53:38 <elliott> Sounds to me like it should be a proper subset, including with whitespace and the like.
12:55:07 <CakeProphet> yes I mean pseudoquasisubset
12:55:42 <CakeProphet> oh okay, it is a subset.
12:55:55 <CakeProphet> I don't really see how that works but okay.
12:56:06 <elliott> How would it not?
12:58:33 <CakeProphet> well if the JSON document contained newlines and indentations wouldn't the YAML parser interpret those as hierarchial structures?
12:58:46 <Phantom_Hoover> So
12:58:47 <lambdabot> Phantom_Hoover: You have 6 new messages. '/msg lambdabot @messages' to read them.
12:58:48 <elliott> Not inside of {}s or []s, one presumes
12:58:51 <Phantom_Hoover> Mouse update.
12:58:52 <elliott> Those are inline syntax
12:58:58 <CakeProphet> ah, right.
12:59:05 <Phantom_Hoover> The containment zone has been breached.
12:59:07 <Phantom_Hoover> There is
12:59:08 <elliott> Phantom_Hoover: : (
12:59:09 <Phantom_Hoover> a moose
12:59:10 <Phantom_Hoover> loose
12:59:11 <Phantom_Hoover> aboot
12:59:12 <elliott> aboot
12:59:13 <Phantom_Hoover> the hoose
12:59:13 <elliott> this
12:59:15 <elliott> ho
12:59:16 <elliott> yes
12:59:17 <elliott> ok
12:59:20 <CakeProphet> lol
12:59:54 <CakeProphet> fizzie: so you are in fact using YAML. WHERE IS YOUR GOD NOW?
13:02:44 <fizzie> I think I'll put in some mappings with non-unique keys just to make sure it's definitely not valid YAML. ("JSON's RFC4627 requires that mappings keys merely “SHOULD” be unique, while YAML insists they “MUST” be.")
13:03:06 <elliott> So it's not a subset :)
13:03:43 <fizzie> Their reading is that "Technically, YAML therefore complies with the JSON spec, choosing to treat duplicates as an error. In practice, since JSON is silent on the semantics of such duplicates, the only portable JSON files are those with unique keys, which are therefore valid YAML files."
13:03:47 <fizzie> I'm not sure it makes much sense.
13:04:44 <elliott> So you can reject things violating SHOULDs now?
13:05:02 <fizzie> "SHOULD: This word -- mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course." Well, I've carefully weighed the full implications of accidentally using YAML, and decided that I must ignore the item, since I see no other way to make the JSON non-YAML.
13:05:02 <elliott> Sweet, mcmap becomes invalid every time I forget to fix a stupid fucking warning.
13:05:24 <Deewiant> -Werror whee
13:05:46 <elliott> I should finish that anonymous entity tracking, six days late.
13:06:03 <fizzie> Oh, it had a deadline?
13:07:34 <fizzie> IEEE Spectrum: "Photon Recycling Boosts Solar Cell Efficiency" -- remember to recycle all the photons you use at home.
13:07:43 <CakeProphet> there is apparently a json2yaml
13:08:22 <CakeProphet> json2yaml = print =<< getContents
13:08:25 <fizzie> I'm sure you should get at least five or so uses out of a good-quality photon.
13:08:29 <CakeProphet> json2yaml = putStr =<< getContents
13:08:30 <CakeProphet> actually
13:08:44 <CakeProphet> though to be proper you would want to remove those duplicate keys.
13:11:11 <elliott> <fizzie> Oh, it had a deadline?
13:11:17 <elliott> Well, I started work on it with the intention of finishing it at the same time.
13:15:06 <Vorpal> fizzie, photon recycling?
13:15:13 <Vorpal> what on earth is it really
13:16:29 <Vorpal> fizzie, was it you who said braid had no replay value btw?
13:16:45 <fizzie> Vorpal: I didn't look at the details, but they seem to bounce some photons around for a second round or something as intuitive.
13:16:52 <Vorpal> not strictly true, turns out there are two different endings. One is insanely hard to get though.
13:17:36 <fizzie> Vorpal: And yes, I've done both, although admittedly I had to look at some guide-dang-its for the other one.
13:18:08 <fizzie> Vorpal: Incidentally, obligatory Assembly 2011 main-hall panorama, http://users.ics.tkk.fi/htkallas/20110805_001-007.jpg
13:18:15 <Vorpal> fizzie, yeah I found one star on my own, then went like "wtf". I would never have spotted the one that involved waiting for that slow cloud...
13:18:57 <fizzie> The one that's done by manipulating the puzzle pieces was a bit annoying, I had already locked those things during the first play-through.
13:18:58 <elliott> So is Braid's supposed nuclear bomb metaphor thing heavy-handed because I might just skip it if it is.
13:19:01 <Vorpal> fizzie, nice. Reminds I have photos for a pano on my camera that I need to transfer to my computer...
13:19:06 <Vorpal> fizzie, same
13:19:16 <fizzie> "A California start-up's photovoltaic device generates every bit of energy it can from the sun's rays, by sending light particles that reform from electron-hole pairs for a second pass. The photon-recycling maneuver has yielded a solar cell array that is 28.2 percent efficient--the best solar-to-electrical-energy conversion rate ever produced."
13:19:24 <Vorpal> note: that pano was hand held. In rain.
13:19:27 <elliott> fizzie: Is that lighting arrangement healthy. :p
13:19:28 <Vorpal> no way to tell if it will work out
13:19:33 <elliott> (At Assembluh.)
13:19:38 <Phantom_Hoover> <elliott> So is Braid's supposed nuclear bomb metaphor thing heavy-handed because I might just skip it if it is.
13:19:43 <Vorpal> <elliott> So is Braid's supposed nuclear bomb metaphor thing heavy-handed because I might just skip it if it is. <-- is that official?
13:19:49 <elliott> Vorpal: I think so.
13:19:55 <Phantom_Hoover> It's a really, really, reeeeaaaalllly hard-to-find easter egg and a quote at the end.
13:20:22 <Vorpal> well doing pano stitching will pass the time when I wait for that guide-dangit cloud
13:20:55 <fizzie> I think on my first attempt I managed to miss the cloud. (Wasn't actively using the computer.)
13:21:28 <Phantom_Hoover> Really hard-to-find as in to get it you need to find 3 completely unmarked and unadvertised stars, one of which requires you to wait for about an hour for no reason in a particular spot, then on the final level there's a more-or-less explicit acknowledgement of the metaphor.
13:21:30 <Vorpal> fizzie, you could reverse time at 8x
13:21:35 <Vorpal> fizzie, so not a major issue
13:21:36 <elliott> fizzie: OK DON'T ANSWER ME FINE
13:21:55 <elliott> Phantom_Hoover: Nice.
13:22:13 <elliott> "Blow designed the game as a personal critique of contemporary trends in game development."
13:22:19 <elliott> This guy is the funniest asshole.
13:22:29 <Vorpal> I really should try to figure out how to get auto mounting usb devices to work when not using a graphical login manager... I guess it is some consolekit crap or such
13:22:41 <Phantom_Hoover> How can I criticise things.... I know, I'll make a game you can go back in time in!
13:23:12 <elliott> The final world is labeled simply as "1." In this world, time flows in reverse. Rewinding time returns the flow of time to its normal state.[17]
13:23:15 <elliott> Phantom_Hoover: OK how does that actually work.
13:23:18 <elliott> Do things just walk backwards.
13:23:25 <Phantom_Hoover> elliott, dunno, getting there is a major undertaking.
13:23:33 <Phantom_Hoover> I can't be bothered to try.
13:23:39 <Phantom_Hoover> Well, at the moment.
13:23:56 <Vorpal> elliott, even if the developer is an asshole (I haven't checked out what he said) the game is quite fun to play IMO.
13:24:49 <Vorpal> also, very little "redo the entire level when failing" since you can just press shift to go back in time a few seconds and try again. (Except in a few places)
13:25:12 <elliott> Phantom_Hoover: I thought you'd beaten it.
13:25:34 <Phantom_Hoover> Vorpal, erm, most of the later levels have time shenanigans in them.
13:25:37 <elliott> "The final level, in which everything but Tim moves in reverse, depicts the princess escaping from a knight, and working together with Tim to surpass obstacles and meet at her home. Tim is suddenly locked out of the house, and, as time progresses forward, reversing Tim's actions, the events show the princess running from Tim, setting traps that he is able to evade, until she is rescued by the knight. T
13:25:37 <elliott> im is revealed to be the "monster" the princess is running from."
13:25:40 <Phantom_Hoover> elliott, nah, just read about it.
13:25:41 <elliott> OK so it's just a cheat.
13:25:58 <Phantom_Hoover> Dude.
13:26:04 <Phantom_Hoover> You just posted spoilers in the channel.
13:26:10 <Phantom_Hoover> That is... very dickish.
13:26:18 <Vorpal> <Phantom_Hoover> Vorpal, erm, most of the later levels have time shenanigans in them. <-- you mean the green glow?
13:26:43 <Phantom_Hoover> Also the purple glow.
13:27:13 <Vorpal> Phantom_Hoover, the purple glow don't usually require restarting the entire level, just some double-shifting
13:27:22 <elliott> Phantom_Hoover: It's... spoilers for a deliberate non-plot.
13:27:52 <elliott> It's an art game; any discussion of it counts as a spoiler.
13:28:04 <Vorpal> elliott, it is spoiler for a puzzle
13:28:14 <Vorpal> hm
13:28:18 <Vorpal> not much though
13:28:25 <elliott> Not... really? It doesn't tell you what to do.
13:28:38 <Vorpal> true
13:31:01 <elliott> Repeated note to self: Seriously, don't become a "game dev".
13:31:08 <Vorpal> you know how google sometimes put a list of topics on a site below a search result? Tends to be about 4-6 usually... This one had 12. Never seen as many
13:31:15 <Vorpal> (googled for "ufraw")
13:31:22 <Vorpal> (without quotes)
13:31:37 <elliott> Additional note to self: Seriously.
13:31:53 <Vorpal> blergh the manual on the website is outdated...
13:32:02 <elliott> HAVE I SAID SERIOUSLY ENOUGH TIMES
13:32:10 <elliott> Also fizzie do they actually have lights in that Assembly room.
13:32:35 <fizzie> Sowwy, I was busy unsuccessfully trying to web-purchase a thing.
13:32:45 <fizzie> Yes, they have lights; the lights are on when the "loading doors" are open.
13:32:58 <fizzie> Makes it easier to set up things without a flashlight.
13:34:03 -!- Taneb has quit (Read error: Connection reset by peer).
13:35:17 -!- MSleep has changed nick to MDude.
13:47:19 -!- Taneb has joined.
13:47:22 <Taneb> Hello!
13:55:17 <Deewiant> elliott: Hey, tup person: is there a simple "delete all generated files" kind of thing?
13:55:32 <Taneb> Is my assumption that a combinatory logic program is like a short program followed by a series of input, which returns a program and input, which is then executed?
13:55:36 <Taneb> At all correct
13:56:46 <CakeProphet> not as far as I can tell...
13:57:13 <CakeProphet> but then again I don't formally know what combinatory logic is. I've only been introduced to it through Haskell.
13:58:54 <Phantom_Hoover> Taneb, what?
13:58:56 <Phantom_Hoover> Erm.
13:59:14 <Phantom_Hoover> Are you talking about Lazy K-style stuff?
14:00:14 <elliott> Deewiant: You're not meant to do that :-)
14:00:45 <elliott> Deewiant: Such a thing would be easy to add unless I'm missing something, it just hasn't been done
14:00:50 <elliott> But you're not meant to do that anyway :-P
14:01:14 <Deewiant> Why not
14:01:15 <elliott> (Cluttering directories is of course a pain, but that's why the variant things are coming so it can be isolated to a build/ directory or similar.)
14:01:24 <Deewiant> Right :-)p
14:01:30 <elliott> Deewiant: Because it's unnecessary
14:01:35 <Deewiant> :-p*
14:01:50 <elliott> "make clean" is often required because not every dependency is tracked, e.g. configuration dependencies or the like.
14:01:59 <elliott> Obviously that doesn't apply here
14:02:09 -!- sebbu has quit (Read error: Connection reset by peer).
14:02:13 <elliott> But yeah, my use of tup for Real Stuff is currently blocked on variants coming
14:02:21 <elliott> Apparently it's the next major feature coming, so I'm just being patient
14:02:27 <Deewiant> Yes, I was hoping for an intermediate measure while build directories aren't feasible
14:02:42 <Deewiant> Gotta go ->
14:02:46 -!- sebbu has joined.
14:02:47 -!- sebbu has quit (Changing host).
14:02:47 -!- sebbu has joined.
14:02:55 <elliott> Deewiant: What are you using/thinking about using/using as a test-case to prove that tup sucks it for?
14:03:01 <elliott> Wow that sentence is a bad parser.
14:05:23 <Taneb> Phantom Hoover: possibly
14:08:04 <itidus20> according to the esolang wiki page
14:08:06 <Phantom_Hoover> Taneb, dude, use tab completion.
14:08:21 <Taneb> This client is awful
14:08:25 <elliott> ?src foldl
14:08:26 <lambdabot> foldl f z [] = z
14:08:26 <lambdabot> foldl f z (x:xs) = foldl f (f z x) xs
14:08:32 <Phantom_Hoover> Then... why are you using it/
14:08:48 <elliott> ?src foldl'
14:08:48 <lambdabot> foldl' f a [] = a
14:08:49 <lambdabot> foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs
14:09:00 <Taneb> Because I'm about to change client
14:09:36 <itidus20> I x = K x y = x; S x y z = x z(y z); the only confusing part here is what x z(y z) can equate to
14:10:01 <Phantom_Hoover> Taneb readies himself for the incredible journey that is changing clients.
14:10:12 <Phantom_Hoover> itidus20, what's not to understand?
14:10:46 <itidus20> heh.. you're asking that question to the wrong person.
14:11:05 <itidus20> first of all it appears that I wants one operand, K wants 2 operands, S wants 3 operands
14:11:12 <elliott> Untrue.
14:11:19 <elliott> Sxyz is sugar for ((Sx)y)z.
14:11:41 <itidus20> and what is (Sx)? :D
14:11:43 <elliott> It is just tree rewriting; (SK)I reduces to (SK)I because it does not fit the form Ix, (Kx)y or ((Sx)y)z for any x, y, or z.
14:12:01 <elliott> Anything that doesn't fit one of those three patterns is simply left unreduce.
14:12:01 <elliott> d.
14:12:20 <itidus20> nevermind.. i am nowhere near understanding it :D
14:13:40 <itidus20> well... i will figure it out in my own time
14:14:44 -!- Taneb_ has joined.
14:14:59 <Taneb_> Phantom_Hoover, this client appears decent
14:15:06 -!- Taneb has quit (Quit: using sirc version 2.211+ssfe).
14:15:13 -!- Taneb_ has changed nick to Taneb.
14:15:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:16:43 <Phantom_Hoover> That's the client like everyone uses/
14:17:02 <Taneb> Nobody told me!
14:18:49 <CakeProphet> itidus20: you can think of it as string rewriting.
14:18:52 <CakeProphet> except... with trees.
14:19:01 <Taneb> Tree rewriting
14:19:40 <itidus20> Identity "test" = "test"; Konstant "test" "two" = "test" :D
14:19:42 <Phantom_Hoover> itidus20, go read Homestuck it is the best thing.
14:19:51 <Taneb> I concur
14:20:04 <elliott> What are you doing this is immoral.
14:20:21 <itidus20> Application "test" "two" "three" = "test" "two" ("test" "three")
14:20:41 <Phantom_Hoover> elliott, it is immortal.
14:21:08 <CakeProphet> I read all of the Homestucks. All of them.
14:21:21 <Taneb> I also read all the Problem Sleuths
14:21:52 <CakeProphet> you can't really appreciate Problem Sleuth unless you read it in a very hard-boiled manner.
14:22:18 <Taneb> I read Problem Sleuth in the most hard-boiled manner of all.
14:22:29 <CakeProphet> dude.
14:22:29 <Taneb> I read it in an egy thign [sic]
14:23:46 <Phantom_Hoover> CakeProphet, I remember getting you to read PS.
14:23:57 <CakeProphet> I as well.
14:24:03 <elliott> I remember that too IN FACT I REMEMBER GETTING PHANTOM_HOOVER TO READ HOMESTUCK
14:24:10 <Vorpal> fizzie, Know any non-tiff format that can handle 16 bits per channel and might be viewable in a browser.
14:24:15 <Vorpal> ?
14:24:21 <elliott> Vorpal: tarag?
14:24:22 <elliott> targa
14:24:24 <CakeProphet> I remember conceiving elliott with his mom.
14:24:24 <Taneb> I got both of them via TVTropes.
14:24:26 <CakeProphet> therefore, I win.
14:24:27 <elliott> maybe not
14:24:36 <elliott> TGA files commonly have the extension ".tga" on PC DOS/Windows systems and Mac OS X (older Macintosh systems use the "TPIC" type code). The format can store image data with 8, 16, 24, or 32 bits of precision per pixel[1] – the maximum 24 bits of RGB and an extra 8-bit alpha channel
14:24:37 <elliott> maybe
14:24:40 <Phantom_Hoover> elliott, actually, I was bored and I said "hey, I might as well read Homestuck" and then you decided to hijack my attempt because you gave up the last time you tried.
14:24:44 <elliott> also a simple format??
14:24:45 <elliott> but only RLE
14:24:50 <Vorpal> <elliott> targa <-- hm
14:24:54 <Vorpal> elliott, would firefox display that?
14:24:55 <elliott> Phantom_Hoover: No no because you actually asked me whether it was worthwhile.
14:25:00 <Vorpal> also what would the file size be
14:25:05 <Phantom_Hoover> elliott, that's not you telling me to read it.
14:25:05 <Taneb> Did anyone watch Krd Mndoon and the Flaming Sword of Fire?
14:25:06 <elliott> Vorpal: Find out yourself; and RLE big.
14:25:13 <elliott> Phantom_Hoover: It is close enough ok shut up die.
14:25:16 <Vorpal> elliott, the 8 bit jpeg at 90% quality is 8.5 MB... so
14:25:21 <elliott> Vorpal: TIAS
14:25:34 <itidus20> ok i see...
14:26:00 <Vorpal> elliott, well, krita doesn't handle it as far as I can tell. And gimp doesn't do 16 bits per channel. Oh well.
14:26:13 <itidus20> so you can have S S S S K K K K I I I I
14:26:19 <CakeProphet> 1 bit audio is the best.
14:26:24 <Vorpal> elliott, and the deflate compressed tiff is 107 MB
14:26:25 <Vorpal> XD
14:26:30 <Vorpal> a bit too large to upload
14:26:32 <elliott> Vorpal: just use graphicsmagick or w/e to convert it
14:26:34 <elliott> to targa
14:26:37 <Vorpal> oh good idea
14:26:37 <CakeProphet> single pitch, single volume square waves. mmmmm
14:26:44 <elliott> Vorpal: RLE will probalby... not be better than deflate though
14:27:00 <Vorpal> elliott, indeed
14:27:06 <Phantom_Hoover> CakeProphet, erm, 1-bit would just be single-volume.
14:27:15 <Vorpal> elliott, so I guess I'm stuck at uploading a 8-bit tiff
14:27:21 <CakeProphet> Phantom_Hoover: ah yes, my mistake.
14:27:23 <Taneb> itidus20: that's equivalent to I
14:27:51 <itidus20> heh
14:28:31 <itidus20> don't be fooled into thinking i understand yet
14:28:35 <CakeProphet> itidus20: use lambdabot and type ap for S, const for K, and id for I.
14:28:44 <Taneb> I don't actually understand
14:28:50 <Taneb> I'm just good at pretending
14:29:05 <elliott> CakeProphet: Uh.
14:29:08 <itidus20> but any sequence of S or K or I forms a valid combinatory logic
14:29:09 <elliott> Haskell can't type all valid SKI terms
14:29:10 <elliott> so that's
14:29:13 <elliott> probably not a good idea.
14:29:22 <Taneb> itidus20: Yes
14:29:29 <CakeProphet> elliott: it can't?
14:29:31 <itidus20> yay.. it's fool proof
14:29:37 <elliott> itidus20: If by combinatory logic you mean combinatory logic expression, yes.
14:29:41 <Taneb> itidus20: But some infinitely loop
14:29:44 <elliott> itidus20: You forgot parentheses too.
14:29:52 <elliott> They have to be balanced of course, and contain something. :p
14:29:54 <itidus20> oh yeah
14:29:54 <elliott> CakeProphet: No.
14:29:58 <Vorpal> fizzie, uploading a new pano
14:30:02 <elliott> CakeProphet: Proof: LC → SKI, LC can't be.
14:30:07 <elliott> Proof of that: Try typing the Y combinator.
14:30:20 <Phantom_Hoover> AHA MOUSE
14:30:22 <elliott> Obviously a newtype wrapper "solves" the issue but your translation won't do that.
14:30:25 <elliott> Phantom_Hoover: FRIENDS BECOME FRIENDS
14:30:29 <itidus20> Electric Mouse
14:30:42 <Taneb> Still the same mouse?
14:31:07 <Phantom_Hoover> Oh FFS it's under the sofa again.
14:31:13 <Phantom_Hoover> Maybe
14:31:19 <Phantom_Hoover> I can lift all the furniture u
14:31:20 <itidus20> Phantom_Hoover: it "was" under the sofa
14:31:20 <Phantom_Hoover> p
14:31:27 <Phantom_Hoover> on strings
14:31:35 <elliott> Phantom_Hoover: just
14:31:37 <elliott> put some mouse food
14:31:39 <elliott> underneath
14:31:42 <Phantom_Hoover> ok
14:31:44 <elliott> so that it doesn't die...
14:31:45 <Phantom_Hoover> i will find some chees
14:31:46 <Phantom_Hoover> e
14:31:51 <elliott> it would be sad if it died
14:31:52 <elliott> :(
14:32:03 <Vorpal> fizzie, http://whotookspaz.org/~anmaster/images/2011/2011-08-11_kinapark.jpg
14:32:11 <Taneb> Cornflakes are better
14:32:13 <itidus20> ----------(mouse)t[n]----------------------------------------------------------------------------------------------->(mouse)t[n+1]
14:32:30 <elliott> Taneb: oh my;y god mouse eating a cofrnflkaejkljdgflkgfghjkhlfdkjgdfgdflkg
14:32:42 <elliott> Phantom_Hoover: ///////////////
14:32:59 <Phantom_Hoover> I'm... not sure if we have any cornflakes.
14:33:02 <elliott> just
14:33:03 <Phantom_Hoover> Hang on, BRB.
14:33:03 <elliott> imagine
14:33:04 <elliott> a mouse
14:33:05 <elliott> eating
14:33:06 <elliott> a
14:33:08 <elliott> corn
14:33:10 <elliott> flake
14:33:12 <cheater__> flkfjkljf;lkjf
14:33:15 <itidus20> Phantom_Hoover: mice like chocolate
14:33:17 <cheater__> a cornflkfjkljf;lkjf.
14:33:19 <CakeProphet> elliott: that Perl code evaluates to undef I believe.
14:34:22 <Phantom_Hoover> Have I mentioned
14:34:24 <Phantom_Hoover> That once
14:34:28 <Phantom_Hoover> Our toaster broke down
14:34:31 <Phantom_Hoover> And when we opened it
14:34:37 <Phantom_Hoover> There was a dead mouse inside.
14:34:42 <Phantom_Hoover> An old one, too.
14:34:42 <CakeProphet> abd you had to use Perl as a replacement?
14:34:43 <CakeProphet> oh.
14:35:13 <itidus20> was it charcoaled?
14:35:30 <itidus20> toasters tend to get hot every time they're used
14:35:45 * CakeProphet writes this down in his notes.
14:36:24 <elliott> `addquote <itidus20> toasters tend to get hot every time they're used
14:36:25 <HackEgo> 581) <itidus20> toasters tend to get hot every time they're used
14:36:34 <elliott> Phantom_Hoover: OK but are you feeding it, and is the thing you are feeding it a cornflake.
14:36:55 <Phantom_Hoover> We have no cornflakes.
14:37:41 <itidus20> with the nett effect that it's flesh might have been stripped from it's very bones
14:38:05 <elliott> Phantom_Hoover: How do you manage to not have cornflakes is it a personal failing.
14:38:09 <itidus20> but that would seem to be asking a bit much from the modest toaster
14:38:12 <Taneb> Phantom_Hoover: and we must breakfast?
14:38:15 <elliott> Have you given it cheese I need to rate the friendship possibility.
14:38:42 <Phantom_Hoover> elliott, no I think it's cleverer than that.
14:39:00 <elliott> It's
14:39:02 <elliott> It's a mouse, Phantom_Hoover
14:39:22 <CakeProphet> :t ap (const (ap id id)) (ap (ap (const ap) const) (const (ap id id)))
14:39:23 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
14:39:24 <lambdabot> Probable cause: `id' is applied to too few arguments
14:39:24 <lambdabot> In the second argument of `ap', namely `id'
14:39:49 <Phantom_Hoover> elliott, ARE YOU SURE
14:39:59 <Phantom_Hoover> :t ap
14:40:00 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
14:40:08 <elliott> Phantom_Hoover: Yes I am
14:40:10 <elliott> quite sure
14:40:22 <Phantom_Hoover> elliott, MICE ARE NOT THIS CLEVER
14:40:36 <Vorpal> Phantom_Hoover, your toaster must be a large model to be able to fit a mouse
14:40:44 <elliott> Vorpal: I...
14:40:46 <Vorpal> or the mouse must have been unusually small
14:40:47 <elliott> Have you ever seen a mouse.
14:40:51 <Vorpal> elliott, yes.
14:40:52 <elliott> Or a toaster.
14:40:54 -!- copumpkin has joined.
14:40:57 <Vorpal> elliott, yes that too
14:40:58 <Phantom_Hoover> He's used to giant Swedish mice.
14:41:11 <Vorpal> Phantom_Hoover, yeah mutant ones!
14:41:11 <elliott> Oh wait, Vorpal thinks he's funny by assuming everything is computers.
14:41:19 <Vorpal> elliott, what?
14:41:22 <Vorpal> elliott, no
14:41:22 <elliott> Either that or they just have really small toasters in Sweden.
14:41:35 <elliott> Vorpal: But how do you toast your mice when you want toasted mice.
14:41:37 <Phantom_Hoover> For really small toast.
14:41:58 <itidus20> The mouse presumably dived in the top and twisted and contorted it's body until it was in the side sections of the toaster
14:42:01 <CakeProphet> I've seen some mice here that would not fit in a toaster.
14:42:11 <itidus20> and there it sat eating crumbs
14:42:20 <itidus20> until someone came along and cooked some toast
14:42:52 <elliott> Lovely mental image
14:43:02 <itidus20> perhaps it couldn't escape it's prison.. perhaps it just got trapped at the "wrong time"
14:43:05 <Vorpal> itidus20, hm, wouldn't be able to happen in the toaster I have. The holes are small enough that it is hard to even get breadcrumbs to fall out if they get in there...
14:43:11 <Vorpal> (stupid design)
14:43:40 <itidus20> well what a way to die
14:44:06 <elliott> or perhaps it just
14:44:06 <CakeProphet> my toaster doesn't have very good lambdas.
14:44:09 <elliott> had a long and happy toaster life
14:44:11 <elliott> and then died of old age
14:44:12 <elliott> ?????
14:44:22 <elliott> it was in a bit where it was shielded from the heat. this is true.
14:44:56 <itidus20> I doubt it was in such a bit
14:44:59 <CakeProphet> > let x = y = 2 in (x,y)
14:45:00 <lambdabot> <no location info>: parse error on input `='
14:45:04 <CakeProphet> wishful thinking.
14:45:22 <CakeProphet> :t const
14:45:22 <lambdabot> forall a b. a -> b -> a
14:45:32 <itidus20> elliott: this is the price of opaque toaster encapsulation
14:46:06 -!- Sgeo has joined.
14:47:50 <CakeProphet> > let t = const; f = const id; or = t; and = f; not = f t in t or f f or f and
14:47:51 <lambdabot> Overlapping instances for GHC.Show.Show (b -> a -> a)
14:47:51 <lambdabot> arising from a use...
14:47:58 <CakeProphet> :t let t = const; f = const id; or = t; and = f; not = f t in t or f f or f and
14:47:59 <lambdabot> forall b a. b -> a -> a
14:48:12 <CakeProphet> beautiful.
14:49:25 <elliott> > const (const (const (const)))))
14:49:27 <lambdabot> <no location info>: parse error on input `)'
14:49:30 <elliott> FUCYEIUWFK YOU
14:49:33 <elliott> > const (const (const const)))
14:49:35 <lambdabot> <no location info>: parse error on input `)'
14:49:37 <elliott> > const (const (const const))
14:49:38 <lambdabot> Overlapping instances for GHC.Show.Show
14:49:38 <lambdabot> (b -> ...
14:50:14 <CakeProphet> true or true or :)
14:50:48 <CakeProphet> or, or true or true
14:52:40 <CakeProphet> or, not not
14:52:54 <CakeProphet> or, not true or
14:52:56 <CakeProphet> ...yeah.
14:53:54 <CakeProphet> oh my bad, it's not not.
14:54:03 <CakeProphet> as in, not "not not"
14:54:11 <CakeProphet> man talking about this with English is confusing.
14:56:25 <itidus20> should I feel bad for not understanding combinatory logic? it just seems that when it's entire system can be formally expressed in a few lines then something is askew
14:56:43 <itidus20> i mean how hard can it be
14:56:51 -!- Taneb has quit (Ping timeout: 255 seconds).
14:57:06 <elliott> It's not really a system of logic, it's just a simple programming language
14:57:16 <elliott> (With no input or output, admittedly)
14:57:46 <elliott> You may find its presentation in terms of actual drawings of trees and their reductions simpler; that shows the structure and prevents confusion because of parentheses etc., but I don't have a link.
14:58:04 <itidus20> ah
15:01:21 -!- CakeProphet has quit (Ping timeout: 255 seconds).
15:03:01 -!- CakeProphet has joined.
15:03:01 -!- CakeProphet has quit (Changing host).
15:03:01 -!- CakeProphet has joined.
15:03:10 <fizzie> Vorpal: Nice-looking place; but where is it?
15:03:40 <Vorpal> fizzie, a Chinese garden near here.
15:03:46 <Vorpal> well, a few hours drive
15:03:53 <Vorpal> fizzie, it is in an old marble quarry
15:04:00 <Vorpal> let me find it on google maps or something
15:04:20 <cheater__> S (S (S (K S) (S (K K) I)) (K (S I I))) (S (S (K S) (S (K K) I)) (K (S I I))).
15:04:21 <itidus20> elliott: i think the use of syntactic sugar is sufficent to hide what is actually going on..
15:05:19 <itidus20> for example... we are shown: (S x y z) = (x z (y z))
15:05:45 <itidus20> however we are not shown: (((S x) y) z) = (S x y z) = (x z (y z))
15:05:52 <itidus20> rather
15:06:02 <elliott> = ((x z) (y z))
15:06:12 <itidus20> (((S x) y) z) = ((S x y) z) = (S x y z) = (x z (y z))
15:06:21 <itidus20> oops
15:06:35 <itidus20> (((S x) y) z) = ((S x y) z) = (S x y z) = (x z (y z)) = ((x z)(y z))
15:07:02 <itidus20> now while i might not understand that..
15:07:12 <itidus20> at least i know i don't understand it
15:07:49 <itidus20> whereas with: (S x y z) = (x z (y z)) i am left to wonder why i don't see anything
15:08:32 <Vorpal> fizzie, having trouble finding the exact spot
15:09:05 <itidus20> so then i can ask..
15:09:35 <itidus20> is (((w x) y) z) = (((S x) y) z) ?
15:09:37 <Vorpal> fizzie, somewhere around here: http://maps.google.se/maps?q=Kinaparken&hl=en&ll=58.778078,14.958401&spn=0.047338,0.210285&oe=utf-8&client=firefox-a&t=h&z=13
15:10:01 <Vorpal> fizzie, (the search was useless)
15:10:07 -!- Taneb has joined.
15:11:02 <itidus20> perhaps i didnt word that right
15:11:03 <fizzie> "Did you mean: Kronoparken, Karlstad".
15:11:10 <Vorpal> fizzie, yeah useless :P
15:11:22 <Vorpal> fizzie, maybe see: http://www.bastedalenherrgard.se/?nr=10
15:11:35 <Vorpal> fizzie, the garden is just next to that place
15:11:37 <itidus20> I should say... can (((w x) y) z) be rewritten as (((S x) y) z) and (((K x) y) z) and (((I x) y) z) ?
15:12:35 <elliott> itidus20: you can't use any variable names in your program
15:12:40 <elliott> it must just be S, K, I and parentheses
15:12:41 <fizzie> I see.
15:12:45 <itidus20> what is x then?
15:12:49 <elliott> the lowercase letters are just there to show how the S, K and I are rewritten
15:12:59 <itidus20> ahh
15:13:27 <elliott> (((Sx)y)z) → ((xz)(yz)) simply means that for every expression x, y, and z, (((Sx)y)z) gets rewritten to ((xz)(yz))
15:13:41 <Phantom_Hoover> Aha, the cat has showed up
15:13:46 <elliott> Phantom_Hoover: NO STOP MURDER,
15:13:47 <Phantom_Hoover> WHO IS THE CLEVER ONE NOW MOUSE
15:13:54 <Vorpal> fizzie, We were kind of lucky with the weather... When it is sunny, the place tends to be filled with tourists
15:13:55 <Phantom_Hoover> elliott, I'm just going to flush it out.
15:14:45 <elliott> Phantom_Hoover: NO THAT SOUNDS BAD,
15:14:46 <Taneb> I've just had a thought.
15:14:47 <elliott> BE NICE TO MOUSE
15:14:47 <Taneb> Panic
15:14:55 <elliott> Taneb: NO MAKE PHANTNOM ANIMAL CRUELTY NO
15:15:07 <fizzie> Vorpal: It looks a bit like one Chinese-style garden at Madeira. (How surprising.)
15:15:12 <itidus20> do (((Kx)y)z) and (((Ix)y)z) both get rewritten as (x) ?
15:15:39 <Vorpal> fizzie, heh
15:15:41 <itidus20> perhaps not though.. perhaps that is uh dependant on what z is
15:15:47 <Taneb> Is it possible to make an SKI combinator both a) halt and b) not take any more operators
15:15:48 <elliott> itidus20: (((Kx)y)z) -- we know that ((Kx)y) is the same as x
15:15:57 <elliott> itidus20: so it becomes ((x)(z))
15:16:03 <itidus20> ah o
15:16:06 <elliott> itidus20: but like I said: that isn't a valid expression
15:16:06 <itidus20> ^ok
15:16:11 <elliott> because x, y and z aren't combinators
15:16:19 <elliott> but yes, for every x, y, and z, that reduction that I showed there holds.
15:16:41 <elliott> (((Ix)y)z) -- we know that ((I)(x)) = x, so it becomes (((x)(y))z)
15:16:53 <elliott> (aka xyz, (xy)z)
15:17:16 <Taneb> Kab =ish Ia
15:18:01 <itidus20> so in the absence of parenthesis abcdefg becomes ((((((ab)c)d)e)f)g) ?
15:18:05 <Taneb> Yes
15:18:08 <elliott> itidus20: yep
15:18:17 <elliott> the left side always gets the parentheses
15:18:23 <Deewiant> elliott: mushspace
15:18:27 <itidus20> and always 2 there are
15:18:40 <itidus20> ok not always..
15:18:41 <elliott> Deewiant: That, what's it
15:18:42 <itidus20> but
15:19:03 <itidus20> ok not always 2. i just wanted to say starwars
15:19:24 <itidus20> so is ((x)(y)) the same as (xy) ?
15:19:31 <Deewiant> elliott: CCBI's Funge-Space in C
15:19:32 <elliott> itidus20: Yes.
15:19:47 <elliott> Deewiant: Do I smell ... giving up?
15:20:10 <elliott> Deewiant: Don't let the cfungists win; fight back under the constraints of PURE TERRIBLE D
15:20:21 <elliott> So what fancy space is it this time :-P
15:20:30 <Deewiant> Nah, it's just useful for anything that messes with Funge
15:20:45 <Deewiant> I miss it in Haskell
15:21:01 <elliott> Eh?
15:21:03 <elliott> Miss what
15:21:10 <Deewiant> A decent Funge-Space
15:21:26 <elliott> Deewiant: I could be persuaded to work on Shiro :-P
15:21:55 <Deewiant> And would you create a pure Haskell Funge-Space at least as good as CCBI's
15:22:10 <elliott> Deewiant: That was the idea when I was working on Shiro, yes
15:22:39 <Deewiant> And would it work for {Un,B,Tr}efunge-9[83]
15:23:19 <CakeProphet> elliott: give me a topic to learn about.
15:23:22 <elliott> Deewiant: Well, I don't care about ninetythree really, but it's just like one extra function missing the special-casing of space??
15:23:32 <elliott> Deewiant: But yes, N-dimensionality was the idea.
15:23:42 <Deewiant> Yeah, 93 is easy
15:24:00 <Deewiant> But well, go ahead :-P
15:24:08 <elliott> Deewiant: It'll probably just be befunge-98 until the point at which you bug me about it :P
15:24:20 <Deewiant> As-is I think this is cool/useful enough that I might as well make it usable for others
15:24:33 <CakeProphet> elliott: do you want me to like.. start a donation fund for a new keyboard for you?
15:24:43 <CakeProphet> I could pitch in $5
15:24:44 <Deewiant> I might even do a proper writeup about how it works at some point
15:24:47 <elliott> Deewiant: When's it gonna be part of CCBI, and how fast will it make it
15:24:48 <CakeProphet> we could set up a paypal or something.
15:24:51 <elliott> CakeProphet: Sending the laptop in in a week or so
15:24:55 <CakeProphet> oh okay.
15:24:58 <elliott> Deewiant: And what data structure does it use :-P
15:25:15 <CakeProphet> funge-trees
15:25:21 <Deewiant> elliott: It's the same one as CCBI uses now
15:25:26 <Deewiant> No change
15:25:32 <Deewiant> Apart from micro-level stuff I run into
15:26:06 <elliott> Deewiant: WELL I CAN OUTDO THAT
15:26:11 <itidus20> so SI does nothing... SII does nothing... SIIK becomes IKIK ... IKIK becomes KIK which becomes I.. which parts went wrong here?
15:26:21 * elliott cracks knuckles, goes and walks off and does something else insetad.
15:26:32 <CakeProphet> :t ap id
15:26:33 <lambdabot> forall a b. ((a -> b) -> a) -> (a -> b) -> b
15:26:39 <Taneb> SI doesn't strictly do nothing.
15:26:53 <elliott> itidus20: IKIK = (IK)IK = KIK = I
15:26:56 <elliott> Nothing went wrong
15:26:59 <elliott> But it isn't "do nothing"
15:27:01 <itidus20> yay
15:27:02 <elliott> It's just "has no further reductions"
15:27:13 <itidus20> hmm
15:27:26 <elliott> itidus20: Congratulations, you now understand a language that can compute anything a computer with infinite memory can :-P
15:27:43 <elliott> Well, given infinite memory to store the expanding SKI string, of course
15:27:50 <itidus20> i wouldn't say i understand it.. but you said it which is close enough
15:28:06 <CakeProphet> yes, just let elliott understand it for you.
15:28:22 <itidus20> so does it always start from the left?
15:28:40 <CakeProphet> not it sometimes starts on the right depending on what mood it's in.
15:28:50 <Taneb> Sort of, itidus20
15:29:04 <itidus20> at some point the parenthesis becomes signifigant though eh
15:29:13 <elliott> Deewiant: My main Shiro holdup is having to implement the fingerprints for slowdown, FWIW
15:29:25 <elliott> Deewiant: And undoing the massive performance decrease I got by refactoring to use MaybeT
15:29:40 <Taneb> When it reaches a bracket, that bracket and its partner are removed ish
15:29:51 <elliott> itidus20: Just think of it as a tree: Application (i.e. xy) is
15:29:53 <elliott> /\
15:29:55 <elliott> x y
15:30:04 <elliott> itidus20: And the leaves at the bottom of the tree are S, K or I
15:30:14 <Deewiant> elliott: Yeah this "massive performance decrease" business is why it's in C ;-)
15:30:33 <itidus20> hmm
15:30:35 <elliott> itidus20: Putting two expressions side-by-side and grouping with parentheses is just notation for describing these trees in one dimension
15:30:42 <elliott> Deewiant: Well, "massive"
15:30:51 <elliott> Deewiant: It's not like my runtime was very high before or afte
15:30:53 <elliott> r
15:30:55 <elliott> I'm just going by Mycology
15:31:11 <elliott> Deewiant: But anyway, it's not really Haskell to blame here, more the library, I don't even think MaybeT is strict
15:31:30 <CakeProphet> yeah Haskell isn't to blame it's just a language.
15:31:30 <elliott> I'm confident I can achieve a well-performing fungespace
15:31:41 <elliott> brb.
15:31:42 <CakeProphet> elliott: 2-d zippers?
15:31:47 <elliott> CakeProphet: It's not that easy :)
15:31:54 <itidus20> ok thanks. ill let it go there
15:32:27 <CakeProphet> well a 2-d zipper itself isn't completely straightforward.
15:33:18 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:33:42 <Deewiant> elliott: I know, I was just being snarky :-P C is for interoperability reasons anyway, depending on language runtimes kinda sucks
15:34:05 <CakeProphet> I can only think of two ways to do it really. One is a zipper of zippers where you have to map the shift operations on every subzipper
15:35:15 <CakeProphet> the other is single zipper but with more directions. up, down, left, right, and the intermediate directions. Actually I don't think that one would work at all.
15:38:41 <itidus20> so on returning from the toilet my mind shifts to a one dimensional trinary cellular automata
15:38:58 <itidus20> and this CA... each cell would be either I or K or S
15:40:23 <itidus20> the problem i suppose would be that it would be a celluar automata with the ability to delete cells from the tape
15:40:34 <itidus20> like a linked list
15:41:23 <itidus20> so.. a CA with insertion and deletion
15:43:31 <Taneb> ...Closer to an L-System
15:44:34 <itidus20> it would be like you could just fold that section of tape into a higher dimension.. but technically.. the CA is an array.. and it could be a linked list
15:45:07 <itidus20> then again I don't see tat idea working very well
15:45:15 <itidus20> but in 1 dimension.... it wouldn't be so bad
15:45:24 <itidus20> in 2 dimensions it would be a royal nightmar
15:45:35 <cheater__> itidus20, interesting, if you rearrange "toilet" you get..
15:45:54 <cheater__> actually if you rearrange "toillet"
15:46:00 <itidus20> lol
15:46:26 <Gregor> Very little good can come from rearranging toilet.
15:46:43 <cheater__> as can be seen
15:46:46 <itidus20> i dont want to take sides though
15:46:55 <cheater__> itidus20, interesting, ternary cellular automata
15:47:23 <cheater__> in fact, i never understood - what's the "difference" between GOL and cellular automata? GOL is just a subset of that, right?
15:47:48 <Taneb> GOL? What's a GOL?
15:48:08 <cheater__> it's what you get when you rearrange "LOG"
15:48:11 <cheater__> and also game of life.
15:48:25 <cheater__> (those toilet jokes never end do they)
15:48:28 <Taneb> Aah
15:48:35 <Taneb> Game of Life is an example of a CA
15:48:50 <cheater__> what are the rules that specialize a CA specifically into the GOL?
15:49:21 <Taneb> Consider a cell in a Moore Neighbourhood
15:49:30 <Taneb> Each cell has eight cells around it.
15:50:26 <Taneb> If a cell is 1 and has less than 2 1s around it, it becomes 0 next generation
15:51:04 <Taneb> If a cell is 1 and has more than 3 1s around it, it becomes 0 next generation
15:51:07 <itidus20> well suppose you had: -[S]-[K]-[K]-[I]- .. then it would become -[K]-[I]-[K]-[I]- which would become -[I]-[I]- which would become -[I]- .. so this would suggest multiple phases per generation.
15:51:31 <Taneb> If a cell is 0, and has 3 1s around it, it becomes 1
15:51:34 <itidus20> one phase to calculate the [S], one phase to calculate the [K], one phase to calculate the [I]
15:51:36 <Taneb> Otherwise, it stas the same
15:52:24 <Taneb> cheater__: understand?
15:52:28 <itidus20> maybe phases isn't the best way to do it though
15:53:41 <cheater__> Taneb, ok
15:54:11 <itidus20> -[1]-[+]-[1]- = -[2]- >:-)
15:54:32 <Phantom_Hoover> OK, that does it.
15:54:37 <Taneb> itidus20: I have no idea how you can make an SKI CA
15:54:45 <Phantom_Hoover> I'm going for the cat.
15:54:47 <itidus20> i dont think you can..
15:55:09 <Taneb> Phantom_Hoover: ,[<>][,[<>]]
15:55:29 <itidus20> but an arithmetic CA...
15:56:41 <CakeProphet> with the right rules.
15:56:57 <CakeProphet> but there would be a lot of ambiguous cases to cover.
15:57:35 <itidus20> so my breakthrough (in my own little world that is) is that a 1 dimensional CA would work well in a linked list implementation and with lots of states rather than just 0 and 1
15:57:47 <itidus20> I suppose it could be done with just 0 and 1 of course
15:57:57 <itidus20> and you would want rules which extended beyond direct neighbors
15:58:21 <cheater__> can't an n-ary 1d CA unwrap to a binary 2d CA?
15:59:02 <itidus20> the aryness isn't really the signifigant thing.. i put too much emphasis there
15:59:17 <CakeProphet> itidus20: a 1-d CA would better be represented by a zipper, which is two linked lists and "center" value.
15:59:26 <CakeProphet> because a linked list only goes in one "direction"
15:59:29 <cheater__> in fact, can't an n-ary k-D CA unwrap to a binary k+1-D binary CA?
15:59:45 <itidus20> a doubly linked list then
15:59:47 <itidus20> :P
16:00:21 <CakeProphet> no because it still has an endpoint.
16:00:38 <CakeProphet> you have one linked list that goes left and one that goes right.
16:00:50 <itidus20> the idea of inserting and deleting cells is quite signifigant
16:01:01 -!- derrik has joined.
16:01:05 <CakeProphet> mmk.
16:02:24 <itidus20> you could have a rule that when it finds [1][1][1][1] it inserts a [0] in the middle thus creating [1][1][0][1][1]
16:02:51 <itidus20> hehe.. and you could have a rule that when it finds [1][1][0][1][1] it could rewrite it as [1][1][1][1]
16:02:57 <CakeProphet> okay so what happens when you have [1,1,1,1,1]
16:03:04 <itidus20> hummmmm
16:03:08 <CakeProphet> itidus20: cool so it just oscilates back and forth
16:04:15 <itidus20> [1,1,1,1,1] would seem to become [1,1,0,1,0,1,1]
16:05:06 -!- derrik has quit (Client Quit).
16:05:30 <CakeProphet> itidus20: wasn't obvious to me. Maybe you need to expand on your rule.
16:05:36 <CakeProphet> because otherwise it's ambiguous.
16:05:50 -!- copumpkin has quit (Ping timeout: 252 seconds).
16:05:55 <itidus20> ahh...
16:06:08 <itidus20> instead of cells... it seems to work at the link level
16:06:54 <itidus20> so [1][1][1][1] means [1][1] on the left side of a link and [1][1] on the right side
16:07:06 <itidus20> so would be actually [1][1]-[1][1]
16:07:13 <CakeProphet> uh, what?
16:07:42 <CakeProphet> there's a link between every node.
16:07:52 <itidus20> which means [1][1][1][1] is an ambiguous term for -[1][1][1][1] or [1]-[1][1][1] or [1][1]-[1][1] or [1][1][1]-[1] or [1][1][1][1]-
16:08:45 <itidus20> and in the case of [1][1]-[1][1] it would check the left and right side of a link for 2 [1]'s.. and set a pending insertion of a [0]
16:08:48 <CakeProphet> do you know how a linked list works?
16:09:40 <itidus20> so the rules would exist on 2 levels.. link-oriented rules, and cell-oriented rules
16:09:46 <CakeProphet> the linked list itself is not ambiguous it's just (1,(1,(1,(1,()))))
16:09:52 <CakeProphet> every node has a link
16:10:03 <itidus20> my notation was ambiguous, thats all
16:15:30 <itidus20> so with what i have envisioned.. you could say have [0][0][0][0][0][1][0][0][0][0][0][0][0] and have a rewriting rule [1]- = [1]-[1] which would insert a [1] at the right side of every [1] for the next generation
16:15:54 -!- derrik has joined.
16:16:35 <CakeProphet> itidus20: except that notation is hideous
16:17:16 <itidus20> i don't know any real notations.. that is part of the trouble
16:17:38 <CakeProphet> well [1,2,3,4] is a good one.
16:17:46 <CakeProphet> (1 2 3 4)
16:17:50 <itidus20> ah
16:17:51 <MDude> You just lack a proper appreciation for squares.
16:18:09 <CakeProphet> 1:2:3:4:[] is the desugared version that Haskell uses, where : is cons and [] is the empty list
16:18:52 <CakeProphet> though I guess [] is still a special constructor, but not sugar.
16:19:03 <itidus20> then, by [1]- = [1]-[1] i mean [1,*] = [1,1]
16:19:13 <CakeProphet> no don't ever do that either.
16:19:33 -!- copumpkin has joined.
16:20:15 <itidus20> [1,1,*,1,1] = [1,1,0,1,1] and [1,1,0,1,1] = [1,1,1,1]
16:21:04 <itidus20> i don't know
16:21:45 <itidus20> perhaps i should let it rest
16:21:45 -!- derrik has quit (Quit: battery!!).
16:24:30 <CakeProphet> itidus20: you don't need to explicitly specify links because there's an implicit link between each element
16:24:57 <CakeProphet> [1][1]-[1][1] is the exact same thing as [1][1][1][1] for a linked list.
16:26:23 <CakeProphet> so your rewrite rules are still ambiguous unless you specify in what order it occurs.
16:26:52 <itidus20> there is probably no practical advantage to inserts and deletions
16:27:04 <itidus20> but it would be spicy
16:33:29 <Phantom_Hoover> Operation Cat has failed.
16:33:35 <Phantom_Hoover> This mouse is a worthy opponent indeed.
16:33:40 <elliott> back
16:33:47 <itidus20> you should try chocolate as bait
16:37:27 -!- Taneb has quit (Ping timeout: 276 seconds).
16:43:16 -!- Taneb has joined.
16:58:45 <elliott> Deewiant: No thanks for making me look at the Shiro code, it is a bit of a mess
17:07:40 <Phantom_Hoover> aAHAHAHAHVFAFVAOEKRHF
17:07:41 <Phantom_Hoover> I HAVE IT
17:07:44 <Phantom_Hoover> AHAHHAHAHAHAHAHAHAHAHAHA
17:07:46 <elliott> Phantom_Hoover: HUG IT
17:07:47 <Phantom_Hoover> AHAHAHAHAHAHAHAHAHAHAHAHAHAH
17:08:04 <elliott> copumpkin: How come I'm getting so many mtl/monads-tf conflicts lately, I blame you?
17:08:12 <copumpkin> not my fault
17:08:22 <elliott> copumpkin: That doesn't stop me blaming you
17:08:34 <copumpkin> fair enough
17:08:44 <elliott> I wonder if my instinctual specification of mtl is the Wrong Choice, if monads-tf is so popular now :P
17:13:32 -!- elliott has left ("Leaving").
17:13:36 <Phantom_Hoover> There, I released it into the wild.
17:13:38 -!- elliott has joined.
17:13:42 <Phantom_Hoover> There, I released it into the wild.
17:13:57 <elliott> NO
17:13:57 <elliott> MISSED
17:13:58 <elliott> PET
17:13:59 <elliott> OPPORTUNITY
17:14:00 <elliott> FRIEND
17:14:38 <Phantom_Hoover> I had to get the cat into containment so the mouse would have time to flee.
17:15:52 <elliott> OK but
17:16:02 <elliott> be nice
17:16:04 <elliott> to the mouse
17:16:16 -!- MSleep has joined.
17:17:16 -!- Taneb has quit (Ping timeout: 260 seconds).
17:20:33 -!- augur_ has joined.
17:21:56 -!- ttm_ has quit (Ping timeout: 260 seconds).
17:22:42 -!- cheater_ has joined.
17:24:06 -!- ttm_ has joined.
17:25:48 -!- Phantom__Hoover has joined.
17:26:05 -!- cheater__ has quit (Ping timeout: 255 seconds).
17:26:05 -!- MDude has quit (Ping timeout: 255 seconds).
17:26:05 -!- augur has quit (Ping timeout: 255 seconds).
17:26:05 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:26:27 <olsner> so, this #jesus you've all been talking about, will I have fun if I join?
17:28:19 -!- Taneb has joined.
17:30:59 <elliott> olsner: yes.
17:31:10 <elliott> #esoteric-jesus is the recommended side dish.
17:31:52 <olsner> hehe, is that about esoteric christianity, or just another #esoteric offshoot? :)
17:31:52 <elliott> Deewiant: Well, Shiro currently runs, slowly, and then dies when testing FIXP
17:32:10 <elliott> Deewiant: I do seem to recall this thing being fast and correct before I started optimising ;-)
17:32:20 <elliott> olsner: latter, ais was getting annoyed :D
17:33:52 <olsner> I wonder if I could set up an IRC client so that it displays #esoteric-jesus and #jesus in the same channel while sending everything I write only to #esoteric-jesus
17:33:53 <fizzie> Soon there will be an #esoteric-x \forall #x \in freenode, it seems.
17:34:02 <olsner> kind of like a spectator mode
17:34:26 <elliott> Deewiant: So, um, does Mycology actually try a negative exponent with R?
17:35:12 -!- sebbu2 has joined.
17:35:12 -!- sebbu2 has quit (Changing host).
17:35:12 -!- sebbu2 has joined.
17:36:27 -!- sebbu has quit (Ping timeout: 246 seconds).
17:37:01 -!- rodgort has quit (*.net *.split).
17:40:03 <Deewiant> elliott: Beats me, run ccbi mycology.b98 to find out
17:40:20 <elliott> Deewiant: It does
17:40:34 <elliott> Or at least, if it only does so because of a bug in Shiro, then it still gets to the end if I add a check
17:43:24 -!- olsner has quit (Quit: Leaving).
17:43:47 -!- olsner has joined.
17:44:13 <elliott> I wonder if there's a way to get dired to hide "crap" files altogether like .o
17:44:21 <elliott> Rather than just dimming them
17:47:02 -!- rodgort has joined.
17:52:38 <elliott> ok, wtf...
17:52:41 <elliott> hmm
17:56:14 -!- MSleep has changed nick to MDude.
18:05:44 -!- Vorpal_ has joined.
18:05:47 -!- Vorpal has quit (Disconnected by services).
18:09:37 <elliott> aha
18:09:48 <elliott> one point seven seconds to point nine nine seconds
18:09:57 <elliott> just by eliminating typeclass bullshit
18:10:03 <elliott> Vorpal_: hi im work on shiro again
18:10:20 <Vorpal_> okay
18:10:26 -!- Vorpal_ has changed nick to Vorpal.
18:11:02 <elliott> Vorpal: (to beat deewiant)
18:11:04 <elliott> Vorpal: (and cfunge)
18:11:14 <elliott> maybe i'll even put it in a VCS :OOOOOOOOOOOOOOOO
18:12:28 <elliott> not pictured: Vorpals's shock
18:13:12 <elliott> asterisk Vorpal's
18:13:27 <Vorpal> elliott, I don't really care *shrug*
18:14:00 <elliott> Vorpal: you say that now.... but when shiro beats cfunge on mycology...
18:14:25 <Vorpal> elliott, *shrug*
18:14:39 <elliott> *shrug*
18:15:25 <Taneb> ...what's shiro?
18:15:41 <elliott> funge interpreter in haskell
18:15:55 <Taneb> Funge as in befunge?
18:16:06 <elliott> yes. ninety-eight, though, not the (far simpler) ninety-three standard.
18:18:58 <Taneb> Sounds tricky
18:19:52 -!- pikhq_ has joined.
18:20:03 <Taneb> Especially p and g
18:21:19 -!- pikhq has quit (Read error: Operation timed out).
18:21:47 <elliott> Taneb: It would be about ten times less tricky than it is without a bunch of edge-cases
18:22:05 <elliott> It took me about four days of constant coding to get it to pass Deewiant's Mycology test suite
18:22:09 <elliott> And that's before any fingerprints
18:22:32 <Taneb> Mycology?
18:23:02 <elliott> http://iki.fi/matti.niemenmaa/befunge/mycology.html
18:23:11 <elliott> or, pretty colours: http://iki.fi/matti.niemenmaa/befunge/mycology-comparison.html
18:23:33 <elliott> also the analogous benchmark suite http://iki.fi/matti.niemenmaa/befunge/fungicide.html (pretty graphs: http://iki.fi/matti.niemenmaa/befunge/fungicide-rankings/index.html)
18:23:43 <olsner> a whole four days? so that's how bad a coder you are then :P
18:24:33 <elliott> olsner: hey, four days isn't bad for about five hundred lines of code written according to a very vague and self-contradictory spec that pass an extremely rigorous test suite
18:24:43 <elliott> s/code/haskell/ :P
18:24:50 <elliott> s/pass/passes/
18:24:53 <elliott> well, the lines are plural I guess
18:25:01 <CakeProphet> five hundred lines of Haskell is actually probably more code than in most languages.
18:25:13 <CakeProphet> depending on how condensed it is.
18:25:24 <elliott> it was pretty fast, too
18:25:29 <elliott> CakeProphet: that's why I s///'d it :P
18:25:33 <elliott> gotta get credit for my achievement
18:27:20 <CakeProphet> I've got a bid for a project that has about 10k lines of C#
18:27:32 <CakeProphet> they want it ported to linux.
18:27:43 <olsner> hmm, if the language takes so little code, why does the spec have to be so vague and self-contradictory
18:28:22 <elliott> CakeProphet: mono foo.exe
18:28:23 <elliott> job done
18:28:33 <elliott> olsner: five hundred lines of Haskell doesn't count as "little code" to me
18:28:34 <Vorpal> <CakeProphet> five hundred lines of Haskell is actually probably more code than in most languages. <-- indeed
18:28:42 <elliott> that's "medium-size"
18:28:49 <Vorpal> cfunge is something like 10000 lines, that includes fingerprints too though
18:28:51 <elliott> olsner: anyway, because cpressey
18:28:55 <elliott> is dumb
18:28:56 <elliott> in the past.
18:29:17 <elliott> Vorpal: shiro is about one thousand three hundred lines right now. fewer fingerprints, of course, but I'm working on that.
18:29:19 <Vorpal> and things you get for free in haskell, since C has a poor standard library
18:29:31 <olsner> sounds like I should write myself a funge some day, to see what it's all about
18:29:39 <elliott> Vorpal: You complain about your standard library???
18:29:39 <elliott> -- no portable environment variable module
18:29:39 <elliott> import System.Posix.Env
18:29:44 <elliott> --Shiro.Fingerprints.EVAR
18:29:46 <Vorpal> elliott, :P
18:29:48 <elliott> LOOK AT THE HORROR I HAVE TO SUFFER THROUGH
18:29:55 <Vorpal> elliott, lack of Data.whatever
18:30:11 <elliott> Vorpal: wat
18:30:13 <CakeProphet> let's say I want to write a GUI in Haskell. What are my options? (I believe I've asked this question before...)
18:30:15 <Vorpal> elliott, I mean you can just pull out a b-tree or hash table from some module
18:30:26 <Vorpal> not like C has those in the standard library
18:30:31 <elliott> CakeProphet: gtk, wxwidgets, these are the main ones????
18:30:46 <elliott> the wx binding has a much nicer API, but wxWidgets applications tend to be uglier
18:30:48 <Vorpal> elliott, what about Tk bindings?
18:30:59 <Vorpal> elliott, wxwidgets look better under OS X iirc
18:31:01 <Vorpal> than gtk
18:31:02 <elliott> Vorpal: i don't know of any
18:31:05 <elliott> and, well
18:31:09 <elliott> sort of :)
18:31:12 -!- zzo38 has joined.
18:31:14 <elliott> just forget about looking nice on os x
18:31:17 <elliott> there's one way to do it: cocoa
18:31:24 <Vorpal> bbiab, going to play adanaxis (fun game)
18:31:34 <CakeProphet> elliott: I want pretty UIs. Also it needs to run off of a flash drive...
18:31:47 <elliott> CakeProphet: well, plenty of prominent programs use wxWidgets
18:32:03 <elliott> it looks basically like Gtk, if you're not discerning; it uses native platform widgets except when it doesn't
18:32:07 <elliott> Code::Blocks is wxWidgets, if you've used it
18:32:21 <elliott> oh, uTorrent too apparently?
18:32:24 <elliott> oh yes, and Audacity
18:32:28 <CakeProphet> I'm just wondering if I could package everything as a standalone application that can run via flash drive on Windows.
18:32:40 <elliott> how would it stop you
18:32:43 <CakeProphet> not too familiar with distributing my code...
18:32:51 <elliott> "this MUST be in C:\Windows!!!"
18:33:08 <CakeProphet> I guess it would be fine. I'd need to include the dependencies right?
18:33:23 <CakeProphet> I mean, like... uh
18:33:24 <elliott> the C library dependencies, yes.
18:33:30 <elliott> GHC statically links Haskell libraries by default.
18:33:35 <CakeProphet> I just don't really know how to structure everything.
18:33:36 <elliott> so basically you'll need the wxWidgets dlls.
18:33:58 <CakeProphet> ah okay.
18:34:23 <CakeProphet> okay I'll just figure it out when I get to that point.
18:34:36 <zzo38> I just use command-line program in C, and it works OK. It should work in any computer.
18:34:50 <zzo38> If graphical stuff and that kind of things are needed, I can use SDL.
18:35:20 <CakeProphet> I was just wondering where I should put the dependencies and how Haskell knows where they are, etc.
18:35:39 <zzo38> But with Haskell, I don't know very well about it.
18:35:43 <CakeProphet> where the dlls should be on the flash drive.
18:36:01 <elliott> CakeProphet: "Haskell" doesn't know anything. GHC produces standard dynamically-linked executables.
18:36:10 <zzo38> If the program is specifically for Windows you should just use native widgets.
18:36:12 <elliott> On Windows, putting DLLs in the same directory as the .exe file should work.
18:36:26 <elliott> zzo38: the Windows API is quite horrible to use, and I don't know of any Haskell bindings for it
18:36:27 <CakeProphet> okay, but I need the DLL right? GHC needs to know where that is, yes?
18:36:33 <elliott> wxWidgets uses them, though, so it just acts as a layer of abstraction
18:36:38 <elliott> CakeProphet: GHC doesn't. Your operating system does.
18:36:57 <CakeProphet> well, how does that work exactly.
18:37:06 <elliott> be more specific :P
18:37:08 <CakeProphet> I apologize for my inexperience with this sort of thing.
18:37:28 <CakeProphet> I mean, when I go to compile my program where should the DLLs be.
18:37:48 <zzo38> Once I used the Windows APIs to create a UserControl in Visual Basic, though. Because, the standard text box does not have Unicode, so I made up a user control that calls the unicode API
18:38:09 <elliott> CakeProphet: you need to install the wx package from Hackage. its build process will involve linking with the wxWidgets DLLs
18:38:12 <zzo38> CakeProphet: I would expect it to work if the DLL files are in the same directory as the main program.
18:38:22 <elliott> you might find http://www.haskell.org/haskellwiki/WxHaskell/Windows helpful
18:39:39 <zzo38> It is true that the Windows API is not that good, but if the program is designed specifically for Windows you can use it.
18:40:07 <CakeProphet> elliott: hmmm, I could also do this is linux right? but still cross-compiling for a Windows system.
18:40:12 <CakeProphet> *in
18:40:14 <zzo38> (Or if it is designed for not only Windows but also ReactOS, it would also do)
18:40:31 <elliott> CakeProphet: well, probably. you might find building the Haskell wx library painful.
18:40:37 <elliott> CakeProphet: more importantly, you'll need a GHC cross-compiler
18:40:42 <elliott> which might be painful in itself
18:41:37 <CakeProphet> okay so I'll just my windows partition...
18:41:43 <CakeProphet> as painful as it will be.
18:42:05 <elliott> that might be even more painful :-)
18:42:08 <fizzie> Be careful, or you'll accidentally your Windows partition.
18:42:14 <NihilistDandy> ^^
18:42:16 <elliott> CakeProphet: you might want to -- brace yourself here, what I am about to say may shock you --
18:42:23 <elliott> CakeProphet: consider using a different language for this
18:42:44 <NihilistDandy> DO NOT BLASPHEME
18:42:52 <CakeProphet> elliott: suggestions?
18:43:20 <CakeProphet> hey I'll use C#!!!
18:43:26 <CakeProphet> not that I want to...
18:43:31 <elliott> CakeProphet: With Python, you could just use Portable Python or any other "USB stick" version, and it comes with Tkinter, which looks... semi-native on Windows (IDLE is Tkinter). that saves you DLL issues and the like, and there's that py[two]exe converter that might simplify it further. of course python is terrible
18:43:32 <CakeProphet> but it would be good for windows stuff.
18:43:32 <elliott> but
18:43:34 <elliott> as far as windows goes
18:43:36 <elliott> the support ain't bad
18:43:59 <elliott> i would poke around tkinter's preference dialogues to make sure you consider tk pretty enough on windows first
18:44:05 <CakeProphet> also, I'm pretty familiar with Python, so that's a plus.
18:44:18 <elliott> http://www.py2exe.org/
18:44:24 <CakeProphet> yeah I've seen it.
18:44:39 <NihilistDandy> elliott, How did you end up with a keyboard without number keys?
18:44:50 <elliott> NihilistDandy: I wish I knew
18:45:01 <CakeProphet> hmmm, but does a .exe contain hardware specific machine code? How do they run portably on any Windows machine?
18:45:09 <CakeProphet> s/does/doesn't/
18:45:15 <elliott> CakeProphet: I...
18:45:23 <CakeProphet> excuse my ignorance.
18:45:24 <elliott> You realise that all the Windows applications available on the 'net are in .exe form, right?
18:45:29 <CakeProphet> yes
18:45:38 <CakeProphet> this is why I'm confused.
18:45:39 <elliott> I mean, programming ignorance, sure, but it sounds like you've never used Windows before.
18:45:46 <elliott> CakeProphet: Guess what, Windows only runs on two architecture.
18:45:46 <CakeProphet> no I have.
18:45:47 <elliott> s.
18:45:53 <elliott> One of those architectures is backwards-compatible with the other.
18:46:01 <CakeProphet> ah okay.
18:46:12 <elliott> Well
18:46:12 <elliott> Supported platformsARM, IA-32, x86-64 and Itanium
18:46:16 <elliott> Got an Itanium machine sitting around?
18:46:19 <elliott> It won't work on that
18:46:56 <fizzie> NT 3.1 or so ran on Alpha and MIPS too.
18:47:16 <fizzie> And 4.0 on PPC.
18:47:22 <elliott> fizzie: Yes, I know; I've ran an emulated NT four in qemu's MIPS emulato.
18:47:23 <elliott> r.
18:47:37 <CakeProphet> so really the vast majority of home computers are using the same few architectures.
18:47:39 <fizzie> I recall that project, yes.
18:47:41 -!- Taneb has quit (Ping timeout: 260 seconds).
18:47:45 <CakeProphet> I thought there were several more.
18:48:05 <fizzie> Yes, everything's a VAX nowadays.
18:48:30 <elliott> Vast majority -- every home computer is an x86 or an x86-64.
18:48:38 <CakeProphet> >_> am I the only one who doesn't know everything about everything related to computing?
18:48:40 <elliott> The error is on the scale of floating-point inaccuracies.
18:48:52 <CakeProphet> you know, out of the non-new, regular people.
18:48:53 <fizzie> elliott: My laptop's a PPC iBook, so shush.
18:49:01 <elliott> Yes. We've been hiding the facts from you.
18:49:25 <elliott> fizzie: So what's Apple's percentage of the market these days? Percentage of that market that's still on PPC? :p
18:49:33 <elliott> fizzie: And it doesn't count as a home computer if you can take it out of your home.
18:49:44 <elliott> Everything under a certain weight is not a home computer because I said so.
18:49:55 <pikhq_> ARM's quite relevant, though.
18:50:02 <zzo38> You can write the programs that does not use floating-point, and then don't have floating-point inaccuracies.
18:50:25 <CakeProphet> really I've never taken the time to learn about old instruction sets, specific points of language specs, compiler internals, and so on.
18:50:26 <elliott> pikhq_: Not as far as home computers are concerned
18:50:28 <fizzie> ARM is not relevant in elliott's weight class. :p
18:50:34 <pikhq_> elliott: Okay, true.
18:50:39 <CakeProphet> I... have other things to do. like life.
18:50:39 <elliott> fizzie: I'm deeply personally offended by this personal remark
18:50:44 <pikhq_> elliott: Only relevant for smaller devices.
18:51:13 <elliott> What does "life" actually mean, anyway; it seems to mean "this thing that's infinitely greater than all my actual hobbies that I do all the time because I rule"
18:51:27 -!- derrik has joined.
18:51:32 <elliott> Like, I get the intended snarkiness, but it's such a ridiculously self-defeating concept
18:51:39 <CakeProphet> elliott: nah, more like obligations that are time-consuming.
18:51:45 <CakeProphet> it wasn't snarky.
18:51:56 <elliott> I just meant the general snarkiness of "I don't X, I have a life". :p
18:52:06 <elliott> Anyway obligations are for oblongs.
18:52:10 <elliott> do u c wut i did thar
18:52:20 -!- nooga has joined.
18:52:23 <CakeProphet> oh, yeah, that's different from what I was saying. Life is something that needs doing, not something that I have that others do not.
18:52:39 <elliott> you should make sure all your obligations involve old instruction sets
18:52:41 <NihilistDandy> `addquote <elliott> What does "life" actually mean, anyway; it seems to mean "this thing that's infinitely greater than all my actual hobbies that I do all the time because I rule"
18:52:42 <HackEgo> 582) <elliott> What does "life" actually mean, anyway; it seems to mean "this thing that's infinitely greater than all my actual hobbies that I do all the time because I rule"
18:52:43 <CakeProphet> having "a life" is basically referring to a social life. You know, being cool and interesting to other people and stuff.
18:52:55 <elliott> Unnecessary, I HAVE OLD INSTRUCTION SETS AND LANGUAGE SPECS
18:53:11 -!- Taneb has joined.
18:53:21 <elliott> CakeProphet: I'll let you in on a secret: 90 percent of everyone's knowledge is stored on a medium-efficiency but extremely high-capacity storage layer called "Google"
18:53:33 <elliott> Helpfully, it is accessible in almost all situations were IRC is
18:53:42 <elliott> Quick, ask me about goats.
18:54:14 <elliott> THAT WAS NOT RHETORICAL
18:54:14 <CakeProphet> Right, but I'm just wondering about the general process of accumulating all of this knowledge. Essentially, in what order do you google things.
18:54:21 <CakeProphet> elliott: no your point is RUINED
18:54:27 <CakeProphet> I AM RUINING IT HAHA
18:55:20 <elliott> CakeProphet: "Hey in Haskell what GUI libraries are good" oh well, I know of gtk and wx, maybe there's a qt binding? google "hackage packages" -> http://hackage.haskell.org/packages/archive/pkg-list.html -> Ctrl+F qt -> ok nothing im so right and awesome always haha look at my wisdom
18:55:31 <elliott> unedited transcript
18:55:59 -!- azaq23 has joined.
18:56:01 <CakeProphet> like, I know a lot of things are googled during conversation, but there's a lot of information that's just already known... and I wonder why. Are you reading about a language spec or old instruction set right now, elliott?
18:56:16 <elliott> I _am_ an old instruction set.
18:56:30 <elliott> But, umm, I know a lot about the languages I use a lot :P
18:56:30 <CakeProphet> ancient Egyptian?
18:56:35 <nooga> Voynitch
18:57:07 <CakeProphet> elliott is a mystical figure of ancient Egyptian computational wisdom cleverly disguised as a young lad.
18:57:13 <elliott> HOW DID YOU KNOW.
18:58:31 <CakeProphet> so for the next few days I'm going to be cramming every bit of knowledge off of the internet I can.
18:58:57 <CakeProphet> so that I can impress this potential hirer and maybe start making some money.
18:59:42 <CakeProphet> and then I TOO WILL KNOW EVERYTHING ABOUT COMPUTERS. Or at least all of the boring useful stuff.
19:00:13 <elliott> Meh, don't try and learn anything at all, and then prove you have an actually useful skill (ability to find answers to questions with Google), demonstrate repeatedly for every question given
19:00:20 <fizzie> Start from tvtropes or uncyclopedia or 4chan or some-such, that's where all the useful bits are.
19:00:20 <elliott> (Approach a good one but not necessarily a successful one)
19:01:34 <CakeProphet> elliott: but I won't have time to google everything. That's what work experience does, cuts down on your googling time.
19:01:54 <elliott> Googling takes a noticeable amount of time for you?
19:01:58 <CakeProphet> it adds up.
19:02:42 <cheater_> > let g = (\(x:y:z) -> [y] ++ z ++ [x]) in reverse $ g $ g $ g $ (\x -> head x : head x : tail x) $ g $ g $ g "toilet"
19:02:44 <lambdabot> "elliott"
19:02:56 <CakeProphet> ohhhh snap!
19:03:13 <elliott> On topics that aren't cheater_'s obsessive fascination with both toilets and me, CakeProphet: have you seen the wonder that is mergeByteString.
19:03:55 <CakeProphet> elliott: but yeah not the actual googling but the total time it takes to read and understand everything for a large project, becomes pretty large. especially when you only have a few days to complete it.
19:03:59 <CakeProphet> and, no.
19:04:03 <CakeProphet> does it, uh, merge bytestrings?
19:04:31 <cheater_> @hoogle mergeByteString
19:04:32 <lambdabot> No results found
19:04:53 <elliott> CakeProphet: SHIELD YOUR EYES AND GAZE UNTO YOUR /MSG
19:06:01 * CakeProphet puts on his shades, ohhhh yeah. 8)
19:06:07 <CakeProphet> they look much less cool in ASCII
19:06:14 <CakeProphet> and in whatever typeface this is.
19:06:17 <cheater_> B)
19:06:53 <CakeProphet> oh god what am I looking at.
19:07:25 <CakeProphet> so wait how does that fungespace work.
19:07:49 <nooga> XB IOOOQAEP IOOIQOAI
19:08:04 <elliott> Right now it's just a basic Map, but with row and column population tracking
19:08:07 <elliott> And min/max coords
19:08:11 <CakeProphet> ah okay.
19:08:14 <CakeProphet> that works.
19:08:26 <elliott> It's going to become a lot more complicated soon
19:08:37 <elliott> Although hopefully that function will be
19:08:38 <elliott> less
19:08:39 <elliott> ugly
19:08:55 <CakeProphet> it is quite ugly.
19:09:11 <CakeProphet> I am still on the first line that isn't the type...
19:09:23 <CakeProphet> but my vision is bad and I really need to stop procrastinating that eye exam.
19:09:23 <elliott> CakeProphet: Basically it started off fairly passable, but then everything was _so_ _slow_, so I just said fuck it and went for efficiency first.
19:10:15 <CakeProphet> are you, folding a tuple? oh, no that's the initial value.
19:10:40 <CakeProphet> I use foldl1 a lot so I forget about the initial value.
19:10:42 <nooga> http://analysis.no.net/
19:10:50 <elliott> foldl1 is bad you shouldn't use foldl1
19:10:54 <elliott> :(
19:11:02 <CakeProphet> if I know it's fine to use then I do.
19:11:18 <elliott> it's only fine to use if your list never ever ever ever has no elements
19:11:18 <elliott> also
19:11:23 <elliott> it only supports folding functions of type (a -> a -> a)
19:11:26 <CakeProphet> also IF HASKELL LISTS HAD EMPTY/NON-EMPTY TYPING THEN THIS WOULDN'T BE A PROBLEM IT WOULD JUST CATCH ON COMPILE.
19:11:28 <elliott> which many folds don't meet
19:11:31 <elliott> for instance the one there
19:11:47 <elliott> CakeProphet: they... don't need that, there /is/ a nonempty list type in common use
19:12:01 <elliott> http://hackage.haskell.org/package/NonEmpty hmm or was it under another name, this one looks unupdated
19:12:06 <elliott> whichever one kmett uses :P
19:12:28 <CakeProphet> no I mean have something like List NonEmpty a for the : constructor and List Empty a for the [] constructor.
19:12:34 <CakeProphet> or, is that what you mean?
19:12:53 <elliott> well, that's pointless. why not just have [a] and NonEmpty a?
19:13:03 <elliott> the two types aren't really related, so bundling them together into "List" seems silly.
19:13:14 <zzo38> I think I managed to program the Propositional Calculus into Haskell's type system, although Typographical Number Theory would be more difficult since the way of variable bindings in TNT. But maybe there is a way, but I don't know much about Haskell so I don't know.
19:13:15 <elliott> especially since it makes using lists that you don't care whether they're empty or not really awkward
19:13:23 <CakeProphet> yes, it does.
19:13:56 <zzo38> Is this correct? http://sprunge.us/ZQYd
19:14:08 * itidus20 ponders a remapping of ascii code whereby: 0='0', 1='1', 9='9', 10='A', 15='F', 16= 'G', 35='Z', 64='a', 89='z'
19:14:23 <CakeProphet> why.
19:14:30 <zzo38> Now it seems to work if typing :t Or (Not$ And (Atom$ P) (Not$ Atom$ Prime$ Q)) (Imply (Not$ Not$ Atom$ P) (Atom$ Prime$ Q))
19:14:54 <elliott> zzo38: that's not haskell's type system
19:14:59 <elliott> that's just embedding it into haskell
19:14:59 <zzo38> itidus20: I also made a new code, where it also had the property that 'A' comes directly after '9'. But not where 'a' comes directly after 'Z'
19:15:33 <itidus20> 'a' doesn't come directly after 'Z' in my code either :D
19:15:35 <zzo38> elliott: OK, so how would you embed Typographical Number Theory into Haskell by using the type system?
19:15:37 <Vorpal> <nooga> http://analysis.no.net/ <-- hm.
19:15:50 <elliott> Vorpal: oh, thanks; I was wondering where that tab came from
19:15:58 <Vorpal> elliott, XD
19:16:02 <elliott> zzo38: well, basically, every constructor would become a type, with no constructors
19:16:05 <zzo38> itidus20: OK. I had that 'a' results from 'A' just by setting a bit
19:16:09 <itidus20> if you look carefully, 'a' waits until 64.. which is binary 100000
19:16:12 <elliott> I don't know why you'd wnat to, though
19:16:23 <zzo38> So, still different to your system
19:16:24 <itidus20> but .. i didnt have it as a bit setting
19:16:32 <itidus20> yes..
19:16:33 <itidus20> :)
19:16:41 <itidus20> darn
19:16:57 <CakeProphet> bitwise operators sure are cool.
19:17:02 <zzo38> You have 10 (0x0A) for 'A' and 64 (0x40) for 'a' so it doesn't go
19:17:44 <itidus20> zzo38: if only i had shifted my 'a' up by about 10 it would have been the same
19:17:44 <zzo38> But my system does share the property with yours (and also with ASCII) that (('0'&0xF)==0)
19:17:50 <itidus20> well, you have bested me
19:17:50 <zzo38> itidus20: Yes.
19:18:08 <itidus20> now, back to your query
19:18:13 <elliott> `addquote <itidus20> well, you have bested me <zzo38> itidus20: Yes.
19:18:14 <HackEgo> 583) <itidus20> well, you have bested me <zzo38> itidus20: Yes.
19:18:49 <zzo38> elliott: That is backwards from how it appears on my screen.
19:18:56 <elliott> aww
19:19:04 <itidus20> lol
19:19:32 <zzo38> Here is my design: http://sprunge.us/KTBE
19:19:37 <CakeProphet> elliott: you are using a 6-tuple
19:19:41 <CakeProphet> do you realize that you are using a 6-tuple?
19:19:47 <elliott> CakeProphet: :)
19:19:49 <CakeProphet> maybe you just need to, step back
19:19:53 <CakeProphet> take a few deep breaths.
19:20:03 <CakeProphet> get some perspective.
19:20:05 <nooga> Vorpal: hm? hm?
19:20:11 <Vorpal> nooga, just "hm."
19:20:15 <nooga> ah
19:21:44 <CakeProphet> elliott: actually I guess a 6-tuple is fine. It's not any cleaner looking than an ADT and you probably can't reduce it in any way.
19:21:46 <zzo38> itidus20: Now, you can see how I designed a different character coding and what your opinion of it is
19:22:24 <itidus20> well i was chasing the luxurious property that ascii hex = binary hex :D
19:23:20 <CakeProphet> isn't hex just like... hex?
19:23:25 <zzo38> itidus20: I understand. However once doing so, you lose the feature of C where a string terminator can be code zero
19:23:32 <itidus20> ooh
19:24:06 <Vorpal> string terminators are ugly
19:24:13 <nooga> but helpful
19:24:16 <Vorpal> nooga, storing (size,data) is far better
19:24:20 <zzo38> So I did somethihng else where it is if you just set one bit (x|0x40) to make it into the character correspond to hex code
19:24:28 <elliott> does anyone know how to get Linux /usr/bin/time to output with three decimal places?
19:24:29 <Vorpal> nooga, less security risks too
19:24:29 <elliott> for real-time
19:24:32 <elliott> Vorpal?
19:24:32 <CakeProphet> Vorpal: but that's like a whole extra WORD of memory.
19:24:38 <itidus20> CakeProphet: 'A' = 65 .. 0xA = 10
19:24:42 <Vorpal> CakeProphet, oh, embedded?
19:24:42 <CakeProphet> Vorpal: maybe even more!!!
19:24:43 <Vorpal> right
19:25:08 <Vorpal> $ time
19:25:08 <Vorpal> real0m0.000s
19:25:09 <CakeProphet> memory is scarce these days, Vorpal.
19:25:13 <Vorpal> elliott, as far as I can tell it does already
19:25:16 <elliott> Vorpal: /usr/bin/time in particular.
19:25:18 <elliott> not built-in time.
19:25:27 <Vorpal> elliott, bash: /usr/bin/time: No such file or directory
19:25:33 <elliott> /bin/time then
19:25:39 <Vorpal> huh, not that either
19:25:39 <Vorpal> what
19:25:44 <elliott> your system is broken :P
19:25:47 <itidus20> zzo38: ah cool.. so you used bitflags extensively
19:25:50 <pikhq_> *pffft*
19:25:55 <Vorpal> elliott, yeah seems so.
19:25:58 <pikhq_> Enlightenment... Is going to release.
19:26:03 <zzo38> itidus20: Yes. I did.
19:26:14 <Vorpal> $ pkgfile -s /usr/bin/time
19:26:14 <Vorpal> extra/time
19:26:19 <Vorpal> need to install that
19:26:21 <Vorpal> I guess
19:26:30 <Vorpal> elliott, what is wrong with the built in time?
19:26:47 <zzo38> Although I did use other features too, such as the ordering of < = > sequentially in that order, the same as in ASCII.
19:26:53 <elliott> Vorpal: can't get it to output nicely
19:27:02 <Vorpal> elliott, in what way?
19:27:03 <zzo38> But for {} () [] brackets, to find the delimiters it is just one bit
19:27:06 <elliott> aha hm
19:27:07 <Vorpal> elliott, it goes to stderr
19:27:08 <CakeProphet> :t mapM
19:27:10 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b]
19:27:26 <elliott> perfect,
19:27:29 <elliott> $ TIMEFORMAT=%3R; for i in `seq 9`; do time ../../shiro mycology.b98 >/dev/null; done
19:27:53 <CakeProphet> > mapM (const [0,1]) [1,1,1,1,1,1,1,1]
19:27:54 <lambdabot> [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0],[0,0,0,0,0,0,1,1],[0...
19:28:09 -!- oerjan has joined.
19:28:33 <CakeProphet> > mapM (const "01") "________"
19:28:34 <lambdabot> ["00000000","00000001","00000010","00000011","00000100","00000101","0000011...
19:28:51 <itidus20> zzo38: I do believe that distractions are healthy, and hence this topic, however, I find it very difficult of late to concentrate on anything for a meaningful length of time. So my distractions are the fruits of lazy.
19:29:15 <oerjan> :t replicateM
19:29:15 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
19:29:25 <itidus20> And what I mean is I think your other topic is more important than some alternative character set I imagined at a whim.
19:29:32 <oerjan> > replicateM 8 "01"
19:29:33 <lambdabot> ["00000000","00000001","00000010","00000011","00000100","00000101","0000011...
19:29:58 <CakeProphet> aha.
19:30:09 <CakeProphet> well, right...
19:30:20 <elliott> oerjan: awesome
19:30:24 <CakeProphet> I was looking for a different way than using good old replicateM
19:30:33 <oerjan> i assume both of them end up applying sequence to the same list
19:30:34 <itidus20> I am like one of those people who never stops talking ever.
19:30:39 <CakeProphet> oerjan: yeah.
19:30:58 <oerjan> @src mapM
19:30:58 <lambdabot> mapM f as = sequence (map f as)
19:31:04 <oerjan> @src replicateM
19:31:04 <lambdabot> replicateM n x = sequence (replicate n x)
19:31:22 <CakeProphet> since I'm using const all that's importance is the length of the input list in mapM
19:31:42 <itidus20> zzo38: having said that, how do these things work in practice? is it like a filter which translates a character stream?
19:32:03 <oerjan> > sequence $ "________" >> ["01"]
19:32:04 <lambdabot> ["00000000","00000001","00000010","00000011","00000100","00000101","0000011...
19:32:12 <CakeProphet> map (const x) ls == replicate (length ls) x
19:32:14 <itidus20> like: char zzo_char(char a);
19:32:51 <CakeProphet> itidus20: a mapping function would be one way to do it, yes.
19:32:57 -!- NihilistDandy has quit (Ping timeout: 276 seconds).
19:33:05 <oerjan> :t (<$)
19:33:06 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
19:33:27 <oerjan> > sequence $ "01" <$ "________"
19:33:27 <CakeProphet> aha, that's the function I was looking for, once.
19:33:28 <lambdabot> ["00000000","00000001","00000010","00000011","00000100","00000101","0000011...
19:33:37 <itidus20> or can the video card be hacked to display text how you want it? :D
19:34:00 <itidus20> eh... wishful thinking
19:34:12 <elliott> itidus20: if you use video mode, like every graphical OS, then you control charsets
19:34:19 <elliott> you just draw text as you see fit.
19:34:20 <itidus20> ahh
19:34:38 <itidus20> because text mode is very rare nowadays i suppose
19:34:46 <elliott> text mode uses whatever font is currently loaded, by default what people consider the "DOS font", I'm sure there's a "portable" way to load a new one, since Linux does it
19:34:49 <elliott> so you could handle that, too
19:34:57 <fizzie> If you use an EGA/VGA compatible text mode, those have editable fonts too, yes.
19:35:01 <itidus20> ooh
19:35:02 <elliott> and keyboards send in scancodes, not ASCII, anyway, so you need a translation, but not one from ASCII
19:35:17 <elliott> so yes, you could use zzo38's character set all the way right up until the point where you need to talk to anyone else in the universe :P
19:35:25 <itidus20> so zzo38 could make an OS with his own charset and such
19:35:44 <pikhq_> Yes, but we would still be speaking UTF-8.
19:35:53 <itidus20> humm
19:35:54 <cheater_> itidus20, most modern personal computers can change to text mode with a single keyboard combination
19:35:54 -!- monqy has joined.
19:36:13 <elliott> I do not believe Windows has any such functionality.
19:36:24 <cheater_> i do not believe i left out "modern"
19:36:26 <itidus20> implication: windows is not modern :D
19:36:32 <fizzie> I believe most consoles tend to be framebuffers nowadays too.
19:36:52 <Vorpal> indeed
19:36:56 <cheater_> i do not
19:37:03 * pikhq_ actually doesn't have a framebuffer set up.
19:37:09 <Vorpal> they are usually framebuffers on linux
19:37:19 <Vorpal> I mean it tends to be that by default these days
19:37:22 <Vorpal> especially with KMS
19:37:38 <pikhq_> vesafb sucks, and the Radeon KMS thing would be great except that the Radeon X driver is unstable.
19:37:40 <cheater_> i don't think the ttys are framebuffers
19:37:41 <itidus20> i have derailed things with my topic
19:37:46 <fizzie> I think the Ubuntu default is to use a framebuffer console, and that's quite a market share right there.
19:37:57 <CakeProphet> haha, yeah Windows is totally not modern and stuff.
19:37:59 <cheater_> framebuffer consoles are discernible by a certain amount of lag on display
19:38:01 <Vorpal> pikhq_, atm I think I use vesafb + catalyst or some crazy combo
19:38:17 <pikhq_> cheater_: That's just vesafb.
19:38:19 <elliott> fizzie: see dictionary entry w → wasting your time, n.
19:38:25 <cheater_> pikhq_, oh?
19:38:28 <elliott> hmm is "wasting your time" a noun WILL THE WORLD EVER KNOW...
19:38:43 <pikhq_> cheater_: Nothing inherent, the vesafb driver is just naive.
19:38:48 <Vorpal> pikhq_, what fb do you use when you use intel graphics hm
19:38:55 <pikhq_> Vorpal: I don't have Intel graphics.
19:38:59 <pikhq_> Vorpal: :)
19:38:59 <Vorpal> right
19:39:25 <CakeProphet> elliott: it's a gerund phrase or part of the sentence's predicate.
19:39:30 <CakeProphet> so, it can be one. :P
19:39:47 <CakeProphet> by a stretch of definition, I guess.
19:40:32 <CakeProphet> wasting your time is bad
19:40:34 <CakeProphet> stop wasting your time.
19:40:51 <nooga> i'm learning ellian script
19:41:20 <CakeProphet> is that like, spelling out numbers and symbol characters and stuff?
19:41:33 <nooga> http://www.ccelian.com/concepca.html
19:41:34 <CakeProphet> ellian as in elliott?
19:41:42 <CakeProphet> oh no. okay
19:41:58 <CakeProphet> I was pretty confused about that.
19:41:58 -!- pumpkin has joined.
19:42:05 <nooga> looks nice but it's not very handy for handwriting
19:44:00 -!- copumpkin has quit (Ping timeout: 252 seconds).
19:44:29 <CakeProphet> I remember for my Java class we had paper tests.
19:44:35 <CakeProphet> so I had to... write Java code by hand.
19:45:02 <CakeProphet> it was the most unnatural thing ever.
19:45:03 <oerjan> class MyClass extending PaperTests
19:45:13 <nooga> i wrote C and C++ by hand
19:45:25 <nooga> on tests
19:45:38 <monqy> I've only had to write pseudocode by hand so far
19:45:38 <fizzie> Vorpal: My work-workstation has some Intel graphics in it, and /sys/class/graphics/fb0/name says "inteldrmfb".
19:45:46 <cheater_> nooga, what architecture did you write it for
19:46:27 <nooga> every single one that's supported by the compiler that teacher had to test answers lol
19:47:42 <CakeProphet> elliott: does Haskell have something equivalent to #if?
19:48:59 <elliott> CakeProphet: you can choose to have cpp run over your code, but don't.
19:49:00 <elliott> why do you want it
19:49:12 <monqy> why do you want #if
19:49:19 <monqy> there's probably a better way
19:49:55 <elliott> help dilemmas are hard monqy
19:50:16 <monqy> dilemmas what
19:50:24 <elliott> fclabels or data-lens for shiro........
19:50:36 <oerjan> sometimes there's a portable solution which isn't quite efficient. hm you could probably use rules for that...
19:50:36 <elliott> i cannot deciduous trees....
19:51:39 <monqy> I've only glanced at data-lens but I remember preferring fclabels. my glance may not have gotten the big appeal of data-lens though
19:52:28 <monqy> data-lens is the lenses package right
19:52:28 <elliott> monqy: well in theory data-lens has more efficient updates, because it's (a -> (b, b -> a)) rather than (a -> b, a -> b -> a)
19:52:31 <elliott> no
19:52:33 <elliott> http://hackage.haskell.org/package/data-lens
19:52:34 <monqy> oh
19:52:34 <oerjan> elliott: you can probably use template haskell as well, can't you?
19:52:36 <elliott> kmett's
19:52:41 <elliott> oerjan: um?
19:52:46 <elliott> oh for number sign if?
19:52:47 <monqy> I'll glance
19:52:47 <oerjan> for conditional compilation
19:52:47 <elliott> tell CakeProphet
19:52:49 <CakeProphet> elliott: just wondering how platform-specific stuff is handled. I have no use for it.
19:52:56 <elliott> CakeProphet: abstraction
19:53:24 <CakeProphet> so GHC does it all basically
19:54:04 <elliott> monqy: but yes it is like... data-lens has a better type and has a totally better author??? but its TH stuff uses a _ suffix rather than a _ prefix which I like slightly less? except that's not fair since you can provide another prefix but that involves writing your own thing and feels weird to me because peer pressure..........
19:54:22 <elliott> and fclabels is I think more popular?? but
19:54:23 <elliott> it introduces
19:54:25 <elliott> more types....
19:54:34 <elliott> so............yeah.............
19:54:51 <CakeProphet> fclabels is nice. I've never heard of data-lens
19:55:13 <elliott> monqy: the ansewr to http://stackoverflow.com/questions/5767129/lenses-fclabels-data-accessor-which-library-for-structure-access-and-mutation goes in depth a bit, totally biased since it's written by kmett :)
19:55:14 <monqy> im still glancing at data-lens
19:55:21 <elliott> but it's pretty explanatroy.............
19:55:35 <fizzie> Wow, that was really annoying, but here's a sysfs-oneliner to get the currently active virtual console driver type:
19:55:37 <fizzie> fis@eris:~$ for c in /sys/devices/virtual/vtconsole/vtcon*; do read b < $c/bind; if [ $b == 1 ]; then cat $c/name; fi; done
19:55:37 <fizzie> (S) VGA+
19:55:41 <fizzie> [htkallas@pc112 ~]$ for c in /sys/devices/virtual/vtconsole/vtcon*; do read b < $c/bind; if [ $b == 1 ]; then cat $c/name; fi; done
19:55:41 <fizzie> (M) frame buffer device
19:55:44 <elliott> also I think he's done a bunch of ~benchmarking~ of them?? and his type isf astest
19:55:46 <elliott> not that it...mattres
19:55:49 <CakeProphet> basically there's a point where a project becomes large enough to warrant fclabels.
19:55:52 <CakeProphet> this is the rule.
19:56:01 <fizzie> (Leftovers from the "you can distinguish a framebuffer console by X" thing.)
19:56:03 <elliott> monqy: note that some of data-lens is in http://hackage.haskell.org/package/data-lens-fd and http://hackage.haskell.org/package/data-lens-template because of portability
19:56:08 <CakeProphet> it just becomes more obvious that Haskell's record syntax is shitty.
19:56:17 <elliott> CakeProphet: a lens package is essential for every project, I am just choosing which
19:56:31 <CakeProphet> what is this lens you speak of.
19:56:44 <elliott> uhh... read the answer to http://stackoverflow.com/questions/5767129/lenses-fclabels-data-accessor-which-library-for-structure-access-and-mutation
19:57:14 <oerjan> CakeProphet: sheesh there is plenty of #if in haskell library code, see e.g. http://www.haskell.org/ghc/docs/latest/html/libraries/directory-1.1.0.1/src/System-Directory.html
19:58:01 <CakeProphet> elliott: any idea why it's called a lens?
19:58:29 <elliott> CakeProphet: it's fairly evocative, short, unused, and pretty
19:58:34 <elliott> good reasons????
19:58:48 <fizzie> elliott: Also it gets FLARES.
19:59:53 <cheater_> CakeProphet, because it "concentrates" on a part of the information, but the other bits are still there
20:00:19 <cheater_> like when you're looking at something through a lens, you see what it's pointing at in large, but the other stuff is still squished around the corner
20:00:35 <cheater_> and you can still sort of get them back.
20:00:38 <elliott> no. there is no sense in which the other bits are "still there".
20:00:49 <elliott> Lens (a -> b) (a -> b -> a)
20:00:56 <elliott> the first function discards the other bits.
20:01:03 <elliott> the second function isn't concentrating at all.
20:01:19 <elliott> there is that residue isomorphism representation, but it is new, apparently inefficient, and i know of only one person who uses it
20:01:28 <elliott> and it is certainly not the standard, and originated years after they were called lenses.
20:02:14 <cheater_> so it's new to you?
20:02:38 <oerjan> i recall some humorous comment not long ago from someone who finally caved in and started calling them lenses
20:02:43 <elliott> it's not "new to me", the talk/blog post introducing it freely admits they came up with it ercently.
20:02:45 <elliott> recently.
20:02:52 <elliott> oerjan: yes, same person who invented the residue representation
20:03:00 <oerjan> ah
20:03:07 <elliott> http://twanvl.nl/tag/lens
20:03:13 <elliott> http://twanvl.nl/blog/haskell/isomorphism-lenses
20:03:27 <cheater_> anyways
20:03:32 <oerjan> sounds about right
20:03:33 <cheater_> i know more than one person who uses this
20:03:39 <cheater_> so it's not like they're unused
20:04:13 <elliott> I don't know why they would, since they're hard to use and inefficient.
20:04:21 <elliott> Elegant, but little else.
20:04:34 <CakeProphet> Oh no! I was the original author of data-accessor, and then I passed it over to Henning and stopped paying attention. The a -> r -> (a,r) representation also makes me uncomfortable, and my original implementation was just like your Lens type. Heeennnninngg!!
20:04:44 <elliott> "Heeennnninngg!!" is my catchphrase
20:04:54 -!- pikhq_ has quit (Ping timeout: 252 seconds).
20:05:39 -!- pumpkin has changed nick to copumpkin.
20:07:16 -!- pikhq has joined.
20:07:37 <CakeProphet> huh
20:07:47 <CakeProphet> apparently my email address was accessed in Egypt 19 hours ago.
20:07:54 <elliott> monqy: longest glance
20:08:18 <monqy> longest glance.
20:08:23 <monqy> it looks nice????
20:08:42 <elliott> monqy: i know the things making me waver at all are basically
20:08:50 <elliott> - oh no more people use fclabels (peer pressure)
20:09:06 <elliott> - oh no the default suffix is slightly less nice? (even though i can fix that it would be going against the grain even though it's just one function call (peer pressure))
20:09:11 <elliott> peers: bad to press
20:09:37 <oerjan> CakeProphet: probably someone in mubarak's family trying to use it to contact a person who can help them get their money out of the country
20:10:34 <elliott> probably
20:10:52 <monqy> one thing i think i like more about fclabels it is easier to learn getL setL modifyL and friends than all of these crazy infix operators
20:11:02 <oerjan> elliott: there's plenty of precedent for this method. see your old mail folder.
20:11:08 <elliott> monqy: you're not meant to use the ones in Data.Lens.Common
20:11:26 <monqy> oh
20:11:30 <elliott> monqy: see http://hackage.haskell.org/packages/archive/data-lens/2.0.0/doc/html/Data-Lens-Strict.html for the operators you're Meant To Use
20:11:34 <elliott> or http://hackage.haskell.org/packages/archive/data-lens/2.0.0/doc/html/Data-Lens-Lazy.html
20:11:38 <elliott> or http://hackage.haskell.org/packages/archive/data-lens-fd/2.0/doc/html/Data-Lens.html
20:11:40 <elliott> they're all the same, API-wise
20:11:45 <elliott> well
20:11:50 <elliott> except the -fd one has strict versions with the exclamation marks
20:11:58 <monqy> it still looks like crazy infix operators
20:12:17 -!- pikhq has quit (Ping timeout: 240 seconds).
20:12:18 -!- pikhq_ has joined.
20:12:51 <elliott> %= seems reasonable to me??? as a modify operator
20:13:03 <elliott> ok != is a _bit_ confusing for assignment :D
20:13:11 <CakeProphet> !||%%-*=
20:13:16 <monqy> by crazy I mean
20:13:21 <oerjan> > let (>:-/) a = concat . replicate a in 10 >:-/ "HA"
20:13:22 <lambdabot> "HAHAHAHAHAHAHAHAHAHA"
20:13:23 <monqy> it will take me a little while to learn them
20:13:34 <elliott> monqy: but, stop, you peer pressured me into fclabels already, :(
20:13:41 <monqy> I did???? :(
20:13:45 <elliott> yes
20:13:45 <elliott> help
20:13:47 <monqy> glep
20:14:15 <CakeProphet> ha, nice. +=
20:14:34 <CakeProphet> and friends.
20:15:43 <CakeProphet> ~= applies a regex to a string in reverse right?
20:16:29 <CakeProphet> elliott: I think the infix operator look nice, and you get the benefits of MonadState
20:16:54 <elliott> CakeProphet: well, fclabels has monadstate stuff too :P
20:16:55 <monqy> the infix operators in common aren't in monadstate
20:17:24 <CakeProphet> can you compose lenses in data-lens?
20:17:36 <elliott> of course.
20:17:38 <monqy> yes there is a category instance
20:17:42 <elliott> that's a feature of every single lens package :P
20:17:45 <elliott> that's like half the point of lenses
20:18:04 <monqy> every single lens package excpet lenses???? or do they have it too
20:18:21 <CakeProphet> not according to that kmett dude.
20:20:12 <CakeProphet> elliott: also, how's anarchy working out for you?
20:20:24 <elliott> wat
20:20:28 <elliott> <CakeProphet> not according to that kmett dude.
20:20:28 <elliott> ?
20:20:35 <elliott> oh right
20:20:37 <elliott> well that package is just bad
20:21:26 <elliott> brb
20:22:08 -!- elliott has quit (Remote host closed the connection).
20:22:23 -!- elliott has joined.
20:22:41 -!- KingOfKarlsruhe has joined.
20:24:49 <monqy> so data-lens looks good and i like it???
20:25:34 <monqy> I may convert a few things i wrote with fclabels to get used to it
20:26:29 <elliott> he says, as elliott is minutes into fclabelling
20:26:35 <elliott> you are probably right i am peer pressuring myself too muches...
20:26:42 <elliott> im kind of iffy on the assignment operator though
20:26:45 <elliott> ~= doesn't feel right
20:26:55 <elliott> i guess you are meant to use the strict version when possible
20:26:59 <elliott> but != feels even less right
20:27:42 <monqy> peer pressure is a bad thing
20:28:23 <monqy> another thing i like about data-lens but i do not know if it is right to like is it comes with a bunch of convenience things that I ended up writing myself a bunch all the time when using fclabels
20:28:40 <elliott> like what, i am curiosios
20:28:44 <monqy> fstLens, sndLens, (^%%=)
20:28:54 <monqy> most notably (^%%=)
20:29:40 <elliott> the confused but happy clown operator
20:31:07 -!- GreaseMonkey has joined.
20:31:07 -!- GreaseMonkey has quit (Changing host).
20:31:07 -!- GreaseMonkey has joined.
20:33:44 <elliott> monqy: im just worried that maybe shiro will get slower with lenses :(
20:33:45 <elliott> but actually
20:33:51 <elliott> using tehs trict modifiers might even speed it up
20:34:44 <monqy> i usually prefer nice pretty beautiful over speed because i am bad at coping
20:36:04 <elliott> monqy: yes but, you see,
20:36:18 <elliott> with shiro i have to prove that haskell and BRAINS is faster than C with inline assembly and posix_fadvise
20:36:33 <monqy> oh
20:36:41 <elliott> currently it takes about one second on mycology which is almost precisely one second slower than cfunge and ccbi :(
20:36:41 <monqy> what is shiro i forget or never knew
20:36:49 <elliott> my funge interpreter in haskell
20:36:50 <monqy> oh right
20:36:51 <monqy> funge
20:37:25 <monqy> i do not like this proof it is like asking for pain :(
20:38:44 <elliott> monqy: but i will maintain
20:38:45 <elliott> ELEAGNCE
20:38:49 <elliott> in the quest for geratnes
20:43:01 <elliott> goto = (rayPosition . ipRay . currentIP !=)
20:43:09 <elliott> monqy: help its confusing, i think, keeping, its /= :(
20:45:09 <elliott> monqy: i kind of want something that's data-lens except the operators have different names and _ is prefix not postfix for th......
20:45:22 -!- Phantom__Hoover has quit (Quit: Leaving).
20:45:46 -!- Phantom__Hoover has joined.
20:49:53 <oerjan> ^unscramble ELEAGNCE
20:49:54 <fungot> EELCENAG
20:50:02 <oerjan> ^unscramble geratnes
20:50:02 <fungot> gseernat
20:50:17 <Gregor> ^scramble eggs
20:50:18 <fungot> egsg
20:50:19 <Gregor> LOL OLD JOKE
20:51:57 <monqy> elliott: it would be easy emough to make a moduley thing to hide all the bad data-lens stuff and export new names and a _ prefix instead of postfix right
20:52:05 <elliott> monqy: yes but... that feels wrong....
20:52:09 <monqy> elliott: of course that would also be a wrong yes
20:52:11 <elliott> it is like... taking work but insulting....
20:52:19 -!- boily has quit (Ping timeout: 240 seconds).
20:52:44 <elliott> maybe I will just poke edwardk every other day until he makes it nicer like that,
20:54:47 <Phantom__Hoover> Who's edwardk?
20:54:51 <Phantom__Hoover> It sounds very funny.
20:55:03 <elliott> Phantom__Hoover: ?
20:55:08 <elliott> he is this dude
20:55:09 <Phantom__Hoover> Like something a bird would say.
20:55:16 <elliott> it is his name.......................
20:55:18 <Phantom__Hoover> Edwark! Edwark!
20:56:00 <cheater_> https://addons.mozilla.org/en-US/firefox/addon/binnen-i-be-gone/
20:56:10 <zzo38> I suppose Haskell can be very fast if you use a CPU which is designed to speed up the LLVM operations that Haskell uses a lot, and to save memory by some of that kind of stuff too
20:57:14 <cheater_> https://addons.mozilla.org/en-US/firefox/addon/remove-kampyle/
20:57:26 <cheater_> i've always wanted to be able to get rid of kamyple.
20:57:36 <monqy> what is kampyle
20:59:26 <pikhq_> zzo38: Haskell's already pretty dang fast.
21:00:05 <Phantom__Hoover> monqy, a Homestuck spoiler.
21:00:28 <Taneb> Is it? I've nevemmm mmmpph
21:00:34 <monqy> oh
21:00:54 <elliott> Phantom__Hoover is full of lies and dead
21:03:37 <oerjan> flies and mead
21:04:02 <zzo38> There is just, how can you make rulebooks with Haskell stuff? And the other stuff I meantioned on that wiki page?
21:04:39 <zzo38> Other unrelated thing: How can the rules of Propositional Calculus be defined using the Haskell type system?
21:04:40 <Phantom__Hoover> zzo38, I... don't think rule books were a priority.
21:04:59 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:04:59 <oerjan> hm wait is kmett and edwardk different people?
21:05:03 <elliott> no
21:05:09 <Phantom__Hoover> zzo38, also Haskell's typesystem maps to an inconsistent logic.
21:05:13 <zzo38> Phantom__Hoover: I know. It is why I try to invent something new. That can do rulebooks and some other features for a specific purpose
21:05:15 <oerjan> whew, i thought i was confused there
21:05:24 <Phantom__Hoover> Erm, wait, does it?
21:05:35 <Phantom__Hoover> I mean, you can't actually *prove* bottom.
21:05:40 <elliott> yes you can
21:05:44 <zzo38> Phantom_Hoover: But, can you do it by not using the inconsistent commands?
21:05:45 <elliott> lol :: a; lol = undefined
21:05:54 <Phantom__Hoover> But you can't even define it without extensions!
21:05:59 <elliott> lol :: a; lol = undefined
21:06:04 <elliott> no extensions
21:06:07 <Phantom__Hoover> elliott, no, I mean the empty type.
21:06:13 <elliott> you can define it
21:06:14 <elliott> newtype
21:06:18 <oerjan> oh as a type
21:06:24 <elliott> see "void" package, Edward A. Kmett
21:06:28 <oerjan> hm right
21:06:33 <elliott> fully standard haskell ninety-eight
21:06:35 <Phantom__Hoover> elliott, huh, I thought it didn't work.
21:06:46 <elliott> newtype Void = Void Void
21:06:50 <elliott> simple as
21:06:59 <Phantom__Hoover> Haskell does not support empty data types.
21:07:03 <Phantom__Hoover> — WP
21:07:05 <elliott> newtype Void = Void Void
21:07:11 <elliott> this type is uninhabited apart from _|_
21:07:15 <Phantom__Hoover> Someone probably ought to fix it.
21:07:18 <Phantom__Hoover> *that
21:07:19 <elliott> ...
21:07:20 <elliott> FFS
21:07:22 <elliott> it's not an empty data type
21:07:25 <elliott> it's just an uninhabited one
21:07:27 <elliott> what WP means is
21:07:32 <elliott> it does not support empty data DECLARATIONS
21:07:42 <elliott> which in fact I think is standard since haskell twothousandandten but that's not the point
21:07:52 <Phantom__Hoover> That's just weird phrasing, then.
21:10:07 <zzo38> Yes, Haskell does accept newtype Void = Void Void
21:10:31 <oerjan> elliott: hm there's one problem with that newtype, i don't think you can use it to prove Void -> a (which is an axiom) without doing further recursion?
21:10:44 <elliott> oerjan: absurd :: Void -> a
21:10:44 <elliott> absurd (Void a) = absurd a
21:10:48 <elliott> oerjan: but note that it never actually recurses
21:10:55 <elliott> because absurd never gets past pattern-matching
21:10:59 <elliott> because newtypes are strict, etc.
21:11:04 <elliott> umm wait
21:11:05 <elliott> in fact
21:11:09 <elliott> it never even gets to pattern-matching
21:11:12 <elliott> absurd's body is irrelevant
21:11:18 <elliott> because (Void x) will never halt
21:11:22 <elliott> you know what i mean
21:11:27 <monqy> hlep
21:11:28 <elliott> im tired
21:11:36 <oerjan> yes but it's still unsatisfactory
21:11:44 <elliott> oerjan: well, why?
21:12:24 <oerjan> i suppose you could think of it as structural recursion, so it's allowed anyhow
21:12:34 <elliott> it's exactly structural recursion :P
21:12:54 * elliott wonders what the induction/recursion principle is for Void
21:13:00 <elliott> haha, I think it might be (a -> a) -> a
21:13:10 <zzo38> OK, now, how do you define a function that can use this "Void" type?
21:13:18 <elliott> ind f (Void a) = f (ind f a)
21:15:51 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:16:41 <zzo38> O, the type is always "Void -> Void" if you type "Void".
21:17:35 <Phantom__Hoover> `quote monad
21:17:36 <HackEgo> 293) <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions! <elliott> and a monad! <elliott> nothing can stop me now! \ 479) <Phantom_Hoover> oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life.
21:17:57 <elliott> Oh.
21:18:07 <elliott> I like how the first is accidentally topical.
21:18:37 <zzo38> So it is possible to define types that have no use, I guess.
21:19:36 <zzo38> I guess this "Void" type is a type that has no use, isn't it?
21:20:32 <zzo38> With that "ind" function it reports its type as: ind :: (t -> t) -> Void -> t
21:20:47 -!- derrik has quit (Quit: take carezzz).
21:21:22 <elliott> yeah
21:21:48 <elliott> zzo38: well, the use is that you can model not-p as (p -> Void)
21:22:19 <oerjan> i've been thinking that most of those "no real result" monadic actions like putStr should really have been -> IO Void
21:23:11 <zzo38> OK, but if it still has to return you can use () which is a valid value even though it can store nothing
21:23:26 <zzo38> Which is probably why it is not IO Void
21:23:49 <oerjan> but haskell is lazy, so you don't _need_ to return a non-bottom value
21:24:00 <elliott> <oerjan> i've been thinking that most of those "no real result" monadic actions like putStr should really have been -> IO Void
21:24:10 <elliott> that "IO is not a monad" post by roconnor got someone saying this, iirc
21:24:13 <elliott> as in
21:24:15 <elliott> main :: IO Void
21:24:27 <elliott> oerjan: I think we should generally try and pretend that _|_ doesn't exist though :)
21:25:21 <oerjan> not just IO, you could have put :: MonadState s m -> s -> m Void as well
21:25:28 <oerjan> :t put
21:25:29 <lambdabot> forall s (m :: * -> *). (MonadState s m) => s -> m ()
21:25:36 <oerjan> * =>
21:29:07 <oerjan> asiekierka, now embarassing himself on the IWC forum http://i.imgur.com/wy9Bo.png
21:30:20 <elliott> oerjan: oh joy
21:30:52 <monqy> :<
21:30:57 <oerjan> oh and there was a link to the actual skin in the forum message
21:31:16 <oerjan> http://www.irregularwebcomic.net/draakslair/viewtopic.php?t=6048
21:31:42 <zzo38> Now I can see how the "Void" type is the correct type for use in this "ind" function, even though it has no use.
21:35:09 <zzo38> It also accepts: x = Void x
21:36:33 <elliott> zzo38: yes, but evaluating x diverges
21:36:36 <elliott> whereas, e.g.
21:36:38 <elliott> x = Just x
21:36:39 <elliott> doesn't
21:36:41 <elliott> because Just is not strict
21:37:17 <Taneb> A Just ruler is not a Strict ruler
21:42:15 <elliott> "Thus to pad out 7 bytes of space would require 7 nop instructions to be issued, which is a significantly slower way of doing nothing!"
21:43:32 <cheater_> http://i.imgur.com/PoV4s.gif
21:49:06 -!- Taneb has quit (Ping timeout: 260 seconds).
21:51:45 -!- nooga has quit (Ping timeout: 250 seconds).
21:56:27 -!- Nisstyre has joined.
22:08:17 -!- GreaseMonkey has quit (Quit: The Other Game).
22:16:58 -!- elliott has quit (Ping timeout: 258 seconds).
22:36:03 <zzo38> Will any Haskell add a ENCODING pragma to indicate what character encoding should be used in the runtime such as ASCII or Unicode?
22:37:55 -!- augur_ has changed nick to augur.
22:45:35 <oerjan> zzo38: in recent ghc, you set runtime encoding with operations on file handles
22:45:59 <oerjan> @hoogle encoding
22:45:59 <lambdabot> Network.CGI newtype ContentEncoding
22:46:00 <lambdabot> Network.CGI ContentEncoding :: String -> ContentEncoding
22:46:00 <lambdabot> Network.HTTP.Headers HdrAcceptEncoding :: HeaderName
22:46:09 <oerjan> @hoogle base:encoding
22:46:09 <lambdabot> Parse error:
22:46:09 <lambdabot> --count=20 base:encoding
22:46:09 <lambdabot> ^
22:46:13 <oerjan> er
22:46:18 <oerjan> @hoogle -base encoding
22:46:18 <lambdabot> Network.CGI newtype ContentEncoding
22:46:19 <lambdabot> Network.CGI ContentEncoding :: String -> ContentEncoding
22:46:19 <lambdabot> Network.HTTP.Headers HdrAcceptEncoding :: HeaderName
22:46:38 <oerjan> bah
22:48:09 <oerjan> @hoogle encoding :: Handle -> IO ()
22:48:10 <lambdabot> No results found
22:49:02 <oerjan> http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.4.0.0/System-IO.html#g:23
23:06:27 <Phantom__Hoover> @tell ais523 BtW, you've been voted out of office in DF.
23:06:28 <lambdabot> Consider it noted.
23:08:04 -!- CakeProphet has quit (Ping timeout: 258 seconds).
23:08:58 <oerjan> DF has democracy?
23:09:13 <coppro> DF?
23:09:25 <oerjan> i assume this is dwarf fortress..
23:09:34 <coppro> ah
23:09:35 -!- CakeProphet has joined.
23:09:35 -!- CakeProphet has quit (Changing host).
23:09:35 -!- CakeProphet has joined.
23:14:25 -!- pikhq has joined.
23:17:12 -!- pikhq_ has quit (Ping timeout: 260 seconds).
23:25:03 -!- copumpkin has quit (Ping timeout: 240 seconds).
23:37:08 <Phantom__Hoover> <oerjan> DF has democracy?
23:37:11 <Phantom__Hoover> Only for the mayor.
23:37:32 <oerjan> mhm
23:50:25 -!- Phantom__Hoover has quit (Ping timeout: 250 seconds).
23:57:48 -!- copumpkin has joined.
2011-08-12
00:02:07 -!- copumpkin has changed nick to LoverOfCheeses.
00:07:15 * Sgeo is taking a lot of math this semester
00:07:36 <Sgeo> Linear Algebra, Appl Probability & Statistics, Methods in Operations Research
00:12:09 -!- PatashuWarg has joined.
00:18:42 <zzo38> "In Haskell 98, the only classes that may appear in the deriving clause are the standard classes Eq, Ord, Enum, Ix, Bounded, Read, and Show." Is there any system that you can derive your own classes? Possibly using Template Haskell?
00:21:26 <oerjan> i believe there are packages for it
00:21:28 <monqy> using template haskell.
00:22:52 <oerjan> you can also derive more classes for newtypes with the GeneralizedNewtypeDeriving flag
00:23:15 <oerjan> but that's specific to newtypes
00:24:45 <oerjan> and also ghc adds some more classes, such as Typeable. i think maybe also Functor, Traversable and the like? or maybe that's in a package.
00:25:45 -!- cheater__ has joined.
00:26:30 <zzo38> But can you do it with your own classes too?
00:26:44 <monqy> there's no standard way
00:26:56 <oerjan> i'm sure template haskell must be able to, although i don't know it much
00:27:40 <oerjan> or perhaps you just need one of the more lightweight generics
00:28:20 <oerjan> http://hackage.haskell.org/package/derive
00:28:33 -!- cheater_ has quit (Ping timeout: 250 seconds).
00:31:01 <oerjan> http://community.haskell.org/~ndm/darcs/derive/derive.htm
00:36:48 -!- LoverOfCheeses has changed nick to copumpkin.
00:42:35 <tswett> Lapi.
00:42:52 <tswett> Lappi. Lappila.
00:43:20 <tswett> Läppäri.
00:43:41 <oerjan> Lapine laputa
00:43:52 <oerjan> *Laputa
00:45:15 <tswett> Puta. Kom puta.
00:49:18 <zzo38> What I mean is if you can do something, if it were Template Haskell you might have a function of the type: Name -> (Info -> (Q [Dec])) -> (Q [Dec]) so that once you have specified the name of the class and the function that makes the instance declaration from the declaration containing the "deriving", and results in the declaration that tells it to accept "deriving" for that class.
00:51:36 <zzo38> It says monads have to do with category theory.
00:54:05 <oerjan> well they do, you don't need category theory to use them though
00:58:21 <oerjan> zzo38: iiuc derive doesn't use Template Haskell to generate the instance declaration, only to splice them into the original file, and you can choose to have it just append haskell code to the file instead
01:05:51 <pikhq> Just a few more days until I get a chunk of unintelligent design removed from my mouth. Yay.
01:06:33 <oerjan> brace for the removal?
01:06:48 <pikhq> No, wisdom teeth removal.
01:07:01 <oerjan> aha.
01:07:19 <pikhq> I have neither need nor desire for braces.
01:07:52 <coppro> I apparently have no wisdom teeth
01:07:56 * oerjan never had any removed, but that may be because they removed four other teeth first when i _did_ get my teeth adjusted
01:08:28 * oerjan has 3 and maybe a fourth lurking inside
01:08:39 -!- cheater_ has joined.
01:09:12 <oerjan> was a plate, not braces though
01:09:31 * pikhq has 3, one of which is causing direct issues, two of which are probably going to.
01:09:43 <oerjan> ah.
01:10:19 <oerjan> i assume wisdom teeth were intelligent enough back when people used to have lost teeth before they came out
01:10:37 <pikhq> Actually, that's not really it.
01:10:45 <oerjan> oh?
01:10:45 <pikhq> Wisdom teeth made sense when we had larger jaws.
01:11:00 <pikhq> They fit.
01:11:09 <oerjan> oh well
01:11:27 <pikhq> And it took longer for them to be selected against than for large jaws to be selected against.
01:11:50 * coppro is a proud part of evolution
01:11:50 -!- cheater__ has quit (Ping timeout: 240 seconds).
01:12:00 * pikhq is, too.
01:12:05 <pikhq> I'm missing one of them, you see.
01:12:06 <oerjan> KILL THE MUTANTS
01:12:16 <pikhq> oerjan: All life is mutant.
01:12:23 <oerjan> NO WAI
01:12:37 <coppro> I apparently have a single half a one below my gum or something
01:12:46 <pikhq> Wasn't there something like an average of a dozen mutations per person?
01:12:47 <coppro> but I've not seen it except on xray
01:14:47 -!- FireFly has quit (Quit: swatted to death).
01:39:27 <MDude> I have wisdom teeth, but I'm goign to see if my jaw i abnomally large enough to fit them.
01:39:35 <MDude> *is
01:41:10 <oerjan> if you can eat a banana sideways, you should be fine.
01:41:34 * MDude lays on his side, munches on a bannana.
01:41:54 <oerjan> sorry, i take no responsibility for lack of reading comprehension.
02:40:32 <Gregor> *crude sexual innuendo regarding munching on MY banana etc*
02:44:41 <quintopia> mdude: you need to hire fan girls
02:44:50 <quintopia> that is, girls holding fans
02:45:06 <quintopia> and practice lowering grapes slowly into your mouth by the stem
02:45:23 <quintopia> seeded grapes, so you can spit them on the floor (gracefully)
02:46:43 <oerjan> i utterly fail to see how this helps him check for an abnormally large jaw
02:52:01 <quintopia> it wouldnt, but it would help him make good friends with bacchus
02:52:19 <oerjan> i see
02:53:07 <zzo38> Today in Jeopardy one of the players had the lowest score I think I have ever seen: -6000
02:54:47 <zzo38> Did anyone ever go lower?
02:54:55 <monqy> how was that managed
02:55:18 <zzo38> And he was a finalist!
02:55:38 <zzo38> (That is, this is the finalist game)
02:58:18 <zzo38> At least, during a match of two games, if you have negative they will not have to make up 6000, they will start with 0 instead of -6000
03:05:18 <quintopia> i heard that
03:05:22 -!- azaq231 has joined.
03:05:36 <quintopia> trebek's like "dont worry! you start over at zero tomorrow!"
03:05:58 <quintopia> how did that happen btw? i wasnt actually watching closely
03:06:05 <quintopia> i just heard some of the questions
03:06:13 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:10:36 <zzo38> Well, that player gave too many incorrect responses.
03:14:44 <quintopia> a little jumpy with the button were they?
03:15:08 <quintopia> so in final jeopardy they couldnt even bet?
03:17:53 <zzo38> Yes, if your score is zero or negative at the end of the second round, you are out and cannot play the final round.
03:21:04 -!- sebbu2 has quit (Ping timeout: 258 seconds).
03:21:12 -!- sebbu has joined.
03:26:22 <pikhq> That's pretty amusing.
03:29:40 -!- MDude has changed nick to MSleep.
03:36:18 <itidus20> Ok, for 200 points: How many operations are there in the Brainfuck programming language?
03:36:42 <quintopia> 8
03:36:48 <quintopia> (what is 8)
03:36:52 <itidus20> Yes!
03:37:08 <pikhq> 0x10FFFF.
03:37:13 -!- pingveno has quit (Ping timeout: 276 seconds).
03:37:18 <quintopia> hurray! i'm on my way to beating watson!
03:37:27 <pikhq> All but 8 of which are no-ops.
03:37:41 <quintopia> :P
03:37:49 <quintopia> lets say 9 then
03:38:04 <quintopia> with lots of syntactic sugar
03:38:15 <itidus20> im an idiot hence my questions can't actually challenge people
03:38:38 -!- pingveno has joined.
03:38:42 <itidus20> like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with
03:39:08 <itidus20> but that would be NP hard I think
03:39:46 <pikhq> No, it's actually a quite trivial counting problem that *happens* to rely on state that we don't possess.
03:40:09 <itidus20> fine.. it's 5 ;_;
03:41:34 <oerjan> possessions of the state
03:44:47 <zzo38> I think the Haskell-like type definition for the card types of Magic: the Gathering that I had given before is wrong, for a few reasons. One is that some things you select a card type, another is the way subtypes work is not quite like I said but there is some way of working still, and the game also has supertypes, etc
03:45:38 <pikhq> Does it also handle the multiple card-pieces on a single card? (e.g. split cards)
03:47:39 <zzo38> No, what I specified does not; however, I don't know if that belongs to the type definition for the card type. Note also that tokens can have card types.
03:49:20 <pikhq> A card type should correspond to the Magic "card" entity.
03:49:28 <pikhq> To do otherwise makes it a blatant lie.
03:49:40 <pikhq> Note also that tokens are not card.
03:49:48 <pikhq> Cards, even.
03:52:00 <zzo38> But tokens can still have card types. Copies of spells could also have card types (if it were up to me, copies would also be tokens, but I don't think those are the rules)
03:52:44 <pikhq> Those aren't card types. Those are just types.
03:53:07 <zzo38> Yes, Magic: the Gathering just calls them types.
03:53:24 <pikhq> Types apply to a wide variety of game objects, among them cards, permanents, and spells.
03:55:15 <zzo38> Yes they do.
03:55:50 <pikhq> And you really shouldn't conflate different game objects.
04:00:14 <zzo38> OK.
04:02:52 -!- NihilistDandy has joined.
04:11:11 <zzo38> I know there is what Magic: the Gathering calls "object", so it is like "object type" I guess
04:11:51 <pikhq> Yeah, pretty much.
04:12:15 <pikhq> Also, and this is important, what's on a given card in no way corresponds to the in-game object.
04:13:31 <zzo38> I think the stuff written on the card corresponds to its "initial state".
04:14:03 <pikhq> Only sometimes.
04:14:09 <pikhq> Split and flip cards fuck that up.
04:16:55 <itidus20> when i was young i tried to do a street fighter 2 monopoly hybrid on paper
04:17:30 <itidus20> i don't recall how far i got
04:18:57 <zzo38> Yes, that is one of the reasons why I consider the Magic: the Gathering rules to be klugy and messy. If I wrote the rules, there would be no state-based effect saying tokens cease to exist; instead, tokens simply would have no initial state so when a token moved it would be destroyed and there would be no initial state to create any object in the new zone from.
04:20:56 <zzo38> It would make more sense at least to me; but too bad, that is not the rules.
04:21:16 <zzo38> They make a lot of klugy rules for various reasons, one is because of old rules they try to keep compatibility with.
04:21:49 <pikhq> Poor banding.
04:25:25 <zzo38> But I hope the programming language that I can invent (possibly with help) can be used not only to implement the actual Magic: the Gathering rules, but also the rules that I think they ought to have been.
04:25:47 <zzo38> But I still like help, of someone understanding my concerns and these kind of programming stuff.
04:28:38 <itidus20> does random searching. from the magic patent. "Provided herein is a novel method of game play and game components that in one embodiment are in the form of trading cards (10, 12, 40, 42, 44, 48, 54, 60, 64). "
04:29:22 <itidus20> "The patent has aroused criticism from some observers, who believe some of its claims to be invalid."
04:34:01 -!- Sgeo_ has joined.
04:34:53 <itidus20> more patent-hate to be heard.. pastebinned to save channel spam http://pastebin.com/tDkAKYSM
04:35:33 -!- Sgeo has quit (Ping timeout: 250 seconds).
04:41:56 <zzo38> Invalid or not, there are many related computer programs. I too believe it to be invalid but of course I don't know for sure. I don't like the patent either but eventually it expires anyways. Actually I dislike patents in general.
05:00:29 <itidus20> raises interesting questions .. eg.. can you patent a ball game?
05:00:54 <zzo38> The patent office might let you patent anything
05:01:10 <itidus20> makes sense now
05:05:16 -!- oerjan has quit (Quit: Good night).
05:08:19 <pikhq> There's a patent on toast, why not a ball game?
05:13:49 <itidus20> well its all about the selling isn't it
05:18:14 <itidus20> hummm.. Garfield [who designed Magic] studied under Herbert Wilf and earned a Ph.D. in combinatorial mathematics from Penn in 1993.
05:18:53 -!- GreaseMonkey has joined.
05:19:09 <pikhq> Yes, Dr. Richard Garfield is a professor of mathematics.
05:21:51 <coppro> Yep
05:24:11 <itidus20> combinatronics seems to be the mathematics chasing buddha's tail
05:24:22 <monqy> what
05:24:35 <itidus20> yeah.. he was a smart monkey that buddha
05:27:11 <zzo38> I still think random deck construction is a better game
05:28:26 <itidus20> well theres a quote here ''Impermanent are all compounded things.'
05:28:52 <zzo38> Quotation from?
05:30:13 <zzo38> coppro: Have you been able to consider my things I was asking about last time? I have added a lot of stuff since when I expect you to have last read it, if any
05:30:33 <zzo38> (As well as correcting a few typing mistakes and clarifying some things better too)
05:31:02 <coppro> zzo38: Unfortunately not, I have been sidetracked by urgent business with the Pirate Party
05:31:55 <zzo38> OK. Can you tell me what stuff with the Pirate Party? I also have a few interests in those kind of things so I would like to know too.
05:33:49 <coppro> zzo38: Rewriting the constitution
05:34:20 <zzo38> Do you have more details? Is there anything wrong with the constitution?
05:34:20 <itidus20> monqy: pardon me.. i want to stop me in my tracks before i do some ridiculous irrelevant rant :D
05:34:33 <coppro> zzo38: yes, many things
05:34:46 <coppro> most significantly, an unreasonable quorum
05:34:52 <zzo38> Yes I would think so, although I don't know the details really
05:34:56 <zzo38> Nor how to correct it
05:35:02 <coppro> I'm working on correcting it
05:35:09 <zzo38> OK.
05:35:28 <coppro> but meetings are on the 19th of each month, so this needs to be done as soon as possible
05:37:31 <zzo38> OK so you have less than 8 days I suppose! Can you tell me what your ideas are for reforming the constitution? Unfortunately I don't know much about the constitution. But I agree with the Pirate Party that patents are a bad idea in general.
05:40:50 <zzo38> I disagree that internet is a fundamental human right. It is derived! Of course you can have the right, but it would be derived on many levels. More fundamental would be simply open communication across all these channels. Internet is one of them. But perhaps even these channels is somewhat, derived. But it is still a right. Just because is not fundamental doesn't mean you don't have that right.
05:42:27 <coppro> good point
05:47:45 <itidus20> carmack attacked patents in his keynote question time
05:48:51 <itidus20> if i recall correctly he called them parasites
05:49:06 <itidus20> and went on to repeat twice "everybody knows it!"
05:49:15 <pikhq> Well, of course. Patents serve precisely one purpose in the modern day and age: rent-seeking.
05:49:25 <itidus20> he said it very publically
05:49:39 <itidus20> but you know ...
05:49:48 <pikhq> This is, still, only anything surprising to people who don't pay attention to tech.
05:49:51 <itidus20> you're a smart guy.. (on account of being in #esolang)
05:50:06 <itidus20> you know..
05:50:08 <itidus20> that..
05:50:24 <itidus20> patents are like an altar made of wood
05:50:26 <pikhq> Patents directly harm most still-developing fields of technology. To the point that, because of them, it is illegal for me to write a non-trivial program.
05:50:37 <itidus20> onto which the rich can store their gold
05:50:43 <pikhq> Fuck the rich.
05:50:49 <itidus20> BUT
05:50:58 <itidus20> if we collapse this altar of wood
05:51:08 <itidus20> things will get ugly
05:51:25 <pikhq> May their wealth-at-the-expense-of-all-else burn.
05:51:32 <zzo38> coppro: It isn't for me to change
05:51:34 <itidus20> they won't say.. oh look, the peasants have raided our riches. let's play some more polo
05:51:57 <itidus20> no there will be a counter
05:52:06 <itidus20> it will be swift and fierce
05:52:12 <pikhq> What, you think that they're just fucking around right now?
05:52:34 <itidus20> the thing is... their power is not a product of patents
05:52:45 <itidus20> patents are merely an expression of their power
05:52:59 <pikhq> In case you hadn't noticed, many corporations are acting in concert to burn a country to the ground, gaining wealth, and moving on. As a matter of policy.
05:53:23 <pikhq> They won't "retaliate", they'll carry on as they have been.
05:53:53 <itidus20> well there is this other idea i should consider
05:54:27 <itidus20> part of the balance of society is the recognition of who owns what
05:54:48 <itidus20> a sort of mental application of intangible properties to objects
05:55:19 <itidus20> a door is an entry and exit point
05:55:39 <itidus20> a fork is for food
05:55:43 <itidus20> a rug is for carpet
05:56:01 <itidus20> a baseball bat is for sports and it is also a weapon
05:56:33 <itidus20> being in a violent state of mind, the violent one maintains these mental bindings
05:56:41 <itidus20> of what is a weapon and what is not
05:56:41 <coppro> pikhq: your comments about patents are far from true in non-software industries
05:57:00 <itidus20> like.. projectiles can become weapons during anger
05:57:17 <itidus20> i guess that is a swap of things
05:57:40 <pikhq> coppro: No, it applies to all industries, due to patents being so utterly incomprehensible that the only thing they do is "for 20 years this is mine, pay me."
05:57:51 <itidus20> since projectiles are normally not weapons.. however... projectiles are usually well established long before they are ever thrown
05:58:01 <coppro> pikhq: That's not true of all industries
05:58:05 <itidus20> one has an anticipated expectation of the weight of an object
05:58:16 <coppro> pikhq: I have spoken with patent lawyers about this
05:58:37 <zzo38> It is of my opinion that patent laws ought to be abolished so that nobody can patent anything, but I am not an expert and making laws and maybe there needs to be some transition time. I don't know exactly what the provisions of the transition time would be.
05:58:48 <itidus20> so, that is to say, patents are the weapon of the corporations
05:58:51 <pikhq> It's *especially* damnable with exponential growth occuring.
05:59:09 <coppro> Patent laws actually do serve a useful purpose in sectors where production costs are significant
05:59:25 <itidus20> and you see.. one corporation to another.. they need to keep a protocol among them... that.. "i can strike at you with patents, you can strike at me with patents"
05:59:32 <coppro> As they protect small players from having their products duplicated faster and cheaper from larger players
05:59:39 <zzo38> Patent laws may have served in the past. But today I think patents is just very bad in general
06:00:06 <pikhq> Aaaah, the myth of the small company with a patent. This would be applicable if our legal system wasn't most-money-wins.
06:00:20 <pikhq> But, well, it is.
06:00:56 <itidus20> basically.. corporations enjoy the knowledge that they each hold patents against each other.. it is a stable battleground
06:01:22 <itidus20> i mean.. its like theres no hidden plasma ray
06:01:40 <itidus20> well no thats not what i mean
06:01:48 <pikhq> (even if you win, you lose, because you have legal fees to pay)
06:02:34 <itidus20> i mean, each company accepts that it is best to not rock the boat.. none of them want to fight over acquisition of a new weapon to fight each other with
06:02:35 <coppro> pikhq: ours isn't
06:03:02 <coppro> pikhq: also, seriously, the other sectors are not abusing patents the same way software is
06:03:17 <coppro> pikhq: there are lots of statistics about this
06:03:31 <itidus20> like ok for example.. there is a protocol for gang violence... they have a tendancy to not use a lot of bombs and grenades as i understand it.. its mostly knives and guns
06:03:40 <pikhq> coppro: I see you're not familiar with Monsanto suing farmers for Monsanto GM'd crops cross-pollinating.
06:03:47 <pikhq> And winning.
06:03:48 <zzo38> Well yes software patents are in fact much worse than others, but I still think patents bad in general for a lot of things
06:04:01 <coppro> pikhq: I'm quite familiar with that case
06:04:11 <coppro> pikhq: Familiar enough to know that it was deliberate on the part of the farmer
06:04:36 <coppro> pikhq: It was not cross-pollination; the farmer was deliberately harvesting and replanting crop that had grown on his side of the fence
06:06:09 <coppro> The Supreme Court basically said "This case would be very different if it weren't deliberate"
06:06:16 <zzo38> As you can see the patent system is completely bad.
06:06:56 <zzo38> I would be in favor of having a short transition time and then completely abolishing patents.
06:07:23 <coppro> I don't follow or agree
06:08:48 -!- azaq231 has quit (Ping timeout: 252 seconds).
06:11:24 <zzo38> Perhaps it would help to have many exceptions about patents, such as that there is no penalty for private or personal use, and that documentation itself is not patented, and that perhaps patents would only apply in case of large volumes of sales that they would force to pay a royalty and require specific text on their product in certain conditions, and so on. And/or even something that prevents patents from hindering any free-software/open-sour
06:11:30 <zzo38> (Did it get cut off?)
06:11:34 <coppro> it did
06:11:43 <coppro> documentation cannot be patended
06:11:53 <coppro> I agree, patents should be of more limited scop
06:11:57 <coppro> *scope
06:12:03 <coppro> they should also have a lesser duration
06:12:18 <zzo38> Yes, I agree to that as well; they should have a lesser duration as well.
06:12:33 <zzo38> Where did it get cut off?
06:12:57 <coppro> open-source
06:13:02 <itidus20> for me it was "hindering any free-software/open-sour" however wait for a second opinion
06:13:07 <zzo38> ... software and even hardware.
06:13:55 <zzo38> (And there are cases where free-software/open-source is not even related to computer)
06:19:31 <zzo38> Perhaps something based on the four Stallman freedoms and the Open Source Definition, if this would help at all in determining some parts of patent reform. Or, in other words, if you respect everyone's freedom you are not sued by patents. But maybe in case of things other than computer software (or data), there would also be something having to do with the production costs and that kind of costs and stuff, which complicates it a bit.
06:23:37 -!- nooga has joined.
06:24:51 -!- nooga has quit (Remote host closed the connection).
06:30:30 -!- zzo38 has quit (Remote host closed the connection).
06:53:30 <NihilistDandy> I used to be in three channels on Freenode. Now I'm on 16. Thanks, #haskell and #esoteric
06:53:49 <coppro> yw
06:53:51 -!- plat0 has joined.
06:54:07 -!- plat0 has left.
06:54:42 <NihilistDandy> No one ever talks in #haskell-in-depth
06:55:40 <fizzie> Once I went through Freenode's channel list in alphabetical order to somewhere around c or d, flagging potentially interesting-sounding channels I might consider joining (currently only on #esoteric and one #esoteric-spinoff); then I accidentally lost the file somewhere and gave up.
06:56:02 <PatashuWarg> It'd be more efficient to go from alrgest to smallest
06:56:29 <fizzie> PatashuWarg: I don't see how, since there's the same number of channels to consider, no matter how you order them.
06:56:44 <NihilistDandy> Small channels are stupid, is the thing
06:57:01 <PatashuWarg> smaller channel = less likelyhood of activity
06:57:06 <fizzie> Well, you never know.
06:57:06 <monqy> what's -spinoff is it any good
06:57:15 <PatashuWarg> you do indeed never know
06:57:16 <PatashuWarg> but you have only finite time
06:58:32 <fizzie> On the IRCnet side of the fence I'm on two channels where I'm the only person ever. (Except about twice a year someone else /joins, comments something like "oh, this channel seems to have died?", and /parts.
06:58:37 <fizzie> Those are the best channels.
06:59:07 <fizzie> None of this "chatting" nonsense.
06:59:14 <NihilistDandy> I'm the only person ever in #typography
06:59:19 <NihilistDandy> Except the other day
06:59:32 <NihilistDandy> When jocom from #haskell was in
07:01:24 -!- joe6 has joined.
07:01:51 -!- joe6 has left.
07:13:30 -!- evincar has joined.
07:50:32 -!- BeholdMyGlory has joined.
07:58:27 <cheater_> http://hackaday.com/2011/06/17/homebrew-ttl-logic-computer/
08:01:47 -!- Nisstyre has quit (Ping timeout: 264 seconds).
08:07:47 -!- BeholdMyGlory has quit (Remote host closed the connection).
08:08:15 -!- BeholdMyGlory has joined.
08:15:02 <pikhq> That is utterly epic.
08:16:30 -!- Taneb has joined.
08:20:51 -!- Nisstyre has joined.
08:22:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
08:24:55 <Taneb> Morning!
08:27:09 -!- BeholdMyGlory has joined.
08:30:58 -!- BeholdMyGlory has quit (Remote host closed the connection).
08:31:25 -!- BeholdMyGlory has joined.
08:33:00 -!- cheater_ has quit (Quit: Ex-Chat).
08:34:52 -!- Taneb has quit (Ping timeout: 260 seconds).
08:55:16 -!- ais523 has joined.
08:56:12 -!- evincar has quit (Quit: Sleep. -.-).
08:58:00 -!- cheater_ has joined.
08:58:53 -!- FireFly has joined.
09:02:46 -!- MigoMipo has joined.
09:18:27 -!- Taneb has joined.
09:23:18 -!- Taneb_ has joined.
09:23:26 -!- Taneb_ has left.
09:23:50 -!- MigoMipo_ has joined.
09:27:10 -!- MigoMipo has quit (Ping timeout: 258 seconds).
09:29:41 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
09:47:51 -!- BeholdMyGlory has quit (Remote host closed the connection).
09:50:10 -!- BeholdMyGlory has joined.
09:58:19 -!- copumpkin has joined.
09:58:22 -!- copumpkin has quit (Changing host).
09:58:22 -!- copumpkin has joined.
10:03:08 <CakeProphet> hmmm, so I think I'm going to write this program in C#
10:03:28 <CakeProphet> but Mono doesn't have complete support for Windows Presentation Foundation, so.. maybe I should find a different GUI toolkit.
10:07:05 <CakeProphet> ah, GTK# is what I want.
10:17:42 <Vorpal> GTK# is okayish. Better than GTK from C IMO
10:18:26 <fizzie> GTK# might well be the most popular thing for GUIfying stuff in Mono.
10:19:45 <fizzie> Some of Gtk#'s documentation is not quite there, though.
10:21:01 <ais523> it's not really surprising that GTK is the most-supported GUI toolkit for Mono, given the relevant history
10:21:02 <lambdabot> ais523: You have 2 new messages. '/msg lambdabot @messages' to read them.
10:21:05 <ais523> @messages
10:21:06 <lambdabot> elliott said 26d 10h 12m 57s ago: Request a copy of the wiki page "100_free_dutch_dating_sites_2008".
10:21:06 <lambdabot> Phantom__Hoover said 11h 14m 37s ago: BtW, you've been voted out of office in DF.
10:21:27 <ais523> hmm, I suspect there is more than one ais523 involved
10:22:10 <fizzie> (Also personally I think WPF is really bizarroid. But I suppose that might just be the unfamiliarity. It's just that I've seen rather horrible XAML/C# messes.)
10:23:56 <fizzie> Incidentally, by "doesn't have complete support", don't you mean "no support at all"?
10:25:38 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
10:26:16 <Taneb> ais523: Where did the "523" come from?
10:26:35 <ais523> it was a random number
10:26:36 <fizzie> Taneb: I suppose the first 522 clones were somehow unsuitable.
10:26:46 <ais523> in order to give me a different name from all the other ais'es
10:26:51 <ais523> the entire username was computer-generated
10:27:14 <CakeProphet> it's certainly a better choice than WPF, which is pretty much portable to... Windows.
10:30:24 -!- MigoMipo has joined.
10:41:38 <Taneb> You know what would be tricky?
10:41:49 <Taneb> Making an interpreter in Inform 7
10:42:39 <ais523> does it do arithmetic? I can't remember
10:42:45 <ais523> if it did, a Deadfish interp wouldn't be too hard
10:42:45 <fizzie> An interpreter of what?
10:42:53 <Taneb> Any interpreter
10:43:28 <fizzie> ZBefunge is written in Inform Something, I don't know about the versions.
10:43:31 <fizzie> http://flourish.org/zbefunge/
10:43:51 <fizzie> (Also the first Befunge(93) interpreter I ever used; I have warm feelings towards it.)
10:43:58 <Taneb> Nice
10:44:02 <Taneb> I think that's Inform 6
10:44:27 <fizzie> Could be; it's old-ish.
10:45:48 -!- GreaseMonkey has quit (Quit: The Other Game).
10:47:34 <ais523> inform 6 and 7 have basically no similarities
10:47:52 <Taneb> Inform 7 is built on inform 6
10:48:04 <Taneb> It compiles into inform 6, I think
10:48:13 <ais523> well, INTERCAL compiles into C
10:48:18 <ais523> that doesn't mean the two languages are similar in any way
10:48:30 <Taneb> True
10:48:32 <ais523> (although they're more similar than inform 6 and inform 7, because at least they have a vaguely related paradigm)
10:59:34 <ais523> <wdr1> I've set [a Reddit bot] free in /r/politics. It's a relatively primitive version of Eliza that simply takes the context of the post and randomly assigns blame or shortcomings to predetermined targets (e.g., Bush, Republicans, etc.). When it can't infer context, it simply doesn't post. (I found that responding with something too general made people suspicious.) The real fun was taking an old lisp implementation & porting it to haskell & playing
10:59:36 <ais523> w/ its HTTP package. So far it's worked pretty well. Right now it has a comment karma more than 10x mine.
10:59:37 <ais523> awesome
10:59:44 <ais523> although he's keeping the username secret for obvious reasons
11:07:55 <Vorpal> ais523, hehe
11:08:17 <Vorpal> ais523, I love the bit aboutthe 10x comment karma
11:08:30 <Vorpal> about the*
11:17:53 -!- Phantom_Hoover has joined.
11:18:10 <Phantom_Hoover> Oh, damn.
11:18:16 <Phantom_Hoover> I left a torrent throttled overnight.
11:24:40 <Taneb> Well, I know have a watch that points in every direction but North
11:24:49 <Taneb> And I'm going out now, bye
11:24:51 -!- Taneb has quit (Quit: He's a big quitter he is.).
11:25:06 <Phantom_Hoover> I...
11:26:35 <CakeProphet> RAINBOW
11:36:11 <ais523> hmm, does anyone here know of ATS (a language that isn't meant to be eso, but may as well be)?
11:36:15 <ais523> here's some code: http://www.ats-lang.org/EXAMPLE/MISC/quicksort_list_dats.html
11:38:25 <ais523> the homepage is effectively saying "look how great our language is, it only took us ten years to write quicksort"
11:38:31 <Deewiant> I know of it, yes
11:38:48 <ais523> do you have opinions on it yet?
11:38:53 <Phantom_Hoover> ais523, the formally-verified one, yes?
11:38:57 <ais523> I've only just seen it, so I don't yet
11:38:59 <ais523> Phantom_Hoover: that's more or less it
11:39:31 <ais523> it's basically, you write both an imperativish and a functionallish program, in such a way that you prove they do the same thing
11:39:36 <Deewiant> I think I ran into it first when it was at the top of the shootout
11:39:54 <Phantom_Hoover> I don't think it's that they took 10 years to write quicksort, but that they took 10 years to write a formally-verified quicksort.
11:39:57 <ais523> and then once they do the same thing, it deletes the functionallish one and just runse the imperativish one
11:39:59 <ais523> Phantom_Hoover: well, yes
11:40:07 <ais523> but that's the whole point of the language
11:40:27 <Phantom_Hoover> Yeah, it's... preternaturally ugly.
11:41:09 <ais523> I do indeed find it hard to read
11:41:15 <ais523> but it's effectively an esolang, and they're all like that
11:41:32 <monqy> it looks more interesting than most esolangs on the wiki
11:41:37 <ais523> indeed
11:41:45 <ais523> the average standard of the wiki is really low
11:41:50 <Phantom_Hoover> monqy, so does a pile of dead leaves.
11:41:56 <monqy> yep :(
11:42:01 <ais523> and you'd expect it to be, given that the wiki tries to codify everything
11:43:15 <Deewiant> Category:Above Average
11:44:06 <ais523> as long as we define average as median, and make sure it's always on exactly half the languages, I'm for
11:45:20 <Deewiant> Category:Significantly Above Average
11:45:50 <monqy> shameful is my favourite category
11:46:00 <ais523> it's not a real category
11:46:03 <ais523> and it officially doesn't exist
11:46:06 <Deewiant> (I doubt half the languages are even interesting)
11:46:09 <ais523> but yes, I like it too
11:49:28 <ais523> hmm, I'm going to go on Special:Randompage a bit and list the first ten languages I come across
11:49:34 <ais523> then we can debate about how many of them are interesting
11:51:55 <ais523> UniCode, 0x29A, Yo, Gibberish, Java2K, MailBox, BytePusher, Version, Ozone, ParrBF
11:55:35 <Deewiant> UniCode has too little content to be interesting
11:58:18 <Deewiant> 0x29A seems interesting enough, doesn't seem like an obvious rehash of anything to me
11:59:39 <Deewiant> Yo is about as uninteresting as it gets
11:59:39 <ais523> 0x29A is a bit weird
11:59:43 <ais523> it feels deficient, in some way
11:59:50 <ais523> Yo is in the same category as LOLCODE, I think
11:59:55 <ais523> only even less interesting
12:00:54 <ais523> Gibberish is like a less interesting Unefunge
12:01:07 -!- boily has joined.
12:01:27 <ais523> Java2K I have a personal dislike for, it has an interesting idea but a poor execution of it
12:02:07 <ais523> (0x29A, Java2K, and BytePusher are the only languages on that list I recognised, and Java2K is the only one where I actually remembered what it was about)
12:02:58 <ais523> MailBox is thematic, and seems to use a paradigm pretty rare among esolangs
12:03:10 <ais523> but I'm not convinced it does anything interesting with it
12:03:42 <Deewiant> I'd still call Java2K interesting even if it's executed poorly
12:03:55 <Deewiant> Agreed on Gibberish
12:04:58 <ais523> BytePusher I'm not even sure how to classify
12:05:06 <Deewiant> MailBox seems fine
12:05:09 <ais523> it's an uninteresting OISC, except that it seems to allow for low-level hardware access
12:06:15 <ais523> Version's one of cpressey's, and it's more of a tarpitisation of INTERCAL than anything else
12:06:24 <ais523> but with better string handling
12:06:38 <ais523> certainly above-average for esolangs in general
12:10:14 <ais523> Ozone is vaguely reminiscent of Underload
12:14:18 <ais523> and ParrBF is a limited version of BF; more interesting than most of the /other/ limited versions of BF, but not by much
12:14:24 <ais523> hmm, that was a better set of results than I was expecting
12:24:18 -!- monqy has quit (Quit: hello).
12:43:12 -!- Taneb has joined.
12:44:28 <Taneb> Oh, today's IWC
12:46:25 <CakeProphet> so is it better to construct a UI manually or to use one of the graphical editors that various IDEs have?
12:46:52 <Taneb> Depends how good you are
12:46:56 <CakeProphet> the visual aspect, that is. event code will always be... coded.
12:47:07 <CakeProphet> Taneb: no real UI experience. :P
12:47:14 <Taneb> Not really
12:47:22 <Taneb> By which I mean me neither
12:47:30 <Taneb> The latter then.
12:47:41 <CakeProphet> yeah I figure it will be easier at least.
12:47:51 <CakeProphet> I'm just wondering if it produces ugly code that would be made less ugly if done manually.
12:48:07 <Taneb> Almost certainly
12:49:40 <ais523> I find that the GUI editors are only really useful if you already know how to do it manually
12:49:49 <ais523> and then you can use them to generate the code with less typing
13:05:58 -!- asiekierka has joined.
13:05:59 <asiekierka> hi
13:06:12 <CakeProphet> hey.
13:10:38 <asiekierka> an idea i've had: http://pastebin.com/m3avwkxb
13:11:56 <asiekierka> what do you think, if anything
13:12:06 <asiekierka> (nodes can not only be A,B,C, they can be of any name)
13:12:31 <asiekierka> oh. right. there's also a default Store and Compare value of True and of False
13:13:25 <asiekierka> afk
13:17:30 <asiekierka> one more idea, Copy B for node running it to become node B, keeping only the name
13:17:33 <asiekierka> CopyAction to copy just the action
13:17:37 <asiekierka> CopyCompare to... you get the idea
13:17:38 <asiekierka> really afk now
13:23:02 -!- Taneb has quit (Ping timeout: 260 seconds).
13:50:43 <ais523> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
13:50:51 <ais523> something was stuck in my keyboard
13:51:04 <ais523> and as normal, I didn't bother deleting the keys pressed as I tried to clear it out
13:51:16 <ais523> however, it was in another channel, so I had to cut/paste it over to #esoteric...
13:53:33 <Gregor> elliott: You're not here.
13:53:38 <Gregor> <-- genius
13:56:12 <ais523> Gregor: he logreads, so that statement is not entirely useless
13:56:14 <ais523> just mostly
14:00:14 <Gregor> ais523: As punishment for you're being here, I'm telling you this anecdote: Yesterday I accidentally uninstalled dash, coreutils, grep, sed, tar, dpkg and apt. Then, I fixed my system.
14:00:33 <Gregor> s/you're/your/ ... I think?
14:00:36 <Gregor> That's a weird "your"
14:00:45 <ais523> yep, "your", "being" there is a gerund not a participle
14:00:50 <Gregor> I think "you" is what I wanted.
14:00:57 <ais523> and you're using it as a noun
14:01:10 <Gregor> Anyway, grammar aside :P
14:01:43 <ais523> that's a lot of things to accidentally uninstall
14:01:45 <ais523> was it specifically that set?
14:01:59 <ais523> first thing I notice is that you probably still have a shell, even though you don't have dash
14:02:12 <ais523> although that's maybe less important
14:02:20 <ais523> because you likely have a shell open to do the accidental uninstall
14:02:32 <Gregor> Yeah, I still had bash.
14:02:36 <Gregor> And it was specifically that set.
14:02:40 <ais523> and you also still have wget, in that case
14:02:50 <ais523> and you still have sudo
14:03:02 <Gregor> What I was TRYING to do was install something in a debootstrap, then uninstall all the core garbage I don't actually want, so I just ended up with the something I wanted and its dependencies.
14:03:06 <ais523> so you can just sudo wget the executables right onto your filesystem
14:03:13 <Gregor> I accidentally unintalled the core garbage on the host instead of the guest >_>
14:03:22 <Gregor> ais523: Didn't have chmod though
14:03:30 <ais523> oh right, so they wouldn't be executable
14:03:38 <ais523> just use any of the other methods for changing permissions, then
14:03:46 <ais523> I've seen a slideshow with about 10 of them
14:04:15 <ais523> the first one that came to mind for me now is the Perl one-liner
14:04:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:04:54 <ais523> but there are some other clever ones, like using ld-linux.so to run a nonexecutable versions of chmod, or copying an existing executable and overwriting its contents but not metadata
14:05:05 -!- sebbu2 has joined.
14:05:09 <ais523> one I've used before now is to copy to a VFAT filesystem and back, that sets the executable bit if it isn't mounted noexec
14:05:39 <ais523> so, what method did you use?
14:05:58 <Gregor> Now I'm trying to remember which I used first X-D
14:06:12 <Gregor> (Once I had tar, I just let tar do it, but I forget how I got tar working ... )
14:06:18 -!- sebbu has quit (Ping timeout: 240 seconds).
14:06:23 <Gregor> OH that's right hah
14:06:26 <Gregor> I still had ssh and scp :P
14:06:32 <Gregor> I just scp'd the tar binary from another computer
14:06:37 <ais523> oh, so you scped an executable
14:06:42 <ais523> and scp set the executable bit as a result
14:06:45 <Gregor> Yup
14:06:49 <ais523> simple enough
14:07:02 <Gregor> Then I had to refetch all the .deb packages and extract them, then install them properly :P
14:07:14 <ais523> hmm, I think there's a big scary confirm for trying to uninstall anything marked essential
14:07:24 <ais523> but on the other hand, you probably overrode that because your debootstrap would have to
14:07:38 <ais523> things that always scare me: mke2fs needs a force option to operate on a regular file
14:07:49 <ais523> and I really don't like forcing a command that's designed to reformat your hard drive
14:08:07 <ais523> (luckily, I can run it as non-root, which reduces the potential for accidents by quite a lot)
14:08:56 <Gregor> Yeah, I overrode that because I thought I was doing it in a chroot :P
14:09:38 <ais523> hmm, how easy is it to detect if you're in a chroot, if you aren't root?
14:09:54 <ais523> not breaking out of it, just discovering if you're in one
14:10:23 <Gregor> Not easy. What I'd probably do is check the process list and see if the files don't seem to conform to my filesystem.
14:10:41 <ais523> I suppose a relatively simple way would be to check /proc; if it isn't there, you're probably in a chroot, if /proc/1/cwd isn't / (verifying by trying to visit from it), you're probably in a chroot
14:10:59 <ais523> but you can use a separate PID namespace to get out of that
14:18:46 -!- PatashuWarg has quit (Ping timeout: 276 seconds).
14:20:24 -!- MSleep has changed nick to MDude.
14:47:07 <asiekierka> http://pastebin.com/m3avwkxb what do you think
14:55:06 -!- Taneb has joined.
15:15:36 -!- sebbu2 has changed nick to sebbu.
15:23:03 -!- azaq23 has joined.
15:33:15 <Phantom_Hoover> ais523, just so you know, I'm currently engineering for your successor as mayor to meet with an unfortunate accident.
15:33:27 <ais523> heh
15:33:35 <ais523> the voted-out me is still fine?
15:33:46 <ais523> or does voting out get combined with an unfortunate accident in #esoteric DF?
15:34:17 <Taneb> I don't do unfortunate accidents
15:34:33 <Taneb> The last time I tried, it was a bit too unfortunate.
15:34:44 <ais523> what happened?
15:34:46 <ais523> I like DF stories
15:34:51 <Taneb> Flooded the entire fortress.
15:35:14 <ais523> ouch
15:36:20 <Taneb> ...Don't use a river to flood a room. Use a pit/pond zone
15:41:27 -!- ais523 has quit (Read error: Connection reset by peer).
15:42:46 -!- ais523 has joined.
15:45:37 <Phantom_Hoover> <Taneb> ...Don't use a river to flood a room. Use a pit/pond zone
15:45:45 <Phantom_Hoover> I'm being very, very careful about it.
15:46:12 <Phantom_Hoover> To the extent of having 2 doors and a floodgate between the room and the fortress, as well as a J-tube.
15:46:50 <Phantom_Hoover> Of course, elliott is probably going to mess it up as soon as I pass control to him, but whatever.
15:47:49 -!- ais523 has quit (Remote host closed the connection).
15:48:45 -!- ais523 has joined.
15:58:59 -!- ais523 has quit (Read error: Connection reset by peer).
15:59:33 -!- ais523 has joined.
16:01:43 -!- Taneb has quit (Ping timeout: 260 seconds).
16:04:25 <CakeProphet> hmmm, there seems to be nowhere I can get free linux/ubuntu stickers.
16:04:31 <Phantom_Hoover> Oh jesus we're being offered to become a barony.
16:04:38 <Phantom_Hoover> Wrong channel, but whatever.
16:04:47 <coppro> what
16:06:28 <Phantom_Hoover> coppro, Dwarf Fortress.
16:07:17 <asiekierka> #esoteric DF?
16:07:18 <asiekierka> what
16:07:23 <asiekierka> when did DF get multiplayer
16:09:29 <Phantom_Hoover> asiekierka, succession fort.
17:02:33 -!- ais523 has quit (Read error: No route to host).
17:04:13 -!- ais523 has joined.
17:05:22 <itidus20> If I was a magician I would want as ultimate ideal to never perform the same trick to an audience twice
17:16:43 <ais523> wow, I just saw someone explain a Chuck Norris joke on Slashdot
17:16:47 <ais523> those jokes need explaining? seriously?
17:17:02 <ais523> (this is independent of whether you think they're funny or not)
17:24:01 -!- MigoMipo has quit (Ping timeout: 276 seconds).
17:39:36 -!- zzo38 has joined.
17:40:46 -!- KingOfKarlsruhe has joined.
17:52:14 -!- elliott has joined.
17:55:20 -!- MigoMipo has joined.
17:57:51 -!- copumpkin has joined.
17:59:18 -!- boily has quit (Ping timeout: 240 seconds).
18:00:17 <itidus20> http://filesharingz.com/community/topic/197185-and-when-even-the-death-penalty-doesn%E2%80%99t-deter-copying-%E2%80%94-what-then/
18:00:39 <ais523> that's quite the URL
18:01:19 <elliott> itidus20: that's like, the least reputable URL for a fairly reputable article
18:01:33 <elliott> http://torrentfreak.com/and-when-even-the-death-penalty-doesnt-deter-copying-what-then-110807/, written by Rick Falkvinge, founder of the Swedish Pirate Party
18:02:10 <itidus20> ahh down the bottom it says "News Source: Torrent Freak "
18:04:24 <itidus20> I also liked http://torrentfreak.com/former-google-cio-limewire-pirates-were-itunes-best-customers-110726/
18:07:08 <zzo38> I have dynamic DNS and multi protocol use, and even the invention of Hypernet, so hopefully my file and speech are more difficult to be censored anyways; I also encourage copying instead of discourage which is another thing to help possibly.
18:07:37 <itidus20> I have circa 700 books. Some secondhand, some new. 49 playstation 2 games. over 100 dvds. 10 dvd box sets. A bunch of audio cds. A bunch of magazines. a $300 dictionary. a $200 8 volume comicbook. From when I worked at a carwash basically.
18:07:49 <elliott> BILLING SUMMARY
18:07:50 <elliott> ---------------
18:07:50 <elliott> PRIOR BALANCE: $-10.67
18:07:50 <elliott> ---------------
18:07:50 <elliott> NEW BALANCE: $-10.67
18:07:56 <elliott> slicehost, why are you emailing me for this
18:08:04 <itidus20> I mean I chase cheap deals sometimes like books which libraries sell off
18:08:26 <zzo38> Hypernet is intended nobody can possibly terminate your service, because there is no service to terminate!
18:08:41 <elliott> hey pikhq, go pretend tup's lack of technical C standard compliance is an issue to you so that somebody pays attention to my post
18:08:44 <itidus20> but.. it is not that I haven't liked spending money in the past..
18:10:28 <itidus20> I like copying because it makes possible what is not at all possible for an individual to otherwise do legally
18:12:30 <itidus20> So what can be copied, you may ask.. what can be copied? The only thing that can be copied is a work which has been completed.
18:13:03 <itidus20> A work which can be copied is one which sets a person up to live indulgantly on some past accomplishment indefinitely.
18:13:41 <itidus20> Whether this is a good thing or not is hard to ascertain
18:14:49 <itidus20> a minion who is working on something such as a programmer working on a game or an animator working on a film etc doesn't even get any rights to that thing they work on
18:15:07 -!- boily has joined.
18:15:56 <itidus20> they just get a salary
18:17:38 -!- derrik has joined.
18:17:48 <itidus20> So most of the time it is the company which owns a copyright, which i guess does go some way to alieviating the former problem
18:18:30 <derrik> itidus20: what was the former problem?
18:19:46 <itidus20> Ok so.. someone creates something one day. Now the next day they can lay on the beach sunbaking waiting for people to pay for what the person made on the one day
18:20:06 -!- MigoMipo has quit (Read error: Connection reset by peer).
18:21:30 <itidus20> So they become potentially idle. Their contribution to society has been made. Now they have nothing more to give.
18:22:28 <itidus20> But in practice, the main ones who owns such works are companies.
18:23:03 <itidus20> So the individuals who can get rich off one creation are rare.
18:23:33 <itidus20> However, a company cannot simply exist by maintaiing it's current level of money
18:23:55 <itidus20> It has to constantly increase for the shareholders.
18:24:05 -!- ais523 has quit (Remote host closed the connection).
18:24:34 <itidus20> And the shareholders.. their price is being at the mercy of risk
18:25:34 <derrik> itidus20: true.. this is why they constantly invent more copyrights.. they are copyrighting pieces of whatever we can see around us..
18:26:03 <itidus20> there is no point.. i am merely nutting out the logic of this as i go
18:26:05 <elliott> tell me more
18:26:10 <itidus20> that is to say i don't know the point
18:26:36 <quintopia> hi boily
18:29:12 <itidus20> But what it means is that copy protection creates an inefficency whereby companies contribute less because they can sort of ride on the wave of their past accomplishments
18:29:43 <itidus20> This seems to be at odds with the fact that companies would gut each other if they had the chance.
18:30:18 <pikhq> You are assuming that corporations are rational actors.
18:30:27 <pikhq> They are perhaps the least rational actors.
18:30:51 <itidus20> the competition wihch would result from no copy protection would probably create huge ineffiencies
18:31:16 <quintopia> but as it is, there are no huge inefficiencies, of course
18:31:40 <itidus20> yes.. i grudgingly accept from my analysis that the system is not so bad
18:31:50 <quintopia> o.0
18:32:33 <elliott> lol
18:32:49 <itidus20> but you see... i don't like the kind of system which is driven by financial goals
18:32:57 <derrik> if by efficiency you mean that companies won't stop until the resources are used up, then yes, they are efficient
18:33:28 <itidus20> i am just getting lost among my ideas now
18:34:03 <derrik> good.. it means you are sane for the time being
18:34:09 <itidus20> sorry guys.. yeah I have an alternative line of thought sort of going on
18:34:38 <itidus20> i can't think up a system that actually works perfectly.. but my utopia is something like
18:34:43 <Vorpal> why do companies have to grow all the time. That isn't sustainable
18:34:52 <itidus20> laziness is related to boredom!
18:35:07 <elliott> itidus20: you realise quintopia was being sarcastic right
18:35:19 <itidus20> he didn't say bazinga
18:35:25 <itidus20> but i think i do now. lol
18:35:28 <pikhq> Vorpal: Because stupid.
18:35:43 -!- boily has quit (Ping timeout: 258 seconds).
18:35:46 <Vorpal> pikhq, but if you would ever reach 100%, then what
18:35:56 <pikhq> At present, our entire economic system does not *handle* a lack of growth at all.
18:36:04 <itidus20> i have the lorax on my pc
18:36:11 <itidus20> i stole it
18:36:12 <itidus20> hehehe
18:36:20 <pikhq> It straight-up makes the assumption that growth tends to be positive.
18:36:31 <itidus20> now theodore seuss is dead... so screw him
18:36:43 <pikhq> Rather than having a (potentially-unknown) upper bound.
18:36:47 <elliott> `addquote <itidus20> now theodore seuss is dead... so screw him
18:36:50 <HackEgo> 584) <itidus20> now theodore seuss is dead... so screw him
18:37:00 <Vorpal> itidus20, lorax?
18:37:06 <quintopia> dr. geisel will not be please
18:37:08 <itidus20> yes, the lorax
18:37:09 <derrik> pikhq: not "tends".. there are just two things: 1. growth 2. crisis
18:37:11 <quintopia> d
18:37:11 <Vorpal> itidus20, what is it
18:37:18 <itidus20> hmm
18:37:24 <itidus20> a good question
18:37:26 <pikhq> derrik: There is a 3rd option, unconsidered.
18:37:32 <pikhq> derrik: No growth is possible.
18:37:48 <Vorpal> derrik, what about a stand-still?
18:37:51 <quintopia> that falls under crisis
18:38:01 <pikhq> Corporations just flail horribly when they hit this.
18:38:04 <derrik> pikhq: the third option will never be considered.. you named it right
18:38:32 <pikhq> Typically causing significant harm to the company, oddly enoughj.
18:38:50 <Vorpal> pikhq, why not just accept it, and maintain status quo
18:38:59 <pikhq> Vorpal: Corporations are not rational actors.
18:39:18 <Vorpal> pikhq, why couldn't some company be rational?
18:39:31 <derrik> they are not entirely irrational.. they are completely predictable
18:39:40 <pikhq> derrik: Predictable != rational.
18:39:49 <quintopia> but good enough for analysis
18:39:55 <derrik> there is a method to their madness
18:40:10 <Vorpal> derrik, yes but do you not know what "rational actor" means?
18:40:30 <elliott> knowing things makes it harder to make grand, sweeping statements, Vorpal
18:40:41 <Vorpal> elliott, XD
18:40:59 <derrik> Vorpal: if you mean it in relation to game theory, that's not a good concept to use in economy
18:41:10 <Vorpal> derrik, I know the term from AI theory
18:41:17 <Vorpal> I assumed that was the term pikhq used
18:41:19 -!- Taneb has joined.
18:41:28 <Taneb> Hello!
18:41:31 <quintopia> hi
18:41:35 <derrik> hi Taneb
18:41:37 <Vorpal> err, not term. I mean "meaning"
18:41:42 <elliott> Vorpal: Rational choice is... not from any AI theory.
18:41:57 <Taneb> I now have seen Slumdog Millionare
18:42:07 <Vorpal> elliott, well true, I first ran into the term in an AI context though.
18:42:18 <Vorpal> elliott, so i guess it is from game theory in this case
18:42:32 <elliott> It's from economics.
18:42:35 <derrik> the problem with game theory when applied to economics is that in game theory the players know the game.. in real-life economy the players hardly know anything about the game
18:42:45 <Vorpal> elliott, not familiar with it in that context
18:42:56 <itidus20> i dont have the lorax text but i have an audio version so i will interpret from there
18:42:58 <asiekierka> an idea i've had: http://pastebin.com/m3avwkxb
18:43:09 <derrik> tho they sure think it's a game
18:43:13 <Vorpal> itidus20, you never answered what "lorax" is
18:43:31 <elliott> derrik: so what do you think of esolangs
18:44:00 <itidus20> Vorpal: At the far end of town where the grickle grass grows, and the wind smells slow and sour when it blows and no birds ever sing excepting old crows...
18:44:05 <derrik> itidus20: upload lorax to internet or something so we can all take a look at it
18:44:17 <Vorpal> itidus20, a poem?
18:44:57 <pikhq> derrik: The typical *assumption* in economics is that entities are rational actors.
18:45:04 <Taneb> asiekierka: Can you explain your idea to me?
18:45:06 <pikhq> This, of course, is inherently flawed.
18:45:14 <elliott> derrik: ?
18:45:15 <Vorpal> itidus20, okay googled it. So a book
18:45:22 <Vorpal> itidus20, why couldn't you just have said that
18:45:30 <asiekierka> Taneb it's an esolang based on these simple nodes
18:45:34 <pikhq> It's a bit like assuming frictional pullies. It makes shit easier, but it also makes shit not always *work*.
18:45:34 <derrik> pikhq: that is a typical sign of a typically bad economist.. don't read further
18:45:35 <itidus20> no i want to explain what the actual lorax is.. but its a slow response
18:45:41 <asiekierka> essentially a node can autorun and/or be triggered by another node
18:45:44 <pikhq> Frictionless, even.
18:45:47 <asiekierka> autorun = every tick, it's started
18:45:48 <derrik> elliott: reading about the thing on wikipedia right now :)
18:45:58 <asiekierka> the tick is incremented after all autoruns/fired nodes were ran
18:46:01 <elliott> derrik: Umm, you don't know what esolangs are?
18:46:04 <asiekierka> nodes have a Compare and Action segment
18:46:05 <elliott> derrik: Then why are you in this channel?
18:46:09 <pikhq> derrik: In case you hadn't noticed, I've been *stating* that it's a bad assumption. :)
18:46:20 <asiekierka> Compare - the nodes that should be checked for their values
18:46:27 <asiekierka> ActionTrue/ActionFalse - what to do when Compare returns True/False
18:46:27 <derrik> pikhq: cool
18:46:35 <elliott> derrik: This is an esolang channel after all...
18:46:38 <Taneb> asiekierka: Sounds interesting
18:46:41 <asiekierka> Action commands are Fire, Store and StorePrev
18:46:44 <asiekierka> Fire - call another node
18:46:56 <derrik> elliott: because you sound smart sometimes.. i am a linguist.. it is somewhat related to esoteric languages :)
18:46:59 <asiekierka> Store - always last command, stores the value of the node mentioned as its own (also stops parsing other commands)
18:47:09 <asiekierka> (by default it stores the Compare result)
18:47:16 <elliott> derrik: did you think this channel was about esoterica like most people.....?
18:47:24 <asiekierka> StorePrev - always last, stores the value of the node mentioned before firing it or comparing it
18:47:31 <asiekierka> i checked, you can make an LFSR in it
18:47:34 <asiekierka> and probably more
18:47:51 <asiekierka> i also plan to add a HiddenCompare
18:47:51 <derrik> derrik: i have been here long enough by now.. i know what it is about and i keep returning
18:47:53 <Taneb> Make an article on the wiki?
18:48:01 <asiekierka> which won't save the result as the node's value
18:48:06 <asiekierka> Taneb i will once I have an interpreter
18:48:09 <asiekierka> also i need a name
18:48:17 <Taneb> You don't need an interpreter
18:48:21 <asiekierka> i want to!
18:48:34 <Taneb> Make an article and someone else may make an interpreter
18:48:37 <itidus20> Vorpal: basically the lorax is a small creature who lives in a place where business comes along and uses up all the resources, and he tries to talk reason with them
18:48:40 <asiekierka> ok, i will tomorrow
18:48:44 <asiekierka> or today, even
18:48:58 <asiekierka> i just need a name
18:49:30 <itidus20> and he has all the wonder that a dr seuss character tends to have
18:50:56 -!- boily has joined.
18:51:07 <Vorpal> itidus20: I see
18:51:33 <itidus20> it's a cool story... they made an animation about it, as they did for many of his stories
18:53:14 <Taneb> I've been told I look like a Dr Seuss character
18:54:31 <Phantom_Hoover> By people who have never seen Dr Seuss characters, I assume.
18:55:04 <itidus20> Anthony Hopkins as the Onceler
18:55:20 <itidus20> just kidding
18:55:22 <Taneb> Back then, I almost did
18:55:38 <itidus20> but they did do a live action movie of the grinch and the cat in the hat
18:55:47 <itidus20> so they could do the lorax
18:56:06 <itidus20> speaking of the onceler, i have a passage about him here:
18:56:20 <itidus20> He stays in his Lerkim on top of his store.
18:56:20 <itidus20> He lurks in his Lerkim, cold under the roof,
18:56:20 <itidus20> where he makes his own clothes
18:56:20 <itidus20> out of miff-muffered moof.
18:56:35 <itidus20> (oops didnt remove linebreaks properly
18:57:41 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
19:08:51 <zzo38> What is miff-muffered moof?
19:09:44 <itidus20> that's a tough question
19:10:12 <elliott> `addquote <zzo38> What is miff-muffered moof? <itidus20> that's a tough question
19:10:13 <HackEgo> 585) <zzo38> What is miff-muffered moof? <itidus20> that's a tough question
19:11:22 -!- variable has quit (Remote host closed the connection).
19:14:58 <itidus20> audio version was by ted danson.. i can't complain. he does good
19:15:18 <Phantom_Hoover> tswett is the new mayor, BtW.
19:15:39 <tswett> Of what?
19:16:04 <Phantom_Hoover> Of the Dwarf Fortress fort we're running.
19:16:26 <tswett> Ah. Excellent.
19:16:29 <itidus20> one of these audio books is by john cleese
19:16:40 <tswett> Will I die in a lava chamber?
19:17:23 <elliott> Phantom_Hoover has already killed the last two in succession.
19:17:31 <elliott> I'm just saying, I would hire a bodyguard.
19:17:47 * tswett nods.
19:17:50 <Phantom_Hoover> elliott, I only killed one!
19:17:52 <Taneb> And some scuba gear
19:17:57 <elliott> What happened to Lymia then
19:17:59 <Phantom_Hoover> And I drowned him!!
19:18:08 <Phantom_Hoover> elliott, I haven't gotten around to drowning her yet.
19:18:13 <elliott> tswett: Basically what I am saying is don't demand anything be made out of platinum or adamantium or anything else we've made.
19:18:17 <elliott> Phantom_Hoover: Oh, so it was just an election.
19:18:18 <tswett> elliott, you're my bodyguard. If I die in lava, I want you to die in lava, too.
19:18:28 <Taneb> ais523 was a good mair
19:18:30 <elliott> tswett: No sorry I am too busy building myself the best bedroom.
19:18:33 <Taneb> s/mair/mayor/
19:18:34 <elliott> tswett: And killing PH.
19:18:35 <Phantom_Hoover> I'm getting the drain fitted to the rooms, though.
19:18:38 <Taneb> He like low boots and copper
19:18:38 <elliott> And destroying Taneb's bedroom.
19:18:42 <elliott> Taneb: You mean ais53.
19:18:46 <elliott> He's an earlier iteration.
19:18:48 <Taneb> Possibly
19:18:53 <tswett> Well, then, I only have one choice.
19:19:04 <tswett> I'm going to punch every dwarf in this fortress, causing a tantrum spiral.
19:19:15 <Phantom_Hoover> He wants tin items.
19:19:19 <elliott> tswett: I'll just lock up most of them
19:19:20 <Phantom_Hoover> There is no tin on this map.
19:19:26 <tswett> TIN OR YOU DIE.
19:19:28 <elliott> Phantom_Hoover: Kill time
19:19:40 <elliott> tswett: You should see what we do to the elf traders.
19:19:55 <elliott> (Seize all their items and then kill them. You think the elf blood everywhere in the trading depot would tip them off.)
19:20:01 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
19:22:21 <zzo38> Maybe they didn't recognize it is elf blood? Or maybe it evaporated?
19:22:46 <elliott> It didn't evaporate, it's still on the item list if you look at it
19:22:49 <elliott> It's soaked the walls
19:23:03 <elliott> But elves are dumb anyway
19:23:15 <Taneb> Elves don't know what elf blood is.
19:23:30 <Taneb> They don't actually have any sharp objects.
19:23:59 <elliott> X-D
19:24:05 <elliott> Are their swords made out of BLUNT wood?
19:24:19 <elliott> Do they just fight by giving everyone splinters.
19:28:00 <asiekierka> Taneb any name ideas for that esolang concept of mine?
19:28:04 <Taneb> Not really
19:28:15 <asiekierka> i could call it binod
19:28:19 <Taneb> For me, I generally think of a name first, then make a language under the name
19:28:21 <Taneb> Go for it
19:28:51 <tswett> Woo, I have three jewelers.
19:28:55 <tswett> Which... is too many.
19:30:07 <tswett> I should make the excess jewelers miners.
19:30:32 <elliott> tswett: I must inform you that Dwarf Fortress discussion is only STRICTLY on-topic in #esoteric-minecraft.
19:30:55 <tswett> Here, it's only loosely on-topic?
19:31:03 <elliott> (This is because Dwarf Fortress is literally Minecraft.)
19:31:12 <elliott> tswett: Well, I don't want to imply that we have a TOPIC...
19:31:33 <itidus20> What I am finding is that the name esolang, refers to a thing with a zing and a blang.
19:32:49 <itidus20> But not a dabdoobler from a high ninimajoo, but yes a thrump-frumper from diddy-la-doo.
19:33:09 <itidus20> (i overdosed on dr seuss just now)
19:33:17 -!- asiekierka has quit (Remote host closed the connection).
19:33:28 <elliott> tswett: For instance, Phantom_Hoover's updates on the drainage system for his dorf-killing trap would be incredibly rude in #esoteric, because the fact that #esoteric-minecraft exists implies that the speaker did not consider it on-topic there, and therefore the only reasonable assumption would be that they were talking about real-life little people.
19:33:46 <elliott> So, while DF discussion is not off-topic per se in #esoteric, it is likely to get you exiled.
19:33:57 <tswett> Ah.
19:33:59 <Phantom_Hoover> What.
19:34:15 <elliott> Phantom_Hoover: It is only logical.
19:34:21 * elliott takes off his pointy ears.
19:34:33 <Phantom_Hoover> elliott, you forgot the other vital components.
19:34:39 <elliott> Phantom_Hoover: I never take those off.
19:35:40 <Taneb> He likes is Spock costume
19:38:51 <elliott> TODO: Fix that shiro bug, i.e. it catches all errors, including ones I actually want to be errors in all situations (perhaps? maybe not); also, once I've fixed that, make sure that the fix still catches general monadic pattern match errors (but _not_ pure ones, I think)
19:39:29 <Taneb> Shiro's the Haskell befunge-98 interpreter, right?
19:39:43 <elliott> Yes. s/be/N/ is the long-term goal.
19:39:52 <elliott> (There's unefunge and trifunge, and the generalisation to any N-dimensional funge is simple.)
19:41:12 <elliott> Phantom_Hoover: Hey, fix Shiro or your dorf dies twice.
19:41:47 <Taneb> Okay, this is stupid.
19:41:55 <elliott> Taneb: What.
19:42:11 <Taneb> Windows is just now notifying me that quintopia said "Hi"
19:42:22 <elliott> Windows is your IRC client?
19:42:44 <Taneb> No, my IRC client told Windows to notify me
19:42:59 <Taneb> I'm using Windows due to network connection problems
19:49:34 -!- oerjan has joined.
19:50:12 -!- elliott has left ("Leaving").
19:50:24 -!- elliott has joined.
19:50:40 <elliott> ok
20:04:24 <zzo38> OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK O
20:06:22 <zzo38> Is there any purpose to make a pseudomonad in Haskell that does not follow the monad laws, but can still be used with "do" notation, etc?
20:06:40 <elliott> The monad laws reflect obvious transformations on imperative blocks of statements
20:07:25 <zzo38> I know. But what if there is some way to use the do blocks for something other than imperative?
20:07:37 <elliott> Well, they're obvious transformations in general
20:07:39 <elliott> For instance, you would think "do {x <- do {...; lastThing}; ...}" would be reducible to "do {...; x <- lastThing; ...}" (modulo bindings)
20:07:43 <elliott> But without the monad laws, this isn't true
20:07:54 <elliott> zzo38: The problem is that it's totally unpredictable
20:08:02 <elliott> zzo38: Two equivalent implementations of a combinator could behave differently if you violate the laws
20:08:10 <elliott> So you can't rely on much anything at all
20:08:20 <tswett> Does the compiler assume the laws are sound?
20:08:38 <elliott> tswett: No; Haskell programs that violate them are perfectly valid Haskell programs.
20:08:45 <zzo38> That is another thing I thought, which is can a compiler possibly transform differently in different cases or different compiler?
20:08:46 <elliott> But you never want to write one ever.
20:09:17 <elliott> A compiler that optimised based on the monad laws would be in violation of the standard.
20:09:44 <pikhq> However, violating the monad laws horribly breaks everyone's intuitions.
20:12:38 -!- Behold has joined.
20:13:08 <oerjan> it would be easy for someone to accidentally write a ghc rule which assumed it, though
20:13:34 <oerjan> and i think i saw someone mention a package somewhere which did
20:14:01 -!- Behold has quit (Remote host closed the connection).
20:14:38 <oerjan> incidentally, i think the arrow notation assumes the arrow laws something heavily to rearrange things
20:15:17 <oerjan> > proc something
20:15:18 <lambdabot> Not in scope: `proc'
20:16:18 <oerjan> <ais523> 0x29A is a bit weird
20:16:28 -!- monqy has joined.
20:16:33 <oerjan> it's broken in a way that just barely avoids destroying TC-ness :P
20:16:48 <oerjan> lovely stuff
20:17:23 <oerjan> definitely above average
20:23:24 -!- boily has quit (Quit: WeeChat 0.3.5).
20:23:41 <elliott> how's it broken?
20:24:03 <elliott> oerjan: also, "something heavily" is a weird phrase :P
20:24:14 <zzo38> O, so, it is not against the standard to use pseudomonads with do notation. But it is possible that nobody ever needs them anyways.
20:33:57 <Phantom_Hoover> elliott, it has an s combinator that only does one stage of evaluation, according to the wiki.
20:36:35 <Gregor> OK, I've made a UML-based alternative to plash.
20:36:40 <Gregor> The question: DOES IT WORK?
20:36:43 <Gregor> The answer: Idonno
20:39:21 <elliott> Phantom_Hoover: Heh, what.
20:39:28 <oerjan> zzo38: if you're doing anything significantly different with the do notation, you might want the NoImplicitPrelude and RebindableSyntax extensions for defining your own (>>=) function etc. for the do notation (not tied to the Monad typeclass), see http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax
20:39:31 <elliott> Gregor: Hooray, now our sandboxes can have diagrams.
20:39:40 <Gregor> elliott: Usermode Linux :P
20:39:48 <elliott> oerjan: NoImplicitPrelude is not necessary
20:39:54 <elliott> just use RebindableSyntax then import Prelude hiding (Monad, etc.)
20:39:59 <elliott> Gregor: I know :P
20:40:11 <oerjan> ok
20:40:32 <elliott> Conditionals (e.g. "if e1 then e2 else e3") means "ifThenElse e1 e2 e3". However case expressions are unaffected.
20:40:39 <elliott> ooh, that means you can do "if monadic then ... else ..."
20:40:44 <elliott> oh wait, not quite :/
20:40:48 <elliott> not without overlapping instances
20:40:54 <elliott> and you'd still want it for case expressions too, oh well
20:40:59 <elliott> and really you want the syntax to differ at least some
20:42:15 <oerjan> <elliott> how's it broken? <-- its combinator subset requires all applications to be full, so you can only use S with exactly 3 arguments
20:42:25 <elliott> lol
20:42:27 <elliott> nice
20:42:45 <elliott> oerjan: so S(Ix) is invalid forall x?
20:46:26 <oerjan> it's valid but you must apply it to exactly 2 more arguments before it is evaluated
20:47:11 <elliott> ah
20:47:20 <elliott> hmm, is SKI sub-TC if you use strict evaluation, then?
20:47:28 <oerjan> "In the evaluation rule for s, it is not specified that either xz or yz are evaluated."
20:47:34 <elliott> haha
20:47:40 <oerjan> i may have been the one who wrote that sentence.
20:54:17 <elliott> Also Shiro TODO: Replace the stack with something better than a list.
20:55:28 <oerjan> elliott: unlambda has strict evaluation, so no.
20:56:31 -!- derrik has left.
20:57:07 <Taneb> In combinatory logic, whenever there are two open brackets adjacent, would I be correct to say the inner-most bracket and its partner are superfluous?
20:57:54 <oerjan> ...yes.
20:58:48 <oerjan> same syntax for it as haskell, really
20:58:48 <zzo38> But what I wanted to know is, is there any purpose anyone has ever made up that uses do notation in different way?
21:00:28 <oerjan> zzo38: there are experiments on changing the type of (>>=) to something like (>>=) :: ParametrizedMonad m => m p1 p2 a -> (a -> m p2 p3 b) -> m p1 p3 b
21:00:53 <oerjan> which allows combining actions which have some additional type variation
21:01:44 <oerjan> say if you want a monad like State, except where the type of the state does not need to stay the same throughout
21:02:13 <Gregor> elliott: My UML-based plash replacement is 228 lines of C and 107 lines of Python, but I can't think of anything it does that plash doesn't (other than the GTK+ "powerbox" bullshit)
21:02:32 <Gregor> I suppose it doesn't support X apps at all though :)
21:03:21 <elliott> Gregor: Why would it not support X apps?
21:03:38 <Gregor> elliott: UML doesn't translate sockets from host to guest, and I didn't include networking support.
21:04:04 <oerjan> Taneb: in some sense (a b c d) is just syntactic sugar for (((a b) c) d)
21:04:22 <oerjan> (that also applies to both CL and haskell)
21:07:49 <Taneb> Okay
21:09:27 <elliott> oerjan: in some sense?
21:09:31 <elliott> I'd say that's literally true
21:10:03 <oerjan> well pretty close to it
21:10:12 <CakeProphet> CL has currying?
21:10:40 <elliott> unless it has tuples, how else could it work?
21:10:43 <oerjan> although ghc _does_ try to detect when a function is fully applied, so it doesn't have to allocate a closure
21:11:42 <oerjan> but of course it presumably does that even if you write (((a b) c) d)
21:12:01 <CakeProphet> I'm assuming by CL you mean Common Lisp, which means that there isn't partial application (as far as I know...)
21:12:06 <oerjan> CakeProphet: combinatory logic :P
21:12:14 <CakeProphet> oh, well, nevermind. haha.
21:12:17 -!- pikhq has quit (Ping timeout: 246 seconds).
21:12:28 -!- pikhq has joined.
21:12:43 <CakeProphet> yeah combinatory logic has partial application. This is why you guys need me for these conversations.
21:12:47 <CakeProphet> to give you valuable information like that.
21:12:54 <CakeProphet> >_>
21:12:56 <oerjan> true dat
21:15:11 <CakeProphet> yeah, well, you know sum is just syntactic sugar for foldl (+) 0
21:17:47 -!- pikhq has quit (Read error: Operation timed out).
21:17:55 -!- pikhq has joined.
21:22:57 <itidus20> traditionally (disputable - which traditions?) computer programs have been measured (disputable - who did this measuring?) on the basis of how quickly they could perform calculations (disputable - you're really talking out of your ass)
21:25:05 <elliott> whos disputable
21:25:12 <CakeProphet> that's a reasonable statement. There's no need to defeat yourself. ;)
21:25:32 <itidus20> lol
21:26:30 <itidus20> there is a danger in these corrections i add in parentheses of creating a false sense of security among less discerning readers that there couldn't possibly be any errors in what i am saying
21:26:46 <CakeProphet> yeah we're not a very discerning crowd.
21:26:55 <itidus20> oh you guys are
21:27:21 <monqy> I measure in terms of elegance and friends
21:27:24 -!- Nisstyre has quit (Ping timeout: 250 seconds).
21:27:27 <itidus20> I am just being honest about myself
21:27:30 <CakeProphet> I have to tell you something itidus20
21:27:36 <CakeProphet> sometimes I say things that are false
21:27:45 <CakeProphet> for ironic purposes.
21:27:56 <CakeProphet> it is something you should know about me.
21:28:01 <olsner> monqy: so what's the circumference of the equator, measured in elegance and friends?
21:28:05 <CakeProphet> it helps understand half of the shit I say. :P
21:28:07 <oerjan> no he doesn't, he's lying
21:28:38 <monqy> olsner: too big
21:28:39 <oerjan> for elegance i go for 20000 km
21:28:39 <itidus20> i was of course going somewhere with this.. but the train of thought has stopped for fuelling
21:28:45 <CakeProphet> oerjan: no don't do that! you'll cause a parad-AAAAH I'M IMPLODING.
21:28:45 <oerjan> er
21:28:51 <oerjan> *40000 km
21:28:54 <elliott> oerjan: not a power of two? how un-round.
21:29:14 <CakeProphet> is there a word for unround that isn't unround? bumpy?
21:29:24 <CakeProphet> edgy?
21:29:38 <oerjan> elliott: the meter was _designed_ to make the circumference of the earth 40000 km. not along the equator, and they messed up the calculations, but anyhow.
21:29:48 <CakeProphet> not a power of two? how edgy.
21:29:52 <CakeProphet> brings a whole new meaning.
21:30:30 <elliott> CakeProphet: I was thinking "uneven" at first, but...
21:30:43 <oerjan> how odd
21:31:18 <itidus20> unround is........... y[n], being a function of angle[n], is not equal to y[n+1] nor y[n-1]
21:31:47 <oerjan> there are just too many ways for something not to be round
21:31:50 <itidus20> thats one way to say it
21:32:02 <CakeProphet> itidus20: why do you use all of these hideous square bracket notations.
21:32:13 <CakeProphet> inappropriately. you're very naughty.
21:32:40 <oerjan> may it be a mathematica thing or something...
21:32:51 <CakeProphet> I wasn't even going to go there...
21:32:54 <itidus20> because i don't know combinatorial logic.. i don't know haskell. i don't know calculus. i don't know set theory. a mixture of these factors
21:33:06 <elliott> none of those are relevant
21:33:21 <oerjan> well the calculus one is slightly relevant
21:33:25 <elliott> monqy: i think i am going to do the bad thing i said i wanted to do..........
21:33:33 <itidus20> because IRC doesn't have a subscript markup
21:33:42 <itidus20> there you go
21:33:43 <monqy> elliott: bad thing???????
21:34:04 <oerjan> itidus20: aha. well true mathematicians go for pseudo-(La)TeX in that case :P
21:34:08 <oerjan> y_n
21:34:35 <itidus20> so.. if someone wants to make a plugin for irc which uses embedded mimetex then i will give you your subscripts
21:34:38 <CakeProphet> I usually expect () when dealing with functions, but... it's arbitrary really.
21:34:49 <CakeProphet> I fear square brackets used in weird ways, really.
21:34:53 <CakeProphet> it's a phobia of mine.
21:35:05 <itidus20> i meant uh
21:35:18 <elliott> monqy: yes.......... make a Shiro.Lens module which uses data-lens but then RENAMES THE OPERAtors........
21:35:23 <oerjan> > sequence [[[][]][]]
21:35:24 <lambdabot> Couldn't match expected type `t -> m a'
21:35:24 <lambdabot> against inferred type `[a1]'
21:35:31 <monqy> oh
21:35:38 <oerjan> hm
21:35:41 <oerjan> oh duh
21:35:43 <CakeProphet> lol
21:35:49 <oerjan> > sequence [[[],[]],[]]
21:35:50 <lambdabot> []
21:35:56 <itidus20> the nth Y... being a function of the nth angle.. .. the nth Y is not equal to nth+1th Y nor is the nth Y equal to nth-1th Y
21:35:59 <CakeProphet> oerjan: CAN'T FOOL ANYONE YOU DON'T KNOW HASKELL.
21:36:15 <itidus20> humm
21:36:23 <oerjan> AND I WOULD HAVE GOT AWAY WITH IT IF NOT FOR YOU PESKY KIDS
21:36:24 <itidus20> no that was even WORSE than the brackets
21:36:43 <CakeProphet> itidus20: I'm not really sure what that means. How is a function a function of a function without getting into some higher-order stuff.
21:36:51 <oerjan> itidus20: i do fail to see how that defines "round", though :P
21:36:54 <itidus20> well... i don't know how to say this
21:36:57 <itidus20> thats all
21:37:00 <elliott> monqy: help i feelm bad...
21:37:04 <monqy> elliott: ;_;
21:37:04 <itidus20> i know what i want to say.. i just don' know how to say it
21:37:49 <CakeProphet> itidus20: I'm taking a topology class in a year or so
21:37:58 <CakeProphet> so maybe I'll have a better way of saying by then.
21:38:06 <itidus20> Y n = Angle n ..... Y n != Y n+1 && Y n != Y n-1
21:38:21 <CakeProphet> angles need more than one point... or whatever n is.
21:38:29 <itidus20> n is an index
21:38:48 <CakeProphet> then yeah that doesn't mean anything.
21:38:54 <itidus20> i see... i have made a mistake
21:40:08 <oerjan> ^bf ++++++++[->++++++++>++++<<]>++.+++++++++++++..>+.
21:40:08 <fungot> BOO!
21:40:09 <itidus20> n is an angle from 0 - 359.59 (lol) ... ( Y n != Y n-1 ) && ( Y n != Y n+1 )
21:40:24 -!- MDude has quit (Ping timeout: 250 seconds).
21:40:24 <CakeProphet> is n an integer?
21:40:26 <zzo38> Wikipedia article about Monad (category theory) also mentions Polyad. But I don't understand category theory much
21:40:38 <oerjan> never heard about polyads
21:41:01 <itidus20> CakeProphet: honestly the logic holds up even if n is a real
21:41:11 <CakeProphet> even if? it would have to be real.
21:41:20 <itidus20> ok
21:41:31 <itidus20> yes the logic holds up even though n is a real
21:41:39 <CakeProphet> sure.
21:41:50 <itidus20> but that is a pretty dismal idea of unround
21:41:55 <zzo38> Wikibooks has a article about Haskell/Category_theory so I will try to read that to see if it helps a bit
21:42:06 <itidus20> its like a dog crapped out a theory of unround
21:42:07 <CakeProphet> actually no I'm not going to lie you're wrong but it's no big deal.
21:42:40 <Taneb> I've had an idea for an esolang!
21:42:47 <CakeProphet> me too.
21:42:53 <oerjan> itidus20: your definition doesn't even prevent Y from making large jumps, as long as it repeats the new value at least twice
21:43:05 <Taneb> I'm going to make a spec, then an article
21:43:26 <itidus20> shit i tried to be clever with .59
21:43:29 <itidus20> hehehhe
21:44:02 <CakeProphet> not to mention that the only condition involved an integer increment
21:44:06 <itidus20> n is an integer angle from 0 - 360, where 0 = 360 ... ( Y n != Y n-1 ) && ( Y n != Y n+1 )
21:44:11 <oerjan> Taneb: and then a spectacle
21:44:16 -!- GreaseMonkey has joined.
21:44:23 <CakeProphet> which doesn't make sense when you're talking about a continuous thing like angles.
21:44:36 <itidus20> hmm ok
21:44:48 <itidus20> fine ,, so that solution is rotten to the core
21:44:55 <CakeProphet> yep.
21:45:08 <elliott> itidus20: radians, man
21:45:26 <CakeProphet> elliott: radians are lame.
21:45:32 <CakeProphet> angles make waaaay more sense.
21:45:37 <CakeProphet> *degrees
21:45:49 <elliott> CakeProphet: I take it this is a boring troll
21:46:12 <elliott> :P
21:46:14 <itidus20> i know it should really be statistical analysis of the gradient over various sections of the edge of the circle
21:46:23 <itidus20> in some manner
21:46:36 <CakeProphet> elliott: how can you deny the clever truth that degrees are superior? There are 360 of them in a circle! it makes perfect sense.
21:46:37 <itidus20> but you don't wanna see me try to imagine that as a formula
21:46:53 <CakeProphet> how many radians are in a circle? like 6.something?
21:46:55 <CakeProphet> makes no sense.
21:47:11 <itidus20> pi / 180?
21:47:13 <monqy> two pies
21:47:17 <itidus20> oops
21:47:20 <itidus20> hehehhe oro
21:47:21 <monqy> what
21:47:25 <monqy> I was talking to CakeProphet
21:47:28 <CakeProphet> what? pies?
21:47:30 <monqy> pies
21:47:33 <monqy> hlep
21:47:41 <zzo38> I used to win at Word Warp a lot, until they canceled the service.
21:47:58 <CakeProphet> monqy: I only deal with cakes.
21:48:07 <zzo38> http://zzo38computer.cjb.net/IMAGES3/WordWarp.png
21:48:20 <itidus20> CakeProphet: is the portals cake a false prophet?
21:48:28 <itidus20> ^portal
21:48:31 <elliott> itidus20: stop stop no stop
21:48:39 <monqy> want me to kill you dead
21:48:39 <elliott> LET THE BAD MEME REMAIN DEAD
21:49:20 <CakeProphet> itidus20: that doesn't evem make sense to me.
21:49:33 <itidus20> ill reword
21:49:39 <CakeProphet> you know cake is like... flour, sugar, and eggs mostly... right?
21:49:50 <itidus20> CakeProphet: is the Portal cake a false messiah?
21:50:07 <CakeProphet> there is no like... divinity, or soothsaying properties to this mixture.
21:50:16 <oerjan> <Taneb> I've been told I look like a Dr Seuss character
21:50:27 <itidus20> ok so i'll cut to the chase
21:50:32 * oerjan recalls that jumping avatar Taneb used to have on the iwc forum
21:50:44 <itidus20> i imagine that you had the name cake long before that silly game ever got released
21:50:59 <monqy> bad portal jokes always make me think
21:50:59 <oerjan> so you are saying it was actually a real movie of you?
21:51:00 <monqy> http://www.girlzngames.com/comics/2010-12-22-Christmas-Gamer-Greetings.jpg
21:51:04 <monqy> do you want me to think that
21:51:05 <monqy> do you
21:51:12 <elliott> monqy: NO DON'T REMIND ME
21:51:16 <monqy> note: all portal jokes are bad
21:51:17 <elliott> i wiped that comic frm my brajisofnj
21:51:21 <monqy> note: do not make me think that
21:51:25 <CakeProphet> itidus20: I'm not really sure which came first but my name choice was unrelated.
21:51:32 <CakeProphet> it had to do with being an adolescent at the time.
21:51:52 <Taneb> oerjan: That is nought but a vague memory now. I don't actually pay attention to my own avatar
21:51:53 <itidus20> I forsee a cake on my birthday!!!!
21:51:53 <CakeProphet> also Portal is an awesome game, memes aside.
21:52:04 <CakeProphet> Portal 2 is even more awesome.
21:53:04 <CakeProphet> there's gel! it splooges out of pipes! controlled by valves! how clever Valve.
21:53:07 <Taneb> oerjan: Just remembered it
21:53:40 <Phantom_Hoover> CakeProphet, the memes are just the inevitable result of something funny becoming popular.
21:53:46 <Phantom_Hoover> cf. Monty Python.
21:53:46 <elliott> ?pl x `seq` y $ z
21:53:47 <lambdabot> (x `seq` y) z
21:53:55 <elliott> oerjan: noOOOOooooooooooo
21:54:40 <oerjan> elliott: erm what did you expect?
21:55:13 <elliott> oerjan: i want to say
21:55:18 <elliott> blahblah `seq` blahblah `seq`
21:55:23 <elliott> ............ $ x
21:55:31 <elliott> you should be able to have negative operator perecredcecends :(
21:56:41 <CakeProphet> what does that even mean.
21:57:14 <CakeProphet> anyone used par in their projects yet? I'm intrigued by it.
21:57:32 <CakeProphet> or is it better to use one of the abstractions that I haven't learned yet?
21:58:24 <oerjan> > (0$0 `seq`)
21:58:26 <lambdabot> The operator `GHC.Prim.seq' [infixr 0] of a section
21:58:26 <lambdabot> must have lower pr...
21:58:32 <elliott> CakeProphet: you generally need more than par...
21:58:39 <oerjan> oh hm that's weird
21:58:39 <elliott> see http://hackage.haskell.org/package/parallel
21:59:10 <oerjan> elliott: `seq` actually has the same fixity as $
21:59:17 <elliott> oerjan: yeah
21:59:24 <elliott> oerjan: so ?pl should have errored, heh
21:59:27 <elliott> oerjan: oh hmm... infixr 0
21:59:31 <elliott> oerjan: isn't the dollar sign the same?
21:59:36 <elliott> so technically it would work
21:59:44 <oerjan> elliott: READING COMPREHENSION
21:59:47 <elliott> but it'd break if dollar sign's associativeness was ever fixed :)
21:59:53 <elliott> oerjan: yes but that's just fixity
21:59:57 <elliott> is associativeness included in that?
22:00:09 <oerjan> ...in my mind it is...
22:00:12 <elliott> ok
22:00:19 <elliott> ?hoogle (<<)
22:00:19 <lambdabot> Text.Html (<<) :: HTML a => (Html -> b) -> a -> b
22:00:19 <lambdabot> Text.XHtml.Frameset (<<) :: HTML a => (Html -> b) -> a -> b
22:00:20 <lambdabot> Text.XHtml.Strict (<<) :: HTML a => (Html -> b) -> a -> b
22:00:21 <elliott> grr
22:00:25 <oerjan> associativeness + precedence
22:00:45 <oerjan> elliott: i don't think ?pl knows much about fixities
22:01:07 <oerjan> presumably it assumes infixl 9 for unknowns, if we're lucky
22:01:41 <elliott> monqy: i dont likem how the monadic set and modify functions of data.lens all return the setted/modified value :(
22:02:01 <monqy> why hlep
22:03:43 <elliott> monqy: becausem my fuctnioctnosni dont do that :(
22:04:03 <monqy> :(
22:04:09 <oerjan> ^unscramble fuctnioctnosni
22:04:09 <fungot> fiuncstonnitoc
22:04:15 <elliott> reddit user dammitsomuch on quoting people: "And why doesn't he produce his own intellectual property (IP) instead of taking it from others and not giving them credit where credit is due?"
22:04:53 -!- PatashuWarg has joined.
22:05:34 -!- n3wborn has joined.
22:05:44 <elliott> n3wborn: im old born hi
22:05:50 <n3wborn> ...
22:05:51 <n3wborn> :)
22:05:57 <Phantom_Hoover> I'm the first born.
22:06:08 <Taneb> I'm to the manor born
22:06:15 <n3wborn> Born of the seven son
22:06:16 <Phantom_Hoover> Any questions about what the hell 2001 was about may be directed towards me.
22:06:37 <elliott> Phantom_Hoover: what the hell was 2001 about.
22:06:42 <Taneb> Phantom_Hoover: What was with those aeroplanes that hit those towers that year?
22:06:57 <Phantom_Hoover> elliott, Trojans.
22:07:28 <Phantom_Hoover> Taneb, it was all a space foetus.
22:07:43 <elliott> Phantom_Hoover: oh.
22:08:47 <n3wborn> sorry, wrong chan .. Bye
22:08:50 -!- n3wborn has left.
22:08:52 <Taneb> Aww, stay
22:08:56 <Taneb> Damn, too late
22:09:04 <Phantom_Hoover> Suspected neopagan.
22:09:14 <Taneb> Anyway, my new esolang is seeming a bit too easy to use
22:09:51 <Taneb> I'm going to get rid of one symbol and make all the others single characters
22:09:57 <elliott> No stop.
22:09:58 <Phantom_Hoover> That doesn't make it *bad*.
22:10:08 <elliott> People who make their esolangs harder to use by making shallow adjustments are the worst.
22:10:14 <Taneb> I was having a joke
22:10:18 <elliott> Oh.
22:10:22 <elliott> WE DON'T KNOW YOU YET OK
22:10:25 <elliott> YOU COULD BE SECRETLY TERRIBLE
22:10:32 <Taneb> But a CAT program in it is:
22:10:36 <Taneb> repeat tail
22:10:36 <Taneb> in
22:10:37 <Taneb> out
22:10:38 <Taneb> end
22:11:14 <Gregor> `echo Hello umlbox!
22:11:15 <HackEgo> Hello umlbox!.
22:11:28 <elliott> Gregor: You've put it into production immediately?
22:11:29 <elliott> `run whoami
22:11:36 <elliott> `run id
22:11:38 <elliott> Gregor: Sure is slow.
22:11:42 <elliott> `run rm -rf /
22:11:45 <elliott> `run fuck tha police
22:11:47 <Gregor> elliott: It MIGHT be broken :P
22:11:48 <Sgeo_> I never got around to making my "Break hash for output" language
22:11:56 <Gregor> `ls
22:11:57 <HackEgo> 1.bluhbluh paste quine2.pl quotese.tmp.tmp. \ babies.env. ps. quine3.pl tekst.warez. \ bin.foo. quine.pl quotes test.c.??????????.
22:12:00 <Taneb> umlbox?
22:12:01 <HackEgo> bash-3.2$
22:12:03 <elliott> `rm
22:12:04 <HackEgo> rm: missing operand. \ Try `rm --help' for more information..
22:12:04 <Gregor> elliott: Apparently I broke `run somehow?
22:12:05 <elliott> <HackEgo> bash-3.2$
22:12:07 <elliott> I lol'd
22:12:07 <HackEgo> bash-3.2$
22:12:09 <Gregor> Whoah
22:12:14 <HackEgo> bash-3.2$
22:12:14 <elliott> `lmao
22:12:15 <HackEgo> env: lmao: No such file or directory. \ /bin/sh could not be executed.
22:12:17 <HackEgo> bash-3.2$
22:12:23 <elliott> Gregor: I thought HackEgo didn't send multiple messages ever
22:12:35 <Gregor> elliott: Those aren't, they're backlog from your spammyspam.
22:12:44 <elliott> `areyousure
22:12:46 <Sgeo_> `run escape
22:12:46 <HackEgo> env: areyousure: No such file or directory. \ /bin/sh could not be executed.
22:13:07 <Gregor> Like I was TRYING to say before you so rudely interrupted, UMLBox has a number of known problems, but "can escape" is not one of them.
22:13:17 <HackEgo> bash-3.2$
22:13:29 <elliott> No, but UMLBox has had how many days of testing in comparison to Plash's years? :P
22:13:35 <Gregor> 0.2 :P
22:13:56 <Gregor> UML, on the other hand, is tested, and I'm really just leaning on it *shrugs*
22:14:05 <elliott> Gregor: Yeah, but the one thing you're doing is providing a way out :-P
22:14:23 <Gregor> Out ... from Plash.
22:14:31 <Gregor> How the bork did I break `run???
22:14:36 <elliott> Gregor: Out from UML.
22:14:58 <Taneb> Okay, thinking about it, my new esolang is too hard to use.
22:15:03 <Taneb> I'm going to add macro support
22:15:14 <Gregor> Ohhh, I know how I broke run >_<
22:15:36 <Sgeo_> Gregor, in a way that lets us take over?
22:15:38 <Gregor> `run echo Hewwo?
22:15:39 <HackEgo> Hewwo?.
22:15:50 <Gregor> OK, NOW the only issue is that it thinks stdout is a tty :P
22:15:52 <elliott> `run echo die
22:15:53 <HackEgo> die.
22:15:54 <elliott> `run echo diedie die die die
22:15:55 <HackEgo> diedie die die die.
22:15:57 <elliott> `run echo BE A ROBOT,
22:15:58 <HackEgo> BE A ROBOT,.
22:16:04 <elliott> Gregor: And that it outputs \n after everything
22:16:05 <elliott> I assume
22:16:21 <Gregor> elliott: \r is what's getting converted into '.'
22:16:22 <Sgeo_> That looks more like a . than a n
22:16:24 <Sgeo_> Oh
22:16:26 <Taneb> `run echo `run echo test
22:16:27 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching ``'. \ sh: -c: line 1: syntax error: unexpected end of file.
22:16:53 <Taneb> `run echo "`run echo test"
22:16:54 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching ``'. \ sh: -c: line 1: syntax error: unexpected end of file.
22:17:06 <Sgeo_> `run echo \`run echo test
22:17:08 <HackEgo> ​`run echo test.
22:17:15 <Gregor> Good for you X_X
22:17:25 <Taneb> I'm no good at this
22:17:31 <Sgeo_> Hey, I wasn't expecting it to do anything special, Taneb was
22:18:39 <elliott> I wonder how one DOES write a bot that responds to itself without being really really stupid.
22:18:58 <Gregor> Odd ... even when I redirect from /dev/null it responds as if it's a tty ...
22:19:06 <elliott> Maybe some sort of message queue that's just processed generically, and messages are pushed to it from various sources (because it has multiple connections to IRC, maybe it can even work over a web client in case IRC ports are blocked??)
22:19:16 <elliott> And then there's one handler that just looks at messages sent by the bot itself, and sends them off for real
22:19:18 <elliott> That'd end up processing itself
22:19:29 <elliott> Gregor: It might be looking at stdout
22:19:41 <Gregor> `run ls < /dev/null | cat
22:19:43 <HackEgo> 1. \ babies. \ bin. \ bluhbluh. \ env. \ foo. \ paste. \ ps. \ quine.pl. \ quine2.pl. \ quine3.pl. \ quotes. \ quotese. \ tekst. \ test.c. \ tmp.tmp. \ warez. \ тэкст.
22:19:45 <elliott> Gregor: Try making a pipe and redirecting the output to that
22:19:50 <zzo38> To see about haskell is: http://zzo38computer.cjb.net/img_11/JavaCPHPRubyHaskell.jpg
22:19:57 <Gregor> Gettin' closer ...
22:21:21 <zzo38> HackEgo sends zero-width character before punctuation at the start of a message, and IRC will not echo messages you send to the channel back to yourself
22:22:01 * CakeProphet is secretly terrible.
22:22:26 <zzo38> Terrible of what? Or is that a secret?
22:22:32 <Gregor> CakeProphet: That's what you get for not actively prophesizing about bakery goods.
22:22:35 <Taneb> msg hackego `run echo !sh \`run echo test
22:22:39 <CakeProphet> actually I'm secretly awesome. I hide it under a veil of terribleness.
22:22:46 <CakeProphet> but it's a secret.
22:22:50 <Taneb> No wait, that won't work even with a slash
22:22:53 <zzo38> Taneb: That isn't it either
22:23:12 <zzo38> It only processes things starting with `
22:23:38 <Taneb> `run echo !sh ech \`run echo test
22:23:39 <HackEgo> ​!sh ech `run echo test.
22:23:49 <CakeProphet> use uh.... $() I think
22:23:51 <CakeProphet> instead of `
22:23:57 <Taneb> C'mon EgoBot
22:24:16 <zzo38> No it has zero-width character at first
22:24:21 <Taneb> That's a problem
22:24:29 <Taneb> Or a blessing
22:24:29 <zzo38> I can see it on my computer even if you cannot
22:24:41 <elliott> zzo38 has... ze goggles.
22:24:42 <Taneb> Probably a blessing, thinking about it
22:24:45 <Taneb> I'll stop now
22:24:47 <CakeProphet> zzo38 can see the code.
22:25:01 <zzo38> It is because I am using a fixed-pitch font.
22:25:05 <Gregor> Is it an ioctl that sets ttys not to use \r or ...
22:25:15 <elliott> zzo38: No, you're just using a font without the appropriate character
22:25:19 <CakeProphet> probably wmop
22:25:25 <CakeProphet> instead of ioctl
22:25:30 <CakeProphet> but actually I'm just making up acronyms.
22:25:35 <elliott> Gregor: ls... shouldn't be printing \rs.
22:25:49 <elliott> Gregor: Are you using a pty, or just a pipe?
22:25:57 <zzo38> I wrote a program to strip the zero-width character of received messages here it is: http://sprunge.us/VHQU
22:25:58 <Gregor> elliott: I don't think it is, I think it's because the pseudodevice I'm using to communicate between UML and the host is a tty.
22:26:10 <elliott> Gregor: Don't use a tty :-P
22:26:10 <Gregor> Pipes aren't communicated from guest to host.
22:26:11 <CakeProphet> ......UML?
22:26:14 <elliott> CakeProphet: User mode linux.
22:26:15 <Gregor> elliott: I have no other option.
22:26:24 <CakeProphet> elliott: oh okay that is significantly less frightening.
22:26:25 <elliott> Gregor: Not even a custom-coded fd?
22:26:37 <Gregor> elliott: Within the guest, that FD is gone.
22:26:45 <CakeProphet> I was thinking Unified Modeling Language..
22:26:50 <elliott> Gregor: I mean, can't you write a UML kernel driver
22:26:51 <CakeProphet> or whatever it's called.
22:26:51 <zzo38> Taneb: If you have PHP you can use this program if you want it to strip the character so it can send anyways
22:26:55 <elliott> That provides a device or FD or whatever
22:26:57 <elliott> That just communicates back in raw
22:27:00 <Gregor> CakeProphet: So, wtf is wmop? :P
22:27:09 <Taneb> I'm doing something strangely on-topic
22:27:14 <Gregor> elliott: Yes, it's called UML's psedo-tty device :P
22:27:18 <Taneb> My esolang spec has reached a shortfall
22:27:18 <CakeProphet> Gregor: the answer to all of your problems.
22:27:20 <Gregor> elliott: I just have to figure out the ioctl to make it raw.
22:27:24 <CakeProphet> also fictitious.
22:27:24 <elliott> Gregor: But that's a tty. :)
22:27:28 <elliott> Gregor: Erm, raw as in uncooked?
22:27:33 <Gregor> elliott: Yeah.
22:27:40 <Taneb> I want to say that you can't use some things on their own, you have to use them inside something
22:27:56 <CakeProphet> Gregor: but it sounds like some kind of wireless cleaning program.
22:27:58 <CakeProphet> whatever that means.
22:28:41 <CakeProphet> I don't make these things up.
22:28:44 <CakeProphet> oh wait, yeah I do.
22:29:02 <Taneb> Like, you can't say "nand (head) tail", you have to say something like "replace (head) nand (head) tail
22:29:14 <elliott> Taneb: That sounds stupid
22:30:23 <Taneb> The first would return the first element of the main list NAND the second element, the second would replace the first element of the main list with the first element NAND the second element
22:30:46 <CakeProphet> every value should simultaneously have like 20 different contextual values.
22:30:54 <CakeProphet> for maximum confusion.
22:31:02 <CakeProphet> okay maybe 5 instead.
22:31:14 <Taneb> They kinda have two
22:31:26 <CakeProphet> two isn't very confusing. that's like Perl.
22:31:46 <Taneb> I'm not sure how to make more without drastically changing the language
22:31:52 <CakeProphet> well, technically Perl probably has close to 5. But only 2 that you need to worry about.
22:31:52 <Gregor> elliott: Yeah.
22:31:54 <Gregor> Erm
22:32:00 <Gregor> Wow, randomly typing up-enter for no reason = fun
22:32:15 <Gregor> But anyway:
22:32:15 <elliott> Taneb: That sounds stupid
22:32:16 <Gregor> `ls
22:32:16 <itidus20> I forsee a cake on my birthday!!!!
22:32:17 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ test.c \ tmp.tmp \ warez \ тэкст
22:32:21 <itidus20> ^my up-enter
22:32:34 <CakeProphet> especially when you're using irssi and also in a cybersex channel.
22:32:37 <Taneb> My eighteenth birthday, there will be fireworks
22:32:42 <elliott> Gregor: BTW, getting a terminal uncooked is difficult, but I guess I just mean on input
22:32:47 <elliott> For output it's probably easier
22:32:51 <Taneb> My seventeenth, there may be, but probably not
22:33:02 <elliott> It's like an ioctl and then bit-twiddling five elements of a structure and another ioctl :P
22:33:28 <itidus20> perhaps if i hold up for a while before pressing enter the entertainment value will increase
22:33:35 <itidus20> thats one way to say it
22:33:43 <itidus20> hm ill try that again:
22:33:46 <itidus20> in some manner
22:33:55 <itidus20> one more for luck:
22:34:05 <itidus20> and he has all the wonder that a dr seuss character tends to have
22:34:06 <zzo38> My IRC client does not implement the functions of the arrow keys. But if I make another one later, that is not written in PHP, maybe I will I don't know for sure
22:34:35 <quintopia> and if it's cheating, why does every mobile browser do it so easily?
22:34:39 <quintopia> my up-enter
22:35:13 * Sgeo_ actually knows the context for that
22:35:35 <itidus20> ill cut and paste the top line of my scrolling window
22:35:36 <Gregor> lololol I'm made of so much fail 8-D
22:35:41 <Gregor> `touch foo
22:35:43 <HackEgo> touch: cannot touch `foo': Permission denied
22:35:54 <elliott> Gregor: Well it's unhackable at least
22:36:02 <Gregor> elliott: TOTALLY - BULLETPROOF
22:36:06 <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:36:28 <Taneb> Hey, that was to me
22:36:55 <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:38:16 <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:38:30 <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:38:44 <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:38:56 <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:39:06 <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:39:11 <elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:39:14 <elliott> No stop.
22:39:22 <monqy> stop stop stop
22:39:25 <zzo38> Not everyone uses the same client. Check IRC clients using VERSION command or whatever if you want to, and see they are not all the same
22:39:36 <Phantom_Hoover> monqy, friendship stop?
22:39:41 <monqy> how's that mouse
22:39:54 <Phantom_Hoover> I caught it yesterday honestly get in the loop.
22:40:10 <monqy> sorry I was too busy being out of the loop
22:40:17 <Phantom_Hoover> (It was foraging in a bin and I stuffed a blanket into the top.)
22:40:26 <Phantom_Hoover> (Then I ran around with it while cackling.)
22:43:11 <elliott> Phantom_Hoover: Aww awwwww awwwwwwwwwwwwwwwwwwww
22:43:15 <elliott> Phantom_Hoover: DID YOU BEFRIEND IT
22:43:26 <Phantom_Hoover> elliott, NO
22:43:31 <Phantom_Hoover> I released it into the wild.
22:43:46 <Phantom_Hoover> Then I realised that the cat was like 3 metres away and had to chase it down and lock it inside.
22:44:07 <elliott> Phantom_Hoover: YOU ARE A BAD PERSON
22:44:10 <elliott> FRIENDSHIP MOUSE
22:45:00 <Phantom_Hoover> NO
22:45:06 <Phantom_Hoover> THE MOUSE WAS MEANT TO RUN FREE
22:45:30 <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/
22:45:42 <elliott> Phantom_Hoover: Oh, is it a hard-boiled Scottish highlands mouse?
22:45:43 <CakeProphet> irssi puts a space there for some reason. deal with it.
22:45:47 <elliott> You live in the highlands, obviously.
22:45:50 <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS
22:45:52 <elliott> CakeProphet: for stupid @ indicators
22:45:56 <Phantom_Hoover> elliott, yes it was on holiday.
22:46:43 <CakeProphet> Phantom_Hoover: you and elliott are now tied with MAX PERPETRATION
22:46:52 <Phantom_Hoover> OH NO
22:47:49 <CakeProphet> MAX PERPETUATION
22:48:06 <CakeProphet> perpetuation perpetrators
22:51:18 <CakeProphet> interesting that perpetrator and perpetuator have the same roots yet different meanings.
22:52:22 <CakeProphet> latin perpetrare: "to carry through"
22:53:59 <Sgeo_> elliott, update
22:54:23 <Sgeo_> Also, Phantom_Hoover
22:54:38 <CakeProphet> between CakeProphet and Gregor
22:54:43 <oerjan> <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS <-- why?
22:54:51 <Phantom_Hoover> Who needs an update tracker when you have Sgeo_.
22:55:03 <CakeProphet> oerjan: because if we don't you'll ban us for spamming.
22:55:15 <Phantom_Hoover> <oerjan> <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS <-- why? ← That was just a sneaky attempt to get someone to continue it.
22:55:19 <oerjan> curses, you revealed my secret plan again
22:55:30 <itidus20> <Phantom_Hoover> <oerjan> <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS <-- why? ← That was just a sneaky attempt to get someone to continue it. <-- shit just got real
22:55:33 <CakeProphet> we're going to reach a character limit soon.
22:55:37 <elliott> <itidus20> <Phantom_Hoover> <oerjan> <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS <-- why? ← That was just a sneaky attempt to get someone to continue it. <-- shit just got real <-- im running out of space help
22:56:03 <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> <oerjan> <Phantom_Hoover> <CakeProphet> < elliott> <Taneb> <itidus20> <Phantom_Hoover> <elliott> <Phantom_Hoover> <elliott> <itidus20> <Phantom_Hoover> That's the client like everyone uses/ ← END THIS MADNESS <-- why? ← That was just a sneaky attempt to get someone to continue it. <-- shit just got real <-- im running out of space help ← quick hack into Freenode and extend the
22:56:03 <Phantom_Hoover> limit
22:56:07 <Phantom_Hoover> NOOOOOOOOOO
22:56:14 <elliott> DAMMIT I WAS TRYING TO FINISH IT MYSELF
22:56:15 <oerjan> AWWWWWWW
22:56:18 <elliott> With "<-- im dying"
22:56:33 <CakeProphet> convert all of the <-- to [#esoteric] convert all of the <-- to
22:56:40 <CakeProphet>
22:56:58 <oerjan> will that even help
22:56:59 <CakeProphet> remove the space in elliott
22:57:01 <CakeProphet> 4 CHARACTERS
22:57:28 <oerjan> > length "←"
22:57:29 <lambdabot> 1
22:57:35 <oerjan> hmph
22:57:39 <oerjan> > "←"
22:57:40 <lambdabot> "\8592"
22:57:48 <CakeProphet> everything was going fine until Phantom_Hoover hoover perpetrated the perpetuation of commenting.
22:58:12 <CakeProphet> Phantom_Hoover hoover
22:58:16 <itidus20> no it wasn't
22:58:18 <CakeProphet> it's a kind of... hoover.
22:58:29 <itidus20> things had to be said
22:58:29 <oerjan> ^bf ++++++++[->++++++++<],[>.<,]
22:58:30 <fungot> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
22:58:34 <oerjan> oops
22:58:47 <oerjan> ^def count bf ++++++++[->++++++++<],[>.<,]
22:58:47 <fungot> Defined.
22:58:54 <oerjan> ^count ←
22:58:54 <fungot> @@@
22:59:01 <oerjan> ^count <--
22:59:01 <fungot> @@@
22:59:19 <PatashuWarg> ^count ©
22:59:20 <fungot> @@
22:59:25 <elliott> ^count fungot
22:59:25 <fungot> @@@@@@
22:59:34 <CakeProphet> ah so it's a byte limit and not a character limit?
23:00:07 <CakeProphet> I guess character limit would be kind of... arbitrary.
23:00:08 <oerjan> CakeProphet: i'd expect so, irc says nothing about charset afaik
23:00:25 <oerjan> and many people don't even use utf-8
23:00:44 <Lymee> ^count あ
23:00:45 <fungot> @@@
23:01:06 <CakeProphet> ^count @
23:01:06 <fungot> @
23:01:13 <CakeProphet> doubles as a cat program for some inputs.
23:01:17 <oerjan> ^count
23:01:24 <oerjan> oh duh
23:01:29 <CakeProphet> an infinite number of inputs. actually, up to irc's character limit.
23:01:33 <CakeProphet> *byte
23:01:35 <PatashuWarg> ^ count 1, 2, 3, ah ha ha!
23:01:40 <PatashuWarg> ^count 1, 2, 3, ah ha ha!
23:01:41 <fungot> @@@@@@@@@@@@@@@@@@
23:01:53 <CakeProphet> ^count @@@@@@
23:01:53 <fungot> @@@@@@
23:04:29 <zzo38> Footnote 5: "Mmmmm... seafood" Foodnote 10: "Mmmmm... "C" food" Footnote 15: "Mmmmm... See? Food."
23:05:56 <CakeProphet> Footnote 20: Mmmmm... si, food
23:06:32 <CakeProphet> you know, i with an accent. Since apparently people care about that stuff on this channel.
23:07:37 <zzo38> Yes you can use accent marks if you want to. Or just use ASCII if you want to use ASCII only to ensure maximum compatibility
23:08:02 <oerjan> Footnote 33: Mm, SI FUD?
23:08:22 <CakeProphet> I use ASCII out of laziness.
23:11:10 <zzo38> Footnote 5 is based on something my brother said (out of character) during a D&D session. It gave me some idea, and I also decided to make it a footnote (but based on my actions because that is what he was refering to), that hopefully I could make up a use for the other things as relevant footnotes too in later sessions somehow. Which accent mark is it supposed to be? If it comes up I would make that footnote too!
23:12:55 <oerjan> did he eat a mermaid or something
23:13:10 <oerjan> oh wait, out of character
23:13:30 * Phantom_Hoover → sleep
23:13:33 -!- Phantom_Hoover has quit (Quit: Leaving).
23:14:09 <zzo38> It is a program I wrote for recording D&D sessions.
23:14:28 <CakeProphet> so like... are you guys still understanding what's going on in Homestuck?
23:14:35 <CakeProphet> I'm kind of lost.
23:15:24 <elliott> Everything makes perfect sense.
23:15:49 <oerjan> i understand everything i've read of homestuck
23:15:57 <elliott> (Remember that there is a difference between "things we don't know yet" and "confusing things".)
23:16:10 <zzo38> If you want to know why these things are as they are you can read the entire document by yourself, please. (And, of course if you find a typo please mention it)
23:17:15 <CakeProphet> I guess it's just somewhat harder to follow when I'm waiting for updates. Because I get stuck on the intermediate parts.
23:17:27 <CakeProphet> not to mention with the scratch there's like 5 things goings on at once.
23:17:33 <CakeProphet> per section or whatever.
23:18:40 <elliott> Umm, the scrapbooks are over.
23:19:15 <zzo38> Badness ten thousand.
23:23:32 <oerjan> @src Monoid
23:23:33 <lambdabot> class Monoid a where
23:23:33 <lambdabot> mempty :: a
23:23:33 <lambdabot> mappend :: a -> a -> a
23:23:33 <lambdabot> mconcat :: [a] -> a
23:23:40 <oerjan> :t mempty :: Integer
23:23:41 <lambdabot> No instance for (Monoid Integer)
23:23:42 <lambdabot> arising from a use of `mempty' at <interactive>:1:0-5
23:23:42 <lambdabot> Possible fix: add an instance declaration for (Monoid Integer)
23:23:53 <oerjan> ic
23:24:45 <zzo38> I read the informations about monoids in Haskell, it seems like groups in mathematics except for inverses
23:24:57 <elliott> zzo38: um they are literally monoids.
23:25:00 <oerjan> yes, that's what monoids are in math too
23:25:06 <elliott> http://en.wikipedia.org/wiki/Monoid
23:27:25 -!- variable has joined.
23:28:23 -!- FireFly has quit (Quit: swatted to death).
23:31:39 -!- azaq23 has quit (Quit: Leaving.).
23:35:43 -!- invariable has joined.
23:35:48 -!- variable has quit (Quit: I found 1 in /dev/zero).
23:37:03 -!- invariable has changed nick to variable.
23:37:27 <zzo38> I realized that one day I have realized that quasigroups can make latin squares even when I didn't know about quasigroups.
23:38:51 -!- elliott has changed nick to whoosh.
23:38:56 -!- whoosh has changed nick to elliott.
23:40:48 <zzo38> I seem to remember I once wrote a program to compute which cells of a latin square can be used as identity elements
23:41:11 <Gregor> Argh, Linux's capabilities system sucks >_<
23:41:20 <Gregor> You can't be given capabilities if you don't expect them.
23:42:22 <zzo38> Then fix it.
23:42:32 <Gregor> Helpful as always.
23:43:53 <CakeProphet> elliott: ah okay I just got through the scrapbook
23:43:57 <CakeProphet> I hadn't been reading for a while.
23:44:02 <CakeProphet> I think it works better that way.
23:44:14 <elliott> Then asking whether we're still confused about everything happening seems silly
23:44:20 <CakeProphet> yes Karkat is a good patron troll. :D
23:44:26 <elliott> Gregor: Define expect
23:44:32 <elliott> Gregor: (Helpful as always)
23:44:34 <CakeProphet> elliott: I guess
23:44:53 <Gregor> elliott: Executable files can have a special flag that essentially says "when executing this, you may keep these capabilities"
23:44:54 <itidus20> so, someone in another channel just said, as a joke: i won't be content until unsigned int x = 0; --x; yields ∞
23:45:04 <Gregor> elliott: But it's 0 for approximately every program ever.
23:45:43 <CakeProphet> itidus20: that's a terrible joke because it makes no sense.
23:46:13 <elliott> Gregor: What do you need capabilities for anyway
23:46:27 <zzo38> Yes this joke is even mathematically wrong as far as I can tell
23:46:28 <elliott> itidus20: That would make unsigned even less like the naturals
23:46:38 <elliott> If there's one thing C doesn't need it's to be less mathematical
23:46:56 <CakeProphet> > product []
23:46:57 <lambdabot> 1
23:47:05 <PatashuWarg> > sum []
23:47:06 <lambdabot> 0
23:47:24 <zzo38> CakeProphet: Those makes sense it is good that it does like that
23:47:25 <Gregor> elliott: The reason it can't write files is that I randomized the UID, but UML actually understands permissions.
23:47:32 <CakeProphet> zzo38: yep
23:47:45 <CakeProphet> however I could see the 1 causing some issues in... code that I can't think of.
23:47:52 <CakeProphet> some kind of unexpected logic error.
23:47:57 <elliott> Gregor: Use a FUSE filesystem that just mirrors another directory but reassigns all the owners
23:48:00 <elliott> Gregor: yw
23:48:08 <Gregor> elliott: Helpful as always.
23:48:10 <elliott> (And handles it on creation too)
23:48:12 <elliott> Gregor: What, that would work
23:48:20 <Gregor> elliott: Yeah, and suck foot :P
23:48:29 <elliott> CakeProphet: product [] is correct
23:48:37 <CakeProphet> elliott: I didn't say it wasn't.
23:48:39 <elliott> If code fails with product [] returning one, that code is really weirdly broken??
23:48:42 <elliott> Gregor: Why
23:48:47 <CakeProphet> elliott: yes.
23:49:05 <Gregor> elliott: Now you've got FUSE over hostfs :P
23:49:33 <CakeProphet> well say 1 was treated as a special value, then [1] would produce the exceptional case unexpectedly... I dunno.
23:49:50 <CakeProphet> I BET BAD CODE COULD HAPPEN
23:49:50 <elliott> Gregor: Oh no, HackEgo will be so slow, and it is so fast now
23:50:13 <elliott> CakeProphet: [10,0.1] also produces 1
23:50:13 <zzo38> CakeProphet: If for some reason you want that you can use a Maybe type to check if it is empty or not
23:50:21 <elliott> zzo38: Or just case
23:50:27 <elliott> case xs of [] -> ...; _ -> ...
23:50:32 <oerjan> itidus20: that ∞ sounds very much like -1 of signed ints, except for the order. you could probably make many things work by using ordinary bigints but treat negatives as larger than nonnegatives
23:50:40 <Gregor> elliott: OK, let me put it this way, then: Randomizing the IDs is totally pointless in this new design, so I'm just not doing it any more.
23:50:50 <oerjan> (also 2-adic numbers yada yada)
23:50:59 <quintopia> zzo38: hans is holding his own today
23:51:08 <zzo38> oerjan: Yes, 2-adic number, it is what I have thinking of too
23:51:34 <quintopia> (he is still slightly behind entering final jeopardy, but he was in the lead for a bit)
23:51:43 <elliott> Gregor: I was going based on the assumption that it was still necessary
23:51:53 <elliott> Gregor: Which seems reasonable, since you did not say it wasn't, and you were having a problem relating to it :-P
23:51:54 <zzo38> quintopia: Don't bother to tell me right now. I will watch Jeopardy later today
23:52:15 <Gregor> elliott: I just came to this realization
23:52:22 <elliott> Gregor: I guessed that :P
23:54:08 <oerjan> hm it would still make multiplication by a negative number reverse the ordering...
23:54:56 <Gregor> So anyway, please try to politely hack hackbot :P
23:55:02 <Gregor> Look for holes (but don't exploit them)
23:55:21 <CakeProphet> fungot: find exploits in hackbot and exploit them.
23:55:21 <fungot> CakeProphet: it is a hate so pure and... pumpkin seeds? well i guess he said no, then,
23:56:36 <itidus20> oerjan: well.. infinity isn't actually a number right?
23:56:45 <itidus20> this is a problem that comes up right?
23:56:55 <elliott> "problem"
23:57:01 <oerjan> itidus20: infinity is not a "real number", no
23:57:12 <CakeProphet> hyperreal
23:57:14 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:57:14 <elliott> oerjan: oh snap
23:57:26 <oerjan> there are a plethora of different mathematical objects that can be called infinity, though
23:57:40 <itidus20> i know that between real numbers n and n+1 there can be infinite divisions
23:57:41 <CakeProphet> er wait, is it surreal?
23:57:46 <CakeProphet> no.
23:57:49 <elliott> CakeProphet: both exist
23:57:54 <elliott> itidus20: um what
23:57:55 <oerjan> CakeProphet: both ... :P
23:58:09 <elliott> there are as many reals between any two given reals as there are reals in total
23:58:14 <elliott> if that's what you mean
23:58:45 <itidus20> elliott: but there is no total, right?
23:58:53 <itidus20> it's just relative
23:59:12 <monqy> hlep what
23:59:17 * oerjan sips his ice coffee
23:59:29 <elliott> itidus20: what?
23:59:39 <elliott> itidus20: there are beth-one of them if that's what you mean
2011-08-13
00:00:07 <CakeProphet> I think he's just confusing reals with integers.
00:00:10 <itidus20> there is no real number n which exists whereby real number n+1 does not exist
00:00:19 <elliott> itidus20: same for naturals...
00:00:47 <oerjan> itidus20: true. the number of real numbers is _not_ a real number, it's something else called a transfinite cardinal number
00:01:02 <itidus20> orosu
00:01:08 <elliott> oerjan: you might have left off the "transfinite" part :P
00:01:21 <itidus20> ahh ok cool
00:01:28 <oerjan> well transfinite here means just "beyond the finite ones"
00:01:38 <oerjan> the finite ones are just the natural numbers
00:03:00 <itidus20> ah ok so the thing about real numbers then is that they are supposed to have leading and trailing zeros
00:03:13 <PatashuWarg> really?
00:03:16 <elliott> what
00:03:17 <oerjan> "infinity" tends to lead to different concepts depending on exactly what property of finite numbers you are generalizing. cardinals are when you are generalizing the size of sets.
00:03:18 <PatashuWarg> what about 0.3333333333...
00:03:39 <itidus20> that one has leading zeros :D
00:03:53 <elliott> itidus20: Specifically the number of real numbers is ב‎₁ (usually taken, by axiom, to be equal to א‎₁)
00:03:53 <PatashuWarg> AND trailing zeros you said
00:03:57 <elliott> oerjan: am i helpnig
00:03:57 <PatashuWarg> if you mean or or xor then say so
00:04:03 <itidus20> i know .. you win
00:04:11 <elliott> arguments aren't about winning hth
00:04:31 <itidus20> for some reason.. it rarely occurs that a person says ...333.0
00:04:33 <oerjan> itidus20: leading zeros, not necessarily trailing (only numbers of the form a/10^n where a and n are integers have that
00:04:38 <elliott> itidus20: that's not a real number
00:04:43 <elliott> it is a p-adic number, though
00:04:54 <itidus20> what about ...333.333...
00:04:55 <quintopia> PatashuWarg: let's write it in base 3: 0.10 see the leading and trailing zeroes?
00:05:03 <PatashuWarg> curses!
00:05:05 <elliott> itidus20: that's not a p-adic number.
00:05:09 <itidus20> what is that?
00:05:13 <elliott> http://en.wikipedia.org/wiki/P-adic_number
00:05:20 <elliott> a system not the same as the real numbers
00:05:25 <elliott> left-infinite rather than right-
00:05:48 <itidus20> suppose you have left and right infinite.. you're just up to your knees in shit then? :D
00:06:03 <quintopia> you could do it
00:06:11 <quintopia> just devise your own system
00:06:20 <itidus20> its just never come up?
00:06:40 <quintopia> for bonus points devise a system where no number has more than 2 representations (which is a nice property of the standard real numbers)
00:06:48 <itidus20> oh i mean im sure in some backwards corner of mathematics its already been done dont get me wrong im not that arrogant
00:07:34 <oerjan> <elliott> oerjan: am i helpnig <-- my putty may be broken, but i suspect you hit some trouble with hebrew right-left writing there
00:07:55 <itidus20> PatashuWarg: sorry i have issues
00:08:28 <itidus20> yes 0.333... is a fantastic example of a number which does not have infinite trailing zeros
00:08:39 <itidus20> which i did not think of when i made my statement
00:08:59 <CakeProphet> BD
00:09:05 <elliott> oerjan: i tried to insert overrides
00:09:06 <oerjan> itidus20: i cannot recall any use for numbers which have both leading and trailing ... oh wait, maybe hyperreals count
00:09:13 <elliott> itidus20: backwards corner?
00:09:26 <oerjan> elliott: ah. maybe putty just didn't notice.
00:09:32 <PatashuWarg> both leading and trailing ... sounds like a higher cardinality than reals
00:09:35 <CakeProphet> elliott: he's talking about number theory of course.
00:09:45 <CakeProphet> the most perverse corner of mathematics.
00:10:16 <itidus20> elliott: noone can account for the activities of mathematicians...
00:10:25 <oerjan> elliott: also, i wouldn't really call the continuum hypothesis "usual", i haven't really seen much math assuming anything about it
00:10:42 <elliott> oerjan: fair enough; I was under the impression it was usually taken to be true rather than false
00:10:52 <oerjan> beyond that which investigates it specifically
00:10:52 <PatashuWarg> actually, nvm. it isn't
00:11:06 <elliott> oerjan: the cardinality of the reals is often casually referred to as aleph-one, though, isn't it?
00:11:10 <elliott> which is the point i was trying to make
00:11:10 <oerjan> elliott: well that's what Cantor wanted :P
00:11:25 <itidus20> lets face it guys.. babbage built a computer... noone else had anything like it going on at the time... you never know what rabbit a mathematician is gonna pull out of a hat next
00:12:54 <quintopia> babbage did not build a computer
00:12:57 <quintopia> he designed one
00:12:57 <itidus20> i can't really explain why history seems more exciting when it happened over 100 years ago.. but it does
00:12:58 <oerjan> elliott: there are some popular math books which confuses them, i think
00:13:06 <quintopia> you should go back in time and give him money to build it
00:13:21 <itidus20> ok
00:13:23 <quintopia> (we actually might build an analytical engine soon. someone is looking for funding to do it.)
00:13:36 <itidus20> so he built a fancy calculator, and designed a computer
00:13:37 <PatashuWarg> I thought it was already built?
00:13:40 <PatashuWarg> oh, right
00:14:13 <quintopia> it will easily fill a room. it will be quite expensive
00:14:37 <itidus20> and does it have much power?
00:15:23 <quintopia> well, it's turing-complete!
00:15:34 <elliott> is it? no fixed bitwidth?
00:15:37 <quintopia> so ... it can do anything your computer can, given enough time and a big enough store!
00:16:15 <quintopia> (babbage reckoned it could multiply two twenty digit numbers in under three minutes)
00:19:35 <itidus20> the signifigance being, I imagine, that it could do it all day
00:21:05 <itidus20> aha.. so ...9999=-1.
00:21:32 <oerjan> in the 10-adics
00:22:23 <CakeProphet> quintopia: have you read The Difference Engine.
00:22:45 * itidus20 laughs to myself. oerjan: I think I will just let it go this time.
00:22:57 <oerjan> unlike for real numbers in different bases, the different p-adic number sets (n-adics? 10 isn't prime so...) aren't just different representations of the same set
00:25:11 * CakeProphet laughs with itidus20 at me.
00:25:38 <CakeProphet> s/at/to/
00:25:45 * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me.
00:26:26 <CakeProphet> how third-person of you.
00:26:29 <CakeProphet> ZING!
00:26:48 * itidus20 has probably detected a fault in my thinking patterns.... .... go him
00:27:23 <Gregor> itidus20: Even for what you were attempting, that's the wrong person, "me" is the software.
00:27:36 <elliott> * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me.
00:27:38 <elliott> ais does it too
00:27:46 <elliott> :P
00:27:47 <elliott> also me
00:27:56 <CakeProphet> and I.
00:27:59 <quintopia> CakeProphet: of course
00:28:00 <itidus20> Gregor: When I said "laughs to myself" it was a genuine mistake, not a joke.
00:28:01 <monqy> I just don't use /me
00:28:04 <elliott> <oerjan> unlike for real numbers in different bases, the different p-adic number sets (n-adics? 10 isn't prime so...) aren't just different representations of the same set
00:28:09 <elliott> hm are the ten-adics even valid?
00:28:18 <monqy> a few years ago I used to use /me, and when I did, I used pronouns properly
00:28:19 <itidus20> It may be related to some kind of neurosis
00:28:25 <elliott> I would think the fact that p isn't prime would, you know...
00:28:44 <CakeProphet> itidus20: yes. I often attribute my typos to my cancerous schizophrenia.
00:28:49 * Gregor says, "But this is the only way to speak."
00:28:55 <elliott> Gregor: Shut up Eliezer.
00:30:13 <itidus20> CakeProphet: it was more than a typo
00:30:31 <CakeProphet> actually it would explain a lot of things if I were actually schizophrenic. Or something less in severity.
00:31:00 <CakeProphet> itidus20: I frequently misconjugate words or just type the wrong word. Ask anyone here.
00:31:18 <monqy> sometimes I make typoes.
00:31:45 <CakeProphet> it's not like... a mental problem. Just carelessness or thinking too fast.
00:31:54 <itidus20> I'm not "ok". But sure one can say that noone is perfect.
00:32:31 <itidus20> And indeed, the kinds of troubles I have all seem to relate to interactions with the other humans
00:32:36 <CakeProphet> -____-
00:32:54 <monqy> except for the ones that don't
00:32:58 <CakeProphet> #esoteric-therapy
00:33:18 <itidus20> I would do just as good as the next guy in some post-armageddon where I was the sole-survivor
00:34:00 <CakeProphet> I would build and program zombie slaying robots if I survived long enough to find the parts.
00:34:19 <PatashuWarg> I'm not prepared for a zombie invasion, and that's OK
00:34:40 <CakeProphet> and, most likely, the library of reference material I would need to know how to do everything without the internet. It is a crutch.
00:35:33 <CakeProphet> PatashuWarg: I'm glad you've accepted that.
00:35:42 <CakeProphet> this is what #estoeric-therapy is all about: Acceptance
00:36:22 <CakeProphet> you need to bring your FSA to an accepting state.
00:36:55 <itidus20> I can accept that I don't need to know what an FSA is to get the gist of what you're saying.
00:36:55 <oerjan> <elliott> hm are the ten-adics even valid? <-- as a ring, sure, but only primes extend to a field iirc
00:37:07 <elliott> im feld
00:37:34 <CakeProphet> itidus20: to get my totally awesome joke you need to know about it though.
00:38:04 <itidus20> Finite State Automaton?
00:38:22 <oerjan> elliott: specifically, i think the 10-adics have numbers divisible indefinitely by 2 and indefinitely by 5, and if you multiply those you get 0
00:38:29 <CakeProphet> itidus20 levels up his Google skill.
00:38:34 <CakeProphet> yes.
00:38:36 <itidus20> bah
00:38:38 <elliott> oerjan: thats how felds works,,
00:38:40 <itidus20> i didnt google it :>
00:38:46 <monqy> :o
00:38:53 <CakeProphet> I... google things all the time.
00:39:12 <itidus20> Yes and I google things which I wouldn't tell my own mother
00:39:12 <CakeProphet> I am reading about surreal numbers that I googled as we speak.
00:39:28 <CakeProphet> same. she wouldn't really understand what a p-adic number is.
00:39:39 <itidus20> But in this case I knew that TLA
00:39:51 <itidus20> even though if you asked me to define it we might be in a fix
00:39:54 <CakeProphet> uh, one second while I google that.
00:40:09 <CakeProphet> oh ho, that's a new one to me.
00:40:15 <CakeProphet> how clever.
00:40:16 <itidus20> yeah its pretty cool
00:40:42 <quintopia> it's interesting how TLDs are TLAs in a sense
00:41:30 <oerjan> * Gregor says, "But this is the only way to speak." <-- ah ancient MUD days...
00:41:38 <Gregor> Hah X-D
00:41:56 <Gregor> 'I remember talking to people who put quotes behind all their lines unthinkingly.
00:42:01 <Gregor> 'Even when they weren't on MUDs.
00:42:24 <oerjan> elliott: um no, in fields you can have the product of two nonzero elements be zero
00:42:37 <CakeProphet> itidus20: a fsa is a set of states, an alphabet, and a state-transition function that maps a state-input pair to a new state.
00:42:51 <CakeProphet> oh, there's an initial state and a set of accepting (or final) states.
00:43:52 <CakeProphet> you can visualize it as a bunch of circles connected by arrows. Each circle is given a state (from the set of states), and each arrow is labeled by an input character (from the alphabet)
00:44:05 <itidus20> CakeProphet: I have pondered over it before indirectly.. because my purpose for existence is to ultimately be a game designer
00:44:07 <CakeProphet> you start the initial state, and then you take the input and follow the arrows... basically.
00:44:11 <CakeProphet> *start at
00:44:49 <itidus20> ok so.. can the states be duplicated?
00:45:12 <CakeProphet> do you mean, can you have more than one "circle" with the same state? no.
00:45:18 <CakeProphet> can you revisit states? yes.
00:45:52 <itidus20> cool. and.. i assume multiple arrows can have the same input character
00:46:08 <oerjan> *cannot, dammit
00:46:12 <itidus20> ahh
00:46:25 <oerjan> itidus20: er that wasn't to you
00:46:32 <oerjan> i was correcting myself above :P
00:46:40 <CakeProphet> each state must have an "arrow" for each character in the alphabet.
00:46:49 <CakeProphet> every state-input combination has to go somewhere.
00:46:50 <itidus20> ahh
00:47:01 <CakeProphet> so yes, more than one arrow can share an input character.
00:47:18 <CakeProphet> a lot of simple machines can be modeled as FSA. A vending machine, for example.
00:47:39 <oerjan> itidus20: whether arrows from the same state can have the same input character, depends on whether the FSA is deterministic (it cannot) or nondeterministic (it can)
00:47:56 <itidus20> oh nevermind that comment of mine
00:48:41 <itidus20> so a final state I assume doesn't have any outputs
00:49:54 <oerjan> itidus20: it might. it's only really final if there aren't any more characters then
00:50:16 <CakeProphet> itidus20: it always has a state that it transition to for each input character.
00:50:22 <CakeProphet> +s
00:50:31 <CakeProphet> but sometimes it might circle back on itself.
00:51:10 <CakeProphet> so that once you're at a final state you're stuck there no matter what input you give the automata. but it doesn't have to work like that.
00:52:00 <CakeProphet> oerjan: is the state-transition function still a function in the nondeterministic version?
00:52:45 <itidus20> so.. if there are 4 states.. and 3 characters then i imagine there are 12 transitions.
00:52:52 <oerjan> um not with a single state as result value, anyway
00:53:31 <CakeProphet> oerjan: ah so the result is a set of possible states then?
00:53:35 <oerjan> yeah
00:54:33 <CakeProphet> itidus20: yes.
00:55:09 <CakeProphet> the only purpose of the accepting states is to determine whether or not an input string is part of the "language" it accepts.
00:55:13 <CakeProphet> I'm not sure why I put quotes around that.
00:55:56 <itidus20> and so you could say that (state1)--ABCD-->(state2)--ABCD-->(state3)--ABCD-->(state4)--ABCD-->(connects to state1 which is impossible in this diagram)
00:56:12 <itidus20> oh well of course thats with 4characters instead of 3
00:56:39 <oerjan> that's a pretty simple machine though, it just counts characters
00:56:51 <oerjan> mod 4
00:57:19 <CakeProphet> as far as I can tell it only has one input character as well.
00:57:26 <CakeProphet> unless I'm reading the notation wrong.
00:57:27 <itidus20> i don't think i understand
00:57:40 <itidus20> ok wait ill explain
00:57:57 <CakeProphet> http://en.wikipedia.org/wiki/File:DFAexample.svg
00:58:16 <CakeProphet> here is a FSA diagram
00:58:34 <CakeProphet> the double-circle around S1 means it's an accepting state.
00:58:50 <CakeProphet> the arrowing coming out of nothingness means that S1 is the initial state.
00:58:54 <CakeProphet> *arrow lol
00:58:54 <itidus20> 4 states: state1,state2,state3,state4 ... 4 characters: A, B, C, D... 16 transitions conveniently grouped into 4 identical ones.. state1->state2, state2->state3, state3->state4, state4->state1
00:59:08 <itidus20> that is what i was trying to say
00:59:09 <CakeProphet> ah, right.
00:59:47 <itidus20> ah ok so in your diagram .. the characters are 0 and 1
01:00:36 <CakeProphet> yes.
01:00:40 <CakeProphet> the alphabet is "01"
01:01:25 <itidus20> and finally what does accepting state mean?
01:01:50 <CakeProphet> if an input string ends at an accepting state that means the string is part of the language of the automata.
01:02:02 <CakeProphet> > (`replicateM` "01") =<< [0..]
01:02:03 <lambdabot> ["","0","1","00","01","10","11","000","001","010","011","100","101","110","...
01:02:24 <CakeProphet> that's all of the possible input strings in that alphabet
01:02:31 <CakeProphet> can you figure out which ones are part of the language?
01:02:31 <itidus20> ohhh .. so these FSA's have input strings
01:02:38 <CakeProphet> right, that's the purpose of the alphabet.
01:02:41 <CakeProphet> and the arrows.
01:02:47 <monqy> and the fsas
01:02:59 <CakeProphet> well, sure.
01:03:50 <CakeProphet> itidus20: so which input strings are accepted as a member of the language of that automata?
01:03:54 <CakeProphet> can you think of a pattern for them?
01:04:45 <itidus20> well i should point out i dont understand the notation of "(`replicateM` "01") =<< [0..]" but i do recognize the series
01:04:55 <CakeProphet> that's Haskell, don't worry about that.
01:05:11 <CakeProphet> it's irrelevant to FSA I was just generating all of the possible input strings... or at least the beginning of the series.
01:05:14 <itidus20> it is clearly natural binary numbers
01:05:14 <CakeProphet> *sequence
01:05:20 <CakeProphet> yes.
01:05:30 <itidus20> uh except the empty set which is .. well..
01:05:40 <itidus20> ^empty string
01:05:58 <CakeProphet> okay so which strings end at an accepting state in that diagram?
01:06:06 <itidus20> "" is a number in nirvana
01:06:47 <CakeProphet> ....I've exhausted your attention span haven't I?
01:06:58 <itidus20> no no.. ill keep going
01:07:14 <itidus20> ok lets see...
01:07:23 <itidus20> "1" ends in an accepting state
01:07:30 <CakeProphet> yes, that's one.
01:07:35 <CakeProphet> but can you say something about ALL Of the strings?
01:07:56 -!- cheater__ has joined.
01:07:57 <itidus20> "0" doesn't because it needs a second character presumably to get back to the accepting state
01:08:09 <CakeProphet> a second zero, yes.
01:09:11 <CakeProphet> do you see the pattern?
01:10:21 <itidus20> i can guess by cheating that the set of strings you listed with haskell is the strings in question.. except it's not quite because of "0"
01:10:33 <CakeProphet> no
01:10:39 <CakeProphet> the set of strings I listed is ALL of the possible inputs
01:10:42 <CakeProphet> not the accepted ones.
01:10:45 <itidus20> ahh
01:11:01 <CakeProphet> ....can you just like, look at the diagram and see?
01:11:05 <CakeProphet> before I beat it into you?
01:11:14 * CakeProphet is a sadistic teacher.
01:11:26 <zzo38> Does Haskell know to not add semicolons where I don't want them?
01:11:26 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:11:41 <CakeProphet> zzo38: add them in what?
01:11:44 <itidus20> i would have to go through it following every arrow to understand
01:11:51 <CakeProphet> no just think about it
01:12:02 <itidus20> hmm
01:12:07 <CakeProphet> there are infinite possibilities, so you'd end up doing that forever.
01:12:33 <CakeProphet> okay I will give you a hint
01:12:34 <itidus20> well i would do a few.. it would take a while..
01:12:43 <CakeProphet> obviously the 1s do nothing to the state.
01:12:49 <zzo38> CaheProphet: I mean that it uses its layout rules to determine where to add semicolons, sometimes I might want a line break but it won't automatically add semicolons. If you use { } and explicit semicolons will it know not to add its own semicolons?
01:12:51 <oerjan> zzo38: semicolons are added based on indentation.
01:12:51 <CakeProphet> the 1s are irrelevant to whether or not the input is accepted.
01:13:04 <CakeProphet> zzo38: yes.
01:13:12 <CakeProphet> er... well, maybe?
01:13:24 <CakeProphet> I don't know, actually. I never use the {} syntax.
01:13:39 <oerjan> zzo38: { } turns off implicit semicolons, yes. another way is to simply indent the next line a bit more than the current layout alignment.
01:14:23 <zzo38> It seems somewhat strange that record syntax also uses { } but separates the items with commas instead of semicolons. Why is that?
01:14:46 <itidus20> CakeProphet: well.. as frustrating as it is i have to stop regularly to eat and my diabetes isn't that well controlled..
01:14:47 <CakeProphet> to destroy your arbitrary rules of consistency and laugh at them.
01:14:58 <CakeProphet> itidus20: okay that's fine I will beat some sense into you later.
01:15:10 <itidus20> like ... circa every 2 hours
01:15:17 <itidus20> its a pain
01:15:32 <oerjan> zzo38: well record syntax doesn't have layout. it might be confusing if implicit semicolons got intertwined in them
01:15:37 <CakeProphet> not as painful as me berating you over how obvious the answer to my question is
01:15:39 <itidus20> it can drive a person to distrction to hear it come up again
01:15:49 <itidus20> brb anyway
01:16:21 <zzo38> oerjan: Then why do they use braces? It doesn't make sense to me.
01:16:41 <oerjan> well they had to use some delimiter. maybe it was a bad choice.
01:16:51 <CakeProphet> I don't really see it as an issue.
01:17:00 <CakeProphet> it's completely unambiguous.
01:18:05 <zzo38> I don't know. Maybe it is OK how it is.
01:18:14 <CakeProphet> what else would they use? C [y] is applying a list
01:18:17 <CakeProphet> C (y) is applying y
01:18:29 <PatashuWarg> <> ?
01:18:32 <CakeProphet> C <y> is stupid why would I even consider that.
01:18:35 <PatashuWarg> LOL
01:18:38 <oerjan> it's pretty much agreed that haskell's record system is badly designed, anyhow, although for different reasons :P
01:19:30 <oerjan> <> are operator characters, not delimiters, it would mess up other uses or make the lexical syntax even more complicated
01:19:46 <zzo38> oerjan: Yes I realize < > are operator characters rather than delimiters and can see why that is bad
01:19:47 <CakeProphet> unless Haskell decided to be Perl.
01:20:00 <zzo38> And I can also see why ( ) and [ ] are bad for record syntax
01:20:13 <zzo38> So perhaps there is no other choice than { }
01:20:40 <CakeProphet> it also matches the record declaration syntax.
01:20:40 <PatashuWarg> / / delimited
01:20:48 <CakeProphet> same issue as <>
01:20:49 <zzo38> Maybe if you used semicolons instead of commas, you could make it work just by requiring the { to be prefixed by a word such as "record"
01:20:51 <PatashuWarg> oh yeah
01:20:57 <PatashuWarg> hmm is any character not used for an operator?
01:21:07 <PatashuWarg> I think they all have the potential to be
01:21:25 <CakeProphet> only the bracketing ones. and ~ I think.
01:21:27 <oerjan> zzo38: yes, then it could have layout too based on that keyword, although it would be more verbose
01:21:31 <CakeProphet> no ~ can be used.
01:21:34 <zzo38> The specials include ` { } ( ) [ ] ' " and " and ' have other meanings. ' is like a letter which is neither uppercase nor lowercase
01:21:52 <zzo38> And ' can also be used for character constants, and for names in Template Haskell. And " is used for strings.
01:22:03 <oerjan> > let a ~- b = a-b in 2 ~- 3
01:22:04 <lambdabot> -1
01:22:18 <CakeProphet> : is for constructor operators.
01:22:35 <zzo38> Yes, : is an uppercase operator symbol, and the others are lowercase.
01:22:54 <PatashuWarg> 'uppercase' ?
01:23:12 <zzo38> At least, reading the specifications, it is what it looks like to me; that : is considered uppercase.
01:23:12 <CakeProphet> yes if you want to yell in symbols you do it like this:::::::::::::::::::
01:24:04 <zzo38> It is what seemed to me, at least, that : is an uppercase symbol, _ is a lowercase letter, and ' is a letter which is neither uppercase nor lowercase.
01:24:19 <PatashuWarg> does any other language make distinctions like this?
01:24:30 <elliott> Gregor: So I just ran into a situation where I'd like plash-esque total sandboxing..............
01:24:32 <CakeProphet> not really, except maybe _
01:24:36 <oerjan> PatashuWarg: haskell distinguishes alphanumeric identifiers based on whether they start with upper or lower case. for operator identifiers : happens to have essentially the same meaning as being the only upper case one
01:24:43 <elliott> yes, : is uppercase
01:24:46 <zzo38> Isn't there something in Ruby where capitalized words are treated different somehow?
01:24:47 <Gregor> elliott: So use UMLBox :P
01:24:48 <elliott> sort of :)
01:24:55 <elliott> Gregor: I'm asking for a link, doofus :P
01:25:00 <CakeProphet> zzo38: yes
01:25:05 <Gregor> elliott: http://bitbucket.org/GregorR/umlbox
01:25:31 <CakeProphet> titlecase words are considered classes I believe.
01:25:36 <elliott> bitbucket.imaspecialsnowflake.org
01:25:38 <oerjan> PatashuWarg: ocaml also distinguishes things based on case afair
01:25:43 <elliott> TIME TO REMEMBER HOW TO USE HG
01:25:50 <elliott> Gregor: So hey, what happened to you hosting everything on codu.org :P
01:25:54 <CakeProphet> $ is for globals, @ is instance variables, and I think ALL_CAPS is for global constants?
01:26:13 <elliott> CakeProphet: uppercase = class, module or constant.
01:26:16 <elliott> technically, just constant
01:26:20 <elliott> it's just that classes and modules are constant
01:26:22 <CakeProphet> ah okay.
01:26:22 <elliott> (I may be wrong there)
01:26:33 <elliott> Gregor: Hmm, are standard Debian kernels built with UML?
01:26:36 <oerjan> but it doesn't have upper/lower case for operators, although unlike haskell it decides precedence by the first symbol
01:26:40 <CakeProphet> well you can redefine classes via partial classes.
01:26:44 <monqy> aren't classes/modules in ruby not constant at all
01:26:45 <oerjan> iirc
01:26:52 <CakeProphet> so technically not constant I guess
01:26:55 <monqy> you can do monkey patching on them and stuff
01:27:09 <elliott> monqy: constant doesn't mean cnostant
01:27:13 <monqy> hlep
01:27:14 <Gregor> elliott: Re codu: Occasionally I put things on bitbucket when they're a bit less me-centric.
01:27:20 <elliott> you can mutate the objects just not reassign them
01:27:25 <elliott> Gregor: What a metric :-P
01:27:33 <elliott> <Eduard_Munteanu> SELinux, user limits and maybe cgroups, IIRC.
01:27:35 <monqy> elliott: that is a stupid definition of constant
01:27:38 <elliott> HAHAHAHA I SHALL POWER THROUGH MY COMPETITOR WITH SIMPLICITY
01:27:41 <Gregor> elliott: Re Debian: There's the user-mode-linux package, but it's not sufficient, you need to build a UMLBox-specific kernel.
01:27:43 <zzo38> It would seem in Haskell, that if you use Template Haskell, then when reading a lexeme starting by ' then you have to look ahead to figure out what you mean
01:27:47 <elliott> Gregor: Oh >_>
01:27:54 <elliott> Gregor: Maybe I WILL just use Plash then :P
01:28:13 <Gregor> elliott: ... err ... not HOST kernel.
01:28:19 <Gregor> elliott: GUEST kernel.
01:28:31 <Gregor> elliott: The host box requires nothing special, you don't even need root to get UMLBox running.
01:28:32 <elliott> Gregor: Yeah, but it still involves building a kernel, which is strictly more work than installing Plash :P
01:28:43 <Gregor> elliott: Except installing plash involves traveling back in time :P
01:28:52 <elliott> Hmm, it doesn't work any more?
01:29:24 <itidus20> CakeProphet: ok it appears to only work for numbers which have an even number of zero's
01:29:27 <zzo38> Can you use ptrace to make up all these special kind of permission and override?
01:29:36 <CakeProphet> itidus20: -gasp-
01:29:38 <Gregor> elliott: No Debian later than lenny :(
01:29:38 <CakeProphet> good job
01:29:43 <CakeProphet> now I don't have to beat you.
01:29:52 <Gregor> elliott: When squeeze started getting near release, they made a change that broke plash.
01:29:54 <itidus20> i might not have understood that without your hint though
01:29:54 <CakeProphet> itidus20: are you familiar with regular expressions?
01:30:08 <Gregor> elliott: That's ... pretty much the whole reason I wanted to make UMLBox :P
01:30:26 <elliott> Gregor: What happened to cunionfs being enough anyway, and also how does the proxy work now
01:30:28 <itidus20> yup.. had to use em to block bots on another chat system
01:30:32 <elliott> `translatefrom sv poop
01:30:34 <HackEgo> env: translatefrom: No such file or directory
01:30:41 <elliott> `translatefromto sv en poop
01:30:42 <HackEgo> env: translatefromto: No such file or directory
01:30:47 <CakeProphet> itidus20: okay well you can describe the language accepted by an automata as a regular expression.
01:30:48 <elliott> Gregor: Your soul will be devoured through death and evil
01:30:52 <elliott> But thanks for making stderr work finally
01:30:52 <Gregor> elliott: At present, the proxy simply doesn't work.
01:30:54 <elliott> `ls bin
01:30:55 <HackEgo> ​` \ addquote \ allquotes \ botsnack \ calc \ commands \ creatures \ define \ delquote \ esolang \ etymology \ fuck \ google \ imdb \ json \ k \ karma \ marco \ minifind \ paste \ pastenquotes \ pastequotes \ penis \ ping \ prefixes \ quine \ quote \ quotes \ rec \ roll \ runasperl \ runfor \ rungcc \ say \ sayhi \ strfile
01:31:01 <elliott> Gregor: OK where the hell are my commands.
01:31:04 <CakeProphet> itidus20: do you think you could find the regex for our example?
01:31:11 <Gregor> elliott: Uhh ... that's a good question ...
01:31:25 <elliott> Gregor: THEY MIGHT NOT WORK BUT THEY STILL MATTER
01:31:32 <elliott> Those aren't actually my commands actually
01:31:34 <elliott> `wl this is though
01:31:35 <Gregor> `help
01:31:35 <HackEgo> env: wl: No such file or directory
01:31:36 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
01:32:00 <CakeProphet> itidus20: actually there can be more than one regular expression. they're not unique.
01:32:03 <elliott> `quote software patents
01:32:05 <HackEgo> env: quote: No such file or directory
01:32:07 <Gregor> `ls bin/translate
01:32:08 <HackEgo> bin/translate
01:32:11 <elliott> oerjan: PROBABLY FUCK YOU
01:32:13 <elliott> `run quote software patents
01:32:14 <HackEgo> sh: quote: command not found
01:32:16 <itidus20> to be honest i don't really know regex very well.. i had to kind of copy and paste and look up examples when i have used them
01:32:16 <elliott> `run bin/quote software patents
01:32:17 <HackEgo> sh: bin/quote: Permission denied
01:32:21 <elliott> Gregor: I diagnose a path error, also a permissions error
01:32:48 <CakeProphet> itidus20: okay well the answer is (1*01*0)*1*
01:33:27 <CakeProphet> * is the Kleene star. it means "zero or more repetitions of the previous character"
01:33:49 <itidus20> ahh
01:34:15 <CakeProphet> in fact, this is how regular expressions began, to describe the languages of automata.
01:34:34 <elliott> `translate IS GREGOR A DAMN???
01:34:35 <HackEgo> env: translate: No such file or directory
01:34:43 <elliott> ANSWER, YES
01:35:24 <monqy> is someone trying to teach itidus20 about finite automata, regular languages, regular expressions, etc.
01:35:28 <monqy> is that what's happening
01:35:38 <CakeProphet> itidus20: so in the pattern wrapped in parens, I put 1* between each zero, and make sure there's two zeros... then I put a * around that whole pattern to signify that there can be zero or more repetitions of it.
01:35:43 <Gregor> elliott: Yes yes, I'm fixing the path issue.
01:35:48 <itidus20> monqy: yeah
01:35:48 <CakeProphet> and then another 1* at the end, because it needs to be there.
01:36:08 <monqy> `yes
01:36:10 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
01:36:23 <monqy> this is good
01:36:23 <Gregor> `which translate
01:36:24 <HackEgo> ​/hackenv/bin/translate
01:36:31 <Gregor> `translate Hola
01:36:34 <HackEgo> ​/hackenv/bin/translatefromto: line 13: /hackenv/bin/json: Permission denied
01:36:54 <Lymee> `which yes
01:36:56 <HackEgo> ​/usr/bin/yes
01:37:08 <CakeProphet> itidus20: I put 1* between each zero because 1's can be anywhere in the string and are completely irrelevant.
01:37:08 <Lymee> `run cat /usr/bin/yes | paste
01:37:10 <HackEgo> mkdir: cannot create directory `/paste': Permission denied \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7862 \ /hackenv/bin/paste: line 14: /paste/paste.7862: No such file or directory
01:37:21 <zzo38> Oops you mixed up all of the permissions
01:38:02 <Gregor> Hold on, people, I'm still fixing shit :P
01:38:23 <itidus20> ok so to represent any binary number you could say (0*1*)*
01:38:41 -!- pikhq_ has joined.
01:38:42 <Lymee> Regex?
01:38:46 <elliott> Gregor: http://codu.org/projects/hackbot/fshg/index.cgi/rev/d0b6c6046174 Nice unknown command
01:39:11 <monqy> itidus20: is the empty string a binary number
01:39:16 <Lymee> itidus20, Why not [01]*
01:39:18 <itidus20> or i would prefer it as (0*1*)+
01:39:42 <monqy> itidus20: it can still be the empty string
01:39:47 <itidus20> hmmm
01:39:57 <CakeProphet> itidus20: so when you use a regular expression (excluding advanced features of Perl-based regex languages) you're actually describing a finite state automata that accepts the input strings that you're wanting to match.
01:40:00 <pikhq_> Gregor: Think you could link to UMLBox?
01:40:01 <itidus20> ok so it depends on the [ ]
01:40:13 <monqy> itidus20: ignore Lymee
01:40:26 <itidus20> so [01]+
01:40:33 <Gregor> pikhq_: http://bitbucket.org/GregorR/umlbox
01:40:53 <elliott> `quotes falso
01:40:55 <HackEgo> 480) < falso___> its also open sores
01:40:55 <CakeProphet> itidus20: in Perl, yes. But formal regular expressions don't really use the [] notation as far as I'm aware.
01:40:59 <elliott> COPRO YOU KEEP ADIG THE WRONG QUTOOES
01:41:03 <elliott> `delquote 480
01:41:05 <HackEgo> ​*poof*
01:41:11 <Lymee> `quotes open sores
01:41:12 <HackEgo> No output.
01:41:28 <elliott> `quote software patents
01:41:30 <itidus20> so how else might you say [01]+
01:41:31 <HackEgo> 554) <itidus20> software patents strike again \ 555) < itidus20> software patents strike again < ais523_> that's got to be at least three times, now < ais523_> are they out yet?
01:41:38 <monqy> (0|1)(0|1)*
01:41:38 <elliott> `delquote 555
01:41:40 <HackEgo> ​*poof*
01:41:40 <Lymee> `quotes hug
01:41:41 <CakeProphet> itidus20: also I don't think + is a formal operator either. but a+ is equivalent to aa*
01:41:42 <HackEgo> 314) <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE. \ 438) [after a long string of Lymia getting lambdabot to spit out huge, meaningless type signatures] <Lymia> I need to learn
01:41:49 <elliott> `delquote 554
01:41:51 <HackEgo> ​*poof*
01:41:56 <monqy> itidus20: < monqy> (0|1)(0|1)*
01:41:58 <itidus20> ahhhh
01:42:00 -!- pikhq has quit (Ping timeout: 264 seconds).
01:42:04 <Lymee> :[
01:42:07 <elliott> `addquote <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:42:09 <HackEgo> 583) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:42:29 <monqy> where are the doubles paces
01:42:29 <itidus20> thanks for thre repost monqy
01:42:30 <monqy> i do not
01:42:31 <monqy> see them
01:42:34 <pikhq_> Gregor: Neat.
01:42:54 <monqy> itidus20: i was afraid it got lost in the quote foolery
01:43:04 <CakeProphet> itidus20: the basic operations are concatenation, which is just represented by juxtaposing two expressions (aa). alternation, to describe a set union (a|b), and Kleene star, which I already explained.
01:43:08 <elliott> monqy: ooops
01:43:11 <elliott> `delquote 583
01:43:13 <HackEgo> ​*poof*
01:43:23 <elliott> ten, nine, eight, seven
01:43:25 <elliott> six, five
01:43:25 <elliott> `addquote <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:43:26 <HackEgo> 583) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:43:31 <elliott> Gregor: do we still have the stupid hg merge bug
01:43:36 <CakeProphet> itidus20: I believe all of the basic regex operators can be defined in terms of those three.
01:43:45 <CakeProphet> well, regular expression
01:43:51 <CakeProphet> regex implies something more complex.
01:44:00 <Gregor> elliott: It's not a bug, it's just a weird behavior :P
01:44:09 <itidus20> cool
01:44:17 <elliott> Gregor: It's weird, bad behaviour, aka a bug
01:44:33 <Gregor> elliott: By that logic, YOU'RE a bug OHHHH BURN
01:44:52 <Gregor> That's like megaburn coming from somebody named Gregor btw
01:45:01 <monqy> megaburn
01:45:07 <CakeProphet> itidus20: [] is just sugar for |. a? is (a|) a+ is aa*
01:45:32 <PatashuWarg> how about lookarounds? ;)
01:45:38 <CakeProphet> that's regex. :P
01:45:53 <monqy> is there a good symbol for the empty string? I've seen both epsilon and lambda, but neither of those are on this keyboard helpe
01:45:55 <elliott> Gregor: Yes I am an insect please do not mock me
01:46:00 <elliott> monqy: epsillonne
01:46:01 <itidus20> hmm
01:46:04 <elliott> is the bet bsete
01:46:12 <CakeProphet> I've never seen lambda for that.
01:46:14 <CakeProphet> always epsilon
01:46:16 <monqy> I prefer epsiolon, as well
01:46:17 <CakeProphet> or nothingness
01:46:22 <monqy> but I have seen lambda
01:46:24 <monqy> it was weird
01:46:35 <monqy> at least I think I've seen lambda
01:46:35 <elliott> `quote Qu'ran
01:46:37 <HackEgo> 462) < pikhq_> I'm afraid that Qu'ran is probably not that good-tasting. < coppro> pikhq_: edible paper < pikhq_> Still, I'd rather not eat a book of bullshit.
01:46:40 <elliott> `delquote 462
01:46:42 <HackEgo> ​*poof*
01:46:43 <CakeProphet> nothingness is a pretty good representation of the empty string
01:46:47 <itidus20> ok so (a|) means 0 or 1 a's
01:46:51 <elliott> i will eliminate all unholy formatting, also unfunny quotes
01:47:01 <CakeProphet> mathematicians should just leave nothing in place of the empty string, and hopefully everyone else will catch on.
01:47:06 <CakeProphet> itidus20: yes, this is also what a? means
01:47:33 <oerjan> < elliott> oerjan: PROBABLY FUCK YOU <-- wat?
01:47:45 <elliott> oerjan: oops i meant coppro
01:47:45 <elliott> also
01:47:46 <elliott> FIX
01:47:46 <elliott> YOUR
01:47:47 <elliott> QUOTING
01:47:49 <elliott> STYLE
01:47:50 <elliott> HERETIC
01:47:52 <elliott> SHITBAG
01:48:05 <elliott> SPACES IN FRONT OF NAMES IS HERESY DEATH
01:48:08 <elliott> GOD PUNISHES ALL WHO
01:48:35 <monqy> 18:50:05 < elliott> SPACES IN FRONT OF NAMES IS HERESY DEATH
01:48:35 <monqy> hlep
01:49:05 <Lymee> `quote bullshit
01:49:07 <HackEgo> No output.
01:49:08 <elliott> monqy: FIX
01:49:08 <elliott> YOUR
01:49:09 <elliott> SHIT
01:49:12 <Lymee> `quote <
01:49:13 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I
01:49:18 <Lymee> `quote "< "
01:49:20 <HackEgo> No output.
01:49:21 <Lymee> :[
01:49:22 <elliott> `quote <\
01:49:24 <HackEgo> egrep: Trailing backslash
01:49:29 <Lymee> `run quote "< "
01:49:31 <HackEgo> 110) <fax> oklopol geez what are you doing here <oklokok> ...i don't know :< <oklokok> i actually ate until now, although i guess i also did other things... \ 187) <cpressey> < ais523> then running repeatedly until you get the right sequence of random numbers < ais523> and just completely ignoring the input <-- some people
01:49:33 <elliott> Gregor: hey, hackego corrupts input
01:49:36 <elliott> Lymee: It's regex you idiot
01:49:44 <elliott> `quote <[:space:]
01:49:45 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:49:50 <Gregor> elliott: HackEgo ... doesn't take input ...
01:49:51 <elliott> `quote <\s
01:49:52 <HackEgo> 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 8) <SimonRC> TODO: sex life \ 66) <Sgeo> What else is there to vim besides editing commands? \ 90) <Sgeo> I'd imagine that it already has, and no one noticed \ 92) <Sgeo|web> Where's the link to the log? <lament> THERE'S NO LOG. YOUR REQUEST IS
01:49:59 <elliott> Gregor: It corrupts the input line by stripping trailing spaces
01:50:05 <elliott> And also, wtf??
01:50:06 <Gregor> Oh
01:50:07 <elliott> `quote \<\s
01:50:09 <HackEgo> 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 5)
01:50:12 <elliott> Help
01:50:15 <elliott> Why doesn't it work ;_;
01:50:20 <elliott> `quote <[:space:]
01:50:22 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:50:25 <elliott> `quote <[:space:]+
01:50:27 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:50:29 <Lymee> `run quote "< "
01:50:31 <HackEgo> 110) <fax> oklopol geez what are you doing here <oklokok> ...i don't know :< <oklokok> i actually ate until now, although i guess i also did other things... \ 187) <cpressey> < ais523> then running repeatedly until you get the right sequence of random numbers < ais523> and just completely ignoring the input <-- some people
01:50:34 <Lymee> :3
01:50:34 <elliott> Lymee: oh that'll work yes
01:50:39 <elliott> `run pastequotes '< '
01:50:41 <Lymee> I did it a few lines ago...
01:50:42 <HackEgo> mkdir: cannot create directory `/paste': Permission denied \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32240 \ /hackenv/bin/paste: line 14: /paste/paste.32240: No such file or directory
01:50:45 <elliott> Gregor: lol
01:50:49 <elliott> Lymee: without `run
01:51:01 <Lymee> <elliott> `quote <\
01:51:01 <Lymee> <HackEgo> egrep: Trailing backslash
01:51:01 <Lymee> <Lymee> `run quote "< "
01:51:02 <Gregor> elliott: I keep forgetting to fix that ...
01:51:05 <Lymee> nyan
01:51:14 -!- CakeProphet has quit (Ping timeout: 246 seconds).
01:51:31 <Gregor> `run echo pastypaste | paste
01:51:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6258
01:51:34 <elliott> 12:42:28: <fizzie> Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci.
01:51:34 <elliott> YES IT IS YOU PEOPLE IN THE LOG ARE STUPID
01:51:42 <elliott> Lymee: fair enough, stop saying nyan
01:51:49 <elliott> `run pastequotes '< '
01:51:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14435
01:52:20 <Lymee> elliott, nyan nyan
01:52:22 <elliott> how to fix that j-invariant quote...
01:52:31 <elliott> the " [...] " thing
01:53:02 <Lymee> 305) <Deewiant> !bfjoust sm3 < <EgoBot> Score for Deewiant_sm3: 43.4
01:53:03 <Lymee> .....
01:53:04 <Lymee> wat
01:53:09 <elliott> bfjoust
01:53:14 <monqy> bfjoust
01:53:25 <Lymee> !bfjoust suicide <<<
01:53:33 <EgoBot> ​Score for Lymee_suicide: 0.0
01:53:36 <Lymee> !bfjoust suicide <
01:53:38 <EgoBot> ​Score for Lymee_suicide: 0.0
01:53:43 <Lymee> Was there a bug?
01:54:00 <PatashuWarg> that's not a bug
01:54:11 <elliott> I forget why it did so well
01:54:16 <elliott> Maybe the random factors still existed then
01:54:26 <elliott> I'm not sure, really
01:57:02 -!- Nisstyre has joined.
01:57:10 <elliott> castSTUArray :: STUArray s ix a -> ST s (STUArray s ix b)
01:57:12 <elliott> oerjan: yikes
01:57:44 <monqy> is that like doing unsafecoerce on everything in it
01:57:55 -!- CakeProphet has joined.
01:57:55 -!- CakeProphet has quit (Changing host).
01:57:55 -!- CakeProphet has joined.
01:58:03 <elliott> at least it only works on certain types... apparenrtly; I don't see that enforced anywhere
01:58:10 <Lymee> :t map unsafeCoerce
01:58:12 <lambdabot> forall a b. [a] -> [b]
01:58:30 <Lymee> elliott, why isn't "unsafe" in the function name?
01:58:44 -!- Sgeo has joined.
01:58:49 <elliott> Lymee: well that's what _I'm_ wondering
01:59:07 <elliott> you can use it to convert floats and doubles to words and back
01:59:15 -!- Sgeo has quit (Client Quit).
01:59:21 <elliott> and I think this is in an unsafeCoerce manner
01:59:27 <elliott> but it's only for certain element types???
01:59:32 <elliott> so maybe the interface is actually ok
01:59:39 <elliott> (and the implementation ok for ieee cpus)
02:00:32 <Lymee> @t map (flip (,) (unsafeCoerce y) . unsafeCoerce)
02:00:32 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
02:00:38 <Lymee> :t map (flip (,) (unsafeCoerce y) . unsafeCoerce)
02:00:39 <lambdabot> forall a a1 a2. [a2] -> [(a, a1)]
02:00:41 <Lymee> </silly>
02:02:05 -!- CakeProphet has quit (Ping timeout: 246 seconds).
02:02:15 <monqy> :t y
02:02:17 <lambdabot> Expr
02:02:41 <Lymee> @pl \x -> (unsafeCoerce x, unsafeCoerce x)
02:02:41 <lambdabot> liftM2 (,) unsafeCoerce unsafeCoerce
02:02:50 <Lymee> :t map (liftM2 (,) unsafeCoerce unsafeCoerce)
02:02:51 <lambdabot> forall a1 a2 a. [a] -> [(a1, a2)]
02:02:57 <Lymee> Wonder what the first one would have done
02:05:07 <Lymee> :t \あ -> あ
02:05:09 <lambdabot> parse error (possibly incorrect indentation)
02:05:51 <Lymee> :t \β -> β
02:05:52 <lambdabot> parse error (possibly incorrect indentation)
02:05:54 <Lymee> ;-;
02:06:10 <oerjan> huh
02:06:21 <oerjan> :t \ø -> ø
02:06:22 <lambdabot> parse error (possibly incorrect indentation)
02:06:28 <PatashuWarg> :t \a -> a
02:06:29 <lambdabot> forall t. t -> t
02:06:33 <monqy> :t \ (ø) -> (ø)
02:06:34 <lambdabot> parse error (possibly incorrect indentation)
02:06:35 <PatashuWarg> why u no like unicode
02:06:50 <monqy> lambdabot..........
02:06:55 <oerjan> !haskell (\ø -> ø) "test"
02:07:13 <oerjan> what not EgoBot either
02:07:37 <Lymee> !haskell putStrLn $ (\あ -> あ) "test"
02:08:00 <oerjan> !haskell "ø"
02:08:03 <EgoBot> ​"\195\184"
02:08:04 <Lymee> !haskell putStrLn $ (\a -> a) "test"
02:08:06 <EgoBot> test
02:08:12 <oerjan> > "ø"
02:08:13 <lambdabot> "\248"
02:08:14 -!- CakeProphet has joined.
02:08:26 -!- CakeProphet has quit (Changing host).
02:08:26 -!- CakeProphet has joined.
02:09:11 <oerjan> something isn't set up quite right
02:09:26 <elliott> <PatashuWarg> why u no like unicode
02:09:26 <oerjan> > text "ø"
02:09:28 <lambdabot> mueval-core: <stdout>: hPutChar: invalid argument (Invalid or incomplete mu...
02:09:28 <elliott> i will end your life
02:09:34 <oerjan> sheesh
02:09:56 <oerjan> > show $ text "ø"
02:09:57 <lambdabot> "\248"
02:10:24 <oerjan> Y U NO LIKE MEMES
02:10:31 <elliott> oerjan: [FATAL STAB]
02:10:31 <elliott> DIE
02:10:31 <elliott> DIE
02:10:32 <elliott> DIE
02:10:32 <elliott> DEID
02:10:33 <elliott> EDIEFSJOGIFOJG
02:10:35 <elliott> \'\;L[;]'
02:10:35 <elliott> \
02:10:44 <elliott> i just picked my laptop up and slammed it down really hard because of you
02:11:07 <oerjan> if that's literally true i suggest you seek help.
02:11:29 <Lymee> > \バカなlambdabot -> undefined
02:11:30 <lambdabot> Overlapping instances for GHC.Show.Show (t -> a)
02:11:31 <lambdabot> arising from a use of `...
02:11:32 <oerjan> wait, now i sound like my father.
02:11:38 <oerjan> scratch that.
02:11:40 <PatashuWarg> elliott I have a video for you
02:11:51 <Lymee> > \バカな -> undefined
02:11:53 <lambdabot> Overlapping instances for GHC.Show.Show (t -> a)
02:11:53 <lambdabot> arising from a use of `...
02:12:00 <Lymee> > \バカな -> バカな
02:12:00 <PatashuWarg> http://www.youtube.com/watch?v=DIn4L7hUmUI
02:12:01 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:02 <lambdabot> arising from a use of `...
02:12:04 <Lymee> he?
02:12:14 <Lymee> > \ああ -> ああ
02:12:15 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:16 <lambdabot> arising from a use of `...
02:12:18 <Lymee> > \あ -> あ
02:12:19 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:20 <lambdabot> arising from a use of `...
02:12:22 <Lymee> ...wat
02:12:31 <Lymee> :t \あ -> あ
02:12:32 <oerjan> Lymee: it cannot print a function
02:12:33 <lambdabot> parse error (possibly incorrect indentation)
02:12:33 <elliott> you havent applied ti to an argument
02:12:40 <Lymee> Um.
02:12:45 <Lymee> Why does > parse it correctly but no :t
02:12:46 <Lymee> not*
02:12:55 <elliott> because different setup
02:13:00 <oerjan> it tries, then fails horribly because someone imported two different ways of doing it
02:13:09 <elliott> oerjan: (showing a function not :t)
02:13:11 <elliott> (vs >)
02:13:13 <elliott> (ujust)
02:13:16 <elliott> (carlyfiing)
02:13:26 <quintopia> can anyone explain this line from df: /dev/sdb1 5905972 5837136 0 100% /usr
02:13:29 <quintopia> i'm pretty okay at math, and when i add 5837136 and zero, i don't get 5905972
02:13:50 <oerjan> quintopia: it's where the gnomes hide
02:13:58 <elliott> quintopia: reserved blocks for root
02:13:59 <elliott> probably
02:14:35 <elliott> quintopia: you may want to look at `man tune2fs`.
02:14:39 <elliott> or buy a new disk
02:14:41 <oerjan> > (\ø -> ø+ø) 2
02:14:42 <lambdabot> 4
02:14:49 <elliott> oerjan: ø_ø
02:15:15 <oerjan> > (\ø_ø -> ø_ø^ø_ø) 4
02:15:16 <lambdabot> 256
02:16:00 <oerjan> @list type
02:16:00 <lambdabot> type provides: type kind
02:16:20 <oerjan> @list run
02:16:20 <lambdabot> eval provides: run let undefine
02:16:24 <oerjan> different plugins
02:16:31 <Lymee> @undefine
02:16:44 <oerjan> oh no, you destroyed everything!
02:16:55 <Lymee> @let map f a -> undefined
02:16:56 <lambdabot> TemplateHaskell is not enabled
02:17:05 <Lymee> s/->/=/
02:17:09 <Lymee> Wouldn't have worked anyways
02:17:22 <oerjan> @let map f a = undefined
02:17:23 <lambdabot> Defined.
02:17:30 <oerjan> > map 1 2
02:17:31 <lambdabot> Ambiguous occurrence `map'
02:17:31 <lambdabot> It could refer to either `L.map', defined at <l...
02:17:35 <oerjan> > L.map 1 2
02:17:36 <lambdabot> *Exception: Prelude.undefined
02:17:51 <elliott> oerjan: rude to the people in hash-haskell
02:17:51 <elliott> :P
02:17:53 <elliott> omg wait
02:17:55 <elliott> I have the perfect prank
02:18:07 <shachaf> "hash"-haskell?
02:18:12 <oerjan> elliott: you cannot escape the ambiguous message
02:18:16 <elliott> shachaf: Shut up my number keys are broken.
02:18:18 <shachaf> oerjan: Sure you can.
02:18:24 <Lymee> @define undefined = error "ur a poopy face"
02:18:24 <elliott> oerjan: hmmmmmmmmmmmmmm
02:18:30 <elliott> shachaf: How?
02:18:36 <shachaf> Well, OK, you can't.
02:18:38 <oerjan> shachaf: elliott has a long-standing keyboard problem
02:18:56 <shachaf> > mаp 1 2
02:18:58 <Lymee> Could we define a malicious typeclass?
02:18:58 <lambdabot> *Exception: Evil
02:19:08 <Lymee> shachaf, how was that done? =p
02:19:15 <shachaf> You can't @let type classes or data types in lambdabot, sadly. :-(
02:19:18 <oerjan> of course when he keeps slamming the laptop down hard, it's no wonder.
02:19:32 * shachaf never thought of pronouncing it as "hash". Weird.
02:19:45 <elliott> what do you say
02:19:51 <monqy> octothorpe-haskell
02:20:02 <elliott> @let Data.List.map f a = text "I'm tired of evaluating Haskell code for you."
02:20:02 <lambdabot> Parse error in pattern: Data.List.map
02:20:04 <elliott> :(
02:20:05 <elliott> cries
02:20:08 <elliott> (softly)
02:20:12 <shachaf> Er, actually, now that I think of it, I say "sulamit haskell".
02:20:21 <monqy> soflty slams laptop on ground, stomps
02:20:22 <oerjan> shachaf: wat
02:20:39 <shachaf> I guess "hash" kind of makes sense. Though it has too many meanings.
02:20:51 <Lymee> @let a (+) b = a
02:20:52 <lambdabot> <local>:2:10:
02:20:53 <lambdabot> Ambiguous occurrence `a'
02:20:53 <lambdabot> It could refer to either `L...
02:21:02 <Lymee> @let a + b = a
02:21:04 <lambdabot> Defined.
02:21:06 <elliott> shachaf will take his secrets to the grave.
02:21:08 <Lymee> > 1 + 1
02:21:10 <lambdabot> Ambiguous occurrence `+'
02:21:10 <lambdabot> It could refer to either `L.+', defined at <local...
02:21:13 <elliott> shachaf: I say octothorpe when I'm not being informal
02:21:18 <shachaf> elliott: Which secrets?
02:21:27 <Lymee> > map (\x -> x) [1,2,3,4]
02:21:29 <lambdabot> [1,2,3,4]
02:21:31 <Lymee> > map 1 [1,2,3,4]
02:21:32 <lambdabot> [1,1,1,1]
02:21:36 <Lymee> > map 1 3
02:21:38 <lambdabot> No instance for (GHC.Num.Num [a])
02:21:38 <lambdabot> arising from the literal `3' at <inter...
02:21:39 <elliott> shachaf: How to do a ?let like that
02:21:39 <shachaf> > mаp (\x -> x) -> [1,2,3,4]
02:21:40 <lambdabot> <no location info>: parse error on input `->'
02:21:47 <shachaf> elliott: Like what?
02:21:51 <shachaf> > mаp (\x -> x) [1,2,3,4]
02:21:53 <lambdabot> *Exception: Evil
02:21:54 <elliott> shachaf: Bypassing the ambiguity
02:22:00 <Lymee> @let map a b = error $ "Evil"
02:22:02 <lambdabot> Defined.
02:22:03 <Lymee> > map 1 3
02:22:04 <lambdabot> Ambiguous occurrence `map'
02:22:04 <lambdabot> It could refer to either `L.map', defined at <l...
02:22:05 <elliott> <shachaf> Well, OK, you can't.
02:22:05 <elliott> oh
02:22:17 <shachaf> elliott: Like, whoa, man, you're, like, the same elliott as the one in #haskell.
02:22:20 <Lymee> <shachaf> > mаp 1 2
02:22:20 <Lymee> <lambdabot> *Exception: Evil
02:22:22 <Lymee> How did you do that?
02:22:23 <Lymee> =p
02:22:24 <shachaf> Same number of 't's.
02:22:26 <elliott> shachaf: Whoaaaaaaaaaaa.
02:22:31 <elliott> shachaf: I'm not that elliottt guy though.
02:22:32 <shachaf> Lymee: By typing it in.
02:22:34 <elliott> Also, I'm not conal.
02:22:42 <Lymee> How did you get it to do the *Exception: Evil?
02:22:43 <Lymee> =p
02:22:45 <shachaf> Maybe you're conal elliottt?
02:22:45 <elliott> I'm also not elliottcable, at least until he actually gives me money for this nick like he said he would.
02:23:02 <elliott> I don't think he liked my offer of five hundred dollars.
02:23:03 * pikhq_ is tempted to use umlbox as a sandbox for packaging
02:23:06 <Lymee> @define module Data.List; map a b = error $ "Evil"
02:23:09 <shachaf> elliott: Oh, he came to #haskell once and saw elliottt and was very happy.
02:23:12 <Lymee> @let module Data.List; map a b = error $ "Evil"
02:23:13 <lambdabot> Parse error: ;
02:23:14 <elliott> pikhq_: Seems overkill
02:23:17 <elliott> shachaf: Who, elliottcable?
02:23:19 <Lymee> @let module Data.List
02:23:20 <lambdabot> Parse error: EOF
02:23:23 <shachaf> elliott: I think so.
02:23:25 <elliott> I think he has "a thing" about people using His Name.
02:23:49 <Lymee> @let module Data.List where map a b = error $ "Evil"
02:23:49 <lambdabot> Invalid declaration
02:23:55 <oerjan> > mаp (\x -> x) [1,2,3,4]
02:23:56 <lambdabot> Not in scope: `m
02:24:07 <shachaf> > (еlliott, elliott)
02:24:08 <oerjan> > mаp (\x -> x) [1,2,3,4]
02:24:08 <pikhq_> elliott: I've previously been spawning chroots.
02:24:09 <lambdabot> Not in scope: `m
02:24:09 <lambdabot> (True,False)
02:24:12 <Lymee> @let module Data.List (map) where map a b = error $ "Evil"
02:24:13 <lambdabot> Invalid declaration
02:24:15 <oerjan> :P
02:24:33 <Lymee> @let module Data.List (map) where; map a b = error $ "Evil"
02:24:34 <lambdabot> Invalid declaration
02:24:47 <oerjan> shachaf: i think i've got a hunch there :P
02:25:00 <Lymee> oerjan, whatdidyoudo
02:25:01 <shachaf> oerjan spoils everything.
02:25:13 <elliott> pikhq_: You're writing a package manager?
02:25:17 <elliott> It sucks mine is SO MUCH BETTER.
02:25:19 <oerjan> Lymee: i just cut and pasted shachaf's line. i think it has invisible chars
02:25:24 <monqy> elliott has a package manager too?
02:25:33 <elliott> monqy: No but I do now.
02:25:35 <shachaf> oerjan: NOpe.
02:25:35 <pikhq_> elliott: I've been tinkering off and on for about a month now.
02:25:45 <oerjan> or possibly chars that look normal but aren't
02:25:53 <elliott> aha, cyrillic a, perfect
02:25:56 <oerjan> > "m"
02:25:56 <lambdabot> "m"
02:26:00 <elliott> ?undefine
02:26:07 <Lymee> @let a / b = a * b
02:26:08 <lambdabot> Defined.
02:26:09 <elliott> ?let mаp f x = text "I'm tired of evaluating Haskell code for you."
02:26:10 <Lymee> > a / b
02:26:10 <lambdabot> Defined.
02:26:11 <lambdabot> Ambiguous occurrence `/'
02:26:11 <lambdabot> It could refer to either `L./', defined at <local...
02:26:16 <elliott> > mаp succ [0,9]
02:26:17 <lambdabot> Ambiguous type variable `a' in the constraint:
02:26:17 <lambdabot> `GHC.Enum.Enum a'
02:26:17 <lambdabot> ar...
02:26:22 <elliott> > mаp id [0..]
02:26:24 <lambdabot> I'm tired of evaluating Haskell code for you.
02:26:29 <pikhq_> I, personally, demand that the packaging be exceptionally declarative.
02:26:33 <Lymee> @undefine map
02:26:39 <elliott> pikhq_: do you hvae issues with Nix?
02:26:44 <elliott> Lymee: OK wait stop
02:26:45 <elliott> I need to prank
02:26:46 <elliott> hash haskell
02:26:47 <elliott> with this
02:26:49 <elliott> somehow
02:26:49 <pikhq_> Insufficiently declarative.
02:26:56 <elliott> pikhq_: Umm, Nix is purely functional
02:27:00 <shachaf> Lymee: You really abuse it, don't you. @define, @undefine, @undefine foo, and so on all reset the entire L.hs file.
02:27:14 <elliott> shachaf: Not that there's much other choice
02:27:15 <Lymee> >map id [0..]
02:27:18 <Lymee> > map id [0..]
02:27:19 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
02:27:21 <pikhq_> elliott: It also has boilerplate up the wazoo! I disapprove of boilerplate.
02:27:23 <Lymee> > mаp id [0..]
02:27:25 <lambdabot> Not in scope: `m
02:27:33 <Lymee> I'm not sure what the invisible character involved is, but...
02:27:35 <Lymee> >:3
02:27:41 <monqy> :t (а)
02:27:42 <lambdabot> parse error (possibly incorrect indentation)
02:27:42 <shachaf> There is no invisible character!
02:27:43 <monqy> oh right
02:27:51 <monqy> :'(
02:28:05 <monqy> > (а)
02:28:06 <lambdabot> Not in scope: `
02:28:09 <monqy> nooo
02:28:10 <elliott> pikhq_: Howso
02:28:14 <pikhq_> GNU make: name=make;version=3.82;gnu_src
02:28:14 <elliott> pikhq_: It defaults to a configure-make-make install build
02:28:19 <pikhq_> There. Complete package!
02:28:24 <Lymee> Long UTF-8 sequences?
02:28:26 <elliott> OK, so trivial syntactical complaints
02:28:28 <pikhq_> ... Sans dependencies. :(
02:28:46 <elliott> Man, your package might be whole BYTES smaller than Nix's!!!!!
02:29:02 <elliott> pikhq_: You could automate dependency-handling. Maybe.
02:29:28 <elliott> Obviously autoconf packages reveal all their _unmet_ dependencies, and if you start it in a clean-ish chroot with just libc and the like, you can determine the _installed_ dependencies with ldd or similar.
02:29:48 <elliott> They also tend to reveal their minimum required versions if they're autoconf
02:29:54 <PatashuWarg> when are we going to get packages that download their own dependencies?
02:30:57 <elliott> PatashuWarg: @
02:31:17 <oerjan> > "а"
02:31:18 <lambdabot> "\1072"
02:31:42 <oerjan> > "> mаp id [0..]"
02:31:43 <lambdabot> "> m\1072p id [0..]"
02:32:29 <CakeProphet> !perl print "test" =~ /(a|)/
02:32:41 <CakeProphet> !perl print "" =~ /(a|)/
02:32:46 <elliott> Is annotatable a word? Or is it annotate.
02:32:58 <CakeProphet> !perl print "a" =~ /(a|)/
02:32:58 <EgoBot> a
02:33:08 <CakeProphet> elliott: it's a word.
02:33:22 <CakeProphet> you put -able after pretty much any verb.
02:33:39 <elliott> Erm
02:33:41 <elliott> Or is it annotable
02:33:43 <elliott> Is what i meant to say
02:33:43 <Lymee> @let mаp x y = Data.List.map (/x -> if x != 0 than x else undefined) y
02:33:44 <lambdabot> Parse error: ->
02:33:49 <CakeProphet> http://www.thefreedictionary.com/annotatable if you need more reassurance
02:33:49 <elliott> oerjan: ANNOTATABLE OR ANNOTABLE
02:34:00 <elliott> CakeProphet: thefreedictionary.com is not what I would call "assuarnce"
02:34:04 <pikhq_> Kay, fine, Linux: http://sprunge.us/BfDV
02:34:07 <CakeProphet> well you're not annoting
02:34:07 <elliott> Considering it's also a redirection, and the word doesn't appear anywhere else on the page
02:34:12 <CakeProphet> you're annotating. :P
02:34:20 <elliott> pikhq_: Hey you should be a lot happier that I told you how to automate dependencies.
02:34:25 <Lymee> @let mаp f l = Data.List.map (/x -> if (x != 0) than (f x) else undefined) l
02:34:26 <lambdabot> Parse error: ->
02:34:31 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x) else undefined) l
02:34:32 <lambdabot> Parse error: else
02:34:33 <elliott> pikhq_: Also Linux has a ton of build-time dependencies you omitted.
02:34:48 <pikhq_> Yes, yes, I know.
02:34:52 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x); else undefined) l
02:34:53 <lambdabot> Parse error: ;
02:34:54 <CakeProphet> elliott: right because it's a word derived from annotate via -able
02:34:56 <Lymee> :(
02:35:05 <CakeProphet> elliott: it's just like... a rule.. of English, you can always use.
02:35:05 <oerjan> you cannot a me, i'm not able
02:35:09 <pikhq_> The full list of dependencies is, BTW, busybox, binutils, gcc, make.
02:35:31 <elliott> pikhq_: Linux depends on a set of basic commands, not busybox
02:35:43 <elliott> And I suspect your make is actually gmake
02:35:46 <oerjan> Lymee: speling
02:35:56 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) then (f x) else undefined) l
02:35:57 <lambdabot> <local>:2:0:
02:35:57 <lambdabot> Multiple declarations of `L.m<stderr>: hPutChar: invalid a...
02:36:05 <Lymee> @undefine map
02:36:08 <pikhq_> Well, yes, what other make would I use? The only other one for Linux systems is, frankly, ridiculous.
02:36:15 <Lymee> @undefine mаp
02:36:41 <pikhq_> Heirloom make depends on a friggin' C++ compiler.
02:36:49 <oerjan> Lymee: @undefine takes no arguments
02:37:00 <Lymee> Oh.
02:37:01 <Lymee> @undefine
02:37:07 <pikhq_> And why the hell would I use BSD make?
02:37:07 <elliott> pikhq_: pmake, bmake, makepp (mostly backwards-compatible with GNU make, so almost certainly supports the portable subset of make), probably OMake
02:37:17 <elliott> pikhq_: It doesn't matter "why", what matters is that your package name is inaccurate
02:37:28 <elliott> Linux does depend on a GNU make though, so the dependency is reasonable
02:37:32 <elliott> But the busybox one definitely isn't
02:37:33 -!- NihilistDandy has quit (Remote host closed the connection).
02:37:46 <Lymee> @let mаp f l = Data.List.map (\x -> if ((len $ take 100 l)==100) then (f x) else undefined) l
02:37:47 <lambdabot> <local>:1:10: Not in scope: `Data.List.map'
02:37:47 <lambdabot>
02:37:47 <lambdabot> <local>:1:36: Not in scope: `...
02:37:50 <Lymee> :[
02:38:01 <pikhq_> I disbelieve in GNU coreutils.
02:38:08 <oerjan> presumably nobody has figured out how to keep track of each @let definition _and_ check if the result is still coherent if you delete one
02:38:10 <CakeProphet> elliott: your dependency on reasonable dependencies is unreasonable.
02:38:26 <elliott> pikhq_: so busybox is the only option then, OK
02:38:37 <pikhq_> At present, at least.
02:38:39 <elliott> pikhq_: your personal choices in software do not change the fact that those are not Linux's dependencies
02:38:42 <CakeProphet> oerjan: I bet I could do it in Perl. :D
02:38:50 <oerjan> > Data.List.map
02:38:51 <lambdabot> Not in scope: `Data.List.map'
02:38:57 <oerjan> > Prelude.map
02:38:58 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b])
02:38:58 <lambdabot> arising...
02:39:04 <CakeProphet> oerjan: probably not very efficiently though.
02:39:07 <oerjan> Lymee: ^
02:39:12 -!- augur has quit (Read error: Connection reset by peer).
02:39:18 <pikhq_> elliott: I also lied a bit about Linux's dependencies: you have to hack out its dependencies on GNU sed and Perl.
02:39:42 <CakeProphet> basically it would be a recursive delete. delete the definition and then call the delete operation on any definitions that contain the name of the original.
02:39:47 <Lymee> @let mаp f l = Preludemap (\x -> if boom then (f x) else undefined) l where boom = (len $ take 100 l)==100
02:39:48 <lambdabot> <local>:1:10: Not in scope: data constructor `Preludemap'
02:39:48 <lambdabot>
02:39:48 <lambdabot> <local>:1:79: N...
02:39:50 <CakeProphet> repeat until the recursion terminates.
02:39:53 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else undefined) l where boom = (len $ take 100 l)==100
02:39:54 <lambdabot> <local>:1:80: Not in scope: `len'
02:39:54 <elliott> pikhq_: Also, you're using shell scripts as your build scripts there it looks like, so enjoy your being much less declarative and functional than Nix I guess? :-P
02:40:00 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else undefined) l where boom = (length $ take 100 l)==100
02:40:01 <lambdabot> Defined.
02:40:07 <Lymee> > map id [1..]
02:40:08 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:12 <Lymee> > mаp id [1..]
02:40:14 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:24 <Lymee> > mаp id [1..]
02:40:25 <Gregor> So apparently slirp is a security nightmare :P
02:40:27 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:27 <Lymee> :[
02:40:36 <elliott> Gregor: slirp? Isn't that -- yes it is.
02:40:39 <CakeProphet> Lymee: what are you doing...
02:40:46 <elliott> I've used that
02:40:50 <elliott> I forget what for
02:40:50 <Gregor> It provides a "configuration interface" via telnet which, amongst other things, allows you to run arbitrary commands >_>
02:40:51 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (len $ take 100 l)>50
02:40:52 <lambdabot> <local>:2:103: Not in scope: `len'
02:40:56 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)>50
02:40:56 <elliott> Gregor: :D
02:40:57 <lambdabot> <local>:1:0:
02:40:57 <lambdabot> Warning: Pattern match(es) are overlapped
02:40:57 <lambdabot> In...
02:41:07 <elliott> Gregor: Dude, seriously, can't you just write a UML driver?
02:41:08 <pikhq_> elliott: Would you be happier if I just tried to use Nix?
02:41:09 <Lymee> >@undefine
02:41:11 <Lymee> @undefine
02:41:12 <elliott> Surely those have access to the host system
02:41:13 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)>50
02:41:15 <lambdabot> Defined.
02:41:19 <Lymee> > map id [1..]
02:41:20 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:23 <Lymee> > mаp id [1..]
02:41:25 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:28 <Lymee> :<
02:41:40 <Lymee> @undefine
02:41:41 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)<50
02:41:42 <lambdabot> Defined.
02:41:44 <Lymee> > map id [1..]
02:41:46 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:46 <CakeProphet> you can't use where for that.
02:41:46 <Lymee> > mаp id [1..]
02:41:48 <lambdabot> [*Exception: Too many items, sorry.
02:41:54 <elliott> pikhq_: That'd probably put you out of a distro, considering that Nixpkgs is a source of thousands of packages for Nix that work on Linux, OS X, FreeBSD, OpenBSD, and Cygwin
02:41:55 <Gregor> elliott: Well, I was going to get networking and X11 in one go, but it looks like the only networking interface that doesn't require root is slirp ...
02:42:11 <elliott> pikhq_: But if you're gonna state declarativeness as a main goal, then you'd better be better than Nix :-P
02:42:19 <CakeProphet> Lymee: congratulations you did something horrible.
02:42:32 <Lymee> にゃぁ
02:42:53 <elliott> Gregor: You'll make your life so much easier if you just write some sort of generic child<->host driver :P
02:42:56 <elliott> And do everything over that
02:43:17 <pikhq_> NixOS does not use musl, and I could not in good conscience make a distro using glibc.
02:43:17 <Gregor> elliott: It would have to be magically generic to support both arbitrary networking and UNIX domain sockets ...
02:43:23 <Gregor> Like, impossible-generic.
02:43:32 <CakeProphet> name said driver Chauffeur
02:43:35 -!- augur has joined.
02:43:36 <CakeProphet> for many lulz.
02:43:37 <elliott> Gregor: You don't
02:43:51 <elliott> Gregor: Just run the HTTP proxy server _inside the guest_
02:43:56 <elliott> Gregor: And make it send requests over that generic mechanism
02:44:17 <Gregor> elliott: Oh, I see your trick.
02:44:29 <CakeProphet> also it's very important that it's called chauffeur
02:44:31 <Gregor> elliott: But anyway, 'til this point I haven't touched the kernel.
02:44:43 <elliott> Gregor: Yeah, but your life is going to get exponentially harder the more you try to do :P
02:44:53 <elliott> You're using slirp, man :P
02:45:06 <Gregor> slirp is pretty nifty, when security isn't a concern ...
02:45:23 <elliott> It was last updated about five hundred years ago, and its man page is unbearable :P
02:45:31 <elliott> (OK, so Debian have made changes)
02:45:35 <elliott> --Kelly "STrRedWolf" Price
02:45:35 <elliott> Slirp Maintainer
02:45:38 <elliott> OH MAN SO PROFESSIONAL
02:45:48 <CakeProphet> Dude chauffeurs get paid a lot of money.
02:45:52 <CakeProphet> to just like... drive people places.
02:45:59 <elliott> <pikhq_> NixOS does not use musl, and I could not in good conscience make a distro using glibc.
02:46:12 <elliott> pikhq_: you could probably build your own NixOS using musl
02:46:16 <elliott> if you make a musl package
02:46:19 <Lymee> @let 1 = 2
02:46:20 <lambdabot> Defined.
02:46:21 * oerjan suddenly gets an urge to rename Taneb's latest language to Istanbul
02:46:23 <Lymee> > 1 + 1
02:46:25 <lambdabot> 2
02:46:26 <Lymee> :(
02:46:36 <CakeProphet> Lymee is banned from using let.
02:46:37 <Lymee> > 1
02:46:38 <lambdabot> 1
02:46:40 <elliott> It depends rather strongly on upstart though because the packages in Nixpkgs do (or you could just write your own script for every package like you'd have to anyway)
02:46:41 <Lymee> :[
02:46:42 <CakeProphet> @undefined
02:46:45 <CakeProphet> @undefine
02:47:03 <quintopia> tell me this isn't hilarious: http://images2.wikia.nocookie.net/__cb20080606170116/inciclopedia/images/2/20/DDR_DDR.jpg
02:47:27 <pikhq_> elliott: I'd also want to use runsv instead of upstart...
02:47:30 <elliott> quintopia: it isn't
02:47:30 <oerjan> Lymee: 1 isn't an identifier, the 1 in 1 = 2 is interpreted as a pattern match
02:47:33 <elliott> pikhq_: So write your own scripts
02:47:37 <pikhq_> Yup.
02:47:37 <quintopia> elliott: thanks
02:47:45 <elliott> pikhq_: At least you have something to do then :P
02:47:53 <Lymee> > (1) = 2
02:47:55 <lambdabot> <no location info>: parse error on input `='
02:47:57 <elliott> FWIW, I'm not the biggest fan of Nix's package description language, but ... I like it more than yours :P
02:48:10 <CakeProphet> Lymee: using parentheses does not change this fact.
02:48:14 <Lymee> :(
02:48:39 <pikhq_> elliott: I could probably think of a better one.
02:48:55 <elliott> pikhq_: Yep; then you get to implement it
02:49:07 <elliott> Actually Nix is implemented in C++ which sucks, if I wrote one it'd be in Haskell
02:49:20 <oerjan> Lymee: there is no way to redefine 1 like that
02:49:24 <pikhq_> Oh, then Nix would be unusable with a musl system, anyways.
02:49:35 <elliott> pikhq_: Well that's a temporary problem... a big one, though :P
02:49:37 <elliott> You can't even use WebKit
02:49:45 <elliott> > let 1 = 2 in "shut up Lymia"
02:49:45 <lambdabot> "shut up Lymia"
02:49:56 <pikhq_> Yeah, it's not like there's never going to *be* C++ support.
02:50:01 <pikhq_> It's just a problem right now.
02:50:08 <Lymee> > let 2 = 1 in "nou"
02:50:10 <lambdabot> "nou"
02:50:21 <elliott> pikhq_: Maybe I'll write a purely-functional service system in Haskell :P
02:50:36 <elliott> That sounds really neat I wonder how I'd do that???
02:50:48 <Lymee> > text "<CTCP>ACTION hugs elliott<CTCP>"
02:50:49 <pikhq_> Also, I gave up on trying to get GHC to build on a musl system. It's probably *doable*, but GHC is a royal PITA to build.
02:50:49 <lambdabot> <no location info>:
02:50:50 <elliott> I'm not sure I trust GHC so much that I'd run it as process one though
02:50:50 <lambdabot> lexical error in string/character literal at chara...
02:50:51 <elliott> Oh wait
02:50:56 <elliott> Most people use fucking C as their process one
02:50:58 <Lymee> > text "\0001ACTION hugs elliott\0001"
02:50:59 <elliott> HAHA TEN TIMES MORE TRUSTABLE GUYS
02:50:59 <lambdabot> ACTION hugs elliott
02:51:02 <Lymee> :(
02:51:06 <elliott> pikhq_: Well then your OS is useless :)
02:51:23 <elliott> (I have been spending my life trying to be a more perfect Haskell zealot lately)
02:51:23 <pikhq_> elliott: Actually, I gave up on trying to get GHC to build *at all*, too, so. :P
02:51:30 <elliott> GHC is easy to build nowadays, dude
02:51:33 <elliott> It's just autoconf + circular
02:51:51 <pikhq_> Thank you for naming its problems!
02:52:03 <elliott> Har har har, but come on, autoconf packages are not hard to build
02:52:20 <pikhq_> 'Cept when they are.
02:52:24 <pikhq_> Then they're unbearable.
02:52:24 <elliott> They're really not
02:52:35 <pikhq_> I sentence you to GCC.
02:52:42 <elliott> Unfair
02:52:45 <elliott> Here's how to build GHC
02:52:47 <elliott> - Get binary of previous build
02:52:52 <elliott> - make install into temporary directory
02:52:56 <elliott> - ./configure --with-ghc=...
02:52:57 <elliott> - make
02:52:59 <elliott> - make install
02:53:12 <elliott> This has worked for me multiple times recently
02:54:00 <elliott> Hmm, dammit, where's this generic structure transformation covered
02:54:10 <elliott> Hey oerjan
02:54:16 <monqy> !haskell {-# LANGUAGE RebindableSyntax #-} import System.IO; fromInteger = (+1); main = print 5
02:54:20 <EgoBot> ​/tmp/input.23021.hs:1:13: unsupported extension: RebindableSyntax
02:54:23 <monqy> :(
02:54:27 <oerjan> wat
02:54:33 <monqy> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = (+1); main = print 5
02:54:57 <elliott> oerjan:
02:54:59 <oerjan> monqy: your fromInteger definition infloops :P
02:55:03 <elliott> data LC = Lam String LC
02:55:04 <elliott> | App LC LC
02:55:04 <elliott> | Var String
02:55:04 <elliott> data Ann LC a = AnnLam (a, Ann String a) (a, Ann LC a)
02:55:04 <elliott> | AnnApp (a, Ann LC a) (a, Ann LC a)
02:55:04 <elliott> | AnnVar (a, Ann String a)
02:55:12 <elliott> oerjan: I want to turn any type into its Ann type, as shown above
02:55:18 <elliott> THERE MUST BE SOME KIDN OF TYPECLASS FOR THIS :(
02:55:25 <monqy> oerjan: it doesn't work at all because I forgot (+) isn't even in scope :(
02:55:27 <elliott> Maybe it's SYB
02:55:34 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = join (+); main = print 5
02:55:35 <elliott> monqy: it would be
02:55:41 <elliott> (+1) is an integer though
02:55:46 <elliott> try swapping the + sign
02:56:04 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; import Prelude as P; fromInteger = P.join (P.+); main = print 5
02:56:05 <monqy> 19:56:42 <EgoBot> /tmp/input.23091.hs:1:68: Not in scope: `+'
02:56:05 <monqy> 19:56:42 <EgoBot>
02:56:07 <monqy> ????
02:56:45 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = Prelude.join (Prelude.+); main = print 5
02:56:59 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print 5
02:57:04 <EgoBot> 6
02:57:12 * oerjan cackles evilly
02:57:28 <elliott> monqy: well not with rebindablesyntax, but with _noimplicitprelude_, yes
02:57:33 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print (5 + 5)
02:57:38 <EgoBot> 12
02:57:43 <Lymee> Ooohhhhh~
02:57:44 <Lymee> >:D
02:58:04 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = join (*); main = print 5
02:58:25 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = (\x -> x*x); main = print 5
02:58:29 <EgoBot> 25
02:58:33 <monqy> elliott: how does it work with old ghcs like EgoBot's that don't have rebindablesyntax (and instead have noimplicitprelude doing the rebindablesyntax stuff)?
02:58:49 <elliott> monqy: import Prelude
02:59:22 <monqy> but you'd have to do that with rebindablesyntax too wouldn't you
02:59:27 <monqy> since it implies noimplicitprelude???
02:59:33 <elliott> total used free shared buffers cached
02:59:33 <elliott> Mem: 3699 1762 1936 0 34 441
02:59:33 <elliott> -/+ buffers/cache: 1286 2412
02:59:33 <monqy> im confused
02:59:36 <elliott> I should use more memory
02:59:40 <elliott> monqy: does it?
02:59:42 <elliott> ok i guess
02:59:51 <monqy> -XRebindableSyntax implies -XNoImplicitPrelude.
02:59:56 <monqy> (from http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax )
03:00:28 <monqy> somehow I bookmarked 7.0.2 instead of latest
03:00:47 <monqy> fixed bookmark
03:03:06 <Lymee> @let {-# LANGUAGE NoImplicitPrelude #-}
03:03:08 <lambdabot> Defined.
03:03:10 <Lymee> ...
03:03:12 <Lymee> > map
03:03:13 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b])
03:03:13 <lambdabot> arising...
03:03:37 <Lymee> > id 1
03:03:39 <lambdabot> 1
03:03:40 <Lymee> :(
03:03:50 <monqy> :(
03:03:55 <CakeProphet> http://www.lewrockwell.com/orig2/baskerville1.html
03:03:57 <elliott> there's no way that comment appears at the top
03:04:34 <Sgeo_> http://www.reddit.com/r/bestof/comments/jgpr8/hi/
03:05:34 <elliott> wrong channel
03:06:38 <oerjan> <elliott> wrong channel <-- wait that wasn't a comment to <Lymee> @let {-# LANGUAGE NoImplicitPrelude #-} ?
03:06:50 <elliott> no
03:06:51 <elliott> to Sgeo_
03:06:55 <elliott> oh
03:06:58 <elliott> <Sgeo_> http://www.reddit.com/r/bestof/comments/jgpr8/hi/
03:06:58 <elliott> <elliott> wrong channel
03:06:59 <elliott> not
03:07:02 <elliott> <elliott> there's no way that comment appears at the top
03:07:02 <elliott> <elliott> wrong channel
03:07:04 <elliott> it was to lymee yes
03:07:16 <oerjan> GOOD, GOOD
03:07:52 <itidus20> CakeProphet: is there any magic method to convert a DFA to a regular expression or is it raw problem solving?
03:08:37 <elliott> It is completely impossible. just ask oerjan for the proof.
03:09:04 <monqy> itidus20: magic method? it's a simple algorithm
03:09:12 <elliott> YOURE RUINING ING IT
03:09:37 <itidus20> just like you spoiled xmas for little timmy
03:09:47 <monqy> what
03:10:16 <itidus20> a joke based on the idea of ruining things
03:10:21 <monqy> ok
03:11:06 <itidus20> little timmy being named to sound like a poor little sickly kid
03:11:15 <monqy> ok
03:11:23 <elliott> looking ghostly
03:11:33 <monqy> i laughed too much at that
03:11:50 <elliott> now or when it happened
03:11:57 <itidus20> lol
03:12:00 <monqy> i was still laughing when I typed that
03:12:07 <elliott> oh my god IAmInLoveWithJesus still posts
03:12:11 <monqy> and now, yes
03:12:22 <elliott> oh wait, just posted last month after not posting for two years, lol
03:12:25 <monqy> the original looking ghostly was great too though
03:12:28 <oerjan> <elliott> wrong channel <-- well it was funny anyhow
03:12:42 <elliott> oerjan: no, Sgeo_ isnot allowed fun
03:12:53 <monqy> who is iaminlovewithjesus
03:13:03 <elliott> monqy: my hero
03:15:22 <itidus20> So this is a DFA I made to consolidate my lesson. http://oi53.tinypic.com/wmmgrq.jpg
03:15:30 <elliott> blah
03:15:32 <elliott> good state
03:15:42 <itidus20> its like a toilet
03:15:57 <elliott> i like how you defined one-letter abbreviations and then never used them
03:17:01 <itidus20> i am surprised at how complex the resulting language is
03:17:29 <elliott> how come that mario can be hit twice before he dies
03:17:38 <elliott> the small mario that is
03:17:45 <elliott> or um
03:17:46 <elliott> he dies
03:17:53 <elliott> but then why can he be hit by an enemy or fall down a hole or mushroom
03:18:01 <monqy> he cant
03:18:03 <elliott> shouldn't dead mario just feed back into itself or w/e
03:18:05 <monqy> if that happens it wont be accepted
03:18:10 <elliott> monqy: yes it will
03:18:12 <elliott> monqy: it will go to blah
03:18:16 <elliott> see diagram
03:18:17 <monqy> and blah is not accepting state
03:18:20 <elliott> oh
03:18:25 <itidus20> hehehe...
03:18:26 <elliott> i just thought the extra circles were
03:18:27 <elliott> like
03:18:28 <elliott> mistakes
03:18:38 <monqy> beautiful mistakes
03:19:09 <itidus20> i dont actually know the rules of mario well enough to extend it to the fire flower
03:19:22 <itidus20> because its hard to recreate those effects
03:20:10 <itidus20> technically theres a small mario with fire mario clothes that can be obtained by clever glitch exploitation
03:20:23 <Gregor> VDE hmm ...
03:20:34 <elliott> Gregor: What
03:20:43 <elliott> http://vde.sourceforge.net/????????////////
03:20:52 <elliott> Looks like it maybe
03:21:09 <monqy> is that a hat or a 2
03:21:14 <elliott> what
03:21:20 <monqy> http://vde.sourceforge.net/v2logo.png
03:21:24 <monqy> oh it's a 2
03:21:36 <elliott> oh
03:22:10 <Gregor> Uhh, yeah :P
03:22:23 <elliott> Gregor: It looks like a router thing rather than anything you could diectly communicate with maybe???
03:26:04 <Gregor> elliott: It's a virtual networking infrastructure.
03:26:10 <Gregor> elliott: Also, ?!??!!!!!???????!??!??!
03:29:19 <elliott> Gregor: ???????????????????????????????????????????????????????????///// i cant type xeclmvation marks
03:29:47 <monqy> here have mine!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
03:29:55 <elliott> STOP BRAGING
03:30:08 <itidus20> why not try an interrobang
03:30:59 -!- augur has quit (Ping timeout: 250 seconds).
03:31:32 <quintopia>
03:31:56 <itidus20> i dont have unicode turned on but ill take your word for it !!!!!!!!!!!!!!!!1
03:32:29 <elliott> oh no, i need the generics stuff
03:34:29 <itidus20> ‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼
03:38:25 <itidus20> ‼‽!?¿?!‼‽!?¿?!‼‽!?¿?!
03:39:08 <quintopia> ¡
03:44:15 <PatashuWarg> ‼ is the NOT NOT function
03:44:18 <PatashuWarg> Very useful to have
03:45:49 <elliott> You jest, but it's quite common in languages with no proper boolean type
03:45:52 <elliott> e.g. C
03:46:03 <elliott> (If you think C99 has one, tell me what value (bool)9 has)
03:46:14 <PatashuWarg> so you've seen it used?
03:46:30 <pikhq_> !! is the boolean cast operator.
03:46:34 <elliott> PatashuWarg: You haven't?
03:46:38 <elliott> It's common in C code.
03:46:41 <quintopia> it sets a positive number to 1 in most Cs right?
03:46:48 <elliott> quintopia: Nnnnnnnnnnnnnnnnnnnnnnnnnno.
03:46:55 <elliott> quintopia: It's equivalent to ==[one]
03:46:59 <elliott> Where [one] is the digit one
03:47:03 <zzo38> Yes I have used !! in a few C codes sometimes
03:47:08 <elliott> Also (x ? [one] : 0)
03:47:24 <zzo38> It changes everything to 1 except 0 and null pointer, which remains 0
03:47:26 <elliott> I'm worried as to what state of affairs caused you to believe it could do something like check for positivity
03:47:33 <elliott> zzo38: Oh right, it's not equivalent to ==[one]
03:47:35 <elliott> Not even remotely
03:47:39 <elliott> It'd be [exclamation mark]= 0
03:47:54 <elliott> (for both values and pointers)
03:48:06 <quintopia> elliott: i was thinking it was a check from nonzeroness
03:48:34 <quintopia> *for
03:49:21 <elliott> It is
03:49:34 <elliott> Except it's used where something is basically "like a boolean"
03:49:35 <quintopia> but i didn't know for sure if !0=1 was an explicit standard
03:49:44 <elliott> For instance, if a search routines either NULL or a pointer to the found thing
03:49:52 <elliott> Then you can cast it to a zero-or-one boolean with !!
03:50:19 <quintopia> i don't frequently need my trues to be exactly 1
03:50:23 <zzo38> I think it is a standard C code that anything resulting in boolean would be 1 for true and 0 for false
03:50:28 <quintopia> i'd put the routine in the if statement directly
03:51:04 <zzo38> I also usually don't need !! since I also don't need the numbers 0 and 1 but in a few cases I find it useful to do so
03:52:30 <elliott> quintopia: If you believe booleans can only be used directly in an if statement, you have a very poor conception of booleans indeed
03:52:52 <elliott> If you have a named boolean type -- which you should, even if it'll have more values than you want in C -- then assigning anything but zero or one to it is punishable by death.
03:53:07 <elliott> Because lord knows that (x == TRUE) should be a different test to x.
03:53:26 <quintopia> ORAIT
03:53:33 <quintopia> IT MAKES HUEG DIFFERENCE IN C CODE
03:53:39 <elliott> What\
03:53:46 <quintopia> when are you going to fix your keyboard?
03:53:53 <elliott> Soon
03:55:12 <zzo38> I fixed the spiders in MegaZeux by assuming true is 1 and false is 0.
03:55:16 <zzo38> int web=(element_type==ELEMENT_THINWEB)+(element_type==ELEMENT_THICKWEB)*2;
03:55:49 <zzo38> But at first needs element_type which is int element_type=(d_flag&(A_ELEMENT*7))>>19;
03:56:29 <zzo38> And it now works far better than the old one, which not only didn't work, but was not as versatile as my new one
04:04:27 -!- elliott has quit (Ping timeout: 250 seconds).
05:06:37 -!- GreaseMonkey has quit (Quit: The Other Game).
05:40:49 <zzo38> That's my good friend. He often plays the fool. But I myself wouldn't touch a ten-foot Pole with a guitar!
05:44:29 <oerjan> ye olde wild escaped punchline
05:44:35 <oerjan> *wilde
05:48:42 <oerjan> looking for its joke
05:50:11 -!- elliott has joined.
05:50:36 <elliott> hi
05:50:59 <oerjan> hello
05:52:15 <elliott> pikhq_: is your package manager perfect yet
05:54:36 <pikhq_> No.
05:56:00 <elliott> oh
06:00:09 <zzo38> What things does your package manager do? What ideas do you have?
06:06:34 <elliott> `addquote <itidus20> like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with <itidus20> but that would be NP hard I think
06:06:36 <HackEgo> 583) <itidus20> like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with <itidus20> but that would be NP hard I think
06:07:32 <elliott> 05:18:14: <itidus20> hummm.. Garfield [who designed Magic] studied under Herbert Wilf and earned a Ph.D. in combinatorial mathematics from Penn in 1993.
06:07:32 <elliott> but what does he think of mondays
06:07:51 <oerjan> >_>
06:08:01 <elliott> `addquote <itidus20> combinatronics seems to be the mathematics chasing buddha's tail <itidus20> yeah.. he was a smart monkey that buddha
06:08:02 <HackEgo> 584) <itidus20> combinatronics seems to be the mathematics chasing buddha's tail <itidus20> yeah.. he was a smart monkey that buddha
06:10:12 <elliott> 05:50:06: <itidus20> you know..
06:10:12 <elliott> 05:50:08: <itidus20> that..
06:10:12 <elliott> 05:50:24: <itidus20> patents are like an altar made of wood
06:10:12 <elliott> 05:50:37: <itidus20> onto which the rich can store their gold
06:10:12 <elliott> 05:50:37: <itidus20> onto which the rich can store their gold
06:10:12 <elliott> dee;p
06:10:34 <oerjan> http://www.einaudi.cornell.edu/curriculum/monkey/journey/
06:12:23 <fizzie> Based on a the last few lines -- can't be bothered to read further back -- got tempted to topicize something like "the channel of magic an monkeys", but that would again confuse the-other-sort-of-esoteric visitors.
06:12:47 <elliott> confuse is good
06:16:09 <oerjan> confusius say
06:18:22 <elliott> http://www.reddit.com/r/fifthworldproblems/
06:18:24 <elliott> help what is this
06:21:27 <oerjan> something must have escaped from the scp foundation, i think
06:26:11 <PatashuWarg> rofl
06:26:25 <PatashuWarg> reddit...
06:28:22 <oerjan> PatashuWarg: anyway, since when did you become a werewolf?
06:28:33 <PatashuWarg> oh
06:28:37 <PatashuWarg> I don't know why I'm using that name on here
06:31:14 <elliott> 06:53:30: <NihilistDandy> I used to be in three channels on Freenode. Now I'm on 16. Thanks, #haskell and #esoteric
06:31:19 <elliott> #esoteric usually results in a _decrease_
06:31:22 -!- cheater has joined.
06:31:42 <elliott> 06:57:06: <monqy> what's -spinoff is it any good
06:31:46 <elliott> monqy: fizzie is on -minecraft.
06:31:53 <elliott> Which is mostly about things that aren't Minecraft.
06:32:32 <monqy> oh
06:32:53 <oerjan> so about as on topic as #esoteric itself?
06:33:08 <elliott> monqy: right now it's about half dwarf fortress, half vaguely off-topic things that we feel needs a smaller audience than here I guess???
06:33:25 -!- cheater__ has quit (Ping timeout: 250 seconds).
06:33:29 <elliott> it is a: nice channel
06:33:44 <monqy> too bad I still haven't bothered myself into getting into dwarf fortress
06:34:03 <elliott> monqy: it's as entertaining to read about as play
06:34:22 <monqy> well reading it is pretty entertaining
06:34:41 <elliott> yep
06:36:04 -!- cheater_ has joined.
06:37:19 -!- cheater has quit (Ping timeout: 250 seconds).
06:38:10 <elliott> Gregor: What happened to matrixofsolidity???
06:38:45 -!- oerjan has set topic: Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth |.
06:38:48 <oerjan> http://codu.org/logs/_esoteric/
06:38:54 <oerjan> wat
06:39:06 <elliott> lol
06:39:09 <zzo38> TOPIC #esoteric :Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/
06:39:11 <oerjan> bloody irssi
06:39:14 -!- zzo38 has set topic: Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
06:39:15 <oerjan> thanks
06:39:52 <zzo38> Why did you post the URL in a message not the topic message?
06:40:04 <oerjan> irssi's cut and paste failed
06:40:12 <monqy> why did you cut and paste the topic
06:40:14 <elliott> cut? you removed the topic from the window?
06:40:15 <monqy> in irssi
06:40:29 <elliott> ZFunge is a largely Befunge 98 compatible Z-machine application created by Martin Bays. It is multithreaded and three dimensional, and supercedes ZBefunge. Provided you like fungular confusion!
06:40:33 <monqy> if you do /topic <tab> it will put the topic where the tab was
06:40:34 <elliott> Deewiant: So how does it do on Mycology
06:40:37 <monqy> and then you can just edit it there
06:40:49 <oerjan> monqy: ooh
06:40:49 <elliott> monqy: irssi "workarounds for having a bad output mechanism" irssi
06:41:10 <oerjan> monqy: cut and paste worked last time...
06:41:21 <monqy> i don't trust cut and paste
06:41:36 <oerjan> well i don't either, now :(
06:41:39 <monqy> :(
06:41:53 <elliott> 11:36:11: <ais523> hmm, does anyone here know of ATS (a language that isn't meant to be eso, but may as well be)?
06:41:53 <elliott> 11:36:15: <ais523> here's some code: http://www.ats-lang.org/EXAMPLE/MISC/quicksort_list_dats.html
06:41:53 <elliott> 11:38:25: <ais523> the homepage is effectively saying "look how great our language is, it only took us ten years to write quicksort"
06:42:11 <elliott> ?tell ais523 I know enough about ATS to have opinions on it.
06:42:11 <lambdabot> Consider it noted.
06:42:27 <elliott> ?tell ais523 "it's basically, you write both an imperativish and a functionallish program, in such a way that you prove they do the same thing" -- this isn't really true, but whatever.
06:42:27 <lambdabot> Consider it noted.
06:42:29 <elliott> ADVANCED LOGREADING
06:42:32 <elliott> TEMPORALLY DISPLACED
06:42:40 <zzo38> To me the only paste problem occurs in IRC if I paste a linebreak accidentally.
06:43:02 <elliott> 11:40:27: <Phantom_Hoover> Yeah, it's... preternaturally ugly.
06:43:02 <elliott> It's... mostly the bad syntax highlighting.
06:44:37 <elliott> "The AS/400 (the ultimate CISC) might qualify as an unintentionally esoteric computer architecture. It has transcendental math, iconv, malloc/realloc/free, (almost) sprintf, mark-and-sweep garbage collection, compression, and encryption, as single assembly instructions. It has 128-bit segmented pointers (which are bit patterns but not integers), EBCDIC characters, no (visible) registers, hardware malloc() instead of a stack for function arguments
06:44:37 <elliott> /local variables, and trap representations. It's what inspired the majority of weird things in the C standard like the undefined behavior about pointer arithmetic ("one past the end of the last array") and casting (data pointers, function pointers, and integers can't be cast to one another on the AS/400). It's one of the few architectures that needs va_end() because va_lists are implemented using malloc and must be freed. On the AS/400, the lette
06:44:37 <elliott> rs 'A' to 'Z' (and 'a' to 'z') are not at contiguous code points. There's a single level store (no distinction between RAM and disk) and files are segments too. Pointers can be copied with memcpy (which, like most of <string.h>, is also an assembly instruction), but the simpler cpybytes instruction doesn't copy pointers because pointers have special metadata (not part of the pointer) that marks them as valid. Compared to most assembly languages/C
06:44:42 <elliott> PU architectures, the AS/400 is definitely esoteric. Ian 02:19, 13 August 2011 (UTC)"
06:44:44 <elliott> :DDDDDDDDDDDddddddddd
06:44:49 <zzo38> My IRC client might have a few features that no other IRC client has; do you know if it is?
06:45:59 <oerjan> zzo38: irssi breaks output across lines, and is _supposed_ to join lines together if you paste to the channel, but too often fails
06:46:01 <PatashuWarg> Wow, EBCDIC characters
06:46:39 <oerjan> so cutting from the irssi window to paste back into it is fickle
06:47:09 <elliott> 13:53:33: <Gregor> elliott: You're not here.
06:47:09 <elliott> 13:53:38: <Gregor> <-- genius
06:47:10 <elliott> 14:00:14: <Gregor> ais523: As punishment for you're being here, I'm telling you this anecdote: Yesterday I accidentally uninstalled dash, coreutils, grep, sed, tar, dpkg and apt. Then, I fixed my system.
06:47:14 <elliott> Gregor: Explain. Immediately.
06:47:47 <elliott> Oh, yer explaining :P
06:48:17 <zzo38> This is seems very strange kind of computer if all of this stuff of AS/400 is doing in hardware including some C stuff that no other computer has, it would do some strange things with C that other computers don't do, I guess
06:48:51 <zzo38> Is AS/400 computer architecture compatible with LLVM though?
06:49:00 <elliott> let me use my omniscience to find out :)
06:52:23 <zzo38> Since I wrote my IRC client by myself, I don't know the comparison between feature of other IRC client. Do you know?
06:54:30 <zzo38> What I do know is that this program, copy/paste is a feature of the terminal emulator rather than a feature of the IRC client program itself.
06:54:34 <pikhq_> elliott: Wow. It's an actual C machine.
06:55:14 <zzo38> pikhq_: Yes it seems like that to me.
06:55:15 <elliott> not that you'd need C with assembly like that
06:55:54 <zzo38> elliott: No, you still need C; one purpose of even having C is that you can compile in many computers.
06:55:58 <pikhq_> Yeah, the assembly language appears to be about on par with C in expressiveness.
06:57:05 <pikhq_> elliott: IBM *still sells this*.
06:57:43 <elliott> too CISC; didn't buy
06:57:49 <elliott> ...also too expensive
06:58:07 <zzo38> If it has no registers, does that mean the "register" command in C is meaningless on this computer?
06:58:22 <pikhq_> zzo38: It generally is. :)
06:58:45 <elliott> wow, the VAX had instructions for evaluating polynomials
07:00:03 <elliott> "AS/400 "Future Systems" (128-bit...in 1988!) (check out its instruction set: Materialize User Profile? Free Activation Group-Based Heap Space Storage? Call Program with Variable Length Argument List?)"
07:00:13 <elliott> call program with variable length argument list: the best assembly instruction
07:00:24 <elliott> "SHARC (hardware COME FROM!!!)" :DDDDDDDDDddddddddd
07:03:56 <zzo38> Reading the linked documentation, I can see the commands
07:05:58 -!- oerjan has quit (Quit: Good night).
07:13:35 <zzo38> It even has instruction for computing date duration.
07:15:09 <PatashuWarg> SHARC?
07:15:17 <elliott> PatashuWarg: Shark.
07:15:48 <elliott> should i sleep
07:19:02 <elliott> you're lall terrihlble
07:19:24 <zzo38> It has a lot of different kinds of copying
07:21:12 <PatashuWarg> how can you copy in different ways?
07:22:40 <zzo38> It has both binary and decimal modes, and it has zoned decimal and packed decimal
07:23:12 <PatashuWarg> wow
07:23:19 <PatashuWarg> high level assembly
07:23:26 <elliott> should i seep
07:26:55 <zzo38> I suppose in the case of C programs that do things contrary to AS/400, you could make an emulator if necessary.
07:29:40 <elliott> hel;lp should i felspeeep
07:29:47 <elliott> shurosjhudl i slep
07:31:16 <elliott> shojdfosduljfd i hsoisleeep
07:31:17 <elliott> help
07:31:35 <Taneb> I've been sleepin
07:31:40 <Taneb> g since around 11
07:31:59 <elliott> that is because
07:32:01 <elliott> you do things
07:32:03 <elliott> the reasonable way
07:32:07 <elliott> ((bad way))
07:32:53 <elliott> sjoshuxocjls i seleepj
07:33:18 <elliott> hepl......
07:34:16 <elliott> HEPL............
07:34:34 <elliott> HEPLY.....
07:34:46 <elliott> not hepling :(
07:35:58 <elliott> Taneb gets a little card saying "not heplful two thousand and eleven 9remembered forever)", also so does everyone else in here, enjoy your cards i am going to cry (i amnot actually going to cry)
07:36:02 <elliott> (also the cards are not real)
07:36:06 <elliott> (they are fake imaginary cars)
07:36:17 <Taneb> Don't fall asleep.
07:36:24 <Taneb> Sleep is when the nightmares cometh
07:36:48 <elliott> NOT HEPLFUL
07:37:13 <elliott> all i have to do is put the laptop screen down but that sounds like work??? yeah
07:37:29 <elliott> looking ghostly
07:38:44 <zzo38> Built-in date/time instructions. It has user profiles at the hardware level (although some fields of the user profiles are for operating system use). It has a complicated way of converting numbers into display form. The MVLICOPT command uses Unicode even though some other commands use EBCDIC.
07:38:45 <elliott> monqy: i choose to blame yuo
07:39:16 <monqy> who watht
07:39:21 <elliott> monqy: SHOUDLJDL I SLEP
07:39:34 <monqy> i am not a slepe doctore.....
07:39:43 -!- PatashuFluttersh has joined.
07:39:48 <elliott> YOU ARE NOW [punches in slow motion] [film pauses before punch hits]
07:39:50 <elliott> [film rewinds]
07:39:55 <elliott> [punch rewinds so far it goes through my head]
07:39:56 <elliott> hepl
07:40:00 <monqy> hlep
07:40:08 <elliott> HELPK,L
07:40:20 <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:40:43 <elliott> ok i specifically crafted that last line to get addquoted someone do it
07:40:47 <monqy> step 1 fist out of hed step 32 learn how to spelepe sltep 3 selp
07:40:51 <elliott> or ill have to
07:41:11 <elliott> monqy: are you syinging
07:41:14 <elliott> thta
07:41:20 <elliott> in yuor pofesional slepe doctore opinoyins
07:41:26 <elliott> im shouoldk slep?
07:41:47 <Taneb> He just wants your money
07:41:53 -!- PatashuWarg has quit (Ping timeout: 252 seconds).
07:41:53 <Taneb> He gets more money if you sleep
07:42:11 <elliott> CFONCFONLINCTING OPINIONS AND IM NOW MORE EVEN LOOKING GHOSTLY
07:42:15 <elliott> I MIGHT BECOME GHOST
07:42:21 <elliott> `addquote <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:42:23 <monqy> i was only giving instructions on how to sleep.l....
07:42:26 <HackEgo> 585) <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:42:29 <monqy> NOT ADVICE ON WHETHER YOU SHOULD
07:42:32 <elliott> `addquote <elliott> I MIGHT BECOME GHOST
07:42:33 <HackEgo> 586) <elliott> I MIGHT BECOME GHOST
07:42:35 <elliott> monqy: I NEED A SLEPE DOCTORE
07:42:41 <monqy> wjhy did you add thoise.....
07:42:45 <elliott> BECUAJUISE IM SO FUNNY
07:42:54 <elliott> I WILL ADD EVERY LINE I SAY AFTER ONE AFTER THIS ONE IF YOU DO NOT GIVE ME PROFESIONAL ADIVCE
07:43:02 <elliott> (THEN CONITINUE TO RE-ADD FOREVER)
07:47:19 <zzo38> AS/400 even has command to copy the high 4 bits of one byte to the low 4 bits of another byte.
07:51:31 <zzo38> And you are not allowed to branch to NOOP instructions.
07:54:43 -!- elliott has quit (Ping timeout: 252 seconds).
07:57:29 <PatashuFluttersh> why not?
07:58:10 <Taneb> Breakfast time!
07:58:15 -!- Taneb has quit (Quit: He's a big quitter he is.).
08:05:51 -!- cheater__ has joined.
08:08:45 -!- cheater_ has quit (Ping timeout: 240 seconds).
08:09:54 -!- Taneb has joined.
08:12:29 <Taneb> What does anyone think of Constantinople?
08:17:23 <zzo38> OK, I have read it.
08:17:49 <zzo38> I think I understand it.
08:18:07 <Taneb> I haven't written it very well
08:18:25 <zzo38> Yes, I can see it is not written very well.
08:22:41 <Taneb> Ignore that it isn't well written, what do you think of the language
08:23:09 <zzo38> It is OK, I guess.
08:23:25 <Taneb> That's good enough for me!
08:23:27 <Taneb> Thanks!
08:24:27 <Taneb> Can you try to neaten the article up, if you're not too busy?
08:28:10 <zzo38> Not today; now I will sleep.
08:28:13 -!- zzo38 has quit (Remote host closed the connection).
08:30:18 <Taneb> going now
08:32:49 -!- BeholdMyGlory has joined.
08:35:08 -!- Taneb has quit (Ping timeout: 260 seconds).
08:50:33 -!- pitufoide has quit.
10:20:24 -!- Phantom_Hoover has joined.
10:23:00 <Phantom_Hoover> "The greatest warriors are the ones who fight for peace."
10:23:00 <Phantom_Hoover> -- Holly Near
10:23:00 <lambdabot> Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them.
10:23:09 <Phantom_Hoover> Glanced at this, thought it said "fight in space".
10:26:24 <itidus20> Java is... kind of cool..
10:26:44 * itidus20 looks around coyly whistling even though he lacks whistling ability.
10:51:34 -!- monqy has quit (Quit: Lost terminal).
10:59:56 -!- FireFly has joined.
11:00:58 <Phantom_Hoover> itidus20, um...
11:06:20 <itidus20> But it is like a girlfriend who is too attractive. It has flaws which we want to overlook in our limerence?
11:06:36 <itidus20> s/?/.
11:07:47 <Phantom_Hoover> Yes. We all want to overlook Java's flaws in our limerence.
11:08:44 <Phantom_Hoover> Oh wait that's actually a word.
11:09:48 <itidus20> yup
11:12:21 <itidus20> I downloaded this thing JFLAP after chatting about DFAs before and I couldn't help but blush at the elegance of the executable jar files
11:35:41 <Phantom_Hoover> Yes... elegance...
11:38:51 <itidus20> It's free. It's portable. It has a comprehensive API. You can execute an archive!
11:39:23 <itidus20> Don't get me wrong I don't have a java sdk
11:58:09 <itidus20> nah im deluded
12:05:32 <CakeProphet> >_>
12:05:44 <CakeProphet> you know what's pretty elegant? C#
12:27:22 -!- Taneb has joined.
12:28:41 <Taneb> Hello!
12:29:20 <CakeProphet> heyo
12:33:02 <Taneb> How's life?
12:38:52 <CakeProphet> going.
12:39:27 <CakeProphet> I got a freelance gig so after I do all of my morning routine stuff I'm going to spending today researching anything I can about what I'm supposed to do, so that I kind of know what I'm talking about later when I talk to them.
12:41:35 <CakeProphet> mmmm waffles
12:41:38 <CakeProphet> so good.
12:42:47 <Taneb> Yay!
12:42:53 -!- PatashuFluttersh has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
12:47:18 <Phantom_Hoover> CakeProphet, gig as in comedy?
12:49:11 <CakeProphet> yes...
12:49:17 <CakeProphet> comedy musical
12:49:45 <Phantom_Hoover> CakeProphet: The Musical
12:49:54 <Phantom_Hoover> The companion to Sgeo: The Movie.
12:50:30 <Taneb> I'd pay good money to see CakeProphet on ice.
12:50:46 <Phantom_Hoover> `pastequotes CakeProphet
12:50:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3098
12:50:59 <CakeProphet> I'm pretty sure CakeProphet: The Musical would be of the horror tradgedy genre
12:51:29 <Phantom_Hoover> 423) <GregorR> How to make a tasty deep-fried treat: 1) Buy ingredients: Large vat of boiling oil, dry ice and a small Filipino boy. 2) Place Filipino boy in dry ice until frozen solid. 3) Shatter now-frozen Filipino boy into boiling oil. 4) Wait fifteen minutes, drain and enjoy! <CakeProphet> I have the weirdest boner right now.
12:51:38 <Phantom_Hoover> Honestly, Gregor.
12:51:44 <Phantom_Hoover> Dry ice is a pretty terrible choice for that.
12:52:10 <Taneb> Liquid helium?
12:52:14 <Phantom_Hoover> Liquid nitrogen is a better choice in pretty much every aspect.
12:52:42 <Phantom_Hoover> Liquid helium is... overkill.
12:52:57 <Taneb> No such thing as overkill.
12:53:03 <Taneb> Merely underkill.
12:53:11 <Phantom_Hoover> Dry ice is a poor conductor.
12:54:46 <Phantom_Hoover> You can actually hold it in your hands for a few seconds without any pain at all.
12:55:23 <Gregor> If you hold it in your hands for long enough, they'll never feel pain again.
12:56:07 -!- sebbu2 has joined.
12:56:07 -!- sebbu2 has quit (Changing host).
12:56:07 -!- sebbu2 has joined.
12:56:29 -!- sebbu has quit (Ping timeout: 260 seconds).
12:56:48 -!- sebbu2 has changed nick to sebbu.
12:59:07 <Taneb> I think I've just proved Constantinople Turing-Complete
12:59:29 <Phantom_Hoover> The city?
12:59:59 <Taneb> No, that's a load of Istanbul
13:00:16 <Taneb> Oddly, it's a place I've been to
13:00:33 <Taneb> The esolang
13:00:36 <CakeProphet> where in Europe do you think one could get laid the most?
13:00:40 <CakeProphet> and not get a disease.
13:01:09 <CakeProphet> well the second part is optional I guess.
13:01:30 <Taneb> How much are you willing to spend?
13:01:37 <CakeProphet> irrelevant.
13:01:42 <Taneb> Amsterdam
13:01:54 <CakeProphet> I am planning my future round-the-world flight plan.
13:02:01 <CakeProphet> you know, when I'm rich and stuff.
13:02:13 <Taneb> I was going to go around the world by train
13:02:19 <CakeProphet> how does that work.
13:02:23 <CakeProphet> do they have sea trains?
13:02:31 <Taneb> That's where my plan failed
13:02:45 <CakeProphet> the failure in this plan is probably the rich part.
13:02:52 <Taneb> I can get to Vladivostok
13:03:05 <Phantom_Hoover> From the profits from your comedy musical?
13:03:25 <CakeProphet> still if I ever end up making 50k (which is very possible with a CS degree) then I could fly to a third world country and get a round-the-world ticket for like... 7k or so
13:03:31 <Taneb> Then I'll hitch with a freight tanker
13:03:35 <CakeProphet> instead of like 20k in the US, or whatever it is.
13:03:58 <CakeProphet> the price varies based on your starting country, which is kind of stupid but whatever it's economics.
13:04:04 <Taneb> TO LOS ANGELES
13:04:22 <Taneb> ...Do they have trains in Los Angeles?
13:04:26 <CakeProphet> probably.
13:04:43 <CakeProphet> there are definitely trains in Atlanta. or there were.
13:04:56 <CakeProphet> Atlanta was like, the train hub of the south.
13:05:01 <CakeProphet> now it's the air travel hub.
13:05:14 <CakeProphet> largest airport in the world I believe.
13:05:47 <Taneb> In some ways
13:05:48 <CakeProphet> busiest airport, actually.
13:05:54 <CakeProphet> based on total number of passengers.
13:06:01 <CakeProphet> per year./
13:06:06 <Taneb> Hong Kong is freight
13:06:12 <Taneb> Heathrow is international passengers
13:06:24 <Taneb> Frankfurt is international destinations
13:06:29 <CakeProphet> I'm glad we know what Wikipedia is, otherwise we would be lost here.
13:06:51 <Taneb> Yup
13:07:07 <Taneb> I went to Colorado once.
13:07:14 <Taneb> When I was little
13:07:21 <CakeProphet> did you end up in Atlanta?
13:07:30 <Taneb> No, I ended up in Melbourne
13:07:56 <Phantom_Hoover> Taneb, what's the largest in terms of size?
13:08:34 <Taneb> I don't know
13:09:12 <Taneb> I know Charles de Gaulle has the fastes moving walkways
13:11:51 <CakeProphet> http://www.flightmapping.com/news/coventry-airport/biggest-busiest-airports.asp
13:12:13 <CakeProphet> according to this King Fahd Interational Airport in Damman, Saudi Arabia
13:13:23 <CakeProphet> hmmm, I'd probably want to go to Tokyo I think.
13:13:54 <Taneb> The shortest distance between two capital cities is Rome to the Vatican City
13:14:03 <Taneb> One is literally inside the other
13:16:02 <CakeProphet> I'd think the Twin Cities area would be close
13:16:24 <CakeProphet> if you exclude capitals from other countries/religious-state-things
13:16:34 <CakeProphet> *citystate
13:16:54 <Taneb> They aren't capitals
13:17:15 <Taneb> After them, it's Brazzaville and Kinshasa
13:59:46 <Gregor> I HAS KITTY
14:04:16 <Phantom_Hoover> Gregor, YAAAAY
14:04:18 <Phantom_Hoover> WHAT IS IT CALLED
14:07:10 <Gregor> TIA
14:10:36 <Phantom_Hoover> AWWWWWWWWWWWWWWW
14:11:03 <Phantom_Hoover> IS IT SO CUTE
14:11:55 <Gregor> SHE IS A FATTY
14:17:05 <CakeProphet> HEY GUYS I AM JAMAICAN
14:17:09 <CakeProphet> mon
14:21:59 <Gregor> WHOOOOOOOOAH
14:29:09 <quintopia> ....this channel suddenly got trippy as soon as a kitty got near it
14:29:19 <quintopia> thankfully i am immune to their deleterious effects
14:29:29 <CakeProphet> this is a low grade of trippy.
14:30:04 <quintopia> (although i am highly reactive to the presence of puppies)
14:41:50 <Vorpal> <Gregor> I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean?
14:42:48 <Gregor> More like 8-in-the-morning.
14:42:55 <Gregor> And they're warm and fuzzy too.
14:56:30 <Gregor> `echo hi
14:56:31 <HackEgo> hi
15:05:33 -!- augur_ has joined.
15:10:49 -!- ais523 has joined.
15:13:26 <Phantom_Hoover> <Vorpal> <Gregor> I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean?
15:13:40 <Phantom_Hoover> Why did you have to say that elliott's going to complain about it for like 2 hours
15:14:10 <Vorpal> Phantom_Hoover, don't worry. I will be away eating soon. Besides it was you who highlighted him about it
15:14:26 <Vorpal> Phantom_Hoover, anyway my description was accurate.
15:29:42 <tswett> Vorpal *didn't* say that elliot's going to complain about it for like 2 hours.
15:39:00 -!- copumpkin has joined.
15:44:21 -!- jix has quit (Ping timeout: 276 seconds).
15:44:25 -!- jix has joined.
15:56:08 * Sgeo_ learns about DEFCON game
16:33:36 <ais523> anyone here know if there's a git command to determine if a file is currently versioned or not?
16:33:37 <lambdabot> ais523: You have 2 new messages. '/msg lambdabot @messages' to read them.
16:33:43 <ais523> @messages
16:33:44 <lambdabot> elliott said 9h 51m 32s ago: I know enough about ATS to have opinions on it.
16:33:44 <lambdabot> elliott said 9h 51m 16s ago: "it's basically, you write both an imperativish and a functionallish program, in such a way that you prove they do the same thing" -- this isn't really true, but
16:33:44 <lambdabot> whatever.
16:33:58 <ais523> as in, I have a git repo, and some files, and I want to know if the files are part of the repo or generated
16:34:11 <ais523> I suppose I could edit one and git add -p, but there must be a neater way
16:39:20 <pikhq_> git ls-tree HEAD?
16:40:03 <cheater__> ais: git status <FILE>
16:41:07 <cheater__> ais523: it's $VCS status in any $VCS i know
16:44:22 <ais523> cheater__: thanks
16:44:35 <itidus20> hmm
16:44:36 <ais523> except, that's wrong
16:44:38 <ais523> I just tried it
16:45:02 <ais523> same result for a versioned and nonversioned file
16:45:48 <itidus20> it occurs to me that if the string of reposts of an initial post was a problem, a bot could be created which kicks anyone who says more than a fixed limit of usernames from the chatters list in the room
16:45:58 <itidus20> i know it wouldn't really solve the actual problem though
16:46:07 <itidus20> nor is there such a problem really
16:46:22 <itidus20> just the idea of such a thing amuses me
16:46:25 <cheater__> ais: sorry it doesn't take a file as the parameter
16:46:40 <cheater__> here's the kind of output you get if there's an unversioned file in the repo somewhere (aaa in this case):
16:46:41 <cheater__> $ git status
16:46:41 <cheater__> # On branch master
16:46:41 <cheater__> # Untracked files:
16:46:42 <cheater__> # (use "git add <file>..." to include in what will be committed)
16:46:44 <cheater__> #
16:46:46 <cheater__> #aaa
16:47:03 <cheater__> if you get no output then your files are all versioned
16:47:26 <cheater__> it also scans subdirs
16:47:44 <cheater__> all the paths are relative to $PWD
16:47:58 <ais523> cheater__: that's not what I wanted at all
16:48:04 <ais523> as the file's almost certainly either versioned or ignored
16:48:18 <ais523> as it's in an unedited repo after building
16:48:24 <ais523> the question is, was it there before I built?
16:49:30 <cheater__> so you cloned/checked out the repository, you have made "./build.sh" or something, and you want to know what files that added?
16:49:42 <ais523> I have a specific file there
16:49:49 <ais523> and want to know if it's generated or part of the source
16:50:08 <cheater__> the source would have been in the repository during a new checkout, right?
16:51:17 <ais523> yes
16:51:24 <ais523> and generated files won't have been
16:51:41 <Taneb> s/Constantinople/Istanbul/
16:52:43 <cheater__> ais523, but you think if you did "git add <file>" then it wouldn't show up in git status?
16:53:12 <ais523> cheater__: the generated files don't show up, because they're in git's ignore file
16:53:12 <cheater__> sorry, wrong tense
16:53:18 <ais523> which is what you'd expect for generated files
16:53:19 <cheater__> ais523, but you think if you had done "git add <file>" then it wouldn't show up in git status?
16:53:28 <cheater__> mhm
16:54:05 <cheater__> wouldn't git log show something
16:54:09 <cheater__> got log <file>
16:54:15 <cheater__> *git*
16:54:45 <ais523> I think pikhq_ had the right answer all along
16:55:06 <cheater__> yeah i think his answer applies
16:55:12 <ais523> although it seems not to distinguish between directories
16:56:36 <cheater__> possibly no.
17:05:22 -!- Taneb has quit (Quit: It's-a pizza tonight!).
17:21:19 -!- Taneb has joined.
17:49:23 <Gregor> There, now UMLBox can use Debian's user-mode-linux package for its kernel, instead of supplying its own :)
17:56:12 <Sgeo_> Suzumiya Haruhi novels <3
18:20:37 -!- elliott has joined.
18:24:46 <elliott> `addquote <Phantom_Hoover> I gave her the Noblesse Oblige rooms. <Phantom_Hoover> She was happy with them even when they were behind 2 locked doors and a floodgate and full of water.
18:24:46 <lambdabot> elliott: You have 12 new messages. '/msg lambdabot @messages' to read them.
18:24:47 <HackEgo> 587) <Phantom_Hoover> I gave her the Noblesse Oblige rooms. <Phantom_Hoover> She was happy with them even when they were behind 2 locked doors and a floodgate and full of water.
18:25:01 <ais523> heh, 12
18:25:05 <Phantom_Hoover> That's... not very funny at all.
18:25:14 <ais523> it's pretty typical of DF
18:25:19 <ais523> and typical DF is funny by default
18:25:36 <ais523> so, is that you arranging an accident for an unhelpful mayor?
18:26:00 <Phantom_Hoover> No, that was after the accident when I was waiting for the rooms to drain.
18:26:06 <ais523> ah
18:26:12 <ais523> she wasn't in the rooms, presumably
18:26:13 <elliott> our fortress is very well-organised
18:26:17 <Phantom_Hoover> And I needed rooms for the new baroness, so I gave her the flooded ones.
18:26:33 <elliott> do elves even go to war in DF does anyone know
18:26:40 <elliott> ours seem to be happy to have their caravans repeatedly never come back
18:26:42 <Taneb> Occasionally
18:26:43 <ais523> they do if you annoy them too badly
18:26:47 <elliott> and then to trade in rooms splattered with elf blood
18:26:48 <elliott> so
18:26:48 <Phantom_Hoover> elliott, most of the dorfs are ecstatic despite the fact that only about a quarter of them have beds.
18:26:49 <elliott> ???
18:26:49 <Taneb> Give them wood, then kill them
18:26:55 <elliott> Phantom_Hoover: I know it's so bizarre.
18:27:00 <ais523> but that's mostly by cutting down trees, rather than merely kidnapping caracans
18:27:02 <ais523> *caravans
18:27:04 <elliott> Phantom_Hoover: My laziness: ecstatic-creating????
18:27:11 <elliott> ais523: kidnapping? more like seizing and massacring
18:27:14 <elliott> also, that's hilarious
18:27:20 <elliott> YOU CAN CUT DOWN OUR BROTHERS BUT YOU MUST NOT CUT THE TREES
18:27:53 <Phantom_Hoover> elliott, I also made the best solution to cave adaptation
18:28:03 <ais523> elliott: I bet it's how they punish elven criminals
18:28:13 <ais523> send them to the dwarf fortress, along with some bribes to continue not cutting down trees
18:28:20 <elliott> Phantom_Hoover: What
18:28:25 <elliott> ais523: haha
18:28:36 <elliott> ais523: why do they send valuables along? well, ok, valuable for elves
18:28:38 <ais523> and have the dwarves deal with their unwanted people and keep the trees intact and think they're outwitting the elves all the time
18:28:48 <ais523> elliott: because how many dwarves leave the forests alone?
18:29:02 <elliott> heh
18:29:41 <Phantom_Hoover> elliott, I build a 7-z-level or so tower.
18:29:45 <Phantom_Hoover> *built
18:29:52 <Phantom_Hoover> And then I put a table and chair at the top.
18:30:03 <Phantom_Hoover> And made it a dining room/meeting hall.
18:30:08 <elliott> wat
18:30:24 <Phantom_Hoover> It's now packed with about 3 dorfs per tile, but they're all perfectly happy with going outside.
18:30:42 <elliott> `addquote <Phantom_Hoover> On further reflection, I think I did manage to miss winter and spring altogether. <Phantom_Hoover> This does explain the goblin siege I had in autumn.
18:30:44 <HackEgo> 588) <Phantom_Hoover> On further reflection, I think I did manage to miss winter and spring altogether. <Phantom_Hoover> This does explain the goblin siege I had in autumn.
18:31:07 <elliott> ok this log is too funny
18:31:18 <elliott> `addquote <Phantom_Hoover> A possessed soapmaker: the most ridiculous thing? <Phantom_Hoover> OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD <Phantom_Hoover> I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS
18:31:19 <HackEgo> 589) <Phantom_Hoover> A possessed soapmaker: the most ridiculous thing? <Phantom_Hoover> OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD <Phantom_Hoover> I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS
18:31:23 <elliott> I'LL STOP NOW
18:31:34 <Phantom_Hoover> `pastequotes Phantom_Hoover
18:31:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3480
18:31:46 <elliott> wow, that's a lot
18:31:58 <elliott> 562) <Phantom_Hoover> Taneb's been hit by melancholy. <Phantom_Hoover> He didn't have any friends, fortunatel.y
18:31:58 <elliott> 563) <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster.
18:31:59 <elliott> that's...
18:31:59 <Phantom_Hoover> SIX DF QUOTES
18:32:01 <Phantom_Hoover> SIX
18:32:03 <elliott> not the right ordering
18:32:10 <Phantom_Hoover> elliott, I altered it.
18:32:13 <elliott> iguess the original quote had some formatting problem
18:32:15 <elliott> Phantom_Hoover: Howso
18:32:27 <Phantom_Hoover> It used to have "iridium is too mainstream", which ruins the joke a bit.
18:32:50 <ais523> let's put it in the topic instead
18:32:56 <elliott> 151) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. <cpressey> To comply with the GFDL, there's a copy of Wikipedia in there.
18:32:56 <elliott> 155) <CakeProphet> how does a "DNA computer" work. <CakeProphet> von neumann machines? <Phantom_Hoover> CakeProphet, that's boring in the context of DNA. <Phantom_Hoover> It's just stealing the universe's work and passing it off as our own.
18:32:56 <elliott> TODO: Fix spacing
18:33:03 -!- ais523 has set topic: iridium is too mainstream | http://codu.org/logs/_esoteric/.
18:33:08 <elliott> `pastequotes fungot
18:33:09 <fungot> elliott: what, the last one. wait no, that just made you disappear" and stuff
18:33:10 <ais523> see, that's almost an ontopic topic
18:33:11 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13417
18:33:16 <elliott> ais523: fsvo almost
18:33:25 <elliott> 206) <fungot> Vorpal: you can't plant spiders, duh!
18:33:25 <fungot> elliott: that happens, right. maybe it would be best not to be near it when this happens every young troll stands in his bedroom.
18:33:25 <elliott> :D
18:33:36 <ais523> it'd work better if there's a really obscure non-eso lang called iridium
18:33:41 <Phantom_Hoover> ^style
18:33:41 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
18:34:16 <Phantom_Hoover> I... think we need to create a new quotes file.
18:34:17 <elliott> http://esolangs.org/wiki/C_plus_plus
18:34:19 <ais523> maybe there is
18:34:20 <elliott> ais523: copyvio from WP, offtopic
18:34:31 <ais523> how recent? it's not in my RSS feed yet
18:34:37 <elliott> (diff) (hist) . . N C plus plus‎; 10:25 . . (+1,834) . . 58.175.14.145 (Talk) (Created page)
18:34:40 <elliott> before you deleted those spam user pages
18:34:41 <elliott> at least
18:34:45 <elliott> five hours before, in fact
18:34:49 <ais523> but earlier today
18:34:53 <ais523> must have been a feedreader hiccup
18:35:11 <ais523> I'll delete as copyvio, that's normally the most uncontroversial opinion
18:35:22 <ais523> I did that on Wikipedia, once, when someone copied [[kitten huffing]] over
18:35:29 <elliott> we need a copyvio user warning template at some point
18:35:36 <ais523> and while the admins were busy arguing, I blanked it and put {{copyvio}} on it
18:35:37 <elliott> at least two occurrences recently :P
18:35:42 <ais523> (this is before I was an admin)
18:35:48 <elliott> ais523: haha, people were arguing to keep [[kitten huffing]]?
18:35:59 <Gregor> elliott: BTW I made UMLBox work with stock UML kernels (e.g. the one in the Debian package user-mode-linux)
18:36:02 <ais523> well, it's more that half of the people were going "I don't get it, is this an inside joke?"
18:36:07 <elliott> Gregor: Woooooooooooooo link me again
18:36:18 <ais523> and weren't sure whether they were allowed to delete it /in case/ it was some sort of sacred inside joke that nobody was allowed to delete
18:36:18 <Gregor> elliott: https://bitbucket.org/GregorR/umlbox
18:36:28 <ais523> it had [[Category:Inside jokes]] on it too, but most of them missed it
18:36:29 <Phantom_Hoover> BtW, tswett, your dorf was voted out of office before his mandate could expire and I killed him out of spite.
18:36:29 <elliott> ais523: hahaha
18:36:46 <Gregor> elliott: Use `make nokernel` to build it (it still tries to build the kernel with `make all`)
18:37:01 <elliott> ais523: /me considers rewriting [[stroopwafel]] to be hideously POV to see if anyone dares revert
18:37:09 <ais523> hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous?
18:37:10 <ais523> elliott: don't
18:37:11 <elliott> Gregor: Wait, it had something to automatically configure and build the kernel?
18:37:17 <elliott> Gregor: Why didn't you say so :-P
18:37:25 <Gregor> ...
18:37:26 <Gregor> >_<
18:37:27 <elliott> ais523: Please stop telling me to not do things that are obviously a bad idea :P
18:37:38 <ais523> elliott: I'd be out of character if I didn't!
18:37:43 <elliott> ais523: <ais523> hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous?
18:37:46 <elliott> AAAAAAAAAAAAAAAAA is pretty famous
18:37:49 <elliott> or however many As it is
18:37:53 <ais523> oh right, I somehow forgot that one
18:38:02 <ais523> you're right, it's probably even more famous
18:38:02 <elliott> Gregor: Not that it isn't a change for the better :P
18:38:43 <elliott> Gregor: The UMLBox startup involves a full Linux bootup, more or less, right?
18:38:48 <elliott> Just checking it isn't practical to do for every command
18:39:02 <ais523> hey, Uncyclopedia has Monobook as its default skin
18:39:03 <Gregor> elliott: Well, not particularly "full", no. It doesn't include a real init. It's quite quick actually.
18:39:10 <ais523> I wonder if they managed to argue Wikia into a vague amount of sense?
18:39:35 <Gregor> elliott: Well, "quite quick" as in "it takes about a second at most" :P
18:39:57 <elliott> Gregor: Does HackEgo do it for every command?
18:40:04 <elliott> ais523: they argue with Wikia a lot, I think
18:40:06 <Gregor> elliott: Yup
18:40:17 <elliott> Gregor: That explains why it's so fucking slow ;)
18:40:27 <Gregor> `echo You're mean *sob*
18:40:28 <HackEgo> You're mean *sob*
18:40:55 <elliott> Gregor: I take it running a command-running server thing from inside would defeat all the limits and the like
18:41:05 <ais523> Gregor: does it include... fakeinit?
18:41:21 <elliott> Oh god, what if Gregor just wrote fifty percent of ais523's program.
18:41:24 <elliott> WHAT IF.
18:41:32 <ais523> fakeinit is a very small part of my program
18:41:38 <Gregor> elliott: Well, no, it wouldn't defeat the limits, but all the programs run within would share the limits, if you understand my meaning.
18:41:45 <Gregor> ais523: It has its own pseudoinit.
18:41:57 <Gregor> ais523: (Which just mounts the requested parts of the host filesystem and runs)
18:42:04 <ais523> I need to tell fakeinit to change its own name to init and commandline to /sbin/init
18:42:07 <ais523> just in case someone thinks to check
18:42:14 <elliott> Gregor: Well, right. I just mean that it'd make "kill this command if it takes more than five seconds" a pain.
18:42:17 <pikhq_> I'm not sure it's possible to get out-of-the-box Linux booting in under a second.
18:42:23 <elliott> Because you'd be under the effects of the in-system limits
18:42:27 <elliott> pikhq_: UML is hardly ootb
18:42:43 <pikhq_> elliott: It got pushed upstream.
18:42:56 <ais523> I think it's in my copy of the kernel sources
18:43:00 <ais523> which I got via package manager
18:43:01 <Gregor> It's perfectly possible to get UML from zero to running init in well under a second.
18:43:03 <pikhq_> elliott: You now just do make ARCH=um
18:43:36 <Gregor> It's been in mainstream for quite a while now, in fact.
18:43:52 <pikhq_> Wasn't it 2.6.1x or some such?
18:44:01 <Gregor> Sounds about right.
18:44:08 <elliott> Sure
18:44:12 <elliott> But it's not exactly a ````stock kernel"
18:44:39 <ais523> hmm, I'd forgotten how good Uncyclopedia's page on NetHack is
18:44:44 <elliott> Gregor: So imma try and see if I can either make UMLBox start up fast or else run the processes from outside
18:44:47 <elliott> Erm, from inside
18:44:47 <ais523> it's not quite paced perfectly, but the idea's pretty neat
18:44:49 <pikhq_> Well, in the sense that it gets to omit the *cheaper* startup costs entirely, and make some of the expensive startup costs somewhat less expensive.
18:44:57 <elliott> Gregor: (Latter would have the additional benefit of NO FUCKING HG MERGE PROBLEMS)
18:44:59 <Gregor> elliott: Y'all have fun now, y'hear.
18:45:07 <elliott> Gregor: Imma y'all.
18:45:24 <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
18:45:41 <pikhq_> (device scanning is pretty cheap when you have hardly any hardware. :))
18:47:58 <ais523> we demand sg!
18:48:06 <Gregor> So do I :P
18:49:25 <ais523> elliott: I had a git vs. nongit flamewar with someone recently, and it gave me a VCS epiphany
18:49:43 -!- elliott has quit (Ping timeout: 246 seconds).
18:49:45 <ais523> because I think I discovered the simplest thing that can't reasonably be done with git, and can be done with darcs but it's really annoying
18:50:02 <pikhq_> Oh?
18:50:17 <Gregor> VCS epiphany: git is terrible :P
18:50:29 <ais523> maintaining a fork of a project while still pulling a subset of upstream changes
18:50:37 <pikhq_> Gregor: git is quite a brilliant VCS with quite a terrible UI.
18:50:54 <ais523> pikhq_: it isn't quite a brilliant VCS
18:50:55 <Gregor> pikhq_: Well, yes.
18:50:58 <ais523> its view of the world is fundamentally broken
18:51:03 <ais523> it just doesn't track enough metadata
18:51:40 <pikhq_> Okay, true, there's some obvious deficiencies...
18:51:58 <pikhq_> (Linus, it makes sense to have an empty directory. Allow trees to be empty objects.)
18:52:59 <ais523> I was talking to a git fan
18:53:12 <ais523> and they were acting like my desire to fork a project and still pull some upstream changes was completely insane
18:53:20 <ais523> because git didn't understand the operation
18:55:00 <ais523> now, darcs can represent the operation
18:55:06 <pikhq_> Hmm. I... Think that's an actual problem caused by git's model of "a commit just points to the entire data at that point in time, and its ancestors", with diffs as nothing more than an operation.
18:55:06 <ais523> but you have to include/exclude every patch by hand every time
18:55:26 <ais523> pikhq_: yes, that's what I mean by "the simplest thing that can't reasonably be done by git"
18:55:43 <Deewiant> I would think that git cherry-pick can do that somehow
18:56:00 <pikhq_> The only real way to handle it in git is, in essence, to manually apply the patch yourself and give it most of the same metadata as the original commit.
18:56:01 <ais523> that's what required me to add the "reasonably" qualifier
18:56:10 <ais523> the thing is, that git gets more and more confused the more you cherry-pick, especially out of order
18:56:25 <ais523> because the versions you're comparing to get more and more not-existing-in-the-original-source
18:56:28 <Deewiant> I've never used cherry-pick so beats me
18:56:28 <pikhq_> But this gives you a completely different commit which happens to have some similarity to another one.
18:56:51 <Gregor> Same in hg, btw.
18:56:53 <itidus20> ais523: it sounds like when you use a game engine of one genre to do something from another genre
18:57:06 <ais523> itidus20: oh no, flashback
18:57:08 <ais523> *flashbacks
18:57:17 <ais523> I never did finish making that platformer in Enigma
18:57:19 <itidus20> the advantages of not coding it from the ground up diminish as you get further from the intended genre
18:57:21 <ais523> I should, it'd be great
18:57:50 <pikhq_> Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing.
18:57:50 <itidus20> im saying this as secondhand .. not so much first hand
18:57:54 <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:01:16 <itidus20> so generalizing the ethic of reciprocity... perhaps we are inclined to do to others that which we percieve is in our own fate to have done to us
19:01:28 <itidus20> i know thats out of left field.. best ignore it
19:01:33 <itidus20> im getting way off the git topic
19:01:57 <Gregor> The topic should be UMLBox! :P
19:10:32 -!- zzo38 has joined.
19:11:24 <CakeProphet> hi how does clipboard workin Linux.
19:11:37 <pikhq_> Strangely.
19:11:56 <ais523> CakeProphet: the actual clipboard is normally controlled by control-c control-x control-v just like in Windows, although some programs have different bindings
19:12:05 <ais523> there's also a selection buffer, which fills when you drag your mouse over something
19:12:09 <ais523> and you can paste it by middle-clicking
19:12:19 <ais523> it's very good for quick pastes, but don't expect something you put on it to last
19:12:23 <CakeProphet> how do programs access the clipboard?
19:12:49 <ais523> via X
19:13:03 <ais523> there are actually something like nine clipboards, but only two are ever used
19:13:09 <ais523> one of them is called PRIMARY, but I forget which
19:13:13 <ais523> and I forget the names of the others
19:13:32 <Taneb> SECONDARY, TERTIARY?
19:13:50 <ais523> I doubt they're all named like that, but presumably some of them are
19:14:02 <zzo38> As far as I know, X has PRIMARY (the selection buffer when dragging the mouse over something), SECONDARY (unused), and CLIPBOARD (the one accessed by CTRL+X, CTRL+C, and CTRL+V in many programs)
19:14:18 <ais523> (I discovered all this when trying to develop a method to copy-paste from Emacs running on a SunOS system accessed via Exceed, to Windows, that was fun)
19:14:26 <ais523> zzo38: that sounds about right
19:19:28 <CakeProphet> right but like, where are those
19:20:16 <pikhq_> In the X server.
19:20:29 <pikhq_> i.e. the giant pile of needless nonsense.
19:24:16 <zzo38> Yes, there is also Wayland, which fixes some things.
19:24:21 -!- nooga has joined.
19:24:39 <nooga> I've got an undeniable proof that Notch's a real retard
19:24:52 <nooga> Notch on C++: "Recently, I've done some work in C++. It's a powerful language and fun, but the retarded compilation system makes me cry a bit."
19:25:06 <ais523> actually, it's ambiguous
19:25:13 <Phantom_Hoover> Why, what's wrong with C++'s compilation system?
19:25:21 <ais523> C++'s design makes it very hard to write efficient compilers for
19:25:27 <nooga> it is both ambiguous and unambiguous
19:25:36 <Phantom_Hoover> I suppose he could be talking about delayed compilation?
19:25:41 <pikhq_> Phantom_Hoover: Two words: header files.
19:25:41 <ais523> a C++ compiler is generally significantly slower than a comparable compiler for another language
19:25:45 <ais523> compare gcc to g++, for instance
19:26:05 <Phantom_Hoover> pikhq_, two words which barely help explain anything?
19:26:35 <ais523> Phantom_Hoover: basically, whenever you change an implementation detail of a class in C++
19:26:41 <ais523> everything that references that class needs to be recompiled
19:26:53 <ais523> because it needs to use different memory offsets to access things like the vtables and fields
19:27:01 <ais523> even if this is something that should be hidden by encapsulation
19:27:34 <ais523> the result is that incremental compilation of C++ is really nasty to do, and doesn't even help much
19:27:38 <pikhq_> Phantom_Hoover: In C++, you have only translation units that get linked. You don't, say, import functions from some other module, you simply link a bunch of .o's together.
19:28:09 <pikhq_> With their only actual *relationship* being in *manually maintained* files that can be viewed as declaring an interface.
19:28:18 <ais523> pikhq_: if the ABI was more resistant to changes in implementation details, there wouldn't be so much of an issue
19:28:25 <Phantom_Hoover> pikhq_, exactly the same as C?
19:28:27 <ais523> *the ABI were
19:28:33 <pikhq_> Phantom_Hoover: Yes. It's a problem in C as well.
19:28:45 <ais523> Phantom_Hoover: in C, it's not as bad because you can have a reasonably stable ABI between .o files
19:29:12 <pikhq_> This thing makes it a royal pain to do a build system.
19:29:15 <Phantom_Hoover> pikhq_, ais said C was faster.
19:29:27 <pikhq_> Phantom_Hoover: C++ just makes the problem much more obvious.
19:29:37 <zzo38> However the file "wayland.xml" mentions many things which I do not want, but a different version can be made without these things and with some differences, possibly by having a different window manager and stuff
19:29:45 <Phantom_Hoover> ais523, you mean how calling a function is basically the same if it keeps its type?
19:29:59 <zzo38> It seems to have MIME types, and I don't need that
19:30:06 <ais523> Phantom_Hoover: yes
19:30:16 <ais523> the problem exists in both C and C++, but it's much easier to work around in C
19:30:51 <Phantom_Hoover> ais523, because C++ does awful, awful things to the ABI for method calls?
19:31:06 <pikhq_> That's an understatement. :)
19:33:00 <Phantom_Hoover> How many 'awful's should there be?
19:33:09 <ais523> somewhere between five and six
19:34:37 <CakeProphet> pikhq_: right but like... right now
19:34:41 <CakeProphet> how do I access the clipboard.
19:34:51 <CakeProphet> "in the X server" doesn't tell me how to get to it.
19:35:02 <CakeProphet> because I don't know anything about X. :P
19:35:18 <ais523> CakeProphet: you can communicate with X directly, but you'd be mad to
19:35:23 <ais523> so you use a library which abstracts away the details
19:38:45 <Phantom_Hoover> ais523, you can?
19:38:46 <Phantom_Hoover> How?
19:39:04 <ais523> Phantom_Hoover: something like GTK or Qt almost certainly has an API for accessing the clipboard
19:39:12 <ais523> and that's what people normally use to interact with X
19:39:18 <ais523> perhaps even SDL does, although I'm not sure on that one
19:39:18 <Phantom_Hoover> No, I mean communicate with X directly.
19:39:31 <ais523> open a particular socket, do read() and write() to it
19:39:35 <ais523> in a particular format
19:40:09 <ais523> you need to prove you're allowed to write to that X display by sending a particular string first, which is stored in a file with permissions set so only the user in "charge" of the display can read it
19:40:28 <ais523> the idea's that you can copy the file to your accounts on other systems to pop up windows on your own desktop remotely
19:41:33 <Sgeo_> Bleh
19:41:59 <Sgeo_> Starting to wonder if I should have gotten a Kindle
19:42:08 <CakeProphet> answer: no
19:42:23 <Sgeo_> Reasoning?
19:42:45 <CakeProphet> Not worth the money.
19:44:00 <Sgeo_> Not sure that what I did get is necessarily better in just those terms
19:44:17 <CakeProphet> oh yeah Kindle is probably the best e-reader thingy.
19:44:32 <CakeProphet> I considered getting one but I don't really read enough to warrant the purchase.
19:44:36 <CakeProphet> maybe that would change though if I got one.
19:47:25 -!- Nisstyre has quit (Ping timeout: 264 seconds).
19:52:29 -!- elliott has joined.
19:52:31 <zzo38> I suggest you don't need it. I don't need it either
19:52:33 <elliott> Internet outage...
19:52:35 <elliott> <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
19:52:37 <elliott> <elliott> Gregor: Or
19:52:39 <elliott> <elliott> Gregor: You just hg commit whenever no commands are running
19:52:41 <elliott> I mean sure, if someone does something legitimate and someone else fucks it up simultaneously, you have to run the legitimate command again, but...
19:52:44 <elliott> Now to logread
19:53:03 <elliott> 18:50:37: <pikhq_> Gregor: git is quite a brilliant VCS with quite a terrible UI.
19:53:03 <elliott> 18:50:54: <ais523> pikhq_: it isn't quite a brilliant VCS
19:53:04 <elliott> ais523++
19:53:09 <elliott> hey guys SCAPEGOAT HAVE I MENTIONED SCAPEGOAT
19:53:17 <elliott> 18:50:17: <Gregor> VCS epiphany: git is terrible :P
19:53:22 <elliott> Gregor: git is pretty much exactly as terrible as hg :P
19:53:27 <elliott> They're basically identical
19:53:34 <Gregor> Except that git's UI is a joke.
19:53:44 <ais523> elliott: later I explain when I realised what exactly was wrong with git
19:54:00 <ais523> before, I'd known there was something very wrong with it but couldn't quite put my finger on it
19:54:02 <elliott> Gregor: Well, common operations are nice enough, and it's nice to have the advanced branch filtration stuff because git is deficient enough to need it. But yeah, hg's is slightly nicer.
19:54:14 <elliott> git has more infrastructure and popularity, though, so it wins out for me.
19:54:38 <elliott> ais523: btw, are you implying that you'd only want to pull _parts_ of a commit from upstream?
19:54:46 <ais523> elliott: not of a commit
19:54:49 <elliott> because that's wrong in any DVCS; commits should be as small as possible
19:54:51 <elliott> ais523: ah, ok
19:54:51 <ais523> only some commits from a series
19:55:15 <ais523> if I want to pull half a commit, it's because the person committing it didn't break it up enough
19:55:18 <elliott> 18:57:50: <pikhq_> Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing.
19:55:18 <elliott> gross super bad
19:55:23 <ais523> and that's most easily done by pulling then half reverting
19:55:26 <elliott> ais523: indeed (I do that a lot, but that's a personal deficiency)
19:55:38 <ais523> (darcs actually has a UI for a half revert, so presumably they're aware that people often mess that up)
19:55:42 <elliott> at least it's for mcmap, which has a proud tradition of terrible UI practices
19:55:46 <elliott> erm, s/UI/development/
19:55:56 <elliott> if it builds, commit it... if you're too lazy to try and build it, commit it anyway
19:56:03 <elliott> then push it :P
19:56:19 <elliott> `addquote <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:56:21 <HackEgo> 590) <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:56:37 <ais523> the second is arguably even more fun
19:56:44 <elliott> 19:24:39: <nooga> I've got an undeniable proof that Notch's a real retard
19:56:57 <ais523> my favourite of my Enigma levels is still Boulder Crossing, which they didn't accept
19:57:00 <elliott> Notch is an idiot, but your grudge against him and all things Minecraft is really weird and really annoying
19:57:15 <elliott> Do you have walls covered with anti-Minecraft propaganda written in 9 pt font in crayons
19:57:17 <ais523> it's very nearly pure wiring, no Lua there at all
19:57:25 <elliott> ais523: I haven't played that one, I don't think
19:57:26 <ais523> although I needed to make a trigger control the existence of a grate
19:57:39 <ais523> elliott: indeed, it isn't "public" as in the repo, because it wasn't accepted
19:57:43 <ais523> but it's on mag-heut, let me dig up the link
19:57:49 <elliott> 19:24:52: <nooga> Notch on C++: "Recently, I've done some work in C++. It's a powerful language and fun, but the retarded compilation system makes me cry a bit."
19:57:49 <elliott> C++ /is/ a powerful language, it /is/ fun (note: this does not mean it's a good language), and its compilation system /is/ terrible
19:57:54 <elliott> that's one of the least stupid things Notch has ever said
19:58:08 <elliott> ais523: I probably won't play it now, but perhaps later
19:58:19 <pikhq_> "Fun" in the sense that Brainfuck is fun, presumably.
19:58:33 <elliott> no, fun in the sense of C++ sudoku
19:58:37 <elliott> which is still the best programming game, ever
19:58:48 <ais523> http://www.mag-heut.net/blackball/levels/submits/ais32_2.zip
19:58:52 <Gregor> Is that where you use C++ template metaprogramming to solve sudoku?
19:59:09 <elliott> Gregor: It's where you use C++ template metaprogramming to solve anything.
19:59:18 <elliott> Gregor: Or, more generally, accomplish any task that's trivial in a functional language in C++.
19:59:41 <Gregor> elliott: So, didja get UMLBox running?
19:59:47 <elliott> Gregor: For instance: create a class maybe<T> which perfectly represents the Haskell Maybe type or OCaml's option. You can't just use a pointer. Why not? Because you can't have a pointer to references.
19:59:57 <elliott> So you have to rely on the standard casting to char-pointer and back.
20:00:09 <elliott> Gregor: I got disconnected right as I was talking about it >_>
20:00:17 <elliott> But
20:00:18 <elliott> <elliott> <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
20:00:18 <elliott> <elliott> <elliott> Gregor: Or
20:00:18 <elliott> <elliott> <elliott> Gregor: You just hg commit whenever no commands are running
20:00:18 <elliott> <elliott> I mean sure, if someone does something legitimate and someone else fucks it up simultaneously, you have to run the legitimate command again, but...
20:01:38 <elliott> Gregor: I think sg is the nicest solution for the HackEgoWhatevers :P
20:02:14 <elliott> OK, I'mma try and build umlbox.
20:02:26 <Gregor> elliott: None of that is about U--- yeah
20:02:27 <ais523> well, even sg can't resolve an actual conflict without help
20:02:43 <elliott> ais523: no, but for HackEgo, the merging mechanism is obvious
20:02:52 <Gregor> <CakeProphet> oh yeah Kindle is probably the best e-reader thingy. // (lol accidental logreading) I assume of course that in your confused state, you have replaced the word "worst" by "best"
20:03:15 <elliott> ais523: just run the two patches in time order, and if the second one fails, just give up and let there be two heads
20:03:25 <elliott> which, admittedly, is not an easy situation to resolve from inside the bot
20:03:34 <elliott> Gregor: Better than the Nook
20:03:41 <elliott> Also the iPad :-P
20:03:56 <elliott> Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package?
20:03:57 <ais523> what's wrong with the Nook? I have very little information on it, so I can't praise or bash it
20:04:00 <elliott> I mean, apart from the kernel being newer.
20:04:02 <ais523> and don't even know which to do
20:04:09 <Gregor> elliott: The kernel it builds has less gunk (so is faster)
20:04:15 <Gregor> The Nook is assuredly better than the Kindle.
20:04:18 <elliott> ais523: pointless normal touchscreen display below the screen, so you have a nice glaring surface below your actual book
20:04:25 <elliott> that's the main problem
20:04:25 <Gregor> elliott: That's olde nook.
20:04:30 <elliott> Gregor: oh, it changed?
20:04:42 <Gregor> elliott: The new Nook (NOT the Nook touch) has a clever touchscreen, no backlight anywhere.
20:04:44 <Gregor> Erm
20:04:47 <Gregor> NOT the Nook color.
20:04:49 <elliott> Gregor: well, I also resent it for trying to appear all "open sharing", while in reality having a completely insane one-share system
20:04:50 <Gregor> YES the Nook touch :P
20:04:53 <elliott> whereas the Kindle doesn't even try to pretend
20:05:00 <Gregor> Fair enough :P
20:05:06 <Gregor> But at least the Nook supports ePub ...
20:05:11 <ais523> is it rootable?
20:05:11 <elliott> yeah, that's good
20:05:19 <elliott> I kind of want a Kindle just so I can use the browser to IRC
20:05:25 <Gregor> ais523: Yes. Both are AFAIK, but Nook runs Android so that's nice ...
20:05:26 <elliott> I mean, what other e-reader comes with free threegee internet?
20:06:14 <Gregor> Anyway, the best is (was) the IREX DR800. Which is why the company went out of business.
20:06:54 <elliott> <elliott> Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package?
20:07:04 <elliott> Ctrl+V: BEST KEY
20:07:07 <Gregor> <Gregor> elliott: The kernel it builds has less gunk (so is faster)
20:07:16 <Gregor> Gotta agree with that assessment of keys.
20:07:31 <elliott> Oh, I missed that :P
20:07:37 -!- oerjan has joined.
20:07:43 <elliott> strip init
20:07:44 <elliott> echo init | cpio -H newc -o | gzip -9c > umlbox-initrd.gz
20:07:44 <elliott> 1332 blocks
20:07:44 <elliott> cp -f umlbox-config linux-3.0.1/.config
20:07:45 <elliott> cp: cannot create regular file `linux-3.0.1/.config': No such file or directory
20:07:53 <elliott> Gregor: Your Makefile is missing a certain dependency :P
20:08:09 <Gregor> elliott: Shall I go back to the part where I said you need to `make nokernel` to build without the kernel?
20:08:16 <Gregor> I don't want to logread that far to copypasta.
20:08:18 <elliott> Gregor: I want to build the kernel :-P
20:08:34 <elliott> But you did miss the dependency on linux-3.0.1/Makefile ;-P
20:08:36 <Gregor> Oh; well you need to fetch and extract the kernel yourself, it just configures and builds it :P
20:08:43 <elliott> SO USER-UNFRIENDLY
20:08:52 <Gregor> Like your FACE.
20:11:23 <elliott> How is Linux even seventy megabytes compressed these days.
20:11:29 <elliott> How can my internet connection even download that in minutes.
20:11:33 <elliott> What is this life, what is this future.
20:11:55 <Taneb> The Future sure isn't what it's cracked up to be
20:13:29 <elliott> Gregor: How minimal a kernel does it build? cba to look at your config :P
20:13:57 <elliott> I'VE MADE A FIVE HUNDRED KILOBYTE (COMPRESSED) KERNEL BEFORE THAT EVEN BOOTED IN QEMU, I DON'T SEE HOW IT COULD POSSIBLY LIVE UP TO MY INCREDIBLY EXACTING STANDARDS
20:14:39 <Gregor> elliott: Not that small.
20:14:40 -!- monqy has joined.
20:14:42 <Gregor> It's about 3MB
20:14:52 <Gregor> It has no support for modules, swap or networking.
20:15:05 <Gregor> That's uncompressed though ...
20:15:12 <elliott> No point compressing it really
20:15:18 <Gregor> Ohwait, it's at about 1.8M now apparently.
20:15:31 <elliott> $ ./umlbox ls
20:15:31 <elliott> /bin/sh could not be executed
20:15:31 <elliott> I might have to actually fill out a chroot of some kind huh
20:15:49 <Gregor> You want ./umlbox -B ls
20:16:00 <elliott> Ah :P
20:16:07 <Gregor> -B is the base directories (I'm considering making that the default and its inversion the option)
20:16:12 <elliott> Yay, it works :P
20:16:17 <elliott> Gregor: So I take it this is running on my irl system
20:16:25 <elliott> Hmm, without /home mind you
20:16:43 <ais523> hmm, I suspect UMLbox is actually entirely unlike the Secret Project
20:16:46 <Gregor> The base directories do not include /home.
20:16:57 <ais523> does it do anything to help out reproducibility at all?
20:17:00 <elliott> Gregor: Right
20:17:04 <Gregor> ais523: Not even a little bit.
20:17:11 <Gregor> elliott: You can use umlbox -B -f . ls
20:17:14 <ais523> yep, indeed
20:17:22 <elliott> $ ./umlbox -B -f sls .
20:17:22 <elliott> Terminated
20:17:26 <elliott> Nice error behaviour :P
20:17:38 <Gregor> . is .. quite the command ...
20:17:47 <elliott> Oh, duh
20:17:53 <elliott> lol, and "-B ." works
20:17:56 <elliott> Just does nothing
20:18:00 <ais523> SIGTERM is quite a rare signal to get, actually
20:18:03 <Gregor> But yes, its error output tends to be magnificent.
20:18:06 <ais523> you pretty much have to set it off deliberately
20:18:06 <elliott> Gregor: Oh, -f sls is what breaks it
20:18:21 <elliott> ./umlbox-linux results in FUN
20:18:45 <ais523> the sort of fun which involves a lot of angry dwarves?
20:18:47 <Gregor> elliott: Oh, I see what's happening, trying to mount a non-existing directory = craziness.
20:18:56 <elliott> Gregor: I really like how -v fucks up my terminal and I have to "stty sane" afterwards :P
20:19:03 <elliott> ais523: Precisely.
20:19:15 <Gregor> elliott: That's UML's fault, Idonno how to fix it >_>
20:19:19 <ais523> hmm, is stty sane more or less severe than reset?
20:19:26 <ais523> Gregor: a few ioctls should do it
20:19:26 <elliott> Gregor: Store terminal state at startup, restore it at quit?
20:19:41 <elliott> It's just a syscall or two
20:19:44 <Gregor> elliott: So much work for the mostly-lame -v option :P
20:20:06 <elliott> chdir("/host");
20:20:07 <elliott> chroot("/host");
20:20:09 <elliott> Is there actually a host/host?
20:20:13 <elliott> Oh, wait
20:20:17 <elliott> That's an absolute path :P
20:20:25 <elliott> SF(tmpi, setgid, -1, (childGID));
20:20:25 <elliott> SF(tmpi, setuid, -1, (childUID));
20:20:25 <elliott> This is set to a constant nowadays, right?
20:20:44 <Gregor> No, it's set to the caller's IDs.
20:21:13 <elliott> Ah
20:21:29 * elliott recalls ubda as a UML thing...
20:21:59 <Gregor> ubda is where I put the configuration junk that the host communicates into the guest 8-D
20:22:08 <Gregor> Making your hard disk be a text file ... the best?
20:22:38 <elliott> I find your host-client communications really wanting :P
20:22:50 <elliott> Where is the ubda file on the host, though...
20:22:57 <elliott> Oh, something in ~/.uml?
20:23:17 <Gregor> /tmp/<pid>.conf
20:23:40 <elliott> So you have to configure it after it starts up but before your process gets executed?
20:23:44 <elliott> Hardcore
20:23:59 <Gregor> umlbox writes the configuration file based on the command line arguments.
20:24:02 <elliott> Oh :P
20:24:05 <elliott> I thought it was a user-exposed hing
20:24:06 <elliott> thing
20:24:12 <Gregor> It is not :P
20:24:17 <elliott> Those aren't very safe /tmp filenames >_>
20:24:28 <elliott> Sensitive coder problems
20:24:57 <Gregor> elliott: If the attacker already has your user account, you're pretty boned.
20:26:48 <elliott> Probably :P
20:27:12 <elliott> I was raised on a diet known as "ALWAYS FUCKING USE MKSTEMP OR YOU WILL IDE"
20:27:14 <elliott> DIE
20:28:36 <ais523> elliott: I typically use tempdir instead
20:28:42 <ais523> which is an alternative way to make secure tempfiles
20:28:48 <ais523> and one that's a little easier to mentally prove secure
20:29:01 <elliott> Temporary files: Still the stupidest thing????
20:29:10 <elliott> I mean, system-made
20:29:15 <ais523> the way Secret Project creates temporary files is really ridiculous
20:29:26 <ais523> it creates a new mount namespace, then mounts a tmpfs there
20:29:28 <ais523> and creates the files on that
20:29:31 <elliott> haha
20:29:48 <ais523> the files' filenames aren't expressible from outside the secret project
20:29:54 <ais523> except sometimes via /proc hackery
20:31:20 <elliott> ais523: I bet the secret project would be easy IN @
20:31:34 <ais523> hmm
20:31:39 <elliott> that @ is capitalised, btw
20:31:41 <Gregor> I HAS KITTY
20:31:55 <ais523> it'd be easy if it had sufficient permissions
20:31:56 <elliott> and I don't know whether I mean doing the same thing as the secret project for @, or keeping it as Linux, but doing that on top of @
20:32:07 <ais523> it might need quite high permissions, though
20:32:07 <elliott> Gregor: KITTYYYYYYYYYYYYY
20:32:13 <elliott> Phantom_Hoover: GET MOUSE
20:32:15 <elliott> UNITE WITH GREGOR KITTY
20:32:17 <elliott> FRIENDSHIP FOREVER
20:32:18 <ais523> (although, Secret Project requires root, oh does it really require root)
20:32:31 <ais523> (but it drops permissions as quickly as it can; before becoming init, in fact)
20:32:36 <Taneb> sudo secret project
20:32:42 <elliott> ais523: why would it need high permissions? remember that you can basically run anything you have access to in an arbitrary environment
20:32:44 <Gregor> elliott: Well, she's sleeping right next to me.
20:32:46 <ais523> oh, random fact: if you've ever been root, and drop your permissions, you then can't read your own procfiles
20:32:50 <Taneb> Oh, I was an idiot for think that would be funny
20:32:51 <elliott> so you can emulate an entire system as an unprivileged user
20:32:57 <elliott> s/user/piece of code/
20:33:01 <ais523> elliott: but the issue is that you have to emulate the entire system
20:33:03 <Gregor> ais523: You could use Linux's crazy set-capabilities bits to only get the strictly-required caps!
20:33:12 <ais523> whereas secret project passes syscalls mostly unchanged, if it can
20:33:19 <ais523> Gregor: I actually thought of that
20:33:28 <elliott> ais523: Well, the secret project could give anything it runs the exact permissions it has
20:33:29 <ais523> but I want to drop permissions totally
20:33:34 <elliott> ais523: So you could easily pass on anything that you can do
20:33:41 <ais523> partly to stop what's inside breaking out
20:33:53 <ais523> because I'm not quite crazy enough to mount over /
20:34:01 <Gregor> ais523: I meant the set-capability bits on the file, as an alternative to setuid-root.
20:34:15 <ais523> oh, it's currently not SUID, but designed to be run via sudo
20:34:19 <Gregor> Oh
20:34:19 <elliott> ais523: So I don't see how the secret project would require any more permissions than what it's running
20:34:22 <elliott> in @
20:34:30 <ais523> it has to drop permissions to a known UID anyway
20:34:34 <ais523> because Linux doesn't yet have UID namespaces
20:35:32 <ais523> and I'm not sure if people are planning to implement them
20:35:51 <ais523> (you can namespace /etc/passwd easily enough, but that's not really the same)
20:36:11 <Gregor> Good ol kill(2)
20:36:31 -!- PatashuWarg has joined.
20:36:44 <elliott> ais523: so yeah, I really don't see how the secret project would need any elevated permissions on @ over what it's running
20:36:47 <ais523> Gregor: gah, don't say that, do you have any idea how nondeterministic sending signals is
20:37:00 <elliott> the reason you need them in Linux is that you can't control how your children access the system if you're not really privileged
20:37:04 <ais523> it took me hours to get that working
20:37:15 <ais523> and I'm still not sure if it's fully working
20:37:17 <elliott> but in @, you pass all your children the whole system _anyway_ (or well, the bits you have access to)
20:37:21 <elliott> so you can easily transform it arbitrarily
20:37:28 <Gregor> ais523: umlbox makes signal isolation easy! :P
20:37:36 <elliott> ais523: also, have you considered just writing a Linux syscall emulator?
20:37:44 <ais523> elliott: yes, it seems like a lot /more/ work
20:37:49 <ais523> I'm just emulating the syscalls that need emulation
20:37:53 <elliott> ais523: like, getting a really simple xeightsix emulator
20:37:53 <ais523> which is a relatively small fraction
20:38:00 <elliott> and then implementing the syscalls you need in a really deterministic way
20:38:09 <elliott> Gregor got JSMIPS running bash in days :P
20:38:11 <ais523> I need /all/ the syscalls!
20:38:13 <Taneb> That would be like everything WINE isn't
20:38:23 <ais523> even personality(2), apparently
20:38:37 <elliott> monqy: guess what just got a major new release.........
20:38:39 <ais523> I have to intercept requests to prevent them turning ASLR back on
20:38:58 <monqy> elliott: hi
20:39:02 <elliott> oh no now it depends on arrows..........
20:39:07 <ais523> well, OK, I gave up on the one that goes into virtual x86 mode
20:39:08 <monqy> is it g pipe
20:39:21 <elliott> monqy: fclabels, it is now at one point oh, and it has been like totally redone???
20:39:23 <monqy> oh
20:39:23 <elliott> http://hackage.haskell.org/package/fclabels-1.0
20:39:32 <ais523> and ptrace is obviously a complete nonstarter
20:39:39 <elliott> "Arrows allow for effectful lenses, for example, lenses that might fail or use state."
20:39:40 <elliott> huh,,
20:39:44 <elliott> iw onder what KMETT Things of this
20:39:44 <ais523> unless I reimplement it in terms of, umm, ptrace
20:39:47 <ais523> and that'd be really confusing
20:39:53 <elliott> "Dear Op: I was playing with this today and noticed the performance was about 20 times slower than the built-in method of changing fields."
20:39:54 <elliott> :DDD
20:40:33 <ais523> you could intercept ptrace requests, then vary your own so that to the ptraced processes, it looked like they were ptracing other processes and those processes were responding appropriately
20:40:46 <Gregor> Does fclabels stand for "Fuck labels!"?
20:40:51 <elliott> Gregor: first-class labels
20:40:58 <elliott> Gregor: it is pruely functional goto (no not really)
20:41:06 <ais523> (incidentally, this sort of thing is why you cannot run secret project in a debugger; for bonus points, it makes valgrind crash with an internal error and a suggestion you send a bug report, even though AFAIK valgrind doesn't even use ptrace)
20:41:23 <elliott> ais523: why doesnt bochs work agin...
20:41:29 <elliott> it is pretty detriministic........
20:41:33 <monqy> so how bad is the new fclabels....
20:41:39 <ais523> elliott: inside valgrind?
20:41:45 <ais523> I don't see why it wouldn't work inside secret project
20:41:51 <elliott> ais523: no i just mean
20:41:55 <elliott> why is bochs not suitable for secret project
20:41:58 <elliott> monim dont know.... qy
20:42:02 <ais523> oh, I muddled it with boehm
20:42:09 <ais523> I've never heard of bochs
20:42:13 <elliott> ais523: what, yes you have
20:42:18 <elliott> Gregor: tell ais523 he's heard of bochs, because he has
20:42:21 <ais523> well, in that case I forgot
20:42:36 <elliott> ais523: it's like qemu but.................. even more pure/deterministic/portable/slow
20:42:43 <elliott> it's used for debugging OSes, usually
20:42:46 <elliott> in the osdev community
20:42:47 <ais523> speed is actually important
20:42:49 <elliott> debugging and testing
20:42:56 <elliott> ais523: well it's fast enough to run like old windowses
20:42:58 <ais523> it doesn't need to run fullspeed (although sometimes it runs faster)
20:43:02 <Gregor> bochs is the x86 emulator for people who seriously are emulating an x86, and not just trying to make x86 shit run.
20:43:10 <ais523> but fast enough that applications inside it are reasonable
20:43:12 <elliott> I mean you couldn't boot any Ubuntu on it
20:43:21 <elliott> but you could easily run a command-line Linux or maybe simple Xorg linux???
20:43:34 <ais523> could it run pulseaudio?
20:43:44 <ais523> at a reasonable speed?
20:43:51 <elliott> ais523: I think it emulates, like, a SoundBlaster, but probably, but why are you using pulseaudio
20:43:52 <ais523> admittedly, secret project can't do pulseaudio yet
20:43:59 <ais523> because other things have dependencies on it
20:44:03 <elliott> you should try bochs though it might really help you out
20:44:09 <elliott> I mean, I don't know what your problems with qemu were
20:44:13 <elliott> but bochs is a lot more... predictable? than that
20:44:14 <elliott> and stricter
20:44:30 <ais523> telling you my problems with qemu would give too much away
20:44:35 <elliott> fair enough
20:44:37 <ais523> but I will say, they were unrelated to emulation accuracy
20:44:42 <elliott> but try bochs; it's in Debian and everything
20:44:46 <elliott> and widely-used
20:45:01 <elliott> ais523: oh, you'll want to copy its default configuration file and modify it, probabl
20:45:01 <elliott> y
20:45:03 <elliott> it's quite a pain, but
20:45:13 <ais523> copying it to save on having to redownload it?
20:45:15 <elliott> ais523: were they related to determinism?
20:45:21 <elliott> ais523: no, to modify it
20:45:29 <elliott> it's in /usr/share somewhere
20:45:34 <ais523> I don't think either yes or no would be a non-misleading answer
20:45:42 <ais523> so I just won't answer you
20:45:53 <elliott> heh
20:46:00 <ais523> in fact, I'm not entirely sure, offhand, which is technically correct
20:46:02 <elliott> monqy: the new fclabels expor names are uglier :(
20:46:17 <monqy> yep :(
20:46:47 <elliott> gets, puts, modify <-- conssisistent
20:47:33 <elliott> http://hackage.haskell.org/package/data-accessor-0.0.1 maybe i will just use this forever (it is before henning got his hands on it)
20:48:18 <Gregor> Bochs is a HUGE pain to configure.
20:48:28 <Gregor> But it can run AT&T Unix System V, so it's totally worth it.
20:48:36 <elliott> X-D
20:49:10 <zzo38> Is "cat" in UNIX similar to "return" in Haskell? Some document says there is similarity and also that "|" in UNIX is similar to ">>=" in Haskell
20:49:53 <elliott> zzo38: okmij.org, by any chance?
20:50:05 <ais523> hmm, arguably UNIX echo is more like Haskell return
20:50:06 -!- sllide has joined.
20:51:07 <zzo38> Yes that is the domain name as it turns out
20:51:32 <elliott> zzo38: yep, that's Oleg's popular piece on it
20:51:45 <ais523> elliott: /the/ Oleg?
20:51:51 <elliott> ais523: yes, /the/ Oleg
20:51:55 <ais523> well, /the/ relevant Oleg?
20:51:58 <ais523> hmm, fair enough
20:52:03 <ais523> that's a weird analogy to be using
20:52:03 <elliott> ais523: The Kiselyov one
20:52:06 <elliott> not the Subleq one
20:52:14 <ais523> although I'm not surprised he uses weird analogies
20:52:22 <ais523> given what his code is like
20:52:28 <elliott> ais523: eh?
20:52:33 <elliott> ais523: I think you're thinking of the Subleq Oleg
20:52:47 <elliott> ais523: I'm talking about the Haskell-celebrity one
20:52:50 <ais523> yes, so am I
20:52:59 <elliott> his code is perfectly readable :P
20:53:01 <ais523> I thought his code was famous for being very efficient and unlike what anyone else writes
20:53:06 <elliott> ais523: but anyway, it's not "an analogy", http://okmij.org/ftp/Computation/monadic-shell.html
20:53:10 <ais523> not unreadable, just /weird/
20:53:20 <elliott> ais523: Well, he's mostly famous for applying the type system to everything
20:53:34 <elliott> his Haskell style isn't the "standard" style, I suppose, but it doesn't really feel foreign
20:53:48 <ais523> bleh, I don't think is-equivalent-to can be typed with compose
20:53:52 <ais523> or at least, I can't guess the binding
20:53:56 <elliott> anyway, it's more of a correspondence than an analogy
20:53:58 <elliott> ais523: eh?
20:54:00 <ais523> I may end up having to write Agda
20:54:10 <elliott> ais523: what language are you talking about
20:54:11 <elliott> oh
20:54:14 <elliott> compose key
20:54:22 <ais523> oh, I see
20:54:26 <elliott> ais523: you don't need to use the compose key for Agda
20:54:29 <ais523> "typed with compose" almost has a computer-science meaning
20:54:34 <monqy> oh so the subleq oleg and the real oleg are different people? this glads me.
20:54:39 <elliott> ais523: agda-mode automatically turns on a modified TeX input method
20:54:43 <ais523> but it's not one that makes a lot of sense
20:54:51 <elliott> well, I thought you meant point-free style
20:54:55 <ais523> elliott: hmm, what if I need to type random bits of Agda when Emacs isn't open
20:54:58 <elliott> but yeah, no compose needed for agda
20:55:02 <ais523> say, into IRC
20:55:13 <elliott> ais523: you suffer, or just type it in emacs then copy it over
20:55:20 <ais523> also, I don't really like texish input methods
20:55:32 <elliott> ais523: Agda has so many special characters that there isn't much choice
20:55:38 <ais523> I've used them before now when writing unicode-heavy stuff
20:55:40 <ais523> but they annoy me
20:55:44 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:55:49 <ais523> I actually find LaTeX a little frustrating to type for the same reason
20:55:52 <elliott> besides, coding Agda without using agda-mode or a (non-existent) equivalent is... not nice for humans
20:56:03 <elliott> (it's half language mode, half interactive proof-ish system)
20:56:20 <elliott> (you can put your cursor over a "hole" ("expression I haven't written yet") and ask it what type it needs to be, etc.)
20:56:33 <ais523> this is why I thought efficiently compiling Agda was a weird thing for my coworker to study
20:56:43 <ais523> it's not as if Agda programs are mostly designed to be run
20:56:49 <ais523> you just write them to verify they compile
20:56:52 <ais523> then you go do something else
20:56:57 <elliott> ais523: umm, writing a fast Agda compiler, or writing an Agda compiler that produces fast code?
20:57:03 <Deewiant> ais523: You modify ~/.XCompose
20:57:15 <elliott> ais523: there is actually a surge of Agda programs you actually want to run; there's even a webframework
20:57:29 <elliott> ais523: but they're all very, very slow
20:57:35 <ais523> elliott: Agda compiler that produces fast code
20:57:37 <elliott> ais523: you end up writing the performance-critical code in Haskell and FFIing to it from Agda, usually
20:57:42 <elliott> (cue laugh track)
20:57:48 <elliott> Deewiant: thanks for your exciting mycology messages btw :P
20:58:36 <Deewiant> Thanks for either pointing me to a new interpreter or reminding me about one I'd forgotten about
20:58:45 <Deewiant> I saw it earlier but I thought it was the same as zfunge
20:59:34 <ais523> elliott: they wrote a parser for expressions along the lines of + - * / numbers and parens
20:59:41 <elliott> Deewiant: You should totally rewrite slowdown so it doesn't depend on, like, fingerprints and shit... or wait, I actually got it running, didn't I
20:59:49 <ais523> with five operands, the resulting program only took a day or so to run
20:59:52 <ais523> they gave up waiting with six
20:59:56 <elliott> Deewiant: It is the same as zfunge, just not the same as zbefunge
20:59:58 <ais523> apparently they were happy with the reuslts, though
21:00:06 <elliott> Deewiant: How did you get a hold of zfunge? The link on http://flourish.org/zbefunge/ is broken
21:00:11 <ais523> (that is, the parser was written in Agda, and this is with the optimising compiler)
21:00:15 <Deewiant> elliott: Wayback machine
21:01:04 <Deewiant> elliott: And no, that calls itself zedfunge, that's a different thing from zfunge
21:02:07 <elliott> where nextInsPos' ip
21:02:08 <elliott> | fs !@@ (ip ^. ray) == space = [...]
21:02:08 <elliott> | not (isStringMode ip) && fs !@@ ray ip == semicolon =
21:02:10 <elliott> oh dear
21:02:46 <Deewiant> Also, random numbers are available only in FIXP, can't really do much about that
21:03:16 <Deewiant> If you want to write a ?-using random generator with the full 2^32 range, go ahead
21:04:32 <Taneb> Is it possible for software to be proprietry and open source?
21:05:11 <Taneb> Like, you can look at the inner workings of this software if you've paid for it, but don't distribute it. At all. And don't tell anyone.
21:05:17 <ais523> that's not open source
21:05:25 <ais523> it's known as "shared source"; Microsoft have some products like that
21:05:30 <Taneb> Oooh
21:05:34 <ais523> and UNIX was like that for years
21:05:38 <elliott> don't... don't do that, Taneb :P
21:05:43 <ais523> before it escaped into almost the public domain
21:06:04 <ais523> well, parts of it, anyway
21:06:16 <ais523> with both BSD and OpenSolaris, there isn't a lot left
21:06:26 <ais523> (although SCO managed to confuse everyone as to whether OpenSolaris was legal or not)
21:09:45 <oerjan> Taneb: your new language is _clearly_ misnamed. and you even admit to knowing why. hth.
21:10:09 <Taneb> If you can think of a better name, please tell me
21:10:21 <oerjan> Istanbul, of course.
21:10:31 <Taneb> It's so obvious
21:16:40 <elliott> copumpkin: Is this the Haskell confession booth?
21:16:45 <copumpkin> ?
21:16:53 <itidus20> this is the haskell showbag booth
21:16:55 <itidus20> step right up
21:17:16 <elliott> copumpkin: I've Haskell-sinned, y'see.
21:17:25 <elliott> Or, well, am planning to. I can get preemptive forgiveness, right?
21:17:26 <itidus20> sir you look awfully lucky if i have ever seen a lucky looking man it is you
21:17:38 <copumpkin> elliott: sure, go ahead
21:18:38 <elliott> copumpkin: I'm about to create a package that just imports a package, renames a few functions and changes the type signatures of a few, and re-exports the lot. It will introduce an additional dependency for no justifiable non-aesthetic gain and is completely self-centred.
21:18:40 <elliott> BUT I'M DOING IT ANYWAY
21:18:52 <copumpkin> lol
21:18:53 <copumpkin> go ahead
21:19:06 <elliott> But I _feel_ _bad_.
21:19:11 <elliott> So bad.
21:19:43 <itidus20> why does my heart-- feeel so bad
21:19:48 <itidus20> why does my soul
21:20:34 <oerjan> itidus20: too much pasta. hth.
21:21:08 <elliott> Anyway it's edwardk's fault for making the StateT modify and put functions in data-lens return the modified value.
21:21:11 <elliott> ALL. HIS. FAULT.
21:22:02 <itidus20> best cure for a psychotic break is a glass of your brothers alcohol.. although maybe that wasnt what happened.. who knows.. who cares
21:23:47 <itidus20> my subconcious seems to know its place for now
21:23:57 * oerjan is unclear whether itidus20 is breaking down or quoting lyrics
21:24:05 <itidus20> lol..
21:24:11 <itidus20> no i seem to be ok
21:24:42 <monqy> elliott: i still don't see what's so bad about that you can just discard them right???
21:24:53 <monqy> elliott: or is this all just about going against your convention
21:25:33 <elliott> monqy: yeah but I have to put "ignore" everywhere so that I can still return -> Shiro () in my actions that have NO USEFUL RETURN VALUE
21:25:35 <elliott> and
21:25:37 <elliott> if I just do
21:25:41 <elliott> "foo [percent]= blah"
21:25:42 <elliott> in a do block
21:25:43 <elliott> it warns me
21:25:46 <elliott> because OMG UR THROWING IT AWAY
21:25:48 <elliott> and tells me to do
21:25:51 <elliott> "_ <- foo [percent]= blah"
21:25:53 <itidus20> someone once told me that there are a surprising number of chemical paths to creating alcohol
21:25:54 <elliott> and i am like FUCK OYU........
21:26:12 <ais523> itidus20: it's a pretty simple chemical
21:26:36 <monqy> that reminds me I've been playing with a really stupid alternative to do notation I made up and I don't know if it's worth using or just incredibly stupid
21:26:52 <elliott> monqy: tlel us.....
21:27:47 <zzo38> monqy: What is it?
21:27:48 <Sgeo_> Dangit, someone needs to remind me to refund that person
21:27:52 <monqy> basically there are two columns, one with sequencing operators and the like, and one with everything else, and that's about it
21:27:54 <oerjan> CH3CH2OH
21:28:10 <elliott> monqy: showe use
21:28:18 <monqy> will contrive example
21:29:44 <monqy> one problem with contriving example is im so bad at it
21:29:46 <monqy> hlep
21:30:37 <monqy> I try writing something to show off how to do something but there's a better way and it makes me feel bad
21:30:46 <elliott> monqy: a simple, gussing game???
21:30:50 <elliott> or...
21:30:52 <elliott> i dontnete know..
21:30:57 <elliott> some list monad code to do pythagoran triples
21:34:49 <oerjan> > do x <- [1..]; y <- [1..x `div` 2]; let ss = x*x-y*y; z = round . sqrt $ fromIntegral ss; guard (z*z == ss); return (x,y,z)
21:34:50 <lambdabot> <no location info>: parse error on input `;'
21:34:58 <oerjan> erm
21:35:11 <oerjan> > do x <- [1..]; y <- [1..x `div` 2]; let {ss = x*x-y*y; z = round . sqrt $ fromIntegral ss}; guard (z*z == ss); return (x,y,z)
21:35:13 <lambdabot> [(13,5,12),(17,8,15),(25,7,24),(26,10,24),(34,16,30),(37,12,35),(39,15,36),...
21:35:19 -!- ais523 has quit (Remote host closed the connection).
21:35:20 <elliott> monqy: hepl
21:35:44 <oerjan> hum i feel something missing
21:35:47 <monqy> im so bad
21:35:56 <oerjan> oh right
21:36:03 <elliott> monqy: hvae you writen exmaple yet
21:36:17 <monqy> no ;_; ;-;
21:36:22 <elliott> monqy: try,,,
21:36:57 <oerjan> > do x <- [1..]; y <- [1..x-1]; let {ss = x*x-y*y; z = round . sqrt $ fromIntegral ss}; guard (ss < y*y); guard (z*z == ss); return (x,y,z)
21:36:58 <lambdabot> [(5,4,3),(10,8,6),(13,12,5),(15,12,9),(17,15,8),(20,16,12),(25,20,15),(25,2...
21:37:33 <elliott> oerjan: i don't think you need sqrt...
21:37:37 <elliott> iirc there's a very easy wayto do it
21:37:49 <elliott> List comprehensions
21:37:49 <elliott> An interesting thing to note is how similar list comprehensions and the list monad are. For example, the classic function to find Pythagorean triples:
21:37:50 <elliott> pythags = [ (x, y, z) | z <- [1..], x <- [1..z], y <- [x..z], x^2 + y^2 == z^2 ]
21:37:53 <elliott> This can be directly translated to the list monad:
21:37:53 <elliott> import Control.Monad (guard)
21:37:53 <elliott> pythags = do
21:37:55 <elliott> z <- [1..]
21:37:57 <elliott> x <- [1..z]
21:37:59 <elliott> y <- [x..z]
21:38:01 <elliott> guard (x^2 + y^2 == z^2)
21:38:03 <elliott> return (x, y, z)
21:38:15 <oerjan> elliott: i'm trying not to iterate across all z's duh
21:38:19 <elliott> oh
21:40:04 <oerjan> i guess they haven't put monad comprehensions in lambdabot yet...
21:40:27 <elliott> im a nomod camprenson
21:40:43 <oerjan> > [x | x <- Just "test"]
21:40:44 <lambdabot> Couldn't match expected type `[t]'
21:40:44 <lambdabot> against inferred type `Data.Mayb...
21:40:58 <elliott> monqy: fuck it, im delaying the lens conversion
21:41:00 <elliott> too much work
21:41:05 <monqy> :(
21:41:46 <elliott> ?src IO fail
21:41:46 <lambdabot> fail s = failIO s
21:41:49 <elliott> ?src failIO
21:41:50 <lambdabot> failIO s = ioError (userError s)
21:41:55 <elliott> ?src userError
21:41:55 <lambdabot> Source not found. Maybe you made a typo?
21:41:59 <elliott> >_<
21:42:00 <oerjan> elliott simply cannot focus on his lens work
21:42:09 <elliott> hey oerjan how would I catch _just_ pattern matching errors
21:42:12 <elliott> in... actually in StateT
21:42:18 <elliott> but
21:42:22 <elliott> only monadic pattern match errors
21:42:24 <elliott> i.e. do notation
21:42:32 <elliott> ?src StateT fail
21:42:33 <lambdabot> Source not found. Are you on drugs?
21:42:36 <olsner> harr harr, *focus* on *lens* work
21:42:36 <elliott> he;p
21:42:42 <elliott> olsner: huk huk
21:43:06 <oerjan> elliott: put it above something without IO?
21:43:19 <elliott> oerjan: I need IO at the bottom
21:43:30 <elliott> oerjan: if I put MaybeT at the front all hell breaks loose, I really need it directly in StateT IO
21:43:35 <elliott> to avoid a mess of typeclass slowdown
21:44:40 -!- Taneb has quit (Read error: Connection reset by peer).
21:45:47 <oerjan> what about a newtype with its own fail definition?
21:46:10 <elliott> oerjan: nope. (well, yes. but: no, it's not an option)
21:46:18 <elliott> I just need to know what the exception looks like :P
21:46:19 * elliott tests it
21:48:01 <monqy> is there any sort of lambda-case or lambda-if in (ghc) haskell
21:48:02 <elliott> Prelude Control.Exception Control.Monad.Trans Control.Monad.State.Strict> Control.Exception.catch (do Just 9 <- return Nothing; print "hi" :: IO ()) (\(SomeException e) -> print e)
21:48:02 <elliott> user error (Pattern match failure in do expression at <interactive>:1:29-34)
21:48:04 <elliott> ok well that's a start
21:48:05 <elliott> monqy: no
21:48:17 <monqy> :(
21:49:39 <oerjan> monqy: it's proposed, but...
21:49:39 <Deewiant> elliott: Is there any recommended way of doing configurationy stuff with tup
21:50:22 <CakeProphet> Deewiant: YAML
21:50:30 <CakeProphet> (no I don't know what you're talking about)
21:50:52 <Deewiant> Yes, that was rather obvious
21:51:14 <elliott> Deewiant: tup.config support is built in, so yes.
21:51:18 <elliott> Deewiant: Or do you mean autoconf
21:51:29 <Deewiant> elliott: I mean something more convenient than editing a file
21:51:34 <elliott> Deewiant: Kconfig
21:51:41 <elliott> Deewiant: The format is deliberately identical (gittup uses this extensively)
21:51:54 <Deewiant> How does one use Kconfig if one is not Linux
21:52:09 <elliott> The same way BusyBox, buildroot, ..., do
21:52:17 <elliott> Deewiant: If you want autoconf-style "find the compiler and shit", you can actually use autoconf fairly trivially, FWIW
21:52:36 <pikhq_> Yeah, autoconf is surprisingly general.
21:52:38 <Deewiant> autoconf isn't Windows-friendly
21:52:43 <elliott> True, it isn't
21:52:47 <Deewiant> I wonder if Kconfig is
21:52:49 <elliott> Windows users are used to pain though ;-)
21:52:53 <pikhq_> Deewiant: Less so.
21:53:01 <pikhq_> Also, Windows isn't development-friendly.
21:53:05 <elliott> Deewiant: You may want to look at the http://gittup.org/ repositories for a large-scale Kconfig/tup usage
21:53:42 <elliott> Deewiant: A portable graphical Kconfig thing would be nice, as would something nicer than autoconf for automated compiler-finding, but... until then, Windows users can edit tup.config, I suppose
21:54:04 <elliott> pikhq_: Are you sure, like, the Qt Kconfig interface isn't portable?
21:57:01 <Deewiant> The tup kconfig doesn't even build the Qt interface :-P
21:57:15 <elliott> Deewiant: You don't need the modified kconfig
21:57:18 <elliott> That's just a gittup thing
21:57:41 <elliott> Deewiant: There's no special tup Kconfig integration, it's just that Kconfig "happens to" output in the exact tup.config format
21:57:54 <Phantom_Hoover> oerjan's dwarf died ;_;
21:58:11 <Deewiant> I know that
21:58:17 <elliott> Right
21:58:26 <Deewiant> I just don't know anything about Kconfig other than that it's used by Linux
21:58:52 <Deewiant> This is the first time I've run into it as a separate project :-P
21:58:54 <oerjan> oh noes
21:59:02 <elliott> Deewiant: You've never ever used BusyBox?
21:59:05 <Deewiant> Nope
21:59:29 <elliott> Other things use it too, I just can't recall what :P
21:59:37 <elliott> Deewiant: Anyway, the syntax is pretty nice
21:59:47 <elliott> OGDL-esque
21:59:48 <Deewiant> Well, maybe I've used it unknowingly but I haven't configured it or anything
21:59:50 <fizzie> Buildroot does too, IIRC.
21:59:57 <elliott> fizzie: I mentioned that, but that's almost the same thing as busybox
22:00:14 <elliott> config 64BIT
22:00:14 <elliott> bool "64-bit kernel" if ARCH = "x86"
22:00:14 <elliott> default ARCH = "x86_64"
22:00:14 <elliott> ---help---
22:00:14 <elliott> Say yes to build a 64-bit kernel - formerly known as x86_64
22:00:14 <elliott> Say no to build a 32-bit kernel - formerly known as i386
22:00:18 <elliott> config ARCH_DEFCONFIG
22:00:18 <elliott> string
22:00:20 <elliott> default "arch/x86/configs/i386_defconfig" if X86_32
22:00:24 <elliott> default "arch/x86/configs/x86_64_defconfig" if X86_64
22:00:26 <elliott> config GENERIC_CLOCKEVENTS_BROADCAST
22:00:28 <elliott> def_bool y
22:00:30 <elliott> depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
22:00:32 <elliott> That's basically the Kconfig format :-P
22:00:47 <olsner> "In fact, all you can really do with gittup.org is recompile things really fast and play nethack." :D
22:01:13 <oerjan> and you're all out of things to recompile, i take
22:01:25 <elliott> oerjan: "Go ahead -- try to change the ls on your system to print out extra messages for no reason!2 You can't do it!! Unless of course you're running gittup.org. But if you're running gittup.org, why aren't you playing nethack or needlessly recompiling things just for fun? In fact, how are you reading this webpage?? It doesn't even come with a web browser."
22:02:14 <elliott> Deewiant: But yeah, things that would be nice: a portable Kconfig or at leas something similar, plus something that takes a Kconfig file and some autoconf-esque declarations and tries to figure out values for them
22:02:15 <Deewiant> Is there a way of using Kconfig without importing more lines of code than there are in my project into my project
22:02:36 <elliott> Deewiant: If you want everyone else to have to find those same lines to compile them, sure
22:02:46 <Deewiant> So, no :-P
22:02:50 <Gregor> Deewiant: If Kconfig is longer than your project, you don't need that much configurability.
22:03:36 <elliott> Gregor: There is no real way to get lesser configurability that isn't text editing here, and Deewiant doesn't like text editors because he's a Windows user
22:03:41 <elliott> In fact, he doesn't even like words
22:03:54 <Deewiant> What's "that much configurability" :-P
22:04:00 <Deewiant> I just think that convenience is nice
22:04:26 <elliott> Deewiant: Ask pikhq_ for his tup+autoconf thing
22:04:29 <Deewiant> And I very rarely build stuff on Windows these days but I still think it's worth supporting
22:04:36 <elliott> I modified it to automatically do "tup init" and a few other things, but oh well :-P
22:04:43 <elliott> Deewiant: It was, well, the best autoconf on Windows could get
22:04:47 <elliott> Because it ran in under a second on Linux, rather than multiple seconds
22:04:57 <Deewiant> heh
22:05:04 <elliott> And it outputted in the correct format and all
22:05:11 <elliott> That's the most convenient way currently, IMO
22:07:30 <elliott> http://pulseaudio.org/ticket/672
22:08:26 <elliott> maybeShiro m = m `catchShiro` \(e::IOException) -> if isUserError e then reflect else io $ throwIO e
22:08:28 <elliott> oerjan: Rename my function, yo
22:08:47 <elliott> It used to make sense because it translated MaybeT Shiro into Shiro, but now it just handles certain types of exceptions and reflects on them :P
22:13:39 -!- augur_ has changed nick to augur.
22:15:24 <Deewiant> elliott: tup again: is there a generally used way of turning tup.config into, say, a .h, so that the project knows its configuration
22:16:19 <elliott> Deewiant: You want to read the entire thread "Support for -DFOO=@FOO"
22:16:21 <elliott> It's only two days old
22:16:33 <elliott> Basically, gittup does this by patching gcc, but there's an obvious way to do it without
22:16:48 <elliott> Deewiant: You probably don't want to turn it into an .h because that makes the dependencies less fine-grained
22:16:54 <elliott> Er, I think ;-)
22:17:03 <Deewiant> Howso
22:17:19 <pikhq_> Deewiant: There's been discussion on that, the best way I know of doing it currently on autoconf/tup is having autoconf generate a config.h in the mundane way.
22:17:24 <Deewiant> tup-users is down, hoody hoo
22:17:32 <Deewiant> Oh, F5 fixed it, fine
22:17:58 <elliott> pikhq_: Well, it's easy enough to
22:18:00 <pikhq_> Though there's certainly better ways of handling it, just nothing that's already written for you.
22:18:03 <elliott> : tup.config |> sed |> config.h
22:18:03 <oerjan> elliott: horriblyBrittleFunctionWhichWillBreakIfGHCEverChangesItsPatternMatchErrorStringsShiro
22:18:10 <elliott> oerjan: um, no it won't?
22:18:16 <elliott> oerjan: I gave the entire implementation there
22:18:25 <elliott> as long as do notation pattern matches "fail" on failure, which they will
22:19:01 <oerjan> oh i guess there won't be userErrors unless you make them
22:19:24 <pikhq_> elliott: Or : foreach *.c.in |> tup varsed %f %o |> %B.c
22:19:24 <oerjan> *other userErrors
22:19:24 <pikhq_> :P
22:19:42 <elliott> pikhq_: or that, yes
22:19:46 <Deewiant> Ah right, tup varsed, I forgot about that
22:19:46 <elliott> :P
22:20:17 <elliott> Yeah, you can have a config.h.in pretty easily with that
22:20:21 <elliott> Albeit redundantly
22:20:30 <elliott> You could also generate config.h.in from config.tup and then varsed it :-D
22:21:08 <Deewiant> Even if it's somewhat redundant it's better than splitting the configuration into two places
22:21:34 <pikhq_> If tup varsed were more unixy, and you didn't care about not-unix, !cc = |> tup varsed <%f | gcc -c -o %o - |> %B.o
22:22:20 <elliott> Now to BRB and thus deprive Deewiant of my wisdom temporarily
22:22:21 <Deewiant> Am I a bad person for using $(CC) instead of !-macros
22:23:44 <itidus20> you are not a bad person sir
22:24:06 <oerjan> indeed, he barely scratches 54 microhitlers
22:24:35 <oerjan> or wait is that nano
22:24:42 <itidus20> pico
22:24:52 <oerjan> let's not overdo it
22:25:22 <oerjan> if one microhitler is killing a few dozen people...
22:25:36 <itidus20> yeah even my left shoe registers on the picohitler level
22:25:40 <pikhq_> Deewiant: You want ! macros.
22:25:57 <Deewiant> Why
22:26:11 <pikhq_> Unless you like typing !cc = |> ^ CC %f^ @(CC) $(LOCAL_CFLAGS) $(%f_CFLAGS) @(CFLAGS) $(%f_CPPFLAGS) $(LOCAL_CPPFLAGS) @(CPPFLAGS) -c %f |> %B.o
22:26:22 <itidus20> http://photoshoplooter.tumblr.com
22:26:29 <pikhq_> Or !ld = |> ^ LD %o^ @(CC) $(LOCAL_CFLAGS) $(%f_CFLAGS) @(CFLAGS) $(%f_LDFLAGS) $(LOCAL_LDFLAGS) @(LDFLAGS) %f $(LOCAL_LIBS) $(%f_LIBS) @(LIBS) -o %o |>
22:26:34 <pikhq_> Over and over and over again.
22:26:35 <Deewiant> I just type $(CC) $(CFLAGS) -c %f -o %f
22:26:38 <itidus20> some of these are not completely terrible
22:26:41 <Deewiant> And I'm fine with that
22:27:13 <pikhq_> Congrats, you're going to be breaking some entirely reasonable expectations.
22:27:21 <Deewiant> Which are?
22:28:04 <oerjan> elliott: selfAwareShiro
22:28:06 <pikhq_> CPPFLAGS works. You can have per-file CFLAGS and per-directory in addition to global CFLAGS. You don't have giant piles of boilerplate.
22:28:30 <oerjan> (it reflects upon its actions)
22:29:11 <oerjan> especially the bad ones
22:29:41 <Deewiant> I fail to see the "giant piles of boilerplate" thus far
22:29:50 <Deewiant> But hmm, tup reads environment variables for that stuff?
22:29:58 <pikhq_> No, but autoconf does.
22:30:04 <Deewiant> I don't have autoconf.
22:30:08 <Deewiant> And I won't.
22:30:34 <pikhq_> Welp, you get to redo its functionality.
22:30:40 <Deewiant> Why.
22:31:19 <pikhq_> Though, not much needs to be done for anything well-behaved.
22:32:50 <Gregor> pikhq_: umlbox is so much better than tup
22:33:41 <pikhq_> Gregor: umlbox does something *entirely different* from tup.
22:33:45 <pikhq_> But umlbox is pretty neat.
22:35:57 <Gregor> pikhq_: Dude, oranges are so much better than apples.
22:36:41 <olsner> oh, UML stands for usermode linux, not UML
22:37:10 <pikhq_> Yes, it's the acronym expansion that doesn't summon much vomit.
22:37:12 <Gregor> olsner: The good UML, not the lame UML.
22:38:04 <oerjan> > 1/1.7
22:38:05 <lambdabot> 0.5882352941176471
22:38:30 <olsner> though, if there was a way to apply UML for this problem the result might actually be interesting
22:39:29 <oerjan> uniform modeling linux
22:41:30 <Gregor> Oh god now
22:41:32 <Gregor> Erm
22:41:38 <Gregor> Oh god no (odd typo)
22:46:44 <elliott> <Deewiant> Am I a bad person for using $(CC) instead of !-macros
22:46:52 <elliott> Yes
22:46:57 <elliott> <Deewiant> I just type $(CC) $(CFLAGS) -c %f -o %f
22:47:04 <elliott> You really, really want to use the ^^ syntax to give it a prettier output
22:47:08 <elliott> That's basically idiomatic
22:47:09 <Deewiant> No, I don't
22:47:10 <elliott> erm
22:47:11 <elliott> That's basically unidiomatic
22:47:12 <elliott> What you're doing
22:47:20 <elliott> Deewiant: Yes, you do
22:47:27 <elliott> It prints the real command on any error
22:47:35 <Deewiant> Oh, okay
22:47:38 <Deewiant> Then I do
22:48:08 <elliott> Deewiant: And basically, you want to use rules because that's how the conceptual model works; don't think of them as macros. For instance, if you have C files in another directory, you don'tw ant to copy-paste all that crap
22:48:17 <elliott> You just want to list the files needing compiled, with the cc rule
22:48:26 <elliott> And then either an ld rule if it's a binary or a different one if it's a library, etc.
22:48:45 <Deewiant> Yeah but right now I only have one directory
22:48:49 <Deewiant> YAGNI etc.
22:49:04 <elliott> Deewiant: It's like writing a C program without any functions because you only call them once
22:49:19 <elliott> It's like, what, fifty bytes added in total to convert it to using rules? :P
22:49:35 <Deewiant> It's a bunch of cognitive overhead to look at the rule syntax etc
22:50:00 <elliott> Deewiant: That's a typical "I don't know the language so I'll use it unidiomatically" argument :-P
22:50:20 <elliott> ": foreach a.c b.c c.c |> !cc |>" is not hard to understand by any stretch
22:50:28 <elliott> And the rule-defining syntax is ... basically identical to the syntax you're using now?
22:50:39 <Sgeo_> elliott, Phantom_Hoover, husup
22:50:43 <Sgeo_> date
22:50:48 -!- nooga has quit (Ping timeout: 240 seconds).
22:52:39 <Deewiant> elliott: If "cc -c" is CC, what's "cc -shared"
22:52:57 <elliott> Deewiant: A different action to compiling a C file
22:53:10 <elliott> Or, wait, no
22:53:11 <Deewiant> elliott: I mean, what to call it in ^^ :-P
22:53:14 <elliott> I forgot what -shared does :-P
22:53:21 <pikhq_> elliott: Output a .so
22:53:23 <elliott> Deewiant: I'd call it LD
22:53:23 <Deewiant> It makes a .so out of *.o
22:53:36 <elliott> The .so extension should make it obvious
22:53:49 <elliott> Since it's ^ LD [percent]o^ for linker things by convention
22:56:25 <Deewiant> elliott: It was 218 bytes added
22:57:08 <elliott> Deewiant: Oh no, it's zero point zero one percent of a floppy disk
22:58:15 <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:58:16 <Deewiant> It's fifteen percent of an IP packet!
22:58:31 <Deewiant> Or an MTU or whatever the correct term is
22:59:06 <elliott> `addquote <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:59:08 <HackEgo> 591) <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:59:39 -!- SimonRC has quit (Ping timeout: 260 seconds).
23:00:07 <elliott> BAD: U says atan(2348.2368) isn't 89.9756
23:00:11 <elliott> Deewiant: Precision requirements a little exacting there
23:00:34 <Deewiant> It's the correct result, better give it
23:00:48 <Lymee> > atan(2348.2368)
23:00:50 <lambdabot> 1.5703704753903236
23:00:52 <elliott> Deewiant: Do you want a precise result for sqrt two as well?
23:01:14 -!- SimonRC has joined.
23:01:21 <Lymee> > atan(2348.2368)*(180/pi)
23:01:22 <lambdabot> 89.97560051181826
23:01:33 <elliott> Oh, so that's what's wrong :-)
23:01:38 <Deewiant> elliott: I allow arbitrary rounding I think
23:01:48 <elliott> Deewiant: Fair enough
23:02:01 <Deewiant> At least for some reason some of them allow "0.1234 or 0.1235"
23:02:02 <itidus20> you won't get a rational answer for the sqrt of a prime
23:02:22 <itidus20> oh delete that remark
23:02:25 <itidus20> what i mean to say is
23:02:43 <itidus20> you will get either a rational or irrational answer for the sqrt of a prime
23:03:45 <oerjan> itidus20: do you wish to delete your last remark and undelete your first one? ;P
23:04:10 <oerjan> as it, whether you knew it or not, was entirely correct
23:04:59 <itidus20> cool
23:07:15 <elliott> degree :: (Double -> Double) -> (Double -> Double)
23:07:15 <elliott> degree f = (/pi) . (*180) . f
23:07:22 <elliott> I wonder if (times (hundredeighty/pi)) would be better
23:08:56 <oerjan> i suppose neither method is guaranteed to give the best answer for every float
23:09:35 <elliott> Dammit Deewiant, Mycology sucks and FIXP sucks and YOU suck
23:09:42 <elliott> I also blame you for FIXP, completely unreasonably
23:09:43 <elliott> HOW DOES IT FEEL
23:09:59 <Deewiant> I don't see why you're finding FIXP so difficult :-P
23:10:23 <elliott> Deewiant: I've worked on it for about ten minutes
23:10:26 <elliott> SO DIFFICULT
23:10:44 <elliott> BAD: b6A isn't 2
23:10:45 <CakeProphet> elliott is a noob.
23:10:47 <elliott> Deewiant: Oh what, it's bitwise?
23:11:01 <Deewiant> I remember nowt
23:11:36 <elliott> I should really capalise shiro
23:11:38 <elliott> ...
23:11:39 <elliott> cabalise
23:12:19 <elliott> GOOD: b6A is 2
23:12:19 <elliott> Hooray
23:13:02 <elliott> Deewiant: I wish you printed out the result you get when it's wrong :-P
23:13:32 <Deewiant> So do others
23:13:55 <Deewiant> It's too much of a pain
23:14:01 <elliott> Deewiant: Clearly you need to rewrite Mycology to be modular and object-oriented
23:14:06 <elliott> Or just make it generated
23:14:13 <elliott> Why the hell did you hand-write it anyway :-P
23:14:56 <Deewiant> Why not
23:15:19 <elliott> I wonder if it's the largest funge ninteyeight program
23:15:21 <elliott> Probably
23:18:15 <sebbu> Rsswssw
23:18:39 <elliott> sebbu: hi
23:21:22 <elliott> UNDEF: 2aaaa****J pushes 0
23:21:32 <elliott> Deewiant: Help what is even going on I don't even remember what the FIXP spec says, maybe I should read it
23:22:44 <Deewiant> > asin 20000
23:22:45 <lambdabot> NaN
23:22:52 <Deewiant> > asin 20000 :: Complex Double
23:22:53 <lambdabot> 1.5707963267948966 :+ (-10.596634732471074)
23:23:27 <elliott> Oh
23:23:35 <elliott> How the hell would you have a fixed-point complex funge
23:24:25 <Deewiant> You wouldn't with FIXP, at least
23:25:58 <Gregor> Wow, nasty thunderstorm ...
23:26:27 <Deewiant> I am asleep as of now -->
23:28:47 <zzo38> How can I do compose of two arguments in Haskell?
23:32:39 <oerjan> zzo38: could you rephrase that?
23:32:57 <zzo38> Don't worry I rephrased it properly on #haskell channel
23:33:03 <oerjan> ah
23:35:24 <Gregor> Damn you thunderstorm.
23:35:28 <Gregor> My kitty does not like thunderstorms.
23:35:57 <Phantom_Hoover> Awwwwwwwwwwwwwwwwwwww
23:37:53 * Phantom_Hoover → sleep
23:37:58 <elliott> Phantom_Hoover: YOU ABANDON ME
23:38:00 <elliott> IN MY FINEST HOUR
23:38:13 <elliott> HANDLEKINDLED CURSES YOU
23:38:19 <Phantom_Hoover> elliott, WELL OK GET DOING THINGS AND I CAN STAY UP FOR A FEW MINUTES
23:39:34 -!- FireFly has quit (Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.).
23:40:07 <elliott> Phantom_Hoover: OK DONE
23:48:41 -!- sllide has quit (Quit: Leaving).
23:54:35 -!- Phantom_Hoover has quit (Quit: Leaving).
23:58:19 <elliott> Where is that goddamn execution chamber.
23:59:44 <elliott> jesus christ we're rich
2011-08-14
00:01:48 -!- pikhq has joined.
00:02:27 -!- pikhq_ has quit (Ping timeout: 276 seconds).
00:03:12 <oerjan> @undo [x | Just x <- hm]
00:03:12 <lambdabot> concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) hm
00:03:22 <elliott> Lymee: Hey where are our barracks.
00:03:32 <Lymee> nya?
00:04:22 <elliott> Lymee: YOU ARE THE ONLY DF PERSON ONLINE OK
00:04:35 <Lymee> CHECK "R"
00:05:28 <elliott> Lymee: I did
00:05:33 <elliott> I found no barracks :P
00:05:37 <Lymee> Make one.
00:06:05 <elliott> Lymee: We have one.
00:06:08 <elliott> I just can't find it :P
00:06:21 <oerjan> make a barrack, call it obama
00:06:27 <Lymee> Check armor stands and weapon racks.
00:06:33 -!- zzo38 has left.
00:06:51 <elliott> Hmm
00:07:18 <elliott> Why does this guy have a weapon rack in his bedroom
00:07:41 <Lymee> Requirements probs.
00:08:43 <oerjan> elliott: you've found a budding terrorist!
00:10:46 <elliott> Oh fuck you Lymee, you're at happiness 0 nad have mandated the cosntruction of ````certain goods''''
00:10:50 <elliott> You know what it's time for you to do Lymee????
00:10:52 <elliott> It's time for you to DIE.
00:10:55 <Lymee> ;-;
00:10:55 <CakeProphet> what? the download link for Firefox 3.6 gives me version 5...
00:11:12 <elliott> Why'd you want 3.6
00:11:12 <monqy> how's monqy going
00:11:22 <elliott> monqy: Still our good ol' miner
00:11:25 <elliott> \
00:11:29 <monqy> do i have any miner friends
00:11:31 <CakeProphet> elliott: the plugin I need only works with 3.6
00:11:33 <elliott> monqy: A few
00:12:27 <elliott> Dammit PH, where is the execution chamber
00:12:57 <CakeProphet> what? no really this 3.6 download is 5.
00:12:58 <CakeProphet> WHY
00:12:59 <elliott> Lymee: Dear god, your bedroom is insane.
00:13:12 <Lymee> Lymee is insane.
00:13:31 <elliott> Lymee: http://ompldr.org/vOXcwdg
00:13:49 <monqy> what does that mean
00:13:56 <elliott> monqy: what mean
00:14:00 <elliott> monqy: All the floor tiles are engraved
00:14:06 <monqy> oh
00:14:11 <elliott> Basically Lymia is living in a queen's bedroom.
00:14:12 <monqy> what are the what are those taus
00:14:15 <elliott> She's only a fucking county.
00:14:21 <elliott> monqy: Uh, plants or something I think
00:14:31 <elliott> They're not taus
00:14:33 <elliott> I don't think
00:14:34 <Lymee> Plants.
00:14:42 <monqy> well they're somethings and I don't know what they are
00:14:47 <monqy> and they look kind of like taus
00:16:08 <elliott> Did PH build a ton of levers just so that I wouldn't use the execution chamber
00:16:10 <elliott> Sigh
00:18:14 <elliott> monqy: btw you are a girl and also, fifty-seven years old
00:18:49 <monqy> ok
00:19:17 <elliott> Lymee: Do countesses get elected, I suppose not
00:19:20 <elliott> And also I can't replace you
00:19:26 <elliott> So I guess I have to arrange a nice accident
00:19:37 <elliott> You're demanding an adamantine throne
00:19:41 <elliott> I don't like you, Lymee
00:20:43 <monqy> what would happen if execution
00:20:56 <CakeProphet> what... I need 3.6
00:20:59 <CakeProphet> WHAT IS THIS.
00:21:04 <monqy> what is that
00:21:06 <elliott> CakeProphet: just get it from the ftp dude
00:21:09 <elliott> <monqy> what would happen if execution
00:21:12 <elliott> she'd die
00:21:16 <elliott> and maybe tantrum spiral but probably not
00:21:20 <CakeProphet> oh nevermind I figured out the problem.
00:21:21 <monqy> do it do it do it
00:21:27 <CakeProphet> I was running firefox instead of ./firefox. :3
00:22:12 <elliott> smart
00:22:19 <elliott> monqy: i dont know how to work the execution chamber :(
00:22:29 <monqy> :(
00:22:35 <CakeProphet> yep I'm pro like that.
00:23:28 <elliott> Lymee: I want to remove all but my best engraver if I'm trying to give my bedroom a wonderful total engraving, right?
00:28:19 <elliott> thx Lymee
00:40:35 <elliott> Lymee: :(
00:40:52 <Lymee> I guess.
00:41:04 <elliott> I guess I'll let them all do it, since I have an awful lot of wall and floor to do
00:41:52 <elliott> Wait, you can't engrave floor?
00:42:40 <Sgeo_> A place of nostalgia for me is free again
00:42:42 <Sgeo_> <3
00:42:43 <elliott> Hmm, you're meant to be able to...
00:43:01 <elliott> Sgeo_: oh my god stop embarrassing yourself.
00:43:27 <elliott> Lymee: So, um... what does it mean if I try and engrave a floor and the designation just doesn't stick.
00:43:34 -!- Gregor has set topic: FALCON PAUNCH | iridium is too mainstream | http://codu.org/logs/_esoteric/.
00:43:40 <monqy> elliott: jokes on you; sgeo has no shame
00:44:54 <Lymee> elliott, I... don't think that's happened before.
00:44:57 <Lymee> Is it constructed?
00:49:20 <elliott> Yes.
00:57:56 <Lymee> You can't engrave constructed flooring or walls.
01:00:44 <elliott> Lymee: But why/
01:01:00 <elliott> And... can I somehow get natural floor to... grow?
01:01:25 <Lymee> Nope~
01:01:32 -!- Sgeo has joined.
01:01:32 <Lymee> Not unless you want to cast obsidian
01:01:44 -!- Sgeo has quit (Client Quit).
01:02:02 <elliott> Lymee: How
01:02:26 <Lymee> Mix water and lava.
01:03:38 <elliott> Sounds easy :-P
01:04:08 <oerjan> this will clearly end well.
01:07:08 -!- cheater_ has joined.
01:09:11 <elliott> Lymee: Why did nobody tell me :P
01:09:26 <Lymee> Tell you what?
01:09:37 <elliott> That you can't egnave constructed floor
01:09:46 <Lymee> :kyubey: You never asked.
01:10:08 -!- cheater__ has quit (Ping timeout: 250 seconds).
01:10:29 <Gregor> Argh networking argh.
01:10:43 <elliott> Gregor: UMLBox again?
01:10:48 <Gregor> elliott: Naturalismo.
01:11:10 -!- elliott_ has joined.
01:11:15 <elliott_> <elliott> Gregor: UMLBox again?
01:11:19 -!- elliott has quit (Read error: Connection reset by peer).
01:11:20 <Gregor> <Gregor> elliott: Naturalismo.
01:11:26 <oerjan> i'm sure elves should be able to engrave wood *cackles evilly*
01:11:41 <elliott_> oerjan: Too busy killing 'em
01:11:59 <Lymee> Why does DF have no support for cross-species migration?
01:12:00 <elliott_> Gregor: Dude, you really want a generic host<->guest communication mechanism :P
01:12:05 <elliott_> Gregor: It would make your life _so much easier_.
01:12:24 <Gregor> elliott_: DO NOT WANT TO HACK KERNEL :(
01:12:42 <elliott_> Gregor: Wait
01:12:44 <elliott_> Gregor: Why not just use a FIFO
01:12:50 <elliott_> Or unix socket
01:12:50 <elliott_> On the host filesystem
01:12:54 <Gregor> elliott_: FIFOs aren't communicated host->guest
01:12:54 <elliott_> And expose that to the guest
01:12:58 <elliott_> Unix socket?
01:13:04 <Gregor> Nope
01:13:09 <elliott_> That's stupid
01:13:12 <elliott_> What are you meant to do
01:13:17 <Gregor> Cry
01:13:20 <elliott_> No but really
01:13:23 <elliott_> s/ / /
01:15:08 <elliott_> Gregor: Wait
01:15:15 <elliott_> Gregor: You communicate through stdout and stdin, right?
01:15:22 <elliott_> Why not just make another tty for doing communication on
01:16:21 <Gregor> elliott_: Um ... OK, I can do that ...
01:16:51 <elliott_> Gregor: Well, it'd work, wouldn't it?
01:16:55 <Gregor> Yup
01:16:56 <elliott_> And it's a simple bytestream
01:17:03 <elliott_> And you can just tunnel all sockets and the like over that with a simple binary format
01:17:08 <elliott_> Or make one tty per socket, if that's feasible?
01:17:18 <elliott_> That would be simpler, no protocol involved apart from a "lol gimme socket" tty
01:18:57 <Gregor> I think the max # sockets is 20? (10 tty's, 10 ttyS's)
01:19:03 <Gregor> That might be feasible ...
01:19:05 <Gregor> Lesse ...
01:19:13 <elliott_> Gregor: Ehh, just do it over one tty
01:19:17 <elliott_> That's probably less work
01:19:35 <elliott_> I mean, yeah, you need to define a protocol, but it can be a super-trivial one
01:19:47 <pikhq> Only need to mux, really.
01:20:04 <elliott_> Gregor: Note that your "sockets" still involve using a totally different API for any socket-using program :P
01:20:13 <elliott_> So you still need a custom-written HTTP proxy, but that's like fifty lines of Python
01:20:28 <Gregor> Or ... socat :P
01:20:38 <elliott_> Gregor: socat understands your special protocol?
01:20:50 <Gregor> It does if I expose it as a UNIX domain socket on both ends *shrugs*
01:20:53 <elliott_> (i.e. "prefix every packet with the socket ID" :P)
01:21:04 <pikhq> elliott_: Why HTTP?
01:21:06 <elliott_> Gregor: Oh, you mean just have a general socketotrond?
01:21:11 <pikhq> Tunnel OpenVPN over this.
01:21:13 <elliott_> pikhq: That's all HackEgo allows
01:21:17 <Gregor> elliott_: That's what I was thinking.
01:21:21 <pikhq> Laaaame!
01:21:35 <elliott_> Gregor: Still makes opening a socket have a special protocol, unless you override libc :P
01:21:38 <elliott_> But yeah
01:21:44 <elliott_> That's basically what I meant
01:22:32 <elliott_> Gregor: But yeah, you definitely want to do it with one tty, because making ttys on-the-fly and the like sounds even more painful than a little protocol :P
01:22:41 <elliott_> TCP over pty: the best?
01:22:48 <elliott_> Wait
01:22:48 <Gregor> elliott_: Actually that doesn't sound particularly difficult *shrugs*
01:22:49 <elliott_> <Gregor> I think the max # sockets is 20? (10 tty's, 10 ttyS's)
01:22:52 <elliott_> Gregor: You can have arbitrary ptys...
01:22:55 <elliott_> Can't you?
01:22:57 <elliott_> More or less?
01:23:05 <Gregor> elliott_: Those that are communicated host-to-guest; they're not pty's as far as the guest is concerned.
01:23:09 <elliott_> I thought that limitation was Old-Style.
01:23:11 <elliott_> Gregor: Ugh >_>
01:23:37 <elliott_> Gregor: A one-tty solution is more elegant, then, my critical IRC bot application requires twenty-one socket ;-)
01:23:38 <elliott_> s
01:23:44 <elliott_> Also it'd be eighteen
01:23:47 <elliott_> One is stdio
01:23:54 <elliott_> One is the socket-creation-and-closing service
01:24:52 <Gregor> Surely somebody's already solved this problem.
01:24:55 <Gregor> Modulo the UML part.
01:25:06 <Gregor> The "mux a bunch of sockets over a single I/O device" problem.
01:25:06 <elliott_> Gregor: The UML part is what makes it a problem, man :P
01:25:16 <Gregor> I'm not willing to write code :P
01:25:29 <elliott_> Gregor: Dude, you can write a trivial program for this in like ten minutes :P
01:25:35 <elliott_> Oh god, you're going to rope me into this aren't you >_<
01:25:43 <elliott_> REMIND ME NEVER TO GIVE IDEAS
01:25:44 <Gregor> Maaaaaaaaybe.
01:26:38 <elliott_> It's literally just (:open,server,host) --> id|:fail; (:send,id,text) --> bytes|:fail; (:recv,id,bytes) --> buf|:fail
01:26:39 <elliott_> Or whatever :P
01:26:46 <elliott_> Oh, and (:close,id) I guess
01:26:58 <elliott_> Obviously that doesn't cover all of networking ever, but all you need is basic TCP/IP
01:27:49 <Gregor> Yeahyeahyeah, I'mma start working on it now >_<
01:27:56 <elliott_> Gregor: Too late, I opened up a file :P
01:28:02 <Gregor> Yessss, now I don't have to.
01:28:16 <elliott_> Gregor: So I was thinking I'd write it in Haskell instead of Python................
01:28:28 <Gregor> I was thinking I'd write it in C ...
01:28:32 * elliott_ sits in his Passive-Aggressive Programming Warchair.
01:28:47 <elliott_> Gregor: Hmm, what is the actual tty interface you get?
01:28:55 <elliott_> Like, can both the host and client literally just read from stdin/write to stdout?
01:29:24 <Gregor> Well, the guest would be communicating to /dev/ttyS<whatever>, and the host would be using FIFOs.
01:29:47 <elliott_> Yah, but I just mean, how easy is it to plug a simple stdin/stdout program into the host/client end of the deal
01:29:53 <elliott_> Mostly the host I guess, since the client part is easy
01:30:34 <Gregor> On the host you'd have to use FIFO's, stdin/stdout are already taken.
01:30:42 <Gregor> So, y'know, simple :P
01:30:46 <elliott_> Right :P
01:30:50 <elliott_> I've just avoided FIFOs religiously.
01:31:31 <Gregor> You realize that anything you write in Haskell I'll just have to rewrite in C, right? :P
01:31:39 <elliott_> I'm writing it in Python :P
01:32:18 <elliott_> Unless that doesn't meet your LANGUAGE REQUIREMENTS
01:32:28 <elliott_> Depending on Python in the host and guest is not the most strenuous thing :P
01:32:31 <Gregor> The reason I wanted to write it in C is so that it could run on the guest with no requirements whatsoever (even no FS if necessary)
01:32:45 <elliott_> Well, you can statically link the Python interpreter with a script.
01:32:46 <Gregor> Errm, not "no FS", but "host FS not loaded yet"
01:32:52 <elliott_> But I don't know why you'd want to do THAT :P
01:33:05 <elliott_> Gregor: BTW, you know Haskell can be statically linked too? :P
01:33:15 <Gregor> Producing a, what, 15MB binary?
01:33:19 <Gregor> For Hello, world?
01:33:23 <elliott_> Gregor: Nah
01:33:34 * elliott_ measures out of curiosity
01:34:38 <elliott_> -rwxr-xr-x 1 elliott elliott 2.1M 2011-08-14 02:35 hello
01:34:41 <elliott_> Less if it wasn't glibc
01:34:45 <elliott_> Probably less with the LLVM code generator
01:34:51 <elliott_> Oh, that's not stripped
01:34:58 <elliott_> -rwxr-xr-x 1 elliott elliott 1.6M 2011-08-14 02:36 hello
01:35:11 <elliott_> Gregor: It's whole kilobytes bigger than the equivalent C program statically linked with glibc :P
01:35:12 <pikhq> And getting rid of glibc would remove at least a meg of that.
01:35:39 <CakeProphet> elliott_: that's THOUSANDS of bytes!
01:36:07 <elliott_> Gregor: But sure, I am able to write C programs, the question is whether you want it with lots of bugs or not ;D ;D ;D ;DD:D:D:D:D:D:D:D:
01:36:10 <elliott_> Yeah OK fine /me opens host.c.
01:36:19 <Gregor> Python is probably fine :P
01:36:32 <Gregor> (The more I think about "standard use", the more C is fine ... )
01:36:42 <elliott_> Gregor: "Standard use"?
01:36:45 <elliott_> I don't actually know what you mean :P
01:36:52 <Gregor> Common use of umlbox.
01:36:59 <CakeProphet> Emoticon most commonly used by programmers: :P
01:37:03 <elliott_> Gregor: Do you mean to s/C/Python/?
01:37:05 <Gregor> Which would generally include Python on the guest; and if it didn't, you probably don't care about X11 or networking.
01:37:36 <elliott_> Gregor: X11? Whoo boy :P
01:37:48 <Gregor> X11 isn't difficult if you have UNIX sockets *shrugs*
01:38:04 <Gregor> My mind keeps wandering back to X11 even though I care about it roughly none at all :P
01:38:16 <Sgeo_> IRC quirk most common to mostly programmers: !=
01:38:41 <elliott_> def read_string(tty):
01:38:41 <elliott_> bytes = tty.read(1)
01:38:41 <elliott_> return tty.read(bytes)
01:38:44 <elliott_> Gregor: Look at mah ad-hoc format
01:39:00 <Gregor> Really? 255 bytes per packet max?
01:39:05 <elliott_> Gregor: Oh, point >_>
01:39:06 <Gregor> Can't we make it ... 65536?
01:39:10 <elliott_> Yeah aight :P
01:39:16 <elliott_> I was writing cmd_connect
01:39:19 <elliott_> So that hadn't crossed my mind
01:39:50 <CakeProphet> elliott_: the unecessary use of variables is apalling.
01:39:59 <elliott_> ord(bytes[0]) + (ord(bytes[1]) << 8)
01:40:03 <elliott_> LOOK AT MAH LITTLE-ENDIAN NETWORK PROTOCOL
01:40:05 <elliott_> <-- DOESN'T GIVE A FUCK
01:41:06 <Gregor> elliott_: You should also have a socket ID in that ad-hoc format :P
01:41:18 <elliott_> Gregor: Umm, that's just to read a string internally
01:41:21 <elliott_> e.g.
01:41:23 <elliott_> def cmd_connect(tty):
01:41:24 <elliott_> host = read_string(tty)
01:41:24 <elliott_> port = read_string(tty)
01:41:53 <elliott_> c[9][0]abcdefghi[9][0]999999999 would be the thing to send to connect to abcdefghi:999999999
01:42:17 <CakeProphet> sum(map(ord,bytes[:2])) << 8
01:42:25 <elliott_> CakeProphet: That... no.
01:42:44 <CakeProphet> what?
01:42:47 <Gregor> elliott_: ... wha? I get the feeling that we're writing very different things :P
01:42:55 <Gregor> (Or rather, I'm imagining vs you're writing)
01:43:05 <elliott_> Gregor: There needs to be a protocol for the guest to tell the host it wants to make a new socket.
01:43:20 <elliott_> Basically, I'm doing everything over one tty because it's simpler, and you there's four commands: connect, disconnect, send, recv.
01:43:32 <elliott_> Obviously connect has to take two strings, host and port, so I'm just using a simple length-prefixed thing
01:43:35 <Gregor> elliott_: No, that's bad and nasty, it'd require a bunch of security shit to make sure you only did "OK" connections.
01:43:37 <elliott_> Connect will yield a socket ID that the guest can then use.
01:43:52 <elliott_> Gregor: Well, how do you avoid that? You need some sort of explicit checks
01:44:07 <Gregor> elliott_: All I wanted was a UNIX-domain socket multiplexor.
01:44:17 <elliott_> Gregor: That breaks most of HackEgo
01:44:24 <elliott_> Because sockets would have to be known beforehand
01:44:27 <Gregor> elliott_: Not if one of those UNIX domain sockets is an HTTP proxy.
01:44:35 <elliott_> Well, okay
01:44:43 <elliott_> I guess that works :P
01:44:46 <CakeProphet> elliott_: it's more pythonic, bro. :3
01:44:49 <Gregor> I'm trying to punch the smallest possible hole :P
01:44:52 <elliott_> CakeProphet: It _doesn't do the right thing_.
01:45:04 <elliott_> Gregor: Fairy nuff then
01:45:08 <Gregor> elliott_: And if they could be either UNIX domain or TCP, even better >_>
01:45:24 <elliott_> Gregor: Surely there's some program to do UNIX domain → TCP
01:45:25 <elliott_> Erm
01:45:27 <elliott_> And vice-versa
01:45:32 <Gregor> elliott_: Anyway, it'd require both socket IDs and connection IDs, plus length, plus ... now you see why I didn't want to do this :P
01:45:38 <Gregor> elliott_: Yeah, it's called socat :)
01:45:46 <elliott_> Connection IDs? Can't you just enforce that at the guest layer
01:45:55 <pikhq> CakeProphet: Uh, that's (ord(bytes[0]) + ord(bytes[1]) << 8.
01:45:58 <pikhq> CakeProphet: n00b.
01:46:00 <Gregor> elliott_: You can have multiple separate connections to a single UNIX domain socket.
01:46:01 <CakeProphet> yes I see that now.
01:46:09 <elliott_> Gregor: Yeah, but is there any reason to support that?
01:46:27 <Gregor> elliott_: ... yeah, so you can have multiple connections to the HTTP proxy ... for, like, making two requests ...
01:46:32 <elliott_> Well, OK :P
01:46:50 <elliott_> Oh, sweet, Python's API for this seems easy enough
01:46:55 <elliott_> Gregor: OK, well the changes are minor then
01:47:03 <elliott_> Gregor: The "c" command just connects to a Unix domain socket
01:47:06 <elliott_> It should just take the filepath of the socket
01:47:11 <elliott_> And check that it's in its "allowed sockets" list
01:47:14 <elliott_> (host filepath)
01:47:39 <Gregor> elliott_: It would be easier I think for both of us if it just took an index into that list.
01:47:48 <elliott_> That would work too
01:48:19 <Gregor> That way, you just connect to one of them on the guest, the proxy sends a connection for that same ID, and it connects on the host; the guest doesn't even need to know what it was called on the host.
01:48:27 <monqy> elliott_: so i made a guessing game but half of it doesn't work in the general case help
01:48:35 <elliott_> monqy: lol
01:48:49 <monqy> elliott_: it's the tamplete haskell half
01:49:06 -!- zzo38 has joined.
01:49:36 <elliott_> Gregor: Should I bother with buffering or should I just assume that every packet is small enough >_>
01:49:45 <elliott_> Or do Unix sockets not even act the same here
01:49:48 <elliott_> Help I am a citizen of TCP
01:49:55 <elliott_> monqy: Why do you need TH for a guessing game
01:50:05 <Gregor> Donno
01:50:35 <monqy> elliott_: i tried making case-lambda but i don't know how to get the bindings from the pattern to transfer to the expression. luckily, the guessing game doesn' tneed that to work
01:50:40 <pikhq> elliott_: So the guessing game occurs at compile-time, of course.
01:51:27 <monqy> it's an ugly case lambda too because I didn't want to bother with parsing stuff in quasiquoters
01:54:00 <elliott_> Hmm, Python's standard libraries must come with an allocator of some kind
01:54:07 <elliott_> At this point Gregor whacks me for trying to conserve space in the list of connections
01:54:20 <monqy> why are you using python
01:54:29 <elliott_> monqy: Least common denominator
01:54:43 <monqy> hm?
01:54:49 <elliott_> It runs on everything
01:54:52 <elliott_> And isn't C
01:55:06 <monqy> oh
01:56:01 <monqy> what doesn't (implementation of a better language) run on
01:56:15 <monqy> or is python well-suited to your task
01:56:16 <monqy> whatever it is
01:56:30 <CakeProphet> elliott_: an allocator? lol
01:56:32 <PatashuWarg> does java run on everything yet
01:57:11 <elliott_> Gregor: Hmm, so wait, a UNIX domain socket is what it actually operates on too?
01:57:17 <elliott_> As in, the host talks to the guest through a UNIX domain socket
01:57:22 <elliott_> I was assuming a file-like device, which is stupid of me
01:57:42 <elliott_> I have a basic host.py written though
01:58:39 <Gregor> No, the host talks to the guest through a FIFO, and the guest talks to the host through a character device.
01:58:45 <Gregor> Both more file-like than socket-like.
01:59:08 <CakeProphet> elliott_: the only allocators I know of exist in the C API.
02:01:01 <elliott_> Gregor: Right.
02:02:30 <elliott_> Gregor: It's OK if reading or writing to one socket blocks everything until it goes thorugh... right? :P
02:02:53 <CakeProphet> select?
02:02:58 <Gregor> elliott_: I suppose.
02:03:04 <elliott_> CakeProphet: Complicates the internal protocol
02:03:08 <elliott_> Alright, how should I get this WIP .py to you so that you can see the protocol etc.; just sprunge it?
02:03:49 <elliott_> Gregor: http://sprunge.us/QGIP
02:03:59 <CakeProphet> elliott_: international mail.
02:04:13 <CakeProphet> you'll need to print it out and go buy a stamp.
02:04:20 <monqy> # lol I have no idea how to open a FIFO?? is this right?? help
02:04:24 <monqy> best comment best line
02:06:45 <Gregor> elliott_: Dood, just do the protocol on stdin/stdout.
02:06:56 <Gregor> I can open the FIFO with < lol.in > lol.out
02:07:06 <elliott_> Wait why did I even do
02:07:08 <elliott_> def recv_all(n):
02:07:08 <elliott_> bytes = ''
02:07:08 <elliott_> while len(bytes) < n:
02:07:08 <elliott_> bytes += tty.recv(n - len(bytes))
02:07:08 <elliott_> return bytes
02:07:10 <elliott_> the tty is reliable
02:07:11 <elliott_> lol
02:07:14 <elliott_> Gregor: Yeah OK will fix
02:07:22 <CakeProphet> elliott_: now obviously you should make a class on top of having functions. Like all of the standard Python modules.
02:07:40 <CakeProphet> and everyone will just use the functions anyways because they secretly hate OO
02:08:01 <Gregor> BBIAB
02:08:17 <elliott_> Gregor: client.py has to deal with a Unix domain socket which is rather less predictable, right?
02:08:24 <elliott_> BTW, I could extend this to TCP very, very easily, like a few lines
02:12:05 <elliott_> And, heh, my "TCP support" doesn't really maintain one socket it just lets people connect any time they want to it???? yeah
02:12:08 <elliott_> I guess that is okay maybe
02:12:52 <CakeProphet> def recv_all(n): return "".join(tty.recv(n-x) for x in xrange(n))
02:13:06 <elliott_> CakeProphet: How about ... no, it doesn't work that way.
02:13:18 <elliott_> But feel free to continue making incorrect simplifications of my code
02:21:19 <CakeProphet> nah I'm good. However: connections[conn_id] = None
02:21:20 <CakeProphet> why?
02:21:49 <elliott_> so you can't continue to use it
02:21:55 <elliott_> oh wait i should probably close the socket there lol
02:21:59 <elliott_> CakeProphet: also so it can be gc'd
02:22:19 <CakeProphet> to preserve the length of connections so that future conn_ids continue to increment?
02:22:26 <CakeProphet> no I was just wondering why you didn't delete the index instead.
02:22:35 <elliott_> because that would ruin every conn_id greater than that one??
02:22:47 <CakeProphet> right, okay.
02:27:13 <CakeProphet> for some reason having Nones in the list is terrible.
02:27:29 <CakeProphet> but oh well.
02:27:53 <elliott_> that's why I wanted an allocator
02:28:00 <elliott_> except it's just a one-byte allocator so it's really just a freelist
02:28:38 <CakeProphet> a dictionary and a max_conn_id would work, but... too much work really when the current approach works fine.
02:28:54 <elliott_> doesn't need a list
02:28:57 <elliott_> and that wouldn't work either
02:29:01 <elliott_> well
02:29:05 <elliott_> a list would have better memory characteristics
02:29:09 <CakeProphet> right.
02:29:32 <CakeProphet> except it's full of hideous Nones.
02:29:35 <CakeProphet> s/Nones/nuns/
02:30:19 <elliott_> not if you used a freelist.
02:30:26 <elliott_> well, it'd have nones, but they'd get filled instantly
02:30:52 <CakeProphet> ah, recycle the old ids?
02:32:20 <elliott_> yes, that is what a freelist is :P
02:33:40 <CakeProphet> a functional protocol would be interesting..
02:33:44 <CakeProphet> higher-order...commands?
02:38:24 -!- GreaseMonkey has joined.
02:46:45 <elliott_> Someone upgrade GHC for me so I can test this
02:46:48 <elliott_> TIA
02:49:27 <monqy> Transient ischemic attack.
02:50:05 <CakeProphet> terror induced ascension
02:52:26 <CakeProphet> Taxidermic Investigation Agency
02:53:13 <elliott_> thanks in advance
02:53:38 <CakeProphet> that one's too boring..
02:54:25 <CakeProphet> Tubular intermittent acceleration
02:59:17 -!- evincar has joined.
03:02:31 <elliott_> :t break
03:02:32 <lambdabot> forall a. (a -> Bool) -> [a] -> ([a], [a])
03:02:34 <elliott_> :t split
03:02:35 <lambdabot> forall g. (RandomGen g) => g -> (g, g)
03:02:38 <elliott_> please tell me you have data.list.split
03:02:40 <elliott_> eurgh
03:02:53 <elliott_> :t splitOn
03:02:55 <lambdabot> Not in scope: `splitOn'
03:15:30 <elliott_> CakeProphet: btw, it's not actually true that you need unsafeCoerce to do Data.Dynamic
03:15:34 <elliott_> because
03:15:34 <elliott_> cast :: (Typeable a, Typeable b) => a -> Maybe b
03:15:35 <elliott_> exists
03:16:09 <elliott_> data Dynamic = forall a. (Typeable a) => Dynamic a
03:17:44 <oerjan> three guesses what already mentioned function is used to implement cast...
03:19:13 <elliott_> oerjan: Shhhhhhhhhhhhh, obviously it's a primitive.
03:19:20 <elliott_> And all the values are type-tagged at runtime so it's OK.
03:37:35 -!- pikhq has quit (Ping timeout: 252 seconds).
03:37:37 <Sgeo_> http://twitter.com/#!/catnutritionist
03:38:43 -!- pikhq has joined.
03:38:58 <pikhq> Observation: a power supply should not be accessible by foot.
03:39:04 <pikhq> Erm, bleh.
03:39:11 <pikhq> s/supply/strip/
03:43:50 <elliott_> im a power suply
03:49:43 <elliott_> pikhq does not understand suply society
03:55:25 -!- NihilistDandy has joined.
03:59:44 <evincar> I have just come to the conclusion that the IT industry is largely responsible for compensating for the failings of bad developers and user experience designers.
03:59:50 <elliott_> k
04:00:04 <NihilistDandy> evincar: Welcome to reality
04:00:24 <pikhq> I suppose next you'll be saying that the Emperor has no clothes.
04:01:03 <evincar> Naturally. Au naturel-ly. Naturellement.
04:01:33 <evincar> It's just depressingly amusing that such an industry can exist.
04:01:52 <elliott_> Hmm... @'s serialisation really needs work.
04:02:04 <Sgeo_> @ has serialisation?
04:02:07 <Sgeo_> @ has?
04:02:12 <elliott_> Sgeo_: What?
04:02:25 <evincar> Yeah, I thought @ was sort of a hipster thing.
04:02:31 <elliott_> evincar: What?
04:02:32 <Sgeo_> You're making it sound to me like @ exists in some form
04:02:32 <evincar> It doesn't "have" features.
04:02:35 <evincar> Not in the usual sense.
04:02:40 <elliott_> Sgeo_: No I'm not.
04:02:40 <evincar> They're different.
04:02:56 <Sgeo_> elliott_, or that there's a partial spec of serialisation
04:03:00 <elliott_> Sgeo_: I'm just doing this weird thing called "designing something before building it".
04:03:07 <elliott_> The spec exists in my head; it is deficient and vague.
04:03:09 <pikhq> @ has "serialisation" meaningfully distinct from "in memory representation"?
04:03:31 <evincar> pikhq: Well, you've got to make concessions to get the thing to run on existing hardware.
04:03:32 <elliott_> pikhq: Of course it does. You think that in-memory representation will work on an architecture with a different endianness?
04:03:35 <elliott_> Pointer size?
04:03:42 <pikhq> elliott_: Fuck reality.
04:04:05 <elliott_> It is not more pure to tie the system design to various variables of a specific machine when that is unnecessar.
04:04:07 <elliott_> unnecessary.
04:04:22 <pikhq> I still vote to copulate with reality.
04:05:53 <elliott_> pikhq: Anyway, in-memory representation has pointers.
04:06:00 <elliott_> Pointers are machine- and time-specific.
04:06:26 <elliott_> Unless you want it to do a massive lookup EVERY TIME IT WANTS TO DEREFERENCE A POINTER in which case, lol @ you.
04:07:20 <elliott_> pikhq: Come to think of it, in-memory representation includes machine code.
04:07:25 <elliott_> Also not viable.
04:07:59 <evincar> pikhq: Theory copulating with reality is known to produce useful, if imperfect, hybrids.
04:08:04 <NihilistDandy> elliott_: Did you finally get number keys, or are you copy-pasting @?
04:08:20 <elliott_> NihilistDandy: alt-q
04:08:26 <elliott_> q is also my favourite letter, so this makes me happy
04:08:26 <pikhq> I get the strong feeling that either @ is never happening or you're going to sit down to write it one day and the singularity happens the next day because of it. :P
04:08:29 <NihilistDandy> O.o
04:08:30 <elliott_> to clarrify, alt gr + q
04:08:34 <NihilistDandy> Ah
04:08:57 <evincar> pikhq: I'd bet my bottom dollar said day is fueled by meth.
04:08:57 <elliott_> pikhq: the design has been getting more concrete, so...
04:09:33 <pikhq> evincar: Given elliott's sleep habits, I don't think the meth will do anything notable.
04:09:43 <zzo38> I would like to see the design of @
04:09:50 <elliott_> zzo38: now, you mean?
04:09:56 <zzo38> No! I mean later.
04:09:59 <elliott_> oh good :D
04:10:33 <elliott_> the process of viewing the design of @ involves me remembering it and rewriting a quarter of it in the process while typing it out into irc
04:10:49 <elliott_> design documents are for squares and other rectangular shapes
04:11:02 <zzo38> You should make a proper design document.
04:11:30 <elliott_> but it keeps changing :(
04:12:25 <zzo38> What programming language would you use? LLVM?
04:12:52 <elliott_> you mean the top level that day-to-day things are actually written in? or something lower
04:13:04 <zzo38> I mean the system itself.
04:13:31 <elliott_> "the system" encompasses every single piece of code running on it :)
04:13:44 <elliott_> there's not really any one part you could call the kernel; it'd either be too small, or too big and fluid
04:13:57 <elliott_> unless you consider a scheduler and maybe an allocator of some sort a kernel
04:14:08 <evincar> I imagine there would be some funny business with assembly and C to get things up and running, at which point you can use whatever you like.
04:14:16 <zzo38> What would those parts be written in though?
04:14:17 <evincar> That is, whatever you're prepared to provide runtime support for.
04:14:31 <elliott_> evincar: No C. Ever.
04:14:52 <evincar> elliott_: Anything I don't have to write by hand is time saved. *shrug*
04:14:54 <elliott_> zzo38: To start with? Assembly. There's no other choice, really; it is the absolute lowest layer of the system.
04:15:04 <pikhq> evincar: C running on bare hardware *seems* like it'd be pretty much incompatible with everything else @ is.
04:15:09 <elliott_> zzo38: Once @ is fully bootstrapped, it'll just be rewritten in an @ assembler.
04:15:27 <elliott_> evincar: C has the wrong model. It cannot save me time because all its assumptions are wrong in the face of @.
04:15:45 <zzo38> Is it intended to run on many computers?
04:15:59 <zzo38> Or just one?
04:16:19 <pikhq> elliott_: I'm pretty sure there's a name for "a scheduler and maybe an allocator of some sort".
04:16:22 <pikhq> Exokernel.
04:16:39 <elliott_> zzo38: The basic model is such that @ would be more portable than typical operating systems; for instance, transferring binaries would be a rare operation, because of the security requirements (you'd basically either have to say "yes, I really want to do this risky thing" or provide a proof of the binary's safety, which would be quite thoroughly difficult).
04:17:11 <elliott_> zzo38: I am only planning to implement it for x86-64 computers to start with, but hopefully the non-portable parts could be kept to a minimum.
04:17:28 <zzo38> OK, that makes sense. But if you write the system in assembly language then you need to write it in the assembly languages for many computers!
04:17:28 <elliott_> For instance, like NetBSD, there is no reason that any driver would have to be CPU or bus-specific.
04:17:43 <evincar> elliott_: Are there applications in a traditional sense? Barring any details of persistent state, namelessness and the other peculiarities of @.
04:17:52 <elliott_> zzo38: Well, it's impossible to avoid writing any assembly at all without relying on someone else's assembly (e.g. GRUB).
04:18:08 <elliott_> But the scheduler code should be rather small, and the remaining assembly should merely involve boot-up and some other miscellaneous tasks.
04:18:41 <zzo38> Well, yes. You would still need to write things such as the MBR code in assembly. The other stuff could be written in LLVM so that much of it can easily be ported to other computers.
04:18:58 <elliott_> evincar: No. The definition of application is basically "the smallest non-composable unit of software"; information can't pass application walls without specific code to make it happen. That's pretty much antithetical to what @ is.
04:19:40 <zzo38> Do all programs need to be compiled and put everything together to make up the entire operating system?
04:20:36 <evincar> elliott_: How do I run existing software on it?
04:21:08 <elliott_> zzo38: Because of the safety, portability and openness reasons I mentioned, everything is stored as source code (well, ASTs; there's no real reason to have a textual form of source code when it's not explicitly requested). A major goal for the compiler is to be fast enough that code can be compiled "on-the-fly" without noticeable delays. (The Oberon system achieves this.)
04:21:22 <elliott_> So basically, things will be compiled as they're loaded, or speculatively, if the system thinks some code is about to be used.
04:21:29 <elliott_> evincar: Like, Windows or Unix software?
04:21:38 <Gregor> elliott_: http://web.purplefrog.com/~thoth/netpipes/encapsulate.html (I have no idea wtf this does, but it has pretty keywords)
04:21:38 <zzo38> OK.
04:21:55 <elliott_> Gregor: Did you see what I said? It does TCP now.
04:21:58 * Sgeo_ still wants to try Oberon
04:21:59 <evincar> Sure. Say I want to run Blender, make a 3D model, and if not actually save it, at least make sure that it continues to exist.
04:22:04 <elliott_> Sgeo_: Download the floppy, have fun
04:22:14 <elliott_> evincar: "Say I want to run Blender" <-- this is the first hurdle.
04:22:24 <zzo38> If you want to run existing software, could you use a C compiler or Pascal compiler or LLVM compiler or Haskell compiler or so on that is meant for this system?
04:22:44 <elliott_> evincar: You'll run it under a compatibility layer, which could be as coarsely-grained as a full qemu with an Ubuntu installation, to something that is just an implementation of C and the like, plus a shell, and the various POSIX functions.
04:23:01 <elliott_> evincar: The finer-grained the layer, the more pleasant an experience you're likely to have, but the more work someone else has had to do to make it happen.
04:23:05 <elliott_> zzo38: Yes.
04:23:10 <zzo38> In the case of Haskell, would you use a different type of main than other computers, but have a separate function to convert in case you need to run Haskell program meant for other systems?
04:23:31 <elliott_> Yes, that would be a reasonable approach. I'm not even sure you'd need a main value at all.
04:23:51 <zzo38> OK.
04:24:05 <Gregor> elliott_: Unlike you, I don't read backlog :P
04:24:15 <elliott_> Gregor: I pinged you
04:24:34 <elliott_> Gregor: tl;dr I asked a question about client.py, and then said that I generalised server.py to do TCP, but it might not behave correctly
04:24:45 <Gregor> Ah.
04:24:47 <elliott_> 02:08:17: <elliott_> Gregor: client.py has to deal with a Unix domain socket which is rather less predictable, right?
04:24:47 <elliott_> 02:12:05: <elliott_> And, heh, my "TCP support" doesn't really maintain one socket it just lets people connect any time they want to it???? yeah
04:24:48 <elliott_> 02:12:08: <elliott_> I guess that is okay maybe
04:24:49 <elliott_> Gregor: Thar you go
04:25:15 <elliott_> It basically treats (host,port) ~ path to domain socket.
04:26:09 <Gregor> Hm hm hm.
04:26:18 <Gregor> Yeah, that seems about right.
04:26:23 <Gregor> In fact, yeah, that's exactly right.
04:26:26 <elliott_> I mean, otherwise you'd have to enforce a one-person-per-TCP-socket thing.
04:26:28 <elliott_> Which is just stupid, so yeah.
04:27:24 <Gregor> Upon further investigation, I believe that encapsulate does in fact do everything I want, /except/ for actually creating/opening the sockets, which is kind of obnoxious :P
04:27:34 <Gregor> So, I continue to eagerly await your solution.
04:27:48 <elliott_> Gregor: Well, I just need refreshing on how client.py talks :P
04:27:51 <elliott_> server.py is through stdio
04:28:04 <elliott_> If client.py could be the same that would be nice
04:28:05 <Gregor> Also stdio.
04:28:08 <elliott_> e.g. via socat/nc
04:28:20 <elliott_> Aight then
04:28:21 <Gregor> It's via a tty device, but that's ultimately just stdio.
04:28:29 <elliott_> The tty device is owned by root, right?
04:28:34 <elliott_> So that nobody else can fuck with it :P
04:28:36 <Gregor> Naturalismo.
04:29:04 <elliott_> Gregor: How should it serve the creation of new sockets? Local TCP server?
04:29:46 <Gregor> Hmmmmm
04:29:56 <elliott_> It could use a FIFO too, I guess
04:30:00 <elliott_> Except that has awkwardness about it
04:30:02 <Gregor> Actually, that makes me think ... why do the server and client even need to be different?
04:30:19 <elliott_> Because... the server is on one end of the protocol and the client another? :P
04:30:31 <elliott_> Why does my toaster and my bread have to be different?
04:30:34 <elliott_> [asterisk]do
04:31:08 <Gregor> The server is accepting connections and the client is making connections, but ultimately those are just requests made through the multiplexing connection ...
04:31:23 <elliott_> Yes, but it's implemented with a custom protocol on top of Unix
04:31:51 <Gregor> Hm ... I feel like it would simplify things if they were the same, but ANYWAY, yeah, a local TCP server should be fine.
04:32:13 <elliott_> But the actual things it offers are solely Unix domain sockets, not TCP, yes?
04:32:18 <elliott_> Hmm, TCP might actually be more convenient
04:32:21 <elliott_> I mean, it's one less layer
04:32:59 <elliott_> I guess that makes X a pain, though
04:33:05 <elliott_> Whereas it's easy to turn a domain socket into TCP
04:33:08 <elliott_> Even though that's yet another program
04:33:17 <Gregor> Well, so long as you're implementing both on the host, wouldn't it make sense to implement both on the guest? So TCP can connect to TCP and UNIX to UNIX?
04:33:19 <elliott_> I don't really want to write code that serves domain sockets and TCP generically as either a domain socket or TCP
04:33:36 <elliott_> Gregor: The host doesn't distinguish, so you could even convert >_>
04:33:43 <elliott_> I guess I can do it, it's just that servers are always more of a pain than clients
04:33:48 <elliott_> The guest is a server, the host is a client :P
04:33:49 <elliott_> Sort of :P
04:34:07 <Gregor> But aren't servers for TCP and Unix painful in identical ways after the initial socket() call?
04:34:27 <elliott_> Well, yes :P
04:34:33 <elliott_> It's just STRICTLY MORE lines of server code :P
04:34:37 <elliott_> OK here goes.
04:35:12 <elliott_> Gregor: Hmm, do Unix sockets have a specific way of indicating "disconnection"?
04:35:14 <elliott_> I guess they just act like EOF
04:35:26 <Gregor> Yeah, which is the same as TCP.
04:35:41 <Gregor> Unless you're talking about the protocol, not the API?
04:35:47 <elliott_> API, yeah.
04:36:21 <Gregor> After socket() and bind(), the API is supposed to be the same ... that's, like, the whole point of all the complicated mess that is BSD sockets :P
04:36:31 <Gregor> Though Idonno if that translates into Python (I'd hope so)
04:36:39 <elliott_> Python's socket API is completely low-level.
04:36:47 <elliott_> It hurts only slightly less than BSD sockets because there's no fucking casting and htons and shit.
04:36:52 <elliott_> GOD I hate BSD sockets.
04:38:33 <Gregor> BSD sockets are yummy
04:39:11 <elliott_> I'm trying to figure out what you'd call the order-and-then-later-on-receive-vaguely-edible-junk place in a fast food store, because it's the perfect name for the TCP server socket this thing creates :P
04:39:19 <elliott_> I hope in the future people curse me for creating such a shitty protocol.
04:39:39 <elliott_> Of course, it's called the "wtf".
04:39:52 <pikhq> `addquote <elliott_> I hope in the future people curse me for creating such a shitty protocol.
04:39:56 <HackEgo> 592) <elliott_> I hope in the future people curse me for creating such a shitty protocol.
04:39:59 <elliott_> Gregor: What's a TCP port
04:40:02 <elliott_> A nice low one
04:40:20 <Gregor> elliott_: How about ... whichever port I ask for at runtime? :P
04:40:25 <pikhq> elliott_: Y'know, anyone can register a TCP port with IANA.
04:40:34 <elliott_> Gregor: Butbutbut... # 4/tcp Unassigned
04:40:45 <elliott_> tcpmux 1/tcp TCP Port Service Multiplexer
04:40:47 <elliott_> P E R F E C T
04:40:52 <Gregor> wtf
04:40:55 <elliott_> OK yeah fine :P
04:41:01 <elliott_> Gregor: what
04:41:16 <Gregor> elliott_: I don't understand why you would want a pre-specified TCP port .... this is the listening port that corresponds to one outgoing connection on the server, right?
04:41:36 <elliott_> This is the port that everything on the guest connects to when it wants to create a scoket.
04:41:38 <elliott_> socket.
04:41:45 <oerjan> !sanetemp 104
04:41:46 <EgoBot> 313.1
04:41:58 <Gregor> elliott_: ... huh?
04:42:11 <Gregor> elliott_: Why is there such a port? The available sockets should be predetermined.
04:42:21 <elliott_> Gregor: Ohhh, right
04:42:29 <elliott_> Gregor: I forgot that you're a crazy static guy :P
04:42:38 <Gregor> Security, dood :P
04:42:51 <Gregor> Make a very airtight box, then poke the smallest possible holes in it.
04:43:06 <elliott_> This is sooooooooo inelegant :P
04:43:13 <Gregor> That's why I wanted the connection requests to be by index instead of name too ...
04:43:21 <oerjan> *sigh*
04:43:25 <elliott_> oerjan: ?
04:43:26 <Gregor> Lemme fully articulate my thoughts:
04:43:33 <elliott_> Gregor: I do get it :P
04:43:35 <elliott_> I just lapsed thought
04:43:41 <Gregor> Okidoke
04:43:53 <oerjan> elliott_: someone's being funny with !sanetemp
04:43:58 <oerjan> !show sanetemp
04:43:58 <EgoBot> sh dc -e "1k?459.67+5*9/p"
04:44:01 <elliott_> oerjan: wat?
04:44:17 <elliott_> if ':' in arg:
04:44:18 <elliott_> start('tcp', n)
04:44:18 <elliott_> else:
04:44:18 <elliott_> start('unix', n)
04:44:24 <elliott_> I Can't Believe They're Not Interned Symbols
04:44:43 <oerjan> !sanetemp 104
04:44:43 <EgoBot> 313.1
04:44:52 <oerjan> ^ not particularly sane
04:44:54 <elliott_> Gregor: Hmm, I should probably specify the target paths and ports, huh >_>
04:45:15 <oerjan> > 313.1 - 273.15
04:45:16 <lambdabot> 39.950000000000045
04:45:18 <elliott_> Gregor: So the specification should look like "host:port" or "/foo/bar" for host.py, and "host:port:guestport" or "/foo/bar:/guestpath" for guest.py
04:45:53 <Gregor> elliott_: I don't see why the guest even needs to know what the host's ports are. If they're just by-index, then they just need to be in the same order.
04:46:00 <Gregor> So it'd be guest.py :guestport /guestpath
04:46:16 <elliott_> Gregor: Needs to know whether it's TCP or Unix, but yeah, I was just using the same format before I realised that I need to specify guest port or path :P
04:46:16 <elliott_> So yeah.
04:48:32 * elliott_ looks at Python's select binding
04:48:38 <elliott_> Oh thank god, it's non-terrifying enough to use.
04:49:03 <elliott_> Hmm
04:49:08 <elliott_> How do you accept() from multiple sockets at a time?
04:49:30 <Gregor> ... you accept from one at a time ...
04:49:45 <elliott_> Gregor: But what if someone connects to B while you're sitting around waiting for A?
04:50:07 <elliott_> I'm trying to avoid threads :P
04:50:20 <Gregor> What IF? The connection to B in no way hinders your A ... accept() returns a socket, you keep right on select()ing over it.
04:50:31 <elliott_> Yeeeeeees
04:50:33 <elliott_> But accept() blocks
04:50:41 <elliott_> You have two server sockets A and B with no connections.
04:50:46 <elliott_> You accept() on A.
04:50:46 <elliott_> Oh wait
04:50:50 <elliott_> listen() is the one that blocks lol
04:50:52 <Gregor> Your listen()ing socket will only barf at select() if there's a connection waiting.
04:50:55 <elliott_> s/accept/listen/ in everything I said above
04:51:03 <Gregor> (accept() does block if you didn't wait for listen() :P )
04:51:22 <elliott_> Gregor: Oh, hmm
04:51:28 <elliott_> I've only used select on already-connected sockets before >_>
04:51:34 <elliott_> So what, I just .listen() it and then select() on it in the ... rlist?
04:51:39 <Gregor> Yup
04:51:47 <Gregor> If you get a poing from it, accept()
04:51:50 <elliott_> Why read and not write, sooo arbitrary :-P
04:52:11 * elliott_ gets the genius idea of having a hash table of "what to do when select poings" indexed by socket.
04:52:14 <elliott_> SUCH A GENIUS
04:52:34 <elliott_> (Because I have both server sockets and connection sockets >_>)
04:55:05 <zzo38> Is an IO monad inside of Template Haskell allowed to have its own command-line parameters?
04:56:03 <elliott_> zzo38: I don't think you're guaranteed as to the behaviour of that at all; as in, the arguments could be anything
04:56:10 <elliott_> Gregor: OK, this is going fairly non-terribly :P
04:56:33 <zzo38> OK.
04:57:00 <elliott_> Gregor: Hmm, er
04:57:14 <elliott_> Gregor: When I'm select()ing, if the clients on the guest start recv()ing from one of my shim sockets,
04:57:25 <elliott_> That'll be reflected only if they're in the "ready to write" fds list of the select() call, right?
04:57:28 <elliott_> So
04:57:29 <elliott_> ready, _, _ = select.select(sockets.keys(), [], [])
04:57:30 <elliott_> is wrong
04:57:45 <elliott_> Yeah, it is
04:57:46 <elliott_> OK
04:58:49 <Gregor> Why even ask me if you're just going to answer your own questions :P
04:59:05 <elliott_> Gregor: Rubber duck :P
05:03:05 <elliott_> Hmm, wait
05:03:11 <elliott_> Never mind
05:06:54 <elliott_> Gregor: OK, I've written client.py. It might even have no parse errors.
05:07:05 <Gregor> No parse errors = works
05:07:10 * elliott_ renames it to guest.py for goodness.
05:07:13 <elliott_> Gregor: Welp, it runs and blocks correctly
05:07:18 <elliott_> Gregor: You wanna try and test this? :-P
05:07:30 <Gregor> Sure.
05:07:43 <Gregor> shar *.py | sprunge
05:07:44 <Gregor> :P
05:07:56 <elliott_> host.py: http://sprunge.us/QeMO; usage: python host.py host:port /path ...
05:08:08 <elliott_> guest.py: http://sprunge.us/TfUj; usage: python guest.py :guestport /guestpath ...
05:08:39 <elliott_> Gregor: Note that any errors during read or write result in guest.py basically just disconnecting the client socket :P
05:08:58 <elliott_> Gregor: Because there's no way to make the client get "the same error" without, like, trying to do the same thing that the socket on the other end did.
05:09:07 <elliott_> Which is left as an exercise to the reader.
05:09:24 <Gregor> That's fine *shrugs*
05:09:40 <elliott_> If these work I will be incredibly surprised :P
05:09:41 -!- olsner has quit (Ping timeout: 260 seconds).
05:10:22 <Gregor> TypeError: getsockaddrarg: AF_INET address must be tuple, not int
05:10:38 <elliott_> Oh
05:10:39 <elliott_> Duh
05:10:59 <elliott_> Gregor: Can I have one two seven point oh point oh point one
05:10:59 <elliott_> thx
05:11:18 <elliott_> I should never get my keyboard fixed, I am so hardcore like this
05:11:38 <Gregor> 127.0.0.1
05:12:01 <elliott_> Gregor: guest.py: http://sprunge.us/EPGQ
05:12:13 <NihilistDandy> eight six seven five three oh nine
05:12:39 <NihilistDandy> "There is only one thing which is more unreasonable than the unreasonable effectiveness of mathematics in physics, and this is the unreasonable ineffectiveness of mathematics in biology."
05:14:13 <Gregor> What da heww?
05:14:34 <elliott_> Gregor: What
05:14:36 <Gregor> elliott_: This is perhaps the craziest behavior I've ever seen, anywhere.
05:14:44 <elliott_> Gregor: Oooh
05:14:45 <elliott_> Tell me :D
05:14:50 <NihilistDandy> Is it drawing penises all over the screen?
05:15:00 <elliott_> NihilistDandy: That's a design feature
05:15:22 <Gregor> elliott_: It's ... like it's periodically running xwininfo ...
05:15:23 <elliott_> Gregor: Stop trying to debug my code it's impossible.
05:15:38 <elliott_> Gregor: Um
05:15:40 <elliott_> Gregor: What
05:15:43 <pikhq> NihilistDandy: Praise be to our improbably logical universe!
05:15:46 <elliott_> Gregor: Like what sockets are you using to test
05:15:56 <elliott_> Gregor: Please tell me they're X-related
05:15:58 <Gregor> elliott_: And then it's writing two postscript files, "socket" and "sys" to pwd.
05:16:05 <Gregor> elliott_: Nope, localhost:80 and :8080
05:16:11 <elliott_> ... X-D
05:16:16 <elliott_> Gregor: Which postscript files?
05:16:19 <NihilistDandy> pikhq: Al-jebr be praised!
05:16:28 <Gregor> WTF, they're screenshots
05:16:31 <elliott_> X-DDD
05:16:38 <elliott_> Gregor: I think it's developed sapience and it's attempting to communicate by gluing random services together
05:16:39 <Gregor> This is like fifty levels of not possible.
05:16:55 <Gregor> OHWAIT
05:16:58 <elliott_> When it seems to run xwininfo, try ps
05:16:58 <elliott_> :P
05:17:01 <NihilistDandy> I have to try this shit out
05:17:13 <pikhq> NihilistDandy: In the name of Al-jeber, CALCVLVS, and the scientific method, amen.
05:17:18 <NihilistDandy> Sounds like acid for computers
05:17:25 <Gregor> elliott_: Hyuk, I had put a #! line on my version, then overwrote it with your #!less one.
05:17:27 <elliott_> Gregor: What is it doing because I don't WANT to fix it
05:17:34 <elliott_> Gregor: How... how does that explain anything
05:17:42 <elliott_> Oh
05:17:44 <elliott_> import is a shell command
05:17:45 <Gregor> Apparently "import" is a program that takes a screenshot ... for some reason.
05:17:47 <NihilistDandy> pikhq: Also, fuck biologists. Amen.
05:17:51 <elliott_> Gregor: ImageMagick
05:18:05 <pikhq> NihilistDandy: With pleasure.
05:18:08 <elliott_> Gregor: I just want you to know that this is the best bug EVER :P
05:18:08 <pikhq> :P
05:18:13 <Gregor> elliott_: http://sprunge.us/KRCC
05:18:34 <elliott_> def read_short():
05:18:35 <elliott_> bytes = sys.stdin.read(2)
05:18:35 <elliott_> return ord(bytes[0]) + (ord(bytes[1]) << 8)
05:18:39 <elliott_> Gregor: Did you EOF it or something
05:18:59 <elliott_> socket_index = read_string()
05:18:59 <elliott_> Herp derp
05:19:03 <elliott_> Gregor: Change string to short on that line
05:19:40 <Gregor> http://sprunge.us/ObCG
05:19:59 <elliott_> Hmm
05:20:20 <Gregor> *confused*
05:20:21 <elliott_> >>> (65535 & 256)
05:20:21 <elliott_> 256
05:20:22 <elliott_> Oh durr
05:20:29 <elliott_> Gregor: s/256/255/
05:20:32 <elliott_> As for the other bug... hmm
05:20:38 <elliott_> Ohh hmm
05:20:40 <elliott_> Hmm
05:20:45 <elliott_> Gregor: Can you print sockets.keys() just above that?
05:21:33 <Gregor> Sure
05:21:52 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:22:11 <Gregor> Incidentally, I find the fact that there's no select anywhere in host.py highly disturbing.
05:22:31 <elliott_> Gregor: Why would there be
05:22:35 <elliott_> It only recvs or sends when asked to
05:22:41 -!- olsner has joined.
05:23:12 <Gregor> elliott_: [<socket._socketobject object at 0x7ff8e1efaad0>]
05:23:28 <Gregor> elliott_: Yeah, but it needs to receive and send simultaneously ...
05:23:39 <elliott_> Gregor: Uhh, it does?
05:23:48 <elliott_> <Gregor> elliott_: [<socket._socketobject object at 0x7ff8e1efaad0>]
05:23:48 <Gregor> OHHHH, I didn't understand how it worked at all :P
05:23:50 <elliott_> OK, wtf
05:23:56 <elliott_> print sockets.keys()[0].fileno()?
05:24:05 <elliott_> Gregor: Yeah it's literally a syscall servicer :P
05:24:08 <Gregor> The guest actually proxies the REQUESTS, not just the DATA. Now I gets it.
05:24:15 <elliott_> Hmm, how else would it work
05:24:38 <Gregor> With buffering, which would be terrible :P
05:24:38 <elliott_> Just out of curiosity
05:25:09 <Gregor> (You could just pull in anything ready to read, buffer it up for writing, and write whenever possible)
05:25:19 <elliott_> Right
05:25:23 <elliott_> Moar code :P
05:25:27 <elliott_> But yeah
05:25:27 <elliott_> <elliott_> print sockets.keys()[0].fileno()?
05:25:32 <oerjan> http://www.smbc-comics.com/index.php?db=comics&id=2325#comic somehow resonates with me
05:25:43 * oerjan whistles innocently
05:25:48 <Gregor> elliott_: 3 :P
05:25:52 <elliott_> Gregor: wtf.
05:25:58 <elliott_> oerjan: ps mouse over the red circle
05:26:12 <Gregor> elliott_: Why wtf? That's a fileno
05:26:15 <elliott_> oerjan: also oblig.: http://esolangs.org/wiki/User:Chris_Pressey#Laws_of_Form
05:26:15 <elliott_> Gregor: Yep
05:26:19 <elliott_> Gregor: read_ready, write_ready, _ = select.select(sockets.keys(), sockets.keys(), [])
05:26:19 <elliott_> TypeError: argument must be an int, or have a fileno() method.
05:26:26 <elliott_> This is a straightforward interface to the Unix select() system call. The first three arguments are sequences of ‘waitable objects’: either integers representing file descriptors or objects with a parameterless method named fileno() returning such an integer:
05:26:29 <Gregor> Oh
05:26:32 <elliott_> So what on earth is wrong :P
05:26:45 <elliott_> It's a sequence, the sequence contains one object, said object has a fileno method returning an integer
05:27:28 <elliott_> Hmmmmmmmm
05:27:33 <Gregor> Ohohoh
05:27:34 <Gregor> [<socket._socketobject object at 0x7f4546883ad0>, (<socket._socketobject object at 0x7f4546883b40>, ('127.0.0.1', 36796))]
05:27:36 <Gregor> It grew :P
05:27:53 <Gregor> accept(), presumably, gave a tuple
05:28:15 <elliott_> Gregor: Oh
05:28:18 <elliott_> Um
05:28:32 <elliott_> sockets[client] = (lambda: got_data(conn_id, client), lambda: want_data(conn_id, client))
05:28:36 <elliott_> client is definitely a socket object...
05:28:38 <Gregor> client, _ = sock.accept()
05:28:40 <elliott_> sockets[sock] = (lambda: handle_connection(proto, n, sock), lambda: None)
05:28:40 <elliott_> sock too
05:28:46 <elliott_> Gregor: Yeah...
05:28:50 <elliott_> Is that the wrong way around?
05:28:56 <Gregor> You didn't have that before.
05:29:08 <elliott_> Oh
05:29:08 <Gregor> It was just client = sock.accept()
05:29:09 <elliott_> Duh :P
05:29:16 <elliott_> Does it work NOW? :P
05:29:33 <oerjan> elliott_: damn you now i have to check all the other red circles
05:29:35 <Gregor> sys.stdout.write(chr(n & 256) + chr(n >> 8)) # really? n & 256? You suck at bits
05:29:47 <Gregor> ValueError: chr() arg not in range(256)
05:29:58 <zzo38> I think a problem of the Constantinople esolang is the "replace" and "nand" taking two arguments. You could fix it by requiring the word "with" between the arguments, which also means you don't need the parentheses anymore.
05:30:02 <elliott_> Gregor: Dude
05:30:04 <elliott_> I told you to fix that
05:30:06 <elliott_> Earlier above
05:30:12 <elliott_> Gregor: It's just in two files because lazy >_>
05:30:42 <elliott_> If it works, you can send me the modified version and I'll factor them out into common.py
05:30:46 <Gregor> Whah? I don't see that fix request ...
05:30:54 <elliott_> <Gregor> http://sprunge.us/ObCG
05:30:54 <elliott_> <elliott_> Hmm
05:30:54 <elliott_> <Gregor> *confused*
05:30:54 <elliott_> <elliott_> >>> (65535 & 256)
05:30:54 <elliott_> <elliott_> 256
05:30:56 <elliott_> <elliott_> Oh durr
05:30:58 <elliott_> <elliott_> Gregor: s/256/255/
05:31:33 <Gregor> OK, now rather than crashing, it just doesn't work.
05:31:40 <elliott_> Yay
05:31:57 <elliott_> So it just...
05:32:04 <elliott_> Does nothing?
05:32:05 <Gregor> Connection just hangs.
05:32:10 <elliott_> Geh >_<
05:32:15 <elliott_> It could be like one of a million things :P
05:32:30 <elliott_> Hmm
05:32:32 <elliott_> Gregor: Ctrl+C
05:32:36 <elliott_> It'll tell me what it's hanged on ;-)
05:34:59 -!- Nisstyre has joined.
05:35:21 <Gregor> elliott_: http://sprunge.us/CNOC
05:35:52 <elliott_> Hmm, oh dear
05:36:14 <elliott_> Either the guest and the host have a different idea of the protocol, or (I think this) the host was blocked reading from its connection?
05:36:29 <elliott_> Try it so that the socket the host is given gets written to
05:36:29 <elliott_> As in
05:36:30 <elliott_> Umm
05:36:32 <elliott_> This is so ambiguous
05:36:34 <Gregor> elliott_: Thought: If the guest select()s over its sockets, it will never recv.
05:36:36 <elliott_> Gregor: Make the host's recv call return
05:36:40 <elliott_> Ugh
05:36:43 <elliott_> You're right
05:36:50 <Gregor> I think the buffering strategy is strictly necessary >_>
05:36:55 <elliott_> Gregor: Well, there is one other strategy
05:37:01 <elliott_> Gregor: Threads in guest.py
05:37:19 <Gregor> That too.
05:37:25 <elliott_> Gregor: That's probably worse though
05:37:32 <Gregor> s/too/alternatively/
05:37:38 <Gregor> Idonno, they're both pretty awful.
05:37:50 <elliott_> Anyway, I'm not sure what this implies. The host would send the data to the guest as soon as it gets read?
05:38:01 <elliott_> Right now, the server only ever responds to queries, which makes things so much simpler.
05:38:31 <elliott_> The thread solution would just involve: one, threads; and two, a mutex of some kind so that writes don't overlap.
05:38:32 <Gregor> This is sort of why I thought they should be the same; they both need to transfer data across the muxing connection as soon as possible for the other end to react properly.
05:39:00 <Gregor> "They" = host and guest
05:39:09 <elliott_> 9-D
05:39:14 <elliott_> So what was that thing that does everything but opening the sockets
05:39:27 -!- evincar has quit (Quit: leaving).
05:39:27 <zzo38> Can we have: program is nothing or "replace" argument "with" argument program or "repeat" argument program "end" program or "in" argument program or "out" argument program; and argument is nothing or "head" argument or "tail" argument or "nand" argument "with" argument. It seems this fixed the problem of Constantinople. Is it?
05:39:46 <Gregor> elliott_: http://web.purplefrog.com/~thoth/netpipes/encapsulate.html
05:39:55 <Gregor> elliott_: But I'm still a bit confused by it, I'm not 100% sure that it's useful at all :P
05:40:41 <elliott_> http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=Session+Control+Protocol
05:40:45 <elliott_> This does not seem to be a widely-implemented thing
05:41:00 <elliott_> Also it came out of an HTTP working group, so it's going to be terrible and awful
05:41:15 <Gregor> elliott_: Indeed, encapsulate seems to be the only program that ever implemented it.
05:41:26 <elliott_> Maybe that's a different SCP
05:41:30 <pikhq> Right bastards, convinced that HTTP is the end-all be-all of protocols.
05:41:31 <elliott_> Than the working group one, I mean
05:41:42 <elliott_> Gregor: Didn't HackEgo just allow "full networking" but then firewall it all off?
05:41:45 <elliott_> Wouldn't that work?
05:41:54 <Gregor> elliott_: Nope, same one.
05:42:00 <elliott_> Gregor: Eh?
05:42:06 <Gregor> elliott_: Same SCP
05:42:32 <Gregor> elliott_: Yes, HackEgo just firewalled everything. That won't work because UML's "full networking" options all suck ass.
05:42:42 <elliott_> Gregor: They do? :-P
05:43:21 <elliott_> Hmmmmmm
05:43:38 <Gregor> There's slirp, which is previously-discussed terrible, various things that only communicate between multiple UMLs, and a TUN/TAP-based protocol, which isn't going to work since that's a new host-kernel net device per guest.
05:43:43 <elliott_> Gregor: I'm slightly worried that I'm tempted to say this solution is the wrong way seemingly just because it's become actual work for me
05:43:52 <elliott_> Which is not really good thinking
05:43:56 <elliott_> "various things that only communicate between multiple UMLs"
05:44:01 <elliott_> What if you used another UML with full network access
05:44:27 <Gregor> ... hmmmmm ... I hadn't investigated those options at all because they're so failury ...
05:44:35 <elliott_> It's horrible, but it might be easier.
05:44:39 <Gregor> (The just-multiple-UML-options that is)
05:44:43 <elliott_> Although I fear you'd have to end up doing the multiplexing yourself
05:44:46 <elliott_> Also: "which isn't going to work since that's a new host-kernel net device per guest."
05:44:51 <elliott_> TUN/TAP xreation is hardly expensive is it
05:44:58 <elliott_> creation
05:45:23 <pikhq> Why can't UML do qemu's (horrible) userspace networking emulation?
05:45:55 <Gregor> pikhq: Because it's not UML's, it's qemu's :P
05:46:08 <pikhq> Gregor: The scheme should be general.
05:46:17 <pikhq> If also a royal pain to implement.
05:46:26 <elliott_> The easiest way to get started with UML networking involves nothing special besides adding a switch to the UML command line.
05:46:27 <elliott_> The uml_net helper
05:46:27 <elliott_> First, you need to make sure that the uml_utilities are installed on the host. You'll be needing the uml_net helper from that package.
05:46:27 <elliott_> Configuring an eth0 device
05:46:27 <elliott_> You can either
05:46:29 <elliott_> specify eth0 on the command line:
05:46:31 <elliott_> eth0=tuntap,,,192.168.0.254
05:46:33 <elliott_> Enabling the device is exactly the same as any other Linux machine, except you'll likely do by hand at first for UML:
05:46:37 <elliott_> UML# ifconfig eth0 192.168.0.253 up
05:46:39 <elliott_> * modprobe tun
05:46:40 <elliott_> * ifconfig tap0 192.168.0.252 netmask 255.255.255.255 up
05:46:42 <elliott_> * bash -c echo 1 > /proc/sys/net/ipv4/ip_forward
05:46:44 <elliott_> * route add -host 192.168.0.253 dev tap0
05:46:46 <elliott_> * bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
05:46:48 <elliott_> * arp -Ds 192.168.0.253 eth0 pub
05:46:50 <elliott_> Gregor: this does not sound all that difficult
05:46:55 <Gregor> pikhq: Especially so since it's based on slirp. And yet, fail.
05:47:37 <elliott_> Gregor: BTW: I feel like this might be easier with Xen, in the long-run, minus the pain that is Xen
05:47:41 <Gregor> elliott_: It's easy enough to get running, but A) it requires a setuid-root binary, which I find terrible in general even if it works for me now and B) it's one host-kernel tap device per guest, which is just lame.
05:48:18 <elliott_> Gregor: It's also about three hundred lines less work :P
05:48:36 <elliott_> But OK, do you want me to make host.py do the select and buffer thing?
05:48:55 <Gregor> elliott_: Sowait ... doesn't encapsulate do everything we need? :P
05:49:20 <Gregor> (Other than the initial socket()s and bind()s)
05:49:28 <elliott_> Gregor: You implied it didn't
05:49:34 <elliott_> Gregor: It requires a client that supports SCP doesn't it
05:49:45 <Gregor> Yes, namely encapsulate.
05:49:45 <itidus20> australian music is proving to be very introspective
05:49:53 <itidus20> thats our kick over here
05:50:20 <elliott_> Gregor: I don't really understand how it works if it does not create the sockets
05:50:28 <elliott_> It can't just read other processes' fds
05:50:42 <Gregor> elliott_: It gets passed in the FDs from the caller.
05:51:25 <elliott_> server$ faucet 3001 --once --fd3 \
05:51:25 <elliott_> sh -c 'while ~/src/netpipes4.0/encapsulate --fd 3 -so5i4 \
05:51:26 <elliott_> sh -c "fname=`cat 0<&4`; echo \$fname; cat < \$fname 1>&5"; \
05:51:26 <elliott_> do true; done'
05:51:26 <elliott_> client$ hose server 3001 --retry 10 --delay 1 --fd3 \
05:51:27 <elliott_> sh -c 'while read fname; do \
05:51:29 <elliott_> ~/src/netpipes4.0/encapsulate --fd 3 -si4o5 \
05:51:31 <elliott_> sh -c "echo $fname 1>&5; exec 5>&-; cat 0<&4" \
05:51:33 <elliott_> || break; done'
05:51:35 <elliott_> This guy really likes his programs
05:51:39 <elliott_> (faucet and hose are also fom that :P)
05:52:02 <elliott_> Gregor: Weellllllllllll. Don't we already have 90 percent of what we need already
05:52:17 <elliott_> I mean, effort of figuring out encapsulate + the wrapper required vs. effort of a select() and some buffering
05:52:52 <Gregor> Idonno, you tell me, you're the one writing it right now X-D
05:53:09 <elliott_> Gregor: I was asking how much effort the former would take, 'cuz I'm not doing it
05:53:29 <elliott_> Also netpipes looks very bitrotten:
05:53:29 <elliott_> encapsulate.html 28-Oct-1998 15:39 13K
05:53:35 <elliott_> netpipes-4.2-export...> 30-Jan-1999 12:09 74K
05:53:39 <Gregor> Yowza
05:53:43 <Gregor> That I didn't notice ...
05:53:52 <Gregor> Yeah, should probably continue without it :P
05:53:55 <elliott_> netpipes (As of November 1998, version 4.2 is available)
05:54:03 <elliott_> COPYRIGHT
05:54:03 <elliott_> Copyright (C) 1997-98 Robert Forsman
05:54:03 <elliott_> :P
05:54:25 <elliott_> Gregor: (Says the guy who's favoured networking tool was last updated two to three years before that)
05:54:44 <elliott_> Gregor: OK, can I have guest.py and host.py? :-P
05:55:16 <pikhq> elliott_: What, nc?
05:55:29 <elliott_> pikhq: Yes.
05:55:34 <pikhq> :)
05:55:45 <Gregor> elliott_: curl http://sprunge.us/PWAL | sh
05:56:06 <elliott_> X_X
05:56:10 <Gregor> :P
05:56:45 <elliott_> OK, here goes shit >_<
05:57:09 <elliott_> sys.stderr.write(str(sockets.keys()) + "\n")
05:57:11 <elliott_> Gregor: Y'can remove that now :P
05:57:18 <elliott_> Wait, how did we fix that
05:57:20 <elliott_> Oh right
05:57:21 <elliott_> I remember now
05:57:26 <elliott_> BTW, that flush is redundant
05:57:29 <elliott_> And the whole thing could be a print :P
05:58:09 <elliott_> !python filter(None, [9,None,0])
05:58:13 <elliott_> !python print filter(None, [9,None,0])
05:58:14 <EgoBot> ​[9]
05:58:18 <elliott_> Oh god dammit
05:58:18 <Gregor> I don't know how to print() to stderr
05:58:22 <elliott_> Good enough
05:58:26 <elliott_> Gregor: print >>sys.stderr, ...
05:58:32 <Gregor> And now I doooooo!
05:58:42 <Sgeo_> Python 2.x?
05:58:50 <elliott_> Sgeo_: Yes, aka the version everyone uses.
05:59:21 <monqy> is it better
05:59:23 <elliott_> Gregor: You're right in that the guest and host will look very similar after this...
06:00:01 <Gregor> Sooo ... mux.py :)
06:00:11 <elliott_> Gregor: Well, I'll do host.py first, and then see :P
06:00:23 <Gregor> Or mudem.py!
06:01:58 <elliott_> Cows go mudem
06:04:48 <elliott_> Gregor: OK, this is sort of working out >_>
06:06:22 <augur> elliott_: so
06:06:28 <augur> hows life with the riots ey
06:06:42 <elliott_> augur: i live in a small rural town
06:06:58 <augur> oh?
06:07:06 <elliott_> so, the answer is exactly as normal :P
06:07:51 <elliott_> Gregor: Hmm, how do disconnections show in select()?
06:07:55 <elliott_> As a read or as an ~exceptional condition~
06:08:03 <Gregor> I don't recall
06:08:15 <elliott_> Ugh >_>
06:08:37 <Gregor> I seem to recall, however, never ever using the exceptional conditions buffer ...
06:09:03 <elliott_> Fair enough, then
06:09:26 <elliott_> Actually it shouldn't matter (much)
06:09:39 <elliott_> I love how my Python style involves NO OBJECTS EVER
06:09:44 <elliott_> Time to add another global hashtable
06:09:57 <elliott_> This can be cleaned up when it works >_>
06:10:11 <elliott_> Gregor: Happily, the same protocol can be maintained
06:10:16 <elliott_> The host just does weird shit to maintain it
06:16:10 <elliott_> Gregor: OK.
06:16:13 <elliott_> I _think_ it might work.
06:16:18 <elliott_> I've tested it none, but hey.
06:16:38 <elliott_> Gregor: http://sprunge.us/CUiE
06:16:46 <elliott_> Dammit it's revealed my secret codename.
06:18:44 <Gregor> I would recommend actually importing sys if you intend to use it.
06:18:59 <elliott_> Gregor: Erm
06:19:04 <elliott_> Gregor: It gets imported from host and guest, luckily
06:19:09 <elliott_> But yes good idea
06:20:01 <Gregor> elliott_: It needs to be imported in common to run at all.
06:20:07 <Gregor> Python doesn't muddy namespaces like that.
06:20:22 <Gregor> Anyway, I'm back to the eternal nonfunctional wait.
06:20:28 <elliott_> Yer kidding me
06:20:36 <elliott_> It uses select, that shouldn't happen :(
06:20:42 <Gregor> http://sprunge.us/IagV
06:20:45 <elliott_> If I wasn't too scared of how horrific the Python debugger was...
06:20:50 <elliott_> Is, presumably is, whatever.
06:20:52 <Sgeo_> Wait, is elliott_ facing the same problem I was once?
06:21:00 <elliott_> Gregor: What did you actually change
06:21:02 <elliott_> Sgeo_: What problem
06:21:15 <Sgeo_> Globally accessible variable from multiple modules
06:21:19 <elliott_> No
06:21:20 <Gregor> elliott_: import sys, global next_id in host.py:cmd_connect
06:21:25 <elliott_> Gregor: Also, mux <<<<<<<<<<<<<<<<<<<<<<<< proxy-motown
06:21:36 <elliott_> Gregor: Latter is unneeded
06:21:40 <elliott_> Because += is not the same as = +
06:21:41 <elliott_> As in
06:21:44 <elliott_> next_id += 9
06:21:46 <elliott_> works
06:21:46 <elliott_> but
06:21:48 <elliott_> next_id = next_id + 9
06:21:50 <elliott_> wouldn't
06:21:57 <elliott_> This is because Python
06:22:16 <Gregor> elliott_: This was not a "I'mma just write some shit" change, this was a "does not run" change.
06:22:24 <elliott_> Hmm
06:22:25 <Gregor> elliott_: next_id += 1 forced next_id to be a local.
06:22:27 <elliott_> Then Python changed :P
06:22:33 <Gregor> Python's scoping rules are as bad as you can possibly imagine.
06:22:35 <elliott_> God I hate Python, but yeah OK.
06:22:41 <elliott_> Gregor: Yes but I thought += operated on the object
06:22:44 <elliott_> Which made it work
06:22:46 <Gregor> They make PHP's scoping rules look brilliant.
06:24:06 <elliott_> Gregor: So, OK, um.
06:24:12 <elliott_> Gregor: You need to pause the program and print out some variables for me :-P
06:24:14 <elliott_> Actually hmm
06:24:16 <elliott_> If you pass -i to python
06:24:21 <elliott_> Then Ctrl+C drops you at a REPL with all the variables
06:24:22 <Gregor> elliott_: Why don't you run it :P
06:24:23 <elliott_> So you actually can do that
06:24:29 <elliott_> Gregor: Because I have no socket servers to do it on >_>
06:24:43 <Gregor> I'm just using dpipe and TCP.
06:24:56 <elliott_> Never heard of dpipe
06:24:59 <elliott_> Oh, something from that vde thing
06:25:05 <elliott_> I guess netcat would work
06:25:07 <Gregor> elliott_: It's totally non-vde-related.
06:25:17 <Gregor> elliott_: It's just a bidirectional pipe.
06:25:25 <elliott_> Right.
06:25:30 <Gregor> elliott_: Also, going interactive when your stdin and stdout are crazy protocol isn't useful :P
06:25:42 <elliott_> Yes it is, because Ctrl+C stops the program
06:25:45 <elliott_> Oh, I see
06:25:47 <elliott_> Right :P
06:25:48 <elliott_> Sucks
06:25:49 <Gregor> But now, I must go to sleep.
06:26:21 <elliott_> Gregor: Um wait
06:26:25 <elliott_> Gregor: You did tie the ends together, right?
06:26:32 <elliott_> Like, you did pipe guest.py and host.py properly :P
06:26:38 -!- GreaseMonkey has quit (Ping timeout: 258 seconds).
06:36:03 -!- pikhq_ has joined.
06:36:10 -!- pikhq has quit (Ping timeout: 252 seconds).
06:44:01 -!- derrik has joined.
06:53:34 -!- NihilistDandy has quit (Remote host closed the connection).
06:53:53 -!- NihilistDandy has joined.
06:56:35 -!- derrik has left.
06:57:39 <elliott_> pikhq_: NihilistDandy: HAHAHAHAHA I AM TAKING YOUR BELOVED HASKELL HOSTAGE
06:57:46 <elliott_> WHEN I AM THROUGH WITH IT YOU WON'T HAVE ANY IDEA WHAT IT USED TO BE
06:58:02 <elliott_> I SHALL STRIKE INTROSPECTION THROUGH THE HEART OF THE THING!!!!!!!!!!!!!!!!!!!!!!!
06:58:14 <pikhq_> elliott_: ÞOU SHALT DIE I SHALL MAKE SURE OF ÞY DEAÞ.
06:58:26 <pikhq_> FOR ÞE ÞORN DEMANDEÞ IT
06:59:37 <elliott_> HAHAHAHAHAHAHA YOU WON'T BE SAYING THAT WHEN YOU CAN BRING UP ANY OBJECT IN THE SYSTEM AND VIEW ALL ITS FIELDS AND MODIFY THEM FROM WITHIN ELLIOTTCRAFT
07:00:04 <elliott_> (YES THIS IS ACTUALLY USEFUL IT'S BASICALLY AN OBVIOUS EXTENSION OF THE GENERIC SERIALISATION MECHANISM + THE FACT THAT I NEED TO PRESENT MODIFIABLE DATA STRUCTURES AS FORMS, ANYWAY)
07:00:04 <pikhq_> ...
07:00:16 <pikhq_> You frighten me sometimes.
07:00:20 <elliott_> (BASICALLY IT'S AS EASY AS WRITING A GENERIC FORM TO DISPLAY "A RECORD, ANY RECORD")
07:01:11 <elliott_> pikhq_: OK but seriously it will be SO GOOD you have no idea.
07:01:21 <elliott_> I don't even need another typeclass to do the basic thing.
07:01:33 <elliott_> I can get a lens out of anything with a Data instance given a constructor and an index.
07:01:48 <elliott_> I can convert the field name "playerName" into "Player name" trivially.
07:01:58 <elliott_> From that it's a simple matter of presenting it.
07:02:18 <elliott_> I do need one extra type class, so that you can specify overridden names, like "worldDir" should be "World directory", not "World dir".
07:02:31 <elliott_> And also so that you can specify how fields should be displayed -- i.e. what form component should be used to display them.
07:02:46 <elliott_> For instance, the most appropriate control for the volume field is a slider.
07:02:51 <pikhq_> That doesn't mean you've stopped frightening me.
07:02:51 <elliott_> But for another it might be a text field.
07:03:06 <pikhq_> It just means you don't also make me murderous.
07:03:49 <elliott_> pikhq_: Let's put it this way: If I don't write this code, I write an entirely new heap of GUI controls for every single form in the game.
07:04:12 <elliott_> And if I do write it, I also get debugging inspection of any object at all automatically.
07:04:15 <elliott_> Which will be useful.
07:05:01 <pikhq_> elliott_: I should note that Oleg also frightens me.
07:05:49 <pikhq_> This does not mean I *dislike* the things he has made.
07:07:24 <elliott_> pikhq_: Anyway, my pain is already going to be quite fun, because I want GUI-ish widgets, obviously, for things like the chat box, configuration pages, blah blah blah. Now, I can't use GTK, one because of portability (it sucks on Windows and OS X) and two because... well, look, popping up normal-looking GUI widgets all over your game window looks horrible, no matter how "right" it may be. The same applies to any other generic UI toolkit, apart from may
07:07:24 <elliott_> be Qt. Now, I know Qt can be "skinned" in a way that makes it integrate perfectly with a game's look because Hedgewars does it. Unfortunately, one: Qt sucks; two: I don't like Qt; three: I don't think there's any decent Haskell binding to Qt. Besides, a lot of GUI toolkits are ruled out anyway because they won't interact properly with OpenGL.
07:07:38 <elliott_> pikhq_: So, basically... I get to code my own GUI widgets. From scratch. Using OpenGL.
07:08:28 <pikhq_> Would it make you feel better to know that the Qt scheming mechanism is CSS?
07:08:50 <elliott_> I think I knew that, but yeah. Not sure I did.
07:08:54 <pikhq_> (probably not, because you're not going to want to use Qt, anyways)
07:08:59 <elliott_> pikhq_: Still, there doesn't even appear to be a Qt binding on Hackage.
07:09:07 <elliott_> The wiki just points to http://qthaskell.berlios.de/ which doesn't inspire confidence.
07:09:16 <elliott_> pikhq_: Qt is obviously not so much fun to bind because Haskell can't bind directly to C++.
07:09:17 <pikhq_> Understandable. The impedence mismatch is huge.
07:09:25 <elliott_> qtHaskell User Guide
07:09:25 <elliott_> David Harley
07:09:25 <elliott_> Copyright © 2010 David Harley
07:09:25 <elliott_> Well, OK, it could be worse.
07:09:37 <pikhq_> Could be Qt 2.
07:09:45 <pikhq_> Or 1. Mmmm, nonfree.
07:09:46 <elliott_> In two thousand and ten?
07:09:58 <pikhq_> No, I'm saying that in response to "could be worse".
07:10:01 <elliott_> Ah :P
07:10:04 <elliott_> http://qthaskell.berlios.de/doc/apiGuide/index.html ;; Meeeeeeeeh
07:10:12 <elliott_> I'm quite happy writing my own widgets really
07:10:15 <pikhq_> Only a complete, insane *moron* would deal with Qt 1 or 2 in 2010.
07:10:23 <elliott_> Why should you have to deal with Qt suckage when playing the perfect game ;-)
07:10:35 <pikhq_> ... That API.
07:10:38 <pikhq_> *hurl*
07:10:43 <elliott_> It's a fair low-level binding
07:10:49 <pikhq_> No kidding.
07:10:51 <elliott_> But, well, it's a low level binding.
07:10:57 <elliott_> Wait, waht the fuck, why is it using typeclasses everywhere
07:11:01 <elliott_> Eh, I don't even want to know
07:11:03 <elliott_> Oh, for C++ overloading
07:11:14 <elliott_> pikhq_: It amused me that right-clicking a text input field in Hedgewars popped up a "regular" menu, but styled with its vaguely cartoony look.
07:11:34 <elliott_> pikhq_: So it was offering me input methods and Unicode control character insertion inside a cartoony game interface.
07:11:59 <pikhq_> bsnes did an April Fool's release doing something similar. To imitate zsnes's UI
07:12:12 <pikhq_> (y'know, the UI designed for direct VGA access from DOS?)
07:12:14 <elliott_> I remember that
07:12:35 <pikhq_> Shame it didn't get the pointless snow covered.
07:12:47 <elliott_> ZSNES has snow?
07:12:50 <elliott_> Best emulator.
07:13:03 <itidus20> i have zsnes
07:13:09 <elliott_> itidus20: You don't want it.
07:13:15 -!- pikhq has joined.
07:13:17 <elliott_> Get Snes9x :-P
07:13:25 <itidus20> hmm
07:13:28 <elliott_> (Or bsnes, but I doubt you have the computer for that)
07:13:36 <itidus20> lol
07:14:05 <elliott_> pikhq_: Hmm, there's a slight problem with designing my own controls, in one area: I can't support X compose and the like.
07:14:15 <itidus20> i have always stuck with zsnes
07:14:28 <elliott_> As in, the input method will just be... whatever I code, which is unlikely to make you happy if you type in anything that isn't English, because I'm not gonna bundle my own alt gr table or whatever.
07:14:30 <itidus20> so, snes9x is the way to go?
07:14:44 <elliott_> itidus20: ZSNES is a very inaccurate emulator, and basically piles upon dozens of hacks to make any game work
07:14:50 <elliott_> It emulates even many popular games incorrectly
07:14:59 <itidus20> but that gives it speed?
07:15:10 <elliott_> Snes9x is much better, it's not written in unportable assembly for one :P, and it's fast enough to run on anything ZSNES will nowadays.
07:15:10 <pikhq> Yes, in the same way that Windows 3.1 is fast.
07:15:33 <zzo38> Then I would suppose homebrew games are going to work even more incorrectly
07:15:34 <elliott_> Snes9x still has a bunch of hacks, but the only thing that doesn't is bsnes, which has basically completely accurate SNES emulation; you need a beefier CPU though
07:15:38 <pikhq> In pretty much *exactly* the same way, in fact: ZSNES is a DOS-era program that got ported.
07:15:44 <elliott_> zzo38: Sadly, many homebrew games _only_ work on ZSNES.
07:15:52 <elliott_> zzo38: Because people test them on ZSNES rather than the real console, because it's much more convenient.
07:15:58 <itidus20> i don't have philosophical dilemmas about whether the opcodes of a rom are being emulated in a uniform way
07:15:59 <elliott_> So they end up relying on ZSNES' many emulation bugs.
07:16:09 <elliott_> itidus20: You don't care if your game runs wrongly?
07:16:18 <pikhq> elliott_: bsnes works just fine on my not-that-beefy system, though.
07:16:22 <itidus20> if it has hacks in placeto make it work
07:16:26 <itidus20> then i don't mind
07:16:27 <elliott_> itidus20: It isn't perfect.
07:16:30 <elliott_> Not by any means.
07:16:34 <elliott_> ZSNES has noticeable emulation bugs in many popular games.
07:16:42 <elliott_> Anyway, Snes9x has a much nicer interface too, so you'll be doing yourself a favour.
07:16:50 -!- pikhq_ has quit (Ping timeout: 240 seconds).
07:16:56 <elliott_> (BTW, ZSNES isn't actively developed any more.)
07:17:07 <pikhq> Last commit was, what, 2003?
07:17:10 <elliott_> (Well, OK, they say it is, but it hasn't released for four years and development is private.)
07:17:18 <elliott_> pikhq: Release in 2007 apparently, says Wikipedia
07:17:19 <pikhq> s/Last/Last public/
07:17:21 <itidus20> which noticeable emulation bugs? i won't argue their signifigance.. but i am curious
07:17:29 <elliott_> itidus20: Too numerous to list, unfortunately
07:17:47 <pikhq> itidus20: http://byuu.org/bsnes/images/accuracy/harukanaru-incorrect.png
07:17:50 <elliott_> itidus20: You can see some of the ntoiceable effects in this article:
07:17:52 <elliott_> http://arstechnica.com/gaming/news/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator.ars
07:18:01 <elliott_> (written by the bsnes author, with a bunch of screenshots)
07:18:19 -!- Taneb has joined.
07:18:26 <itidus20> pikhq: that is a pretty awful emulation in that screenshot
07:18:32 <Taneb> Morning!
07:18:40 <itidus20> it did get the word Player right though
07:19:11 <oerjan> Taneb: you might want to check the logs for zzo38's Constantinople comments
07:19:17 <elliott_> oerjan: he put them on the wiki
07:19:19 <itidus20> what exactly makes snes so hard to emulate?
07:19:21 <elliott_> pikhq: But yeah, any ideas what to do with Unicode in my text input?
07:19:21 <oerjan> oh
07:19:22 <oerjan> ok
07:19:34 <elliott_> itidus20: Basically, the hardware has very precise timing.
07:19:38 <itidus20> ahhhh
07:19:41 <elliott_> itidus20: You can't even synchronise everything at the instruction level.
07:19:49 <elliott_> You have to synchronise all the many different parts of it at the cycle level.
07:19:58 <pikhq> itidus20: Additionally, the SNES has tons of processors to emulate.
07:20:05 <elliott_> itidus20: Oh, and cartridges can literally include their own CPUs.
07:20:21 <elliott_> Yes, many, many popular games had their _own specialised processors_ on the cart.
07:20:23 <itidus20> when i was growing up... i wanted a snes more than i wanted a girlfriend
07:20:30 <coppro> itidus20: this is normal
07:20:40 <pikhq> Some of them had a *better* processor than the SNES.
07:20:45 <itidus20> i mean.. i wanted it _BAD_
07:20:54 <pikhq> (SuperFX)
07:20:57 <elliott_> <elliott_> pikhq: But yeah, any ideas what to do with Unicode in my text input?
07:21:03 <itidus20> i knew that this fucking device was going to be the best thing to ever happen
07:21:10 <itidus20> and as time has told us.. it pretty much was
07:21:13 <coppro> hell, even now, I consider a companion to be "something nice that I'd wouldn't mind having"
07:21:48 <pikhq> elliott_: Uh, convert (lossily) to CP437?
07:21:55 <pikhq> elliott_: :P
07:22:05 <elliott_> pikhq: I can handle Unicode just fine, I'm just saying that all keypresses come in raw
07:22:13 <elliott_> Only processed to make the scancodes portable :P
07:22:13 <zzo38> I still prefer NES anyways, rather than SNES; not only the games (which include both homebrew games and offical games) but also the way the system works
07:22:14 <itidus20> i can't describe the sheer desire i had for a SNES
07:22:16 <pikhq> Yeah, I dunno.
07:22:28 <elliott_> pikhq: So alt gr won't work, compose won't work... I dunno how to let people input Unicode without making it a huge pain for me or bad for them
07:22:34 <itidus20> like that nintendo 64 kid
07:22:40 <itidus20> except i was older and i had no excuses
07:22:51 <pikhq> elliott_: Sounds utterly non-trivial with the current stack.
07:23:29 <pikhq> elliott_: Would be easy in not-too-long. All the keyboard handling is getting factored out into a library in the name of Wayland.
07:23:34 <elliott_> pikhq: I suppose I could parse XCompose files... but then most people don't use compose either, they use their locale-specific keyboard layout... which I suppose _will_ work here, because I think the keyboard layout is taken into account
07:23:37 <elliott_> It should be because I get a Char
07:23:46 <elliott_> But anything that involves pressing multiple keys together... nope
07:25:19 <elliott_> pikhq: Oh well, I can't possibly do worse than Minecraft does Unicode
07:25:32 <pikhq> "Doesn't"?
07:26:04 <elliott_> pikhq: Well, it supports SEVERAL characters that also feature in Unicode!
07:26:17 <itidus20> so is there a dynamic recompiling snes emulator?
07:26:22 <elliott_> Swedes, Finns and Norwegians may even find that their ENTIRE ALPHABET is available!
07:26:37 <elliott_> itidus20: The overhead required to synchronise everything would make that slower than the emulation approach
07:26:43 <pikhq> elliott_: Actually, only an approximation.
07:27:45 <itidus20> how complex could it be though... does the SNES have anything that could resemble an abstract machine?
07:27:46 <pikhq> elliott_: CP437 lacks Ø and ø.
07:28:07 <elliott_> pikhq: Woot :P
07:28:22 <elliott_> itidus20: It could be very complex, since there are multiple processors doing their job at once, with different clock rates, that are all communicating.
07:28:27 <elliott_> And one of them is analogue.
07:28:30 <itidus20> its basically about character blocks, sprites, rotations, controller input, calculations, and sound
07:28:33 <elliott_> No, no it isn't.
07:28:43 <elliott_> pikhq: How long has bsnes been in development?
07:28:48 <elliott_> Ah, seven years.
07:29:14 <elliott_> itidus20: If you want to learn what the SNES is "basically about", i.e. the abstract machine behind it, here's the product of seven years of research: http://bsnes.googlecode.com/files/bsnes_v081-source.tar.bz2
07:29:34 <elliott_> itidus20: It's written for humans rather than for speed, so you should be able to discern all details of the abstract machine underlying the SNES from it.
07:29:37 <pikhq> It'd probably take much less time to implement from scratch, though: much of that time was *obscene* amounts of research into the behavior of the system.
07:29:44 <elliott_> itidus20: Note: This may be a much more difficult task than you anticipate.
07:29:55 <elliott_> bsnes/snes/ is the directory you want.
07:30:07 <pikhq> You'll note that it contains a Gameboy emulator by necessity.
07:30:29 <itidus20> i .. find the term i used abstract machine to be quite ugly now seeing it turned back on me
07:30:30 <coppro> wha
07:31:03 <pikhq> coppro: One of the CPUs placed on a cartridge was a Gameboy.
07:31:17 <itidus20> i had a super gameboy
07:31:28 <itidus20> i was dissapointed when i discovered it wasn't portable though
07:31:28 <elliott_> pikhq: OK, now I really want to fashion some kind of cartridge output onto the playstation two.
07:31:51 <elliott_> Maybe it'll crush your SNES if you plug it in vertically, but bsnes would be FORCED to include a full cycle-accurate emulator!!!!!!
07:31:56 <zzo38> I wrote a Constantinople compiler completely except for the parser. Once the parser is written then it will be complete.
07:32:04 <itidus20> it seemed obvious to me that the super gameboy would be handheld and also plug into the snes for a tv play.. but twas not to be the case
07:32:11 <Taneb> Yay!
07:32:28 <Taneb> I've made the change to the spec yoou suggested
07:32:32 <Taneb> i.e. the withs
07:32:42 <zzo38> Yes I saw that. Thank you
07:33:23 <Taneb> I think constantinople manages to be human readable while still being really hard to work out what's going on
07:33:27 <elliott_> pikhq: I somehow feel that Elliottcraft is going to take an awful lot of infrastructure.
07:37:15 <coppro> pikhq: brilliant
07:37:26 <coppro> also holy crap I might still win this BN dynasty
07:39:09 <elliott_> is blognomic any less boring than the last time
07:39:39 <coppro> when is "last time"?
07:39:51 <elliott_> any other time in history
07:41:11 <elliott_> pikhq: The main problem with this generic introspection infrastructure is that I'm not sure how to structure the additional class I need without it being redundant with things already offered by Data. :/
07:41:48 <elliott_> ...and that also isn't really brittle when you change the record but forget to change the instance.
07:42:14 <oerjan> elliott_: subclass actual Data?
07:43:01 <elliott_> oerjan: well yes, but the point is that I can't find a way to structure the needed typeclass _member_ in such a way that you can't accidentally fill it in and give inconsistent information to Data
07:43:11 <coppro> elliott_: then no
07:43:11 <elliott_> as in, I can't find out a way to guarantee that Data and this class don't contradict each other
07:43:42 <oerjan> hm
07:43:53 <coppro> elliott_: although this time it has relatively good gameplay, a defined victory condition, and several people all within reasonable distance of the end
07:44:37 <elliott_> coppro: but does it still have that essential boringness
07:45:06 <elliott_> oerjan: hmm, I suppose I could just have "fieldInfo :: String -> Maybe (String,FormComponentLol)"
07:45:09 <elliott_> where the string is the human name
07:45:17 <elliott_> that's kind of gross though since what it really is meant to be is
07:45:29 <elliott_> fieldInfo :: FieldName a -> (String,FormComponentLol)
07:45:31 <elliott_> with the clause
07:45:40 <elliott_> fieldInfo a = (humanify a, defaultformcomponentforitstype)
07:45:41 <elliott_> at the end
07:45:46 <elliott_> but you can't....
07:45:47 <elliott_> do that
07:46:36 <coppro> elliott_: you'd have to decide that yourself
07:46:48 <elliott_> coppro: so yes then :P
07:47:04 <coppro> elliott_: If I'd said no, would you have believed me?
07:47:15 <elliott_> coppro: maybe enough to load blognomic.com
07:50:49 <zzo38> If it has a well-defined win condition, but does it have a well-defined end condition? Go has a well-defined win condition but not a well-defined end condition.
07:51:51 <oerjan> nomics frequently end when there is a win
07:52:27 <oerjan> either that, or they never end
07:52:45 <oerjan> unless there's a total collapse
07:53:22 <zzo38> This is what I have of the Constantinople compiler so far, it consists of two files: Constantinople.lhs = http://sprunge.us/NQQV Main.hs = http://sprunge.us/FKYe
07:54:00 <oerjan> i have this vague recall that agora shifted at one time from saying that a new game started when someone won, to saying that the game just goes on indefinitely
07:54:47 <elliott_> oerjan: Yes.
07:55:31 <elliott_> oerjan:
07:55:31 <elliott_> Rule 104/0 (Power=3)
07:55:31 <elliott_> First Speaker
07:55:31 <elliott_> The Speaker for the first game shall be Michael Norrish.
07:55:31 <elliott_> [CFJ 1534 (called 8 March 2005): This does not mean that Michael
07:55:31 <elliott_> Norrish necessarily fills the position of Speaker at the present
07:55:33 <elliott_> time.]
07:55:35 <elliott_> [CFJ 2154: (called 8 September 2008) The Speaker for the first game
07:55:36 <zzo38> (This program does work I have tested it.)
07:55:37 <elliott_> shall be Michael Norrish.]
07:55:39 <elliott_> History:
07:55:41 <elliott_> Initial Immutable Rule 104, Jun. 30 1993
07:55:43 <elliott_> Mutated from MI=Unanimity to MI=3 by Proposal 1482, Mar. 15 1995
07:55:49 <elliott_> oerjan: The only unchanged rule in Agora, 104/0, from the current ruleset.
07:56:09 <oerjan> heh
07:56:33 <zzo38> Taneb: Can you look at my program tell me if it follows what you are thinking of?
07:56:40 <elliott_> That rule's last change is of adult age in many parts of the world.
07:57:11 <pikhq> Let's declare it a player.
07:57:34 <elliott_> pikhq: Agora's an autonomous person as of shortly after its eighteenth birthday
07:57:42 <elliott_> It is ostensibly going to try and play BlogNomic at some point
07:59:05 <elliott_> Sooo... Elliottcraft main non-game todo list: Implement generic introspection and modification system for objects. Implement generic serialisation mechanism on top. Implement FRP-based GUI toolkit using OpenGL through GPipe.
07:59:54 <pikhq> elliott_: No, just that rule.
08:00:10 <elliott_> pikhq: Well... there's precedent...
08:02:09 <zzo38> Tell me if I did anything messy because I am not very good at Haskell and maybe some things I could have done in better way. I know the patterns of w_tail is not exhaustive but the specification of Constantinople doesn't say anything about that.
08:02:55 <itidus20> elliott_: is the main problem with emulation really sound? i imagine that being that graphics are fixed at a framerate it's much easier to handle them
08:02:57 <elliott_> zzo38: you don't need the ; at the end of every line
08:03:01 <elliott_> it's unidiomatic
08:03:22 <pikhq> itidus20: The main problem is everything.
08:03:42 <pikhq> Though, amusingly, the sound is one of the *easier* bits to emulate.
08:03:44 <elliott_> itidus20: Sound is a major problem because of the latency guarantees and the fact that it's partly analogue on the SNES. But... the main problem is synchronisation, and emulation at the cycle level.
08:03:53 <PatashuWarg> Wait, you make compilers for people if they just ask you?
08:04:04 <elliott_> Doesn't look like a compiler to me.
08:04:09 <zzo38> elliott_: It is not at the end of every line. Although the reason is I use nonlayout style so I put ; at the end of every line.
08:04:10 <PatashuWarg> Oh sorry, interpreter
08:04:18 <elliott_> zzo38: Why non-layout
08:04:33 <itidus20> in other words.. i simply cannot imagine that you need a 3ghz pc to produce a 640x480 frame in 2d at 60fps
08:04:36 <elliott_> Everything you have there would work identically if you removed the two {}s and the semicolons
08:04:52 <elliott_> itidus20: It isn't just displaying frames
08:04:53 <itidus20> i know its not 640x480.. i don't know what it is though
08:04:54 <zzo38> elliott_: It is a compiler. It is just incomplete because the parser is not written yet. And then you can ghc Main.hs < ConstantinopleProgramCode and it compile into the executable file.
08:05:03 <elliott_> itidus20: It's emulating many, many systems
08:05:09 <zzo38> I just prefer nonlayout.
08:05:10 <elliott_> zzo38: Oh, okay.
08:05:28 <elliott_> zzo38: Well, you don't have to use layout just because it's enabled.
08:05:38 <elliott_> The only affect it'd have would be to let you elide the semicolons.
08:05:38 <itidus20> hummmmmmmmmmmmm............. ok
08:06:06 <zzo38> I find nonlayout clearer actually...
08:06:20 <elliott_> Well, OK. It's not very idiomatic, though.
08:07:18 <zzo38> Is there anything else wrong other than the semicolons?
08:07:31 <elliott_> Not that I can see.
08:07:38 <coppro> elliott_: you also forgot that Agora is actively playing itself
08:07:47 <elliott_> coppro: It is?
08:07:54 <zzo38> I know I don't need "deriving Show" for Memory but I put it there for debugging purpose. I can remove it when it is finished.
08:07:58 <elliott_> zzo38: Although another unidiomatic thing is using _s as a suffix
08:07:58 <coppro> elliott_: yes
08:08:21 <itidus20> elliott_: well, it's amazing how difficult emulation proves to be... it's counter-intuitive
08:08:26 <elliott_> (Generally camelCase is preferred to separate words, but under_scores aren't unheard of; but as a suffix it's very unidiomatic, especially as it can be confusing (f'_ looks like the function f' with the pattern _ to me))
08:08:46 <coppro> elliott_: someone made a rule saying that agreements intending to be persons are persons. Then someone made a rule saying that Agora intends to be a person. Then someone proposed that Agora register IIRC
08:08:57 <zzo38> O, OK, I didn't know that. I put the _ suffix to prefer conflict with reserved words and imported words.
08:09:00 <elliott_> coppro: Fair enough
08:09:07 <zzo38> s/prefer/avoid/
08:09:16 <coppro> (on the basis that Agora is effectively an agreement to play by its rules)
08:09:31 <zzo38> What can you suggest I change it to?
08:10:06 <elliott_> zzo38: Well, "out" isn't in any of those packages AFAIK and it isn't a keyword... but I'd just try to rename them, mostly. I'm not sure what repeat_/repeat'_ do, so I can't really offer advice
08:10:20 <elliott_> You should probably use where clauses for your foo' functions, though
08:10:38 <zzo38> The repeat_ does the "repeat" command of Constantinople.
08:11:07 <elliott_> Ah
08:11:11 <zzo38> OK how should I use where clauses? I don't know much about where clauses
08:11:14 <elliott_> I'd prefix every command, say cmd_repeat
08:11:22 <zzo38> OK. Thanks
08:11:39 <elliott_> zzo38: where clauses look like this:
08:11:41 <coppro> grr stupid metroid prime game
08:11:41 <elliott_> foo :: a -> b -> c
08:11:41 <elliott_> foo = foo' 0
08:11:41 <elliott_> where foo' 0 a b c = ...
08:11:41 <elliott_> foo' n a b c = ...
08:11:45 <coppro> and stupid achievements
08:11:48 <elliott_> Presumably add a bunch of {}s and ;s for ugly non-layout :P
08:11:48 <coppro> achievements suck
08:11:51 <coppro> why am I a perfectionist
08:12:32 <elliott_> zzo38: Basically, foo' there is restricted to the scope of foo's body
08:12:44 <itidus20> elliott_: this reminds me of what carmack was saying about optimization. that optimized code becomes brittle and fragile. and as we can see snes software is so tightly bound to the snes hardware configuration that it can even strain a 3ghz cpu to replicate it. amazing
08:12:44 <elliott_> It helps you show that certain definitions are only used in the body of foo
08:13:09 <zzo38> Yes I can see it is not used anywhere else, things like "foo'" used only in the definition of "foo"
08:13:18 <elliott_> itidus20: Yes; later hardware like the Nintendo 64 had a much more well-defined and concrete API, so it is simpler to emulate; one can simply emulate the API, rather than every single piece of hardware at the lowest level.
08:13:32 <itidus20> ironic :D
08:13:35 -!- Taneb has quit (Remote host closed the connection).
08:13:52 <itidus20> ironic in that their own API left them vulnerable to emulation
08:14:24 <elliott_> "Vulnerable" seems the wrong word
08:14:57 <zzo38> OK, I can try to use where clauses
08:15:57 <itidus20> perhaps the trick to avoiding piracy is making something impossible to emulate
08:16:19 <coppro> no, there is no way
08:16:33 <PatashuWarg> you can't avoid piracy
08:16:50 <PatashuWarg> except by having a peripheral that' svery expensive, so you have to buy that or not enjoy the game
08:17:05 <PatashuWarg> think that mech game with the console of 30 different buttons (steel battalion?)
08:17:10 <zzo38> Making it impossible to emulate probably won't help a lot, it just makes it more difficult to write software for instead
08:17:32 <itidus20> suppose that you made a powerful hardware configration even more convoluted than the SNES... and wrote games for it in a way that it depended heavily on the hardware
08:18:00 <PatashuWarg> Sega Saturn
08:18:03 <itidus20> well i suppose piracy would still happen
08:18:04 <PatashuWarg> Actually has anyone bothered to emulate that yet
08:18:07 <zzo38> OK, I made it use where clauses now.
08:18:09 <PatashuWarg> (no because it was a failure)
08:18:15 <zzo38> And I renamed them to use cmd_ prefix instead of _ suffix
08:18:40 <itidus20> piracy would still happen because then the console itself becomes the weak point
08:18:53 <itidus20> once you have the console you can copy all of the softwares
08:19:10 <coppro> PatashuWarg: yes
08:19:21 <coppro> PatashuWarg: things much more esoteric have been emulated
08:19:26 <coppro> ever heard of a WonderSwan/
08:19:32 <coppro> No? Good. Neither have I.
08:19:35 <PatashuWarg> is that like a neogeo?
08:19:46 <itidus20> wonderswan was a competitor to the gameboy
08:19:48 <PatashuWarg> where's my n-gage emulator
08:20:05 <itidus20> it was made by the same guy who designed the gameboy
08:20:29 <elliott_> :t gmapQi
08:20:30 <lambdabot> forall u a. (Data a) => Int -> (forall d. (Data d) => d -> u) -> a -> u
08:20:50 <zzo38> What you have to do to avoid piracy is to make one arcade where you can play the game only there, you cannot get a copy of the software or go elsewhere to play game. However it makes it you will not get paid as much. With more piracy possible it actually means you can potentially get paid more, regardless of the actual amount of piracy.
08:21:39 <coppro> your site's navigation fails when: I can find the page I want faster with Google
08:21:46 <itidus20> and another problem with rigid privacy prevention systems is that it prevents people who really can't afford it from playing your works
08:22:10 <zzo38> Yes; which also means they cannot recommend it to someone who is able to pay for it.
08:22:40 <elliott_> coppro: that's probably true of almost every site design
08:23:04 <PatashuWarg> where's my n-gage emulatort
08:23:07 <PatashuWarg> whoops
08:23:11 <PatashuWarg> no but seriously. where is it
08:23:19 <zzo38> I don't know
08:23:37 <PatashuWarg> the n-gage threads on gamefaqs were hilarious
08:23:38 <PatashuWarg> good times
08:23:41 <itidus20> zzo38: but it makes a good excuse for sueing people and raising prices
08:24:00 <elliott_> pikhq: So, your package manager.
08:24:29 <coppro> elliott_: that it is faster to navigate by google?
08:24:34 <elliott_> coppro: Yes.
08:24:55 <coppro> elliott_: I suppose, but some try harder than others
08:25:26 <elliott_> coppro: Perhaps site headers should just include a big fat "search with google" box and then a link to a sitemap. :p
08:25:40 -!- Taneb has joined.
08:26:50 <coppro> k, I'm pause-scumming this
08:32:19 <zzo38> I will sleep today and will try to figure out how to write the parser tomorrow.
08:32:36 <Taneb> Okay
08:33:03 -!- zzo38 has quit (Quit: (In addition, remember Dangelo project if anyone has more ideas about it or responses to what I have added to its wiki)).
08:58:19 -!- CakeProphet has quit (Read error: Connection reset by peer).
08:59:33 -!- CakeProphet has joined.
09:04:01 -!- sebbu2 has joined.
09:04:01 -!- sebbu2 has quit (Changing host).
09:04:01 -!- sebbu2 has joined.
09:05:26 -!- sebbu has quit (Ping timeout: 264 seconds).
09:05:26 -!- sebbu2 has changed nick to sebbu.
09:05:38 -!- BeholdMyGlory has joined.
09:07:26 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:08:08 -!- Sgeo_ has joined.
09:09:39 <elliott_> instance Fields Config where
09:09:39 <elliott_> data Field Config t where
09:09:39 <elliott_> F_Config_Volume :: Field Config Int
09:09:39 <elliott_> F_Config_PlayerName :: Field Config String
09:09:39 <elliott_> F_Config_WorldDir :: Field Config FilePath
09:09:40 <elliott_> fields Config{} = [F_Config_Volume, F_Config_PlayerName, F_Config_WorldDir]
09:09:42 <elliott_> fieldInfo F_Config_Volume = FieldInfo "Volume" volume
09:09:44 <elliott_> fieldInfo F_Config_PlayerName = FieldInfo "Player name" playerName
09:09:46 <elliott_> fieldInfo F_Config_WorldDir = FieldInfo "World directory" worldDir
09:09:48 <elliott_> pikhq: BEHOLD MY UGLY.
09:15:44 <coppro> ewwwwwwwwwwwwwwwww
09:17:07 -!- augur_ has joined.
09:17:18 -!- Phantom_Hoover has joined.
09:17:23 <elliott_> coppro: To be fair, the underscores were only because I expect this to be generated, so I'm basically mimicking a computer by being as mechanical as possible.
09:17:31 <elliott_> The actual API is fairly elegant.
09:18:05 <coppro> elliott_: you expect me to treat you seriously after you whipped your ugly out in public like that?
09:18:15 -!- augur has quit (Read error: Connection reset by peer).
09:18:33 <elliott_> coppro: It's a free country.
09:19:28 <coppro> elliott_: that's what they want you to think
09:41:29 <elliott_> :t find
09:41:30 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe a
09:41:38 -!- augur_ has changed nick to augur.
09:41:45 -!- FireFly has joined.
09:41:49 <elliott_> :t findBy
09:41:50 <lambdabot> Not in scope: `findBy'
09:41:52 <elliott_> grr
09:41:54 <elliott_> ?hoogle findBy
09:41:55 <lambdabot> No results found
09:42:10 <Deewiant> findBy?
09:42:11 <oerjan> erm find is already "By"
09:42:17 <elliott_> oh right
09:42:18 <elliott_> im dumb
09:44:08 <coppro> woot finally
10:05:56 <elliott_> pikhq: Out of interest, have you ever used SIGPOLL?
10:06:25 <elliott_> Oh, hmm, it seems like aio.h is the new thing.
10:06:27 <elliott_> (Does musl have that?)
10:08:32 -!- nooga has joined.
10:09:44 <elliott_> Seems not.
10:10:01 <elliott_> Oh, hmm, it's in -lrt.
10:14:32 <elliott_> pikhq: Ello.
10:15:58 <fizzie> I vaguely recall that glibc's librt aio_blah implementations do a (mostly) POSIX implementation of aio in userspace (presumably with threads), instead of using the kernel's "native" asynchronous IO interfaces. But maybe that's been improved.
10:17:36 <fizzie> http://www.kernel.org/doc/man-pages/online/pages/man7/aio.7.html "The current Linux POSIX AIO implementation is provided in userspace by glibc.This has a number of limitations, most notably that maintaining multiple threads to perform I/O operations is expensive and scales poorly. Work has been in progress for some time on a kernel state-machine-based implementation -- but this implementation hasn't yet matured --"
10:17:44 <fizzie> I don't even have such a manpage, but anyhows.
10:18:14 <elliott_> I have an aio_read manpage.
10:18:20 <elliott_> But that sounds crappy.
10:18:28 <elliott_> The SIGIO type approach seems to be the best.
10:18:33 <fizzie> I have one for the functions too, but not for "aio" in section 7.
10:18:50 <elliott_> With fcntl(fd, F_SETSIG, signum) apparently you can even set it to a realtime signal, which I suppose creates MAGIC.
10:20:38 <fizzie> Not terribly portable, is it?
10:21:56 <elliott_> fizzie: Well... not as such, no...
10:22:18 <elliott_> fizzie: But as long as it works on Linux and is the fastest possible way to do IO without writing it in the kernel, I'm agme.
10:22:31 <PatashuWarg> Let's code BEER that emulates Linux syscalls on Windows
10:22:47 <elliott_> WINE emulates the API, not syscalls.
10:22:56 <elliott_> Cygwin is pretty much the exact same thing as WINE, but without the ABI translation.
10:23:04 <PatashuWarg> Oh yeah, cygwin
10:23:08 <elliott_> gelfload handled the rest I think -- ask Gregor
10:23:10 <PatashuWarg> Thanks for reminding me it exists
10:23:18 <elliott_> PatashuWarg: Don't thank me, Cygwin is terrible
10:23:20 <fizzie> elliott_: You could consider the Linux-native syscalls, which do have library wrappers: see "man io_setup" + io_submit + io_getevents + io_cancel + io_destroy.
10:23:23 <PatashuWarg> Pfflol
10:23:49 <fizzie> (That's what the future aio_blah functions are going to be implemented in, if it ever happens.)
10:24:04 <fizzie> Oh, "glibc does *not* provide a wrapper function for this system call".
10:24:16 <elliott_> fizzie: Weeell, the advantage of the signal approach is that you can avoid pretty much all the kernel<->userspace and polling/blocking overhead, right?
10:24:20 <elliott_> Because it's "hey, you call me".
10:24:23 <fizzie> There's a libaio and <libaio.h> somewhere.
10:24:33 <elliott_> Not that I've even man'd those named ones, but they look suspiciously like the other, slower kind.
10:25:15 <Taneb> ...How about MEAD that does... um...
10:25:24 <PatashuWarg> Mac OS?
10:25:27 <Taneb> BSD?
10:25:35 <elliott_> Taneb: Emulates the QNX API on Movitz?
10:25:51 -!- oerjan has quit (Quit: Good night).
10:30:20 <fizzie> Well, it's... asynchronous. It's not really relevant how it reports completion. There's still exactly the same amount of kernel-to-userspace copying going on. I mean, for POSIX aio, you can just set your struct aiocb's aio_sigevent to SIGEV_SIGNAL to get vaguely SIGIO-stylish "notice by signal when finished" behaviour; it's just non-natively implemented at the moment.
10:30:36 <fizzie> I don't know how the kernel's AIO interfaces do it, they seem a bit too work-in-progressy too.
10:31:18 <fizzie> But SIGIO doesn't really get you any sort of asynchronous IO, you just get signals when you can read/write, right?
10:31:39 <elliott_> back
10:31:58 <elliott_> fizzie: Well, hmm
10:32:07 <elliott_> I'm getting all these methods mixed up
10:32:19 -!- itidus20 has quit (Ping timeout: 240 seconds).
10:33:15 -!- Taneb has quit (Ping timeout: 260 seconds).
10:33:21 <elliott_> fizzie: Yeah, that does indeed seem to be true. I was hoping that you could tell the kernel "here's a buffer; here's the number of bytes I want; send me a signal when you've filled it".
10:34:11 <elliott_> fizzie: Probably the Linux syscalls are the best way, then.
10:35:01 <elliott_> It looks like they're edge triggered, which propaganda tells me is good.
10:35:42 <elliott_> fizzie: I'll probably avoid libaio because of all that, you know, overhea.d
10:35:44 <elliott_> overhead.
10:36:29 <elliott_> I must say that I find these syscalls' documentation of their input formats to be lacking.
10:37:22 -!- Taneb has joined.
10:37:55 <fizzie> Yes, it seems to be quite sukcy.
10:38:12 <fizzie> Also http://lse.sourceforge.net/io/aio.html says it doesn't really work in most cases.
10:38:43 <elliott_> "AIO read and write on sockets (doesn't return an explicit error, but quietly defaults to synchronous or rather non-AIO behavior)"
10:38:47 <elliott_> OK, well that's fucking useless then.
10:39:06 <elliott_> I can't quite believe that there's no kernel asynchronous IO for sockets.
10:39:35 <fizzie> Only for raw devices and O_DIRECT files on some filesystems; it seems that it's been implemented according to database folks' requirements.
10:40:21 <fizzie> "Asynchronous I/O on linux or: Welcome to hell." Well, that's a nice-sounding title.
10:40:31 <elliott_> Nice
10:40:38 <elliott_> Oh, that's the page I was reading
10:40:55 <elliott_> Unfortunately POSIX AIO on linux is implemented at user level, using threads! (Actually, there is an AIO implementation in the kernel. I believe it's been in there since sometime in the 2.5 series. But it may have certain limitations - see here - I've yet to ascertain current status, but I believe it's not complete, and I don't believe Glibc uses it).
10:41:07 <elliott_> Also apparently the POSIX API is crazy.
10:43:10 <fizzie> Yes, that's not too surprising.
10:43:31 <elliott_> So, um, there is _no_ actual asynchronous IO on sockets for Linux??
10:43:32 <elliott_> This is insane.
10:52:15 <elliott_> fizzie: Is... that right? I mean, I could be misreading...
10:53:02 <fizzie> It seems to be mostly right. I don't think very much work is going on with the kernel-side aio mechanism; there's a lot of stuff from ~2007 or so, but haven't seen any real news.
10:53:10 <elliott_> Well that's crap.
10:53:14 <elliott_> What do the BSDs have to offer, I wonder ;-)
10:54:33 <fizzie> They have the POSIX AIO api in their libc, I believe. No guess on lower-level implementation details.
10:55:02 <elliott_> So I suppose the Most Asynchronous you can get is either epoll or SIGIO plus blocking reads.
10:55:06 <elliott_> That's... super lame.
10:57:40 -!- nooga has quit (Ping timeout: 258 seconds).
10:59:01 <fizzie> My guess is that they've just given up implementing it in the kernel, since everyone seems to be doing networking just fine without it (with worker-thread pools and so on); and it works for direct-file IO because database people have been more interested.
10:59:01 <elliott_> It may even be the: super-lamest.
10:59:15 <elliott_> fizzie: Well yeeeeeees, but where's the fun in threads?
10:59:56 <elliott_> I wonder whether the SIGIO-type dealie set to a realtime signal or epoll is more OPTOMIZED. I suspect the answer is "the former, but signal handlers are so restricted that the infrastructure you need makes it as slow as the latter".
11:00:41 <fizzie> epoll's supposed to scale well for a large number of watched descriptors, at least.
11:05:48 <elliott_> fizzie: Still, it's distinctly unsatisfying... you have to fork off or spawn a thread or _something_ if you want to be reading and writing to it. Or, hmm, I wonder if I could make it O_NONBLOCK?
11:06:33 <fizzie> I'm not sure how that'd help; I mean, epoll already tells you when it's safe to read/write some without blocking.
11:07:00 <elliott_> Oh, well, dur.
11:07:25 <elliott_> Maybe I'll just run Synthesis in a Motorola CPU emulator. That's practical, right?
11:09:08 <fizzie> Incidentally, I'm not even sure what you're doing.
11:09:37 <olsner> elliott_: bonus points if the motorola cpu emulator needs to be run in a PowerPC emulation
11:09:55 -!- nooga has joined.
11:10:37 <elliott_> fizzie: Well, that's because I didn't tell you. Basically I'm hoping that minimalism will help me overcome the unrealisticness of hubris.
11:10:46 <elliott_> What I'm saying is I'm trying to write the fastest server possible but it doesn't have to do much.
11:12:07 <fizzie> There's the Linux-only trick for playing around with splice/vmsplice to do no-userspace-copy socket-to-socket or file-to-socket (though for the latter there's the far easier-to-use sendfile, of course) stuff you can do if you pretend to be interested in performance, but that's not appilcable if what you're feeding is locally programmatically computated stuff.
11:12:27 <fizzie> APPIL CABBEL.
11:12:53 <elliott_> fizzie: It's read from socket -> process -> send directly back from filesystem.
11:13:37 <elliott_> So ostensibly, epoll, process as efficiently as possible, sendfile, repeat.
11:24:02 -!- monqy has quit (Quit: hello).
11:24:26 <elliott_> Gregor: BTW, what's with the srand random in umlbox?
11:29:54 <fizzie> Based on a glance, it looks like it wants to give a different seed for each handleRun-forked process.
11:30:53 <elliott_> Heh :P
11:35:11 <fizzie> Funnily, if it were a "use given seed directly as if it was the last output, no state larger than the returned value" RNG, srandom(random()) would be just as useful as a single random() and would just start each process one value later in the sequence. But random() has a large table of state and presumably does something else.
11:35:29 -!- elliott_ has quit (Read error: Connection reset by peer).
11:35:32 -!- elliott has joined.
11:41:10 <fizzie> `run echo -e '#include <stdlib.h>\n#include <stdio.h>\n int main(void) { int i,j; char states[4][128]; for(i=0; i<4; i++) initstate(random(), states[i], 128); for(i=0; i<4; i++) { setstate(states[i]); for(j=0; j<6; j++) printf(" %ld",random()%100); printf(" -"); } return 0; }' | gcc -xc -o ./tmp.tmp - ; ./tmp.tmp
11:41:12 <HackEgo> 98 75 6 22 99 12 - 24 54 86 60 0 74 - 36 83 15 19 16 6 - 50 3 47 38 76 55 -
11:41:21 <fizzie> Seems to create quite independent-looking sequences.
11:49:51 <elliott> fizzie: So have I mentioned that @ has no kernel<->userspace overhead at all and so its IO model is simple and fast because, and I don't think everyone quite knows this yet,
11:49:55 <elliott> @ IS THE BEST FUCKING THING EVER
11:51:19 <fizzie> `run echo -e '#include <stdlib.h>\n#include <stdio.h>\n#include <math.h>\n int main(void) { int i,j; unsigned short states[4][3]; for(i=0; i<4; i++) { unsigned long long u=drand48()*pow(2,48); states[i][0] = u; states[i][1] = u>>16; states[i][2] = u >> 32; } for(i=0; i<4; i++) { seed48(states[i]); for(j=0; j<6; j++) printf(" %ld",lrand48()%100); printf(" -"); }}' | gcc -xc -o ./tmp.tmp - ; ./tmp.tmp
11:51:22 <HackEgo> 18 95 86 66 96 89 - 95 86 66 96 89 21 - 86 66 96 89 21 12 - 66 96 89 21 12 46 -
11:51:31 <fizzie> That one's not so clever.
11:51:51 <fizzie> (If you go to the trouble of actually extracting the internal 48-bit state, anyway.)
11:52:22 <elliott> Enjoying yourself, are we
11:52:28 <fizzie> But of course!
11:52:36 <fizzie> Butt, of course.
11:53:01 <elliott> You should ask me to explain how @ avoids ALL kernel<->userspace overhead and therefore can do IO perfectly in every direction and whichway because yes??????
11:53:05 <elliott> EVERYONE SHOULD ASK ME THAT
11:54:14 <Deewiant> I'll ask you when you've implemented it
11:54:45 <fizzie> I've seen you blab something about not having any kernel/userspace split at all because everything is oh-so-safe whee, I just, you know, assumed. Also what he said.
11:55:11 <elliott> Deewiant: I'm working on that, dude :P
11:55:30 <elliott> It's not like there's any amazingly hard problem I have to solve to implement it
11:55:45 <elliott> It's just that there's a bunch of things I haven't fully specified yet that affect the design of other components in a major way
11:56:56 <elliott> Deewiant: But you're free to help, if you're so eager to see it implemented :-)
11:57:52 <Deewiant> Other than getting yourself motivated
11:58:46 <elliott> I'm perfectly motivated to write @, but I don't see the point in starting on an implementation that I know will fail (in a much stronger sense than "build one to throw away")
11:58:49 <cheater_> Deewiant is lazy functional.
12:11:21 -!- PatashuWarg has quit (Ping timeout: 240 seconds).
12:14:58 <elliott> `addquote <Taneb> Maybe if you try diplomacy. <Taneb> Pointy steel diplomacy
12:15:00 <HackEgo> 593) <Taneb> Maybe if you try diplomacy. <Taneb> Pointy steel diplomacy
12:37:17 <CakeProphet> is it possible to run Firefox with a different layout engine?
12:50:02 <Deewiant> Why do I always end up with a bunch of functions with 8 or more parameters
12:50:05 <fizzie> It used to be possible to run some version of Netscape (8?) with IE's "Trident" engine on Windows.
12:50:58 <elliott> Deewiant: In which language
12:51:05 <Deewiant> In all languages
12:51:08 <Deewiant> In this case, C
12:51:25 <elliott> Deewiant: If C: Because you don't have enough structs, or aren't separating things out into separate initialisation procedures
12:51:37 <elliott> Deewiant: If Haskell: Because you fail at building combinator libraries
12:51:50 <Deewiant> What do you mean by initialisation procedures
12:53:46 <elliott> Yeah, that wasn't very explicit, I just mean that instead of doing an entire operation as one atomic procedure, you can factor it out into initialising a state, repeatedly applying some action to it, and then destructing it
12:53:59 <elliott> If that doesn't make any sense, then it's not the right advice for the situation :-P
12:55:14 <elliott> Deewiant: What procedure is it, anyway
12:55:33 <Deewiant> It's not a "procedure", it's "a bunch of functions"
12:55:44 <elliott> Well, what's the one with the most parameters :-P
12:56:26 <Deewiant> Let's see, it's probably the one that wishes it were a nested function
12:56:40 <elliott> Questioning your API design at this point
12:57:05 <Deewiant> Hey, my public API is minimal
12:57:48 <elliott> What is it :-P
12:57:57 <Deewiant> What it
12:58:04 <Taneb> A third-person neuter pronoun
12:58:05 <elliott> Your public API, I'm being a horrible sceptic
12:58:14 <Taneb> But that's not important
12:59:09 <elliott> Taneb: Why'd you give a peasant a fancy bed anyway
12:59:22 <Deewiant> allocate(void*, stats*) free(space*) get(space*, coords) put(space*, coords, cell) load_string(space*, char*, size_t, coords, coords*, bool) modulo names/const/etc
12:59:26 <Taneb> I did? What?
12:59:35 <Deewiant> + the cursor stuff I haven't done yet
12:59:47 <elliott> Deewiant: load_string is strictly superfluous ;-)
13:00:13 <Deewiant> Well, depends on how you define "minimal"
13:00:40 <Deewiant> free is also strictly superfluous :-P
13:01:02 <elliott> Deewiant: If you're going to be all performance-minded like that, you should at least offer a way to get/set in bulk :P
13:01:13 <elliott> Like "copy this two-dimensional array in/out"
13:01:21 <Deewiant> Oh yeah, I do
13:01:33 <Deewiant> I forgot about those, they're not in the .h yet
13:01:39 <elliott> I'm a genius
13:01:59 <Taneb> I'm a genus
13:02:06 <Deewiant> Or, even better, the required wrappers aren't in the .c either
13:02:11 <elliott> Deewiant: Show some fun internal function signatures then :P
13:03:08 <Deewiant> But, uh, those would look like map(coords, coords, void(*)(cell*, size_t, stats*)) and map_no_alloc(coords, coords, void(*)(cell*, size_t, stats*), void(*)(size_t)) I think
13:03:29 <elliott> Deewiant: That's... not the most efficient API I can think of :P
13:03:42 <Deewiant> Do tell
13:03:51 <elliott> Deewiant: Weeeeeell, I have a natural aversion to function pointers
13:04:00 <elliott> I'd just make it take a pointer and have it basically be a blit
13:04:10 <Deewiant> I have a natural aversion to copying when it's not necessary
13:04:13 <elliott> Sure, you end up "iterating twice" if you're going to for over it afterwards, but the constants are low
13:04:25 <Deewiant> You might be doing a search or whatever
13:04:26 <elliott> Deewiant: You don't need to copy if it's contained within a region boundary
13:04:51 <Deewiant> You'd have it return the pointer?
13:05:03 <Deewiant> In any case, that requires copying in the general case :-P
13:05:21 <elliott> Deewiant: Yeah; and so what, just say "This will be slow unless [conditions]" ;-)
13:05:31 <Gregor> <elliott_> Gregor: BTW, what's with the srand random in umlbox? // I only use the randomness within a fork(), so if I don't reseed it before every fork, I'll get the same random numbers every time.
13:05:42 <Deewiant> I'd rather say "this will be fast always"
13:06:01 <elliott> Gregor: Right.
13:07:02 <elliott> Deewiant: You still haven't supplied any internal signatures ;-)
13:07:09 <elliott> WE WILL FIND OUT
13:07:10 <elliott> ONE WAY
13:07:10 <elliott> OR
13:07:11 <elliott> ANOTHER
13:07:39 <Deewiant> static bool mushspace_newline(bool*, mushcoords*, mushcoords, mush_aabb*, size_t, size_t*, size_t*, mushcoords, size_t*, uint8_t*);
13:07:47 <Deewiant> As I thought
13:07:53 <Deewiant> The one that wants to be nested
13:09:09 <elliott> Gross, remind me to put shiro-lahey on Hackage before you get that out
13:09:27 <elliott> "Generalised N-dimensional Lahey spaces with an efficient unboxed representation"
13:09:33 <elliott> People might even mistake it for something useful
13:09:50 <Deewiant> I have a macro for calling that
13:09:56 -!- derrik has joined.
13:10:05 <Taneb> Why are there four size_ts?
13:10:18 <Deewiant> static bool mushspace_newline(
13:10:18 <Deewiant> bool* got_cr, mushcoords* pos, mushcoords target,
13:10:18 <Deewiant> mush_aabb* aabbs, size_t aabbs_len, size_t* a, size_t* max_a,
13:10:18 <Deewiant> mushcoords last_nonspace, size_t* found_nonspace_for, uint8_t* get_beg)
13:11:13 <Deewiant> 10 parameters and 13 non-blank lines of code
13:12:43 <elliott> Deewiant: You should really have a (T *, size_t) pair
13:12:55 <Deewiant> Yeah I probably should
13:13:07 <Deewiant> It'd take this from 10 to 9!
13:13:19 <elliott> #define DECL_BUFFER(T) typedef {size_t size; T *data;} T##_buffer
13:13:20 <elliott> :P
13:13:41 <elliott> Deewiant: "size_t* a, size_t* max_a" also makes me suspicious
13:13:52 <Deewiant> Howso
13:13:57 <elliott> Could be a struct :-P
13:13:58 <elliott> Deewiant: Also "mushcoords" vs. "mush_aabb" vs. "mushspace_" -- get some consistency
13:14:21 <Deewiant> mushspace_ is the module, mush_ is internal, mush is external
13:14:44 <elliott> Deewiant: The distinction between the latter two is confusing :P
13:14:45 <Deewiant> elliott: I don't want to make a struct to be used by exactly one function
13:14:57 <Deewiant> You don't need to care, you're a user, you'll only see mush
13:15:04 <Taneb> http://en.wikipedia.org/wiki/Nazi_talking_dogs
13:15:04 <elliott> Sorry for commenting on your code :P
13:15:18 <Deewiant> No worries dude :-P
13:15:44 <elliott> Deewiant: Also, I'm offended that the implication that I'd use code with so many parameters
13:15:45 <Deewiant> It's just: mushcell, mushcoords, mushspace, and mushcursor
13:15:58 <Deewiant> Oh, and mushstats
13:16:06 <elliott> Deewiant: So is it N-dimensional
13:16:10 <Deewiant> No
13:16:22 <Deewiant> It's [1-3] selectable at compile time
13:17:04 <elliott> Deewiant: Well then, is it ... uhh, what was that structure I was going to use... R-tree?
13:17:10 <Deewiant> Nope
13:17:14 <Deewiant> No trees here
13:17:17 <elliott> Deewiant: Is it purely-functional?
13:17:32 <elliott> Deewiant: And does it have the words LAHEY SPACE anywhere????
13:17:48 <Deewiant> Does it look purely functional? :-P
13:17:54 <elliott> Deewiant: ALL I AM SEEING ARE FLAWS HERE
13:17:55 <Deewiant> And no, I don't think it does
13:18:05 <Deewiant> Hey, it has 10-parameter functions
13:18:08 <Deewiant> THAT'S A GOOD THING RIGHT
13:18:10 <elliott> Precisely :-P
13:18:24 <elliott> Deewiant: Well if those are a good thing
13:18:38 <elliott> Deewiant: Where's your mergeByteString
13:18:46 <Deewiant> load_string?
13:18:48 <elliott> A function unparalleled in API and implementation consistency
13:18:53 <elliott> Deewiant: No, that's just a function that does the same thing
13:19:03 <elliott> I'm asking, where's your equivalent jewel
13:19:18 <elliott> Deewiant: http://sprunge.us/SATe
13:19:26 <elliott> Deewiant: Where is your FUNCTION OF EQUIVALENT OR GREATER ELEGANCE??????
13:20:21 <Deewiant> I think I'll go with mushspace_newline
13:20:52 <Deewiant> Can't argue with binary arithmetic: *max_a = mush_size_t_max(*max_a, *a |= 0x02);
13:20:57 <elliott> Heh
13:21:08 <elliott> My fungespace representation is really bad :/
13:21:16 <elliott> But I'm trying to clean up the rest of the code first
13:21:25 <elliott> Or any effort will collapse in on itself
13:23:37 <elliott> Also I use String all over the place, I should fix that
13:23:53 <Deewiant> String is good, list-tries supports it
13:24:15 <elliott> Deewiant: Tries are like the only time String has a nice structure :P
13:24:25 <Deewiant> Yup :-P
13:24:37 <elliott> I decided not to like list-tries when I noticed you had completely unnecessarily abstracted the map out ;-)
13:24:52 <Deewiant> It's pretty gross, I know
13:24:54 <elliott> (OK, so for really small alphabets you can avoid map overhead but come oooon.)
13:25:00 <Deewiant> But what's the better alternative
13:25:08 <elliott> Deewiant: Pick one map, force it on everyone
13:25:09 <Deewiant> It was more about being able to use Eq/Ord/whatever keys
13:25:12 <Deewiant> I don't want that
13:25:17 <elliott> I want that
13:25:23 <Deewiant> "force X on everyone" is something I abhor :-P
13:25:38 <elliott> It's called a library, if you didn't force something on everybody it'd be empty
13:26:05 <elliott> Let's put it this way: There is no way that that Map class can lead to anything good :-P
13:26:44 <elliott> Deewiant: How about just using a type family
13:26:45 <Deewiant> It leads to being able to use keys without Ord instances while not having to use linked lists for maps in general
13:26:49 <elliott> Deewiant: How about just using a type family
13:26:56 <Deewiant> Type families were pretty experimental when I started it
13:27:00 <elliott> They're not now
13:27:00 <Deewiant> Nobody was using them
13:27:03 <Deewiant> Yeah so
13:27:07 <Deewiant> elliott: How about just rewriting it
13:27:19 <elliott> Deewiant: But someone's already roped me into one bit of work today :-(
13:27:38 <elliott> It's child labour
13:28:08 <Deewiant> In the meanwhile you can live with it
13:28:15 <elliott> Bug report
13:28:15 <elliott> -- 'Just'@ a@is returned, the old value is replaced with @a@. If the key is
13:28:26 <elliott> And yeah, I'll live with it by not using it :-P
13:29:12 <Deewiant> There's also an \ue000 between the @ and the is, somehow
13:29:25 <elliott> That's the bug report
13:29:44 -!- derrik has left.
13:29:46 <elliott> Hmm, I'm not sure type instances would actually work
13:29:47 <elliott> Or, well
13:30:04 <elliott> They might, actually
13:30:12 <elliott> (Map k) => ...
13:30:17 <elliott> class Map k where type MapFor k
13:30:19 <elliott> Hmm
13:30:32 <elliott> Dammit, now you've got me pondering :-P
13:30:38 <Deewiant> heh
13:30:44 <elliott> Deewiant: Heeeeey, technically I _am_ a user of list-tries.
13:30:50 <Deewiant> GPipe, yes
13:30:58 <elliott> CHAINSAW TIME
13:31:03 <Deewiant> :-P
13:31:37 * elliott promptly gets himself stuck on whether "class HasMap k where type Map k" or "class Map k where type MapFor K" is nicer, conveniently uses this to drop the whole thing.
13:31:53 <Deewiant> Bikeshedding is annoying like that
13:32:22 <elliott> Which is nicer, I'll just pick the opposite of whatever you say, problem solved
13:32:34 <Deewiant> HasMap
13:32:36 <elliott> Is this three space indentation good lord
13:32:45 <Deewiant> Yep
13:32:51 <elliott> I don't like you :(
13:32:53 <fizzie> Incidentally, why do we only have +cn? All the *real* channels have something like +CLPcfjnt on. (Okay, so you need freenode admins for +LP, but...)
13:32:54 <Deewiant> :-(
13:33:08 <elliott> fizzie: Both +c and +n are bad modes for bad people
13:33:10 <elliott> Can we remove them
13:33:11 <Deewiant> We don't have +t because people like to change the topic
13:33:22 <Deewiant> And I don't know what the others do
13:33:39 <Deewiant> What's wrong with three space indentation
13:33:39 <fizzie> +j is join-throttling, only N joins in M minutes.
13:33:51 <elliott> +c filters colours and also bold.
13:33:54 <fizzie> +f forwards the +j-throttled to other channels.
13:33:56 -!- sllide has joined.
13:33:58 <elliott> +n stops people sending a message when outside the channel.
13:34:01 <elliott> Oh wait
13:34:04 <elliott> You're asking about fizzie's
13:34:05 <fizzie> +C filters to-channel CTCPs.
13:34:07 <elliott> Im smart
13:34:24 <fizzie> And +LP are large-ban-lists + permanent.
13:34:49 <Deewiant> When admins start wondering why so few people have been banned, worry
13:34:52 <elliott> Deewiant: Three-space indentation is just weird because it is
13:35:01 <elliott> Powers of two are the only good indentation widths
13:35:07 <Deewiant> 2 is too narrow, 4 is too wide
13:35:17 <elliott> Two is fine for Haskell code
13:35:30 <elliott> The nesting is shallow in idiomatic code, and the left-side rule means that you get more indentation than that
13:35:32 <Deewiant> Maybe, I haven't thought about it per-language
13:35:42 <elliott> e.g. " where " is actually an eight-char indentation, really
13:36:14 <Deewiant> Yeah but I often write that as " where\n<indentation>"
13:36:24 <elliott> Well that's bad :)
13:36:28 <Deewiant> If a lot of stuff follows it
13:36:30 <Deewiant> Well why :-p
13:36:41 <elliott> Because it reads less fluidly and also makes two space worse
13:36:51 <elliott> Deewiant: Do you really use all the functions in the Map class
13:36:55 <Deewiant> I think of "where" as invisible
13:36:56 <Deewiant> Yes
13:36:58 <elliott> Wow
13:37:10 <Deewiant> It started out smaller :-P
13:37:13 <elliott> Don't you think putting some of them outside the class would have a certain... elegance
13:37:28 <Deewiant> They all have direct implementations in Map/IntMap IIRC
13:37:28 <elliott> I mean, how would you optimise mapAccum to be faster than the obvious implementation in terms of mapAccumWithKey :-P
13:37:43 <elliott> Yeah, but those implementations will probably reduce to basically the same thing as the obvious transformation...
13:38:01 <Deewiant> mapAccum on a trie doesn't need to remember the key
13:38:57 <elliott> Heh
13:39:11 <Deewiant> Most of them are probably there because my trie API was just union(Data.Map, Data.IntMap) and it turns out that you need mapAccum to implement mapAccum (or whatever)
13:39:27 <elliott> Data.Map.Map seems like a really bad default choice to use
13:39:38 <elliott> I mean, compared to something hash-based
13:39:45 <elliott> Where the hash for Char helpfully reduces to id
13:39:59 <Deewiant> There's no "default choice"?
13:40:15 <elliott> Well, OK, I just mean that you provide instances for Map :-P
13:40:17 <Deewiant> You pick by type class: Eq, Ord, Enum are provided
13:40:25 <Deewiant> Feel free to add Hashable or whatever :-P
13:40:28 <elliott> Admittedly I was thinking in terms of HasMap which I've actually just created :P
13:41:20 <elliott> Deewiant: If you're such a fan of iteration over conversion followed by traversal, shouldn't you take a traversal function rather than [k] so that you can use Text/ByteString directly :-P
13:41:31 <elliott> That started out as a joke but then it turns out I couldn't answer it oops
13:41:39 <Deewiant> heh
13:41:59 <Deewiant> [k] pretty much is a traversal function in Haskell
13:42:05 <Deewiant> Given laziness and all
13:42:07 <elliott> Yeah, 'strue :P
13:42:47 <elliott> Would Foldable work or something, I don't actually know that family of classes very well
13:42:55 <elliott> I mean, to avoid wrapping it with a bunch of conversions
13:43:37 <Deewiant> What exactly are you talking about now
13:43:45 <Deewiant> Work where, to avoid what
13:44:02 <elliott> As in, everywhere you take a [k]
13:44:14 <elliott> To avoid having to write a ByteStringTrieMap that listifies it
13:44:18 <elliott> For every function
13:45:07 <Gregor> elliott: So how's mudex?
13:45:35 <elliott> Gregor: I haven't touched it much, unfortunately
13:45:40 <elliott> It's CLOSE to working :P
13:45:52 <Deewiant> Traversable might work
13:46:29 <elliott> Deewiant: class ToList k where type Elem k; toList :: k -> [Elem k] would probably work :-P
13:46:34 <Deewiant> I guess Foldable is better because you can use foldr (:) [] to get a list
13:46:45 <elliott> You could even optomize it
13:47:42 <Deewiant> Foldable makes it be x a -> [a] though instead of your x -> [Elem x]
13:47:56 <elliott> Deewiant: Exactly, which is worse, because it doesn't support monomorphic containers
13:48:02 <Deewiant> Yep
13:48:08 <Deewiant> I guess there's no point in caring about non-GHC portability these days? :-P
13:48:13 <elliott> Like, say, ByteString and Text, the most popular third-party string types :-P
13:48:18 <elliott> Deewiant: Dude, you depend on functional dependencies
13:48:19 <Deewiant> Text didn't exist back then
13:48:25 <elliott> Deewiant: Implementing type families is both equivalent and easier :-P
13:48:27 <Deewiant> elliott: It worked in Hugs IIRC
13:48:30 <elliott> Yeah
13:48:31 <elliott> But, I mean
13:48:34 <elliott> Hugs doesn't exist any more :P
13:48:39 <Deewiant> Yeah, and that was my point
13:48:42 <elliott> Well, yeah
13:48:51 <Deewiant> Is there for any practical purpose a non-GHC Haskell implementation
13:49:00 <elliott> jhc
13:49:03 <elliott> But nobody really uses it
13:49:06 <elliott> And it doesn't support much at all
13:49:09 <elliott> I doubt it does fundeps
13:49:10 <Deewiant> Is that semi-up-to-date these days?
13:49:14 <elliott> There's LHC... but that's a backend
13:49:19 <elliott> UHC maybe? Naw
13:49:20 <Deewiant> I know of only UHC
13:49:23 <elliott> Deewiant: Basically, no, there isn't, but there should be one
13:49:33 <Deewiant> As something that is reasonably developed
13:49:35 <elliott> But if there becomes one, it'll probably support type families before fundeps
13:49:40 <Deewiant> Fair enough
13:51:03 <elliott> Deewiant: Pro AList
13:51:27 <elliott> Now I just have to think of a type for which AList is actually desirable so that it doesn't end up with no instances :-P
13:51:37 <elliott> Maybe if your keys are other ALists?
13:51:46 <elliott> Then you're already suffering with ALists
13:51:53 <elliott> So more probably won't hurt much
13:53:07 <Deewiant> AList is if you only have Eq
13:54:00 <elliott> Hmm, the question is how to provide the AList machinery without actually giving it instances
13:54:11 <elliott> That is, you want to be able to just use a line or two to say "hey, use an AList" for this.
13:54:14 <elliott> Aha, hmm
13:54:34 <elliott> Maybe if the Map class was kept as is with the m parameter, and MapFor was a /separate thing/
13:54:37 <elliott> Then the context would become
13:54:41 <elliott> (Map (MapFor k) k) => ...
13:54:42 <elliott> Which is
13:54:44 <elliott> Extremely ugly
13:54:56 <elliott> But the alternative is implementing all the HasMap methods every single time you want to make a type use that map?
13:54:59 <elliott> Which is very stupid
13:55:01 <elliott> Oh wait
13:55:09 <elliott> class Map (MapFor k) k => HasMap k where type MapFor k
13:55:12 <elliott> Deewiant: Genius
13:56:45 <elliott> At this point Deewiant has blocked me on every communication method he can and put notes all around his house to never accept a patch from me ever
13:57:00 <Deewiant> Wrong
13:57:10 <elliott> If by wrong, you mean right
13:58:04 <elliott> That combined Map/HasMap approach seems distinctly unsatisfying, but I'm not sure why...
13:58:56 <Deewiant> Woo, 7 parameters and 7 lines of code (+ 6 for the introduction and closing curly bracket)
13:59:45 <elliott> Deewiant: How many typeclasses :-P
13:59:51 <Deewiant> This is C
13:59:59 <Deewiant> Or are you asking me how many to add
14:00:02 <Deewiant> Or what
14:00:26 <elliott> Deewiant: It was a joke
14:00:33 <Deewiant> It failed
14:00:36 <Deewiant> Clearly
14:00:42 <elliott> Deewiant: No, you're just not refined enough to get it
14:04:50 <elliott> I guess what's really required is... default instances for certain values of a type family
14:04:51 <elliott> Wooooooo
14:05:09 <elliott> class Map (MapFor k) k => HasMap k where type MapFor k is certainly looking appealing
14:05:36 <Deewiant> 2011-08-14 16:33:54 ( Deewiant) HasMap
14:05:38 <Deewiant> I toldya
14:06:01 <elliott> Deewiant: Uh, I decided on HasMap back then
14:06:07 <elliott> Deewiant: It's just that what I did was wrong
14:06:20 <elliott> Deewiant: I changed class Map m k where HOLY GOD SO MUCH STUFF
14:06:20 <elliott> to
14:06:32 <elliott> class HasMap k where type Map k :: asterisk -> asterisk; HOLY GOD SO MUCH STUFF
14:06:39 <elliott> Whereas I actually want it to be
14:06:51 <elliott> class IsMap m where type Key m; HOLY GOD SO MUCH STUFF
14:06:54 <elliott> then later on
14:07:05 <elliott> class IsMap (Map k) => HasMap k where type Map k
14:07:09 <elliott> Hmm, actually
14:07:16 <elliott> class (IsMap (Map k), Key (Map k) ~ k) => HasMap k where type Map k
14:07:23 <elliott> But yeah, that avoids type families :-P
14:07:31 <elliott> And is seemingly as generic as possible
14:07:51 <elliott> And makes saying "oh, Chars should use BlahMap" as simple as "instance HasMap Char where type Map Char = BlahMap Char" if there's a proper IsMap instance
14:08:17 <Deewiant> And makes it impossible for somebody to use a FooMap instead if he wants to? :-P
14:09:44 <elliott> Deewiant: Well, firstly, that's basically the entire tradeoff being made by using a type family; in return there's not an ugly extra parameter going around everywhere. But let's put it this way, I am finding it _very_ hard to think of a situation where you'd have two people thinking a certain map type is best for (element type), and one of them not being wrong :-P
14:09:54 <elliott> Like, for Chars, there's not N usecase strategies or whatever that would suggest different maps
14:10:00 <elliott> There's going to be one map that has the best all-round performance on Chars
14:10:27 <elliott> OK, when your keys are like [[k]] then it gets more complicated, but you probably want that to become a nested TrieMap really
14:10:55 <Deewiant> What if user U has a closed source super map he wants to use but can't be provided by list-tries because it's closed source
14:12:09 <elliott> Deewiant: If the key type is not a "generic" type, then just give the instance directly; else, newtype wrapper -- remember that I'm going to introduce ToList, so actually this isn't a pain
14:12:16 <elliott> Well, it's less of a pain, anyway
14:12:35 <elliott> At the most, you'll need to wrap the functions for convenience as much as you'd have to now to use ByteString or Text
14:12:44 <elliott> And the latter two are far more common than a closed source supermap :-P
14:12:48 <Deewiant> Fair enough I guess
14:12:51 <Deewiant> super map*
14:12:58 <elliott> Duper map
14:13:03 <Deewiant> Souper map
14:13:22 <elliott> Deewiant: Is there a repository of some sort I should clone rather than patching up the latest Hackage release
14:14:31 <Deewiant> git://tar.us.to:9418 I think
14:14:39 <CakeProphet> `run where sh
14:14:41 <HackEgo> sh: where: command not found
14:14:45 <CakeProphet> er
14:14:58 <Deewiant> `run which sh
14:15:00 <HackEgo> ​/bin/sh
14:15:06 <CakeProphet> ah which
14:15:20 <elliott> Deewiant: elliott@katia:~/Code$ git clone git://tar.us.to:9418 list-tries
14:15:20 <elliott> Initialized empty Git repository in /home/elliott/Code/list-tries/.git/
14:15:20 <elliott> fatal: Unable to look up (port 9418) (Name or service not known)
14:15:38 <CakeProphet> for some reason this cmake nonsense isn't finding qmake... but, it's there in /usr/bin
14:15:42 <Deewiant> I don't know how git hosting works, dammit
14:15:45 <Deewiant> I just ran 'git daemon'
14:16:08 <elliott> Guess who else doesn't know :P
14:16:29 <Deewiant> Well your git didn't connect
14:16:32 <elliott> I thought you were an hg guy, anyway
14:16:37 <Deewiant> You thought wrong
14:16:45 <elliott> Deewiant: I think the git:// part was wrong
14:16:55 <elliott> "unable to look up 'space'" is suspicious
14:17:06 <elliott> Aha
14:17:08 <elliott> / makes it closer
14:17:12 <elliott> Deewiant: What's the directory name perchance
14:17:19 <Deewiant> list-tries
14:17:20 <Deewiant> ?
14:17:28 <Deewiant> I ran it in the list-tries directory
14:17:29 <elliott> elliott@katia:~/Code$ git clone git://tar.us.to:9418/list-tries.git list-tries
14:17:30 <elliott> Initialized empty Git repository in /home/elliott/Code/list-tries/.git/
14:17:30 <elliott> fatal: The remote end hung up unexpectedly
14:17:30 <elliott> elliott@katia:~/Code$ git clone git://tar.us.to:9418/list-tries list-tries
14:17:30 <elliott> Initialized empty Git repository in /home/elliott/Code/list-tries/.git/
14:17:30 <elliott> fatal: The remote end hung up unexpectedly
14:17:32 <elliott> Meh
14:17:34 <Deewiant> So it would make sense if it were /
14:17:38 <elliott> Deewiant: I think you need to do "git daemon list-tries" in the parent?
14:17:45 <elliott> And /.git and / both failed too
14:18:10 <elliott> Prepare the repository
14:18:10 <elliott> To allow git-daemon to read your project you have to add the file .git/git-daemon-export-ok to your project.
14:18:12 <elliott> Deewiant: lawl
14:18:23 <CakeProphet> so for some reason /usr/share/cmake-2.8/Modules/FindQt4.cmake can't find qmake...
14:18:34 <CakeProphet> which means it's stupid because it's in /usr/bin
14:20:39 <Deewiant> elliott: Okay I gave it --base-path=. and now it should maybe work
14:21:20 <elliott> /.git worked, thanks
14:21:27 <Deewiant> You didn't need that methinks
14:21:32 <Deewiant> It worked locally with just /
14:21:48 <elliott> -- Funky instances for this type are marked with **FUNKY**
14:21:48 <elliott> I don't even want to know
14:23:44 <elliott> Deewiant: I note that the Map typeclass is not sufficiently general to handle a map that has constraints on the values :-P
14:23:56 <elliott> I'm sure this issue has you quaking in your boots
14:24:28 <Deewiant> Feel free to fix it
14:25:27 <elliott> Deewiant: No thanks, that would even lose Traversable :-P
14:26:01 <Deewiant> Yeah, fix the base libraries first ;-)
14:26:45 <elliott> Deewiant: I'm not sure "fix" = "make more general"
14:27:09 <Deewiant> It always is
14:27:16 <elliott> Deewiant: Here's my new Prelude:
14:27:28 <elliott> something :: c a -> d b
14:27:39 <elliott> Specialise c=d=Identity for normal operations
14:27:49 <Deewiant> Like unsafeCoerce
14:28:04 <elliott> Deewiant: No, that's what the d on the return is there for, so it can refuse
14:28:18 <elliott> How does it know how to refuse in d? Well simple, it uses something
14:28:22 <Deewiant> :-D
14:29:53 * elliott wonders whether changing Map to have the key as a type family actually simplifies things.
14:30:07 <elliott> Hmm, it does
14:30:17 <elliott> instance (Ord k) => IsMap (Map k)
14:30:18 <elliott> Well, hmm, no
14:30:32 <elliott> Just because it's a Report-compliant instance head doesn't mean you're not going to use an extension the next line by necessity
14:30:42 <elliott> Oh, wait, it is useful
14:30:49 <elliott> instance IsMap (a,a) where
14:30:54 <elliott> type Key (a,a) = Bool
14:30:58 <elliott> Deewiant: Ain't it beautiful :-P
14:31:12 <elliott> You couldn't do that before without a newtype wrapper.
14:31:41 <Deewiant> Because a mostly-internal newtype wrapper is just so terrible :-P
14:32:29 <elliott> Deewiant: Well, if you'd like to turn FunctionalDependencies into FunctionalDependencies _and_ TypeFamilies rather than replacing it, I'm happy to oblige :-P
14:32:41 <elliott> I suppose, uh, depending on the mtl already implies FunctionalDependencies, though
14:32:52 <Deewiant> :-D
14:32:55 <Deewiant> Whoops
14:33:46 <elliott> OK, here's what shiznit be up, yo: I'm way too lazy to s/k/Key m/ and the like so I'm just going to rename Map and OrdMap to have Is in front :-P
14:33:52 <elliott> Hmm
14:33:56 <elliott> class Foldable (m k) => IsMap m k where
14:33:59 <elliott> Deewiant: What's with the missing fundep
14:34:23 <Deewiant> Maybe you dropped it somewhere
14:34:25 <elliott> Nope
14:34:33 <elliott> You just didn't have one
14:34:35 <elliott> Clever
14:34:43 <Deewiant> Why fundep when the code compiles without it eh
14:35:16 <elliott> Deewiant: I'd love to see an instance violating m -> k
14:35:19 <elliott> By love I mean auuuuuuuuugh
14:35:23 <elliott> Maybe if you use like
14:35:26 <elliott> Map Dynamic a
14:35:32 <elliott> Or, well, AList Dynamic a
14:35:37 <Deewiant> It's possible!!
14:35:47 <elliott> NOT IN A GOD-FEARING SOCIETY
14:36:04 <Deewiant> Kids these days will do anything
14:36:29 <elliott> newtype WrappedIntMap k v = IMap (IM.IntMap v) deriving (Eq,Ord)
14:36:29 <elliott> Hmm, what's with the wrapping
14:36:37 <Deewiant> Dropping k
14:36:42 <elliott> Oh
14:36:45 <elliott> That
14:36:56 <CakeProphet> okay so I figured out the qmake stuff, but now it can't find qt4-core...which is also installed.
14:36:58 <elliott> Deewiant: Is a damn good argument not to use m k all over the place :P
14:37:00 <CakeProphet> WHAT IS GOING ON AAAH
14:37:06 <elliott> Actually I can do that while keeping the fundep
14:37:07 <CakeProphet> I think I hate cmake.
14:37:11 <elliott> Just make it become
14:37:17 <elliott> instance IsMap (IntMap v) Int
14:37:18 <elliott> vs.
14:37:23 <elliott> instance IsMap (M.Map k v) k
14:37:26 <elliott> Erm
14:37:28 <elliott> instance IsMap (M.Map k) k
14:37:29 <elliott> vs
14:37:33 <elliott> instance IsMap IntMap Int
14:39:33 <elliott> Deewiant: Holy shit, right after you say that I violate the fundep
14:39:37 <elliott> instance Enum k => IsMap IM.IntMap k where
14:39:43 <elliott> Are you a wizard?????????????????????
14:40:07 <Deewiant> I'm waiting for my "auuuuuuuuugh"
14:40:22 <elliott> >_>
14:40:36 <CakeProphet> I am "auuuuuuuugh"ing as we speak
14:40:46 <Deewiant> I guess that's acceptable
14:41:26 <CakeProphet> cmake keeps telling me to check a CMakeError.log
14:41:29 <CakeProphet> that doesn't exist.
14:41:31 <CakeProphet> THANKS CMAKE
14:41:33 <CakeProphet> I HATE YOU
14:41:35 <elliott> Why are you using CMake
14:41:39 <elliott> It's almost as bad as SCons
14:41:41 <CakeProphet> because I have to.
14:41:47 <elliott> Why
14:41:48 <CakeProphet> because this isn't my software that I'm trying to install.
14:41:53 <elliott> Stop using that software
14:41:54 <Deewiant> CMake is okay
14:41:55 * CakeProphet is install Qyoto
14:41:59 <CakeProphet> +ing
14:42:01 <olsner> rewrite it and make it your software
14:42:08 <CakeProphet> .....yeah okay I'll get right on that.
14:42:09 <Deewiant> The elliott way of doing things
14:42:14 <elliott> Deewiant: So what's with the random double/triple spaces everywhere, it looks like you once aligned osmething but then there was nothing to align
14:42:16 <CakeProphet> since I have like 4 days to finish this. should be easy.
14:42:17 <olsner> at least you can rewrite the cmake part
14:42:39 <Deewiant> elliott: Is this before or after you've run a s/x/y/ expression on it
14:42:57 <elliott> Deewiant: I've run no such thing
14:42:59 <Deewiant> Or you just not seeing the genius of my indentation/alignment
14:43:02 <elliott> Consider the "alter" method in the IntMap instance
14:43:15 <elliott> Or how about this
14:43:19 <elliott> toAscList :: m k a -> [(k,a)]
14:43:19 <elliott> toDescList :: m k a -> [(k,a)]
14:43:23 <elliott> In a completely standalone block
14:43:37 <CakeProphet> basically the guy who hired me said "use qtwebkit to make a small proof of concept for Mono/C#"
14:43:45 <CakeProphet> well...qtwebkit is in FUCKING C++
14:43:47 <Deewiant> Okay that's random
14:44:05 <CakeProphet> so... I had to go find some C# bindings, which I did, and it's called Qyoto. And now I am trying to install this and it is not finding shit.
14:44:08 <Deewiant> alter is aligned with update/adjust/delete?
14:44:09 <CakeProphet> that is obviously there.
14:44:25 <elliott> Deewiant: Is it even aligned
14:44:27 <elliott> It is after my modification
14:44:32 <elliott> But I don't recall before
14:44:35 <Deewiant> I can't find an alter that isn't
14:44:40 <elliott> Fair enough
14:44:45 <elliott> Still weird :-P
14:45:01 <Deewiant> delete k (IMap m) = IMap$ IM.delete (fromEnum k) m
14:45:01 <Deewiant> alter f k (IMap m) = IMap$ IM.alter f (fromEnum k) m
14:45:06 <Deewiant> I assumed you were referring to that
14:45:09 <elliott> Yeah
14:45:12 <Deewiant> And that's aligned
14:45:12 <elliott> Now insert a blank line after delete
14:45:14 <elliott> And it stops making any sense :-P
14:45:18 <Deewiant> Yeah there's a blank line
14:45:19 <Deewiant> It's still aligned :-P
14:45:42 <Deewiant> The blank lines are based on the grouping in the definition of Map methinks
14:45:48 <elliott> :t second specialise it on (->) you ashole
14:45:49 <lambdabot> parse error on input `->'
14:45:53 <elliott> : tufuck you
14:45:57 <elliott> :t second
14:45:58 <lambdabot> forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (d, b) (d, c)
14:46:03 <elliott> :t i hat eyou and i hate arrows
14:46:04 <lambdabot> Not in scope: `hat'
14:46:05 <lambdabot> Not in scope: `eyou'
14:46:05 <lambdabot> Not in scope: `hate'
14:46:13 <Deewiant> second :: (a -> b) -> (c, a) -> (c, b)
14:46:26 <CakeProphet> I hate cmake
14:47:53 <CakeProphet> Warning: QT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as /usr/lib
14:47:55 <CakeProphet> Warning: But QtCore couldn't be found. Qt must NOT be installed correctly, or it wasn't found for cross compiling.
14:48:06 <CakeProphet> must NOT be installed correctly. it has nothing to do with cmake being terrible.
14:48:09 <CakeProphet> nope.
14:48:26 <Deewiant> You're all such haters
14:48:43 <CakeProphet> all we do is hate.
14:49:07 <CakeProphet> time to go manually install libqt4-core
14:50:01 <elliott> ?unpl Just . first toEnum *** IMap
14:50:02 <lambdabot> (\ c -> (Just) (((first toEnum) *** (IMap)) c))
14:50:06 <elliott> Not fucking helpful
14:50:31 <Deewiant> Are you having trouble?
14:50:33 <olsner> so it needs Qt to NOT be installed correctly?
14:50:39 <elliott> Deewiant: Just this bit :P
14:50:39 <CakeProphet> yes.
14:50:42 <CakeProphet> or, maybe
14:50:43 <CakeProphet> I have no idea.
14:50:53 <CakeProphet> actually libqt4-core is a transitional package so it might be the wrong one.
14:51:01 <CakeProphet> so maybe I actually hate Debian's package repos.
14:51:03 <Deewiant> \(a,b) -> (Just (first toEnum a), IMap b)
14:51:20 <elliott> So (Just . first toEnum *** id), then
14:51:22 <olsner> you should just need libqt4-dev I think
14:51:34 <Deewiant> elliott: f *** id is the same thing as first f
14:51:55 <elliott> Data/ListTrie/Base/Map.hs:196:21:
14:51:55 <elliott> Ambiguous type variable `k10' in the constraint:
14:51:55 <elliott> (IsOrdMap m k10) arising from a use of `mapAccumDescWithKey'
14:51:55 <elliott> Probable fix: add a type signature that fixes these type variable(s)
14:51:55 <elliott> In the expression: mapAccumDescWithKey (const . f)
14:51:55 <elliott> In an equation for `mapAccumDesc':
14:51:57 <elliott> mapAccumDesc f = mapAccumDescWithKey (const . f)
14:51:59 <elliott> Dude what...
14:52:01 <elliott> Oh
14:52:03 <elliott> Hmm
14:52:05 <elliott> Hmmmmmmmmmmmmmmmmmmmmmmm
14:52:17 <olsner> MR? :)
14:52:23 <elliott> olsner: nope, it's a typeclass default
14:52:28 <Deewiant> elliott: You should add a type signature that fixes these type variable(s)
14:52:29 <elliott> but
14:52:32 <elliott> Deewiant: Guess what we need
14:52:38 <elliott> We need the functional dependency
14:52:39 <Deewiant> A type signature that fixes these type variable(s)
14:52:43 <elliott> Dude
14:52:44 <elliott> No
14:52:49 <CakeProphet> oh hey look libqt4-dev is uninstalled
14:52:50 <Deewiant> But that's what it says
14:52:55 <olsner> "Probable fix: add a type signature that fixes this type error"
14:52:57 <elliott> "Probable fix"
14:53:03 <elliott> It's a TYPECLASS DEFAULT
14:53:04 <Deewiant> When is GHC ever wrong?
14:53:26 <elliott> Deewiant: Hey, I've internal exception'd GHC before, whippersnapper
14:53:30 <CakeProphet> Probable fix: add an unsafeCoerce that fixes this type error.
14:53:40 <Deewiant> I think I have, as well
14:54:03 <Deewiant> elliott: That doesn't mean it wasn't the right way to handle the situation
14:54:19 <elliott> ..............There is exactly one signature and it is ALREADY THERE
14:54:25 <elliott> The problem is an ambiguity caused by the lack of the fundep
14:54:28 <Deewiant> I meant the internal exception
14:54:34 <elliott> Oh
14:54:36 <elliott> It most definitely was wrong
14:54:48 <CakeProphet> CMake Error at CMakeLists.txt:88 (macro_log_feature): Unknown CMake command "macro_log_feature".
14:54:51 <CakeProphet> awesome
14:55:00 <elliott> Deewiant: http://sprunge.us/DJca
14:55:04 <elliott> Deewiant: GHC bomb at least as of a while ago
14:55:32 <Deewiant> arst.hs:31:18:
14:55:32 <Deewiant> Cannot deal with a type function under a forall type:
14:55:32 <Deewiant> forall fp. Fingerprint fp => (fp, FPGlobalState fp)
14:55:32 <Deewiant> In the expression: return ()
14:55:32 <Deewiant> In an equation for `fpRun': fpRun NULL _ = return ()
14:55:35 <Deewiant> In the instance declaration for `Fingerprint NULL'
14:55:36 <elliott> Me too
14:55:39 <elliott> It was in ghc six days
14:56:00 <elliott> As in, months ago :-P
14:56:24 <CakeProphet> so apparently I need libsmokeweroidofihwerhsomething
14:56:36 <elliott> Deewiant: BTW, I don't think the Map classes are generic enough to handle a dependent map :-P
14:56:50 <elliott> JUST SAYING
14:56:53 <Deewiant> Again, if you can fix it, go ahead :-P
14:57:08 <elliott> I don't think I can :P
14:57:13 <elliott> Illegal instance declaration for `IsMap IM.IntMap k'
14:57:13 <elliott> (the Coverage Condition fails for one of the functional dependencies;
14:57:13 <elliott> Use -XUndecidableInstances to permit this)
14:57:16 <elliott> Deewiant: Best extension?????????????
14:57:25 <Deewiant> Yeah no
14:57:53 <elliott> How can I revert just all the lines that previously said IMap :-P
14:58:27 <Deewiant> If you have vim and haven't mapped U to something else, U undoes changes on one line
14:58:47 <elliott> Great; now assume I have emacs
14:58:53 <Deewiant> RTFM
14:58:58 <cheater_> you're pretty much fucked.
14:58:59 <elliott> I was thinking more along the lines of some fancy git reset tool :-P
14:59:06 <Deewiant> My knowledge of emacs is limited to C-x C-c and I'm not even sure that's right
14:59:29 <cheater_> Deewiant, that seems to be all the knowledge you need of it
14:59:36 <Vorpal> vim fanatics
14:59:42 <Deewiant> Another hater
14:59:51 <elliott> Vorpal: points to the sign marked "don't feed the troll"
15:00:02 <olsner> which sign? there is no such sign here
15:00:03 <Vorpal> elliott, oh, good point
15:00:09 <elliott> Holy shit, excite.com still exists
15:00:11 <elliott> And looks identical
15:00:35 <Vorpal> elliott, what is it? I just get a 500 there
15:00:44 <cheater_> at least it didn't go down with altavista
15:01:20 <elliott> Vorpal: http://www.excite.com/ should load
15:01:37 <Vorpal> elliott, tried it. 500 still
15:01:43 <elliott> Huh
15:01:47 <elliott> It's a really 90s web portal :)
15:01:47 <CakeProphet> okay so now it can't find smoke, but I've installed libsmokeqt4-dev
15:01:51 <CakeProphet> which should have installed everything I need.
15:02:11 <Vorpal> elliott, oh I see, I selected to NOT disallow the cookie, then it stopped doing 500
15:02:11 <CakeProphet> I think
15:02:42 <cheater_> CakeProphet, he's in the trapping grounds west of the village, opposite side to the temple of trials. you have to kill some geckos and watch out not to step into the pools of acid, that's a bit of HP gone every time you do that.
15:03:11 * cheater_ wonders if anyone got the reference.
15:03:32 <CakeProphet> it's lost to me
15:04:03 <elliott> minMaxView :: (Alt st a, Boolable (st a), Trie trie st map k)
15:04:03 <elliott> => (trie map k a -> Bool)
15:04:03 <elliott> -> (CMap trie map k a -> Maybe (k, trie map k a))
15:04:03 <elliott> -> trie map k a
15:04:03 <elliott> -> (Maybe ([k], a), trie map k a)
15:04:07 <elliott> Deewiant: Nice
15:04:22 <Deewiant> 2011-08-14 15:51:22 ( Deewiant) Why do I always end up with a bunch of functions with 8 or more parameters
15:04:34 <elliott> Because you suck :-P
15:04:37 <CakeProphet> cmake wants me to set a bunch of stupid configuration variables and I'd really rather not since that's probably not the problem.
15:04:39 <Deewiant> Meh :-(
15:05:07 <cheater_> http://fallout.wikia.com/wiki/Rescue_Nagor%27s_dog,_Smoke,_from_the_wilds
15:05:21 <elliott> Deewiant: I bet if I got Conal to reimplement list-tries... ;-)
15:05:36 <elliott> THREE LINES OF CODE SO PURE THEY DON'T EVEN EXECUTE AT RUNTIME
15:05:50 <Deewiant> BANANAS EVERYWHERE
15:06:13 <elliott> The three lines of code
15:06:18 <elliott> banana :: Banana -> Banana
15:06:21 <elliott> banana v
15:06:28 <elliott> | isBanana v = banana v
15:06:43 <elliott> | otherwise = ex (banana v) (re (banana v))
15:06:47 <elliott> Beautiful
15:06:52 <cheater_> > let na = "na" ++ na in "Ba" ++ na
15:06:54 <lambdabot> "Banananananananananananananananananananananananananananananananananananana...
15:07:00 -!- copumpkin has joined.
15:07:59 <Vorpal> elliott, that is 4 lines (with the type signature)
15:08:14 <elliott> Vorpal: There's another line of negative space above
15:08:19 <elliott> You just can't see it with your stateful IRC client
15:08:19 <Vorpal> elliott, oh right
15:08:35 <olsner> what's ex and re?
15:08:56 <olsner> and Banana, for that matter
15:09:27 <elliott> olsner: I'm not at liberty to discuss that with you
15:09:38 <olsner> elliott: ok
15:09:39 <Vorpal> elliott, and more to the point: why is there no mention of audio-only communication devices in there
15:09:54 <elliott> Vorpal: wat
15:09:59 <Vorpal> elliott, bananaphone
15:10:11 <elliott> Too ordered
15:10:18 <elliott> The Bananamiasma is used instead
15:10:25 <Vorpal> touche
15:10:51 <elliott> Deewiant: So, um, care to walk me through each parameter of the Trie class
15:11:11 <Deewiant> It's just so that I can do Map and Set without having to reimplement everything
15:11:12 <Vorpal> elliott, heh I read that as "Trine" since I played that yesterday
15:11:29 <elliott> Deewiant: Yes, I just want to know what each parameter is so I can make them into type families :-P
15:11:44 <Deewiant> instance Map map k => Base.Trie TrieMap Maybe map k where
15:11:46 <Deewiant> instance Map map k => Base.Trie TrieSetBase Identity map k where
15:11:52 <Deewiant> Does that answer your question
15:12:10 <elliott> I'm not sure what's up with Maybe/Identity there, but apart from that, yes
15:12:35 <Deewiant> elliott: It's for the value: for maps it's Maybe value, for sets it's Identity Bool
15:12:42 <elliott> Heh
15:12:50 <Deewiant> And hence funky instances etc
15:12:54 <elliott> What's st stand for anyway
15:13:03 <Deewiant> storage or something
15:13:39 <CakeProphet> > 'B':fix("an"++)
15:13:41 <lambdabot> "Banananananananananananananananananananananananananananananananananananana...
15:14:38 * cheater_ just tried pronouncing that, but doesn't know which syllable the stress is on.
15:14:41 <CakeProphet> truly this is a shining example of what Haskell excels at.
15:14:44 <elliott> import qualified Data.DLiStorage trie as DL
15:14:46 <elliott> Herp derp
15:15:02 <elliott> adjuStorage trie :: Trie trie map k
15:15:04 <elliott> Oh my god
15:15:13 <Deewiant> :-D
15:15:37 <elliott> toLiStorage trie = genericToLiStorage trie Map.toLiStorage trie DL.cons
15:15:56 <Deewiant> Turns out "st" is a common consonant pair huh
15:16:12 <elliott> I put a space after for a reason ;_;
15:16:45 <Deewiant> Turns out "list " turns up often in a library dealing largely with lists
15:16:58 <Deewiant> And "Just " in a Haskell program
15:17:28 <elliott> tVal = fStorage trie . tParts
15:17:31 <elliott> oh my fucking god
15:17:39 <Deewiant> Dude
15:17:47 <elliott> yes i am trying to repair it piece by piece :D
15:17:47 <Deewiant> Press the M-x undo or whatever it is
15:18:07 <Deewiant> And then look for M-x i-want-perl-regular-expressions-dammit and use <st>
15:18:40 <elliott> replace-regexp, but it's elisp regexps
15:18:51 <elliott> \bst\b -> Storage trie should work
15:19:16 <Deewiant> You can call it something else than Storage as well, if you want :-P
15:19:36 <Deewiant> It's not exactly descriptive and if it's going to get a name longer than two characters it probably should be
15:22:00 <elliott> I'm just sitting here wondering if it could all be done in a simpler manner :-P
15:22:55 <fizzie> Vorpal: Another 360 degrees: http://users.ics.tkk.fi/htkallas/20110813_005-020.jpg
15:23:20 <elliott> Like, I think people have implemented tries in languages without four-parameter type classes before :D
15:23:57 <Deewiant> Yes, and with a lot less type checking
15:24:09 <Deewiant> I can replace the "st" parameter with a void* ;-P
15:25:13 <elliott> :-P
15:25:37 <Vorpal> fizzie, *looks*
15:25:45 <Vorpal> fizzie, nice
15:25:47 <Vorpal> where is it?
15:25:58 <Vorpal> fizzie, and what is the blacked out stuff
15:26:03 <Vorpal> fizzie, defence secret?
15:26:06 <fizzie> Vorpal: It's a redacted person. :p
15:26:14 <Vorpal> fizzie, defence secret :P
15:26:15 <elliott> "Person"
15:26:19 <elliott> If that's what you're calling them these days
15:26:22 <fizzie> I'm trying to find it on the map, but Google's satellite photos are rather low-res from where it's from.
15:26:36 <Vorpal> elliott, yeah in my time we used to say as it were...
15:28:23 <Deewiant> $ tup upd |& wc -l
15:28:24 <Deewiant> 366
15:28:32 <Deewiant> I think that's a good place to leave it
15:28:36 <fizzie> Vorpal: It's approximately from http://maps.google.com/?ll=59.820035,22.955804&spn=0.020798,0.065961&t=h&z=15 I think.
15:28:48 <elliott> Deewiant: Wait, how many files is mushspace exactly
15:28:57 <elliott> Or do you have hundreds of warnings
15:29:13 <Deewiant> $ tup upd |& grep error | wc -l
15:29:13 <Deewiant> 89
15:29:15 <elliott> Also, tup monitor -a -f power :-P
15:29:21 <Deewiant> Those are all from the same file
15:29:21 <elliott> Without the power part, that's just my comment
15:29:23 <elliott> Also the smiley
15:29:58 <Deewiant> I doubt that's helpful
15:30:45 <elliott> Deewiant: It's incredibly helpful for development :-P
15:30:57 <elliott> Make change, <insert favourite editor saving motion here>, tab back to terminal, see errors immediately
15:31:01 <elliott> Or with a split-screen, etc.
15:31:20 <Deewiant> Adding the "press up, enter" after "tab back" isn't that bad :-P
15:31:43 <Deewiant> Also I don't want to see it scroll by every time I :w, I can read through the 100 errors myself
15:31:52 <Deewiant> I don't need to see the updates as it goes to 99, 98, ...
15:32:09 <elliott> Your loss :P
15:32:17 <elliott> <Deewiant> Adding the "press up, enter" after "tab back" isn't that bad :-P
15:32:19 <Deewiant> I consider it a gain :-P
15:32:21 <elliott> That's why the split-screen is nicer
15:32:24 <elliott> 0 steps versus three
15:32:33 <Deewiant> I'd find the constantly scrolling errors even more distracting
15:33:01 <Deewiant> I have zero interest in how little of $FUNCTIONALITY compiles until I'm done writing it
15:33:34 <elliott> It's mostly useful when debugging
15:33:41 <Deewiant> Oh, sure
15:33:41 <elliott> Also, why do you have hundreds of errors in one file
15:33:47 <Deewiant> But in this case, it's not very useful
15:33:52 <Deewiant> I didn't say it's never useful
15:33:58 <elliott> Fair enough
15:34:00 <Deewiant> But uh, as to how many files, that's probably going to change by a divisor of 2 soonish and then blow up again as I split functionality into files with higher granularity
15:34:25 <elliott> I am determined to make Shiro have a faster fungespace :P
15:34:37 <elliott> I'm sure I can beat you in fungicide
15:34:45 <Deewiant> elliott: I mean currently this works like http://sprunge.us/LEGH
15:34:56 <elliott> Deewiant: #pragma push_macro
15:34:59 <Deewiant> Yep
15:34:59 <elliott> Deewiant: Dude, I've taught you bad things
15:35:02 <elliott> Deewiant: Don't be me
15:35:25 <Deewiant> My coming solution to that is to list the .c.in files four times in the Tupfile, with different -DFOO
15:35:27 <elliott> Deewiant: Have I mentioned that shiro-lahey can support both compile-time optimised dimensions and also arbitrary at runtime thanks to existentials
15:35:33 <elliott> ~The~ ~Best~
15:35:41 <elliott> (And some judicious SPECIALISE pragmas)
15:35:54 <elliott> <Deewiant> My coming solution to that is to list the .c.in files four times in the Tupfile, with different -DFOO
15:36:02 <elliott> Deewiant: This is why your cc rule should include CFLAGS_[percent]f
15:36:14 <elliott> Or for instance...
15:36:15 <Deewiant> How would that help
15:37:07 <elliott> !ndcc = |> ^ CC %f^ $(CC) -c %f -o %o $(CFLAGS) -DDIMENSIONS_LOL=$(DIMENSIONS) $(CFLAGS_%f) |> %B_$(DIMENSIONS).o
15:37:09 <Deewiant> I don't need per-file flags, I need four different sets of flags which are applied to each file :-P
15:37:17 <elliott> I guess that needs DIMENSIONS to vary there, which I dunno if is possible
15:37:23 <elliott> Ask the tup list :-P
15:38:05 <Deewiant> I still don't see how CFLAGS_%f is relevant :-P
15:39:25 <elliott> It isn't
15:39:29 <elliott> Momentary lapse of thinking
15:41:26 <Deewiant> Anyway, 10 .c, 13 .h, 6 _impl.c.in, 6 _impl.h, 1 config.h.in
15:41:51 <Deewiant> + a hash table library which is one .h
15:44:03 <Deewiant> elliott: man tup sez "The !-macro is not expanded until it is used in the command string of a :-rule." so I guess it's possible to vary it by setting DIMENSIONS_LOL in the Tupfile prior to each relevant :-rule
15:44:22 <elliott> Deewiant: Right
15:48:38 -!- zzo38 has joined.
15:54:34 <elliott> shiro is finally cabalised.
15:55:07 <elliott> Now all it needs is a major cleanup, and I'll put it on GitHub
15:55:17 <elliott> Deewiant: And then you have to start including it in Mycology results ;-)
15:55:31 <Taneb> All the great Computer Scientists seem to be British, American, or German
15:55:40 <elliott> Taneb: Dijkstra
15:55:52 <elliott> Taneb: Wirth
15:55:55 <Deewiant> elliott: So does slowdown work yet
15:56:01 <Taneb> Hmm
15:56:06 <elliott> Deewiant: Excuse me, you need to work with me to disprove Taneb first
15:56:07 <elliott> :-P
15:56:27 <elliott> I guess Wirth counts as basically German [simultaneously offends every Swiss on the planet]
15:56:45 <elliott> Deewiant: But yes, I htink it does
15:56:59 <elliott> Deewiant: Does Mycology have a permanent git repository location I could submodule?
15:57:04 <Taneb> Okay, it seems all great Computer Scientists' first languages are Germanic
15:57:07 <elliott> Seems gross to add rsc/mycology to my git repository
15:57:19 <elliott> Taneb: Probably because you can't read the work of the others
15:57:22 <Deewiant> No because I haven't githubbed my stuff
15:57:31 <Deewiant> Something I plan to do at some point
15:58:03 <elliott> I guess I'll mirror all the catseye stuff in a separate repo
15:58:07 <elliott> Since those don't load in browsers, sigh
15:58:15 <Deewiant> Like what?
15:58:41 <elliott> Deewiant: http://catseye.tc/projects/funge98/library/MODU.html
15:58:55 <elliott> pikhq went all anal-XHTML-Nazi on him, now I can't access valuable resources without wgetting them
15:59:06 <Deewiant> Oh, it was pikhq's fault? heh
15:59:13 <Deewiant> Anyhoo, you can "view source"
15:59:17 <elliott> Well, pikhq whined at Gregor, Gregor had a breakdown and did it
15:59:24 <elliott> Then cpressey went "hey that looks like fun"
15:59:27 <elliott> So yeah, all pikhq's fault
15:59:43 <elliott> Deewiant: I can, but I might as well just try and archive every fingerprint spec I can into one repository and include it as a submodule
15:59:52 <elliott> Basically a "funge-standards" repository
15:59:52 <Deewiant> Taneb: Does Kolmogorov count?
15:59:59 <elliott> Include the standards we have copies of too, why not
16:00:15 <Deewiant> Yeah, sure
16:00:17 <Taneb> Christos Papadimitriou
16:00:29 <Taneb> His first language is Greek
16:01:21 <elliott> $ dist/build/shiro/shiro rsc/slowdown.b98 rsc/forks.b98
16:01:21 <elliott> [hang]
16:01:29 <elliott> Deewiant: So yes, I can run slowdown, unless I fucked up one of the instructions it uses
16:01:31 <Deewiant> What's forks.b98
16:01:34 <elliott> Which is possible, I'm lagging behind on Mycology
16:01:37 <elliott> Deewiant: Something you wrote
16:01:44 <Deewiant> I suggest something like "a,@"
16:02:03 <elliott> elliott@katia:~/Code/shiro$ cat >test
16:02:03 <elliott> a,@
16:02:03 <elliott> elliott@katia:~/Code/shiro$ dist/build/shiro/shiro rsc/slowdown.b98 test
16:02:03 <elliott> [hang]
16:02:08 <elliott> My fungespace is naive dude, this will take years
16:02:09 <Deewiant> Although I'm not sure how much the size of the program loaded affects the runtime
16:02:16 <Taneb> Blaise Pascal
16:02:16 <Deewiant> Perhaps not much at all
16:02:18 <Taneb> He was French
16:02:21 <elliott> I mean, cfunge's is naive, but it's naive microoptimised C
16:02:34 <Deewiant> And how long does cfunge take
16:02:50 <elliott> Deewiant: Dunno; you do it as part of fungicide, but your computer is a lot faster than mien
16:02:54 <elliott> mine
16:02:56 <Deewiant> No I don't
16:03:01 <Deewiant> fungicide doesn't include slowdown in any shape or form :-P
16:03:02 <elliott> Oh
16:03:03 <elliott> I thought you did
16:03:06 <elliott> Hmph
16:03:07 <elliott> Well it should
16:03:09 <elliott> Why doesn't it
16:03:10 <Vorpal> Taneb, Allan Turing Was English
16:03:12 <Deewiant> >_<
16:03:16 <elliott> Vorpal: Alan
16:03:20 <Vorpal> right
16:03:25 <elliott> Deewiant: Hey, you'd win even more ;-)
16:03:31 <Deewiant> Because fungicide is 100% synthetic benchmarks so that everybody can complain at me for not including "real programs"
16:03:33 <Vorpal> Taneb, and what about Donald Knuth?
16:03:36 <elliott> Although you would have to remove Language::Befunge
16:03:53 <elliott> Deewiant: I won't complain because my tactics involve code rather than whining :-P
16:04:00 <elliott> Well
16:04:03 <elliott> Whining, then code
16:04:06 <elliott> But that's just as good, right?
16:04:18 <Deewiant> If I'm going to do more Fungiciding I'm going to do what I did with Mycology and say "here are the old results which include slow interpreters, from now on I'm only doing the fast ones"
16:04:24 <Taneb> English is a Germanic Language
16:04:25 <elliott> 23013 elliott 20 0 29884 3420 1840 R 101 0.1 2:21.23 shiro
16:04:28 <elliott> At least it doesn't have a memory leak
16:04:39 <elliott> Deewiant: So it'll just be me and CCBI once I fix this fungespace? :-P
16:04:51 <Vorpal> Deewiant, as far as I remember cfunge manages quite a good turn of speed?
16:04:51 <Deewiant> And cfunge and possibly stinkhorn
16:05:07 <Vorpal> Deewiant, even beating your code at some cases iirc
16:05:14 <elliott> Deewiant: cfunge is "fast" for fungicide?
16:05:16 <Vorpal> (diagonal growing wasn't it?)
16:05:35 <elliott> 247.7 vs 3628.5 (worst CCBI vs best cfunge)
16:05:45 <Deewiant> That's total time dude
16:05:50 <elliott> So :P
16:05:54 <elliott> Deewiant: pyfunge is faster than stinkhorn, it looks like
16:05:55 <Deewiant> And that's based on an old cfunge
16:05:56 <elliott> Which is hilarious
16:06:03 <Deewiant> No it's not
16:06:08 <elliott> 10281.2
16:06:09 <elliott> 12888.2
16:06:10 <Deewiant> That table is sorted correctly you know
16:06:16 <Deewiant> elliott: Ran to finish: 74 / 42
16:06:21 <elliott> Oh
16:06:23 <elliott> Heh
16:06:24 <Deewiant> So 32 timeouts :-P
16:06:29 <Deewiant> Or crashes, I forget
16:06:34 <elliott> What's the difference
16:07:07 <Deewiant> And yes, both cfunge and RC/Funge-98 beat CCBI on the diagonal growing
16:07:21 <elliott> Hmm, I like how right after I eliminate a ton of typeclass overhead I'm looking at adding it back in again
16:07:25 <elliott> But I won't, it doubled my Mycology time
16:07:39 <elliott> I know, I'll do something reasonable
16:07:47 <elliott> Fix my non-fingerprint Mycology BADs
16:07:48 <Deewiant> Funny how RC/Funge-98's weird-ass Funge-Space works for it there
16:07:51 <elliott> And then fix all the GHC warnings I can
16:08:07 <Deewiant> (It's something like one linked list of cells for each row)
16:08:11 <elliott> Wrote to mycotmp0.tmp with o in linear text mode.
16:08:11 <elliott> GOOD: o removed space prior to newline
16:08:11 <elliott> UNDEF: o removes spaces prior to newline-valued cells
16:08:11 <elliott> BAD: i misread or o miswrote
16:08:12 <elliott> Ugh >_>
16:08:31 <Vorpal> <elliott> 247.7 vs 3628.5 (worst CCBI vs best cfunge)
16:08:39 <Vorpal> that is because Deewiant never updated it
16:08:41 <elliott> Deewiant: BTW, if you ever remember/loggrep the structure I mentioned I was considering using for fungespace to you, that'd be great :P
16:08:45 <Vorpal> after I fixed that major bug in forking
16:08:56 <Deewiant> Yes, that's what I said
16:09:00 <elliott> Deewiant: I think it was in /msg, FWIW
16:09:28 <elliott> I wonder if a quadtree/octree/... might work out for me
16:09:31 <Deewiant> I can non-/msg-paste relevant things if you like
16:09:53 <elliott> Deewiant: I was hardly revealing trade secrets
16:10:00 <Deewiant> 2011-03-25 06:37:41(elliott) Food for thought: Might a bounding volume hierarchy be a smart choice for fungespace?
16:10:04 <elliott> Ah yes
16:10:04 <Deewiant> 2011-03-25 07:10:11(elliott) (Thought triggered by random comment on interwebs saying that they're usually more appropriate than k-d trees due to the latter having a higher overhead.)
16:10:16 <elliott> http://en.wikipedia.org/wiki/File:Example_of_bounding_volume_hierarchy.JPG
16:10:19 <elliott> Still the best image
16:10:31 <elliott> Hmm, that actually seems to show a situation inapplicable to fungespace
16:10:35 <elliott> Because the "shapes" never overlap
16:10:50 <elliott> "One of the most commonly used bounding volumes is an axis-aligned minimum bounding box."
16:10:52 <elliott> Dammit Deewiant :-)
16:10:59 <Deewiant> :-P
16:11:02 <elliott> I MUST DO SOMETHING COMPLETELY DIFFERENT
16:11:57 <elliott> Gah, my fingerprint code is really, really unsatisfactory
16:12:04 <elliott> I have a typeclass that is always used existentially
16:12:07 <elliott> So it's basically just an ADT
16:12:14 <elliott> And it's so ugly and geh
16:13:47 <Deewiant> Just blame Vorpal for adding that static allocated area in the first place or we'd be living happily in hash table land
16:14:07 <elliott> :D
16:14:16 <Gregor> Hashtable Land is the greatest land in the world.
16:14:29 <elliott> Deewiant: Hey, rename my maybeShiro
16:15:06 <elliott> maybeShiro :: Shiro () -> Shiro ()
16:15:06 <elliott> maybeShiro m = m `catchShiro` handler
16:15:06 <elliott> where handler :: IOException -> Shiro ()
16:15:06 <elliott> handler e
16:15:06 <elliott> | isUserError e = reflect
16:15:07 <elliott> | otherwise = io $ throwIO e
16:15:16 <Deewiant> shiroOrReflect
16:15:17 <elliott> It used to be MaybeT Shiro () -> Shiro (), but then I optomized :P
16:15:30 <elliott> Deewiant: catchReflect, then
16:15:51 <Deewiant> That works
16:15:52 <elliott> liftMaybe :: Maybe a -> Shiro a
16:15:52 <elliott> liftMaybe x = do
16:15:52 <elliott> Just a <- return x
16:15:52 <elliott> return a
16:15:52 <elliott> Here we have a bizarre function that does the right thing only in a catchReflect block :-P
16:16:17 <elliott> I guess maybeReflect is the best name
16:16:18 <Deewiant> And you complain about my code
16:16:20 <elliott> And ioReflect for ioMaybe
16:16:29 <elliott> Deewiant: Hey, there's literally no other way to avoid huge nested case stacks
16:16:39 <Deewiant> At least I don't have functions that have a dependency on what's on the call stack!
16:16:43 <elliott> And pattern matches "fail"ing in do context is well-defined behaviour
16:16:47 <elliott> Deewiant: Uhh, neither do mine?
16:17:05 <elliott> If the pattern match fails, it's Report-defined to "fail", which my handler catches, and reflects
16:17:08 <Deewiant> That's basically what requiring that being in catchReflect is :-P
16:17:26 <elliott> Weeeeeeeeeeeeeeeeeeeeell
16:17:31 <elliott> There's basically one thing I could do
16:17:36 <elliott> Add a phantom parameter to Shiro
16:17:37 <CakeProphet> as I sit here waiting for apt-get to finish. The follow comic comes to mind: http://xkcd.com/303/
16:17:42 <CakeProphet> *following
16:17:45 <elliott> I can't just stack transformers on top, because it puts me in lift hell
16:17:47 <elliott> So I need MonadShiro
16:17:51 <elliott> So everything gets a MonadShiro context
16:17:57 <elliott> So I have a billion SPECIALISE pragmas or it's fucking slo
16:17:57 <elliott> w
16:18:01 <Deewiant> s/can't/don't want to/
16:18:07 <elliott> Deewiant: No, see above
16:18:12 <elliott> It makes my code twice as slow
16:18:15 <elliott> That's a "can't"
16:18:25 <Deewiant> That's the price of writing in high-level languages
16:18:35 <Deewiant> Like C or greater
16:18:38 <elliott> :-D
16:18:42 <Deewiant> I should just do this in asm
16:18:47 <elliott> Deewiant: No, no, Checkout
16:18:51 <elliott> Parallel fungespace processing
16:19:13 <Deewiant> Although I guess if I write enough inline assembly it'll work out
16:19:21 <elliott> Hmm... I could have (Shiro a) be (ShiroE () a)
16:19:24 <elliott> Then catchReflect would be
16:19:39 <elliott> catchReflect :: ShiroE CatchReflect a -> ShiroE e a
16:19:43 <elliott> Hmm, wait
16:19:48 <elliott> (Shiro a) would be (forall e. ShiroE e a)
16:19:54 <elliott> Right
16:20:05 <Deewiant> I spent about 1.5 hours yesterday optimizing "return INT_MAX - a < b ? INT_MAX : a + b"
16:20:10 <elliott> And then in a fingerprint I could have ShiroE (FingerprintE fptype) for the staet...
16:20:12 <elliott> But oh wait
16:20:15 <elliott> How would that stack with CatchReflect
16:20:19 <elliott> I NEED TYPECLASSES TO CONTROL THE NESTING
16:20:24 <elliott> LOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLO
16:20:32 <elliott> Deewiant: Call stack dependencies: THe best.
16:20:39 <elliott> Anyway it works outside of the call stack, it just doesn't catch the failure.
16:20:45 <Vorpal> <Deewiant> Just blame Vorpal for adding that static allocated area in the first place or we'd be living happily in hash table land <-- heh
16:23:15 <elliott> Deewiant: You'll be happy to hear (maybe) that I only get one BAD outside of fingerprints
16:23:21 <elliott> And it's to do with o's text mode and ugh
16:24:10 <Deewiant> unlines . map (reverse . dropWhile (==' ') . reverse) . lines
16:24:10 <Deewiant> HTH
16:24:38 <elliott> textify :: ByteString -> ByteString
16:24:39 <elliott> textify = B8.unlines . reverse . takeWhile (/= B.empty) . reverse . map (fst . B.spanEnd (== space)) . B8.lines
16:24:40 <elliott> Deewiant: You were saying
16:24:53 <Deewiant> WFM
16:24:59 <elliott> Deewiant: It's probably i that's the problem
16:25:03 <elliott> Because, well
16:25:10 <elliott> Have I mentioned mergeByteString? :P
16:26:18 <elliott> I wish the funge instructions had some kind of obvious grouping
16:26:21 <elliott> So I could split Interpreter.hs up
16:28:53 <CakeProphet> lol bamfdaemon
16:31:49 <elliott> $ grep -r 'TODO\|FIXME' . | wc -l
16:31:49 <elliott> 14
16:31:51 <elliott> That few???
16:31:57 <Deewiant> No XXX?
16:32:04 <Deewiant> The instruction grouping's in the spec
16:32:17 <elliott> That just makes me think of comment pornography, and what does XXX even mean
16:32:21 <Deewiant> "Cell Crunching - Integers" etc
16:32:40 <elliott> TODO basically means "Hey do this cleanup/optimisation/etc. sometime", FIXME is "This is really terrible/has an obvious bug/just looks wrong, fix it"
16:33:14 <Deewiant> FIXME is for plain old bohr bugs/missing features, XXX is for stuff like "this works but I don't know why", heisenbugs, and the like
16:33:15 <elliott> Deewiant: Hmm, you're right re: grouping
16:33:21 <elliott> It's rather coarse, but maybe good enough
16:33:33 <Deewiant> When I use XXX I tend to use "TODO FIXME XXX" though
16:33:38 <elliott> Deewiant: I use TODO for features, basically if there's a TODO, I _could_ ignore it, it'll just make my life worse
16:33:49 <elliott> FIXME basically means that there's something that has to get addressed, I'm just too lazy right now
16:33:52 <elliott> And/or don't know how
16:34:04 <elliott> "TODO FIXME XXX" is good though
16:34:17 <elliott> Maybe I should use "WTF:".
16:34:19 <zzo38> I only use TODO regardless of purpose or severity and it works fine for me
16:34:48 <Deewiant> // XXX: I have no idea why /2 makes this work
16:34:51 <Deewiant> That's a good example
16:34:59 <elliott> Heh
16:35:10 <elliott> OK, I should really add proper command-line handling to shiro
16:35:15 <elliott> main = do
16:35:16 <elliott> args@(filename:_) <- getArgs
16:35:16 <elliott> program <- B.readFile filename
16:35:16 <elliott> let st = (fungeStateFromByteString program) { cmdArgs = args }
16:35:16 <elliott> case fungeSpace st of
16:35:18 <elliott> FungeSpace m (minX,minY) (maxX,maxY) m2 m3 ->
16:35:18 <Deewiant> // XXX: this looks like a hack
16:35:20 <elliott> Map.size m `seq` Map.size m2 `seq` Map.size m3 `seq` minX `seq` minY `seq` maxX `seq` maxY `seq` return ()
16:35:23 <elliott> It's currently very pro
16:35:24 <Deewiant> assert (false); // XXX for debugging only
16:35:25 <elliott> By pro I mean terrible
16:35:43 <Deewiant> Dude, rnf
16:35:47 <elliott> Dependencies
16:35:48 <Deewiant> Instead of Map.size
16:35:59 <Deewiant> You know you're going to want threads at some point right
16:36:04 <elliott> base, containers, bytestring, process, random, filepath, time, directory, unix (will be fixed), mtl, hashtables
16:36:07 <elliott> Those are all my dependencies
16:36:12 <elliott> hashtables is overkill
16:36:15 <elliott> Deewiant: Threads howso
16:36:22 <Deewiant> Every program needs threads
16:36:29 <Deewiant> Parallel Funge-Space garbage collectors, etc
16:36:43 <elliott> Deewiant: Well, if I write that debugger/developer...
16:36:55 <Deewiant> (Something I've actually thought about doing but most likely never will)
16:37:07 <elliott> Hmm, I could use cmdargs if I used the pure API
16:37:13 <elliott> I'm a sensitive person
16:37:19 <elliott> Can't even use a top-level unsafePerformIO newIORef
16:37:37 <Deewiant> But you can depend on the call stack
16:37:38 <Deewiant> Nice
16:37:44 <zzo38> If I made the compiler I would make assert(false) compile into an error message (or break into debugger) if debug mode, and into the "unreachable" LLVM command when not debug; this would mix up such things like that... but, then, you could use conditional compilation to make it only for debug, or whatever.
16:37:49 <elliott> Deewiant: It is not a dependency, I renamed them so that their behaviour is perfectly reasonable
16:38:00 <elliott> catchReflect :: Shiro () -> Shiro ()
16:38:00 <elliott> maybeFail :: Maybe a -> Shiro a
16:38:02 <elliott> ioFail :: IO a -> Shiro a
16:38:06 <elliott> You can use the latter two outside of the first if you wish
16:38:14 <elliott> They will do as their name suggests
16:38:21 <elliott> (maybeFail is an unintentionally hilarious name)
16:38:23 <Deewiant> Maybe they'll fail, maybe they won't
16:38:39 <Deewiant> As unintentional as "pun not intended"
16:38:47 <zzo38> What does "Shiro" mean here?
16:38:59 <elliott> zzo38: Funge Haskell magic
16:39:06 <elliott> Deewiant: No, it was unintentional
16:39:07 <elliott> I only just realised :D
16:40:04 <zzo38> How does Funge Haskell magic work?
16:40:14 <elliott> By interpreting Funge programs in Haskell
16:40:43 <CakeProphet> in C++, doing a c-style cast from float to int would just leave the significand right?
16:41:42 <elliott> Deewiant: Have you used any of the option parsing libraries, I suddenly realise I've never written a command-line Haskell program with a non-trivial interface
16:42:02 <Deewiant> Hmm, I wonder
16:42:14 <Deewiant> I don't think I have but I'm not sure
16:42:29 <CakeProphet> also if you have
16:42:39 <CakeProphet> struct foo { int x; ...}
16:42:39 <Deewiant> I've used System.Console.GetOpt I think
16:42:42 <elliott> Ugh, OK, the one that comes with like, the base libraries, is terrible, [Flag] is not a sane result structure
16:42:45 <elliott> Yeah, that one
16:42:47 <Deewiant> Yeah, I've used that
16:42:50 <elliott> I guess I'll just use cmdargs
16:42:59 <CakeProphet> then (int) someStructFoo would be equivalent to someStructFoo.x right? or is there padding and stuff?
16:43:06 <Deewiant> What's wrong with [Flag]
16:43:08 <elliott> record Options{} [a := def += help "hey hey hey", ...] += summary "blah"
16:43:15 <elliott> Deewiant: Because it should be an options record instead?
16:43:18 <elliott> It's just semantically bunk :P
16:43:24 <elliott> Remember that Flag is a type you specify
16:43:27 <elliott> It's not just like returning (string,arg)
16:43:29 <Deewiant> elliott: Just fold over it
16:43:34 <elliott> It lets you pass a constructor function and everything
16:43:51 <elliott> Deewiant: Or just use cmdargs which handles it for me :P
16:44:02 <Deewiant> Fiiine
16:44:21 <zzo38> I would like if LLVM had a union type, it might allow some optimizations that are not done otherwise, even though you can still make up your own unions in LLVM anyways
16:44:26 <elliott> Deewiant: More importantly, I need recursive argument parsing
16:44:41 <elliott> --fprint-turt="--format=svg"
16:45:08 <Deewiant> And you can do that with GetOpt :-P
16:45:36 <elliott> Deewiant: What's so good about GetOpt :P
16:45:42 <Deewiant> Nothing in particular
16:45:45 <elliott> Hmm wait
16:45:46 <elliott> Wait
16:45:47 <elliott> ONE
16:45:47 <elliott> LESS
16:45:48 <Deewiant> The fact that it's in base
16:45:48 <elliott> DEPENDENCY
16:45:50 <Deewiant> Yep
16:45:55 <elliott> YEEEEEEEEEEEEeeeeeeeeeeeessssSSSs
16:47:42 <elliott> Deewiant: One problem: I have no options right now :D
16:48:02 <elliott> Shiro/Types.hs:8:8:
16:48:02 <elliott> Ambiguous module name `Control.Monad.State.Strict':
16:48:02 <elliott> it was found in multiple packages: mtl-2.0.1.0 monads-tf-0.1.0.0
16:48:03 <elliott> SFOJISDFNJSDIOFJISNDJLFOJDNGNJG DON GODNF G
16:48:06 <elliott> I AM GOING TO RIP YOUR SOUL
16:48:07 <elliott> BETWEEN THE BINDS
16:48:08 <elliott> OF EARTH
16:48:09 <elliott> AND HELL
16:48:20 * elliott UNINSTALLS MONADS-TF
16:48:38 * elliott INSTALLS CAB SO HE CAN DO THAT
16:48:44 <Deewiant> elliott: Gotta love type families eh
16:49:07 <elliott> monads-tf may be great, but only one fucking package uses it
16:49:11 <elliott> Oh my god cab has revdeps
16:49:14 <elliott> TIHS CHANGE S EVERYTHIN
16:49:14 <elliott> G
16:50:11 <elliott> Dammit, the default mconcat on functions isn't composition
16:51:06 <CakeProphet> data FlipList a b = a :* FlipList b a | Empty
16:51:08 <CakeProphet> look what I did.
16:52:21 <olsner> use the Endo monoid?
16:52:51 <CakeProphet> data TripList a b c = a :* FlipList b c a | Empty
16:53:01 <CakeProphet> *TripList
16:53:19 <CakeProphet> er? maybe? I don't know what that is.
16:53:32 -!- tswett has quit (Changing host).
16:53:32 -!- tswett has joined.
16:53:37 <zzo38> Is the single field of a newtype constructor allowed to have the same name as other fields of newtype constructors that the other fields have the same type?
16:53:39 <olsner> oh, that was for elliott's comment about mconcat
16:54:49 -!- Nisstyre has quit (Ping timeout: 250 seconds).
16:55:06 <CakeProphet> you could also have the "totally safe" function FlipList a b -> [(a,b)]
16:55:23 <elliott> Deewiant: Guess what GetOpt can't handle nicely, that's right, things like --help and --version
16:55:24 <CakeProphet> with the exception that it's not actually safe because it only works with even-lengths fliplists
16:55:31 <elliott> HMmmmmmmmmmmmmmm
16:55:33 <elliott> UNLESS
16:55:38 <elliott> I made them all of type
16:55:42 <elliott> StateT Options IO ()
16:59:42 <elliott> I wish GHC wouldn't complain when I did
16:59:44 <elliott> import Data.ByteString (ByteString)
16:59:44 <elliott> import qualified Data.ByteString as B
16:59:48 <elliott> without explicitly mentioning ByteString anywhere
16:59:53 <elliott> It's an idiom, GHC
17:07:05 <zzo38> Is there some pragma to not complain in these cases?
17:08:26 -!- Nisstyre has joined.
17:09:21 <elliott> Yeah, turn off the warning :P
17:16:24 <elliott> Deewiant: Is TrieMap ultra-strict by any chance >_>
17:16:42 <elliott> I don't think I have a single bit of laziness in this entire program :P
17:16:44 <Deewiant> It's strict in the key, of course :-P
17:16:48 <elliott> Real laziness, that is
17:16:55 <elliott> Rather than unnecessary laziness
17:17:04 <Deewiant> And it has ' versions for everything when you want to be strict in the value
17:17:46 <elliott> It... might even be faster than Map for (Int32,Int32), mightn't it
17:18:03 <elliott> It'll basically just turn into a nested IntMap, won't it >_>
17:18:15 <Deewiant> What, with [Int32] as the key? Yes :-P
17:18:23 <elliott> Deewiant: With (Int32,Int32) as the key
17:18:39 <Deewiant> TrieMap is a trie, it needs a list
17:19:16 <elliott> Oh right :P
17:21:11 <elliott> Deewiant: Would me creating a funge-specifications repository make Mycology appear on GitHub faster :-
17:21:12 <elliott> :-P
17:21:35 <Deewiant> No :-P
17:21:43 <elliott> Are you suuuuuuuuure
17:21:48 <elliott> What if it was incredibly meticulously organised
17:21:54 <Deewiant> Hey, I made the repo already, there's just no content there
17:21:58 <elliott> s/funge-specifications/funge-archive/ I guess
17:22:10 <elliott> Since I don't see why it shouldn't have fungicide too
17:22:17 <elliott> Deewiant: "Created about an hour ago" Pro :P
17:22:33 <elliott> I find your initial capitals disturbing
17:22:52 <Deewiant> I thought you might
17:30:40 <elliott> Hmph, I should really figure out a way to stack transformers without hell
17:30:57 <elliott> fpRun :: FPIns -> StateT (globalstate,ipstate) Shiro () is pretty much the exact type I want
17:33:50 -!- Taneb has quit (Ping timeout: 260 seconds).
17:36:17 <elliott> Deewiant: So how does Shiro handle per-fingerprint sta-- OH YEAH YOU USE AN IMPERATIVE LANGUAGE LIKE TERRIBLE PEOPLE.
17:36:59 <Deewiant> s/Shiro/CCBI/
17:37:02 <elliott> Oops
17:37:24 <elliott> Meanwhile I'm really annoyed that Fungi exists, even though I'm pretty sure it's way slower than Shiro
17:37:30 <elliott> It has a debugger of some kind and everything
17:37:45 <elliott> (It's N-dimensional and just uses (Map [i]))
17:38:11 <elliott> Although it does have
17:38:11 <elliott> , conservativeMinMaxCoords :: !(Conservative (Vector i, Vector i))
17:38:18 <elliott> where conservative is some weird
17:38:18 <elliott> data Conservative a = Precise !a | Imprecise !a
17:38:19 <elliott> that's a Functor
17:39:10 <elliott> Oh, it's just so that it can only calculate precise bounds when necessary
17:39:12 <elliott> Ha, ha, so slow
17:39:38 <Deewiant> That doesn't necessarily mean "so slow" :-P
17:40:08 <elliott> Deewiant: Yes, but when it does, it uses Map.foldWithKey
17:40:15 <elliott> Ha, ha, so slow
17:41:06 -!- Gregor has set topic: Functor? I hardly knew 'er! | iridium is too mainstream | http://codu.org/logs/_esoteric/.
17:44:13 <elliott> brb
17:52:49 <Gregor> elliott: Wiki's got some new users that need a banhammer.
18:04:52 <zzo38> Does the IO type in Haskell have any constructors?
18:08:44 <pikhq> zzo38: Well, *technically* it absolutely must have a constructor. *However*, it is in no way exported.
18:08:56 <pikhq> (well. Actually, GHC probably offers a way to get at it.)
18:34:54 -!- Taneb has joined.
19:16:40 <elliott> Deewiant: https://github.com/ehird/funge-archive
19:16:43 <elliott> IT BEGINS
19:17:12 <Deewiant> I'M WATCHING YOU
19:17:31 <elliott> People Watching ehird/funge-archive
19:17:31 <elliott> mcmap
19:17:31 <elliott> Oops
19:17:37 <elliott> mcmap created repository funge-archive about a minute ago
19:17:40 <elliott> Also oops
19:17:43 <elliott> How about I try this one again
19:18:11 <elliott> Deewiant: https://github.com/ehird/funge-archive
19:18:13 <elliott> Try again :P
19:18:19 <Deewiant> I'M WATCHING YOU
19:20:46 <Phantom_Hoover> ^quote
19:20:47 <lambdabot> Phantom_Hoover: You have 6 new messages. '/msg lambdabot @messages' to read them.
19:21:15 <elliott> Does anyone know how to make wget or curl set the last modified date
19:22:28 <elliott> -S
19:22:44 <elliott> Ugh, doesn't send
19:29:47 <elliott> Deewiant: Which standard first had fingerprints?
19:30:12 <Deewiant> I don't think there ever were full -96 or -97 standards
19:30:26 <elliott> But -96 had fingerprints?
19:30:32 <Deewiant> I can't remember
19:30:35 <elliott> Bleh :-P
19:30:54 <elliott> Befunge-96 and -ninetyseven, right, not Funge?
19:32:05 <elliott> Or, hmm
19:32:08 <elliott> Was it Funge-97
19:32:21 <quintopia> is there a language that uses ~= for neq?
19:32:34 <Deewiant> Bah, stupid cat's eye with its robots.txt
19:32:46 <Deewiant> No Wayback Machine for the Befunge-96 draft :-P
19:32:51 <elliott> It has no robots.txt
19:32:57 <elliott> Deewiant: But was it Funge-9seven or Befunge :P
19:33:00 <Deewiant> http://liveweb.archive.org/http://www.cats-eye.com/cet/soft/lang/befunge/96.html
19:33:05 <Deewiant> Page cannot be crawled or displayed due to robots.txt.
19:33:10 <elliott> Well, OK, that's a squatter dude :P
19:33:18 <Deewiant> Whatevs :-P
19:33:26 <elliott> Yeah Funge-97
19:34:01 <Deewiant> Mostly Befunge-97
19:34:05 <elliott> Oh
19:34:25 <Deewiant> I'm reading the mailing list archives
19:34:34 <elliott> Deewiant: Look what has actual content: https://github.com/ehird/funge-archive
19:34:41 <elliott> And commit messages meeting your stringent standards :-)
19:35:20 <Deewiant> Fingerprints came in -98 methinks
19:35:27 <elliott> Okay.
19:35:49 <Deewiant> At least this archive doesn't mention them at all :-P
19:35:52 <elliott> Hmm, separate tests/ directory or just put Mycology in the root and the rcfunge ones with their fingerprints
19:36:00 <elliott> I'm not going to bundle the old, shitty test suites
19:36:04 <elliott> Maybe in a bad/ directory
19:37:06 <Deewiant> Meh, just put everything in there somewhere and call it old/ instead of bad/
19:37:17 <elliott> Yeah, OK :-P
19:37:23 <elliott> I think I'll bundle fingerprint tests with their spec
19:37:28 <elliott> So mycology can be in a nice, easily-accessible location
19:40:18 <elliott> Oops, I think I did a bad
19:40:25 <elliott> Deewiant: Sorry, I non-permalinked your page
19:40:26 <elliott> Will fix
19:41:50 <Deewiant> elliott: "A *true* Nefunge should be able to handle 2.5D code :-)"
19:41:55 <Deewiant> Waiting on Shiro to handle that
19:41:56 <elliott> Deewiant: X-D
19:42:22 <elliott> Deewiant: Hey, gimme a oneline summary of slowdown that isn't "slows things down"
19:42:33 <elliott> And that also isn't "a very slow Befunge interpreter"
19:42:42 <Deewiant> Why not "slows things down"
19:42:48 <elliott> Because I want to be useful :P
19:42:48 <Taneb> Well, brainfuck is turing complete with a maximum loop depth of seven
19:43:00 -!- oerjan has joined.
19:43:07 <elliott> Deewiant: It's fair to put slowdown in a bench/ directory, right?
19:43:09 <Deewiant> It loads Befunge-98 code into a random location in Funge-Space and executes it there after wiping itself out
19:43:16 <Deewiant> I wouldn't, that wasn't the intention
19:43:24 <CakeProphet> anyone familiar with webkit?
19:43:29 <elliott> Deewiant: Well, I mean, it's designed to show how inefficient certain models are vs. others
19:43:36 <elliott> To reify the intentions behind it in a classier way
19:43:43 <elliott> That's closer to a benchmark than anything else
19:43:45 <elliott> It's speed-related
19:43:47 <Deewiant> It was meant to slow down wraparound
19:43:55 <elliott> Right
19:44:00 <elliott> But you didn't just write it because you were tapping random keys :P
19:44:05 <elliott> Or did you
19:44:21 <Deewiant> Not to execute a million cycles + push a million cells on stack before even executing the given program, though that ended up happening
19:44:35 <elliott> Heh
19:44:39 -!- ais523 has joined.
19:44:40 <Deewiant> Which is the main "slowdown" noticeable when using it on most programs :-P
19:44:57 <elliott> Well, where should I put it so that people can find it in a relevant-ish place
19:45:08 <Deewiant> I have it in the useful directory called "programs"
19:45:14 <elliott> I'm focusing on implementers, so bench/ means "look in here to find shit to help you make things go faster by showing you how much you suck
19:45:15 <elliott> "
19:45:23 <Taneb> ais523, I think there's been some spam
19:45:32 <elliott> Gregor: BTW, I'm flattered by how you consider me a wiki admin
19:45:37 <Deewiant> You can put a README or whatnot in bench/ :-P
19:45:47 <Deewiant> And say "also look at foodir/slowdown.b98"
19:46:31 <Taneb> Either I haven't been paying attention or elliott just misread Taneb as Gregor and ais523 as elliott
19:46:31 <Gregor> elliott: I have no idea who is :P
19:46:36 <Taneb> Probably the former
19:46:44 <elliott> Deewiant: Also, not literally a million, I take it
19:46:56 <Deewiant> I honestly can't remember
19:47:00 <Deewiant> I think it was over 100k at least
19:47:09 <oerjan> Gregor: the only wiki admin who comes here is ais523
19:47:26 <oerjan> oh wait
19:47:46 <oerjan> cpressey, if you interpret both terms widely :P
19:48:18 <ais523> oh, it's the privacy-aware dating spambots
19:49:00 <oerjan> because you _so_ trust people who spam with privacy
19:49:45 <elliott> Deewiant: https://github.com/ehird/funge-archive Behold :-P
19:50:04 <elliott> TODO: bench/README.md; bench/fungicide
19:50:10 <elliott> Also tons of other things but that's the short-term
19:51:37 -!- variable has quit (Ping timeout: 250 seconds).
19:53:03 <CakeProphet> 15:53 < CakeProphet> anyone familiar with webkit#?
19:53:03 <CakeProphet> 15:53 < NiFkE> crayon cake wtf
19:53:10 <CakeProphet> I guess I shouldn't expect much from ##csharp
19:53:28 <elliott> What :P
19:53:52 <CakeProphet> he whois'd me immediately
19:53:59 <CakeProphet> and just commented on my vhost.
19:54:18 <Gregor> CakeProphet: crayon cake wtf
19:54:41 <CakeProphet> Gregor: are YOU familiar with webkit#?
19:54:48 <elliott> crayon cake wtf
19:54:54 <elliott> CakeProphet: you realise that many clients show hostname on join
19:54:55 <Gregor> CakeProphet: Good lawd no
19:54:55 <elliott> no whois required
19:55:09 <CakeProphet> I AM TRYING TO FIND ELEMENTS BY ID IN A WEBPAGE USING THE WEBVIEW CLASS BUT IT DOESN'T HAVE ANY METHODS THAT SUGGEST THAT IT IS CAPABLE OF DOING THAT AAAAH.
19:55:37 <CakeProphet> no DOM-like thing.
19:56:21 -!- Sgeo_ has changed nick to Sgeo.
19:56:53 <oerjan> google images suggests that a crayon cake is simply a cake shaped like a box of crayons
19:57:32 <CakeProphet> why does C# hate me.
19:58:02 <fizzie> oerjan: There are surprisingly many crayon cake images, too. I wouldn't have thought it was a "thing".
19:58:22 <elliott> Deewiant: It's not worth archiving fungicide rankings, I take it
19:58:29 <oerjan> i was expecting it to be a term for some specific type of cake...
19:58:46 <ais523> CakeProphet: it hates everyone
19:58:50 <elliott> Also neither my tar nor my bash-completion for unxz know .txz which is incredibly irritating
19:58:50 <Deewiant> elliott: Archive the interpreters instead and you can recreate them ;-)
19:59:13 <elliott> Deewiant: So when you download Shiro, you also get Shiro, which includes Shiro, ...
19:59:37 <elliott> Deewiant: This is intended to be something everyone will ship with their interpreter because, hey, test suites 'n specs 'n shit :P
19:59:41 <CakeProphet> apparently no one is familiar with webkit on Freenode.
19:59:42 <oerjan> but given that CakeProphet is the second non-image hit on google for the quoted term...
19:59:42 <CakeProphet> no one.
20:00:05 <fizzie> CakeProphet: You can maybe get the DOMDocument via the WebFrame in the WebView.
20:00:16 -!- sllide has quit (Ping timeout: 252 seconds).
20:00:22 <CakeProphet> WebFrame looked even less promising than WebView but I'll check again.
20:00:37 <Deewiant> elliott: Well, I doubt everyone wants to ship some old benchmark results :-P
20:00:43 <CakeProphet> yeah there's currently no such thing as the DOMDocument class.
20:00:48 <elliott> elliott@katia:~/Code/funge-archive/bench/fungicide$ git commit -a
20:00:48 <elliott> [master 1ca994c] Add Fungicide
20:00:48 <elliott> 1 files changed, 4 insertions(+), 0 deletions(-)
20:00:48 <elliott> create mode 100644 README.md
20:00:48 <elliott> elliott@katia:~/Code/funge-archive/bench/fungicide$ git push
20:00:49 <elliott> fatal: '/home/deewiant/programming/projects/fungicide' does not appear to be a git repository
20:00:51 <elliott> Deewiant: What
20:00:54 <CakeProphet> so I guess this is just a shitty binding?
20:01:00 <elliott> drwxr-xr-x 8 elliott elliott 4096 2011-08-14 21:01 .git
20:01:03 <elliott> Deewiant: Your .txz contains .git
20:01:12 <Deewiant> That can happen
20:01:14 <fizzie> CakeProphet: WebFrame at least has a DOMDocument method in the objc WebKit API. Don't know about the .NET binding. Maybe it uses some .NET-level DOM thing, I think it might have one.
20:02:05 <elliott> Deewiant: Thankfully it's all text, so the whole repository probably won't be more than half a meg uncompressed
20:02:10 <elliott> Probably like three bytes compressed :P
20:02:17 <elliott> Apparently it's 148KB now
20:02:23 <CakeProphet> fizzie: I think this webkit runs over gtk#
20:02:35 <CakeProphet> I'll check again as soon as MonoDevelop stops being frozen...
20:02:59 <fizzie> There is at least some sort of Gtk# WebKit thing, yes.
20:03:22 <CakeProphet> yes, the one I'm using.
20:05:12 <CakeProphet> there is a hashtable on WebFrame called "data"
20:05:15 <fizzie> Mono's WinDorms implementation has Gecko and WebKit-based thingies, but I suppose those might well be something equally crappy, and I don't suppose you want to use Mono's WinForms mess for the rest of your thing.
20:05:20 <CakeProphet> but I enumerated over the keys and it's apparently empty.
20:05:39 <CakeProphet> must be some kind of general metadata thing.
20:06:07 <elliott> Deewiant: BTW, I take it that Fungicide is public domain or whatever
20:06:16 <elliott> Since it has no license notice and I don't like the idea of not being allowed to distribute it :-)
20:06:22 <elliott> This is how copyright law works
20:06:46 <Deewiant> Actually not
20:06:56 <elliott> Are you going to sue me :- (
20:07:14 <elliott> (I didn't notice there was no license until after)
20:07:15 <Deewiant> Expect a call from my lawyer
20:07:22 <elliott> I'm shaking in my boots :(
20:07:35 * elliott tries to work out how the hell your insane fingerprint system works.
20:07:40 <CakeProphet> I'm shaking on the floor, with my boots...
20:07:44 <CakeProphet> on
20:08:20 <CakeProphet> yeah there's nothing Dom-like on WebFrame... but there's a findFrame method but I doubt it's what I'm looking for.
20:09:03 <CakeProphet> if only there were people on IRC that like... knew stuff about these bindings.
20:09:16 <CakeProphet> I went to #webkit but they were are like "ARRRRGH DEV CHANNEL"
20:09:54 <CakeProphet> dev channels are serious business.
20:10:01 <elliott> so
20:10:03 <elliott> go to the
20:10:03 <elliott> non
20:10:04 <elliott> dev
20:10:05 <elliott> chanenl???
20:10:22 <Deewiant> elliott: What insane fingerprint system
20:10:35 <elliott> Deewiant: The one that uses D's insane metaprogramming
20:11:01 <Deewiant> Unhygienic macros whee
20:11:11 <CakeProphet> elliott: does such a thing exist?
20:11:12 <elliott> Deewiant: Never mind unhygienic; not even AST-based
20:11:18 <elliott> CakeProphet: Presumabmlkajbly
20:11:37 <CakeProphet> not on freenode.
20:11:47 <elliott> Deewiant: Hey remember when CCBI two was like ten times slower than the original and blocked on a compiler bug and Vorpal was all HA HA VAPOURWARE
20:11:48 <elliott> Me too
20:11:48 -!- sllide has joined.
20:12:50 <Deewiant> elliott: That bug still isn't fixed (at least officially; I haven't tested)
20:13:56 <elliott> Deewiant: Your stack is still strictly push/pop right? :-P
20:14:02 <elliott> I remember Vorpal going on about his EFFICIENT STRING PUSHING
20:14:18 <Deewiant> Err, somewhat
20:14:42 <elliott> Deewiant.......
20:14:43 <Deewiant> I think there might be some "gimme the top N cells" thing which just happens to be a single memcpy
20:14:44 <elliott> What have you done..............
20:14:50 <elliott> Deewiant: SOME OF US use linked list stacks
20:14:58 <Deewiant> And you suffer for it
20:15:38 <elliott> Deewiant: Not nearly as much as I suffer for my fungespace
20:15:39 <elliott> Probably
20:15:43 <elliott> Hmm, maybe I should optimise the stack first
20:15:46 <elliott> That's the lowest-hanging fruit ever
20:15:49 <elliott> Actually that's not true, coordinates are
20:15:51 <elliott> I'm using tuples
20:15:54 <elliott> Boxing + laziness
20:16:05 <elliott> At the same time (x,y) is a nice syntax.......
20:17:07 <Deewiant> (# x,y #)
20:17:18 <elliott> Deewiant: Now I can't use it as a function argument; sweet
20:17:31 <Deewiant> Your functions have the wrong kind
20:17:38 <Deewiant> Clearly
20:17:38 <elliott> lol
20:17:56 <elliott> Deewiant: Whenever you turn TRDS on in CCBI or, well, anything, it immediately starts leaking tons of memory forever, right?
20:18:00 <elliott> Or at least I don't see how it would avoid doing so
20:18:28 <Deewiant> "Starts leaking" sounds a bit bad :-P
20:18:34 <Deewiant> It takes a snapshot of the current state, yes :-P
20:18:41 <elliott> Well, it's memory, and it can never be reclaimed, and 90 percent of it is garbage
20:18:50 <elliott> That's the definition of a leak
20:18:50 <Deewiant> But it's a one-time hit
20:18:57 <elliott> Oh
20:19:05 <elliott> So if you travel back in time it just goes to the start and simulates until then?
20:19:07 <Deewiant> "Starts leaking" sounds like it loses memory every tick or something
20:19:08 <Deewiant> Yep
20:19:11 <elliott> I thought it saved every state and just rewound to that
20:19:18 <elliott> Deewiant: That's lame for things involving IO, it's not a real TARDIS :P
20:19:29 <Deewiant> It's the only reasonable way of doing it :-P
20:19:35 <elliott> ...and am I right in thinking that taking a snapshot of the state as of when TRDS was loaded, as opposed to at the beginning of the program, is stretching the spec?
20:19:37 <Deewiant> Unless you have a fancy Funge-Space with a lot of sharing
20:19:46 <Deewiant> In which case you might be able to do it even for many ticks
20:19:57 <Deewiant> No, you're not
20:20:10 <Deewiant> TRDS explicitly has a "earliest tick I can go to" command
20:20:14 <Deewiant> And it can be anything
20:20:32 <Deewiant> You could implement it as only ever allowing going to the future if you want to be a jerk about it :-P
20:21:02 -!- monqy has joined.
20:21:27 <Deewiant> Or maybe it requires it to be in the past, but I doubt Mike would've been that precise about it
20:21:39 <elliott> Heh
20:21:55 <elliott> Well
20:21:56 <Vorpal> <elliott> Deewiant: Not nearly as much as I suffer for my fungespace <-- what is your fungespace?
20:21:59 <elliott> The state at the start is easy
20:22:04 <elliott> You just need to store the contents of the file
20:22:12 <Vorpal> <Deewiant> I think there might be some "gimme the top N cells" thing which just happens to be a single memcpy <-- used for stack-stack no doubt?
20:22:14 <elliott> Vorpal: Yours, plus constant-time wrapping
20:22:36 <elliott> data FungeSpace = FungeSpace { spaceMap :: Map Vector Value
20:22:36 <elliott> , minCoords :: Vector
20:22:36 <elliott> , maxCoords :: Vector
20:22:37 <elliott> , rowPopulation :: Map Value Value
20:22:37 <elliott> , colPopulation :: Map Value Value }
20:22:37 <elliott> deriving (Show)
20:22:59 <Deewiant> Modulo the fact that Map is a (non-balancing?) binary tree and not a hash table
20:23:35 <elliott> It's also not micro-optimised bullshit, but it's the same structure theoretically, which is what matter
20:23:35 <elliott> s
20:23:57 <Deewiant> Well, a tree's a different data structure from a hash table :-P
20:24:08 <Deewiant> But yes it's an "associative array"
20:24:14 <Deewiant> Or whatever you want to call it
20:24:21 <Deewiant> Key-value store
20:24:56 <oerjan> i'm pretty sure Map is balanced.
20:25:24 <olsner> a red-black tree iirc
20:25:49 <Deewiant> The implementation of Map is based on size balanced binary trees (or trees of bounded balance) as described by: Stephen Adams, "Efficient sets: a balancing act", Journal of Functional Programming 3(4):553-562, October 1993, http://www.swiss.ai.mit.edu/~adams/BB/. J. Nievergelt and E.M. Reingold, "Binary search trees of bounded balance", SIAM journal of computing 2(1), March 1973.
20:27:24 <elliott> Deewiant: Your fingerprint mechanism essentially reduces to a big ol' list of fingerprint objects, right?
20:27:27 <elliott> Once all the metaprogramming crap is done
20:27:38 <elliott> I'm trying to take inspiration from systems solving totally different problems to mine ;D
20:28:25 <oerjan> fingerprinting should be done with finger trees, obviously
20:28:46 <elliott> oerjan: dont make me get that picture out again
20:29:01 -!- NihilistDandy has quit (Ping timeout: 260 seconds).
20:29:11 <Taneb> Is there such thing as a cellular automaton where the cells are in a tree?
20:29:15 <oerjan> no need, my brain looked it up
20:29:55 -!- Nisstyre has quit (Ping timeout: 250 seconds).
20:30:17 <oerjan> Taneb: hm well if you use a free noncommutative group as your space structure, you can get something like that
20:31:20 -!- NihilistDandy has joined.
20:32:37 <oerjan> like, up and down are still inverse, as are left and right, but going around in circles _without_ retracing your path does not end up at the same point
20:33:01 <Deewiant> elliott: Something like that yeah
20:33:15 <elliott> Deewiant: Right
20:33:16 <oerjan> it's still a group, so still uniform
20:33:19 <CakeProphet> Taneb: I think it would essentially be a tree-rewriting language with a fixed set of rewrite rules;.
20:33:38 <elliott> I could have a pretty near-perfect system if I could just get this stupid typeclass shit working
20:33:49 <oerjan> CakeProphet: well one where you can only change the tree _labels_, not the structure
20:34:06 <CakeProphet> ah yeah
20:34:20 -!- PatashuWarg has joined.
20:35:34 <Phantom_Hoover> <elliott> oerjan: dont make me get that picture out again
20:35:38 <Phantom_Hoover> What picture?
20:35:41 <elliott> Phantom_Hoover: NO
20:35:45 <oerjan> hm i suppose an infinite binary tree is more like the free group on three generators. oh hm the thing that makes that not quite a group is that to reverse going up, you must sometimes go down left and sometimes down right
20:35:49 <Phantom_Hoover> elliott, WHAT PICTURE
20:35:58 <elliott> Phantom_Hoover: NOOOOOOoooooooOOOooooooooOOOOOOOOOOOOOOOOOOOoOOOOOoooooOOOOoooOOOooooooooooo
20:35:58 <Phantom_Hoover> oerjan, why 3?
20:36:22 <olsner> elliott: what picture?
20:36:22 <oerjan> Phantom_Hoover: 3 edges from each node, up, down left and down right?
20:36:27 <oerjan> or wait hm
20:36:32 <Taneb> Only for a binary tree
20:36:36 <elliott> olsner: NOoooooOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOooooOOOOOOOOOOOOOooooOOOOOOOOOOOoooooooooooooOOOOOOOOOOOOOOOOOOOOOooooooooooooOOOOOOOOOOOOOOOOOOOOOooooooooooooOOOOOOOOOOOOOOOOOOOOoooooooooooOOOOOOOOOOOOOOOOOOOOOOooooooooooooooooooooooooooooo
20:36:58 <oerjan> Phantom_Hoover: well it doesn't fit properly because "up" doesn't have a unique inverse
20:37:22 <elliott> Deewiant: Ew, ugly, each fingerprints' IP-specific state is going to be stored with its global state, not with the IP object. :/
20:37:28 <elliott> As in, a separate (Map IP IPState) in the fingerprint state.
20:37:29 <oerjan> essentially you have two kinds of nodes, left and right ones
20:37:30 <elliott> This makes me sad.
20:37:51 <Phantom_Hoover> oerjan, *ternary* trees, now...
20:38:58 <oerjan> Phantom_Hoover: even worse, now the inverse of "up" has _three_ options...
20:39:17 <Phantom_Hoover> oerjan, sure, but at least the isomorphism is more obvious.
20:39:20 <Taneb> Unary trees: isomorphic to linked lists?
20:39:21 <oerjan> hm unless maybe you lay it out differently
20:39:32 <oerjan> Taneb: pretty much?
20:39:35 <elliott> sheesh not even oerjan cut in to tell me I'm a bad person
20:40:41 <oerjan> Phantom_Hoover: oh right ternary trees work. in fact that's probably precisely what F_2 gives you (free group on two generators)
20:41:00 <Phantom_Hoover> Well, it's ruined a bit by the fact that the root node has 4 leaves.
20:41:32 <oerjan> Phantom_Hoover: um no root, _everything_ has four edges. to make this work you have to not really think of parents
20:41:55 <Taneb> Which ignores the original proposal completely
20:41:58 <Phantom_Hoover> oerjan, yes, but n-ary trees generally have a root node, no?
20:42:06 <Taneb> A cellular automaton on a tree
20:42:06 <CakeProphet> not formally.
20:42:35 <CakeProphet> >_> I think?
20:42:53 <CakeProphet> the root is just arbitrarily chosen.
20:43:01 <oerjan> Phantom_Hoover: i'm just pointing out that the free group on two generators has the structure of a ternary tree, although the directions are not intuitively matched in the same way
20:43:32 <oerjan> trees don't need to have roots, a rootless tree is just a connected acyclic graph
20:43:39 <CakeProphet> though I guess to be n-ary you actually do need a root...
20:43:55 <Phantom_Hoover> oerjan, hence 'n-ary'.
20:44:01 <Taneb> So, a cellular automaton on a tree is possible
20:44:08 <CakeProphet> because the root has n edges but every other node n+1 edges.
20:44:11 <Taneb> And isn't called anything else as far as we are aware?
20:44:16 <oerjan> although the "n-ary" term is intuively based on a rooted tree, since non-leaves have n+1
20:44:48 <fizzie> http://en.wikipedia.org/wiki/Unrooted_binary_tree but that's just a rather arbitrary term.
20:44:56 <CakeProphet> can't see the forest through all of the trees.
20:45:00 <CakeProphet> oh wait, yes you can.
20:45:41 <CakeProphet> forest is such a stupid way to say acyclic graph...
20:46:09 <CakeProphet> well, non-connected as well. I guess it's shorter to say
20:47:23 <fizzie> But do note that to a mathematician, a single tree is already a forest.
20:47:48 <Vorpal> fizzie, how so?
20:47:56 <Vorpal> oh yes the special case of 1
20:48:10 <fizzie> I guess it's not a "proper forest", though.
20:48:16 <fizzie> Compare subset/proper subset.
20:48:26 <fizzie> So maybe it's intuitive enough.
20:48:43 <elliott> ?pl \x -> (f x, x)
20:48:44 <lambdabot> (,) =<< f
20:48:55 <Deewiant> first f . join (,)
20:49:10 <oerjan> best forest: {}
20:49:38 <CakeProphet> best forest: your mom
20:49:59 <Taneb> Is it possible to define a tree as a recursive tuple?
20:50:05 <Vorpal> I have to say that wine is getting bloody amazing. I'm using a shader-heavy DirectX 9c program and there are absolutely no issues in it
20:50:38 <Taneb> Like t is a tuple (bit,bit|t,bit|t)
20:51:03 <Taneb> Is that even a tuple?
20:52:45 <oerjan> apart from syntax, it's pretty much a haskell algebraic datatype
20:53:14 <fizzie> $ cabal
20:53:14 <fizzie> The program 'cabal' is currently not installed. To run 'cabal' please ask your administrator to install the package 'cabal-install'
20:53:14 <fizzie> ^ sadness
20:53:43 <oerjan> data T = T Bit (Either Bit T) (Either Bit T)
20:53:51 <Deewiant> fizzie: That's not a hard problem to solve
20:54:16 <Phantom_Hoover> fizzie, are you your administrator or are you actually (gasp) using a multi-user system?
20:54:28 <fizzie> Phantom_Hoover: I am not an administrator there, no.
20:54:44 <fizzie> Though generally "please install X for me" tickets have been solved in a day or so.
20:54:45 <Phantom_Hoover> :O
20:55:07 <Phantom_Hoover> fizzie, how are you not administrator on everything ever you are so trustworthy.
20:55:09 <CakeProphet> I wonder what would happen if I installed every package in all of my repos
20:55:26 <oerjan> more likely to be written something like data T = Leaf Bit | T1 Bit T | T2 Bit T T
20:55:27 <fizzie> Phantom_Hoover: It's at work, there's a Policy(tm).
20:55:37 <oerjan> er wait
20:55:38 <Phantom_Hoover> fizzie, SO TRUSTWORTHY
20:55:43 <oerjan> not the same
20:55:46 <elliott> <fizzie> $ cabal
20:55:46 <elliott> <fizzie> The program 'cabal' is currently not installed. To run 'cabal' please ask your administrator to install the package 'cabal-install'
20:55:46 <elliott> <fizzie> ^ sadness
20:55:54 <elliott> fizzie: You want to run your own GHC really
20:55:58 <elliott> The distro packages are Really Bad.
20:56:09 <Deewiant> Howso
20:56:12 <elliott> Binary GHC package + source Haskell Platform is usually pretty painless
20:56:20 <elliott> Deewiant: If you just use distro packages, everything is fine
20:56:28 <elliott> Deewiant: If you mix and match with native cabal, version conflicts ahoy
20:56:32 <elliott> And if you ever get a package from both, god help you
20:56:37 <elliott> And you will because cabal is terrible
20:56:40 <Deewiant> I haven't run into problems thus far
20:56:55 <Deewiant> But I haven't been using Haskell heavily lately so maybe I've been lucky
20:57:04 <elliott> http://www.vex.net/~trebla/haskell/sicp.xhtml has a bunch of boring information on it
20:57:19 <elliott> Admittedly Arch is likely to have less problems than Debian in this area
20:57:28 <elliott> But distros lag behind for GHC anyway
20:57:49 <CakeProphet> elliott: of course cabal is terrible, it's written by Haskell-using eggheads. bahahahahaha!
20:57:52 <CakeProphet> >_>
20:58:41 <CakeProphet> they probably love Woodrow Wilson.
20:59:36 <fizzie> The system in question is Ubuntu 10.10, and it has ghc6 and a random sampling of libghc6-foo-dev packages (hunit, mtl, network, parsec2, quickcheck2, regex-base, uulib, x11, x11-xft, xmonad-contrib, xmonad, zlib) installed from the reposies.
21:00:05 <CakeProphet> only US president that had a Ph.D
21:00:20 <Taneb> In what?
21:00:49 <oerjan> ais523: them spammers are being persistent today
21:01:01 <CakeProphet> history and political science
21:01:09 <Taneb> Not bad
21:01:16 <ais523> wow, indeed
21:01:30 <ais523> and I'm just an admin, and they registered accounts, so I can't give them more than a 24-hour block even if I thought it would help
21:02:00 <oerjan> eek
21:03:43 -!- elliott has quit (Ping timeout: 252 seconds).
21:03:47 <ais523> you need checkuser privileges (if the extension is installed), or db access privileges (if it isn't), to do a longer block than that
21:03:55 <ais523> I can block the accounts themselves, but that's pointless
21:03:58 <ais523> as they just make the one post
21:04:18 <CakeProphet> okay so... anyone know anything about webkit# or gtk#
21:05:17 <oerjan> "Wilsonianism calls for the United States to enter the world arena to fight for democracy, and has been a contentious position in American foreign policy."
21:05:21 <oerjan> you don't say.
21:05:24 <fizzie> CakeProphet: I know that from a brief look the webkit-sharp binding looks really bare.
21:05:41 -!- elliott has joined.
21:05:49 <Deewiant> f &&& id
21:05:53 <CakeProphet> fizzie: awesome.
21:05:59 <CakeProphet> mabybe I should find another set of tools.
21:06:11 <elliott> 21:01:30: <ais523> and I'm just an admin, and they registered accounts, so I can't give them more than a 24-hour block even if I thought it would help
21:06:14 <elliott> huh what
21:06:15 <Phantom_Hoover> :t (&&&)
21:06:16 <lambdabot> forall (a :: * -> * -> *) b c c'. (Arrow a) => a b c -> a b c' -> a b (c, c')
21:06:18 <elliott> oh
21:06:22 <elliott> you mean block their ip
21:06:23 <elliott> right
21:07:07 <CakeProphet> so then what's something I can use in mono that a) renders webpages b) has a DOM interface
21:07:13 <CakeProphet> maybe there's Gecko bindings.
21:07:18 <Taneb> Oh god
21:07:18 <elliott> Deewiant: is it good to base my encapsulation mechanism on module scope or is it better to have something ever so slightly uglier that is type safefwfe..........
21:07:23 <Taneb> I know these spambots
21:07:30 <Taneb> The mezzawiki was haunted by them
21:07:33 <fizzie> CakeProphet: There seems to be one "good" (for some values of good) .NET binding of WebKit, and that's Awesomium, which is some sort of proprietary-commercial thing that has free-as-in-beer licenses, and the Mono support seems rather... like an afterthought, if even that.
21:07:39 <Deewiant> elliott: Type safety is good
21:07:45 <Taneb> The owner eventually blocked new user account regisration
21:07:47 <elliott> Deewiant: thisis true
21:07:49 <Taneb> The owner being DMM
21:07:59 <CakeProphet> fizzie: so what you're telling me is
21:08:04 <CakeProphet> I should find Gecko bindings.
21:08:08 <elliott> fpREFC :: Fingerprint
21:08:08 <elliott> fpREFC =
21:08:08 <elliott> Fingerprint
21:08:08 <elliott> { fpName = packName "REFC"
21:08:08 <elliott> , fpInitialGlobalState = newRefStore
21:08:09 <elliott> , fpInitialIPState = return ()
21:08:11 <elliott> , fpHandles = [D,R]
21:08:13 <elliott> , fpRun = run }
21:08:15 <elliott> much nicer than a class instance
21:08:19 <CakeProphet> or use something like jssh to drive Firefox 3.6 with Javascript.
21:08:23 <elliott> also probably much less stupid oevrhead
21:08:25 <elliott> plus
21:08:27 <elliott> about ten fewer language extensions
21:09:16 <fizzie> CakeProphet: Well, I don't know what you want. But I think there is a Gecko binding for the embed-gecko-in-gtk scenario. I don't know how well that one does the "expose DOM to .NET" thing.
21:09:38 <CakeProphet> fizzie: the person who hired me is working on a browser automation scripting engine thing.
21:09:45 <CakeProphet> and wants a linux port... using basically anything.
21:10:11 <CakeProphet> I can use any kind of backend to display and control a rendered web page.
21:10:18 <elliott> Deewiant: techiecniecialy it is typjepesafe... it would just mean that fingerprints could (theoretically) access the data of other fingerprints, if the module exports did not prevent that
21:10:24 <CakeProphet> but it has to work with Mono/C#
21:10:42 <CakeProphet> I guess it would be frontend actually. a rendering engine is a frontend. :P
21:10:47 <Deewiant> elliott: Some fingerprints need to interact anyway
21:11:00 <elliott> Deewiant: Hmm, like what
21:11:03 <elliott> That would poke a major hole in my model ;-)
21:11:04 <Deewiant> SOCK/SCKE :-P
21:11:22 <elliott> Deewiant: Bleh
21:11:27 <Deewiant> Blame fizzie for that one
21:11:36 <oerjan> <Taneb> The mezzawiki was haunted by them <-- btw last i checked i couldn't find any link to the mezzawiki on any of the iwc, d&d or mezzacotta frontpages
21:11:39 <elliott> fizzie: shakes fist
21:11:50 <Taneb> oerjan: It was very secretive
21:12:02 <elliott> Deewiant: I'll probably do that one by adding the shared socket state to FungeState directly
21:12:08 <Taneb> oerjan: http://mezzacotta.net/wiki/Main_Page
21:12:23 <elliott> Vorpal: How's ATHR
21:12:32 <fizzie> Yeah, SCKE was not really a good idea. But perhaps you can opt to just support the (nonexistant) NSCK.
21:12:46 <fizzie> CakeProphet: Well, gecko-sharp is at least part of mono, based on the fact that the download links point to ftp.novell.com/pub/mono/sources/. It might not do the DOM any better though.
21:13:28 <elliott> fizzie: Has anyone who isn't you ever used SCKE?
21:13:42 <fizzie> elliott: Not to my knowledge, no.
21:14:13 <fizzie> Actually I'm not really sure "used" is a right word for my case either.
21:14:15 <elliott> fizzie: I'll implement it anyway out of general masochism but we could just bribe you to stop using it.
21:14:21 <Deewiant> The same goes for SOCK :-P
21:14:32 <fizzie> Because fungot doesn't use it either, I never got that HTTP client part done.
21:14:32 <fungot> fizzie: you have a great appreciation for the fine arts. you use the hammer and nails. they will come a day
21:14:57 <CakeProphet> fizzie: well seeing as webkit# seemingly has no DOM at all, anything would instantly be "better"
21:15:04 <elliott> Deewiant: There are more Funge implementors in the world than programmers, which wouldn't be surprising (see brainfuck) if not for the fact that it's so damn hard to implement and quite easy to code in
21:15:37 <Vorpal> <elliott> Vorpal: How's ATHR <-- feeling well
21:15:38 <Deewiant> I shouldn't've made Mycology, it made it too easy to implement
21:15:47 <Vorpal> just asked it
21:15:52 <elliott> Vorpal: Is it implementable
21:15:55 <elliott> Deewiant: Speak for yourself
21:15:58 <Vorpal> elliott, forgot XD
21:16:23 <elliott> Deewiant: Also try to avoid generalising based on Vorpal's ability to copy CCBI code ;-)
21:16:30 <elliott> See with you, I just coerced the code out in English form slowly.
21:16:54 <oerjan> <Taneb> oerjan: It was very secretive <-- oh so it's not _intended_ to be findable by ordinary visitors?
21:17:20 <fizzie> CakeProphet: Well, I grepped the Gecko.WebControl APIdoc .xml file (I can't figure out how to actually show that with monodoc without installing it somewhere, and it's not easily findable in the web) and the only thing matching "dom" (case-insensitively) is some event-handlers.
21:18:11 <elliott> fizzie: It might be like .getDocument
21:19:14 <pikhq> Deewiant: I'd say it really hasn't made it too easy to implement.
21:19:30 <elliott> Says someone who's never done it
21:19:47 <pikhq> Deewiant: Just harder to unintentionally fuck it up.
21:19:54 <elliott> Really at this point it's a vehicle for me to show how awesome Haskell is ;-)
21:20:26 <elliott> And also to convince fizzie that he should run fungot on it, once I can prove it runs faster than cfunge.
21:20:26 <fungot> elliott: just be patient, the answer, the fact remained except the pony a begrudging pat, as gently in the horn fell off. dammit.
21:21:14 <Vorpal> elliott, as far as I remember most of ATHR is implementable but not really the inter-thread communication stuff
21:21:25 <Vorpal> that needs reworking
21:21:47 <elliott> Vorpal: Please let me know when it exists, it'll be fun figuring out interactions between it and TRDS
21:22:05 <Vorpal> elliott, well I will leave that part completely up to you
21:22:22 <elliott> Vorpal: What part
21:22:25 <Vorpal> elliott, I would assume TRDS happens inside each ATHR thread, but bugger all of you go back past a ATHR fork
21:22:43 <Vorpal> elliott, the part of figuring out interactions
21:22:44 <Gregor> elliott: muuuuuuuuuuuuuuuuuudem
21:24:01 <elliott> Gregor: Can't you fix the three lines that need changing yourself :P
21:25:06 <Gregor> Are there only three lines that need changing?
21:25:46 <Gregor> Last I recall, it's still in non-buffering land.
21:25:57 <CakeProphet> fizzie: well uh... apparently C# bindings suck.
21:26:01 <CakeProphet> and I just need to use jssh.
21:26:02 <elliott> Gregor: Uhh, both ends use select
21:26:05 <elliott> And buffer
21:26:12 <elliott> I don't know WHICH three lines need changing
21:26:16 <elliott> But it should, conceptually, work
21:26:41 <Gregor> Ahhhhhhhhhhhhhhhhhhhhhhhh
21:26:55 <elliott> Gregor: Just see my latest sprunge links :P
21:26:59 <elliott> Whenever those were
21:27:41 <Gregor> http://sprunge.us/CUiE is the latest I have
21:27:44 <fizzie> CakeProphet: The browser backends supported by monodoc are Gecko, GtkHtml, WebKit and MonoWebBrowser; you'd probably have to pick one of those to actually render a page. All of them seem quite hacky. (And GtkHtml will not support much of anything.)
21:28:45 <elliott> Gregor: Looks right to me
21:28:51 <elliott> Gregor: It selects on both ends, it has buffers
21:29:00 <elliott> Just Doesn't Work(tm)
21:29:21 <elliott> I'm too tired to debug it today, I'll have a look tomorrow if you don't miraculously twiddle it into workingness :P
21:29:31 <Gregor> Pff
21:29:49 <CakeProphet> software problems | Functor? I hardly knew 'er! | http://codu.org/logs/_esoteric/
21:29:53 -!- CakeProphet has set topic: software problems | Functor? I hardly knew 'er! | http://codu.org/logs/_esoteric/.
21:29:56 <CakeProphet> :3
21:30:10 <sllide> funky
21:30:46 <fizzie> CakeProphet: At least Mono.WebBrowser's IWebBrowser interface has a Document property that gives you an IDocument, which is from a Mono.WebBrowser.DOM namespace, which seems to have interfaces corresponding to a DOM tree.
21:31:05 <fizzie> (The underlying machinery there is Gecko via gluezilla.)
21:31:11 <CakeProphet> fizzie: this is good...
21:32:11 <elliott> lol gecko
21:32:19 <fizzie> (I have no idea why none of this shows up in the online monodoc thing; I had to fetch the mono-2.10.2.tar.bz2 source-ball and peek at the .cs files in mcs/class/Mono.WebBrowser/.)
21:32:53 <CakeProphet> fizzie: what does WebBrowser render on top of?
21:32:56 <CakeProphet> gtk#?
21:33:39 <fizzie> CakeProphet: That's a good question; it's official use case is to be the browser control in the Mono WinForms implementation.
21:33:55 <fizzie> Oh.
21:34:10 <fizzie> "Mono.WebBrowser is also a class library, but a private one (i.e., it's in the gac but can't be "discovered" by pkg-config tools since it doesn't ship a .pc file. It can obviously be linked to directly). Winforms depends on it directly, and it exposes interfaces that hide browser engine implementation details. The interfaces are more in line with the DOM spec, but are not as complete, mainly because the .NET Winforms WebBrowser control is not feature-complete i
21:34:10 <fizzie> n itself."
21:34:22 <fizzie> Heh, it doesn't sound terribly usable as a standalone component.
21:35:19 <CakeProphet> uuuugh
21:35:32 <CakeProphet> that entire paragraph
21:35:40 <CakeProphet> is pretty much nonsense to me.
21:36:36 <fizzie> As far as I can tell it translates mostly down to "it's not really meant to be used directly, just by the WinForms browser control".
21:37:18 <fizzie> I don't know how "serious" that is and whether some stuff does in fact use it directly.
21:37:35 <fizzie> At least there is an interface there. (It abstracts over Gecko and WebKit backends, turns out.)
21:37:44 <Gregor> elliott: I think I know the problem. If you have no data to send, you should not have it in the write set for select(). IIRC, it will only signal that the write buffer is ready once; you must write() at least once for it to signal again.
21:37:58 <elliott> Gregor: Ah.
21:38:10 <elliott> Easy enough to fix, just filter for non-empty write_buffer
21:38:24 <elliott> Oh, except that conns don't know their conn_id
21:38:36 <elliott> But whatever you can just get it from handle_for_id and then add the stdio thing
21:38:36 <Gregor> elliott: Nope, I'm a terrible liar.
21:38:41 <elliott> derp
21:39:30 <Gregor> elliott: Although I /do/ think it will be a busy loop that way, that doesn't seem to be the bug.
21:39:30 <elliott> Gregor: Go on
21:39:39 <elliott> Yay :P
21:40:00 <Gregor> (Still verifying)
21:40:39 <fizzie> select is level-triggered, isn't it not? It'll keep telling you "yes you can write" as long as you actually can write.
21:40:56 <Gregor> fizzie: Yup.
21:41:07 <Gregor> Which makes this a busy loop, which is less than ideal, but not the bug :P
21:41:24 <elliott> Gregor: Have I mentioned how easy this would be in @ :-P
21:41:28 <elliott> Seriously Unix IO is so terrible AUGH
21:42:32 <Gregor> elliott: What the bloody huh? host.py is in a loop of thinking it can read from stdin, then reading nothing ...
21:43:47 <CakeProphet> fizzie: can't seem to find Mono.Mozilla or Mono.Webkit
21:44:36 <elliott> Gregor: Hmm
21:44:39 <elliott> Gregor: That means stdin is EOF
21:44:47 <elliott> I just assumed EOF would never happen :D
21:45:29 <Gregor> Oh, lul, didn't notice socket.error: [Errno 98] Address already in use
21:45:44 <elliott> lol
21:49:46 <Vorpal> elliott, EOF on stdin can happen easily.
21:51:39 <elliott> No shit
21:53:23 <CakeProphet> fizzie: so yeah there's an IWebBrowser interface but there doesn't seem to be an actual base class.
21:53:34 <elliott> now to construct
21:53:56 <elliott> forall cat a r. (Category cat, forall b. Applicative (cat b)) => a -> cat (cat (a, cat a a) r) r
21:54:01 <elliott> CAN IT EVEN BE DONE
21:54:26 <Deewiant> ?djinn forall cat a r. (Category cat, forall b. Applicative (cat b)) => a -> cat (cat (a, cat a a) r) r
21:54:27 <lambdabot> Cannot parse command
21:54:31 <Deewiant> Signs point to "no"
21:54:34 <elliott> Deewiant: That's not even a valid Haskell signature
21:54:35 <elliott> With any extensions
21:54:44 <elliott> Can't forall in a context like that
21:54:51 <elliott> And djinn doesn't even begin to handle half of any of that anyway :P
21:55:47 <Vorpal> elliott, what is djinn?
21:55:54 <elliott> A thing
21:56:02 <elliott> ?djinn (a -> b -> c) -> (b -> a -> c)
21:56:02 <lambdabot> f a b c = a c b
21:56:12 <elliott> ?djinn a -> (b -> a) -> Maybe b -> a
21:56:12 <lambdabot> f a b c =
21:56:12 <lambdabot> case c of
21:56:12 <lambdabot> Nothing -> a
21:56:12 <lambdabot> Just d -> b d
21:56:16 <oerjan> 10:10:02 <elliott> data Conservative a = Precise !a | Imprecise !a
21:56:16 <oerjan> 10:10:03 <elliott> that's a Functor
21:56:18 <elliott> ?djinn (a -> a) -> a
21:56:18 <lambdabot> -- f cannot be realized.
21:56:35 <Vorpal> err, can't it?
21:56:45 <oerjan> no it's not it breaks on fmap (const True) . fmap (const undefined) >:)
21:57:07 -!- variable has joined.
21:57:14 <elliott> Vorpal: not in a logically sound manner
21:57:15 <elliott> oerjan: wat
21:57:19 <elliott> heh
21:57:21 <Vorpal> elliott, okay that is true
21:57:32 <Vorpal> ?djinn a -> a
21:57:32 <lambdabot> f a = a
21:57:41 <Vorpal> ?djinn a -> b
21:57:41 <lambdabot> -- f cannot be realized.
21:57:43 <Vorpal> hm right
21:57:52 <Vorpal> ?djinn a -> b -> b
21:57:53 <lambdabot> f _ a = a
21:57:59 <Vorpal> ?djinn a -> a -> a
21:57:59 <lambdabot> f _ a = a
21:58:03 <Gregor> elliott: I think somebody's disagreeing on the protocol somewhere ...
21:58:09 <Vorpal> well there are a lot of interpretations for that
21:58:13 <Vorpal> Gregor, btw what are you doing?
21:58:25 <Gregor> elliott: After getting the initial connection command, the host is receiving a command of length 1, unprintable character.
21:58:28 <Gregor> Vorpal: MAGIC
21:58:49 <Vorpal> Gregor, the gathering?
21:58:49 <Gregor> elliott: Specifically, 0 ...
21:59:03 <elliott> Gregor: Nice :P
21:59:11 <elliott> Gregor: It might be a write string call or whatever
21:59:14 <elliott> Gregor: Guest might not be sending "c"
21:59:18 <Vorpal> Gregor, I bet zzo38 will be interested in it if it is that
21:59:24 <elliott> <Vorpal> well there are a lot of interpretations for that
21:59:29 <elliott> Vorpal: All proofs are indistinguishable
21:59:38 <Gregor> elliott: What the heww? Why was handle_connection sending the error code back?
21:59:46 <elliott> Gregor: Oh
21:59:48 <Vorpal> elliott, err. Hm
21:59:51 <Gregor> elliott: err = read_short() \n write_short(err) # whuuuu?
21:59:52 <elliott> Gregor: Probably it meant to send to the "TCP client"
21:59:54 <elliott> Who does not exist any more
21:59:59 <elliott> And I forgot that you have to specify destinations
22:00:01 <elliott> Yeah
22:00:16 <Gregor> elliott: You'se gots lots o' protocol problems here, bub
22:00:46 <elliott> Gregor: Just remove the write_short(err) :P
22:01:02 <Vorpal> <Vorpal> elliott, err. Hm
22:01:02 <Vorpal> <Gregor> elliott: err = read_short() \n write_short(err) # whuuuu?
22:01:17 <Vorpal> hm... seems I'm clairvoyant
22:01:38 <Vorpal> (I even got the column of the text right)
22:01:56 <oerjan> Vorpal: i think ?djinn works in a terminating language only superficially similar to haskell
22:02:02 <Vorpal> oerjan, ah
22:02:18 <oerjan> so as to be logically sound in the curry-howard sense
22:02:19 <elliott> argh how does this work
22:03:04 <oerjan> also it doesn't really support recursion, even terminating
22:03:07 <elliott> aha
22:03:33 <Gregor> elliott: Still no go
22:04:27 <oerjan> ?djinn ((b -> a) -> a) -> a
22:04:28 <lambdabot> -- f cannot be realized.
22:05:26 <oerjan> hm that's not right is it
22:05:37 <oerjan> for pierce's law
22:05:53 <elliott> Gregor: Huh
22:06:10 <oerjan> ?check \a b -> ((b <= a) <= a) <= (a :: Bool)
22:06:11 <lambdabot> "Falsifiable, after 1 tests:\nFalse\nTrue\n"
22:06:39 <oerjan> ?check \a b -> ((b <= a) <= a) <= (b :: Bool)
22:06:40 <lambdabot> "Falsifiable, after 1 tests:\nTrue\nFalse\n"
22:07:47 <CakeProphet> 18:07 < MulleDK19> I love crashes that corrupt my source files
22:07:48 <CakeProphet> 18:07 < MulleDK19> maybe I should start using source code control
22:07:50 <CakeProphet> ...what?
22:08:06 <oerjan> <zzo38> Does the IO type in Haskell have any constructors?
22:08:09 <oerjan> ?src IO
22:08:09 <lambdabot> Source not found. Just what do you think you're doing Dave?
22:08:14 <CakeProphet> I wonder if he's implementing some kind of metaprogramming tool
22:08:14 <elliott> :t (<*>)
22:08:15 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b
22:08:16 <oerjan> that used to be in lambdabot
22:08:19 <CakeProphet> that directly alters source files.
22:08:26 <elliott> CakeProphet: or maybe
22:08:27 <elliott> his computer
22:08:28 <elliott> crashed
22:08:43 <elliott> (c -> m (a -> b)) -> (c -> m a) -> (c -> m b)
22:08:44 <oerjan> anyway the soundness of haskell depends on not being able to use it freely
22:09:29 * oerjan looks up peirce's law
22:09:50 <oerjan> ?check \a b -> ((a <= b) <= a) <= (a :: Bool)
22:09:51 <lambdabot> "OK, passed 500 tests."
22:09:59 <Taneb> Goodnight
22:10:01 <oerjan> ?djinn ((a -> b) -> a) -> a
22:10:02 <lambdabot> -- f cannot be realized.
22:10:16 -!- Taneb has quit (Read error: Connection reset by peer).
22:11:04 <Gregor> lambdabot: Sounds like a personal problem.
22:11:09 <Gregor> *ohhhhhhh*
22:11:26 <oerjan> :t callCC
22:11:27 <lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
22:13:13 <elliott> oerjan: hlep
22:15:32 -!- FireFly has quit (Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.).
22:16:24 <oerjan> elliott: hatw
22:18:16 <oerjan> <Taneb> Well, brainfuck is turing complete with a maximum loop depth of seven
22:18:20 <oerjan> that sounds high...
22:18:32 -!- MDude has joined.
22:18:44 <elliott> oerjan: dbfi
22:18:53 <oerjan> elliott: trsføoubsgfgd
22:19:16 <elliott> no
22:19:17 <elliott> oerjan: dbfi
22:19:17 <elliott> loop
22:19:18 <elliott> limit
22:19:22 <elliott> based on
22:19:48 <oerjan> use the farce, elliott
22:20:52 -!- sllide has quit (Ping timeout: 240 seconds).
22:20:56 <oerjan> oh right
22:21:15 <oerjan> i thought you were still babbling about your hlep alot
22:24:20 <oerjan> reducing that a lot should be just a matter of branching with adjacent loops rather than nested ones
22:27:39 <oerjan> marvellous, IE steals focus after loading the webpage i wanted _and_ interprets my backspaces as a command to leave the page again
22:27:49 <elliott> dont use ie
22:28:51 <oerjan> are you saying no other browsers steal focus
22:29:29 <monqy> other browsers interpret backspace as a command to leave the page, at least
22:29:31 <monqy> I hate it
22:29:39 <monqy> oh wait no
22:29:46 <monqy> it's just dumb pages that do that??
22:29:50 <monqy> why do they do that
22:29:54 <monqy> it is the worst idea
22:30:10 <ais523> in general, Windows interprets backspace as back
22:30:14 <monqy> oh
22:30:19 <ais523> e.g. in directory listings
22:30:32 <ais523> on Linux, the most common binding seems to be alt-left
22:30:39 <elliott> <oerjan> are you saying no other browsers steal focus
22:30:52 <elliott> chrome has never stolen my focus
22:31:02 <elliott> oerjan: and chrome remembers form details on returning to a page through history
22:31:04 <elliott> as does firefox
22:31:08 <elliott> making it much less annoying
22:31:09 <oerjan> ais523: alt-left also works, it's what i use when i do it deliberately
22:31:14 <elliott> dunno if ie does that nowadays
22:31:24 * Sgeo starts reading why's poignant guide to ruby
22:31:32 <monqy> chromme appears not to do backspacery when there isn't javascript that makes the backspacery happen
22:31:39 <monqy> why anyone would make that javascript is beyond me
22:31:52 <Sgeo> Backspace = back is pain
22:32:20 <oerjan> i can do a lot of grumbling about how programs should not interpret text entry keys as commands but it all stumbles into the fact i use vim :P
22:33:31 <monqy> well at least vim has different modes for that stuff and is generally predictable about it???
22:33:45 <oerjan> i've several times been annoyed when i accidentally typed an n or a q into simon tatham's puzzle windows
22:39:55 -!- elliott has quit (Ping timeout: 246 seconds).
22:44:21 -!- Nisstyre has joined.
22:47:40 <Phantom_Hoover> oerjan, vim???? DIE
22:48:03 <Phantom_Hoover> * Sgeo starts reading why's poignant guide to ruby
22:48:13 <Phantom_Hoover> I thought you'd already loved and lost Ruby.
22:48:30 <Sgeo> Did I ever say I loved it? I don't remember
22:48:42 <Sgeo> I'm pretty sure that I would have lost it to Smalltalk
22:49:08 <Sgeo> But I want a refresher, I guess
22:50:05 <monqy> I remember disliking ruby
22:50:24 <CakeProphet> I hate everything.
22:50:41 <CakeProphet> I'm going to smoke hookah and contemplate a solution to all of this.
22:51:57 <CakeProphet> I actually like Ruby though I know very little practical knowledge of it
22:52:09 <CakeProphet> just the syntax/some-semantics
22:54:49 <oerjan> such a rube
22:57:50 -!- itidus20 has joined.
22:59:55 <Phantom_Hoover> itidus20!
23:00:29 <itidus20> Ph:!
23:00:32 <itidus20> hmm
23:00:36 <itidus20> Phantom_Hoover: !
23:01:11 <Phantom_Hoover> itidus2432902008176640000
23:02:30 <Phantom_Hoover> Sgeobot, check for updates.
23:03:52 <oerjan> oh no, you've summoned itidus20's evil clone!
23:04:15 <Phantom_Hoover> oerjan, quick, get your evil twin to fight him!
23:08:25 <CakeProphet> this is hopeless.
23:09:37 <Phantom_Hoover> There is always hope.
23:10:30 <Phantom_Hoover> Except for the release of the HURD.
23:11:43 <CakeProphet> no, there's no hope
23:11:47 <CakeProphet> this approach isn't going to work.
23:12:09 <CakeProphet> all bindings for web browser rendering engines in Mono C# are stupid.
23:14:11 <CakeProphet> Mono.WebBrowser has all of these DOM interfaces... but, uh, no actual code.
23:14:57 <Phantom_Hoover> http://hyotynen.kapsi.fi/trekfailure/
23:15:13 <Phantom_Hoover> This... this is completely identical to authentic Treknobabble.
23:15:27 <Phantom_Hoover> They should sell it.
23:29:23 <itidus20> procedural generation is popular in part because it reduces the necessary labor and is more productive. on the downside, the lack of direct human control over each generated thing imbibes a lack of meaning in the created content
23:30:05 <itidus20> having said this the failure generator is pretty awesome
23:31:48 <fizzie> fungot: Did you notice he called you meaningless?
23:31:48 <fungot> fizzie: and just what your porkhollow's fat ass needs. when the full chain was nearly closed that you would have a mayoral business which you take very seriously and you will defend this package with your life.
23:33:30 <itidus20> fizzie: i just want to ramble on about it like captain picard.. except not into a lonely document.. but into a channel
23:34:54 <itidus20> I like discovering tradeoffs. Because explanations based on tradeoffs lend themselves to objectivity.
23:35:27 <itidus20> So the tradeoff is the productivity of procedural generation versus the intimacy and warmth of manual creation
23:35:51 <monqy> solution: slave labour
23:37:03 <itidus20> The way I see it, humans reject _some_ procedural things because they sense that they are being cheated.
23:37:47 <monqy> maybe you do
23:37:56 <monqy> I personally like procedural things
23:38:18 <itidus20> For instance, most people would rather not read a procedurally generated textual novel.
23:38:30 <monqy> I'd love it
23:38:34 <Sgeo> itidus20, that's because the procedures aren't good enough yet
23:38:35 <Sgeo> >.>
23:38:42 <monqy> bad procedures are cute
23:38:54 <itidus20> theres a difference between sampling a procedure and reading a whole slab of it
23:39:12 <monqy> the difference is slabs are bigger
23:39:12 <itidus20> now.. uhh.. having said this..
23:39:26 <itidus20> no no wait umm
23:39:29 <itidus20> hm
23:39:41 <itidus20> well people read novels because there is value in them
23:40:27 <itidus20> but a novel full of procedurally generated content is likely to leave a person feeling cheated
23:40:40 <CakeProphet> fungot: write a novel
23:40:40 <fungot> CakeProphet: this is a really hot look for a stronger! but you were asleep. how exciting! a realm that is a ring
23:41:21 <CakeProphet> fungot: write a novel
23:41:21 <fungot> CakeProphet: what a surprise, you are dragging your schizophrenic hopping
23:41:36 <CakeProphet> fungot: write a novel
23:41:36 <fungot> CakeProphet: of what?! no man, cage is sweet. so sweet. so sweet. so sweet. you feel pangs of jealousy, though in a way that it shakes is the same as the word " crazy"
23:41:47 <itidus20> hehe
23:42:00 <itidus20> ok that was pretty cool
23:42:27 <CakeProphet> uuuugh
23:42:36 <itidus20> i actually like that one :-s
23:42:38 <CakeProphet> I am going to fucking bash my head into a sturdy solid object.
23:42:49 <CakeProphet> or, just use jssh to do this crap.
23:44:04 <itidus20> i dont hate procedural stuff. i am sure there are solutions where hybrid uses of procedural generation and manual generation can be greater than the sum of the parts
23:46:40 <itidus20> i think that if you procedurally generate something.. and then.. proceed to shape it with only manual stuff, you can win out.. that would be what minecraft did
23:47:44 <Phantom_Hoover> Wha?
23:47:47 <itidus20> if the demarcation between when the procedural generation begins and ends is clear that would help a lot
23:48:04 <Phantom_Hoover> Procedural generation... doesn't make sense without manual stuff.
23:48:18 <zzo38> itidus20: Yes I think it can be possible to make things in that way; possibly music can be done, or other things. Possibly it can experiment using random output of FurryScript to do stuff such as D&D game and then modify stuff. The included scripts are too simple for that but you can improve it to do that
23:48:38 <Phantom_Hoover> You need, at some point, to define a function from noise to interactale stuff.
23:48:44 <Phantom_Hoover> *interactable
23:49:10 <itidus20> ok a much nicer way to say it is
23:49:42 <itidus20> you could use procedural generation to establish the initial state... but then get humans to carry it forward from there
23:50:29 <Phantom_Hoover> Procedural generation is a matter of mapping a very very large set of meaningless values to something that can be perceived as having a certain structure.
23:50:43 <itidus20> in mezzacotta.. humans vote on which days are good
23:50:47 <itidus20> :D
23:50:53 <itidus20> so that adds value
23:50:54 <Phantom_Hoover> And that's... different.
23:51:16 <itidus20> it has an initial state and each day won't change
23:51:48 <itidus20> like.. 2000bc is set in stone
23:52:09 <monqy> once again itidus20 philisophises without knowing what he's talking about
23:56:30 <itidus20> true
23:57:16 <itidus20> i am confusing general procedural generation with random number generation
23:58:19 -!- Phantom_Hoover has quit (Quit: Leaving).
23:59:06 <itidus20> if a game had hardcoded random number seeds then that would add an interesting twist that you could learn how it unfolds
23:59:08 <oerjan> mezzacotta's algorithm is actually deterministic, iirc. that way they can clear away the cache of rarely visited days.
23:59:32 <itidus20> well yeah.
23:59:38 <ais523> itidus20: at least one final fantasy game (FF1?) is like that
23:59:52 <itidus20> oh i didn't know that
23:59:57 <itidus20> @ ais
2011-08-15
00:01:11 -!- nooga has quit (Ping timeout: 260 seconds).
00:01:28 <itidus20> oerjan: i figure that all procedural generation is deterministic
00:01:47 <itidus20> hummm but the source of seeds might not be though...
00:02:06 <itidus20> and if the seeds are nondeterministic then the procedure won't be
00:02:07 <pikhq> oerjan: I'd be willing to bet it's a PRNG seeded with the date.
00:02:25 <pikhq> Well, rather, transform based on the output thereof.
00:03:02 <itidus20> but back to monqys point.. on the surface i can pretend to know what i am talking about
00:03:08 <itidus20> but do i really? no
00:05:31 <oerjan> pikhq: i think that's called a "hash" :P
00:07:40 <pikhq> oerjan: BAH
00:09:57 <oerjan> btw it's a commonly believed conjecture in computation complexity theory that it is possible to remove true randomness from any algorithm without significantly [weasel word] decreasing its power
00:10:09 <oerjan> *computational complexity
00:10:49 <itidus20> as an example of my ignorance on the matter i certainly haven't studied PRNGs
00:10:58 <itidus20> i've only called them as pre-written functins
00:11:11 <oerjan> i think it follows from some other widely believed conjectures of similar hardness to P vs. NP
00:12:28 <oerjan> but there have also been several concrete derandomization constructions of particular algorithms, most famously perhaps the AKS prime checking algorithm
00:13:43 -!- evincar has joined.
00:13:46 <itidus20> i would go so far as to say that an individuals perception of a procedurally generated work is linked to concepts of a society's shibbaleths
00:13:58 <oerjan> (in that case the "without significantly" means something like "still polynomial time but too slow in practice")
00:14:56 <oerjan> itidus20: the question i'm having is whether there has yet been any procedurally generated work whose value goes beyond just "look at this clever procedural generation"
00:15:19 <itidus20> that, as a listerner, a person conceives of a speaker independantly of the words he speaks
00:15:19 <oerjan> which in itself _can_ be amazing, but leaves something to desire
00:15:38 <itidus20> and so.. procedurally generated words can only resolve to hollow speakers
00:16:07 <evincar> This seems like a conversation related to strong AI.
00:16:21 <oerjan> evincar: was just about to say :P
00:16:22 <evincar> If the program that created the work is intelligent, it will have value.
00:16:34 <evincar> The work will, that is.
00:16:40 <itidus20> hmm
00:16:56 <oerjan> otoh procedurally generated works _without_ AI can still showcase the beauty of mathematics
00:16:58 <itidus20> but what if the program is not intelligent
00:17:18 <oerjan> and in some way, perhaps that's all they can do
00:17:26 <evincar> oerjan: True, but it's also tied to the mind of the creator.
00:17:29 <itidus20> what if it just arrived at pseudo-intelligent displays by luck
00:17:37 <evincar> Isn't that what we've done?
00:18:09 <evincar> Evolution implies vaguely deterministic luck.
00:19:15 <oerjan> yes but we're still intelligent at least some of the time :P
00:19:38 <itidus20> like fungot could say something which in an intelligent speakers mouth would be meaningful
00:19:38 <fungot> itidus20: this is it, like an apple or a cunning prankster than a common sort.
00:20:11 -!- ais523 has quit (Remote host closed the connection).
00:21:06 <oerjan> but if a work is long, achieving something which looks consistently intelligent by chance has vanishingly low probability
00:21:24 <itidus20> any attempt to construct an anthropomorphic speaker in my imagination around fungot is fanciful and illusionary
00:21:24 <fungot> itidus20: this is a really hot look for a stronger! ive been pretty busy in a couple minutes, and more importantly, it pushes the cruxite to the last card. you then quickly adjust the elevation by approximately what it is now!
00:22:16 <itidus20> but i do it any way.. and that is surely a sign of worry that i cannot resist it
00:23:10 <itidus20> i mean there is no framework in language to describe something like that
00:23:32 <itidus20> it looks like a duck, it acts like a duck.. and yet it is very far from being a duck
00:23:54 <evincar> As humans, we like lending meaning to random patterns.
00:23:55 <oerjan> hm? i'd imagine fungot's success is precisely because it implements a framework of language - if a very shallow one
00:23:56 <fungot> oerjan: try again. and a whole other issue. guess i can't really do. hell fucking yes a few more things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some things we can deploy but some thin
00:24:07 <evincar> It's an advantage to see things that aren't there.
00:24:14 <evincar> Rather than missing things that are.
00:24:38 <evincar> I think you broke him.
00:24:44 <oerjan> yep you don't want to mistake a lion for a funnily shaped flower :P
00:25:10 <oerjan> evincar: common fungot bug in how it selects the next word
00:25:10 <fungot> oerjan: try again. and a whole sword bird and now, to make it, and the only to let you in on a little secret a8out the lore, and are, going a little far and its kind of a reckless use of
00:25:59 <oerjan> it sometimes considers one alternative too strongly
00:26:26 -!- amca has joined.
00:26:49 <zzo38> Make a book by typing a lot of your own things and then inserting outputs from fungot and adding stuff to make it fit into your sentences and paragraphs and so on.
00:27:25 <evincar> Intelligent intervention in random output often produces interesting results.
00:30:40 <itidus20> back
00:30:59 <itidus20> someone once told me that art is representation and that it doesn't hide what it is
00:32:02 <itidus20> so if I say fungot is art.. then theres no problem
00:32:03 <fungot> itidus20: so it was pretty good. well, i can't really do. hell fucking yes. it is. hub sn_lab0413. it is a good idea.
00:32:26 <monqy> ^style
00:32:26 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
00:32:53 <itidus20> ^ff7
00:33:00 <itidus20> d'oh
00:33:43 <itidus20> but if fungot is passed off as an actual human, with human rights and human access to resources then trouble brews
00:33:44 <fungot> itidus20: your handy ruler. you are quite a sn0b mm, okay?
00:34:48 <itidus20> now if he was actually intelligent then that would be a different story
00:37:59 <itidus20> my fear is that of procedural generation being used to cut production costs where they cannot really be cut
00:39:27 <itidus20> ok --- i have said my 2 cents on the issue. fungot, any last words?
00:39:28 <fungot> itidus20: not that it would actually bother pitying you. whatever your adventure throws at you im sure shell, and limbering up for a silly cookie dance. or it will 8e the most powerful adversary you have ever had a physical card for the stack or queue. items can be removed the card from the card. you've always wondered what the code is.
00:40:25 <evincar> You've always wondered what the code is indeed.
00:41:48 <itidus20> i will take back a bit of what i have said and say that whoever said the procedures aren't good enough has made a good comment
00:42:44 <itidus20> ok guys, do you want to know what procedural generation i would like to do?
00:43:11 <itidus20> i would like to procedurally generate graphics for scribblenauts
00:44:02 <itidus20> its interesting that in some article, the writer said "they said they didn't procedurally generate the graphics, how could they?"
00:48:28 <evincar> Hmm. Do you suppose you could set up a genetic system to evolve game ideas?
00:48:58 <evincar> Your fitness function would be based on manual scoring of playthroughs.
00:49:12 <evincar> It wouldn't give you complete games, but perhaps prototypes.
00:52:58 <evincar> There has been some success using genetic algorithms to fix bugs in C code.
01:01:01 -!- pingveno has quit (Ping timeout: 250 seconds).
01:02:58 <zzo38>
01:03:01 -!- pingveno has joined.
01:03:33 <itidus20> evincar: i don't think there is any escaping the fact that humans enjoy interacting with each other and feeling each other in our works
01:04:15 <itidus20> like when people write reviews for things... it is assumed the author can read the review.. but an author can't take direct credit for something which occurs amid a procedurally generated experience
01:04:58 <Sgeo> If the author made the procedures
01:05:16 <MDude> While that's true, I don't think it would put procedural generation in a positive like in the absolute sense, just relativly less of a positive one.
01:05:41 <MDude> Procedural generation is genrally meant to work a bit like nature.
01:05:49 <itidus20> it has its place
01:06:18 -!- cheater__ has joined.
01:06:22 <MDude> I think a problem that hurts a lot of procedural generation is the lack of history.
01:06:24 <itidus20> but i am indulging in explicitly stating what it is not so good at
01:06:32 <MDude> I see.
01:07:15 <MDude> For the lack of history part, a procedurally generated dwelling isn't really the result of it's inhabitants.
01:07:50 <itidus20> the world doesn't consist entirely of language.. and human authors add meaning to language through their other experiences
01:08:51 <itidus20> in other words, you can't learn anything from procedurally generated content beyond the fascinating way in which it is structured
01:09:15 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:09:22 <itidus20> you can learn how the patterns work perhaps
01:09:35 <itidus20> like for example playing tetris over and over you can improve
01:11:03 <itidus20> like you can't learn anything from a bot except that which it has been given..
01:11:15 <itidus20> oh maybe you can learn some things...........
01:11:20 <MDude> That is true as long as the procedure does not include a simulation of the subject of the writing, but except in a very shallow sense this is probably true for most if not all generators.
01:11:43 <itidus20> i suppose you could indeed learn grammar structure from a bot
01:11:58 <evincar> Only if it were actually a well-designed bot. :P
01:12:00 <itidus20> but most of its sentences would lack actual meaning
01:12:10 <MDude> One thing I'd like to do some day is make a bot that talks about talking.
01:12:15 <itidus20> so ok not learn nothing.. but you can't get a rich learning
01:12:17 <MDude> THen you could talk about talking about anything.
01:12:18 <zzo38> OK, finally my Constantinople compiler is completed and it works good now.
01:12:18 <evincar> Besides, grammar is emergent behaviour, not formal structure.
01:14:21 <zzo38> http://zzo38computer.cjb.net/prog/Constantinople.zip
01:14:56 <zzo38> Do you think it is good now?
01:17:06 <zzo38> This program is public domain.
01:18:13 <zzo38> I suppose you might change the program to do actual bits I/O if you wanted to do so.
01:20:06 <MDude> So wait, does the current implementation not require brackets, from what I read in the talk page?
01:21:12 <zzo38> Yes, it does not require brackets. Actually it won't even accept brackets (they are useless anyways in this programming language)
01:21:38 <MDude> I see, it's jsut the the distrption on the wiki still mentions them.
01:22:32 <MDude> Without punctuation, it'd be easy to make a version that accepts programs written in Sarus.
01:22:33 <zzo38> Yes it does still mention them. It was probably intended to use ( ) to make not ambiguous, but it doesn't actually help make anything not ambiguous or help anything else either. What does help is what I mentioned, which is using "with" to separate two arguments.
01:22:46 <zzo38> MDude: What does "Sarus" mean?
01:23:09 <MDude> It's an artificial speaking language based partly on Soresol.
01:23:21 <MDude> It's used in a series of cartoons.
01:24:35 <zzo38> You can try that if you want to; it is in the public domain. You can make whatever changes you want to make. However I would like it if you did not misrepresent it as the original program.
01:25:51 <MDude> I'll try not to misrepresent it then.
01:25:56 <MDude> Also, I'd have to learn Haskel.
01:26:05 <zzo38> OK.
01:26:05 <MDude> I guess I was going to eventually.
01:27:10 <zzo38> Do you even have GHC installed in your computer? Note, it includes a file called "Constantinople.cmd" which is a Windows shell script for compiling the program, it is short and you can make a similar short shell script in UNIX, too.
01:27:44 <zzo38> (You will also have to modify the shell script if you are using a different Haskell compiler than GHC)
01:28:56 <MDude> I don't have any version of Haskel, so I might as well go with GHC so i can try out the language int he first place.
01:29:10 <zzo38> Actually, I didn't give my compiler any special name other than just "Constantinople compiler", so it is not difficult to avoid misrepresentation
01:29:44 <zzo38> This program also requires Parsec.
01:30:00 <oerjan> i do not believe template haskell is supported by any compiler other than ghc
01:30:49 <zzo38> Then you do need GHC, because this program also uses Template Haskell.
01:31:32 <oerjan> parsec should be included automatically if you use the Haskell Platform
01:32:05 <MDude> Yeah, the GHC site jsut reccomended I get that.
01:32:29 * MDude recoils at the sight of pink flowers.
01:33:01 <zzo38> Do not worry because the flowers are not part of the Haskell program as far as I know.
01:33:58 <oerjan> you'd think :P
01:34:15 <zzo38> If you want to print out the Constantinople compiler, you also need the "birdstyle.tex" file which I can also give to you if you ask.
01:35:11 <MDude> I don't even know what printing out a compiler means.
01:35:29 <MDude> My Little Program: Functions are Math-ic
01:35:57 <zzo38> I mean printing out the program. It is a .lhs file which can be parsed by TeX to convert into the device independent printout file.
01:36:51 <MDude> Ah, ok.
01:37:21 <zzo38> The extension .lhs just means that lines starting with > are program codes and everything else is ignored by the Haskell compiler
01:42:09 <evincar> tl;dr: LHS = Literate Haskell Source
01:42:26 <evincar> Also LHS = Left-Hand Side.
01:42:37 <evincar> But Left-Hand Side ≠ LHS.
01:42:40 <evincar> Or does it?
01:42:59 <MDude> GHC = Global Hocky Club
01:44:54 <zzo38> Tell me if you have any problems with this program.
01:48:45 <zzo38> The number of pages and the number of chapters of this program are both five, as it turns out.
01:53:46 <zzo38> Is the program strange a bit to you?
01:55:05 <MDude> I haven't checked it out yet because I forgot what I was doing.
01:55:12 <MDude> Now I rememdered I already installed Haskell.
01:57:02 -!- Nisstyre has quit (Ping timeout: 252 seconds).
01:58:54 <PatashuWarg> esoteric music? http://www.youtube.com/watch?v=x_KeybhGDDU&feature=related
02:00:03 -!- zzo38 has quit (Quit: I have to eat too.).
02:01:40 <CakeProphet> PatashuWarg: experimental music
02:01:46 <CakeProphet> is what it's normally known as.
02:01:54 <PatashuWarg> http://www.youtube.com/watch?v=BUB83_F-SmE&feature=related this piece is lol
02:04:10 <MDude> Could not find Main.o?
02:15:15 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
02:15:35 <MDude> I have no idea if the compiler worked.
02:15:52 <MDude> Or what I'm suppossed to do with the .hi and .o files.
02:16:35 <MDude> Oh wait there's my problem.
02:17:06 <MDude> FOr some reason I thought you meant it was a compiler for turnign the lhs file into an exe that can in turn be sued on Constantinople source files.
02:17:38 <MDude> When instead the .bat is what's used on the files written in Constantinople.
02:19:35 <MDude> I'll test it out with the cat program.
02:20:24 -!- Nisstyre has joined.
02:21:22 <MDude> Er, I mean the .cmd.
02:28:18 <MDude> C:\Users\MDude\Desktop\Constantinople>cat.txt.exe
02:28:18 <MDude> I like having a cat.
02:28:18 <MDude> cat.txt.exe: Constantinople.lhs:(144,5)-(145,51): Non-exhaustive patterns in fun
02:28:18 <MDude> ction cmd_in'
02:29:05 <MDude> I'm not sure if that's anI/O problem or not.
02:31:17 <shachaf> No, it's a non-exhaustive patterns problem.
02:31:30 <MDude> I don't know what that means.
02:31:47 <MDude> I did get a trivial program of "out head" to work.
02:31:57 <shachaf> ?
02:32:00 * shachaf can't parse that sentence.
02:32:08 <MDude> In consists of the single line "out head".
02:32:19 <shachaf> Nor that one.
02:32:21 <MDude> It outputs the initial contents of head, which is 0.
02:32:36 <shachaf> If you define a function like "foo (Just x) = x", and then you call it with Nothing, that's a non-exhaustive pattern.
02:32:43 <shachaf> You don't define what foo of Nothing is.
02:32:49 <MDude> It's for zzo38's language Constantinople.
02:32:55 <shachaf> Oh.
02:32:59 <MDude> Which I don't think even has functoins.
02:33:13 <shachaf> I thought this was a Haskell program.
02:33:27 <MDude> The interpreter is written in Haskell.
02:33:37 <MDude> I meant I/O problem as in the implementation of it.
02:33:39 <shachaf> So the interpreter is broken.
02:34:10 <MDude> zzo38 mentioned bitwise I/O wasn't present, but I thought that migth have meant I/O was bytewise instead.
02:34:26 <MDude> Like how other languages save up untilt hey reach a full byte.
02:34:42 <shachaf> Non-exhaustive patterns means that the Haskell program doesn't take some possibility into account.
02:34:50 <oerjan> MDude: it wants input as digits 0 and 1, i think
02:34:56 -!- amca has quit (Quit: Farewell).
02:35:00 <MDude> I see.
02:35:00 * oerjan hasn't read the final version
02:35:16 <evincar> It's only on #esoteric that we talk about the linguistic necessity of buffering bits till we have a full byte.
02:35:41 <MDude> Yeah, I was running off the idea that my input would be converted to strings of bits.
02:35:46 <shachaf> Like http://www.samuelhughes.com/boof/index.html ?
02:35:51 <MDude> I'll try with actual 1s and 0s.
02:36:01 <augur> did someone say linguistic
02:36:32 <oerjan> augur: no. nothing to see here, move on...
02:36:46 <augur> x3
02:37:53 <MDude> Ok, no cat is working, though the interpreter still throws an error tacked on to the end of the output.
02:37:57 <MDude> *now
02:39:47 <oerjan> hm does Constantinople actually handle eof by the spec...
02:41:12 <evincar> augur: Computer-linguistics. Though I'm always up for a chat about the natural kind.
02:41:26 <evincar> People on #conlang are surprisingly unmotivated to talk about language.
02:41:37 <augur> ofcourse they are
02:41:41 <augur> thats why they're in #conlang
02:41:42 <oerjan> MDude: indeed it doesn't, so that's not zzo38's fault
02:41:44 <augur> and not #linguistics
02:42:06 <MDude> Well I'm not sure how I'd give it input that doesn't end in a eof.
02:42:28 <oerjan> well it shouldn't err out if you don't read that far
03:02:18 -!- wth has joined.
03:03:34 -!- wth has left.
03:14:22 <MDude> Well I have no idea how to avoid that.
03:17:40 <oerjan> it certainly would be hard with a cat program :P
03:18:25 <MDude> Well I mean I'm not usre how to define input length at all.
03:19:04 <oerjan> um i simply mean to use an input format which doesn't require you to know what's beyond the input you actually use
03:19:29 <MDude> So a predefined fixed length?
03:20:32 <oerjan> not necessarily. http://en.wikipedia.org/wiki/Prefix_code
03:21:32 <oerjan> except for the entire input, not just each word of it
03:23:03 <oerjan> for example, unlambda program code has that property (ignoring trailing whitespace and comments)
03:28:23 <MDude> I'll have to see if I can make something liek that in the morning, then.
03:28:26 -!- MDude has changed nick to MSleep.
03:31:13 -!- Gregor has set topic: This umbrella works wonders for murdering! | software problems | Functor? I hardly knew 'er! | http://codu.org/logs/_esoteric/.
03:39:52 -!- pikhq has quit (Ping timeout: 240 seconds).
03:41:53 -!- pikhq has joined.
03:50:59 <Sgeo> Big, big deep breath. Deep down inside you there is a submarine. It has a tongue. Exhale."
03:54:31 <coppro> ohgod sgeo found cuil theory
03:55:23 <Sgeo> coppro, I'm just quoting from Why's Poignant Guide to Ruby
03:55:42 <Sgeo> _why clearly found cuil theory
03:56:50 <coppro> umm... ignore that sentence
04:02:41 <Sgeo> I think this is a bit outdated
04:04:07 <Sgeo> Yes, Dr. Cham now does something different from what _why said
04:04:13 <Sgeo> his niece Hannah.
04:04:23 <Sgeo> http://ideone.com/PULCM
04:04:41 <Sgeo> According to _why, it should be Yes, Dr. Cham electrocuted his niece Hannah.
04:06:52 <evincar> Well, "should" in the factual sense, not the normative.
04:07:16 <evincar> I think it makes more sense for a do-block to introduce a new scope for its identifiers.
04:07:24 * Sgeo agrees
04:07:27 <evincar> s/its/all its/
04:08:14 <evincar> I'm glad _why disappeared. I go by Why as well. :P
04:08:55 <evincar> (whyevernotso)
04:09:22 -!- zzo38 has joined.
04:10:10 <zzo38> Hello, world!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
04:12:00 <zzo38> The cannot find Main.o is not a problem; the .cmd file tries to delete it at first to force that file to be recompiled without necessarily recompiling the other file.
04:12:00 <Gregor> Hello, exclamation points!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
04:12:31 <zzo38> But, yes, my program does use actual character 0 and 1 for I/O. A future version might make it proper bitwise I/O, though.
04:14:57 <zzo38> You will get the nonexhaustive pattern errors in two cases: One is if you input anything other than 0 or 1 (this includes the newline at the end of the first input line). Another is if you try to store a bit in a tail of a list.
04:18:02 <zzo38> Trying to use the "nand" command as the argument to "in" or as the first argument to "replace", although it that case it has nothing to do with nonexhaustive patterns; I did explicitly type "undefined" there in the program because that operation is not defined.
04:19:07 <oerjan> zzo38: one may also use error for a more precise error message
04:19:35 <evincar> So what shall I do this evening? Work on a little language, or write?
04:21:34 <zzo38> oerjan: Yes I know that too. I just didn't bother putting it in. For the case of writing a non-list to the tail, that is also, what would be called in mathematics, a value that the function is not defined on; although in this case the reason Haskell sees that is due to nonexhaustive patterns instead.
04:22:52 <zzo38> evincar: I don't know. What little language did you want to work on, and what did you want to write?
04:26:22 <evincar> zzo38: It's a small but versatile embedded language intended for game development, based on Self. As for the writing, I was thinking of working out a system of magic and seeing what interesting fantasy world sprung up from it.
04:27:50 <zzo38> evincar: These are interesting things. Maybe you can do both, one today and one tomorrow. If you have time.
04:29:20 <zzo38> I would like to see some of the ideas of both these things.
04:29:41 <evincar> I guess I'll work on the language because it's more fun to show off, and might be useful to someone.
04:30:42 <zzo38> OK.
04:31:10 <evincar> The idea is to have a very minimalistic language that's high-performance and easy to embed.
04:31:27 <zzo38> OK.
04:32:22 <evincar> When it comes to games especially, your only choices for good pre-existing scripting languages are Lua and Python.
04:32:51 <evincar> I think they're too big, as scripting languages go.
04:33:01 <evincar> Especially in a high-performance system.
04:34:18 <zzo38> In the case of MegaZeux, it has Robotic built-in, however I have also added Forth (but which is also used in a different way than the Robotic codes; Forth codes are sun synchronously and are placed in an external file and are global to the game, while Robotic codes are asynchronous and can be specific to objects on the board). Forth does run faster (I have tested it).
04:35:32 <evincar> Stack-based languages are good for embedding, but I think people find them cumbersome.
04:37:45 <zzo38> Make up your own and see if it is good.
04:38:35 <zzo38> When making a game with MegaZeux, I often use both the Robotic codes and the Forth codes, for different reasons.
04:39:18 <evincar> The language I'm working on is object-oriented, based on Smalltalk and Self. Uses prototypal inheritance rather than classes, and libffi for external bindings.
04:41:43 <evincar> Well, I'm not getting anything done as long as I hang around here talking, so goodnight.
04:41:46 -!- evincar has quit (Quit: leaving).
04:45:01 -!- GreaseMonkey has joined.
04:45:01 -!- GreaseMonkey has quit (Changing host).
04:45:01 -!- GreaseMonkey has joined.
04:45:36 <quintopia> i need a name for my game
04:45:44 <quintopia> zzo38: give my game a name
04:46:15 <zzo38> quintopia: How can I do so? I have not seen your game. However, I do have a program to make up a random name of computer games
04:46:48 <quintopia> its about robots and factories and symmetry and asymmetry and puzzles
04:46:56 <quintopia> you can do it from that right?
04:47:58 <zzo38> No I cannot. But I can try. Does "Factories Symmetry" works?
04:56:00 <oerjan> robotobor
05:04:24 <itidus20> heres an amusing application of procedural generation i just stumbled upon by chance http://turnyournameintoaface.com/
05:04:37 -!- BeholdMyGlory has quit (Remote host closed the connection).
05:11:38 <quintopia> oerjan: i like it
05:14:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:15:32 <quintopia> oerjan: how about RoboTodoЯ
05:22:37 <oerjan> but of course
05:24:19 <oerjan> xk cancer diary
05:24:45 <quintopia> yeah
05:25:33 <oerjan> hm that was actually a funny one
05:27:00 <quintopia> i agree, although considering it involves aids, it'd be the worse failure ever if it weren't
05:27:14 <quintopia> aids is a comedy trump card
05:27:25 <quintopia> if you get aids in apples to apples, you've won the hand
06:30:11 <quintopia> zzo38: what does your program suggest?
06:30:51 <zzo38> quintopia: The program currently can take no parameters, so it generates completely at random. (It is possible to make a version with parameters if you want)
06:31:37 <quintopia> what does it say?
06:32:16 <zzo38> quintopia: http://zzo38computer.cjb.net/furry/webform.php?which=video_game.txt&para=&count=1 (The "Parameter" field has no effect currently.)
06:33:25 <quintopia> wow these namees are great but they are three words long
06:33:37 <quintopia> i want a made up name that is one word long :P
06:34:09 <zzo38> You sometimes get names that are only two words long. However, there is no one word long.
06:34:47 <quintopia> "Tom Clancy's Bubble Physics"
06:34:49 <quintopia> i'm on it!
06:38:13 <fizzie> "Tiger Woods' Battle Girl" sounds rather multidisciplinary.
06:39:55 <oerjan> !simplename
06:40:03 <EgoBot> XMOSIHAIECWOAI.
06:40:35 <oerjan> truly a household name
06:42:25 <quintopia> is there a complex name?
06:42:52 <oerjan> not in EgoBot to my knowledge
06:43:41 <quintopia> so do you like robotobor or robotopia better
06:44:20 <Deewiant> Robotopia is already the name of a game
06:44:46 <zzo38> Therefore, call it Robotobor (unless that is also already taken)
06:47:38 <fizzie> Robotorpor. (Of which Google says: "Did you mean to search for: roboraptor".)
06:52:31 <quintopia> nah fizzie, these robots are very active
06:53:03 <fizzie> Those robots mean business.
06:53:22 <quintopia> also, when i was a kid i always wanted a roboraptor
06:53:31 <quintopia> but that shit was $16 iirc
06:53:39 <quintopia> oh wait
06:53:42 <quintopia> my mistake
06:53:53 <quintopia> i had a roboraptor
06:53:57 <quintopia> still do
06:54:14 <quintopia> i wanted the anamatronic t-rex, which was $216
07:02:33 <olsner> !simplename
07:02:38 <EgoBot> VEOACS.
07:19:45 <zzo38> I used a different algorithm for making name of my character in D&D game, I have done so the past few times I have created a character (each time for a separate campaign; none of my characters have died, and if it is it might be due to sacrifice (even in chess you can find sacrifice useful)).
07:21:10 -!- Phantom_Hoover has joined.
07:24:14 <quintopia> it means you dont play paranoia
07:24:24 <quintopia> or you'd die all the time :)
07:29:28 -!- Taneb has joined.
07:29:51 <Taneb> Hello!
07:30:50 <shachaf> @ahoy Taneb
07:30:50 <lambdabot> "Taneb"
07:31:07 <Taneb> So, what's up?
07:32:23 <quintopia> thinking of names for my game
07:32:32 <Taneb> What game?
07:32:33 <quintopia> i'm considering "assemblage" noow
07:38:02 -!- zzo38 has quit (Quit: zzo38).
07:41:14 <quintopia> the game i am making
07:41:28 <quintopia> internet is not working again :(
07:43:11 -!- Taneb has quit (Ping timeout: 260 seconds).
07:47:15 -!- oerjan has quit (Quit: leaving).
07:58:41 <fizzie> "Assemblah".
08:12:12 -!- CakeProphet has quit (Ping timeout: 250 seconds).
08:13:25 -!- CakeProphet has joined.
08:13:27 -!- CakeProphet has quit (Changing host).
08:13:27 -!- CakeProphet has joined.
08:26:39 -!- Taneb has joined.
08:35:53 -!- nooga has joined.
08:43:51 -!- CakeProphet has quit (Ping timeout: 264 seconds).
08:45:36 -!- CakeProphet has joined.
08:45:36 -!- CakeProphet has quit (Changing host).
08:45:36 -!- CakeProphet has joined.
08:48:42 -!- asiekierka has joined.
08:48:43 <asiekierka> hi
08:48:43 <asiekierka> http://esolangs.org/wiki/Binodu
08:48:58 <Taneb> Hello!
08:50:27 <Taneb> Nice
08:50:37 <Taneb> One thing: don't pothole links to user pages
08:51:04 <asiekierka> right.
08:51:09 <asiekierka> i'm adding some stuff to the syntax i find missing
08:54:24 <asiekierka> writing a hello world now
08:57:12 <asiekierka> done
08:57:51 <asiekierka> ok, not done as the wiki ate my entry, somehow
08:57:51 <asiekierka> brb
08:58:10 <asiekierka> There. It's there.
08:59:13 <asiekierka> http://esolangs.org/wiki/Binodu#Examples
08:59:14 <asiekierka> So cruel.
08:59:28 <asiekierka> writing a more informative example: XOR gate!
08:59:38 <Taneb> I'm going to write a shorter hello world
09:00:44 <asiekierka> go ahead
09:00:50 <asiekierka> just uhh
09:00:54 <asiekierka> ok go ahead
09:01:23 <asiekierka> oh right
09:01:27 <asiekierka> minor syntax change
09:01:32 <asiekierka> (multiple comparator/action pairs are allowed in a single node
09:02:09 <asiekierka> Note added.
09:07:07 <asiekierka> Taneb - http://pastebin.com/FQLmCWvY
09:07:10 <asiekierka> XOR in 34 lines, including input
09:07:29 <Taneb> Nice
09:07:38 <asiekierka> little bug, XOR1 should be Automatic Output
09:07:54 <asiekierka> so should be the other two, in fact
09:08:04 <asiekierka> A to toggle reg. 1, Z to toggle reg. 2, X to XOR
09:09:28 <asiekierka> i would add code to make it smaller, but then, I was aiming for minimalism
09:10:04 <asiekierka> but it needs one more syntax change
09:10:09 <asiekierka> along with Stop there should be StopOnce
09:10:18 <asiekierka> actually no, that defeats one of the tricks you need to do
09:10:25 <asiekierka> the change i want to do is add OutputOnChange
09:10:31 <asiekierka> so it only outputs if a store has been executed
09:18:40 <asiekierka> Taneb try to figure out how this LFSR works: http://pastebin.com/0cR0GSJ5
09:20:13 <Taneb> It doesn't.
09:20:26 <Taneb> It fires LFSRbit3 and then halts
09:20:44 <asiekierka> yes yes it does
09:20:48 <asiekierka> oh.
09:20:55 <asiekierka> no, it in fact does work
09:20:58 <asiekierka> Taneb - look at LFSRbit1
09:21:00 <asiekierka> and Compare InputL
09:21:07 <Taneb> Damn, didn't see that automatic
09:21:09 <asiekierka> Stop only halts a Node
09:21:14 <asiekierka> not the whole thing
09:21:42 <asiekierka> i'm starting to love binodu
09:21:47 <asiekierka> it's so simple, looks much simpler than Brainfuck
09:21:54 <asiekierka> but gets you easily confused
09:22:15 <asiekierka> LFSRinit is only so it doesn't halt indefinitely
09:22:20 <asiekierka> by setting its default state to 0010
09:22:28 <asiekierka> rather than 0000
09:22:40 <asiekierka> though i'll add a Default command right now
09:22:42 <asiekierka> just to get rid of it
09:23:13 <Taneb> I've written a 112 line Hello World
09:24:03 <Taneb> Yours is shorter.
09:24:21 <asiekierka> yeah.
09:24:23 <asiekierka> show me yours
09:24:27 <asiekierka> i want to see what complexity have you done
09:24:29 <Taneb> Still working on it
09:24:38 <Taneb> Gonna take out a few redundant nodes
09:24:43 <asiekierka> lol
09:25:04 <asiekierka> don't you like how my language is simply complex
09:25:12 <asiekierka> right! i need to take a break pretty soon
09:25:15 <Taneb> It's amazing
09:25:26 <asiekierka> really?
09:25:31 <asiekierka> i invented it on a boring afternooon
09:25:36 <asiekierka> i was reading a book on AI
09:25:36 <Taneb> 104 nodes
09:25:38 <asiekierka> and i saw the concept of nodes
09:25:55 <asiekierka> then i thought "What if I make it into an esolang?"
09:26:01 <asiekierka> then, many complexifications, changes and simplifications later
09:26:02 <asiekierka> i got this
09:26:11 <Taneb> 100 lines
09:26:18 <asiekierka> pastebin now
09:26:19 <asiekierka> i gtg soon
09:26:25 <asiekierka> you beat me by 7 lines
09:26:26 <asiekierka> D:
09:26:45 <Taneb> http://pastebin.com/ZxJTT1st
09:27:12 <asiekierka> Wow. Good job.
09:27:21 <asiekierka> also Compare is required (even if empty) to trigger an Action
09:27:34 <Taneb> It's all there
09:27:37 <asiekierka> well not necessairly
09:27:41 <asiekierka> i mean, this part is interpreter-dependent
09:27:43 <asiekierka> it's mainly for beautification
09:28:17 <asiekierka> also, about Node Seven
09:28:28 <asiekierka> why add all the "Action false" code?
09:28:29 <asiekierka> i see no point
09:28:45 <Taneb> The first 7 is a double seven
09:28:49 <Taneb> The third isn't
09:28:52 <asiekierka> oh... right.
09:28:57 <asiekierka> wow i cant read my own code
09:29:02 <Taneb> So, the first time 7 is ran, it launches itself again
09:29:04 <asiekierka> the 7 would fire a Seven then go to its own action
09:29:05 <asiekierka> wow.
09:29:09 <asiekierka> though
09:29:20 <asiekierka> wouldnt it be shorter to add two "Fire Seven" for the first time?
09:29:24 <asiekierka> and remove that part of the code?
09:29:27 <asiekierka> would save 3 lines
09:29:30 <Taneb> Probably
09:29:34 <Taneb> I was being clever
09:29:47 <Taneb> Same with L, actually
09:29:47 <asiekierka> well i wasn't being clever and being clever didnt give you that much gain
09:29:52 <asiekierka> feel free to edit the page
09:29:52 <asiekierka> i'm off
09:29:55 <asiekierka> cya!
09:30:01 <Taneb> Bye
09:30:58 <itidus20> so on an unrelated subject, i sketched an amusing 3d snakes and ladders out of boredom
09:31:16 <itidus20> where each row is higher than the last, as if climbing a hill
09:31:31 <asiekierka> Taneb one more thing before i left
09:31:35 <asiekierka> added Binodu to the esolang list
09:31:37 <asiekierka> and added it to categories
09:31:38 <asiekierka> bye!
09:31:46 <asiekierka> i wonder what paradigm this fits into, i fany
09:31:46 <Taneb> Bye
09:31:54 <Taneb> Object oriented
09:34:55 <itidus20> I find this binodu easy on the eyes.. i don't like looking at a soup of ^^&*^&*)(&*(%@$%^
09:35:38 <itidus20> no wait i didn't say that
09:45:20 <asiekierka> its easy on the eyes
09:45:22 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
09:45:25 <asiekierka> but still not easy on the mind
09:45:31 <asiekierka> when im back, im going to work on an interp
09:45:35 <asiekierka> also 99 bottles of beer
09:45:38 <asiekierka> cya again
09:45:53 -!- Phantom_Hoover has joined.
09:52:03 <Taneb> Got it down to 74 lines
09:58:31 -!- Taneb has quit (Ping timeout: 260 seconds).
10:05:39 -!- GreaseMonkey has quit (Quit: The Other Game).
10:11:03 -!- Taneb has joined.
10:11:11 <Taneb> Hello!
10:19:21 <coppro> ah, Unicode
10:19:27 <coppro> whatever would we do without BRAKCETs
10:51:29 <asiekierka> back
10:51:31 <asiekierka> Taneb, how's your work
10:51:38 <Taneb> 74 lines
10:51:53 <Taneb> Can't get it down any further
10:53:31 <asiekierka> tried optimizing it further
10:53:35 <asiekierka> but that only made it stay at 74 lines
10:53:42 <Taneb> Exactly
10:54:01 <asiekierka> right
10:54:07 <asiekierka> so now i'll be working on the interpreter
11:01:14 -!- cheater_ has joined.
11:03:48 -!- cheater__ has quit (Ping timeout: 250 seconds).
11:06:56 -!- cheater_ has quit (Excess Flood).
11:07:41 -!- cheater_ has joined.
11:18:08 -!- PatashuWarg has joined.
11:22:47 -!- cheater_ has quit (Ping timeout: 240 seconds).
11:22:55 -!- monqy has quit (Quit: hello).
11:37:42 -!- cheater_ has joined.
11:41:15 -!- cheater_ has quit (Excess Flood).
11:42:30 -!- cheater_ has joined.
11:45:44 -!- cheater_ has quit (Excess Flood).
11:51:43 -!- cheater_ has joined.
11:57:35 <Phantom_Hoover> >150 / 17
11:57:40 <Phantom_Hoover> > 150 / 17
11:57:41 <lambdabot> 8.823529411764707
12:22:26 -!- boily has joined.
12:26:34 <Vorpal> asiekierka, any idea about the computational class of binodu?
12:26:46 <Taneb> I'm pretty sure it's a FSA
12:27:10 <Taneb> You can only have a finite number of nodes, which only have a finite number of values
12:27:20 <Vorpal> ah indeed
12:27:47 <asiekierka> Taneb yeah
12:28:18 <asiekierka> though simulating other languages, given finite memory, should be possible
12:28:28 <asiekierka> one way to do it is re-create all logic gates and use that
12:28:34 <Taneb> That makes it a very nice finite state automaton
12:28:50 <asiekierka> i'm pretty sure a Boolfuck interpreter (for finite memory) is doable
12:28:59 <asiekierka> i'm considering adding a Clone command
12:29:07 <asiekierka> that clones the node executing it into a new node
12:29:16 <asiekierka> but then, that would also be finite as you can only specify so many naes
12:29:17 <asiekierka> names*
12:29:18 <Vorpal> asiekierka, I don't see any input?
12:29:19 <asiekierka> making it useless
12:29:22 <asiekierka> Vorpal InputA-InputZ
12:29:27 <asiekierka> though i've yet to code it
12:29:53 <Vorpal> ah
12:30:14 <Vorpal> asiekierka, you call them nodes. Why?
12:30:19 <asiekierka> well
12:30:26 <asiekierka> the entire concept for the language came when I was reading a book on AI
12:30:29 <asiekierka> and i was reading about nodes
12:30:34 <asiekierka> then i... kind of got inspired
12:30:38 <Vorpal> aha
12:30:41 <asiekierka> after half an hour i came up with this
12:34:04 <asiekierka> i'm almost done with the interpreter
12:34:05 <asiekierka> just a parser left
12:39:30 <asiekierka> alright! coded the code for finding and adding nodes
12:39:37 <asiekierka> now i just have to FILL THEM WITH CONTENT
12:42:03 <fizzie> Fill them with cream.
12:42:59 <fizzie> (Reference to: http://penny-arcade.com/comic/2001/04/13 )
12:47:03 <asiekierka> it's not empty
12:47:03 <asiekierka> sorry :<
12:47:16 <asiekierka> it already has the Interpreter class and all the sub-classes (coding in java because i'm lazy)
12:47:29 <Phantom_Hoover> asiekierka, you coded the code for finding the nodes?
12:47:34 <asiekierka> yes
12:47:43 <asiekierka> now i'm halfway through coding the code for parsing them (2nd stage)
12:47:49 <asiekierka> first it has to find all the nodes for the Fire command to work right
12:47:53 <asiekierka> then it parses them to fill in the classes
12:47:57 <asiekierka> then it just runs the interpreter
12:51:07 <asiekierka> right, now i'm parsing everything (except actions)
12:56:18 -!- ais523 has joined.
12:58:40 <asiekierka> so i wrote the code in one go
12:58:42 <asiekierka> 25 errors. meh
12:58:52 <Taneb> Better than 26
12:59:20 <fizzie> Worse than 24, if you want to be philosophical about it.
12:59:36 <asiekierka> we're down to 17
12:59:43 <Taneb> Yay!
13:00:12 <asiekierka> down to 6
13:01:18 -!- ais523_ has joined.
13:01:33 -!- ais523 has quit (Disconnected by services).
13:01:35 -!- ais523_ has changed nick to ais523.
13:02:02 <asiekierka> down to 1
13:02:58 <asiekierka> all errors gone
13:03:05 <asiekierka> now to write a simple Main.java
13:03:08 <asiekierka> and test
13:03:50 -!- cheater_ has quit (Ping timeout: 250 seconds).
13:05:07 <asiekierka> and the compiled classes seem to weigh 11.7KB
13:05:41 <asiekierka> huhhh infinite loop
13:06:14 -!- cheater_ has joined.
13:06:53 -!- sllide has joined.
13:07:25 <asiekierka> right. it seems to run node "hey" ad infinitum
13:07:30 <asiekierka> implying that Stop isn't working
13:07:32 <asiekierka> also no output
13:07:36 <asiekierka> are actions read incorrectly?
13:08:33 <asiekierka> Nothing is read incorrectly, it seems
13:08:34 <asiekierka> except... nodes
13:10:59 <PatashuWarg> 1) write code in one go
13:11:03 <PatashuWarg> 2) discover it doesn't work
13:11:07 <PatashuWarg> 3) rewrite most of the code
13:11:12 <asiekierka> 3) debug the part that you suspect failing the most
13:11:17 <asiekierka> 4) find issue in the simplest ==
13:11:18 <asiekierka> 5) hate Java
13:11:32 <asiekierka> also
13:11:33 <asiekierka> i fixed it
13:12:43 <asiekierka> Taneb
13:12:47 <Taneb> Yay!
13:12:52 <asiekierka> your little Hello, World! somehow prints
13:12:54 <asiekierka> "Hello,2world"
13:12:59 <asiekierka> (i think you broke something)
13:13:07 <Taneb> Close, though
13:13:12 <asiekierka> i'll send you the half-finished interpreter in a sef
13:13:13 <asiekierka> sec*
13:13:13 <Taneb> No exclamation mark?
13:13:17 <asiekierka> no exclamation mark.
13:13:27 <asiekierka> (lacks working Input, that's why half-working)
13:13:43 <asiekierka> i'll try my hello world first, tho
13:14:22 <asiekierka> your 100-line Hello World is even better
13:14:26 <asiekierka> outputs "Hfc'g&d"
13:14:31 <asiekierka> by now i'm not sure if it's an interpreter bug
13:14:32 <asiekierka> or...
13:15:04 <asiekierka> actually
13:15:10 <asiekierka> i quite honestly think it's some bug in the interpreter
13:15:32 -!- cheater_ has quit (Ping timeout: 250 seconds).
13:16:29 -!- cheater_ has joined.
13:16:30 <asiekierka> my claims were confirmed
13:17:42 <Taneb> What was the problem
13:17:47 <asiekierka> i am not sure yet!
13:17:55 <asiekierka> but my original hello world kills the entire interpreter
13:18:04 <asiekierka> i think it's all in the parser
13:18:04 <Taneb> :/
13:18:48 <asiekierka> i'll write some debug code
13:19:02 <PatashuWarg> make it output what it thinks the program is
13:19:09 <asiekierka> that's what i want to do
13:20:44 -!- cheater_ has quit (Ping timeout: 250 seconds).
13:21:29 -!- cheater_ has joined.
13:23:38 <asiekierka> >ACTION: 68 commands
13:23:43 <asiekierka> >I have 108 commands
13:23:43 -!- cheater_ has quit (Excess Flood).
13:23:44 <asiekierka> Lolwut
13:23:51 <asiekierka> 102 commands*
13:24:38 -!- cheater_ has joined.
13:29:10 -!- cheater_ has quit (Excess Flood).
13:30:11 <asiekierka> but it finds the correct amount of strings
13:30:15 <asiekierka> which makes me think the issue is somewhere else
13:30:22 <Taneb> Hmmm
13:31:14 <asiekierka> for(int si=0;si<i.nodes.size();si++)
13:31:17 <asiekierka> *MEGA FACEPALM
13:31:22 <asiekierka> (it's supposed to be strings.size())
13:31:39 <asiekierka> now it loads all the data
13:31:40 -!- MSleep has changed nick to MDude.
13:31:47 <asiekierka> but it turns out my Hello World spitted out garbage
13:31:53 -!- cheater_ has joined.
13:32:53 <asiekierka> right
13:32:58 <asiekierka> so your code is much closer to the real thing
13:33:02 <asiekierka> it still outputs Hello,2world
13:33:04 <asiekierka> but i'll fix it from there
13:34:24 <asiekierka> fixed the space
13:34:36 <Taneb> What was wrong?
13:36:03 <Taneb> I think I have the exclamation mark fixed
13:36:41 <Taneb> Try adding "Fire TwoFalse
13:36:50 <Taneb> Fire TwoTrue" before the stop
13:39:06 <asiekierka> nah
13:39:07 <asiekierka> fixed it
13:39:13 <asiekierka> i think my solution is similar
13:39:17 <asiekierka> updating post
13:39:21 <Taneb> Already done so
13:39:26 <asiekierka> yay
13:39:47 <asiekierka> now i need to implement the input code. somehow.
13:40:08 <Taneb> I was outputting 0x33 instead of 0x33
13:40:40 <asiekierka> 0x33 instead of 0x21, maybe? :P
13:41:01 <Taneb> Yes
13:42:06 <Taneb> I was doing 3 rather than 21
13:42:17 <Taneb> 2 times mistake combo
13:48:37 <asiekierka> oh, yay
13:48:38 <asiekierka> i added input
13:48:41 <asiekierka> and fixed another bug
13:48:51 <asiekierka> i think it's release-ready by now
13:49:01 <asiekierka> i'll just JAR it up
13:52:57 <asiekierka> oh shit i forgot to code in nested compares
13:54:42 <asiekierka> but i'll need to code in space counting and whatnot...
13:54:45 <asiekierka> i'll do it later
13:54:45 <asiekierka> afk
13:56:05 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:00:34 -!- copumpkin has joined.
14:07:09 -!- ais523_ has joined.
14:09:33 -!- ais523 has quit (Ping timeout: 240 seconds).
14:10:43 -!- ais523_ has changed nick to ais523.
14:10:52 -!- derrik has joined.
14:39:21 -!- nooga has quit (Ping timeout: 250 seconds).
14:48:30 <Vorpal> <asiekierka> i'll just JAR it up <-- err
14:48:32 <Vorpal> you used java?
14:48:33 <Vorpal> eww
14:50:49 <Taneb> asiekierka: question. What order are automatic nodes fired in?
14:57:02 -!- copumpkin has quit (Remote host closed the connection).
14:57:09 -!- cheater_ has quit (Ping timeout: 240 seconds).
14:57:26 -!- copumpkin has joined.
14:59:03 -!- cheater_ has joined.
15:03:05 -!- cheater_ has quit (Excess Flood).
15:09:12 -!- cheater_ has joined.
15:18:12 <asiekierka> Taneb from first found in text to last found in text
15:18:14 <asiekierka> so in file's order
15:18:17 <asiekierka> Vorpal i know Java is ugly
15:18:23 <asiekierka> i wanted it done quickly and not felt like learning Python
15:18:41 <asiekierka> now i see myself rewriting the iterative approach i have now into a recursive approach
15:23:57 <Phantom_Hoover> Recursion.... in Java....
15:24:11 <Phantom_Hoover> Does Java actually do tail-call elimination?
15:24:31 <ais523> I'm not sure if it's specified to, but interps are certainly allowed to, and I suspect most of the big-name ones do
15:27:46 <Taneb> asiekierka: logic gates are easy, I've made NAND and XOR just now
15:27:49 <Taneb> But I have to go now
15:27:51 <Taneb> So by
15:27:52 <Taneb> e
15:32:47 -!- Taneb has quit (Ping timeout: 260 seconds).
15:42:08 -!- asiekierka has quit (Ping timeout: 276 seconds).
16:16:38 -!- Taneb has joined.
16:20:30 <Taneb> Would I recieve death threats if I made Ook++?
16:21:09 <ais523> not from me, I'd just look down at you disapprovingly
16:21:49 <CakeProphet> type World i a = [Map i a]; type WorldTransformer t a = Map i (a -> a)
16:21:55 <Taneb> But orang-utans also say Eek!
16:22:24 <CakeProphet> transform :: World i a -> WorldTransformer i b -> World i b
16:22:26 <CakeProphet> muhahahahahahaha!
16:22:33 <Phantom_Hoover> > 8 * 170
16:22:34 <lambdabot> 1360
16:22:46 * CakeProphet is changing the world.
16:22:51 <Phantom_Hoover> Wait, what.
16:23:17 <Phantom_Hoover> > 9 * 170
16:23:18 <lambdabot> 1530
16:24:49 <CakeProphet> sum $ (*) <$> [100,70,0] <*> 9
16:24:50 <CakeProphet> > sum $ (*) <$> [100,70,0] <*> 9
16:24:52 <lambdabot> No instance for (GHC.Num.Num [a])
16:24:52 <lambdabot> arising from a use of `e_11007009' at ...
16:25:16 <CakeProphet> > sum ((*) <$> [100,70,0] <*> 9)
16:25:18 <lambdabot> No instance for (GHC.Num.Num [a])
16:25:18 <lambdabot> arising from a use of `e_11007009' at ...
16:25:20 <CakeProphet> :(
16:27:47 <CakeProphet> > (*) <$> [100,70,0] <*> 9
16:27:48 <lambdabot> No instance for (GHC.Num.Num [a])
16:27:48 <lambdabot> arising from a use of `e_11007009' at ...
16:27:53 <CakeProphet> what?
16:30:06 <CakeProphet> @pl \a -> (,) <$> a <*> a
16:30:07 <lambdabot> ((,) <$>) . join (<*>)
16:30:59 <CakeProphet> > (,) <$>) . join (<*>) [0..]
16:31:00 <lambdabot> <no location info>: parse error on input `)'
16:31:09 <CakeProphet> > ((,) <$>) . join (<*>) [0..]
16:31:10 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> f a1
16:31:28 <CakeProphet> > ((,) <$>) . join (<*>) $ [0..]
16:31:29 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> a1
16:31:37 <CakeProphet> I give up. I don't know Haskell. :P
16:32:17 <CakeProphet> oh it's pl's fault this time.
16:32:33 <CakeProphet> @pl \a -> (((,) <$> a) <*> a)
16:32:35 <lambdabot> (<*>) =<< ((,) <$>)
16:33:11 <CakeProphet> > (<*>) =<< ((,) <$>) $ [0..]
16:33:12 <lambdabot> [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(0,10),(0,11),...
16:33:27 <CakeProphet> > (<*>) -<< ((,) <$>) $ [0..]
16:33:28 <lambdabot> Not in scope: `-<<'
16:33:47 <CakeProphet> > ((,) <$>) >>- (<*>) $ [0..]
16:33:48 <lambdabot> No instance for (Control.Monad.Logic.Class.MonadLogic ((->) [b]))
16:33:48 <lambdabot> arisin...
16:38:54 <Taneb> I've had an idea for an esolang!
16:39:05 <Taneb> Where nothing is defined except for error handling
16:39:06 <CakeProphet> would be nice if MonadLogic had interleaving for applicative or something.
16:39:14 <CakeProphet> Taneb: sounds interesting
16:39:33 <CakeProphet> of course you have to define some other things. the errors themselves.
16:40:08 <CakeProphet> also, it would be interesting if you could somehow improve on typical exception handling.
16:40:09 <Taneb> True
16:40:50 <CakeProphet> will the exceptions take parameters? if so you could pass other exceptions as parameters.
16:40:55 <Gregor> <Taneb> Would I recieve death threats if I made Ook++? // I will kill you for even SUGGESTING such a thing.
16:41:52 <CakeProphet> Taneb: also you probably need some kind of try-catch construct that can catch its own raises, to allow recursive computations.
16:45:11 <CakeProphet> but then you still have to figure out conditionals
16:45:37 <CakeProphet> maybe you'd need one value that isn't an exception, and some kind of primitive that implements conditionals on that distinction
16:48:17 <CakeProphet> well I guess try-catch is a kind of conditional.
16:51:34 <CakeProphet> I think you'll need functions as well
16:53:05 <CakeProphet> that either return values or raise exceptions. though actually you could make them all void, you just need a way to abstract.
16:53:26 <CakeProphet> functions that either do nothing or raise exceptions would be interesting.
16:55:16 <CakeProphet> with the recursive catch it would be very easy to implement Peano arithmetic.
16:55:31 <CakeProphet> with an S and 0 exception
16:57:29 <CakeProphet> so essentially the exceptions act as your data structures
16:58:40 -!- ais523 has quit (Remote host closed the connection).
16:59:23 <CakeProphet> Taneb: are you taking notes yet? :P
17:00:14 <Taneb> Yes
17:02:36 <CakeProphet> a "lower" primitive would be interesting.
17:03:01 <Taneb> How would that work?
17:05:30 -!- CakeProp1et has joined.
17:05:44 <CakeProp1et> Taneb: what was the last thing I said?
17:05:54 <Taneb> <CakeProphet> a "lower" primitive would be interesting.
17:06:07 <CakeProp1et> 13:04 < CakeProphet> essentially it works like raise in reverse. It takes an exception back to the previous try-catch
17:06:10 <CakeProp1et> 13:05 < CakeProphet> or.... I guess raises an exception if there is no lower level. :P
17:06:18 <CakeProp1et> 13:05 < CakeProphet> or does nothing in that case.
17:07:12 <cheater_> i'm totally programming computers with my mouse
17:07:14 -!- CakeProphet has quit (Ping timeout: 258 seconds).
17:07:25 -!- CakeProp1et has changed nick to CakeProphet.
17:08:35 <CakeProphet> also, tuples would be handy I think
17:09:03 <CakeProphet> though not strictly necessary
17:09:55 <CakeProphet> an n-tuple would just be an anonymous n-argument exception.
17:10:58 <derrik> you guys are over the head of average joe
17:11:23 <CakeProphet> really, I'm starting to think that exception handling essentially just adds a second call stack.
17:11:29 <Taneb> We are #esoteric, derric
17:11:38 <Taneb> s/derric/derrik/
17:11:53 <CakeProphet> it would be interesting to have more than two call stacks, that you could name.
17:12:25 <derrik> awesomities upon awesomities
17:13:05 <CakeProphet> no, no awesomitie-on-awesomitie porn
17:13:24 <CakeProphet> this is a strictly safe-for-work channel.
17:13:30 <CakeProphet> `quote tasty treat
17:13:35 <HackEgo> No output.
17:13:39 -!- asiekierka has joined.
17:13:40 <asiekierka> hi
17:13:47 <CakeProphet> :(
17:13:52 <asiekierka> Taneb - after lots of hacking the recursive parser seems to work
17:14:00 <asiekierka> granted, it's not any kind of good code, but it WORKS and i'm tired anyway
17:14:07 <asiekierka> i just have to check if recursivity works
17:14:12 <CakeProphet> asiekierka: you should learn Haskell, right now.
17:14:19 <asiekierka> i should
17:14:20 <asiekierka> yeah
17:14:23 <asiekierka> just not now
17:14:28 <CakeProphet> okay cool.
17:14:46 <CakeProphet> `quote Gregor
17:14:47 <HackEgo> 14) <fungot> GregorR-L: i bet only you can prevent forest fires. basically, you know. \ 53) <pikhq> Gregor is often a scandalous imposter. It's all the hats, I tell you. \ 54) <GregorR-L> If I ever made a game where you jabbed bears ... <GregorR-L> I'd call it jabbear. \ 55) <oklopol> GregorR: are you talking about ehird's virginity
17:15:10 <Taneb> brb
17:16:30 -!- oklopol has joined.
17:17:16 <Taneb> back
17:17:19 <oklopol> back
17:17:48 <Taneb> > "back"
17:17:50 <lambdabot> "back"
17:18:00 <Taneb> !echo back
17:18:00 <EgoBot> back
17:18:43 <fizzie> ^bf ,[>,]<[.<]!kcab
17:18:43 <fungot> back
17:18:52 <asiekierka> yes! it works
17:18:55 <asiekierka> Taneb i finished the interpreter
17:19:01 <Taneb> Hurrah!
17:19:02 <oklopol> speaking of kcab
17:19:02 <asiekierka> it has a hacky parser but it works
17:19:08 <oklopol> some kebab would be nice
17:19:19 <Taneb> shish or donner?
17:19:27 <oklopol> dner
17:19:35 <Taneb> sheesh.
17:19:37 <oklopol> we don't have shish
17:19:52 <asiekierka> tested it in all cases i thought of
17:19:53 <CakeProphet> :t intersperse
17:19:53 <asiekierka> it works!
17:19:54 <lambdabot> forall a. a -> [a] -> [a]
17:19:54 <Taneb> They're just a bunch of things on sticks then fried!
17:19:59 <asiekierka> i'll just make the debug code more debug
17:20:06 <CakeProphet> :t intercalate
17:20:06 <oklopol> what
17:20:07 <lambdabot> forall a. [a] -> [[a]] -> [a]
17:20:11 <oklopol> no they are not
17:20:17 <CakeProphet> @hoohle [a] -> [a] -> [a]
17:20:18 <lambdabot> Prelude (++) :: [a] -> [a] -> [a]
17:20:18 <lambdabot> Data.List (++) :: [a] -> [a] -> [a]
17:20:18 <lambdabot> Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
17:20:57 <oklopol> http://www.google.fi/search?tbm=isch&hl=fi&source=hp&biw=1170&bih=558&q=d%C3%B6ner&gbv=2&oq=d%C3%B6ner&aq=f&aqi=&aql=&gs_sm=e&gs_upl=0l0l0l8439l0l0l0l0l0l0l0l0ll0l0
17:21:03 <CakeProphet> @hoogle [a] -
17:21:04 <lambdabot> Parse error:
17:21:04 <lambdabot> --count=20 "[a] -"
17:21:04 <lambdabot> ^
17:21:08 <CakeProphet> @hoogle [a] -> [a]
17:21:09 <lambdabot> Prelude cycle :: [a] -> [a]
17:21:09 <lambdabot> Prelude init :: [a] -> [a]
17:21:09 <lambdabot> Prelude reverse :: [a] -> [a]
17:21:22 <Taneb> http://www.google.fi/search?hl=fi&biw=1366&bih=631&gbv=2&tbm=isch&sa=1&q=shish&oq=shish&aq=f&aqi=g7&aql=1&gs_sm=e&gs_upl=9418l10217l0l10719l5l5l0l0l0l0l138l614l1.4l5l0
17:21:28 <CakeProphet> > fix (\a -> (++) =<< reverse)
17:21:29 <lambdabot> Overlapping instances for GHC.Show.Show ([a] -> [a])
17:21:29 <lambdabot> arising from a use ...
17:21:34 <CakeProphet> > fix (\a -> (++) =<< reverse) "hello"
17:21:36 <lambdabot> "ollehhello"
17:21:39 <oklopol> oh you meant that shish are
17:21:48 <oklopol> well true, but as i said, we don't really have those
17:22:06 <CakeProphet> > fix ((++) =<< reverse) "hello"
17:22:07 <lambdabot> Couldn't match expected type `[GHC.Types.Char] -> t'
17:22:07 <lambdabot> against inferr...
17:22:12 <CakeProphet> > fix (\a -(++) =<< reverse) "hello"
17:22:13 <lambdabot> <no location info>: parse error on input `-'
17:22:14 <CakeProphet> bah
17:22:29 <oklopol> but dners are the awesome
17:22:31 <CakeProphet> > fix (\a -> (++) =<< reverse $ a) "hello"
17:22:32 <lambdabot> Couldn't match expected type `[GHC.Types.Char] -> t'
17:22:32 <lambdabot> against inferr...
17:22:38 <CakeProphet> I am Lymee in disguise.
17:22:56 <fizzie> @hoogle a -> b -> c -> d -> e -> f -> g -> h -> i
17:23:11 <lambdabot> thread killed
17:23:15 <fizzie> Worked up to h, funnily enough.
17:23:26 <fizzie> @hoogle a -> b -> c -> d -> e -> f -> g -> h
17:23:28 <lambdabot> Data.List zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
17:23:28 <lambdabot> System.Time TimeDiff :: Int -> Int -> Int -> Int -> Int -> Int -> Integer -> TimeDiff
17:23:28 <lambdabot> Network.Browser AuthDigest :: String -> String -> String -> String -> Maybe Algorithm -> [URI] -> Maybe String -> [Qop] -> Authority
17:23:38 <Lymee> CakeProphet, you are not.
17:24:00 <Lymee> @hoogle zipWith8
17:24:01 <lambdabot> No results found
17:24:07 <Lymee> @hoogle zipWith7
17:24:08 <lambdabot> Data.List zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
17:24:14 <oklopol> googling dner pictures = not a good idea
17:24:21 <CakeProphet> > fix ((++) . reverse) "hello"
17:24:26 <lambdabot> mueval-core: Time limit exceeded
17:24:40 <CakeProphet> > ((++) . reverse) "hello"
17:24:41 <lambdabot> Overlapping instances for GHC.Show.Show
17:24:42 <lambdabot> ([GHC....
17:24:53 <CakeProphet> > ((++) . reverse) "hello" "a"
17:24:57 <lambdabot> mueval-core: Time limit exceeded
17:25:41 <CakeProphet> is that deeply disturbing to anyone else?
17:25:46 <oklopol> not at all
17:25:50 <oklopol> because i'm mentally ignoring it
17:26:16 <CakeProphet> you can't ignore my girth.
17:27:19 <oklopol> do you gear a lot?
17:27:41 <CakeProphet> do I.... what does that mean?
17:27:52 <oklopol> well where does girth come from then
17:27:58 <oklopol> has to come from something
17:28:25 <CakeProphet> http://www.geekstir.com/gary-oak-you-cant-ignore-his-girth
17:28:27 <Taneb> No, he's referring to what's keeping his saddle in place
17:28:43 <CakeProphet> I am referring to an internet meme but Taneb's answer is acceptable I guess.
17:30:18 <asiekierka> ok
17:30:22 <asiekierka> so i'd upload my interpreter somewhere
17:30:32 <oklopol> that has to be the stupidest meme
17:30:34 <asiekierka> but my server admin made the VPS _DIE._
17:30:44 <asiekierka> anyone with 40KB of server space?
17:30:46 <oklopol> but seriously, how do you form irth-forms
17:30:46 <CakeProphet> oklopol: yeah it's pretty dumb.
17:30:56 <oklopol> like kill => kirth?
17:30:57 <asiekierka> please?
17:31:02 <CakeProphet> it basically wishes it were the bloodninja cyber logs.
17:31:03 <CakeProphet> oklopol: what?
17:31:07 <fizzie> There are these things called file upload services where you can put whatever.
17:31:18 <oklopol> CakeProphet: what is unclear to you
17:31:26 <CakeProphet> girth is like... a word.
17:31:30 <CakeProphet> there is no -irth form
17:31:41 <oklopol> if there was an irth form, i wouldn't have to ask
17:31:55 -!- derrik has left.
17:31:56 <asiekierka> fizzie i do not like rapidshare or megaupload
17:31:59 <asiekierka> mediafire is fine, but... but... meh
17:32:04 <oklopol> anyway there's also birth
17:32:06 <asiekierka> i just want something without all this glitteryness everywhere
17:32:09 <CakeProphet> oklopol: okay now you're just confusing me.
17:32:16 <oklopol> which comes from bear
17:32:20 <fizzie> uuencode + pastebin?
17:32:54 <oklopol> so the irth form makes a verb into the event of that action ending
17:33:05 <CakeProphet> oklopol: like, there's nothing to interpret linguistically
17:33:07 <oklopol> not sure how gear => girth makes sense though
17:33:18 <asiekierka> dammit i'll just use dropbox
17:33:26 <CakeProphet> 1. The measurement around the middle of something, esp. a person's waist.
17:33:32 <CakeProphet> like.. it's just a word... with a meaning.
17:33:33 <CakeProphet> there is no pun.
17:33:41 <CakeProphet> or whatever.
17:33:45 <oklopol> yyyyyyyeah right
17:33:50 <Taneb> bear -> birth
17:33:55 <asiekierka> Taneb http://dl.dropbox.com/u/29165587/binodu1.zip
17:33:58 <Taneb> gear -> gearth
17:34:11 <oklopol> okay where the fuck does mirth come from
17:34:24 <Taneb> mear.
17:34:26 <CakeProphet> what, why are you doing this.
17:34:29 <fizzie> bear -> shit, in the woods.
17:34:35 <oklopol> is that a verb?
17:34:36 <Taneb> Which is a variation of mere, meaning a big pond
17:34:48 <asiekierka> added on wiki
17:34:49 <oklopol> but what does that mean as a word
17:34:49 <Taneb> As in, Windemere
17:34:57 <CakeProphet> [vi] [rude] to urinate, to pee, to piss (on). It appears in the phrase meado por los perros ‘pissed on by dogs’, meaning ‘screwed up, terribly unlucky
17:34:59 <oklopol> and how does the ending of doing a pond make you really happy
17:35:02 <CakeProphet> I'm assuming that is spanish
17:35:14 <fizzie> oklopol: Well, if it's a *big* pond.
17:35:25 <oklopol> hmm
17:35:25 <CakeProphet> oklopol: but yeah, definitely looking into it too much.
17:35:53 <fizzie> Fear -> firth? (2. firth -- (a long narrow estuary (especially in Scotland)))
17:36:00 <oklopol> Taneb: ah, good point, earth-endings are probably just alternative spellings
17:36:05 <oklopol> for instance earth itself
17:36:13 <oklopol> from "to ear"
17:36:20 <CakeProphet> ...what is this.
17:36:25 <CakeProphet> this is all false I'm pretty sure
17:36:29 <CakeProphet> I think you're just making stuff up.
17:36:40 <fizzie> Earth, the earest.
17:37:49 <Taneb> dear -> dearth
17:38:03 <oklopol> okay so i think we have pretty much proved that the irth forms do exist, but what we still lack is a good explanation for what the semantics actually are
17:38:14 <oklopol> i'm not sure i covered it completely yet
17:38:16 <CakeProphet> you guys are inventing these linguistic shenanigans to ruin what was a completely acceptable bit of humor involving dicks.
17:38:25 <oklopol> because for instance i'm not sure how earth is the end of all earing.
17:38:36 <fizzie> oklopol: It's because it's so endearing.
17:38:39 <Taneb> Put your ear to the ground?
17:38:46 <Taneb> hear -> hearth?
17:39:05 <oklopol> huh
17:39:07 <Taneb> peir -> Perth?
17:39:13 <oklopol> wow
17:39:26 <CakeProphet> .....
17:39:31 <oklopol> it's all really really obvious now
17:39:36 <CakeProphet> no, this is all false. There is no connection between any of that stuff.
17:39:37 <oklopol> why didn't i see this before
17:40:02 <oklopol> we should call the government of english about this discovirth
17:40:20 <Taneb> TO OXFORD UNIVERSITY!
17:40:28 <CakeProphet> what
17:40:32 <CakeProphet> you haven't discovered anything.
17:40:35 <oklopol> oxfirth
17:41:32 <oklopol> how in hell was that pokemon thing funny
17:41:47 <Taneb> It's a meme.
17:41:57 <Taneb> It needs to be spreadable, not funny.
17:42:08 <Taneb> Like butter
17:42:12 <oklopol> that is a true
17:42:18 <CakeProphet> trith
17:42:21 <CakeProphet> *trirth
17:42:35 <CakeProphet> you can't ignore my trirth
17:42:40 <CakeProphet> see? I just made a variation.
17:43:08 <oklopol> trirth is pretty standard english
17:43:37 <CakeProphet> uh, no
17:43:44 <CakeProphet> what is it with all of these false things you're saying.
17:43:57 <oklopol> heh! trirth, eh?
17:44:08 <fizzie> > let icbin = "I can't believe it's not \"" ++ icbin ++ "\"" in icbin
17:44:10 <lambdabot> "I can't believe it's not \"I can't believe it's not \"I can't believe it's...
17:44:46 <CakeProphet> fizzie: you know you could do that a lot easier with fix or cycle.
17:46:02 <fizzie> > fix $ ("I can't believe it's not \"" ++) . (++ "\"")
17:46:03 <lambdabot> "I can't believe it's not \"I can't believe it's not \"I can't believe it's...
17:46:06 <fizzie> That's not really any easier.
17:46:14 <fizzie> I want the closing quotes for balance, you see.
17:46:42 <CakeProphet> no.
17:47:03 <CakeProphet> > cycle "I can't believe it's not \""
17:47:04 <lambdabot> "I can't believe it's not \"I can't believe it's not \"I can't believe it's...
17:47:13 <CakeProphet> woah it's like the same thing.
17:47:15 <fizzie> That doesn't have the closing quotes either.
17:47:28 <Taneb> asiekierka: still says "Hello2World!"
17:47:36 <oklopol> i think something is wrong with CakeProphet today
17:47:36 <asiekierka> yes
17:47:41 <asiekierka> i didn't fix it on the wiki, there
17:47:54 <asiekierka> i will right now tho
17:47:54 <CakeProphet> oklopol: more false things.
17:48:08 <CakeProphet> false thoughts.
17:48:18 <Taneb> btw, asiekierka, you are not logged into the wiki
17:48:20 <oklopol> false lies
17:48:23 -!- ais523 has joined.
17:48:24 <asiekierka> Taneb i know
17:48:27 <asiekierka> i'm too lazy to.
17:48:30 -!- ais523 has quit (Changing host).
17:48:30 -!- ais523 has joined.
17:50:18 <asiekierka> fix put on wiki, Taneb
17:50:21 <asiekierka> now code in Binodu, FOR IT'S WORKING
17:50:34 <asiekierka> i plan to work on 99 bottles of beer later
17:50:47 <CakeProphet> asiekierka: drink plenty of water to avoid a hangover.
17:50:57 <oklopol> darn cp was faster
17:51:14 <CakeProphet> yeah I'm quick to pounce on that shit.
17:51:15 <asiekierka> ok
17:51:16 <asiekierka> 99 bottles of water
17:51:22 <CakeProphet> no that's lame.
17:51:31 <CakeProphet> you should get shitfaced but avoid the hangover.
17:51:46 <asiekierka> 99 pieces of cake
17:51:49 <CakeProphet> mmmmmm
17:51:53 <asiekierka> 99 pieces of cake with the prophet,
17:51:54 <oklopol> 99 bottles of birth on the wall
17:51:55 <asiekierka> 99 pieces of cake.
17:52:01 <CakeProphet> oklopol: lol
17:52:09 <asiekierka> Nom one down and don't pass it on,
17:52:13 <asiekierka> 98 pieces of cake with the prophet.
17:53:11 <CakeProphet> > [99..0]
17:53:13 <lambdabot> []
17:53:15 <CakeProphet> egads!
17:53:16 <oklopol> i wonder if i can still get a dirth from the kirth place
17:53:54 <Taneb> IKIRTH?
17:54:02 <asiekierka> 0 bottles of beer on the wall,
17:54:05 <asiekierka> 0 bottles of beer.
17:54:14 <Taneb> asiekierka: Still saying "Hello,2World!"
17:54:25 <asiekierka> Taneb IT DOES NOT. I tested.
17:54:35 <asiekierka> Whoops, I think I used unsigned
17:54:39 <asiekierka> 255 bottles of beer on the wall.
17:56:33 <Taneb> asiekierka: are you sure the one on the wiki is the right one?
17:56:40 <asiekierka> checking
17:56:53 <CakeProphet> @pl (\x -> show x++" bottles of beer on the wall, "++show x++" bottles of beer. Take one down, pass it around, "++show(x-1)++" bottles of beer on the wall.") <$> reverse [1..99]
17:56:57 <lambdabot> liftM2 (++) show ((" bottles of beer on the wall, " ++) . ap ((++) . show) ((" bottles of beer. Take one down, pass it around, " ++) . (++ " bottles of beer on the wall.") . show . subtract 1)) <$>
17:56:57 <lambdabot> reverse [1..99]
17:56:57 <lambdabot> optimization suspended, use @pl-resume to continue.
17:57:02 <CakeProphet> @pl-resume
17:57:06 <lambdabot> liftM2 (++) show ((" bottles of beer on the wall, " ++) . liftM2 (++) show ((" bottles of beer. Take one down, pass it around, " ++) . (++ " bottles of beer on the wall.") . show . subtract 1)) <$>
17:57:06 <lambdabot> reverse [1..99]
17:57:07 <Taneb> I've deleted it and reinstalled it, still getting Hello,2World!
17:57:47 <asiekierka> it was broken (i forgot to add spaces)
17:57:49 <asiekierka> now it's good
17:57:52 <asiekierka> i just copypasted it
17:57:53 <asiekierka> IT WORKS
17:58:21 <CakeProphet> > (\x -> show x++" bottles of beer on the wall, "++show x++" bottles of beer. Take one down, pass it around, "++show(x-1)++" bottles of beer on the wall.") =<< reverse [1..99]
17:58:24 <lambdabot> "99 bottles of beer on the wall, 99 bottles of beer. Take one down, pass it...
17:58:36 <fizzie> You can do the [99,98..1] thing too, though I guess reverse [1..99] is not any worse.
17:58:48 <CakeProphet> ah right
17:59:33 <fizzie> > [1,1,2,3,5,8,13..]
17:59:34 <lambdabot> <no location info>: parse error on input `..'
17:59:40 <fizzie> lambdabot: Oh come on, it's *obvious*.
18:00:19 <CakeProphet> > (\x -> x++" bottles of beer on the wall, "++x++" bottles of beer. Take one down, pass it around, "++ show . subtract 1 . read ++" bottles of beer on the wall.").show =<< reverse [1..99]
18:00:20 <oklopol> lambdabot: YOU ARE A FUCKING RETARDO
18:00:20 <lambdabot> Couldn't match expected type `GHC.Base.String -> GHC.Base.String'
18:00:21 <lambdabot> a...
18:02:14 <CakeProphet> @pl (\x -> x++" bottles of beer on the wall, "++x++" bottles of beer. Take one down, pass it around, "++ (show . subtract 1 . read) x ++" bottles of beer on the wall. ").show =<< [99,98..1]
18:02:17 <lambdabot> ap (++) ((" bottles of beer on the wall, " ++) . ap (++) ((" bottles of beer. Take one down, pass it around, " ++) . (++ " bottles of beer on the wall. ") . show . subtract 1 . read)) . show =<< [99,
18:02:17 <lambdabot> 98..1]
18:02:33 <CakeProphet> beautiful
18:02:51 <Taneb> asiekierka: can't get it working :/
18:03:22 <asiekierka> Taneb why not
18:03:35 <Taneb> Still doing Hello,2World!
18:03:55 <Taneb> Can you test that program, see if it's the program?
18:04:17 -!- elliott has joined.
18:04:30 <elliott> helo
18:04:30 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:04:52 <CakeProphet> @pl (\x -> x++" bottles of beer on the wall, "++x++" bottles of beer. Take one down, pass it around, "++ (show . subtract 1 . read) x ++" bottles of beer on the wall. ").show =<< [99,98..1]
18:04:55 <lambdabot> ap (++) ((" bottles of beer on the wall, " ++) . ap (++) ((" bottles of beer. Take one down, pass it around, " ++) . (++ " bottles of beer on the wall. ") . show . subtract 1 . read)) . show =<< [99,
18:04:55 <lambdabot> 98..1]
18:05:26 <CakeProphet> reshow f = show . f . read is a nifty function
18:06:00 <CakeProphet> > let reshow f = show . f . read in reshow (+1) "99"
18:06:02 <lambdabot> "100"
18:06:21 <elliott> call it "perl"
18:06:29 <oklopol> hi elliott :D
18:06:37 <CakeProphet> harr harr. except it's HASKELL OOOOH WHAT NOW.
18:06:50 <Taneb> Haskperl
18:07:08 <CakeProphet> Perlell
18:07:45 <CakeProphet> Herl? Paskell (lol...)
18:08:37 <CakeProphet> I once told someone that Haskell was my favorite language.
18:08:53 <CakeProphet> and they thought I said Pascal, and gave me strange looks.
18:09:05 <Taneb> Could be worse
18:09:34 <Taneb> They could have thought you said Klingon
18:10:31 <CakeProphet> or Objective C
18:11:31 <Taneb> Or... MS SQL?
18:13:04 <CakeProphet> you know what the world is sorely lacking?
18:13:11 <CakeProphet> a hybrid language between Visual Basic and Java.
18:13:24 <Taneb> ...Visual J#?
18:13:39 <CakeProphet> Jasic
18:14:33 <CakeProphet> oh wow there's actually a visual J#
18:15:22 <elliott> 00:14:56: <oerjan> itidus20: the question i'm having is whether there has yet been any procedurally generated work whose value goes beyond just "look at this clever procedural generation"
18:15:26 <elliott> does Minecraft count?
18:15:31 <ais523> does C# count?
18:15:44 <elliott> heh
18:15:49 <ais523> VB.NET and C# are pretty similar languages except for the syntax, nowadays
18:15:50 <Gregor> CakeProphet: Not any more.
18:15:59 <elliott> 00:16:56: <oerjan> otoh procedurally generated works _without_ AI can still showcase the beauty of mathematics
18:15:59 <elliott> if a program spits out Hamlet, it's amazing, whether it has intelligence or not is irrelevant
18:16:09 <elliott> (re 00:17:18: <oerjan> and in some way, perhaps that's all they can do)
18:16:12 <Gregor> elliott: cat sure is amazing.
18:16:21 <elliott> Gregor: har har har
18:16:24 <Gregor> :P
18:16:36 <ais523> elliott: unless it gets it off the Internet?
18:16:41 <Gregor> Incidentally, "cat hamlet" = best Hamlet ever.
18:16:43 <ais523> or it's hardcoded?
18:16:55 <elliott> 00:21:06: <oerjan> but if a work is long, achieving something which looks consistently intelligent by chance has vanishingly low probability
18:16:55 <elliott> you think humans can perform a perfect turing test given a novel-sized output?
18:16:57 <elliott> in all situations?
18:16:59 <elliott> wowzers
18:17:14 <elliott> i'm sure a program could write a terrible romance novel pretty easily and it'd sell :P
18:17:27 <elliott> Gregor: OK now I want to see Hamlet played by a cat.
18:17:30 <CakeProphet> ^style
18:17:30 <Taneb> Especially if it had vampires
18:17:30 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
18:17:42 <CakeProphet> ^style ff7
18:17:43 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
18:17:49 <CakeProphet> fungot: write a romance novel
18:17:50 <fungot> CakeProphet: i had to choose either auto or manual.... that name? you mean only a matter of the ancients, right? an' it's my own weaknesses are what created me. ( gosh, it can't be expected to remember each person's name.
18:17:55 <Gregor> To meow, or not to meow?
18:18:00 <CakeProphet> fungot: write a romance novel
18:18:01 <fungot> CakeProphet: i'll give you back the money i stole from you! you can't die! you! what now? call it shinra mansion. i'll write again....
18:18:04 <elliott> ais523: well, the basic point is that if it spits out a compelling work (without cheating), then it has value, whether or not the program is intelligent enough
18:18:14 <ais523> indeed
18:18:14 <elliott> CakeProphet: call it That Sword Alone Can't Stop
18:18:19 <elliott> s/ enough//
18:18:28 -!- cheater_ has quit (Read error: Connection reset by peer).
18:18:29 <Taneb> ...How do you sign up to be turing tested?
18:18:50 <elliott> 00:23:55: <oerjan> hm? i'd imagine fungot's success is precisely because it implements a framework of language - if a very shallow one
18:18:50 <elliott> imagine if it operated on bits rather than words
18:18:50 <fungot> elliott: tifa always used to get back. come on and take a picture of you that, there's something personal too...
18:18:56 <elliott> nobody would give a shit
18:19:30 <elliott> 00:25:10: <oerjan> evincar: common fungot bug in how it selects the next word
18:19:30 <elliott> banana problem
18:19:30 <fungot> elliott: gosh! you're comin' with shinra now. why'd you bring your chocobo to this.
18:19:36 <CakeProphet> lol
18:19:49 <elliott> what
18:19:53 <elliott> ?
18:20:08 <CakeProphet> fungot's last line made me laugh.
18:20:08 <fungot> CakeProphet: you don't get depressed over a thing, rookie! it's full, so let's hurry before they get in!!
18:20:12 <elliott> oh
18:20:45 <elliott> 00:33:43: <itidus20> but if fungot is passed off as an actual human, with human rights and human access to resources then trouble brews
18:20:45 <fungot> elliott: oh... is bugenhagen...? my family... friends... the pain in my dreams so often... ri....
18:20:51 <elliott> i would fully support this
18:20:54 <elliott> cue ais523 saying he wouldn't
18:21:10 <CakeProphet> fungot would be ab excellent dictator.
18:21:10 <fungot> CakeProphet: you mean the owner of the way you walk, gesture...
18:21:16 <ais523> giving computers human rights would be a little complicated
18:21:20 <ais523> heh, that's an apposite reply
18:21:39 <CakeProphet> s/ab/an/
18:22:11 <elliott> 00:43:11: <itidus20> i would like to procedurally generate graphics for scribblenauts
18:22:11 <elliott> I wonder how large Scribblenaut's vocab. actually is
18:22:17 <elliott> [asterisk]ts'
18:22:26 <Taneb> Smaller than super scribblenauts
18:22:39 <CakeProphet> `quote < CakeProphet> fungot would be ab excellent dictator.
18:22:39 <fungot> CakeProphet: i'm... i'm used to talk... man, i'm pissed!! get it. thanks for showing us!
18:22:39 <MDude> It's fairly large, though there are a few words it doens't have.
18:22:41 <HackEgo> No output.
18:22:42 <CakeProphet> kik iios =
18:22:43 <CakeProphet> e4tjuishrwrt
18:22:50 <MDude> I can't think what they are fomr the top of my head, though.
18:22:51 <CakeProphet> stupid irssi
18:22:56 <elliott> "love"
18:23:09 <Taneb> "beer"
18:23:14 <MDude> And by words it doens't have I specifically mean ones I expected it to.
18:23:16 <CakeProphet> fungot: love and beer
18:23:16 <fungot> CakeProphet: you awake? want me to do with what we did it!
18:23:41 <Taneb> "frisbee"
18:23:45 <MDude> Super Scribblenauts has a lot more possibilities, but it has some problems due to not being made fomr scratch.
18:23:52 <elliott> "death"
18:23:59 <Taneb> Actually, it does have death
18:24:02 -!- Monster has joined.
18:24:08 <CakeProphet> all things must die.
18:24:10 <elliott> Monster: hi monster
18:24:11 <MDude> Certain adjectives are built-in to certain words, for isntance,.
18:24:17 <Monster> hi
18:24:24 <Taneb> Hello Monster
18:24:31 <itidus20> i basically just woke up.. good timing
18:24:37 <Taneb> Monsieur Monster
18:24:44 <MDude> It also relies a lot on defaults, rather than selecting undefined qualities differently each time.
18:24:46 <CakeProphet> ^style darwin
18:24:46 <fungot> Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy)
18:24:57 <Taneb> fungot: frisbee?
18:24:59 <fungot> Taneb: i overlooked/ advantage :) allowing several shots to be fired, which is eagerly sought by innumerable ants, chiefly belonging to fnord and fnord " 9 deg s., 172 deg w.); discovered in/ areas :) subsidence volcanos were either absent or inactive,/ inference i think you misunderstand me. i remember well a walk i took with me a stallion and a mare from/ beautiful fnord pigeons :) australia " fnord lophotes) behaves, as desc
18:25:04 <fizzie> Darwin's still the most smiliest writer ever.
18:25:26 <fizzie> One day I'll fixamate.
18:25:42 <CakeProphet> fungot: he's fairly fnordy as well
18:25:43 <fungot> CakeProphet: my father has paid/ bill, but to/ inferiority :)/ illegitimate offspring from all three forms growing together in pools in/ interior :) queensland. to mr. g. planchon see ( nat. lib.: birds,' vol. iii. 1861, p. 11.)
18:25:52 <fizzie> / = the, :) = of.
18:26:24 <CakeProphet> is that a darwin only thing?
18:26:48 <fizzie> Probably. A script mishap during the model-generation.
18:27:22 <fizzie> Filtered unused punctuation out too, which upset the token indices. (The first K token numbers are hardcoded to be the punctuation.)
18:27:41 <fizzie> So two of his most common words got mapped to the two last punctuation tokens.
18:27:47 <CakeProphet> ah.
18:28:02 <CakeProphet> ^style
18:28:03 <fungot> Available: agora alice c64 ct darwin* discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa speeches ss wp youtube
18:28:09 <CakeProphet> ^style irc
18:28:09 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
18:28:24 <Taneb> fungot: beer, love, death, and frisbee
18:28:25 <fungot> Taneb: i am still on the top shelf with two fluoros, two " pillars" ( one of my 2.0 goals: support more than 4 or so lines in a fnord
18:29:05 <CakeProphet> fungot: do that thing you do so well
18:29:05 <fungot> CakeProphet: i'll think of that
18:29:33 <CakeProphet> fizzie: this is an interesting bot. I'd like to look at the source sometime... except it's in befunge right?
18:29:39 <fizzie> ^source
18:29:39 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
18:29:46 <fizzie> It's publicly available.
18:30:02 <CakeProphet> yeah.. but I can't read befunge very well. I guess that's something to learn how to do in my spare time.
18:30:19 <fizzie> I don't think anyone can really read befunge all that well.
18:30:30 <fizzie> At least other people's.
18:30:57 * CakeProphet needs to learn about AI.
18:31:06 <CakeProphet> though I don't know if fungot technically counts as AI
18:31:07 <fungot> CakeProphet: i like the exercises, then go to the summer cabin to sleep
18:31:24 <fizzie> There's a Perl version of the babbling at http://git.zem.fi/fungot/tree/HEAD:/varikn -- not the model-building scripts, but a test script that can be used to babble, plus the conversion scripts from standard ARPA ngram model format.
18:31:24 <fungot> fizzie: i could check with finger. please remove all two- or three button mice and all keyboards.
18:31:44 <fizzie> "Uh."
18:32:21 <elliott> 01:28:56: <MDude> I don't have any version of Haskel, so I might as well go with GHC so i can try out the language int he first place.
18:32:24 <elliott> two Ls
18:32:29 <elliott> and you probably want the haskell program
18:32:30 <elliott> erm
18:32:32 <elliott> and you probably want the haskell platform
18:32:37 <elliott> but probably too late, sigh
18:32:46 <MDude> No worries.
18:32:56 <elliott> 01:32:29: * MDude recoils at the sight of pink flowers.
18:32:56 <elliott> 01:33:01: <zzo38> Do not worry because the flowers are not part of the Haskell program as far as I know.
18:32:57 <elliott> :DDD
18:33:00 <MDude> The GHC site itself told me I should go for the platform instead.
18:33:02 <elliott> MDude: oh didn't realise you were still here
18:34:14 <CakeProphet> fizzie: sometime when I'm less busy I'll have to sit down and comprehend everything you just said.
18:34:32 <elliott> he said anything confusing?
18:34:57 <CakeProphet> elliott: yeah see there's this whole knowledge thing.
18:35:13 <CakeProphet> some people have parts of it and others don't. The lack of it can make certain sentences hard to understand.
18:35:27 <elliott> 04:04:23: <Sgeo> http://ideone.com/PULCM
18:35:27 <elliott> 04:04:41: <Sgeo> According to _why, it should be Yes, Dr. Cham electrocuted his niece Hannah.
18:35:34 <elliott> Sgeo: why's poignant guide is written for an old version of Ruby.
18:36:16 <Sgeo> I figured as much.
18:36:26 <Sgeo> Is it still useful to read?
18:36:39 <elliott> if you like foxes and bacon, yes.
18:36:47 <elliott> the soundtrack is better, though.
18:36:58 <elliott> (http://mislav.uniqpath.com/poignant-guide/soundtrack/)
18:37:07 <elliott> Sgeo: also it's totally incomplete, so w/e
18:37:18 <elliott> it's a fun book though
18:37:28 <elliott> if you aren't reading the sidebars you suck
18:37:30 <itidus20> super scribblenauts increased adjectives but didn't really increase nouns signifigantly as i understand it
18:39:16 <MDude> I think a good example of how Super scribblenauts works oddly is that if you make a pregnant mom, she gives birth to a baby mom.
18:39:22 <MDude> Only babies give birth to babies.
18:39:48 <MDude> Which is distinct fomr a baby <noun>.
18:39:51 <elliott> :D
18:39:55 <MDude> So you have baby babies.
18:39:58 <elliott> pregnant pregnancy
18:40:05 <MDude> *from
18:40:10 <Taneb> Deadly death
18:40:26 <elliott> 04:32:22: <evincar> When it comes to games especially, your only choices for good pre-existing scripting languages are Lua and Python.
18:40:36 <elliott> Squirrel is used extensively in the game industry and is designed for the purpose
18:41:03 <MDude> I tried, and haven't found a way to make anything in super scribblenauts reliably self-replicating.
18:42:06 <elliott> 05:25:33: <oerjan> hm that was actually a funny one
18:42:06 <elliott> yeah that was a good xkcd
18:42:32 <MDude> Factor is supposedly nice for games, though I haven't tried it, and also it's stack-based.
18:43:00 <elliott> http://esolangs.org/wiki/Triplet
18:43:02 <elliott> HATRED
18:43:16 <elliott> MDude: Factor would be a very poor choice of extension language, IMO
18:43:26 <elliott> For writing a game from scratch, maybe, but not as an extension language
18:45:40 <elliott> 12:47:16: <asiekierka> it already has the Interpreter class and all the sub-classes (coding in java because i'm lazy)
18:45:55 <asiekierka> (coding in java because i'm lazy)
18:45:55 <asiekierka> yes
18:45:59 <asiekierka> don't go bitchy about it
18:46:01 <elliott> today scientists found that the amount of sense the definition of "lazy" makes is correlated with intelligence
18:46:17 <asiekierka> i'm lazy, i dont want to learn a new programming language
18:46:21 <asiekierka> and C is not good for quick coding
18:46:24 <asiekierka> therefore i used java
18:46:32 <asiekierka> elliott nonono
18:46:43 <asiekierka> they found that the amount of projects of yours that use Java is correlated with intelligence
18:47:16 <Taneb> What if you use all of Indonesia
18:48:19 <itidus20> I have been thinking about writing my own game scripting language for a while.
18:49:04 <elliott> 15:24:11: <Phantom_Hoover> Does Java actually do tail-call elimination?
18:49:04 <elliott> 15:24:31: <ais523> I'm not sure if it's specified to, but interps are certainly allowed to, and I suspect most of the big-name ones do
18:49:09 <elliott> ais523: um, afaik the sun jvm does not at all
18:49:19 <ais523> really? wow
18:49:50 <elliott> why would it? nobody does that in java
18:50:04 <elliott> gcc is rare by providing TRE
18:50:04 <elliott> 16:27:47: <CakeProphet> > (*) <$> [100,70,0] <*> 9
18:50:04 <elliott> 16:27:48: <lambdabot> No instance for (GHC.Num.Num [a])
18:50:04 <elliott> u r smart
18:51:01 -!- pumpkin has joined.
18:52:01 -!- copumpkin has quit (Ping timeout: 252 seconds).
18:52:08 <elliott> 17:43:08: <oklopol> trirth is pretty standard english
18:52:08 <elliott> 17:43:37: <CakeProphet> uh, no
18:52:08 <elliott> 17:43:44: <CakeProphet> what is it with all of these false things you're saying.
18:52:16 <elliott> CakeProphet: umm dude are you even an english native?
18:52:55 <oklopol> yeah man
18:52:58 <oklopol> hi elliott! :)
18:53:58 <Phantom_Hoover> CakeProphet, how old are you?
18:54:55 -!- pumpkin has quit (Read error: Connection reset by peer).
18:55:20 <CakeProphet> elliott: yes I am.
18:55:24 <CakeProphet> Phantom_Hoover: 20
18:55:36 <elliott> CakeProphet: then how are you unaware of those forms
18:55:42 -!- copumpkin has joined.
18:55:45 <CakeProphet> what the hell is trirth?
18:55:55 <Phantom_Hoover> CakeProphet, we don't have time for this.
18:56:15 <elliott> oh, right, you're doing the obnoxious "i don't like this so I'll pretend not to understand it" thing
18:56:21 <elliott> prescriptivism is awesomeeeeeeeeeeeeee
18:56:41 <CakeProphet> I'm aware that there are words with -irth at the end, but I'm pretty sure they're not forms of different words in the way that -ness at the end of an adjective makes it a noun.
18:56:45 <CakeProphet> what?
18:56:51 <CakeProphet> no, I really don't know what the word trirth means.
18:57:03 <elliott> yeah i'm out
18:57:39 <CakeProphet> okay.
18:58:15 <Taneb> Should we tell him?
18:58:21 <Taneb> Because this is rather fun to watch
18:58:29 <Phantom_Hoover> CakeProphet, it's basic grammar.
18:58:45 <oklopol> Taneb: we're TRYING to tell him.
18:59:02 <Taneb> Not. Hard. enough.
18:59:06 <oklopol> i hope kebab places haven't closed during my long procrastinirth :(
18:59:46 <CakeProphet> extent of... truth?
18:59:56 <Phantom_Hoover> CakeProphet, 17:32:54: <oklopol> so the irth form makes a verb into the event of that action ending
19:00:00 <Phantom_Hoover> What more do you want?
19:00:14 <Phantom_Hoover> Trirth is when you stop trying.
19:00:17 <CakeProphet> what is mirth the end of.
19:00:19 <oklopol> :D
19:00:35 <oklopol> mearing
19:00:36 <oklopol> sheesh
19:00:51 <CakeProphet> ...
19:01:35 <CakeProphet> me meo
19:02:03 <CakeProphet> er wait, mearme
19:02:08 <Taneb> Like, when you stop mearing, that's the mirth
19:02:23 <Phantom_Hoover> Smirth is when you stop smearing.
19:02:46 <Phantom_Hoover> Birth is when you stop being.
19:03:06 <CakeProphet> ....
19:03:07 <oklopol> oh i thought it was when you stop bearing
19:03:15 <Taneb> They named Perth that because they had gotten bored of building peirs
19:03:17 <oklopol> hmm
19:03:23 <elliott> Taneb: haha
19:03:24 <oklopol> wait
19:03:27 <elliott> not another fucking coastal city --Australians
19:03:31 <Taneb> brb, watching university challenge
19:03:32 <Phantom_Hoover> oklopol, that's bearth.
19:03:34 <oklopol> maybe i don't completely understand this yet.
19:03:35 <oklopol> ah.
19:03:36 <CakeProphet> no, that's stupid. that's not an actual thing.
19:03:59 <Phantom_Hoover> Taneb, tell us when watchirth.
19:04:29 <Phantom_Hoover> *you watchirth
19:04:48 <oklopol> wow i didn't even know they can be used as verbs too
19:04:56 <oklopol> well i guess we all learned something today then, right CakeProphet?
19:05:13 <Phantom_Hoover> oklopol, it's a tense too, although I forgive you because you're not a native speaker.
19:05:27 -!- asiekierka has quit (Remote host closed the connection).
19:06:03 <oklopol> get outta jail free card
19:06:11 <CakeProphet> oklopol: the human brain can grep all kinds of meanings for words? sure.
19:06:20 <elliott> CakeProphet: stop being an idio
19:06:21 <elliott> t
19:06:23 <elliott> it's not funny any more
19:06:31 <Phantom_Hoover> CakeProphet, birth an idiot.
19:06:51 <itidus20> lets not forget the fact that humans created all the meanings for words :D
19:06:53 <oklopol> CakeProphet: that's not a good definition of learning imo, but i guess you agree
19:07:23 <oklopol> oh so girth is the end of getting (fat?)
19:07:24 <itidus20> but then, language is beyond the control of any individual human
19:07:28 <oklopol> or going?
19:07:30 <CakeProphet> elliott: I'm not being an idiot.
19:07:30 <oklopol> argh
19:07:31 <oklopol> i suck
19:07:40 <CakeProphet> elliott: it was never a joke.
19:07:45 <quintopia> lets not forget that humans created all the meanings for maths
19:07:46 <elliott> oklopol: the end of getting is where the most common meaning of girth comes from, yes
19:07:50 <oklopol> okay
19:07:56 <elliott> oklopol: it's where the end of all the food you've got is, basically
19:08:01 <elliott> CakeProphet: go away
19:08:02 -!- Taneb has quit (Ping timeout: 260 seconds).
19:08:03 <oklopol> yep
19:08:11 <oklopol> quintopia: maths!
19:08:15 <quintopia> girth is another word for the diameter of a graph
19:08:24 <oklopol> hey i know what that is
19:08:50 <oklopol> did you know there are CA synchronization algorithms that work in linear time w.r.t. the girth of the given graph
19:09:08 <quintopia> no, i did not
19:09:18 <quintopia> please point me to the relevant papers
19:09:21 <oklopol> where by synchronization i mean the firing squad problem of making everything step into state f at the same time
19:09:23 <oklopol> i will
19:09:32 <itidus20> a human can create something.... but
19:09:53 <itidus20> it can take on a life of it's own as in the case of prometheus or frankenstein
19:10:09 <itidus20> i haven't heard the story of prometheus though
19:10:16 <quintopia> he stole fire
19:10:24 <itidus20> humm... lol..
19:10:30 <itidus20> ok leave him out
19:11:04 <quintopia> perhaps you meant that other dude
19:11:32 <quintopia> pygmalion
19:11:40 <itidus20> well frankenstein novel is called something like "the new prometheus" which i never knew what that meant. hahaha
19:11:54 <CakeProphet> elliott: I'm about to go get my tires changed. I'm going to ask the mechanic when the wirth is.
19:12:08 <itidus20> perhaps in the sense of how he rebels against his creators
19:12:14 <quintopia> probably
19:12:16 <elliott> CakeProphet: im not fucking interested
19:12:17 <elliott> shut up
19:12:48 <itidus20> but language too, once it has been cast.. it sets its own way
19:13:06 <CakeProphet> why so harsh?
19:13:55 <elliott> CakeProphet: because you're being an obvious troll
19:13:58 <elliott> and i don't give a shit
19:14:02 <CakeProphet> elliott: .....how?
19:14:19 <CakeProphet> I'm doing this thing called disgareeing, that's all.
19:14:21 <elliott> CakeProphet: HEY WHAT DOES "THE" MEAN
19:14:24 <CakeProphet> *disagreeing
19:14:46 <CakeProphet> the is the definite article, it specifies that the following noun is a specific instance rather than a general one.
19:15:06 <elliott> CakeProphet: IVE NEVER HEARD THA
19:15:06 <elliott> T
19:15:13 <elliott> IM GOING TO THE WHOREHOUSE AND IM GOING TO ASK WHETHER THEY KNOW WHAT "THE" MEANS
19:15:17 <elliott> SORRY [ASTERISK]A WOREHOUSE
19:15:22 <NihilistDandy> awesome
19:16:06 <CakeProphet> I'm sure they do, they just couldn't explain it in words.
19:16:10 <CakeProphet> can't say the same thing about wirth.
19:16:14 <CakeProphet> since, you know, I just made it up.
19:16:43 <NihilistDandy> 06:57:39: <elliott_> pikhq_: NihilistDandy: HAHAHAHAHA I AM TAKING YOUR BELOVED HASKELL HOSTAGE
19:16:46 <NihilistDandy> 06:57:46: <elliott_> WHEN I AM THROUGH WITH IT YOU WON'T HAVE ANY IDEA WHAT IT USED TO BE
19:16:49 <NihilistDandy> 06:58:02: <elliott_> I SHALL STRIKE INTROSPECTION THROUGH THE HEART OF THE THING!!!!!!!!!!!!!!!!!!!!!!!
19:16:52 <NihilistDandy> wut?
19:17:05 <oklopol> quintopia: i cannot find that one nice article on it :(
19:17:27 <elliott> NihilistDandy: Read on to find what I was doing/am doing.
19:17:29 <quintopia> aw well thx anyways
19:17:33 <elliott> CakeProphet: yeah I just made the up too
19:17:41 <elliott> stop whining about standard features of english just because they're not in the fucking oed
19:17:41 <elliott> god
19:17:43 <elliott> i hate people like you
19:17:58 <CakeProphet> elliott: woah...
19:18:10 <oklopol> http://www.springerlink.com/content/7054v778717w353p/ is probably a good but i haven't read it yet
19:18:15 <NihilistDandy> Modifying fields? Blasphemy! That's DATABASE TALK
19:18:21 <oklopol> this was a bit of a hobby of mine at some point
19:18:26 <elliott> NihilistDandy: non-destructively :P
19:18:42 <oklopol> we had this HORRIBLE paper on the synchronization problem for p systems (for which the problem is trivial)
19:18:46 <oklopol> and i got interested
19:18:49 <CakeProphet> elliott: no I just disagree that it's a standard feature of english.
19:18:52 <oklopol> in the non-trivial one for ca
19:19:05 <CakeProphet> since words ending in -irth are quite few and don't seem to bear any common relation to one another.
19:19:15 <NihilistDandy> People always ask me "Well, what if I need to implement a database in Haskell? WHERE IS YOUR GOD NOW?"
19:19:40 <NihilistDandy> And then I point out that making your own database is stupid, since SQLite did it better than they would
19:19:49 <CakeProphet> besides, what is a firth the end of?
19:19:59 <NihilistDandy> CakeProphet: Firth is the end of Forth
19:20:29 <CakeProphet> lol...
19:21:53 -!- Nisstyre has quit (Ping timeout: 240 seconds).
19:23:17 <CakeProphet> elliott: something I think you would enjoy: http://ifdb.tads.org/viewgame?id=w5s3sv43s3p98v45
19:23:27 -!- augur has quit (Ping timeout: 250 seconds).
19:23:40 <elliott> CakeProphet: why
19:23:57 <CakeProphet> Glauds! How rorm it would be to pell back to the bewl and distunk them, distunk the whole delcot, let the drokes uncren them.
19:25:57 <CakeProphet> elliott: because it's a puzzle game centered on invented features of the english language.
19:26:16 <elliott> I don't care about invented features of the english language
19:26:41 <CakeProphet> only the well-established universal ones, obviously.
19:27:00 <elliott> Please stop bothering me with your inane crap.
19:28:34 <NihilistDandy> That's not a dape I recognise.
19:29:10 <Phantom_Hoover> elliott, *botherirth
19:29:25 -!- Taneb has joined.
19:29:27 <elliott> Phantom_Hoover: Now THAT'S not standard usage :P
19:29:35 <Taneb> Watchirth has occured
19:29:44 <CakeProphet> I what both, hith, altogeth, fath are.
19:29:49 <CakeProphet> and what connection moth has to mother.
19:29:57 <CakeProphet> s/what/wonder what/
19:30:46 <Phantom_Hoover> Elliott hirth.
19:31:24 <CakeProphet> leath, feath, farth, furth, dith, and blath
19:33:48 <CakeProphet> Elliott HURD.
19:36:36 <CakeProphet> Elliot HURD of interfaces representing depth
19:38:12 <CakeProphet> > let hird = hurd ++ " of interfaces representing depth"; hurd = hird ++ " of Unix-replacing daemons" in hurd
19:38:16 <lambdabot> mueval-core: Time limit exceeded
19:45:10 <Phantom_Hoover> > let hird = hurd ++ " of interfaces representing depth"; hurd = hird ++ " of Unix-replacing daemons" in take 60 hurd
19:45:14 <lambdabot> mueval-core: Time limit exceeded
19:45:16 <Phantom_Hoover> Oh, duh.
19:50:50 <CakeProphet> heh
19:51:04 <CakeProphet> you could do it in reverse with :
19:52:15 <CakeProphet> "smomead gnicalper-xinU fo htped gnitneserper secafretni fo ...
19:52:35 <elliott> p-adic strings
19:52:47 <elliott> or something
19:52:52 <CakeProphet> how would that work?
19:54:22 <ais523> is a deamom a deamon's parent?
19:54:40 <CakeProphet> lol, yes.
19:54:51 <ais523> umm, daemom/daemon
19:57:03 <CakeProphet> :t ("I",("wonder",("if",("anyone",("has",("ever",("done",("this",()))))))))
19:57:04 <lambdabot> ([Char], ([Char], ([Char], ([Char], ([Char], ([Char], ([Char], ([Char], ()))))))))
19:57:37 <CakeProphet> explicitly typed fixed-length linked lists!
19:58:46 <Taneb> Linked tuples?
19:58:49 <elliott> CakeProphet: see HList
19:58:57 <elliott> it's an incredibly well-known technique.
19:59:01 <elliott> Oleg.
19:59:10 <elliott> http://homepages.cwi.nl/~ralf/HList/, http://homepages.cwi.nl/~ralf/HList/paper.pdf, http://hackage.haskell.org/package/HList
19:59:37 <elliott> <CakeProphet> explicitly typed fixed-length linked lists!
19:59:44 <elliott> also, there are much better ways to do this than an hlist-style representation.
19:59:51 <elliott> hlist is all that and _heterogeneous_
20:03:18 <CakeProphet> data QuadList a b c d = a :* QuadList b c d a | Empty
20:04:35 <CakeProphet> QuadList is more sophisticated
20:05:26 <elliott> QuadList solves a completely different problem.
20:05:30 <elliott> and is not appropriate for HList's main use cases.
20:06:34 <CakeProphet> baby murder? yeah, probably.
20:07:18 <CakeProphet> why else would it have so many typeclasses.
20:08:19 -!- FireFly has joined.
20:08:44 <elliott> Just read the paper.
20:08:46 <CakeProphet> okay so a NonEmptyList would be [a] = a : [a] | Last a right?
20:09:04 <elliott> data NonEmpty a = a :| [a] is the representation used by the commonly-used packages.
20:09:16 <CakeProphet> ah so it has to be infinite.
20:09:26 <CakeProphet> that, uh, makes sense.
20:09:26 <ais523> and :| is an operator for constructing the first elemnt of a nonempty list?
20:09:38 <elliott> CakeProphet: What?
20:09:47 <elliott> ais523: it's a constructor
20:10:01 <ais523> ah, right
20:10:02 <CakeProphet> elliott: oh I misread.
20:10:05 <ais523> it's a constructor that looks like an operator
20:10:10 <ais523> and infixes like one
20:10:15 <elliott> ais523: it _is_ an operator
20:10:18 <elliott> it's also a constructor
20:10:37 <elliott> ais523: it starts with : because, you know how constructors have to start with uppercase letters?
20:10:40 <elliott> : is the only uppercase /symbol/
20:10:47 <ais523> ah, aha
20:10:59 <CakeProphet> oh ho ho ho ho ho how clever Haskell 98
20:11:04 <elliott> two thousand and ten now
20:11:55 <CakeProphet> >_>
20:20:36 -!- augur_ has joined.
20:21:51 -!- CakeProphet has quit (Ping timeout: 252 seconds).
20:22:46 -!- CakeProphet has joined.
20:22:46 -!- CakeProphet has quit (Changing host).
20:22:46 -!- CakeProphet has joined.
20:27:40 -!- CakeProphet has quit (Ping timeout: 264 seconds).
20:31:20 -!- cheater has joined.
20:33:42 -!- GreaseMonkey has joined.
20:33:42 -!- GreaseMonkey has quit (Changing host).
20:33:42 -!- GreaseMonkey has joined.
20:34:00 -!- boily has quit (Ping timeout: 276 seconds).
20:38:11 <elliott> ais523: I just signed up for a free copy of that book that's on reddit so I can point at every page and say "that sucks, scapegoat does it better".
20:38:24 <ais523> heh
20:39:00 <elliott> (http://book.sourcegear.com/vcbe/request_book, if anyone is interested, but I suspect the offer will end fairly soon)
20:39:55 <elliott> hmm, apparently it was on Hacker News last week, but that's a much smaller crowd
20:40:02 <ais523> well, it's possible that some VCSes will do the same as Scapegoat in some situations
20:40:20 <fizzie> Interesting choices in the form.
20:40:41 <elliott> it seems to cover a VCS made by the company offering it, so it's obviously partially a marketing tool
20:40:42 <NihilistDandy> What the shit is Veracity?
20:40:48 <elliott> NihilistDandy: see line above
20:40:56 <NihilistDandy> Ah, that
20:41:16 <elliott> but oh well, it might be interesting
20:41:28 <elliott> http://www.ericsink.com/entries/vcbe_print_edition_free.html seems to justify it as something more than pure marketing, at least
20:41:40 <elliott> especially since it's available in ebook format for free
20:42:37 -!- monqy has joined.
20:42:46 <NihilistDandy> Indeed
20:43:08 <fizzie> I once requested the Z80 CPU datasheets from Zilog, and they mailed those all the way to Finland for free. It was a heartwarming gesture. Especially since I didn't really-really need those for anything. (Half of the book is just timing diagrams.)
20:43:09 <NihilistDandy> http://veracity-scm.com/qa
20:43:11 <NihilistDandy> Wut
20:43:11 <Gregor> Wait, wtf, it's a practical usage book?
20:43:19 <Gregor> I thought it would be an architecture book.
20:43:21 <Gregor> Lame.
20:43:36 <elliott> Gregor: So what, it's free :-)
20:43:51 <elliott> I'm mostly getting it because "hey, I can" and because I like to support non-traditional business models revolving around scarce resources.
20:44:00 <Gregor> elliott: Yeah, I can also read P.G. Wodehouse's Jeeves books for free (the ones currently sitting on my DR800), only they're not terrible :P
20:44:08 <elliott> Gregor: They're not made out of paper
20:44:14 <Gregor> elliott: Paper is obsolete.
20:44:18 <elliott> Gregor: But http://www.ericsink.com/vcbe/vcbe_usletter_lo.pdf :-P
20:44:21 <elliott> And sure
20:44:24 <elliott> But people are still selling it
20:44:37 <Gregor> I ain't buying it!
20:44:54 <elliott> And if you fill out that form you still wouldn't be buying it :P
20:45:07 <elliott> Oh no, the guy from The Daily WTF likes it. And a Subversion developer.
20:45:09 <elliott> MAYBE IT IS TERRIBLE
20:45:13 <elliott> AND TWO OTHER SUBVERSION DEVELOPERS
20:45:15 <elliott> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
20:45:41 <NihilistDandy> The cover's not even very good, and I'll bet it's printed on shitty paper
20:45:43 <NihilistDandy> ALSO
20:45:55 <NihilistDandy> Do you remember that Books LLC situation?
20:46:01 <Gregor> Also this umbrella works wonders for murdering!
20:46:04 <NihilistDandy> Then again, maybe that was in some other channel
20:46:46 <elliott> NihilistDandy: What of it
20:46:53 <elliott> Oh
20:46:54 <NihilistDandy> I found a book from them
20:46:54 <elliott> That thing
20:46:56 <elliott> Heh
20:46:58 <NihilistDandy> In a bookstore
20:47:03 <NihilistDandy> O_O
20:47:16 <elliott> :D
20:47:19 <elliott> In 2009, Books LLC and its sister imprint General Books LLC produced respectively 224,460 and 11,887 titles.[12][13]
20:47:19 <NihilistDandy> That image is not a computer generated stand-in
20:47:22 <NihilistDandy> That's what they look like
20:47:29 <elliott> NihilistDandy: You bought it right
20:47:31 <elliott> PLEASE tell me you bought it
20:47:33 <NihilistDandy> And it really is just copied data from Wikipedia
20:47:36 <elliott> PLEASE tell me you bought it
20:47:41 <NihilistDandy> How could I not? It cost a dollar
20:51:05 <cheater> what book was it
20:52:36 <Gregor> So ... what of Books LLC?
20:52:39 <Gregor> What is it? Who cares?
20:53:03 <elliott> Gregor: They reprint Wikipedia automatically.
20:53:03 <pikhq> Hmm. That's utterly surprising. Magic Set Editor actually builds and runs without patching.
20:53:05 <elliott> Gregor: It's AMAZING.
20:53:09 <elliott> Gregor: They have a book on esolangs.
20:53:20 <elliott> Sgeo: Do you still have a link
20:53:22 <elliott> It was amazing
20:53:24 <Gregor> elliott: OK ... so does PediaPress ...
20:53:34 <elliott> Gregor: OK look you know how your fly-by-wire service are hilarious.
20:53:37 <elliott> Books LLC is hilarious for the same reason.
20:53:38 <Gregor> Oh, automatically as in they just grab interrelated pages?
20:53:38 <Sgeo> elliott, hold on
20:53:41 <elliott> Gregor: Yep
20:53:44 <Gregor> Ahhhhhhh
20:53:49 <Sgeo> http://www.barnesandnoble.com/w/esoteric-programming-languages-books-llc/1022380853?ean=9781155349770&itm=1&usri=brainfuck
20:53:49 <elliott> Gregor: So they have THOUSANDS AND THOUSANDS of books :P
20:53:49 <Gregor> That's more automatic than I expected :P
20:53:58 <elliott> Look at the one Sgeo linked it's amazing.
20:54:07 <elliott> Esoteric Programming Language is apparently a language.
20:54:12 <elliott> And LITERAL BEST COVER.
20:54:12 <Gregor> Best - title - ever
20:54:47 <elliott> "Purchase includes free access to book updates online and a free trial membership in the publisher's book club where you can select from more than a million books without charge."
20:54:51 <elliott> BEST CLUB
20:55:11 -!- kierra has joined.
20:55:26 <Gregor> lol, even the description is clearly automatic.
20:55:28 <Gregor> That's brilliance.
20:55:32 <Monster> :)
20:55:45 <Gregor> And people who bought it also bought The Great Gatspy, 1984 and Lord of the Flies.
20:55:46 <cheater> did anyone of you buy it
20:55:50 <Gregor> *Gatsby
20:56:36 <elliott> It's an ebook, so no
20:56:40 <elliott> Or hmm
20:56:40 <elliott> is it
20:56:53 <elliott> Wow it isn't
20:56:54 <cheater> no i think you can probably paper it
20:57:00 <cheater> you need that on your bookshelf
20:57:04 <elliott> Gregor: Ye of disposable income, go buy it
20:57:05 <elliott> Take pics
20:57:06 <Gregor> No, it's not; if it was any ebook, I'd almost 1/10th consider it :P
20:57:12 <Gregor> s/any/an/
20:57:19 <Gregor> I did buy the PediaPress book on compiler construction.
20:57:20 <Taneb> 6
20:57:20 <cheater> i wonder what the back looks like
20:57:42 <Sgeo> NihilistDandy, what does the back look lilee?
20:57:43 <Sgeo> like
20:57:51 <cheater> Paperback
20:57:51 <cheater> $19.79
20:57:51 <cheater> $20.59 List Price
20:57:51 <cheater> (Save 3%)
20:57:52 <elliott> Gregor: Oh come on, it's even discounted.
20:57:57 <cheater> you save 3% Gregor
20:57:58 <elliott> Gregor: It's available USED for ten dollars.
20:58:00 <cheater> how can you say no to that
20:58:12 <cheater> 3% is like..
20:58:18 <cheater> at least 5 free wikipedia articles
20:58:22 <NihilistDandy> Sgeo: Same as the front, but with no words
20:58:41 <cheater> NihilistDandy, what about the uh... the bind?
20:58:50 <cheater> is it right or left oriented
20:59:03 <cheater> or is it, awesomely enough, HORIZONTAL
20:59:19 <NihilistDandy> It's bound just like a normal English book
20:59:35 <NihilistDandy> It's a description of the works of this man: http://en.wikipedia.org/wiki/Michael_Frayn
20:59:41 <Sgeo> I think what cheater is asking is if there's writing on it
20:59:49 <NihilistDandy> And the very first page contains an unparsed wikipedia link
21:00:00 <Sgeo> And if so, which way must the book be turned to read it rightside-up
21:00:01 <cheater> hahaha
21:00:05 <cheater> does it.
21:00:08 <NihilistDandy> There's righting on the front
21:00:12 <NihilistDandy> *writing
21:00:13 <NihilistDandy> Jesus
21:00:16 <Taneb> ...John Lewis jobs let you give a birth year of 2021
21:00:22 <cheater> Sgeo, no you define that by which way the head must be tilted
21:00:23 <Sgeo> NihilistDandy, on the spine
21:00:27 <cheater> right-side is tilt your head right
21:00:32 <cheater> left-side is tilt your head left
21:01:18 <elliott> Comments from the Seller: Used book. *****PLEASE NOTE: This item is shipping from an authorized seller in Europe as part of a service brought to you by EuroBooks. To learn more about this service see the BookQuest Help section.*****
21:01:29 <NihilistDandy> Sgeo: No spine on which to write, really
21:01:45 <NihilistDandy> It's a very slim volume
21:02:46 <NihilistDandy> And the typesetting makes it look like TeX was involved
21:03:42 <Sgeo> Does it have a copy of CC-BY-SA?
21:03:47 -!- kierra has left.
21:03:58 <elliott> bye keruareia
21:04:54 <NihilistDandy> Sgeo: Sort of. There's a blurb at the front of the book, but I don't see the symbols or the standard description
21:05:09 <NihilistDandy> Just like "Welp, we didn't do this, really, but here it is."
21:05:38 * Sgeo is curious as to its exact text
21:05:59 <elliott> Yeah obviously he's going to type out every word of it :P
21:06:12 <NihilistDandy> I'll see if I can do some scans later
21:06:29 <NihilistDandy> I just got my housing sorted out, so I'm sort of paperworking
21:07:33 <Sgeo> Oh, no need to include full CC-BY-SA with it
21:07:50 -!- BeholdMyGlory has joined.
21:09:11 <cheater> i wonder if they're a business of more than 1 person
21:09:53 <NihilistDandy> I wonder if they're a business of more than 0 people
21:15:41 <NihilistDandy> http://i.imgur.com/YVcru.jpg
21:15:46 <NihilistDandy> http://uploads.neatorama.com/wp-content/uploads/2011/03/stuffedlion.jpg
21:19:43 <MDude> I don't know who you're taling about, though there could be a buisiness of 0 people.
21:20:06 <elliott> Books LLC.
21:21:30 <NihilistDandy> culturoritual
21:21:37 <NihilistDandy> Is perhaps the ugliest word in English
21:21:55 <Taneb> frigidarium
21:22:05 <NihilistDandy> That just sounds steampunky and awesome
21:22:10 <Taneb> It's latin.
21:22:20 <Taneb> And means a room with a cold swimming pool
21:22:20 <NihilistDandy> Latin == steampunk
21:22:24 <NihilistDandy> I know what it means
21:22:40 <elliott> Steampunk: The worst???????????????????????
21:22:40 <cheater> it means
21:22:43 <cheater> DACHGESCHOSS
21:22:45 <Taneb> But do you know what vomitarium means?
21:22:53 <elliott> Yes and I wish I didn't
21:23:00 <Taneb> Then you're probably wrong
21:23:04 <elliott> It was a joke.
21:23:05 <NihilistDandy> Taneb: Yes.
21:23:11 <elliott> I'm sickened by people leaving.
21:23:17 <NihilistDandy> Exeunt omnes.
21:23:35 <NihilistDandy> Speaking of, I have to run to the grocery store.
21:23:38 * NihilistDandy vomits.
21:23:47 <Taneb> oikia?
21:23:57 <cheater> Taneb, it's vomitorium by the way.
21:24:24 <NihilistDandy> Taneb: Greek doesn't count
21:24:50 <Taneb> But you all know latin!
21:25:02 <Taneb> ...carceres?
21:25:28 <Taneb> Both meanings please
21:25:35 -!- ais523 has quit (Remote host closed the connection).
21:25:51 <cheater> crib, and jail
21:26:02 <Taneb> WRONG AND WRONG.
21:26:11 <Taneb> ALSO I DIDN'T KNOW THE FIRST ONE
21:26:26 <Taneb> I was thinking jails, and things that horses are in at the start of a race
21:26:28 <cheater> carcero. to imprison
21:26:31 <Taneb> It's plural
21:26:41 <Taneb> From carcer
21:27:49 <cheater> there is no proper functional plural of jail
21:28:05 <cheater> you will never see anyone talk about jails (as in the building)
21:28:15 <Taneb> There are two jails near Durham.
21:28:17 -!- elliott has quit (Read error: Connection reset by peer).
21:28:19 -!- elliott_ has joined.
21:28:26 <cheater> you're no-one
21:28:27 <cheater> :p
21:28:33 <Taneb> :P
21:28:48 <cheater> 10proven by conjecture.
21:28:52 <cheater> s/10//
21:29:37 <Taneb> `addquote <cheater> you will never see anyone talk about jails (as in the building) <Taneb> There are two jails near Durham. <cheater> you're no-one
21:29:39 <HackEgo> 594) <cheater> you will never see anyone talk about jails (as in the building) <Taneb> There are two jails near Durham. <cheater> you're no-one
21:32:50 <NihilistDandy> Egotist
21:32:57 <NihilistDandy> :P
21:33:06 <Taneb> cheater said the funny bits
21:33:22 <cheater> it's all my fault
21:33:30 <Taneb> In fact, by recording this, I am being rather self-derogitary
21:35:45 <cheater> http://www.barnesandnoble.com/w/functional-programming-books-llc/1023484757
21:36:21 <Vorpal> that is one long title
21:36:22 <Phantom_Hoover> *derogatory
21:39:52 <augur_> oklopol! :D
21:40:34 -!- augur_ has changed nick to augur.
21:44:24 -!- GreaseMonkey has quit (Quit: The Other Game).
21:45:44 <oklopol> "<MDude> I don't know who you're taling about, though there could be a buisiness of 0 people." <<< an association can join another one, and we soon have multiple associations so you know what that means...
21:47:04 -!- zzo38 has joined.
21:47:10 <NihilistDandy> brb
21:47:12 <oklopol> augur!
21:48:17 <augur> sup pretty boy
21:49:36 <oklopol> well u know mathin it up
21:49:46 <oklopol> i started running and smoking
21:50:42 <oklopol> i love my lungs the way they are so trying to balance them out
21:50:53 <elliott_> `addquote <oklopol> i started running and smoking <oklopol> i love my lungs the way they are so trying to balance them out
21:50:55 <HackEgo> 594) <oklopol> i started running and smoking <oklopol> i love my lungs the way they are so trying to balance them out
21:51:58 <oklopol> i worked for like 3 hours today, but since i solved all our problems i figured i'll just leave work and go fuck around
21:52:15 <oklopol> weird but
21:52:17 <oklopol> but anyway
21:53:24 <oklopol> i just wish cigarettes would taste more like chocolate
21:53:55 <oklopol> i mean don't get me wrong i love the taste, who wouldn't
21:54:14 <oklopol> the kebab place was closed and i'm so hungry
21:54:25 <Taneb> Put things on sticks.
21:54:25 <oklopol> it was raining outside just now but not anymore :(
21:54:28 <Taneb> And grill them
21:54:30 <oklopol> maybe i should play some guitar
21:54:46 <oklopol> well i have sticks and meatballs
21:54:55 <oklopol> but anyway stop using your crazy definition of kebab
21:55:51 <oklopol> i have some noodles so i figured, i'll have a smoke, then go make some noodz, then run a bit, then sleep a bit, then do math till i drop
21:56:12 <oklopol> wow it's 1am
21:56:17 <oklopol> why
21:56:18 <elliott_> hi oklopol
21:56:23 <oklopol> hi elliott_ :D
21:56:27 <oklopol> :d\
21:56:41 <oklopol> i'm sooooooo untired right now
21:56:44 <oklopol> is there a word for that
21:56:48 <elliott_> awake
21:56:50 <oklopol> no
21:57:04 <oklopol> tirirth?
21:57:07 <Deewiant> Perky
21:57:08 <elliott_> Or that, yes.
21:57:15 <elliott_> Deewiant: Tirirth is better.
21:57:30 <Taneb> Sounds like it should be prefixed with Minars
21:58:28 <oklopol> prefixing minors is illegal
21:58:34 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
21:58:51 -!- FireFly has quit (Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.).
21:59:21 <oklopol> that virus is so cute :>
21:59:31 <oklopol> awwwwwwwwwwwwwwwwwwwww
21:59:36 <oklopol> fuck what's wrong with me
21:59:42 <oklopol> :DSa
21:59:42 <oklopol> ->
22:02:08 <elliott_> `addquote <Phantom_Hoover> I didn't realise nickel apparently can't be shaped into a screw because of some fundamental feature of dwarven physics.
22:02:09 <HackEgo> 595) <Phantom_Hoover> I didn't realise nickel apparently can't be shaped into a screw because of some fundamental feature of dwarven physics.
22:03:10 <augur> oklopol: mathin
22:03:13 <augur> yeah mathin
22:03:26 <augur> im doing math :o
22:03:44 <Phantom_Hoover> oklopol, here, have some cute viruses: http://www.giantmicrobes.com/
22:06:59 <Gregor> Hmmm, jury duty qualification forms ...
22:07:11 <Gregor> As I recall, it is my duty as a US citizen to avoid at all costs ever serving on a jury.
22:07:55 <augur> Gregor: unless you're aware of jury nullification
22:08:05 <augur> in which case its your duty to serve on it
22:08:23 <augur> but if you ever mention that you're aware of jury nullification, you will not be allowed to serve
22:09:02 <Gregor> lol
22:09:18 <cheater> what was that plugin that did like 1st 2nd 3rd
22:09:23 <cheater> but not correctly
22:09:37 <cheater> @nth
22:09:38 <lambdabot> Maybe you meant: ft thx
22:09:44 <cheater> hm no.
22:10:48 <elliott_> augur: How is it legal to deny people to serve based on that
22:10:50 <oklopol> "<augur> im doing math :o" <<< mm math
22:10:55 <elliott_> (I'm sure it is, I'm just wondering how they do it)
22:11:21 <augur> elliott_: voir dire
22:11:37 <elliott_> augur: idgi
22:11:53 <cheater> preflex is not here
22:11:55 <augur> prior to serving on a jury the defense attorney and the prosecutor get to interview potential jury members and kick out whoever they like
22:11:55 <cheater> argh.
22:12:07 <elliott_> augur: Oh
22:12:23 <elliott_> augur: Surely defence attorneys would want people who know of jury nullification
22:12:31 <augur> yes, but prosecutors dont
22:12:48 <augur> this is also one reason why academics and other far left liberals generally dont get through
22:13:04 <augur> i imagine libertarians dont get through for certain sorts of cases too
22:13:10 <augur> at least if anyone is open about this sort of thing
22:13:45 <elliott_> augur: It seems ... rather unfair to let _one_ of them unilaterally remove people
22:13:54 <elliott_> With agreement I could understand
22:14:07 <augur> elliott_: welcome to the american court system!
22:14:08 <elliott_> Well I can't complain about libertarians getting removed :P
22:14:17 <elliott_> <-- SO EQUAL
22:14:22 <elliott_> ELLIOTT FAIR N BALANCED
22:14:48 <augur> elliott_: well, dont forget, libertarians would abolish all drug laws
22:15:04 <elliott_> Among other things
22:15:05 <augur> which is a problem for the majority of court cases in the us
22:15:44 <augur> http://en.wikipedia.org/wiki/Peremptory_challenge
22:15:50 <elliott_> I like how everyone supports Ron Paul based on what basically amounts to "Let's ban things at the _state_ level instead"
22:16:38 -!- Nisstyre has joined.
22:16:42 <augur> elliott_: :p
22:16:50 <augur> well, to some degree thats a great idea, right
22:16:55 <augur> except it needs to go further
22:17:30 <augur> however keep in mind, some of our states are as big as countries
22:17:33 <augur> many are, infact
22:17:43 <elliott_> Yeah, but I mean, anyone who seriously thinks Ron Paul wants to keep drugs legal or whatever is delusional
22:17:55 <augur> well ofcourse he probably doesnt
22:17:59 <augur> who knows
22:18:11 <augur> he says hes a libertarian, and they generally do, since they dont want the states to do that shit either
22:18:16 <augur> at least their platform is that
22:18:26 <augur> but theres probably a reason why hes not running in the libertarian party
22:18:40 <Taneb> Ban things on a personal level? That far enough?
22:18:56 <elliott_> The combination of anti-abortion conservative Christian + "STATE LEVEL STATE LEVEL" make me rather suspicious that he wants to turn the country into an Ayn Randian "paradise"
22:19:02 <augur> Taneb: yeah man
22:19:09 <augur> but no i mean
22:19:29 <oklopol> if i could make it illegal for myself to smoke, i might
22:19:40 <augur> oklopol: smoke hookah!
22:19:59 <augur> its way better than cigarettes
22:20:01 <augur> i mean, tastier
22:20:02 <augur> not healthier
22:20:12 <oklopol> do you mean have sex with hookers?
22:20:17 <augur> no
22:20:18 <oklopol> we don't really have hookers
22:20:26 <augur> you just have swedish women?
22:20:35 <Sgeo> How is "anti-abortion conservative Christian" have anything to do with Randianism?
22:20:38 <Sgeo> s/is/does/
22:20:49 <augur> Sgeo: it doesnt
22:20:53 <oklopol> augur: what?
22:20:59 <augur> which is why elliott_ is skeptical of paul's libertarianism
22:21:07 <augur> oklopol: satw has a running joke about finns and swedes
22:21:23 <oklopol> i don't really read it, what is the joke
22:21:34 <augur> and how finnish guys love to get fucked up the ass by busty swedish women in strapons
22:21:58 <Taneb> Ooh.
22:22:04 <oklopol> well who wouldn't love that, point is you can't really find people who do that for money
22:22:07 <Taneb> I was thinking of Cyanide and Happiness
22:22:09 <augur> but are in a sad D/S situation where sister sweden forces brother finland to say he loves her
22:22:11 <augur> in swedish
22:22:19 <augur> because he knows swedish but is ashamed to
22:22:23 <zzo38> Last night I had some dream, I remember much of it.
22:22:23 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
22:22:27 <Taneb> Denmark was funnier
22:22:30 <augur> oklopol: well thats what boys are for :)
22:22:36 <augur> Taneb: denmark is a total hotty
22:22:45 <augur> the bridges comic is great
22:23:12 <zzo38> [I turned off messages, didn't I?]
22:23:14 <oklopol> well if i wanted gay sex, i could easily get it without paying
22:23:24 <monqy> I had a dream last night too
22:23:25 <augur> oklopol: :x
22:23:30 <augur> you should do so then!
22:23:34 <zzo38> We went into some museum.
22:23:34 <elliott_> zzo38: You can't turn off lambdabot messages
22:23:34 <oklopol> i'm sure i should
22:23:35 <elliott_> AFAIK
22:23:36 <augur> and tape it, cause, you know
22:23:51 <oklopol> for science
22:24:04 <augur> no just for me
22:24:11 <oklopol> for science and augur
22:24:37 * Sgeo wants a translation for SATW's "Not English""
22:24:40 <monqy> my sisters were doing some recycling education thing and I had to help, and in one part there were these inflatable plastic cans, some of them fully inflated, some partially so and crumpled, some of them fully deflated and straightened nicely. Anyway, we had to put them in this bin, but for some reason I really wanted to eat them, and I ended up picking them up with my mouth and chewing on some of them a bit
22:25:36 <oklopol> makes sense
22:25:40 <zzo38> There was many things in this museum, including some monsters and stuff. Finally one floor there is an office, it has one foreign person and one monster each working on a computer in a small office (too small for anyone to work). Fianlly they said they are foreigner and said some things which are similar to stuff I myself said a long time ago.
22:26:23 <elliott_> What. Google. What. Why did you just buy Motorola. What.
22:26:39 <Taneb> So... Google owns my phone?
22:26:47 <augur> monqy: ..
22:26:50 <augur> you're a bit autistic
22:26:53 <elliott_> Oh, looks like they bought it for patents.
22:26:57 <zzo38> After they said a bunch of stuff, I thought the museum administration (not anyone currently in view) was going to hit me for it, so I try to run away. I found the public washrooms hallway. There are three branches: the men washroom, the woman washroom, and the third hallway which is probably some maintenance hallway.
22:27:00 <augur> elliott_: google bought motorola huh
22:27:07 <coppro> intends to buy
22:27:10 <augur> ahh
22:27:12 <coppro> has to be approved
22:27:14 <elliott_> monqy is "a bit autistic"?
22:27:15 <monqy> augur: dream me has problems
22:27:15 <augur> well its for android ofcourse
22:27:20 <elliott_> Oh
22:27:23 <elliott_> dream monqy is just insane, not autistic
22:27:25 <augur> monqy: oh it was a dreak?
22:27:32 <monqy> yes it was a dream
22:27:38 <augur> oh i see
22:27:45 <elliott_> that'd just be pica not autism
22:27:51 <elliott_> i think.............
22:27:52 <augur> there was a bit of text between the statement "i had a dream"
22:27:56 <augur> and "im autistic"
22:28:30 <oklopol> i put things in my mouth all the time
22:28:35 <elliott_> only autistic people have dreams PASS IT ON....
22:28:44 <oklopol> not saying i'm not a bit autistic
22:29:09 <zzo38> The men's washroom hallway had two public washrooms, each Egyptian themed and each had many sinks, toilet stalls, etc. The first one was no good, so afterward the museum was closed and it was dark but I managed to find the other one anyways and enter. At the entrance was some computers saying to enter things on them. I only partially entered data on the first and then found the toilet.
22:29:43 <augur> oklopol: do you now...
22:29:56 <oklopol> know or now?
22:29:59 <augur> now
22:30:00 <oklopol> oh
22:30:08 <oklopol> about the mouth thing
22:30:16 <augur> :D
22:30:35 <oklopol> sorry i was so fascinated about zzo38's story i forgot what i said
22:30:52 <zzo38> There was a sign saying something like, line them up so that the sign on the wall and the door are parallel. I managed to do so. After exit, I found a secret door was now open. I have found one of the two secret islands for this museum. It was daytime now and one of the three people who I went to the museum with met me there even though they themself could not find this secret island!
22:30:55 <oklopol> well yeah i stick stuff there all the time
22:31:11 <augur> zzo38: i think ive been to this club
22:31:25 <augur> when you got into the bathroom, did the stalls have holes in the walls?
22:31:33 <zzo38> augur: No.
22:31:37 <augur> oh
22:31:45 <zzo38> Anyways it is a dream not a real bathroom
22:31:49 <augur> your dream club sucks then
22:32:14 -!- PatashuWarg has joined.
22:32:17 <zzo38> Actually, I don't quite remember. Maybe one of the stalls does have a hole.
22:32:44 <oklopol> oh the glory
22:32:50 <zzo38> (Not the one I was in, unless it was the one covered by the sign)
22:34:11 <oklopol> augur: so do you think you've been to a club more times than a club has been to you?
22:34:26 <augur> oklopol: probably!
22:34:32 <augur> ive been to a club once in my life, i think
22:35:04 <oklopol> you did get that the club is a penis right?
22:35:18 <zzo38> Rating. How much do you think the stuff I described makes any sense to you?
22:35:34 <oklopol> it was pretty sensible
22:35:36 <augur> who calls a cock a club
22:35:39 <augur> thats absurd
22:35:42 <augur> thatd be horrible
22:35:56 <augur> it'd be a big knob on the end that gets narrow toward the base
22:35:59 <oklopol> augur: someone who needs to find a word that means both a dick and a club
22:36:01 <augur> horrible cock
22:36:19 <zzo38> oklopol: In what language?
22:36:24 <oklopol> zzo38: english
22:36:34 <zzo38> Is there such words in English?
22:36:39 <oklopol> see i was making a gay joke because augur is a *whispers* homo
22:36:44 <Taneb> In old English there was
22:36:45 <coppro> oklopol: nightstick
22:36:52 <oklopol> huh
22:36:59 <augur> oklopol: nightstick doesnt mean club tho
22:37:02 <augur> not as in dance club
22:37:10 <augur> thats what hes looking for
22:37:13 <oklopol> oh was kind of wondering
22:37:16 -!- Monster has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org).
22:37:18 <augur> discoteque ~ penis
22:37:40 <oklopol> i think club is the best possible choice
22:37:55 -!- oerjan has joined.
22:38:09 <oklopol> you're just sour because you didn't get it. get it, "get it"? no you don't.
22:38:09 <augur> its horrible nonetheless
22:38:21 <augur> :(
22:38:23 <augur> meany
22:38:25 <oklopol> i am
22:38:40 <oklopol> i won't even let you join my club
22:38:47 <oerjan> hi oklopol
22:38:51 <oklopol> hi oerjan
22:39:13 <oklopol> wanna hear about limit sets
22:39:17 <oklopol> j/k
22:39:31 <augur> oklopol: limits of diagrams are better!
22:39:36 <zzo38> I could have gone through the maintenance hallway but I decided to go to the toilet instead, I could hide in the stall where the people doing maintenance will not see
22:39:43 <oklopol> i'm not smart enough for category theory
22:39:55 <augur> category theory is like magic :(
22:39:58 <oklopol> yes
22:40:00 -!- pikhq_ has joined.
22:40:10 -!- pikhq has quit (Ping timeout: 250 seconds).
22:40:17 <augur> i only recently understood why a monad is a monoid in the category of endofunctors
22:40:19 <zzo38> oklopol: I don't know a lot either but I did find something in Wikibooks, about relating Haskell to category theory. You can try to read that.
22:40:33 -!- Vorpal has joined.
22:40:39 <zzo38> Such document did help a bit
22:40:43 <zzo38> To me
22:40:49 <augur> zzo38: no you really didnt. most of the wikibook is like the first five pages of a CT book :\
22:41:21 <augur> theres so much to fundamental CT that isnt even remotely covered in the wikibook
22:41:32 <oklopol> well duh
22:41:41 <oklopol> it's a wikibook
22:41:42 <augur> its actually a pain in the ass because some of it probably could be covered really easily
22:41:52 <oklopol> yeah if you're smart
22:41:53 <elliott_> all wikibooks suck
22:42:02 <augur> natural transformations and adjunctions, for instance
22:42:04 <zzo38> Is is this one: http://en.wikibooks.org/wiki/Haskell/Category_theory Yes it is true there is things not covered there but it says in the summary that they omitted some things
22:42:06 <oklopol> if you're dum like me you have to just give up
22:42:15 <elliott_> the haskell one is... ok, but lyah/rwt are better
22:42:25 <augur> look at that!
22:42:30 <Phantom_Hoover> zzo38, here, have a perfectly good introduction to category theory:
22:42:30 <augur> it goes straight from functors to monads!
22:42:32 <augur> thats crazy!
22:42:35 <Phantom_Hoover> == INTRODUCTION ==
22:42:41 <Phantom_Hoover> I omitted some things.
22:42:42 <augur> you need natural transformations before monads
22:42:46 <Phantom_Hoover> == END ==
22:42:49 <elliott_> augur: That's not an introduction to category theory
22:42:52 <elliott_> That's a chapter in the Haskell book
22:42:52 <augur> and then categories of functors
22:42:58 <augur> elliott_: no, true, but still
22:43:04 <elliott_> augur: So it'll be trying to cover only that CT that Haskell uses
22:43:06 <augur> it'd be useful to understand the stuff!
22:43:09 <elliott_> As the first sentence says
22:43:16 <elliott_> http://en.wikibooks.org/wiki/Category_Theory is the actual wikibook on CT
22:43:19 <elliott_> It looks rather hilariously incomplete
22:43:35 <Taneb> augur: Maybe you should embrace the nature of wikibookss and add those chapters?
22:43:35 <Phantom_Hoover> http://www.giantmicrobes.com/uk/products/flu.html
22:43:37 <Phantom_Hoover> Awwwwwwwwwwwwwwwww
22:43:43 <augur> elliott_: haskell uses the relevant natural transformations you know
22:43:52 <elliott_> Taneb: "This sucks!" "IT'S A WIKI/OPEN SOURCE, DO IT YOURSELF"
22:43:54 <augur> or atleast can define one of them easily
22:43:59 <oklopol> "products"
22:44:05 <augur> return = eta, join = mu
22:44:07 <elliott_> Good advice if the person you're talking to is both an expert in everything, and has infinite time
22:44:08 <oklopol> ohh
22:44:08 <elliott_> And also motivation
22:44:13 <augur> Taneb: ive considered it
22:44:23 <elliott_> Phantom_Hoover: Awwwwwwww
22:44:29 <augur> but i dont know enough about adjunctions to really contribute
22:44:31 <oklopol> i love it :DSSA
22:44:40 <augur> but the natural transformation stuff perhaps!
22:46:25 <monqy> http://esoteric.voxelperfect.net/wiki/Triplet why does this exist
22:46:30 -!- CakeProphet has joined.
22:46:30 -!- CakeProphet has quit (Changing host).
22:46:30 -!- CakeProphet has joined.
22:46:37 <elliott_> monqy: because the world is imperfect
22:46:48 <Taneb> Because there are idiots
22:46:48 <monqy> why would anyone do that
22:46:48 <oerjan> <elliott_> augur: So it'll be trying to cover only that CT that Haskell uses <-- but you need natural transformations to properly understand parametricity. i think.
22:47:17 <oklopol> i think it's a great idea
22:47:17 <augur> oerjan: parametric polymorphism is basically natural transformations
22:47:18 <augur> afaict
22:47:30 <elliott_> augur: that is not what parametricity is.
22:47:51 <oklopol> surely it's natural transformations in some category
22:48:08 <augur> elliott_: depends on what you mean by parametricity
22:48:39 <elliott_> augur: "Parametricity" in the context of Haskell means exactly one thing
22:48:48 <zzo38> Phantom_Hoover: Actually the first year I went to anime convention they had one of the products from that company, I think the one representing AIDS, and they asked to take the photograph. Another thing is if you do science in your class related to such microbes you can put these things in your classroom too for decoration or something
22:48:52 -!- evincar has joined.
22:48:59 <augur> elliott_: oh?
22:49:07 <elliott_> augur: http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=parametricity
22:49:25 <augur> yes im well aware, elliott_
22:49:35 <elliott_> your statements implied otherwise
22:49:48 <augur> my statements are consistent with what you linked to :)
22:50:03 <oklopol> it's not what you said, it's how you said it
22:50:30 <augur> lol
22:50:40 <elliott_> augur: Parametric polymorphism is not the same thing.
22:50:43 <oerjan> <elliott> if a program spits out Hamlet, it's amazing, whether it has intelligence or not is irrelevant
22:50:47 <Vorpal> [ 1646.420270] [fglrx:firegl_cmmqs_BIOSControl] *ERROR* CMMQS BIOS Control: CMMQS handle is not valid.
22:50:47 <Vorpal> [ 1646.420273] [fglrx:firegl_bios_control] *ERROR* CMMQS BIOS Control is failed: firegl_bios_control
22:50:48 <oklopol> i'm too tired to nood but too hungry to sleap :(
22:50:48 <oerjan> yeah cat is amazing :P
22:50:50 <Vorpal> fuck catalyst
22:50:52 <augur> elliott_: its intimately related
22:50:56 <Vorpal> I bet a reboot will fix it
22:50:58 <elliott_> Parametricity is a result _about_ parametric polymorphism.
22:51:05 <augur> sure
22:51:11 <elliott_> But what you said was untrue.
22:51:13 <Vorpal> but I can't reboot atm. Since I'm dding a huge thing
22:51:15 <elliott_> oerjan: you've been beaten by ages
22:51:18 <augur> what i said was completely true.
22:51:22 <oerjan> :(
22:51:23 <oklopol> look at my cat, my cat is amazing
22:51:44 <oerjan> oklopol: shhh, don't encourage Gr*gor
22:51:48 <elliott_> Gregor
22:51:55 * oerjan swats elliott_ -----###
22:52:00 <oklopol> i don't get it
22:52:01 <Phantom_Hoover> oklopol, did you see the cute viruses.
22:52:05 <oklopol> who's this Gregor
22:52:10 <Gregor> oklopol: Give it a lick! Mmm, it tastes just like raisins!
22:52:11 <oklopol> Phantom_Hoover: i saw and i APPROVED
22:52:12 <Phantom_Hoover> He's a man who has a cat.
22:52:28 <oerjan> oklopol: some guy with a kitty
22:52:34 <monqy> :(
22:52:34 <oklopol> nh
22:52:57 <oklopol> but i love licking kittens
22:52:59 <Vorpal> Gregor, not chicken?
22:53:06 <Phantom_Hoover> http://www.giantmicrobes.com/uk/products/commoncold.html
22:53:09 <Phantom_Hoover> Awwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
22:53:20 <elliott_> Phantom_Hoover: The animation of that cold is disturbing.
22:53:23 <monqy> http://www.giantmicrobes.com/uk/files/images/productdetails/sniffles-box.jpg
22:53:31 <elliott_> The vinyl is scary but the plushes are cute.
22:53:34 <oklopol> the fluffy thing is sooooo awww :)
22:53:41 <elliott_> oklopol: That's the vinyl.........
22:53:44 <oerjan> <elliott> you think humans can perform a perfect turing test given a novel-sized output?
22:53:44 <elliott_> It is not fluffy..........
22:54:37 <oklopol> http://www.giantmicrobes.com/uk/files/images/productdetails/sniffles-box.jpg is not symmetric
22:54:54 <oerjan> no. but "by chance" will still make almost all of the novel look like gibberish.
22:54:57 <oklopol> it is not cute, but that i can handle
22:55:43 <elliott_> oh wait
22:55:47 <evincar> So, a poll.
22:55:49 <elliott_> <monqy> http://www.giantmicrobes.com/uk/files/images/productdetails/sniffles-box.jpg
22:55:49 <elliott_> <oklopol> the fluffy thing is sooooo awww :)
22:55:50 <elliott_> not same person
22:56:00 <evincar> If I might briefly detract from this enlightened conversation.
22:56:05 <oklopol> yeah that was not a response to monqy
22:56:14 <oklopol> what monqy linked was not symmetric
22:56:15 <elliott_> oerjan: fungot is more coherent than a letter-based dissociated press is more coherent than random letters is more coherent than random bytes.
22:56:15 <fungot> elliott_: it's the same as equal?
22:56:20 <elliott_> oerjan: ??? is more coherent than fungot is more ...
22:56:20 <fungot> elliott_: ( let's hope he doesn't get prostate fnord
22:56:23 <elliott_> oerjan: ??? is more coherent than ??? is more coherent than fungot is more ...
22:56:24 <fungot> elliott_: cast out into the land of donny and marie as promised in tv guide!
22:56:28 -!- CakeProphet has quit (Ping timeout: 264 seconds).
22:56:31 * oerjan lets the rest of the logs be
22:57:19 <oerjan> food ->
22:57:23 <monqy> ^style
22:57:23 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa speeches ss wp youtube
22:57:33 <oklopol> http://www.giantmicrobes.com/uk/products/diarrhea.html awwwwww :>
22:57:38 <evincar> So I'm making a little language for embedding. Currently the type system is limited to boolean, integer, float, string, object (list/dict), and lambda. Anything I should add or remove?
22:57:50 <elliott_> oklopol: now that's one thing I won't be buying
22:58:00 <elliott_> evincar: see my logs for responses to you wrt embedded languages (you made incorrect statements)
22:58:05 <elliott_> or i'll just paste i guess
22:58:25 <oklopol> the best part is it looks like poop
22:58:29 <elliott_> 18:40:26: <elliott> 04:32:22: <evincar> When it comes to games especially, your only choices for good pre-existing scripting languages are Lua and Python.
22:58:30 <elliott_> 18:40:36: <elliott> Squirrel is used extensively in the game industry and is designed for the purpose
22:58:31 <elliott_> oh that's all i said
22:58:35 <oklopol> it's IRONIC
22:58:42 <elliott_> but yeah there are tons more languages suitable for embedding than that
22:58:50 <oklopol> ironic poop.
22:58:51 <elliott_> and at least one expressly designed to meet the pseudo-real-time constraints of games
22:58:57 <elliott_> and widely used for the purpose
22:59:01 <evincar> I'll give you Squirrel.
22:59:16 <zzo38> I can see that the description of category theory says you can use unit,fmap,join or you can do return,(>>=) and you can convert from one way to the other way.
22:59:16 <evincar> That one just slipped my mind.
22:59:17 <elliott_> "It is used extensively by Code::Blocks for scripting and was also used in Final Fantasy Crystal Chronicles: My Life as a King[2] It is also used in Left 4 Dead 2 and Portal 2 for scripted events[3]."
22:59:36 <elliott_> it has tail recursion and generators and coroutines... so it's better than python already
22:59:48 <oklopol> ewww scripted events
23:00:02 <evincar> I'm just trying to make something minimal and useful.
23:00:05 <oklopol> i'd rather have diarrhea
23:00:13 <elliott_> evincar: make a scheme then
23:00:28 <evincar> Nah, it's been done.
23:00:42 <elliott_> what
23:00:49 <oklopol> yeah it was on the news
23:00:55 <monqy> make a brainfuck
23:00:55 <oklopol> some kiddo implemented scheme
23:01:00 <evincar> Prototypal OO is at least a reasonable balance.
23:01:20 <zzo38> For specifically MegaZeux, I use Robotic and Forth. For other game systems you need something different though
23:01:20 <elliott_> if by reasonable balance you mean shit then sure
23:01:24 <evincar> I mean, the thing'll have function composition &c, and is homoiconic.
23:01:37 <evincar> So you could add the fancy features that make Lisps so attractive.
23:01:58 <elliott_> you could add prototypical OO to scheme
23:01:59 <elliott_> in about
23:02:00 <elliott_> fifty lines
23:02:03 <elliott_> so i don't se ehow that' srelevant
23:02:06 <evincar> Less, I daresay.
23:02:14 <elliott_> and also scheme doesn't have function composition
23:02:17 <elliott_> in its stdlib
23:02:34 <evincar> So that's an advantage I'll have.
23:02:41 <monqy> im dead already
23:02:57 <oklopol> have a nice eternal sleep
23:03:07 <evincar> Essentially I just want something simple and useful that's trivial to integrate with other systems.
23:03:08 <oklopol> we'll keep on struggling a bit longer
23:03:14 <evincar> I don't really care about a beautiful design.
23:03:19 <elliott_> <evincar> So that's an advantage I'll have.
23:03:22 <elliott_> WOW YOU HAVE FUNCTION COMPOSITION
23:03:29 <elliott_> im dropping everything let me know when your language is ready
23:03:36 <elliott_> you could shave a whole two lines off my scheme programs
23:03:46 <evincar> It's not supposed to be impressive. It's supposed to be practical.
23:03:49 <oklopol> but can i shave my balls with that language?
23:04:26 <evincar> You can shave your balls in any language.
23:04:31 <evincar> Assuming you shout while you do it.
23:04:32 <zzo38> I find that what is useful for integrate with other systems depends on the other system that you are dealing with.
23:04:42 <oklopol> GET THE FUCK OFF MY BALLS YOU PIECES OF SHIT
23:04:59 <evincar> Your hair is shit? That's unfortunate.
23:05:00 <oklopol> zzo38: you mean when shaving your balls?
23:05:13 <monqy> evincar: so what will your language be like will it be any good will i not hate it and want to die because of it
23:05:25 <zzo38> oklopol: No.
23:05:27 <monqy> most important questions
23:05:52 <oklopol> zombie monkey
23:06:00 <Phantom_Hoover> monqy, stop it that's my shtick.
23:06:10 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:06:33 <oklopol> okay i'm gonna go do important stuff, see you later friends :>>>>>>>
23:07:35 <evincar> monqy: Basically Self but cleaner and smaller. Everything's done with message-passing, which can be asynchronous or stepped if you like. I don't think it'll be warty enough to hate, but you might want to die if it becomes popular.
23:07:51 <monqy> ok
23:07:52 <evincar> Because it probably won't seem to deserve it.
23:09:00 <monqy> i never bothered learning self is there anything special about it
23:09:20 <evincar> Not particularly. It's essentially a minimal dialect of Smalltalk.
23:09:32 <evincar> You have things, you pass messages to them, they yield results.
23:09:40 <elliott_> self is big?
23:09:42 <elliott_> coulda fooled me
23:09:49 -!- CakeProphet has joined.
23:09:49 -!- CakeProphet has quit (Changing host).
23:09:49 -!- CakeProphet has joined.
23:10:08 <evincar> elliott_: I do mean I'm going for minimalism.
23:10:21 <evincar> You shouldn't rely too much on a scripting language, after all.
23:10:22 <monqy> evincar: and what's this composition thing about which you talked
23:10:25 <elliott_> yep, that is indeed an incoherent reply
23:11:33 <evincar> monqy: You can compose functions however you like using partial application.
23:11:40 <Taneb> Well, goodnight
23:12:00 <monqy> what does this mean
23:13:18 <evincar> Well, trivially: add = { x, y => (x + y) }; succ = add 1;
23:14:00 <elliott_> partial application is not composition
23:14:01 <elliott_> hth hand
23:14:32 <evincar> Right, when you apply a lambda to another lambda, you get a composed function.
23:14:42 <monqy> what
23:15:11 <monqy> you do know what function composition is, right?
23:15:13 <evincar> So, I dunno, square = { x => (x * x) }; add_squares = add square square;
23:15:29 <monqy> is that a "no"?
23:15:42 <evincar> Yes, I do know what function composition is.
23:16:30 <monqy> you seem to be having trouble with it
23:16:32 -!- Taneb has quit (Ping timeout: 260 seconds).
23:16:39 <evincar> Hardly.
23:16:45 <zzo38> Function composition is the . command in Haskell and the + command in MSE
23:17:53 <evincar> Right, so [add square square] x y == [add [square x] [square y]].
23:18:05 <monqy> sorry i have to leave now
23:18:07 <monqy> good bye
23:18:50 <zzo38> In JavaScript: compose=function(f,g)(function(x)(f(g(x))));
23:19:06 <elliott_> evincar: so functions can't be higher-order now
23:19:07 <elliott_> awesome
23:19:35 <oklopol> i compose all my songs by partial application of my brain
23:19:39 <evincar> elliott_: Why wouldn't they be able to be?
23:20:48 <oklopol> full application of my brain is just overkill for that!
23:20:53 <oklopol> i mean come on look at this brain
23:21:25 <oklopol> well you can't but i'm NOT opening my skull with a matknife
23:23:14 <zzo38> evincar: Is that proper function composition? It does not seem like that to me
23:23:43 <zzo38> oklopol: Use X-ray vision to see? How well does that answer the question?
23:23:47 <elliott_> It's just J-style forks
23:23:50 <elliott_> Which are absolutely not the same thing
23:23:52 <evincar> Meh, I might have missed some brackets, but the principle works.
23:24:20 <oklopol> zzo38: n/a unfortunately :\
23:24:43 <oklopol> well in principle, EVERYTHING is possible, even telepathy.
23:24:50 <oklopol> well not telepathy
23:25:28 <oerjan> brain radio implant
23:26:14 <zzo38> Telepathy is also one of the disciplines of psionics in D&D 3.5edition, but there are others too. (The dipciplines are psionics make a similar system to the schools of magic)
23:26:22 <evincar> elliott_: Could you give me an example of something you think wouldn't work with my setup?
23:26:33 <evincar> You're terribly fun to argue with.
23:27:07 * Phantom_Hoover → sleep
23:27:08 -!- Phantom_Hoover has left ("Leaving").
23:27:17 <zzo38> evnincar: Do you know JavaScript or Haskell?
23:27:39 <evincar> zzo38: JavaScript well, Haskell reasonably well.
23:28:41 <zzo38> I explained function composition in JavaScript so how would you do like that in your system?
23:29:50 <oklopol> composition is when you have like a thing and like another thing and then you like go YOU FUCKING PIECES OF SLUT JOIN TOGETHER IN THE NAME OF SATAN
23:30:06 <oklopol> i think i should sleep at some point
23:30:09 -!- Phantom_Hoover has quit (Quit: Leaving).
23:30:13 <evincar> compose = { f, g => [f g] }; if you don't want to restrict the number of arguments.
23:30:22 <oerjan> the iwc mythbusters show is _so_ much better than the real one.
23:30:58 <olsner> oklopol: functional programming WITH SATAN
23:32:07 -!- pumpkin has joined.
23:32:10 <evincar> You could go for a literal translation of the JavaScript: compose = { f, g => { x => f [g x] } }
23:32:24 * oerjan may be biased by not actually watching the real one, or tv
23:33:31 <oerjan> evincar: i am also doubtful about higher-order functions.
23:33:52 <oklopol> yeah, i mean do they really make sense?
23:33:55 <NihilistDandy> oklopol: If that's not the best explanation of composition I've heard all week, I don't know what is
23:34:11 <NihilistDandy> Haskell needs moar SATAN
23:34:31 <evincar> I mean, I'd be glad if someone exposed a glaring inconsistency in all this.
23:34:36 <evincar> Because then I could fix it.
23:34:40 <evincar> But I don't think one's there.
23:35:23 -!- copumpkin has quit (Ping timeout: 240 seconds).
23:35:37 <oklopol> o great satan bring these two pieces of slut together in hole matrimony of arguments piping through both of them sequentially
23:35:50 <elliott_> evincar: how do i pass the function f to a function g
23:36:03 <oklopol> [g f]
23:36:13 <elliott_> oklopol: no, that takes an argument x and evaluates [g [f x]]
23:36:17 <elliott_> see:
23:36:18 <elliott_> 23:30:13: <evincar> compose = { f, g => [f g] }; if you don't want to restrict the number of arguments.
23:36:18 <NihilistDandy> Is Javascript an esolang now?
23:36:29 <oklopol> elliott_: that too
23:36:40 <oerjan> natural hellomorphisms
23:36:43 <oklopol> why does it have to mean only one thing?
23:36:56 <oerjan> wait, *unnatural
23:37:07 <oklopol> what would be the point of evincar's language if it meant only one thing
23:38:22 <evincar> elliott_: I don't see a difference between a function taking a function as an argument, and some composition of those functions.
23:38:30 <elliott_> Lymee: Vorpal: What does it mean if there's a Goblin Master Thief not on the u list
23:38:37 <zzo38> evincar: But they are not the same thing
23:38:44 <evincar> Other than whether you're thinking of eager or lazy evaluation.
23:38:48 <evincar> In which case it's always lazy.
23:38:51 <oerjan> evincar: well let's say you want to implement haskell's foldr. how would you call it?
23:38:51 <elliott_> evincar: then you are wrong.
23:38:54 <evincar> When arguments are supplied, the function is evaluated.
23:39:13 <olsner> I wonder if you could make an esolang based on engrish, apparently I'm tired enough that this idea seems viable
23:39:31 <NihilistDandy> oerjan: I wish DrHylo still worked :/
23:39:50 <oerjan> wait, what is DrHylo :(
23:40:08 <NihilistDandy> http://wiki.di.uminho.pt/twiki/bin/view/Personal/Alcino/DrHylo
23:40:18 <NihilistDandy> http://hackage.haskell.org/package/DrHylo
23:40:29 <oklopol> `addquote <evincar> elliott_: I don't see a difference between a function taking a function as an argument, and some composition of those functions.
23:40:31 <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.
23:41:44 <elliott_> so say we have this haskell function
23:41:46 <elliott_> g f = f 0 + f 9
23:41:56 <elliott_> since in your language, [g f] is the equivalent of the Haskell \x -> g (f x)
23:41:58 <elliott_> how would one construct g here
23:42:11 <oerjan> NihilistDandy: ok i completely guessed wrong what that would be :P
23:42:21 <elliott_> Lymee: Vorpal: What's it mean if I have a goblin master thief not on the u list
23:42:22 <NihilistDandy> oerjan: What was your guess?
23:42:42 <oerjan> something like a haskell/category theory style for fungot :P
23:42:43 <fungot> oerjan: i'll run it too see the time table yet. nothing that i know what currying is
23:43:02 <NihilistDandy> oerjan: Now that would be awesome. NEW PROJECT
23:43:13 <zzo38> I noticed now that some of the things in my Haskell program for Constantinople uses what is also fmap for monads although I used >>= instead
23:43:19 <NihilistDandy> fungot, tell me about DrHylo
23:43:20 <fungot> NihilistDandy: so this is what a computer does? i'm not that good a category.
23:43:27 <NihilistDandy> Perfect.
23:43:29 <elliott_> zzo38: you may wish to use the Applicative notation
23:43:32 <Vorpal> <elliott_> Lymee: Vorpal: What's it mean if I have a goblin master thief not on the u list <-- that he isn't on the u list?
23:43:50 <elliott_> zzo38: f <$> a <*> b <*> c === f `fmap` a `ap` b `ap` c (when talking about monads)
23:43:53 <elliott_> zzo38: basically,
23:44:02 <evincar> elliott_: foldr = { f z; args => if (args empty) { z } else { f [first args] [foldr f z [rest args]] } };
23:44:04 <elliott_> (,,) <$> getLine <*> getLineDifferently
23:44:05 <elliott_> is like
23:44:07 <elliott_> (identical to)
23:44:09 <zzo38> If I have: parse_tail = string "tail" >> expressionParser >>= return . (AppE (VarE 'p_tail));
23:44:11 <evincar> Of course it's not as pretty as Haskell because there's no pattern matching.
23:44:14 <elliott_> do x <- getLine; y <- getLineDifferently; return (x,y)
23:44:14 <elliott_> erm
23:44:15 <elliott_> (,) not (,,)
23:44:26 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
23:44:29 <NihilistDandy> evincar: So make pattern matching happen. Hack it together
23:44:44 <elliott_> 23:44:02: <evincar> elliott_: foldr = { f z; args => if (args empty) { z } else { f [first args] [foldr f z [rest args]] } };
23:44:49 <elliott_> evincar: please answer my question, thanks.
23:44:56 <elliott_> <elliott_> so say we have this haskell function
23:44:56 <elliott_> <elliott_> g f = f 0 + f 9
23:44:56 <elliott_> <elliott_> since in your language, [g f] is the equivalent of the Haskell \x -> g (f x)
23:44:56 <elliott_> <elliott_> how would one construct g here
23:45:03 <elliott_> such that g is called as [g f]
23:45:10 <zzo38> Is it like: parse_tail = string "tail" >> fmap (AppE (VarE 'p_tail)) expressionParser if fmap f m = m >>= return . f
23:45:41 <elliott_> zzo38: yes. btw, (>>) is also available for Applicatives, as (*>).
23:45:49 <evincar> Oh. g = { f => ([f 0] + [f 9]) }.
23:45:53 <elliott_> zzo38: it also has the useful (<*) -- (a <* b) is like do{x <- a; b; return x}
23:45:56 <evincar> Why is that a problem?
23:45:59 <elliott_> see Control.Applicative documentation
23:46:11 <elliott_> evincar: because [g f] is the same as \x -> (g f) x
23:46:15 <elliott_> it's a composition
23:46:19 <elliott_> you just said this before
23:46:24 <evincar> Not in that way.
23:46:24 <elliott_> 23:36:18: <elliott_> 23:30:13: <evincar> compose = { f, g => [f g] }; if you don't want to restrict the number of arguments.
23:46:34 <elliott_> so [compose g f] actually returns an integer i guess
23:46:36 <elliott_> COOOOOOooOOOOOOOoooooOOOooooool
23:46:37 <elliott_> well
23:46:40 <elliott_> assuming f returns an integer
23:46:44 <elliott_> which it does because i said so
23:46:57 <elliott_> w/e this is stupid i'm going to go play df
23:47:08 <oklopol> he will so get it if you try 5 minutes longer
23:47:09 <evincar> Suit yourself.
23:47:17 <elliott_> oklopol: exactly the conclusion i made
23:47:24 <elliott_> and oerjan is here to handle those five minutes
23:47:25 <evincar> You're just being argumentative for the sake of it, I'm assuming.
23:48:20 <oklopol> probably there isn't a difference between composition and application and we're just all delusional
23:48:33 <oklopol> i mean who knows
23:48:41 <oklopol> is there a known counterexample where they are different?
23:48:43 <oklopol> i think not
23:49:00 <evincar> So, given g = { f => ([f 0] + [f 9]) }, [g succ] is the same as ([succ 0] + [succ 9]).
23:49:12 <elliott_> 23:47:25: <evincar> You're just being argumentative for the sake of it, I'm assuming.
23:49:15 <evincar> That's all I've been trying to say.
23:49:16 <elliott_> or maybe you're being an idiot
23:49:19 <elliott_> and i've decided I have better things to do
23:49:30 <elliott_> rather than provide counterexamples (which I have) of the fact that TWO INCREDIBLY COMMON BASIC CS CONCEPTS DIFFER
23:49:38 <zzo38> Are UNIX pipes like >>= or is it more like >=>
23:50:07 <Sgeo> :( I don't recognize >=>\
23:50:10 <shachaf> More like >>=, no?
23:50:20 <shachaf> Well, it depends.
23:50:21 <NihilistDandy> @type >=>
23:50:22 <lambdabot> parse error on input `>=>'
23:50:24 <elliott_> yeah, more like >>=
23:50:25 <NihilistDandy> @type (>=>)
23:50:26 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
23:50:30 <NihilistDandy> derp
23:50:41 <elliott_> definitely
23:50:49 <elliott_> because the "a" and "b" here are basically... the command-line arguments
23:50:53 <elliott_> i mean
23:50:58 <elliott_> that's the only reasonable sense you could give to them
23:51:03 <elliott_> in the context of >=>
23:51:08 <NihilistDandy> @hoogle (>=>)
23:51:09 <lambdabot> Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
23:51:09 <elliott_> and unix pipes don't pass as arg- yeah, this is stupid
23:51:46 <zzo38> And how would it be in >==>>>=>===>>=>>====>>>>>==>=>>>
23:51:54 <shachaf> http://okmij.org/ftp/Computation/monadic-shell.html
23:52:59 <zzo38> The thing I notice is that (>=>) is directly associative
23:54:15 <elliott_> zzo38: well, yes
23:55:04 <elliott_> there's a cleaner form of the monad laws in terms of (>=>) too IIRC
23:55:10 <elliott_> hmm wait
23:55:21 <elliott_> is it as simple as "Kleisli = category"
23:55:28 <elliott_> (fsvery loosevo =)
23:57:48 <evincar> Okay, easy (if imperfect) way to explain it. In Haskell, you can write k = f $ g $ h $ value instead of k = f . g . h $ value. My language simply has uniform syntax for it.
23:58:46 <zzo38> Yes the monad laws in terms of (>=>) is that (>=>) is associative. And, I suppose, that return is the identity element. Maybe there are others too. Is this correct? Maybe I made some mistake I don't know for sure
23:59:06 <evincar> Barring the fact that $ doesn't, strictly speaking, do anything.
23:59:08 <elliott_> zzo38: That's what the laws of the Category typeclass are, too :P
23:59:59 <zzo38> elliott_: Category typeclass? What does that mean?
2011-08-16
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-17
00:01:22 <ais523> oh, that reminds me of a quote in the glibc manual that elliott (and possibly other people) will likely find hilarious
00:01:24 <ais523> let me try to find it
00:01:31 <ais523> umm, or was it coreutils?
00:01:44 <Vorpal> windows sucks so badly at hardware support compared to linux
00:01:51 <Vorpal> and then I'm talking about a clean install
00:02:08 <Vorpal> sure there are drivers for windows, but they aren't there by default
00:02:45 * ais523 vaguely ponders why "info libc" opens the glibc info manual, "info glibc" opens the glibc manpage (which is called libc) in info
00:04:28 <Vorpal> for example: I installed windows 7 on a desktop yesterday. Stuff that didn't work out of box: graphics (beyond basic VGA), the USB 3 controller, the intel network controller, the eSATA controller, one of the internal SATA controllers, the on-board sound, ...
00:04:56 <Vorpal> all of those bar the graphics worked out of box when I tried linux. And for the graphics I just had to install catalyst
00:05:04 <Vorpal> so same as windows there
00:05:17 <Vorpal> except easier, since I had working network
00:05:59 <ais523> `setuid' and `setgid' behave differently depending on whether the effective user ID at the time is zero. If it is not zero, they behave like `seteuid' and `setegid'. If it is, they change both effective and real IDs and delete the file ID. To avoid confusion, we recommend you always use `seteuid' and `setegid' except when you know the effective user ID is zero and your intent is to change the persona permanently. This case is rare--most of the
00:06:00 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: setuid': not found
00:06:00 <ais523> programs that need it, such as `login' and `su', have already been written.
00:06:33 <monqy> what
00:06:44 <Vorpal> lol
00:07:33 <Vorpal> ais523, stuff like httpds may want to switch permanently after binding the port
00:07:38 <Vorpal> so uh that is another use case
00:07:55 <ais523> well, the Secret Project drops root in such a way that the program it's running can't undrop root again
00:07:59 <ais523> which is kind-of important
00:08:05 <ais523> if I drop permissions, I want to do it properly
00:08:16 <Vorpal> ais523, oh damn, still secret
00:08:22 <ais523> why would it not be?
00:08:24 <ais523> it's not finished
00:08:35 <Vorpal> ais523, how far has it progressed?
00:08:39 <ais523> you'll all get to see it when it's done, and has been used for its intended purpose
00:08:44 <ais523> but it won't be finished for quite a while, I imagine
00:08:57 <ais523> the bit I've been discussing with all of you is only the first phase of the Projcet
00:09:00 <Vorpal> ais523, was is the intended purpose
00:09:05 -!- CakeProp1et has joined.
00:09:07 <ais523> that would give too much away
00:09:13 <Vorpal> damn XD
00:09:25 <Vorpal> ais523, why is it secret
00:09:38 <ais523> that's also secret
00:09:51 <Vorpal> ais523, why is the reason for it being secret secret?
00:09:59 <ais523> because it's the same as the reason it's secret
00:10:17 <Vorpal> huh
00:10:44 -!- pumpkin has joined.
00:10:58 <ais523> wow, I just got unsolicited email apparently from Google, telling me I should consider applying for a job there
00:11:03 <ais523> I'm trying to work out if it's spam or not
00:11:10 <ais523> if it is spam, it's incredibly well done
00:11:13 <Vorpal> XD
00:11:23 <Vorpal> nice spam yeah
00:11:24 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:11:29 <ais523> I suppose retyping the reply address and replying would be a pretty good way to determine if it's genuine
00:11:40 <ais523> unless a spambot has hacked google somehow
00:11:51 <Vorpal> ais523, well, that could also alert them to your mail being valid
00:12:01 <ais523> the reply mail would go /to Google/
00:12:06 <zzo38> ais523: You should try to call them on the telephone instead
00:12:07 <Vorpal> oh
00:12:18 <ais523> because I'd be retyping an address to a google.com domain
00:12:20 -!- CakeProphet has joined.
00:12:20 -!- CakeProphet has quit (Changing host).
00:12:20 -!- CakeProphet has joined.
00:12:21 <CakeProphet> C# would not be a bad language to program in, if its libraries weren't so obnoxious
00:12:38 <ais523> so if they didn't send it, it'd just be a non sequitur
00:13:03 <ais523> also, "I was impressed to see that you are active in the Open Source Community." amuses me, I wonder what it is that they thought I've done?
00:13:17 -!- copumpkin has quit (Ping timeout: 264 seconds).
00:13:29 -!- pumpkin has changed nick to copumpkin.
00:13:55 <ais523> (assuming it's not a spambot that's just parsed the entire contributor lists to, say, Gnome, which I have a couple of minor patches to)
00:13:59 <CakeProphet> enterprise freelance bullshit like what I'm doing?
00:14:09 -!- lambdabot has joined.
00:14:34 <ais523> CakeProphet: I rewrote the AI for Nibbles
00:14:36 <ais523> and fixed a bug
00:14:51 <ais523> looking at Nibbles, it seems they managed to reintroduce most of the bugs to it again after I'd fixed it, together with some new ones
00:14:54 <ais523> which is kind-of impressive
00:14:58 -!- CakeProp1et has quit (Ping timeout: 252 seconds).
00:14:59 <cheater_> ais523, did you see my message about dna music
00:15:10 <ais523> I should redownload dev source to see if it's fixed again
00:15:16 <ais523> cheater_: yes but I mentally ignored it
00:15:22 <ais523> because I didn't care
00:15:44 <cheater_> that is not nice
00:15:55 <ais523> well, that's why I didn't tell you before you asked
00:16:57 <cheater_> being not nice doesn't change whether you tell someone of your not-nice behavriour or not
00:17:08 <ais523> no, telling someone that you ignored their comment is not nice
00:17:21 <ais523> ignoring their comment is just routine behaviour, I don't react to every single comment made in all the IRC channels I'm in
00:17:23 <ais523> nor would it be sane to do so
00:18:14 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:18:19 <cheater_> there's a difference between "i ignored it because i don't care" and "i didn't have much to say about it because it's not an interest of mine"
00:19:30 <ais523> cheater_: still, I don't think people should be obliged to care about every statement made on IRC
00:20:10 <cheater_> what you just said is so synthetic and not to the point there's no way to either agree or disagree with it
00:20:21 <cheater_> it's just.. mu
00:20:50 <Vorpal> I have to agree with ais523 on this one
00:21:12 <ais523> Vorpal: oh no, does that automatically cause elliott to disagree with me?
00:21:37 <cheater_> does that mean that i automatically agree with ais523?
00:22:45 <cheater_> we could totally oscillate at the speed of information propagation, much like a pll oscillator.
00:22:59 <Vorpal> ais523, maybe
00:23:49 <ais523> err, isn't the whole point of a pll oscillator that it matches the speed of an external synchronizing signal?
00:24:02 <ais523> although I suppose your sentence is ambiguous, and one possible reading contradicts the other
00:24:05 -!- GreaseMonkey has quit (Quit: The Other Game).
00:24:05 <cheater_> no that's just a pll.
00:24:19 <cheater_> i'm talking about a ring of 2n+1 flip flops.
00:24:37 <ais523> so why are you describing it as a pll when it has none of the properties of a pll?
00:24:47 <cheater_> because it's 2 am and i'm tired.
00:24:47 <ais523> other than oscillating?
00:27:30 -!- CakeProphet has joined.
00:27:30 -!- CakeProphet has quit (Changing host).
00:27:30 -!- CakeProphet has joined.
00:28:58 <Vorpal> night
00:29:00 -!- CakeProp1et has joined.
00:30:57 -!- augur_ has changed nick to augur.
00:33:02 -!- Vorpal has quit (Ping timeout: 240 seconds).
00:36:44 -!- oerjan has joined.
00:39:01 -!- CakeProp1et has quit (Ping timeout: 240 seconds).
00:39:14 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:45:44 -!- CakeProphet has joined.
00:46:18 -!- CakeProp1et has joined.
01:02:25 -!- CakeProphet has quit (Ping timeout: 240 seconds).
01:02:34 -!- CakeProp1et has quit (Ping timeout: 260 seconds).
01:04:03 -!- cheater__ has joined.
01:04:11 -!- CakeProphet has joined.
01:07:30 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:08:36 -!- CakeProphet has quit (Ping timeout: 250 seconds).
01:13:24 -!- CakeProphet has joined.
01:13:31 -!- CakeProphet has quit (Changing host).
01:13:31 -!- CakeProphet has joined.
01:15:36 -!- CakeProp1et has joined.
01:26:35 -!- CakeProphet has quit (Read error: Operation timed out).
01:26:43 -!- CakeProp1et has quit (Ping timeout: 258 seconds).
01:28:03 -!- CakeProphet has joined.
01:28:20 -!- CakeProp1et has joined.
01:36:02 <quintopia> :/
01:36:28 <quintopia> speaking of flip flops...
01:38:18 <oerjan> don't flip on your flops
01:39:10 <oerjan> it's just two nand gates, anyway
01:41:09 <quintopia> oerjan: keep an eye out for flapping prophets
01:41:32 <oerjan> i do
01:44:04 -!- CakeProp1et has quit (Ping timeout: 252 seconds).
01:44:54 -!- CakeProphet has quit (Ping timeout: 240 seconds).
01:46:07 -!- CakeProphet has joined.
01:46:07 -!- CakeProphet has quit (Changing host).
01:46:07 -!- CakeProphet has joined.
01:46:21 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
01:50:06 <quintopia> oerjan: hes flapping again. can we get a tempban plox?
01:51:11 <oerjan> hrmph
01:51:46 -!- CakeProphet has quit (Ping timeout: 252 seconds).
01:51:47 -!- CakeProphet has joined.
01:51:48 -!- CakeProphet has quit (Changing host).
01:51:48 -!- CakeProphet has joined.
01:52:04 -!- ChanServ has set channel mode: +o oerjan.
01:52:50 -!- yorick has quit (Read error: Connection reset by peer).
01:53:00 -!- oerjan has set channel mode: +b CakeProphet!~adam@*.dynamic.ip.windstream.net.
01:53:39 -!- yorick has joined.
01:53:41 -!- CakeProp1et has joined.
01:53:49 <oerjan> wat
01:54:07 -!- oerjan has set channel mode: -b CakeProphet!~adam@*.dynamic.ip.windstream.net.
01:54:18 -!- oerjan has set channel mode: +b CakeProp*!~adam@*.dynamic.ip.windstream.net.
01:55:36 -!- PatashuDragonite has joined.
01:55:55 <oerjan> i don't know whether that will also ban his cloak, but i'm not intending to
01:56:01 -!- oerjan has set channel mode: -o oerjan.
01:58:26 -!- CakeProp1et has quit (Ping timeout: 250 seconds).
01:58:53 -!- CakeProphet has quit (Ping timeout: 264 seconds).
02:27:50 -!- nisstyre_ has joined.
02:27:52 -!- Nisstyre has quit (Remote host closed the connection).
02:32:20 -!- nisstyre_ has quit (Ping timeout: 258 seconds).
02:33:35 -!- sebbu2 has joined.
02:33:35 -!- sebbu2 has quit (Changing host).
02:33:35 -!- sebbu2 has joined.
02:33:50 -!- Nisstyre has joined.
02:34:14 -!- sebbu has quit (Ping timeout: 257 seconds).
02:44:49 <itidus20> ok heres a topic
02:45:05 <itidus20> has hello world worn out it's welcome?
02:45:57 <oerjan> yeah the world is starting to get pissed
02:46:09 <itidus20> lol
02:48:45 * itidus20 . o O (russia.c : #include <stdio.h> int main(void) { char input[50]; while (strcmp(input,"Hello world") != 0) { fflush(stdin); fflush(stdin); scanf("%s\n", input); } return 0; } )
02:49:10 <itidus20> i haven't used these functions for a while though so not 100% sure on this
02:49:38 <oerjan> itidus20: i believe %s may be dangerous
02:49:46 <itidus20> theres a few bugs in that program..
02:49:49 <oerjan> buffer overflow
02:49:58 <itidus20> but the idea is a soviet russian hello world
02:49:59 <coppro> yes, that program is a buffer overflow waiting to happen
02:50:09 <coppro> you forgot the comma
02:50:18 <itidus20> i think != 0 should be == 0 also
02:50:25 <oerjan> in soviet russia, buffer overflows you
02:51:07 <itidus20> the idea being, you input hello world instead of having it output
02:51:27 <oerjan> well naturally. also see [[Narcissist]] on the wiki.
02:52:03 <itidus20> firefox 6 highlights the domain name in a url
02:52:08 <itidus20> i think thats pretty cool...
02:54:10 <itidus20> hahah narcissist is a brilliant idea :o
02:54:15 <itidus20> wow......
02:56:56 <itidus20> when you said the world is starting to get pissed.. i thought.. now its time to repay the world by saying hello world to it
02:57:09 <itidus20> more or less
02:58:06 <oerjan> that would be the opposite of the intended joke
03:00:05 <oerjan> "Hello World, you don't mind if we chop down a few billion trees do you? Sorry, don't have time to talk."
03:00:33 <oerjan> "Oh, and thanks for all the fish."
03:00:56 <oerjan> s/Oh/So long/
03:02:09 <itidus20> fish.. the one animal which is unlikely to drown
03:02:59 <itidus20> do you suppose that the biblical story of a flood was a response to the prayers of fish?
03:03:03 <oerjan> that's a very land-animal biased thing to say
03:03:27 <oerjan> also, octopi, shrimps and jellyfish would like a word with you
03:03:54 <oerjan> (jellyfish are not fish either)
03:04:10 <itidus20> and also they are not jelly :(
03:04:20 <oerjan> well true. probably.
03:05:38 <oerjan> i do not recall any references to overfishing in genesis, but then it's been decades since i read it
03:06:14 <zzo38> Why does Windows display the message saying that you do not have permission to view the permissions but you can make changes?
03:08:24 <zzo38> If you do add things though, it says you have no permission.
03:20:15 -!- madbr has joined.
03:23:32 <madbr> man
03:23:48 -!- MDude has changed nick to MSleep.
03:23:58 <madbr> how does the pentium pro &co. not run incredibly slowly
03:24:39 <pikhq> Uh, the Pentium Pro runs several orders of magnitude slower than modern CPUs. By any reasonable standard, that is "running incredibly slowly".
03:26:21 <madbr> well, I mean the ppro family including the much more recent derivatives
03:26:43 <madbr> which I'm sure have much higher clock speeds and much larger caches
03:27:05 <madbr> but similar pipelines etc
03:28:27 <pikhq> Okay, in *that* sense. The Pentium Pro was an early consumer release of modern CPU design.
03:29:49 <pikhq> Namely, implementing x86 by microcoding to a RISC and having a large pipeline.
03:31:53 <pikhq> Well. The first bit is only really done for the sole standing absurd CISC ISA.
03:44:17 <zzo38> Have you ever read "Science Made Stupid" or "Cvltvre Made Stvpid"?
03:47:38 <madbr> pikhq: seems to be more about the crazy "out of order/register renaming" stuff
04:17:13 <itidus20> zzo38: windows sometimes asks you to contact the administrator when you are the only one who has ever used the pc
04:20:34 -!- pikhq has quit (Ping timeout: 240 seconds).
04:20:39 -!- pikhq has joined.
04:53:03 <Sgeo> I'm starting to think I should remove xkcd from Google Reader
05:05:54 <oerjan> on a day when xkcd makes a strip which makes _me_ nostalgic for old-style absurd humor, _Sgeo_ decides it is not worth reading?
05:06:25 <myndzi> boomerang haters gonna hate and come back hating
05:06:30 <oerjan> (ok, it wasn't particularly _funny_. it was, i don't know how to translate "underfundig".)
05:06:42 <myndzi> underfunny? ;)
05:06:44 <myndzi> hehe
05:06:48 <oerjan> no relation.
05:07:20 <myndzi> "artful" says the internet
05:07:31 <myndzi> wait
05:07:33 <myndzi> that's swedish
05:07:38 <myndzi> norwegian = quirky
05:07:40 <myndzi> seems a better fit
05:07:47 <oerjan> hm yes maybe
05:08:06 <myndzi> it wasn't rofl
05:08:34 <oerjan> indeed. i find this comic gave me a strange sense of calm, instead.
05:09:46 <myndzi> my favorite oddball one is the etch-a-sketch one
05:11:20 <oerjan> yeah same feeling
05:12:24 <myndzi> different feeling for me
05:12:30 <myndzi> this one is a smile
05:12:35 <myndzi> that one was something a little more melancholy
05:13:48 <oerjan> definitely melancholy for both for me
05:14:01 <myndzi> melancholy about a boomerang? o_O
05:14:15 <myndzi> or wait, did i miss monday's?
05:14:28 <oerjan> melancholy about a simpler world
05:14:38 <myndzi> haha
05:14:43 <myndzi> simpler, where arrows come back as boomerangs
05:14:50 <myndzi> like caterpillars becoming butterflies!
05:14:50 <myndzi> ;)
05:17:04 <zzo38> One of the pages of this book has warning it says: INSTRUCTIONS TO USE: 1. The battery is not needed for operation of this. 2. Be holding the book with your hands, as it is show in the illustrations. 3. Make always sure, that you read the lines from reft to light [...] DO NOT INDUCE VOMITING--THE CONTENTS WILL TAKE CARE OF THAT [...] WARNING: The Attorney General Has Determined That Books May Contain Harmful or Dangerous Ideas [...] Best
05:17:48 <oerjan> got cut off after [...] Best
05:18:09 <zzo38> when read before AUG'91
05:18:59 -!- GreaseMonkey has joined.
05:41:58 <PatashuDragonite> what kind of algorithm can I use for pathfinding around continuous objects? A* I know is good for a discrete grid or graph of nodes
05:42:04 <PatashuDragonite> maybe I should just convert to a discrete grid and A* that
05:43:42 <Gregor> To my knowledge that's what's usually done. Draw a grid, A* over that, then within any non-empty element, subdivide.
05:43:57 <PatashuDragonite> thanks
05:47:16 -!- Lymia has joined.
05:47:22 -!- Lymee has quit (Disconnected by services).
05:47:24 -!- Lymia has changed nick to Lymee.
05:50:55 -!- Nisstyre has quit (Quit: Leaving).
05:55:21 -!- madbr has quit (Quit: Radiateur).
05:55:59 <fizzie> I've seen pathfinding done in continuous environments composed of arbitrary polygons, but I don't have any references handy.
05:56:17 <fizzie> Doing it in a grid sounds quite practical though.
06:10:22 <Gregor> I recall doing a sort of simplified pathfinding by drawing a straight line, finding the first point where it hit an obstacle, adjusting it in both directions, then recursing for each of the four new lines produced.
06:11:06 <PatashuDragonite> That's not a bad idea
06:12:59 -!- zzo38 has quit (Remote host closed the connection).
06:14:43 -!- Nisstyre has joined.
06:17:42 <pikhq> Gregor: Sounds like one of those suboptimal but correct pathfinding solutions.
06:18:10 <ais523> oh dear, TIL that TV Tropes has inside jokes
06:18:16 <ais523> I suppose I should have guessed that
06:18:17 <pikhq> ais523: Tons.
06:18:30 <ais523> the thing about inside jokes is that they aren't obvious from the outside
06:18:52 <PatashuDragonite> Who could have guessed?
06:20:32 <ais523> PatashuDragonite: also, why is there a Pokémon randomly in your nick?
06:20:35 <monqy> inside jokes actually seem kind of obvious to me, but maybe I'm just fooling myself
06:20:57 <monqy> rather, things being inside jokes; I can't determine their meanings or anything so easily
06:21:53 <PatashuDragonite> because http://nyiaj.deviantart.com/art/Dragonite-Zoids-187606462
06:27:17 <Gregor> pikhq: It's clearly suboptimal, but if you optimized your exploration order to choose current-shortest paths first, it probably wouldn't be terrible.
06:30:35 <Gregor> Plus, it has the advantage of being really clear for continuous data :P
06:36:36 <pikhq> Meh, just quantise at Planck length. Good enough.
06:36:37 <fizzie> Fastest file system in the west?
06:36:37 <fizzie> htkallas@pc112:~$ time ls -l ~ >/dev/null
06:36:37 <fizzie> real 3m32.514s
06:36:51 <fizzie> Three and half minutes to list a directory, not bad.
06:37:01 <pikhq> ... ls | wc -l?
06:37:17 <fizzie> "Quite a few, but not *that* many."
06:37:27 <fizzie> "git log" in a two-file repository printed log entries about one/second.
06:37:59 <PatashuDragonite> What do you need to know planck length for anyway
06:38:21 <pikhq> PatashuDragonite: Well, it's a very elegant unit.
06:38:47 <Gregor> Elegant if it's not a lie 8-D
06:39:11 <pikhq> In Placnk units, c=1 l_p/t_p.
06:40:51 <fizzie> pikhq: | wc -l: 547. Not really *so* unreasonable.
06:40:58 <fizzie> (Could do with a cleanup, though.)
06:41:41 <pikhq> Physics is all-around nicer in Plack units.
06:43:05 <Gregor> Plaque units
06:43:33 <Gregor> "In terms of raw plaque units, you need to brush your teeth."
06:44:17 <pikhq> (note, though, that Planck units are pretty poor for everyday measurement. 1 T_p, the Planck temperature, is 1.416833e32 K.)
06:44:55 <pikhq> (for comparison, the Sun is about 1.57e7 K)
06:45:18 <PatashuDragonite> http://en.wikipedia.org/wiki/Doubly_special_relativity It's starting to look like triply special relativity
07:00:31 -!- pikhq has quit (Ping timeout: 252 seconds).
07:00:38 -!- pikhq has joined.
07:01:44 -!- ChanServ has set channel mode: +o oerjan.
07:02:06 -!- oerjan has set channel mode: -b CakeProp*!~adam@*.dynamic.ip.windstream.net.
07:02:21 -!- oerjan has set channel mode: -o oerjan.
07:03:16 <Gregor> Why was CakeProphet banned?
07:04:01 <oerjan> ye olde triple join/quit/rejoin with cloak/ping timeout cycle
07:04:02 <pikhq> His connection was flailing.
07:08:06 <Gregor> Mmm
07:23:36 <ais523> was the ban aimed to cut down the flails rather than ban him altogether? it looked like that
07:23:56 <pikhq> Yeah, that's pretty much it.
07:24:18 <oerjan> yep
07:24:49 <oerjan> i don't really know if it would affect him cloaked or not
07:25:59 <Sgeo> elliott's not here, Phantom_Hoover's not here
07:26:01 <Sgeo> So meh
07:39:59 -!- Taneb has joined.
07:40:07 <Taneb> Hello!
07:41:11 <Sgeo> Hi
07:41:23 <Taneb> What'sup?
07:42:44 <Sgeo> Taneb, I forget, did you say you're a Homestuck person? I remember someone getting offended when I only mentioned elliott and PH
07:42:56 <Taneb> Yeah, that was me
07:43:16 <Sgeo> There's an update
07:43:24 <Taneb> Sweet
07:47:01 <Taneb> So, Hussie Got Tiger?
08:00:16 <Taneb> B.
08:00:20 <Taneb> r.
08:00:24 <Taneb> MOTERFUCING
08:00:25 <Taneb> b.
08:00:30 <Taneb> HONK
08:00:33 -!- Taneb has quit.
08:02:22 -!- Vorpal has joined.
08:07:17 -!- Taneb has joined.
08:08:56 <oerjan> "Mitchell and a colleague have described Titan's climate as "all-tropics" — the entire planet experiences the types of weather phenomena that on Earth are confined to the equatorial region.
08:09:28 <oerjan> which is rather weird for a place with average temperature of 94 K
08:09:54 <oerjan> s/[.]/."/
08:11:05 <Taneb> Today's xkcd is pretty good
08:11:25 <Taneb> Of course, I enjoyed the Thor film.
08:11:28 <Taneb> For its plot.
08:11:43 <oerjan> we did talk about it previously.
08:11:56 <Taneb> Okay
08:12:15 <oerjan> starting with Sgeo implying the opposite
08:13:24 <Taneb> ...That I /didn't/ enjoy the Thor film!?
08:13:33 <oerjan> NATURALLY
08:13:41 <oerjan> or possibly, about today's xkcd
08:15:02 <Taneb> That today's xkcd didn't enjoy the Thor film!? What is the world coming to?
08:15:08 -!- GreaseMonkey has quit (Quit: The Other Game).
08:15:31 <oerjan> to disastrous wilful misunderstandings, it seems
08:15:40 <Taneb> :D
08:15:52 <Taneb> That is my actual expression.
08:16:02 <Taneb> Except I have rather more hair and noses.
08:18:05 <oerjan> well i'm sure a good doctor can repair that displaced jaw
08:18:21 <Taneb> It hurts
09:45:21 -!- cheater__ has quit (Ping timeout: 250 seconds).
09:46:15 -!- oerjan has quit (Quit: leaving).
09:55:54 -!- Taneb has quit (Ping timeout: 264 seconds).
10:14:59 -!- monqy has quit (Quit: hello).
10:31:08 -!- yorick has quit (Read error: Connection reset by peer).
10:32:51 -!- Taneb has joined.
10:49:37 <Taneb> Working on my Binodu fibonacci numbers program
11:06:10 -!- yorick has joined.
11:09:18 -!- ais523 has quit (Remote host closed the connection).
11:12:09 -!- BeholdMyGlory has joined.
11:50:24 <itidus20> i notice that the more i want to sound like a mathematician the more i start referring to everything as a space
11:51:02 <Taneb> Replace space with field and you're a physicist
11:52:08 -!- boily has joined.
12:00:31 -!- Phantom_Hoover has joined.
12:23:25 -!- Taneb has quit (Quit: He's a big quitter he is).
12:34:52 -!- ais523 has joined.
12:40:04 -!- Taneb has joined.
12:52:37 -!- alibaba has joined.
12:53:12 -!- alibaba has quit (Client Quit).
13:09:55 -!- sebbu2 has changed nick to sebbu.
13:27:44 <ais523> #include <stdio.h> int main(void) { auto i = 4.5L; printf("%d\n",(int)sizeof i); return 0; }
13:27:58 <ais523> I think I have a C/C++ polyglot that acts differently in each language
13:31:06 <Deewiant> #include <stdio.h> int main(void) { return printf("%d\n", (int)sizeof'x'); }
13:31:28 <Gregor> ais523: As far as I know, that shouldn't compile in C, since you haven't declared i ...
13:31:37 <Gregor> Or rather, your --- oh, it's an int automatically.
13:31:39 <Gregor> Never mind :P
13:31:44 <Gregor> Heh, clever.
13:31:56 <fizzie> Everything's an int automatically. :p
13:32:07 <ais523> I have indeed declared i
13:32:13 <ais523> and even explicitly given its storage class
13:32:16 <Deewiant> #include <stdio.h> int x; int main(void) { struct x{char c;}; return printf("%d\n", (int)sizeof(x)); }
13:32:42 <ais523> Deewiant: heh, playing with scope?
13:32:43 <fizzie> The "sizeof 'x'" variant was I think "discussed" (for some values of discussion) on-channel few moons ago.
13:33:07 <ais523> is 'x' a char in C++?
13:33:10 <Deewiant> Yes
13:33:11 <fizzie> Yes.
13:33:12 <Deewiant> And yes
13:33:23 <fizzie> Yes, yes, a thousand times yes.
13:34:10 <Deewiant> in C sizeof(x) refers to the int because the struct is called 'struct x', not 'x'; in C++ it refers to the struct because it's "closer" in scope
13:36:15 <ais523> yep
13:38:08 <ais523> auto was such an unloved keyword in C
13:38:15 <ais523> illegal everywhere it isn't the default
13:41:36 <Gregor> Also in C++, sizeof doesn't take values, only types.
13:42:05 <fizzie> That's bogus.
13:42:14 <Gregor> It's very terrible.
13:42:22 <fizzie> No, I mean, it's not true.
13:42:42 <fizzie> Or at least I don't believe it until I see proof.
13:43:29 <fizzie> This works (as in, behaves differently) in my gcc, but it is probably a bit implementation-defined: #include <stdio.h> #include <stdbool.h> int main(void) { printf("%d\n", sizeof true); }
13:45:12 <fizzie> (1 when compiled with g++, 4 when with gcc.)
13:54:07 <Gregor> I guess it's not all values ... my buffer.h doesn't work in C++ but does in C, and it's because of a sizeof, so I'll have to figure out more precisely what it is
13:56:13 <fizzie> It should take any expression, avoid evaluating it, and give sizeof as if it were applied to the type of the expression.
13:57:24 <tswett> Is dynamic linking or any sort of file manipulation in the C standard library?
13:57:47 <fizzie> There's some file manipulation in general.
13:57:50 <fizzie> No directories, though.
13:58:24 <Gregor> Directories are for pussies.
14:04:12 -!- derrik has joined.
14:07:08 <tswett> So it sounds like in order to do any dynamic linking, I first need to link (presumably statically) with a library that lets me do dynamic linking.
14:07:23 <tswett> Or pitch the idea of a library and simply do it via system calls.
14:07:34 <Taneb> Or... embed a library?
14:07:51 <tswett> Is that different from linking one?
14:08:18 <Taneb> I don't know
14:11:56 <Gregor> Depends on how dynamic you mean ...
14:12:27 <Gregor> If you're talking about the dynamic linking that's performed before your program begins execution, that's very different from the dynamic linking that's performed during program execution.
14:12:43 <tswett> Huh. Wikipedia says that in Linux systems, an executable is given a "linker stub" that dynamically links the "real" dynamic linker.
14:13:50 <tswett> Oh, it further says that the "real" dynamic linker is already in memory when the process is created, and the linker stub just sorta connects to it.
14:15:54 <Gregor> That's ... a bit misleading.
14:17:31 -!- PatashuDragonite has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:18:19 <tswett> Mmkay, Wikipedia says Unix-like systems all do dynamic loading with libdl.
14:18:36 <tswett> Windows does it with the Windows API. windows.h and Kernel32.dll.
14:26:15 -!- Taneb has quit (Ping timeout: 260 seconds).
14:30:52 -!- FireFly has joined.
14:31:12 -!- copumpkin has quit (Remote host closed the connection).
14:31:37 -!- copumpkin has joined.
14:33:34 <tswett> It kind of looks like libdl can only be used to link to libraries with the C calling convention. You tell libdl what file you want, and what symbol you want, and you get a function pointer.
14:34:08 <tswett> Actually, that makes me think libdl is totally calling-convention-agnostic.
14:34:30 <tswett> If the library has the C calling convention, you can call it directly from C. If it doesn't, then... you can do something else with it.
14:35:02 <tswett> Maybe the library has no calling convention, and the function it exports is just text. Then you can cast it to a char*. :P
14:37:01 -!- ais523 has quit (Ping timeout: 252 seconds).
14:42:33 <Lymee> I need to upgrade my brain's scheduler. I have a priority inversion problem with TVTropes...
14:45:41 -!- oerjan has joined.
14:47:27 <fizzie> tswett: Yes, you can dlsym() out non-function symbols from a library too.
14:47:41 -!- MSleep has changed nick to MDude.
14:48:25 <Lymee> Including variables?
14:48:29 <Lymee> Global variables?
14:48:55 <fizzie> Yes, why not.
14:49:13 <fizzie> Assuming they have externally visible symbols, anyway.
14:49:32 <fizzie> The POSIX dlsym page even has an example which "shows how dlopen() and dlsym() can be used to access either function or data objects".
14:50:40 <fizzie> (POSIX assumes a void * can hold a function pointer, which isn't necessarily true in all C systems.)
14:54:10 <Lymee> Does the system need nasty workarounds then?
14:55:57 <fizzie> Well, the "nasty workaround" is probably to modify the void * so that it can point to functions too. Or just opt to be non-posix.
14:56:10 <Lymee> Does Linux?
14:56:17 <Lymee> You can return a size_t, right?
14:56:30 <Lymee> Um, no wait.
14:56:41 <Lymee> What was it called again?
14:57:02 <Lymee> Ah, there is no such type....
14:57:09 <fizzie> Maybe (u)intptr_t? Though I fail to see how that's relevant.
14:57:44 <fizzie> That's just an integral type that's capable of holding any object pointer. It's not required to be able to hold a function pointer either.
14:58:27 <fizzie> I don't think Linux runs on anything where providing a sensible-looking void * that can also point to functions is a problem, though.
14:58:40 <Lymee> Eh.
14:58:50 <Lymee> Is there anything except maybe the JVM or something where that /isn't/ the case?
15:00:18 <fizzie> There are real systems where not all pointers are equal, but I don't know of any where function pointers would be too magical for void *.
15:00:46 <fizzie> CLC faq declines to provide any examples, just noting that "On some machines, function addresses can be very large, bigger than any data pointers".
15:02:00 <oerjan> maybe that weird assembly that was recently mentioned on the wiki, i recall something about typed pointers...
15:02:24 <fizzie> I think it did have an example of systems with unusual pointers in some other question, but that was about different object points.
15:03:08 <Lymee> I suppose it might be so on systems with really really small memories, so that it's actually usable, but...
15:03:21 <Lymee> You won't be running POSIX or C on that...
15:03:33 <Lymee> (By really really small, I mean "Could fit in Minecraft small")
15:03:35 <fizzie> I think it's reasonably "common" (if you can call it that) to have sizeof(char *) > sizeof(int *) (and correspondingly sizeof(void *) == sizeof(char *)) on strictly word-addressible systems, where 8-bit characters are faked with sub-word units.
15:03:48 <fizzie> So the char * pointers need to contain basically an int * and an offset.
15:04:25 <fizzie> I recall seeing a Cray something mentioned.
15:05:03 <oerjan> "data pointers, function pointers, and integers can't be cast to one another on the AS/400"
15:05:47 <Lymee> Unless you're compiling to the JVM, what systems do that?
15:05:51 <oerjan> (http://esolangs.org/wiki/Talk:Timeline_of_esoteric_programming_languages#AS.2F400)
15:05:53 <Lymee> Well.
15:05:55 <Lymee> WHY would a system do that.
15:07:57 <fizzie> Oh, and in some 16-bit MS-DOS memory models function pointers and data pointers have a different size.
15:09:27 <fizzie> For example the "medium" memory model, where data pointers are "near" (all data in one segment, 16-bit pointers) and code pointers are "far" (multiple code segments, technically 20-bit pointers that tend to take 32 bits of space, and can have functionally-equivalent values that == doesn't recognize as equal).
15:10:20 <fizzie> Though even there it's still possible a "reasonable" workaround to just make all void *s "far" too.
15:11:07 <fizzie> MS-DOS compilers I think mostly just decide to not be strictly C compilers, though, and provide some sort of extra "FAR" qualifier you can tag to pointer types.
15:12:06 <Lymee> Like gcc?
15:12:34 <fizzie> GCC proper is not a 16-bit compiler at all.
15:13:01 <fizzie> I don't think DJGPP is much of a one either, doesn't it run everything with CWSDPMI? Well, maybe it could be used as a 16-bit one too, I can't quite recall.
15:13:17 <fizzie> As for the "why", obviously because the hardware makes the "near" pointers much faster.
15:13:24 <fizzie> (No need to set/restore segment registers.)
15:15:17 <Lymee> I mean gcc's whole extension thing.
15:15:48 <fizzie> Oh. Right. Yes. But GCC provides a quite strict ISO C mode, unlike Watcom and Borland and friends.
15:16:05 -!- ais523 has joined.
15:16:13 <ais523> oh dear
15:16:24 <ais523> I, umm, may just have convinced my boss to run his first-year CS course as a nomic
15:17:29 <fizzie> Is that an "oh dear" instead of "oh wow"?
15:17:41 <ais523> well, I'm meant to be helping to teach the course
15:17:48 <fizzie> Oh dear.
15:17:54 <ais523> he'd got pretty much all the nomic framework in place but the mutability of rules already, though
15:18:03 <ais523> in particular, he seems to have been expecting/encouraging scams
15:19:19 <oerjan> with this kind of power, maybe you should enter politics
15:19:49 <ais523> oerjan: when Guild Council changed to be entirely elected, I ended up with only 2 votes, out of more than 1000 cast
15:19:53 <ais523> I'm still wondering who the other one was
15:20:12 <ais523> I think I'm too honest to be a politician (also, I disagreed with the majority of the electorate on most issues, which can't have helped)
15:20:25 <ais523> <Troll> Not wishing to sound like a troll (what with my obvious user name)
15:20:27 <oerjan> heh
15:21:00 <Lymee> /nick Troll
15:21:40 <ais523> the rest of the comment was basically an opinion that the subject of the article being discussed sucked
15:22:43 <tswett> ais523: my understanding is that holding positions of power causes people to be less honest.
15:22:57 <tswett> So if you think you're too honest now, maybe holding office will fix that.
15:27:37 <ais523> I think I'm too honest to be a politician
15:27:43 <ais523> that doesn't mean I think I'm too honest in general
15:29:20 <Gregor> <fizzie> GCC proper is not a 16-bit compiler at all. // lies lies lies
15:29:37 <Gregor> GCC is not an 8{0,1,2}86 compiler.
15:29:45 <Gregor> But it supports (or has supported?) various 16-bit targets.
15:29:48 <Gregor> Just not that one.
15:29:58 <Gregor> And DJGPP isn't 16-bit at all.
15:34:26 <fizzie> Well, yes, it was in the x86 context.
15:35:27 <Gregor> My point is more how ridiculous it is; fixing a "crap we made assumptions all over the place and can't adapt to 16-bittedness" problem is a lot harder than fixing a "I don't support this particular target" problem.
15:35:28 <fizzie> And you know what they say: when you context, you make a... con... out of... T-ext?
15:47:44 <fizzie> There was that 16-bit experimental GCC.
15:47:50 <fizzie> DJGPP, I mean.
15:47:55 <fizzie> http://www.delorie.com/djgpp/16bit/gcc/
15:48:06 <fizzie> Not any good, I believe.
15:48:21 <fizzie> (Based on gcc-2.7.2.3.)
15:49:59 <fizzie> Apparently there's also a 9-patch patchset against 4.3.0 20070729 (experimental) to add "ia16-unknown-elf" on the GCC mailing list.
15:52:43 <Gregor> It was quite terrible :)
15:55:47 -!- ais523 has quit (Remote host closed the connection).
15:56:36 <Gregor> OpenWatcom is pretty alright though.
15:58:10 <fizzie> The patchset doesn't seem to have been accepted. There's a huge thread of discussion mostly about whether it should be merged with the i386 architecture (all "-m16" style like it does "-m32" and "-m64" already) but nothing seems to have come out of it; everyone else wanted it merged there, except all the i386 maintainers didn't want any of that silly 16-bit code in *their* house.
16:03:35 <fizzie> "But it can happen you need to write a realmode application which uses MMX,SSE..." -- interweb forums.
16:03:41 <fizzie> Sounds like something that happens very often.
16:04:59 <fizzie> (There's that .code16gcc nonsense for that, though.)
16:07:22 -!- copumpkin has quit (Ping timeout: 250 seconds).
16:10:13 <tswett> "Indiglo devices emit a distinct indigo or white or other color." Yes, that's a very distinct color.
16:11:52 -!- copumpkin has joined.
16:12:34 <Gregor> tswett: It is distinctly a color.
16:13:19 <tswett> Yes, I guess it doesn't emit transparent or specular light.
16:17:02 -!- Nisstyre has quit (Ping timeout: 246 seconds).
16:19:09 -!- sebbu2 has joined.
16:19:09 -!- sebbu2 has quit (Changing host).
16:19:09 -!- sebbu2 has joined.
16:19:35 -!- sebbu has quit (Ping timeout: 260 seconds).
16:19:55 -!- sebbu2 has changed nick to sebbu.
16:21:02 -!- Nisstyre has joined.
16:23:27 -!- sebbu2 has joined.
16:23:32 -!- sebbu2 has quit (Changing host).
16:23:32 -!- sebbu2 has joined.
16:24:53 -!- sebbu has quit (Ping timeout: 250 seconds).
16:25:15 -!- CakeProphet has joined.
16:25:15 -!- CakeProphet has quit (Changing host).
16:25:15 -!- CakeProphet has joined.
16:25:15 -!- CakeProphet has changed nick to 36DAB2XPK.
16:25:15 -!- 92AADZBGG has joined.
16:25:39 <oerjan> now what
16:26:27 -!- sebbu has joined.
16:26:27 -!- sebbu has quit (Changing host).
16:26:27 -!- sebbu has joined.
16:27:03 -!- Nisstyre has quit (Ping timeout: 250 seconds).
16:28:07 -!- sebbu2 has quit (Ping timeout: 252 seconds).
16:30:34 -!- Nisstyre has joined.
16:30:35 -!- Nisstyre has quit (Excess Flood).
16:31:17 -!- Nisstyre has joined.
16:31:18 -!- Nisstyre has quit (Excess Flood).
16:32:00 -!- Nisstyre has joined.
16:32:46 -!- sebbu2 has joined.
16:33:59 -!- sebbu has quit (Ping timeout: 252 seconds).
16:38:26 -!- sebbu has joined.
16:38:34 -!- sebbu has quit (Changing host).
16:38:34 -!- sebbu has joined.
16:38:45 -!- sebbu2 has quit (Ping timeout: 250 seconds).
16:42:28 -!- Nisstyre has quit (Ping timeout: 250 seconds).
16:44:11 -!- sebbu2 has joined.
16:44:11 -!- sebbu2 has quit (Changing host).
16:44:11 -!- sebbu2 has joined.
16:44:30 -!- sebbu has quit (Ping timeout: 260 seconds).
16:45:01 -!- sebbu2 has changed nick to sebbu.
16:48:22 -!- ais523 has joined.
16:49:49 -!- sebbu2 has joined.
16:49:50 -!- sebbu2 has quit (Changing host).
16:49:50 -!- sebbu2 has joined.
16:49:55 -!- sebbu has quit (Ping timeout: 240 seconds).
16:49:59 -!- oerjan has quit (Quit: leaving).
16:50:32 -!- sebbu2 has changed nick to sebbu.
16:54:41 -!- zzo38 has joined.
17:14:18 -!- 92AADZBGG has quit (Ping timeout: 240 seconds).
17:15:05 -!- 36DAB2XPK has quit (Ping timeout: 276 seconds).
17:33:17 -!- zzo38 has quit (Remote host closed the connection).
17:55:53 <quintopia> this channel is made of joins and parts
17:56:30 <Phantom_Hoover> This channel is made of joints and parts.
18:03:07 <ais523> oh no, I think someone new has posted a surprisingly BF-like imperative tarpit to the wiki
18:03:52 <ais523> in fact, the only difference, apart from syntax, is that - was replaced by a shift-left instruction
18:18:39 * ais523 reads parts of the design docs that lead to C++0xb
18:18:58 <ais523> they point out that "std::string s1(false)" is legal, "std::string s2(true)" is illegal
18:19:07 <ais523> which is pretty funny, although obvious if you think about it
18:21:30 <Deewiant> It's hardly "obvious" unless you know the C++ promotion rules
18:22:59 <ais523> you don't need that at all, it's actually pretty much pure C
18:23:06 <ais523> "false" and "true" are both integer constants
18:23:14 <ais523> and "false" has the value 0, and thus is a legal null pointer constant
18:23:28 <ais523> and std::string's constructor (the relevant one, anyway) takes a char* as argument
18:23:44 <Deewiant> The C promotion rules, then
18:23:55 <ais523> the relevant C rule is not quite the same as the relevant C++ rule, but the differences don't matter in that case
18:24:13 <Deewiant> Although I'd argue that this is C++-specific because false and true aren't #defined to 0/1 in C++, making it that much less obvious
18:24:49 <Deewiant> In any case, I wouldn't call it "obvious" that false can be promoted to a null pointer
18:25:03 <Deewiant> In fact I think "obvious if you think about it" is a bit of an oxymoron :-p
18:25:04 <ais523> well, booleans are an integer type...
18:25:14 <ais523> and not really, some things aren't /obviously/ obvious
18:25:14 <Deewiant> Right, but you don't typically think of them as such
18:25:19 <ais523> I do
18:25:23 <ais523> but maybe I'm unusual in that respect
18:25:24 <Deewiant> Most languages don't
18:26:10 <ais523> wow, I'm always amazed at how clean C++'s documentation is, given how ugly what it's trying to describe is
18:26:13 <ais523> it's much better than C's
18:26:51 <Deewiant> You mean the ISO specs?
18:27:19 <ais523> the (insert relevant standards body here) specs
18:27:26 <ais523> I'm not sure who writes them and who just signs off on them
18:29:49 <ais523> hmm, there's something nicely nihilistic about nullptr_t
18:29:59 <ais523> it's a type that only has one possible value, which is nullptr
18:30:14 <ais523> you can create a variable of that type, but can't possibly store anything but nullptr in it, so it's effectively read-only
18:30:50 <ais523> (I wonder if it's nonetheless undefined behaviour to read from an uninitialised variable of that type? it's quite plausible that you could get something other than nullptr if, say, it's implemented as a void*)
18:33:16 <Deewiant> I'd be surprised if not
18:33:37 <Gregor> This MIGHT be the best T-shirt that's ever been on woot: http://shirt.woot.com/friends.aspx?k=20718
18:39:07 -!- Nisstyre has joined.
18:39:07 -!- Nisstyre has quit (Excess Flood).
18:39:50 -!- Nisstyre has joined.
18:39:51 -!- Nisstyre has quit (Max SendQ exceeded).
18:40:34 -!- Nisstyre has joined.
18:50:37 <Phantom_Hoover> Gregor, beautiful.
18:52:23 -!- KingOfKarlsruhe has joined.
18:53:09 <Phantom_Hoover> http://shirt.woot.com/friends.aspx?k=18815
18:53:20 <Phantom_Hoover> I like the way the formula is only vaguely related to the image.
18:59:20 <fizzie> There's that C++ thing they do, where if you have a user type (class) that you want to be testable as a boolean, e.g. if (myobj) ..., they give that class an overloaded operator void*, and then return null/this for false/true, because the void* in such a context gets tested as !=0, so that works; while if you'd provide an operator bool then "myobj1+myobj2" would also be legal, which of course you don't want.
19:00:52 -!- elliott_ has joined.
19:01:00 <elliott_> 20:29:02: <Gregor> Can somebody with Cygwin give me the uname -a output please?
19:01:08 <elliott_> Gregor: Insert standard anti-Cygwin sentiment
19:01:23 <Sgeo> Does Gregor still need that?
19:02:07 <ais523> more wow at C++0xb: the syntax for suffix return value scope is rather reminiscent of Perl 6, but means something entirely different
19:03:38 <Sgeo> $ uname -a
19:03:39 <Sgeo> CYGWIN_NT-6.1-WOW64 Sgeo-PC 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin
19:05:09 <Gregor> Sgeo: Just as loony as I thought >_<
19:05:15 <elliott_> 00:10:58: <ais523> wow, I just got unsolicited email apparently from Google, telling me I should consider applying for a job there
19:05:15 <elliott_> 00:11:03: <ais523> I'm trying to work out if it's spam or not
19:05:15 <elliott_> 00:11:10: <ais523> if it is spam, it's incredibly well done
19:05:15 <elliott_> 00:11:13: <Vorpal> XD
19:05:15 <elliott_> 00:11:23: <Vorpal> nice spam yeah
19:05:18 <elliott_> ais523: probably not spam
19:05:28 <elliott_> Gregor: Why are you supporting Cygwin
19:05:37 <Gregor> I'm not.
19:05:38 <ais523> elliott_: I agree in probably not spam
19:05:44 <Gregor> Somebody asked me for help with a Makefile.
19:05:56 <fizzie> "Wow, 64 bits!" (Yeah, yeah, it's that Windows-on-Windows thing.)
19:06:05 <ais523> although I am a little annoyed that it's written assuming that I'm American (in particular, there's an American phone number with no country indicator there)
19:06:16 <ais523> especially as it's sent to a .ac.uk address
19:06:33 <elliott_> 00:13:03: <ais523> also, "I was impressed to see that you are active in the Open Source Community." amuses me, I wonder what it is that they thought I've done?
19:06:33 <elliott_> likely GNOME, possibly TAEB?
19:06:52 <ais523> it could even be AceHack for all I know, or C-INTERCAL
19:06:57 <elliott_> oh, probably C-INTERCAL
19:06:58 <ais523> I thought of Gnome, but my patches to it are tiny
19:07:00 <elliott_> they sent one to esr, after all
19:07:05 <ais523> well, they're quite large in terms of lines
19:07:06 <elliott_> and then he was promptly a dick about it
19:07:09 <elliott_> err
19:07:10 <elliott_> wait
19:07:11 <elliott_> that was MS
19:07:13 <ais523> but to a relatively minor part
19:07:14 <elliott_> i'm smart
19:07:24 * elliott_ couldn't work at Google
19:09:43 <pikhq> ais523: The North American dialing code is pretty easy to remember, though.
19:09:45 <pikhq> ais523: 1.
19:09:49 <ais523> +1, to be precise
19:10:11 <ais523> but nothing links the phone number to the US but the mention of Mountain View buried earlier in the email
19:10:21 <pikhq> That's irritating.
19:10:31 <elliott_> ais523: are you going to respond? :P
19:10:56 <ais523> I haven't yet, and am too tired to do so coherently
19:10:58 <pikhq> Especially since it's somewhat more normal to leave the 1 at the start...
19:11:06 <elliott_> ais523: that's not an answer :P
19:11:12 <ais523> indeed
19:11:13 <pikhq> (that is *also* the number you need to press to make a long-distance call)
19:11:24 <ais523> I haven't decided yet
19:12:08 <elliott_> my hypothetical employment opportunities are severely limited by having ethics and getting bored easily, oops
19:12:39 <elliott_> 00:20:50: <Vorpal> I have to agree with ais523 on this one
19:12:39 <elliott_> 00:21:12: <ais523> Vorpal: oh no, does that automatically cause elliott to disagree with me?
19:12:51 <elliott_> ais523: the exception to Vorpal being wrong about everything is things that everyone but cheater are right about
19:13:02 <elliott_> which applies to almost every opinion cheater has
19:13:10 <ais523> heh, I thought there might be some sort of ranking algo there
19:13:31 <ais523> I was pretty sure I was being trolled, but decided that the way I'd respond to a troll was pretty similar to the way I'd reply to a deluded non-troll in that context
19:13:35 <ais523> so didn't bother establishing it fully
19:13:38 <elliott_> I've agreed with Vorpal on a large enough number of occasions that I don't think it should be surprising any more, anyway
19:14:05 <ais523> it was more a joke than anything else
19:14:09 <elliott_> 02:44:49: <itidus20> ok heres a topic
19:14:09 <elliott_> 02:45:05: <itidus20> has hello world worn out it's welcome?
19:14:09 <elliott_> Meanwhile, from the worst member of the channel to the best...
19:14:27 -!- monqy has joined.
19:14:36 <elliott_> hi monqy
19:14:43 <monqy> hi
19:15:13 <ais523> elliott_: what's your opinion on the way you can define typesafe printf in C++0xb?
19:15:24 <elliott_> ais523: hmm, be more specific
19:15:28 <elliott_> ais523: or are you asking me for ideas how
19:15:55 <ais523> elliott_: wait for Firefox to unfreeze, and I'll give you a link
19:16:06 <ais523> http://www2.research.att.com/~bs/C++0xFAQ.html#variadic-templates
19:16:40 <elliott_> that, umm, does not look safe
19:16:44 <ais523> it's not really perfect typesafety, as it has to check the format string at runtime
19:16:54 <ais523> but at least it knows it's been given the wrong types
19:17:00 <elliott_> well, it's dynamically safe
19:17:07 <elliott_> Haskell's printf has that too
19:17:33 <ais523> better than C's :)
19:17:48 <elliott_> ais523: considering that non-constant printf strings are basically never the right solution, compilers really have no excuse not to parse the string at this point and warn about it
19:17:50 <elliott_> and they do
19:17:59 <elliott_> well, gcc does, I would be very surprised if clang doesn't
19:18:04 <elliott_> they just need to make them errors by default :)
19:18:50 <ais523> elliott_: there are hundreds of those in the NetHack build
19:18:58 <ais523> I fixed them all for Ace, but most NetHack people just ignore them
19:19:06 <elliott_> ais523: NetHack build erroring out by default? sounds right to me
19:19:21 <ais523> (it turns out that fixing 100 or so warnings, when they're all fixed in the same way, is not difficult with a decent editor, specifically Emacs)
19:19:33 <elliott_> processing code as text :(
19:19:48 * elliott_ mumbles something about @
19:20:14 <ais523> hmm, would it even be physically possible to enter code that produced warnings in @?
19:20:19 <ais523> other than deserialising it?
19:20:47 <elliott_> warnings aren't the same thing as errors
19:20:52 <elliott_> you're describing -Werror
19:20:57 <elliott_> which is insane
19:21:01 * elliott_ cough mcmap cough
19:21:08 <ais523> warnings seem wrong in @
19:21:18 <ais523> surely the compiler should know well enough whether code is correct or not?
19:21:24 <ais523> none of this I'm-not-sure business
19:21:32 <elliott_> I don't see warnings as "I'm not sure"
19:21:36 <elliott_> I see it as "hey, this is confusing"
19:21:48 <ais523> well, confusing code is Bad
19:21:50 <elliott_> (note: I think a lot of warnings should be errors, C standard be damned)
19:22:05 <elliott_> ais523: yes, but forcing someone to fix all bugs up-front is insane
19:22:14 <elliott_> ais523: there's a reason issue trackers exist
19:22:27 <ais523> wow, I didn't expect you to hold that opinion
19:22:31 <elliott_> ais523: well: "confusing code" is much lower priority than "major feature doesn't work"
19:22:36 <elliott_> [asterisk]has a much
19:22:45 <elliott_> ais523: obviously code that violates the language should be rejected up-front
19:22:52 <elliott_> but confusing code? nah
19:22:59 <ais523> "major feature doesn't work" is probably caused by confusing code
19:23:09 <elliott_> ais523: no, it's probably caused by incorrect logic
19:23:17 <elliott_> ais523: confusing code is a symptom
19:23:22 <ais523> well, OK
19:23:25 <elliott_> that's why warnings exist
19:23:39 <ais523> most of the bugs in my huge Ace rewrite of tactical logic seem to have been simple typos that caused compile errors, or reversed tests
19:23:40 <elliott_> ais523: I mean, Shiro currently has a few really hard-to-read functions
19:23:48 <elliott_> they work correctly, but they're very hard to read or modify
19:23:53 <ais523> *huge Planar rewrite
19:24:06 <elliott_> but I would fix some of the mycology BADs before cleaning them up
19:24:11 <ais523> hmm, I just need a name for "generic NetHack-related project I'm involved in and I'm sure you can infer which one from context"
19:24:24 <ais523> because my fingers keep typing one at random
19:24:26 <elliott_> I guessed it was enemy AI
19:24:29 <elliott_> rather than TAEB
19:24:37 <pikhq> ais523: Which VCS are you using?
19:24:53 <ais523> for Planar, darcs
19:25:03 <elliott_> pikhq: why'd you ask?
19:25:05 <ais523> I mostly use darcs or git, depending on how much I have to collaborate with other people
19:25:08 <pikhq> D'awww. If only it were git. "GitHack" seems like a nice name.
19:25:21 <elliott_> that's not a name for what ais523 said
19:25:27 <elliott_> and naming a project after its VCS is insane
19:25:42 <ais523> AceHack is also stored in darcs, incidentally
19:25:45 <pikhq> elliott_: About as insane as naming a project after a network.
19:25:49 <ais523> as is jettyplay
19:25:51 <elliott_> pikhq: ?
19:25:55 <pikhq> elliott_: Nethack.
19:25:56 <ais523> elliott_: NetHack is named after Usenet
19:26:01 <elliott_> well, OK
19:26:06 <elliott_> but it isn't directly obvious
19:26:08 <ais523> they took the generic part of its name to name it after, too
19:26:18 <elliott_> the name GitHack would not really work properly if you moved to sg
19:26:39 <ais523> nor does the name NetHack work properly if you hide from Usenet and don't produce any source or binaries for eight years
19:26:40 <elliott_> hmm, Linus Torvalds has successfully ruined an insult for developers worldwide
19:27:13 <elliott_> ais523: I know how we can call scapegoat's command sg (beyond the fact that nobody uses sg)
19:27:23 <elliott_> ais523: if its parameter is a group, act like sg
19:27:36 <ais523> elliott_: I, umm, have used sg(1) a few times for its intended purpose recently
19:27:48 <ais523> testing the Secret Project
19:27:52 <elliott_> ais523: plz use newgrp instead
19:27:52 <ais523> or rather, testing what happens in its absence
19:27:52 <elliott_> thx
19:28:11 <ais523> it's easier to type than newgrp, and has less confusing semantics
19:28:24 <elliott_> ais523: yes, but I really want to use the command s g :P
19:28:27 <elliott_> sg :P
19:28:43 <ais523> just clash and let the distros sort it out
19:28:58 <elliott_> ais523: I have my doubts that Debian would handle it sanely
19:29:00 <ais523> also, I thought you were opposed to that abbreviation when I first introduced you to Scapegoat
19:29:05 <elliott_> "ah, let's name it sg-version-control instead"
19:29:13 <ais523> elliott_: as in ack-grep, for instance?
19:29:15 <elliott_> ais523: I was, then I realised I was calling it sg anyway, and no other abbreviation seemed nice
19:29:21 <elliott_> they renamed ack to /ack-grep/?
19:29:25 <ais523> yep
19:29:38 <ais523> when one of its selling points is that it's one character shorter to type than ack
19:29:50 <elliott_> 13:27:58: <ais523> I think I have a C/C++ polyglot that acts differently in each language
19:29:50 <elliott_> we did that ages ago :P
19:29:56 <elliott_> ais523: I wonder what else was called ack?
19:30:02 <elliott_> also, s/ack/grep/ on your line
19:30:09 <ais523> elliott_: I instantly went to ack to search for it
19:30:14 <ais523> then realised that made no sense on all sorts of levels
19:30:41 <ais523> (actually, I started trying to type ack, then realised I didn't have a terminal window open, and realised it made no sense halfway to opening the terminal)
19:31:21 <ais523> also, TIL that the same person invented CPL and denotational semantics
19:31:32 <elliott_> $ ack
19:31:32 <elliott_> The program 'ack' is currently not installed. You can install it by typing:
19:31:32 <elliott_> sudo apt-get install ack
19:31:32 <elliott_> ACK is a highly versatile Kanji code checker/converter. ACK can do
19:31:32 <elliott_> reciprocal conversion among Japanese EUC, Shift-JIS and 7bit JIS. JIS
19:31:32 <elliott_> Kata-kana(SJIS Han-kaku Kana) is also supported. Kanji code can be
19:31:35 <elliott_> automatically detected even if the input stream contains Kata-kana
19:31:36 <elliott_> characters. Besides, ACK can be used as a Kanji code checker with very
19:31:38 <elliott_> high detection rate.
19:31:42 <elliott_> ais523: it does make sense
19:31:50 <elliott_> <ais523> also, TIL that the same person invented CPL and denotational semantics
19:31:51 <elliott_> CPL?
19:32:02 <ais523> precursor to BCPL, precursor to B, precursor to C
19:32:54 <elliott_> heh, nice jump to academia
19:32:57 <elliott_> or was it the other way around
19:33:15 <ais523> I don't know
19:33:21 -!- copumpkin has changed nick to Samwell.
19:33:44 <elliott_> 15:19:49: <ais523> oerjan: when Guild Council changed to be entirely elected, I ended up with only 2 votes, out of more than 1000 cast
19:33:46 <elliott_> ais523: aww
19:34:01 <ais523> that just proves I shouldn't go into politics
19:35:16 <ais523> and I know I was one of them
19:36:22 * elliott_ punches Tedius
19:36:36 <elliott_> we _really_ need to deincentivise creation of this crap somehow
19:36:49 <ais523> well, it does have a leftshift-by-one rather than decrement-by-one
19:37:00 <ais523> that makes it, umm, not quite as awful as generic BF equivalents?
19:37:15 <elliott_> 18:25:04: <ais523> well, booleans are an integer type...
19:37:15 <elliott_> I tried to define a strongly-typed C++0x boolean type that you could still use in if statements
19:37:20 <elliott_> it didn't work
19:37:29 <elliott_> my first failed C++0x sudoku session
19:37:42 <monqy> ugh, tedius.
19:38:12 <monqy> and triplet
19:38:23 <monqy> and snack
19:43:51 <elliott_> 18:59:20: <fizzie> There's that C++ thing they do, where if you have a user type (class) that you want to be testable as a boolean, e.g. if (myobj) ..., they give that class an overloaded operator void*, and then return null/this for false/true, because the void* in such a context gets tested as !=0, so that works; while if you'd provide an operator bool then "myobj1+myobj2" would also be legal, which of course you don't want.
19:43:52 <elliott_> Aha
19:43:54 <elliott_> Maybe it is possible.
19:45:16 <fizzie> There was some drawback with the "operator void*" thing too, but I forget exactly what.
19:46:28 <fizzie> Also the ur-classic C89-vs-C++ different-results polyglot, for completeness: #include <stdio.h> \n int main(void) { printf("%d\n", 1//**/2 \n ); }
19:47:03 <ais523> that one also does C89-vs-C99, though, so it's broken nowadays
19:48:29 <elliott_> just combine it
19:48:34 <elliott_> then you can distinguish all three
19:48:47 <elliott_> I wonder if you can do kandr too?
19:49:08 <ais523> clearly, we need an ignorret test for C
19:49:18 <elliott_> it probably exists
19:49:21 <ais523> one single interaction that nonetheless produces different interactions on every single compiler
19:49:55 <elliott_> that sounds difficult
19:49:59 <elliott_> depending on how you define one single
19:50:14 <ais523> indeed
19:50:32 <ais523> you'd have to use more than one in C, however it was defined, unless your definition was stupidly lenient
19:50:43 <ais523> (and using __STDC_VERSION would clearly be cheating)
19:51:10 -!- derrik has left.
19:51:32 <fizzie> Here's one that works for the oft-required combination of C99 vs. pre-ISO C++ (or gcc -fno-for-scope): int main(void) { int i = 0; { for (int i = 1; !i; ); printf("%d\n", i); } }
19:52:42 <ais523> aha, that's an interesting use of scopes
19:52:52 <ais523> I'm not even sure which one's which there
19:53:05 -!- arny91x has joined.
19:53:25 <fizzie> The old-fashioned C++ style had in-for-loop declarations have scope to the end of the block containing the for statement in question.
19:53:39 <fizzie> Current C++ does the C99 thing of limiting the scope to the for statement itself.
19:54:20 <fizzie> The artificial {} is so that there's not two declarations of i in the same scope for the old-style C++, I don't think that would be okay.
19:55:14 -!- elliott_ has quit (Remote host closed the connection).
19:55:44 -!- elliott has joined.
19:56:01 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
19:56:05 <elliott> "If one of Haskell's goals is concurrency, then why is it based on the λ-calculus and not on a process calculus?"
20:05:11 <fizzie> One more imperfect one: enum e { a }; int main(void) { printf("%d\n", sizeof a == sizeof(int)); } /* Guaranteed 1 in C, could be 0 in C++, is for g++ -fshort-enums; because in C, even if the underlying enum type is shorter, the constant values always have type 'int', while in C++ the constants have type 'enum e'. */
20:07:43 <Gregor> elliott: "If the pi calculus' goal is concurrency, why is it so terrible in every way?" :P
20:08:41 <elliott> Gregor: Is it? I don't know much about the pi calculus. A stupid question though :P
20:09:26 <Gregor> What the lambda calculus is to functional languages, the pi calculus is to not a god-damn thing
20:09:52 <elliott> Gregor: That's not necessarily a disadvantage, given that every common concurrency approach sucks to an unimaginable degree
20:10:07 <Gregor> True :P
20:10:40 <monqy> are there any uncommon ones that don't suck
20:10:55 <elliott> monqy: Maybe STM, maybe dataflow architectures???
20:10:57 <elliott> Not really
20:10:58 <monqy> to an unimaginable degree at least
20:11:00 <elliott> CSP is... alright
20:11:06 <elliott> (see Erlang, Go)
20:11:13 <elliott> (also occam, Limbo)
20:11:37 <monqy> I've sort of seen erlang
20:11:40 <monqy> none of the rest though
20:11:44 <monqy> are they any good
20:12:00 <pikhq> Also, I'd really not call concurrency a goal of Haskell.
20:12:37 <pikhq> Abstraction, sure. Concurrency just comes as a biproduct of that.
20:12:40 <elliott> pikhq: It is of modern compiler and library writers
20:12:42 <elliott> And no, it doesn't
20:12:55 <pikhq> ... And people actually focusing on it.
20:13:08 <fizzie> ais523: Here's a nasty cheating can't-really-count-that unportable one too: http://p.zem.fi/zdga (text/plain, a bit overlong to paste)
20:13:11 <elliott> monqy: Go is nothing special at all but it's alright if you want something that is slightly nicer to use than C and can deal with all its limitations
20:13:18 * ais523 looks
20:13:29 <elliott> monqy: Limbo is a Plan 9 thing by the same people as Go, Inferno uses it, it's... a thing?
20:13:44 <elliott> monqy: occam is pretty much CSP: The Language, it's old
20:13:44 <pikhq> Pluses of Go: it's a better C. Minuses of Go: it's a better C.
20:13:46 <elliott> (early eighties)
20:13:49 <ais523> fizzie: oh wow is that cheating, that's beautiful
20:13:59 <ais523> I think you could probably detect Objective-C the same way
20:14:10 <ais523> and specific compilers, and maybe even specific compiler versions, for the OO languages
20:14:23 <elliott> fizzie: zdga?
20:14:35 <elliott> Also, is that even _legal_?
20:15:01 <fizzie> Not really, there's no guarantee even the calling convention matches between C and C++ code.
20:15:08 <fizzie> (Also random name.)
20:15:09 <pikhq> elliott: It's undefined behavior in both languages.
20:15:15 <Gregor> Pluses of Go: It sets forth to be a better C. Minuses of Go: It somehow fails.
20:15:42 <ais523> you know what? I suspect C is likely to be the most durable of, say, the top 10 current programming languages
20:15:45 <fizzie> Is there something else wrong with C except the use of a reserved _-starting identifier?
20:16:20 <pikhq> fizzie: No, that's precisely it.
20:16:23 <oklopol> how about the fact it sucks that ass
20:16:40 <monqy> top 10 current programming languages?
20:17:50 <ais523> via any sensible metric
20:18:42 <elliott> ais523: fwhichvo durable
20:18:52 <ais523> elliott: still in use $x years in the future
20:18:59 <monqy> oh
20:19:02 <ais523> it's quite a weaselwordy statement
20:19:13 <ais523> and in moderately common use, that is
20:19:24 <elliott> ais523: FORTRAN? COBOL?
20:19:36 <oklopol> "<elliott_> Meanwhile, from the worst member of the channel to the best..." <<< why do you keep hurting me like this
20:19:45 <elliott> oklopol: you're joint best
20:19:51 <elliott> but itidus20 is here more
20:19:51 <ais523> elliott: they're about where I expect C to be when the rest of the current top 10 have faded into obscurity
20:20:18 <elliott> ais523: oh, in the top ten
20:20:19 <oklopol> true
20:20:26 <elliott> well, there IS a lot of COBOL and FORTRAN code :)
20:20:30 <monqy> and top ten is usage-based or what
20:20:42 <oklopol> NihilistDandy can play qwop with one hand though
20:21:53 <ais523> monqy: "on any sensible metric"
20:22:04 <oklopol> do we have a page of famous bisexual esolangers yet
20:22:11 <monqy> I'm bad at sensible metrics :(
20:23:26 <monqy> but does this mean any sensible metric would have to place C in the top ten?
20:30:51 -!- arny91x has quit (Quit: KVIrc 4.0.2 Insomnia http://www.kvirc.net/).
20:30:53 -!- boily has quit (Read error: Operation timed out).
20:30:58 <monqy> "An even longer and wordier version of this, where parenthesis are replaced by long "start x" and "end x" statements, and the whole program has to be on one line (just to confuse people):" - list of ideas
20:33:55 <monqy> is there anything good in the list of ideas
20:34:10 <elliott> no
20:34:43 <monqy> :(
20:35:28 <olsner> monqy: there is nothing good, period
20:39:08 -!- ais523 has quit (Remote host closed the connection).
20:41:24 -!- Samwell has changed nick to copumpkin.
20:46:18 <elliott> I wish cabal was less of a pain to use for a developer
20:46:27 <elliott> reconfigure with "--enable-executable-profiling", how convenient
20:48:47 <elliott> oh, and it doesn't do add -rtsopts like that, neat
20:56:02 -!- GreaseMonkey has joined.
21:12:06 <NihilistDandy> lol, π-calculus
21:15:18 <NihilistDandy> oklopol: *Can't* play qwop with one hand, remember?
21:16:23 <NihilistDandy> And I think there should be a page of famous esolangers before they start getting divided on sexual identity lines.
21:16:39 <elliott> NihilistDandy: famous bisexual esolangers are the only ones that matter
21:17:02 <NihilistDandy> elliott: Well, obviously. I just don't want to look biased.
21:17:18 <monqy> did sgeo ever make any languages
21:17:37 <Phantom_Hoover> Yes.
21:17:50 * Sgeo hides somewhere
21:17:56 <Phantom_Hoover> http://esolangs.org/wiki/Special:Search?search=Sgeo&go=Go
21:18:40 <elliott> monqy: PSOX
21:18:43 <elliott> monqy: PSOX PSOX PSOX PSOX PSOX
21:18:53 <monqy> oh that's a language?
21:19:05 <Phantom_Hoover> No.
21:19:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:19:26 <monqy> so just mkbl-ln?
21:19:47 <Sgeo> Does BF-RLE count as a language?
21:19:53 <elliott> PSOX _is_ a language
21:19:57 <elliott> it's a sub-TC one though
21:26:27 -!- FireFly has quit (Quit: FireFly).
21:54:28 -!- Wamanuz has quit (Ping timeout: 252 seconds).
21:55:44 -!- sebbu2 has joined.
21:58:26 -!- sebbu has quit (Ping timeout: 240 seconds).
21:58:26 -!- sebbu2 has changed nick to sebbu.
22:01:00 -!- Wamanuz has joined.
22:07:42 -!- Phantom_Hoover has quit (Quit: Leaving).
22:13:11 -!- GreaseMonkey has quit (Quit: The Other Game).
22:14:42 <monqy> The particular sneakers out of converse is really a just about all time favored. This epic shoe have been around just for a quite a while. Get cheap converse all stars online. This is all for now regarding helping your Converse skor experience.
22:14:46 <monqy> i love these
22:15:05 <elliott> "The particular sneakers out of converse", good esolang name
22:20:03 -!- PatashuDragonite has joined.
22:30:50 <Sgeo> The probability, when choosing a random real between 0 and 1, of choosing 0.5 is 0. Same with the probability of, when choosing a random _rational_ between 0 and 1, of choosing 0.5, is 0. Is the former, in some sense, less likely than the latter, similar to how all of those are more likely than choosing -1?
22:31:50 <elliott> Sgeo: they're not more likely than choosing -1
22:31:53 <elliott> choosing -1 just isn't an option
22:32:52 <Sgeo> So it's incorrect to say that the probability of choosing -1 is 0?
22:34:31 <elliott> Well, the probability of an impossible event is 0.
22:35:47 <Sgeo> Is there a distinction between choosing rational vs choosing real that = 0.5, similar to distinction between "almost never" and "impossible"?
22:36:26 <elliott> Well, almost all reals are irrational.
22:36:42 <elliott> Your chance of picking a rational are 0, which is not true for rationals.
22:37:40 <Sgeo> Is there a way to quantify different "liklihoods" between two probability-0 events?
22:43:49 -!- augur has quit (Read error: Connection reset by peer).
22:45:08 -!- augur has joined.
23:08:46 -!- variable has quit (Ping timeout: 250 seconds).
23:12:56 -!- variable has joined.
23:29:19 <Sgeo> Should I be lolling at Aptana Studio, partially a Ruby IDE, installing some .py stuff?
23:29:43 <Sgeo> Oh, not specifically Ruby focused
23:32:15 <monqy> En forumsektion som handlar om att lokalisera det webbhotell som allra bäst passar just dig bäst. Vad du än letar efter så hittar du det här. Om du fortfarande är osäker på exakt vilket webbhotell du ska välja så är det bara att ställa frågor i forumet så får du snabbt svar.
23:32:21 <monqy> Webbhotell
23:32:23 <monqy> help
23:32:30 <elliott> webbhotell
23:32:58 <monqy> Converse trainers actually are a incredible retro. Chuck taylors has been around for countless years. Notice the right offer on the subject Converse skor billigt information provided as it is meant for entertainment purposes only.
23:33:16 <elliott> "Converse trainers actually are a incredible retro. Chuck taylors has been around for countless years.": my next esolang name
23:35:12 -!- ineiros has quit (Ping timeout: 250 seconds).
23:36:09 <monqy> "My name is Johny, what the F**K?????" bringing up again because classic
23:36:39 -!- olsner has quit (Ping timeout: 276 seconds).
23:36:57 <monqy> "User:Ehird/1st year sobriety and no dating" also good
23:37:26 -!- Wamanuz has quit (Ping timeout: 240 seconds).
23:37:33 -!- Wamanuz has joined.
23:39:40 -!- olsner has joined.
23:40:17 <Sgeo> You know what the best language for me would be?
23:40:25 <Sgeo> Something, anything, that gets me programming again
23:40:26 <elliott> do i want to know
23:40:50 <PatashuDragonite> Goruby
23:40:59 <elliott> PatashuDragonite: r u srs
23:41:03 <elliott> oh that golf thing?
23:41:04 <elliott> lol
23:41:39 <Sgeo> elliott, I know Ruby is ... uglier than Smalltalk, but is it really that bad?
23:42:05 <elliott> PatashuDragonite wasnt talking about ruby.
23:42:07 <elliott> he was tlaking about goruby.
23:42:13 -!- ineiros has joined.
23:42:22 <elliott> do you even know haskell yet, you keep learning all these crappy languages
23:42:47 <Sgeo> Define "know"
23:42:52 <elliott> so no, then
23:43:18 <Sgeo> Well, I learned it in the same sense that I'm "learning" all these languages
23:43:23 <Sgeo> Well, maybe a bit better
23:43:43 <elliott> Write me a Haskell program that prints out the contents of the files named as arguments
23:43:59 <elliott> This should take ten lines at most, ignoring import statements, and one at best
23:45:05 <elliott> Sgeo: Go on (I'm done already)
23:45:08 <Sgeo> I'm allowed to look at documentation, right?
23:45:23 <elliott> Sure, but it should only take one Google (to find out how to read command-line arguments) at most.
23:45:53 -!- pikhq_ has joined.
23:47:28 * Sgeo does some Hoogling
23:47:46 <elliott> If you know how to read command-line arguments, you should be done by now.
23:47:52 * elliott is a fluffy kitten.
23:48:07 <monqy> im a monqy
23:48:44 <Sgeo> Why can't I know how to read command-line arguments but not files?
23:48:46 -!- pikhq has quit (Ping timeout: 260 seconds).
23:49:11 <monqy> they're both really easy
23:49:13 <elliott> That would qualify as "not knowing Haskell", but fine, I'll grant learning that one thing too.
23:49:13 <monqy> ok
23:53:07 <elliott> Sgeo: Doing well?
23:53:17 <Sgeo> Doing ok
23:53:34 <Sgeo> Well, not that ok, but I know where I'm going, I think
23:53:39 <PatashuDragonite> elliot: I don't think I even know how to do that in java >:[
23:53:41 <PatashuDragonite> stupid IO
23:54:21 <PatashuDragonite> i'd need to look up the API for bufferedfilestreamreaderfactory
23:57:55 <Sgeo> @hoogle [IO a] -> IO [a]
23:57:55 <lambdabot> Prelude sequence :: Monad m => [m a] -> m [a]
23:57:56 <lambdabot> Control.Monad sequence :: Monad m => [m a] -> m [a]
23:57:56 <lambdabot> Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
23:58:46 <Sgeo> Ok, must stop rewriting wrongly
23:59:05 <Sgeo> At least, I _think_ I did it wrongly
23:59:16 <Sgeo> I could probably stuff returns to fix it
23:59:42 <Sgeo> So far:
23:59:42 <Sgeo> main = do
23:59:42 <Sgeo> let iostring_list = getArgs >>= map (openFile ReadMode) >>= map hGetContents
2011-08-18
00:00:02 <Sgeo> I'm pretty sure that I can't use map there though
00:00:11 <monqy> do?
00:00:13 <monqy> what's that about
00:00:20 <monqy> why is that there
00:00:22 <Sgeo> monqy, if I find it unnecessary, I'd remove it
00:00:28 <Sgeo> At the end of this writing
00:03:30 <Sgeo> Need imports
00:03:53 <elliott> Don't care about imports
00:03:58 <elliott> Show?
00:04:17 <Sgeo> I still have no idea if it's typed correctly!
00:04:27 <Sgeo> main = getArgs >>= map (openFile ReadMode) >>= map hGetContents >>= sequence >>= putStr
00:04:31 <Sgeo> Still working on checking
00:04:47 <Sgeo> No, just realized it won't typecheck
00:04:51 <elliott> Prelude System.Environment System.IO> :t getArgs >>= map (openFile ReadMode) >>= map hGetContents >>= sequence >>= putStr
00:04:52 <elliott> <interactive>:1:13:
00:04:52 <elliott> Couldn't match expected type `IO a0' with actual type `[b0]'
00:04:52 <elliott> Expected type: [String] -> IO a0
00:04:52 <elliott> Actual type: [String] -> [b0]
00:04:53 <elliott> In the return type of a call of `map'
00:04:55 <elliott> In the second argument of `(>>=)', namely `map (openFile ReadMode)'
00:04:57 <Sgeo> Need to concatenate the strings
00:05:07 <Sgeo> Oh, blah
00:05:26 <Sgeo> I could hack a fix with returns probably
00:05:45 <elliott> Sgeo: You must print out each file as it's read, btw. You can rely on laziness to do this, but if one file takes half a second to read and another half an hour, then the half-second read should get printed before the half an hour starts.
00:05:50 <elliott> (Assuming it's earlier on the command-line.)
00:06:04 <elliott> That should be pretty easy.
00:06:53 <Sgeo> Let me work on getting this to type first?
00:07:31 <elliott> I'm just telling you how the final program needs to work.
00:08:10 <Sgeo> Blargh
00:08:19 <Sgeo> My return hack didn't wor
00:08:39 <elliott> Your implementation of cat has hacks?
00:08:42 <Sgeo> I'm going to use full do-notation first, I think, then work on getting that
00:08:55 <monqy> so sgeo doesn't know haskell
00:09:44 <elliott> He just hasn't finished yet, that's all
00:15:05 <Sgeo> @hoogle [String] -> String
00:15:05 <lambdabot> Prelude unlines :: [String] -> String
00:15:05 <lambdabot> Prelude unwords :: [String] -> String
00:15:05 <lambdabot> Data.List unlines :: [String] -> String
00:15:16 <elliott> Sgeo: concat.
00:15:26 <PatashuDragonite> wouldn't unwords work?
00:15:27 <Sgeo> @hoogle concat
00:15:28 <lambdabot> Prelude concat :: [[a]] -> [a]
00:15:28 <lambdabot> Data.ByteString concat :: [ByteString] -> ByteString
00:15:28 <lambdabot> Data.Foldable concat :: Foldable t => t [a] -> [a]
00:15:55 <Sgeo> Hmm, I probably should avoid straightforward concatenation at this point
00:16:23 <Sgeo> Although I don't see how concat would... oh, derp
00:16:32 <monqy> ???
00:16:52 <Sgeo> type String = [Char]
00:17:17 <Sgeo> ...did I actually forget the syntax for comments in Haskell?
00:18:08 <elliott> --, {-...-}
00:18:15 <elliott> You should not need any comments.
00:19:22 <Sgeo> @hoogle openFile
00:19:22 <lambdabot> System.IO openFile :: FilePath -> IOMode -> IO Handle
00:19:28 <Sgeo> Something's lying to me here
00:19:28 <Sgeo> Oh
00:19:37 <monqy> hm?
00:19:50 <Sgeo> n/m, must have misread that as IOMode -> FilePath -> IO Handle
00:19:51 <Sgeo> before
00:20:05 <Sgeo> Easy enough to fix
00:21:07 <Sgeo> Although it's ugly
00:22:36 <Sgeo> @hoogle (a -> b) -> IO a -> IO b
00:22:36 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
00:22:36 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
00:22:36 <lambdabot> Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b
00:23:47 <Sgeo> WTF am I doing?
00:24:33 <elliott> fmap.
00:24:39 <elliott> Or (<$>).
00:25:10 <Sgeo> I'm pretty sure I'm using it wrongly here
00:26:52 * Sgeo cries
00:27:52 <elliott> Sgeo: You're having an awful lot of troubles writing cat.
00:28:06 <Sgeo> Would be easier if it was one file
00:28:08 <Sgeo> >.>
00:28:25 <Sgeo> Maybe I should just make a function that deals with one file, and just... do it repeately
00:32:08 <Sgeo> printArg :: String -> IO ()
00:32:08 <Sgeo> printArg file = openFile file ReadMode >>= hGetContents >>= putStr
00:32:10 <Sgeo> That was easy
00:32:52 <monqy> there are better ways
00:33:48 <elliott> monqy: Hey, let him write his own pogram.
00:33:49 <monqy> also are you ever closing those files?
00:33:52 <monqy> :(
00:33:54 <elliott> hGetContents closes files.
00:33:58 <monqy> oh
00:34:59 <Sgeo> http://hpaste.org/50411
00:35:17 <Sgeo> Seems to work, not 100% certain if it follows the requirement for dealing with large files
00:35:23 <Sgeo> But I .. think it should
00:35:32 <elliott> Sgeo: It does. (It isn't about size, but latency.)
00:35:43 <elliott> Sgeo: OK, can I ask you to make a simple modification to that program?
00:35:51 <Sgeo> Ok...
00:35:52 <elliott> Before the contents of each file, print the line "--- filename ---" (with no quotes) above.
00:35:53 <monqy> elliott: without tidying it up first? :(
00:36:01 <elliott> monqy: He can write it however he likes.
00:36:05 -!- PatashuDragonite has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
00:38:24 <Sgeo> hpaste gives recommendations...
00:38:34 <elliott> They're just HLint recommendations. Feel free to ignore.
00:38:42 <Sgeo> http://hpaste.org/50412
00:39:28 <elliott> Okay. Here are my solutions (imports Control.Monad and System.Environment):
00:39:29 <elliott> main = getArgs >>= mapM_ (readFile >=> putStr)
00:39:32 <elliott> and
00:39:32 <elliott> main = getArgs >>= mapM_ (\fn -> putBanner fn >> readFile fn >>= putStr)
00:39:33 <elliott> where putBanner = putStrLn . (++ " ---") . ("--- " ++)
00:39:44 <elliott> The first one took about thirty seconds, the latter took about the same time to modify.
00:40:28 <Sgeo> @hoogle (>=>)
00:40:29 <lambdabot> Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
00:42:19 <tswett> Gregor: not to ask you a question I've already asked you before, but what's a better programming language than Python?
00:42:38 <tswett> Python has, like, first-class functions and duck typing and "eval".
00:42:39 <elliott> tswett: Almost every language in existence?
00:42:41 <elliott> (I am Gregor.)
00:42:50 <elliott> tswett: Two bugs and a feature?
00:43:20 <tswett> tswett: and I'm mostly asking about P-languages specifically. Haskell doesn't count.
00:43:36 <Sgeo> P-languages?
00:43:47 <Sgeo> Python doesn't have nice lambdas
00:44:03 <Gregor> <tswett> Python has, like, first-class functions and duck typing and "eval". // One poorly-implemented feature, one nonfeature and one irrelevant feature.
00:44:20 <tswett> Gregor: respectively?
00:44:23 <Gregor> Yes.
00:44:26 <elliott> tswett: P-languages?
00:44:32 <monqy> nonfeature? P-languages? help?
00:44:33 <tswett> elliott: ask Gregor.
00:44:37 <Sgeo> Can Ruby even be said to have first-class functions?
00:44:37 <Gregor> It has 1.5th-class functions, as its lambda syntax is a joke.
00:44:38 <elliott> Gregor: P-languages?
00:44:51 <elliott> Sgeo: It has lambda, so... yes?
00:44:52 <Gregor> elliott: Those languages that start with P: Perl, Python, PHP, Ruby. Yes, Ruby starts with a P.
00:45:12 <elliott> tswett: So you are asking "What's a better language than Python in [list of bad languages]?"
00:45:16 <elliott> Awesome question, man.
00:45:24 <Sgeo> It has a lambda that isn't an object unless you put lambda or proc or something in front
00:45:25 <tswett> It starts with a P, followed by a little backslash, followed by three more letters.
00:45:28 <Sgeo> Which is just... ick
00:45:32 <monqy> ruby lambda is like it makes an object that encapsulates a function doesn't it
00:45:35 <elliott> Sgeo: lambda {|x| puts "Yep this is a lambda."}
00:45:45 <elliott> (lambda (x) (display "Yep this is a lambda.") (newline))
00:45:49 <monqy> if you actually try using functions without putting them in weirdo objects it doesn't work
00:46:01 <monqy> where by using I mean treating them like first-class citizens
00:46:12 <tswett> \x -> putStrLn "Oi ay, lambda"
00:46:13 <elliott> monqy: No wrapping is involved.
00:46:19 <monqy> oh?
00:46:20 <elliott> monqy: It makes the tradeoff that functions apply without needing parentheses.
00:46:27 <elliott> So it's ambiguous with zero-argument applications.
00:46:37 <elliott> So you use method(:foo) instead.
00:46:40 <tswett> Gregor: perhaps my real question is whether or not Ruby is better than Python.
00:46:45 <elliott> Or [ampersand]:foo in recent Rubies as sugar.
00:46:47 <tswett> And, if so, whether Ruby is still shit-level.
00:46:50 <Gregor> I have insufficient experience with Ruby to judge.
00:46:55 <monqy> anyway I dislike ruby
00:46:56 <Gregor> All languages are terrible.
00:46:56 <elliott> I've used Ruby extensively.
00:47:01 <elliott> It's worse than Python and shit-level.
00:47:06 <Gregor> I know Ruby has some inheritance from Perl, which is scary ...
00:47:06 <elliott> Or it's slightly better.
00:47:08 <elliott> It's hard to tell.
00:47:09 <Sgeo> Worse than Python?
00:47:19 <elliott> But basically it's on the same rung as Python so I'd rather die.
00:47:30 <elliott> tswett: Out of curiosity, what are your reasons for excluding Haskell by name?
00:47:45 <monqy> it doesn't start with p
00:47:57 <elliott> monqy: It starts with P as much as Ruby does.
00:48:07 <monqy> ruby starts with p okay
00:48:08 <Sgeo> Or a letter that is almost like a P
00:48:10 <tswett> elliott: it doesn't have runtime compiling. Or runtime setting, for that matter.
00:48:19 <elliott> tswett: Sure it does.
00:48:24 <elliott> http://hackage.haskell.org/package/hint
00:48:24 <monqy> what's runhaskell help
00:48:31 <elliott> tswett: Does this do what you need?
00:48:49 <Sgeo> tswett, syntax-wise, Smalltalk is much nicer than Ruby imo
00:48:49 <Gregor> "P-languages" really means "that family of imperative dynamic languages that are all used for approximately the same purpose and came to exist for pragmatic reasons"
00:48:56 <monqy> unless you want like eval and stuff in which case use one of those funky libraries yeah
00:49:10 <elliott> Gregor: Haskell can be used as an imperative language trivially; as a dynamic language when required pretty easily.
00:49:20 <elliott> Gregor: I'm saying this separately from my usual half-joking fanboyishness.
00:49:38 <elliott> You really can just stuff your entire program in IO if that's convenient :-P
00:49:43 <Gregor> Sure, whatever you say, just face away from me while Haskelljackoffing :P
00:51:27 <monqy> is there a good p-language
00:51:32 <monqy> also why do you want a p-language
00:51:54 <elliott> tswett: I'm not sure what exactly you mean by "dynamic setting", but hint definitely provides the first thing.
00:52:07 <elliott> With much more useful infrastructure than most languages' "eval", I note.
00:56:30 <tswett> Gregor: what's your FAVORITE programming language.
00:56:32 <tswett> Period.
00:58:37 <Sgeo> Ruby has a nicer equivalent to C# properties than either C# or Python, imo
00:58:40 <elliott> Plof 4.
00:58:42 <elliott> Gregor: amirite
00:58:58 <Sgeo> Then again, I forgot what Python's are.
00:59:02 <monqy> what are c# properties and why do you need them
00:59:27 <elliott> tswett: So are you gonna answer me? :-P
00:59:47 <Sgeo> Code that runs when you try to access something like myobj.name or set myobj.name if myobj.name is a property
01:00:13 <tswett> elliott: no, it doesn't have this arbitrary feature that, despite being necessary to what I want to do, I haven't actually told you.
01:00:31 <monqy> feature: not being haskell
01:00:43 <tswett> monqy: remarkably close.
01:00:48 <elliott> tswett: Then what's the feature? I would be very surprised if it were not achievable in Haskell, since I just provided eval.
01:00:55 <Sgeo> http://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx#Y86
01:01:01 <tswett> The feature is being able to turn any value into a string of bytes. This is an antifeature of Haskell.
01:01:09 <tswett> I.e. one of the features of Haskell is that it lacks this feature.
01:01:27 <elliott> tswett: You can serialise any value with a Data instance.
01:01:42 <elliott> tswett: And all the standard types have Data instances.
01:01:49 <elliott> And you can give a Data instance to pretty much any type you want.
01:01:53 <elliott> (It's the generics infrastructure.)
01:01:56 -!- zzo38 has joined.
01:02:18 * Gregor reappears.
01:02:26 <tswett> elliott: so -> has a Data instance?
01:02:30 <Sgeo> Vs the second example in v
01:02:31 <Sgeo> http://www.rubyist.net/~slagell/ruby/accessors.html
01:02:31 <Gregor> <tswett> Gregor: what's your FAVORITE programming language. <elliott> Plof 4. // daaaaaaaaamn rite
01:02:32 <tswett> And IO?
01:02:45 <Gregor> But more to the point, every language is so terrible that that's a difficult question to answer.
01:03:22 <tswett> My favorite programming language is, of course, Jath. Which is, you know, that programming language I'm going to specify and implement one of these days.
01:03:34 <elliott> tswett: Serialising (->) is a bit more difficult, but I think you could do it with the GHC API (if you run the code with the functions through the GHC API).
01:03:34 <monqy> is it a bad language
01:03:36 <tswett> It's going to be exactly like two of the following: Haskell, Lua, Smalltalk.
01:03:43 <elliott> IO is just a function, so that'll give you the rest.
01:04:10 <monqy> haskell is okay. I think I dislike lua. never bothered smalltalk oops.
01:04:13 <elliott> Gregor: I should really finish off my Plof changes so I can play about with implementing Plof-like languages on Fythe :-P
01:05:04 <tswett> In fact, all of the goals of Jath could theoretically be achieved by implementing Haskell in Lua and Lua in Smalltalk. But that's a pretty awful solution.
01:05:27 <elliott> Why do you want it to be like Lua, Lua is awful.
01:05:29 <tswett> So, what is this GHC API? It sounds like an API to GHC, or something.
01:05:30 <pikhq_> Gregor: Though un-Haskell-like, it is entirely feasible to write what amounts to C code in Haskell without too much difficulty
01:05:44 <tswett> Lua has precisely one useful feature, and that's the setfenv function.
01:06:03 <Gregor> pikhq_: Yes, if you want to be ostracized by both communities.
01:06:14 <pikhq_> Your entire program will be in IO, and you'll have enough peek and poke to make anyone sweat, but it's not *hard*.
01:06:19 <elliott> Gregor: Only one might ostracise you.
01:06:26 <elliott> Gregor: Plenty of internal code in e.g. bytestring and the like looks like C.
01:06:36 <elliott> Haskell is a multi-paradigm language.
01:07:05 <monqy> setfenv looks kind of gross
01:07:16 -!- Vorpal has quit (Ping timeout: 240 seconds).
01:07:16 <monqy> surely there's a better way
01:07:22 <elliott> setfenv looks like a great way to break every security guarantee in the world.
01:08:38 <tswett> setfenv is kind of a gross way to do security, yes.
01:08:56 <tswett> Though it is... similar... to Unix's security model.
01:09:04 <Sgeo> tswett, are you looking to make an online nomic like thing?
01:09:21 <tswett> Sgeo: yep.
01:09:29 <Sgeo> What's wrong with the MOO?
01:09:31 <tswett> JathNomic. The *only* nomic.
01:09:39 <tswett> Well... nothing, really.
01:10:15 <Sgeo> Ruby... has some security stuff. But supposedly the built-in stuff isn't meant for defending against malicious code
01:10:16 <elliott> What MOO?
01:10:25 <tswett> LambdaMOO is pretty good at being a MOO, and I would have difficulty building something better.
01:10:36 <tswett> elliott: nomic.zbasu.net, a supposedly-codenomic MOO.
01:10:55 <elliott> tswett: Lemme know how much longer than Normish it lasts
01:10:56 <tswett> It's not actually a nomic, because I haven't gotten around to writing the part that runs code that people vote in favor of.
01:11:01 <tswett> Will do.
01:11:38 <Sgeo> Also, although Ruby's security stuff could partition untrusted from trusted, it would put all untrusted in the same boat I think
01:17:18 <zzo38> I think there should be a function in Haskell of type overrideIO :: SystemInterface -> IO x -> IO x which allows you to have a SystemInterface type telling all function to override kind of I/O actions and then you can override it and it return the proper I/O action which can be main or whatever.
01:25:27 <Sgeo> It's not a bad idea to use continuations in Ruby, is it?
01:25:51 <monqy> ,addquote
01:27:21 <elliott> `dadquote
01:27:25 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dadquote: not found
01:41:08 * Sgeo decides to try "Ruby Koans"
01:42:03 <elliott> `querk
01:42:04 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: querk: not found
01:43:24 <monqy> ruby koans?
01:43:32 <elliott> Sgeo: IM INTERNET FAMOUS BE JEALOUS
01:43:45 <monqy> help
01:44:04 <Sgeo> elliott, hmm
01:44:06 <Sgeo> ?
01:44:14 <elliott> http://contemplatecode.blogspot.com/2011/08/haskell-weekly-news-issue-195.html
01:44:16 <elliott> FAAAAAAAMOUS
01:45:16 <monqy> elliott c++ templates guru
01:45:18 <Sgeo> elliott, lol
01:45:32 <elliott> monqy: Yep
01:46:52 <monqy> what's this trifecta thing
01:47:03 <elliott> monqy: a good parsing library by edwardk
01:47:15 <elliott> monqy: you know how clang has like precise error locations with carets and other things pointing to ranges
01:47:24 <elliott> trifecta gives you that pretty much automagically
01:47:28 <monqy> mmm
01:48:07 <monqy> will give it a look next time I need to parse something
01:48:37 <elliott> I should ask him how fast it is
01:48:55 <elliott> monqy: oh and it does automatic syntax highlighting??
01:48:59 <elliott> so errors get highlighted and stuff...
02:06:35 -!- Nisstyre has changed nick to yourstruly.
02:36:13 <Sgeo> http://stackoverflow.com/questions/3568222/array-slicing-in-ruby-looking-for-explanation-for-illogical-behaviour-taken-fro
02:36:17 <Sgeo> That's entirely "sane"
02:42:50 -!- monqy has quit (Quit: hello).
02:54:52 -!- monqy has joined.
02:58:24 -!- pikhq has joined.
02:58:26 -!- pikhq_ has quit (Ping timeout: 252 seconds).
03:07:51 <Sgeo> Trying to teach lambdas to someone who's being first introduced to them in Ruby
03:07:55 <Sgeo> I'm going to cry
03:10:08 <elliott> Please just never try and teach anyone anything.
03:36:29 -!- oerjan has joined.
03:49:38 <itidus20> lets not wander around the mulberry bush beating our heads
03:50:16 <itidus20> oops i may have misinterpreted the last few posts
03:51:03 <oerjan> `addquote <itidus20> lets not wander around the mulberry bush beating our heads
03:51:05 <HackEgo> 599) <itidus20> lets not wander around the mulberry bush beating our heads
03:51:10 <oerjan> just saving elliott work, here
03:52:10 <itidus20> i kinda did that one on purpose
03:52:24 <oerjan> scandalous!
03:52:43 <itidus20> so.... most aspects of mathematics is considered non-trivial
03:53:08 <itidus20> arithmetic for example involves some memorization of the core set of additions
03:53:24 <itidus20> 4+5=9, 3+3=6, 7+5=12
03:53:33 <oerjan> um that one is pretty trivial, thinks a mathematician
03:54:09 <itidus20> depends... everyone learns it soem time or other
03:54:48 <oerjan> incidentally, homological algebra and probably category theory are known for having nearly all proofs be absolutely trivial routine
03:55:11 <itidus20> what i am heading towards is,
03:55:28 <oerjan> the theorems and definitions are important, but the proofs all go essentially the same way
03:55:28 <itidus20> if the tricky part of addition is memorizing rote single digit additions
03:55:44 <itidus20> what is the tricky part of lambda calculus?
03:56:08 <oerjan> itidus20: if you used binary there wouldn't be any tricky part left to addition. which is presumably why computers do that.
03:56:28 <oerjan> well that and two states being simple for electronics
03:56:50 <itidus20> why doesn't your grandma know lambda calculus?
03:57:10 <itidus20> maybe she does.. i am supposing a lot
03:57:13 <oerjan> in implementations, the tricky part of lambda calculus is frequently getting efficient alpha conversion, i think
03:57:37 <itidus20> why would i expect the local mayor not to know lambda calculus
03:57:40 <oerjan> you either have to make up lots of names on the fly, or use a clever nameless representation
03:58:13 <itidus20> what makes mathematicians privy to an understanding of this thing lambda calculus :D
03:58:37 <itidus20> is it like another language?
03:58:49 <itidus20> i am not fluent in italian for example
03:59:10 <Sgeo> Being able to break if is not a good argument against a language
03:59:16 <oerjan> it's the concept of naming and definition distilled down to its smallest core, i think
04:00:36 <itidus20> i am simply trying to understand what lambda calculus is by defining why i don't know it
04:00:39 <itidus20> hehehe
04:01:34 <itidus20> well..... is it widely useful?
04:01:37 <oerjan> because it has never been declared a skill every citizen needs to know
04:01:43 <elliott> when extended yes
04:01:43 <itidus20> ahh
04:02:06 <elliott> haskell and scheme both derive from lambda calculus in some form
04:03:42 <oerjan> was scheme the first programming language which included lambda calculus properly?
04:03:55 <oerjan> original lisp bungled the scoping
04:03:56 <elliott> well scheme is strict...
04:04:07 <oerjan> oh right, so maybe even scheme didn't
04:04:13 <elliott> lisp had lex scoping before scheme i think.
04:04:26 <elliott> albeit nondefault
04:04:29 <oerjan> hm
04:04:36 <elliott> miranda?
04:04:52 <oerjan> maybe
04:04:56 <itidus20> i guess what i am wondering is what is the crucial bootstrapping concept to understand lambda calc
04:05:08 <itidus20> now this sounds odd to me cos i have a gigantic book on regular calc
04:05:13 <elliott> itidus20: the lambda calculus.
04:05:19 <oerjan> well if we are going to disqualify scheme for being strict, we must disqualify miranda for being statically typed ;P
04:05:27 <elliott> it is unrelated to calculus
04:05:51 <elliott> oerjan: i am sure it can do lc = (lc -> lc)...
04:06:13 <elliott> hm or maybe not
04:06:29 <oerjan> itidus20: church representations is crucial, i think, to understand how lambda calculus can embed all other (pure) programming concepts
04:06:33 <oerjan> *are
04:06:38 <elliott> oerjan: http://en.wikipedia.org/wiki/SASL_(programming_language)
04:06:51 <elliott> untyped, lazy
04:07:06 <oerjan> aha
04:07:22 <itidus20> oerjan: it just seems like it is one concept which no matter how long you look at it, it resists yielding
04:07:34 <itidus20> i am trying to see where i am going wrong
04:07:35 <elliott> lc is easy
04:08:10 <elliott> oerjan: http://en.wikipedia.org/wiki/Kent_Recursive_Calculator seems to be the big leap towards miranda/haskell
04:08:15 <oerjan> itidus20: it is just a bit obfuscated?
04:08:27 <elliott> implemented in bcpl...
04:08:52 <itidus20> is it the case that you have to revise dozens of other concepts to make room for it? :D
04:08:54 -!- pumpkin has joined.
04:08:58 <oerjan> itidus20: maybe it's the core of higher-order functionalness
04:09:12 <elliott> itidus20: no
04:09:21 <itidus20> how hard can 1 concept be, ya know :D
04:09:33 <elliott> lc isn't hard
04:09:39 <itidus20> i wonder how new scientist would explain it
04:09:57 <oerjan> itidus20: because unlike arithmetic, lambda calculus does not talk about anything but itself, so you cannot ground it in anything but itself, without translating to it
04:10:42 <itidus20> ahhh
04:10:48 <oerjan> itidus20: maybe that is it.
04:11:00 -!- copumpkin has quit (Ping timeout: 258 seconds).
04:11:02 <itidus20> (don't worry i ask the buddhists similar questions about nirvana)
04:11:05 <elliott> oerjan: /msg :P
04:11:13 <oerjan> elliott: i noticed.
04:11:23 <elliott> how would new scientist expain nirvana
04:11:38 <itidus20> the best answer i was turned towards was the vacchagotta sutta
04:12:14 <itidus20> you guys might like it
04:12:19 <oerjan> itidus20: of course you can _add_ the ability to talk about other things than just functions, like haskell does
04:12:26 <itidus20> the specific part of it i have in mind anyway
04:12:33 <oerjan> but it's not part of the core
04:13:03 <itidus20> oerjan: ok so.. I intuitively want to link it to other ideas
04:13:12 <itidus20> to exploit things like analogy and metaphor
04:13:22 <elliott> you can't.
04:13:30 <itidus20> and that would be what is hard
04:13:50 <elliott> no. this applies to everything nontrivial.
04:13:59 <elliott> analogies are not knowledge.
04:14:14 <sut-heb> and knowledge not finite
04:15:05 <sut-heb> lol siriously i came here cause i thought this was an occult chat
04:15:13 <sut-heb> programmers in a different sence
04:15:18 <elliott> it is most definitely not
04:15:23 <itidus20> sut-heb: hahahah hahahah
04:15:38 <elliott> freenode is mainly about programming.]
04:15:39 <oerjan> sut-heb: well you're not the first. although it may be rare for them to stay this long...
04:15:53 <sut-heb> cause i find the way you guys speak interesting
04:16:15 <sut-heb> where not to different
04:16:26 <elliott> anyway knowledge is finite
04:16:38 <itidus20> i am a newbie here anyway
04:16:39 <elliott> brain has finite capacity, qed
04:16:47 <sut-heb> conciousness is finite, knowledge is material
04:16:48 -!- MDude has changed nick to MSleep.
04:16:58 <elliott> sigh
04:17:06 <sut-heb> i wont go there
04:17:11 <sut-heb> you guys can get back to your chat
04:17:19 <sut-heb> sorry for the interruption
04:17:35 <itidus20> sut-heb: in reality esoteric programming languages seems to focus on mathematically interesting ones
04:17:42 <itidus20> i am not a mathematician though
04:17:54 <sut-heb> i hate math myself
04:18:13 <itidus20> it may be that i have got it all wrong
04:18:28 <itidus20> and that mathematicians just happen to be the people who are most interested in esoteric languages
04:19:09 <oerjan> well without math, attempts to make esoteric languages tend to end up as just syntactic obfuscation
04:19:27 <monqy> i.e. bad
04:19:35 <sut-heb> In the beginning was the Word, and the Word was with God, and the Word was God
04:19:49 <sut-heb> but we speak of number and symbolism behinde each letter
04:20:11 <elliott> sut-heb: no.
04:20:27 * oerjan should get some popcorn. if he had any.
04:20:35 <sut-heb> each creating there own different manifestation when combiuned with one another, making words manifesdt into physical form
04:20:50 <elliott> technobabble.
04:21:25 <sut-heb> anywys you guys do what you do,
04:21:46 <elliott> ok
04:22:44 <monqy> hi im back from not paying attention
04:22:53 <monqy> did i miss exciting envigourating chat
04:25:06 <oerjan> monqy: nah everyone backed off :P
04:25:15 <monqy> :'(
04:27:41 <zzo38> What are comonads for?
04:27:53 <elliott> things :)
04:27:53 <monqy> comonadic stuff
04:28:23 <monqy> I think one time I almost used comonads but then I didn't
04:30:11 <itidus20> so i have this old ikea catalogue.
04:31:23 <zzo38> Are extract and duplicate like the opposite of return and join?
04:31:30 <elliott> yep
04:37:29 <monqy> so the night before last I had a dream and I remember two interesting enough parts
04:38:26 <elliott> yay
04:38:40 <monqy> there's a human heart on a table and my other is poking it and I tell her not to poke it because she doesn't know what it is for and bad things could happen but she keeps poking it and peeling at it and this frustrated me
04:38:44 <monqy> er
04:38:47 <monqy> other/mother
04:38:55 <monqy> my mother was poking and peeling at the human heart
04:39:02 <elliott> wow
04:39:07 <monqy> I don't think she had gloves on either
04:39:16 <monqy> anyway the other part I remember is
04:39:36 <monqy> I had to go to a book store and help this lady I didn't know (and I don't know why I had to help her) with book carrying or something
04:40:40 <monqy> after doing checkout I realized I wanted to buy some books of my own but I didn't have money on me (but this was weird because I determined this by leafing through a bunch of money I had in my pocket???) so I asked if I could borrow some money and she said sure and walked to her car
04:40:54 <monqy> and drove back and then she was my grandmother and she forgot about the money instead she had teddy bears
04:41:08 <monqy> i think i forgot about the money too until it was too late
04:41:14 <monqy> but the teddy bears were nice
04:41:31 <elliott> lol
04:41:41 <oerjan> <monqy> other/mother <-- i think one is supposed to pay attention to freudian slips when interpreting dreams, just noting :P
04:41:54 <monqy> it was a typo
04:41:57 <monqy> :'((
04:42:08 <oerjan> monqy: no such thing as a typo in this circumstance
04:42:15 <monqy> im shame
04:42:18 <monqy> shame corner
04:42:19 <monqy> crying
04:42:53 <oerjan> that was some reaction. must be a very important slip, then ;P
04:43:34 <monqy> I don't think I knew what the human heart was for either
04:43:43 <monqy> presumably medicine and/or science
04:44:05 <monqy> but poking it was certainly an inappropriate reaction
04:44:09 <monqy> maybe she thought she was cleaning it
04:44:11 <oerjan> well the _obvious_ interpretation is that it's _your_ heart somehow.
04:44:25 <monqy> have you tried interpreting my other dreams
04:44:31 <monqy> like the one where my family dies then i get raped
04:44:41 <oerjan> ...let's not.
04:44:48 <sut-heb> lol
04:45:11 <sut-heb> siriously why not help this man if you can?
04:45:38 <zzo38> Can you interpret *my* dream with insufficient information?
04:45:53 <oerjan> sut-heb: because i just got an intuitive feeling in _my_ heart that i've gone too far.
04:46:01 <sut-heb> no but i can with relevent sarcasm
04:46:14 <monqy> or for a lighter dream, perhaps three nights ago's, when I had to help my sisters with recycling education by putting inflatable cans in a bin but instead i wanted to eat them and picked them up with my mouth and chewed on them before putting them in the bin
04:46:50 <monqy> or the one with the soup. I think that one's in `quote, so it's convenient
04:47:06 <sut-heb> sorry im very intuative but that feeling does not come across
04:47:20 <itidus20> monqy: lets not rush this
04:48:08 <itidus20> when you figure out whats going on in your dreams you may want a shot of whiskey
04:48:22 <monqy> im underage
04:48:38 <itidus20> underage with a mensa-like iq?
04:48:48 <monqy> sure
04:48:51 <itidus20> wow
04:48:55 <oerjan> itidus20: that's like the standard for this channel.
04:49:08 <oerjan> it's not mandatory, mind you.
04:49:10 <itidus20> i'm 29 :-s
04:49:16 * oerjan is 41
04:50:18 <zzo38> I think once I had a dream where it changed every time I blink.
04:50:29 <itidus20> monqy: ok so i'll break this down for you a bit
04:50:58 <itidus20> my brother recently gave me a book he has got for himself entitled "letting go of shame"
04:51:11 <itidus20> so its all about the shame thing
04:51:34 <zzo38> Now you need to give him a book entitled "letting go of book"
04:52:02 <sut-heb> mensa people read this material?
04:52:13 <itidus20> im not mensa related
04:52:27 <itidus20> but... i mean.. the general intelligence in this room is very high is what i meant
04:52:36 <sut-heb> indeed
04:52:40 <itidus20> i feel pretty dumb in here
04:52:46 <sut-heb> why?
04:52:48 <itidus20> but don't get me wrong.. my ego is huge
04:52:59 <sut-heb> no one's stupid
04:53:01 <monqy> your ego is huge?
04:53:15 <itidus20> yup
04:53:21 <monqy> I'm honestly surprised
04:53:27 <itidus20> or it might not be
04:53:37 <monqy> maybe I'm bad at judging ego size
04:53:39 <zzo38> I refuse to be a member of Mensa. I know other people too who have refused, but I don't know whether or not it is same reason
04:53:42 <itidus20> it has been cut down to size by some genuinely smart people
04:53:46 <itidus20> it used to be huge perhaps
04:54:02 <oerjan> huh haskell's > literate programming style was borrowed from miranda
04:54:24 <sut-heb> don't worry your ego will be a driving force, it was intraduced to the human race, for its ability to teach the faculty of knowledge
04:54:32 <itidus20> monqy: it was smart until i actually joined IRC and surrounded myself with people who actually do things
04:54:48 <itidus20> i mean.. ego was big^
04:54:58 <zzo38> oerjan: I did not know that.
04:55:10 <itidus20> and it dawns on me... wow i am really dragging my boots
04:55:29 <itidus20> but also.. a few guys teaching me things showed me how im not nearly as smart as i thought i was
04:56:41 <itidus20> having said all that.. i don't subscribe to IQ as a meaningful measure anyway
04:58:32 <oerjan> zzo38: well it should not be surprising, haskell borrowed a _lot_ from there. in fact looking at wikipedia's miranda examples i only notice minor differences in syntax.
04:58:35 <zzo38> I define your IQ as what would be your score on an ideal IQ test, where 100 is defined as average. It is correlated but not the same as intelligence. And even intelligence cannot really be defined by any numbers since it is more complicated than that. (Even though IQ stands for "Intelligence Quotient"; well, there is simply not better words for it)
04:59:11 <oerjan> || for comments, ~= for equality, * for a type variable
04:59:36 <zzo38> Monad axioms: Kleisli composition forms a category. [It is haiku form]
04:59:58 <oerjan> oh wait there's this syntax which haskell doesn't have: powers_of_2 = [ n | n <- 1, 2*n .. ]
04:59:58 <pikhq> itidus20: I'd argue that IQ is actually a meaningful measure *in its original intent*.
05:00:03 <sut-heb> everyone has there own individual monad
05:00:04 <pikhq> Namely, as a measure of mental *disability*.
05:00:29 <pikhq> In this, it seems to function. Imperfectly, but meaningfully, nevertheless.
05:00:44 <zzo38> pikhq: Maybe it might.
05:01:00 <zzo38> That seems a bit more like what it seems to do to me, a bit.
05:01:24 <sut-heb> three hemispheres of the brain
05:02:09 <zzo38> sut-heb: What does that mean? For everyone to have their own monad and so on
05:02:29 <monqy> perhaps sut-heb monads are not our monads
05:02:40 <oerjan> <zzo38> Now you need to give him a book entitled "letting go of book" <-- i saw a comic like that recently, unfortunately it was in norwegian. someone sold a woman a bunch of self-help books, and at the end suggested something like "How to cure addiction to self-help books."
05:03:08 <sut-heb> no way
05:03:31 <zzo38> oerjan: Thank you for telling me that
05:04:46 <elliott> sut-heb: hemisphere implies half
05:04:50 <elliott> there are exactly two, never three.
05:06:05 <sut-heb> according to todays material science yess
05:06:18 <oerjan> so what's greek for one third...
05:06:35 <sut-heb> dont know
05:06:40 <elliott> sut-heb: no, that is simply the definition of hemisphere.
05:06:44 <sut-heb> and don't care to impress
05:06:46 <elliott> if you have three, you are talking about something else.
05:07:38 <sut-heb> not its there atrophied from early age
05:07:39 <oerjan> zzo38: i suspect sut-heb is referring to leibnitz's monads, which are a term from philosophy not mathematics
05:07:53 <sut-heb> due to hormone production
05:08:03 <oerjan> *leibniz's
05:08:32 <elliott> sut-heb: you are not saying anything that has meaning.
05:08:35 -!- sut-heb has left.
05:08:38 <oerjan> even if leibniz also did math
05:08:39 <elliott> there we go
05:08:46 <elliott> (if oerjan yells at me i'll bite his head off)
05:09:45 <oerjan> i really cannot say you were particularly rough there. pedantic yes, but not insulting...
05:09:54 <itidus20> elliott: i must say that it is from such things i fled yahoo
05:10:08 <elliott> oerjan: i was very careful :)
05:10:20 <elliott> but c'mon, three hemispheres is possible if you ignore current material sciences? wat.
05:10:31 <itidus20> ok guys i will give my interpretation
05:10:36 <monqy> ooh
05:10:51 <oerjan> elliott: he seems not to understand a priori concepts
05:11:01 <oerjan> aka definitions
05:11:09 <elliott> oerjan: isn't that basically what occultism is based on?
05:11:11 <itidus20> he wanted to say things which are designed to provoke reactions and confusions rather than to express anything
05:11:21 <elliott> "let's redefine things: now we're less constrained."
05:11:25 <itidus20> but that is perhaps being a bit harsh
05:11:35 <itidus20> i am biased
05:13:52 <zzo38> Is there any rules for how the "fail" command for Haskell monads is supposed to be?
05:14:21 <oerjan> elliott: there are times when redefining things is the right thing to do, mind you. if the original definitions are not what you need.
05:15:05 <elliott> oerjan: you could just make up a new name.
05:15:13 <elliott> zzo38: no. we don't talk about fail. it shouldn't be in Monad
05:15:35 <elliott> (there's fairly universal agreement on this in the community)
05:16:01 <oerjan> zzo38: it mixes part of the meaning of mzero with giving pattern matching errors, so it will vary from monad to monad what you want.
05:17:16 <oerjan> if your monad has room for representing error messages, you generally want to preserve those in fail, otherwise you'd use a suitable zero element.
05:17:26 <elliott> (often _|_)
05:17:30 <elliott> (i.e. fail = error)
05:17:33 <elliott> erm
05:17:36 <elliott> (i.e. fail = return . error)
05:17:39 <oerjan> mzero >>= f = mzero is a commonly wanted rule, i think
05:17:51 <oerjan> but not always respected
05:18:03 -!- Patashu has joined.
05:18:31 <oerjan> and you could use that for fail too
05:18:36 <elliott> hey oerjan shouhld i a slep... also monqy can opinions.........
05:18:51 <oerjan> slep gud
05:18:57 <elliott> hmmmmmmmmm
05:19:00 -!- GreaseMonkey has joined.
05:19:00 -!- GreaseMonkey has quit (Changing host).
05:19:00 -!- GreaseMonkey has joined.
05:19:03 <elliott> but if i'm coding
05:19:04 <elliott> what then?
05:19:14 <elliott> finally a question oerjan cannot answer.
05:19:16 <zzo38> oerjan: I suppose that rule makes some sense
05:20:14 <oerjan> <elliott> (i.e. fail = return . error) <-- the default has no return
05:20:23 <elliott> oerjan: hm rihgt
05:20:26 <elliott> becaue that breaks the rul
05:20:26 <elliott> ok
05:20:42 <quintopia> i agree with sleeping
05:20:47 <quintopia> you aren't typing well
05:20:53 <quintopia> surely your code must be suffering
05:20:54 <elliott> on prupose......
05:20:58 <oerjan> elliott: does your continued coding make the program more or less correct at this point? if the latter, slep.
05:21:15 <itidus20> i suppose i provoked him to that subject anyway talking about "asking buddhists about nirvana"
05:21:18 <elliott> oerjan: wait, you have a methodology that makes changes improve a program's correctness on average?
05:21:22 <elliott> oerjan: that's a fucking breakthrough
05:21:45 <oerjan> elliott: ok then, what about "more or less likely to compile" then
05:22:28 <elliott> oerjan: it's haskell, what's the difference?
05:22:29 <monqy> did someone say my name im bad at slep poinions hlep
05:23:02 <elliott> ...
05:23:02 <elliott> help
05:23:03 <elliott> help
05:23:03 <elliott> help
05:23:04 <elliott> help
05:23:04 <elliott> help
05:23:05 <elliott> hepl
05:23:06 <oerjan> hlep hte slep
05:23:06 <elliott> hlep
05:23:08 <elliott> help
05:23:10 <elliott> help
05:23:12 <elliott> help
05:23:15 <elliott> help
05:23:17 <quintopia> /kick elliott
05:23:29 <elliott> quintopia: help
05:23:42 <quintopia> i tried but i have no @-hat
05:23:48 <elliott> oerjan: help
05:24:13 <elliott> ...
05:24:14 <elliott> oerjan: help
05:24:53 <oerjan> is there a way in irssi to send a message to someone without opening a new window even if it's otherwise the default? it's somewhat annoying to get a new window to chanserv just for op'ing myself
05:25:01 <elliott> /msg foo bar?? does that not work
05:25:07 <elliott> also chanserv can kick for you
05:25:08 <elliott> i think
05:25:23 <oerjan> elliott: the point here is "without opening a new window"
05:25:32 <elliott> /msg doesnt oepn window isn xchat
05:26:05 <oerjan> um the point is i _do_ like to have it as default when talking to _persons_
05:26:16 <oerjan> it's just for the one use with chanserv
05:26:28 <elliott> oerjan: /raw PRIVMSG ...
05:26:35 <oerjan> hum...
05:28:19 -!- ChanServ has set channel mode: +o oerjan.
05:28:24 <oerjan> ah
05:28:46 <elliott> hepl
05:28:48 <elliott> monqy: help
05:28:54 <elliott> monqy: help!!!!!!!!!!!
05:28:55 <elliott> help
05:28:55 -!- elliott has left ("Leaving").
05:29:00 -!- elliott has joined.
05:29:01 <elliott> help
05:29:10 <monqy> help
05:29:13 <elliott> help
05:29:21 <elliott> monqy: help
05:29:43 <monqy> oerjan: for doing the thing without opening query window, I think it's /^msg ???
05:29:51 -!- oerjan has set channel mode: +b *!*elliott@unaffiliated/elliott.
05:29:52 -!- oerjan has kicked elliott elliott.
05:29:55 <monqy> oerjan: at least that's what I use for doing *serv stuff
05:30:01 -!- oerjan has set channel mode: -o oerjan.
05:30:37 <oerjan> monqy: did you see anything?
05:30:39 <monqy> yes
05:30:48 <oerjan> ok then
05:30:50 <monqy> "testing that" or some such; I closed the query window
05:30:59 <oerjan> yep
05:32:31 -!- augur has quit (Read error: Connection reset by peer).
05:34:39 <pikhq> Aren't opioids supposed to be somewhat dramatic analgesics with a sedative effect?
05:34:54 <pikhq> This seems quite in contrast to my current experience.
05:35:20 <oerjan> you shouldn't talk about your heroin addiction on channel, pikhq
05:36:01 <pikhq> oerjan: Actually, I recently had my wisdom teeth extracted and was prescribed vicodine (which is a mixture of hydrocodone & paracetamol).
05:36:31 <oerjan> ah.
05:36:52 <pikhq> Erm, I think it's vicodin.
05:37:26 <pikhq> Why they put the paracetamol in there is beyond me.
05:37:51 <pikhq> Only real effect of that is to make overdosing toxic.
05:38:31 <pikhq> Oh, right, War on Drugs. That's considered desirable.
05:38:38 <pikhq> Because derp.
05:39:24 -!- evincar has joined.
05:39:59 <evincar> Is there anything like a Programming Language Genome Project out there?
05:40:16 <evincar> If so, does anyone in here think it'd be worthwhile?
05:42:36 <quintopia> to chart the relationships between existing programming languages?
05:43:09 -!- augur has joined.
05:43:36 <evincar> quintopia: Yes, and their characteristics.
05:44:07 <quintopia> i approve. get started immediately.
05:44:18 -!- Nihilist1andy has joined.
05:44:26 <evincar> I may do, but probably not immediately.
05:45:01 <evincar> Besides, it'll need a certain amount of community involvement, and for that it needs momentum, and for *that* it needs a significant time investment on my part.
05:46:00 <quintopia> right
05:46:06 <quintopia> so when you make the investment
05:46:09 <quintopia> we'll think about it
05:46:21 -!- NihilistDandy has quit (Ping timeout: 260 seconds).
05:46:57 <evincar> I guess it wouldn't be terribly difficult to at least come up with an initial set of "genes".
05:46:59 <monqy> oerjan: elliott politely requests for you to "umbam" him
05:47:12 <evincar> Just an afternoon of Wikipedia browsing.
05:47:36 <evincar> monqy: wo hoppon?
05:47:45 <monqy> elliott got bamed
05:48:06 <evincar> Because...?
05:48:22 <monqy> requested help
05:48:22 <quintopia> he asked to be
05:48:36 -!- ChanServ has set channel mode: +o oerjan.
05:48:42 <evincar> Huh.
05:48:57 -!- oerjan has set channel mode: -b *!*elliott@unaffiliated/elliott.
05:48:59 -!- elliott has joined.
05:49:03 <elliott> HI HI!!!!!!!!!!!!!!!!!!!!!!v
05:49:04 <elliott> HI!
05:49:08 <monqy> hi
05:49:09 <Patashu> what kinds of things would you distinguish programming languages by? functional vs imperative vs declarative? how they approach syntax?
05:49:12 <elliott> HI!!!!!!!!!!!
05:49:17 <elliott> hi
05:49:17 <elliott> HI!
05:49:21 <elliott> HI!!!!!
05:49:29 <Patashu> how good they are for golfing?
05:49:32 <monqy> Patashu: semantics, idomatic style
05:49:38 <elliott> im idiomatic
05:49:41 <elliott> but my mother says im special..........
05:49:42 -!- oerjan has set channel mode: -o oerjan.
05:49:47 <elliott> even though everyone else says im an idiom.......
05:49:49 <Patashu> e.g. http://golf.shinh.org/lranking.rb
05:49:52 <elliott> I DONT KNOW WHO TO BELIEVE......>>>???????
05:49:56 <elliott> sorry whom
05:50:01 <monqy> Patashu: golfability wouldn't be any good
05:50:04 <monqy> Patashu: as a metric
05:50:12 <quintopia> isnt there a fourth type? like besides functional vs imperative vs declarative
05:50:16 <quintopia> i forget the spectrum
05:50:16 <evincar> Patashu: I think I would ignore that some genes are apparently mutually exclusive, in favour of simply stating "this language has elements of this gene".
05:50:17 <elliott> quintopia: banana
05:50:28 <monqy> isn't declarative an umbellra term
05:50:32 <oerjan> <elliott> HI!!!!!!!!!!! <-- elliott is the Winslow?
05:50:42 <elliott> windows is slOW????????
05:50:56 <evincar> So not "versus", but yes, functional, imperative, concatenative, block-structured, etc.
05:51:03 <elliott> oerjan: ...help
05:51:40 <Patashu> actor oriented is another
05:51:48 <Patashu> like stackless python
05:52:46 <oerjan> business oriented
05:52:47 <evincar> There are loads. Point is, you have some genes, a gene has a name and a description, and a language is tagged with any number of genes.
05:53:00 <evincar> Users can propose new genes, which are approved by mods.
05:53:07 <monqy> hi
05:53:08 <elliott> i ont were geans they eare not comfortable.............
05:53:20 <monqy> I don't either
05:53:44 <monqy> evincar: what
05:53:55 <Patashu> You should make it like danbooru.donmai.us
05:53:58 <evincar> Each language would probably have a list of "related" or "ancestor" languages as well.
05:54:04 <Patashu> An image uploaded per language and you add tags to it
05:54:07 <oerjan> ils ont les gents
05:54:07 <elliott> im a sdojif
05:54:24 <oerjan> clearly elliott is failing at french
05:55:30 <evincar> Patashu: Uh, minus the images, yes.
05:55:37 <evincar> Am I really making an imageboard without images?
05:55:41 <evincar> Is that what programmers like?
05:55:42 <evincar> :(
05:55:49 <elliott> death.com: a scarey site
05:55:56 <elliott> wow ive never been to death.com what is it -- oh its parked
05:56:01 <elliott> "rest in peace" thanks death.com
05:56:05 <elliott> http://death.com/blank.gif <-- picture of death
05:56:09 <Patashu> Why is it that visual studio 2010 crashes other programs -even while it's not running-
05:56:11 <elliott> zoh thats not it...
05:56:41 <elliott> http://death.com/sitetypes/site-images/death_BIG.jpg
05:56:41 <elliott> death
05:59:50 <elliott> http://en.wikipedia.org/wiki/Me_at_the_zoo
05:59:51 <Sgeo> Ruby:
05:59:51 <elliott> me at the zoo
05:59:52 <Sgeo> nil is a normal object
05:59:52 <Sgeo> You can never get a null pointer error!
05:59:55 <Sgeo> Fuck you
05:59:58 <elliott> me at the zoo
06:00:01 <Sgeo> Just... fuck you for saying that
06:00:14 <elliott> Sgeo: enjoy over hostility
06:00:15 <Sgeo> Mr... Weirich
06:00:25 <elliott> ill go tell weirich you said fuck you
06:00:54 <evincar> Run and tell that.
06:01:06 <Sgeo> http://onestepback.org/articles/10things/9everythingisanobject4.html
06:01:21 <quintopia> Sgeo: what. you can do nil.function for any function without problems?
06:01:22 <elliott> nobody cares
06:01:30 <elliott> quintopia: can in objc
06:01:49 <quintopia> really? huh
06:01:54 <Sgeo> It's just... pointlessly gloating. Getting rid of "Null Pointer errors" in such a way does not eliminate problem that null caues
06:01:57 <Sgeo> causes
06:02:02 <elliott> quintopia: just returns nil
06:02:04 <elliott> Sgeo: nobody cares
06:02:26 <elliott> also that's ancient Copyright 2005, 2006 by Jim Weirich (All Rights Reserved)
06:02:30 <elliott> the language has had a major revision since then
06:03:44 <evincar> Dude. 16th-century word for tattletale: pickthank.
06:03:49 <evincar> Let's bring that shit back.
06:04:22 <monqy> I dunno man
06:04:26 <evincar> (I'm American. I am allowed my occasional "dude" and "ain't".)
06:04:27 <monqy> sounds dangerous
06:04:29 <quintopia> in the 50s they called it singing
06:04:52 <elliott> WHAT IFE,
06:04:54 <elliott> I WENTE TO BEDE,
06:04:58 <evincar> They did a lot of things singing in the 50s, or so I'm told.
06:05:06 <elliott> -----__>>>>>>>>>>>>>>>>>>>>>
06:05:12 <quintopia> elliott: was it venerable?
06:08:28 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
06:09:20 -!- elliott has quit (Ping timeout: 246 seconds).
06:11:01 <evincar> So I realised with that language I was working on that I want concatenative semantics but I was trying to do everything applicatively.
06:11:25 <evincar> It didn't quite break down (because I introduced composition placeholders) but it did get internally messier than I wanted.
06:11:44 <evincar> So I'm making a concatenative language instead.
06:15:12 <oerjan> <elliott> tswett: Serialising (->) is a bit more difficult, but I think you could do it with the GHC API (if you run the code with the functions through the GHC API).
06:15:28 <oerjan> i think that was part of the cloud haskell project
06:17:58 -!- zzo38 has quit (Remote host closed the connection).
06:32:00 -!- CakeProphet has joined.
06:45:48 -!- oerjan has quit (Quit: leaving).
06:54:46 -!- CakeProphet has quit (Quit: Reconnecting).
06:55:02 -!- CakeProphet has joined.
06:55:03 -!- CakeProphet has quit (Changing host).
06:55:03 -!- CakeProphet has joined.
06:55:20 <CakeProphet> heyo
06:57:13 <pikhq> Recovery from surgery seems to make me really hungry. I've been eating like a friggin' hobbit.
06:58:10 <evincar> pikhq: Breakfast, second breakfast, elevensies, lunch, afternoon tea, dinner, supper, dessert...am I missing anything?
06:58:14 <evincar> Oh, midnight snack.
06:58:17 <evincar> And a pint round the pub.
06:58:21 <evincar> (Yes it does come in pints.)
06:58:44 <pikhq> I've been omitting the pint, because alcohol + paracetamol = dead.
06:58:51 <evincar> Good call.
06:59:53 <evincar> For those of a LOTR bent in here, anyone else heard "The Lord of the Books of the Fifty-Five Arse-Hymens of Stone"?
06:59:55 <CakeProphet> ..so I made a COMPLETELY REASONABLE proof of concept for my client.
07:00:10 <evincar> CakeProphet: Your emphasis makes me suspicious.
07:00:41 <itidus20> i have lotr and the hobbit on my shelf but not read
07:00:46 <CakeProphet> and he didn't want it, because it has to fetch the image twice in order to display a website and also display an image from the website in a seperate window.
07:00:47 <itidus20> i did make some headway into the hobbit though
07:01:05 <CakeProphet> >_> and I have no idea how I can not fetch it twice while doing that, with these really terrible webkit bindings.
07:01:14 <CakeProphet> I have no access to the image data, I have to fetch it twice.
07:01:31 <pikhq> itidus20: TBH, LotR is not a great book.
07:01:35 <evincar> itidus20: I couldn't get through LOTR proper, but found The Hobbit enjoyable.
07:01:44 <coppro> what pikhq said
07:01:47 <coppro> the writing sucks
07:01:48 <pikhq> The setting's brilliant, the story's decent, I suppose, the writing is *utterly terrible*.
07:01:56 <pikhq> The Hobbit is genuinely good, though.
07:01:57 <coppro> HEY LOOK A LEAF
07:02:07 <coppro> LET ME SING A SONG ABOUT THAT LEAF
07:02:09 <itidus20> heh
07:02:25 <coppro> ANYONE ELSE KNOW THE TUNE?
07:02:28 <coppro> ITS OK
07:02:45 <fizzie> IF you can't get through LOTR proper, there's always http://flyingmoose.org/tolksarc/book/
07:03:04 <coppro> or the movies
07:03:12 <evincar> http://www.youtube.com/watch?v=-nJ4Voyrk9U
07:03:25 <CakeProphet> also, I'm pretty sure webkit uses a cache... so fetching an image twice = not a big deal
07:03:29 <itidus20> i have the movies on my pc
07:03:29 <evincar> (LotBot55AHoS)
07:03:43 <itidus20> we steals them and pirates them
07:03:56 <itidus20> oops... i was just acting in character
07:04:18 <fizzie> CakeProphet: Well, there's your problem: you made a reasonable proof-of-concept for an unreasonable client. You should have made an unreasonable one, to avoid polarity conflicts.
07:04:49 <itidus20> i saw precious at the cinema though
07:04:59 <itidus20> or did i? i forgets
07:17:19 <CakeProphet> fizzie: perhaps
07:35:03 -!- aloril has quit (Ping timeout: 276 seconds).
07:36:26 <Sgeo> Well, this was the first Station V3 that actually made me somewhat kindof smile in a while
07:36:31 <Sgeo> http://www.stationv3.com/d/20110818.html
07:47:41 -!- aloril has joined.
07:50:57 -!- sebbu2 has joined.
07:50:57 -!- sebbu2 has quit (Changing host).
07:50:57 -!- sebbu2 has joined.
07:51:24 -!- sebbu has quit (Ping timeout: 252 seconds).
07:51:45 -!- sebbu2 has changed nick to sebbu.
08:01:07 -!- Vorpal has joined.
08:09:05 -!- Lymee has quit (Quit: brb).
08:13:12 -!- FireFly has joined.
08:13:59 <Vorpal> I loaded a heavy modern game under wine and under real windows 7. From the same physical disk. The wine loading time was about 1/10th of the windows one. Same graphical settings too and everything. Huh?
08:14:15 <Vorpal> doesn't make any sense, unless windows really sucks at something
08:14:28 <Vorpal> neither was cached, both after clean reboot
08:16:59 -!- evincar has quit (Quit: leaving).
08:19:05 <Patashu> maybe it does something the first time it ever runs?
08:19:16 <lifthrasiir> Vorpal, does the game run flawlessly?
08:32:50 <itidus20> no but it runs the game without flaw
08:33:00 <itidus20> zing!
08:33:48 -!- Taneb has joined.
08:33:54 <Taneb> Hello
08:48:25 -!- FireFly has quit (Quit: FireFly).
09:34:13 <oklopol> don't tell FireFly i said this but i'm gonna have a beer with him someday
09:34:41 <oklopol> suddenly, huge truck outside starts playing jingle bells
09:35:37 <oklopol> beepbeepbeep, beepbeepbeep, beepbeepbeeeeeepbebeeep. actually it was just the first two repeated but i'm sure that's the interpretation the engineer was going for.
09:37:57 -!- cheater has joined.
09:42:37 -!- cheater has quit (Ping timeout: 240 seconds).
10:00:09 -!- lifthrasiir has quit (Quit: s/screen/tmux/g).
10:00:16 -!- lifthrasiir has joined.
10:15:37 <Taneb> I've just had a thought.
10:15:49 <Taneb> There're no geordie programming languages
10:16:19 <Taneb> I may make one called YI-pet
10:22:48 <Taneb> a is a buk, liek
10:22:55 <Taneb> b is a bi, liek
10:23:49 <Taneb> b writes in a "A'reet, world", liek
10:25:01 <Taneb> a hoys mesel aall awer toon
10:25:09 <Taneb> leg it!
10:25:27 <Taneb> Hello world in YI-pet
10:30:16 <monqy> any interesting semantics or even syntax, or is it all just wacky flavour?
10:33:12 -!- monqy has quit (Quit: hello).
11:13:35 -!- GreaseMonkey has quit (Quit: The Other Game).
11:47:19 -!- boily has joined.
13:08:24 -!- copumpkin has joined.
13:21:33 <Taneb> If we define the T-Combinatory expressions as a set of all Combinatory expressions C such that Cab reduces to either a or b
13:21:43 <Taneb> We don't really get anywhere, do we?
13:22:45 <Taneb> K is in this set, as is KI, and SK
13:26:07 <Taneb> But I and S are not
13:33:00 -!- MSleep has changed nick to MDude.
13:34:19 -!- lupine_85 has joined.
13:34:37 -!- lupine_85 has left ("Leaving").
13:47:25 -!- derrik has joined.
13:56:49 -!- variable has quit (Quit: I found a 1 /dev/zero).
13:59:10 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:06:55 -!- copumpkin has quit (Remote host closed the connection).
14:07:21 -!- copumpkin has joined.
14:48:41 -!- Taneb has quit (Ping timeout: 260 seconds).
14:51:20 -!- Phantom_Hoover has joined.
14:53:30 -!- BeholdMyGlory has joined.
14:53:36 -!- BeholdMyGlory has quit (Changing host).
14:53:36 -!- BeholdMyGlory has joined.
15:08:00 <Vorpal> <lifthrasiir> Vorpal, does the game run flawlessly? <-- under wine? Not quite, some graphical glitches due to a miss-compiled translation from directx shaders to opengl shaders. Apart from that, yes as far as I can tell.
15:08:46 <Vorpal> lifthrasiir, still that bug would not affect the loading time of the game
15:19:14 -!- cheater has joined.
15:24:24 -!- oerjan has joined.
15:31:53 <oerjan> Taneb> K is in this set, as is KI, and SK
15:32:13 <oerjan> KI and SK are really the same thing in pure lambda calculus
15:33:03 <oerjan> also it's impolite not to be here all the time. er wait...
15:34:38 <oerjan> probably \x y -> x and \x y -> y are the only normalized LC expressions with that property.
15:35:46 <oerjan> more formally, i think they are the only normalized expressions which can be given the System F type forall t. t -> t -> t
15:36:39 <oerjan> because in System F, that type is used to _define_ booleans.
15:38:04 <oerjan> ...i suppose it's even more trivial than that. If Cab reduces to a, then C is eta-equivalent to \x y -> x.
15:38:22 <oerjan> and similar for b.
15:39:16 <oerjan> however the System F theory may also be relevant, since it extends to a theory for more general data types
15:39:39 <Gregor> Vorpal: Is it possible that Windows is just entirely terrible? :)
15:42:36 <oerjan> interesting comments by gowers in godel's lost letter today, it's not every day you get to see a fields medal winner deign to discuss a crank's proof...
15:43:09 <Phantom_Hoover> <oerjan> probably \x y -> x and \x y -> y are the only normalized LC expressions with that property.
15:43:11 <Phantom_Hoover> What property?
15:43:29 <oerjan> Phantom_Hoover: that Cab is either a or b
15:43:45 <oerjan> i didn't quote all of Taneb's remarks
15:43:51 <Phantom_Hoover> Isn't that obvious?
15:44:40 <oerjan> yeah i just didn't think of eta reduction first
15:45:58 <oerjan> also he spoke about SKI combinators. i'm not quite sure of the equivalent concept there, after all KI and SK are eta equivalent but i don't think you usually include that rule as part of SKI calculus
15:48:30 <oerjan> S(KI)x is also equivalent to x for any x
15:49:28 <oerjan> and S(Kx)I
16:08:41 <Vorpal> <Gregor> Vorpal: Is it possible that Windows is just entirely terrible? :) <-- that is my working hypothesis :P
16:08:54 * Gregor nods sagely.
16:09:04 <Vorpal> Gregor, btw windows hardware support compared to linux. Compare a clean install of both
16:09:13 <Vorpal> say, clean ubuntu and clean windows 7
16:09:27 <Gregor> On a clean install, naturally Ubuntu is going to win.
16:09:33 <Vorpal> only thing linux will fail at is graphics on my system. Need catalyst.
16:09:53 <Vorpal> windows 7 didn't even support my intel gbit ethernet card
16:10:02 <Vorpal> Gregor, indeed, that is my point
16:11:35 <Vorpal> Gregor, win7 didn't do network, the eSATA controller, one of the internal SATA controllers (my desktop has two, no idea why), the on-board intel HDA sound, graphics (beyond basic, "can't even read EDID from monitor"-crap), or my sb live 5.1 card.
16:11:43 <Vorpal> the last one doesn't have win7 drivers even
16:12:02 <Vorpal> so I'm stuck at the on-board
16:12:04 <Gregor> Not getting SATA is ... pretty bad.
16:13:24 <Vorpal> Gregor, lucky I have two controllers then
16:14:02 <Vorpal> it managed the intel chipset SATA controller, though the cd that came with the mobo still has drivers for that (why?). Not the Marvell one though
16:14:41 <Gregor> Why -> in case you install Windows 8 :P
16:15:00 <Vorpal> Gregor, yeah but since that one *did
16:15:05 <Vorpal> did* work out of box
16:15:06 <Vorpal> why
16:15:14 <fizzie> It won't work out of the box in 8 any more, probably.
16:15:17 <Gregor> Why -> in case you install Windows 8 :P (HERE'S THE JOKE: which will not have support for it)
16:15:21 <Vorpal> fizzie, XD
16:15:41 <Gregor> Although I suppose installing the drivers from the driver CD which is presumably in a CD drive attached to SATA would be a trick.
16:15:54 <Vorpal> Gregor, won't have support for Intel's P67-or-whatever SATA chipset that has AHCI mode?
16:15:54 <Vorpal> what
16:16:10 * Gregor bashes his head into a wall
16:16:19 <Vorpal> oh right, now I get it
16:16:22 <Gregor> Why is it funny when fizzie explains the joke, but unfunny when I explain the joke :P
16:16:32 <fizzie> Gregor: I'm just better that way, obvs.
16:16:36 <Gregor> *sobblecopter*
16:16:44 <Vorpal> Gregor, I didn't get that you repeated the same joke
16:16:48 <Vorpal> that is what confused me
16:17:12 <Gregor> Angel Mouth ate my Jedi Jello.
16:17:38 <fizzie> As for "why two", probably the Marvell one does some sort of software/"firmware"-RAID, that seems to be a popular setup. (Though Intel that "Matrix Storage" whatever also.)
16:17:50 <Vorpal> hm
16:18:16 <Phantom_Hoover> Oh god, computer talk.
16:18:24 <Vorpal> fizzie, perhaps. Anyway I have a shitload of sata port. 8 or so I think
16:18:36 <fizzie> Phantom_Hoover: Did you install a speech synthesizer?!
16:18:50 <Vorpal> augh
16:19:02 <Phantom_Hoover> fizzie, I seem to have espeak, so yes.
16:19:15 <Phantom_Hoover> `espeak yes
16:19:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: espeak: not found
16:19:41 <fizzie> It would have been the bestest thing since sliced bread if that had somehow caused a box in some room go all "YES".
16:19:44 <Gregor> `echo Yeah, like that would have done anything under UMLBox ever :P
16:19:46 <HackEgo> Yeah, like that would have done anything under UMLBox ever :P
16:20:01 <fizzie> The integrated speaker of my SparcStation 5 scared me once.
16:20:03 <Gregor> UMLBox: It is superior to youuuuuuu!
16:20:24 <Phantom_Hoover> Gregor, honestly, I'm insulted that you thought I expected it to work.
16:20:32 <Phantom_Hoover> I'm not Lymia, after all.
16:20:47 <Gregor> Phantom_Hoover: I'm insulted that you're insulted by your calling of my calling of your bluff!
16:21:14 <Phantom_Hoover> Gregor, I'm insulted by the fact that I think you got that in the wrong order.
16:21:22 <Gregor> I think I did too :P
16:21:27 <Gregor> But it lost coherency mid-typing.
16:23:52 <Gregor> I need to implement UMLBox's socket multiplexer, but I'm sooooooooo lazy :(
16:23:53 <Vorpal> I have to say that this game looks amazing. Gameplay is amazing too. So is the story. And the sidequests. In fact the only thing not amazing is a group of people going through a door. They go one at a time, closing the door between each....
16:24:08 <Vorpal> best RPG since NWN1
16:24:34 <fizzie> "This game" being?
16:25:27 <Vorpal> fizzie, witcher 2
16:25:44 <Vorpal> fizzie, as seen on the yogscast. That is what made me interested in it.
16:25:50 <fizzie> Witcher 2: the witchest.
16:25:56 <fizzie> (A joke that's been made too many times.)
16:26:07 <Vorpal> first time I heard it :P
16:28:58 <Gregor> It has Darrin (old Darrin of course), Samantha, Endora, Aunt Agatha, even Uncle Arthur all as playable characters!
16:29:00 <Gregor> BEST GAME EVER
16:30:26 <Vorpal> Gregor, who?
16:30:44 <Gregor> Vorpal: Why you gotta fail? >: (
16:31:05 <Vorpal> Gregor, did I? I only fail at popular culture references really
16:31:15 <Gregor> That's what it is :P
16:31:25 <Vorpal> Gregor, guessed as much
16:32:41 -!- derrik has quit (Quit: left).
16:36:21 <oerjan> aus der reihe: derrik
16:55:54 -!- zzo38 has joined.
17:02:56 -!- sllide has joined.
17:09:32 <Sgeo> Hmm, there's a new Newspeak release
17:15:21 <quintopia> Gregor: i want to play as tabitha
17:15:53 <Gregor> quintopia: I couldn't remember her name X-D
17:17:17 <quintopia> bonus points if you can whistle the theme song right now without accidentally whistling the i dream of jeannie theme
17:17:41 <Gregor> ARGH I was having that problem too X-D
17:17:52 <Gregor> *shit* no that's I Dream of Jeannie >_<
17:18:22 <Sgeo> What game s this?
17:18:23 <Gregor> The worst thing is I know it has a distinctive and melodic theme song, so I should be able to remember it.
17:18:38 <Gregor> Sgeo: Witcher 2: The Witchest.
17:21:37 <quintopia> i can remember the nose twitch sound effect clearly, but only bits and themes of the song
17:22:26 <Gregor> I can remember all their voices, most of their names, and bits of the opening /sequence/, but for some reason the actual melody eludes me >_>
17:23:05 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
17:23:18 <Gregor> Wow, my attempt to remember it just dredged up the Star Trek (original series) theme >_<
17:23:23 <Gregor> FAIL, BRAIN. FAIL.
17:24:06 <olsner> what? sounds like a good thing to remember
17:24:42 <Gregor> olsner: Yes, but it is NOT the theme to series-we're-trying-not-to-name-so-that-we-can-associate-it-with-Witcher-2-instead.
17:25:25 <olsner> it's probably a sign that the original thing you were looking for is not that interesting
17:25:28 * quintopia caves and youtubes it
17:25:32 -!- Vorpal has joined.
17:25:45 <Gregor> It's not the most memorable theme song out there, no *shrugs*
17:26:06 <Gregor> quintopia: I REFUSE TO GIVE IN
17:26:09 <Phantom_Hoover> <quintopia> bonus points if you can whistle the theme song right now without accidentally whistling the i dream of jeannie theme
17:26:11 <Gregor> ALSO I CAN'T EASILY YOUTUBE HERE
17:26:33 <Phantom_Hoover> I have the advantage that I can just listen to the Bewitched theme and the fact that I don't know the I Dream of Jeannie theme will defend me.
17:27:00 <Gregor> s/??witch??/Witcher 2/
17:27:07 <Gregor> Erm, wrong kind of pattern >_>
17:27:12 <Gregor> s/..witch../Witcher 2/
17:27:27 <quintopia> Gregor: on youtube, the siddebar contains the munsters theme. i never have trouble remembering that one
17:27:41 <quintopia> or the alfred hitchcock presents theme for that matter
17:28:58 <Gregor> quintopia: At this point my brain has produced some hideous chimera of Star Trek and I Dream of Jeannie.
17:29:25 <quintopia> i just realized that modern children would call tabitha a mudblood
17:29:33 <Gregor> "You better get back in your bottle or Bones'll find out about you and then we're all in trouble!"
17:31:09 <zzo38> Could I invent a new monad to do some of the stuff which I described in the Dangelo list?
17:31:31 <quintopia> why dont you try it and tell us?
17:32:02 <zzo38> OK, I can try. I have some ideas. But I don't know everything about it and might need some help with it a bit later too
17:34:51 <zzo38> I read about in Haskell a monad is also used as a functor, and Wikipedia says a functor in category theory is from one category to another. Which categories are these in the case of monads?
17:36:09 <zzo38> I think a monad also forms a category, it says it does with (>=>)
17:37:11 -!- zzo38 has quit (Remote host closed the connection).
17:55:22 -!- oerjan has quit (Quit: leaving).
18:01:59 <Vorpal> no link to clog in topic? just codu?
18:04:21 <Vorpal> 17:18:38: <Gregor> Sgeo: Witcher 2: The Witchest. <-- it is actually The Witcher 2: Assassins of Kings.
18:04:58 <Vorpal> 17:22:26: <Gregor> I can remember all their voices, most of their names, and bits of the opening /sequence/, but for some reason the actual melody eludes me >_> <-- in which game? Witcher 2?
18:05:30 <Vorpal> I'm not sure it has a theme song as such. The main menu theme is the only one that I really noticed more than in one location.
18:05:36 <quintopia> witcher 2: the witchest, yes
18:06:28 <Vorpal> Gregor, you played it?
18:08:20 <Vorpal> quintopia, anyway why "the witchest". I don't get the joke unless it is a simple bad pun
18:08:48 <quintopia> we dont blame you for not getting things. no one is perfect.
18:09:07 <Vorpal> har
18:09:50 <fizzie> One from the video game name generator: "Pro Hobo Reloaded". You'd all play that, right?
18:10:13 <quintopia> YES
18:10:54 * quintopia pictures a hobo lying on the ground, and skater punk standing on top, both sliding down a steep hill
18:13:59 <Vorpal> anyway: play witcher 2 if you love good RPGs. Best one since nwn1 IMO.
18:13:59 -!- Vorpal has quit (Remote host closed the connection).
18:14:28 -!- Vorpal has joined.
18:15:02 <cheater> Vorpal, in that case the witcher movie is a must-see for you
18:15:31 <cheater> witcher is a polish book..
18:15:37 <cheater> and the movie was a polish superproduction.
18:15:39 <Vorpal> cheater, I generally don't like movies. I might read the books the games are based on though
18:15:56 <Gregor> C struct initializers with names are a C99 thing, right?
18:16:07 <Vorpal> but movies made from book tend to be flat somehow.
18:16:14 <Vorpal> Gregor, yes
18:16:25 <Vorpal> Gregor, this is useful for unions especially
18:16:26 <cheater> Vorpal, it's a must-see.
18:16:31 <cheater> of the best kind
18:16:32 <Vorpal> cheater, mhm
18:16:52 <cheater> because it's also the kind of must-see that will make you go "must unsee!!"
18:17:11 <Gregor> Vorpal: It's also useful for understanding wtf struct you just wrote :P
18:17:21 <Vorpal> Gregor, oh yeah true
18:17:27 <Vorpal> Gregor, so go ahead, use C99
18:18:21 <Gregor> NO
18:18:23 <Gregor> NEVAR
18:19:08 <cheater> Vorpal, in polish it's "wiedzmin"
18:19:25 <Vorpal> cheater, I see
18:19:27 <Vorpal> Gregor, why
18:20:06 <Gregor> Vorpal: I live by the code of ansi pedantic.
18:20:19 <Vorpal> Gregor, didn't ANSI ratify C99 too?
18:20:23 <Vorpal> I think they did
18:20:59 <Gregor> By "ansi" I mean GCC option "-ansi"
18:21:10 <Gregor> Hence why I didn't capitalize it.
18:21:54 <cheater> vorpal: http://www.youtube.com/watch?v=izQPp9UlG1A
18:25:18 <Vorpal> cheater, I don't understand polish. Why should I watch it
18:27:34 <cheater> wait for the "fight scene"
18:27:40 <cheater> more "fight scenes" http://www.youtube.com/watch?v=1-cGAsMu9FY
18:27:45 <cheater> this one's mostly "fighting"
18:27:51 <cheater> aka drunken bums bumping into eachother.
18:28:00 <Vorpal> cheater, I'm not interested in that. I like good storylines :P
18:28:16 <cheater> the movie is epically bad
18:28:18 <cheater> epicly even
18:28:29 <Vorpal> cheater, you said it was good?
18:28:42 <cheater> i said it was a must see.
18:28:52 <Vorpal> cheater, I interpret that as "good"
18:29:06 <Vorpal> I think epically bad movies are not "must see"
18:29:12 <Vorpal> that would be a contradiction
18:29:13 <cheater> sorry. i guess i also include "pink flamingos" in must-see.
18:29:23 <Vorpal> never heard of that
18:29:33 <cheater> another epicly bad movei
18:29:40 <cheater> movie.
18:30:02 <Vorpal> cheater, I don't think bad movies can ever be "must see"
18:30:14 <cheater> what about zardoz
18:30:20 <Vorpal> never heard of it
18:30:27 <cheater> what about hackers
18:30:52 <Vorpal> sounds vaguely familiar. Never seen it, and don't remember anything about it.
18:30:55 <Vorpal> other than the title
18:30:58 <cheater> HACK THE PLANET!
18:31:10 <Vorpal> sounds bad. And not like a must-see at all
18:31:33 <cheater> you're just not appreciative of kitsch.
18:31:33 <Vorpal> I hate movies that botch up technical details. They aren't worth seeing.
18:31:59 <Vorpal> cheater, who is?
18:32:04 <cheater> you.
18:32:14 <cheater> what about that TOS episode with kirk's worst fight scene ever
18:32:17 <cheater> have you seen that one
18:32:37 <fizzie> I think a Zardoz image was linked here once.
18:32:50 <cheater> must've been more than once, it's an amazing movie.
18:32:57 <Vorpal> cheater, no I meant that as in "who could possibly like kitsch"
18:33:06 <Vorpal> cheater, I wasn't asking who you referred to
18:33:15 <cheater> Vorpal, anyone who appreciates it.
18:33:38 <Vorpal> cheater, I can't understand how anyone could possibly like it
18:33:38 <cheater> are you saying that is uncommon?
18:33:45 <cheater> it's not
18:33:50 <cheater> it's very common to enjoy kitsch.
18:34:00 <Vorpal> cheater, at least amongst my real life friends I don't know anyone who does.
18:34:06 <cheater> kitsch is co-art
18:34:16 <cheater> liking kitsch is dualistic to liking art
18:34:31 <cheater> aren't you american?
18:34:48 <Vorpal> <cheater> what about that TOS episode with kirk's worst fight scene ever <-- I think most of startrek, save a handful of episodes (mostly TNG) are shit
18:35:02 <olsner> Vorpal: blasphemy
18:35:05 <Vorpal> and I'm not sure what TOS episode you are talking about
18:35:14 <cheater> see
18:35:17 <Vorpal> olsner, come on, it isn't hard sci-fi. It is soft sci-fi
18:35:21 <Vorpal> that is why it sucks
18:35:23 <cheater> yet again you're missing an important pop-culture reference
18:35:24 <cheater> anyways
18:35:27 <cheater> aren't you american?
18:35:31 <Vorpal> that is why starwars sucks too
18:35:34 <Vorpal> cheater, me? no
18:35:41 <cheater> where are you from then
18:35:50 <Vorpal> Sweden, as I told you when you asked before
18:35:52 <cheater> sweden?
18:35:54 <cheater> ok
18:35:59 <cheater> i don't memorize this sort of thing
18:36:01 <cheater> look up odd nerdrum
18:36:08 <Vorpal> hm?
18:36:18 <olsner> Vorpal: you seem to think hard sci-fi is inherently better than soft sci-fi
18:36:29 <cheater> one of the most famous kitsch painters of this day
18:36:39 <olsner> but it's not you see, it's merely "harder"
18:37:05 <Vorpal> olsner, I think I like it more
18:37:10 <Vorpal> I don't say everyone will
18:37:38 <cheater> olsner: i think people who only like hard sci fi are missing the point that soft sci fi makes short cuts in the technical part to enable science fiction in things like humanities, social sciences, etc
18:37:47 <cheater> which are equally important topics to make movies about.
18:37:54 <olsner> indeed
18:37:55 <cheater> such as privacy or identity theft.
18:38:07 <Vorpal> cheater, problem is for *movies* no one makes movies about hard scifi really
18:38:11 <Vorpal> very little of that
18:38:30 <cheater> because movies about technical processes are boring like ass
18:38:31 <Vorpal> mostly you have to turn to books.
18:38:45 <Vorpal> cheater, are they? Why aren't books then as well?
18:38:51 <cheater> if you want that, get a documentary about aluminum production.
18:39:07 <cheater> they aren't?
18:39:21 <cheater> most books are boring, people just don't know.
18:39:38 <Vorpal> hard sci-fi in book form at least isn't boring. Consider Niven's Ringworld and so on
18:39:47 <cheater> because they dont discern
18:40:32 <Vorpal> cheater, btw, speaking of documentaries: I greatly enjoyed Cosmos (by Sagan). Meaning "technical" movies can be made interesting.
18:40:43 <cheater> you just said "all of [x] is Q(x). Consider that Q(x_1) == True."
18:41:01 <Vorpal> cheater, did I? Where?
18:41:30 <cheater> i recently enjoyed The Aristocrats by Sagan, but that's a different kind of documentary, i'd call it a natural documentary movie or something
18:41:34 <cheater> maybe social
18:41:47 -!- Taneb has joined.
18:42:07 <Taneb> Hello!
18:42:47 <Vorpal> cheater, all I said was that Cosmos was an example of a good science documentary. And that means that good documentaries and movies with a focus on the science can be made.
18:43:16 <Vorpal> cheater, I never claimed ALL such movies would be inherently good. Of course you can make bad movies about anything
18:43:23 <cheater> no you said "hard sci fi books are not boring, consider ringworld and so on"
18:43:28 <cheater> but that's a small subclass.
18:43:38 <cheater> no one said all sci fi books are boring, but there's a trend towards that
18:44:13 <cheater> it is so because the gist of what hard sci fi is concentrating on is opposite to what interesting writing and movie making requires.
18:44:17 <Vorpal> cheater, I don't agree with that trend. But again of course it is possible to make a boring book. For any genre.
18:44:31 <Taneb> I like the Foundation books
18:44:56 <Taneb> But I struggle to get into them
18:45:05 -!- pumpkin has joined.
18:45:10 <Vorpal> Taneb, I should check them out some time. Been on my todo list for a while.
18:45:47 -!- pumpkin has changed nick to copumpkin_.
18:46:02 -!- copumpkin has quit (Disconnected by services).
18:46:06 -!- copumpkin_ has changed nick to copumpkin.
18:46:18 <Vorpal> cheater, a lot (I'm not saying all) soft sci-fi is more like fantasy with nuts and bolts.
18:46:51 -!- copumpkin has quit (Client Quit).
18:47:01 <Taneb> I would call that Science Fantasy
18:47:38 <Vorpal> Taneb, I'm not sure I like the term science in that.
18:48:10 -!- copumpkin has joined.
18:49:26 <Vorpal> Taneb, but would you say a lot of star trek and the entire star wars fit into that?
18:49:43 <Taneb> Yup
18:50:50 <Taneb> Star Trek is closer to Science fiction proper to Star Wars,by a little
18:51:33 <Taneb> But that's like saying that a gatling gun is more deadly than a revolver
18:51:49 <Vorpal> Taneb, I like that analogy :D
18:52:10 <Taneb> If you get sot in the head,you're still dead
18:52:22 <Vorpal> shot*
18:52:26 <Vorpal> but yeah
18:52:59 <Vorpal> Taneb, I just wish there were more hard sci-fi movies.
18:53:10 <Vorpal> in fact I can't remember a single one off the top of my head
18:53:27 <Vorpal> unless we stray into documentaries, and then we left fiction
18:53:40 <pikhq> Hard sci-fi is antithetical to the studio system.
18:53:53 <Vorpal> pikhq, why is that
18:53:59 <fizzie> Neither can http://en.wikipedia.org/wiki/Hard_science_fiction#Representative_works name any.
18:54:01 <pikhq> Such a film is inherently high-risk, targetting a small audience.
18:54:15 <Vorpal> pikhq, hm planet of apes maybe. That was quite a good movie
18:54:22 <pikhq> The studio system wants low-risk films that target everyone too fucking retarded to not watch it.
18:54:36 <Taneb> Not very hard science though
18:55:14 <fizzie> Some of the mentioned books have had a movie (or several; there's three adaptations of Solaris) made out of them, but I couldn't guess at their hardness.
18:55:22 <Vorpal> Taneb, planet of apes? no true, but more than star trek I'd say. Most of it takes place after the sci-fi part of course
18:56:15 <Taneb> I just don't like that the apes speak English
18:57:34 <Vorpal> oh yeah there is that.
18:58:18 <Taneb> Imagine a movie based on an esolang
18:58:32 <Taneb> It would suck
19:00:24 <Taneb> Minsky is a K new to the force
19:00:39 <Taneb> Turing is an S with nothing to lose
19:00:51 <Taneb> Together they are...
19:01:14 <Taneb> COMBINATOR COPS
19:03:08 <Taneb> Also what rhymes with Leuctra
19:03:24 <Taneb> ?
19:03:40 -!- ais523 has joined.
19:03:45 <cheater> dijkstra
19:04:46 <Vorpal> <Taneb> COMBINATOR COPS <-- ouch, just ouch
19:05:10 <CakeProphet> so I wonder if Ubuntu's new interface isn't shit yet.
19:05:40 * CakeProphet is still using "classic" interface, aka GNOME with default Ubuntu theme.
19:06:15 <Vorpal> CakeProphet, I'm still using ubuntu 10.04 LTS on my laptop. Oh and gnome 3 is a disaster. Went xfce on my desktop
19:06:21 <Taneb> I like it, but I like the Thor movie for its plot
19:06:41 <Vorpal> Taneb, I have no clue what that movie actually is about
19:07:34 <Vorpal> I tend to not watch movies. When hearing about a new movie my default is to *not* see it. Someone would have to convince me to see it.
19:08:04 <CakeProphet> same
19:08:20 <Taneb> I like it, and I like the Unity desktop
19:08:41 <Taneb> I'm not the best reccomender
19:09:04 <CakeProphet> new movies = special effects extravaganzas, for the most part.
19:09:23 <Vorpal> CakeProphet, I tended to not watch movies even before that started
19:09:54 <Taneb> Journet to the Centre of the Earth in 3D sucked
19:10:06 <Taneb> Even in 2D
19:10:20 <Taneb> *Journey
19:15:03 <ais523> does anyone watch new movies by default?
19:15:09 <ais523> other than movie critics, whose job is to do so?
19:16:38 <Taneb> Not reaally
19:17:04 <Taneb> Projectionists?
19:18:44 <ais523> is that a real job nowadays? I assumed it was all done digitally
19:19:43 <Taneb> Someone needs to make sure it' focused etc
19:20:15 <ais523> but once it was focused, wouldn't it stay focused?
19:20:20 <ais523> it's not like the projector nor the screen moves
19:21:02 <Taneb> Floors can move subtely
19:21:16 <Taneb> Especially in older buildings
19:21:39 <Taneb> Like many cinemas which were often adapted from theatres
19:27:40 -!- monqy has joined.
19:29:12 -!- Nihilist1andy has changed nick to NihilistDandy.
19:30:57 <ais523> ah, I'm more used to purpose-built cinemas in retail estates
19:31:26 <Taneb> Which still can shift a little
19:31:51 <Taneb> Especially wit a lot of people walking about
19:35:08 -!- atrapado has joined.
19:44:00 -!- GreaseMonkey has joined.
19:53:28 -!- sebbu has quit (Ping timeout: 276 seconds).
19:54:31 -!- sebbu has joined.
19:54:31 -!- sebbu has quit (Changing host).
19:54:31 -!- sebbu has joined.
19:55:26 -!- elliott has joined.
19:59:53 <elliott> 06:15:12: <oerjan> <elliott> tswett: Serialising (->) is a bit more difficult, but I think you could do it with the GHC API (if you run the code with the functions through the GHC API).
19:59:53 <elliott> 06:15:28: <oerjan> i think that was part of the cloud haskell project
20:00:01 <elliott> don't they basically do that symbolically
20:00:41 <elliott> 07:01:05: <CakeProphet> >_> and I have no idea how I can not fetch it twice while doing that, with these really terrible webkit bindings.
20:00:47 <elliott> CakeProphet: Dude, just download it with a regular HTTP API
20:00:55 <elliott> And then save it to a temporary file and include it in the DOM
20:00:59 <Sgeo> http://pastie.org/2393014 I feel like an idiot for asking, but is there any good reason to use the former?
20:01:01 <elliott> Or data: if you can get away with it
20:01:40 <elliott> Sgeo: [nil, :equilateral, :isosceles, :scalene][[a, b, c].uniq.size]
20:01:58 <elliott> Sgeo: and .length not .size
20:02:08 <Sgeo> What's the difference?
20:02:17 <Sgeo> Also, that looks "clever"
20:02:21 <elliott> nothing, .length is just nicer.
20:02:24 <elliott> also, fixnums have .size
20:02:35 <elliott> and because ruby is duck-typed (badly typed), that can easily bite you in the ass.
20:03:39 <Sgeo> I think I'll avoid cleverness for clarity. Although hmm, your way avoids doing three ===
20:04:11 <Sgeo> Unless your way is actually a common Ruby idiom
20:04:24 <elliott> ruby idioms = stupid cleverness
20:04:33 <elliott> im sure my code would be a celebrated refactoring
20:04:50 <elliott> and yes, it's faster, you're web scale now
20:05:40 <Sgeo> I'm going to stick to trying to be clear, I think
20:06:16 <Taneb> I don't know a thing about Ruby
20:06:38 <Taneb> Other than it is used to make Google SketchUp plugins
20:06:47 <elliott> it sucks
20:06:48 <Taneb> And some websites
20:07:15 <Taneb> Oh,all programming languages suck.
20:07:43 <Taneb> In some way or another
20:07:55 <elliott> yeah
20:07:59 <elliott> but ruby sucks more than average
20:08:08 <Taneb> Okay
20:08:10 <Sgeo> What is "average"?
20:11:17 <elliott> 18:09:50: <fizzie> One from the video game name generator: "Pro Hobo Reloaded". You'd all play that, right?
20:11:24 <elliott> fizzie: thanks for Elliottcraft's new name
20:12:28 <ais523> C++0b: []() -> float {return 6;} returns a float; Perl 6: -> x {return x;} takes x as argument
20:12:45 <ais523> that's a pretty annoying reuse of syntax
20:12:57 <CakeProphet> elliott: good idea. But as soon as I suggest it this client brings up entirely new demands he didn't mention before.
20:13:03 <CakeProphet> so fun.
20:13:05 <ais523> as in, Perl 6 uses -> identifier {...} to specify an argument, C++0b uses -> identifier {...} to specify a return type
20:13:25 <Sgeo> Ruby needs an equiv. to COBOL's exit
20:13:28 <Sgeo> (no it doesn't)
20:13:35 <elliott> CakeProphet: Freelance programming is great, eh?
20:13:41 <elliott> So good avoiding all that stuffy academia.
20:13:48 <ais523> what does COBOL's exit do?
20:14:00 -!- GreaseMonkey has quit (Quit: The Other Game).
20:14:32 <Sgeo> I may be mistaken, but: nothing. And if it's in a paragraph, it must be the only statement in the paragraph, iirc
20:14:44 <elliott> like Python's pass?
20:14:58 <Sgeo> elliott, well, that's closer to COBOL's continue I think
20:15:06 <Taneb> How is elliottcraft going, btw?
20:15:18 <Sgeo> Hmm, I was mistaken
20:15:21 <Sgeo> "This sentence does not need to be the only sentence in the paragraph."
20:15:25 <elliott> Taneb: still blocked on maintainers waking up
20:15:25 <Sgeo> http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic=/com.ibm.etools.iseries.langref.doc/evfeb4ls124.htm
20:15:28 <elliott> and me writing a patch
20:15:40 <Taneb> Okat
20:15:58 <Sgeo> COBOL continue is basically Python's pass
20:16:07 <Taneb> That wasn't a typo
20:16:09 <elliott> Taneb: probably the first kind of actual release will be basically a standalone multiplayer version of Minecraft classic
20:16:17 <elliott> with no physics but infinite world
20:16:38 <elliott> probably as a binary as I'm a hopeless perfectionist >_>
20:16:45 <elliott> I'm not good at release early, release often :(
20:16:53 <elliott> oh, ais523 /is/ here, I thought I imagined it
20:17:03 -!- Taneb_ has joined.
20:17:12 <elliott> Taneb_
20:17:12 <elliott> <elliott> Taneb: probably the first kind of actual release will be basically a standalone multiplayer version of Minecraft classic
20:17:12 <elliott> <elliott> with no physics but infinite world
20:17:12 <elliott> <elliott> probably as a binary as I'm a hopeless perfectionist >_>
20:17:12 <elliott> <elliott> I'm not good at release early, release often :(
20:17:13 <elliott> <elliott> oh, ais523 /is/ here, I thought I imagined it
20:17:25 <ais523> elliott: were you ignoring my comments because you thought I wasn't here?
20:17:34 <Taneb_> Looking forward to it, elliott
20:17:36 <ais523> or just because they weren't relevant?
20:17:53 <Taneb_> And also, when on a kindle, the home button doesn't do what I thought it would
20:17:55 <elliott> ais523: I didn't see anything I had anything intelligent to reply to
20:18:04 <ais523> fair enough
20:18:33 <Taneb_> And how's mcmap going?
20:18:56 <Taneb_> Actually, are there anything like a developer's blog I can read? I like those?
20:18:59 <elliott> Taneb_: hasn't been touched for thirteen days, but ostensibly the next commit will add item and mob tracking
20:19:03 <elliott> all the infrastructure there
20:19:08 <elliott> Taneb_: mcmap developer blog: https://github.com/fis/mcmap/commits/master
20:19:21 <elliott> I'll probably write some kind of Elliottcraft developer blog when it even is a thing
20:20:28 -!- Taneb has quit (Ping timeout: 252 seconds).
20:20:33 -!- Taneb_ has changed nick to Taneb.
20:20:39 <elliott> But yeah, I... should probably write that GPipe patch.
20:22:25 <ais523> wait, /my/ project's called elliottcraft
20:22:40 <ais523> (IIRC, because naming a project after yourself is a sign of desperation, but naming it after someone else should be just fine)
20:22:42 -!- sebbu2 has joined.
20:22:42 -!- sebbu2 has quit (Changing host).
20:22:42 -!- sebbu2 has joined.
20:23:20 <Taneb> Well, my project is uniquely named.
20:23:30 <Taneb> Unfortunately, it's very ununiquely nonexistent
20:23:35 <elliott> Taneb: But here, if todo lists make you almost as happy as dev blogs: Write that GPipe patch to make it windowing-system agnostic; figure out how to even use SDL (or GLFW-b), GPipe and reactive-banana together; make a really simple random block world you can move the camera around; add some kind of gravity so you can only move around and jump normally;
20:23:47 -!- sebbu3 has joined.
20:23:47 -!- sebbu3 has quit (Changing host).
20:23:47 -!- sebbu3 has joined.
20:23:56 <elliott> Taneb: Add a save/load mechanism so that the chunks can be saved on disk; add a method to let the player create and destroy blocks arbitrarily;
20:23:57 <elliott> THEN
20:24:20 <elliott> Taneb: Rip it all out, divide into "client" and "server"; make sure server does various checks so that you can't do tricksy things like teleporting or destroying blocks miles away by injecting packets;
20:24:27 <elliott> Taneb: First preview????
20:24:35 <Taneb> Yay!
20:24:59 <elliott> ais523: Also yes, I have chosen to wilfully maintain the ambiguity until I come up with a better name.
20:25:16 <ais523> fair enough
20:25:26 <ais523> and I'm doing too much simultaneously at the moment anyway
20:25:54 <Taneb> Minecraft is written in Java, FortressCraft in C#, elliottcraft in... Haskell?
20:26:04 <elliott> Haskell, yes.
20:26:26 -!- sebbu has quit (Ping timeout: 258 seconds).
20:26:27 -!- sebbu3 has changed nick to sebbu.
20:26:37 <elliott> I'm not sure anyone's actually welded the technologies I'm planning to weld together before, so... it might crash and burn!
20:26:40 <elliott> Or maybe it'll WORK PERFECTLY????
20:27:11 -!- sebbu2 has quit (Ping timeout: 246 seconds).
20:27:40 <Taneb> I may try to make one in...
20:27:42 <Taneb> PYTHON
20:27:49 <Taneb> Because no-one else will
20:28:15 <elliott> Well, Minetest-c55 is in C++.
20:28:25 <elliott> Python is just going to be way too hideously slow, most likely.
20:28:34 <Taneb> Yeah, probably
20:28:55 <Taneb> But frankly, with my coding skills, it was either that or VB.net
20:29:08 <Sgeo> Yay needing to remember geometry to do this
20:29:54 <elliott> I wonder how easy mcmap will be to modify for Elliottcraft.
20:30:06 <elliott> I mean, I plan some sort of selective sending of terrain so that you can't just arbitrarily spy on blocks you can't see.
20:30:26 <elliott> Obviously just rough because otherwise it'd be slow and laggy, but you shouldn't be able to look hundreds of blocks down from where you are underground.
20:32:11 -!- boily has quit (Read error: Operation timed out).
20:32:31 <elliott> ais523: Out of curiosity, what were you planning to implement Elliottcraft in?
20:32:42 <ais523> I haven't decided yet
20:32:46 <ais523> probably C, though
20:32:46 <Taneb> Note to self: in PHPbb, closing tags come SECOND
20:32:54 <ais523> with SDL/GL
20:32:57 <elliott> Taneb: wat
20:33:07 <elliott> ais523: "have fun with that"
20:33:20 <Taneb> I think "'Aye', yeah that's bold"
20:33:29 <elliott> ais523: I decided ripping out a good part of GPipe's guts was less pain than using the OpenGL API :P
20:33:32 <elliott> From /Haskell/
20:33:35 <Taneb> Rather than "This is going to be bold: 'Aye'"
20:33:48 <ais523> elliott: bear in mind, that in theory I know OpenGL, I took a term-long course on it
20:34:08 <elliott> ais523: That doesn't mean you want to use it :P
20:34:34 <ais523> it's a decent API
20:34:39 <Taneb> So I say "Aye[b]" then go back to the start and write "[/b]"
20:34:41 <ais523> much nicer to use for 3D graphics than Allegro
20:34:50 <elliott> allegro does 3D?
20:34:58 <elliott> just software rendering, I presume
20:35:32 <Sgeo> http://pastie.org/2393158 I feel dirty
20:35:48 <elliott> triangle error
20:36:11 <Taneb> Triangle error, triangle error. Triangle error hates particle error
20:36:15 <elliott> ais523: anyway, it may be nicer than allegro, but anything that involves me constructing a Ptr just to draw something is insane
20:36:26 <Taneb> They have a fight, triangle wins, triangle error, triangle error
20:36:51 <ais523> elliott: you want to set up a whole pipeline, ideally
20:37:09 <ais523> and then you draw very high-level concepts and they get converted into low-level concepts automatically
20:37:21 <elliott> ais523: well, GPipe compiles everything down to shaders
20:37:26 <Vorpal> <Sgeo> http://pastie.org/2393158 I feel dirty <-- what language?
20:37:35 <Sgeo> Ruby
20:37:36 <elliott> ais523: which is nice, because it means I don't have to write in the awful shader language
20:37:50 <elliott> ais523: (writing a "texture pack" in it sounds "fun")
20:37:50 <Vorpal> Sgeo, ouch
20:37:56 <Sgeo> Vorpal, why ouch?
20:38:05 <Sgeo> Is Ruby really _that_ bad?
20:38:13 <ais523> what makes you think its shader language is awful?
20:38:18 <ais523> it's much better designed than DirectX's
20:38:27 <Sgeo> Vorpal, or were you referring to my code?
20:38:33 <ais523> (in fact, OpenGL fell behind because GLSL was overengineered for the time it was released, but it's about right for modern graphics cards)
20:38:33 <Vorpal> Sgeo, I think that indention looks horrible
20:38:51 <Sgeo> Um, that's my fault for being lazy
20:38:55 <Vorpal> Sgeo, if that is typical of ruby: then ouch
20:38:55 <Vorpal> ah
20:39:20 <Vorpal> ais523, heh
20:39:32 <Vorpal> ais523, so what does directx have these days?
20:40:12 <ais523> I'm not too sure
20:40:48 <Vorpal> ais523, how do you to textures in these days of shaders?
20:40:56 <elliott> <ais523> what makes you think its shader language is awful?
20:40:56 <elliott> <ais523> it's much better designed than DirectX's
20:41:00 <elliott> ais523: it's not as nice as Haskell
20:41:05 <elliott> ais523: it's probably not even as nice as C
20:41:14 <Vorpal> ais523, and do you use one shader per object or surface or one single piece of GLSL for the entire program?
20:41:18 <elliott> ais523: considering that a large part of my program would be written in it, especially the procedural textures...
20:41:26 <elliott> using it directly would nullify most of haskell's benefits
20:41:27 <ais523> elliott: it basically is C
20:41:36 <elliott> ais523: yes, but with weird thinsg adde :P
20:42:26 <Sgeo> Note to self: Adding 10 to 1, 2, and 3 does not in fact give 10, 11, 12
20:43:00 <Vorpal> are you sure? ...
20:43:52 <Sgeo> There is no positive integer base >= 2 where 10+1=10
20:44:07 <Sgeo> Unless you remap symbols, I guess
20:44:08 <Vorpal> .... of course not
20:44:53 <Sgeo> Hmm, without remapping symbols, is there a base where 10+1 != 11?
20:45:04 <Sgeo> I mean, clearly not for positive integer base >= 2
20:45:17 <Sgeo> But what about some sort of complex base or something
20:46:03 <Taneb> I think 10+1 = 11 is true across every non-unary base
20:46:45 <Taneb> Unless you get into those weird hyper-complex numbers
20:48:27 <Sgeo> Enumerable#inject is like Haskell foldr?
20:48:53 <Sgeo> @hoogle foldr
20:48:53 <elliott> Sgeo: foldl.
20:48:53 <lambdabot> Prelude foldr :: (a -> b -> b) -> b -> [a] -> b
20:48:53 <lambdabot> Data.ByteString foldr :: (Word8 -> a -> a) -> a -> ByteString -> a
20:48:53 <lambdabot> Data.Foldable foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
20:48:56 <Phantom_Hoover> Taneb, it's not true in base-phi, I suspect.
20:49:01 <elliott> Sgeo: foldl.
20:49:03 <Phantom_Hoover> Well, in a sense.
20:49:05 <Sgeo> @hoogle foldl
20:49:05 <lambdabot> Prelude foldl :: (a -> b -> a) -> a -> [b] -> a
20:49:05 <lambdabot> Data.ByteString foldl :: (a -> Word8 -> a) -> a -> ByteString -> a
20:49:05 <lambdabot> Data.Foldable foldl :: Foldable t => (a -> b -> a) -> a -> t b -> a
20:49:19 <Phantom_Hoover> Assuming you normalise everything.
20:49:42 <CakeProphet> true for every integer base at least.
21:03:37 -!- copumpkin has quit (Ping timeout: 240 seconds).
21:06:56 <Taneb> Am I still here?
21:07:10 <monqy> no
21:07:16 <Taneb> Oh dear.
21:07:17 -!- copumpkin has joined.
21:08:53 <Taneb> well, I will now...
21:08:55 <Taneb> BRB
21:08:57 -!- Taneb has quit (Quit: He's a big quitter he is.).
21:10:33 <CakeProphet> @instances RandomGen
21:10:33 <lambdabot> Couldn't find class `RandomGen'. Try @instances-importing
21:10:43 -!- atrapado has quit (Quit: FIN).
21:13:31 -!- Taneb has joined.
21:13:41 <elliott> @instances-importing
21:13:41 <lambdabot> Plugin `instances' failed with: Prelude.last: empty list
21:13:44 <elliott> @instances-importing a
21:13:44 <lambdabot> Couldn't find class `a'. Try @instances-importing
21:13:47 <elliott> @instances-importing RandomGen
21:13:47 <lambdabot> Couldn't find class `RandomGen'. Try @instances-importing
21:14:08 <Deewiant> @instances Foldable
21:14:08 <lambdabot> Couldn't find class `Foldable'. Try @instances-importing
21:14:09 <Deewiant> @instances-importing Data.Foldable Foldable
21:14:09 <lambdabot> Maybe, []
21:14:17 <CakeProphet> > map (\g -> fst $ randomR (0,1) (mkStdGen g)) [231212123..]
21:14:17 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
21:14:20 <CakeProphet> why is this so bad?
21:14:56 <Deewiant> > map (\g -> fst $ randomR (0,1) (mkStdGen g)) [231212123..] :: [Double]
21:14:56 <copumpkin> why is what so bad?
21:14:57 <lambdabot> [0.7326631544233912,0.10464246561858859,0.9766217971864672,0.84860112852151...
21:15:00 <Sgeo> Am I allowed to like Ruby for all the gems?
21:15:08 <monqy> no
21:15:13 <Taneb> My aunt's called Ruby
21:15:24 <elliott> There are more useful RubyGems than there are useful Python packages?
21:15:27 <elliott> Useful Hackage packages?
21:15:32 <elliott> Useful CPAN modules?
21:15:45 <elliott> RubyGems is also a hilariously bad, insecure mess of a package manager.
21:16:23 <Taneb> Aah! When did it become the eighteenth?
21:16:30 <Sgeo> I think of the corresponding languages, Ruby actually might only be worse than Haskell? And I don't want to deal with Haskell
21:16:31 <elliott> Taneb: a long time ago
21:16:47 <elliott> by the way it is my birthday in four days i expect lots of presents from everyone here
21:17:24 <elliott> Sgeo: What?
21:17:35 <elliott> Sgeo: And what do you mean "don't want to deal with Haskell"?
21:17:41 <CakeProphet> Sgeo: so you admit that Perl is an outstanding language suitable for all purposes and is superior to all of the inferior languages that everyone else uses?
21:17:44 <CakeProphet> excellent.
21:17:46 <CakeProphet> >_>
21:18:03 <Taneb> Even I want to deal with Haskell
21:18:23 <monqy> haskell is pretty okay/alright/decent/good
21:18:28 <monqy> unlike those other languages
21:18:39 <Sgeo> I want something to get me back into writing code, not something that will break my brain a million times
21:18:46 <elliott> Man, I was going to write my program in this magic language that does what I mean when given a description of my problem in plain English... but I didn't want to deal with that, so I wrote it in assembly instead.
21:18:58 <elliott> Sgeo: hurr haskell is hard two types good four types bad
21:19:06 <elliott> nomads are teh HARD CATEGORIAL MATEMATICS,,
21:19:38 <monqy> don't even bother with nomads for now if you need to leanr more haskel beofr eunderstanding them,,
21:19:55 <elliott> HASKEL BRAK YOUR BRAIN WITH MATHEMATICS
21:19:59 <elliott> Sgeo ONLY DO BUSINESS COURSES
21:20:01 <CakeProphet> Sgeo: learn Perl
21:20:03 <Sgeo> monads are easy enough, but is stacking monads etc really all that convenient?
21:20:07 <CakeProphet> you'll be writing code in no time!
21:20:10 <CakeProphet> some of it might even work!
21:20:17 <elliott> Sgeo: lol
21:20:20 <monqy> Sgeo: what
21:20:32 <elliott> i really need to stop like
21:20:38 <elliott> talking
21:20:39 <elliott> and also
21:20:41 <elliott> reading these messages
21:21:44 <CakeProphet> I wrote so much Perl for a while that it seemed entirely naturally to prepend variables with funny symbols.
21:21:50 <CakeProphet> *natural
21:22:18 <monqy> :'(
21:22:21 <CakeProphet> I have a bad habit of adverbifying words.
21:22:27 <monqy> hey sgeo: what
21:22:48 <monqy> Sgeo: stacking monads is convenient////////////when it's conveneient
21:23:07 <elliott> monad stakcs are usually a stupid idea anyway
21:23:17 <elliott> if you're in IO then just about any monad on top is redundant
21:23:17 <monqy> usually
21:23:17 <CakeProphet> stacking monad stacks is probably less convenient most of the time.
21:23:28 <elliott> and writing things purely is less stupide.....
21:23:35 <elliott> or using a monad good for one component.................
21:23:57 <monqy> i think my most frequently used monad recently has been the list monad
21:24:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:24:04 <Sgeo> When there's something like Haskell Koans, I'll give that a try
21:24:05 <CakeProphet> uh, isn't IO the only unpure monad?
21:24:08 <monqy> it is a good monad
21:24:11 <elliott> Sgeo: you really hurt me
21:24:13 <elliott> and are terrible
21:24:13 <elliott> :(
21:24:15 <monqy> Sgeo: what
21:24:17 <CakeProphet> like, it sounds silly to say that using lists is writing nonpure code.
21:24:28 <elliott> CakeProphet: nobody said lists ar impue???
21:24:29 <elliott> nobody saide,
21:24:34 <Sgeo> elliott, I think these language koans are a cool way to learn
21:24:54 <elliott> Sgeo i just punched my screen
21:24:55 <elliott> it
21:24:56 <elliott> could have smashed
21:24:57 <elliott> and
21:24:59 <elliott> itw ould be your fault
21:25:00 <elliott> :(
21:25:03 <CakeProphet> elliott: you seemed to imply that monads = impure, since "writing things purely" was the alternative to "writing things with monads" (I think)
21:25:06 <monqy> i softly punched my screen
21:25:10 <monqy> so it wouldnt' smnash....
21:25:17 <elliott> CakeProphet: well it's hard to argue that the State monad is beautiful pure code.
21:25:28 <CakeProphet> but it is pure code right?
21:25:28 <elliott> CakeProphet: I can use "denotational" if you'd prefer I roleplay Conal
21:25:39 <elliott> Well, the implementation is irrelevant.
21:25:45 <elliott> Yes, it's pure, but it's not "functional code".
21:26:02 <CakeProphet> I thought purity had to do with side-effects?
21:26:20 <elliott> Yes, but... this is basically an argument of terminology.
21:26:26 <CakeProphet> ...of course.
21:26:30 <CakeProphet> >_>
21:26:36 <elliott> What I'm saying is that the normal "imperative"-ish monads are usually Not The Best Idea.
21:26:41 <monqy> Sgeo: what is this koans thing and why do you want it
21:26:42 <CakeProphet> "this is an argument about the meaning of words"
21:26:51 <Sgeo> http://rubykoans.com/
21:26:58 <monqy> Sgeo: ok?
21:26:59 <elliott> monqy: no dont stop,e
21:27:02 <elliott> stope,
21:27:05 <elliott> STOPE
21:27:08 <CakeProphet> elliott: okay, I agree.
21:27:10 <elliott> (pronunce: "stohpe")
21:27:32 <Sgeo> A thing where basically you fill in the blanks, and run the program to see what's expected in each blank.
21:27:42 <Sgeo> Wow, that's a bad description
21:27:56 <monqy> ok
21:28:13 <CakeProphet> elliott: unless of course that imperative-ish monad is STM
21:28:26 <CakeProphet> and then it's always a good idea.
21:28:29 <CakeProphet> yep. always.
21:28:32 <monqy> what i
21:29:39 <elliott> acid-state is nice database system,
21:31:37 <CakeProphet> ST is the best monad.
21:31:42 <CakeProphet> suitable for all Haskell code.
21:31:47 <CakeProphet> to make it beautiful and imperative.
21:32:15 <monqy> write all code in overloaded strings
21:32:18 <elliott> hmm, I wonder if this implementation would break the const- oh that wouldn't work
21:32:18 <elliott> hmm
21:33:14 <Taneb> I don't think it would break the const- oh that wouldn't work.
21:33:38 <elliott> it might!
21:34:06 <Taneb> What does the const- oh that wouldn't work do?
21:34:12 <elliott> Nobody knows.
21:34:52 <CakeProphet> monqy: probably the best idea ever
21:36:56 <CakeProphet> actually I'll make an extension called OverloadedAwesome
21:37:21 <elliott> hmm, I wonder if -- argh
21:37:23 <elliott> this is annoying
21:37:24 <elliott> ok
21:37:26 <CakeProphet> which does the same thing as overloadedstrings except that it uses a typeclass that also includes the return type of the fromString function as a typeclass variable.
21:37:26 <elliott> i'll do it separately
21:37:27 <elliott> fiiine
21:37:31 <elliott> ugh wait
21:37:34 <elliott> does this even allow deleting a plugin
21:37:39 <elliott> UGH WHO CARES ABOUT THE FUCKING GUARANTEES
21:37:41 <elliott> im bad at this :(
21:37:56 <CakeProphet> elliott: I often wonder the same thing about typeclass laws.
21:38:04 <elliott> CakeProphet: f u
21:38:09 <CakeProphet> lulz
21:38:30 <elliott> i just want to know how this works <crys>
21:39:37 <CakeProphet> is it true that all monads can be represented as monads?
21:39:51 <elliott> wat
21:40:03 <pikhq> ... Isn't that a tautology?
21:40:17 <CakeProphet> isn't that a tautology?
21:40:22 <elliott> isnt ur mom a tatutlgy
21:40:24 <elliott> OIHIEEJFIEJIOER
21:40:32 <elliott> esoteric the channel for intelligent discussion
21:40:33 <CakeProphet> thus you said: "isn't a tautology a tautology?"
21:40:40 <CakeProphet> how tautalogical.
21:40:46 <Taneb> C'est ne pas une tautology?
21:41:24 * Sgeo mutters something about no one having any idea how to do modules
21:41:39 <CakeProphet> your mom can fuck modularly
21:42:15 <elliott> meh, brb
21:42:53 <monqy> Sgeo: what
21:43:10 <Sgeo> Sgeo> Suppose I have two libraries that define the same constant SomeClass.
21:43:11 <Sgeo> <Sgeo> How is the conflict resolvable?
21:43:23 <Sgeo> <apeiros_> if the libraries are foreign libraries, you file a bugreport telling them to stop using common names in toplevel.
21:44:57 <Sgeo> "so how about you stop thinking about hypothetical but non-happening issues?"
21:45:50 <itidus20> I prefer parables to koans
21:46:55 <itidus20> i may not be using the word i mean though
21:47:01 <elliott> Sgeo: dont
21:47:02 <elliott> use
21:47:05 <elliott> the ruby channels
21:47:09 <elliott> theyre full of egoistic idiots
21:47:24 <Taneb> As opposed to here
21:47:37 <elliott> yes precisely
21:47:47 <elliott> no but seriously the ruby community is inexcusably bad
21:48:06 <elliott> and 99 percent of the people in the ruby channels just sit around to yell at people all day instead of helping
21:48:17 <itidus20> i think what i mean is tale, and not parable
21:50:56 <elliott> qwqwqwqwqw
21:51:17 <monqy> hi
21:51:21 <olsner> IRC-qwoping?
21:51:22 <elliott> hi
21:51:24 <elliott> botte
21:51:27 <elliott> olsner: yes
21:51:28 <elliott> (no)
21:51:32 <itidus20> bah
21:51:37 <itidus20> to hell with qwop!
21:51:44 <Taneb> girp is much better
21:51:54 <elliott> oh god girp
21:52:11 <itidus20> oh you may think i'm kidding
21:52:23 <itidus20> but i am an anti-qwop
21:52:30 <elliott> itidus20: have you played girp
21:52:31 <Taneb> One of the only games I've seen where doing what it's based on actually helps, girp is
21:52:52 <itidus20> yup
21:52:56 <itidus20> i think so..
21:53:04 <itidus20> im guessing its the rockclimbing one
21:53:08 <Taneb> Yeah
21:53:21 <Taneb> I've got a few friends who do rockclimbing, and they are good at it.
21:53:40 <itidus20> so.. do you guys know the main role in life of the creator of those 2 games?
21:54:31 <Taneb> I do not.
21:54:45 <itidus20> he's an oxford ethics academic
21:54:51 <Taneb> Huh.
21:54:54 <itidus20> yup
21:55:39 <elliott> "the ethics of torturing people with games"
21:55:53 <elliott> http://www.foddy.net/research/ heh he is
21:56:06 <itidus20> Senior Research Fellow and Deputy Director,Programme on Ethics of the New Biosciences, Oxford Martin School, Oxford University
21:56:15 <itidus20> Junior Research Fellow, Jesus College Oxford.
21:56:22 <Sgeo> girp?
21:56:32 <itidus20> i don't know what a research fellow is though]
21:56:41 <elliott> little master cricket is hard :(
21:57:23 <itidus20> you will notice several of his papers are written with J savulescu
21:57:38 * Sgeo tries it
21:57:42 <itidus20> now, do any of you know who j savulescu is?
21:57:48 <Vorpal> <itidus20> so.. do you guys know the main role in life of the creator of those 2 games? <-- which two games. Grip and? I can't find it in the scrollback.
21:57:58 <itidus20> qwop
21:58:09 <Vorpal> huh, *googles*
21:58:12 <itidus20> girp and qwop
21:58:39 <cheater> a fellow is a person at oxford who works for a college.
21:58:57 -!- Taneb has quit (Ping timeout: 240 seconds).
21:59:21 <cheater> research fellow = works at an institute, probably with no student interaction
21:59:58 <cheater> i lived right in front of jesus college heh
22:00:02 <itidus20> so basically, foddy writes games on the side... and he is a senior research fellow and deputy director at "Programme on Ethics of the New Biosciences," at oxford
22:00:09 -!- Taneb has joined.
22:00:33 <itidus20> but he also writes some of his papers alongside j savulescu
22:00:47 <cheater> there's a small lane that leads from jesus college to the high street, it has a historical name of "gropecunt lane"
22:00:54 <Sgeo> I can;t figure out how to not drown
22:01:21 <itidus20> J. Savulescu is a highly controversial figure.
22:01:27 <Vorpal> itidus20, how does grip play. I don't have flash so I can't try it.
22:01:31 <itidus20> I mean.. its not a bad thing necessarily
22:01:43 <Vorpal> itidus20, if it is anything like qwop it will be horrible
22:01:56 <Vorpal> (which I found a wp article on)
22:02:05 <itidus20> Vorpal: the rockface has places your hands can hold labelled with letters
22:02:11 <Taneb> GIRP is like a climber that can only use his arms
22:02:13 <cheater> i like the path that goes from the front of jesus college to jesus green, that's usually fairly quiet
22:02:18 <itidus20> you have to hold the letter to hold the rock
22:02:25 <Taneb> And the tide rises
22:02:25 <cheater> it's right next to the chapel so you can hear some organ playing every now and then
22:02:28 <Vorpal> itidus20, heh
22:02:34 <Taneb> And there're birds
22:02:40 -!- CakeProphet has quit (Read error: Operation timed out).
22:02:41 <Vorpal> itidus20, and the letters are all over the place?
22:02:43 <cheater> you can also visit, e.g. when one of the students is there. the chapel is really beautiful with dark wood everywhere.
22:02:58 <cheater> the acoustics are pretty good, it's not so huge but it's also very high
22:02:59 <Taneb> Spaced out a bit, Vorpal
22:03:19 <Vorpal> Taneb, could mean some problematic moves, trying to reach under your hands and such?
22:03:36 <elliott> that's sort of the point
22:03:42 <Vorpal> elliott, aha
22:03:49 <itidus20> vorpal, so you have a key held down constantly at every point in the game basically
22:04:01 <Vorpal> itidus20, I see
22:04:01 <Sgeo> cheater, I drown too soon to visit anywhere
22:04:03 <itidus20> when your hands both leave the keyboard thats the game over
22:04:08 <Taneb> Unless you launch yourself
22:04:15 <Taneb> Which I have seen done successfully
22:04:37 <cheater> sgeo, try getting an inflatable flotation device built in, like cmdr data.
22:04:58 <Vorpal> itidus20, so the games are made to be as annoying as possible?
22:05:08 <Taneb> Pretty much
22:05:20 <elliott> the word is CHALLENGING
22:05:28 <Vorpal> Taneb, what is the reason for this?
22:05:29 <Deewiant> GIRP was fun
22:05:33 <itidus20> With regards to the innocent seeming QWOP, it should be noted that a guy who wrote several papers with the game's author is also on record of saying performance enhancing drugs should be legalized
22:05:44 * Sgeo goes on YouTube
22:05:45 -!- Phantom_Hoover has quit (Quit: Leaving).
22:05:57 <elliott> Vorpal: Well, it certainly worked, they're internet famous and I imagine the iPhone versions have made a handy profit
22:06:03 <elliott> itidus20: you are joking right
22:06:08 <elliott> are you actually saying that gwop is malicious
22:06:10 <elliott> qwpo
22:06:10 <itidus20> so he is very controversial this j savulescu
22:06:11 <elliott> qwop
22:06:12 <Vorpal> cheater, Sgeo: which game are /you/ talking about?
22:06:18 <Sgeo> ...I didn't realize you could flex micles
22:06:21 <Sgeo> Vorpal, girp
22:06:23 <elliott> cheater is being an idiot, Sgeo is talking about girp
22:06:26 <cheater> vorpal: oxford irl.
22:06:29 <itidus20> elliott: do i really sound like i am joking.
22:06:33 <itidus20> hehe
22:06:36 <elliott> itidus20: it's really hard to tell with you :P
22:06:36 <Vorpal> elliott, heh. Touch screen to do the holding on iphone? that sounds playable
22:06:45 <elliott> Vorpal: i doubt it's anything so easy
22:06:50 -!- Phantom_Hoover has joined.
22:06:52 <itidus20> i have tried to lay it out. ill be more precise
22:07:14 <itidus20> -- B. Foddy wrote a bunch of games including QWOP and GIRP.
22:07:40 <itidus20> -- B. Foddy is an oxford senior research fellow on "Programme on Ethics of the New Biosciences"
22:07:41 <cheater> i hate the fact that those games are written in flash
22:07:56 <cheater> which means that random slowdowns happen which make you lose the game no matter how good you really are
22:08:03 <itidus20> -- B. Foddy has written several of his papers in collaboration with J. Savulescu
22:08:27 <Vorpal> cheater, obviously part of the challenge
22:08:52 <itidus20> -- J. Savulescu is on record as saying performance enhancing drugs should be legalized.
22:08:56 <cheater> sucky challenge
22:09:05 <cheater> might as well play the machines
22:09:30 <itidus20> -- J. Savulescu is a controversial figure. I don't know the gamut of his views. I don't have a quote here unfortunately.
22:09:40 <itidus20> He is allowed to be controversial though :-)
22:09:58 <cheater> http://metsmerizedonline.com/wp-content/uploads/2010/08/one-armed-bandit1.jpg
22:10:08 <cheater> qwop, except qwop has four levers.
22:10:44 <itidus20> on googling his name, j savulescu has an article called
22:10:49 <itidus20> "Savulescu J. Rational non-interventional paternalism: why doctors ought to make judgments of what is best for their patients"
22:11:22 <Sgeo> I wonder how well a grandroid brain would do hooked up somehow to girp
22:11:53 <itidus20> i dunno... that didnt mean what i thought it meant
22:12:04 <itidus20> ill try to find something meaningful
22:12:24 <cheater> jesus.. fucking bugs
22:12:27 <cheater> scared the shit out of me
22:12:40 -!- ais523 has quit (Remote host closed the connection).
22:12:54 <cheater> i'm sitting here in a completely silent room, then a bug starts buzzing. they're really loud, and it starts flying towards me, spiraling, and stuff.
22:12:59 <itidus20> ok here is the abstract from one of his papers (not foddy, but a guy he has worked on several papers with)
22:13:06 <itidus20> The most publicly justifiable application of human cloning, if there is one at all, is to provide self-compatible cells or tissues for medical use, especially transplantation. Some have argued that this raises no new ethical issues above those raised by any form of embryo experimentation. I argue that this research is less morally problematic than other embryo research. Indeed, it is not merely morally permissible but moral
22:13:06 <itidus20> ly required that we employ cloning to produce embryos or fetuses for the sake of providing cells, tissues or even organs for therapy, followed by abortion of the embryo or fetus.
22:13:41 <cheater> so that's why he's controversial
22:13:47 <cheater> man what a cheap shot
22:14:02 <Sgeo> Note: Playing without reading the intructions is highly unrecommended
22:14:03 <itidus20> no.. i told you he wants to legalize performanec enhancing drugs
22:14:13 <itidus20> not foddy but savulesco
22:14:20 <itidus20> he is controversial in every direction
22:14:28 <itidus20> but im not saying this is a bad thing
22:14:28 <cheater> i expected at least some sort of controversy he came up with, as opposed to me-too rationalizations of hipster dilemas
22:15:19 <cheater> performance enhancing drugs are legal already
22:15:34 <itidus20> well eg in the olympics
22:15:35 <cheater> other drugs are illegal because they REDUCE performance after the initial boost.
22:15:48 <cheater> you're allowed to take aspirin in the olympics
22:15:54 <cheater> it boosts your performance
22:15:57 <cheater> it's not illegal.
22:16:23 <itidus20> Savulescu argues that humanity is on the brink of disappearing in a metaphorical Bermuda Triangle unless certain eugenic steps are taken to correct what he considers to be aberrant human behaviour and overly liberal laws.
22:16:56 <Phantom_Hoover> cheater, shut up.
22:17:02 <cheater> oh no, let's not all disappear
22:17:08 <cheater> Phantom_Hoover, no u
22:17:09 <itidus20> he concludes that even if embryonic stem cell research involves the killing of a person, it is justified.
22:17:34 <itidus20> s he has argued for the following: (1) That parents have a responsibility to select the best children they could have given all of the relevant genetic information available to them, a principle that he extends to the use of in-vitro fertilization (IVF) and preimplantation genetic diagnoses (PGD) in order to determine the intelligence of embryos and possible children.
22:17:56 <elliott> Phantom_Hoover tirelessly works for our children.
22:17:59 <itidus20> again.. he has a right to do all this...
22:18:13 <elliott> itidus20: why are you telling us this
22:18:26 <itidus20> but, my point is that he writes several papers with the guy who made QWOP and GIRP
22:18:33 <elliott> so what??
22:19:16 <cheater> obviously those games are a huge social experiment
22:19:32 <cheater> you are but a cog in the machinery of deranged human torment
22:19:36 <cheater> etc
22:19:40 -!- elliott has quit (Remote host closed the connection).
22:19:46 <Phantom_Hoover> Perhaps QWOP and GIRP are disguised eugenics programmes.
22:19:49 <cheater> victory!
22:20:06 -!- elliott has joined.
22:20:27 <Taneb> I'm afraid I've got to the point where I'm staring into the Chromium new tab page
22:20:30 <itidus20> theres other aspects to this..
22:20:32 <elliott> i should probably port this to enumerators oops
22:20:33 <Taneb> And it's staring bacl.
22:20:37 <Taneb> I should sleep
22:20:38 <elliott> Taneb: its me hi
22:20:40 <itidus20> i mean.. foddy isn't the same person as savulescu
22:21:25 <Taneb> elliott: What do you mean it's you?
22:21:31 <elliott> IM TAB
22:21:45 <Taneb> That exists?
22:22:03 <elliott> What exists
22:22:15 <Taneb> I'm tired, I need slepp
22:22:18 -!- Taneb has quit (Quit: goodnight).
22:22:27 <elliott> ok
22:22:49 <cheater> does anyone know if it's possible to connect two usb keyboards to a pc and type with one hand on one and vice versa?
22:23:23 <cheater> i know a computer will recognize both but will there be no problems with them e.g. coming out of sync, because the delay of data transfer from the keyboard to the OS fluctuates?
22:23:38 <cheater> with one keyboard you have just one output buffer
22:24:10 <cheater> i'm afraid that with two keyboards you might end up with swapped keys if you e.g. quickly press a key on one and then the other in succession
22:24:44 <olsner> if you press the buttons in the wrong order, how is the computer supposed to know that you meant something else?
22:24:49 <itidus20> in any case i hope i have opened up the view that QWOP and GIRP aren't accidently deep.
22:24:52 <Phantom_Hoover> <elliott> IM TAB
22:24:57 <itidus20> i admit that my notion of evil is probably misplaced
22:24:58 <Phantom_Hoover> You can't be, you're the mouse.
22:25:14 <cheater> i press them in the right order, but due to fluctuating delays they arrive in the wrong order at the OS kernel
22:25:28 <cheater> that is the hypothesis
22:25:53 * Phantom_Hoover → sleep
22:25:54 -!- Phantom_Hoover has quit (Quit: Leaving).
22:26:15 <itidus20> from an article i found this is fascinating:
22:26:17 <itidus20> It's all about exploring the way gamers embody the character on screen. "When you play a video game," Foddy explains to Wired.co.uk, "as long as there is a very short time between your formation of an intention to act and something happening on screen, there's a kind of neurological magic which makes you feel like you are the character, rather than just controlling a little guy on a screen."
22:26:42 <itidus20> His games toy with that sensation, in different ways. QWOP turns the whole thing on its head, "making a deliberate disconnect between your intentions and the character's actions." GIRP, on the other hand, maximises the feeling of embodiment, through Foddy's ingenious metaphor which turns your keyboard into an impromptu cliff face. "You have to grip the keyboard just like you would cling to the cliff," he says.
22:26:51 <cheater> yeah
22:27:13 <cheater> there is a similar effect in musical instruments which i have described on the synth-diy mailing list years back
22:27:18 <cheater> i should talk to foddy then
22:28:17 <itidus20> i suppose i am glad noone is questioning the intent of qwop
22:33:48 <itidus20> i mean in the greater community
22:34:00 <itidus20> its like santa
22:34:11 <itidus20> santa was designed to promote coke but it obviously outgrew coke
22:34:16 -!- Patashu has joined.
22:37:06 <elliott> you
22:37:07 <elliott> realise that
22:37:08 <elliott> santa
22:37:11 <elliott> existed before coke
22:37:48 <itidus20> ill wiki
22:38:06 <elliott> ...
22:38:28 <Patashu> lol
22:38:53 <itidus20> http://en.wikipedia.org/wiki/Santa#Origins
22:40:04 <itidus20> sinterklaas looks like he doesn't need any help from coke
22:40:15 <Sgeo> http://www.rockymountainnews.com/news/2007/dec/10/coke-denies-claims-it-bottled-familiar-santa/
22:40:48 <elliott> even if they made the red outfit
22:40:52 <elliott> that doesnt mean theyfucking invented santa calause
22:41:23 <itidus20> elliott: it turns out they didn't invent anything
22:42:07 <itidus20> going by sgeo's link
22:42:47 <itidus20> i apologize for my errors
22:43:04 <itidus20> -- theres 16th century santa in red and white: http://en.wikipedia.org/wiki/File:Sinter-claes-saint-nicolas-dam800.jpg
22:45:44 <itidus20> so all in all my basis was wrong
22:46:48 <itidus20> but still.. people have enjoyed qwop without knowing that it comes from someone who comes across as a bit of a game designer mad scientist by association from what i have spelled out
22:49:48 <Vorpal> itidus20, wait a second. "enjoyed qwop"? I watched a youtube video of it, and it looks horrible
22:50:04 <Vorpal> doesn't look enjoyable at all
22:50:13 <itidus20> well it is celebrated
22:50:53 <Vorpal> itidus20, that is not the same thing as enjoying it
22:51:39 <itidus20> true
22:52:56 <fizzie> I'm sure some people have enjoyed the feeling of triumph when they've finally managed to make the guy go.
22:53:30 <fizzie> "I enjoyed QWOP on PC so I might get it for ipod too", writes "glowtmickey".
22:54:49 <fizzie> Diff'rent strokes and so on.
22:56:19 -!- jcp has quit (Quit: Later).
22:56:24 -!- jcp|1 has quit (Read error: Connection reset by peer).
22:56:28 <itidus20> bioethics senior research fellow makes games about running and rockclimbing, writes articles in cooperation with "person who advocates performance enhancing drugs, genetic engineering of children by parents, stem cell research is justifiable even if one accepts the view of the embryo as a person"
22:57:35 <elliott> You've said.
22:57:36 <elliott> Repeatedly.
22:57:53 <itidus20> there must be some hidden meaning in it
22:58:00 <elliott> Or maybe there isn't.
22:58:10 <elliott> Maybe collaborating with someone doesn't mean you agree with them about literally everything.
22:59:13 <itidus20> Savulescu's article "Brain Damage and the Moral Significance of Consciousness" appears to be the first mainstream publication to argue that increased evidence of consciousness in patients diagnosed with being in persistent vegetative state actually supports withdrawing or withholding care
22:59:56 <itidus20> well thats a tough one.........
23:00:13 <itidus20> i'll give him credit that he takes on the big issues
23:01:35 <itidus20> ok i will never speak of foddy or savulesco or qwop or girp again myself in here. :D
23:10:30 -!- copumpkin has quit (Remote host closed the connection).
23:11:52 -!- copumpkin has joined.
23:16:23 -!- Vorpal has quit (Ping timeout: 260 seconds).
23:38:50 <elliott> hmm, naming things is hard
23:51:57 <elliott> ?hoogle asum
23:51:57 <lambdabot> Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a
2011-08-19
00:03:12 -!- kwertii has joined.
00:12:10 <Gregor> Well, my muxer works perfectly, with the small caveat that it doesn't work.
00:12:16 <elliott> Gregor: Sounds like mine.
00:12:20 <elliott> What was wrong with mine again? :-P
00:12:31 <Gregor> elliott: Yours just didn't send shit anywhere :P
00:12:37 <elliott> Gregor: And your does? :P
00:12:39 <Gregor> Mine works, it just gets all wonky after a few K.
00:12:46 <elliott> Oh well that's far better :P
00:12:49 <elliott> At least mine fails predictably
00:13:00 <Gregor> I think I'm doing something wrong with nonblocking I/O.
00:13:20 <elliott> Gregor: Can I sell @ Enterprise Solutions to you?
00:13:25 <elliott> They make non-blocking I/O... a CINCH
00:13:43 <monqy> @ enterprise solutions
00:13:52 <elliott> Yes, it's identical to @
00:15:14 <elliott> Gregor will have none of this @ in his redneck computer system o-tron.
00:20:04 -!- botte has joined.
00:20:13 <elliott> botte: WHAT'S THI
00:20:14 <elliott> S
00:20:18 <elliott> And
00:20:19 <elliott> Also
00:20:21 <elliott> Why is it buffering like that
00:20:22 <elliott> Oh
00:20:23 <elliott> I think I know why
00:20:29 -!- botte has quit (Remote host closed the connection).
00:20:34 <monqy> bye botte
00:20:40 <elliott> Hmm
00:20:41 -!- botte has joined.
00:20:42 <elliott> Why isn't it
00:20:45 <elliott> botte: Why aren't you
00:21:52 <elliott> help why is it
00:22:03 <monqy> why is what help
00:22:08 <monqy> what is it
00:22:09 <monqy> help
00:22:12 <elliott> help
00:22:23 <monqy> :(
00:25:49 -!- botte has quit (Ping timeout: 276 seconds).
00:27:45 <monqy> what does/did botte do
00:28:09 <elliott> its
00:28:10 <elliott> note working
00:28:11 <elliott> sonothing
00:28:23 <monqy> what should it do...
00:42:33 <Gregor> I FIXED IT 8-D
00:42:38 <Gregor> I suck at nonblocking I/O though :P
00:42:40 <elliott> Gregor: WHAT DID YOU DO
00:42:41 <elliott> WAS IT MAGIC
00:43:11 <Gregor> Just fixed a read that should have been blocking.
00:45:49 -!- sllide has quit (Ping timeout: 250 seconds).
00:49:06 <Gregor> `killall linux` feels like a really bad command.
00:49:08 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: killall: not found
00:49:20 <elliott> X-D
00:49:53 <Gregor> >_>
00:50:05 <Gregor> Hm ... this may or may not be working ...
00:50:13 <Gregor> If it is working, it's supaslow.
00:53:35 <Gregor> (That is, working via tty redirection)
00:56:30 <Sgeo> Argh
00:56:49 <Sgeo> I feel sick for being unable to think of a nice functional solution to a problem that looks like it ought to have one
00:57:06 <elliott> Yes. You're sick.
00:57:21 <monqy> a sgeo problem
00:58:08 <elliott> Gregor doesn't want to implement mudem in @ I WNODER WHY
00:58:47 <Sgeo> This code is so imperative ;(
00:59:18 <monqy> sickening
01:00:14 <elliott> Sgeo: what languagea e you using
01:00:25 <Sgeo> Ruby
01:00:33 <monqy> why
01:00:43 <Sgeo> I'd like to know what a nice Haskell solution looks like though
01:00:50 <monqy> what's the problem
01:01:40 <elliott> Sgeo: whats the problem
01:01:46 <Sgeo> Hold on
01:01:59 <elliott> no
01:01:59 <elliott> no holding
01:02:01 <elliott> only haskell
01:02:02 <elliott> forever
01:02:16 <Sgeo> http://pastie.org/2394254
01:02:28 <monqy> ouch my eyes
01:02:36 <elliott> http://pastie.org/pastes/2394254/text
01:02:36 <elliott> ur welcome
01:02:40 * elliott reads
01:02:58 <elliott> ok i can do this
01:03:46 <elliott> Sgeo: the ordering doesn't matter, right?
01:03:51 <elliott> i.e. it's five numbers in arbitrary order
01:04:05 <Sgeo> I'm not sure
01:04:20 <elliott> the problem is way too ambiguous as specified if I don't know that
01:04:24 <elliott> doe "set of three ones" mean "three consecutive ones"
01:04:27 <elliott> or "three ones in any order"
01:04:28 <elliott> [asterisk]does
01:04:38 <Sgeo> assert_equal 250, score([2,5,2,2,3])
01:04:55 <elliott> that doesn't answer my question
01:05:01 <Sgeo> Yes it does
01:05:02 <monqy> Sgeo,.......................
01:05:09 <Sgeo> Any order. Which I thought it wasn't, so oops
01:05:27 <elliott> http://en.wikipedia.org/wiki/Greed_(dice_game)#Scoring
01:05:28 <elliott> are you sure
01:06:10 <Sgeo> I shouldn't be asking for this now, it feels like asking for homework help
01:06:26 <Sgeo> But that's one of the test cases given, so...
01:07:12 <elliott> Sgeo: i'm donig it in haskell
01:07:14 <elliott> so how will it help you
01:07:21 <elliott> how about giving me the actual link to whatever it is
01:07:27 <elliott> so i can see all the test cases
01:07:30 <monqy> this wikiped does not agree with this what sgeo pasted...
01:08:14 <Sgeo> https://github.com/edgecase/ruby_koans/blob/master/koans/about_scoring_project.rb
01:08:22 <elliott> # * A one (that is not part of a set of three) is worth 100 points.
01:08:23 <elliott> #
01:08:23 <elliott> # * A five (that is not part of a set of three) is worth 50 points.
01:08:26 <elliott> this is the stupidest fucking game ever
01:08:31 <Patashu> I'm not sure I understand the game of Greed
01:08:39 <Patashu> if your turn ends when you don't score points, how do you ever get a straight?
01:08:41 <elliott> Sgeo: wait, score takes an arbitrary-length list?
01:08:47 <elliott> oh "up to five" dice
01:08:53 <Patashu> OH nevermind
01:09:35 <Sgeo> Well, my problem here is with thinking, not the language
01:09:44 <Sgeo> But unordered should be much easier
01:13:40 -!- CakeProphet has joined.
01:13:40 -!- CakeProphet has quit (Changing host).
01:13:40 -!- CakeProphet has joined.
01:14:51 <Sgeo> It shouldn't be cheating to use pry to explore things like Hash's methods, right?
01:15:08 <Sgeo> (Looked for a way to set a default value in a hash, and found it)
01:15:09 <elliott> what
01:16:33 <elliott> Sgeo: I almost have a nice-ish solution
01:16:44 <monqy> I almost have something nice-ish too
01:17:15 <Sgeo> I like the way my solution is turning out. Still a little imperative, but still
01:17:31 <elliott> *Main> score [1,5,5,1]
01:17:31 <elliott> 100
01:17:33 <elliott> oops
01:17:43 <Gregor> *sob* WHY IT NO WORKY :(
01:19:00 <elliott> Sgeo: http://sprunge.us/TRiI
01:19:09 <elliott> Sgeo: This is mine... triples is fairly ugly, but it could be a lot worse.
01:19:13 <elliott> monqy: What's yours look like?
01:19:32 <monqy> im not done im learning the split package :(
01:21:35 -!- elliott_ has joined.
01:21:40 <elliott_> Sgeo: Did mine get through?
01:21:54 <Sgeo> elliott_, I haven't tested or anything
01:21:58 <elliott_> Sgeo: I mean
01:21:59 <elliott_> Did the link to mine
01:22:01 <elliott_> get through
01:22:04 <monqy> yes
01:22:07 <Sgeo> Yes
01:22:10 -!- elliott has quit (Read error: Connection reset by peer).
01:22:21 <monqy> if the link was 18:20:55 < elliott> Sgeo: http://sprunge.us/TRiI
01:22:22 <monqy> at least
01:22:25 <elliott_> Yeah
01:23:37 <elliott_> monqy: If you clean up triples let me know ;-)
01:23:56 <elliott_> Hmm, I think I can
01:23:56 <monqy> i'm multitasking so much right now
01:24:14 <monqy> recently i have also been putting food in my mouth
01:24:28 <elliott_> > fmap succ (0,9)
01:24:29 <lambdabot> (0,10)
01:26:06 <Gregor> Bleh, I have no idea why this isn't working ...
01:26:09 <elliott_> Aha
01:26:16 <elliott_> Sgeo: monqy: http://sprunge.us/SVcQ
01:26:18 <elliott_> Now it's pretty nice.
01:26:21 <elliott_> I like it.
01:26:29 <monqy> it ineed looks better
01:28:50 <elliott_> Sgeo: What's yours look like
01:29:03 <Sgeo> I'm not done
01:29:18 -!- evincar has joined.
01:29:43 <Sgeo> http://pastie.org/2394371 is what it currently looks like though
01:31:09 <elliott_> Oh, hmm, I could simplify mine a lot.
01:33:14 <Sgeo> I should probably clone before deleting from a Hash while looping through a hash
01:34:11 -!- zzo38 has joined.
01:34:34 <Sgeo> Darn, I suck at variable names
01:35:25 <augur> didnt someone in here used to have "lament" as their username? :|
01:36:36 <shachaf> augur: lament used to be in #haskell, at least.
01:36:46 <elliott_> lament is an op here.
01:36:53 <elliott_> He only comes to try and irritate us lamely nowadays.
01:37:01 <elliott_> Also he hates Haskell. And programming. :p
01:37:05 <augur> well!
01:37:09 <elliott_> ?hoogle divmod
01:37:10 <lambdabot> Prelude divMod :: Integral a => a -> a -> (a, a)
01:37:10 <lambdabot> Data.Fixed divMod' :: (Real a, Integral b) => a -> a -> (b, a)
01:37:11 <elliott_> ?hoogle quotRem
01:37:11 <lambdabot> Prelude quotRem :: Integral a => a -> a -> (a, a)
01:37:39 <augur> well theres a lament in #math who says he has no idea what #esoteric is
01:37:42 <augur> maybe hes lying :D
01:37:46 <elliott_> He is.
01:37:50 <elliott_> * [lament] (~lament@S0106002312fa554a.vc.shawcable.net): Nikita
01:37:54 <elliott_> Right hostname, realname.
01:39:28 -!- moses_ has joined.
01:39:36 <moses_> lament
01:39:38 <moses_> WTF
01:39:40 <moses_> where are you
01:39:55 <augur> moses_: in #math!
01:40:20 <moses_> omg
01:40:23 <elliott_> what
01:40:24 <elliott_> the fuck
01:40:25 <moses_> way to ruin my life
01:40:25 <elliott_> is going on
01:40:34 <elliott_> moses_: ?????????
01:40:46 <moses_> elliott_, you were once my hampster!!!
01:40:58 <elliott_> I know.
01:41:02 <elliott_> But then I passed away.
01:41:06 <elliott_> I'm still with you in spirit, moses_.
01:41:31 <moses_> actually you got lost in my house
01:41:47 <elliott_> ok no but seriously what is it with lament??
01:41:51 <elliott_> why are you here
01:42:02 <moses_> you dont know lament?
01:42:09 <elliott_> yes, I do
01:42:12 <elliott_> well, fsvo know
01:42:19 <elliott_> he is an op here, why?
01:42:29 <moses_> he hates me
01:43:09 <elliott_> he hates a lot of things
01:43:10 <monqy> is it true that he doesn't come here anymore specifically because of elliott_ specifically
01:43:17 <moses_> yes
01:43:19 <moses_> i believe so
01:43:22 <elliott_> yeah :D
01:43:25 <moses_> he hates someone in this channel
01:43:27 <elliott_> moses_: what's your point, and why are you coming here to make it
01:43:29 <moses_> so what is this channel?
01:43:35 <elliott_> it's about esoteric programming languages
01:43:40 <moses_> which are like which?
01:43:42 <moses_> C?
01:43:46 <moses_> muhahahaaha
01:43:48 <moses_> jkjk
01:43:55 <elliott_> brainfuck, intercal, unlambda :P
01:44:01 <elliott_> (but nobody likes brainfuck much.)
01:44:15 <elliott_> so wait
01:44:26 <elliott_> moses_: does lament going around telling people how much he hates this one guy in #esoteric or something
01:44:31 <elliott_> because that's hilarious
01:44:41 <moses_> someone called him out on it
01:45:47 <moses_> augur, hello
01:45:58 -!- dbelange has joined.
01:45:58 <augur> moses_, hello
01:46:12 <moses_> they told me to ask you about brainfuck
01:46:26 <elliott_> coppro: someone let dbelange out of the cage again
01:47:10 <monqy> ok my score looks worky
01:47:21 <elliott_> monqy: I just did it in a nice way except sprunge is down oops
01:47:25 <monqy> I don't really like how the layout turned out, but other than that, I'm pleased with it
01:47:36 <monqy> oh no
01:47:41 <monqy> I'll hpaste mine I guess??
01:48:03 <dbelange> elliott_: who are you
01:48:23 <elliott_> dbelange: a beautiful snowflake
01:48:27 <dbelange> does anyone here know erlang
01:48:27 <elliott_> monqy: Sgeo: here we go: http://hpaste.org/50453
01:48:29 <elliott_> also it's fast now
01:48:38 <dbelange> I want to learn erlang but nobody uses it because it's useless
01:48:40 <monqy> elliott_: Sgeo: http://hpaste.org/50454
01:48:42 <dbelange> so I come here
01:49:05 <Sgeo> dbelange, Erlang isn't considered "esoteric"
01:49:13 <elliott_> Sgeo: dude dbelange has been in here before
01:49:16 <Sgeo> But there may be people here who know some ... oh
01:50:11 <elliott_> monqy: yours requires language extensions :(
01:50:16 <elliott_> you probably want a newline before the | anyway
01:50:28 <monqy> elliott_: yeah
01:50:38 <dbelange> elliott_: What did I do last time that was so memorable?
01:50:53 <elliott_> dbelange: I think I primarily remember coppro shooing you away
01:50:54 <monqy> elliott_: I guess my thing got scrolled down so the {-# LANGUAGE PatternGuards #-} got cut off
01:51:03 <monqy> elliott_: anyway I can't live without pattern guards
01:51:09 <monqy> I wish guards could nest
01:51:10 <monqy> that would be nice
01:51:33 <elliott_> monqy: yours doesn't scale very well if your dice miraculously grows a few thousand extra sides, just sayin'
01:51:39 <monqy> :(
01:51:47 <monqy> it was my first try
01:51:58 <elliott_> hmm, I wonder if fusion eliminates the map altogether
01:52:05 <elliott_> it's a pretty simple "fold . map . construct" pipeline
01:52:09 * elliott_ looks at the core
01:54:48 <monqy> also i gues the thing i import requires extensions too but i forgive it because i can't live without extensions either
01:54:58 <augur> elliott_: fold fusion??
01:55:25 <elliott_> augur: yes fusion
01:55:55 * Sgeo finishes
01:55:57 <elliott_> monqy: it does not look like it's eliminating the map entirely HMMmmmmmMMMMmmmmmmmmmmmmmMMMMmmmmmmmMMMmmmmMMmmmmMMmmMMMmmmMMmmmMMmmmMMMmmMMmmmMmmmmmmmmmmmmmm
01:56:06 * elliott_ tries to make it use a list COUNTERINTUITIVE BUT WILL IT WORK???
01:56:11 <Sgeo> http://pastie.org/2394478
01:56:16 <augur> well, map-fold fusion certainly eliminates the map altogether
01:56:26 <augur> but because of identification
01:56:27 <monqy> elliott_: you could manually put the thing in the fold?????????
01:56:32 <elliott_> :t foldl'
01:56:33 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
01:56:44 <elliott_> augur: map as in Data.Map in this case
01:56:49 <augur> foldr f z . map g = foldr (f . g) z
01:56:56 <augur> oh, well then!
01:56:59 <augur> who knows
01:57:08 <monqy> :t Data.Map.fold
01:57:09 <lambdabot> forall a b k. (a -> b -> b) -> b -> M.Map k a -> b
01:57:16 <augur> ask in #haskell!
01:57:45 <elliott_> meh, this is almost certainly the best solution
01:59:27 <monqy> sgeos solution is too much mutation for me :(
02:00:39 <CakeProphet> > let feels = fmap (>>= (const Nothing)); batman = Just (Just False) in feels batman
02:00:40 <lambdabot> Just Nothing
02:00:51 <elliott_> Some assumptions in this area that there won't be more than 5 dice. Otherwise, multiple triplets may be
02:00:52 <elliott_> underreported
02:00:53 <elliott_> pro
02:01:01 <elliott_> mine handles an arbitrary number of triples
02:01:08 <elliott_> also dice of any size????
02:01:13 <elliott_> also lists of any side
02:01:14 <elliott_> im good
02:01:15 <elliott_> size
02:01:26 <monqy> i think mine handles multiple triplets as well
02:01:27 <CakeProphet> elliott_ has excellent size.
02:01:43 <elliott_> monqy: mine is the best y/y
02:01:49 <monqy> sure fine whatever
02:01:54 <elliott_> monqy: FEEL BAD
02:01:58 <monqy> mine should also handle dice of any size, lists of any size???
02:02:06 <elliott_> i wouldnt know i cant read it its too wide
02:02:26 <CakeProphet> > let feels = fmap (>>= (const Nothing)); batman = Just (Just (Just (Just (Just (Just Nothing))))) in feels batman
02:02:26 <lambdabot> Just Nothing
02:02:54 <CakeProphet> > join (Just Nothing)
02:02:55 <lambdabot> Nothing
02:03:50 * Sgeo ponders porting the Haskell prelude to Ruby
02:03:57 <monqy> why
02:03:58 <elliott_> lol
02:04:56 <monqy> why would you ever
02:04:58 <monqy> anyone ever
02:04:58 <monqy> do that
02:05:24 <monqy> the useful functions?
02:05:31 <monqy> or is it for the learning rubey experience
02:05:43 <Sgeo> Why not for both?
02:06:09 <monqy> both are useless because ruby sucks
02:07:49 <CakeProphet> I don't really understand why ruby sucks.
02:07:56 <CakeProphet> is it, for instance, more sucky than Python?
02:08:17 <elliott_> yes and also no, but it's on the same tier as python
02:08:23 <elliott_> so it's in the region of unacceptably afwul
02:08:24 <kwertii> any language with syntactically significant whitespace automatically gains 550 suck points, just for that.
02:08:25 <CakeProphet> what exactly are you looking for in your language.
02:08:29 <monqy> some of its flaws are different than python's
02:08:59 <monqy> syntactically significant whitespace is pretty okay. (thumbs up)
02:09:08 <evincar> Yeah, it is.
02:09:10 <elliott_> CakeProphet: haskell
02:09:17 <evincar> Some people just don't like being told what to do.
02:09:21 <elliott_> what
02:09:24 <evincar> Even if they were going to do that very thing anyway.
02:09:26 * CakeProphet sees nothing wrong with significant whitespace as long as it's done properly
02:09:31 <CakeProphet> properly: Haskell
02:09:37 <CakeProphet> improperly: Python
02:09:49 <Sgeo> How is Python's improper?
02:09:59 <CakeProphet> no non-significant option
02:10:05 <CakeProphet> with {}'s and such
02:10:47 <evincar> Well, to be fair, at least it's intentional in Python.
02:10:54 <CakeProphet> that makes it even worse.
02:10:55 <evincar> "There should be ONE TRUE WAY."
02:11:05 <monqy> one true bad way
02:11:06 <evincar> It's an idealistic language. :P
02:11:09 <monqy> hyu k huyk
02:11:09 <CakeProphet> that means it's an ideological fuck up and not just a fuck up of negligence.
02:11:30 <evincar> So long as we know where the problem is.
02:11:34 * CakeProphet knows all about the Python "philosophy"
02:11:40 <CakeProphet> it's almost as bad as the Ruby way. :P
02:11:59 <CakeProphet> and maybe Perl ranks up there somewhere in "programming languages turned into philosophies gone wrong"
02:12:17 <CakeProphet> it's not a freakin' religion, okay? it's a programming language.
02:12:20 <Patashu> does any language have a good philosophy?
02:12:32 <CakeProphet> x86 assembly
02:12:33 <monqy> isn't perl's philosophy that there's multiple ways to do things
02:12:39 <CakeProphet> yes, among other things.
02:12:51 <monqy> x86 has a philosophy?
02:12:53 <CakeProphet> "do what I mean" is another.
02:12:58 <Sgeo> What's wrong with Only One Obvious Way To Do It?
02:13:15 <monqy> if x86 has a philosophy, it's godawful, ok.
02:13:16 <evincar> The one thing I don't like about Perl6 is changing the meanings of $, @, and % based on context.
02:13:23 <elliott_> heres my philosophy THE LANGUAGE IS PERFECT AND DOES WHAT YOU MEAN
02:13:28 <elliott_> it is about as achievable as only one obvious way to do it
02:13:29 <evincar> Rather than "$ always gets me a scalar".
02:13:30 <monqy> evincar: rest in peace hilariously bad misfeatures
02:13:44 <evincar> I liked typed dereferencing operators. :(
02:13:49 <CakeProphet> monqy: exactly
02:13:49 <CakeProphet> because there's usually more than one way to do something?
02:13:50 <CakeProphet> even in Python.
02:14:14 <elliott_> and because you cant make everything obvious
02:14:17 <elliott_> unless everything you do is trivial
02:14:22 <elliott_> which is true for most pyhton programmers i guess
02:15:25 <CakeProphet> I think Perl's philosophy is a better approach, honestly. Though it may not be the best language.
02:16:15 <monqy> "do what I mean" is pretty bad
02:16:26 <CakeProphet> well, it can be.
02:16:31 <elliott_> perls is timtoady
02:16:37 <Sgeo> monqy, like Javascript implied semicolon?
02:16:46 <CakeProphet> there's also "make the easy things easy and the hard things possible"
02:17:16 <monqy> Sgeo: I hate that sort of thing
02:17:34 <monqy> "you can put semicolons here if you want them, but it's fine if you leave them out" is just ugh
02:17:53 <Sgeo> I remember reading about a Javascript quirk that's exactly due to implied semicolon
02:18:01 <elliott_> monqy: let x=0; y=9 in z
02:18:06 <elliott_> monqy: let {x=0; y=9} in z
02:18:12 <elliott_> you can put braces here if you want them [...]
02:18:38 <monqy> elliott_: i indeed dislike that,,,haskell isnt perfect,,,
02:18:58 <CakeProphet> that's an incredibly trivial thing to dislike, though...
02:19:10 <monqy> I never said it made me want to kill people or anything
02:19:12 <elliott_> CakeProphet: js' implied semicolons cause shit
02:19:13 <elliott_> function x()
02:19:13 <elliott_> {
02:19:15 <CakeProphet> hatred of JS implied semicolon is sensible though.
02:19:15 <elliott_> return
02:19:16 <elliott_> {
02:19:17 <elliott_> x:9
02:19:18 <elliott_> };
02:19:18 <elliott_> }
02:19:19 <monqy> I mildly dislike it
02:19:23 <elliott_> guess what that returns
02:19:28 <CakeProphet> I was referring to the Haskell thing.
02:19:30 <elliott_> hint, it's not {x:9}
02:19:31 <CakeProphet> not JS.
02:19:34 <monqy> CakeProphet: I was too
02:19:40 <CakeProphet> indeed
02:19:44 <monqy> CakeProphet: the javascript one is more dislikeable
02:20:50 <CakeProphet> because with let..in it's completely disambiguous where it starts and ends.
02:21:08 <CakeProphet> starts with a let, ends with an in
02:21:13 <elliott_> unambiguous
02:21:18 <CakeProphet> right.
02:21:26 <CakeProphet> too much wikipedia, obviously.
02:24:11 <CakeProphet> I find the Python design goals to be insulting really.
02:24:30 <CakeProphet> very conservative inclusion of features so that our feeble minds aren't overloaded.
02:25:06 <CakeProphet> we can't add that it makes it possible to write unreadable code!
02:27:15 -!- variable has joined.
02:28:12 <CakeProphet> ...you don't even declare variables in Python. really I don't want to know what testing a large Python application is like.
02:28:28 <CakeProphet> it must be something like what I imagine hell to be.
02:30:21 <elliott_> Almost as bad as testing a large Perl application
02:30:41 <CakeProphet> hey at least Perl has some compile-time errors that aren't syntax errors.
02:31:48 <CakeProphet> "hey you didn't declare this variable" "uh, hey this is an array reference but I want an array"
02:32:11 <CakeProphet> but yes, not much better, with more room to fuck up due to complicated syntax.
02:32:44 <CakeProphet> I'd imagine using subroutine prototyping would greatly improve compile-time errors.
02:34:15 <elliott_> <CakeProphet> "hey you didn't declare this variable" "uh, hey this is an array reference but I want an array"
02:34:18 <elliott_> only with use strict/warnings
02:34:25 <CakeProphet> ...right.
02:34:37 <CakeProphet> who in their right mind would not use strict/warnings when writing a Perl application.
02:34:48 <CakeProphet> that's their problem not Perls.
02:35:00 <Sgeo> Option Explicit
02:35:48 <CakeProphet> in fact unless you're using Perl
02:35:54 <CakeProphet> 's -e option to write a short command line thing
02:36:02 <CakeProphet> pretty much every program needs a use strict; use warnings line
02:38:01 <elliott_> one line? gross
02:38:23 <CakeProphet> .....really?
02:38:32 <CakeProphet> like, it's that big of a deal that I write use strict; use warnings;
02:38:33 <CakeProphet> instead of
02:38:34 <CakeProphet> use strict;
02:38:36 <CakeProphet> use warnings;
02:38:57 <CakeProphet> man that newline character makes such a different
02:39:09 <CakeProphet> uh, effect.
02:42:14 -!- jcp|other has joined.
02:42:31 <elliott_> Yes.
02:42:32 <elliott_> Yes it does.
02:43:31 -!- jcp has joined.
02:43:48 <CakeProphet> I thought you didn't care about superficial syntax differences?
02:44:10 <elliott_> :)
02:44:21 <CakeProphet> :D
02:46:40 * Sgeo kind of wants to play with Heroku >.>
02:48:14 <elliott_> the Heroku guys seem nice, but they also support non-Ruby languages
02:48:36 <dbelange> _why would you do that
02:48:47 <elliott_> so it's hardly a reason to torture yourself
02:49:03 <Sgeo> I'm not really finding this torture yet
02:49:07 <elliott_> That's a personal flaw
02:51:57 <Sgeo> Besides Ruby, they support... Node.js, I don't see what else they support.
02:52:09 <Sgeo> Unless you'd say Javascript is actually better than Ruby
02:52:37 * Sgeo looks harder
02:53:42 <elliott_> Clojure too, but also anything statically linked.
02:54:31 -!- derrik has joined.
03:11:29 -!- MSleep has joined.
03:14:29 -!- MDude has quit (Ping timeout: 252 seconds).
03:21:44 <Sgeo> W. T. F.
03:21:46 <Sgeo> range.first + rand (range.last + (range.include_end? ? 1 : 0))
03:22:08 <Patashu> lol
03:22:16 <Sgeo> oops, wrong thing
03:22:20 <Sgeo> That's _my_ code
03:22:25 <Sgeo> http://www.ruby-forum.com/topic/93106#187674
03:25:00 -!- GreaseMonkey has joined.
03:31:23 -!- derrik has quit (Quit: all work and no play).
03:38:26 <elliott_> pikhq: You know, with a decent union FS, writing a purely-functional package manager is really trivial.
03:40:39 <pikhq> Modulo dependencies, which have no general solution, due to recursive build-time dependencies.
03:41:35 <elliott_> pikhq: How on earth can you say those have no general solution? There's more than one way to get the package [name-version-hash] than following the build script.
03:41:50 <elliott_> For instance, downloading an archive from a known binary source and verifying its checksum, thus giving bit-identical results.
03:42:01 <pikhq> : gcc |> |> gcc
03:42:07 <pikhq> This is what you have to encode.
03:42:13 <elliott_> pikhq: There are no unsatisfiably cyclic _dependencies_, only methods of getting these dependencies.
03:42:29 <elliott_> Rather than "build GHC -> build GHC -> ...", you want "build GHC -> download GHC".
03:42:31 <elliott_> Again,
03:42:32 <elliott_> <elliott_> pikhq: How on earth can you say those have no general solution? There's more than one way to get the package [name-version-hash] than following the build script.
03:42:32 <elliott_> <elliott_> For instance, downloading an archive from a known binary source and verifying its checksum, thus giving bit-identical results.
03:42:42 <elliott_> Building from source is just one way to get the same bit-for-bit result.
03:44:06 <elliott_> pikhq: And if your package manager only supports one way of getting a package, it's pretty lame. Rebuilding is a waste of time unless you want abnormal flags.
03:44:24 <elliott_> And, of course, if you want abnormal flags, that doesn't change GHC's dependencies; GHC compiles with a stock GHC, no matter what flags you're giving it.
03:45:29 <elliott_> pikhq: No?
03:47:17 <pikhq> GHC foo built with GHC foo != GHC foo built with GHC bar. What you want for cyclic dependencies like that is the fixed point...
03:47:27 <Sgeo> I don't think this thing is teaching best practices
03:47:32 <elliott_> pikhq: Why?
03:47:43 <elliott_> pikhq: GHC is parameterised on its flags; it depends on GHC(stock-flags).
03:47:57 <Sgeo> It taught how to access and modify instance variables from within a module, but didn't say "Don't do that"
03:48:06 <elliott_> pikhq: A GHC parameterised on flags =/= stock-flags might not even be able to build a useful GHC -- for instance, if you want a GHC that compiles for ARM.
03:48:18 <elliott_> Sgeo: Because that's not bad practice in Ruby.
03:48:29 <Sgeo> So what if there's a conflict?
03:48:30 <elliott_> Sgeo: Shit language, shitter idioms, shittest community.
03:48:51 <pikhq> elliott_: Does GHC(stock-flags) depend on GHC(stock-flags) or GHC(version--, stock-flags)?
03:49:02 <Patashu> I think the only language I've never seen smacktalked in here is haskell
03:49:15 <elliott_> Patashu: I could smacktalk Haskell all day if you'd like
03:49:23 <Patashu> sure B)
03:49:26 <elliott_> pikhq: The latter will probably work, but I'd specify the dependency as the former.
03:49:43 <elliott_> pikhq: Yes, it's a cyclic dependency, but that doesn't mean its unresolvable; it only is with a naive method of package-finding.
03:49:51 <pikhq> elliott_: Then you're going to be finding the fixed point of package building.
03:49:56 <elliott_> pikhq: No.
03:50:02 <elliott_> pikhq: You keep saying that, but it's not true.
03:50:14 <elliott_> <elliott_> pikhq: Yes, it's a cyclic dependency, but that doesn't mean its unresolvable; it only is with a naive method of package-finding.
03:50:19 <elliott_> _Building is not the only way to install a package._
03:50:37 <pikhq> Building is the only way to install a package if the package does not already exist.
03:50:45 <elliott_> Patashu: Module system should be more like ML's, record system sucks, IO monad sucks should be more like FRP (but this leads to an entire operating system, well... see @), ...
03:50:53 <elliott_> pikhq: Sure, if you own the only computer in the world.
03:50:57 <elliott_> pikhq: You could also get the package from someone else.
03:51:01 <pikhq> i.e. *AT ALL*.
03:51:17 <elliott_> pikhq: How exactly does wgetting the package from a package repository fail to produce the package?
03:51:18 <pikhq> Well, rather, in a form at all usable on your system.
03:51:30 <pikhq> elliott_: Where does the package repository get it from?
03:51:34 <pikhq> Thin air?
03:52:08 <Sgeo> Surely there's a nice clean idiom for having modules store state that doesn't interfere with the instance variables of the class
03:52:16 <elliott_> pikhq: Building it locally. To start with, you'd simply make an initial binary package of the current version by building it on another machine or downloading the provided haskell.org/ghc/ binary distribution, extracting that tree, and packaging it up.
03:52:37 <elliott_> pikhq: That package can then be used to satisfy the dependency.
03:52:51 <elliott_> Sgeo: Ruby sucks.
03:52:59 <elliott_> Patashu: I could go on, but those are pretty big problems.
03:53:31 <pikhq> And now you're either going to be building GHC with the same configuration of GHC, eventually getting the fixed point of building GHC, or you're going to have one funky build dependency chain.
03:53:43 <pikhq> Now are we done confusing each other?
03:54:16 <elliott_> pikhq: I don't see how branding the obvious thing to do as a "funky dependency chain" makes it not the obvious thing to do.
03:54:23 <Patashu> 'module system should be more like ML's' what is ML?
03:54:43 <elliott_> Patashu: Um, one of the oldest functional languages in existence? http://en.wikipedia.org/wiki/ML_(programming_language)
03:55:04 <elliott_> http://en.wikipedia.org/wiki/Standard_ML#Module_system is relevant.
03:55:28 <pikhq> elliott_: ghc7->ghc6->ghc5->ghc4->ghc3->ghc2->ghc-non-bootstrapped is a funky thing to specify as your dependency chain.
03:55:44 <pikhq> Especially if you don't want anything earlier than ghc7 still around.
03:55:45 <elliott_> pikhq: I never said that
03:55:47 <elliott_> But w/e
04:12:51 <Gregor> Argh pipes are weird.
04:13:00 <Gregor> "HEY YOU HAVE INPUT! READ IT! READ IT NOW! Oh it's zero bytes."
04:20:17 <elliott_> Gregor: doesn't read returning 0 = eof or error
04:20:53 <Gregor> Not if you're nonblocking.
04:21:03 <Gregor> Ohohoh
04:21:07 <elliott_> why be nonblocking
04:21:09 <Gregor> Sorry, I didn't explain properly :P
04:21:14 <elliott_> just use select or w/e
04:21:28 <pikhq> Gregor: Um, that still applies.
04:21:32 <Gregor> read() returned -1, I just meant it was select()ing and then giving me no bytes.
04:21:43 <pikhq> Gregor: It's just that one of the errors you get is "There's no data here right now".
04:21:56 <elliott_> Gregor: that means error, i think
04:21:57 <Sgeo> I'm starting to consider C# favorably in relation to Ruby
04:22:03 <elliott_> maybe i'm wrong
04:22:08 -!- sebbu has quit (Ping timeout: 246 seconds).
04:22:09 <Gregor> Indeed, it is errors :P
04:22:15 <Gregor> For some reason my connection is unidirectional.
04:22:22 <Sgeo> At least I'm blind to any masive C# warts, even if it's not quite as smoothly powerful
04:22:23 <elliott_> Gregor: but yeah why nonblocking
04:22:34 <Gregor> elliott_: That was just a bit of overgeneralization *shrugs*
04:22:36 <Gregor> I have since fixed it.
04:22:38 <pikhq> elliott_: EAGAIN, telling you that there's no data pending right now, is an error. :)
04:22:38 <elliott_> its just more painful and iirc doesnt work on sockets
04:22:56 <Gregor> s/sockets/pipes/
04:29:27 <Sgeo> Ugh, this is painful. Someone please freeze me until Newspeak or similar language with decent modularity overtakes the world.
04:29:44 <monqy> hi
04:31:21 -!- augur has quit (Remote host closed the connection).
04:31:24 <Sgeo> Does vanilla Smalltalk not have this kind of stupidity?
04:31:59 <Sgeo> ...Oh, right, it does, kind of
04:33:01 <quintopia> hey sexies
04:34:30 <dbelange> sup quintopia
04:34:35 <dbelange> I am a sexy
04:34:43 <quintopia> me too
04:34:48 <quintopia> good to have you around
04:34:53 -!- evincar has quit (Quit: Sleemp.).
04:36:17 -!- sebbu has joined.
04:39:26 -!- augur has joined.
04:40:04 <monqy> Sgeo: about what are you so upset
04:40:27 <Sgeo> modules with instance variables that can conflict with eachother
04:40:37 <Sgeo> When included into a class
04:40:50 <Sgeo> Suggestions by one person include long variable names
04:40:50 -!- augur has quit (Remote host closed the connection).
04:41:33 <monqy> and there's no way to handle it?
04:41:41 <monqy> that's ridiculous
04:41:51 -!- oerjan has joined.
04:42:00 <quintopia> hello mr. o
04:42:21 <Sgeo> There probably is a way, but certainly not built-in or anything. Supposedly, Ruby 2.0 will make a lot of these things much better
04:42:37 <oerjan> good morning Q
04:42:52 <quintopia> it's not yet 1 am here
04:43:32 <oerjan> hah you want to make me believe in that stupid time zone theory
04:44:15 <Sgeo> At least there is a way to deal with conflicting method names
04:45:11 <Sgeo> But, hmm, static typing makes more sense than duck-typing for that purpose
04:45:49 <Sgeo> Since with duck-typing, a rename means something that just expects a class that conforms to the API of one of the modules that tries to simply use an instance of the class breaks
04:48:33 <Sgeo> Ugh, I made a patch to Newspeak a while ago
04:48:39 <Sgeo> I should have submitted it somewhere
04:48:46 <Sgeo> The lack of it is now bothering me
04:52:22 <quintopia> repatch!
04:53:16 <dbelange> wangs
05:04:57 -!- myndzi has quit (Read error: Connection reset by peer).
05:07:44 -!- zzo38 has left.
05:13:31 <Patashu> wow. in C# you can write 'sql' http://msdn.microsoft.com/en-us/library/bb311045.aspx
05:13:33 <Patashu> I need to try that
05:13:55 <Patashu> Aaah, LINQ
05:14:32 -!- myndzi has joined.
05:21:45 <pikhq> Patashu: AKA monad comprehensions.
05:23:42 <oerjan> pikhq: you need to cackle evilly when you say that.
05:27:11 <Patashu> a ha! C# is functional after all
05:28:58 <elliott_> yeah right
05:58:16 <elliott_> `addquote <fizzie> That's the stupidest thing I've heard all morning. (Though I did wake up five minutes ago, so I haven't had a chance to hear very much.) <fizzie> The "Why are you still asleep? I told the cat to wake you up." comment does come pretty close, though.
05:58:17 <HackEgo> 600) <fizzie> That's the stupidest thing I've heard all morning. (Though I did wake up five minutes ago, so I haven't had a chance to hear very much.) <fizzie> The "Why are you still asleep? I told the cat to wake you up." comment does come pretty close, though.
05:58:18 <elliott_> fizzie EXPOSED TO THE WORLD
05:58:26 <elliott_> Ooh, nice 600th quote.
05:59:13 <oerjan> elliott_: NOW YOU CANNOT DELETE ANY OF THE PREVIOUS ONES *MWAHAHAHA*
05:59:35 <elliott_> :'(
06:00:11 <oerjan> a wicked dilemma
06:01:07 <Sgeo> I can only assume the Mr_Grim in #ruby is not the MrGrim on Reddit.
06:01:11 <quintopia> unless he manually moves later ones to before it
06:01:19 <Sgeo> I assume MrGrim on Reddit has an IQ of above 50
06:01:29 <quintopia> or he could move that one to position 100, since 100 is more auspicious than 600
06:02:02 <elliott_> Sgeo: #ruby-lang is the official channel (I forget whether it's better or worse...)
06:02:03 <elliott_> well
06:02:09 <elliott_> zenspider is an op in #ruby-lang
06:02:11 <elliott_> so i guess it has to be worse
06:07:21 <elliott_> oerjan: quintopia: monqy: if you guess the question i ask i turn into god......
06:08:52 <quintopia> then i won't guess
06:09:04 <quintopia> because as unlikely as it is, i might be right
06:10:27 <elliott_> :(
06:10:30 <elliott_> guese or die
06:10:30 <oerjan> i somehow doubt that.
06:10:44 <elliott_> guese or dei
06:11:09 <oerjan> guess and deus
06:11:27 <elliott_> GES OR DE
06:11:44 <oerjan> DO UT DES
06:11:57 <oerjan> *VT
06:12:09 -!- Taneb has joined.
06:12:14 <elliott_> oh hi Taneb
06:12:21 <Taneb> Hello!
06:12:33 <Taneb> I have no idea what you were on about last night.
06:12:55 <oerjan> Taneb: i think i commented on your Cab = a or b question while you were away
06:13:04 <elliott_> Taneb: i like being incoherent its great
06:13:54 <oerjan> anyway, any combinator such that Cab = a must as a lambda expression be eta-equivalent to \x y -> x, and similarly for b
06:14:34 <Taneb> elliott_, I read "IM TAB" as "Go to the IM tab"
06:14:36 -!- Pianoo has joined.
06:14:49 <elliott_> no no on
06:14:52 <elliott_> i was just identifying with tabness
06:15:14 <Taneb> Hence my private message
06:15:20 <monqy> wow im tab too
06:15:39 <elliott_> monqy: tab frends
06:16:08 <Pianoo> Ola
06:16:15 <elliott_> helo
06:16:21 <elliott_> are you in spain now????
06:16:40 <Taneb> Bonjourno?
06:16:47 <monqy> hi
06:17:13 <oerjan> Taneb: also, system F (explicitly typed polymorphic LC) explores the idea of defining booleans as the type forall t. t -> t -> t, which in that system has only those two solutions.
06:17:29 <Taneb> Hmm...
06:17:33 -!- Pianoo has quit (Remote host closed the connection).
06:17:34 <oerjan> well irreducible solutions
06:17:57 <oerjan> *normalized
06:17:58 <Taneb> I was thinking in terms of MIBBLLII output
06:18:03 -!- Pianoo has joined.
06:18:32 <elliott_> isnt mibbllii impure
06:18:36 <monqy> bye pianoo hi pianoo
06:18:54 <Taneb> ...Only in terms of IO?
06:18:56 <oerjan> system F can define other data types in that way too, e.g. church numerals are forall t. (t -> t) -> (t -> t)
06:19:06 <elliott_> Taneb: that's the point :P
06:19:22 -!- Pianoo has quit (Remote host closed the connection).
06:19:44 <Taneb> I still don't quite get language purity
06:20:39 <elliott_> what part?
06:20:45 -!- Pianoo has joined.
06:21:06 <Pianoo> Hum sorry for that...
06:21:10 <elliott_> I mean, it's basically:
06:21:15 <elliott_> - Evaluating an expression cannot cause any side-effects to happen;
06:21:22 <elliott_> - A function's return value cannot depend on anything but its argument.
06:22:01 <oerjan> - Values don't change.
06:22:22 <elliott_> oerjan: That's inherent in the definition of value :-)
06:22:38 <oerjan> elliott_: well i mean in the context of your function arguments
06:22:41 <Sgeo> I still need to make my Scumbag Ola Bini pic
06:22:52 <Taneb> Hmm
06:23:21 <Taneb> So, pure languages cannot have interactive IO?
06:23:24 <oerjan> otherwise that _could_ be interpreted as the function's return value depending on just what its argument _currently_ is.
06:23:34 <oerjan> Taneb: not as part of their evaluation
06:23:41 <elliott_> Taneb: That's true in some ways, and untrue in others.
06:23:42 <oerjan> or wait
06:23:58 <elliott_> Consider Haskell; all Haskell code is pure, except for that code inside the IO monad.
06:24:23 <elliott_> Taneb: But consider Lazy K
06:24:24 <oerjan> Taneb: original haskell managed, in a convoluted way, to have the main program be a pure function without any monads.
06:24:40 <elliott_> oerjan: that's misleading
06:24:44 <Sgeo> elliott_, how is the IO monad not pure?
06:24:49 <elliott_> oerjan: you can define a simple IO type that has PutChar and GetChar
06:24:54 <elliott_> but code inside it still isn't pure
06:24:54 <Sgeo> It's only main that's treated, at execution, in an impure way
06:24:58 <elliott_> It is internally, but not externally
06:25:27 <elliott_> Sgeo: Would you be offended if I said that I didn't think you had a good enough understanding of Haskell to give a satisfactory answer?
06:25:32 <elliott_> The fact is that you can perform impure operations from within IO.
06:25:50 <elliott_> That you can contain these effects is nice, but does not make the IO monad itself impure.
06:25:55 <elliott_> Haskell is pure, but the IO monad isn't.
06:26:08 <Sgeo> I think you mistyped
06:26:11 <Taneb> MIBBLLII's about as pure as Haskell, if I'm understanding this correctly
06:26:13 <elliott_> Sgeo: Where?
06:26:20 <Sgeo> <elliott_> That you can contain these effects is nice, but does not make the IO monad itself impure.
06:26:25 <elliott_> s/impure/pure/
06:26:33 <Sgeo> (no pun intended)
06:26:37 <elliott_> > takes the next bit from the I/O stream, and then evaluates it in the following format:
06:26:37 <elliott_> < a prints whatever a 1 0 evaluates to, and returns null.
06:26:38 <lambdabot> <no location info>: parse error on input `,'
06:26:39 <elliott_> Taneb: Sorry, no.
06:26:44 <elliott_> MIBBLLII is an impure language.
06:27:01 <elliott_> Evaluation of an expression could cause things to be printed or read from the input stream.
06:27:13 <elliott_> The latter is a dependency of a function on something other than its argument; the former is causing a side-effect.
06:28:13 <elliott_> (You can mostly ignore everything I said about the IO monad, it's a sticky corner-case.)
06:28:22 <Sgeo> "The behaviour when you override if should still work as expected, but will make the global performance of that program slower for the rest of the execution."
06:28:25 <Taneb> Tell me how I could do interactive IO without becoming impure
06:28:28 <Sgeo> I like that
06:28:43 <Sgeo> "Seph has mutable lexical scopes."
06:28:46 <Sgeo> I don't like that
06:28:47 <elliott_> Taneb: Model a program as a function from input stream to output stream; read all input up-front.
06:29:07 <Taneb> Hmm...
06:29:22 <elliott_> oerjan: hmm, what's your opinion on Lazy K's pureness? IMO, the fact that IO can be interactive in the Haskell interact style makes me consider it impure, because by causing expressions to be evaluated you can cause input to be read
06:29:27 <Taneb> That would give me space to have S and I combinators
06:29:29 <elliott_> or something like that
06:29:31 <Taneb> While still looking a lot like brainfuck
06:29:51 <elliott_> Taneb: Obviously you need to encode the input and output stream somehow -- a Church list of Church numerals is the obvious representation.
06:29:58 <elliott_> Well, Church stream
06:30:05 <elliott_> cons = \hd tl f. f hd tl
06:30:08 <elliott_> I assume you know how Church numerals go
06:30:19 <oerjan> elliott_: it depends on exact lazy evaluation order for I/O ordering doesn't it
06:30:20 <Taneb> Yeah
06:30:20 <elliott_> Then just model input as "cons inputchr (cons inputchr (cons ..."
06:30:28 <elliott_> And terminate it on some too-large character
06:30:40 <elliott_> (256 if you're doing bytes)
06:30:48 <elliott_> Taneb: or terminate on 0, to give it the same IO weakness as brainfuck :)
06:30:52 <elliott_> oerjan: yep
06:30:56 <elliott_> oerjan: which I would consider impure
06:31:05 <oerjan> elliott_: it's pure if you think of it as a batch program pipe, but not for interactive use
06:31:26 <elliott_> oerjan: well, doing benign rearrangements on it when considering the program as a pure function can change its interactive behaviour
06:31:37 <pikhq> elliott_: Actually, at EOF you have fix (256:), not just 256. :)
06:31:38 <elliott_> oerjan: I agree that reading all input up-front would solve the problem which is why I suggested it to Taneb
06:31:54 <elliott_> oerjan: But IMO as far as interactive use goes, Lazy K is definitely impure
06:32:00 <elliott_> Which is ironic considering its goals
06:32:23 <Taneb> MIBBLLII isn't brainfuck. EOF is an infinite stream of 256s
06:32:41 <elliott_> Taneb: What, don't want to advertise Unicode support? :-)
06:32:46 <elliott_> I suppose that gives you binary processing
06:32:53 <elliott_> You can just write your own UTF decoding routines :D
06:33:01 <Taneb> IT IS DECIDED
06:33:09 <Taneb> Or possibly EOF is an infite stream of threes
06:33:10 <elliott_> oerjan: hmm, I wonder what the simplest model of stdio that retains purity _and_ interactivity
06:33:11 <oerjan> elliott_: although actually when you consider bottom, it's not that obvious, because that reduces the amount of rearrangement you can do - reading an extra character could give I/O error as bottom, and so rearrangement is not equivalent even purely. but there are probably corner cases.
06:33:20 <elliott_> well, purity in the technical sense, allowing "cheating" like Haskell's IO monad
06:33:34 <elliott_> oerjan: I/O error as bottom is not standard Lazy K afaik
06:34:15 <oerjan> elliott_: well alternatively think of it as lazy K having to act equivalent even if its input is not correctly formatted
06:34:41 <elliott_> oerjan: hmm, what do you mean?
06:34:59 <Taneb> I could define 1 as \l a b -> a and 0 as \l a b -> b and EOF as... \l a b -> \l a b -> b
06:35:12 <Taneb> And do it bitwise
06:35:32 <oerjan> elliott_: if you can only do rearrangements that give the exact same LC function up to eta equivalence, then i don't think you can read an extra character.
06:35:41 <elliott_> Taneb: well the data-type you want is
06:35:50 <elliott_> data Input = EOF | Cons Bool Input
06:35:54 <elliott_> I'll let oerjan church-encode that :P
06:35:56 -!- Pianoo has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
06:36:06 <elliott_> I always forget the church-encoding of lists
06:36:20 <oerjan> elliott_: foldr
06:36:23 <elliott_> oh, right
06:36:47 <elliott_> hmm, what's (:) with that representation?
06:37:02 <elliott_> \in. in (:) [] would be your cat program, obviously
06:37:06 <elliott_> <oerjan> elliott_: if you can only do rearrangements that give the exact same LC function up to eta equivalence, then i don't think you can read an extra character.
06:37:12 <elliott_> no, but surely you can mix up input and output in the wrong order
06:38:40 <elliott_> oerjan: i take it you were too scraed to answer <elliott_> oerjan: hmm, I wonder what the simplest model of stdio that retains purity _and_ interactivity >:)
06:39:00 <elliott_> [asterisk]scared
06:41:04 <elliott_> "In practice, however, interactive Lazy K programs tend not to exhibit these problems. The first case cannot arise if the "H" of "Hello" depends in some way on the end of the user's input. The most obvious way of writing this particular program is to cons together the "Hello, [name]!" string in an expression which is conditioned on receipt of a newline. If you do this you are safe, because there's no way for any evaluator to prove in advance that the u
06:41:04 <elliott_> ser will ever type a newline.
06:41:04 <elliott_> The second case does not occur as long as the prompt ("What is your name?") is consed together irrespective of the input — again the obvious thing to do. The reason this works is that the Lazy K interpreter uses lazy evaluation, which by definition tries to produce output as early as possible and do everything else (including input) as late as possible.
06:41:07 <elliott_> So there's no practical problem with interactive software. Nevertheless, there's something unpleasant about the way the second case is prevented. A referentially transparent program should not have to rely on lazy evaluation in order to work properly."
06:41:11 <elliott_> oerjan: it seems clear to me that Lazy K is definitely impure in this manner
06:41:37 <oerjan> elliott_: a simple (G)ADT for IO?
06:42:11 <elliott_> oerjan: that's rather vague -- if you do
06:42:30 <elliott_> data IO where Stop :: IO; GetChar :: (Char -> IO) -> IO; PutChar :: Char -> IO -> IO
06:42:44 <elliott_> then you can mechanically transform that into the monadic form
06:42:47 <oerjan> elliott_: yeah
06:42:49 <elliott_> (see Russell O'Connor :P)
06:43:04 <elliott_> it seems like calling that the simple ADT for IO is misleading, in that it's presupposing monadic IO
06:43:14 <elliott_> I suppose you inevitably need _some_ sort of ugly ordering, though
06:43:26 <oerjan> um no it doesn't, there's no return. it's CPS style isn't it.
06:43:26 * elliott_ wonders what the church encoding of _that_ is
06:43:31 <elliott_> oerjan: well yes
06:43:39 <elliott_> but it's "close" in the sense that the transformation is very simple
06:43:55 <elliott_> data IO = Stop | GetChar (Char -> IO) | PutChar Char IO
06:44:00 <elliott_> i should really remember how to church-encode things :(
06:44:46 <oerjan> you don't have to use foldr when it's untyped anyway, just use pairs for conses
06:44:58 <elliott_> oerjan: that's gross
06:45:28 <oerjan> A | B | C encodes as forall t. (A -> t) -> (B -> t) -> (C -> t) -> t
06:45:39 <oerjan> er
06:45:47 <elliott_> lol
06:45:50 <elliott_> ?ty foldr
06:45:50 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
06:45:58 <elliott_> always forget the way round the a/bs are
06:46:21 <oerjan> *data X = A a | B b | C c endodes as forall t. (a -> t) -> (b -> t) -> (c -> t) -> t
06:46:25 <oerjan> *encodes
06:46:43 <elliott_> io :: b -> ((Char -> b) -> b) -> (Char -> b -> b) -> IO -> b
06:46:44 <elliott_> maybe?
06:47:14 <elliott_> hmm, wait
06:47:31 <elliott_> never mind me
06:47:38 <elliott_> oerjan: im not smrt
06:49:54 <oerjan> um drop the -> IO i think
06:51:06 <elliott_> oerjan: I was doing it as foldr, but right
06:51:11 -!- augur has joined.
06:51:25 <Taneb> Changed MIBBLLII spec
06:51:34 <Taneb> Is now more pute
06:51:36 <elliott_> \stop get put. put 'a' stop
06:51:37 <oerjan> um list foldr only applies to lists afaik
06:51:39 <Taneb> purer, too
06:51:41 <elliott_> \stop get put. put 'a' (put 'b' stop)
06:51:43 <elliott_> oerjan: I meant... never mind
06:51:55 <elliott_> \stop get put. put 'a' (put 'b' (get (\c. put c stop)))
06:51:59 <elliott_> heh, that's actually quite nice
06:52:17 <elliott_> oh, hmm
06:52:29 <elliott_> cat might be a bit difficult :/
06:52:30 <elliott_> you need fix
06:52:51 <oerjan> some haskell version did have a CPS IO style
06:52:57 <elliott_> \stop get put. fix (\r. get (\c. eof? c stop r))
06:52:58 <Sgeo> Yay, Ruby has a Parsec
06:53:01 <elliott_> that's right, right?
06:53:02 <elliott_> erm, I mean
06:53:05 <elliott_> \stop get put. fix (\r. get (\c. eof? c stop (put c r)))
06:53:10 <elliott_> that's right, right?
06:53:14 <monqy> Sgeo: but is it any good
06:53:21 <Sgeo> monqy, no idea
06:53:28 <elliott_> expressed as a church list of church booleans corresponding to the bits of the input, ending with an infinite stream of church trues
06:53:33 <elliott_> Taneb: um there is no way to detect EOF with this scheme
06:53:41 <elliott_> the user might have typed in a million ones, or it might be EOF
06:54:03 <oerjan> EOF by universe heat death
06:54:38 <elliott_> Sgeo: guess what other language has parsec
06:54:50 <oerjan> PHP
06:54:58 * oerjan runs away
06:55:35 <Sgeo> A language in whch I struggle to do simple tasks?
06:55:39 <Taneb> Thing is, they don't type in 1s or 0s, they type in characters
06:55:49 <Taneb> Which are converted into 1s and 0s
06:55:56 <Sgeo> which
06:56:00 <elliott_> Sgeo: Maybe because you haven't learned it yet
06:56:06 <elliott_> Taneb: there is no way to detect EOF with your IO scheme.
06:56:33 <Taneb> You just need to know what encoding it uses
06:56:52 <Taneb> And check for a number of consecutive ones that is too many for a valid character in that encoding
06:57:13 <elliott_> um, if the encoding is bytes, then no.
06:57:18 <elliott_> an infinite stream of ones is valid.
06:57:21 <Sgeo> ....why is this blank http://rubydoc.info/gems/rparsec/1.0/frames
06:57:31 <elliott_> Sgeo: rubydoc sucks, get used to it
06:57:35 <elliott_> oh that's the YARD thing
06:57:36 <Taneb> If it's in ASCII, then yes
06:57:50 <elliott_> Taneb: well you'd better specify an encoding then...
06:58:03 <Taneb> I'm keeping that implementation dependent.
06:58:03 <elliott_> Taneb: wait, no, you are totally wrong
06:58:14 <elliott_> Taneb: I mean
06:58:20 <elliott_> That's only true if you pad out the encoding with at least one bit
06:58:28 <Taneb> Because I don't want to think about it right now.
06:58:30 <elliott_> If you use the minimal number of bits then infinite ones will _always_ be valid
06:58:42 <elliott_> You can't leave it implementation-dependent because it changes whether your language can do all the IO it needs to be able to or not
06:58:59 <itidus20> the benefit of a repeating series is you don't need as much information to communicate it
06:59:08 <itidus20> << Captain Obvious
06:59:43 <Taneb> Okay, the encoding is to be decided by whomever makes the first implementation with a sensible encoding.
07:00:35 <elliott_> btw your wikipedia link is broken :P
07:00:47 <elliott_> s/L/K/
07:01:20 <Taneb> Because I really do not want to think about it
07:01:21 <Taneb> No it isn't
07:01:45 <Sgeo> rparsec (on github) looks unmaintained. Does something like rparsec need maintainance even?
07:03:03 <elliott_> "Do libraries need maintenance?" --Sgeo
07:03:08 <olsner> probably, I can't imagine any ruby coder getting it right for the first time
07:03:25 <olsner> besides, even the Haskell version has maintenance
07:06:42 <quintopia> elliott_: hel
07:06:44 <quintopia> help
07:06:47 <elliott_> quintopia: help
07:07:04 <quintopia> why am i awake elliott?
07:07:19 <Taneb> Help me, elliott_, you're my only home!
07:07:31 <quintopia> you're only home is bone
07:07:51 <elliott_> quintopia: thats a question i ask myself a lot
07:08:09 <quintopia> do you ever have an answer
07:08:18 <quintopia> i could use an answer
07:08:20 <Taneb> quintopia: because being asleep is for the weak.
07:08:27 <olsner> you are only. home is bone.
07:08:40 <quintopia> olsner: help
07:08:49 <olsner> quintopia: help
07:09:06 <oerjan> Taneb has moved in with elliott_? that was quick.
07:09:21 <quintopia> oerjan:
07:09:44 <Taneb> oerjan: I've moved in/to/ elliott_.
07:09:58 <oerjan> aha
07:10:01 <quintopia> I'll move into taneb
07:10:16 <quintopia> and then if elliott moves into me, the cycle will be complete
07:10:18 <quintopia> and we can sleep
07:10:35 <elliott_> help
07:10:41 <elliott_> quintopia: ok my answer is usually
07:10:43 <elliott_> ask irc about it????
07:10:46 <elliott_> and oerjan wont answer
07:10:47 <elliott_> and monqy usually
07:10:50 <elliott_> says something about not being a slep doctor
07:10:55 <elliott_> but then i coerce him to tell him to go to sleep
07:10:59 <elliott_> which i should do now oops
07:11:00 <elliott_> but
07:11:02 <elliott_> hello
07:11:06 <quintopia> so what about me
07:11:09 <quintopia> tell me
07:11:12 <elliott_> im... you could try asking monqy???
07:11:15 <elliott_> im not a slep doctor either help :(
07:11:18 <quintopia> monqy: help
07:11:32 <monqy> hlep
07:11:48 <monqy> elliott_: im still noit a slep e doctor
07:11:52 <Taneb> Try asking good ol' fungy
07:12:01 <quintopia> fungot: help
07:12:01 <fungot> quintopia: and no macros), so it worked nicely, although builds took a long time since i saw scheme i wanted to choose fnord, but don't
07:12:11 <monqy> fungot is not a slepe doctor...
07:12:12 <fungot> monqy: i'm in a fnord style for the operator. i know marc consider the interpreter as root, device files are your biggest foe.
07:12:14 <quintopia> ew fungot, mind matching brackets?
07:12:15 <fungot> quintopia: but you still shouldn't do that
07:12:20 <quintopia> oh
07:12:25 <quintopia> what should i do fungot?
07:12:26 <fungot> quintopia: eval ( string-ref " n" are for
07:12:27 <elliott_> > map (flip testBit) [0..] 'a'
07:12:28 <lambdabot> Couldn't match expected type `GHC.Types.Char -> t'
07:12:28 <lambdabot> against inferred...
07:12:41 <elliott_> ?hoogle [a -> b] -> a -> [b]
07:12:41 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
07:12:41 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
07:12:41 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
07:12:49 <elliott_> > map (flip testBit) [0..] <**> 'a'
07:12:49 <lambdabot> Couldn't match expected type `[(a -> GHC.Bool.Bool) -> b]'
07:12:49 <lambdabot> against ...
07:12:56 <elliott_> > map (flip testBit) [0..] <*> 'a'
07:12:57 <lambdabot> Couldn't match expected type `[a]'
07:12:57 <lambdabot> against inferred type `GHC.Types...
07:13:01 <elliott_> oerjan: hepl
07:13:02 -!- kwertii has quit (Quit: bye).
07:13:05 <quintopia> should i sleep or code or write or what fungot?
07:13:06 <fungot> quintopia: i expect whoever made the plt-file. dunno about the r6rs progress report' is probably save.
07:13:08 <NihilistDandy> elliott_: Recommendations for books on the lambda calculus. Go.
07:13:14 <elliott_> quintopia: how long have you been awake??
07:13:30 <elliott_> NihilistDandy: i dont read books books are lame
07:13:35 <NihilistDandy> FUCK BOOKS
07:13:42 <quintopia> i guess around 13 hours
07:13:45 <elliott_> i guess people like to mock a mockingbird?? is that close enough
07:13:46 <quintopia> its pi o'clock now
07:13:47 <oerjan> :t sequence
07:13:47 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
07:13:50 <elliott_> quintopia: oh
07:13:52 <elliott_> quintopia: well stay up duh
07:13:58 <oerjan> elliott_: ^
07:14:07 <NihilistDandy> elliott_: I've already read that. :D
07:14:08 <elliott_> > mapM (flip testBit) [0..] 'a'
07:14:08 <lambdabot> No instance for (Data.Bits.Bits GHC.Types.Char)
07:14:08 <lambdabot> arising from a use of `D...
07:14:12 <elliott_> :t mapM (flip testBit) [0..]
07:14:12 <lambdabot> forall a. (Bits a) => a -> [Bool]
07:14:16 <elliott_> oerjan: omg hot
07:14:17 <quintopia> how much longer should i stay up
07:14:23 <elliott_> :t \a -> mapM (flip testBit) [0..bitSize a] a
07:14:24 <lambdabot> forall a. (Bits a) => a -> [Bool]
07:14:28 <elliott_> > (\a -> mapM (flip testBit) [0..bitSize a] a) (99::Int)
07:14:30 <NihilistDandy> quintopia: e
07:14:30 <lambdabot> [True,True,False,False,False,True,True,False,False,False,False,False,False,...
07:14:40 <elliott_> > (\a -> mapM (flip testBit) [0..bitSize a] a) (99::Word8)
07:14:41 <quintopia> e hours?
07:14:41 <lambdabot> [True,True,False,False,False,True,True,False,False]
07:14:47 <quintopia> i'll try
07:15:07 <elliott_> > length ((\a -> mapM (flip testBit) [0..bitSize a] a) (99::Word8))
07:15:08 <lambdabot> 9
07:15:15 <itidus20> NihilistDandy: are you like me and do not know lambda calc or do you need a method to teach someone else lambda calc?
07:15:40 <shachaf> NihilistDandy: Why are you asking?
07:15:47 <NihilistDandy> shachaf: itidus20: I'm sort of familiar with it, but I'd like something more rigorous
07:15:57 <itidus20> shachaf: oh your question asking method is so elegant
07:16:15 <quintopia> i used to know lambda calculus. i even evaluated THREE PLUS ONE in standard lambda calc once. i don't remember the substitutions anymore.
07:16:42 <Taneb> What's a good 3D thing for making a craft game easily?
07:17:06 <quintopia> craft game?
07:17:10 <NihilistDandy> If such a thing exists, that is
07:17:12 <elliott_> Taneb: if it were easy, it would be easy.
07:17:18 <itidus20> craft game = minecraft genre
07:17:18 <quintopia> what is a craft game?
07:17:20 <quintopia> oh
07:17:21 <elliott_> enjoy opengl
07:17:25 <quintopia> ^
07:17:27 <elliott_> i know minetest uses irrlicht
07:17:28 <elliott_> but uh
07:17:34 <elliott_> yeah if you are wanting a painless experience
07:17:36 <elliott_> write something two dimensional
07:17:39 <elliott_> fromBits = foldl (.|.) 0 . map (\(i,b) -> if b then bit i else 0) . zip [0..]
07:17:41 <elliott_> oerjan: help it's ugly :(
07:17:52 <itidus20> quintopia: i eat and shit games... so such questions are elementary to me hahahahhaa
07:18:08 <itidus20> i dont know the answer but i mean the meaning of "craft game"
07:18:14 <quintopia> well
07:18:16 <NihilistDandy> elliott_: fromBits = foldl (.|.) 0 . zipWith (flip flip 0 . flip if' . bit) [0..]
07:18:23 <oerjan> elliott_: what's that supposed to do
07:18:26 <elliott_> NihilistDandy: GENIUS
07:18:29 <quintopia> if you actually shit games, you are the answer to taneb's prayers
07:18:29 <elliott_> oerjan: (Bits a) => [Bool] -> a
07:18:36 <Taneb> An ncraft
07:18:44 <elliott_> itidus20: do you play minecraft
07:18:46 <NihilistDandy> Taneb: MINECRAFT BY INDUCTION
07:18:50 <itidus20> quintopia: there is a genre of japanese absurd games.
07:18:56 <quintopia> taneb: find the right combination of games to feed itidus, and you shall have your painless creation of a craft game
07:19:04 <itidus20> elliott_: no. if i did i would have at least asked about the esolang minecraft server
07:19:12 <oerjan> elliott_: are you _sure_ it's not easier to use Num a?
07:19:25 <itidus20> sorry to be snarky
07:19:28 <elliott_> oerjan: um how would that help
07:19:30 <elliott_> Bits has NUm
07:19:36 <elliott_> Num
07:19:39 <elliott_> itidus20: we have one of those :P
07:19:43 <itidus20> i gotta chill out
07:19:48 <oerjan> :t readInt
07:19:49 <lambdabot> forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)]
07:19:49 <elliott_> you were snarky?
07:19:58 <itidus20> i felt snarky
07:19:59 <elliott_> > fromEnum True :: Int
07:20:00 <lambdabot> 1
07:20:07 <elliott_> fromBits = foldl (\n b -> (n `shiftR` 1) .|. fromEnum b) 0
07:20:08 <elliott_> there we go
07:20:16 <NihilistDandy> Better
07:20:34 <oerjan> oh hm it requires Char. that's actually a stupid restriction...
07:21:08 <Taneb> itidus20: would you kindly eat Minecraft, Team Fortress 2, the FunOrb version of Chess, and also VVVVVV?
07:21:28 <itidus20> NihilistDandy: while lambda can't be understood by analogy or such.. it seems the weakness is that lambda is a method of symbolic manipulation
07:21:51 <itidus20> so
07:21:56 <NihilistDandy> itidus20: How is that a weakness? Symbolic manipulation is like 80% of my daily life :D
07:21:58 <elliott_> Taneb: my mibbllii interpreter is almost done.
07:22:13 <elliott_> Taneb: and yes I'm doing this just to give it a good IO model :)
07:22:22 <itidus20> NihilistDandy: it is a gap in lambda calc's armor where we might attack him
07:22:29 <Taneb> elliott_: Yay!
07:22:39 <elliott_> Taneb: one guess as to the language
07:22:46 <Taneb> ...Haskell
07:22:56 <elliott_> HOW DID YOU KNEOWNOE
07:23:02 <elliott_> RE YOU A MAGIXIAN????
07:23:07 <fizzie> Aw, I was *just* about to guess Visual Basic for Applications.
07:23:11 <Taneb> Because I would have done it in Python
07:23:11 <NihilistDandy> itidus20: LC λf.λx. f (f (f (f x))) LYFE
07:23:15 <elliott_> fizzie: WHO TOLD YOU LALL MY SECRETS..............
07:23:20 <itidus20> NihilistDandy: i mean it is a weakness of lambda calc's attempts to hide its understanding
07:24:02 <NihilistDandy> elliott_: LALL YOUR SECRETS ARE BALLONG TO AAS
07:24:04 <itidus20> the notation is clearly bollocks
07:24:16 <itidus20> it doesn't lend itself to being understood
07:24:56 <NihilistDandy> itidus20: It doesn't seem that opaque, really, I just enjoy the books that people that are more educated than I am write about subjects about which I have some small knowledge
07:25:09 <NihilistDandy> I'd never have known about LC unless I'd stumbled on Haskell :D
07:25:47 <NihilistDandy> You just have to get used to Greek
07:25:51 <elliott_> can someone say an asterisk plz
07:25:57 <itidus20> NihilistDandy: i mean to be both friendly and confronting
07:26:04 <Taneb> It's a hell of a lot easier to understand than SKI
07:26:07 <Taneb> *?
07:26:08 <NihilistDandy> elliott_: ASTERISK
07:26:11 <NihilistDandy> *
07:26:12 <elliott_> NihilistDandy: FUCK YOU
07:26:13 <elliott_> thanks
07:26:14 <itidus20> :)
07:26:19 <elliott_> itidus20: you assume that the lambda calculus is deliberately trying to be obscure.
07:26:23 <itidus20> i can see now what is eventually coming
07:26:35 <itidus20> elliott_: you are merely the next generation of machine coders
07:26:44 <itidus20> hehehe
07:27:16 <itidus20> i dont really mean that...
07:27:20 <oerjan> itidus20: lambda calculus is older than any machine code. except possibly babbage's...
07:27:30 <itidus20> it is a machine code isnt it
07:27:38 <Taneb> Not really
07:27:48 <itidus20> noone has yet had the tenacity to abstract it
07:27:49 <Taneb> It's a method of describing functions of functions
07:27:54 <NihilistDandy> oerjan: We should program on looms.
07:28:09 <oerjan> oh right looms
07:28:26 <NihilistDandy> Looms are the height of abstraction
07:28:27 <itidus20> well one could compile to lc right?
07:28:32 <oerjan> they may lack a little something on the turing-completeness front
07:29:04 <NihilistDandy> oerjan: We shall see. When my BF loom is complete, ye shall have your comeuppance~
07:29:37 <oerjan> my comeuppance, and perhaps a new carpet.
07:29:46 <Taneb> I've never seen a turing complete computer.
07:29:48 <itidus20> in other words, LC could be a compile target right?
07:29:54 <Taneb> I've read about them, but not seen them
07:29:55 <elliott_> itidus20: it kind of is (GHC Core)
07:29:59 <NihilistDandy> Probably a very ugly carpet
07:30:15 <elliott_> <itidus20> noone has yet had the tenacity to abstract it
07:30:20 <elliott_> itidus20: this is called functional programming languages.
07:30:20 <Taneb> itidus20: I got reasonably far with a brainfuck to lambda calculus translator
07:30:28 <NihilistDandy> elliott_: I hate reading Core. It makes me feel insane.
07:30:46 <NihilistDandy> Then again, I'm terrible at it
07:30:48 <NihilistDandy> So...
07:31:11 <itidus20> is there any actual benefit to abstract it to a point where you can't see the lambda happening?
07:31:35 <itidus20> my conception here is probably getting out of alignemnt with reality
07:32:19 <elliott_> *Main> parse (expr <* eof) "" "+--"
07:32:19 <elliott_> Right (App B (App C C))
07:32:22 <elliott_> oerjan: hepl
07:32:25 <itidus20> elliott_: ok i guess..
07:32:27 <elliott_> itidus20: you can "see the lambda happening" in haskell.
07:32:36 <elliott_> :t \x -> \y -> x
07:32:37 <lambdabot> forall t t1. t -> t1 -> t
07:32:38 <elliott_> itidus20: see, a lambda.
07:32:49 <elliott_> \ is the name for λ.
07:33:09 <itidus20> i guess the point is that i don't understand lambda calc... and that fact is not something which should be escaped by building a layer on top of it
07:33:14 <elliott_> oerjan: how does write parser :(
07:33:14 <itidus20> :-"
07:33:26 <oerjan> elliott_: wat hepl, it seemed to work ...
07:33:34 <elliott_> oerjan: no, that should be App (B C) C
07:33:47 <elliott_> expr = do
07:33:48 <elliott_> o <- op
07:33:48 <elliott_> (App o <$> expr) <|> return o
07:33:48 <elliott_> not right :(
07:34:08 <NihilistDandy> :t \f x y z -> f (x y z)
07:34:09 <lambdabot> forall t t1 t2 t3. (t2 -> t3) -> (t -> t1 -> t2) -> t -> t1 -> t3
07:34:11 <NihilistDandy> LAMBDAS
07:34:21 <NihilistDandy> :t ((.).(.).(.)
07:34:21 <oerjan> elliott_: ah you want it left recursive, which is problematic directly.
07:34:22 <lambdabot> parse error (possibly incorrect indentation)
07:34:24 <oerjan> @hoogle chainl
07:34:25 <NihilistDandy> :t ((.).(.).(.))
07:34:25 <lambdabot> Text.Parsec.Combinator chainl :: Stream s m t => ParsecT s u m a -> ParsecT s u m (a -> a -> a) -> a -> ParsecT s u m a
07:34:25 <lambdabot> Text.ParserCombinators.ReadP chainl :: ReadP a -> ReadP (a -> a -> a) -> a -> ReadP a
07:34:25 <lambdabot> Text.ParserCombinators.Parsec.Combinator chainl :: Stream s m t => ParsecT s u m a -> ParsecT s u m (a -> a -> a) -> a -> ParsecT s u m a
07:34:25 <lambdabot> forall (f :: * -> *) (f1 :: * -> *) a b (f2 :: * -> *). (Functor f, Functor f1, Functor f2) => (a -> b) -> f (f1 (f2 a)) -> f (f1 (f2 b))
07:34:32 <oerjan> elliott_: try those ^
07:34:57 <elliott_> oerjan: huh, never seen that
07:35:08 <elliott_> oerjan: I don't know what that final a is meant to be though
07:35:35 <Taneb> :t \x y z -> x z (y z
07:35:36 <lambdabot> parse error (possibly incorrect indentation)
07:35:42 <elliott_> ah, hmm
07:35:55 <Taneb> :t \x y z -> x z (y z)
07:35:56 <lambdabot> forall t t1 t2. (t -> t1 -> t2) -> (t -> t1) -> t -> t2
07:36:12 <elliott_> oerjan: it works if I specify undefiend for the last parameter and then it gives undefined on empty input
07:36:15 <elliott_> that feels wrong though :/
07:36:19 <elliott_> there must be a way to make it fail from within
07:36:24 <elliott_> ?hoogle chainl1
07:36:24 <lambdabot> Text.Parsec.Combinator chainl1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m (a -> a -> a) -> ParsecT s u m a
07:36:25 <lambdabot> Text.ParserCombinators.ReadP chainl1 :: ReadP a -> ReadP (a -> a -> a) -> ReadP a
07:36:25 <lambdabot> Text.ParserCombinators.Parsec.Combinator chainl1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m (a -> a -> a) -> ParsecT s u m a
07:36:26 <elliott_> :D
07:36:26 <elliott_> yay
07:36:53 <elliott_> oerjan: now the question is, how do you do parens :/
07:36:57 <elliott_> hmm
07:36:59 <elliott_> oh
07:37:01 <elliott_> I think I see how
07:37:20 <oerjan> elliott_: between is nice
07:37:49 <oerjan> although with the newfangled applicatives you can do it directly, i think
07:38:02 <elliott_> oerjan: argh yes but the problem is that if I do "chainl1 op (pure App)", there's no recursion at _all_
07:38:07 <elliott_> which means I can't just simply insert a paren alternative
07:38:18 <elliott_> I need chainl1 (op <|> withparens) (pure App) I think
07:38:23 <itidus20> so the secret to unobscuring LC seems to be in exploiting the fact it is about symbolic manipulation..
07:38:31 <oerjan> elliott_: yeah
07:38:37 <elliott_> yay
07:38:38 <elliott_> that works
07:38:49 <itidus20> and the standard LC notation seems to strain itself to become intuitive
07:39:21 <oerjan> itidus20: the math standard is very compact
07:39:34 <oerjan> and haskell only slightly less
07:39:54 <itidus20> how many symbols need to be recognized in the most primal form of LC?
07:40:07 <itidus20> sorry.. should i say glyphs?
07:40:27 <oerjan> oh. you need variable representations, so in _principle_ infinite but you can choose something more efficient.
07:40:39 <elliott_> Taneb: I take it whitespace is ignored
07:40:48 <itidus20> uhmm
07:41:17 <oerjan> alpha conversion means you sometimes must introduce new variable names on the fly
07:41:17 <itidus20> uhmm
07:41:42 <itidus20> oerjan: suppose that we introduced a metasymbol called an identifier for such situations
07:41:54 <oerjan> which implementations do under the hood, probably
07:42:04 <oerjan> itidus20: well yeah.
07:42:06 <itidus20> perhaps metasymbol is not a real world
07:42:09 <itidus20> ^word
07:42:27 <itidus20> well.. supposing we took care of such things in a way like that
07:42:41 <oerjan> \() and variables are all you need in the most primitive form
07:42:54 <itidus20> how many glyphs or symbols basically is it made up of
07:43:01 <itidus20> so just the 3?
07:43:06 <itidus20> 3 + variables?
07:43:10 <oerjan> yeah
07:43:21 <itidus20> and does every ( need a corresponding ) ?
07:43:50 <oerjan> however it's very convenient to be able to list several variables in a row after the \, which needs another symbol, customarily .
07:43:50 <Taneb> elliott_: yes
07:44:00 <oerjan> itidus20: well in the orginal syntax yes.
07:44:02 <elliott_> :t splitAt
07:44:03 <lambdabot> forall a. Int -> [a] -> ([a], [a])
07:44:13 <elliott_> > splitAt 9 [0..]
07:44:13 <lambdabot> ([0,1,2,3,4,5,6,7,8],[9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,...
07:44:25 <oerjan> itidus20: if you change the syntax rampantly you could go for unlambda syntax, just `sk
07:44:50 <oerjan> but then it's combinator calculus, not lambda, really
07:46:15 <itidus20> ok so with 2 bits a symbol could be differentiated as being a \, a, ( a, ) or a variable
07:47:07 <quintopia> in what insane world should shift-backspace be mapped to delete??????
07:47:08 <itidus20> then being a variable it could be followed by n bits to say which variable
07:48:05 <oerjan> itidus20: what's the a
07:48:25 <itidus20> an ungrammatical article
07:48:26 <itidus20> :P
07:48:32 <oerjan> ok
07:48:34 <itidus20> should have used an 'an' perhaps
07:48:46 <itidus20> i.e. 00 = \ 01 = ( 10 = ) 11 = variable
07:49:00 <oerjan> no i think those start with consonants if pronounced
07:49:12 <itidus20> hummm
07:49:23 <itidus20> i knew it was trouble when typing it
07:49:40 <oerjan> itidus20: well everything can be encoded as 0 and 1, that's basic information theory :P
07:49:52 <NihilistDandy> quintopia: Isn't that fairly standard on keyboards that don't have a discrete delete key?
07:50:07 <elliott_> NihilistDandy: no, fn+backspace is
07:50:18 <itidus20> then suppose you had 4 variables... you could follow a "11" with another 2 bits to indicate which variable is being referred to
07:50:35 <NihilistDandy> elliott_: So it is
07:50:56 <quintopia> NihilistDandy: it is default and unchangeable in this application. and it is annoying, since sometimes i yell in my comments and also make typos and also i dont ccaps lock
07:51:06 <itidus20> so 00 01 11 10 would mean \(a)
07:52:05 <oerjan> anyway, later
07:52:12 -!- oerjan has quit (Quit: leaving).
07:52:13 <itidus20> bye
07:53:18 <NihilistDandy> itidus20: You're getting dangerously close to Gödel numbering now
07:53:43 <elliott_> Taneb: hmm, indeed, all invalid characters are ignored, I presume...
07:55:26 <elliott_> :t withFile
07:55:27 <lambdabot> Not in scope: `withFile'
07:56:59 <elliott_> Taneb: http://sprunge.us/SZCU
07:57:01 <elliott_> This might work :-P
07:57:35 <elliott_> The IO scheme is: takes a stream, outputs a stream. A stream is of the form (\end zero one. end), (\end zero one. zero restofstream), or (\end zero one. one restofstream).
07:58:04 <elliott_> So id is cat, as usual.
08:17:28 * Sgeo wants to play with Shoes >.>
08:18:06 <monqy> imagining sgeo playing with shoes now
08:18:23 <monqy> oh a ruby gui thing
08:18:27 <monqy> disappointment
08:18:38 <elliott_> monqy: shhh it's by why
08:18:41 <elliott_> everything by why is good
08:18:47 <elliott_> http://shoesrb.com/ oh man what they made the webpage boring :(
08:19:02 <elliott_> it used to look like the nobody knows shoes book
08:19:10 <elliott_> with a bunch of pencil illustrations
08:19:49 <elliott_> I wonder if anyone ever managed to archive all of hackety
08:20:09 <elliott_> I guess http://viewsourcecode.org/why/hackety.org/ has all of it
08:22:08 <elliott_> that thing's missing a lot of the images
08:24:39 <elliott_> "Rubyists love life. Boy, I tell you. They love humans. They love cars!! They looooooove dishes of real, actual food. You don’t even know. Airplanes in mid-air, refueling? They love that!" --Sgeo
08:24:51 <Sgeo> ...?
08:25:13 <elliott_> Sgeo: http://viewsourcecode.org/why/hackety.org/2008/11/21/aCostlyParade.html
08:25:40 <Sgeo> I am not _why.
08:25:53 <elliott_> Well, that's true.
08:25:57 <elliott_> monqy: Can we all agree on that?
08:26:01 <monqy> im agree
08:26:08 -!- Vorpal has joined.
08:26:17 <elliott_> "Let me put it this way. Suppose you’ve got Zed Shaw. No, wait, say you’ve got “a person.” (We’ll call this person “Hannah Montana” for the sake of this exercise.) And you look outside and this young teen sensation is yelling, throwing darts at your house and peeing in your mailbox. For reals. You can see it all. Your mailbox is soaked. Defiled. The flag is up."
08:26:17 <elliott_> help im laughing and i cant stop
08:28:19 <Vorpal> elliott_, where is that from
08:28:31 <NihilistDandy> elliott_: Agreed
08:28:56 <elliott_> Vorpal: http://viewsourcecode.org/why/hackety.org/2008/11/21/aCostlyParade.html (enjoyable without a single bit of knowledge of the Ruby community and its drama, in fact better without it)
08:29:05 <elliott_> "It’s like Jesus. Except Jesus never had the forthrightness and temerity to actually kick a guy in the jugular if he had to."
08:29:30 <Vorpal> elliott_, oh they are people known in the ruby community?
08:29:43 <elliott_> Vorpal: Uh... you mean Hannah Montana?
08:30:04 <Vorpal> elliott_, yeah. And Zed Shaw. Either they are that or they come from popular culture.
08:30:08 <Vorpal> I know neither
08:30:11 <elliott_> Yes. Yes, let's go with that.
08:30:22 <elliott_> They're from the hit US TV show "Zed Shaw and Hannah Montana".
08:30:31 <Vorpal> ah
08:30:36 <Vorpal> I'll google it
08:30:55 <itidus20> elliott_: that hello world thing reminds me of something i said yesterday (whistles non-chalantly)
08:30:56 <NihilistDandy> hepl
08:31:06 <NihilistDandy> elliott_: hepl
08:31:10 <elliott_> NihilistDandy: repl
08:31:11 <monqy> what has happened
08:31:16 <NihilistDandy> laughterl
08:31:20 <NihilistDandy> not stopl
08:31:21 <itidus20> Someone set up us the bomb.
08:31:24 <Vorpal> elliott_, wait, the latter is a TV show. But Zed Shaw is not. Right.
08:31:25 <monqy> im dead
08:31:30 <itidus20> What you say?
08:31:54 <NihilistDandy> itidus20: I RECOGNIZE YOUR REFERENCE
08:32:10 <monqy> me too. it killed me. dead.
08:32:12 <Vorpal> itidus20, move all zig
08:32:21 <monqy> (killed is a bad thing) ((not a good thing))
08:32:58 <Vorpal> (if that came in the correct place, lucky, I completely forgot the order)
08:33:14 <itidus20> i don't know the whole poem
08:33:16 <NihilistDandy> #ethoteric
08:33:19 <Vorpal> "poem"
08:33:34 <itidus20> yeah, see what i did there :P
08:33:38 <Vorpal> NihilistDandy, eth0teric?
08:33:54 <NihilistDandy> Vorpal: No, #ethoteric with a :ithp
08:33:56 <NihilistDandy> *L
08:34:00 <Vorpal> NihilistDandy, so no ifconfig then
08:34:16 <NihilistDandy> What with all the parenthetheth
08:34:22 <itidus20> I think that all your base deserves to be included in a poetry compendium some day
08:34:30 <itidus20> i wonder if they need rights from the company
08:34:35 <monqy> I think something broke and I switched to eth1 because I was too lazy to figure out what happened
08:34:58 <Vorpal> itidus20, copyrights do expire. Though hm not sure what happens if a company owns a copyright
08:35:36 <itidus20> how do i make a bot search for something i said yesterday?
08:35:44 <itidus20> perhaps it needs to be quoted?
08:35:55 <Vorpal> eh?
08:36:19 <itidus20> well i said something about hello world's
08:36:37 <elliott_> "At last, open source works as it should. Certainly, patching is cool. Branching is cool. But nothing beats intruding in my repo and just finishing the whole thing." everything on this blog is gold
08:36:37 <Vorpal> try the logs, and grep them
08:36:56 <itidus20> whence might I find the logs?
08:37:09 <monqy> in the topic
08:37:12 <monqy> good stuff, that topic
08:37:14 <itidus20> oh
08:37:17 <itidus20> hahahha
08:37:27 <monqy> you could also do !logs or whatever it is
08:37:33 <monqy> and rsync them good
08:37:36 <monqy> all of them
08:37:42 <monqy> but if you know the date, it may be easier not to bother
08:38:09 <itidus20> lol @ stalker mode
08:41:04 <elliott_> http://viewsourcecode.org/why/hackety.org/2008/05/16/blimlimb.html <-- me
08:41:31 <elliott_> (https://github.com/bterlson/blimlimb/tree/master/logs for those links)
08:42:53 <itidus20> am i still here? i think my connection on this network is just about over
08:42:58 <elliott_> itidus20: no
08:43:06 <Vorpal> itidus20, you are not here
08:43:45 <itidus20> i am on one network burning up bandwidth because it is due to soon be disconnected and for me to jump onto another when my brother returns
08:44:28 <Vorpal> how can irc ever burn up bandwidth. It is low bandwidth. I mean I used it on plain GSM ffs!
08:44:35 <itidus20> torrents
08:44:45 <Vorpal> that is a network?
08:44:50 <itidus20> uhm no..
08:44:53 <itidus20> isp i should say
08:46:09 <Vorpal> typical of oerjan.
08:46:13 <Taneb> People who read Homestuck: update
08:46:34 <Patashu> When was the last time homestuck actually took a command?
08:46:39 <itidus20> <elliott_> 02:44:49: <itidus20> ok heres a topic <elliott_> 02:45:05: <itidus20> has hello world worn out it's welcome? <elliott_> Meanwhile, from the worst member of the channel to the best...
08:46:44 <NihilistDandy> Taneb: Is that what all your other cryptic things for the last weeks have been?
08:46:52 <itidus20> that was on 17th august
08:46:56 <elliott_> NihilistDandy: It's Sgeo who does the cryptic things.
08:46:59 <elliott_> Mostly.
08:47:03 <Taneb> Problem Sleuth
08:47:03 <Taneb> Early 2009
08:47:07 <elliott_> Oh, I see a "SNOP". This will be good. I take my leave.
08:47:10 <NihilistDandy> Whatever. You're all the same. Fucking whities.
08:47:18 <NihilistDandy> lol
08:47:27 <itidus20> now today being the 19th of august, i clicked on elliott's hackety.org link.. and i see "What makes a good Hello World program? Because Hello World itself is a terrible Hello World."
08:47:41 <Sgeo> Taneb, ty
08:47:52 <itidus20> ahh independant co-discovery
08:48:01 <itidus20> how you rue me
08:48:23 <itidus20> ^how I rue you
08:48:49 <elliott_> Taneb: Sgeo: I HAVE BEEN WAITING FOR THIS EVER SINCE THE SCRATCHING BEGAN
08:48:57 <elliott_> Proof that I am right always, naturally.
08:50:06 <itidus20> elliott_: well that is exactly what i was thinking re: hello world. it should be an application which takes advantage of multimedia capabilities of a prorgamming lang and it's standard library
08:50:18 <elliott_> itidus20: Most languages don't have much of that
08:50:34 <itidus20> good point
08:50:37 <elliott_> But the purpose of a hello world program is usually to get the user accustomed with how to actually run a program
08:50:41 <elliott_> And save it, etc.
08:50:48 <elliott_> The more non-trivial it is, the more that focus is lost
08:50:53 <itidus20> good point
08:51:18 <itidus20> that Max/MSP looked vaguely fun.
08:51:57 <elliott_> Hope you've got the cash to fork over for it
08:52:10 <itidus20> didn't look that fun
08:52:17 <itidus20> hehehe
08:52:25 <elliott_> itidus20: You probably aren't in the target market :-P
08:52:36 <itidus20> i am a competitor
08:52:45 <itidus20> i just don't have any products developed
08:52:53 <elliott_> Pro.
08:53:29 <itidus20> oh i am using words which would make stallman upset
08:54:18 <itidus20> ok my net is back to speed
08:54:25 <Taneb> Hurrah!
08:54:37 <itidus20> howzaaaat
08:54:38 <elliott_> itidus20: What words would make Stallman upset
08:54:48 <itidus20> "products"
08:55:07 <itidus20> "developed" is probably borderline
08:55:20 <itidus20> i think he would prefer if i said
08:55:35 <itidus20> I just haven't authored any software of that kind yet.
08:55:52 <elliott_> Who cares what Stallman thinks
08:56:10 <itidus20> oh. ha ha. ha ha. certainly not me.
08:56:36 <elliott_> itidus20 also known as richard stallman
08:56:57 <itidus20> also known as richard matthew stallman?
08:57:14 <Taneb> Also known as Ricky
08:57:37 <itidus20> also known as emakasu no kami
08:58:39 <itidus20> one of very few real life celebrities to feature in XKCD
08:59:01 <itidus20> also known as
08:59:08 <itidus20> GNU/XKCD
08:59:39 <monqy> ok
08:59:48 <itidus20> sorry i am killing you
09:00:13 <monqy> so i read that bot troupe thing and it was great
09:00:46 <elliott_> monqy: did you read the logs they're beautiful trainwrecks
09:01:10 <monqy> i read most of one of them
09:01:23 <monqy> I forget why I stopped
09:01:28 <elliott_> prin and whitely is the better one
09:01:36 <elliott_> he said as as a connosiaoruower
09:01:36 <monqy> yes it was that one which I read
09:05:59 <elliott_> "People, Ruby isn’t a game. It isn’t a hobby. It’s certainly not a very good food source and it’s not an article of clothing. You can’t just put Ruby in the wash with a load of whites. Nice try, but no. No. Jeez, grow a brain. Ruby isn’t a tambourine you can bang loudly in my ear. I’m trying to use my iPhone here, guy.
09:05:59 <elliott_> And Ruby is not some bachelor’s party with a foxy lady in a sherlock holmes hat. Hardly: Ruby is all dads. Put a petticoat on, woman. Pop those balloons. We’re all getting paid here and we’re all having kids here. Get with the program."
09:06:11 <elliott_> maybe why disappeared to become a beat poet
09:06:35 <monqy> a guru
09:06:47 <monqy> oh no i am the can't think sort of tired without being the feel like slep tired i prefer it the other way around :'(
09:06:47 <NihilistDandy> A beat guru
09:07:05 <monqy> at least i am not the horrible sick die tired. i dislike that tired..
09:07:14 <elliott_> do you get that tired a lot
09:07:21 <monqy> no
09:07:53 <elliott_> http://viewsourcecode.org/why/hackety.org/2007/11/14/rubyIsMoney.html for posterity
09:07:58 <monqy> I forget what it feels like aprat from frealing bad
09:08:09 <monqy> #1 best dad
09:10:03 <monqy> why seems like a good person
09:10:10 <monqy> for how long has he been mysteriously disappeared now
09:11:13 <elliott_> two years or so
09:11:30 <elliott_> oh
09:11:31 <elliott_> in fact
09:11:34 <elliott_> exactly two years to the day
09:11:37 <elliott_> :|
09:11:41 <monqy> :'(
09:11:45 <elliott_> ok oerjan stop it
09:11:49 <elliott_> stop making me believe in synchronicity
09:11:52 <elliott_> it's _rude_
09:12:33 <moses_> hi mollu
09:12:36 <moses_> molly
09:12:38 <monqy> http://upload.wikimedia.org/wikipedia/commons/e/e2/Sch%C3%A9ma_synchronicit%C3%A9_in_English.png synchronicity
09:13:04 <monqy> why do i find this diagram hilarious help
09:13:39 <elliott_> lmao
09:14:40 <monqy> i should just
09:14:43 <monqy> draw it everywhere
09:14:51 <elliott_> graffiti
09:14:54 <monqy> public restrooms
09:15:22 <elliott_> just add random lines going at different angles
09:15:30 <elliott_> "Political-industrial complex"
09:15:34 <elliott_> "Socioeconomic factors"
09:15:42 <elliott_> "Supermarket lineage"
09:16:02 -!- moses_ has quit (Read error: Connection reset by peer).
09:16:11 <elliott_> Supermarket Lineage: band name
09:17:21 <monqy> for some reason i thought of stock music stores and their awful stock music collections for tasteful play in markets and elevators and held phone lines
09:17:26 <monqy> or whatever they are
09:17:38 <monqy> http://www.muzak.com/ like this thing
09:18:08 <monqy> muzak sells smells?
09:19:41 <elliott_> awesome
09:19:48 <elliott_> i'm going to start the first smell band
09:19:58 <elliott_> http://www.muzak.com/products/scent
09:20:04 <elliott_> im going to elevate this to an art form
09:20:12 <monqy> ScentWave®
09:20:14 <monqy> ScentDirect®
09:20:16 <monqy> ScentStream®
09:20:22 <elliott_> edgy experimental release that basically just smells like human excrement for an hour
09:20:40 <elliott_> pop scents that smell lightly fragrant but not really of much anything at all
09:20:45 <elliott_> yessssssss i will corner this market
09:21:32 <monqy> mmm these music samples are still so tasteful
09:21:43 <elliott_> `addquote <monqy> mmm these music samples are still so tasteful
09:21:47 <HackEgo> 601) <monqy> mmm these music samples are still so tasteful
09:21:56 <monqy> im sampling ultra hip holiday
09:22:38 <monqy> hes the boogie woogie santa clause
09:22:48 <monqy> switching to oktoberfest
09:23:16 <monqy> yes i would love to shop to this
09:24:27 <elliott_> `addquote <monqy> im sampling ultra hip holiday <monqy> hes the boogie woogie santa clause <monqy> switching to oktoberfest <monqy> yes i would love to shop to this
09:24:29 <HackEgo> 602) <monqy> im sampling ultra hip holiday <monqy> hes the boogie woogie santa clause <monqy> switching to oktoberfest <monqy> yes i would love to shop to this
09:24:29 <itidus20> scotchtoberfest
09:24:34 <monqy> "beer-drinken beer-drinken" - good song
09:25:13 <monqy> the ultra hip holiday description is so good
09:25:23 <monqy> Hey Santa Daddy-O, only the coolest of the cool get to play here. Timelessly hip and ever relevant, this program celebrates the holidays with swing, style and panache! Vocals and instrumentals combine to give a special musical sophistication to the season. Artists like Louis Prima, Frank Sinatra, Ella Fitzgerald and Louis Armstrong ring in the holiday with timeless style.
09:25:26 <elliott_> link
09:25:39 <monqy> http://www.muzak.com/samples/music_programs/category/holiday their holiday themed selection
09:25:47 <monqy> holiday best genre
09:26:08 <elliott_> fizzie: hi help
09:26:11 <elliott_> fizzie: sdl help
09:26:18 <elliott_> monqy: help theyre sielnt
09:26:33 <monqy> holiday remix is so tasteful too
09:26:33 <elliott_> oh now it osunds
09:26:45 <elliott_> help i
09:26:46 <elliott_> inverted my
09:26:46 <elliott_> window
09:26:48 <elliott_> and now its
09:26:49 <elliott_> inverted
09:26:50 <monqy> inverted???
09:26:52 <elliott_> yes
09:26:56 <monqy> what does that
09:26:56 <monqy> mean
09:27:00 <elliott_> inverted
09:27:00 <elliott_> colours
09:27:04 <monqy> how did that happen
09:27:11 <elliott_> im hotke
09:27:11 <elliott_> y
09:27:15 <monqy> hotkey
09:27:22 <monqy> what sort of hotkey would
09:27:23 <monqy> do
09:27:23 <monqy> that
09:27:25 <monqy> who would do that
09:27:54 <fizzie> What SDL what.
09:28:20 <elliott_> fizzie: what is the "proper" way to go from r g b to the packed pixel for a surface (the surface is the screen)
09:28:26 <elliott_> or can i just pack it in the obvious way if it's the screen??? help
09:28:47 <monqy> I used to know how to do that
09:29:05 <elliott_> monqy: windows+n
09:29:07 <elliott_> is invert key,
09:29:33 <fizzie> You can look at surface->format, I'm not sure if there was a function for it already.
09:30:08 <monqy> ugh I forget how I knew how to do it
09:30:09 <elliott_> fizzie: hSDL miiight not offer a function for that.
09:30:13 <elliott_> How the fuck are you even meant to poke pixels with SDL.
09:30:20 <elliott_> s/SDL/hSDL/.
09:30:28 <elliott_> Maybe I am Missing Something.
09:30:32 <fizzie> SDL_MapRGB(SDL_PixelFormat *format, Uint8 r, Uint8 g, Uint8 b).
09:30:36 <fizzie> That one.
09:30:51 <elliott_> Yes.
09:30:55 <elliott_> I have to get the PixelFormat, though.
09:32:14 <fizzie> surfaceGetPixelFormat :: Surface -> PixelFormatSource
09:32:29 <fizzie> Disregard the "Source" bit, that got miscopied too.
09:32:45 <elliott_> "Hm. Yes. That might work."
09:32:49 <elliott_> surfaceGetPixels :: Surface -> IO Pixels
09:32:57 <fizzie> Also surfaceGetPixels :: Surface -> IO Pixels.
09:32:57 <fizzie> I'm not sure what "Pixels" are, though.
09:32:57 <fizzie> Pixel is a Word32.
09:33:01 <elliott_> And there's that too, although it returns a pointer to an opaque type, so it'll be "fun" to use.
09:33:10 <elliott_> data PixelsData
09:33:10 <elliott_> type Pixels = Ptr PixelsData
09:33:18 <elliott_> In fact Pixels isn't even exported, so lol.
09:33:29 <itidus20> since when do esolangers have the right to render individual pixels?
09:33:33 <elliott_> I also like: that mapRGB returns in IO.
09:33:49 <monqy> elliott_: would it be safe to unsafeperformio?
09:34:05 <monqy> or was there a reason to make it io
09:34:19 <fizzie> It seems to return in IO because it has to do a withForeignPtr to access the thing.
09:34:28 <fizzie> PixelFormat being a ForeignPtr Something.
09:34:38 <elliott_> I guess the PixelFormat _could_ be mutated from underneath you.
09:34:43 <elliott_> That sounds pretty rude though.
09:34:56 <elliott_> http://sdl.beuc.net/sdl.wiki/SDL_PixelFormat
09:35:03 <elliott_> I thought they were meant to have read/readwrite information.
09:37:38 -!- fungot has quit (Ping timeout: 260 seconds).
09:39:27 <elliott_> fizzie: halp
09:39:29 <elliott_> fungot
09:39:40 <Vorpal> elliott_, why are you doing SDL?
09:39:50 <elliott_> Vorpal: As opposed to?
09:40:02 <Vorpal> elliott_, I don't know. I'm asking for the context here.
09:40:21 <elliott_> Fiddling about with some Haskell thing. It's as vague as it sounds.
09:40:26 <Vorpal> ah
09:41:02 <Vorpal> elliott_, anyway if you want alternatives: allegro. opengl. direct frambuffer access.
09:41:06 <monqy> thanks now im curious
09:41:14 <elliott_> data RGB = RGB Word8 Word8 Word8
09:41:15 <elliott_> type Coord = Rational
09:41:15 <elliott_> type Point = (Coord, Coord)
09:41:15 <elliott_> type Picture a = Point -> a
09:41:16 <elliott_> monqy: hth
09:41:26 <elliott_> Vorpal: Allegro is lolretro and there aren't any Haskell bindings that I know of.
09:41:37 <elliott_> Vorpal: OpenGL still needs a windowing library, i.e. SDL, and for what I'm doing that makes it overkill.
09:41:43 <elliott_> Vorpal: Direct framebuffer yes definitely.
09:41:44 <monqy> http://wiki.allegro.cc/index.php?title=Allegro_languages#Haskell
09:41:51 <elliott_> monqy: SUSPICIOUSLY FAST
09:42:04 <elliott_> are you mahogny
09:42:06 <elliott_> monghy
09:42:09 <monqy> no
09:42:10 <Vorpal> elliott_, seem to remember there was a windowing library for opengl. Was it glut or was that something else
09:42:10 <monqy> im not
09:42:14 <elliott_> r u sure
09:42:20 <elliott_> Vorpal: Yes, and GLUT sucks massively.
09:42:26 <monqy> yes im sure elliott wants to use opengl and glut
09:42:32 <monqy> this is a thing elliott wants to do
09:42:34 <Vorpal> elliott_, ah okay. I never used it
09:42:36 <fizzie> I don't think anything in PixelFormat is supposed to be writable, and I also don't think it is supposed to ever change in the lifetime of a "normal" surface; not sure even for the screen, since after SetVideoMode probably the old pointer is something you shouldn't use.
09:42:40 <monqy> whatever happened to glfwpipe anyway
09:43:15 <Vorpal> monqy, what is/was that?
09:43:29 <elliott_> monqy: I'm ostensibly going to patch GPipe to be windowing system independent instead
09:43:35 <Vorpal> fizzie, what if the user goes to the screen settings in the OS and changes the bit depth?
09:43:43 <itidus20> do you want i should mail mahogny?
09:43:48 <elliott_> itidus20: no
09:43:50 <monqy> elliott_: sounds good; whatever happened to that, then
09:43:56 <elliott_> monqy: its been days dude
09:43:57 <elliott_> monqy: but uh
09:43:59 <monqy> oh
09:44:00 <elliott_> ive been doing other things
09:44:03 <monqy> i thought it had been weeks
09:44:08 <monqy> im out of so much loop
09:44:11 <elliott_> lol
09:44:14 <elliott_> well it might have been like
09:44:16 <elliott_> two weeks at most??
09:44:22 <fizzie> Vorpal: Not sure SDL handles that gracefully, really. But I guess it *could* change the screen's pixelformat. I suppose the only real guarantee is that it won't change in-between a LockSurface/UnlockSurface pair.
09:44:39 <monqy> Vorpal: gpipe but glfw or windowing system independednt instead of depending on glut
09:44:44 <fizzie> "Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates to 0, then you can read and write to the surface at any time, and the pixel format of the surface will not change."
09:44:44 <Vorpal> fizzie, heh
09:44:51 <Vorpal> monqy, ah
09:44:53 <fizzie> Yeah, I guess for hardware surfaces it might change.
09:44:58 <itidus20> im amazed you guys all know how to do graphics
09:45:12 <elliott_> FSVO know, graphics
09:45:17 <elliott_> Also how, to, do
09:45:19 <monqy> whats a grahpics elhp
09:45:23 <fizzie> Also guy.
09:45:28 <elliott_> Also s
09:46:05 <Patashu> oh oh I know how to do graphics too
09:46:47 <itidus20> >.<;
09:46:52 <monqy> hi
09:47:14 <monqy> did we frighten you
09:47:23 <Patashu> if you want to learn how to a graphic read http://fly.cc.fer.hr/~unreal/theredbook/
09:47:50 <elliott_> Patashu: does that thing even cover shaders
09:48:02 <Vorpal> Patashu, that is the old stateful opengl stuff which is deprecated isn't it
09:48:10 <elliott_> looks like it
09:48:11 <Vorpal> (not that I got a clue about how you do the new modern stuff)
09:48:16 <elliott_> shaders
09:48:17 <elliott_> more shaders
09:48:19 <elliott_> and more shaders
09:48:25 <Patashu> how 2 use shaders
09:48:29 <elliott_> Patashu: write shader
09:48:30 <elliott_> run shader
09:48:33 <monqy> shader
09:48:33 <Patashu> ok
09:49:00 <Vorpal> elliott_, so how do you load the vertices and textures into the graphics card?
09:49:05 <itidus20> i learned c++, winapi, first few chapters of opengl redbook in a certain autodidactic period... which however got cut short by i forget what
09:49:15 <Vorpal> I hope it isn't a loading shader
09:49:20 <fizzie> "Oh - shader, shader, shader / I made it out of clay / and when it's compiled and link'd / with shader I shall play!"
09:49:29 <elliott_> Vorpal: dunno, pointers????
09:49:36 <Vorpal> elliott_, XD
09:49:43 <fizzie> Vorpal: Vertex buffer objects, I believe.
09:49:45 <elliott_> yes
09:49:47 <elliott_> that
09:49:48 <elliott_> that sounds familiar
09:49:50 <Vorpal> fizzie, for textures?
09:49:58 <elliott_> A Vertex Buffer Object (VBO) is an OpenGL extension that provides methods for uploading data (vertex, normal vector, color, etc.) to the video device for non-immediate-mode rendering. VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the video device memory rather than the system memory and so it can be rendered directly by the video device.
09:50:07 <elliott_> then you SHADE THEM
09:50:08 <itidus20> youse.. write stupid codes
09:50:09 <Vorpal> aha
09:50:30 <Vorpal> from what I heard, directx has a less annoying API. Hm.
09:50:35 <monqy> itidus20: do you know any languages other than c++? I dislike c++.
09:50:45 <monqy> itidus20: I've heard bad things about winapi as well, but never used it myself
09:50:48 <elliott_> i once killed a person because they used c++.
09:50:49 <elliott_> : )
09:50:51 <itidus20> i was singing with fizzie
09:50:53 * elliott_ glares at itidus20
09:50:56 <elliott_> : )
09:50:59 <elliott_> : )
09:51:02 <itidus20> i don't know c++, winapi or opengl
09:51:20 <Vorpal> fizzie, so does the GPU do translation? As in, you upload a model and then give an offset to define where in the world it should be and so on?
09:51:24 <elliott_> but you said that before fizzie sunge.s..
09:51:26 <itidus20> i know nothing!
09:51:37 <Patashu> but you said you learned it
09:51:45 <cheater> phew, good luck i don't use c++, otherwise elliott_ might want to kill me
09:51:46 <fizzie> Vorpal: You do that within the geometry shaders.
09:51:49 <itidus20> i had a shot at it
09:51:56 <Vorpal> fizzie, ah...
09:52:01 <itidus20> but i didnt complete the learning
09:52:18 <fizzie> Vorpal: Or, well, maybe in a vertex shader. Anyhow.
09:52:21 <itidus20> i had several projects i tried to make at that time.. but then i burned out
09:52:41 <itidus20> and well fundamentally i wasn't really ready as a coder for such things
09:52:53 <Vorpal> fizzie, so you upload a new shader each time you want to move an object!?
09:53:09 <fizzie> Vorpal: They can have parameters, you know.
09:53:13 <Vorpal> oh okay
09:53:35 <Vorpal> fizzie, is it one shader per program or do you use different shaders for different objects or such
09:53:44 <Patashu> can I use shaders to mine bitcoins?
09:53:45 <Vorpal> (per type of shader)
09:53:45 <fizzie> You use whatever you want, I suppose.
09:53:58 <Vorpal> fizzie, so having multiple vertex shaders is possible?
09:54:06 <Vorpal> (as an example)
09:54:15 <elliott_> Patashu: The GPU miners use shaders, yes. Or, well, OpenCL, which is basically the same thing.
09:54:22 <Patashu> hooray!
09:54:26 <elliott_> Patashu: ...but there are better uses of your GPU.
09:54:31 <Patashu> yeah right.
09:54:32 <Patashu> like what?
09:54:34 <Patashu> drawing things?
09:54:36 <Patashu> I'm making money here
09:54:37 <elliott_> Playing Elliottcraft.
09:54:39 <Vorpal> Patashu, stitching panoramas
09:54:43 <elliott_> CHECKMATE BITCHES
09:54:55 <fizzie> Vorpal: It's still stateful in that there's the currently active "program" (a collection of shaders).
09:55:01 <Patashu> elliottcraft should use left over gpu time to make bitcoins for you
09:55:16 <itidus20> mahogny is Johan Henriksson
09:55:34 <Vorpal> sounds Swedish.
09:55:52 <Vorpal> fizzie, ah
09:55:53 <cheater> in fact he's a namibian princess, it's just a decoy.
09:56:05 <fizzie> And I have a feeling the "global" modelview and projection matrices still exist too, and the shader can utilize their product, but I'm not entirely certain about that. Went through our OpenGL course before it had been updated to all this programmable-pipeline fluff.
09:56:08 <Vorpal> fizzie, well there is the state of loaded vertex buffer objects too
09:56:32 <itidus20> http://mahogny.areta.org/
09:56:49 <Vorpal> fizzie, well I have an opengl course this autumn. I hope it is updated
09:56:56 <Patashu> I kind of wish my opengl class wasn't the stateful kind now
09:57:05 <Patashu> b/c it looks like everything I'll use from now on will be shaders shaders shaders
09:57:07 <Patashu> and vertex buffers
09:57:28 <elliott_> Patashu: use gpipe and have fun
09:57:34 <Vorpal> Patashu, and texture buffer objects I think
09:57:41 <Patashu> them too
09:57:49 <elliott_> Patashu: compiles functional haskell into efficient shader code ON TEH FLY....
09:57:51 <fizzie> And FBOs, for fancy render-to-texture stuff.
09:58:02 <Patashu> elliott: handy!
09:58:18 <elliott_> Patashu: I SNESE SARCAS
09:58:19 <elliott_> m
09:58:31 <Patashu> no it does sound handy
09:58:40 <Vorpal> fizzie, I guess that would be useful in order to create portal or screens in-game?
09:58:51 <Patashu> gpus are suited for functional programming anyway? because they're highly parallelized
09:59:54 <Taneb> Why did no-one tell me how fun children's train toys were?
10:00:24 -!- myndzi has quit (Ping timeout: 252 seconds).
10:00:31 <elliott_> Taneb: it is the Great Secret
10:00:49 <itidus20> Oh that train has a toilet which empties onto the tracks
10:00:51 <itidus20> nice
10:01:21 <monqy> `quote toilet
10:01:22 <HackEgo> 147) <oerjan> alise: mainly it's the fact it blows so hard i cannot avoid hitting the walls of the thing, which completely goes against my basic public toilet hygiene principles \ 488) * Sgeo mutters about broken toilets <Sgeo> #toilet is useless <monqy> is #toilet even a thing <Sgeo> I'm looking for help with toilets \ 489)
10:01:35 <monqy> `pastequotes toilet
10:01:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.4134
10:01:38 <monqy> valuable information
10:01:44 -!- atehwa has quit (Ping timeout: 276 seconds).
10:01:45 <monqy> and mmemories
10:02:12 <elliott_> monqy: im ehird and tusho and estoppel and alise btw.................................... just realised that you may not know my alternate nicks......................
10:02:24 <elliott_> i want more elispeses
10:02:27 <elliott_> (to eat)
10:02:46 <monqy> i knew ehird, i knew about tusho but forgot the exact name, forgot or never knew about estoppel and alise
10:02:58 <elliott_> estoppel i did not use much
10:03:02 <monqy> im hungary too...but cnnot eat until hours
10:03:02 -!- atehwa has joined.
10:03:35 <Sgeo> I do not recognize estoppel
10:03:55 <elliott_> Has anyone used CryoPID?
10:03:58 <itidus20> 'quote alise
10:04:06 <itidus20> oops
10:04:10 <itidus20> `quote alise
10:04:12 <HackEgo> 128) <alise> use "grep --crazy" \ 129) * augur rubs alise's bum [...] <augur> what? she said square ped <augur> :| \ 131) <fungot> alise: why internet is like wtf \ 135) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it
10:04:24 <augur> :D
10:04:37 <fizzie> Vorpal: Those, and (not the render-to-texture thing, FBOs in general) general post-processing of the final render, by a fragment shader or something.
10:04:37 <monqy> elliott_: im geting centepides help
10:04:39 <augur> elliott_: helloooooooo
10:04:43 <elliott_> augur: whatoiht
10:04:55 <elliott_> monqy: help
10:05:01 <elliott_> `addquote <monqy> im hungary too...but cnnot eat until hours
10:05:02 <HackEgo> 603) <monqy> im hungary too...but cnnot eat until hours
10:05:09 <monqy> is that funny
10:05:13 <elliott_> hungary
10:05:13 <monqy> i dont get it
10:05:13 <monqy> help
10:05:15 <elliott_> its a country,
10:05:16 <monqy> yes
10:05:18 <monqy> that was intentional
10:05:21 <elliott_> but you cannot eat until hours...
10:05:23 <Taneb> DMM knows who I am...
10:05:36 <elliott_> Taneb: THE FAMOUS DMM
10:05:39 <itidus20> :o what? how?
10:05:56 <elliott_> itidus20: is DMM what passes for a celebrity in your country
10:06:21 <Vorpal> fizzie, hm
10:06:23 <itidus20> What passes for a celebrity in my country is as follows:
10:06:25 <Taneb> Well, he mananged to connect forum me to IRC me
10:06:38 <monqy> amazing
10:06:47 <monqy> I don't know if anyone knows me
10:06:50 <elliott_> Taneb: hard feat what with them having exactly the same name
10:06:58 <Taneb> :P
10:07:24 <itidus20> Players of cricket. Players of aussie rules football. Actors starring in the soap opera home and away. Actors starring in the soap opera neighbours. Politicians.
10:07:35 <elliott_> DMM.
10:07:53 <elliott_> do you guys even have more than two soap operas
10:07:53 <itidus20> Also certain musicians of course.
10:08:04 <elliott_> those two are like
10:08:06 <elliott_> your country's primary export
10:08:17 <monqy> I dont; know what counts as famouse...i am bad at fame
10:08:18 <Taneb> Seachange was good but didn't last very long
10:08:21 -!- fungot has joined.
10:08:34 <elliott_> im glad this is a channel where people have opinions on australian soap operas
10:08:35 <monqy> i am out of all the fame loops
10:08:44 <elliott_> im just sitting here grinning likean idiot
10:08:48 <monqy> and the australien soap opera loops
10:08:57 <monqy> so much loop / s omcuh
10:09:01 <elliott_> `addquote <monqy> i am out of all the fame loops <monqy> and the australien soap opera loops <monqy> so much loop / s omcuh
10:09:02 <HackEgo> 604) <monqy> i am out of all the fame loops <monqy> and the australien soap opera loops <monqy> so much loop / s omcuh
10:09:09 <itidus20> i have sort of met toadfish once in a nightclub
10:09:18 <monqy> please do tell
10:09:21 <Patashu> while famous loop { }
10:09:30 <Patashu> *runs 0 times*
10:09:41 <itidus20> my friend who used to boss me around asked me to offer him a beer. he was kinda creeped out by me.
10:09:48 <itidus20> :P
10:10:09 <elliott_> who is toadfise
10:10:13 <monqy> yeah i uh
10:10:15 <monqy> don't know who that is
10:10:19 <itidus20> a fictional character in neighbours
10:10:20 <monqy> I thought you said "a toadfish"
10:10:27 <monqy> and I was like
10:10:30 <elliott_> lol
10:10:31 <monqy> whoa what's a toadsish
10:10:35 <elliott_> toadfish was kinda creeped out by itidus20
10:10:35 <monqy> toadfish, sorry
10:10:39 <elliott_> http://en.wikipedia.org/wiki/Toadfish
10:10:40 <elliott_> its a thing
10:10:46 <elliott_> itidus20 met one once in a nightclub
10:10:50 <elliott_> http://upload.wikimedia.org/wikipedia/commons/2/29/Neophrynichthys_latus_%28Dark_toadfish%29.gif
10:10:58 <elliott_> <friend> hey iti offer to buy a beer for that guy
10:11:02 <monqy> that is actually how i imagine itidus20
10:11:06 <elliott_> <iti> hey toadfish i buy beer???
10:11:09 <elliott_> <toadfish> http://upload.wikimedia.org/wikipedia/commons/2/29/Neophrynichthys_latus_%28Dark_toadfish%29.gif
10:11:16 <monqy> that toadfish picture describes my mental image of itidus20 perfectly
10:11:18 <Taneb> I once visited the set of Home and Away, I think
10:11:20 <itidus20> "For the television character, see Toadfish Rebecchi."
10:11:22 <elliott_> monqy: ahahaha
10:11:35 <elliott_> http://upload.wikimedia.org/wikipedia/en/5/55/Toadie_Rebecchi.jpg
10:11:36 <elliott_> http://upload.wikimedia.org/wikipedia/commons/2/29/Neophrynichthys_latus_%28Dark_toadfish%29.gif
10:11:38 <elliott_> the resemblance is uncanny
10:11:39 -!- Taneb has left ("I am outta here").
10:11:47 -!- Taneb has joined.
10:11:49 <elliott_> taneb can't take the heat
10:11:57 <elliott_> the heat being comparisons of soap opera actors to fish
10:11:58 <Taneb> I didn't know I could do that
10:11:58 <monqy> http://upload.wikimedia.org/wikipedia/commons/9/91/OysterToadfish.jpeg helo
10:12:06 <elliott_> monqy: http://upload.wikimedia.org/wikipedia/en/5/55/Toadie_Rebecchi.jpg same person??
10:12:08 <elliott_> maybe same photo
10:12:25 <itidus20> ya that guy
10:12:48 <itidus20> his brother in the tv show is named stonefish :P
10:13:13 <monqy> stonefish does not jive with my mental itidus20 image
10:13:21 <monqy> who is stonefish....
10:13:32 <elliott_> http://en.wikipedia.org/wiki/Stonefish_stings_in_Australia
10:13:33 <itidus20> another character in that tv show
10:13:40 <itidus20> toadfish's brother
10:13:45 <monqy> stonefish is not sgeo either
10:13:48 <elliott_> http://upload.wikimedia.org/wikipedia/commons/e/e2/Sch%C3%A9ma_synchronicit%C3%A9_in_English.png <-- soap operas
10:13:49 <monqy> what is a good sgeo fish
10:14:23 <monqy> No results found for "sgeo fish".
10:14:24 <monqy> help
10:14:40 <elliott_> help
10:14:51 <elliott_> help
10:14:54 <monqy> trying +sego +fish
10:15:05 <monqy> http://www.charlesgilchrist.com/SGEO/Gal1101.html
10:15:09 <monqy> first result
10:16:01 <elliott_> where fish
10:16:14 <monqy> C.G. "Yes. As I am sure you remember, Leslie, and as I have told you many times before: Sacred Geometry is the architecture of the universe. You can observe these proportions everywhere; in fish and shells, birds and beasts of all kinds, many forms of insects, it's in plants and trees; God's Golden Mean is to be found everywhere in nature."
10:16:25 <elliott_> C.G. "I have no idea, Leslie, and I don't believe anyone knows that for sure. The Golden Mean Rectangle and the related Phi Ratio have been perceived in numerous cultures dating back to the roots of recorded history, especially in the Middle East and the Far East. But the information was a guarded part of esoteric wisdom and was not shared with anyone but the most privileged initiates of very obscure and secret societies."
10:16:30 <elliott_> But the information was a guarded part of esoteric wisdom and was not shared with anyone but the most privileged
10:16:35 <elliott_> part of esoteric wisdom and was not
10:16:37 <elliott_> part of esoteric wisdom and
10:16:38 <elliott_> of esoteric wisdom and
10:16:40 <elliott_> of esoteric
10:16:42 <elliott_> esoteric
10:16:45 <monqy> esoteric wisdom
10:16:48 <elliott_> esoteric /SGEO/
10:16:58 <monqy> http://upload.wikimedia.org/wikipedia/commons/e/e2/Sch%C3%A9ma_synchronicit%C3%A9_in_English.png
10:20:00 <itidus20> just coincedence
10:20:17 <monqy> http://upload.wikimedia.org/wikipedia/en/8/84/Sgeoct.wav helpful audio clip from sgeo wikipedia userpage
10:20:22 <itidus20> pun intentional
10:20:30 <fizzie> That second-to-latest reminded me of this guy: http://upload.wikimedia.org/wikipedia/commons/3/3e/Kauko_Nieminen.jpg
10:21:33 <fizzie> He's written 15 "books" about his "aether whirlpool theory".
10:21:34 <elliott_> he looks like a bro
10:21:56 <monqy> and i thought: vortex math
10:22:04 <elliott_> Kauko Armas Nieminen (born 15 February 1929 in Kuopio, Finland) is a Finnish self-taught physicist. His work is pseudoscience.[citation needed]
10:22:04 <elliott_> Although Nieminen is most known for his works in physics, he does not have any academic training or degree in physics, but is entirely self-taught. He has a bachelor's degree in law from the University of Helsinki.
10:22:05 <itidus20> a bro? help
10:22:31 <elliott_> Kauko Nieminen was a deputy member of the city council of Helsinki from 2001 to 2004.
10:22:33 <elliott_> fizzie: what happened
10:22:38 <itidus20> His work is pseudoscience.[citation needed]
10:22:44 <itidus20> lol
10:22:47 <fizzie> "Nieminen's research and theories in physics are unusual.[citation needed]"
10:22:50 <fizzie> Oh, Wikipedia.
10:23:12 * itidus20 laughs aloud
10:23:21 <fizzie> elliott_: Maybe he wanted to concentrate on his real work instead of politics? (I don't know.)
10:23:22 <monqy> http://sgeo.deviantart.com/ is this sgeo i have a suspicion it isnt
10:23:39 <elliott_> fizzie: i mean how did he... get in
10:24:16 <fizzie> elliott_: Well, by being elected, I would suppose.
10:24:21 <elliott_> fizzie: how
10:26:33 <monqy> http://www.helsinki.fi/~pvalimak/sitaatit/nieminen.htm what does this mean
10:26:34 <monqy> good frog
10:26:48 <monqy> wikipedia said it's an interview with crazyman but I can't read
10:27:14 <elliott_> monqy: tranarnslate it
10:27:19 <elliott_> chrome askes me too, you should, get that
10:27:22 <elliott_> "Many of us think they know what is to be a bohemian scientist or spend a carefree university life - beer, an old Kuppila and stuff. But the absent-minded scientist, or a bohemian being is like other things. Others are amateurs, and some charismatic individuals you're verissä: they will become professionals who are leaving other in the shade. The latter caste is vice Notari Far Nieminen.
10:27:30 <elliott_> Are you going to continue the political uraanne?
10:27:30 <elliott_> "I will continue, if I find the party, which is not only selfish bourgeois juntteja reindeer. Has gone low. "
10:27:44 <elliott_> not only selfish bourgeois juntteja reindeer
10:27:49 <elliott_> has gone low
10:28:00 <elliott_> fizzie: is he complaining about the bourgeois reindeer, say yes
10:29:20 <monqy> I am vice Notari Far Nieminen, I have published reach much further than Jesus. At their chapter The overall co-benefit and other places it occurs. After all, I witnessed OF CREATION, which is achieved eternal life in the broadest sense ETHERS ETERNAL POWER OF.
10:29:23 <fizzie> elliott_: It seems he got 221 votes (out of 230k) in the 2000 muncipal elections. But do note that that he was just a deputy member; got the second-most votes from the independents, but the independents in total got one seat out of 85, so...
10:29:24 <monqy> ROAD READY ON, CAN find it!
10:29:26 <monqy> REMOTE RECORD Nieminen AIKAJA SUBSTANCE NOT BUY bookstores, HELSINKI EDULLISEMMAT Second-hand bookshop. "
10:29:38 <elliott_> <elliott_> fizzie: is he complaining about the bourgeois reindeer, say yes
10:29:41 <elliott_> also
10:29:44 <elliott_> my SDL.fillRect code
10:29:46 <elliott_> is sloe :(
10:29:55 <elliott_> i gess i wil ltry pixels
10:29:56 <monqy> that's what happens when (whatever you did here)
10:30:24 <elliott_> fizzie: um help how do i know what memory format the plixes is in.......
10:30:37 <monqy> wasn't there a function for that
10:30:42 <elliott_> maybes???????
10:30:45 <fizzie> elliott_: I... I don't want to lie; no, he's not. The source word "poroporvarillinen" translates to "really bourgeois", even though "poro" as a stand-alone word means reindeer.
10:31:16 <monqy> is surfacegetpixelformat a function which you want
10:31:29 <fizzie> elliott_: The pixels is in the format specified by the PixelFormat, of course. (And each line is separated by surfaceGetPitch bytes.
10:32:50 <itidus20> fizzie: could you translate the entire line which says "I will continue, if I find the party, which is not only selfish bourgeois juntteja reindeer. Has gone low. " ?
10:32:57 <elliott_> fizzie: What if I assumed the format..................... what then
10:33:05 <itidus20> this is a big ask.. i have no obvious means of thanks
10:33:13 <monqy> i think http://sdl.beuc.net/sdl.wiki/Pixel_Access is how i learned how to do pixel stuff with sdl,,,,,it was years ago.
10:33:20 <fizzie> Basically I suppose what you need to do is to run your RGB values through mapRGB (because the Haskell binding doesn't seem to expose the fields of the PixelFormat struct) and then use the pixelFormatGetBytesPerPixel and surfaceGetPitch values to calculate the offset in surfaceGetPixels, and stick pixelFormatGetBytesPerPixel bytes of the mapRGB-returned Word32 there.
10:33:52 <elliott_> monqy: were you even born years ago......
10:34:00 <monqy> a few of them,,,,,,,,
10:34:03 <elliott_> fizzie: what if i just assumed it was how it is...........
10:34:08 <elliott_> fizzie: and hardcoded.......
10:34:11 <elliott_> would i be bad
10:34:14 <monqy> ew / gross
10:34:17 <monqy> would it break
10:34:32 <Vorpal> elliott_, yes very gross
10:34:39 <itidus20> aether way it is no skin of my nose
10:34:50 <elliott_> Vorpal: YOURE GROSS ASSHOLE
10:34:54 * elliott_ creis
10:34:54 * elliott_ creis
10:34:55 * elliott_ creis
10:34:56 * elliott_ creis
10:34:59 <monqy> help
10:35:02 <elliott_> help
10:35:10 <itidus20> nett
10:35:22 <monqy> Neurological Emergencies Treatment Trials
10:35:51 <elliott_> Haberdashery Exegesis LARPers Purdue
10:35:56 <fizzie> elliott_: Well, you could draw to a createRGBSurface you constructed yourself, with the right format, and then just blit that into the screen, then SDL will take care of the conversion. (Possibly disable double-buffering in that case, since it's already double-buffered in software.)
10:36:24 <elliott_> fizzie: oh i forgot to ask for doubline ufbfuerring or anything...
10:36:28 <fizzie> itidus20: Roughly translated... "I will continue [my political career], if I can find a party that consists of not just ur-bourgeois selfish rednecks. It's gone low." (I don't really know what that last part means. I guess it's just a lamentation of how bad things are.)
10:36:32 <elliott_> surface <- SDL.setVideoMode w h 32 []
10:36:34 <elliott_> would that speed this up
10:36:39 <elliott_> (it's slow)
10:36:58 <itidus20> fizzie: thanks
10:38:47 <itidus20> The selfish bourgeois juntteja reindeer has gone low.
10:38:48 <fizzie> elliott_: I think the slowness could be because each fillRect call will do an internal lockSurface ... unlockSurface pair, and if the surface you're drawing to is a in-video-memory hardware surface, that may involve a round-trip to the display card memory. You could easily try that by sticking a SWSurface in your setVideoMode call. Though I guess it could also easily be something else wrong in the fillRect way.
10:39:42 <elliott_> fizzie: Well, I'm doing it via poking now, and it works (wow, first time!), but... it's still not fast.
10:39:49 <elliott_> fizzie: I have a feeling my representation is just non-ideal.
10:39:53 <elliott_> ((Rational,Rational) -> RGB)
10:39:56 <elliott_> (For pictures.)
10:40:03 <elliott_> BUT I WILL OPTOMIZE
10:40:07 <Vorpal> <itidus20> The selfish bourgeois juntteja reindeer has gone low. <-- I'll assume low is a logical 1 in this case.
10:40:09 <elliott_> I'm calling mapRGB all the time, that's gotta be slow.
10:40:34 <elliott_> Is b normally least-significant, or r?
10:40:42 <monqy> :(
10:41:15 <Vorpal> elliott_, why not just cache the mapRGB results?
10:41:28 <itidus20> ok
10:41:33 <elliott_> Vorpal: because the rgb differs each time...
10:41:42 <elliott_> a map lookup will be slower
10:41:50 <Vorpal> hm true
10:42:14 <monqy> what is even doing
10:42:21 <Vorpal> elliott_, anyway what are you doing really. Maybe I can suggest a better way
10:42:25 <Vorpal> I used SDL quite a bit
10:42:36 <Vorpal> (from C though)
10:42:49 <fizzie> The RGBA/ARGB/BGRA/ABGR is often anyone's guess, really, thanks to sometimes it being sensibly "RGBARGBA..." in memory, but in some other times they've wanted to put it so that it looks like 0xRRGGBBAA when viewed from a little-endian CPU.
10:43:16 <itidus20> Vorpal: did it do anything amusing?
10:43:16 <elliott_> Vorpal: Rendering pictures. Later animations.
10:43:25 <elliott_> data RGB = RGB Word8 Word8 Word8
10:43:25 <elliott_> type Coord = Rational
10:43:26 <elliott_> type Point = (Coord, Coord)
10:43:26 <elliott_> type Picture a = Point -> a
10:43:35 <elliott_> Picture RGB is the relevant type.
10:43:44 <elliott_> Just doing a 500x500 checkerboard, it's slow.
10:43:49 <elliott_> And no, s/Rational/Double/ doesn't help much.
10:43:51 <monqy> why do you need pixel manipualtion to do this....
10:43:52 <Vorpal> elliott_, if you render a picture why not just blit the textures or whatever?
10:43:55 <elliott_> Takes multiple sconds to render.
10:44:14 <monqy> why not draw big boxes
10:44:19 <elliott_> Vorpal: The pictures are continuous.
10:44:20 <Vorpal> indeed what monqy said
10:44:28 <elliott_> And the animations will then depend on input factors.
10:44:44 <monqy> or is this a fine-grained checkerboard
10:44:46 <elliott_> "don't write your program in the first place" isn't terribly helpful advice.
10:44:50 <Vorpal> elliott_, if you are drawing a checkerboard, just use the box drawing primitives
10:44:58 <elliott_> Vorpal: Just...
10:45:04 <Vorpal> elliott_, just what
10:45:04 <elliott_> Shut up, you have no idea what I'm trying to do.
10:45:07 <elliott_> <elliott_> "don't write your program in the first place" isn't terribly helpful advice.
10:45:16 <Vorpal> <elliott_> Shut up, you have no idea what I'm trying to do. <-- because you aren't explaining
10:45:18 <elliott_> The representation isn't up for discussion; how to render it is.
10:45:28 <itidus20> elliott_: i hope you are not using some variation on putpixel
10:45:38 <Vorpal> elliott_, I say the representation is wrong.
10:45:45 <elliott_> Vorpal: Then stop talking.
10:45:46 <monqy> oh dagn!!!!
10:45:54 <Vorpal> elliott_, fine.
10:46:14 <itidus20> elliot.. also.. try making it 512x512?
10:46:20 <itidus20> i dont know?
10:46:24 <Vorpal> elliott_, at least try profile it.
10:46:35 <itidus20> im just throwing silly ideas out there
10:46:44 <itidus20> in this case power of 2
10:46:47 <fizzie> If you want to avoid mapRGB, you *could* perhaps use a hardcoded format of your own, an in-memory byte-buffer done however that sort of thing gets done in Haskell, and then the oh-there's-no-documentation createRGBSurfaceFrom :: Ptr a -> Int -> Int -> Int -> Int -> Word32 -> Word32 -> Word32 -> Word32 -> IO Surface. That should avoid any nonsense in the SDL binding, maybe.
10:46:50 <elliott_> Vorpal: There are about five calls in the loop that takes the time. Trial and error is faster than profiling.
10:49:07 <elliott_> fizzie: In-memory byte buffers look pretty much the same in Haskell as C. :p
10:49:55 <monqy> i think im shoudl probably slep soon
10:50:24 <elliott_> monqy: what tmie is it...........
10:50:38 <monqy> almost 0352
10:50:40 <monqy> i mean
10:50:41 <monqy> it is that
10:50:48 <monqy> i was about to type almost 0400
10:50:50 <monqy> but then i didn't
10:50:53 <monqy> i typed 0352
10:51:40 <elliott_> hahaha
10:51:47 <fizzie> elliott_: Coincidentally, I was wondering what the difference between tryCreateRGBSurface and tryCreateRGBSurfaceEndian is in the bindings. Source -> "tryCreateRGBSurfaceEndian flags width height bpp = tryCreateRGBSurface flags width height bpp"
10:52:29 -!- myndzi has joined.
10:52:52 <elliott_> fizzie: Nice. Probably for backwards compatibility.
10:53:08 <monqy> i'm not particularly tired but i have other reasons for sleep desire
10:53:17 <elliott_> monqy: why slep desire
10:53:19 <elliott_> why an slep desire
10:53:45 <monqy> avoiding bad consequences of not slep, such as yelled at
10:54:04 <elliott_> in an utopia not slep would be as unto slep but with les slep
10:54:18 <monqy> my choice is either yelled at for slep deprivation, or yelled at for slep too late
10:54:42 <elliott_> what if you slep deprive hide................................. like a SLEUTH...............
10:54:55 <monqy> alternatively, preemptively yelled at if anyone wakes up and hears me not slepeing
10:55:00 <fizzie> Ohhhh, it *continues* three lines later with "{-# LINE 412 "Graphics/UI/SDL/Video.hsc" #-} 0x000000FF 0x0000FF00 0x00FF0000 0xFF000000" which are of course additional arguments to that tryCreateRGBSurface call. Well, that makes sense. Also, pretty formatting.
10:55:13 <monqy> i'm spooked out by noises i may or may not be hearing
10:55:15 <monqy> this spooks me
10:55:16 <monqy> im leave
10:55:24 -!- monqy has quit (Quit: hello).
10:58:19 <elliott_> fizzie: Well, it _is_ generated code.
11:01:01 <elliott_> let rgb = (fromIntegral r `shiftR` 16) .|. (fromIntegral g `shiftR` 8) .|. fromIntegral b
11:01:06 <elliott_> What does it mean if this produces blue for black. :p
11:01:14 <elliott_> Not pure blue, either. I think.
11:01:22 <elliott_> Might be wrong about that one.
11:02:05 <fizzie> If r, g, b are all 0 and you get blue out, that's quite impressive.
11:03:06 <elliott_> fizzie: Erm for white.
11:03:08 <elliott_> Not for black. White.
11:03:10 <fizzie> Oh.
11:04:06 <fizzie> It's still quite interesting. But the needed shifts are pretty much always one out of (16, 8, 0), (24, 16, 8), (0, 8, 16) or (8, 16, 24); that's just four alternatives to try.
11:04:09 <Deewiant> It means you're using that as an 8-bit value?
11:04:23 <Deewiant> And later fromIntegral'ing it again to get something bigger
11:04:23 <fizzie> Oh, I guess it could be that too.
11:04:33 <elliott_> let RGB r g b = picture (fromIntegral x, fromIntegral y)
11:04:33 <elliott_> -- SDL.Pixel rgb <- SDL.mapRGB fmt r g b
11:04:33 <elliott_> let rgb = (fromIntegral r `shiftR` 16) .|. (fromIntegral g `shiftR` 8) .|. fromIntegral b
11:04:33 <elliott_> pokeElemOff pixels (x*w + y) rgb
11:04:36 <Deewiant> AFAICT what you've got there is Bits a => a
11:04:37 <elliott_> let pixels = castPtr pxs :: Ptr Word32
11:07:09 <Deewiant> print $ peekElemOff pixels (x*w +y)
11:09:35 <elliott_> Deewiant: =<<, not $... but yeah okay.
11:09:47 <elliott_> Hmm, you're right.
11:09:51 <elliott_> But that makes literally no sense.
11:09:57 <Deewiant> I wrote that as traceShow . unsafePerformIO originally but then I realized it was in IO
11:10:07 <elliott_> I mean, pokeElemOff _takes a wordthirtytwo_ here.
11:10:18 <elliott_> So rgb being eight-bit just doesn't work.
11:10:31 <Deewiant> let rgb :: Word32
11:10:41 <Deewiant> Shouldn't make a difference
11:10:49 <elliott_> Cargo-cultist :)
11:11:04 <Deewiant> Just for testing
11:11:07 <elliott_> Deewiant: Doesn't work, ha, world still makes sense
11:11:16 <Deewiant> Why doesn't it work
11:11:19 <elliott_> So I guess I might have my alignment wrong or something??
11:11:23 <elliott_> Deewiant: As in, works, produces same results
11:11:30 <Deewiant> Oh, I thought you meant it doesn't compile :-P
11:13:49 <elliott_> `quote bonkers
11:13:51 <HackEgo> 26) <ehird> so i can only conclude that it is flawed, or the world is utterly bonkers \ 27) IN EINEM ALTERNATIVEN UNIVERSUM (WO DIE NAZIS WON): <ehird> So kann ich nur schliessen, dass es falsch ist, oder die Welt ist vollig BONKERS. Gegrusset seist du der Fuhrer Hitler! \ 29) PA ET ANNET UNIVERSET DER DE ENESTE PERSONEN OERJAN:
11:13:53 <elliott_> Current working assumption
11:14:16 <elliott_> Maybe it's like... BBAAAAGGRR
11:14:19 <elliott_> (least significant to most)
11:14:21 <elliott_> That makes sense
11:14:22 <elliott_> :-)
11:14:30 <elliott_> Waitwait
11:14:35 <elliott_> Deewiant: "shiftR"
11:15:10 <Deewiant> Right, you probably want shiftL
11:15:22 <Deewiant> I never liked those names :-P
11:15:36 <elliott_> Now it works, and it's a whole imperceptible faster than the pure version!
11:15:43 <elliott_> Deewiant: I suggest "bigger" and "smaller"
11:15:46 <elliott_> n `bigger` 9
11:16:08 <Deewiant> .<<. .>>.
11:16:17 <Deewiant> Since that's what they did for the |^&
11:16:24 <elliott_> :-d
11:16:25 <elliott_> :-D
11:16:56 <elliott_> Some sort of pack :: (Bits a, Bits b) => [a] -> b would have been a nice addition
11:17:04 <elliott_> Using the sizeOf
11:19:19 <fizzie> Deewiant: Did they do that for ^? I thought Data.Bits did only the middle-finger (.|.) and the (.&.) and then "xor".
11:19:30 <Deewiant> Oh, true that.
11:19:49 <Patashu> I didn't know haskell had the boobies operator
11:20:04 <Deewiant> (.).(.)
11:21:40 <fizzie> Though (..|.) would be the true middle-finger operator. (Left hand, seen from the front.)
11:22:02 <Patashu> ..|..
11:22:06 <Patashu> ,,|,,
11:22:32 <Patashu> the middle finger should crash haskell
11:22:45 <Deewiant> (..|..) = error "fuck you"
11:22:59 <Patashu> hehehe
11:27:50 <Deewiant> elliott_: pack ys = go 0 (reverse ys) where go _ [] = 0; go s (x:xs) = fromIntegral x `shiftL` s .|. go (s + bitSize x) xs
11:27:59 <elliott_> Really annoying that this can't be made ...
11:28:03 <elliott_> Deewiant: Yes, I'm aware it can be implemented. :p
11:28:07 <Deewiant> pack :: (Integral a, Bits a, Bits b) => [a] -> b
11:28:14 <elliott_> ... fast.
11:28:26 <Deewiant> It needs the Integral though
11:28:53 <Deewiant> Well, to be performant
11:31:08 <elliott_> Deewiant: You can do it with "bit", I think
11:31:09 <Deewiant> pack ys = go 0 (reverse ys) where go _ [] = 0; go s (x:xs) = f x `shiftL` s .|. go (s + size) xs; f x = foldl1' (.|.) [bit i | i <- [0..size-1], x `testBit` i]; size = bitSize $ head ys
11:31:12 <elliott_> To avoid the Integral constr- yeah.
11:31:18 <Deewiant> pack :: (Bits a, Bits b) => [a] -> b
11:31:29 <Deewiant> But, that's expensive :-P
11:31:41 <elliott_> Deewiant: Well, you really want it in the (Bits a) class.
11:31:54 <elliott_> That could just be the deafult.
11:31:57 <elliott_> default.
11:32:10 <Deewiant> Why would you want this in the class
11:32:26 <elliott_> Deewiant: So that it can have the right signature (Bits a, Bits b) => [a] -> b while still being performant
11:32:36 <elliott_> By specialising the implementation to various specific a types
11:32:47 <elliott_> Same reason Bits isn't just like two functions
11:33:14 -!- cheater has quit (Ping timeout: 250 seconds).
11:33:14 <Deewiant> I don't see how this would be specialized
11:33:31 <elliott_> Deewiant: <Deewiant> elliott_: pack ys = go 0 (reverse ys) where go _ [] = 0; go s (x:xs) = fromIntegral x `shiftL` s .|. go (s + bitSize x) xs
11:33:37 <elliott_> There's a fast implementation for any a with Integral
11:33:59 <Deewiant> I'd just make that a separate function :-P
11:34:13 <elliott_> Deewiant: You have no sense of elegance :-(
11:34:42 <elliott_> pack is obviously possible for every (Bits a, Bits b), and so that's the signature it should have; the fact that it's much more efficient with (Integral a) is a reason to put it in the class so that each a can implement it ideally.
11:34:53 <Deewiant> If elegance is big classes look no further than Data.ListTrie.Base.Map
11:35:09 <elliott_> Deewiant: Under the constraints of the language as it is :-)
11:35:22 <elliott_> If I was in charge of things Bits would look like this:
11:35:27 <Deewiant> I'd think that pack isn't the appropriate function to put in the class
11:35:27 <elliott_> class Bits a where
11:35:31 <elliott_> toBits :: a -> [Bool]
11:35:33 <Deewiant> Rather, (Bits a, Bits b) => a -> b is
11:35:34 <elliott_> fromBits :: [Bool] -> a
11:39:51 <Deewiant> bits2bits :: (Bits a, Bits b) => a -> b is sufficiently simple that it could be in the class IMO, but pack isn't
11:40:35 <fizzie> bits2pieces.
11:45:08 -!- cheater has joined.
11:47:25 -!- Phantom_Hoover has joined.
11:54:22 -!- GreaseMonkey has quit (Quit: The Other Game).
12:02:33 -!- BeholdMyGlory has joined.
12:08:20 -!- Taneb has quit (Ping timeout: 250 seconds).
12:11:39 -!- boily has joined.
12:12:14 -!- Taneb has joined.
12:17:37 <elliott_> `addquote <Phantom_Hoover> The only happy dorf has a compassion stat of 0. <Phantom_Hoover> Well, 20, but it amounts to the same.
12:17:40 <HackEgo> 605) <Phantom_Hoover> The only happy dorf has a compassion stat of 0. <Phantom_Hoover> Well, 20, but it amounts to the same.
12:28:50 -!- hiato has joined.
12:28:50 -!- hiato has quit (Client Quit).
12:30:26 <elliott_> fizzie: Ooh, ooh, what if I parallalemalised my draw loop???
12:30:35 <elliott_> Why poke to one memory location in sequence when you can poke to a HUNDRED?
12:32:18 -!- Taneb has left ("I am outta here").
12:34:41 <Phantom_Hoover> http://i.imgur.com/JuUTG.jpg
12:34:41 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
12:34:46 <Phantom_Hoover> Best translation.
12:34:58 -!- myndzi has quit (Ping timeout: 260 seconds).
12:35:00 <elliott_> Phantom_Hoover: Welcome to, like, four years ago.
12:35:45 <Phantom_Hoover> elliott_, I CAN'T BE BLAMED
12:38:15 -!- guardian has joined.
12:38:34 -!- guardian has left.
12:38:39 <elliott_> rip grauniad
12:50:45 <Gregor> elliott_: X11 forwarding accomplished.
12:50:56 <Gregor> (For no good reason 8-D )
12:51:03 <elliott_> Gregor: Well aren't you a shithead I MEAN CONGRATULATIONS
12:51:33 <elliott_> Gregor: Now I need to one-up you :P
12:51:43 <elliott_> Man that's a lot of lines of code.
12:55:46 <Gregor> Oh piffle, it's not even 1,000.
12:56:28 <elliott_> Mine was like two hundred :P
12:58:17 <Gregor> Mine works :P
12:58:23 <elliott_> Mine ALMOST works :P
13:10:55 <Gregor> Mine is HARDCORE
13:11:01 <Gregor> Also mine is more generalizable :P
13:11:45 -!- sllide has joined.
13:12:21 <elliott_> Gregor: And what do you plan to generalise it to? :P
13:12:27 <elliott_> Did you change the protocol?
13:12:47 <Gregor> tcp6, for example.
13:13:01 <Gregor> I change the protocol only insofar as it's a push-only protocol now.
13:13:04 <elliott_> Sweet, now you support all three IPv6 hosts :P
13:13:15 <Gregor> No, I just have the ability to support them :P
13:13:21 <elliott_> SWEEEEEEET
13:13:33 <Gregor> Appletalk!
13:13:38 <elliott_> YESSSSSSSSSSS
13:13:52 -!- MSleep has changed nick to MDude.
13:14:08 <fizzie> IPX networking is the best form of networking. (Disclaimer: a context-free comment.)
13:16:37 <elliott_> Gregor: You should switch to epoll for SCALABILITY.
13:17:47 <CakeProphet> why not switch to Scala for SCALAbility. :3
13:18:25 <fizzie> Or C for sCalability.
13:18:31 <fizzie> Wait, is it in fact C already?
13:18:34 <elliott_> Yes.
13:18:36 <fizzie> I don't even know what it's all about.
13:18:50 <elliott_> fizzie: Arbitrary socket multiplexer over tty.
13:19:01 <elliott_> fizzie: The only outside-world communication UML offers is via ttys, so... yeah.
13:19:35 <CakeProphet> "every value is an object!" such a deep paradigm.
13:21:25 <elliott_> Does anyone even like OOP any more? I haven't been keeping track.
13:21:34 <fizzie> That's not strictly speaking true for "UML", though of course I don't know the scenario. (For example, the TUN/TAP uml_net thing requires some root privileges for setting it up.)
13:21:36 <CakeProphet> most people I talk to don't.
13:21:47 <CakeProphet> a lot of my professors seem to like it.
13:21:50 <elliott_> fizzie: Well, talk to Gregor; ISTR tun/tap was ruled out for various reasons. slirp too.
13:21:52 <CakeProphet> it's basically all they teach.
13:22:02 <elliott_> Maybe the needing-root + ugliness outruled it. :p
13:22:17 <elliott_> Not that doing it over a tty isn't ugly, but it's also cute.
13:22:23 <CakeProphet> in my second intro to programming class that spent like, a lecture going over recursion.
13:22:24 <fizzie> Needing-root sounds like a reasonable reason not to play with taps.
13:22:28 <Gregor> `run curl http://www.google.com/ 2> /dev/null
13:22:31 <HackEgo> ​<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="description" content="Search the world&#39;s information, including webpages, images, videos and more. Google has many special features
13:22:38 <elliott_> Gregor: Nice
13:22:39 <CakeProphet> needs moar Perl
13:22:47 <elliott_> `wl odsijf
13:22:50 <HackEgo> You get NOTHING! You LOSE! Good DAY sir!
13:22:54 <elliott_> `wl Svalbar
13:22:54 <elliott_> `wl Svalbard
13:22:56 <HackEgo> You get NOTHING! You LOSE! Good DAY sir!
13:22:57 <HackEgo> You get NOTHING! You LOSE! Good DAY sir!
13:23:02 <elliott_> Let's just assume it works
13:23:06 <Gregor> lol
13:23:13 <elliott_> `wl eo Svalbardo
13:23:16 <HackEgo> Svalbard
13:23:19 <elliott_> Nailed it
13:23:19 <CakeProphet> whatever problem you're having could be fixed by Perl.
13:23:30 <elliott_> I've no problem, so true
13:23:41 <elliott_> `url bin/wl
13:23:42 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/wl
13:23:57 <CakeProphet> `wl --help
13:24:00 <HackEgo> You get NOTHING! You LOSE! Good DAY sir!
13:24:01 <CakeProphet> >_>
13:24:04 <elliott_> CakeProphet: Help available at http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/wl
13:24:12 <elliott_> Knowing that wl stands for Wiki-Late might help
13:24:13 <elliott_> As in wiki translate
13:24:22 <elliott_> It's translation via interwiki
13:24:29 <CakeProphet> lol
13:24:35 <CakeProphet> source code = documentation
13:24:38 <elliott_> <Vorpal> blah blah blah hägrar
13:24:40 <elliott_> `wl sv hägrar
13:24:43 <HackEgo> Heron
13:24:56 <elliott_> It's good at terms, terrible at sentences :P
13:25:06 <Gregor> So something works :P
13:25:11 <Gregor> I can't get `translate to work ...
13:25:17 -!- Taneb has joined.
13:25:21 <elliott_> proxy_handler = urllib2.ProxyHandler({'http': os.environ['http_proxy']})
13:25:21 <elliott_> opener = urllib2.build_opener(proxy_handler)
13:25:21 <elliott_> urllib2.install_opener(opener)
13:25:22 <elliott_> Good citizen :P
13:25:23 <Taneb> Hello!
13:25:26 <elliott_> `url bin/translate
13:25:29 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/translate
13:25:29 <CakeProphet> oh so it takes a language and an article and translates it.
13:25:35 <elliott_> `url bin/translatefromto
13:25:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/translatefromto
13:25:46 <CakeProphet> that's actually not a bad translation scheme.
13:25:47 <elliott_> Gregor: Did translate ever work really >_>
13:25:53 <Gregor> elliott_: Maybe? :P
13:26:00 <elliott_> Gregor: Does the API even still exist
13:27:01 <Gregor> elliott_: Maybe? :P
13:27:09 <Gregor> curl: (52) Empty reply from server >_>
13:27:18 <elliott_> Sounds like a "no"
13:27:27 <elliott_> Try -I
13:27:28 <elliott_> ?
13:27:35 <elliott_> I think that's the headers option anyway
13:27:40 <fizzie> "Important: The APIs included in this family have all been deprecated. Please see each API for details." http://code.google.com/apis/language/
13:27:45 <CakeProphet> `url jp penis
13:27:46 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/jp penis
13:27:52 <fizzie> They should still exist, though.
13:27:53 <CakeProphet> `wl jp penis
13:27:56 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/wl", line 52, in <module> \ q = query(continue_id) \ File "/hackenv/bin/wl", line 44, in query \ response = urllib2.urlopen(url).read() \ File "/opt/python27/lib/python2.7/urllib2.py", line 126, in urlopen \ return _opener.open(url, data,
13:28:01 <CakeProphet> I broke it.
13:28:13 <elliott_> I... don't know what happened there.
13:28:15 <elliott_> Gregor?
13:28:23 <elliott_> `wl jasoiaoisdj hello
13:28:26 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/wl", line 52, in <module> \ q = query(continue_id) \ File "/hackenv/bin/wl", line 46, in query \ print e.reason \ AttributeError: 'HTTPError' object has no attribute 'reason'
13:28:34 <elliott_> `wl jp penis
13:28:37 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/wl", line 52, in <module> \ q = query(continue_id) \ File "/hackenv/bin/wl", line 44, in query \ response = urllib2.urlopen(url).read() \ File "/opt/python27/lib/python2.7/urllib2.py", line 126, in urlopen \ return _opener.open(url, data,
13:28:55 <elliott_> `run wl jp penis 2>&1 | paste
13:28:58 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12766
13:29:04 <elliott_> lol
13:29:11 <Gregor> Weird, it seems that Google Translate's "auto" doesn't work anymore ...
13:29:21 <Gregor> And the rest of the service is ... intermittent.
13:29:22 <Gregor> `translatefromto es en Hola
13:29:26 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/json", line 4, in <module> \ data = json.loads(sys.stdin.read().decode('utf-8')) \ File "/opt/python27/lib/python2.7/json/__init__.py", line 310, in loads \ return _default_decoder.decode(s) \ File "/opt/python27/lib/python2.7/json/decoder.py", line 346,
13:29:31 <Gregor> See, intermittent X-D
13:29:35 <Gregor> <Gregor> `translatefromto es en Hola
13:29:35 <Gregor> <HackEgo> Hello
13:29:38 <Gregor> Oh well
13:29:55 <elliott_> Gregor: I suspect your proxy is crapping out somehow :P
13:30:01 <elliott_> Because "" is not an HTTP header line, yo.
13:30:09 <Gregor> -i isn't on there.
13:30:28 <Gregor> `run curl http://www.google.com/ 2> /dev/null
13:30:30 <HackEgo> ​<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="description" content="Search the world&#39;s information, including webpages, images, videos and more. Google has many special features to
13:30:31 <Gregor> `run curl http://www.google.com/ 2> /dev/null
13:30:33 <HackEgo> ​<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="description" content="Search the world&#39;s information, including webpages, images, videos and more. Google has many special features to
13:30:34 <Gregor> `run curl http://www.google.com/ 2> /dev/null
13:30:36 <HackEgo> ​<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="description" content="Search the world&#39;s information, including webpages, images, videos and more. Google has many special features to
13:30:38 <Gregor> Idonno, I don't think it is.
13:30:40 <fizzie> Manually curling that URL seems to work pretty reliably.
13:30:42 <fizzie> $ curl -e http://codu.org/ http://ajax.googleapis.com/ajax/services/language/translate --data-urlencode v=1.0 --data-urlencode q=Hola --data-urlencode langpair='es|en' ; echo
13:30:42 <fizzie> {"responseData": {"translatedText":"Hello"}, "responseDetails": null, "responseStatus": 200}
13:30:51 <Gregor> fizzie: Not from Codu >_>
13:30:55 <fizzie> See how I used your ajax-site name too.
13:31:30 <elliott_> <elliott_> Gregor: I suspect your proxy is crapping out somehow :P
13:31:30 <elliott_> <elliott_> Because "" is not an HTTP header line, yo.
13:31:33 <elliott_> I mean the wl error
13:31:40 <Gregor> Oh, I didn't see that ...
13:31:43 <fizzie> I'd like to know how many queries they get from "http://www.my-ajax-site.com" literally, because that's in the curl examples of the API doc.
13:31:56 <Gregor> fizzie: They may very well reject that.
13:31:58 <elliott_> http://www.my-ajax-site.com/ <-- nice
13:32:05 <elliott_> Gregor: But what about the owners of http://www.my-ajax-site.com/? :P
13:32:15 <elliott_> You'd think Google would just snap up that domain for example purposes.
13:33:16 * CakeProphet uses 4chan.org for all example URLs.
13:33:28 <Gregor> OK OK, so obviously something can go wrong here X-D
13:34:11 <Gregor> But I'm not fixing it now! So foo 2 u!
13:34:17 <elliott_> Good work Gregor
13:35:10 <elliott_> `ghc --version
13:35:12 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ghc: not found
13:35:20 <elliott_> Gregor: Hey, can I build GHC in HackEgo?
13:35:21 <Gregor> <elliott_> BAD WORK GREGOR
13:35:29 <Gregor> elliott_: Doubtful, it has a 30sec timeout :P
13:35:42 <elliott_> Gregor: I'm sure that's circumventable... cronjob?
13:35:57 <Gregor> elliott_: If you can configure in <30sec, you could do the rest in successive makes 8-D
13:36:15 <elliott_> Sweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeet
13:36:23 <elliott_> There's only like a billion make invocations to do
13:36:35 <elliott_> Gregor: OK, I'll do the reasonable thing and install a binary build :P
13:36:47 <elliott_> Gregor: Is there any way for me to change the PATH, or do you have to do that?
13:36:54 <elliott_> I guess there might be a .profile or sth I could edit
13:36:59 <Gregor> There isn't :P
13:37:04 <elliott_> (I don't want to clutter bin so I'm thinking about creating local/)
13:37:10 <elliott_> Gregor: Meh, I can just symlink local/bin
13:37:17 <elliott_> `arch
13:37:17 <Gregor> That'd be good *shrugs*
13:37:18 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: arch: not found
13:37:21 <elliott_> `uname
13:37:23 <HackEgo> Linux
13:37:26 <elliott_> `uname -a
13:37:28 <HackEgo> Linux (none) 3.0.1-umlbox #5 Fri Aug 19 13:17:44 UTC 2011 x86_64 GNU/Linux
13:37:34 <Gregor> Incidentally, enjoy the 10MB file limit.
13:37:40 <elliott_> Gregor: Does `fetch have... right.
13:37:52 <elliott_> Gregor: What would you say about increasing that by, say, 99 megabytes?
13:38:10 <elliott_> I got 99 megabytes but GHC ain't one.
13:38:20 <Gregor> No, it appears to be ~12
13:38:44 <elliott_> `run curl http://debian.org/
13:38:46 <HackEgo> ​\ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ERROR: The requested URL could not be retrieved</title> <style type="text/css"><!-- %l body :lang(fa) { direction: rtl; font-size: 100%;
13:38:48 <Gregor> Hm, come to think of it, did I ever bother to make fetch honor the size limit? X-D
13:38:59 <Gregor> `fetch http://www.haskell.org/ghc/dist/6.2.2/ghc-6.2.2-i386-unknown-linux.tar.bz2
13:38:59 <elliott_> `fetch http://haskell.org/ghc/dist/7.2.1/ghc-7.2.1-x86_64-unknown-linux.tar.bz2
13:39:00 <elliott_> Let's find out.
13:39:04 <Gregor> ...
13:39:06 <elliott_> Gregor: Dude...
13:39:11 <elliott_> That's an ANCIENT version :P
13:39:23 <Gregor> elliott_: I just typed "GHC binaries" into Google 8-D
13:39:25 <elliott_> Like, really really really ancient.
13:39:36 <elliott_> 2004 ancient.
13:40:01 <elliott_> Gregor: Well this will be fun :P
13:40:04 <Gregor> `run ls -l *.bz2
13:40:07 <HackEgo> ​-rw-r--r-- 1 5000 0 10485760 Aug 19 13:40 ghc-6.2.2-i386-unknown-linux.tar.bz2 \ -rw-r--r-- 1 5000 0 10485760 Aug 19 13:40 ghc-7.2.1-x86_64-unknown-linux.tar.bz2
13:40:09 <elliott_> At least yours is probably smaller :P
13:40:13 <elliott_> `run rm ghc-6.2.2-i386-unknown-linux.tar.bz2
13:40:16 <HackEgo> No output.
13:40:17 <Gregor> Note questionable file size.
13:40:24 <elliott_> Heh, indeed
13:40:38 <elliott_> Well, I could split it up into multiple files and upload them, or you could add haskell.org to the proxy whitelist :-D
13:40:48 <Gregor> I'll do the latter, you can just pipe into tar.
13:41:07 <elliott_> Gregor: Come to think of it, what's the quota?
13:41:12 <elliott_> `run rm *.bz2
13:41:15 <HackEgo> No output.
13:41:27 <Gregor> There is no full quota, I just made an immediate filesize limit to prevent stupid abuse.
13:41:34 <elliott_> Right.
13:41:37 <Gregor> Clever abuse is allowed :P
13:41:42 <elliott_> So I don't actually have to pipe into tar. :p
13:41:45 <elliott_> I probably will, but...
13:41:49 <elliott_> I've always been scared of doing that.
13:41:56 -!- Taneb has quit (Ping timeout: 250 seconds).
13:42:00 <Gregor> elliott_: The filesize limit is enforced by ulimit, not me.
13:42:06 <Gregor> So you do have to pipe into tar.
13:42:16 <elliott_> Ah :P
13:42:17 <Gregor> Anyway, proxy's open.
13:42:25 <elliott_> Gregor: Umm, so, wait, a filesize limit of twelve megs?
13:42:37 <elliott_> Gregor: I'm fairly sure that the resulting GHC binary is bigger than that
13:42:48 <elliott_> -rwxr-xr-x 1 root root 41M 2011-06-27 10:38 /usr/local/lib/ghc-7.0.4/ghc
13:43:23 <elliott_> Gregor sure likes me right now :P
13:43:56 <Gregor> lol
13:44:06 <Gregor> Maybe I'll just install GHC :P
13:44:13 <elliott_> Gregor: You really don't want the distro package.
13:44:25 <elliott_> Not only will it be ancient in GHC terms, the packages tend to be really bad :P
13:44:43 <elliott_> But hey, let's try and untar this thing.
13:44:55 <elliott_> `run curl http://haskell.org/ghc/dist/7.2.1/ghc-7.2.1-x86_64-unknown-linux.tar.bz2 | tar xj
13:45:04 <elliott_> Hmm, wait
13:45:12 <HackEgo> ​% Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \ . 0 108M 0 3630 0 0 9799 0 3:14:14 --:--:-- 3:14:14 9799. 0 108M 0 29208 0 0 30234 0 1:02:57 --:--:-- 1:02:57 42916. 0 108M
13:45:12 <elliott_> Gregor: Is your connection fast enough to download that in thirty seconds
13:45:17 <elliott_> Apparently
13:45:37 <elliott_> `ls
13:45:39 <HackEgo> 1 \ babies \ bin \ bluhbluh \ canary \ env \ foo \ ghc-7.2.1 \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ test.c \ tmp.tmp \ warez \ тэкст
13:45:44 <elliott_> `ls ghc-7.2.1
13:45:46 <HackEgo> INSTALL \ LICENSE \ Makefile \ README \ config.guess \ config.sub \ configure \ driver \ ghc \ inplace \ install-sh \ libraries \ mk \ packages \ settings.in \ utils
13:46:01 <CakeProphet> I am god of codes.
13:46:06 <elliott_> Gregor: Wouldn't a quota be simpler than a filesize limit :P
13:46:19 <Gregor> elliott_: The quota would have to be enormous X_X
13:46:25 <Gregor> Everything slows down when the FS is too full y'know.
13:46:26 <elliott_> Gregor: PRECISELY
13:46:46 <CakeProphet> elliott_: Gregor likes Fat32
13:46:52 <elliott_> Gregor: I could try and use the fancy Haskell dynamic linking stuff if you want
13:46:56 <elliott_> I'm not sure it'd work :P
13:47:48 <Gregor> elliott_: wtf is in this binary package.
13:47:51 <Gregor> I can't find any binaries.
13:48:06 * elliott_ SIGHS, says something about luddites.
13:48:11 * elliott_ downloads it himself to check.
13:48:23 <elliott_> Gregor: Oh
13:48:27 <elliott_> Gregor: The filesize limit will have got them
13:48:27 <elliott_> Duh
13:48:36 <Gregor> elliott_: I just downloaded it here.
13:48:56 <elliott_> Gregor: You can find the ghc shell script though, right?
13:48:59 <Gregor> # find . -name ghc | xargs file
13:49:00 <Gregor> ./ghc: directory
13:49:00 <Gregor> ./driver/ghc: directory
13:49:00 <Gregor> ./compiler/stage2/doc/html/ghc: directory
13:49:20 * elliott_ waits for the binary distribution to download here.
13:49:24 <CakeProphet> can someone explain what is going on here: http://images.4chan.org/b/src/1313761772927.jpg
13:49:25 <elliott_> Gregor: Why are you doing that as root
13:49:38 <Gregor> elliott_: 'cuz I rulz
13:49:53 <Patashu> CakeProphet that picture is...really attractive for some reason
13:49:53 <Patashu> >_<
13:50:03 <Gregor> CakeProphet: The world is becoming a better place.
13:50:21 <elliott_> God my connection is slow.
13:50:41 <CakeProphet> God will not answer your woes.
13:51:16 <elliott_> Gregor: So what if you multiplied the filesize limit by ten, WHAT IF :P
13:51:19 <CakeProphet> I kind of want a large framed version of this picture: http://images.4chan.org/b/src/1313761741129.jpg
13:51:34 <CakeProphet> it's just too beautiful for words.
13:53:04 <elliott_> Gregor: You will have your answer in FIVE SECONDS
13:53:54 <CakeProphet> (five seconds later...)
13:54:29 <elliott_> Gregor: compiler/stage[two]/build/ has a bunch of object files.
13:54:47 <Gregor> Yeah ... OBJECT FILES.
13:54:50 <elliott_> ghc-7.2.1/ghc/stage2/build/tmp/ghc-stage2 is ONE GHC :P
13:54:58 <Gregor> ...
13:55:03 <elliott_> Keyword one
13:55:05 <Gregor> This is the worst binary distribution EVER.
13:55:24 <elliott_> Gregor: That might be the one and only GHC :P
13:55:26 <elliott_> I'm just not sure
13:55:34 <elliott_> Gregor: It's not that bad, it just uses the same directory structure as the build does
13:55:41 <Gregor> WTF, you have to configure-make-install!
13:55:43 <elliott_> Which happens to be poorly-fitted
13:55:45 <elliott_> Yes... yes you do.
13:55:50 <elliott_> Which lets it support different bindirs etc.
13:55:51 <Gregor> What sort of binary distribution requires a make-install???
13:55:56 <elliott_> <elliott_> Which lets it support different bindirs etc.
13:55:58 <elliott_> Gregor: You don't need make
13:55:59 <elliott_> Just make install
13:56:08 <Gregor> What sort of a binary distribution ISN'T PREFIX INDEPENDENT?
13:56:14 <elliott_> Or do you want to write two pieces of install code, one for source and one for binary builds
13:56:22 <elliott_> Gregor: GHC has a bunch of spec files that aren't quite, IIRC
13:56:30 <Gregor> LAAAAAAAAME
13:56:43 <elliott_> Gregor: The Unix binary builds are for bootstrapping your own build, nothing else :P
13:56:43 <Gregor> OK, now to install it properly :P
13:57:02 <elliott_> Gregor: You're going to cheat me out of the opportunity to show off my leet HackEgo skillz?
13:57:06 <elliott_> Well, I guess I still get to do cabal-install.
13:57:21 <Gregor> `ghc
13:57:27 <elliott_> `ghc --version
13:57:28 <HackEgo> ghc: no input files \ Usage: For basic information, try the `--help' option.
13:57:29 <HackEgo> The Glorious Glasgow Haskell Compilation System, version 7.2.1
13:57:35 <elliott_> That worked.
13:57:41 <elliott_> `run ghc -e "print 99"
13:57:42 <Gregor> Here's the problem:
13:57:44 <Gregor> `which ghc
13:57:45 <HackEgo> ​<command line>: can't load .so/.DLL for: libgmp.so (libgmp.so: cannot open shared object file: No such file or directory)
13:57:46 <HackEgo> ​/opt/ghc/bin/ghc
13:57:49 <elliott_> <HackEgo> ​<command line>: can't load .so/.DLL for: libgmp.so (libgmp.so: cannot open shared object file: No such file or directory)
13:57:52 <elliott_> You want to solve that
13:57:54 <Gregor> Arghwtfbbq
13:57:58 <elliott_> `pwd
13:58:00 <HackEgo> ​/hackenv
13:58:04 <elliott_> Gregor: Dude, just --prefix=/hackenv/local
13:58:06 <elliott_> And then chown it all
13:58:11 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
13:58:29 <CakeProphet> what do you think the command "choad" should do?
13:58:36 <Gregor> elliott_: The problem is that the environment is cloned per `-command.
13:58:40 <elliott_> CakeProphet: Change a file's oad.
13:58:43 <Gregor> elliott_: Cloning an 800MB environment = lol.
13:58:46 <elliott_> Gregor: Ah.
13:59:02 <elliott_> Gregor: 832M/home/elliott/.cabal
13:59:06 <elliott_> Gregor: That might happen anyway :P
13:59:11 <Gregor> Welp, I'm not fixing this, I'm already on my way away so BAHEE
13:59:25 <elliott_> ;_;
14:01:12 <CakeProphet> elliott_: that just means you can use your hackego skillz
14:02:04 <elliott_> I'm not compiling gmp.
14:06:22 <CakeProphet> do it
14:11:18 <CakeProphet> hmm, the set of floating point numbers is countable isn't it?
14:13:02 <CakeProphet> and the difference between floating point numbers and real numbers is the infinite precision numbers such as 0.333.. and pi
14:15:09 <elliott_> <CakeProphet> hmm, the set of floating point numbers is countable isn't it?
14:15:12 <elliott_> they fit in the universe, so yes.
14:15:28 <elliott_> the set of floating point numbers of a certain bit width is of course finite.
14:17:03 <CakeProphet> so there's no one-to-one mapping of a physical quantity to the real numbers either.
14:20:14 <CakeProphet> aka the real numbers dont "fit in the universe"
14:21:05 -!- derrik has joined.
14:22:28 <elliott_> no shit
14:22:31 <elliott_> universe is finite qed
14:23:32 <CakeProphet> wo NuGet is pretty lame.
14:23:34 <CakeProphet> *wow
14:24:20 <CakeProphet> I need to install this: http://www.nuget.org/List/Packages/Selenium.RC
14:24:27 <CakeProphet> which apparently requires the nuget package manager
14:24:34 <CakeProphet> which apparently requires... visual fucking studio
14:27:59 <CakeProphet> I swear this is the last time I try to port .NET stuff to linux.
14:28:02 <CakeProphet> ever.
14:34:10 <Gregor> MURP
14:35:02 <CakeProphet> Master of Urban and Regional Planning
14:35:52 <CakeProphet> Mutation Under Realtime Pressure
14:36:39 <elliott_> :t forM_
14:36:39 <lambdabot> forall a (m :: * -> *) b. (Monad m) => [a] -> (a -> m b) -> m ()
14:36:46 <elliott_> :t forkIO
14:36:46 <lambdabot> Not in scope: `forkIO'
14:36:49 <elliott_> ?hoogle forkIO
14:36:49 <lambdabot> Control.Concurrent forkIO :: IO () -> IO ThreadId
14:37:38 <CakeProphet> elliott_: if you lost ghci on your system a good way to find would be to open your terminal and type sudo find / -name ghci
14:37:56 <elliott_> CakeProphet: my ghc doesn't have hoogle.
14:37:58 <CakeProphet> you may be asked to provide an administrator password. This is because sudo runs the command as root.
14:39:46 <CakeProphet> Muppet-like Universal Role Playing
14:40:09 <CakeProphet> elliott_: well yeah, but you wouldn't need it if you were just looking up the type of forkIO
14:40:17 <elliott_> CakeProphet: I'd have to remember the module it was in
14:40:22 <CakeProphet> ah okay.
14:40:57 <CakeProphet> by the way you should probably use STM as well
14:41:00 <CakeProphet> it is good for all purposes
14:42:58 <CakeProphet> I wonder why STM doesn't have a MonadIO instance..
14:43:10 <CakeProphet> I guess since it would be kind of terrible?
14:43:29 <CakeProphet> if liftIO = atomically
14:44:24 <elliott_> atomically does not have the right type for liftIO.
14:44:33 <elliott_> STM is not in IO, and of course it would break completely with an IO instance.
14:44:34 <CakeProphet> :t liftIO
14:44:34 <lambdabot> Ambiguous occurrence `liftIO'
14:44:34 <lambdabot> It could refer to either `Control.Monad.Error.liftIO', imported from Control.Monad.Error
14:44:34 <lambdabot> or `Control.Monad.Logic.liftIO', imported from Control.Monad.Logic
14:44:39 <elliott_> :t atomically
14:44:40 <lambdabot> Not in scope: `atomically'
14:44:46 <elliott_> liftIO :: (MonadIO m) => IO a -> m a
14:44:48 <elliott_> atomically :: STM a -> IO a
14:44:55 <CakeProphet> oh right.
14:45:24 -!- copumpkin has quit (Remote host closed the connection).
14:45:49 -!- copumpkin has joined.
14:46:39 <CakeProphet> question
14:46:43 <CakeProphet> I have a .jar
14:46:45 <CakeProphet> where should I put it?
14:47:01 <CakeProphet> /usr/lib/something?
14:47:51 <elliott_> depends :P
14:52:19 -!- zzo38 has joined.
14:56:11 -!- CakeProphet has quit (Ping timeout: 276 seconds).
14:57:45 -!- CakeProphet has joined.
14:57:45 -!- CakeProphet has quit (Changing host).
14:57:45 -!- CakeProphet has joined.
15:04:45 <elliott_> forM_ rendered $ \((x,y), rgb) -> do
15:04:45 <elliott_> pokeElemOff pixels (truncate (x*fromIntegral w) * w + truncate (y*fromIntegral h)) rgb
15:04:45 <elliott_> SDL.flip surface
15:04:49 <elliott_> How can that take any appreciable time at ALL X_X
15:08:34 <Gregor> Poklemoff
15:08:56 <elliott_> lol
15:08:56 <Gregor> <elliott_> I hate you.
15:09:32 <CakeProphet> what's great is that you just quote that at any point in a conversation with elliott
15:09:36 <CakeProphet> even if it wasn't said recently.
15:12:13 <Gregor> I was merely predicting (incorrectly) a response :P
15:13:05 <CakeProphet> <elliott_> CakeProphet: I hate you.
15:14:30 <CakeProphet> <CakeProphet> am happy to join with you today in what will go down in history as the greatest demonstration for freedom in the history of our nation.
15:14:34 <CakeProphet> +I
15:14:59 <CakeProphet> <CakeProphet> Five score years ago, a great American, in whose symbolic shadow we stand today, signed the Emancipation Proclamation. This momentous decree came as a great beacon light of hope to millions of Negro slaves who had been seared in the flames of withering injustice. It came as a joyous daybreak to end the long night of their captivity.
15:16:09 <Gregor> `quote CakeProphet
15:16:11 <HackEgo> 155) <CakeProphet> how does a "DNA computer" work. <CakeProphet> von neumann machines? <Phantom_Hoover> CakeProphet, that's boring in the context of DNA. <Phantom_Hoover> It's just stealing the universe's work and passing it off as our own. \ 156) <fungot> CakeProphet: reading herbert might be enlightening in one hand he held
15:19:47 -!- pingveno has quit (Ping timeout: 246 seconds).
15:22:49 <CakeProphet> nyannyannyan
15:31:38 <cheater> oom nama naraa---aaa-nyan
15:41:49 <Gregor> NYAN NYAN NYANNYAN NYAN NYANNYANNYANNYAN NYANNYAN NYAN NYAN NYANNYAN NYAN NYANYANYANYANYANYANYANYAN
15:43:33 -!- Taneb has joined.
15:47:37 -!- derrik has left.
15:55:06 <CakeProphet> awww yeah
15:55:23 <CakeProphet> hacking jar files = fun
16:04:36 <CakeProphet> wooow. this java class has 43 imports.
16:08:14 -!- sllide has quit (Read error: Connection reset by peer).
16:13:18 -!- Taneb has quit (Ping timeout: 268 seconds).
16:14:53 -!- sllide has joined.
16:28:15 <CakeProphet> uuuugh
16:28:38 * CakeProphet loves trying to explain why they're not going to get what they want.
16:29:08 <sllide> meh
16:29:14 <sllide> is it possible to access ring 0 in windows?
16:29:29 <sllide> even if it is a exploit
16:33:19 -!- oerjan has joined.
16:34:48 <CakeProphet> I wonder if this guy realizes that cacheing completely eliminates the problem he's inventing for himself.
16:34:53 <elliott_> CakeProphet: dude did you do my idea
16:34:58 <elliott_> just download to a /tmp file with http lib
16:35:01 <elliott_> then point webkit at that
16:35:02 <elliott_> tada
16:35:12 <elliott_> or even data: if you're lucky
16:35:12 <CakeProphet> yes, but it's not complete because of things he didn't specify until after I started working on it.
16:35:19 <elliott_> hahahaha
16:35:31 <CakeProphet> specifically he wants to be able to get canvas data
16:35:39 <elliott_> "I'm sure those stories on The Daily WTF aren't representative," they say
16:35:42 <elliott_> "Surely it can't be all bad"
16:35:51 <elliott_> "And I'm good at programming, so it sounds like easy money!"
16:35:55 <elliott_> THEN CTHULHU EATS THEIR SOULS
16:36:14 <CakeProphet> which requires javascript I believe, and a sensible DOM model
16:36:18 <CakeProphet> and file IO
16:36:28 <CakeProphet> which webkit# does not have.
16:36:36 <CakeProphet> SO
16:36:41 <CakeProphet> I may try using selenium.
16:36:42 <CakeProphet> wooo
16:36:57 <CakeProphet> what could go wrong.
16:37:11 <elliott_> awesome, the IE engine
16:37:16 <elliott_> i cant think of anything nicer
16:37:21 <elliott_> CakeProphet: but why not just bind to mshtml directly
16:37:27 <elliott_> if you're going down that route
16:37:37 <elliott_> oh hmm looks like selenium might not be ie-only nowadays
16:37:42 <fizzie> Try using that proprietaryish Awesomium thing. Though at least the open-source AwesomiumSharp bit didn't seem to have any sort of DOM access either.
16:38:02 <CakeProphet> selenium is a browser automation thing, I don't think it's IE-specific..
16:50:11 <oerjan> `addquote <Vorpal> elliott_, oh they are people known in the ruby community? <elliott_> Vorpal: Uh... you mean Hannah Montana? <Vorpal> elliott_, yeah. And Zed Shaw. Either they are that or they come from popular culture.
16:50:14 <HackEgo> 606) <Vorpal> elliott_, oh they are people known in the ruby community? <elliott_> Vorpal: Uh... you mean Hannah Montana? <Vorpal> elliott_, yeah. And Zed Shaw. Either they are that or they come from popular culture.
16:52:22 <oerjan> i should _maybe_ disclose that i have just the barest clue who hannah montana is, myself. now to wikipedia.
16:52:46 <elliott_> oerjan: famous ruby programmer from the show Hannah Montana and Zed Shaw
16:53:13 <oerjan> by "barest" i mean enough to know she's not a ruby programmer.
16:53:17 <elliott_> Zed Shaw is just an ordinary schoolkid... OR IS HE??? Secretly he performs as the hit singer ZED SHAW (in capitals). Hannah Montana saves the day by programming all his stage effects.
16:53:33 <elliott_> One day this show will become reality and humanity will have justified its existence.
16:54:32 <oerjan> `quote 601
16:54:34 <HackEgo> 601) <monqy> mmm these music samples are still so tasteful
16:54:39 <oerjan> `quote 602
16:54:41 <HackEgo> 602) <monqy> im sampling ultra hip holiday <monqy> hes the boogie woogie santa clause <monqy> switching to oktoberfest <monqy> yes i would love to shop to this
16:54:47 <oerjan> `quote 603
16:54:49 <HackEgo> 603) <monqy> im hungary too...but cnnot eat until hours
16:54:50 <oerjan> `quote 604
16:54:52 <HackEgo> 604) <monqy> i am out of all the fame loops <monqy> and the australien soap opera loops <monqy> so much loop / s omcuh
16:54:56 <oerjan> `quote 605
16:54:58 <HackEgo> 605) <Phantom_Hoover> The only happy dorf has a compassion stat of 0. <Phantom_Hoover> Well, 20, but it amounts to the same.
16:55:02 <elliott_> monqy was funny this morning and also i was tired
16:56:44 <elliott_> oerjan: so wait do you logread quotes now
16:59:05 <oerjan> um no it's just that we were only at 600 yesterday or so
16:59:08 <elliott_> oerjan: also my haskell program is really slow help thanks
16:59:31 <oerjan> ah performance, a thing i know little about.
16:59:52 <CakeProphet> just ask elliott_'s mom OOOOH SICK BURN.
17:00:04 <CakeProphet> >_> carry on.
17:00:06 <elliott_> oerjan: but i think its something to do with laziness??? or maybe just calling a function 250,000 times inherently takes multiple seconds in haskell??
17:00:46 <oerjan> i dunno
17:00:52 <elliott_> thx ur help
17:01:01 <oerjan> maybe you are recomputing something
17:01:08 <CakeProphet> I wonder if C# allows optional arguments to also be out arguments.
17:01:17 <elliott_> checkerboard :: Double -> Picture RGB
17:01:17 <elliott_> checkerboard n (x,y)
17:01:17 <elliott_> | even (floor x') /= even (floor y') = white
17:01:17 <elliott_> | otherwise = black
17:01:17 <elliott_> where (x', y') = (x/n, y/n)
17:01:18 <elliott_> is the function for what it's worth (pre-applied to n)
17:02:19 <oerjan> aha
17:02:44 <elliott_> well, also under a layer of
17:02:48 <elliott_> rotate :: Double -> Picture a -> Picture a
17:02:49 <elliott_> rotate r p (x,y) = p (x * cos r - y * sin r, x * sin r + y * cos r)
17:02:52 <elliott_> but it takes multiple seconds even without that
17:03:13 <elliott_> oerjan: i even... optimised my rendering loop after it calculates all the pixels... and that still takes like a second or two :(
17:03:16 <elliott_> forM_ rendered $ \((x,y), rgb) -> do
17:03:17 <elliott_> pokeElemOff pixels (truncate (x*fromIntegral w) * w + truncate (y*fromIntegral h)) rgb
17:03:18 -!- myndzi has joined.
17:03:19 <elliott_> im cry
17:03:32 <oerjan> ah rotate, otherwise i'd have suggested caching either x or y
17:03:36 <CakeProphet> "Can't specify a default value for the out parameter" baaaah
17:03:47 <elliott_> oerjan: well the idea is to be able to draw any Picture generically, so :D
17:04:03 <elliott_> oerjan: in fact the _idea_ is to draw like, at least thirty per second as an animation.
17:04:04 <Deewiant> checkerBoard n (x,y) = if ((==) `on` (even.floor.(/n))) x y then black else white
17:04:11 <elliott_> as opposed to one per every five years
17:04:27 <oerjan> elliott_: btw you can optimize it to odd (floor x' - floor y'), i think
17:04:31 <elliott_> Deewiant: Awesome, now it's harder to read and isn't even point-free; thanks
17:04:41 <Deewiant> I find that much easier to read
17:04:47 <elliott_> oerjan: I have my doubts that optimisation will do barely anything
17:05:08 <oerjan> ok
17:05:39 <CakeProphet> baaaah no optional out/ref WHAT DO
17:05:47 <oerjan> what happens if you inline the x' and y' definitions
17:05:48 <elliott_> Hmm, I could try and make it symbolic somehow and compile the images to a more efficient representation, but I refuse to believe that generating a 500x500 image from function calls has to take this long in Haskell
17:06:11 <Deewiant> And I assumed you wouldn't want the if' version anyway, and if' is needed to make it point-free
17:08:45 <elliott_> Hmph, RebindableSyntax doesn't affect guards
17:08:46 <oerjan> elliott_: i am somewhat suspicious of the way you pattern match into a tuple. that certainly makes things lazy, perhaps ghc doesn't even recognize x' is x/n
17:09:04 <CakeProphet> I just tried to do a perl-style one-line if in C#.....
17:09:11 <CakeProphet> DOESN'T WORK LIKE THAT.
17:09:20 <oerjan> you _can_ say where x' = x/n; y' = y/n you know
17:09:21 <CakeProphet> line if cond;
17:09:43 <elliott_> oerjan: ok, let me be more explicit: even the picture (const black) renders at a similar speed
17:10:08 <elliott_> i.e., much slower than instnt
17:10:09 <elliott_> instant
17:10:27 <elliott_> For what little it's worth
17:10:30 <elliott_> coords :: (Int, Int) -> [Point]
17:10:30 <elliott_> coords (w,h) = [ (fromIntegral x / (fromIntegral w - 1)
17:10:30 <elliott_> ,fromIntegral y / (fromIntegral h - 1))
17:10:30 <elliott_> | x <- [0..w-1], y <- [0..h-1] ]
17:10:30 <elliott_> render :: Picture RGB -> (Int, Int) -> [(Point,Word32)]
17:10:31 <elliott_> render pic = parMap rseq (\p -> (p, process (pic p))) . coords
17:10:33 <elliott_> where process (RGB r g b) = (fromIntegral r `shiftL` 16) .|. (fromIntegral g `shiftL` 8) .|. fromIntegral b
17:10:36 <elliott_> is how I'm rendering it
17:10:42 <elliott_> I don't know if the parMap helps, but it doesn't seem to hurt much :)
17:10:44 <oerjan> ok
17:11:47 <CakeProphet> cannot implicitly convert System.Diagnostics.Process to void
17:11:50 <elliott_> I'm secretly waiting for Deewiant to point to my obvious call to goSlow
17:11:50 <CakeProphet> but what if it COULD?
17:12:07 -!- calamari has joined.
17:12:41 <oerjan> way over my head i think
17:13:06 <CakeProphet> elliott_: it probably has something to do with that goSlow call.
17:13:13 <CakeProphet> ...how would one implement goSlow in Haskell?
17:13:41 <CakeProphet> would it be like ($) but slower?
17:13:48 <CakeProphet> or would it be like id but slower?
17:14:06 <oerjan> > let goSlow x = repeat x !! 10000000 in goSlow "test"
17:14:07 <lambdabot> "test"
17:14:17 <oerjan> > let goSlow x = repeat x !! 100000000 in goSlow "test"
17:14:18 <lambdabot> "test"
17:14:22 <oerjan> > let goSlow x = repeat x !! 1000000000 in goSlow "test"
17:14:26 <lambdabot> mueval-core: Time limit exceeded
17:14:32 <oerjan> that way :P
17:15:01 <CakeProphet> I guess there are infinitely many ways to write a slow id function.
17:15:27 <CakeProphet> you could even use unsafePerformIO to throw in some sleep calls, allowing program-specified waits.
17:16:22 <CakeProphet> what could go wrong?
17:17:31 <elliott_> can i have an exclamation mark
17:17:44 <elliott_> also an octhorprope
17:17:57 <oerjan> #!
17:18:03 <CakeProphet> !!!!!?
17:18:08 <elliott_> !haskell {-# LANGUAGE RebindableSyntax #-}
17:18:11 <CakeProphet> what the hell is an octhorprope
17:18:17 <EgoBot> ​/tmp/input.24616.hs:1:13: unsupported extension: RebindableSyntax
17:18:18 <elliott_> !haskell {-# LANGUAGE RebindableSyntax #-} main = print "help"
17:18:22 <elliott_> nooooooooooooooooOOOoooooooOOOOoooooOOooooOOoooooo
17:18:22 <EgoBot> ​/tmp/input.24674.hs:1:13: unsupported extension: RebindableSyntax
17:18:40 <oerjan> elliott_: EgoBot's ghc is too old
17:18:48 <CakeProphet> `ghc
17:18:51 <HackEgo> ghc: no input files \ Usage: For basic information, try the `--help' option.
17:18:58 <oerjan> use NoImplicitPrelude
17:19:16 -!- myndzi has quit (Read error: Operation timed out).
17:19:23 <oerjan> (didn't elliott_ teach me this just the other day?)
17:20:02 <elliott_> i think so but i doubt it can do what i want
17:20:07 <elliott_> (overload ifthenelse)
17:20:09 <oerjan> oh HackEgo also has ghc now?
17:20:15 <oerjan> `ghc --version
17:20:17 <HackEgo> The Glorious Glasgow Haskell Compilation System, version 7.2.1
17:20:19 <elliott_> yes but it doesn't work
17:20:20 <elliott_> no gmp yet
17:20:30 <elliott_> i'm planning on getting cabal-install set up once gmp is in
17:20:30 <oerjan> well that was new
17:20:34 <elliott_> yes, new as in hours new
17:20:48 <elliott_> /home/elliott/Code/airy/foo.hs:7:7:
17:20:48 <elliott_> GHC internal error: `ifThenElse' is not in scope during type checking, but it passed the renamer
17:20:48 <elliott_> tcg_type_env of environment: []
17:20:48 <elliott_> tcl_env of environment: []
17:20:48 <elliott_> In the expression: if False then 9 else 0
17:20:49 <elliott_> In an equation for `foo': foo = if False then 9 else 0
17:20:51 <elliott_> Failed, modules loaded: none.
17:20:53 <elliott_> help
17:21:20 <elliott_> oh I need to give ifThenElse a type sig
17:21:35 <elliott_> foo = if () then 9 else 0
17:21:37 <elliott_> oerjan: vlaid ghce,
17:21:49 <oerjan> vlaid the impaler
17:23:23 <elliott_> /home/elliott/Code/airy/foo.hs:11:5: Not in scope: `>>'
17:23:23 <elliott_> /home/elliott/Code/airy/foo.hs:12:5: Not in scope: `otherwise'
17:23:23 <elliott_> /home/elliott/Code/airy/foo.hs:12:5: Not in scope: `>>'
17:23:23 <elliott_> help my guards use >>?
17:23:58 <oerjan> do syntax desugars to it
17:24:02 <elliott_> bar
17:24:02 <elliott_> | False = 9
17:24:02 <elliott_> | otherwise = 0
17:24:03 <elliott_> that's not do
17:24:37 <oerjan> well that's where i'd expect >> from
17:24:57 <oerjan> you can use True instead of otherwise
17:25:13 <oerjan> although wouldn't that also be out of scope...
17:25:39 <elliott_> oerjan: um how would any of that use >>?
17:25:44 <elliott_> oh desugaring to calls to guard?
17:25:52 <elliott_> wait no, that wouldn't work
17:26:08 <elliott_> but I don't see how guards would use >>?
17:26:09 <oerjan> er can you change the meaning of guards?
17:26:14 <elliott_> no.
17:26:18 <elliott_> well
17:26:20 <elliott_> that is what i am trying to do
17:26:21 <oerjan> elliott_: er are you sure that's all you're compiling?
17:26:25 <elliott_> ffs
17:26:26 <elliott_> yes
17:26:31 <elliott_> its telling me about (>>) missing on those lines
17:26:44 <oerjan> hm
17:26:50 <oerjan> is that the whole file?
17:26:57 <elliott_> -# LANGUAGE RebindableSyntax #-}
17:26:58 <elliott_> import Prelude (Bool(..), fromInteger)
17:26:58 <elliott_> ifThenElse :: b -> a -> a -> a
17:26:58 <elliott_> ifThenElse _ x _ = x
17:26:58 <elliott_> foo = if False then 9 else 0
17:26:58 <elliott_> bar
17:27:00 <elliott_> | False = 9
17:27:02 <elliott_> | True = 0
17:27:04 <elliott_> without bar, all compiles fine
17:27:07 <elliott_> lines about missing (>>) are on the two guard lines of bar
17:27:58 <oerjan> huh
17:28:39 <oklopol> elliott_ are you in a university yet
17:28:40 <oerjan> maybe it does desugar to something with >>. what if you remove the False line?
17:29:30 <elliott_> oklopol: nope
17:29:41 <elliott_> oerjan: same error, just on the one guard line
17:29:43 <elliott_> ill ask ghc channel
17:30:15 <oklopol> elliott_: why aren't you in a university yet
17:31:00 <elliott_> oklopol: various reasons
17:31:29 <oklopol> could you tell me the least relevant of those
17:31:30 <Gregor> Transact-SQL, Ada, and some crazy IBM language called RPG (dating from 1959) are all in Tiobe's top 20 programming languages list.
17:32:16 <elliott_> X-D
17:32:19 -!- Taneb has joined.
17:32:21 <elliott_> Well, Ada I can believe.
17:32:30 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
17:32:45 <Taneb> Ada Byron, Countess of Lovelace?
17:32:47 <Gregor> I didn't mention that Pascal's there, because I can believe it :P
17:34:50 <oerjan> always trust a lady
17:35:16 -!- Vorpal has joined.
17:35:16 <oerjan> as far as you can throw her
17:35:32 <oerjan> also, throwing ladies is not advisable
17:36:16 <oklopol> was that a pun on trust vs thrust?
17:36:45 <oerjan> no.
17:36:53 <oklopol> because i totally don't get it
17:36:54 -!- calamari has quit (Quit: Leaving).
17:37:08 <oerjan> it was a pun on a known phrase.
17:37:16 <Gregor> Not known to oklopol, obviously.
17:37:20 <oklopol> obviously
17:37:34 <oklopol> well????
17:37:38 <Gregor> But then, I couldn't throw oklopol particularly far anyway *shrugs*
17:39:05 <oerjan> yeah oklopol is so untrustable
17:39:21 <oklopol> i don't get it
17:40:19 <Gregor> oklopol: That is our intent :P
17:40:27 <oklopol> i am so confuzzled
17:40:50 <oklopol> i'm so confused i'm having a question mark shaped erection
17:40:52 <elliott_> oklopol's such a famous bisexual
17:40:57 <elliott_> that's why we shouldn't throw him far.
17:41:53 <oerjan> http://idioms.thefreedictionary.com/I+wouldn't+trust+as+far+as+I+could+throw
17:41:57 <oerjan> hth
17:42:16 <elliott_> oerjan: YUOR EURINED IT
17:42:35 <oerjan> i'm such a euronous person
17:42:42 <oklopol> ohh
17:42:52 <oklopol> i think i've heard that, and i totally get it
17:43:01 <oklopol> well i mean not ALL of it
17:48:29 <elliott_> MAIN MAIN 1 0 0.0 0.0 100.0 100.0
17:48:31 <elliott_> main Main 340 2 5.3 0.0 100.0 100.0
17:48:31 <elliott_> draw Main 341 1 5.3 0.0 94.7 100.0
17:48:31 <elliott_> render Main 342 1 63.2 67.9 89.5 100.0
17:48:32 <elliott_> picture Main 345 250000 0.0 0.0 0.0 0.0
17:48:35 <elliott_> coords Main 343 1 26.3 32.1 26.3 32.1
17:48:38 <elliott_> aha
17:48:42 <elliott_> oerjan: looks like coords isn't doing me much good
17:50:33 <CakeProphet> man this guy sure does waste a lot of time with proof of concepts.
17:50:45 <CakeProphet> oh well, as long as I get paid for them. :P
17:51:32 <elliott_> oerjan: meanwhile, turns out that turning on optimisation makes things a lot better :D
17:51:55 <oerjan> you don't say
17:52:07 <elliott_> picture Main 344 250000 5.7 2.3 88.6 83.8
17:52:07 <elliott_> checkerboard Main 349 249999 57.1 71.7 57.1 71.7
17:52:08 <elliott_> rotate Main 345 250000 25.7 9.8 25.7 9.8
17:52:20 <elliott_> and
17:52:21 <elliott_> render Main 342 1 5.7 16.2 94.3 100.0
17:52:23 <elliott_> ok this is much better
17:57:40 <quintopia> what are you working on elliott
17:58:50 <oklopol> he could still be finland's youngest phd ever
17:59:04 <oklopol> but no, he's haskellbating
17:59:15 <oklopol> all day long
18:01:50 <Taneb> Who are we talking about?
18:02:06 <oklopol> anyone who's young
18:02:30 <Taneb> I don't haskellbate
18:02:35 <Taneb> I pretend to to look cool
18:02:37 <oklopol> that's what they all say
18:03:50 <oklopol> falsely admit they pretend to to look cool so that they'd not seem cool but actually do it but are ashamed of being cool.
18:03:52 <elliott_> quintopia: a thing
18:04:06 <elliott_> oklopol: aren't you going to be finland's youngest phd ever first
18:04:13 <oklopol> oh i'm way late
18:04:16 <oklopol> he was 21
18:04:41 <quintopia> elliott_: you dont trust me? :(
18:04:45 <oklopol> probably i won't even be the youngest phd in our department
18:04:45 <Phantom_Hoover> You can't be Finland's youngest PhD, I'm Finland's youngest PhD.
18:05:26 <oklopol> break the record i mean, i certainly will be the youngest until mister x phd's up
18:06:10 <oerjan> Ph. D. Hoover
18:06:16 <oklopol> if i wanted to, i guess i could make a low quality phd thesis with the results i have now and possibly break the record for math
18:06:33 <oklopol> the 21yo guy was in philosophy, so it doesn't really count
18:07:49 <oerjan> philosophers don't count, that's far too concrete for them
18:08:57 <oklopol> ^
18:09:50 <oerjan> except bertrand russell, who managed to get to 1+1=2
18:10:25 <elliott_> oerjan: well it is now fast enough to dispaly a very choppy rotating checkerboard
18:10:42 <elliott_> interestingly the pointer manipulation seems to be taking all the time rather than the renderin
18:10:43 <elliott_> g
18:10:54 <oklopol> well fuck
18:10:54 <elliott_> or, hmm
18:10:56 <elliott_> perhaps about equal
18:11:02 <oklopol> some guy just did a math phd at 20
18:11:06 <elliott_> oklopol: lmao
18:12:41 <elliott_> oerjan: awesome, my program segfaults when I ctrl+C it _only_ when profiling is turned on
18:13:13 <oerjan> most reproducable
18:13:17 <oklopol> if only i'd met a single person in my life that wasn't an idiot, i could've skipped elementary and high school and made something of myself
18:13:23 <oklopol> life so hard
18:13:44 <elliott_> oerjan: wait you said odd (floor x' - floor y') would be an optimisation right?
18:13:52 <elliott_> oerjan: I have this hunch that truncate is faster than floor
18:13:52 <oerjan> actually not sure
18:14:12 <elliott_> ...but I shouldn't try to optimise the image itself, because if it can't handle a slightly imperfect checkerboard... :D
18:15:32 <oerjan> > [truncate, floor, round, ceiling] <*> [-2.7, -2.2, 1.3, 3.8]
18:15:33 <lambdabot> [-2,-2,1,3,-3,-3,1,3,-3,-2,1,4,-2,-2,2,4]
18:16:42 <oerjan> i dunno, probably CPU dependent?
18:17:09 <oerjan> or wait truncate should be just a bitshift
18:18:10 <oerjan> but it's the same for positives
18:20:20 <oerjan> interestingly odd (truncate x) could probably be calculated directly from the bit pattern of x
18:20:37 <oerjan> without actually doing a full conversion
18:22:58 <elliott_> running out of optimisation opportunities, here...
18:23:09 <elliott_> render :: Picture RGB -> (Int, Int) -> [Word32]
18:23:09 <elliott_> render pic (w,h) =
18:23:09 <elliott_> withStrategy (parListChunk 128 rseq)
18:23:09 <elliott_> [ pic p
18:23:09 <elliott_> | x <- [0..w'], y <- [0..h']
18:23:12 <elliott_> , let p = x/w' :@ y/h' ]
18:23:14 <elliott_> where !w' = fromIntegral w - 1 :: Double
18:23:16 <elliott_> !h' = fromIntegral h - 1 :: Double
18:23:18 <elliott_> hmm
18:23:20 <elliott_> let loop _ [] = SDL.flip surface
18:23:22 <elliott_> loop p (x:xs) = poke p x >> loop (p `plusPtr` sizeOf x) xs
18:23:24 <elliott_> loop pixels rendered
18:23:30 <elliott_> if GHC isn't smart enough to avoid consing the list up in the first place, then I could save by folding render into draw
18:24:22 <oerjan> i somehow doubt you can avoid consing a list and parallelizing its evaluation simultaneously
18:24:32 <elliott_> oh yeah :P
18:24:59 <elliott_> oerjan: otoh you can still chunk that stuff trivially
18:25:09 <elliott_> because it's just chunking over the range of coordinates, essentially
18:26:07 <elliott_> oerjan: of course the fact that I'm managing about four frames per second should be a clue that there is _no_ way this is going to work as a smooth animation solution
18:26:17 -!- myndzi has joined.
18:26:20 <oerjan> tricky :P
18:26:23 <elliott_> since i'm running out of tuning :P
18:26:59 <elliott_> oerjan: looking at my standard Blatantly Ignored But Almost Directly Identical Prior Work, looks like Conal's Pan takes the symbolic route and compiles things to a less stupid representation for a procedural image than a haskell function
18:27:22 <oerjan> isn't one supposed to send polygons or something for OpenGL to handle these days, anyway
18:28:43 -!- Sgeo_ has joined.
18:28:49 <oerjan> if you s/Work/Opus/, you get a nifty acronym.
18:29:04 -!- augur_ has joined.
18:29:27 -!- shachaf_ has joined.
18:30:04 -!- sebbu2 has joined.
18:30:04 -!- sebbu2 has quit (Changing host).
18:30:05 -!- sebbu2 has joined.
18:30:15 -!- augur has quit (Disconnected by services).
18:30:21 -!- augur_ has changed nick to augur.
18:31:20 -!- Phantom__Hoover has joined.
18:31:42 -!- elliott__ has joined.
18:32:38 -!- sllide has quit (Read error: Connection reset by peer).
18:32:55 -!- jix_ has joined.
18:35:58 -!- atehwa_ has joined.
18:37:17 -!- boily has quit (*.net *.split).
18:37:17 -!- Phantom_Hoover has quit (*.net *.split).
18:37:17 -!- atehwa has quit (*.net *.split).
18:37:23 -!- sebbu has quit (*.net *.split).
18:37:23 -!- MDude has quit (*.net *.split).
18:37:23 -!- variable has quit (*.net *.split).
18:37:23 -!- elliott_ has quit (*.net *.split).
18:37:23 -!- jix has quit (*.net *.split).
18:37:23 -!- Sgeo has quit (*.net *.split).
18:37:23 -!- rodgort has quit (*.net *.split).
18:37:23 -!- shachaf has quit (*.net *.split).
18:37:23 -!- sebbu2 has changed nick to sebbu.
18:38:34 -!- oerjan has quit (Quit: leaving).
18:40:41 -!- rodgort has joined.
18:45:48 <elliott__> hmm... I wonder what I should actuall ycompile it t o
18:53:13 <elliott__> im bad at program :(
18:54:46 -!- Taneb has quit (Ping timeout: 264 seconds).
19:03:29 <elliott__> render Main 64.8 94.3
19:03:29 <elliott__> checkerboard Main 13.3 0.0
19:03:30 -!- boily has joined.
19:03:31 <elliott__> well that's new...
19:04:00 <elliott__> finally I have micro-optimised everything to the point where the simple iteration takes up all the time :)
19:05:08 <elliott__> copumpkin: a Haskell program isn't truly optimised until defocusing your eyes produces a sea of #, right? I gather you're the expert
19:06:26 -!- Taneb has joined.
19:08:37 <elliott__> fizzie: The pixels pointer in an SDL surface can change, right?
19:08:42 <elliott__> (Not what it points to; the pointer itself.)
19:09:53 <fizzie> Yes.
19:10:15 <fizzie> Though if it's a software surface, I'd say it's very unlikely to.
19:10:25 <elliott__> draw surface (w,h) = unsafePerformIO $ do
19:10:25 <elliott__> pxs <- SDL.surfaceGetPixels surface
19:10:25 <elliott__> let pixels = castPtr pxs :: Ptr Word32
19:10:25 <elliott__> return $ \picture -> do
19:10:26 <elliott__> UN-SAFEHTY
19:10:29 <copumpkin> elliott__: that's right
19:10:35 <elliott__> copumpkin: Then I'm not done yet.
19:10:50 <elliott__> copumpkin: I CAN turn my super-micro-optimised six frames per second into thirty, dammit!
19:10:55 <fizzie> If it's a hardware one, it might easily be a different pointer between each Lock/UnlockSurface.
19:11:11 <elliott__> fizzie: A software surface is going to be more speedy with regards to poking excessively at its pointers, right?
19:11:23 <fizzie> Yes, probably.
19:11:29 <fizzie> Also you don't need to lock it.
19:11:53 <elliott__> Hmm, I might actually be getting something like eight frames a second.
19:12:03 <elliott__> copumpkin: You wouldn't even BELIEVE the kind of rotating checkerboards I'm stylin'.
19:13:10 <copumpkin> :O
19:13:11 <copumpkin> nice
19:13:53 <elliott__> copumpkin: There's only ONE weird inaccuracy causing a duplicated column of some sort!
19:13:58 <elliott__> It only uses ALL YOUR CPU!
19:14:05 <elliott__> And it's only INCREDIBLY UGLY AND ALIASED!
19:14:09 <elliott__> EIGHT
19:14:10 <elliott__> FRAMES
19:14:10 <elliott__> PER
19:14:12 <elliott__> SECOND!!!!!!!!!!!!!!!!!
19:15:54 -!- ais523 has joined.
19:16:46 <elliott__> hi ais523
19:16:56 <elliott__> im breaking new barriers in animation, pushing a whole eight frames per second in PURE SOFTWARE
19:17:02 <ais523> heh
19:17:21 <elliott__> needs more optimisation :(
19:18:26 <ais523> hmm, it seems that half of my work in TAEB is running it through a profiler and optimising the inner loop until it isn't the inner loop any more
19:18:40 <ais523> and then replacing the whole algorithm once the inner loop seems to be perfectly written but is still taking too long anyway
19:20:48 <Vorpal> elliott__, still doing that SDL thingy btw?
19:21:00 <elliott__> Vorpal: yes
19:21:12 <elliott__> ais523: you still work on TAEB?
19:21:29 <Vorpal> ais523, how can TAEB take too long? It is turn based. As long as it isn't taking like several minutes per move it is acceptable!
19:21:41 <ais523> Vorpal: it gets boring waiting for it
19:21:51 <Vorpal> hm. Okay
19:21:51 <elliott__> `addquote <Vorpal> ais523, how can TAEB take too long? It is turn based. As long as it isn't taking like several minutes per move it is acceptable! <ais523> Vorpal: it gets boring waiting for it
19:21:53 <HackEgo> 607) <Vorpal> ais523, how can TAEB take too long? It is turn based. As long as it isn't taking like several minutes per move it is acceptable! <ais523> Vorpal: it gets boring waiting for it
19:22:00 <ais523> TAEB::AI::Planar seems to range between 3 move/s and 3 s/move at the moment
19:22:03 <Vorpal> elliott__, how is that funny?
19:22:10 <ais523> with the occasional move taking something like 12 seconds because it's flushing caches
19:22:16 <elliott__> Vorpal: basing your entire development methodology around getting a bit bored debugging is hilarious
19:22:28 <elliott__> You're just not high-class enough to appreciate the fine,subtle humour
19:22:31 <ais523> elliott__: well, /someone/ has to develop TAEB, and nobody else is
19:22:37 <elliott__> [asterisk]fine, subtle
19:22:51 <Vorpal> ais523, anyway throw better hardware at it.
19:23:31 <elliott__> hmm... I think I can avoid making the entire infrasturcture symbolic, which is nice
19:23:37 <elliott__> only the _time_ parameter has to be symbolic
19:23:40 <Vorpal> ais523, you are the only developer of it?
19:23:45 <elliott__> I think. Don't hold me to this.
19:23:51 <ais523> Vorpal: the only active developer of it
19:23:53 <elliott__> they just need to be pictures of _symbolic_ colours
19:23:57 <Vorpal> elliott__, so any luck with the SDL thing? Managed to make it fast yet?
19:24:02 <elliott__> so an animation is TimeE -> Picture (RGBE)
19:24:03 <ais523> something like ten people have worked on it at some point or other
19:24:06 <elliott__> where E suffix denotes symbolic
19:24:22 <elliott__> Vorpal: Well, it gets eight frames per second where previously it got something like five seconds per frame.
19:24:26 <elliott__> So I'm getting there.
19:24:34 <Vorpal> elliott__, what is it exactly anyway
19:24:37 <elliott__> I think I can short-circuit all the performance issues with this simple symbolic change.
19:24:48 <Vorpal> elliott__, some sort of generate-random images?
19:24:57 <Vorpal> s/m i/m-i/
19:25:02 -!- invariable has joined.
19:25:05 <elliott__> Vorpal: Well, the end goal is simple functional two-dimensional games programming.
19:25:25 <elliott__> It's... going to take some work. But animations are a good start; they're just games with a very simple input scheme.
19:25:36 <Vorpal> elliott__, you mean, you are writing an abstraction on top of the SDL bindings on top of SDL?
19:25:37 <Vorpal> okay
19:25:41 <elliott__> No?
19:25:51 <Vorpal> elliott__, it sounded like you were making a library?
19:25:51 <elliott__> Not everything using something is an abstraction on top of it.
19:26:03 <elliott__> Vorpal: It's more ... dainty than that.
19:26:05 <elliott__> More like a sandbox.
19:26:22 <Vorpal> elliott__, sounds grandiose.
19:26:30 <elliott__> Quite the opposite.
19:26:38 <Vorpal> oh?
19:26:54 <Vorpal> elliott__, so will it be a game in itself, or something for games to use?
19:27:10 <elliott__> Neither, really. I don't expect it to scale beyond Tetris.
19:27:21 <elliott__> It's a toy. A hack. Whatever.
19:27:26 <Vorpal> elliott__, ah.
19:28:05 <Vorpal> elliott__, nothing that Crysis 3: Flatland will use then? ;)
19:28:24 <elliott__> Nor Elliottcraft.
19:28:32 <elliott__> This is just a silly distraction.
19:28:49 <Vorpal> ah
19:28:51 <elliott__> If I'm not careful, I might even learn something.
19:28:57 <Vorpal> heh
19:29:40 <elliott__> Hmm, I fear my thoughts about containing the symbolicness may be right -- it's going to infect every part that you actually want to depend on the time, which will end up being more or less everything.
19:29:56 <elliott__> For instance if you want a rotation based on time then the thing you're rotating must take symbolic coordinates.
19:30:43 -!- invariable has changed nick to variable.
19:32:34 <elliott__> And anyway even if I do make it symbolic it's not at all clear what to compile it to.
19:32:56 <elliott__> I suppose I could speed up the checkerboard by doing some sort of RLE to draw boxes :-)
19:34:31 <ais523> are you drawing a pixel at a time at the moment?
19:34:49 <ais523> see, a sensible abstraction should probably map onto operations that the hardware knows how to optimise
19:34:56 <elliott__> ais523: there's not many other options when your semantic model of an image is (Point -> RGB)
19:35:07 <elliott__> And shut up, it's elegant ;-)
19:35:14 <elliott__> If I did it symbolically I could be much smarter
19:35:27 <elliott__> But then it'd start looking like an actual compiler.
19:35:31 <elliott__> Micro-optimisation is much more fun than that.
19:35:39 <elliott__> Hey, it got me from five seconds per frame to eight frames per second.
19:35:53 <ais523> the usual method is to use a mutable memory array, and just blit it onto the screen when necessary
19:36:15 <elliott__> ais523: I'm doing things in a nice functional manner:
19:36:19 -!- boily has quit (Ping timeout: 246 seconds).
19:36:22 <elliott__> checkerboard :: Double -> Picture RGB
19:36:22 <elliott__> checkerboard n (x :@ y)
19:36:23 <elliott__> | even x' /= even y' = white
19:36:23 <elliott__> | otherwise = black
19:36:23 <elliott__> where x' = truncate (x/n) :: Int
19:36:23 <elliott__> y' = truncate (y/n) :: Int
19:36:25 <elliott__> rotate :: Double -> Picture a -> Picture a
19:36:27 <elliott__> rotate r p = \(x :@ y) -> p (x*c - y*s :@ x*s + y*c)
19:36:29 <elliott__> where !c = cos r
19:36:31 <elliott__> !s = sin r
19:36:36 <ais523> oh, your problem is probably on the Haskell side
19:36:43 <ais523> where you have to call the function for every pixel
19:36:56 <elliott__> ais523: Well, it seems to actually get completely inlined
19:37:15 <elliott__> GHC is apparently producing a program specialised entirely for drawing stupid rotated checkerboards with a certain screen width and height
19:37:27 <elliott__> there's basically one thing I can actually optimise left
19:37:30 <elliott__> render :: Picture RGB -> (Int, Int) -> [Word32]
19:37:30 <elliott__> render pic (w,h) =
19:37:30 <elliott__> withStrategy (parListChunk 128 rseq)
19:37:30 <elliott__> [ pic (x :@ y) | x <- [0, 1/w' .. 1], y <- [0, 1/h' .. 1] ]
19:37:30 <elliott__> where !w' = fromIntegral w - 1 :: Double
19:37:30 <elliott__> !h' = fromIntegral h - 1 :: Double
19:37:42 <elliott__> whether by rolling it into the pointer-poking loop, or fiddling with the parallelisation, or I don't even know
19:52:24 -!- boily has joined.
19:58:05 <elliott__> ais523: I was thinking I'd implement scapegoat sometime, although I've been thinking about that a lot of things recently, I think I might be exponentially exploding in number of projects before most of them collapse, oops
19:58:10 <elliott__> hth
19:58:30 <ais523> elliott__: something like that's been happening to me too
19:58:40 <ais523> the solution is to put your projects on a queue, that way they all get done eventually
19:58:47 <ais523> as opposed to a stack where they typically don't
19:58:54 <elliott__> ais523: that only works if you can force yourself to work on A rather than B at any given moment
19:59:03 <ais523> well, you work on what you want to work on
19:59:09 <elliott__> this is also known as "basic time management", or "a completely vital skill for doing anything in life"
19:59:15 <ais523> but if you're not sure what you want to work on, you work on whatever people are bugging you most to work on
19:59:15 <elliott__> i lack it utterly
19:59:19 <elliott__> ais523: heh
19:59:33 <elliott__> usually when I'm not sure what I want to work on I don't feel like coding at all
20:00:21 <elliott__> I could have the thing blocking Elliottcraft (the GPipe patch) probably done within a few hours, but it hasn't popped up as something that sounds like fun for a while, so it hasn't been done yet, oops
20:00:37 <elliott__> meanwhile I sit here microoptimising this stupid thing
20:01:33 <elliott__> ais523: It's kind of worrying that I seem to have invented scapegoat twice in quick succession and neither time as a version control system within the past few days, though
20:01:42 <ais523> that just shows it's a good idea
20:02:06 <ais523> I think the people behind darcs had the same idea, but didn't go all the way
20:02:31 <elliott__> ais523: but version control systems aren't supposed to be package managers, service managers and build systems!
20:02:35 <elliott__> wait, that's _three_ times! aieeeeeeeeeeeeeeeee
20:03:01 * elliott__ starts ripping off chunks of skin in a rabid attempt to get the Featheroid off him
20:03:09 <elliott__> it may already be too late
20:03:18 <ais523> I think it's a sign that shows that something's well-designed if it's usable in a range of contexts, apart from those it was designed for
20:03:38 <elliott__> ais523: the question is, can you do it with only one implementation:)
20:03:54 <elliott__> [asterisk]you do [asterisk]implementation :)
20:03:57 <augur> i wonder if there is a dual to CAs
20:04:08 <elliott__> augur: continuous non-local systems? :P
20:04:30 <augur> elliott__: :)
20:04:42 <augur> see i was thinking
20:04:58 -!- Taneb has quit (Ping timeout: 240 seconds).
20:05:02 <augur> CAs have the odd property that they have a uniquely determined future, branching past, and no real reversability
20:05:04 <augur> (in general)
20:05:15 <elliott__> ais523: hmm, a good version control system is what I value most out of those four things, but unfortunately is the thing that causes the most interaction problems
20:05:25 <augur> the physical word is the opposite: a uniquely determined past, branching future, and full reversability
20:05:40 <augur> and so im curious if there is a dual to CAs that's like this
20:05:46 <elliott__> i.e. you can use whatever service manager you want and nobody gives a shit, if you use your own package manager then nobody else has to care, if you use your own build system I guess it'll inconvenience people who want to use or work on your stuff but it's not insurmountable
20:05:59 <elliott__> but using a completely new VCS wipes out a whole common toolchain
20:06:10 <Vorpal> <augur> and so im curious if there is a dual to CAs that's like this <-- a physics simulator?
20:06:31 <augur> Vorpal: except i dont mean that, obviously :|
20:06:40 <augur> dual to CAs not just conceptually dual in those respects
20:06:52 <Vorpal> hm
20:07:00 <augur> like, if you could have a definition of CAs which, when the dual is taken, gives you something with those properties
20:07:13 <augur> or are those properties emergent and not easily reified
20:07:18 <elliott__> ais523: on the other hand, that does present the wonderful opportunity to redo the whole toolchain but better :P
20:07:40 <ais523> I don't see why redoing a VCS wipes out a toolchian
20:07:43 <ais523> *toolchain
20:07:48 <ais523> I see VCSes as mostly interchangeable
20:09:07 -!- Taneb has joined.
20:09:08 <Vorpal> what was the name of that vcs with a rat or mouse as the logo
20:09:12 <Vorpal> mono-something iirc?
20:09:28 <Vorpal> whatever happened to it?
20:09:51 <elliott__> Vorpal: monotone
20:09:57 <elliott__> Vorpal: nobody uses it because it's slow and also really weird
20:10:01 <Vorpal> ah
20:10:04 <Vorpal> elliott__, weird how?
20:10:38 <elliott__> ais523: That's probably true for you, but (and I ask you to suspend your blanket objections to GitHub in the name of seeing things as everyone else sees them), services like GitHub basically build an entire smooth version control/merging methodology around the VCS
20:11:02 <ais523> elliott__: doesn't this just add support for my objection to GitHub?
20:11:07 <ais523> in that it locks you in for no real reason at all?
20:11:20 <CakeProphet> locks you into a good thing, yes.
20:11:23 <ais523> there's no reason it should be specific to one VCS, or even one website
20:11:25 <elliott__> Obviously it's nothing unreplicatable, but a corporation with a good product with a few years head start is a hard thing to beat
20:11:32 <elliott__> ais523: no, GitHub is definitely git-specific
20:11:42 <elliott__> ais523: I agree that it should be more decentralised and open
20:11:42 <ais523> there's no inherent reason why it should be, though
20:11:47 <elliott__> ais523: but it doesn't matter /what/ it does to your objection
20:11:48 <Vorpal> elliott__, I find VCSes interchangeable too.
20:12:06 <elliott__> I don't care about your objection right now, I'm just trying to explain why VCSes are not really interchangable for most people
20:12:13 <ais523> elliott__: what you're effectively saying is "this is a bad idea because there's an existing product that's good enough", which is a plausible argument
20:12:20 <elliott__> ais523: No?
20:12:22 <ais523> but one that would stop all progress if people didn't ignore it from time to time
20:12:44 <elliott__> ais523: I'm just saying that "you have to replicate [large, polished product] and this serves as a communications barrier"
20:12:47 <ais523> ah, I see
20:13:00 <CakeProphet> huh, weird, so I'm calling a method called get_entire_page_screenshot
20:13:13 <elliott__> because if you speak GitHub, then collaborating with someone who uses decentralised-sg-hub involves learning the new language
20:13:23 <elliott__> unless you literally directly clone GitHub, which would be lame
20:13:24 <CakeProphet> you give a filename and it's supposed to take a screenshot of the browser and write it to that file.
20:13:43 <CakeProphet> I gave it a temp file and it writes a bunch of small tempfilename-N files, where n is an integer
20:13:52 <CakeProphet> WHY
20:13:55 <elliott__> ais523: I think a GitHub-like service definitely suffers if it doesn't take advantage of one specific VCS, though
20:13:58 <ais523> elliott__: well, you'd provide the same operations GitHub did (pull request, for instance), as they're useful
20:14:21 <CakeProphet> ais523: you should put up a project request on one of the freelancing sites I frequent
20:14:23 <elliott__> indeed, but the UI will always be different, and more importantly, it's a separate thing to learn
20:14:25 <CakeProphet> "GitHub clone needed!"
20:14:46 <elliott__> like, if you contribute to thirty projects on github and you have some minor fixes to another one but you have to learn how to use decentralised-sg-hub to do it, you're quite likely to just not bother
20:15:11 <elliott__> I still think it's worth it, but it's hard to deny that for most people and most situations, a VCS barrier is one of the biggest ones
20:15:14 <ais523> well, it should be pretty obvious, I imagine, especially if you're already used to a similar project
20:15:24 <ais523> and actually, I don't really observe many VCS barriers around
20:15:33 <elliott__> selection bias
20:15:45 <elliott__> amplified by specifically avoiding GitHub :P
20:15:45 <ais523> the main problem with me hosting AceHack in darcs has been that neither darcs nor ghc is in the package manager on AWS
20:16:02 <Vorpal> elliott__, I could claim it is selection bias that you observe them. Amplified by frequenting github.
20:16:06 <elliott__> ais523: itt: static linking
20:16:20 <Vorpal> ais523, what is AWS?
20:16:37 <ais523> Amazon something
20:16:41 <Vorpal> elliott__, statically linking a darcs would be huge
20:17:00 <ais523> some people are hosting AceHack servers on it
20:17:16 <Vorpal> ais523, you made acehack?
20:17:27 <elliott__> Vorpal is a good inane statement generator today
20:17:33 <elliott__> or, well, right now
20:17:46 <Vorpal> elliott__, well, why else would he have any say about the VCS
20:17:53 -!- Taneb has quit (Ping timeout: 240 seconds).
20:17:55 * elliott__ facepalm
20:18:04 <Deewiant> What is AceHack
20:18:07 <ais523> Vorpal: err, what did you think AceHack was?
20:18:10 <ais523> Deewiant: a fork of NetHack
20:18:11 <Vorpal> elliott__, I was just surprised at it being made by him
20:18:14 <Vorpal> ais523, a nethack fork
20:18:15 <elliott__> acehack is the ace hacking tool for pros.
20:18:16 <Vorpal> what else
20:18:16 <ais523> which I maintain
20:18:21 <ais523> Vorpal: yes, I made it
20:18:27 <Vorpal> ais523, I didn't know you made it however
20:18:28 <ais523> but I don't get how you'd have heard about it except from me
20:18:29 <ais523> or Slashdot
20:19:18 <ais523> Deewiant: focus is on gameplay similar to vanilla NetHack's, and a much better interface
20:19:32 <ais523> still tty, of course, as tty is the best of the existing interfaces
20:19:42 -!- jcp has quit (Quit: Later).
20:19:44 -!- jcp|other has quit (Read error: Connection reset by peer).
20:19:59 <Vorpal> ais523, think I saw it mentioned in #nethack. Or maybe you mentioned it but I ended up in the middle of the convo and didn't realise you made it
20:20:25 <Vorpal> ais523, much better interface eh, how does it differ?
20:20:25 <ais523> ah, OK
20:20:38 <elliott__> ais523: anyway, I would love to see github-like features integrated into the vcs itself
20:20:48 <ais523> Vorpal: http://patch-tag.com/r/ais523/acehack/snapshot/current/content/raw/doc/fixes36.0 (you can read the whole changelog)
20:20:49 <Deewiant> Vorpal: http://patch-tag.com/r/ais523/acehack/snapshot/current/content/raw/doc/fixes36.0
20:20:53 <ais523> elliott__: wow, that would make sense as well
20:21:07 <ais523> Deewiant: wow, you got that quickly given that you couldn't just look it up in browser history
20:21:13 <elliott__> ais523: some are rather difficult, though, like pull requests; you really want to be able to comment on them from the web rather than pulling, modifying some text file using thevcs and pushing... and in fact that's not right because participating in a pull request =/= having push rights
20:21:20 <Deewiant> ais523: I had it open already
20:21:20 <ais523> or had you been looking for it already
20:21:22 <elliott__> ais523: but I guess you just build it into the vcs and then write a web interface for it
20:21:27 <elliott__> and get everyone to use it :-P
20:21:30 <elliott__> (on their servers)
20:21:38 <ais523> along the lines of git instaweb?
20:21:51 <elliott__> ais523: yes, except more along the lines of a personal github
20:22:03 <elliott__> it would be, uh... "fun" if a bunch of competing interfaces sprung up. "Now how do I comment on a pull request in /this/ one?"
20:22:18 <ais523> elliott__: you ever used a webforum?
20:22:23 <elliott__> ais523: precisely :-D
20:22:32 <ais523> ah, I rarely have issues figuring out how to do things in them
20:22:34 <elliott__> ais523: aha, pull requests over NNTP
20:22:35 <ais523> perhaps we have different attitudes
20:22:36 <elliott__> well, me neither
20:22:41 <elliott__> but the inconsistency still sucks
20:22:50 <elliott__> hmm, I suppose pull requests are conceptually part of the /requester's/ repository
20:23:09 <elliott__> and the pull request tab of a repository would just show all the pull requests in the repositories it's been notified of as being forks
20:23:21 <ais523> and in sg, you can actually do that without world chaos
20:23:35 <elliott__> why would that cause chaos?
20:23:46 <ais523> try to imagine how you'd do it in, say, git
20:24:04 <ais523> you'd basically need to have to be able to add remotes in other people's repos
20:24:21 <elliott__> oh, I was viewing the "notified of forks" thing as part of an out-of-VCS API
20:24:22 <ais523> in sg, it doesn't cause chaos
20:24:28 <elliott__> a standardised POST of some sort
20:24:35 <elliott__> it seems wrong to modify the repository just to keep a list like that
20:24:47 <elliott__> I suppose the chaos of different interfaces is massively lessened if you define a consistent API
20:24:54 <ais523> elliott__: well, in sg you aren't modifying the repo
20:25:04 <ais523> you're just modifying what turtles exist
20:25:19 <elliott__> ais523: that's not what a turtle is LOTS OF EXCLAMATION MARKS TO AMPLIFY MY ANNOYANCE
20:25:30 <ais523> well, OK
20:25:48 <ais523> I use the word as "vaguely sg-related concept I don't know the word of"
20:25:52 <ais523> *the name of
20:25:59 <elliott__> turtles basically mean the directory/file structure
20:26:09 <elliott__> they're an obsolete name, as they're just "directory changes" really
20:26:24 <ais523> ah, OK
20:26:31 <elliott__> I suppose I should write a platonic implementation of your amended model with the "change hashes of this other change" and "ignore change" things you added for conflict resolution, that would be a good start
20:26:34 <ais523> is it a name obsolete enough that I can use it to describe something entirely different?
20:26:40 <elliott__> unfortunately it's not clear where to go from there :)
20:26:47 <elliott__> ais523: yes, but I'll yell at you every time you do
20:26:55 <ais523> deal :)
20:26:59 <elliott__> ais523: I'd just say "object" if you mean "thing in the hash-storage system"
20:27:26 <elliott__> (I really want some sort of medication that you can take to stop worrying about hash collisions)
20:28:21 <Vorpal> elliott__, where is hash collisions a potential (if unlikely) issue?
20:28:44 <elliott__> Vorpal: sg storage model
20:28:45 -!- boily has quit (Read error: Operation timed out).
20:28:54 <Vorpal> elliott__, yeah but what part of it?
20:29:01 <Vorpal> to identify changes?
20:29:04 <elliott__> well, it's hash-addressed
20:29:12 <elliott__> everything is stored as an object in the hash-addressed database
20:29:32 <elliott__> (a separate-file system doesn't work for various reasons, among them that you have thousands and thousands of tiny objects)
20:29:37 <Vorpal> elliott__, would it be possible to resolve it by a linked list in case of collisions, like hashtables do?
20:29:54 <elliott__> ais523: please inform Vorpal what the "D" in DVCS stands for
20:30:10 <Vorpal> elliott__, well you didn't indicate what part of it.
20:30:27 <Vorpal> elliott__, anyway use a good enough hash algorithm and it shouldn't be an issue
20:30:32 <Vorpal> elliott__, SHA512 or such
20:30:33 <ais523> Vorpal: a linked list between different repos is probably only possible in @
20:30:36 <ais523> and quite possibly not even then
20:30:39 <elliott__> it's always an issue
20:30:42 <elliott__> hash collisions exist, that's a fact
20:30:45 <Vorpal> yes
20:30:54 <elliott__> sg will be inevitably completely broken
20:30:57 <elliott__> it doesn't matter, but it still upsets me
20:31:01 <Vorpal> elliott__, what does git and so on do?
20:31:06 <elliott__> ignores it
20:31:11 -!- Taneb has joined.
20:31:13 <ais523> elliott__: just pick an algo in which finding a hash collision would be sufficiently major news that it'd make all existing programs useless anyway
20:31:14 <Taneb> brb
20:31:17 <elliott__> usually when I start thinking along these lines
20:31:18 -!- Taneb has quit (Client Quit).
20:31:22 <elliott__> I realise the terrifying truth
20:31:30 <elliott__> that names are fundamentally useless
20:31:48 <Vorpal> ais523, and make sure changing hash algo in the future would be possible. On old repos.
20:31:54 <elliott__> because no naming system can have names that are smaller than the thing itself except for a tiny finite number of exceptions
20:31:59 <elliott__> and then I cry myself to sleep
20:32:05 <elliott__> and wake up having forgotten the whole thing
20:32:21 <Vorpal> elliott__, I shall remind you
20:32:33 <elliott__> Vorpal: thank god for /ignore
20:32:46 <Vorpal> elliott__, anyway, why not use the thing as the name itself
20:32:59 <elliott__> ais523: I was planning on just going for SHA-3, on the basis that a lot of people will be very angry if it turns out to be a bad function, and that will make me feel better if that happens
20:33:03 <Vorpal> possibly after applying gzip (sure it can grow, but most often won't)
20:33:10 <elliott__> Vorpal: exact same problem with gzip
20:33:14 -!- zzo38 has left.
20:33:16 <elliott__> no naming = no pointers
20:33:20 <elliott__> every object has to include all its children
20:33:25 <elliott__> it's an impossible situation, so eh
20:33:28 <elliott__> thankfully
20:33:29 <Vorpal> elliott__, okay it would grow huge
20:33:34 <elliott__> the set of sg objects humans care about
20:33:39 <elliott__> is a lot smaller than the set of sg objects
20:33:46 <elliott__> you just hope the hash function optimises for this
20:34:36 <elliott__> ais523: I'm still not sure how to store individual changes as part of a changeset (i.e. individual line replacements and the like) without a bunch of overhead because of the hash and everything :/
20:34:42 <elliott__> I guess git stores the whole tree though
20:34:46 <elliott__> So we can't possibly do worse than that
20:36:02 <elliott__> hmm, maybe this will solve every problem I come into wrt sg
20:36:07 <quintopia> omg. i followed @sirisaacnewton like 6 months ago and he just tweeted for the first time in that period...
20:36:12 <elliott__> just remember how git does it, and it'll inevitably be worse than whatever I was thinking of
20:36:14 <quintopia> thought it was a dead account
20:36:49 <pikhq> Though it's also storing the whole tree using immutable data structures, and delta encodes objects as an optimisation... So it's not like git's the ultimate in naive storage.
20:37:45 <ais523> it stores the whole current tree, and gets older versions by diffing backwards from there
20:37:46 <elliott__> hmm, git's patch knowledge is implemented at the /storage/ layer?
20:37:50 <elliott__> oh, wait
20:37:51 <elliott__> I misread
20:38:04 <elliott__> ais523: git is really bad :(
20:38:13 <ais523> on the basis that reverse diffs are typically just "delete bytes x-y" with a few additions
20:38:31 <quintopia> has anyone written up somewhere exactly scapegoat is meant to do/be like?
20:39:09 <elliott__> quintopia: yes, see irc log date ........
20:39:16 <elliott__> the logs of hash-scapegoat are pretty good, actually
20:39:26 <pikhq> Modulo pack files, git stores not only the whole current tree, but the whole of every single tree.
20:39:28 <elliott__> although you'll have to experience the same days of confusion followed by eurekas that we did
20:39:41 <pikhq> git's patch knowledge DNE.
20:39:54 <quintopia> so no condensed milk version. got it.
20:40:42 <elliott__> quintopia: changes are constructed from other changes; primitive change is start/end of a file; in this way merging becomes trivial; same is applied to directory structures.
20:40:44 <elliott__> quintopia: hth
20:40:59 <pikhq> git-diff actually pulls out two commits and computes the diff from them.
20:42:47 <pikhq> If it weren't for git's immutableness making it really easy to handle the case where a blob or tree hasn't changed, git would be extremely slow and inefficient.
20:43:13 <elliott__> sg is slow and inefficient... probably not inherently though
20:43:30 <elliott__> hmm, does git actually hash every single file in the repo when you do like "git status"?
20:43:40 <elliott__> it must be true, but it seems like that could be very slow
20:43:48 <ais523> either that, or it checks last-modified dates, I suppose
20:44:02 <ais523> as it knows when the files in the pristine tree last changed
20:44:18 <elliott__> well, yes, but the point is it's O(n)
20:49:41 <Sgeo_> git immutableness?
20:49:59 <ais523> I don't think there's any way around that, other than having the filesystem integrated with the VCS
20:50:30 <ais523> or combining sg with that editor you were working on that uses a VCS for its undo feature
20:50:35 <pikhq> Sgeo_: Yes, git is an immutable data store.
20:50:40 <elliott__> ais523: indeed (uh oh: this is exactly tup monitor vs. tup upd)
20:50:49 <elliott__> ais523: (stop being everything, sg)
20:50:51 <pikhq> Which happens to have a VCS hacked on top.
20:51:00 <ais523> pikhq: that's a good description
20:51:43 <elliott__> sg is an immutable patch tree with a data store so that you can store it in something more convenient than graphviz format
20:51:48 <elliott__> hacked on top
20:51:56 <elliott__> (it's a tree, not a graph, I believe)
20:52:15 <elliott__> (because you can't modify previous objects to refer to later ones, and you can't construct an object that refers to a non-existent one)
20:52:47 <ais523> you can construct an object that refers to two previous patches, though
20:52:55 <ais523> so it's a DAG
20:53:06 <ais523> well, an object that refers to two previous objects, which will typically be patches
20:54:17 <elliott__> not necessarily; changes have authors too
20:54:26 <elliott__> although I think the whole "header" of a change has to be optional so that the small ones can omit it
20:54:32 <elliott__> and have their fields filled-in by their enclosing changeset
20:54:38 <elliott__> but then it's not clear how to do a lookup if you don't know about the changeset
20:54:45 <elliott__> so you need a microchange → changeset lookup cache
20:54:47 <elliott__> hi
20:54:52 <ais523> elliott__: I think it should conceptually always exist, but be stored in an optimised way
20:54:54 <ais523> via reference
20:55:15 <elliott__> ais523: that would still be a large amount of duplication
20:55:19 <elliott__> one reference per microchange
20:55:47 <elliott__> it would still seem to have them from inside the sg code, though
20:55:51 <elliott__> they'd just be looked up via the cache
20:55:51 <ais523> a reference needn't be a huge hash; you could have some sort of abbreviated format for references
20:57:14 <elliott__> ais523: what, and make collisions vastly more likely?
20:57:15 <elliott__> awesome
20:57:22 <elliott__> anyway, it's not "huge"; a hundred bytes or so
20:57:41 <ais523> elliott__: no, what I mean is, the hash of something doesn't have to be a hash of its contents
20:57:59 <elliott__> sure
20:58:04 <ais523> in particular, for changes which are "subchanges" of something else, it would make sense for their name to be its hash, plus an index number
20:58:18 <ais523> so they can just say "copy metadata from parent"
20:58:21 <elliott__> umm, gross, you're proposing making the hash-addressed storage system be not totally hash-addressed
20:58:32 <ais523> it's still hash-addressed, it's just a different hash function
20:58:46 <elliott__> you can't rely on properties of the hash function...
20:58:51 <ais523> there's no reason why sg hashes have to be completely unreversable, right?
20:58:55 -!- monqy has joined.
20:58:59 <elliott__> it's not hash-addressed if you exploit its internal details
20:59:06 <elliott__> but w/e, _I'm_ not certainly implementing it that way :)
20:59:09 <ais523> wouldn't it make more sense to have a hash function that's reversable as possible while still avoiding collisions?
20:59:10 <elliott__> s/certainly not/
20:59:13 <ais523> to aid in optimisations?
20:59:19 <ais523> also, that's quite an s//
20:59:23 <elliott__> I don't think it's necessary
20:59:29 <ais523> did you just leave out the match string, on the basis that it's inferrable from context?
20:59:37 <elliott__> you can use the same hash function without sacrificing storage constraints
20:59:41 <elliott__> I think you could do it using the index, in fact
20:59:46 <elliott__> ais523: yep
20:59:52 <elliott__> I can't type asterisks, so why not
21:00:04 <ais523> I suppose you also have to infer whether that's the match or replacement from context
21:00:09 <elliott__> ais523: btw, you have an unterminated /
21:00:15 <ais523> no, I didn't
21:00:18 <ais523> you did an s// not an s///
21:00:22 <ais523> so I said "that's quite an s//"
21:00:34 <elliott__> heh, fair enough
21:02:53 <elliott__> maybe when i'm sixteen sg's implementation will be completely obvious and transparent to me
21:02:54 <elliott__> it is only logical
21:04:16 <ais523> I'm so old that I've forgotten how old I am
21:04:17 <ais523> let me work it out
21:04:32 <ais523> twentyfour
21:04:40 <quintopia> i thought you were a bit younger than me
21:04:54 <ais523> who, me or elliott?
21:05:00 <elliott__> ais523: is my linguistic typing of numbers spreading?
21:05:14 <augur> your what
21:05:17 <ais523> elliott__: there had been no digits for ages (except in monqy's IP address and my nick)
21:05:21 <elliott__> i have no numebr ksy augur
21:05:22 <ais523> and it would seem out of place to add one
21:05:31 <augur> oh i see
21:05:31 <ais523> elliott__: I thought you had two working digits on your keyboard
21:05:36 <ais523> the issue being, that really you want ten
21:05:38 <elliott__> ais523: can't wait until you're 523
21:05:41 <elliott__> best nick for a whole year
21:05:41 <elliott__> well, yes
21:05:52 <augur> when you're 16, elliott__?
21:05:56 <augur> arent you 16 already
21:06:07 <elliott__> twenty-second
21:06:11 <augur> o ok
21:06:16 <augur> happy birthday
21:06:24 <elliott__> i forget what rights i get then, oh well
21:06:24 <augur> 3 days and you're legal ;o
21:06:34 <elliott__> no you see, there's this fifty pounds.
21:06:50 <augur> 50 pounds? thats pretty cheap
21:07:01 <ais523> you need to be 18 to be legal nowadays
21:07:04 <ais523> for most things
21:07:11 <augur> ais523: in the uk?
21:07:14 <ais523> I'm trying to remember what you're allowed to do at 16
21:07:15 <ais523> augur: yes
21:07:20 <augur> interesting!
21:07:21 <elliott__> ais523 expertly diverts the topic with calculated obliviousness
21:07:24 <ais523> there's something under-16s can't buy, but I forget what
21:07:32 <ais523> elliott__: no, it's because I wasn't paying attention to what the topic was
21:07:35 <elliott__> haha
21:07:36 <ais523> and guessed, and got it wrong
21:07:43 <augur> kids these days
21:07:55 <elliott__> `quote 55
21:07:58 <HackEgo> 55) <oklopol> GregorR: are you talking about ehird's virginity or your soda beer?
21:08:25 <ais523> I think you're allowed to start learning to drive when 16, so that you can get a driving license as soon as you turn 17
21:08:51 <Gregor> ais523: I don't understand how that's an "I think" thing ...
21:08:55 <elliott__> im not ready to be an adult yet help
21:09:01 <elliott__> Gregor: "IIRC"
21:09:27 <ais523> Gregor: it's an "I can't quite remember, but I think this is correct"
21:09:41 <monqy> i'll neve rbe readey to adulte :(
21:09:51 <ais523> given that I have no intention of learning how to drive, and putting me at the controls of a car would probably be criminal negligence
21:10:03 <ais523> I might try in an emergency (to save my life, for instance), but it would be unlikely to end well
21:10:13 <ais523> I know how to drive in theory, but don't have the levels of concentration or coordination required
21:10:48 <elliott__> i dont think anyone else does either
21:10:58 * Sgeo_ is embarrassed at not knowing how to drive, and having no real excuse
21:11:03 <ais523> well, I don't have them to such an extent that it'd be obvious very quickly
21:11:19 <ais523> occasionally I have problems just standing without falling over
21:11:40 <ais523> (walking's easier; but when standing still, I actually have to concentrate, to some small degree, to stay upright)
21:11:48 <Gregor> In the US, everybody older than 9 knows that you can get your permit at 15, your license at 16.
21:11:50 <Gregor> (That is to say, nobody "thinks" they know the driving age, they just know it)
21:12:02 <Sgeo_> Gregor, um
21:12:07 <ais523> that's because it's physically impossible to survive without driving in most of the US
21:12:23 <ais523> hmm, do university campuses in the US require driving to survive too?
21:12:29 <ais523> or are they more like UK villages?
21:12:41 * Gregor reappears.
21:12:47 <Sgeo_> ais523, I don't know if mine counts. It's small enough to walk around, and has dorms
21:12:50 <Gregor> ais523: My point was that you don't find people in the US who "don't quite remember, but think this is correct"
21:12:56 * copumpkin has lived (alone) in the US for 8 years without knowing how to drive
21:12:58 <Sgeo_> But a lot of people commute there by car
21:13:14 <Sgeo_> Also, don't know if it counts as a "university"
21:13:15 <pikhq> ais523: University campuses are usually quite walkable.
21:13:21 <ais523> pikhq: hmm, good
21:13:25 <ais523> I was wondering if the US could mess even that up
21:13:25 <pikhq> ais523: Bikes are also typical on them.
21:13:47 <ais523> bikes are only really common in Cambridge, over in the UK (because it's so large), most campuses people typically walk or run
21:13:59 <ais523> I can run from one end of the University of Birmingham's main campus to the other in around ten minutes
21:14:07 <ais523> and have had to do so on occasion, but that's rare
21:14:14 <Gregor> pikhq: Come visit Purdue X-P
21:14:38 <Gregor> If you don't have a car, you can EITHER get to school, or fulfill your basic needs for living. Not both.
21:14:55 <Sgeo_> Gregor, hm?
21:14:57 <pikhq> Okay, true, the area *surrounding* the campus can be t3h fucked up still.
21:15:23 <Phantom__Hoover> * copumpkin has lived (alone) in the US for 8 years without knowing how to drive
21:15:31 -!- augur has quit (Remote host closed the connection).
21:15:39 <Phantom__Hoover> I'm struggling to think of a reason to learn to drive.
21:15:53 -!- augur has joined.
21:15:54 <Gregor> My reason to learn to drive was that my mom forced me to X-D
21:16:07 <ais523> Phantom__Hoover: do you live in an area of Scotland where it's physically possible to build roads?
21:16:13 <Gregor> X-D
21:16:21 <ais523> (I assume yes, the other areas are larger but not a lot of people tend to live there for obvious reasons)
21:17:21 <Phantom__Hoover> ais523, yeah, but I... don't go out much.
21:17:38 <ais523> what's the local bus service like?
21:17:40 <Phantom__Hoover> And I can walk to the city centre pretty easily.
21:17:42 <Phantom__Hoover> Pretty good.
21:18:04 <ais523> it's entirely possible to survive with a good bus service (or a settlement sufficiently small that walking everywhere is practical), and a train station for use when you need to go long-distance
21:18:14 <Sgeo_> elliott__, there are others who only read the linked SBAHJ
21:18:20 <ais523> bonus points if you have a coach station, in case you need to go long-distance and are mostly out of money
21:18:35 <ais523> (my parents have an irrational fear of coaches)
21:18:56 <Phantom__Hoover> WHAT IF IT NEVER STOPS??????
21:19:18 <ais523> I'm not entirely sure of the basis behind the fear
21:19:34 <ais523> that seems a little implausible as one, I suspect
21:19:38 <CakeProphet> !acro
21:19:41 <EgoBot> USBCT
21:20:00 <ais523> does that generate a sequence of characters that looks vaguely like an acronym?
21:20:04 <CakeProphet> yes.
21:20:12 <CakeProphet> !src acro
21:20:17 -!- elliott__ has quit (Ping timeout: 240 seconds).
21:20:17 <CakeProphet> !show acro
21:20:17 <EgoBot> haskell let pick a = System.Random.randomRIO (0, length a - 1) >>= return . (a !!) in do {len <- pick [2..10]; putStrLn =<< (Control.Monad.replicateM len $ pick ['A'..'Z'])}
21:20:29 <ais523> US is a particularly likely letter sequence to appear at the start of an acronym
21:20:42 <CakeProphet> it doesn't do anything fancy.
21:20:43 <ais523> also, randomRIO is an incredible hack, but I see why it exists
21:20:58 <Phantom__Hoover> :t randomRIO
21:20:59 <lambdabot> forall a. (Random a) => (a, a) -> IO a
21:21:12 <Phantom__Hoover> :t randomR
21:21:13 <lambdabot> forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g)
21:21:22 <CakeProphet> if I had more data I could weight individual characters by their likelihood of being the first letter of an English word
21:22:48 <quintopia> i have a word list you could analyze, unless you want to count more common words with higher weight, in which case you best download some english texts
21:23:08 <CakeProphet> that's the idea, yesw.
21:23:08 <quintopia> however, you could do well just looking at the weightings used in english-specific compression programs
21:24:43 <Phantom__Hoover> CakeProphet, /usr/share/dict/words
21:25:08 <ais523> a vital part of any modern operating systme
21:25:09 <ais523> *system
21:25:20 <CakeProphet> I suppose that would be good, since acronyms aren't strictly going to be commonly used words.
21:25:25 <Phantom__Hoover> `head /usr/share/dict/words
21:25:27 <HackEgo> head: cannot open `/usr/share/dict/words' for reading: No such file or directory
21:25:36 <CakeProphet> sandboxed
21:25:39 <Phantom__Hoover> GREGOOOOOOOR
21:26:16 <CakeProphet> !perl print `head /usr/share/dict/words`
21:26:17 <EgoBot> ​/usr/bin/head: cannot open `/usr/share/dict/words' for reading: No such file or directory
21:26:31 <CakeProphet> !perl print `ls /`
21:26:31 <EgoBot> bin
21:27:03 <CakeProphet> and yes, I know I could use sh. :P
21:29:10 -!- zzo38 has joined.
21:32:12 <fizzie> I have Google's "ngrams of 1 billion words of interweb text" corpus, it's got a unigram list followed by count, wouldn't be too tricky to make a relative ranking of first letters I guess.
21:32:54 <fizzie> Or is it trillion? Anyway.
21:33:11 <Phantom__Hoover> It's ALL THE WORDS.
21:33:57 -!- GreaseMonkey has joined.
21:35:37 <CakeProphet> w:2711 r:5285 a:5902 x:56 d:5811 j:1259 y:380 u:1899 k:1247 h:3856 g:3452 f:4075 t:5002 i:3613 e:3813 �:15 n:2015 v:1584 m:5952 s:11072
21:35:41 <CakeProphet> :1 l:3437 p:7539 c:9507 q:464 b:6095 z:287 o:2240
21:36:12 <CakeProphet> this is why Perl is awesome.
21:36:34 -!- dbelange has left ("WeeChat 0.3.2").
21:36:53 <CakeProphet> I'm not entirely sure what the :1 bit is
21:37:03 <CakeProphet> there's a word that starts with a newline... or?
21:37:10 <fizzie> That's the part that's not awesome. :p
21:37:26 <CakeProphet> ah first line is blank
21:37:37 -!- sebbu2 has joined.
21:37:38 -!- sebbu2 has quit (Changing host).
21:37:38 -!- sebbu2 has joined.
21:38:34 <CakeProphet> okay so to make this into a weighting scheme I need to find the gcd
21:38:46 <fizzie> Here's some numbers from googledata: http://p.zem.fi/lyui
21:39:21 -!- sebbu has quit (Ping timeout: 258 seconds).
21:39:23 <fizzie> That's mostly unfiltered internets, so it can be a bit non-linguistic.
21:39:58 <augur> what is it with you people calling things linguistic? :|
21:40:10 <fizzie> Do you have a highlight for it? :p
21:40:13 <CakeProphet> ah, sorting would be a good idea.
21:41:27 <fizzie> "linguistic, adj.: Of or pertaining to the knowledge or study of languages. Also used for: Of or pertaining to language or languages." See latter use. (Which admittedly OED admonishes with "is hardly justifiable etymologically; it has arisen because lingual suggests irrelevant associations".)
21:43:47 <CakeProphet> fizzie: I think it's cute how you name your variables in Perl.
21:44:37 <fizzie> What? 'a' as in 'array', 'f' as in 'frequencies'. 'k' as in 'key'. How more clear can you get.
21:45:48 -!- shachaf_ has changed nick to shachaf.
21:46:38 <CakeProphet> no I mean instead of using $_
21:47:01 <CakeProphet> $w{substr(lc,0,1)}++ while<>
21:47:38 <CakeProphet> print "$_: $x{$_}\n" for sort keys %x;
21:48:13 <fizzie> Yeah, well. I think it's cute how you use a while loop when there's a perfectly serviceable command line option to loop over lines.
21:48:23 <fizzie> TMTOWTDI or however they say.
21:48:42 <CakeProphet> yeah but I have code outside of the loop.
21:49:05 <CakeProphet> lol, it wasn't meant to be insulting.
21:50:44 <fizzie> Not insulting? On *this* channel? I don't think that's how we "roll".
21:51:00 <CakeProphet> only sometimes.
21:51:03 <augur> fizzie: yes i do have it on highlight
21:51:07 <augur> but thats not why im commenting
21:51:16 <augur> its just that you peeps seem to use it in the most inaccurate ways
21:51:34 <CakeProphet> man that picnic sure was linguistic
21:52:10 <fizzie> "That new dynamic lingusticer sure beats the pants off old ld.so!"
21:52:40 <Phantom__Hoover> That seafood linguistic was amazing.
21:56:53 <CakeProphet> not sure what � is
21:57:38 <fizzie> At least looking from here it looks like the Unicode "replacement character".
21:57:46 <fizzie> But that could be happening anywhere.
21:57:59 <CakeProphet> so, is that something I should be concerned about?
21:58:25 <fizzie> It's not like you're doing science here, so I don't see why not. Unless of course you want to.
21:58:38 <CakeProphet> nah
21:59:02 <CakeProphet> s is the most common with 11%
21:59:33 <CakeProphet> but I'm not really sure how to convert percentages to weighted random selector thing.
22:01:39 -!- Patashu has joined.
22:05:46 <fizzie> Relative numbers of Google; also took your constructive criticism and streamlined it: http://p.zem.fi/bvzk -- quite a bit different, but, again, not-a-wordlist.
22:06:40 <fizzie> Auspicuously it starts with "TAOSICP" -- some sort of a hybrid of TAOCP and SICP?
22:08:06 <CakeProphet> hmmm,. pastebin.com seems to be down
22:10:24 <CakeProphet> http://paste2.org/p/1596850
22:10:31 <CakeProphet> script and output when given /usr/share/dict/words as input
22:11:27 <CakeProphet> er, the top line of the output is on the bottom of the script, lol
22:12:05 <CakeProphet> http://paste2.org/p/1596859
22:12:56 <fizzie> Wouldn't it be extra-magical if sort worked so that if you give {...$a...$b...} it uses the value of that as the comparison result, but if it's just {...$a...} with no refs to $b it would apply that to each element and compare those results with <=> or cmp, whatever the default sort uses?
22:13:57 <CakeProphet> that would indeed be extra-magical
22:17:03 <CakeProphet> I wonder why t is more common in the Google data.
22:17:55 <CakeProphet> also I'm not really sure how to use these ratios to construct a new generator.
22:18:28 <fizzie> If I just count the unique words (and disregard the number of times they occur), it's 8.61% s, 7.77% c, 6.77% w, 6.73% p, 6.61% a and so on.
22:18:45 <CakeProphet> ah
22:19:05 <CakeProphet> so the same ordering but the weights have events out a little.
22:19:13 <CakeProphet> s/events/evened/
22:21:17 <fizzie> If you want fungot's "select from a discrete random distribution", that's: let @w be the weights and @v the values, and $t sum of @w; now $r = int(rand($t)); for $i (0..$#w) { if ($r < $w[$i]) { $selected = $v[$i]; last; } $r -= $w[$i]; }
22:21:18 <fungot> fizzie: it would be...
22:21:27 <fizzie> Paraphrasing a bit; it's not exactly that code.
22:22:09 <CakeProphet> aah
22:22:20 <CakeProphet> you just chop the total number up into segments kind of.
22:22:32 <fizzie> Yes, and then find which segment it hit.
22:22:55 <CakeProphet> I wonder if I should do this in Perl or Haskell again.
22:22:58 <fizzie> Supposedly it's going to always break at $i == $#w at the latest.
22:24:21 <CakeProphet> but it's not < right?
22:24:32 <CakeProphet> $r < $w[$i]
22:24:35 <CakeProphet> I don't see how that would work.
22:25:35 <fizzie> Why not? $r is always going to be less than sum of @w, so after having done $r -= $w[$i] for all $i = 0 ... $#w-1, $r is guaranteed to be < $w[$#w].
22:25:41 <CakeProphet> unless it's the word count and not the count/total ratio
22:25:51 <CakeProphet> ah okay.
22:26:08 <fizzie> It's best done with integers, that much is true. Assuming sum @w fits in one.
22:26:24 <CakeProphet> right, okay.
22:27:27 <CakeProphet> hmmm, okay.
22:27:43 <fizzie> It's also O(n) w.r.t. the number of possibilities, which is suboptimal, but oh-well.
22:27:44 <CakeProphet> Perl it is.
22:28:04 <Patashu> could you make it a cumulative distribution and binary search it?
22:28:08 <Patashu> then it's O(log(n))
22:28:13 <fizzie> You could do that.
22:28:25 <CakeProphet> not a big deal because n=26...
22:28:43 <fizzie> You could also make a balanced binary tree out of them, and do a single choice at each non-leaf node.
22:29:29 <Patashu> aren't those equivalent?
22:31:42 <oklopol> ooh an O
22:31:51 <fizzie> Mmmaybe; but you could also do an interpolation search, which would I guess be better if the distribution is uniform-ish.
22:32:26 <Patashu> interpolation is an interesting idea...
22:32:34 <Patashu> something like newton for when it has a derivative?
22:35:08 <fizzie> Something like. Usually it's like a binary search, except you take the values at the endpoints, then linear-interpolate about where the thing you're looking for would be, and then use that as the binary-search "midpoint".
22:35:56 <Patashu> yeah, I was thinking that
22:41:21 -!- pumpkin has joined.
22:42:25 -!- copumpkin has quit (Disconnected by services).
22:42:29 -!- pumpkin has changed nick to copumpkin.
22:43:01 <CakeProphet> !perl my %t=(a=>2,b=>3);print $#f;
22:43:02 <EgoBot> ​-1
22:43:07 <CakeProphet> >_>
22:43:12 <CakeProphet> !perl my %t=(a=>2,b=>3);print $#t;
22:43:12 <EgoBot> ​-1
22:43:33 <fizzie> A house is not a motel, and a hash is not an array?
22:43:43 <Gregor> Today I was wearing a pakul
22:43:52 <Gregor> From a car, somebody yelled at me "Yo, rasta man!"
22:44:00 <fizzie> (I suppose if you *really* wanted to be silly about it, you could also sort the order of the possible values in the cdf table in an order where the table is as uniform-ish as possible for the linear-interpolation search.)
22:44:22 <Gregor> Let me reiterate: Me in afghani hat. With blond hair. Not in dreads. Guy things "rasta"
22:44:31 <fizzie> Gregor: At least it was "man" and not "mon".
22:44:51 <CakeProphet> fizzie: a hash is almost an array in Perl though...
22:45:10 <fizzie> Yeah, but I don't think %t has a corresponding $#t.
22:45:22 <CakeProphet> indeed not.
22:45:38 <fizzie> There was some in-recent-Perls change that made hashes and arrays even more like each other, but I forget what it was.
22:45:46 <CakeProphet> also the length is $#w+1
22:45:54 <CakeProphet> so I doubt you want to subtract 1 from $#w
22:46:21 <CakeProphet> => is the comma operator with some auto-quoting sugar.
22:46:30 <CakeProphet> so hashes are constructed from lists.
22:46:30 <fizzie> If you mean "for all $i = 0 ... $#w-1", yes, I did, because I was talking about all elements except the last one.
22:46:39 <CakeProphet> ah okay.
22:47:13 -!- kwertii has joined.
22:47:22 <fizzie> 'each' can run on arrays in Perl 5.12, but I'm not sure that was the change.
22:48:28 <fizzie> Oh, yes; it was that, and the related change that you can run 'keys' on an array and get (0 .. $#array) back. I think.
22:49:31 <fizzie> Right, except the latter comes in Perl 5.14, not 5.12.
22:49:44 <fizzie> Or, uh. Something.
22:50:01 <ais523> Perl's going to end up with Lua-style arrays if it keeps going down that path
22:50:18 <ais523> (Lua arrays versus PHP arrays; similar idea, except Lua's idea works great, PHP's is completely messed up)
22:50:20 <fizzie> http://perldoc.perl.org/functions/keys.html -- 5.14 adds "keys EXPR" which auto-dereferences when EXPR evaluates to a hashref or an arrayref.
22:50:26 <Phantom__Hoover> ais523, explain?
22:50:43 <ais523> Phantom__Hoover: in Lua, an array is conceptually a hash index => value
22:50:53 <fizzie> "This aspect of keys is considered highly experimental. The exact behaviour may change in a future version of Perl."
22:51:11 <ais523> so arrays and hashes are handled the same way
22:51:15 <ais523> JavaScript uses the same method
22:51:17 <Phantom__Hoover> ais523, that seems... inefficient.
22:51:18 <fizzie> Isn't that quite close to a JavaScript array too, except it's an object with numeric properties.
22:51:20 <CakeProphet> fizzie: your algorithm also assumes the data is sorted correct?
22:51:21 <ais523> behind the scenes, it's probably optimised
22:51:39 <ais523> but the behind-the-scenes representation doesn't have to be the same as the interface in a high-level language
22:51:51 <fizzie> CakeProphet: Nnno, I don't think it needs to be anyhow specially sorted, as long as @w and @v are in the same order of course.
22:51:53 <ais523> PHP arrays are basically ordered dictionaries, which is a huge mess in all sorts of ways
22:52:34 <Vorpal> ais523, isn't that what bash arrays are?
22:52:45 <ais523> I don't know
22:52:53 <Vorpal> though numbers only, until bash 4
22:52:53 <ais523> you should see how many sort functions PHP has
22:53:00 <Vorpal> ais523, oh that, yeah
22:53:03 <ais523> it's not only more than one (which is insane), it's more than ten
22:53:12 <Patashu> why would you need ten?
22:53:26 <ais523> Vorpal: wait, an ordered dictionary with numerical-only keys? that's a pretty ridiculous data structure
22:53:36 <Vorpal> ais523, maybe we mean different things
22:53:51 <CakeProphet> PHP is probably the worst language ever.
22:54:01 <Vorpal> ais523, ordered dictionary with numerical-only keys <-- sounds like a sparse array to me. Conceptually at least
22:54:05 <CakeProphet> and, it is a very popular language for many of the freelancing jobs I've found.
22:55:10 <Vorpal> CakeProphet, what about bancstar?
22:55:23 <CakeProphet> I don't even know what that is.
22:55:39 <ais523> good, you don't want to
22:55:45 <ais523> however, I think PHP is somehow worse
22:55:54 <Vorpal> CakeProphet, http://en.wikipedia.org/wiki/BANCStar_programming_language
22:55:55 <ais523> BANCstar was at least designed as a machine-code-equivalent
22:56:43 <CakeProphet> fizzie: ah okay, took me a second but I've got it now.
22:56:51 <CakeProphet> your algorithm, that is.
22:56:53 <Vorpal> CakeProphet, http://reocities.com/ResearchTriangle/station/2266/tarpit/bancstar.html too
22:57:31 <CakeProphet> it makes the likelihood correspond directly to the weight, which is what you want...
22:59:20 <fizzie> In R you'd just say sample(vals, 1, prob=probs).
23:00:29 <fizzie> > sample(c(1, 2, 3), 30, replace=TRUE, prob=c(0.1, 0.8, 0.1))
23:00:30 <fizzie> [1] 3 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 1 3 2 2 2
23:00:30 <lambdabot> <no location info>: parse error on input `='
23:00:35 <fizzie> See how easy that is.
23:00:45 <fizzie> lambdabot: It was just a prompt, I wasn't speaking to you. Sorry about that.
23:01:51 <fizzie> Maybe it's a bit unfair to compare to a statistical-computing language, though.
23:03:08 <CakeProphet> okay so how do I get my script into egobot
23:03:11 <CakeProphet> it's more than one line.
23:03:18 <CakeProphet> and is quite large.
23:03:28 <fizzie> Did EgoBot take URLs directly?
23:03:45 <CakeProphet> where can I put it online?
23:04:10 <CakeProphet> and yes, it does actually
23:04:31 <CakeProphet> but I don't remember how...
23:04:33 <fizzie> !perl http://p.zem.fi/2hyh
23:04:34 <EgoBot> I'm a Perl!
23:04:38 <fizzie> Yays.
23:04:50 <CakeProphet> uh, now where can I put my script?
23:04:54 <fizzie> Pastebin it somewhere where there's a "raw" link?
23:05:01 <CakeProphet> hmmm, okay.
23:07:32 <CakeProphet> !addinterp wacro perl http://pastebin.com/raw.php?i=mDyuacbS
23:07:33 <EgoBot> ​Interpreter wacro installed.
23:07:36 <CakeProphet> !wacro
23:07:37 <EgoBot> ADBUSATM
23:07:41 <CakeProphet> !wacro
23:07:41 <EgoBot> FSBNTD
23:07:44 <CakeProphet> !wacro
23:07:45 <EgoBot> BCFIT
23:07:48 <CakeProphet> awesome.
23:08:38 <CakeProphet> !acro
23:08:40 <EgoBot> DDIFMY
23:09:14 <monqy> !show wacro
23:09:14 <EgoBot> perl (sending via DCC)
23:09:37 <CakeProphet> monqy: you can also just click on the URL...
23:09:38 <monqy> \r\n? really?
23:09:49 <CakeProphet> not my doing.
23:09:58 <monqy> shouldnt have pastebined it there...
23:10:10 <CakeProphet> doesn't make a difference to me.
23:10:18 <fizzie> Doesn't make a difference to Perl either.
23:10:26 <CakeProphet> imagine that.
23:10:54 <monqy> when I !showed it I got a M with foreground and background colours switched at the end of each line, which upset :(
23:11:39 <CakeProphet> !show wacro
23:11:39 <EgoBot> perl (sending via DCC)
23:12:44 <monqy> (and i think how M with foreground and background swapped is how irssi renders \r)
23:12:55 <monqy> like swapped I is how it does tab??
23:13:25 <CakeProphet> I think my favorite thing about Perl is that it supports sane versions of map and filter.
23:13:31 <CakeProphet> and anonymous subroutines.
23:13:36 <fizzie> !graph a -> b; b -> c; c -> a
23:13:46 <fizzie> That's the best thing ever.
23:13:55 <monqy> CakeProphet: any general purpose language worth using should have those
23:14:18 <CakeProphet> surprisingly few have ones that are preferable to looping constructs.
23:14:29 <CakeProphet> Python has map and filter but poor anonymous functions.
23:14:59 <Sgeo_> Is Perl's anonymous subroutines better than Ruby's?
23:15:26 <CakeProphet> map {uc pick} 0..(int(rand(9))+2)
23:15:55 <CakeProphet> is how I generate the sequence of characters. uc is uppercase, pick is the weighted selection algorithm.
23:16:00 <fizzie> !perl print &{&{sub { my $f = shift; return &$f($f); }}(sub { my $f = shift; return sub { my $n = shift; return 1 if $n < 2; return &{&$f($f)}($n-1) + &{&$f($f)}($n-2); }; })}(8), "\n";
23:16:00 <EgoBot> 34
23:16:04 <fizzie> That's how good they are.
23:16:09 <fizzie> (The readability!)
23:16:28 <CakeProphet> well, yes, if you call them directly you have to use &{}
23:16:40 <CakeProphet> but usually you're passing them as sub refs... which is just sub {...}
23:17:45 <fizzie> The "sub { my $a = shift; ... }" thing is a bit overly verbose, compared to, say, "\a -> ..."
23:17:52 <CakeProphet> and if you're using a sub that has a & prototype for its first argument you can omit the sub and the ,
23:18:02 <CakeProphet> similar to how map and grep work as built-ins
23:18:12 <CakeProphet> fizzie: such is life
23:18:23 <fizzie> CakeProphet: Mountains are nice.
23:18:40 <CakeProphet> fizzie: also no one is forcing you to name those parameters. :D
23:18:45 <CakeProphet> if you only use them once.
23:19:01 <CakeProphet> though it's probably a good idea.
23:19:27 <Sgeo_> Ruby kind of forces methods to only take one anon function at the end of its arg list if it's going to look good
23:19:40 <fizzie> Or if you're going to use them once but from inside another lexically scoped sub.
23:19:54 <Sgeo_> (It's possible to give several anon functions, but the syntax for passing those in is ... well, improving, but still not as nice
23:19:56 <CakeProphet> I wish Perl would allow the special bracket-only syntax with subroutine refs at the end as well as at the front of the call.
23:20:07 <CakeProphet> fizzie: of course.
23:20:31 <fizzie> ("Huh? Shut up! Get lost! Mountains're nice. This's the life. Mountains're nice. Man, you're nosy. Here, take this.")
23:20:34 <CakeProphet> also sub{my($a,$b,$c)=@_;} is a bit better than using shifts for multi-argument subs.
23:21:04 <CakeProphet> but if you want brevity you could use $_[0], $_[1], ...
23:21:32 <CakeProphet> so many ways to write text vomit!
23:22:53 <CakeProphet> fizzie: oh I forgot there's also subref->(args...)
23:22:59 <CakeProphet> instead of &{}
23:23:05 <fizzie> Or you could be the odd one out and use pop in one-arg subs. Truu underkround and so on.
23:23:12 <CakeProphet> instead of &{subref}(args...)
23:23:33 <CakeProphet> fizzie: I've used pop when the evaluation order suited it.
23:23:51 <CakeProphet> for multi-arg subs.
23:24:15 <CakeProphet> pop would also be a better choice for golfing
23:25:23 <fizzie> !perl sub ding { while ($a = shift and $b = pop) { print "$a -> $b | " } } ding("foo", "bar", "baz", 3, 2, 1);
23:25:23 <EgoBot> foo -> 1 | bar -> 2 | baz -> 3 |
23:25:38 <fizzie> The best way to combine arguments that occur in pairs.
23:26:06 <CakeProphet> heh.
23:26:19 <fizzie> A software professional would call that the Burning Your Candle From Both Ends Idiom.
23:26:40 <CakeProphet> actually I think the -> syntax may require a bareword rather than an arbitrary expression
23:27:00 <CakeProphet> !perl (sub {print pop})->("test")
23:27:00 <EgoBot> test
23:27:04 <CakeProphet> ah, nope.
23:27:50 <CakeProphet> !perl sub {print pop}->("test")
23:27:50 <EgoBot> test
23:27:54 <CakeProphet> heh.
23:28:26 <ais523> -> is generally used for dereference-and-do-something
23:28:41 <ais523> you have ->() for subs, ->[] for arrays, ->{} for hashes, and plain -> for objects
23:28:51 <CakeProphet> >_> this is not news to me.
23:29:04 <ais523> so why did you think subs would be different?
23:29:12 <ais523> ->{} only treats barewords specially because {} does
23:29:32 <CakeProphet> I just didn't remember whether or not you could have an expression on the left-hand side.
23:29:37 <CakeProphet> instead of the bareword subref.
23:30:08 <CakeProphet> I was thinking of the $@ $% $$ syntax that requires a variable.
23:30:13 <CakeProphet> I guess.
23:30:52 <ais523> Gregor: is a "5/4" time signature normally considered to be 3+3+2+2 rather than 2+2+2+2+2? I'd call 3+3+2+2 10/8 myself
23:31:10 <Patashu> normally it's 3+2+3+2
23:31:19 <Patashu> or 4+1
23:31:20 <fizzie> Related construct: a != FOO ? a != BAR ? a != BAZ ? 0 : 3 : 2 : 1 in C.
23:31:57 <Patashu> oh wait, in terms of 8ths? then 3+3+2+2 -usually-
23:31:58 <ais523> Patashu: I'm going over a list of video game musics apparently in nonstandard time signatures
23:32:14 <Patashu> nonstandard time signatures rule
23:32:17 <ais523> and both the "5/4" examples I recognise (FF8's battle music, and the Ridley battle music from the Metroid series) have been 3+3+2+2
23:32:33 <Patashu> Let me find you one
23:33:20 <Patashu> http://www.youtube.com/watch?v=O6f2yvhOupM This is all kinds of time signature crazyness
23:33:23 <ais523> apparently the Pokémon Red and Blue gym theme has four bars in 7/4 time; I think they meant the gym leader theme, which does have an unusual time signature
23:33:27 <ais523> but I can't count it as 7/4
23:33:34 <ais523> (the first 4 bars after the intro)
23:33:53 <CakeProphet> >_>
23:34:10 <ais523> 1 and 2 and 3 and 4 and 5 and 6 and 7 8 and a, I think it goes
23:34:20 <ais523> which makes it a usual 4/4 with a random bit of syncopation
23:34:49 * Phantom__Hoover → sleep
23:34:50 -!- Phantom__Hoover has quit (Quit: Leaving).
23:34:57 <Patashu> nothing in pokemon uses weird time signatures I think ever?
23:35:14 <ais523> http://www.youtube.com/watch?v=9OO5VAKk0d8 is the song I'm thinking about
23:35:19 -!- GreaseMonkey has quit (Quit: about to lose connection).
23:35:20 <ais523> first section after the intro
23:35:45 <Patashu> 4/4
23:35:50 <Patashu> why would anyone think it's 7/4? you just count
23:36:00 <ais523> I don't know
23:36:08 <ais523> I agree that it's 4/4 with syncopation, though
23:36:17 <Patashu> haha, and there's never surrender in the related videos (or is it only for me?)
23:36:29 <CakeProphet> !wacro
23:36:29 <EgoBot> PPI
23:36:33 * CakeProphet is infinitely pleased.
23:36:46 <CakeProphet> !wacro
23:36:47 <EgoBot> PNISLBS
23:36:55 <CakeProphet> the acronym quality has definitely improved.
23:37:53 <CakeProphet> though sometimes acro produces something charming with unusual letters.
23:37:57 <CakeProphet> !acro
23:38:00 <EgoBot> SROFT
23:38:04 <monqy> sroft is good
23:38:07 <monqy> !wacro
23:38:07 <EgoBot> RDQCTMA
23:38:12 <monqy> rdqctma is not good
23:38:20 <CakeProphet> thus is the nature of random selection. ;)
23:38:22 <ais523> shouldn't it be a real word if it's an acronym?
23:38:30 <CakeProphet> uh, no?
23:38:34 <ais523> PPI is a real abbreviation, anyway, although I've forgotten what it stands for
23:38:43 <ais523> CakeProphet: an acronym is an initialism that also happens to spell a real word (typically deliberately)
23:39:03 <Vorpal> ais523, one meaning is "pixels per inch"
23:39:03 <CakeProphet> Acronyms and initialisms are abbreviations formed from the initial components in a phrase or name.
23:39:08 <CakeProphet> wikipedia.
23:39:16 <Vorpal> (didn't read context)
23:39:25 <ais523> CakeProphet: that sentence doesn't prove anything at all
23:39:50 <CakeProphet> Acronyms and initialisms are abbreviations formed from the initial components in a phrase or name. These components may be individual letters (as in CEO) or parts of words (as in Benelux and Ameslan). There is no universal agreement on the precise definition of the various terms (see nomenclature), nor on written usage (see orthographic styling). While popular in recent English, such abbreviations have historical use in
23:39:50 <ais523> because I'm claiming that the difference between an acronym and an initialism is whether it spells a word or not
23:39:58 <CakeProphet> CEO is not a word.
23:40:38 <ais523> Wikipedia says that dictionaries disagree on the definition, it seems
23:40:48 <ais523> which means that we almost certainly both have a dictionary supporting our point of view
23:40:50 <ais523> thus, we're both right
23:40:55 <ais523> also, both wrong
23:41:22 <pikhq> Whether or not it's a word depends on what you mean by "word".
23:41:38 <CakeProphet> except that I'm pretty sure the most common meaning involves an abbreviation formed from the initial letters of words (or selected letters from the words for example XML)
23:41:54 <Gregor> HEY GUYS
23:42:02 <Gregor> It doesn't matter one iota what dictionaries say.
23:42:17 <pikhq> Which is generally ambiguous, and only happens to be *slightly* less ambiguous in English than usual.
23:42:32 <Gregor> In all likelihood, most people, when presented with the word "acronym", would identify e.g. SMS as one.
23:42:36 <Gregor> Therefore, it is one.
23:42:38 <Gregor> QED.
23:42:44 <pikhq> Gregor winneþ.
23:43:08 <Gregor> Not that I actually polled, that's just my understanding of current word motion :P
23:43:13 <ais523> Gregor: you didn't answer my question about 5/4 time!
23:43:18 <CakeProphet> therefore: I win. That's was the point right? trying to win?
23:43:23 <Gregor> ais523: I wasn't here, presumably :P
23:43:31 <Gregor> ais523: (I just got back from a meal)
23:43:46 <CakeProphet> !acro
23:43:49 <EgoBot> JRKPSQ
23:43:53 <CakeProphet> !wacro
23:43:53 <EgoBot> CSIPPPNTRT
23:44:01 <ais523> Gregor: <ais523> Gregor: is a "5/4" time signature normally considered to be 3+3+2+2 rather than 2+2+2+2+2? I'd call 3+3+2+2 10/8 myself
23:44:03 <CakeProphet> might want to shorten the length.
23:44:09 <CakeProphet> !wacro
23:44:09 <EgoBot> SLCPGTNTAG
23:44:09 <ais523> and I directed that at you because I thought you'd know
23:45:19 <ais523> I know I started writing a song in 11/8 once
23:45:23 <ais523> (as 3+3+3+2)
23:45:24 <pikhq> ais523: I have a sneaking suspicion that list of music with nonstandard time signatures has rather a lot of Uematsu.
23:45:28 <CakeProphet> ais523: http://www.youtube.com/watch?v=WedRDYmtvX4
23:45:30 <CakeProphet> here's a song in 5/4
23:45:33 <Gregor> ais523: Denominators are irrelevant when the numerator is prime. 5 is 3+2 or 2+3, depending. You could (poorly) expand either of those into 2+2+2+2+2, but that's more like (2+2+2)+(2+2)
23:45:33 <ais523> it's pretty easy to do, but the result wasn't too inspiring
23:45:34 <CakeProphet> does that help? :P
23:45:53 <ais523> Gregor: well, in my case, an ostensibly "5/4" song was 3+3+2+2
23:45:55 <ais523> two of them, in fact
23:46:02 <ais523> and I suspect it perhaps ought to be labeled 10/8 instead
23:46:24 <Gregor> ais523: I would probably label that 10/8, yes. Splitting in the middle of a beat is less than ideal.
23:46:44 <Gregor> ais523: That being said, I'd need to hear it to be convinced of whether that statement is true or not (the 3+3+2+2 part)
23:47:44 <ais523> Gregor: the two examples I'm thinking of are final fantasy 8's regular battle music (http://www.youtube.com/watch?v=2WL4SGO85Uk) and Ridley's battle music from the Metroid series (e.g. http://www.youtube.com/watch?v=nLLjibR_c4Q)
23:48:14 <ais523> Ridley's been in pretty much every Metroid game (multiple times in some of them), so there are a lot of versions of his battle music to choose from
23:48:45 <Patashu> my favourite version of the ridley battle music is metroid fusion - not because it sounds good, but because it has interesting rhythms
23:49:17 <Gregor> (re 1st) plainly 3+2. Syncopation does not magically break rhythm.
23:49:18 <CakeProphet> okay so, I'm pretty sure the number of Haskell linked lists in uncountable, but how would you prove this?
23:49:35 <Patashu> ais523: did you listen to never surrender? if so, would you call it 5/8 or something else?
23:49:36 <ais523> Gregor: hmm, I was going on the percussion
23:49:39 <ais523> Patashu: I didn't
23:49:50 <Gregor> ais523: So am I.
23:49:51 <CakeProphet> @hoogle
23:49:51 <lambdabot> No query entered
23:49:51 <lambdabot> Try --help for command line options
23:49:53 <pikhq> http://www.youtube.com/watch?v=ltCbrDWGo68 This version of Don't Be Afraid should be much more tolerable. The PSX synth sounds like shit...
23:50:00 <CakeProphet> @hoogle a -> Int
23:50:00 <lambdabot> Data.Generics.Schemes gdepth :: GenericQ Int
23:50:00 <lambdabot> Data.Generics.Schemes glength :: GenericQ Int
23:50:00 <lambdabot> Data.Generics.Schemes gnodecount :: GenericQ Int
23:50:10 <CakeProphet> @hoogle [a] -> Int
23:50:10 <lambdabot> Prelude length :: [a] -> Int
23:50:10 <lambdabot> Data.List length :: [a] -> Int
23:50:10 <lambdabot> Prelude head :: [a] -> a
23:50:18 <Gregor> ais523: The actual sequence of notes is not the division of the measure, it's the actual rhythmic balance that matters.
23:50:35 <ais523> Gregor: it doesn't sound like simple syncopation to me, just because there's no stressing on the third quaver of the bar at all
23:50:37 <ais523> in any line
23:51:47 <Gregor> ais523: I was slightly (OK, extremely, in retrospect :P ) stretching the term, I just mean that the rhythm isn't sitting flatly on beats.
23:51:55 <ais523> hmm, OK
23:52:05 <ais523> what's your opinion on the Ridley music?
23:52:11 <Gregor> Haven't listened yet :P
23:52:17 <ais523> you're better at this than I am, I only got a B in my Music GCSE
23:52:18 <ais523> fair enough
23:53:02 <ais523> pikhq: I actually don't really like the instruments in that one, for whatever reason
23:53:34 <Gregor> ais523: The interlude is in 6! X-D
23:54:05 <ais523> well, it doesn't have to have the same time signature all the way through
23:54:43 <Vorpal> <Gregor> ais523: The interlude is in 6! X-D <-- that would be 720?
23:54:55 <Gregor> Yeah, I'd say the fundamental underlying structure is still 3+2 ... at parts it almost strains to be 4+1, but for the most part, it has that same underlying rhythm as the FF8 one.
23:55:00 <Vorpal> or is it just an exclamation mark?
23:55:03 <ais523> and actually, I completely missed the treble of the FF8 tune
23:55:09 <ais523> I'd tuned it out to hear the bass more carefully
23:55:30 <CakeProphet> had tuned = double past tense
23:55:31 <Gregor> ais523: That's what made it so plain for me in there, this doesn't really have that because everything other than the beat is ... not music :P
23:55:37 <Gregor> (Or only at the scale of full measures)
23:55:48 <CakeProphet> in the past I had done something in the past!
23:55:54 <Patashu> At times the FF8 battle theme goes 3+3+2+2 instead of 3+2+3+2
23:56:00 <pikhq> CakeProphet: Yes, English is a bitch.
23:56:08 <CakeProphet> we make it our bitch.
23:56:10 <ais523> Patashu: it always goes 3+3+2+2 , was my argument
23:56:17 <ais523> but it doesn't quite, just usually
23:56:50 <Patashu> oh, if you're counting 8ths then yes
23:56:52 <Patashu> I'm counting 4ths
23:56:57 <Gregor> And my argument is quite simply that the fact that the rhythm doesn't fall plainly on beats doesn't mean that it should be renumbered such that they do. The 5 indicates an overall flow of 3+2, which it has.
23:58:12 <Gregor> That being said, people prefer 6/8 to 2/2 with triplets :)
23:58:14 <ais523> ah, so two 3/8 and two 2/8 becomes three crotchets and two crotchets, so it's 3+2
23:58:26 <Gregor> ais523: Yuh
23:58:47 <Gregor> At a certain point if you argue about time signatures too much, you realize it's all irrelevant though 8-D
23:58:52 <Patashu> the 3+3+2+2 part is x.xx.xx.xx.xx.x.x.x.x and the 3+2 parts are x..x..x.x.x
23:59:24 <Gregor> Patashu: That is the musical notation I shall use from now on.
23:59:55 <Patashu> yeah it sucks but I don't know of a better way to represent rhythms in ascii
2011-08-20
00:00:15 <Gregor> This is IRC, we don't need no stinkin' ASCII.
00:00:32 <Patashu> you're right, brb unicode
00:00:48 <Gregor> ♩. ♩. ♩ ♩
00:00:49 <CakeProphet> `run cat /dev/urandom
00:00:50 <HackEgo> ​\.wd..\fsX.5.S]3읢].a;Uj
00:01:18 <ais523> I used to use cat /dev/random as an equivalent to reset, because I didn't know about reset
00:01:22 <ais523> it tended to work eventually
00:01:27 <Patashu>
00:01:28 <Gregor> lol
00:01:30 <Patashu> I found the 1/1 time signature
00:01:42 <Gregor> Patashu: Surely the most useful.
00:01:44 <CakeProphet> ais523: I'm assuming you also didn't know about urandom?
00:01:48 <ais523> indeed
00:01:52 <ais523> (I do now, of course)
00:02:02 <ais523> actually, /dev/random was slow enough that it was probably better for that purpose
00:02:08 <pikhq> Ẅē—ñêéđ—őǹłÿ—Üńı¢øðè¡
00:02:08 <ais523> urandom would quickly fill up the entire terminal with garbage
00:02:19 <Patashu>
00:02:22 <ais523> pikhq: I'm disappointed in you for not using a Unicode space for the spaces
00:02:23 <Patashu> found the triforce
00:02:35 <ais523> aren't triforces made of triangles?
00:02:43 <pikhq> ais523: I was lazy and only used things I already have a compose key for.
00:02:46 <Patashu> it's a very small triforce and placed in a beam of light
00:02:49 <Patashu> so it's shinier than it is trianglier
00:02:53 <Gregor> 🐐 found the goat
00:03:30 <CakeProphet> ais523: my /dev/random is painfully slow though
00:03:34 <pikhq> Also, yes, the Triforce is the first iteration of Sierpinski's triangle.
00:03:36 <CakeProphet> it would take several minutes to fill the whole screen.
00:03:46 <ais523> oh, relating to that question about Uematsu, there are quite a few, indeed
00:03:57 <ais523> CakeProphet: that was the point
00:04:01 <ais523> I didn't want it to
00:04:13 <ais523> whereas it doesn't take urandom long to even overflow scrollback
00:04:14 <Patashu> ♩♪♫♬♭♮♯
00:04:28 <Gregor> Patashu: You realize I've long since diagrammed the notes :P
00:04:41 <Patashu> I'm just copying them out so I have them
00:05:18 <ais523> heh, apparently Mother 3 lets you do combos by pressing buttons in time to the music, and uses really silly time signatures (like 29/16) later on to make it harder
00:05:22 <ais523> that's pretty in character for that game
00:05:31 <Patashu> 29/16?
00:05:38 <Patashu> hmmm
00:06:00 <CakeProphet> > map (16*) [1..]
00:06:00 <lambdabot> [16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,272,288,304,320,...
00:06:14 * Patashu np: 10253. Shogo Sakai, Shogo Sakai - [Mother 3 #80] Back Beat Battle - Hard, Back Beat Battle - Hard, Back Beat Battle - Hard [00:01/01:53]
00:06:38 <Gregor> 29/x (no, the denominator does not matter) is probably something like eight measures of four then a random extra beat.
00:06:39 <Patashu> This song swaps between 8 and 9 quavers
00:06:52 <ais523> it's actually 32/x with three beats missing, apparently
00:07:14 -!- Vorpal has quit (Ping timeout: 258 seconds).
00:07:23 <Patashu> This is 15/8
00:07:24 * Patashu np: 10296. Shogo Sakai, Shogo Sakai - [Mother 3 #205] Strong One, Strong One, Strong One [00:18/02:34]
00:08:14 <Gregor> ais523: 32/x doesn't exist, it's nine measures of four :P
00:08:30 <pikhq> Gregor: s/doesn't exist/doesn't meaningfully exist/
00:08:34 <CakeProphet> count this: http://www.youtube.com/watch?v=aUYtWvavvYg
00:08:35 <Gregor> Sure sure.
00:09:06 <pikhq> Someone could transcribe some 4/4 music into 4/G time just to be an ass.
00:09:16 <Patashu> G?
00:09:21 <pikhq> Graham's number.
00:09:26 <Patashu> also, bulgarian bulge is sooo good
00:09:33 <ais523> Gregor: eight of four
00:09:49 <Gregor> ais523: Errr, yes ...
00:09:57 <Gregor> Math I are not good at.
00:10:01 <pikhq> I am not sure the resulting sheet music would fit in the universe.
00:10:05 <ais523> 8/8 I've used to mean 3+3+2
00:10:40 <Gregor> I'd say the retain some meaning up until about 12.
00:10:46 <Patashu> let's invent something better than time signatures
00:10:49 <Patashu> they don't retain enough information
00:10:49 <Gregor> (I choose 12 because I've written something in 12 8-D )
00:11:09 <pikhq> Gregor: At which point it becomes notational masturbation?
00:11:13 <Gregor> Patashu: I'll let you muddle over it until you're talking about PCM, then realize why notation exists.
00:11:17 <Gregor> pikhq: Yup.
00:11:30 <CakeProphet> Don Ellis has plenty of complex time signatures if you're into that.
00:11:49 <pikhq> It's not exactly hard to find music with complex time.
00:11:58 <pikhq> Though you might have to leave top 40.
00:12:08 <ais523> Gregor: 12/8 is relatively common, isn't it?
00:12:08 <Gregor> I assume by complex you mean complex numbers.
00:12:13 <ais523> it's the triplets version of 4/4
00:12:16 <Gregor> ais523: Relatively. Yeah.
00:12:32 -!- pikhq_ has joined.
00:12:34 <Gregor> Now, 4+2i/4 time, THAT'S rare.
00:12:45 <ais523> can imaginary time even be played?
00:12:49 <ais523> you'd have to convert it to temperature somehow
00:12:51 <Patashu> complex music sounds difficult. what's the second dimension, pitch?
00:12:52 <CakeProphet> I imagine a complex time signature would be like two real signatures superimposed.
00:12:55 <pikhq_> 18:13 < pikhq> It's not exactly hard to find music with complex time.
00:12:56 <CakeProphet> one part has one signature another part has the other.
00:12:57 <pikhq_> 18:13 < pikhq> Though you might have to leave top 40.
00:13:00 <pikhq_> 18:13 < pikhq> Which you should anyways.
00:13:13 <ais523> that's because "complex time" means 6/8, etc
00:13:28 <Gregor> ... 6/8 is so not complex :P
00:13:53 <ais523> what about irrational time signatures?
00:13:58 <ais523> those would at least be possible to play
00:14:09 <ais523> although probably only via synthesizer from a timecode file
00:14:12 <pikhq_> Gregor: It's not 4/4!
00:14:13 <pikhq_> :P
00:14:32 <Patashu> An irrational time signature would sound like your computer glitching up
00:14:46 <Patashu> Every X gaps would be the wrong length
00:14:47 <CakeProphet> ais523: I think you could play a complex time signature if you split the piece into two superimposed songs. :P
00:15:03 <Gregor> That's not really very meaningful imaginary time.
00:15:17 <ais523> hmm, what about having two different lines in incommensurable tempos?
00:15:20 <ais523> that might sound quite good
00:15:32 <CakeProphet> Gregor: I don't see any other way to do it really.
00:15:34 <ais523> (x and y are incommensurable if x/y is irrational, in case you'd never heard the word before)
00:15:47 <pikhq_> CakeProphet: Wouldn't that just be polyrhythm?
00:15:55 <CakeProphet> pikhq_: yes
00:16:19 <CakeProphet> what do you mean "just" polyrhythm.
00:16:26 <CakeProphet> do we already have a notation for polyrhythms
00:16:37 <CakeProphet> I thought it was just "oh yeah this part is 3 and this one is 2"
00:16:46 -!- pikhq has quit (Ping timeout: 268 seconds).
00:16:49 <pikhq_> Actually, I dunno if we do or not.
00:17:07 <pikhq_> It could very well be a deficiency in Western music notation.
00:17:31 <CakeProphet> that could be remedies by complex numbers and quaternions!
00:17:34 <CakeProphet> *remedied
00:17:56 <CakeProphet> and whatever the 3-component one is called.
00:18:11 <Gregor> Or ... you could just write both lines, make sure the bar lines line up, and just notate them differently :P
00:18:23 <pikhq_> Gregor: Smart-ass.
00:18:23 <pikhq_> :P
00:18:44 <CakeProphet> Gregor: not as formal sounding!
00:18:46 <Gregor> Alternatively, you could color-code, use different note styles, or just realize that it's not a good idea *shrugs*
00:20:30 <CakeProphet> it's an excellent idea you just don't know it.
00:20:41 <CakeProphet> I suppose you could also the same thing with vector time signatures.
00:24:13 <Gregor> SO GUYS, I'm thinkin' of writing an environment for competitive programs which is presented as a 2D environment supporting some kind of cellular automaton (in addition to the intelligent agents controlled by the competitors), in which the goal is some kind of resource hoarding (like capture-the-flag for an enormous number of flags)
00:24:15 <ais523> don't you just write it in expanded notation, making the barlines line up?
00:24:32 <ais523> Gregor: could be interesting if done properly
00:24:43 <Gregor> ais523: The "done properly" part is why I'm bringing it here :P
00:25:02 <Gregor> I have some ideas, but I don't know if they make a cohesive game, so I'll see what other people would do with the same basic concept.
00:26:06 <ais523> wow, TIL that force fields actually exist and are possible with current technology, but are typically only used on very small scales because they take so much energy to maintain
00:26:37 <CakeProphet> Gregor: I enjoy this idea.
00:26:51 <CakeProphet> I had a similar idea but with a rogue-like interface.
00:26:52 <ais523> and are typically only used to allow radiation generators that only work in vacuums to nonetheless aim the radiation at something that isn't in a vacuum
00:27:26 <ais523> (presumably in cases where you couldn't just use glass or another transparent material)
00:28:03 <CakeProphet> Gregor: so both programs would get to take turns inputing a text command into the environment. It could easily be a 2D grid of "rooms" or just cells.
00:28:30 <Gregor> CakeProphet: I think mine requires less strong AI :P
00:28:49 <CakeProphet> no not like that. more like a MUD that rogue.
00:28:57 <CakeProphet> north south east west
00:29:05 <Patashu> Gregor have you ever played with Robocode
00:29:14 <CakeProphet> get, put, kill, etc
00:29:43 <CakeProphet> I like the MUD-like interface because then you can theme it about something.
00:29:47 <Gregor> Patashu: I've looked at it a bit, but Java makes me want to puke :P
00:30:08 <CakeProphet> TWO PREHISTORIC HUMANS IN A FIELD WITH SPEARS HUNTING WILD GAME AND TRYING TO STARVE OR KILL THE OTHER, or.. something.
00:30:11 <Patashu> poor Gregor
00:30:17 <Patashu> he has a java allergy
00:30:24 <Patashu> it makes him break out in rashes on touch
00:30:39 <Patashu> we had to ban java from our high schools to ensure Gregor and people like him's safety
00:30:57 <CakeProphet> !sh touch AbstractProxyUtilityHandlerFactory.java
00:30:58 <EgoBot> ​/bin/touch: cannot touch `AbstractProxyUtilityHandlerFactory.java': Permission denied
00:31:10 <ais523> beautiful
00:31:10 <Patashu> LOL
00:31:16 <ais523> CakeProphet: did you know that was going to happen?
00:31:29 <CakeProphet> I thought it might but I wasn't sure.
00:31:54 <Patashu> !sh touch hot.stove
00:31:55 <EgoBot> ​/bin/touch: cannot touch `hot.stove': Permission denied
00:31:59 <Patashu> Why mother :(
00:32:31 <Patashu> !sh touch hot.stove & echo "You'll burn yourself, dear"
00:32:31 <EgoBot> You'll burn yourself, dear
00:32:48 <Patashu> That didn't work the way I expected it to
00:32:56 <Gregor> You wanted ||
00:33:09 <Patashu> !sh touch hot.stove || echo "You'll burn yourself, dear"
00:33:09 <EgoBot> ​/bin/touch: cannot touch `hot.stove': Permission denied
00:33:28 <Patashu> If there are two outputs it DCCs one of them to me
00:33:37 <CakeProphet> !sh touch hot.stove && echo "You'll burn yourself, dear"
00:33:37 <EgoBot> ​/bin/touch: cannot touch `hot.stove': Permission denied
00:33:56 <CakeProphet> ...oh, right
00:33:59 <CakeProphet> >_>
00:34:30 <Gregor> So anyway, any further thoughts on CAbattlelandgamelol
00:34:34 <Patashu> I think it's just an EgoBot thing
00:34:44 <CakeProphet> Gregor: some form of resource gathering.
00:34:50 <CakeProphet> something to do with said resources
00:35:02 <CakeProphet> an objective
00:35:02 <Gregor> That's the trick, innit ;P
00:35:11 <CakeProphet> and surrender conditions.
00:35:14 <Patashu> Oh oh, make it like civilization
00:36:10 <CakeProphet> Gregor: well you have a home. you probably don't want it destroyed. you take resources back to your home to build things and uh... hatch more of yourself.
00:36:23 <CakeProphet> ??
00:36:45 <Patashu> Would you be able to see everything at all times, or only within a certain range?
00:36:50 <Gregor> My thoughts were basically this: The resources include the one you're trying to collect, as well as an abundant building material. You build an area and try to collect stuff into it.
00:37:05 <Gregor> (The stuff you're trying to collect always moves randomly)
00:37:10 <Gregor> Patashu: Only an area.
00:37:19 <Patashu> I think there ought to be some kind of directionality in both humans and animals
00:37:20 <Patashu> Like in robocode
00:37:37 <Gregor> Patashu: Directionality in what sense? You know what north is?
00:37:48 <Patashu> Because it makes movement non-trivial; based on which way you're pointing, your enemy is pointing and your guns are pointing as well as which direction you think your enemies will move next, you have to decide what to do next
00:37:56 <Patashu> direcitonality as in, if I'm moving in a direction X I can keep moving in it or turn
00:38:17 <Gregor> Oh
00:39:22 <Patashu> Without advantaged and disadvantaged positions it boils down to RPS
00:39:28 <CakeProphet> the grid itself could also be a kind of program, like a fungespace
00:39:49 <Gregor> CakeProphet: Yeah, I wanted it to be a CA of some kind.
00:39:51 <CakeProphet> allowing you to create things like tripwires.
00:40:04 <Gregor> That could make advantaged and disadvantaged areas, as well as allow for cleverness by players.
00:40:26 <Patashu> a CA like the game of life, or a CA more like von neumann's CA?
00:40:32 <Gregor> Unsure.
00:40:39 <Patashu> maybe animals breed according to the game of life
00:40:41 <Patashu> LOLOL INFINITE SHEEP
00:41:24 <CakeProphet> I think a fungespace would be more interesting than something like GoL
00:41:41 <Gregor> CakeProphet: I think a CA other than GoL would be more interesting still :)
00:41:48 <Patashu> a fungespace with instruction pointers, or circuit-like execution?
00:42:04 <Patashu> are your mans the instruction pointers?
00:42:53 <CakeProphet> yes to everything
00:43:01 <Gregor> Umm :P
00:43:19 <CakeProphet> well no
00:43:31 <CakeProphet> your agent(s) would be writers
00:43:44 <CakeProphet> that can place codes
00:43:53 <CakeProphet> on a concurrent fungespace thing.
00:44:36 <CakeProphet> and also read what the current code is I guess.
00:44:53 <Gregor> I don't want the substrate to be so complex that you can't make at least some kind of analysis of it ...
00:45:03 <Patashu> yeah that's what I was thinking
00:45:07 <Patashu> too complicated = ded
00:45:10 <Gregor> All I want is a CA that's /mostly/ but not entirely stable, like wireworld, but maybe a bit nicer.
00:45:18 <Patashu> wireworld sounds nice
00:45:26 <Patashu> maybe wireworld with instant (or faster than normal) transmission?
00:45:30 <Patashu> like 10 generations per one mans generation
00:46:30 <Patashu> and explicit input/output mechanisms that send signals and pick up signals
00:46:41 <Gregor> My concern with wireworld is less about propogation time (although I agree) than about whether it makes a suitable substrate ... I think it might be /too/ stable. Most random circuits I suspect would normalize to blackness and cold wires.
00:47:06 <Patashu> random circuits would be uninteresting yeah
00:47:46 <Gregor> But maybe wireworld with a SLIGHT change can improve that?
00:48:00 <Gregor> (I'd rather have the substrate be more-or-less random, so you have to do something to get interesting behavior)
00:48:08 <CakeProphet> wouldn't it be interesting if your agent(s) could place and remove conductors?
00:48:13 <Patashu> What kind of slight change do you have in mind?
00:48:24 <Gregor> CakeProphet: I think it's vital :)
00:48:42 <Gregor> Patashu: Addition of a new state? Something like "electron barfer" that just makes infinite electrons at some rate?
00:48:55 <Patashu> It's easy to make electron generators already
00:49:02 <CakeProphet> why not just start with empty? or do you not want to be like bfjoust where there's not much variation in the terrain.
00:49:48 <CakeProphet> you could just add a number of new states.
00:49:51 <Gregor> CakeProphet: I feel like deciding a good home base should be important, and for that we need randomized "terrain", even with biomes ala Minecraft.
00:50:00 <Gregor> Patashu: Yeah, but then most terrain would freeze.
00:50:13 <Gregor> CakeProphet: Such as?
00:50:19 <CakeProphet> for example, you could have a state that generates electron heads on every neighboring conductor if an agent is present.
00:50:41 <CakeProphet> pressure plate. :)
00:50:48 <Gregor> +1
00:50:55 <Gregor> <-- googwhore
00:51:01 <Patashu> Buttons that agents can deign to push
00:51:08 <Patashu> Levers that agents can deign to toggle between electron barfer and do nothing
00:51:14 <Patashu> So basically minecraft
00:51:18 <CakeProphet> lol no
00:51:18 <yourstruly> yes
00:51:41 <Gregor> What's your struly doing here?
00:52:15 <CakeProphet> Patashu: but since minecraft has redstone which acts similar to wires, and we're using a wire-like CA
00:52:19 <CakeProphet> there's going to be similarities.
00:52:34 <Patashu> yeah it's inevitable
00:52:35 <Gregor> Naw, levers = too much intelligence.
00:52:45 <Gregor> Remember these are programs, not people :P
00:52:56 <CakeProphet> still we haven't really established a point to all of this wire business.
00:52:59 <Patashu> maybe instead of wireworld, have explicit links between components? so it's easier to analyze by a bot
00:53:04 <Gregor> CakeProphet: True X-D
00:53:28 <CakeProphet> so if the point is to maybe trap the other agent so that it can't move, then you'd want some kind of wall state.
00:53:51 <CakeProphet> if the point is to gather resources then you want a way for the wires to act as supply lines.
00:54:23 <Gregor> Not necessarily, you could still just want them to be a wall, to prevent the other player from stealing them as well as mark your territory.
00:54:59 <CakeProphet> ah, I know.
00:55:12 <CakeProphet> certain actions could have costs involved. setting up and removing walls would cost points.
00:55:30 <Patashu> of course
00:55:47 <CakeProphet> but I think conductor should be free, perhaps?
00:55:59 <Gregor> Naw, just plentiful in the substrate and collectable.
00:56:06 <CakeProphet> ah.
00:56:22 <Patashu> can you sabotage your opponents mechanisms?
00:56:24 <Gregor> You have to destroy the substrate to build anyway *shrugs*
00:56:29 <Gregor> Patashu: Why not?
00:56:46 <Gregor> OOOH OOOOH OOOOOOOH
00:56:52 <Gregor> Capture the flag
00:56:52 <Patashu> well, if it's too easy you'd never build anything
00:56:57 <Gregor> Your flag is a special electron.
00:57:02 <CakeProphet> aha
00:57:17 <CakeProphet> a permanent electron head?
00:57:29 <Gregor> Not permanent, or it wouldn't be enormously collectable :P
00:57:33 <Patashu> so could it be moved around, you mean?
00:57:42 <Gregor> When you join, it would create a repeater to keep it alive, then you could try to protect it.
00:57:56 <CakeProphet> I think it would be interesting if you had to conduct the flag back to your base instead of just take it and run. :)
00:58:26 <Gregor> CakeProphet: Hmmmmmmmmmmmmmmmmmmmmmmm, but then we still need a consistent notion of "base" :)
00:58:48 <Patashu> Your base is the area enclosed by base markers, which take X resource to produce
00:58:58 <CakeProphet> no need to make it all formal
00:59:04 <CakeProphet> a single cell could easily have multiple kinds of states.
00:59:17 <CakeProphet> base would just be a special designation for the location you started at.
00:59:26 <Gregor> CakeProphet: Started at is no good.
00:59:37 <CakeProphet> er, why?
00:59:38 <Gregor> CakeProphet: I wanted to make so-called biomes so you would need to find a good spot.
00:59:55 <CakeProphet> what were we saying about complexity? :P
01:00:02 <Gregor> Hm :)
01:00:06 <CakeProphet> admittedly that would be cool if it's not too absurd.
01:00:09 <Patashu> If you have biomes, random map generators would be biased in favour of one player or another too often
01:00:39 <Gregor> Patashu: Not if it always puts you in a shitty location X-D
01:00:43 <Patashu> haha
01:01:06 <CakeProphet> exploration would be very time consuming in a game like that.
01:01:51 <Patashu> reminds me of opening turns in civilization 1
01:01:51 <Gregor> Fair enough ... so maybe a consistent (though random) substrate, and your starting location (+radius X?) is your base.
01:01:55 <CakeProphet> the main problem with carrying a flag electron is that that's not how wireworld works.
01:02:05 <Patashu> if you don't like your first spot, it takes an entire turn to move your initial settler one tile, and you often don't have anything else to explore with you
01:02:06 <CakeProphet> electrons can branch off onto two conductors, where would the flag go in that situation?
01:02:27 <CakeProphet> I guess they could ALL be flags...
01:02:44 <Gregor> CakeProphet: Yeah, I haven't fully thought that through :)
01:02:51 <CakeProphet> as long as they come from another flag electron head, which has to originate from someone's base
01:03:07 <Patashu> what if you take it to an AND gate, and it's not sending output? it just...gets blocked there?
01:03:14 <CakeProphet> sure.
01:03:15 <Patashu> maybe you could drag it back to the previous gate and do a do-over
01:03:29 <Patashu> build another wire out of your opponent's base to go around it
01:03:30 <Patashu> XD
01:03:30 <CakeProphet> I'd imagine part of the strategy would be trying to prevent a flagged electron from arriving.
01:03:33 <Patashu> short circuiting!
01:03:35 <Gregor> Clearly we need more sophisticated rules for the not-actually-an-electron-head flag *shrugs*
01:04:09 <CakeProphet> and the attackers strategy would be to keep the flag alive by creating branches, carrying it through a trap to block the defender, etc.
01:04:50 * Gregor hmms, unconvinced.
01:05:28 <CakeProphet> you just need a medium-sized list of states that play nicely together. so one kind of wall could be electron-activated.
01:05:44 <Patashu> have any of you ever played DROD?
01:05:53 <Sgeo_> danggit
01:05:54 <CakeProphet> the other kind just stays there until someone removes it.
01:06:01 <Gregor> Patashu: Nope
01:06:31 <Sgeo_> None of {elliott, Phantom_Hoover, Taneb} are here
01:06:36 <CakeProphet> both can be removed. everything could be torn down at a cost.
01:06:51 <Patashu> You should try it, it's a unique puzzle game revolving around slashing things with your sword and not dying and also puzzles
01:06:56 <Gregor> Sgeo_: Seed money for the reanimator.
01:07:00 <Patashu> It has directionality in that your sword is facing in only one direction at any given moment
01:07:08 <CakeProphet> Gregor: probably the best way to go about a competitive programming game of this complexity
01:07:24 <CakeProphet> is to go ahead and build the codebase, throw together some ideas, test it out, revise.
01:07:26 -!- copumpkin has quit (Ping timeout: 240 seconds).
01:07:34 <Gregor> CakeProphet: Probably a fair point ...
01:07:47 <CakeProphet> until it makes sense and is competitive.
01:08:17 -!- copumpkin has joined.
01:08:42 <Gregor> So, what are our states thusfar?
01:09:01 <Patashu> Are animals and resources CA states or actors?
01:09:07 <CakeProphet> wireworld states. modifier states: flag, base
01:09:18 <Gregor> Patashu: I think we kinda lost animals and resources :)
01:09:30 <CakeProphet> well I think resources would still be a good idea
01:09:30 <Gregor> CakeProphet: So, no walls now :P
01:09:36 <CakeProphet> er wait, yeah, walls.
01:09:39 <Patashu> Haha
01:10:01 <CakeProphet> electron-activated walls, regular walls, triggers (aka pressure plates, buttons, whatever)
01:10:03 <Gregor> CakeProphet: And I'm far from convinced that flags should be special electrons, I think they should be a separate state that just has some similar behavior to electrons.
01:10:34 <Gregor> The thing is, with the design as it stands, non-flag electrons serve no purpose whatsoever :)
01:10:34 <CakeProphet> I think the resources are important because otherwise it becomes far too easy to just destroy something the other player built.
01:11:01 <CakeProphet> so to destroy something would cost something. time, points, whatever.
01:11:19 * Gregor continues to hmmm.
01:11:34 <CakeProphet> Gregor: they would activate various "output" devices I'd imagine. Like the powered walls.
01:11:42 <Patashu> I think it should cost more to destroy than to create
01:11:44 <Patashu> Else why ever build?
01:12:29 <CakeProphet> but if you want it so that you "collect" resources then you could have it so that there's ownership of things.
01:12:34 <CakeProphet> yours, enemies, unowned.
01:12:53 <Gregor> Balance is going to be a real trick ...
01:12:59 <CakeProphet> so you could up yours/unowned for free, and keep it
01:13:11 <CakeProphet> but then to destroy an enemies you need to expend something.
01:13:20 -!- jcp has joined.
01:13:25 <Gregor> Maybe natural electrons are a resource, and the terrain generator would make sure they're stable in some places?
01:13:40 <CakeProphet> that sounds reasonable.
01:13:53 <CakeProphet> I guess that would be the only way to generate power.
01:14:21 <CakeProphet> complexity isn't bad... it would just be a long-term game. which makes it more interesting.
01:14:40 <Gregor> My concern in the complexity is that nobody would ever write a player :P
01:14:58 <CakeProphet> well if you have it so that you connect to the server and send commands from any language you want
01:15:07 <CakeProphet> then it wouldn't be too bad to keep track of state and such.
01:15:23 <CakeProphet> as opposed to bfjoust where it's always brainfuck and so even the smallest bit of complexity results in huge programs.
01:15:56 <Gregor> Oh, absolutely this is an any-language game.
01:16:02 <CakeProphet> I think to maintain sanity you'd need concurrent agents that you could eventually produce with resources.
01:16:23 <CakeProphet> that could also be killed, perhaps.
01:16:31 <CakeProphet> I don't know.
01:16:33 <CakeProphet> just an idea.
01:16:35 <CakeProphet> throwing shit out there.
01:16:40 <Gregor> If they're concurrent over the interwebs, then peoples' connections cause them unfair ad/disadvantages :(
01:16:49 <CakeProphet> just need a round robin scheduler.
01:16:58 <CakeProphet> with a surrender timeout. :P
01:17:05 <Gregor> CakeProphet: Then it would take days to get a frame X_X
01:17:08 <CakeProphet> if you take too long to issue your commands then you automatically lose.
01:17:18 <CakeProphet> days?
01:17:21 <CakeProphet> don't see why.
01:17:33 <Gregor> <CakeProphet> if you take too long to issue your commands then you automatically lose. // then we're back to connection ad/disadvantages.
01:17:58 <CakeProphet> well otherwise it just hangs forever until the player reconnects.
01:18:04 <CakeProphet> it could be a long timeout. :P
01:18:10 -!- jcp|other has joined.
01:18:22 <Gregor> CakeProphet: OK, then it'll take days to render a frame :P
01:18:35 <CakeProphet> ...still not following.
01:18:49 <Gregor> "Days" is obviously an exaggeration.
01:19:01 <CakeProphet> oh... yeah didn't catch that.
01:19:13 <CakeProphet> I'd imagine it would take like... miliseconds.
01:19:20 <Gregor> My point is that if you have to wait 500ms for every update, we're talkin' multi-day epics to actually accomplish anything.
01:20:25 <CakeProphet> how long you have to wait would just depend on the connection latency
01:20:29 <CakeProphet> it probably wouldn't take that long
01:20:40 <CakeProphet> but I don't think it's something you can really avoid.
01:20:57 <Gregor> You can make it less terrible by running the programs on the same machine/network :P
01:21:31 <CakeProphet> with the non-concurrent setup it would take hundreds of steps to use a defensive strategy to upkeep your camp/resources/whatever
01:22:27 <Gregor> 100 steps is probably about a minute over the Internet.
01:22:52 <CakeProphet> oh well, I'd wait. :P
01:23:21 <CakeProphet> but yeah you could host them on the same machine.
01:23:32 <CakeProphet> just pass an input handle to the programs.
01:23:41 * Gregor continues to hmm.
01:23:47 <CakeProphet> er, output handle rather.
01:24:01 <CakeProphet> stdout of the client program would be the input to the server.
01:24:09 <CakeProphet> er, what am I talking about just use stdio :P
01:24:11 <CakeProphet> lol
01:24:35 <CakeProphet> so yeah new agents would be expensive
01:24:47 <Gregor> *eh*
01:24:48 <CakeProphet> if possible at all.
01:25:06 <Gregor> If anybody knows how to safely run untrusted code, it's me :P
01:25:11 <CakeProphet> unless you do the redcode thing where you can't actually go faster you can just be in multiple places at once.
01:25:41 <Patashu> Robocode manages to do it somehow
01:25:46 <CakeProphet> but still that should cost something because that's still an advantage.
01:26:01 <Gregor> Hmmmmmmmmmmm
01:26:17 <CakeProphet> it would certainly make it feel more like an RTS of sorts.
01:26:19 <Patashu> http://en.wikipedia.org/wiki/Robocode#Safely_run_other_peoples.27_bots
01:26:37 <CakeProphet> well if you just sandboxed everything and set permissions I don't see the problem.
01:27:26 <Gregor> Patashu: Robocode is VM'd, sandboxing a VM is boring.
01:27:36 <CakeProphet> okay so I think an important first step would be to figure out how resources would work for the first draft.
01:27:41 <Gregor> I don't see the PROBLEM, I'm just hmming over the necessities.
01:27:43 <Gregor> Yeah.
01:27:53 <CakeProphet> as resources are essential to the strategy.
01:28:13 <Gregor> Are we agreeing that electrons are a legit resource?
01:28:15 <CakeProphet> so you could have it where there's electron geysers out in the world, and you have to funnel them to your base. electrons = points
01:28:31 <CakeProphet> or you could have it where you just go around scavenging shit.
01:28:36 <CakeProphet> yes.
01:29:09 <CakeProphet> also a form of logic, for doing things.
01:29:10 <Gregor> Hmmm, I think we need a more powerful notion of "base" if we want to funnel electrons to the base ... plus that makes doing things at the opponents base or making decoys annoying.
01:30:11 <CakeProphet> well, the other alternative would be to... somehow have electrons construct other states themselves through uh... some kind of funky voodoo.
01:30:25 <CakeProphet> I'm not entirely sure what a decoy would be in this game....
01:31:03 <CakeProphet> or you could have it where you just claim the geysers and they build electrons automatically over time, but that's kind of lame I think.
01:31:40 <Gregor> That is lame.
01:31:50 <Gregor> Also by "geyser" I hope you just mean "stable circuit"
01:32:06 <Gregor> Not the mythical electron barfing cell.
01:32:13 <CakeProphet> no I mean like resources that's autogenerated on the map that you have to find and then connect to your base.
01:32:22 <CakeProphet> basically an electron generator/repeater thing.
01:32:40 <Gregor> Right, but that can be done with plane wireworld circuitry, not anything special.
01:32:43 <CakeProphet> but I guess it could be a stable circuit, sure.
01:32:43 <Gregor> That's all I wanted to make sure of :P
01:33:00 <CakeProphet> the only difference would be that the stable circuit could be destroyed.
01:33:09 <CakeProphet> whereas the geyser has the possibility of being indestructable.
01:33:37 <Gregor> Maybe you can place a conductor potentia, which will become a conductor if electrified, but can only be placed next to a conductor?
01:33:59 <CakeProphet> I believe that is the same thing as a conductor in essence.
01:34:11 <Gregor> With the caveat that you couldn't build it at unlimited rate.
01:34:23 <Gregor> So it makes electrons a sort of /implicit/ resource, rather than explicit.
01:34:34 <CakeProphet> to generate conductors
01:34:43 <CakeProphet> but then you have no other devices to make the conductors useful.
01:34:55 <CakeProphet> unless they also have potentia things.
01:35:10 <Gregor> Idonno how many of the other cells I'm convinced of yet ^^
01:35:30 <CakeProphet> well, if electrons don't power other cells then essentially they have to be tied directly to the objective.
01:35:33 <CakeProphet> otherwise they do nothing.
01:35:53 <Gregor> Oh right X-D
01:36:00 <Gregor> I think I made that point, didn't I :P
01:36:11 <CakeProphet> we both did at some place.
01:36:34 <Gregor> If the other cells are not usable as conductors, and not useful at home, they may as well be near-free to build, since you'll have to get the conductor out there anyway.
01:36:36 <Gregor> Big ifs though.
01:36:56 <CakeProphet> makes sense.
01:37:16 <CakeProphet> they should perhaps take different amounts of time to build though.
01:37:19 <CakeProphet> time is always a resource.
01:37:25 <Gregor> Indeeeeeeeeeeed.
01:37:31 <CakeProphet> where time is measured in turns here.
01:37:51 <CakeProphet> also to destroy
01:38:07 <CakeProphet> thus giving you the decoy dynamic of bfjoust sort of.
01:38:11 <CakeProphet> but more complex.
01:38:16 <Gregor> Incidentally, the electrons do directly correspond to a goal condition if you have to build conductors potentia and ferry the flag back.
01:38:27 <CakeProphet> right.
01:38:51 <CakeProphet> though you od need to make it possible to have /multiple/ flag electrons... since... that's how the rules work.
01:39:17 <CakeProphet> let's say your flag is going left to right: ----===
01:39:20 <Gregor> Yeah, I'm still trying to rectify that X-D
01:39:31 <CakeProphet> it would need to split into two flag electrons at the =
01:39:38 <Patashu> Interesting. In robocode, you don't know when your enemy shoots
01:39:39 <Patashu> You have to guess
01:40:10 * Gregor hmms away.
01:40:15 <CakeProphet> which, isn't necessarily a bad thing as it might make attack/defense more interesting. but it also might make attack really simple because you could just build large numbers of branching circuits that take too long to destroy.
01:40:47 <CakeProphet> perhaps at a branch point the flag non-deterministically chooses a path. :P
01:41:10 <Gregor> Oh, I was thinking that when you had multiple flags, they would only have to ferry ONE back.
01:41:16 <Gregor> So your goal is to NOT duplicate your flag.
01:41:32 <Gregor> Plus there's the issue that we have to figure out what happens if your flag should be snuffed out.
01:41:41 <CakeProphet> er, perhaps we are imagining different setups here.
01:41:54 <Gregor> Almost assuredly :)
01:42:38 <CakeProphet> I was thinking that a flag electron is just a thing that is generated from your opponents base (or some other base-like point... their.. flag?) when you attach a conductor to it.
01:42:49 <CakeProphet> so the flag itself is stationary, but the flag electron could die.
01:43:00 <Gregor> Ohhhhhhhhhhhhhhhhhhhhhhhhhh
01:43:15 <Gregor> I was thinking the flag electron was something put in a stable circuit when you started/joined.
01:43:25 <CakeProphet> that's a possibility I suppose.
01:43:47 <CakeProphet> but with either setup generating multiple flag electrons is still problematic
01:43:50 <CakeProphet> makes offense really simple.
01:43:57 <Patashu> What if you destroy your own flag electron? What if your enemy destroys their opponent's flag electron? Can it be determined who's fault it was?
01:44:14 <CakeProphet> well, in gregor's system the flag electrons could just be made indestructible.
01:44:24 <CakeProphet> in mine it wouldn't matter as the flag which generates the flag electrons is permanent.
01:44:51 <CakeProphet> there's no need to include any sort of understanding of culpability. :P
01:45:03 <Patashu> Okay then
01:45:11 <Gregor> CakeProphet: I'm still not sure if I comprehend why duplication makes offense simple ...
01:45:30 <CakeProphet> well you could make this massive branching circuit to their flag
01:45:35 <CakeProphet> the flag moves along, branches like 20 times.
01:45:39 <CakeProphet> how does the defender fix this?
01:46:16 <CakeProphet> (the defender is trying to kill the flag electron that was generated... so that it doesn't reach the offenders base)
01:46:19 <Gregor> Why do they need to fix it? The time investment to make use of it to steal their flag would be enormous.
01:46:21 <CakeProphet> this is how capture the flag works, right? :P
01:46:39 <CakeProphet> true enough, I suppose that is the limitation of that offense strategy.
01:47:13 <CakeProphet> something that would require testing I think.
01:47:24 <CakeProphet> instead of just speculation.
01:47:40 <Gregor> I agree, but I also don't think we have enough specifics on our speculation to implement :)
01:47:44 <Gregor> (yet)
01:47:45 <CakeProphet> right.
01:47:50 <Gregor> bbiab
01:48:39 <CakeProphet> okay so I guess our main resource is time really, if I'm understanding your connector potentia thing.
01:49:05 <CakeProphet> the time it takes for each electron to activate the next s/connector/conductor/r
01:50:00 <Gregor> Well, it's sort of a combination of electrons and time. You could reduce the time taken by having more electrons on the circuit.
01:50:11 <Gregor> Incidentally, I'm not back :P
01:50:15 <Gregor> (still bbiab :P )
01:51:24 <CakeProphet> so basically you could set up a bunch of dead conductors, and it would take a single pulse to activate each dead conductor into a live one.
01:51:33 <CakeProphet> (I just wanted to avoid saying potentia again :P )
01:52:27 <CakeProphet> build time and other specifics can be fine-tuned later, for now we can just establish some methods of operation.
01:55:17 <CakeProphet> also if there's no concurrency I think it would be interesting if you had a reader agent and a writer agent that were distinct.
01:55:33 <CakeProphet> so the reader agent is roaming around surveying and the writer agent is building/destroying
01:57:23 <CakeProphet> so then at least you're not constrainted to one cell per turn.
01:57:52 <CakeProphet> your reader could be planning ahead while the writer is busy building.
02:01:25 <CakeProphet> if there were walls then the opponent could lead your reader into a trap box. hilarity ensues.
02:03:06 <CakeProphet> also one of the nice things about using general-purpose languages would be that you could write libraries with common utilities that you'd want for this sort of thing.
02:03:46 <CakeProphet> thus making program writing easier once you've established your own set of tools
02:03:51 <CakeProphet> or used someone elses.
02:10:16 <CakeProphet> so you could start with the basic wireworld + base + agent + flag + flag electron setup
02:10:27 <CakeProphet> play with that, and then brainstorm additions.
02:10:53 <CakeProphet> well I guess base = flag right now
02:15:27 <Patashu> hey guys, new a boy and his blob TAS http://tasvideos.org/forum/viewtopic.php?t=11686&highlight=
02:15:30 <Patashu> pro watch
02:15:43 <CakeProphet> > 1/0
02:15:44 <lambdabot> Infinity
02:15:50 <Patashu> > -1/0
02:15:51 <lambdabot> -Infinity
02:16:38 <CakeProphet> shouldn't that be NaN or something?
02:16:52 <Patashu> > 0/0
02:16:52 <lambdabot> NaN
02:16:55 <Patashu> There you go
02:16:58 <CakeProphet> > (1/0)/(1/0)
02:16:58 <lambdabot> NaN
02:17:19 <Patashu> If this was mathematica we'd have directional infinity for all of the directions, all of them
02:17:48 <CakeProphet> but instead we're just using the IEEE floating point standard
02:18:36 -!- itidus21 has joined.
02:18:46 <CakeProphet> > sqrt -1
02:18:47 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
02:18:47 <lambdabot> arising from a use of `...
02:18:53 <CakeProphet> :t sqrt
02:18:53 <lambdabot> forall a. (Floating a) => a -> a
02:18:58 <CakeProphet> > sqrt (-1)
02:18:59 <lambdabot> NaN
02:19:10 <Patashu> haskell has complex numbers doesn't it?
02:19:20 <CakeProphet> awww, I was hoping for a Complex number. Though that would make sqrt way more difficult to use for the most common case.
02:19:23 <CakeProphet> yes.
02:19:30 <CakeProphet> > 2 :+ 2
02:19:30 <lambdabot> 2.0 :+ 2.0
02:19:40 <Patashu> :t :+
02:19:41 <lambdabot> parse error on input `:+'
02:19:55 <CakeProphet> :t (:+)
02:19:56 <lambdabot> forall a. (RealFloat a) => a -> a -> Complex a
02:20:01 <Patashu> aah
02:20:27 <CakeProphet> but then sqrt would have to be Complex a -> Complex a
02:21:54 <zzo38> How would something like IO monad be implemented directly in Haskell?
02:22:21 -!- itidus20 has quit (Ping timeout: 252 seconds).
02:22:25 <CakeProphet> I don't think it could be because there's no side-effects otherwise.
02:22:52 <CakeProphet> you'd need some kind of side-effect primitive that isn't IO...
02:23:58 <CakeProphet> why do all of the Haskell tutorials introduce monads as something to be scared of.
02:24:03 <CakeProphet> when they are really very simple.
02:24:19 <zzo38> But for example, the side-effects could be external, or they could be faked based on some other function that takes input and then makes everything in the monad happens using that given input and produces one output
02:24:42 <zzo38> That is what I mean.
02:25:31 <CakeProphet> not really very different from what is already happening, sort of.
02:25:57 <monqy> http://r6.ca/blog/20110520T220201Z.html may be relevant?? I don't entirely understand the question, though.
02:27:23 <CakeProphet> type IO a = RealWorld -> (a, RealWorld)
02:27:27 <CakeProphet> you could do something like this.
02:28:01 <CakeProphet> and then have functions from RealWorld -> RealWorld or something.
02:29:22 <Patashu> realworld encapsulates the IO state?
02:29:45 <zzo38> monqy: OK that is relevant.
02:30:03 <zzo38> CakeProphet: OK, that can be one way too.
02:30:37 <CakeProphet> yeah GHC defines IO as: newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
02:30:57 <monqy> CakeProphet: of course this is deeply magical and most likely highly misleading
02:31:10 <CakeProphet> the only magical part is RealWorld I guess.
02:31:24 <monqy> and State#
02:31:25 <zzo38> Well, I am not making it based on the actual IO type, I am using my own types instead.
02:32:12 <zzo38> With such kind of thing, how would return and >>= be implemented?
02:32:25 <CakeProphet> your guess is as good as mine...
02:35:50 <Gregor> Back. CakeProphet: What's goin' onnnn
02:35:51 <itidus21> IO may cause drowziness.
02:36:26 <Gregor> <CakeProphet> so basically you could set up a bunch of dead conductors, and it would take a single pulse to activate each dead conductor into a live one. // my thought was that a conductor potentia had to be next to a (non-potentia) conductor.
02:36:27 <CakeProphet> Gregor: see above.
02:36:47 <Gregor> <CakeProphet> also if there's no concurrency I think it would be interesting if you had a reader agent and a writer agent that were distinct. // So, if there's no concurrency, concurrency? :)
02:36:54 <CakeProphet> lol
02:37:07 <CakeProphet> a more limited form I suppose.
02:37:44 <Gregor> <Patashu> hey guys, new a boy and his blob TAS http://tasvideos.org/forum/viewtopic.php?t=11686&highlight= // how pro we talkin' 'bout ;P
02:38:10 <Patashu> gregor, it gets to the credits THEN beats the game rather than the other way around
02:38:19 <Gregor> CakeProphet: I'm trying to decide if being able to build workers makes any kind of sense at all ...
02:38:26 <Gregor> Patashu: OK, that's pretty pro X-D
02:38:43 <CakeProphet> well, spawning more agents makes plenty of sense.
02:38:50 <CakeProphet> the agents could be builders, or... do whatever.
02:39:16 <Patashu> You should watch it :D
02:39:35 <CakeProphet> it certainly opens up possibilities that would otherwise be absent.
02:39:44 <Gregor> CakeProphet: But if you spawn a borg collective, you could just stomp all over things ... needs to be a heavy penalty.
02:40:05 <CakeProphet> well the way it works in redcode is that it slows down each active agent.
02:40:20 <CakeProphet> so basically each player gets the same number of turns still.
02:40:20 <Gregor> That's (IMHO) TOO heavy a penalty.
02:40:33 <Gregor> (Maybe)
02:40:39 <zzo38> That "I/O is not a monad" stuff describes a "data IO a" type with a constructor for each action, and it defines return and >>= to me it looks like it could work. I tried something like that but probably I made a few mistakes now I can fix it
02:41:44 <zzo38> Of course they say is not a monad, but then describe one way which is a monad, too
02:42:26 <CakeProphet> Gregor: well otherwise you need some kind of point system that isn't just electrons.
02:42:39 <Gregor> Patashu: lol, boy in glitchland
02:43:00 <monqy> they say I/O is not a monad, but there's a way to make an IO monad for monadic convenience
02:43:01 <CakeProphet> and really depending on how strategems emerge being in two places at once might be worth being twice as slow.
02:43:25 <Gregor> CakeProphet: I spose >_>
02:43:44 <CakeProphet> especially in a massive 2-d grid world.....
02:43:56 <Gregor> CakeProphet: I guess I'm developing Starcraft: Wireworld in my head :P
02:44:06 <CakeProphet> lol, yeah that would certainly be amazing.
02:44:11 * CakeProphet loves SC
02:44:37 <CakeProphet> if you did have a point system them you could spend large amounts of points on new agents that operate at the same speed.
02:44:49 <CakeProphet> thus, like in most RTSes, the more concurrent you are the better.
02:45:00 <Patashu> this is starting to get way too complex lol
02:45:06 <CakeProphet> Patashu: nah not really.
02:45:07 <Patashu> is this a game for bots or for humans?
02:45:11 <Gregor> Hmm, I don't know if this is feasible, but maybe the penalty could be that the agents can't communicate by magic.
02:45:24 <Gregor> That is, they have to communicate via the server, so have to be near each other.
02:45:30 <Gregor> So to coordinate, you have to regroup.
02:45:32 <CakeProphet> communicate how?
02:45:42 <Gregor> Anything. They have no shared heap.
02:45:43 <CakeProphet> er... that would eliminate the possibility of general-purpose languages.
02:45:54 <Gregor> Naw, it would just change how new agents are created.
02:45:58 <CakeProphet> unless you mean each agent spawns a new process with absolutely no communication.
02:46:01 <Gregor> Rather than multiplexing the chan--- yeah.
02:46:26 <CakeProphet> that might be difficult to implement in practice.
02:46:43 <Gregor> It might be too complex to use :)
02:46:50 <Gregor> Let's just focus on single-agent for the moment and iterate.
02:46:55 <CakeProphet> I'm fine with borg collectives. :P
02:46:57 <CakeProphet> okay.
02:47:42 <CakeProphet> mainly because I could then write a massively concurrent Haskell program that uses STM to coordinate my borglings actions.
02:48:41 <Gregor> Maybe making a new agent not only takes some number of electrons, but destroys the conductors in the process ...
02:48:54 <CakeProphet> have some gathering resources, some building massive branch circuits for offense, some guarding the flag, build more agents as the resources come in. lol
02:49:01 <Gregor> But anyway, we'll think about multi-agent systems later. What details are there left for the single-agent case?
02:49:16 <Gregor> Or details we disagree on but don't realize we disagree on X-D
02:49:34 <CakeProphet> I didn't realize we disagreed on anything.
02:49:41 <CakeProphet> this might be problematic. :P
02:50:03 <Gregor> I think we still disagree on the nature of the flag.
02:50:04 <CakeProphet> basically I'm just throwing ideas out there. I didn't expect every idea that came to mind to be set in stone.
02:50:17 <Gregor> I'm forming a game in my head :P
02:50:40 <CakeProphet> well how does your flag work. I think I already explained mine.
02:51:04 <Gregor> Mine is still a tad bit undefined ^^
02:51:19 <Gregor> Basically I just wanted another type of cell, with behavior similar but not identical to electrons.
02:51:42 <Gregor> Major difference being that you can never end up with no flag at all.
02:51:42 <CakeProphet> it would persist despite lack of a conductor?
02:51:59 <CakeProphet> depends on what kind of capture the flag you want.
02:52:08 <Gregor> I thought we both agreed on ferry-the-flag?
02:52:21 <Gregor> That's sort of what makes my conductors potentias make sense.
02:53:11 <CakeProphet> with that setup you could spend time moving your flag around to throw off the enemy, but it also means that in defense you not only have to stop the offender, but return your flag somewhere safe. turns into a tug-of-war of sorts.
02:53:17 <Gregor> re persistence: Probably the rule would just be that if none of a flag's neighbors is an open conductor, then it doesn't change to a flag tail
02:55:09 <CakeProphet> also splitting is still undefined. do you want it to be possible to have more than one flag at a time?
02:55:15 <Gregor> I'm not sure.
02:55:35 <Gregor> My thought was that if you get even one enemy flag to your base, you win, which I think balances it.
02:55:37 <Patashu> Maybe do away with the idea of agents and everything. Why not just make it a wireworld competitive game?
02:55:51 <CakeProphet> because you need something that... writes to the grid.
02:56:07 <CakeProphet> you can
02:56:14 <Gregor> Also programming in wireworld is terrible, so you'd have very little intelligence :P
02:56:27 <CakeProphet> 't competitively program a grid with another program in a separate file.
02:56:29 <CakeProphet> doesn't make sense.
02:56:46 <Gregor> Well, that could probably be rectified, although I don't know how.
02:56:50 <Gregor> But I like our idea better :P
02:56:55 <CakeProphet> yes.
02:57:13 <CakeProphet> I do like the fungespace idea as well, as it would create quite a bit of complexity.
02:57:25 <Gregor> I just feel like that's too much X-D
02:57:45 <CakeProphet> Gregor just doesn't know how to have fun.. :P
02:58:08 -!- itidus21 has changed nick to itidus20.
02:58:53 <Gregor> OK, current full idea: Normal wireworld + conductor potentia + set area around starting location is a base + flag-electrons which are not extinguishable but are duplicable + one flag in enemy base is loss + whoops we forgot how you destroy things.
02:59:05 <CakeProphet> think of all the fun you could have with the # command in befunge. :D
02:59:39 <CakeProphet> you would destroy the same way you build, it would take time.
03:00:29 <Gregor> Oooh, maybe you only have the ability to demote conductor->potentia->blank, so they can try to keep their stuff alive by keeping current?
03:01:02 <CakeProphet> that would make it pretty difficult to destroy a line.
03:01:20 <Gregor> I spose X-D
03:01:25 <CakeProphet> well, maybe.
03:01:31 <CakeProphet> depending on how the potentia works
03:01:34 <CakeProphet> which I'm still not clear on.
03:01:47 <CakeProphet> it might just make keeping your wire alive through that method difficult
03:01:55 <Gregor> Potentia next to electron becomes conductor (NOT electron)
03:02:11 <CakeProphet> can a potentia be placed anywhere?
03:02:15 <CakeProphet> next to other potentia?
03:02:21 <Gregor> Only next to a conductor (NOT potentia)
03:02:31 <CakeProphet> so then to build a wire you have to
03:02:40 <CakeProphet> build potential; wait for pulse; build potential; wait for pulse
03:03:22 <Gregor> Yup
03:03:46 <Gregor> Remember that we said that there are N wireworld moves per agent move.
03:03:52 <Gregor> So it's not like pulses are super-rare.
03:04:09 <Gregor> (Although we may want to rethink that)
03:04:33 <CakeProphet> okay so that either makes it a) difficult to destroy wires b) difficult to defend wires (though defending wires will be difficult either way)
03:05:05 <Gregor> Yeah >_>
03:05:07 <CakeProphet> say your wire is on a fast 1-clock pulse
03:05:13 <CakeProphet> and its moving faste than you demote things.
03:05:13 <Gregor> It's OK if it's difficult, not if it's impossible :)
03:05:17 <CakeProphet> can't break the wire.
03:05:22 <CakeProphet> *faster
03:05:55 <CakeProphet> I think it would just make more sense if it took a set amount of time to clear each state type to blank.
03:06:07 <CakeProphet> and then you just manually rebuild wires to get them working again.
03:06:18 <ais523> hmm, it seems that the space shuttle Enterprise and the starship Enterprise are actually named after each other
03:06:39 <CakeProphet> mutually recursive name attribution? o_o
03:06:44 <ais523> due to Star Trek retroactively changing their canon after the space shuttle was named after the starship
03:06:51 <CakeProphet> wat
03:07:02 <Patashu> it's a... what's it called, a time travel loop that supports itself
03:07:11 <Patashu> not stochastic, not chronological... it was some kind of logic term
03:07:14 <ais523> stable time loop?
03:07:16 <Patashu> maybe
03:07:53 <Patashu> aha, ontological paradox
03:08:27 <Gregor> <ais523> hmm, it seems that the space shuttle Enterprise and the starship Enterprise are actually named after each other // yup
03:09:11 <CakeProphet> I'm still not entirely clear how that's possible.
03:09:35 <Patashu> time travel
03:09:38 <Patashu> literally, if a retcon counts
03:09:54 <CakeProphet> s/I'm/to me, it's/
03:09:57 <CakeProphet> no...
03:10:00 <CakeProphet> retcons don't count.
03:10:02 <CakeProphet> as time travel.
03:10:06 <CakeProphet> one was named after the other.
03:10:12 <Patashu> they don't? if I was a time traveller I could go back in time, alter the past and that's essentially what a retcon is!
03:10:33 <CakeProphet> so they went back in time to rename the starship to Enterprise?
03:10:39 <Patashu> yes
03:10:46 <CakeProphet> but then wouldn't have been named Enterprise the whole time?
03:10:56 <Patashu> that's the point of going back in time to change things, yes
03:11:12 <CakeProphet> or, more importantly, wouldn't that mean that Star Trek actually named their starship after the space shuttle?
03:11:44 <ais523> the Star Trek name came first
03:11:51 <Patashu> it goes both ways. the starship being named enterprise inspired the shuttle being named enterprise inspired the starship being named enterprise more inspired the shuttle being named enterprise more
03:11:54 <ais523> then they retroactively changed their canon to change what it was named after
03:11:59 <Patashu> it's what's called a stable time loop
03:12:18 <CakeProphet> .....no, because it was named enterprise first, and then the space shuttle was named after it.
03:12:19 <Patashu> now that it exists it sustains itself
03:12:25 <Patashu> like the entire plot of chrono cross
03:13:22 <CakeProphet> (if elliott were here he would be berating me right about now)
03:13:25 <CakeProphet> I imagine.
03:14:54 <CakeProphet> so yeah, retcons don't count as reality.
03:15:00 <CakeProphet> the space shuttle was named after the starship.
03:19:00 <CakeProphet> Gregor: perhaps you could build resource collectors separate from your flag. You get one for free and then the rest cost electrons.
03:19:05 <CakeProphet> just a possibility.
03:19:13 <CakeProphet> if you wanted a bit more complexity.
03:20:03 <Gregor> I'm just muddling over the whole thing right now
03:20:07 <zzo38> Do you know if a Char type in Haskell is allowed to store values that are not valid Unicode code points?
03:20:33 <CakeProphet> example?
03:20:37 <Patashu> Try it, we have lambdabot here
03:21:46 <CakeProphet> !haskell print (unsafeCoerce 4 :: Char)
03:22:16 <CakeProphet> !haskell main = print (unsafeCoerce 4 :: Char)
03:22:23 <Patashu> You broke it
03:22:30 <zzo38> I tried in my computer. I get a "bad argument" error, so I guess it cannot work.
03:22:46 <CakeProphet> Patashu: unsafeCoerce isn't in scope actually.
03:23:09 <Patashu> lol
03:23:10 <CakeProphet> @hoogle unsafeCoerce
03:23:10 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
03:23:20 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 4 :: Char)
03:23:25 <EgoBot> ​'\EOT'
03:23:39 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 7876756434354767667 :: Char)
03:23:43 <EgoBot> ​'\7876756434354767667'
03:24:11 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce True :: Char)
03:24:16 <EgoBot> ​'\8646911284555550920'
03:24:23 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce False :: Char)
03:24:23 <Patashu> Why does that work
03:24:28 <EgoBot> ​'\1091095544'
03:24:33 <CakeProphet> unsafeCoerce is basically like a C typecast.
03:24:46 <Patashu> I thought unicode was only two bytes though?
03:24:51 <zzo38> Well, that is unsafeCoerce. I used toEnum and got bad argument errors
03:24:53 <CakeProphet> depends on the encoding.
03:25:12 <CakeProphet> zzo38: what argument
03:25:25 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce Nothing :: Char)
03:25:30 <EgoBot> ​'\1084214928'
03:25:46 <zzo38> CakeProphet: toEnum 0x1FFFFE :: Char results in bad argument error
03:26:01 <CakeProphet> what does GHC use? UTF32 by default?
03:26:02 <zzo38> Because Unicode only goes from 0x000000 to 0x10FFFF
03:26:08 <CakeProphet> ah
03:26:53 <CakeProphet> so I guess it uses UTF-26 by default.
03:26:58 <CakeProphet> *16
03:27:09 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce [1,2,3,4] :: Char)
03:27:14 <EgoBot> ​'\-8646910737677299423'
03:27:18 <CakeProphet> lol
03:27:24 <Patashu> rofl
03:27:29 <CakeProphet> NOT SO UNSAFE, EH?
03:27:49 <Patashu> !haskell import Unsafe.Coerce; main = print (unsafeCoerce unsafeCoerce :: Char)
03:27:54 <EgoBot> ​'\NUL'
03:27:57 <Patashu> :(
03:28:03 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce ['\0','\0',3,4] :: Char)
03:28:18 <CakeProphet> >_>
03:28:33 <CakeProphet> lol
03:28:40 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce ['\0','\0','1','1'] :: Char)
03:28:44 <EgoBot> ​'\6341068821252833345'
03:29:02 <CakeProphet> I imagine here is where the segfaults begin:
03:29:13 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 0 :: [Char])
03:29:18 <EgoBot> ​""
03:29:29 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 1231251212512 :: [Char])
03:29:33 <EgoBot> ​""
03:29:40 <CakeProphet> or, empty strings?
03:29:42 <CakeProphet> I guess?
03:29:43 <Patashu> lol
03:30:17 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 1231251212512 :: Maybe Char)
03:30:22 <EgoBot> Nothing
03:30:28 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 1231251212512 :: Maybe t)
03:30:48 <zzo38> I don't think that is a proper code
03:30:53 <CakeProphet> ambiguous type variable
03:31:13 <CakeProphet> I'm using unsafeCoerce and you're worrying about proper code? :P
03:31:25 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 1231251212512 :: Either Int Char)
03:31:30 <EgoBot> Left
03:31:37 <zzo38> Well, if Haskell doesn't know what to do with it, because it is ambiguous type variable, then it is even less proper
03:31:39 <CakeProphet> uh... Left?
03:32:23 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 'a' :: Either Int Char)
03:32:27 <EgoBot> Left
03:32:34 <CakeProphet> I wonder what that even means.
03:32:38 <zzo38> It is only "Left", not the value?
03:32:55 <CakeProphet> it's some kind of garbage value I guess.
03:33:40 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce [] :: Either Int Char)
03:33:45 <EgoBot> Left
03:34:22 <CakeProphet> !haskell import Unsafe.Coerce; main = print let Left x = (unsafeCoerce [] :: Either Int Char) in x
03:34:29 <Patashu> Make it print Right and I'll give you money
03:34:43 -!- EgoBot has quit (Remote host closed the connection).
03:34:47 <CakeProphet> !haskell import Unsafe.Coerce; main = print (let Left x = (unsafeCoerce [] :: Either Int Char) in x)
03:34:54 -!- EgoBot has joined.
03:35:01 <CakeProphet> !haskell import Unsafe.Coerce; main = print (let Left x = (unsafeCoerce [] :: Either Int Char) in x)
03:35:15 <CakeProphet> >_>
03:35:38 <Gregor> STOP BREAKING SHIT
03:35:53 <CakeProphet> I'm breaking your bot?
03:36:40 <CakeProphet> surely it would just segfault and crash the haskell thread....
03:36:57 <CakeProphet> or process
03:37:06 <zzo38> !haskell main = print Left 0
03:37:15 <zzo38> !haskell main = print $ Left 0
03:37:27 <zzo38> !haskell main = print 0
03:37:32 <EgoBot> 0
03:37:40 <zzo38> It is not entirely broken
03:38:03 <CakeProphet> lolwat
03:38:10 <CakeProphet> !haskell main = print [1,2,3,4]
03:38:15 <EgoBot> ​[1,2,3,4]
03:38:26 <CakeProphet> !haskell import Unsafe.Coerce; main = print (let Left x = (unsafeCoerce [] :: Either Int Char) in x)
03:38:29 <Patashu> !haskell main = error "stop breaking me"
03:38:29 <CakeProphet> :3
03:38:33 <EgoBot> input.10668.hs: stop breaking me
03:39:09 <CakeProphet> oh I see...
03:39:30 <CakeProphet> when it was printing just "Left" it was going to go print the inner value and then segfaulted because it was a bad pointer.
03:40:50 <CakeProphet> that's my theory anyways.
03:42:38 <zzo38> That seems reasonable.
03:44:31 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 'a' :: Either Int Char) >> print "more"
03:44:36 <EgoBot> Left
03:44:39 <CakeProphet> yep.
03:46:26 <zzo38> What is the ?? kind?
03:47:31 <CakeProphet> er what?
03:48:43 <zzo38> (->) :: ?? -> ? -> *
03:49:14 <zzo38> I also once got the error "Expected kind `??'" but I fixed what I did wrong anyways, I just made a mistake which I corrected
03:49:15 <CakeProphet> oh uh... something to do with boxed/unboxed I think.
03:58:39 -!- sebbu has joined.
03:58:39 -!- sebbu has quit (Changing host).
03:58:39 -!- sebbu has joined.
04:00:45 -!- sebbu2 has quit (Ping timeout: 276 seconds).
04:02:55 <CakeProphet> http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes
04:02:58 <CakeProphet> about halfway down the page.
04:03:04 <CakeProphet> it described the different kinds.
04:03:07 <CakeProphet> *describes
04:04:19 <CakeProphet> ? = any kind, (#) = unboxed tuple, ?? = * or #, # = unboxed type, * = boxed type
04:05:08 <CakeProphet> > (#1,2#)
04:05:08 <lambdabot> <no location info>: parse error on input `)'
04:05:51 <CakeProphet> so unboxed tuples can't be used as arguments.
04:06:39 <CakeProphet> and all functions are boxed
04:06:46 <CakeProphet> is what ?? -> ? -> * says
04:08:53 <CakeProphet> I don't think (#) is ever used outside of ghc intermediate language
04:11:33 <CakeProphet> there is a strange unsafeCoerce that we could not figure out the purpose of in the FFI, a warning is currently emitted when it is used
04:11:36 <CakeProphet> lol
04:34:20 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
04:50:12 <CakeProphet> fungot: sup
04:50:13 <fungot> CakeProphet: i don't think
04:50:40 <CakeProphet> fungot: good point
04:50:40 <fungot> CakeProphet: " ben fnord" or " not provide" :) is it possible to open input port for string?
04:50:47 <CakeProphet> ^style
04:50:47 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa speeches ss wp youtube
04:50:51 <CakeProphet> ^style darwin
04:50:51 <fungot> Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy)
04:51:05 <CakeProphet> fungot: how do you feel?
04:51:06 <fungot> CakeProphet: h.j., on/ structure and origin :) this striking physical feature were those :) macculloch " 517? 2. :( geolog. mag." 1839 page 340. dr. king observed a striking instance :) adaptation be given than that :) 100 to 110. this case :) correlation is that a marriage flight is absolutely necessary with these species/ second bone :) their leg should show clear traces :) two bones having been accumulated at one spot, in so
04:51:27 <CakeProphet> ^speeches
04:51:38 <CakeProphet> ^style speeches
04:51:38 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
04:51:46 <CakeProphet> fungot
04:51:49 <fungot> CakeProphet: we must now repair our faults. the whole people will do the same thing to-night. " keep your old constitution," if you may run counter to all the experience of means, or make them. when the means have long been. in form, and by far the most culpable as respects slavery and the slave revolution in fnord was elected fellow of the college in october, fnord was mingled with fnord that tie which attaches every lover of
04:51:49 <CakeProphet> fungot:
04:54:10 <CakeProphet> ^style lovecraft
04:54:11 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
04:54:18 <CakeProphet> fungot:
04:56:59 <Gregor> CakeProphet: I now have a screen that looks quite similar to static.
04:57:15 <CakeProphet> Gregor: because of unsafeCoerce??
04:57:26 <Gregor> CakeProphet: lolno :P
04:57:27 <yourstruly> yes
04:57:30 <Gregor> CakeProphet: Because I'm implementing a CA
04:57:36 <CakeProphet> oh right.
04:59:11 <CakeProphet> @src foldl
04:59:12 <lambdabot> foldl f z [] = z
04:59:12 <lambdabot> foldl f z (x:xs) = foldl f (f z x) xs
05:11:58 <Gregor> CakeProphet: I can make electrons either virtually nonexistent, or ridiculously abundant >_>
05:12:41 <CakeProphet> cool
05:12:47 <CakeProphet> I'd just have them centered in stable loops.
05:12:59 <CakeProphet> and then have those abundant or scarce
05:14:25 <Gregor> CakeProphet: I was drawing random circuits all over the map, then putting random electrons on it, but basically because of their duplicitous properties that caused them to spread like wildfire.
05:15:17 <CakeProphet> shouldn't they just, kind of travel along?
05:15:27 <CakeProphet> and duplicate on branches?
05:16:51 <Gregor> Yeah, but there are lots of branches.
05:17:15 <CakeProphet> oh, yeah see I would just have some pretty decently spaced out loop circuits.
05:17:29 <CakeProphet> of varying size.
05:17:35 <Gregor> Yeah, I'm starting to agree with that now.
05:17:46 <Gregor> But now I'm not sure what to put in the substrate.
05:17:49 -!- Sgeo_ has left ("Leaving").
05:18:06 <CakeProphet> what do you mean?
05:19:00 <Gregor> Well, my simple-circuits method basically means that if you let an electron out of its loop, it will multiply and fill the whole world :P
05:19:20 <Gregor> (NOTE: I just noticed there is no way to liberate a single electron from its loop, so they have to be in sets of two)
05:26:21 <CakeProphet> wireworld has an electron head and an electron tail.
05:27:26 <Gregor> Uhh, yes, so do I.
05:27:29 <Gregor> Duh
05:27:48 <Gregor> http://codu.org/tmp/conf1.png <-- my current initial config
05:34:07 -!- aloril has quit (Ping timeout: 246 seconds).
05:41:42 -!- Pianoo has joined.
05:41:43 -!- Pianoo has quit (Remote host closed the connection).
05:42:01 -!- Pianoo has joined.
05:42:15 <Gregor> There, much more stable initial config.
05:43:29 <Gregor> http://codu.org/tmp/conf2.png // new initial config
05:47:12 -!- aloril has joined.
05:52:09 -!- Pianoo has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
05:57:35 <Gregor> CakeProphet: https://codu.org/projects/rezzo/hg/ <-- here's the current code if you're curious (no agent interface, basically just an SDL implementation of wireworld)
05:57:56 -!- monqy has quit (Quit: Lost terminal).
05:58:16 -!- monqy has joined.
05:59:43 -!- zzo38 has quit (Remote host closed the connection).
06:09:45 -!- cheater has quit (Remote host closed the connection).
06:10:18 -!- cheater has joined.
06:16:58 -!- oerjan has joined.
06:24:30 -!- cheater has quit (Ping timeout: 240 seconds).
06:28:56 <ais523> hmm, proggit are debating "what should a browser do if it issues an HTTP DELETE request and gets a 302 response"
06:29:25 <ais523> I think they've established that the technically correct response from the browser is "prompt the user whether to HTTP DELETE the target, or do nothing", but that's insane
06:29:26 <oerjan> HTTP LAUNCHMISSILES
06:29:55 <ais523> so the second debate is as to whether the IE9 behaviour (do an HTTP DELETE on the target without prompting) or the everyone else behaviour (do an HTTP GET on the target without prompting) is saner
06:30:06 <ais523> the IE9 behaviour deviates less from the spec, but is rather more destructive
06:30:16 <ais523> (ofc, the correct answer is "don't reply 302 to an HTTP DELETE request")
06:31:16 <NihilistDandy> oerjan: 404 missiles not found
06:31:19 -!- derrik has joined.
06:32:05 <oerjan> oh right, the missile should be launched by the browser, not the infidel server
06:32:48 <oerjan> i'd also like LAUNCHMISSILES to work agains programs which steal focus.
06:32:52 <oerjan> *against
06:33:29 <quintopia> why not turn off focus-stealing?
06:33:33 <ais523> I normally try to set a really hard-line policy on focus-stealing
06:33:40 <ais523> but even the strictest setting isn't strict enough for me
06:33:51 <ais523> I don't want programs to steal focus after I open them, for instance, even though most people do
06:34:05 <ais523> as they take a while to open and I want to be able to type elsewhere meanwhile without my keystrokes going to the wrong place
06:34:21 <oerjan> well i'm a windows xp user *crawls beneath rock*
06:34:28 <quintopia> i want programs to steal focus when they are about to explode and i REALLY NEED TO KNOW ABOUT IT and pretty much no time else
06:34:44 <derrik> where can you turn focus stealing off?
06:34:53 <quintopia> in your window manager config
06:34:58 <quintopia> possibly
06:35:24 <oerjan> quintopia: not even then. you don't want to accidentally type text into an emergency window.
06:35:25 <quintopia> mine only has two settings: no focus-stealing and too much focus-stealing
06:35:55 <quintopia> oerjan: perhaps "only if it is really urgent and i am currently mousing"
06:36:02 <quintopia> rather "not typing
06:36:02 <quintopia> "
06:36:45 <quintopia> would be simple to implement in practice: wait x seconds after the last keystroke to steal focus
06:36:47 <oerjan> quintopia: well assuming you are using Linux, last i used that for a desktop focusing and moving to the top were independent actions
06:37:00 <quintopia> they are
06:37:07 <quintopia> but they really shouldnt be
06:37:38 <oerjan> quintopia: they _must_ be to avoid the problem we are discussing if you also want windows to be able to pop up in emergency
06:37:46 <quintopia> the thing-in-focus should always be on top
06:38:18 <oerjan> quintopia: i recall that the ability to type into a non-top window when you wanted was _extremely_ convenient.
06:38:24 <quintopia> so that when it steals focus it jumps to the front and makes you really aware SOMETHING JUST HAPPENED
06:38:51 <quintopia> i pretty much never use that ability oerjan
06:39:18 <quintopia> more often i get annoyed that the window i want (which is in focus) is hidden by another window
06:39:32 <quintopia> kinda breaks the desktop metaphor
06:39:41 <quintopia> you can't write on the bottom page of a stack of papers
06:40:23 <oerjan> if you want to read one window and use the information to write into another, then it's extremely convenient for the window you read to be able to be larger
06:40:48 <quintopia> (well, if the top page fills your desk, anyway, and i run most of my windows maximized)
06:41:13 <oerjan> oh. i never run maximized.
06:41:26 <monqy> im wacky, tiling
06:41:35 <oerjan> in fact i have carefully placed my browser so that i can still see if something is happening in irc behind it.
06:41:36 <quintopia> do it monqy
06:41:43 <monqy> hm???
06:41:56 <quintopia> oerjan: sounds like a job for translucency ;)
06:41:59 <oerjan> while still having the browser as large as possible
06:42:01 <oerjan> argh
06:42:15 <oerjan> but _that_ would surely annoy me immensely in a browser :P
06:42:30 <monqy> I've been tiling for a few months over two years I think
06:42:32 <monqy> I like it
06:42:50 <quintopia> what is tiling
06:43:00 <oerjan> quintopia: horrible stuff
06:43:02 <monqy> i mean i use a tiling window manager
06:43:10 <quintopia> oh
06:43:16 <quintopia> eh i'm p cool with that
06:44:06 <monqy> I guess it helps that I'm widescreen, prefer keyboard over mouse control
06:44:40 <quintopia> oerjan: i use the fact that i can't see irc while doing other things to increase productivity. i have pop-up notifications if i'm pinged.
06:45:02 <quintopia> (i once ran irc on one screen while trying to work on the other. you can guess what i ended up spending most of my time on)
06:45:04 -!- evincar has joined.
06:45:23 <quintopia> sup evincar. how's Rath this time of year?
06:46:52 <oerjan> oh right you wacky people and using your computers for serious stuff
06:48:02 <evincar> quintopia: The weather sucks. And I guess the war's still on.
06:48:19 <oerjan> also, me not being able to set up irssi and putty to make pinging by visual bell work properly (i also have all sounds off by default)
06:48:45 <oerjan> well, and also me wanting to see what's happening even if i'm not being pinged, i guess
06:49:35 <oerjan> war?
06:49:55 <evincar> He was making a reference to Magic.
06:50:02 <oerjan> aha
06:50:26 <evincar> Because my name, though actually unrelated to MTG, is superficially related to it.
06:52:14 <quintopia> "superficially" meaning "MTG stuff fills the first page if you search 'evincar' on google"
06:52:33 <evincar> So I'm thinking of making little concatenative language where, nominally at least, the one datatype available is a cons-list.
06:52:35 <ais523> I was aware it was an MTG term
06:52:40 <ais523> I don't know if the MTG people made it up or not, though
06:52:50 <ais523> some of their terms they do, some they don't, and some are somewhere in between
06:52:55 <evincar> I'm sure I've told this story before.
06:53:04 <evincar> It's not so exciting.
06:53:06 <monqy> I was completely oblivious as to it not being an original name :'(
06:53:09 <quintopia> if you -magic the search, someone comes up named "anthony evincar murray" on facebook
06:53:31 <evincar> The whole thing is "Evincer of Autumn", but I spelled it with an "a" because I was a dork, but it stuck.
06:53:43 <evincar> Totally unaware of the Magic relation.
06:54:04 <evincar> I wanted to be "he who evinces (brings forth) the autumn".
06:54:09 <oerjan> evincar: well cons-lists are perfectly workable stacks
06:54:25 <quintopia> shouldn't that be "évincer"?
06:54:54 <evincar> oerjan: That's my thinking. Then optimise the shit out of things so that it uses numbers/strings/etc. where applicable.
06:55:16 <evincar> Also I really don't like the distinction between compile-time and runtime, so I think macros are going to be an implicit optimisation as well.
06:55:32 <evincar> And just give functions and macros the same syntax.
06:55:35 <ais523> now I'm trying to remember what "evince" means, other than the name of a PDF reader
06:55:45 <evincar> ais523: Bring forth.
06:55:51 <ais523> aha
06:55:55 <ais523> what a weird name for a PDF reader
06:56:24 <evincar> As in "when a long train of abuses and usurpations, pursuing invariably the same Object evinces a design to reduce them under absolute Despotism, it is their right, it is their duty, to throw off such Government, and to provide new Guards for their future security."
06:56:32 <oerjan> well PDF is based on postscript, which is stack-based. so clearly it's about forth.
06:56:35 <monqy> evincar: implicit optimisation? eh?
06:56:48 <monqy> evincar: you mean it'll do inlining of functions?
06:56:59 <ais523> oerjan: is that an insightful observation or a bad pun?
06:57:01 <ais523> or both?
06:57:01 <quintopia> ais523: it's actually "to show clearly" which makes more sense
06:57:06 <evincar> monqy: Yeah, it's not that exciting. Almost exclusively implicit optimisation is the idea though.
06:57:20 <monqy> evincar: calling them "macros" is a bit off
06:57:28 <oerjan> ais523: mostly the latter
06:57:29 <monqy> evincar: where them is functions which happen to get inlined
06:57:33 <evincar> quintopia: Right, "reveal the presence of" being yet another synonym.
06:57:52 <quintopia> the most common definition actually
06:58:01 <evincar> Yep.
06:58:17 <quintopia> nothing about bringing forth anywhere i've seen
06:58:35 <evincar> I was being a little loose with the definition.
06:58:40 <evincar> Forgive my thirteen-year-old self.
06:58:46 <quintopia> forgiven
06:58:59 <quintopia> but clint eastwood may not be so lenient
06:59:36 <quintopia> (side note: i thought that clint eastwood had never directed any bad movies, but i just saw The Eiger Sanction (1974), and it turns out i was wrong)
06:59:44 <quintopia> *1975
06:59:53 <evincar> monqy: The point is that functions are given in terms of macros (i.e., rewrite rules), not the other way around.
07:00:00 <evincar> I didn't mean to say inline function = macro.
07:00:37 <oerjan> evincar: hm what was the name of that language, i saw it mentioned again the other day...
07:00:43 <oerjan> something on F
07:00:47 <monqy> which language?
07:01:05 <oerjan> implements functions as a special case of fexprs
07:01:16 <NihilistDandy> quintopia: You poor bastard
07:01:32 <evincar> Dunno. Not Factor, though that's at least similar in concept to what I'm up to.
07:01:59 <quintopia> NihilistDandy: i take it you've seen it?
07:02:06 <NihilistDandy> _-_
07:02:21 <quintopia> NihilistDandy: i think The North Face stole some plot ideas from it >.>
07:02:21 <NihilistDandy> WHY CLINT WHY
07:02:28 <NihilistDandy> lol
07:03:38 <oerjan> darn it wasn't fythe, that's gregor's
07:04:14 <evincar> Clint Eastwood. Old West action. Antidote scowl. No two dialects. Acid onto welts.
07:04:23 <evincar> I love anagrams. :)
07:05:03 <NihilistDandy> evincar: Do geese see God?
07:05:10 <NihilistDandy> Palindromes are better.
07:05:24 <oerjan> ok it refuses to show up in a google search
07:07:08 <evincar> NihilistDandy: Sure are.
07:07:20 <evincar> oerjan: What, the language you were thinking of?
07:07:32 <oerjan> yes
07:07:47 <evincar> I would tell you it doesn't matter, but it's gonna bug you nonetheless.
07:07:49 <oerjan> ah http://en.wikipedia.org/wiki/Kernel_(programming_language)
07:07:55 <oerjan> was linked from Fexpr
07:09:05 <evincar> Neat.
07:10:08 <oerjan> palindromes are self-anagrams
07:10:10 <evincar> I'm currently trying to figure out the best way to make stack manipulation transparent and intuitive in a prefix language.
07:10:26 <evincar> I don't like the whole "dup", "drop", "swap" thing.
07:11:00 <oerjan> sounds tricky without introducing variables
07:11:05 <evincar> Would almost prefer, say, $0 (x) = (x x), $1 (x y) = (y x y) etc.
07:11:27 <evincar> Yeah, and variables are sort of the Big No when it comes to concatenative programming.
07:11:46 <evincar> Considering you'd like everything to be point-free and purely compositional etc.
07:13:01 <evincar> I guess since my sole data type is the stack, you could easily manage as many stacks as you want.
07:13:32 <evincar> It might be possible to introduce nice sugar for variables based on that premise.
07:13:52 <evincar> Too messy. :P
07:16:09 <evincar> I'd also like to restrict I/O sanely, so I'll probably have to set up something resembling Haskell's monadic I/O.
07:16:57 <pikhq_> Or you could think outside the box.
07:17:51 <NihilistDandy> Unboxed thinking
07:17:57 <evincar> pikhq_: Well, my first thought was to place effects in a queue or digraph and apply them by need.
07:18:15 <evincar> But the cleanest way to do something resembling that is monads, so far as I can tell.
07:18:38 <shachaf> evincar: You don't need to call it "monads" unless you generalize it like Haskell does.
07:18:49 <evincar> shachaf: Why wouldn't I generalise it?
07:19:10 <evincar> Generalisations make for useful, powerful tools.
07:19:26 <shachaf> Well, sure.
07:22:58 <quintopia> "His central objection was that, in a Lisp dialect that allows fexprs, static analysis cannot determine generally whether an operator represents an ordinary function or a fexpr — therefore, static analysis cannot determine whether or not the operands will be evaluated. In particular, the compiler cannot tell whether a subexpression can be safely optimized, since the subexpression might be treated as unevaluated data at run-time."
07:24:51 <quintopia> It seems like the obvious route here is not to reject fexprs, but to add special functions for retrieving the unevaluated arguments. If the function contains these, do not evaluate the relevant argument. If it does not, evaluate it. I imagine this is what 3-lisp was thinking?
07:25:25 <evincar> I guess so.
07:26:02 <evincar> Although you could go the other route, and have an operator that forces an expression to produce a value.
07:26:18 <evincar> Either way, you're introducing another axiom.
07:26:32 <evincar> On the one hand, implicitly quoting arguments.
07:26:34 <quintopia> and have stuff like 5/0 evaluate to _|_ instead of erroring?
07:26:37 <quintopia> makes sense
07:26:55 <evincar> On the other, an operator for using eager evaluation in an otherwise lazy language.
07:26:56 <quintopia> but i was thinking in static optimization terms
07:27:42 <quintopia> "which expressions is it safe for the compiler to optimize by evaluating or partially evaluating" is the prime question
07:27:55 <evincar> I guess the point is that you can't know, for any given expression, whether there is a context in which evaluating it would produce a value other than the immediately obvious one.
07:28:37 <evincar> In a stack-based language I'm not sure.
07:28:43 <evincar> (NB: I'm going with prefix syntax.)
07:28:55 <evincar> (/ 5 0) seems fairly safe to evaluate to bottom.
07:29:25 <evincar> But if you only have one stack, does the problem magically become decidable?
07:29:32 <evincar> In other words, is Lisp the problem? :P
07:29:43 <quintopia> i don't know. i'm only speaking of lisps
07:30:44 <NihilistDandy> Inthert pun here
07:30:48 <augur> oklopol: get naked
07:31:16 <evincar> NihilistDandy: Speaking *of* Lisps, not speaking *with*...nevermind.
07:31:39 <evincar> Also, I'm not sure how you speak with more than one lisp at once.
07:31:46 <evincar> Maybe a conventional one and a lateral one.
07:31:49 <evincar> Poor you.
07:32:04 <quintopia> trying to do that ties my tongue in knots
07:32:59 <NihilistDandy> With enough parenthetheth, I can get amathing thingth done.~
07:33:01 <evincar> What, a lateralised interdental fricative?
07:33:02 * quintopia goes to design a puzzle maybe
07:33:07 <evincar> It sounds awful, but it can be done.
07:33:31 <evincar> Makes me look like a cat about to have a hairball.
07:33:57 <quintopia> i can't produce enough air at once to steer large enough quantities in both directions for both to be heard
07:34:15 <evincar> I'm known for being good with my tongue.
07:34:41 * NihilistDandy makes cricket sounds.
07:34:53 <evincar> You know, phonetics, beatboxing, that sort of thing. Eating individually packaged yogurt when there's no spoon available.
07:35:04 <quintopia> i do all that stuff
07:35:18 <quintopia> except with pudding, not yogurt
07:36:12 <evincar> Eh, I do it with all the usual creamy things you ordinarily handle with a spoon.
07:36:22 <pikhq_> Now do a voiced unvoiced plosive fricative.
07:36:31 * pikhq_ watches evincar's tongue implode.
07:36:38 <quintopia> i'm normally quite a cunning linguist, but my ability to produce compressed air in constant pressure streams is limited
07:36:56 * quintopia needs a supersoaker pump for a diaphragm
07:36:59 <evincar> pikhq_: Not to mention coarticulating voicing with unvoicing. I would need two sets of vocal cords.
07:37:00 <NihilistDandy> UNVOICED SEMIVOWELS, GO
07:37:07 <evincar> Wait...I could use the false vocal cords like a metal singer.
07:37:09 <evincar> This could work.
07:37:12 <evincar> STAND BACK
07:37:26 <evincar> Shit, can't do it while laughing.
07:37:30 <pikhq_> Plosive fricative itself might be difficult.
07:37:31 <evincar> AT EASE
07:37:44 <NihilistDandy> evincar: ithkuil.net
07:37:56 <quintopia> pikhq_: meh. standard snare drum.
07:38:18 <evincar> quintopia: That's an affricate.
07:38:48 <NihilistDandy> evincar: The old version was more phonologically interesting, but people thought it was "hard"
07:39:10 <evincar> Ugh, I don't like philosophical languages.
07:39:26 <evincar> Nor logical languages.
07:39:46 <evincar> Also I've read some of this site.
07:39:55 <quintopia> evincar: does a labial fricative count. i can fricate the right side of my mouth while popping the left
07:40:01 <NihilistDandy> evincar: You're no fun :P
07:41:35 <evincar> NihilistDandy: FSVO fun.
07:42:16 <evincar> First time I read "FSVO" I parsed it as "Fucking Subject-Verb-Object".
07:42:16 <NihilistDandy> Conlangs are either philosophical or (native language)-derivatives
07:42:37 <NihilistDandy> There is very little variation on that front
07:43:15 <NihilistDandy> Or "I learned just enough Sanskrit to be dangerous"
07:43:44 <pikhq_> Some of the conlangs that are *literally* designed for shits and giggles are interesting, at least.
07:43:50 <evincar> Not really. There are plenty of a priori languages that are naturalistic without being derived from any natural language.
07:44:09 <pikhq_> There really ceased being interesting, *serious* conlangs probably by 1950.
07:44:27 <NihilistDandy> pikhq_: That's because Esperanto's such a trainwreck
07:44:41 <NihilistDandy> evincar: Links, plz
07:44:44 <pikhq_> By which time the space of "languages I can expect people to actually *learn*" got mined out pretty well.
07:45:02 <evincar> Okay, not plenty, but enough. Quenya, Sindarin, Klingon, and Na'vi are all naturalistic without being based (in terms of vocabulary) on natural languages.
07:45:29 <evincar> (Also, fuck the word "Na'vi" and its use of what I call the Dread Apostrophe.)
07:45:37 <NihilistDandy> Tolkien doesn't count because the last of the Brandywine weed gives you magic powers :D
07:45:58 <pikhq_> evincar: Friggin' apostrophe.
07:46:17 <pikhq_> I'm wondering if that represents an actual phoneme.
07:46:27 <NihilistDandy> evincar: apo'strop'he
07:46:39 <NihilistDandy> pikhq_: Glottal stop, one assumes
07:46:44 <evincar> Dread Apostro'phes, Dread Accënts, and Dread InterCapitals all denote shitty inexperienced fantasy authors, in my mind.
07:46:48 <pikhq_> Oh, it's apparently a glottal stop. How the *fuck* are you supposed to pronounce that there?
07:47:07 <NihilistDandy> pikhq_: Say "nah", pause, say "vi"
07:47:14 <pikhq_> That's... Not a glottal stop.
07:47:17 <evincar> pikhq_: Like a Cockney saying "Natvee".
07:47:25 <NihilistDandy> ^^
07:47:31 <pikhq_> ... Huh. That actually works.
07:47:38 <pikhq_> I can actually pronounce it correctly.
07:47:48 <NihilistDandy> HEY, LOOK. THIS.
07:47:51 <evincar> Hooray, phonetics proves useful. :P
07:47:55 <pikhq_> I had no idea that you could do glottal stops before consonants.
07:47:57 <NihilistDandy> THIS.
07:48:12 <NihilistDandy> THI'S.
07:48:25 <NihilistDandy> pikhq_: Try Arabic or Farsi
07:48:25 <evincar> Now, Dread Apostrophes etc. are only actually Dread if they're meaningless, inserted at random to look more "fantastical" rather than according to a reasoned system.
07:48:30 <NihilistDandy> All sorts of that
07:48:42 <pikhq_> Anyways. I'm willing to excuse the apostrophe if it's an actual phoneme.
07:48:43 <evincar> pikhq_: A glottal stop is just another sort of consonant.
07:48:50 <pikhq_> Preferably a glottal stop.
07:48:54 <evincar> And as an English speaker, you say all kinds of complex consonant clusters all the time.
07:49:14 <NihilistDandy> evincar: Russian has the best consonant clusters
07:49:21 <evincar> Yeah, in my mind, it has to denote a glottal stop or palatalisation.
07:49:30 <evincar> In which case it's more like an accent mark, which is fine.
07:49:39 <pikhq_> evincar: Yes, but my mental conceptions of what's pronouncable by humans and, somewhat more importantly, what's pronouncable by *me* has little to do with what's actually pronouncable. :)
07:49:57 <evincar> NihilistDandy: My family is Polish. I know.
07:50:06 <NihilistDandy> lol
07:50:06 <evincar> pikhq_: Fair enough.
07:50:28 <pikhq_> So I seem to overestimate the difficulty of consonant clusters. Which is strange, because English is quite consonant clustery.
07:50:31 <evincar> Polish is actually quite a bit more difficult for me than Russian.
07:50:33 <NihilistDandy> I should start pronouncing all my apostrophes in English as glottal stops
07:50:38 <pikhq_> Less so than Russian or Polish, but hey.
07:50:42 <NihilistDandy> It'll make me distinctive :D
07:50:57 <pikhq_> evincar: Oh, yeah, another valid use for apostrophes.
07:51:00 <pikhq_> Contraction!
07:51:08 <pikhq_> This does not really apply for most conlangs.
07:51:10 <NihilistDandy> evincar: Have you tried Hungarian or Icelandic? Those are fun
07:51:11 <evincar> NihilistDandy: It'll make you sound like a Klingon. "I'll not go. I won't."
07:51:26 <evincar> I + glottal stop + syllabic L is awfully rough.
07:51:54 <evincar> Although for some reason I undo the Vowel Shift in my mind when reading that.
07:51:57 <NihilistDandy> evincar: "It'll" but Cockney?
07:51:58 <evincar> So that's part of it.
07:52:36 <NihilistDandy> Glottal stop with multiple contractions would be fun. "I'll've"
07:52:54 <evincar> pikhq_: Actually, I make a point of including contractions in any conlang I start on that resembles a European language, even just phonetically.
07:53:05 <pikhq_> evincar: Yes, but you're abnormal and have a clue.
07:53:17 <NihilistDandy> Cluelang
07:53:27 <evincar> Daww. How kind.
07:53:43 <NihilistDandy> That's Numberlang.
07:54:35 <pikhq_> Quite *unlike* the fantasy writers making their semi-conlangs by throwing phonemes together in a euphonious or cacaphonous manner, and making the orthography look alien.
07:54:56 <NihilistDandy> Nx'hll'aztl'wat
07:55:10 <pikhq_> Which, for English speakers, includes diacritics and apostrophes.
07:55:15 <evincar> NihilistDandy: The moment I see "tl", I think of Nahuatl.
07:55:17 <NihilistDandy> It means "bear"
07:55:33 <NihilistDandy> evincar: That makes me smile
07:55:45 <evincar> It's an unusual phoneme is all.
07:55:58 <NihilistDandy> Xocolatl
07:55:59 <pikhq_> NihilistDandy: And, presumably, "a" means "that thing I saw last week, but only in a vagueish way, that might have been a bear, but might have been my long lost brother who I haven't seen for 20 years."
07:56:18 <NihilistDandy> pikhq_: Clearly.
07:57:14 <NihilistDandy> I dislike languages that cheat by having overly specific lexica
07:57:38 <evincar> Um. Natural languages have overly specific lexica.
07:57:42 <evincar> At least English certainly does.
07:57:53 <evincar> There's dauntingly much nuance.
07:57:56 <pikhq_> evincar: In lines with my "a" example.
07:58:01 <NihilistDandy> ^^
07:58:17 <pikhq_> i.e. specific to the point of being unusable.
07:58:47 <evincar> I dunno, "usable" is open to interpretation.
07:58:50 <NihilistDandy> a.k.a. "Eragon syndrom"
07:58:53 <NihilistDandy> *syndrome
07:59:22 <NihilistDandy> But really I just like to trash that book because it's a simple "Star Wars + LOTR" formula
07:59:27 <pikhq_> How often does one typically see things, last week, vaguely, that was either a bear or one's brother who has been missing for 20 years?
07:59:57 <evincar> NihilistDandy: I dunno if you've seen "Alex Reads Twilight", but I was going to do something similar on my vlog with Eragon.
07:59:59 <pikhq_> I highly doubt it's common enough for a language to make it a lexeme, much less an astoundingly short one.
08:00:19 <NihilistDandy> evincar: Sounds delightful. Link?
08:00:36 <evincar> Well, I haven't started yet. youtube.com/whyevernotso
08:00:44 <NihilistDandy> pikhq_: I dunno. I'm pretty unattentive, and I have been alive long enough to get some use from that lexeme
08:00:44 <evincar> In fact, I haven't done a video all summer.
08:02:19 <evincar> I'm wary of this silence.
08:02:25 <evincar> It implies you're watching my videos.
08:02:58 * oerjan now ponders a fantasy character named D'Rëad
08:03:12 <NihilistDandy> evincar: Is that a dorm?
08:03:33 <NihilistDandy> Also, you look like someone I'd hang out with D
08:03:34 <pikhq_> Amusingly, my bizarre Japanese orthography could do a passable job as a lame fantasy author's conlang.
08:03:35 <NihilistDandy> *:D
08:04:06 -!- derrik has quit (Quit: point made, none taken).
08:04:09 <pikhq_> soriȳa hì'kuri ni hen mitai ne.
08:04:28 <NihilistDandy> pikhq_: Your othography terrifies me
08:04:31 <evincar> NihilistDandy: I have done videos from a dorm.
08:04:35 <NihilistDandy> *orthography
08:04:38 <evincar> My latest ones were from an apartment.
08:04:44 <NihilistDandy> Very nice
08:04:44 <pikhq_> NihilistDandy: It's a naive encoding of kana.
08:05:28 <pikhq_> evincar: Yes, the apostrophe has meaning.
08:05:34 <NihilistDandy> pikhq_: I never bothered making my own idea of kana. I just learned what the syllable was and pronounce it like a drunken anime character
08:05:41 <NihilistDandy> Apparently my accent is "unterrible"
08:06:17 <evincar> pikhq_: Sokuon?
08:06:24 <pikhq_> Yup.
08:06:31 <NihilistDandy> evincar: Your school looks like my old one :D
08:06:48 <pikhq_> Only value you could give to apostrophe for Japanese that's not utterly absurd.
08:07:09 <NihilistDandy> The only sane choice
08:07:15 <pikhq_> Though it is still a bit odd.
08:07:20 <NihilistDandy> ALSO, HOLY SHIT, YOU ARE ALSO FROM NEW HAMPSHIRE AND HAD DIALUP
08:07:34 <itidus20> FFFFFUUUUUUUUUUUUUUUUU
08:07:45 <NihilistDandy> ALSO WHAT YOU ARE AT MY OLD SCHOOL
08:07:56 <NihilistDandy> evincar: WHAT IS YOUR HUB HANDLE?
08:08:46 <evincar> Haha, shit, you went to RIT?
08:08:56 <NihilistDandy> evincar: ISF, biatch!
08:08:57 <evincar> I haven't been on the hub lately. I prolly used evincarofautumn.
08:09:20 <NihilistDandy> GDD, you are not even a reeelz programzorz lololol
08:09:47 <NihilistDandy> That is the weirdest coincidence
08:09:48 <evincar> I'm not in GDD. I was in NMDI, then NMID, now Multidisciplinary Studies.
08:10:12 <evincar> I only studied design because I was already good at programming.
08:10:16 <NihilistDandy> How long have you been there/
08:10:18 <NihilistDandy> *?
08:10:21 <evincar> But I'm looking to do a PhD in CS.
08:10:25 <evincar> Going into my fourth year.
08:10:29 <NihilistDandy> Shit
08:10:33 <NihilistDandy> We might know each other
08:10:34 <NihilistDandy> Maybe
08:10:51 <NihilistDandy> You look kinda familiar
08:10:52 <evincar> Well, my name's no secret.
08:11:15 <evincar> I don't know most people by name though. Terrible with names.
08:11:18 <evincar> Excellent with faces though.
08:11:23 <NihilistDandy> Same
08:11:25 * itidus20 develops mancrush on evincar after reading everyone call him fucking awesome in his comments page.
08:11:34 <NihilistDandy> Also, we have no mutual friends on Facebook :(
08:11:38 <evincar> Ugh, I *really* need to make more videos.
08:12:02 <evincar> NihilistDandy: I don't have a lot of Facebook friends as Why.
08:12:15 <oerjan> in a freak dimensional accident, Dr. Ëa'D's machine attracted the fierce barbarian warrior D'Rëad.
08:12:23 <NihilistDandy> I spent most of my time at RIT smoking cigarettes, doing Ritalin and doing my own thing instead of what I was supposed to be doing
08:12:28 <NihilistDandy> Which is why I'm a math major now
08:12:50 <NihilistDandy> oerjan: Quick, call Dr. Acula
08:13:11 <evincar> Interesting. I spend most of my time at RIT programming, drinking caffeine, and doing my own thing instead of what I'm supposed to be doing.
08:13:24 <NihilistDandy> And get Dr. Amamine in here, stat
08:13:38 <pikhq_> evincar: Why, you're 3/4ths of the way to a CS Ph.D. already.
08:13:55 <itidus20> lol
08:14:16 <evincar> pikhq_: You're gonna have to explain that one. :/
08:14:24 <itidus20> evincar reminds me of what i wanted to be
08:14:26 <NihilistDandy> evincar: I stayed in my room and did math all day instead of going to boring C++ classes, then I drank myself into a stupor at night and continued doing math
08:14:32 <NihilistDandy> ISF is a terrible major
08:14:34 <evincar> I mean, not really.
08:14:38 <NihilistDandy> It sucks the soul out of you
08:15:11 <evincar> I'm just saying, spending my time programming rather than doing busy work is essentially how I plan to carry out my PhD.
08:15:18 <NihilistDandy> evincar: The other 1/4 is stealing a hair from the head of Donald Knuth
08:15:30 <evincar> Oh, shit, I forgot to tell you guys.
08:15:41 <evincar> I found my old issue of MAD that has that one article by Knuth in it.
08:15:47 <evincar> If I ever meet him, he is so signing that shit.
08:15:50 <itidus20> an article by knuth????
08:15:58 <itidus20> wow
08:16:00 <NihilistDandy> I knew I recognized that room. And I knew I recognized the name evincar from somewhere
08:16:15 <evincar> "The Potrzebie System of Weights and Measures"
08:16:41 <itidus20> im personally a fan of spy vs spy..
08:16:43 <evincar> The only thing that makes it notable is that it's the first thing he had published, in 1960.
08:17:16 <evincar> Actually, 1957.
08:17:29 <evincar> Actually, first "scientific" thing.
08:17:35 <evincar> But still, Knuth.
08:17:46 <evincar> And I doubt many copies of this issue remain.
08:18:25 <evincar> itidus20: Spy vs. Spy is the best thing.
08:18:51 <NihilistDandy> Well, shit. Time for MST3K and sleep.
08:18:56 <pikhq_> Yeah, that definitely needs a Knuth signing.
08:19:05 <itidus20> i read up on antonio prohias.. his escape from cuba.. his former comics about siniestro
08:19:06 <NihilistDandy> Also, evincar… where in New Hampshire?
08:19:24 <evincar> Southwest, near Keene.
08:19:28 <NihilistDandy> Ah
08:19:44 <evincar> Why, don't tell me you're from NH.
08:19:45 <NihilistDandy> I lived in Plainfield, forever, and I live in Lebanon now when I'm not at school
08:19:55 <evincar> This is too strange.
08:20:18 -!- cheater has joined.
08:20:20 <NihilistDandy> I know, right?
08:20:26 <itidus20> i went through a stage of thinking spy vs spy comics were evil.. until i learned they were written with a deep cynicism
08:21:32 <itidus20> at least i think they were?
08:22:01 <itidus20> meh
08:22:06 <itidus20> anyway they're great
08:22:22 <cheater> they're not
08:22:26 <cheater> they're just evil.
08:22:28 <evincar> Screw depth. It's MAD.
08:23:08 <itidus20> I have also studied the origins of the alfred e neumann face
08:23:38 <itidus20> some theories say it is an archetypal figure from our collective unconcious
08:23:50 <itidus20> some, i suppose, do not
08:24:08 <itidus20> ^newman?
08:24:12 <evincar> NihilistDandy: So are you not at school at the moment? It's still weirding me out that you could be like an hour and change from me. :P
08:24:29 <NihilistDandy> evincar: I transferred out of RIT. I go to UVM now
08:24:35 <NihilistDandy> Oh, you mean now
08:24:38 <NihilistDandy> Like, in NH
08:24:44 <NihilistDandy> Yes, I'm in Lebanon right now
08:24:54 <NihilistDandy> At this very moment
08:25:03 <NihilistDandy> Quiver with the knowledge that I am among you
08:25:43 <evincar> I don't think we need to discuss things quivering with other things among yet other things.
08:26:03 <evincar> That's just a setup for a romance novel scene right there.
08:26:20 <NihilistDandy> I'll get a few drinks in you and we'll see what quivers~
08:26:26 <evincar> UVM is nice anyway. I know a couple of people who go.
08:26:38 <NihilistDandy> My stats professor recommended it
08:26:49 <NihilistDandy> And it's a so-called "public Ivy", so that's nice
08:28:09 <itidus20> Quiver (verb) "to tremble," late 15th century, perhaps onomatopoeic, or possibly an alteration of quaveren, or from Old English cwifer-, perhaps related to cwic "alive".
08:28:59 <pikhq_> ... *What*. "What is Islamic Fundamentalism" is the title of an H-manga.
08:29:08 <itidus20> hehehehehe
08:29:17 <pikhq_> The title is not inappropriate.
08:29:25 <NihilistDandy> pikhq_: Link?
08:29:27 <itidus20> i wonder if it is a H manga at all
08:29:35 <NihilistDandy> Or maybe I don't want the link. I can't decide.
08:29:45 <pikhq_> NihilistDandy: http://g.e-hentai.org/g/19551/32e1252c7c/ Quick Googling gave me this.
08:30:00 <pikhq_> (nsfw)
08:30:01 <NihilistDandy> Reminds me of that Obama one
08:30:03 <evincar> I feel like the whole point of FRP is to reconcile functional languages with the fact that things, in the real world, so far as we can tell, occasionally, ostensibly, happen.
08:30:19 <NihilistDandy> My Neighbor Taro-kun or something like that
08:31:01 <itidus20> sounds extremely dodgy so im not clicking
08:31:35 <pikhq_> It features Osama bin Laden *and* George Bush.
08:31:52 <pikhq_> And a random OFC. Defeating Islam via fucking.
08:31:53 <pikhq_> Somehow.
08:31:56 <NihilistDandy> itidus20: WHERE'S YOUR SENSE OF ADVENTURE
08:31:56 <pikhq_> What the fuck, Japan.
08:32:09 <itidus20> yaoi?
08:32:10 <NihilistDandy> pikhq_: That's how it's done
08:32:18 <pikhq_> itidus20: No.
08:32:19 <NihilistDandy> Haven't you seen C-SPAN?
08:32:23 <pikhq_> See: OFC.
08:32:41 <itidus20> whats OFC?
08:32:48 <pikhq_> Original Female Character.
08:32:53 <itidus20> ahhh
08:33:01 <pikhq_> One of those initialisms that tells you the fanfiction's going to be more bad than usual.
08:33:32 <NihilistDandy> HER NAME'S ENOBY, OKAY
08:33:46 <itidus20> :-B that name reminds me of ebony
08:33:54 <evincar> EBONY'S NAME IS ENOBY, OKAY
08:33:56 <evincar> OKAY
08:34:16 <NihilistDandy> Whoa, this got extreme pretty quick
08:34:26 <NihilistDandy> Are those attached to a car battery?
08:34:33 <evincar> Sorry, I have to loudly make fun of that thing.
08:34:36 <evincar> Otherwise I remember it.
08:34:40 <pikhq_> Speaking of fanfiction, that reminds me, I really should read "Harry Potter and the Methods of Rationality" sometime.
08:34:50 <evincar> Oh dear.
08:34:56 <evincar> That sounds exquisite.
08:35:10 <pikhq_> Written by Eliezer Yudkowsky.
08:35:38 <pikhq_> (you may know him for Less Wrong, the Singularity Institute, and being the most hardcore autodidact)
08:36:21 <itidus20> im proud of myself for simply knowing the word autodidact
08:36:34 <itidus20> simple amusements
08:37:33 <evincar> They are the best kind.
08:38:08 <NihilistDandy> I prefer complex amusements.
08:38:12 <NihilistDandy> More imaginary parts
08:38:24 <evincar> Myself, I'm fond of stars. Reading. Hot cocoa. Sex. Bonfires.
08:38:43 <pikhq_> NihilistDandy: Perhaps you could do with some quantum mechanics, then.
08:38:47 <evincar> Good company and body heat, a roof over my head and shoes on my feet.
08:38:58 <itidus20> i want all those things @_@
08:38:58 <pikhq_> I hear that has many complex components.
08:39:03 <itidus20> all at once!
08:39:13 <evincar> Come to New Hampshire. :P
08:39:17 <NihilistDandy> @_@ lambdabot wut wut
08:39:17 <lambdabot> lambdabot wut wut
08:39:42 <NihilistDandy> @_@ > (2+2)
08:39:42 <lambdabot> > (2+2)
08:39:46 <NihilistDandy> Aww
08:41:06 <evincar> Well, time to sleep. More precisely, time to brush my teeth before my mum wakes up to go to work, then sleep.
08:41:17 <NihilistDandy> evincar: Exactly.
08:41:27 <NihilistDandy> To a tee
08:41:27 <evincar> Such is life with the family.
08:41:30 <NihilistDandy> Quite so
08:41:39 <NihilistDandy> Glad I have an apartment for a year in Burlington, now
08:41:45 <oerjan> @@ @run @_@ 2+2
08:41:45 <lambdabot> Plugin `compose' failed with: Unknown command: "_@"
08:41:51 <oerjan> hm
08:42:01 <evincar> You are aware that I am now going to have to meet you. At some point.
08:42:03 <oerjan> @_a
08:42:04 <lambdabot> Maybe you meant: . ? @ bf do faq ft id map pl rc v wn
08:42:05 <evincar> You know, in a public place.
08:42:23 <oerjan> @a@
08:42:26 <NihilistDandy> evincar: Sounds like a plan
08:42:28 <oerjan> @a@ test
08:42:28 <lambdabot> test
08:42:45 <oerjan> @@ test
08:42:45 <lambdabot> test
08:42:48 <evincar> No, it sounds nothing like a plan. A plan would have specifics.
08:42:49 <oerjan> aha!
08:43:00 <evincar> But meh.
08:43:04 -!- evincar has quit (Quit: Up up and away!).
08:43:16 <NihilistDandy> evincar: I go back to school in six days.
08:43:22 <NihilistDandy> Blah, leave then
08:43:43 <oerjan> @b ++++++++[>++++++++<-]>.
08:43:43 <lambdabot> Maybe you meant: b52s babel bf bid botsnack brain bug . ? @ v
08:43:49 <oerjan> hmph
08:44:27 <oerjan> @_@ @run (2+2)
08:44:28 <lambdabot> 4
08:44:44 <NihilistDandy> YAY
08:45:01 <itidus20> NSFW (the george bush page in the h-manga): http://213.231.57.133:60000/h/95cf82ddf8554beb6eda06d54add6197aec6163d-249227-984-1400-jpg/keystamp=1313829908-c514da5196/18.jpg
08:45:36 <itidus20> then again im not sure if such links will work
08:46:05 <oerjan> no reason why they shouldn't unless the site is taking steps to prevent it
08:46:24 <NihilistDandy> It worked, it just took forever to load
08:47:14 <oerjan> @_@ @_@ test
08:47:14 <lambdabot> Plugin `compose' failed with: Unknown command: "_@"
08:47:19 <oerjan> @_@ @@ test
08:47:19 <lambdabot> test
08:47:22 <oerjan> ic
08:47:40 <oerjan> the error correction only appears to the top one
08:48:40 <oerjan> *applies
09:04:43 -!- Phantom_Hoover has joined.
09:09:25 -!- ais523 has quit (Remote host closed the connection).
09:10:28 <fizzie> @listchans
09:10:28 <lambdabot> ##freebsd ##logic ##manatee ##proggit ##villagegreen #agda #arch-haskell #darcs #dreamlinux-es #dtp2010 #esoteric #fedora-haskell #friendly-coders #functionaljava #gentoo-haskell #gentoo-uy #ghc #
09:10:28 <lambdabot> gp2010 #happs #haskell #haskell-blah #haskell-books #haskell-freebsd #haskell-in-depth #haskell-infrastructure #haskell-overflow #haskell-soc #haskell.au #haskell.cz #haskell.de #haskell.dut #
09:10:28 <lambdabot> haskell.es #haskell.fi #haskell.fr #haskell.hr #haskell.it #haskell.jp #haskell.no #haskell.ru #haskell.se #haskell_ru #hscraft-srv #jhc #jtiger #learnanycomputerlanguage #lesswrong #macosx #
09:10:28 <lambdabot> macosxdev #rosettacode #scala #scalaz #scannedinavian #teamunix #unicycling #uscs2010 #xmonad #yi
09:10:41 <fizzie> He's so popular.
09:11:04 <oerjan> *she
09:11:30 <fizzie> I was thinking of going with "It", but it looked wrong. Is there an official gender, though?
09:11:45 <oerjan> @vixen Are you female?
09:11:45 <lambdabot> yes
09:12:13 <fizzie> From /list:
09:12:14 <fizzie> Channel Users Topic
09:12:14 <fizzie> #scannedinavian 1 bladecenter for sale...
09:12:21 -!- Vorpal has joined.
09:57:25 -!- FireFly has joined.
10:02:02 -!- kwertii has quit (Quit: bye).
10:06:34 -!- oerjan has quit (Quit: leaving).
11:06:30 -!- monqy has quit (Quit: hello).
11:39:23 -!- Patashu has joined.
11:49:23 -!- Vorpal has quit (Ping timeout: 264 seconds).
11:49:37 -!- Vorpal_ has joined.
12:00:44 <cheater> http://blog.tkjelectronics.dk/2011/08/glasses-free-3d-display-for-microprocessors/
12:00:58 <cheater> time for a 3d GOL
12:02:12 <Patashu> GUI for trifunge plz
12:04:58 <Patashu> IN THREEE DEEEE
12:10:13 <Phantom_Hoover> @vixen Are you really female?
12:10:13 <lambdabot> i'm really real
12:10:21 <Phantom_Hoover> @vixen Are you really really female?
12:10:21 <lambdabot> i'm really real
12:10:44 <Phantom_Hoover> @vixen How many fingers am I holding up?
12:10:44 <lambdabot> i'll hafta plead the fifth on that one.
12:12:24 <Patashu> What is @vixen
12:12:37 <Patashu> @vixen What is love?
12:12:37 <lambdabot> who's to say?
12:14:39 <Phantom_Hoover> @vixen Maud? Is that you?
12:14:39 <lambdabot> what about me?
12:15:02 <Phantom_Hoover> @vixen Maud!
12:15:02 <lambdabot> Have you ever killed a hobo? Ive found eating their liver gives me strength. I think i may just be short on b vitamines.
12:15:12 <Phantom_Hoover> @vixen You've changed.
12:15:12 <lambdabot> where on a map is Panama?
12:15:29 <Phantom_Hoover> @vixen You always were terrible at geography.
12:15:29 <lambdabot> always always, or just most of the time?
12:15:38 <Phantom_Hoover> @vixen Always always.
12:15:38 <lambdabot> always always, or just most of the time?
12:15:47 <Phantom_Hoover> @vixen You just said that you idiot.
12:15:47 <lambdabot> Yeah
12:35:03 -!- Vorpal_ has changed nick to Vorpal.
12:36:23 <Vorpal> Phantom_Hoover, what /is/ @vixen? Markov chain? Eliza style bot?
12:36:36 <Phantom_Hoover> No idea.
12:36:46 <Phantom_Hoover> @vixen What manner of creature are you?
12:36:46 <lambdabot> yes, i am
12:46:57 <shachaf> An old Visual Basic program ported to Haskell, I believe.
12:47:22 <shachaf> Just some regexp matches with a bit of randomness, or something of the sort.
12:57:12 <Gregor> CakeProphet: OK, so my flag idea isn't going to work :P
13:01:55 <Gregor> CakeProphet: Or rather, neither will, as accidental duplication is going to happen all the damned time.
13:03:21 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:22:20 -!- elbento has joined.
14:23:04 -!- elbento has left.
14:33:15 <cheater> jesus
14:33:30 <cheater> what sort of stupid language enters a code block, but doesn't exit it?
14:41:03 -!- sllide has joined.
14:53:58 <Vorpal> cheater, infinite loop?
14:54:04 <Vorpal> inside said block
14:54:11 <Vorpal> that would be during execution I guess
14:54:29 <cheater> Vorpal, no, nginx configs
14:55:07 <cheater> location / { foo; location /bar/ { baz; } quux; }
14:55:16 <cheater> either baz or quux get executed.
14:55:42 <Vorpal> uh. what
14:56:02 <Vorpal> never used nginx
14:56:13 <Vorpal> it seems to be the currently hot httpd though
14:56:20 <cheater> yea it's good
14:56:23 <Vorpal> the fame of lighttpd was short-lived
14:56:32 <cheater> yeah lighttpd seems to have deteriorated
14:56:34 <cheater> no idea why
14:56:48 <cheater> i think they're having stupid problems letting people write plugins or something
14:57:37 <Vorpal> cheater, I seem to remember getting php to work with it was a bitch. And although php is horrible, it is popular
14:57:46 <cheater> fuck php
14:57:59 <cheater> in the end, if you're forced to work with php, you're not a good computer programmer
14:58:41 <cheater> i flat out stopped doing php and i'm doing well. python might not be just as popular, but at some point people stop asking what you're doing your job with.
14:59:32 <Vorpal> I would hate both
14:59:44 <Vorpal> I'm not going to do web programming if I can avoid it
14:59:46 <cheater> python is less easy to hate
15:00:10 <Vorpal> cheater, cpython is bloody slow. pypy and so on are not much better
15:00:14 <cheater> me either, if this business lifts off i'll hire some code monkeys and start studying cell biology or something.
15:00:29 <cheater> stackless and pypy are much faster than cpython
15:00:56 <cheater> uwsgi supports stackless, and i think it will do pypy at some point too
15:01:30 <Vorpal> cheater, yeah but I compared a program with cpython, pypy and cython. Cython beat cpython by and order of magnitude of course. It beat pypy but about 5x
15:01:41 <Vorpal> pure C beat all of them
15:01:48 <Vorpal> the problem was that of playing reversi.
15:01:56 <Vorpal> computationally intensive yes
15:01:56 <cheater> so what?
15:02:02 <cheater> i'm never wirting a line of C in my life
15:02:06 <Vorpal> cheater, so even pypy is slow
15:02:11 <cheater> so how is that a comparison
15:02:22 <cheater> did you compare C with fpga's?
15:02:24 <Vorpal> cheater, of course C is not fun to code. I agree on that.
15:02:40 <Vorpal> cheater, nah, I didn't have one available. And VHDL is quite annoying
15:03:09 <Vorpal> (don't know verilog)
15:03:30 <Vorpal> cheater, anyway, while python is slow, it is also not a nice enough language to justify the slowness
15:03:35 <Vorpal> I'd rather use scheme or something then.
15:03:43 <cheater> well then your test prefers simple to use, sluggish, popular blubs
15:03:57 <Vorpal> cheater, hm?
15:04:00 <cheater> C
15:04:12 <cheater> C is soooo slow
15:04:13 <Vorpal> I never claimed C was a nice language
15:04:27 <Vorpal> cheater, I'm not using speed as the sole argument here.
15:04:36 <cheater> now you understand.
15:04:44 <Vorpal> cheater, what I'm saying is that python is not nice enough to justify the slowness
15:04:54 <Vorpal> I'd rather go for a functional language then
15:04:56 <cheater> that's a different argument
15:05:01 <cheater> me too
15:05:17 <cheater> but the problem with functional languages is that their stdlibs are fucking shit for the job i'm doing
15:05:26 <cheater> and the dev environments are still not figured out
15:05:47 <cheater> and there are no good frameworks that save me from doing billions of lines of boilerplate
15:05:55 <Vorpal> cheater, no it is not a different argument. The first was stating a fact: python is slow. Then I said that this slowness is compounded with a language that is imperative and not very good.
15:06:02 <cheater> python is the best of the worst
15:06:19 <Vorpal> which means that while it is nicer to code in than C, definitely, it is not worth it
15:07:55 <cheater> once someone makes a direct translation table of everything you can do with python's stdlib to everything you can do with haskell's stdlib, i'm all over haskell.
15:08:47 <cheater> but right now it would be mostly empty.
15:08:51 <Vorpal> it seems that my hdds are the bottleneck when transferring files between my computers nowdays. Gbit ethernet.
15:09:04 <Vorpal> once the ram fills up, well.
15:09:05 <cheater> what data rate do you have?
15:09:17 <Vorpal> about 40 MB/s with plain rsync
15:09:36 <Vorpal> the file is larger than the ram of this laptop
15:09:41 <cheater> yeah, hdd speed is a bitch
15:09:51 <cheater> i hope they come up with something faster and failure-free
15:09:53 <Vorpal> oh wait, encrypted disk in the laptop too
15:10:02 <Vorpal> cheater, SSD, sure. But expensive
15:10:14 <Vorpal> too expensive currently
15:10:17 <cheater> i know people who've been buying a lot of ssd's and didn't managed tp buy one that didn't die on them at some point
15:10:25 <cheater> *manage
15:10:40 <Vorpal> cheater, depends on how you use them. Mostly read will be fine.
15:10:50 <Vorpal> of course, the firmware could fail and so on
15:11:47 <cheater> no i think it was just flat out dead
15:11:55 <cheater> but i'm no expert
15:12:10 <Vorpal> cheater, well what in it failed. write limit?
15:12:40 <cheater> i don't know anymore. not a big enough fan of ssd's myself.
15:12:49 <Vorpal> cheater, they are fast though
15:13:05 <Vorpal> well some are. Intel ones definitely
15:13:05 <cheater> i believe the consensus was that ssd's are not reliable on the long term
15:13:17 <Vorpal> cheater, nor are hdds
15:13:26 <cheater> i've had few hdd failures
15:13:29 <Vorpal> cheater, long term? Go clay tablet
15:13:29 <cheater> and i have lots of hdds
15:14:11 <Vorpal> most hdds I owned died at some point
15:14:17 <Vorpal> not the current ones obviously
15:27:20 <cheater> heh
15:27:24 <cheater> out of all things..
15:27:33 <Vorpal> ?
15:27:34 <cheater> i wouldn't have thought i'd find a job through *freecycle*.
15:27:45 <Vorpal> never heard of it
15:28:02 <cheater> it's a mailing list, with an instance that is local to every city
15:28:15 <Vorpal> cheater, in the world?
15:28:18 <cheater> when you have something that you don't need, rather than throw out good things you put it on the mailing list
15:28:37 <cheater> yeah, pretty much so, except everyone sets up their own.
15:28:43 <cheater> it's more a concept than an organization.
15:28:53 <cheater> i got some good stuff there.
15:29:39 <cheater> yesterday i picked up a pressure cooker and a cable finder. turns out the woman works in it, and i told her i'm a computer programmer, and today she wrote me saying she knows someone looking for a programmer.
15:30:22 <Vorpal> cheater, who wouldn't have use for a working cable finder...
15:30:26 <cheater> you can get all sorts of stuff, usually it's furniture, followed by electronics and then books.
15:33:17 <fizzie> Vorpal: Someone who has multiple?
15:33:20 <Deewiant> Yay, change committed: http://i.imgur.com/jXB9V.png
15:33:26 <Vorpal> fizzie, why would anyone have that in the first place
15:33:48 <fizzie> Vorpal: Gotten as a gift, maybe? Ours came from my wife's father, I think.
15:33:59 <fizzie> Or found a fancier one and wanted to upgrade. :p
15:34:05 <fizzie> (Or found one in pink.)
15:36:49 <fizzie> No Freecycle list in Espoo, but there's one in Helsinki, with a total of 8 items (3 wanted, 5 offered). It doesn't have much of a following here. They do have physical "recycling center" places here and there, though. There's one at the student village of the university, for example.
15:37:30 <cheater> http://queue.acm.org/detail.cfm?id=2010365
15:44:13 -!- MDude has joined.
16:10:05 -!- Taneb has joined.
16:10:16 <CakeProphet> Gregor: unless you have electron geysers that are stationary, with the rest of the field being empty.
16:10:25 <Taneb> Bonjour!
16:17:42 <Taneb> I'm in France
16:18:56 <CakeProphet> I'm in one of those states where all that segregation stuff happened.
16:19:13 <Taneb> Like Alabama?
16:19:22 <CakeProphet> Close. Georgia.
16:20:38 <CakeProphet> Georgia started a prison reform experiment where people who were thrown in jail for not paying taxes were giving a fresh start in the New World.
16:20:41 <CakeProphet> *as a
16:20:50 <CakeProphet> similar to Australia I guess.
16:21:22 <Taneb> Nah, Australia they weren't given a new start till they had filled out their sentences
16:25:33 <Taneb> I had a really cool idea for an esolang
16:25:41 <CakeProphet> oh boy I can't wait for my data structures class
16:25:46 <Taneb> Then I realised someone else already had pretty much the same idea.
16:25:51 <Taneb> They called it HQ9+
16:26:06 <CakeProphet> I get to learn about exciting things like trees! maps! sets! heaps! linked lists!
16:26:09 <CakeProphet> wooo
16:26:12 <Taneb> Yay!
16:26:25 <Taneb> ...What actually is a heap?
16:26:44 <CakeProphet> similar to a tree.
16:26:49 <Taneb> Okay
16:27:21 <CakeProphet> with the root always being the max element.
16:27:45 <CakeProphet> all child nodes are < parent nodes
16:28:45 <CakeProphet> though I believe you can implement heaps as arrays
16:31:54 <Taneb> So... 9 (4, 5 (
16:32:01 <Taneb> 3 1 1))
16:32:05 <Taneb> Is a valid heap?
16:32:37 <CakeProphet> yeah
16:32:38 <Phantom_Hoover> Yes.
16:33:04 <Phantom_Hoover> (It has nothing to do with the heap in memory management, which confused the hell out of me.)
16:33:15 <Taneb> Phantom_Hoover, how is Handlekindled getting along?
16:33:19 <CakeProphet> oh, yeah, didn't know.
16:33:22 <Phantom_Hoover> Taneb, I gave up too.
16:33:53 <Taneb> So, it's elliott's problem?
16:34:16 <cheater> elliott is *always* the problem.
16:41:51 <fizzie> Nitpicking time! It's only a max-heap where child nodes are < parent nodes; you can have min-heaps too.
16:42:46 -!- Taneb has quit (Ping timeout: 240 seconds).
16:42:48 <fizzie> It's also -- or can be, anyway -- a complete binary tree, so that's why the array representation makes sense.
16:50:41 <fizzie> It might also be prudent to mention what a (max-)heap can do, which is O(log n) "remove largest element" (while keeping the heap property for leftovers), which is why you'll find them in priority queues around the world.
16:53:47 <CakeProphet> ah yes, that's useful.
16:59:26 -!- oerjan has joined.
17:06:20 <CakeProphet> if I ever go to Saudi Arabia
17:06:33 <CakeProphet> the first thing I'd do is eat a big pork sandwich in a crowded street.
17:07:33 <CakeProphet> while looking distinctively American. shorts, t-shirt, baseball cap, and shades.
17:10:18 <CakeProphet> nothing could go wrong.
17:12:01 <Vorpal> 7zip is somewhat retarded. I extracted a tar.gz with it. I got the tar out. I would have expected it to both in one go... Sure technically it is correct, but it is the sane behaviour? Not really
17:12:01 -!- jix_ has quit (Read error: Connection reset by peer).
17:12:59 <Vorpal> besides that means an extra copy of the huge tar...
17:15:14 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
17:15:59 <fizzie> It's a clever ploy by the 7-Zip folks that aims to make you switch to using .7z files everywhere, because it's so "complicated" to open those strange .tar.gz files.
17:16:17 <fizzie> (Guess.)
17:16:19 <Vorpal> heh
17:18:44 <fizzie> You can "7z x -so blah.tar.gz | 7z x -ttar -si", but that's really crummy.
17:20:15 <Vorpal> fizzie, hm is it possible to make a .so load on demand, first use so to speak. There is obviously dlopen and so on, but I was thinking about something more transparent
17:20:28 <Vorpal> say for example loading libpng or libjpeg only once you open such a file
17:22:58 <fizzie> Doesn't lazy binding (which does pretty close to that) already happen by default on linux-elf?
17:23:30 <CakeProphet> skype sure is buggy in linux.
17:24:12 <fizzie> With dlopen you get to decide (RTLD_LAZY vs. RTLD_NOW) but I think lazy binding is the default for "regular" dynamic libs.
17:26:42 <Vorpal> fizzie, that still opens the .so on starting though I think. It just doesn't bind the symbols until needed
17:26:47 <Vorpal> unless I misremember
17:27:34 <Vorpal> as far as man ld says that seems to be it
17:27:36 <fizzie> Well, yes, it does try to find all the libraries the program links to. But it's arguably better to get "missing libraries" errors at that point as opposed to middle of some operation.
17:28:09 <Vorpal> fizzie, just finding it without opening it maybe
17:28:32 <fizzie> Well, I don't know. Possibly it also looks at the headers to make sure the file makes sense.
17:29:09 <Vorpal> fizzie, I guess it mmaps the file, but on linux that may or may not load the file at that point
17:30:56 <fizzie> Can't say I've looked at the dynamic linker very closely. It might make more sense to open, read+parse the header fields, and then mmap (at that point or later) the actual load-requiring segments according to the segment header.
17:31:59 <fizzie> Anyway, when it hits the first aritrary foo() that comes out of a dynamic library, it's going to (potentially) have to look at the symbol tables of all the linked-to libraries, to find out where "foo" comes from.
17:33:13 <fizzie> Since I don't think the symbol table of the binary contains any explicit information about which library the symbol is referring to.
17:40:59 <fizzie> The last few weeks there's been visible a full-signal-strength (well, as closely as the network lister dialog indicates, anyway) wlan with ESSID "AirPort Network". Smells like a close neighbour has bought some Apple hardware. (There's another new one called "zuHause", but I'm not sure if one can deduce anything out of that one. Perhaps a German invasion?)
17:41:49 <Vorpal> fizzie, it won't have to look at all. There is that .hash or .hash.gnu section
17:42:05 <Vorpal> enough to check those
17:43:30 <oerjan> zuHause just means atHome in german
17:43:45 <fizzie> That amounts to looking. The hashing is just a way to look faster.
17:44:26 <fizzie> oerjan: Well, if a German feels "at home" here, then we're apparently at a very advanced stage of the invasion.
17:44:37 <oerjan> you'd think.
17:45:03 <oerjan> at this time in history you should be more worried about greeks, i think.
17:46:05 <CakeProphet> for Americans it's those sandpeoples in the middle east that you need to fear.
17:46:25 <oerjan> i am talking specifically about the finns, here.
17:47:05 <CakeProphet> I'm talking about, uh... sandpeople in the middle east. that's as specific as it gets.
17:47:21 <oerjan> O KAY
17:47:43 <Gregor> <fizzie> With dlopen you get to decide (RTLD_LAZY vs. RTLD_NOW) but I think lazy binding is the default for "regular" dynamic libs. // this isn't lazy /loading/, it's just lazy symbol lookup
17:48:07 <fizzie> oerjan: I'll start worrying when I see an στοΣπίτι wlan.
17:48:10 <NihilistDandy> CakeProphet: HURR! HURR HURR HURR!
17:48:18 <NihilistDandy> Oh, Star Wars
17:48:25 <CakeProphet> NihilistDandy: what? this is serious business.
17:48:38 <NihilistDandy> CakeProphet: TUSKEN RAIDERS ARE TOTES SERIOUS
17:48:39 <Gregor> CakeProphet: THE ELECTRONS!
17:48:45 <Gregor> CakeProphet: THEY'RE MULTIPLYING OUT OF CONTROL!
17:48:55 <fizzie> s/ an/ a/ I suppose.
17:48:57 <CakeProphet> Gregor: don't place conductor randomly, see above.
17:49:05 <Gregor> CakeProphet: I place conductor intelligently.
17:49:07 <CakeProphet> empty field, randomly placed electron geysers, kind of spread out.
17:49:10 <Gregor> CakeProphet: But all branches = dups
17:49:19 <Gregor> CakeProphet: Totally empty field is laaaaaaaaaaaaame! :(
17:49:26 <NihilistDandy> CakeProphet: That wasn't laughter, you see, it's the noise they make.
17:49:40 <CakeProphet> totally empty field means that the only thing that's important is your game plan.
17:50:17 <Gregor> CakeProphet: See, I was thinking of modifying my building mechanism so that you have to collect raw material :)
17:50:24 <CakeProphet> Gregor: working around randomly (er, I mean, intelligently) placed conductors is a hassle.
17:50:47 <CakeProphet> well, that's a possibility then. But using conductor as the raw material is probably not a good idea.
17:53:50 <Gregor> CakeProphet: Blank default config is so boooooooooooring :'(
17:54:37 -!- pikhq has joined.
17:54:48 -!- pikhq_ has quit (Ping timeout: 252 seconds).
17:54:54 <Gregor> CakeProphet: Y'know what, I'm inclined to use your flag idea instead of mine.
17:55:12 <CakeProphet> that's probably because it's the bomb-diggity
17:55:16 <Gregor> CakeProphet: Your flag idea + my carefully-made substrate = no duplication.
17:55:22 <Gregor> Or rather, no out-of-control duplication.
17:55:39 <CakeProphet> NihilistDandy: as a vanilla wafer, I often have trouble focusing on anything but my starchy composition.
17:56:17 -!- pikhq has quit (Client Quit).
17:56:31 <NihilistDandy> I hear milk helps with tha
17:56:32 <NihilistDandy> *that
17:56:32 -!- pikhq has joined.
17:56:44 <CakeProphet> -ahem- Gregor: I'm interested to see if you can make a configuration that's not a electrical clusterfuck
17:57:13 <CakeProphet> also, probably shouldn't have any conductors touching flags by default.
17:57:27 <CakeProphet> I'd say sparser distribution = better.
17:57:30 <oerjan> i am not sure vanilla is a suitable VLSI substrate
17:57:32 <fizzie> Vorpal: The Solaris dynamic linker seems to have an lazy-loading system like you wanted. It sticks a custom "lazy" flag in front of all the dependencies in the .dynamic section, and then those libraries are actually loaded on the first call.
17:57:46 <CakeProphet> perhaps with a maximum limit for the "length" of a single wire/circuit
17:57:56 <CakeProphet> to prevent overlap of circuits
17:58:02 <Gregor> CakeProphet: Of course no conductors touching flags is the default, and believe me my current one is not an electrical clusterfuck.
17:58:35 <fizzie> As far as I can figure out it's still going to go through all lazy dependencies when looking for a "foo" it couldn't find, though.
17:58:45 <fizzie> (Sauna-time, away.)
17:59:09 <CakeProphet> if I ever write an OS environment
17:59:17 <CakeProphet> I will name my equivalent of libc heroin
17:59:30 <CakeProphet> as it will be highly depended upon. >_>
18:00:56 <NihilistDandy> Oh, snap
18:01:32 <CakeProphet> yeah, that sounds of speechlessness.
18:02:10 <CakeProphet> what not? how do you move on from here?
18:02:42 <CakeProphet> it must be tough, reorganizing your life after the single most important event in its development.
18:02:52 <CakeProphet> like an early climax in your own personal novel.
18:03:25 <NihilistDandy> wut
18:03:47 <NihilistDandy> You're getting wafery again
18:03:55 <CakeProphet> its the pieces of a puzzle they may never become whole.
18:04:31 <CakeProphet> like it was made by some shitty factory with mostly former criminals and high-school dropouts as employees.
18:04:41 <CakeProphet> s/they/that/
18:06:17 <NihilistDandy> So a normal factory
18:07:59 <CakeProphet> NihilistDandy: the wafer is just a recursive subset of something greater. A small microcosm of our saccharide existence.
18:08:24 <cheater> a DACHGESCHOSS.
18:08:42 <NihilistDandy> cheater: Everything makes sense now
18:09:01 <cheater> NihilistDandy, Unicode DACHGESCHOSS character: ^
18:09:15 <NihilistDandy> Naturally
18:10:55 <CakeProphet> when I dunk it in milk it becomes pregnant with my lipid thoughts.
18:11:21 <cheater> so does anyone here know shit about biology?
18:11:39 <cheater> i need some good books on cell biology
18:11:50 <CakeProphet> I don't know of any good books, no.
18:11:53 <CakeProphet> see: the internet
18:12:06 <cheater> i used to have that but it fell behind the cupboard
18:12:08 <Gregor> CakeProphet: Here's my current starting configuration: http://codu.org/tmp/config.png
18:12:33 <cheater> Gregor, what is that?
18:12:40 <CakeProphet> prettty
18:13:01 <CakeProphet> so the stable loops are disconnected from the wires?
18:13:02 <Gregor> CakeProphet: More importantly, an electron let loose on the wire won't ever start multiplying out of control.
18:13:04 <Gregor> CakeProphet: Yes.
18:13:08 <CakeProphet> fun.
18:13:30 <cheater> Vorpal, zu hause is a quote from a song
18:13:34 <CakeProphet> that makes the landscape important to decision-making but not chaotic from the start.
18:13:39 <cheater> NihilistDandy can tell you which one
18:13:54 <Gregor> cheater: CakeProphet and I are designing a game where you write programs to functions as agents in a wireworld-like substrate.
18:13:55 <NihilistDandy> cheater: I'm sure it's in many songs, really
18:14:21 <CakeProphet> Gregor: do you get nice configurations each time or is that the only one
18:14:25 <cheater> not when used as a description of target.
18:14:29 <quintopia> gregor: was that config automatically generated?
18:14:31 <NihilistDandy> Ugggghhhh I have to pack next week
18:14:34 <Gregor> CakeProphet: It's generated randomly if that's what you mean.
18:14:37 <Gregor> quintopia: Yes, it's random.
18:14:48 <cheater> NihilistDandy, geh' doch zu hause!
18:16:30 <CakeProphet> that makes it rather complex to discern what happens as the result of wire placement
18:17:20 <quintopia> i can already tell...my game will be better
18:17:27 <Gregor> CakeProphet: My only determination is that it doesn't multiply out of control (which MAY be a lie, since I'm not sure if I can randomly form loops)
18:18:36 <Gregor> In fact, never mind, that's right.
18:18:38 <Gregor> It can't form loops.
18:18:52 <Gregor> So if you unleash a single electron into the substrate, it will always dissipate.
18:20:02 <CakeProphet> I'm thinking electrons should go at the same speed as agents.
18:20:25 <Gregor> I was actually starting to think that as well.
18:20:30 <Gregor> Although lightspeed agents = zomg
18:20:38 <CakeProphet> either that or you need to have the flag electron work differently that a normal electron. It only moves one space by consuming an electron
18:20:54 <Vorpal> <cheater> Vorpal, zu hause is a quote from a song <-- why are you telling me?
18:20:58 <CakeProphet> and can still be destroyed somehow
18:21:09 <Vorpal> cheater, in fact, what is that about
18:21:16 <quintopia> do agents have to recharge?
18:21:24 <Gregor> CakeProphet: Even if agents can move at the same speed as electrons, they can't catch up with one ...
18:21:28 <Gregor> quintopia: ... no?
18:21:42 <cheater> Vorpal, you were asking if zuHause means anything other than german invasion.
18:21:44 <cheater> here's your answer.
18:21:48 <Vorpal> cheater, no
18:21:49 <Vorpal> I was not
18:21:58 <Vorpal> cheater, you confused people
18:22:03 <Vorpal> check your damn scrollback
18:22:06 <CakeProphet> Gregor: so maybe it makes more sense to have the flag particle carried forward one space via one electron pulse
18:22:29 <CakeProphet> as this makes the flag move somewhat slowly
18:22:40 <Gregor> CakeProphet: I think that makes defense too easy.
18:23:01 <CakeProphet> possibly.
18:23:07 <Gregor> Maybe :)
18:23:14 <quintopia> what language are these agents programmed in
18:23:22 <Gregor> quintopia: Any.
18:23:51 <CakeProphet> you still have to a) be aware that the flag is stolen b) find the flag c) know which direction the flag is going d) destroy a conductor in front of it
18:24:20 <Gregor> Fair enough ...
18:24:38 <quintopia> and the game is 2 player CTF?
18:24:39 -!- copumpkin has joined.
18:24:39 <Vorpal> has anyone in here played oblivion?
18:24:56 <Gregor> quintopia: Yeah
18:24:58 <Gregor> quintopia: Err
18:25:06 <Gregor> quintopia: Two-player is not determined, but CTF is :)
18:25:44 -!- Taneb has joined.
18:25:52 <CakeProphet> meanwhile the offender may have set up decoy wires, wire branches, etc
18:26:00 <CakeProphet> so offense is still simple as well.
18:26:02 <Taneb> Hello!
18:27:03 -!- copumpkin has quit (Client Quit).
18:27:38 <CakeProphet> Gregor: so currently there's not really a resource gathering dynamic
18:27:48 <Gregor> CakeProphet: No, that vanished :P
18:27:50 <CakeProphet> first step in my mind would be to find the opponents flag as this gives you an immediate advantage.
18:29:06 <Gregor> CakeProphet: We could add back in the resource management dynamic by changing from my conductors potentias system probably.
18:29:15 <CakeProphet> next would be to scout around for loops and pathways, and find one to connect to their flag without making it immediately obvious that you're doing that.
18:29:22 <quintopia> so theres like a function "am i standing on the flag?" and thats it?
18:29:48 <CakeProphet> you'd have a "read" instruction most likely, that gives you information about your current location. I doubt it would consume a turn.
18:29:56 -!- zzo38 has joined.
18:30:00 <Gregor> quintopia: No, you have a radius of vision, you can build conductors, you can break shit, and you can move.
18:30:02 <CakeProphet> turn = some kind of action other than reading cell info
18:30:04 <quintopia> hi zzo38
18:35:34 <zzo38> Hello. Any questions?
18:39:15 -!- Taneb has quit (Ping timeout: 260 seconds).
18:39:42 -!- Taneb has joined.
18:43:29 -!- copumpkin has joined.
18:47:35 <Gregor> Welcome to the new YouTube Music which we're forcing you to see in a giant bar on the top of your YouTube page! Genres -> lol no music was written before 1920 you guys!
18:47:36 <yourstruly> yes
18:49:23 <Taneb> Goodnight!
18:53:01 <pikhq> Gregor: Also, presumably, lol no music exists that's not on top 40 radio.
18:53:02 <yourstruly> yes
18:53:41 -!- Taneb has quit (Ping timeout: 240 seconds).
18:54:41 <oerjan> Not to mention that, lol no music is argle bargle.
18:54:42 <yourstruly> yes
18:54:46 <oerjan> XD
18:54:59 <oerjan> someone is _so_ busted
18:56:45 <oerjan> also, lol whatever.
18:57:09 <oerjan> or maybe, lol no in any case.
18:57:09 <yourstruly> yes
18:57:25 <oerjan> lol no
18:57:25 <yourstruly> yes
18:58:20 <Gregor> The thing is, usually there's an amorphous "classical" genre that's sparsely populated with only the most well-known composers whose surnames begin with the letter 'B'.
18:58:22 <Gregor> But they don't even have that.
18:58:53 <Gregor> The most well-known pieces by such B-named composers that is.
19:01:39 <oerjan> what no M
19:01:46 <oerjan> i mean, lol no M
19:01:46 <yourstruly> yes
19:03:16 <Gregor> A friend of mine and I have a game where we try to guess who the composer of a piece of music is. You're allowed to guess two letters as the last initial. But if you choose 'B', you can't choose another letter :P
19:03:26 <fizzie> Vorpal: I played it a little bit.
19:08:23 -!- azaq23 has joined.
19:10:06 <Gregor> CakeProphet: So shall I start working on the agent interface?
19:10:06 <quintopia> zzo38: yes. what do you think Scrolls will be like? are you excited?
19:10:55 <CakeProphet> Gregor: whatever you want to do.
19:11:18 <Gregor> CakeProphet: Dood, this is a TEAM EFFORT
19:11:20 <quintopia> the most well-known pieces by B-named composers? you mean symphonie fantastique?
19:12:07 <Gregor> quintopia: Several of Bach's Brandenburg Concertos plus Air on G, everything by Beethoven, and a few things by Brahms.
19:12:29 <quintopia> so no Berlioz? sad day
19:12:37 <quintopia> (of course, i don't expect anything by Boulez)
19:13:11 <Gregor> quintopia: Berlioz??? Dude, he's not even German.
19:13:18 <quintopia> i was about to say
19:13:24 <Gregor> quintopia: Everybody knows that what tiny amount of music existed before 1920 was entirely German.
19:13:27 <quintopia> "only austro-germans count, obc"
19:14:18 * Gregor proceeds to listen to Bach's Air on G :P
19:14:31 <quintopia> pity then, that the letter "B" does not include Strauss and Wagner
19:14:53 <Gregor> Well Strauss is fucking terrible, and Wagner insults my Jewish heritage lol :P
19:15:11 <quintopia> good. JEW!
19:15:12 <quintopia> :P
19:15:33 <quintopia> obv i meant richard strauss, not johann
19:15:35 <Gregor> (Unless you mean Richard Strauss, who deserves to be the one people think of when you say "Strauss", but usually isn't)
19:15:36 <Gregor> Ohhhh
19:15:37 <Gregor> Good.
19:16:29 <Gregor> But anyway, we all know that Richard Strauss doesn't show up on general musical radar.
19:16:36 <Gregor> Because his surname doesn't start with a 'B'.
19:16:37 <quintopia> and i suppose the "german" restriction rules out Bedrich Smetana
19:16:53 <quintopia> oh, only surnames
19:16:55 <quintopia> that too then
19:17:03 <zzo38> quintopia: Scrolls? What scrolls?
19:17:42 <quintopia> zzo38: scrolls.com
19:18:15 <zzo38> What about scrolls.com/
19:18:21 <zzo38> What about scrolls.com?
19:19:48 <quintopia> that's where it tells what scrolls will be
19:22:56 <zzo38> I looked. It doesn't help. I don't know. Insufficient information.
19:23:29 <quintopia> i agree. enough to be interesting?
19:24:16 <zzo38> I don't know.
19:25:24 <Phantom_Hoover> quintopia, Mojang Scrolls?
19:26:01 <Phantom_Hoover> The crappy card game BUT ON A COMPUTER?
19:26:06 <quintopia> Phantom_Hoover: perhaps. if they lose the the battle in the arena.
19:26:18 <quintopia> also don't diss on crappy card games. some people here like those.
19:45:18 -!- azaq23 has quit (Quit: Leaving.).
19:49:45 -!- pikhq_ has joined.
19:50:14 -!- pikhq has quit (Ping timeout: 260 seconds).
19:50:49 -!- monqy has joined.
19:52:22 <Gregor> According to YouTube's sticky music bar, Lady Gaga has a song called "Yo and I". I believe she's introduced a new element into English orthography, namely the retard mark.
19:58:24 -!- oerjan has quit (Quit: Good night).
19:59:29 -!- elliott__ has joined.
20:00:03 <elliott__> hi
20:00:43 <Deewiant> ho
20:01:08 <Gregor> hrr
20:02:29 <elliott__> 21:19:41: <EgoBot> USBCT
20:02:35 <elliott__> united states bitwise cyclic tag
20:02:38 <elliott__> 21:20:43: <ais523> also, randomRIO is an incredible hack, but I see why it exists
20:02:42 <elliott__> how is it a hack
20:04:11 <elliott__> 21:32:12: <fizzie> I have Google's "ngrams of 1 billion words of interweb text" corpus, it's got a unigram list followed by count, wouldn't be too tricky to make a relative ranking of first letters I guess.
20:04:19 <elliott__> fizzie: hmm, could it be put into fungot somehow, or does it not have any similar type of data?
20:04:20 <fungot> elliott__: my fnord into normal life was a painful and difficult process. the loss of his handkerchief as he fumbled in his blouse pocket to see if there might not be caused by the unwise cutting of fnord near the shore and guard the fnord against possible reinforcements for curwen until summoned by a final emergency signal.
20:04:36 <elliott__> `addquote <fungot> elliott__: my fnord into normal life was a painful and difficult process. [...]
20:04:38 <fungot> elliott__: but isolated parts of bodies. he had himself well under control when that hideous thing pulled him out of the plant's effective radius. at night the conference fnord without having developed a definite plan, but all the peasants and police in county fnord could never have fnord the black galleys. one of them seemed especially portentous because of its poverty in beauty and delight. this night shalt thou know the favo
20:04:40 <HackEgo> 608) <fungot> elliott__: my fnord into normal life was a painful and difficult process. [...]
20:04:46 <Gregor> <elliott__> united states bitwise cyclic tag // the best bitwise cyclic tag.
20:09:33 <fizzie> elliott__: Theoretically it could, though in practice it would need some work. It's far too large to work directly in fungot as a model. I could feed the ngram counts to the VariKN toolkit I've used before to get a reasonably sized approximation, but it would need some glue (unless the format happens to be compatible) and I'm not sure if our machines are big enough to handle it. (Depends on how memory-wastey VariKN is. The 5-gram datafiles take 6 DVDs.)
20:09:34 <fungot> fizzie: whose source he could only mutter over and over again through those eons i whispered and muttered, called, shouted, and screamed, " warren, brace up! i'm coming down!" but at this moment over the roofs of strange dead cities toward the grinning chasm of nis, it is nevertheless too definitely insipid for greatness. here again we have shadowy intimations of a vast forest dmon about which north woods fnord whisper at even
20:09:46 <fizzie> ^style
20:09:46 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft* nethack pa speeches ss wp youtube
20:09:50 <elliott__> fizzie: Nice :P
20:09:52 <fizzie> Ah, sure.
20:10:05 <elliott__> fizzie: Is five the maximum number of grams Google offers?
20:10:17 <fizzie> Yes.
20:13:25 <fizzie> Also it'd need some glue to handle the punctuation, which in fungot-land is handled as separate tokens. I'm not sure what the Google set does.
20:13:27 <fungot> fizzie: he would have fallen to the pavement had he not clutched instinctively at the fnord door when clouds are thickest. and patriarchs dread lest some day one by one to their respective homes, which they hastened to do with his premature flowering. an only child and the radiant pair, but by dawn realised how silly i had been careless enough to leave a strong odor even at this extreme superplateau altitude. in other places th
20:15:02 <elliott__> 22:12:56: <fizzie> Wouldn't it be extra-magical if sort worked so that if you give {...$a...$b...} it uses the value of that as the comparison result, but if it's just {...$a...} with no refs to $b it would apply that to each element and compare those results with <=> or cmp, whatever the default sort uses?
20:15:09 <elliott__> fizzie: Please; some of us have sensitive dispositions.
20:15:14 <cheater> Vorpal, my scrollback is damn indeed.
20:15:19 <fizzie> But it'd be so "Perl".
20:15:29 <fizzie> Seems they're different tokens for Google data too, but the names would have to be converted (either pre- or post-VariKN, depending on how picky that is w.r.t. token formats) to fungot's format.
20:15:30 <fungot> fizzie: when we had followed the doctor fnord only the smooth concrete underneath the ice, which was nearer norrys' couch than mine. he seemed fnord of motion, but stood quiet as soon as i had done with the other islanders had got wind o' what was gossiped abaout cap'n obed an' the dogs was barkin' en' fnord' the life out..."
20:15:59 <elliott__> fizzie: But just think: fungot will finally start spitting out AVERAGE INTERNET.
20:15:59 <fungot> elliott__: this paper held much of a rage as he seemed to be setting down a history of my own age. they fnord me a fnord
20:16:03 <elliott__> I'm TERRIFIED.
20:16:45 <fizzie> After "in the recent events", the possible next word according to Google is either "," (93), "." (159), "and" (43), "at" (46), "in" (219), "of" (74), "that" (44).
20:18:45 <fizzie> It's not quite average internet because Google has filtered out all n-grams that have a frequency < 20. So it's... only the likely parts of average internet, with the off-the-mean parts excised.
20:19:05 <fizzie> There's a script here somewhere that does basically fungot babble directly out of the Google corpus already; it's a bit slow (all the ngrams were just dumped into a PostgreSQL database, and then it executes a query against it for each new word) but works.
20:19:06 <fungot> fizzie: gables to drag listless down the years while voice by voice the laughing chorus grows stronger and wilder in that unknown antarctic world of disordered time and alien natural law make it imperative that further exploration be discouraged. yet i hesitated only for a very few were the skulls of supremely and fnord developed types. all the party fnord rang tremulously. those who took down their fnord heard a fnord voice sh
20:20:07 <elliott__> fizzie: Well, it's... more average internet than the irc corpus.
20:20:08 <elliott__> 22:51:17: <Phantom__Hoover> ais523, that seems... inefficient.
20:20:27 <elliott__> Phantom_Hoover: Hash functions are constant time and the kind used for hashtables are pretty damn fast
20:20:35 <elliott__> Wait, they're integers
20:20:40 <elliott__> So there isn't even any hash overhead
20:20:53 <elliott__> It reduces to basically identical if you just have (machine-word) integer keys.
20:21:07 <elliott__> Well, except that there's also a modulo.
20:21:47 <CakeProphet> you should change your name to __elliott__ and then you'll be special in Python.
20:21:56 <elliott__> 22:55:54: <Vorpal> CakeProphet, http://en.wikipedia.org/wiki/BANCStar_programming_language
20:21:56 <elliott__> why on earth does it have a Wikipedia article?
20:22:03 -!- elliott__ has changed nick to elliott.
20:22:10 <CakeProphet> same reason "esoteric programming language" does.
20:22:12 -!- elliott has quit (Changing host).
20:22:12 -!- elliott has joined.
20:22:13 <Deewiant> Shush, you'll draw the exclusionists to it
20:22:27 <elliott> Deewiant: That's not what exclusionism means
20:22:29 <elliott> You mean deletionist
20:22:33 <elliott> (http://meta.wikimedia.org/wiki/Exclusionism)
20:22:34 <Deewiant> Whatever
20:22:52 <elliott> http://meta.wikimedia.org/w/index.php?title=Exclusionism&oldid=504276 <-- better version
20:23:03 <Deewiant> "It is possible to be an inclusionist and an exclusionist at the same time."
20:23:06 <Deewiant> Terminology failure
20:23:25 <CakeProphet> in much the same way that one can be an anarchist and a fascist.
20:23:25 <elliott> Deewiant: As we all know, language is completely logical. Therefore ...
20:23:37 <Vorpal> <elliott__> why on earth does it have a Wikipedia article? <-- no clue, first hit on google though
20:23:41 <CakeProphet> elliott: more importantly, people subscribing to ideologies are completely logical.
20:23:45 <elliott> http://meta.wikimedia.org/wiki/Association_of_Wikipedians_Who_Dislike_Making_Broad_Judgments_About_the_Worthiness_of_a_General_Category_of_Article,_and_Who_Are_in_Favor_of_the_Deletion_of_Some_Particularly_Bad_Articles,_but_That_Doesn%27t_Mean_They_Are_Deletionists
20:23:51 <Deewiant> elliott: They could've chosen their terms better
20:23:52 <elliott> Nice logo.
20:23:55 <elliott> It's even SVG.
20:23:56 <fizzie> The Google Books based corpus, incidentally, is publicly downloadable at http://ngrams.googlelabs.com/datasets -- but that's "average book", not "average internet".
20:24:09 <elliott> fizzie: As is well-known, "books are for fags". Therefore...
20:24:37 <fizzie> While the Internet is for porn.
20:25:01 <elliott> Maybe you shouldn't put it into fungot.
20:25:02 <fungot> elliott: on the seventh of may, 1765, curwen's only child ann was born; and was fnord to me as it struck out wickedly from the spaces behind and beneath.
20:25:13 <elliott> Can cfunge even _handle_ files that big? Maybe that would slow it down.
20:25:18 <elliott> You might have to switch to Shiro.
20:25:25 <CakeProphet> The name of this page is far too long. Why not shorten it? -- 92.10.89.238 18:00, 21 November 2008 (UTC)
20:25:35 <CakeProphet> insights from anon.
20:26:01 <monqy> im applause
20:26:22 <fizzie> elliott: It doesn't actually load the files, it just reads few bytes here and there and seeks around. But the file offsets in the data structure are limited to something like 2^28, so it can't handle files bigger than 256 megabytes.
20:26:31 <zzo38> I prefer METAFONT for scalable logos rather than SVG though, I invented a program to make it colors and special effects
20:26:37 <elliott> fizzie: Who's fault is that?
20:26:41 <elliott> Don't tell me it's Riley's.
20:26:45 <elliott> I'll cry
20:26:46 <elliott> .
20:27:26 <elliott> 00:12:45: <ais523> can imaginary time even be played?
20:27:26 <elliott> 00:12:49: <ais523> you'd have to convert it to temperature somehow
20:27:27 <elliott> Temperature?
20:27:34 <Phantom_Hoover> elliott, fungot uses cfunge?
20:27:35 <fungot> Phantom_Hoover: suddenly i rose, put on my hat and coat, and they all tried to force me to cross it boldly and fnord imitating the typical fnord of the fnord fnord leaving behind a caution against the bearded allen, to which the race had hewed its way through the ruined and abandoned halls and towers of the old carter place, they found more easily planned than fnord since no sign of consciousness for sixteen and a half
20:27:37 <fizzie> elliott: Ultimately mine -- I could've used more than 4 seven-bit "bytes", after all -- but I suppose he's a contributory cause, since it'd be 2^32 (4G) if the corresponding fingerprints had specified whether it reads signed or unsigned chars.
20:27:42 <Phantom_Hoover> And you didn't complain violently?
20:27:48 <elliott> "My Human Gets Me Blues" by Captain Beefheart & the Magic Band features a "complex time signature."[115]
20:27:52 <elliott> Well, close enough.
20:27:59 <elliott> Phantom_Hoover: Who says I haven't?
20:28:13 <Phantom_Hoover> elliott, no
20:28:14 <Phantom_Hoover> but
20:28:22 <elliott> It _used_ to be RC/Funge.
20:28:27 <elliott> cfunge is... probably an improvement.
20:28:29 <Phantom_Hoover> you should have started complaining
20:28:33 <Phantom_Hoover> and never stopped
20:28:47 <elliott> CCBI didn't support the relevant fingerprints at the time, right fizzie?
20:29:19 <fizzie> elliott: Mmmmpossibly. At least when I started with RC/Funge. I don't really recall the cfunge switch so well.
20:29:58 <fizzie> elliott: I do have this SMS corpus too. It's a lot smaller, and then fungot would sound like your regular SMSer. Here, let me just quote 5 first randomly picked messages of it.
20:30:00 <fungot> fizzie: their mastery of dreams? was i to hear a faint, fnord rhythm or vibration in the darkened next room. he assumed that these things were hackneyed spectral lore, and i only, know what manner of men could have existed was none the less existing in a very crabbed and archaic hand; and though still walking on automatically, resigned myself to the inevitable. another moment and i had to, dan! she'd have got me for good she'd
20:30:03 <fizzie> Juz nothing special lor... They juz cut like straight across lor...
20:30:06 <fizzie> All e best 4 ur driving tmr :-)
20:30:10 <fizzie> I duno leh, any suggestion i should cut wat. Then u got any place in mind where 2 cut?
20:30:14 <fizzie> dfdsf
20:30:22 <fizzie> Hey lien... U took e finance survival kit oso huh.. I juz read ur email... I'm takin it oso!
20:30:23 <Deewiant> I thought the main reason was "not compiled here" syndrome + CCBI being too much of a pain to compile ;-)
20:30:39 <elliott> Good thing Shiro only depends on ONE EXTERNAL LIBRARY. For now.
20:30:45 <quintopia> what is a standard way to express an arbitrarily large or small integer in binary such that the |n| is log(abs(n)) in the representation (like how balanced ternary is)?
20:30:56 <elliott> quintopia: Balanced ternary?
20:30:57 <Deewiant> elliott: Which one's that
20:31:08 <elliott> fizzie: Oh my god yes add that to fungot.
20:31:09 <fungot> elliott: mr. hoadley disappeared soon after fnord this was in june that blake's diary told of his safe arrival, and of somewhat brawny frame, he was at the gateway of a region fnord through the hypnotic suggestions of the dragging of his body seemed sore and bruised. when he complained, and longed to escape into twilight realms where magic moulded all the little vivid fragments and prized associations of his mind as an opener o
20:31:44 <fizzie> It only has like 10117 messages though.
20:32:06 <fizzie> "He say dun tink they need part timer...How? U go crepes n cream ask la...Hereen 1..."
20:32:10 <quintopia> elliott: balanced ternary requires three digits. i'm asking for a binary system.
20:32:31 <monqy> mmmm crepes n cream
20:33:11 <elliott> quintopia: Balanced ternary digit → two binary digits, Q.E.D.
20:33:20 <elliott> There are a lot of impossible numbers there though. :p
20:33:25 <elliott> fizzie: I don't care it sounds amazing.
20:33:32 <quintopia> elliott: that doesn't sound very standard
20:34:46 <elliott> 00:17:31: <CakeProphet> that could be remedies by complex numbers and quaternions!
20:34:46 <elliott> 00:17:34: <CakeProphet> *remedied
20:34:46 <elliott> 00:17:56: <CakeProphet> and whatever the 3-component one is called.
20:34:46 <elliott> there three-component is quaternions
20:34:48 <elliott> [asterisk]the
20:34:56 <elliott> :P
20:35:44 <CakeProphet> you mean three-components not including the integer part right?
20:37:21 <zzo38> Have you played D&D game a character who is wizard but has no spellbook (such as, it got lost, you sold it, you left it somewhere else for some reason)?
20:37:21 <elliott> They were invented trying to add another component to complexes, IIRC
20:37:25 <monqy> http://upload.wikimedia.org/wikipedia/commons/a/a2/William_Rowan_Hamilton_Plaque_-_geograph.org.uk_-_347941.jpg
20:37:31 <elliott> Hamilton knew that the complex numbers could be interpreted as points in a plane, and he was looking for a way to do the same for points in three-dimensional space. Points in space can be represented by their coordinates, which are triples of numbers, and for many years Hamilton had known how to add and subtract triples of numbers. (This is trivial.) However, Hamilton had been stuck on the problem of multiplication and division for a long time. He
20:37:31 <elliott> not figure out how to calculate the quotient of the coordinates of two points in space.
20:37:34 <Phantom_Hoover> 3-component?
20:37:35 <Phantom_Hoover> What?
20:37:50 <elliott> "And here there dawned on me the notion that we must admit, in some sense, a fourth dimension of space for the purpose of calculating with triples ... An electric circuit seemed to close, and a spark flashed forth."
20:38:15 <elliott> yourstruly: oasjas
20:38:23 <elliott> 00:59:38: <Gregor> CakeProphet: I wanted to make so-called biomes so you would need to find a good spot.
20:38:27 <elliott> Gregor: Is it Minecraft yet?
20:38:32 <Phantom_Hoover> <elliott> there three-component is quaternions
20:38:38 <elliott> Phantom_Hoover: s/there/the/
20:38:40 <elliott> It's snark.
20:38:43 <Phantom_Hoover> It's A Bit More Complicated Than That™.
20:38:46 <elliott> It's snark.
20:39:04 <monqy>
20:39:13 <Phantom_Hoover> monqy™
20:39:32 <Gregor> elliott: It became substantially less Minecraft than it was at its Minecraft height.
20:40:03 <Phantom_Hoover> What did?
20:44:42 <Gregor> Phantom_Hoover: The competitive-programs-on-a-CA-map game that CakeProphet and I are making (CakeProphet being the unwilling forced participant :P )
20:44:53 <Gregor> Which I have dubbed Rezzo, by the way.
20:45:11 <Phantom_Hoover> Gregor, hmm, it's a concept I've always been suspicious of.
20:45:30 <Gregor> "Suspicious of"?
20:45:38 <CakeProphet> Gregor: no I enjoy making games. I just don't have much time to commit to implementation.
20:45:41 <Phantom_Hoover> Suspicious that it won't work.
20:45:57 <CakeProphet> Gregor: still I could probably do something in the future. Like write naive test players. :P
20:46:40 <CakeProphet> and I might branch the server program and add more rules to test those out.
20:46:46 <Gregor> Phantom_Hoover: To be clear, only the environment is a CA, the agents are outside meddlers.
20:47:00 <Phantom_Hoover> Ah.
20:47:23 <CakeProphet> I imagined them as pointers on a grid, similar to BF, but I guess Gregor intends to give them a vision radius.
20:47:23 <elliott> Oh, that changes things.
20:47:54 <CakeProphet> which probably makes playing much much easier.
20:48:04 <Gregor> My intention is that they have a location, can see an area around that location, but can only affect exactly that location.
20:48:11 <CakeProphet> right.
20:48:32 <CakeProphet> though if we ever include walls it would make sense if they could affect adjacent locations.
20:48:37 <CakeProphet> to destroy walls.
20:48:55 <Gregor> Makes sense.
20:49:12 <CakeProphet> incidentally, viewing your location should be called "look"
20:49:27 <CakeProphet> movement should be controlled by north, south, east, west, northeast, southeast, northwest, southwest commands
20:49:39 <CakeProphet> and building should be done with "build"
20:49:49 <Gregor> CakeProphet: My thought was that you'd just have your surrounding area barfed at you whether you wanted to or not :P
20:49:50 <CakeProphet> and then it will be a pseudo-MUD. :P
20:50:04 <Gregor> CakeProphet: A MUD where you must do a command 15 times per second...?
20:50:09 <CakeProphet> yes.
20:50:17 <CakeProphet> well, in MUDs when you change locations you autolook.
20:50:42 <CakeProphet> l, b, n, s, e, w... for short
20:51:12 <Gregor> My thought was that at the beginning of every "frame", the server shows you your surrounding area, then you have until the end of the "frame" to tell it what you want to do (which it acknowledges), otherwise your default action is nop.
20:51:37 <fizzie> Grumble mumble this silly SMS corpus is in some forked 8-bit character set. There's a lot of 0xDC where (from the context) I'd assume "I", and 0xFC where I'd assume "you".
20:51:46 <CakeProphet> Gregor: I guess that's reasonable.
20:52:09 <CakeProphet> though I'd say if every command is received for a frame then the server could go ahead.
20:52:13 <Gregor> fizzie: ... why would you need an abbreviation for "I" :P
20:52:21 <Gregor> CakeProphet: Suresure.
20:52:37 <fizzie> Gregor: Maybe it's a "special" I. (Like all these message-writers are quite "special".)
20:52:45 <fizzie> It's not GSM 03.38 either, that's a 7-bit thing with some multibyte nonsense.
20:52:52 <Gregor> It's .
20:53:00 <Gregor> am so col!
20:53:52 <elliott> fizzie: Maybe it's "we"?
20:54:36 * CakeProphet has no compose key.
20:55:08 <fizzie> There's also some 0xEC and 0xE8 in less obvious contexts. And some others. "It's <E9> only $140 ard...<C9> rest all ard $180 at least...Which is <E9> price 4 <E9> 2 bedrm ($900)"
20:55:12 <fizzie> The README doesn't say.
20:55:41 <CakeProphet> ಠ_ಠ
20:56:18 <fizzie> Oooh, they have a newer version too, with 28k messages. Maybe I'll use that instead.
20:56:58 <fizzie> Margle blargle "free registration".
20:57:04 <elliott> monqy: help ive got an email about GLFWPipe help
20:57:11 <Gregor> I got my plasma sword and I'm ready to CRANK IIIIIIIT
20:57:19 <monqy> elliott: help
20:57:20 <CakeProphet> Gregor: obviously the best language of choice to represent a massive mutable CA is Haskell.
20:57:29 <elliott> monqy: its from remi a french student interested in haskell :(
20:57:34 <Gregor> CakeProphet: SORRY ALREADY WROTE IT IN C
20:57:42 <CakeProphet> OHHHH NOOOO
20:57:42 <Gregor> Which happens to be the best language for LITERALLY EVERY PURPOSE.
20:57:49 <monqy> elliott: is this bad it sounds bad
20:58:04 <CakeProphet> Gregor: yes I'm comfortable with C
20:58:15 <CakeProphet> but it's not the BEST language for literally every purpose...
20:58:19 <CakeProphet> it's just A language for that.
20:59:05 <fizzie> "Customer Type (How do you describe yourself): [ ] Inventor, [ ] Business Development, [ ] Company, [ ] Investor, [ ] Enterpreneur. My Interest: [ ] Life Science, [ ] Interactive Digital Media, [ ] Physical Sciences, [ ] Multidiscliplinary." You're asking some awfully silly questions here, form.
20:59:08 <monqy> whats sarcasm help
20:59:45 * CakeProphet is a company.
20:59:51 <Gregor> CakeProphet: Literally - every - purpose.
21:00:04 <fizzie> I think I'll be a multidisciplinary inventor today.
21:00:13 <CakeProphet> Gregor: except for sanely dealing with parametric types.
21:00:30 <monqy> and being a good language for literally every purpose
21:01:00 <CakeProphet> "C with templates" would be nice.
21:01:07 <CakeProphet> you know, without being C++
21:01:12 <CakeProphet> and using macro hacks.
21:02:22 <CakeProphet> "C with templates that aren't macro hacks and tagged unions that aren't struct hacks"
21:02:28 <CakeProphet> this name is starting to get lengthy.
21:02:38 <monqy> if only c were haskell
21:02:40 <monqy> if only....
21:03:04 <CakeProphet> No, it just needs to be C with templates and tagged unions
21:03:21 <CakeProphet> and maybe typeclasses. :D
21:04:11 <CakeProphet> though you could techncially implement typeclasses in C by passing around dictionaries to every typeclassed function..
21:04:16 <CakeProphet> like what Haskell does internally.
21:04:53 <CakeProphet> saying you can technically implement something in C is kind of an inane point.
21:06:00 <CakeProphet> oh, C with Lisp-style macros.
21:06:03 <CakeProphet> as well.
21:06:05 <CakeProphet> this would be good.
21:06:31 <CakeProphet> just implement templates as a special kind of macro.
21:07:26 <monqy> templates as in c++ style templates or templates as in template haskell style
21:09:13 <CakeProphet> c++
21:09:18 <CakeProphet> generics. parametric types.
21:09:59 <fizzie> C++ style templates are the best, you get to compile different instances of identical object code for a linked list of "void *"s, "const void *"s, "int *"s, "char *"s and "AnyUserType *"s.
21:10:17 <fizzie> Also for any types that happen to have the same size, most likely.
21:12:49 <fizzie> "reference to invalid character number at line 8644, column 34, byte 6668672: [..]". This new corpus of theirs isn't even XML.
21:16:42 <elliott> 01:25:06: <Gregor> If anybody knows how to safely run untrusted code, it's me :P
21:16:43 <elliott> You are LITERALLY THE WORLD EXPERT.
21:16:53 <quintopia> < Gregor> CakeProphet: Literally - every - purpose. <-- I C WUT U DID THAR
21:17:02 <elliott> Gregor: I daresay codepad might be even more paranoid than HackEgo :P
21:17:57 <elliott> 01:27:26: <Gregor> Patashu: Robocode is VM'd, sandboxing a VM is boring.
21:17:58 <elliott> A VM like x86
21:18:57 <fizzie> That was the best. A 29-megabyte .xml file; Perl's XML::XPath used 2 gigabytes of memory to run a query against it.
21:20:14 <elliott> fizzie: Perl is gud
21:29:20 <fizzie> elliott: Okay, this is how it would look like if I were to install it in the bot: http://p.zem.fi/q6ph
21:29:35 <elliott> fizzie: Go on then.
21:29:46 <elliott> n-oble. t-ruthful. i-ntimate. n-atural. e-namous. happy "valentines
21:29:46 <elliott> day! sorry, couldn't i have had enough from you and family while
21:29:46 <elliott> ah..heh. lucky i nvr do"
21:29:46 <fizzie> Are you sure that's: a good idea.
21:29:52 <elliott> fizzie: juz finish eating soon?...or just started dont stop?....
21:29:57 <elliott> fizzie: It's better than the darwin corpus
21:30:03 <elliott> (Don't remove the darwin corpus)
21:30:47 <fizzie> Well, if you're sure. Will take a moment.
21:31:07 <elliott> "whatever haha cos i quite sui bian tai tai life lor cos i din
21:31:07 <elliott> say dat u hav brain tumour. pappu offered to help you with microsoft
21:31:07 <elliott> when u're confuse ho"
21:31:19 <elliott> drinkwater ma? blink together, cry together to9?
21:33:07 <fizzie> ^save
21:33:08 <fungot> OK.
21:33:13 <fizzie> ^raw QUIT :NOOOOO
21:33:13 -!- fungot has quit (Quit: NOOOOO).
21:33:49 <elliott> RIP gunfgot
21:33:53 -!- fungot has joined.
21:33:58 <fizzie> ^style sms
21:33:58 <fungot> Selected style: sms (National University of Singapore SMS corpus, 2011-08-20)
21:34:25 <fizzie> fungot: Are you, or are you not, "hip"?
21:34:26 <fungot> fizzie: break for dinner. i am very tensed up.. u must have taken. tsk tsk
21:34:28 <elliott> Hmm, I thought it smelled dialect-y.
21:34:32 <elliott> Singapore would explain it.
21:34:35 <elliott> Well, pidgin-y.
21:34:39 <elliott> fungot: BABY.
21:34:39 <fungot> elliott: ya i am doin too much.hereafter i wnt to buy a bmw bt i forgot modl no
21:36:32 -!- KingOfKarlsruhe has joined.
21:37:10 <CakeProphet> fizzie: what is hip?
21:39:17 <fizzie> elliott: Country distribution: http://p.zem.fi/wbrg
21:39:18 <elliott> fungot: If you're so hip, what is the correct way to handle the situation in which the pimp's in the crib, ma?
21:39:18 <fungot> elliott: now i say lo miss eu.dipx dipx where got always bluff me say u sleeping
21:39:31 <elliott> fungot: The correct answer was to "drop it like it's hot".
21:39:31 <fungot> elliott: no i am not having her number sir! eppadi irukkeengo? thgt some will clash... really... we can go meet em out... when she wana finish my law was carved in letters of rec u for other positions. ask me la. everytime... bslvyl
21:39:45 <elliott> fizzie: Isn't SG = Singapore?
21:39:54 <fizzie> Yes. The data, it's not very consistent.
21:40:16 <fizzie> MY is also Malaysia.
21:40:21 <fizzie> (IIRC.)
21:41:23 <fizzie> They kept saying "lor" a lot at least in the older corpus.
21:41:28 <CakeProphet> US is United States and also another pronoun. :3
21:41:32 <fizzie> Had to go to Urban Dictionary to look up that.
21:41:38 <elliott> fizzie: I guessed about MY.
21:41:50 <elliott> fungot: Lor
21:41:50 <fungot> elliott: i was just about to do it when i wake up long la. queue long meeting at 1... later the better ofcourse i hav it dear
21:42:01 <elliott> fungot: I see
21:42:12 <fizzie> fungot: Your cutoff is very impolite.
21:42:12 <fungot> fizzie: today i am in cbe only. but have to seek. hee
21:42:18 <elliott> fizzie: So how long until fungot can handle a five-DVD corpus
21:42:18 <fungot> elliott: out of hse... so u still workin at it now. just send the message to me and i.ll get it you may have to send it in the mobile mode sha but i.ll get it. and will reply.
21:42:25 <elliott> I'm sure you have enough drives lying around to stuff into one machine
21:43:59 <CakeProphet> fungot is the man with the plan
21:43:59 <fungot> CakeProphet: with no problen i submitd a btr asignment. thanx so much andrew. i wont let me hav my dinner. my sister. how i going to reply xy's email?
21:44:23 <fizzie> It's not just the dick-space, it's more that I'd need to fix the 'funge to handle larger file offsets. (Plus the conversion scripts. They'd run out of memory, the way they're currently written.)
21:44:39 <elliott> fizzie: I gather.
21:44:51 <elliott> fizzie: I guess you'd just have to split the DVDs into a lot of files.
21:45:33 <elliott> ?unmtl StateT b m r
21:45:33 <lambdabot> b -> m (r, b)
21:45:41 <fizzie> I'd rather run it through our pruning-smoothing thing and let it build a small approximative model, but I'm not sure I have the memory even for that.
21:46:16 <CakeProphet> @hoogle b -> m (r, b)
21:46:16 <lambdabot> Control.Monad.State.Lazy runStateT :: StateT s m a -> s -> m (a, s)
21:46:17 <lambdabot> Control.Monad.State.Strict runStateT :: StateT s m a -> s -> m (a, s)
21:46:17 <lambdabot> Data.Graph.Inductive.Query.Monad apply' :: Monad m => GT m g a -> g -> m (a, g)
21:47:18 <CakeProphet> @src IdentityT
21:47:18 <lambdabot> Source not found. Do you think like you type?
21:49:27 <elliott> > fmap (const "a") (9,"b")
21:49:28 <lambdabot> (9,"a")
21:49:40 <elliott> great
21:50:32 <fizzie> > "a" <$ (9, "b")
21:50:33 <lambdabot> (9,"a")
21:50:36 <fizzie> INFIX POWAR.
21:51:25 <elliott> Yes yes.
21:51:34 <fizzie> Anyway, other gems: here's some sort of really detailedly transcribed child-parent interaction corpus. I mean... http://p.zem.fi/hglt -- doesn't really fit in the bot, but...
21:51:51 <fizzie> It's even part-of-speech tagged and all.
21:51:57 <Gregor> <elliott> Gregor: I daresay codepad might be even more paranoid than HackEgo :P // LIES
21:51:59 <elliott> verb sponge
21:52:12 <fizzie> elliott: Have you been a verb sponge lately.
21:52:13 <elliott> fizzie: You have to make tha tfit into fungot :P
21:52:13 <fungot> elliott: wats up.? wat was ur grade u got for 1 moviebefore april. cant wait to get better and meet you! i need to stretch...
21:54:16 -!- CakeProphet has quit (Ping timeout: 268 seconds).
21:56:01 <elliott> 02:19:20: <CakeProphet> awww, I was hoping for a Complex number. Though that would make sqrt way more difficult to use for the most common case.
21:56:04 <elliott> > sqrt (-1) :: Complex
21:56:05 <lambdabot> Expecting an ordinary type, but found a type of kind * -> *
21:56:10 <elliott> > sqrt (-1) :: Complex Double
21:56:11 <lambdabot> (-0.0) :+ 1.0
21:56:13 <elliott> defaulting, hth
21:56:19 <elliott> 02:20:27: <CakeProphet> but then sqrt would have to be Complex a -> Complex a
21:56:20 <elliott> :t sqrt
21:56:20 <lambdabot> forall a. (Floating a) => a -> a
21:56:22 <elliott> hth
21:56:41 <elliott> 02:27:23: <CakeProphet> type IO a = RealWorld -> (a, RealWorld)
21:56:46 <elliott> GH-
21:56:47 <elliott> 02:30:37: <CakeProphet> yeah GHC defines IO as: newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
21:56:49 <elliott> right
21:56:55 <Phantom_Hoover> > sqrt (0:+1) :: Complex
21:56:56 <lambdabot> Expecting an ordinary type, but found a type of kind * -> *
21:56:59 <Phantom_Hoover> > sqrt (0:+1) :: Complex Double
21:57:00 <lambdabot> 0.7071067811865476 :+ 0.7071067811865475
21:57:00 <elliott> 02:32:12: <zzo38> With such kind of thing, how would return and >>= be implemented?
21:57:00 <elliott> see GHC source
21:58:10 <elliott> 02:57:13: <CakeProphet> I do like the fungespace idea as well, as it would create quite a bit of complexity.
21:58:10 <elliott> 02:57:25: <Gregor> I just feel like that's too much X-D
21:58:32 <elliott> Gregor: I don't know what your conception of fungespace is, but I don't see how it's much more complex than a CA
21:58:47 <elliott> I mean, "fungespace" is sooo vague.
21:58:59 <elliott> Fungespace is just a very large to infinite two-dimensional space
21:59:01 <elliott> With wrapping
21:59:26 <elliott> 03:06:18: <ais523> hmm, it seems that the space shuttle Enterprise and the starship Enterprise are actually named after each other
21:59:26 <elliott> 03:06:44: <ais523> due to Star Trek retroactively changing their canon after the space shuttle was named after the starship
21:59:38 <elliott> If you mean the Enterprise in the show Enterprise, it isn't strictly a retcon
21:59:54 <elliott> It's just "Here's this ship that fits into canon without contradiction DESPITE being completely ridiculous to do so"
22:00:03 <elliott> Just NOBODY CARED ABOUT THE FIRST WARP SHIP BEFORE NOW
22:00:08 <elliott> It was all about the SECOND Enterprise, oh yeah
22:00:42 <elliott> Now the question is, in Star Trek canon, was the shuttle Enterprise named after the popular TV series Star Trek?
22:01:07 <Gregor> elliott: The TV series may or may not exist in its own canon :P
22:01:24 <elliott> 03:20:07: <zzo38> Do you know if a Char type in Haskell is allowed to store values that are not valid Unicode code points?
22:01:31 <elliott> zzo38: You know that the Haskell specification is available online?
22:01:36 <elliott> http://www.haskell.org/haskellwiki/Language_and_library_specification
22:01:54 <elliott> "The character type Char is an enumeration whose values represent Unicode characters [2]. The lexical syntax for characters is defined in Section 2.6; character literals are nullary constructors in the datatype Char. Type Char is an instance of the classes Read, Show, Eq, Ord, Enum, and Bounded. The toEnum and fromEnum functions, standard functions from class Enum, map characters to and from the Int type."
22:02:06 <elliott> The reference is just
22:02:06 <elliott> [2] Unicode Consortium. Unicode standard. http://unicode.org/standard/standard.html.
22:02:16 <elliott> So no, Char must range over all Unicode characters and nothing else.
22:02:25 <elliott> 03:26:53: <CakeProphet> so I guess it uses UTF-26 by default.
22:02:25 <elliott> 03:26:58: <CakeProphet> *16
22:02:30 <elliott> UTF-32; Unicode is twenty-one bits.
22:02:38 <Gregor> No, UTF-26 X-D
22:02:45 <elliott> 03:29:13: <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 0 :: [Char])
22:02:46 <elliott> 03:29:18: <EgoBot> ​""
22:02:46 <elliott> 03:29:29: <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 1231251212512 :: [Char])
22:02:46 <elliott> 03:29:33: <EgoBot> ​""
22:02:48 <elliott> 03:29:40: <CakeProphet> or, empty strings?
22:02:50 <elliott> 03:29:42: <CakeProphet> I guess?
22:02:52 <elliott> pointer tagging. HTH.
22:02:54 <elliott> the tag on those is for the first constructor, i.e. []
22:02:58 <elliott> so no dereferencing happens
22:03:25 <elliott> > logBase 2 0x10FFFF
22:03:26 <lambdabot> 20.087461546321563
22:03:31 <elliott> Gregor: UTF-20.087461546321563
22:03:45 <elliott> 03:32:23: <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 'a' :: Either Int Char)
22:03:45 <elliott> 03:32:27: <EgoBot> Left
22:03:45 <elliott> 03:32:34: <CakeProphet> I wonder what that even means.
22:03:45 <elliott> 03:32:38: <zzo38> It is only "Left", not the value?
22:03:47 <elliott> 03:32:55: <CakeProphet> it's some kind of garbage value I guess.
22:03:49 <elliott> It segfaults
22:03:51 <elliott> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 'a' :: Either Int Char) >> print 99
22:03:59 <EgoBot> Left
22:04:00 <elliott> Gregor: ?
22:04:02 <elliott> There we go
22:04:12 <elliott> !haskell import Unsafe.Coerce; main = putStrLn (show (unsafeCoerce 'a' :: Either Int Char) ++ "a")
22:04:18 <EgoBot> Left
22:04:38 <elliott> oh, you proved that later, heh
22:05:06 <elliott> 04:08:53: <CakeProphet> I don't think (#) is ever used outside of ghc intermediate language
22:05:08 <elliott> It is.
22:05:27 <elliott> 04:04:19: <CakeProphet> ? = any kind, (#) = unboxed tuple, ?? = * or #, # = unboxed type, * = boxed type
22:05:29 <elliott> Any _type_, not any kind.
22:05:44 -!- cheater has quit (Read error: Operation timed out).
22:05:55 <elliott> 05:14:25: <Gregor> CakeProphet: I was drawing random circuits all over the map, then putting random electrons on it, but basically because of their duplicitous properties that caused them to spread like wildfire.
22:05:56 <elliott> 05:15:17: <CakeProphet> shouldn't they just, kind of travel along?
22:05:56 <elliott> 05:15:27: <CakeProphet> and duplicate on branches?
22:05:56 <elliott> 05:16:51: <Gregor> Yeah, but there are lots of branches.
22:05:59 <elliott> Gregor: Duplicating on branches sounds wrong
22:06:11 <Gregor> elliott: That's Wireworld.
22:06:22 <fizzie> You could argue (*I'm* not going to) that it should say "values represent Unicode code points" if it is to range from 0 to 0x10FFFF, and saying "Unicode characters" means it's illegal to have Char values that correspond to as-of-yet unassigned code points.
22:06:27 -!- cheater has joined.
22:06:29 <elliott> Gregor: I gather WireWorld is pretty wrong.
22:06:37 <Gregor> elliott: Wireworld is pretty AWESOME
22:06:41 <elliott> > fromEnum 0x10FFFF :: Char
22:06:42 <lambdabot> Couldn't match expected type `GHC.Types.Char'
22:06:42 <lambdabot> against inferred type...
22:06:47 <Phantom_Hoover> elliott, wrong?
22:06:47 <elliott> > chr 0x110000 :: Char
22:06:48 <lambdabot> *Exception: Prelude.chr: bad argument: 1114112
22:06:56 <elliott> fizzie: Tada.
22:07:03 <elliott> > '\0x110000'
22:07:04 <lambdabot> <no location info>:
22:07:04 <lambdabot> lexical error in string/character literal at chara...
22:07:07 <elliott> > '\x110000'
22:07:08 <lambdabot> <no location info>:
22:07:08 <lambdabot> lexical error in string/character literal at chara...
22:07:09 <elliott> > '\U110000'
22:07:10 <lambdabot> <no location info>:
22:07:10 <lambdabot> lexical error in string/character literal at chara...
22:07:14 <elliott> > 'fuck you'
22:07:15 <lambdabot> <no location info>:
22:07:15 <lambdabot> lexical error in string/character literal at chara...
22:07:22 <elliott> fizzie: hth
22:07:30 <fizzie> I don't think that really helped.
22:07:34 <elliott> http://codu.org/tmp/conf1.png
22:07:35 <elliott> Gregor: Eyes
22:07:38 <elliott> fizzie: <elliott> > chr 0x110000 :: Char
22:07:38 <elliott> <lambdabot> *Exception: Prelude.chr: bad argument: 1114112
22:07:54 <Gregor> elliott: http://codu.org/tmp/config.png This is the new starting config.
22:08:17 <fizzie> Yes, well, I didn't say 0x110000 *shouldn't* be bad, I was saying that one could argue that saying "character" means the currently unassigned blocks within 0 .. 0x10ffff should also be illegal.
22:08:50 <elliott> 06:36:47: <oerjan> quintopia: well assuming you are using Linux, last i used that for a desktop focusing and moving to the top were independent actions
22:08:56 <elliott> That's not really a common choice nowadays :P
22:09:05 <elliott> Gregor: What happened to eys
22:09:06 <elliott> eyes
22:09:17 <Gregor> elliott: They grew :P
22:09:20 <elliott> fizzie: Ah.
22:09:29 <elliott> Gregor: They don't look like eyes any more
22:09:36 <elliott> I mean the yellow things
22:09:37 <Gregor> elliott: Neither does your mom.
22:09:38 <elliott> In case that is not obvious
22:09:47 <Gregor> Yes, I gathered that :P
22:10:02 <Gregor> elliott: The old configuration had more than its fair share of problems.
22:10:05 <Gregor> The new configuration is much more stable.
22:10:11 <elliott> 06:42:50: <quintopia> what is tiling
22:10:12 <elliott> 06:43:00: <oerjan> quintopia: horrible stuff
22:10:12 <elliott> The channel gets HEATED.
22:10:24 <elliott> Gregor: Dude, I'm just commenting on your different drawing of electrons.
22:10:32 <elliott> Oh, wait
22:10:38 <elliott> Are the eyes like
22:10:41 <Gregor> elliott: The only difference in how they're drawn is that the second one is drawn 2x :P
22:10:41 <elliott> Electron + powered wire?
22:10:46 <Gregor> It's electron + wire, yes.
22:10:48 <elliott> Right
22:10:55 <Gregor> The electron proper is just two pixels (head+tail)
22:11:03 <elliott> Head+tail model is really ugly
22:11:47 <elliott> 06:52:33: <evincar> So I'm thinking of making little concatenative language where, nominally at least, the one datatype available is a cons-list.
22:11:47 <elliott> Joy.
22:11:55 <Gregor> elliott: That - is - Wireworld >_<
22:11:58 <elliott> (That's not sarcasm, but it might become it; I mean the language Joy.)
22:11:59 <elliott> Gregor: I know.
22:12:02 <elliott> Gregor: I'm dissin' wireworld.
22:12:10 <Gregor> elliott: And what CA would YOU prefer X_X
22:12:29 <elliott> Gregor: My name is Johny, what the F**K?????
22:12:36 <elliott> Has a nicer model than head-tail
22:13:00 -!- Patashu has joined.
22:13:08 <Gregor> elliott: I seeeeeeeeeeeeee :P
22:13:32 <elliott> Gregor: (Deletion log); 20:47 . . Ais523 (Talk | contribs) (deleted "My name is Johny, what the F**K?????": offtopic, probable spam)
22:13:40 <elliott> See also: last two entries on http://esolangs.org/wiki/User:ehird
22:13:40 <Gregor> Ahhh :P
22:13:49 <elliott> It's a CA-ish esolang I'm developing :P
22:13:55 <elliott> Similar to wireworld in that it has wires.
22:14:18 <elliott> My snowman user page is SO GREAT, jeez.
22:14:43 <Gregor> Hard to argue with that.
22:14:49 <Gregor> I'mma rip it off but use a goat.
22:15:29 <elliott> Gregor: Let's put it this way
22:15:33 <elliott> http://esolangs.org/w/index.php?title=User:Ehird&action=history
22:15:39 <elliott> Check every single revision I've made to the page to get it working
22:15:41 <elliott> And you can rip it off
22:15:49 <elliott> Some of them even have edit summaries.
22:16:12 <elliott> Note: Your browser may lag :P
22:16:17 <Gregor> elliott: I like how "compare revisions" is just totally broken.
22:16:50 <elliott> Gregor: ais changed the global stylesheet so that you could edit it when "preview on edit" is set without it obscuring the box entirely... but that also made preview just not work :P
22:16:57 <elliott> So I had to save every time I wanted to check a new revision.
22:17:03 <Gregor> lol
22:17:07 <elliott> (Bear in mind that I can't just do it locally because I need to know whether MW will filter out the syntax.)
22:17:14 <elliott> (I have a list made out of i and u elements.)
22:17:20 <elliott> (This was before Template:div and Template:span existed.)
22:18:00 <elliott> I really love how you can't edit Template:div and Template:span without changing them.
22:19:29 <elliott> 07:28:37: <evincar> In a stack-based language I'm not sure.
22:19:30 <elliott> 07:28:43: <evincar> (NB: I'm going with prefix syntax.)
22:19:32 <elliott> neat, so your program runs backwards
22:20:16 <monqy> and it's all about term rewriting???
22:20:25 <monqy> what is evincar thinking: the game
22:20:27 <Gregor> elliott: So what's this CA then
22:20:30 <Gregor> I can't find it.
22:20:42 <elliott> Gregor: <elliott> It's a CA-ish esolang I'm developing :P
22:20:50 <Gregor> I know that much >_<
22:20:58 <elliott> Gregor: "Developing", i.e. have not already developed fully
22:21:05 <elliott> Gregor: You can ask me for ideas though :-P
22:21:22 <Gregor> Well, so far your only complaint against Wireworld is irrelevant *shrugs*
22:21:36 <Gregor> I don't deny that there are legit problems with it, but its form of electrons ain't one of 'em.
22:21:40 <elliott> Gregor: My complaint is that it's ugly :P
22:21:44 <Gregor> *waaah*
22:22:07 <elliott> If you're inventing a game based on a CA, making the world have what amounts to a clunky hack: bad?? EXPERTS DISAGREE
22:22:50 <Gregor> I'm yet to see your magical CA that "solves" this "problem".
22:23:10 <elliott> Uhh... by doing it in a different way?
22:23:24 <Gregor> Tell me what that way is.
22:23:27 <elliott> You like to call everything different to anything magical :P
22:23:40 <elliott> Gregor: There's tons of ways you can do it,
22:23:45 <Gregor> Such as
22:23:50 <elliott> THE COMMA DENOTES I'M STILL TYPING
22:23:57 <elliott> Gregor: For instance having a signal spread along a wire rather than moving, like real electronics,
22:23:59 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
22:24:00 <elliott> ;
22:24:18 <elliott> Gregor: Or having four signal cell types (colours), one for each cardinal direction
22:24:31 <Gregor> elliott: First one's tough to turn off, second one's even more gross.
22:24:36 <elliott> You could also have separate corner blocks (and have wires that reach the end of a wire that isn't a corner fizzle)
22:24:40 <elliott> Or just have them turn automatically
22:24:46 <elliott> Gregor: It's not more gross if you're using ASCII rather than colours
22:25:03 <elliott> Gregor: Anyway, you can turn it off with a virus that walks along a wire removing signal blocks
22:25:12 <elliott> And which DOES split on branches :P
22:25:24 <elliott> FINALLY YOU CAN CLONE LACK OF ENERGY
22:25:38 <Gregor> Soooo, you've got a CA that's ten times as complicated, AND a huge pain :P
22:25:52 <Gregor> Glad you've removed tails though!
22:26:17 <elliott> Gregor: Ten times as complicated? Signal wire -> signal signal in each direction; Virus signal -> virus virus in each direction; virus with more than one signal neighbour -> split
22:26:29 <elliott> Heck, make signals split too, for obvious reasons
22:26:31 <elliott> Sooo hard
22:26:46 <elliott> And WireWorld isn't exactly the paragon of simplicity :P
22:26:49 <Gregor> elliott: If I wire gets detached, it continues to be powered by magic. Making it ... not so much a wire ... more like ... RAM.
22:26:49 <elliott> I don't see how it's a huge pain either
22:26:59 <elliott> Gregor: Mmnope?
22:27:05 <elliott> Gregor: Have detaching a wire (however you do that) produce a virus
22:27:06 <zzo38> I am working on making a Haskell program for accessing another library, this program is written in both C and in Haskell.
22:27:11 <elliott> Things can't just "move" in CAs :P
22:27:15 -!- Sgeo_ has joined.
22:27:26 <Sgeo_> I accidentally left #esoteric o.O
22:28:28 <Gregor> elliott: So, detaching a wire turns off both sides, including the one that's where the power was considered to be coming from, and in fact there's no way to detach a wire without destroying the whole "on" part of the circuit, requiring you to constantly seek out fresh electron sources (only to have them trivially destroyed by your enemies)
22:28:57 <elliott> Gregor: Anyway, I don't see what's wrong with having them act like RAM
22:29:01 <elliott> Are you going for gritty realism
22:29:24 <zzo38> Do I need to give this Haskell program a fully qualified module name? Or will it work without?
22:29:31 <elliott> You could have signals carry a strength that goes down every tick, and if it reaches 0 goes off; then a power source just feeds energy in each direction
22:29:34 <Gregor> Of course not, I'm just being argumentative since you're actually getting /farther/ from the electronics paradigm while claiming to get /closer/.
22:29:39 <elliott> And a high-energy spreads to a low energy by halvings
22:29:40 <elliott> halving
22:29:44 <elliott> That way, wires have limited length too
22:29:47 <elliott> That's cool
22:29:53 <elliott> And can persist for a short time after losing their power source
22:29:54 <Gregor> Now ... they're ditches :P
22:30:00 <elliott> Gregor: Not trying to get closer to the electronics paradigm
22:30:01 <Gregor> And power is water
22:30:11 <elliott> I just mentioned spreading being more realistic than blips moving about, which it is :P
22:30:17 <Gregor> <elliott> Gregor: For instance having a signal spread along a wire rather than moving, like real electronics,
22:30:22 <elliott> Gregor: Yes
22:30:24 <Gregor> Pfff
22:30:26 <elliott> Gregor: That specific point is more like real electronics
22:30:30 <elliott> I don't care about realism
22:30:40 <elliott> Anyway, whether I've turned it into WaterWorld or not, you have to admit that's a cool model :P
22:30:51 <Gregor> Yeah, the irrigation mechanism isn't bad.
22:31:24 <Gregor> But since there's no fundamental problem with the wireworld model (tails = not a problem, fundamental or otherwise), I'm not hugely inclined to both invent a CA and a game at the same time :P
22:31:28 <elliott> Gregor: You could have Minecraft-esque repeaters, that's not like water, you can't conjure up more water as long as you have some water :P
22:31:43 <elliott> Also, you basically ARE inventing a CA and a game, because you have to make modifications to the CA state
22:32:23 <elliott> Gregor: Also it would look So Cool because you could have lower power states look closer to wires.
22:32:32 <elliott> So you'd see the power pulsing across :D
22:32:49 <elliott> In fact I think it'd lead to a looping gradient on any wire moving along
22:33:04 <elliott> Or at least some sort of flickering
22:34:38 <elliott> Gregor: Welp, I think I just invented Johny's new model :P
22:37:30 <Gregor> elliott: Luckily, my CA's pretty interchangeable, so once you get it working, I'll adapt :P
22:37:40 <Gregor> (If it's good)
22:38:04 <Phantom_Hoover> <elliott> Head+tail model is really ugly
22:38:06 <Phantom_Hoover> No it's not.
22:38:45 <elliott> Yes it is.
22:39:06 <elliott> Gregor: But I'd already planned my own immensely-superior game. I'm hurt. :/
22:39:10 <elliott> Can you be more antagonistic?
22:39:37 <Gregor> FFFFFFFUUUUUUUUUUUUUUUUUUUU
22:39:40 <Phantom_Hoover> elliott, why?
22:39:41 <Gregor> I think I have a dead pixel >_<
22:40:15 -!- yourstruly has quit (Quit: Leaving).
22:40:28 <elliott> Gregor: I have a dead seagull.
22:40:32 <elliott> Phantom_Hoover: Because it's ugly.
22:40:37 <elliott> Phantom_Hoover: Because you never want a head without a tail or vice versa.
22:40:41 <elliott> Also because it's two cells.
22:40:44 <elliott> Also because it's: ugly.
22:40:55 <Gregor> Phantom_Hoover: Let me paraphrase.
22:40:59 <Gregor> Phantom_Hoover: <elliott> WAAAAAAAAAAAAH
22:41:04 <Phantom_Hoover> elliott, I'd be more inclined to call direction encoded into state ugly.
22:41:27 <Gregor> Phantom_Hoover: Nothing he's proposed has that
22:41:36 <elliott> Gregor: Yes it does, the one model with one per direction
22:41:38 <Gregor> Nowait
22:41:40 <Gregor> One thing did
22:41:42 <elliott> But then I invented the BEST MODEL.
22:41:43 <Gregor> :P
22:41:47 <Phantom_Hoover> Sorry, I had to skim the discussion.
22:41:56 <elliott> I kind of still want something involving blips travelling in one direction, but I dunno how to do that nicely
22:42:01 <elliott> (Just for the esolang, not for the game)
22:42:03 <Phantom_Hoover> I tried to join it and then elliott went off and talked about some boring crap.
22:42:20 <Gregor> Man, if this dead pixel doesn't go away, I'm gonna be SUPER pissed :'(
22:42:39 <elliott> Phantom_Hoover: Sorry but I invented the BEST MODEL.
22:42:45 <Phantom_Hoover> elliott, what is it.
22:43:42 <elliott> Phantom_Hoover: See above.
22:43:56 <elliott> (Based on the signal spreading model:)
22:43:57 <elliott> <elliott> You could have signals carry a strength that goes down every tick, and if it reaches 0 goes off; then a power source just feeds energy in each direction
22:43:59 <elliott> <elliott> And a high-energy spreads to a low energy by halvings
22:44:00 <elliott> <elliott> halving
22:44:00 <elliott> <elliott> That way, wires have limited length too
22:44:00 <elliott> <elliott> That's cool
22:44:00 <elliott> <elliott> And can persist for a short time after losing their power source
22:44:16 <elliott> [...]
22:44:19 <elliott> (not sure about this one:) <elliott> Gregor: You could have Minecraft-esque repeaters, that's not like water, you can't conjure up more water as long as you have some water :P
22:44:42 <Phantom_Hoover> elliott, eeew, that's going to have a huge transition table.
22:45:33 <elliott> Phantom_Hoover: Oh come on, the transition table can be generated by a trivial rule.
22:45:47 <elliott> See also: DF's water CA (which I don't know how it works) :P
22:46:13 <Phantom_Hoover> elliott, I just think that having lots of states is really, really inelegant.
22:49:18 <elliott> Phantom_Hoover: That's just deliberately limiting yourself to shallow sets of states by mandating that you unpack the cell structure
22:49:20 <elliott> Pattern matching, yo
22:49:41 <Gregor> My dead pixel won't go awaaaaaaaaaaay :'(
22:51:57 <elliott> Gregor is in the stages of denial
22:51:59 <elliott> How many are there again
22:52:01 <elliott> Five??
22:52:50 <Vorpal> elliott, he used singular. So one
22:53:14 <Vorpal> (assuming 5 referred to number of dead pixels)
22:53:26 <Phantom_Hoover> *facepalm*
22:53:45 <Vorpal> Phantom_Hoover, real men don't try to figure out the context. Or something.
22:53:48 <Vorpal> bbl
22:54:15 <Phantom_Hoover> 'Context', a word which means 'the two immediately precedent lines'.
22:59:00 <fizzie> Unexploited niche market: pixel funerals for dead pixels?
22:59:21 <fizzie> You could make a coffin out of the neighbour pixels and so on.
22:59:40 <fizzie> And then MONETIZE it.
23:00:23 <Patashu> the problem would be writing your coffin displaying and funeral dirge playing program for so many different architectures
23:00:40 <Patashu> well I guess not problem, but lots of ground to cover
23:00:48 <Patashu> if you want to reach your entire dead pixel getting audience
23:01:46 <elliott> Patashu: it is impossible to write portable programs
23:03:40 <Patashu> I guess if you write it for windows 32/64, linux, mac, ios, windows phone and android you have almost everyone
23:03:52 <Patashu> and I'm pretty sure there's some architecture that'll let you do that (haxe? unity?)
23:04:31 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:04:44 <Deewiant> If you write it for windows 32 you already have almost everyone
23:05:22 <Patashu> why, do people using smartphones not get dead pixels?
23:05:23 <elliott> Patashu: dude.......
23:05:25 <elliott> there are portable libraries..........
23:05:45 <elliott> you can write a program that runs on Windows, anything with X, and OS X's Aqua trivially.......
23:05:54 <Deewiant> I said "almost everyone"
23:05:55 <Gregor> My arms are bloody and there's insulin all over the walls.
23:06:08 <Deewiant> People using smartphones are not part of that group :-P
23:06:09 <elliott> Gregor: Ditto
23:06:11 <Patashu> haha
23:06:20 <elliott> Deewiant: Sure they are, if the group is everyone who gets dead pixels
23:06:34 <elliott> Deewiant: Assuming smartphones includes things which run Java, which is enough for an MMORPG
23:06:35 <Deewiant> Hmm, maybe
23:06:47 <elliott> I forget what the name of that thing is
23:06:52 <elliott> Tibia rings a bell but isn't that a bone
23:06:56 <Patashu> there's a java MMO?
23:06:58 <Deewiant> Runescape?
23:06:59 <elliott> Looks like it's Tibia
23:07:05 <elliott> No, mobile-Java
23:07:11 <elliott> As in "actually runs on shitty phones"
23:07:28 <Deewiant> Runescape ran on computers worse than most modern phones
23:07:41 <elliott> Deewiant: Not worse than phones that can only run Java stuff
23:07:50 <Deewiant> Yes, worse than those as well
23:08:00 <elliott> Well, maybe :P
23:08:27 <Gregor> SUCCESS
23:08:32 <elliott> Anyway, point is, wxWidgets or Qt or whatever + Whatever the fuck most Nokia phones with any kind of computational power have + Java ME + iOS + Android = market pretty much entirely covered
23:08:37 <Gregor> In giving Tia her insulin, not in getting rid of my dead pixel.
23:08:38 <elliott> Series forty?
23:08:54 <elliott> Gregor: Is Tia your pet name for your walls
23:08:57 <fizzie> S40 is what does J2ME mostly.
23:09:08 <fizzie> It's the "not Symbian but can still do stuff" series.
23:10:00 <Gregor> elliott: Tia is my cat :P
23:10:20 <fizzie> As for "actual smartphones", current devices do Symbian/S60 (but that's a Qt-able platform) and future ones will do Windows Phone 7 (which doesn't do anything crossplatform, I don't think).
23:10:29 <elliott> Gregor: Your walls are a cat?
23:10:43 <elliott> fizzie: "Qt-able" -- I doubt it'll run a regular desktop Qt app :P
23:10:55 <fizzie> No, but Qt is what you're supposed to use to develop for it.
23:11:03 <Gregor> elliott: Yes.
23:11:20 <elliott> Gregor: Okay.
23:13:24 <fizzie> Nokia had a huge-ish campaign, speakers everywhere, about how they're going on with Symbian in "regular smartphones" and Maemo/MeeGO in those high-end devices, and how with Qt you can write cross-platform code that easily runs in both Symbian and MaeGO. I think I heard at least three talks like that, and I'm sure they had quite a few of them.
23:14:11 <fizzie> This was like month before the Elopgate and "we're going to deprecate Symbian and be a WP7-exclusive shop on our smarty-phones" + "no, we're not going to port Qt to WP7, it's not part of the Vision".
23:14:29 <fizzie> "But you should still keep developing those Qt apps, there's still going to be Symbian devices for the next two years or so."
23:15:44 <elliott> fizzie: Meego is pretty dead isn't it
23:15:51 <elliott> I wonder what's happening to maemo
23:15:58 <fizzie> I think Intel might push out a few "netbooks" running it.
23:16:13 <fizzie> On phones I don't think it's going to have a very bright future.
23:16:22 <elliott> I forget what happened; what happened?
23:17:00 <fizzie> And Maemo's completely community-supported nowadays.
23:17:20 <Gregor> s/-/-un/
23:18:48 <fizzie> There's the "Community SSU" which is some magic sauce that makes the normally-not-updated-from-the-maemo.org-community-repositories "core packages" also updateable too; there's a huge pile of bugfixes, even my little one-line patch to fix "bright black" to dark grey in the bundled terminal emulator.
23:19:03 <elliott> So there is a new game show on television here called "Epic Win". It is exactly as bad as it sounds.
23:19:12 <Patashu> Oh dear
23:19:31 <fizzie> Nokia's going to release one MeeGo phone still, the N9, but it's very likely to be both the first and the last MeeGo device they do.
23:19:32 <elliott> The term "Epic Fail" is actually invoked. Relatedly: I have become the first person to drain all blood from their body entirely through desperate scratching.
23:19:38 <elliott> Goodnight.
23:19:41 * elliott dies.
23:20:04 <elliott> fizzie: You didn't actually remind me what happened to MeeGo. :p
23:20:15 <Patashu> http://en.wikipedia.org/wiki/Epic_Win Welp
23:20:43 <Gregor> <elliott> The term "Epic Fail" is actually invoked. Relatedly: I have become the first person to drain all blood from their body entirely through desperate scratching. // need I present my allergy-ridden feet?
23:20:46 <fizzie> elliott: Well, the Elopgate. Nokia (after saying they're MAKING IT HAPPEN with Intel) decided to go all Windows Phone 7 instead.
23:20:52 <elliott> Gregor: You're dead?
23:21:00 <Gregor> elliott: Yes, I'm a zombie.
23:21:03 <elliott> fizzie: That's a thing that happened? wow.
23:21:05 <elliott> [asterisk]Wow.
23:21:08 <elliott> Gregor: Ah.
23:21:15 <elliott> Gregor: Try watching "Epic Win", you might somehow die twice.
23:22:30 <fizzie> They're (according to current plans/rumours) going to release a grand total of approximately 1.1 MeeGo devices; the N9, plus the N950 "developers only" phone, which I'm counting as 0.1 because (even though it is a MeeGo device) it's not going to actually be released.
23:22:47 <elliott> `addquote <fizzie> They're (according to current plans/rumours) going to release a grand total of approximately 1.1 MeeGo devices; the N9, plus the N950 "developers only" phone, which I'm counting as 0.1 because (even though it is a MeeGo device) it's not going to actually be released.
23:22:49 <HackEgo> 609) <fizzie> They're (according to current plans/rumours) going to release a grand total of approximately 1.1 MeeGo devices; the N9, plus the N950 "developers only" phone, which I'm counting as 0.1 because (even though it is a MeeGo device) it's not going to actually be released.
23:23:04 <elliott> fizzie: Wonder what the long-term support on that'll be like :P
23:24:50 <fizzie> "It then, turned out to be a software developer-only offering, with no warranties and other related-stuff, although Nokia promised software updates.[106] It is referred to as a "beta testing only" device, where developers can test their applications made specifically for the MeeGo operating system.[107] The phone was finally unveiled to developers (and will not be consumer market available) on the company's Nokia Connection 2011 event.[108]"
23:24:55 <fizzie> It'll be like that.
23:25:09 <fizzie> Also I wouldn't count on any "promised software updates".
23:25:14 <zzo38> Do you know about the Glk library?
23:25:45 <fizzie> They sort-of "this is off the record, but we're pretty sure we're going to make this happen" promised a working MeeGo on the N900 too, but turns out they're not going to bother, since, you know, WP7.
23:26:18 <fizzie> There is an official alpha of the MeeGo handset UX for the N900, but from what I hear it's pretty sucky.
23:26:30 <Gregor> CakeProphet: How DARE you not be here.
23:28:18 <elliott> Gregor: I'm like CakeProphet but I say smart things, try me
23:28:24 <fizzie> By "sucky" I mean "camera autofocus doesn't work, still images have their top half replaced with noise when flash is used, the media player doesn't play any video, ..."
23:28:34 <fizzie> (And it still works better than Android-on-N900.)
23:29:02 <Gregor> elliott: So the only commands a client needs are move, build and destroy, yes?
23:29:26 <elliott> Gregor: You're going to let clients set local CA state arbitrarily? I guess that could work, but most CA constructions are really fragile.
23:29:38 <elliott> Like, delete one cell and they completely break.
23:29:51 <elliott> Or does it move some sort of in-game avatar?
23:29:58 <elliott> Forgive me, I skimmed the logs, so I need some rough context :-P
23:30:17 <Gregor> It moves an in-game avatar, and "build" and "destroy" are only honored if the move is actually legal.
23:30:29 <fizzie> The N900 NITDroid port, "the current active NITDroid port" that is "moving at a very quick pace of development", has had its last Wiki status page update in Nov 2010.
23:30:50 <elliott> Gregor: Illegal moves -- you mean build and destroy take absolute coordinates that have to be in the Moore neighbourhood of the avatar?
23:30:59 <elliott> I'd just have build [direction] and destroy [direction]
23:31:10 <Gregor> elliott: You can only build and destroy in a direction, yes.
23:31:20 <elliott> Right.
23:31:24 <elliott> When would they ever be invalid, then?
23:31:38 <Gregor> If you try to build over something that has to be destroyed first, for instance.
23:32:02 <Gregor> Right now the only rule to that AFAIK is that you can only build a conductor on nothing, not on e.g. a flag :P
23:32:08 <elliott> Gregor: Wouldn't it just be a nop then, since it'd be destroying and rebuilding something for no reason
23:32:13 <elliott> And what you actually want is to make sure that it's a wire cell
23:32:15 <elliott> Which it is, if it already is
23:32:28 <elliott> As opposed to destroying and recreating which takes longer and has side-effects in the meantime
23:32:32 <elliott> <Gregor> Right now the only rule to that AFAIK is that you can only build a conductor on nothing, not on e.g. a flag :P
23:32:34 <elliott> Hmm, right
23:32:38 <elliott> Gregor: You can't build anything but wires, right?
23:32:38 <Gregor> To make the protocol more general for future CAs, I was going to have what you're building be specified.
23:32:42 <elliott> That's how I'd do it, at least
23:32:47 <Gregor> Yeah, you can only build wires.
23:32:57 <elliott> Weeell, a generic protocol isn't really important, I wouldn't say
23:33:01 <elliott> Because you have to rewrite your AI anyway if the CA changes
23:33:11 <elliott> Gregor: Hmm
23:33:15 <elliott> Gregor: Make it turtle based
23:33:17 <Gregor> Yeah, but having the CA pluggable into the server without changing it otherwise would be nice *shrugs*
23:33:30 <Gregor> "turtle based" = "LOGO based"?
23:33:30 <elliott> turnL, turnR, forwards, build, destroy
23:33:36 <elliott> Gregor: Turtle-graphics based
23:33:45 <elliott> But only cardinal directions
23:33:47 <elliott> So not LOGO
23:33:55 <Patashu> one issue I see: an agent following an enemy agent could immediately undo anything it does
23:33:57 <Patashu> nullifying it
23:34:01 <Gregor> It could include NW, NE, SW, SE.
23:34:01 <elliott> Gregor: But that's nicer because building a line is faster than, like, building in random directions
23:34:10 <Gregor> Patashu: Destroy isn't immediate.
23:34:11 <elliott> Gregor: Hmm
23:34:18 <elliott> Gregor: Yeah, that's nicer, Moore neighbourhood
23:34:28 <elliott> But point is, it's a nicer model :P
23:34:29 <Patashu> but it's easier to mess things up than create useful things in any CA
23:34:30 <Gregor> Otherwise I like that.
23:34:34 <elliott> And of course moving takes a tick
23:34:42 <Gregor> Patashu: That's why we put a hefty price on destruction.
23:34:44 <elliott> So U-turning takes a short while
23:34:46 <elliott> Which intuitively makes sense
23:34:51 <elliott> What's the hefty price on destruction
23:34:52 <Patashu> ah ok
23:34:57 <elliott> Do you have like a currency -- build units?
23:35:09 <Gregor> elliott: We considered various resources, then just decided time was the best one.
23:35:16 <elliott> I would say that, if you have a fixed number of wires you can build, then destroying a wire should give you another wire to build.
23:35:26 <elliott> That way, you can't just camp out somewhere, you have to destroy other mechanisms to build bigger ones.
23:35:34 <Gregor> Hmmmmmmmmmmmmmm
23:35:35 <Patashu> but in a wireworldish CA, you can destroy by creating too
23:35:50 <elliott> I mean, I guess if you can sustain yourself without building anything bigger, then that doesn't help much, but something would probably destroy you then
23:35:56 <elliott> So building bigger is useful for camping out purposes
23:36:01 <elliott> So building should ostensibly cost something
23:36:20 <elliott> The problem then is, if destroying takes a while, it's really hard to build beyond your initial inventory
23:36:23 <Gregor> Patashu: Mmmm, I think actually breaking mechanisms that way takes a bit of intelligence, unless you just draw everywhere which would still take a while.
23:36:25 <elliott> If it's fast, then it's too easy to bulldozer things
23:36:50 <Gregor> elliott: Yeah, I think a system similar to that was on the proverbial board at some point, but abandoned for time-only for exactly that reason...
23:36:54 <Gregor> Still, I do like the notino.
23:36:55 <Gregor> *notion
23:37:16 <elliott> Gregor: I'm kind of not a fan of the idea of destroy taking more than one tick, it feels like all the commands are one-tick "primitives" in a way...
23:37:32 <elliott> Maybe if it was like MC, and you had to repeatedly attack to destroy?
23:37:39 <elliott> That requires hidden state or a combinatorial explosion of cell types though
23:37:41 <Gregor> elliott: Well yeah, exactly.
23:37:49 <Gregor> It has that (not-actually) hidden state right now, damage.
23:38:00 <elliott> Damage to what?
23:38:04 <Gregor> Cells.
23:38:09 <elliott> If you mean the agents, that's okay, because they're kind of outside the game.
23:38:13 <elliott> Gregor: Why do cells have damage
23:38:20 <Gregor> To destroy wires.
23:38:29 <Gregor> The damage doesn't affect their behavior, so it's not a part of the CA proper.
23:38:50 <elliott> Gregor: Umm, you only need the agent to have state for that
23:39:01 <elliott> Make it turn into a one-hit agent, two-hit agent, three-hit agent, four-hit agent, (block breaks) normal agent
23:39:09 <elliott> Rather than introducing hidden state into every f'n cell :P
23:39:18 <Gregor> Oh no, not one byte per cell ...
23:39:21 <Gregor> And again, it's not hiden.
23:39:23 <Gregor> *hidden
23:39:35 <elliott> OK, how's it not hidden?
23:39:39 <Gregor> Agents see it.
23:39:56 <elliott> Gregor: Hmm
23:40:12 <elliott> Gregor: I'd rather have that be, agents see another agent going into dig state
23:40:23 <elliott> Like, you're not looking for damaged cells, you're looking for agents that are damaging your construction :P
23:40:31 <elliott> And you want damage to fade if you kill an agent that's damaging you, I would say
23:40:34 <Gregor> Weren't you just talking about making agent actions primitives/atomic a moment ago :P
23:40:46 <elliott> Gregor: Yep, but evidently destroy has to take some time with the current model
23:40:46 <Gregor> Agents can't kill agents.
23:40:51 <elliott> How'd you win then
23:40:55 <Gregor> It's CTF.
23:41:23 <elliott> Hmm
23:41:33 <elliott> Gregor: Well OK, but does damage fade if it's not being destroyed?
23:41:39 <elliott> Because I still think it's more elegant as a change in agent-state
23:42:22 <Gregor> I find it far more elegant if damage is a cell property. That way you can wander off, time out, whatever and then keep destroying; or realize somebody is trying to kill your work and go beat them first, then come back.
23:42:31 <Gregor> Besides, why would cells magically heal themselves?
23:42:39 <elliott> Nanobots
23:42:53 <elliott> Gregor: Or if you see damage as being done by bending a wire so hard it breaks, then it creaks back :-)
23:43:03 <Patashu> the cells don't magically heal themselves, you have a destruction blowtorch that takes X turns to heat up, and if you get distracted it cools down instantly
23:43:28 <Patashu> or you have a destruction axe that takes X turns to lift up, and if you get distracted you have to drop it
23:43:47 <elliott> Gregor: But anyway, if damage is a cell property, then it should DEFINITELY be "hit" per tick
23:43:51 <Gregor> In yo electronics, axin' yo wires
23:43:57 <Gregor> elliott: Yes, of course.
23:44:15 <elliott> Gregor: I dunno, I feel like trying to destroy an agent block should do SOMETHING :P
23:44:18 <elliott> (wrt killing)
23:44:24 <Gregor> But agents aren't a block ...
23:44:30 <elliott> Gregor: Oh, they aren't?
23:44:35 <elliott> They're just... invisible?
23:44:47 <elliott> That seems... odd that agents can move around the world and yet don't actually exist.
23:44:51 <Gregor> Well, I haven't decided if they're visible yet, but their presence doesn't influence the CA, only their action.
23:44:56 <Patashu> Not really, it's like the IP in befunge
23:44:57 <elliott> Well, yeah
23:45:01 <elliott> But you can model that from within the CA
23:45:08 <elliott> Gregor: They can't move past blocks that aren't space, right?
23:45:14 <Gregor> elliott: To be determined.
23:45:29 <elliott> Gregor: I think that's really the best idea, because then you can model it from within the CA, and agents can see other agents as just another cell
23:45:31 <Patashu> I have an idea
23:45:42 <elliott> You can't model it from within the CA without colour explosion if they can be over another type of block
23:45:44 <Patashu> Agents are invisible, BUT if you stand on a tile where you think an agent is or is aadjacent to and use 'eject' it's sent back home
23:45:46 <elliott> Also encasing agents in wires sounds awesome
23:45:59 <Patashu> Now it is a stealth mission
23:46:00 <Gregor> elliott: Hmmmmmmmmmmm, hard to argue with that ...
23:46:21 <Gregor> Patashu: You could just sit by your flag, ejecting every cell.
23:46:21 <elliott> Gregor: Oh my god, what if you stand at the end of a wire and the blip hits you, PLEASE ELECTROCUTION
23:46:46 <Gregor> elliott: Hmmm, I hadn't considered any direct action of electrons on agents X-D
23:46:47 <Patashu> yeah, needs a cooldown if you fail then
23:47:16 <elliott> Gregor: A spread model makes that ten times more awesome: Electric fences.
23:47:29 <elliott> MEANWHILE :P
23:47:42 <elliott> Gregor: Also: I'm tempted to say it would be fun to have hard-realtime guarantees on the decision-making process of each agent per tick... I guess that could be an optional thing because it does destroy the purity :P
23:47:52 <elliott> But, I mean, if there's nothing technically disallowed about taking ten seconds to decide what to do each tick...
23:48:11 <Gregor> elliott: The server doesn't wait for more than 1/15th of a second.
23:48:16 <Gregor> If it takes you longer than that, too bad.
23:48:30 <Gregor> I didn't want to solve the halting problem :P
23:48:36 <elliott> Gregor: That... um... sounds like a really bad timeframe?
23:48:40 -!- Libster has joined.
23:48:48 <elliott> Gregor: 0.06 seconds might be easy for C, but...
23:48:58 <elliott> Gregor: I guess you can use threading to figure out things in the background
23:49:03 <elliott> And you have to, anyway, so that you get notified when a new turn starts :P
23:49:27 <Gregor> Uhh, yeah :P
23:50:26 <Gregor> elliott: But anyway, make the timeframe too long and nothing'll ever get done, make it too short and ... well, the problems are obvious there.
23:50:31 <Gregor> I don't want to wait days to see who wins.
23:51:27 <elliott> Gregor: Sure, but maybe... 0.2 or 0.3s? That's not really that long to wait for a CA update.
23:51:38 <elliott> I guess 0.06 is more realtime.
23:52:01 <Gregor> 1000 iterations at 0.2 per is 200 seconds; and I honestly don't see too much getting done in 1000 iterations.
23:53:52 <elliott> fizzie: (Oblig. ping for /msg.)
23:53:54 <elliott> Gregor: True.
23:54:22 <elliott> Gregor: So what do the agents actually see? The entire CA state of their view radius? Which I guess is just a square in front of them.
23:54:29 <elliott> Gregor: OMG, that is really awesome; you have to turn to see things behind you.
23:54:34 <elliott> Turtle graphics model: suddenly the best.
23:54:41 <elliott> That makes looking diagonally a bit awkward >_>
23:54:46 <Gregor> A view radius, which I was thinking is a square /around/ you, but I suppose it could be either ...
23:54:49 <elliott> But for the cardinal directions it's super-perfect :P
23:55:04 <elliott> Gregor: If you can only go "forward", then being able to see behind you is really weird.
23:55:18 <elliott> The problem is looking diagonally.
23:55:23 <Gregor> elliott: You've invented a device known as a rear-view mirror.
23:55:34 <elliott> Gregor: Cars can reverse too
23:55:39 <elliott> <elliott> The problem is looking diagonally.
23:55:44 <elliott> ...which is really nice for Moore-neighbourhoodness,
23:55:48 <elliott> but really bad for viewing range.
23:55:55 <Gregor> Yes, and that's a significant-enough problem that I'm willing to give up forward-vision for it :P
23:55:57 <elliott> I mean, it can be done, it'd just be a bit ugly :P
23:56:05 <elliott> Gregor: I'd rather give up diagonal orientation.
23:56:08 -!- yourstruly has joined.
23:56:10 -!- yourstruly has quit (Max SendQ exceeded).
23:56:18 <elliott> Gregor: If you consider build; forward; build; forward; ..., then diagonal directions make very little sense.
23:56:20 <Gregor> elliott: I might with a different CA, but electrons in WW move diagonally.
23:56:21 <monqy> goodbye yours truly
23:56:21 <elliott> Because wires don't work diagonally.
23:56:25 <elliott> Oh, they do?
23:56:27 <Gregor> Yes
23:56:31 <elliott> On straight-diagonal wires?
23:56:33 <Gregor> Yes
23:56:39 <elliott> Hmm
23:57:08 <elliott> Gregor: Well, I mean, you just have to generalise "in front of you" to make it work
23:57:18 <elliott> In terms of seeing "N neighbourhoods in each neighbourhood direction" ahead
23:57:27 -!- yourstruly has joined.
23:57:28 <elliott> It's not actually hard to provide a diagonal view at all
23:57:29 -!- yourstruly has quit (Max SendQ exceeded).
23:57:47 <elliott> Gregor: I mean, in fact, it's easy; it's just a diamond
23:57:50 <Gregor> elliott: But it makes it really hard on the client to generalize >_>
23:58:01 <elliott> Gregor: Well, consider this: You want the "view" to be rotated anyway
23:58:05 <elliott> So that it's actually what you see ahead of you
23:58:11 -!- yourstruly has joined.
23:58:13 -!- yourstruly has quit (Max SendQ exceeded).
23:58:14 <elliott> Rotating a square so it's diagonal on a CA field = diamond
23:58:18 <Gregor> elliott: ... FFFFFFFFUUUUUUUUUUUUUU
23:58:18 <elliott> So you just send the diamond as a square
23:58:21 <elliott> Gregor: What?
23:58:30 <Gregor> You're right, you want to rotate the view, and I didn't think about that :P
23:58:35 <elliott> Right
23:58:38 <elliott> So it actually works pretty easily
23:58:49 <elliott> And you can transform it into a "what we've seen of the world" trivially: reverse the rotation, merge it in
23:58:56 <elliott> So yay, diagonal viewing is easy :P
23:58:56 -!- yourstruly has joined.
23:58:57 <Gregor> Except that rotating square cells is grotty ...
23:58:57 -!- yourstruly has quit (Max SendQ exceeded).
23:59:07 <elliott> You just rotate the DIAMOND :P
23:59:11 <elliott> Not what's in it
23:59:14 <elliott> Gregor: Wireworld is symmetrical, right?
23:59:17 <Gregor> Yes
23:59:19 <elliott> Is it symmetrical diagonally?
23:59:26 <Gregor> Yes.
23:59:34 <elliott> Gregor: Then that's absolutely fine if you ask me
23:59:34 <Gregor> The diamond is composed of mis-oriented squares though :P
23:59:48 <elliott> Gregor: Well, like I said, base it on Moore neighbourhoods
23:59:55 <elliott> Somehow
2011-08-21
00:00:13 <elliott> Gregor: I mean, it's not really that grotty, because it's a nice SW/SE/NW/NE
00:00:21 <Gregor> elliott: I'm not sure if that works at an angle ... hold on, I need to do a little pseudomath here.
00:00:22 <elliott> You can just draw a ray outwards then contract it
00:00:45 <elliott> Gregor: I'm half-sceptical of your claim that rotating a WireWorld board that way keeps it working, but I hope it's true because it's an elegant property
00:00:51 <elliott> And if it is true, there's no excuse not to do views :P
00:01:02 <elliott> I mean, in-front-of views
00:01:06 <Gregor> I never claimed that rotating a wireworld board that way keeps it working.
00:01:14 <elliott> <elliott> Gregor: Wireworld is symmetrical, right?
00:01:15 <elliott> <Gregor> Yes
00:01:15 <elliott> <elliott> Is it symmetrical diagonally?
00:01:15 <elliott> <Gregor> Yes.
00:01:22 <elliott> Gregor: Are you unaware of what I mean by a symmetrical CA?
00:01:29 <Phantom_Hoover> Clearly.
00:02:02 <Gregor> All of its rules are perfectly symmetrical.
00:02:07 <Phantom_Hoover> You mean that the lattice is the same if you distinguish diagonal and orthogonal connections?
00:02:20 <elliott> Gregor: Then it has to work.
00:02:35 <elliott> Gregor: Something can't break just by rotating it if the rules are symmetrical :P
00:03:12 <elliott> I'll wait for Gregor to explain :P
00:03:43 <Gregor> The problem is that you CAN'T rotate a bunch of squares by 45° and still have squares :P
00:03:50 <Phantom_Hoover> Gregor, indeed.
00:04:07 <elliott> Gregor: Yes, but you can draw a ray outwards expanding at one second per second and then contract
00:04:13 <Phantom_Hoover> For one thing, the diagonal connections cross, which means they're completely different to the orthogonal ones.
00:04:23 <Gregor> elliott: Sadly, the square root of 2 is not 1.
00:04:37 <Gregor> elliott: So your cells will be in some crazy quantum superposition of states.
00:04:49 <elliott> Hmm, I've become retarded... I'm not seeing it.
00:04:59 <elliott> I mean, yes, the borders aren't proper.
00:05:05 <elliott> But isn't that just the borders
00:05:20 <elliott> Gregor: OK fine, how about don't rotate the view :P
00:05:23 <elliott> Wait
00:05:27 <elliott> Gregor: I'm an idiot
00:05:35 <elliott> Gregor: Of course your view isn't a square if you're looking diagonally
00:05:43 <elliott> It's a triangle :P
00:05:52 <elliott> (I mean, no it isn't, but from an "easier-in-CA" point of view...)
00:05:59 <elliott> Wow I can't think right now.
00:06:13 <Gregor> What I'm concluding here is actually that cardinal directions are actually the way to go :P
00:06:39 <Gregor> Maybe with both "forward" and "shimmy" :P
00:06:44 <Phantom_Hoover> What I'm concluding here is that elliott thinking about CAs inevitably leads to confusion for all involved.
00:06:50 <elliott> Gregor: But then building diagonal wire is a pain :?
00:06:57 <Gregor> Hence shimmy :P
00:07:03 <Gregor> (Shimmy is forward and left/right)
00:07:08 -!- FireFly has quit (Quit: FireFly).
00:07:28 <elliott> Gregor: That's so gross :P
00:07:38 <elliott> Gregor: Especially since it lets you U-turn faster if you go weird
00:07:47 <Gregor> No?
00:07:53 <Gregor> Shimmy doesn't turn you
00:08:08 <elliott> Gregor: Shimmy, turn, shimmy, turn
00:08:15 <elliott> Compare turn, turn, forwards... hmm ok :P
00:08:28 <Gregor> Yah :P
00:08:32 <elliott> Gregor: I STILL THINK SHIMMY IS UGLY BUT OK :P
00:08:54 <Gregor> Well, I really like having your "canonical" direction be unknown, and rotating the map so you just see in your own direction.
00:08:58 <Gregor> You ain't got no compass!
00:09:07 <elliott> Gregor: Yes, me too
00:09:21 <elliott> Gregor: Are you sure you can't hack that by presenting your diagonal viewing range as a partly-filled square? >_>
00:09:32 <Gregor> You could, but it would have incorrect behavior :P
00:10:09 <elliott> Gregor: It would?
00:10:19 <elliott> I guess the point is that if you do it that way, you can SEE LESS by looking diagonally :P
00:10:22 <elliott> Which is awesome.
00:10:27 <Gregor> Oh, I see
00:10:29 <elliott> "Fuck, I'm looking diagonally, and therefore mostly blind."
00:10:30 <Gregor> I misunderstood.
00:10:41 <Gregor> But that means you lose some of the generality of look-direction ...
00:11:08 <elliott> Yeah
00:11:25 <Gregor> Which is even more gross than shimmy :P
00:11:29 <Gregor> Esp. if I don't call it "shimmy"
00:11:43 <elliott> shimmy is a good name for it.
00:11:46 <elliott> Gregor: So how big is the viewing distance?
00:12:02 <Gregor> Well now that we've done all this shit, I have no bloody idea :P
00:12:05 <Gregor> 8?
00:12:24 <Gregor> Wait, it needs to be odd.
00:12:33 <elliott> Hmm.... Actually, I don't see why you can't do diagonals.
00:12:38 <Gregor> *sobs*
00:12:46 <elliott> No but look
00:12:46 <elliott> .......
00:12:46 <elliott> .\ | /.
00:12:47 <elliott> . \|/ .
00:12:47 <elliott> .--+--.
00:12:49 <elliott> . /|\ .
00:12:51 <elliott> ./ | \.
00:12:53 <elliott> .......
00:13:05 <elliott> Gregor: When looking in a direction, take all cells with a marked ray, and then include N cells in a square around them
00:13:14 <Gregor> elliott: SQUARE around them!
00:13:19 <Gregor> THERE AIN'T NO SQUARE AROUND THEM :P
00:13:21 <elliott> Gregor: When looking in a direction, take all cells with a marked ray, and then include N cells in a square-rotated-appropriately around them
00:13:26 <elliott> Now it's not resulting in a square >_>
00:13:28 <Gregor> elliott: Draw an array of cells A1 A2 A3...\nB1 B2 B3...\n, then draw the subset that corresponds to any diagonal view within them, as a square.
00:13:29 <elliott> Gregor: Umm, yes there is
00:13:31 <Gregor> Then send me that.
00:13:34 <elliott> <Gregor> THERE AIN'T NO SQUARE AROUND THEM :P
00:13:35 <elliott> They are cells
00:13:39 <elliott> So of course there's a square around them :P
00:13:42 <elliott> Just not from that orientation >_>
00:14:27 <Gregor> http://sprunge.us/TAcC <-- see
00:14:42 <Gregor> (The second set is a diagonal view NE from D2)
00:15:21 <elliott> Gregor: I'm not sure what your point is there
00:15:28 <elliott> Why couldn't you just send that second square down the wire
00:15:41 <Gregor> Where's C2? Where's D3?
00:16:01 <Gregor> It cannot be both a correct representation of the CA as viewed from that orientation, and a square.
00:16:04 <elliott> Oh, right :P
00:16:08 <elliott> Yeah, OK, I'm an idiot.
00:16:34 <Gregor> Anywho, cardinal directions are sexy.
00:16:50 <Gregor> You just move like a chess piece (OK, it happens that this particular chess piece doesn't exist...)
00:17:05 <Phantom_Hoover> I should totally write that physics paper by Lifeforms.
00:17:20 <elliott> Gregor: Although, is it wrong that that it's not a correct representation? Of course you can't expect to see the whole world.
00:17:24 <Patashu> there's a chess piece that moves only WASD, it's called a Wazir
00:17:26 <Patashu> look it up
00:17:33 <elliott> You should be merging it into a world representation after rotating
00:17:35 <elliott> And it'll be accurate then
00:17:44 <elliott> I mean, you can't simulate the squares ANYWAY
00:17:51 <elliott> Because they lack, y'know, everything outside the edges :P
00:17:56 <Gregor> No, but you should be able to make some guesses.
00:18:01 <Gregor> You can't even do that.
00:18:04 <elliott> Gregor: Which you can, as long as you look around more.
00:18:13 * Phantom_Hoover → sleep
00:18:14 -!- Phantom_Hoover has quit (Quit: Leaving).
00:18:15 <Gregor> Not if you happened to start oriented like that.
00:18:21 <Gregor> You'd just see that nothing makes any goddamn sense :P
00:18:25 <Gregor> My electron vanished!
00:19:01 <elliott> Gregor: Hmm, what if you start out like that, and then rotate three-sixty?
00:19:18 -!- zzo38 has left.
00:19:32 <Gregor> I think (though I don't want to work it out, bleh) that there would have to be nearby activity to determine your orientation, but either way it's an effload of work.
00:19:39 <elliott> Fair enough
00:19:43 <elliott> Cardinal it is
00:19:46 <Gregor> Yesh
00:19:54 <elliott> Gregor: I'm so writing warriors in Haskell, BTW :P
00:20:07 <Gregor> Good!
00:20:50 <elliott> Gregor: I do think you should have a switch to turn off all time limits, though
00:20:56 <elliott> The game is much purer that way :P
00:21:06 <elliott> And no warrior should break, because they'll wait for the server to tell them when a new turn is
00:21:19 <elliott> Gregor: (The server should wait for an ACK of the new turn from both warriors before starting the counter, I guess...)
00:21:25 <elliott> And kick everything that doesn't ACK quickly enough, of course :P
00:21:43 <elliott> Well, I guess reading from a FIFO or whatever won't be that slow :P
00:21:46 <elliott> But reading from a socket could be.
00:21:50 <elliott> But I guess network play would be slow in general
00:21:52 <elliott> And also completely pointless
00:21:55 <elliott> Because you can just repeat it locally
00:22:16 <Patashu> the problem with 'take as long as you like' is that the optimal strategy is to take as long as possible
00:22:18 <elliott> And network play allows for undetectable human intervention anyway :P
00:22:24 <Patashu> so no game will ever finish with perfect play
00:22:25 <elliott> "In five moves turn right 'cuz I said so."
00:22:31 <Gregor> elliott: I was going to have the move you want an action to be performed in specified in that action (or some special token for "any turn"), so you don't need to ack as a client.
00:22:33 <elliott> Patashu: Yes, I didn't mean to actually run things with the --no-limits flag.
00:22:40 <Gregor> elliott: (And the server would ack moves)
00:22:42 <elliott> I just meant it's purer, and might also be useful for testing?
00:22:46 <Patashu> ah ok
00:23:34 <elliott> <Gregor> elliott: I was going to have the move you want an action to be performed in specified in that action (or some special token for "any turn"), so you don't need to ack as a client.
00:23:36 <elliott> Eh?
00:24:04 <elliott> If the client wants to do nothing it should send nothing.
00:24:13 <Gregor> If the client wants to do nothing, it sends nothing.
00:24:21 <Gregor> But if the client sends something too late, it also doesn't do it.
00:25:06 <elliott> If the client sends something too late, it's the next turn.
00:25:11 <elliott> And that's the correct behaviour :P
00:25:29 <elliott> Clients just need to listen to the input stream, send whenever their move queue gets full, and then wait until the next turn
00:25:31 <Gregor> Idonno if I agree, but my point was that if you wanted that behavior, you could specify "any turn"
00:25:47 <elliott> Having clients note which turn it is is kind of gross
00:25:52 <elliott> I mean, <elliott> Clients just need to listen to the input stream, send whenever their move queue gets full, and then wait until the next turn
00:25:56 <elliott> It should be OK for moves to happen late
00:26:09 <elliott> You just need one thread to plan, react to input, and decide on moves, and then to push them :P
00:27:12 <elliott> Gregor: Plus you can make moves one byte :)
00:27:17 <Gregor> elliott: But what if something appears in your area in that next frame, and you go into reaction mode?
00:27:33 <Gregor> elliott: You won't want your slightly-mistimed previous move to take precedence.
00:27:56 <elliott> Gregor: Well, if you want hard-realtime like that, then have your fucking IO thread notify you of a new turn.
00:27:59 <Gregor> Of course, you also wouldn't want to make a slightly-mistimed previous move ...
00:28:02 <elliott> And have this notification lock the queue.
00:28:11 <elliott> If you want that, fine, but it shouldn't be part of the protocol :P
00:28:37 <Gregor> If it's NOT part of the protocol, then it's not actually hard real-time by the way :P
00:29:10 <Gregor> (Because there is undefined behavior on timeouts)
00:29:15 <elliott> Gregor: No??
00:29:20 <elliott> Gregor: Timeout = next move starts, it's taken as "do nothing"
00:29:29 <elliott> If you want to do nothing, don't send anything.
00:29:32 <Gregor> elliott: Here is the sequence of actions that causes the problem:
00:29:59 <Gregor> elliott: Server sends turn, client does computation, client sends move, server sends next turn, server receives move, server acts on move which was computed on stale data.
00:30:39 <elliott> Gregor: Servers always try to read before starting a new move.
00:30:49 <elliott> Problem solved?
00:30:54 <Gregor> elliott: You're acting as if IPC is magic.
00:30:56 <elliott> I'm assuming you're not doing this over a network because that won't work anyway.
00:30:58 <Gregor> elliott: Also, atomic.
00:31:07 <elliott> Gregor: I was assuming something file-esque like a FIFO.
00:31:10 <elliott> Aren't FIFOs ordered?
00:31:17 <Gregor> A single FIFO is ordered.
00:31:21 <Gregor> Bidirectional communication is two FIFOs.
00:31:33 <elliott> Hmm
00:31:39 <elliott> Well that's stupid, what's an ordered IPC mechanism
00:31:40 <elliott> Unix socket?
00:31:45 <elliott> Wait, that is a Unix socket.
00:31:46 <elliott> I think.
00:31:50 <elliott> No it isn't.
00:31:52 <Gregor> There's no such thing as bidirectional ordering guarantees.
00:31:55 <Gregor> That doesn't even make sense.
00:31:59 -!- yourstruly has joined.
00:32:22 <elliott> Gregor: Does for stdio :)
00:32:24 <Gregor> You'd have to have some crazy shared locking mechanism that both processes are aware of, but that means the client could lock out the server, gross.
00:32:27 <elliott> As in, console I/O
00:32:28 <Gregor> elliott: No, doesn't for stdio.
00:32:29 <elliott> As in, console I/O
00:32:48 <Gregor> Console I/O does not have bidirectional ordering.
00:32:53 <elliott> Hmmmm
00:32:56 <elliott> Fuck this shit :P
00:33:23 <elliott> Gregor: OK, fine, moves contain one byte of identifier and are just dropped if they refer to an identifier other than the current turn's :P
00:33:29 <elliott> Just cycle 'em
00:33:43 <Gregor> That's exactly my proposal >_<
00:33:47 <elliott> Gregor: Yep
00:34:05 <Gregor> OH KAY, now that we've got that out of the way :P
00:34:48 <elliott> Gregor: BTW, if you don't make the move instructions <>^v I'll cut you.
00:34:57 <elliott> Erm
00:35:02 <elliott> Gregor: BTW, if you don't make the turn instructions <> I'll cut you.
00:35:06 <elliott> And the move instruction ^ :P
00:35:12 <elliott> Hmm
00:35:16 <elliott> Turn instructions should be \/ actually >_>
00:35:19 <Gregor> Why ya gotta ASCII? :P
00:35:25 <Gregor> What direction is each of those?
00:35:25 <elliott> Funge does [] which is totally unsatisfying
00:35:31 <elliott> Gregor: \ is left, / is right, obviously
00:35:37 <elliott> Those are the only turns, also obviously
00:35:38 <Gregor> Maybe ( and )?
00:35:54 <elliott> That looks even less like looking left or right than \ and / do
00:36:05 <Gregor> Oh, I see what your metaphor is.
00:36:06 <elliott> <Gregor> Why ya gotta ASCII? :P
00:36:08 <elliott> Cuteness
00:36:17 <Gregor> OK, fine.
00:36:48 <Gregor> Command format is: {turn byte} {command}
00:36:49 <Gregor> One-byte commands: <^>\/
00:37:03 <elliott> You forgot build and destroy :P
00:37:12 <Gregor> Those aren't one-byte commands (?)
00:37:12 <elliott> Hit should be X or ! for the damage metaphor
00:37:18 <elliott> Gregor: What?
00:37:21 <elliott> Why not?
00:37:29 <Gregor> We haven't decided build directionality.
00:37:34 <elliott> Oh
00:37:40 <elliott> Well the WHOLE POINT of the turtle thing is that it's faster to create a line
00:37:46 <elliott> So I guess you build behind you and destroy in front of you
00:37:51 <elliott> You poop wire, in other words
00:38:00 <Gregor> Then build is more of a modifier of move.
00:38:09 <elliott> Not... really?
00:38:15 <elliott> You could build and then turn around and move away instead.
00:38:28 <elliott> You're facing forwards, you build, now there's a wire behind you, you turn to your right, and run away.
00:38:34 <Gregor> Oh, I thought build-and-move-in-some-direction was a single move.
00:38:39 <elliott> That could work.
00:38:45 <elliott> I GUESS
00:38:46 <elliott> But anyway
00:38:51 <Gregor> Whoah whoah wait, you're proposing that you build BEHIND you?
00:38:52 <elliott> So to destroy something and build over it you destroy it, U-turn, and then build X-D
00:39:02 <elliott> Gregor: Yes, bear with me: because if you build in FRONT of you:
00:39:08 <elliott> Gregor: Then to build a wire you have to CONSTANTLY TURN THREE-SIXTY
00:39:15 <Gregor> I was thinking that you build on TOP of you.
00:39:15 <elliott> Build, threesixty, forwards, repeat
00:39:23 <Gregor> Or build-and-move.
00:39:35 <Gregor> (Since building in your own spot yields a bizarre situation ...)
00:39:41 <elliott> Gregor: Like TEN HOURS AGO I said that I'm thinking of it as the agents being a cell so that updates make more sense and that you can't move in front of wires.
00:39:47 <elliott> Ergo nothing is ever on top of you ever :P
00:39:51 -!- pikhq has joined.
00:39:54 -!- pikhq_ has quit (Ping timeout: 240 seconds).
00:39:54 <elliott> (From my POV)
00:39:56 <Gregor> Yes, that's the bizarre situation.
00:40:07 <elliott> Gregor: I dunno, I kind of like the poop metaphor X-D
00:40:12 <Gregor> But building behind you is terrible since you can't see there any more.
00:40:14 <elliott> To build over something: Hit it until it dies, turn around, poop.
00:40:45 <elliott> Gregor: I was kind of imagining it as a little bug eating wire (destroying) and leaving a trail of wirepoop :P
00:40:52 <Gregor> I'm likin' the move-and-build paradigm more and more >_>
00:41:06 <elliott> Gregor: Do you want to be able to build a wire in n ticks?
00:41:07 <Gregor> (That is, build and move are an atomic action)
00:41:08 <elliott> For n=length
00:41:13 <Gregor> That's my problem with it.
00:41:38 <elliott> Gregor: Don't propose that each cell has a "builtness" counter because I will cut you :P
00:41:43 <elliott> (To make it take multiple ticks)
00:41:44 <Gregor> Good lawd no.
00:41:45 <elliott> Hmm
00:41:48 <elliott> I guess building has to take one tick, then
00:41:53 <elliott> Because that applies to building behind you, too
00:42:08 <elliott> <elliott> Gregor: Don't propose that each cell has a "builtness" counter because I will cut you :P
00:42:10 <elliott> The "erection" value :P
00:42:11 <elliott> OK CHEAP JOKE OVER
00:42:25 <Gregor> The thing with building behind you is that if you shimmy, your "behind you" location is somewhat ambiguous.
00:42:37 <Gregor> (i.e. building diagonal wires is still weird)
00:42:50 <elliott> Well, yeah, I was pretending shimmying didn't exist because... because I don't like that.
00:43:09 <Gregor> It's better than any alternative I can think of *shrugs*
00:43:22 <elliott> Just make diagonal wire-building take longer and fuck you deal with it? :P
00:43:48 <elliott> Gregor: BTW, howya gonna show the direction agents are facing on the board? With a zoom it's easy, just pack an arrow into one block a la mcmap
00:43:50 <Gregor> If I could make it take √2, that'd be ideal :P
00:44:02 <elliott> Gregor: Things CA space is not:
00:44:03 <elliott> - EUCLIDEAN
00:44:04 <elliott> - EUCLIDEAN
00:44:04 <elliott> - EUCLIDEAN
00:44:10 <elliott> - NOT MANHATTAN IF YOU'RE NOT AN ELECTRON
00:44:21 <Gregor> HELLO I AM WITH MAKING OF THE JOKESES!
00:44:22 <elliott> Taxicab, whatever :P
00:44:25 <elliott> Gregor: OH
00:44:26 <elliott> OK
00:44:28 <elliott> <elliott> Gregor: BTW, howya gonna show the direction agents are facing on the board? With a zoom it's easy, just pack an arrow into one block a la mcmap
00:44:44 <elliott> ...without a zoom, I suggest just alpha-blending two blocks diagonal from it with [agent colour] to be the tail X-D
00:44:48 <elliott> MOST IMPORTANT PROBLEM DEFINITELY
00:45:07 <Gregor> Honestly I don't think it's enormously important to show the direction in the actual visible window, since their movement should make that sufficiently clear *shrugs*
00:45:32 -!- Libster has quit (Read error: Connection reset by peer).
00:45:53 <elliott> Gregor: Unless the WARRIOR (so much cooler than agent) just sits there spinning around and entertaining its retarded self by becoming dizzy.
00:46:03 <elliott> I used to do that a lot.
00:46:07 <Gregor> elliott: And if it does, why do we care about its direction? :P
00:46:14 <elliott> Gregor: Because it'll look funny.
00:46:32 <elliott> BTW, agents just have to be pink because I can't stop thinking of them as pink... I guess because of mcmap
00:47:09 <Gregor> I was going to make a color per.
00:47:31 <elliott> SO LAME???
00:47:34 <elliott> Give them little nametags. The best idea.
00:48:25 <Gregor> There are flags too, remember
00:49:00 <elliott> Gregor: Yeah, every flag should just be interchangable... everyone defending every flag while trying to get to any flag.
00:49:03 <elliott> No arguments.
00:50:31 <Gregor> That's a complete 360° from the current design of the CTF game :P
00:50:43 <elliott> Gregor: I'm being VERY SERIOUS
00:50:46 <Gregor> (A design which, naturally, you don't know)
00:50:50 <elliott> I'm actually joking but wondering if it might be good :P
00:51:05 <elliott> Gregor: Lemme guess... every agent has a flag, starts next to it, has to stop the other agent from destroying it
00:51:05 <Gregor> That's closer to my very original idea, which was to have a sort of resource gathering game.
00:51:15 <Gregor> elliott: Not exactly.
00:51:24 <elliott> What then :
00:51:24 <elliott> :P
00:52:24 <Gregor> elliott: I'll explain it in terms of the CA (roughly): There's a 'base' cell type, which never changes under any circumstances, and has an owner. There's a 'flag' cell type which also has an owner, and turns into a conductor if there are any electrons next to it. If an electron is next to a base or flag, it becomes a flag of the same owner.
00:52:35 <Gregor> If a flag is next to a base of a different owner, then the owner of the flag loses.
00:52:46 <Gregor> So you have to actually ferry the flag from the enemy to you.
00:52:56 <Gregor> And it doesn't move at lightspeed, so they have a chance to defend.
00:52:58 <elliott> So simplified, you want to connect the flag to a base with wire?
00:53:08 <elliott> "it doesn't move at lightspeed" <-- So more cell states then?
00:53:16 <Gregor> elliott: No.
00:53:23 <Gregor> elliott: It just only moves when an /electron/ touches it.
00:53:29 <elliott> Fairnuff
00:53:33 <Gregor> elliott: Making an absolute max of ½ lightspeed.
00:53:54 <elliott> Surely you have enough of an idea to implement it now :P
00:54:04 <Gregor> Yes, but it's now quite a bit different than it was a few hours ago X-D
00:54:15 <elliott> Has it changed in the last half hour? :P
00:54:21 <elliott> Apart from that shimmying shit
00:54:28 <elliott> Which you should totally hold back on because EWW
00:54:31 -!- GreaseMonkey has joined.
00:54:34 <elliott> I agree with the "build and move" model, FWIW
00:54:35 <elliott> Or at least
00:54:37 <elliott> I think I do
00:55:15 <Gregor> elliott: A bit which I thing I had given up on, but might be worthwhile with the build-and-move model, is that there was a "conductor potentia" cell type, which turned into a conductor when an electron touched it, but didn't conduct that particular electron.
00:55:44 <elliott> Why
00:55:54 <Gregor> Just slows building down a bit *shrugs*
00:56:12 <Gregor> It was just a trick to make building slower if it turned out to be too fast relative to destruction.
00:56:13 <elliott> Oh right, we didn't resolve that
00:56:47 <elliott> Gregor: I think destroying should take... hmm.
00:56:54 <elliott> Gregor: Four hits
00:57:03 <elliott> Gregor: That way damage is a two bit value :-)
00:57:40 <Gregor> Gee, and here I figured I'd be drawing an ASCII-art motif for the area in front of you, so who cares how many bits I waste on damage values.
00:57:56 <elliott> Gregor: I'm speaking in terms of elegance, not in terms of protocol.
00:58:02 <Gregor> Ah :P
00:58:16 <Patashu> damage time vs build time is something you'll tweak in testing anyway
00:58:21 <Gregor> Yeah
00:58:26 <Gregor> OK, I can implement something.
00:58:27 <Gregor> AND SHALL
00:58:28 <elliott> Gregor: Not that 49 is many bytes
00:58:32 <elliott> Gregor: Or 121
00:58:39 <Gregor> OR A BAZILLION
00:58:42 <elliott> Gregor: No
00:58:49 <elliott> Gregor: If you want an even number, you want a power of two
00:58:52 <elliott> If you want an odd number, you want a prime
00:58:58 <elliott> That's the Rule
00:59:10 <Gregor> elliott: Viewbox is 7x7, damage is 4 :P
00:59:28 <elliott> Twenty-three squared is 529 bytes, and half a kilo is a bit much to send, receive and process every zero point zero six
00:59:32 <elliott> Five is too small
00:59:40 <elliott> So seven, eleven, seventeen or nineteen it is
01:00:01 <Gregor> elliott: Enjoy writing agents in Haskell with no 0-8 btw.
01:00:24 <elliott> Gregor: Dude, I've been coding continuously since the Accident :P
01:00:45 <Gregor> I like how it's capitalized now.
01:00:51 -!- zzo38 has joined.
01:00:51 <Gregor> But my point was really just to mock you 8-D
01:00:53 <elliott> Gregor: Please don't make fun of my disability.
01:00:57 <Gregor> X-D
01:01:59 -!- hagb4rd has joined.
01:02:26 <elliott> Gregor: BTW what ASCII chars are you using for the world
01:02:39 <elliott> It's totally irrelevant but :P
01:02:47 <Gregor> elliott: \x00, \x01, \x02, ... :P
01:02:56 <elliott> Gregor: No dude no. No. Dude. You make me sad. Dude. No.
01:03:39 <elliott> Gregor: I suggest empty: or ., wire: =, head: *, tail: ~
01:03:44 <Gregor> Probably ' ' for nothing, . for wire, @ for actor, + for head, - for tail
01:03:45 <elliott> ===~*====
01:03:49 <elliott> It looks like a little worm SO CUTE???
01:04:02 <elliott> You can't deny the worminess.
01:04:06 <Gregor> It looks like a botched enema.
01:04:07 <elliott> . might be better than =
01:04:17 <elliott> Gregor: OK no dude ~* is absolutely perfect.
01:04:20 <elliott> Absolutely perfect.
01:04:21 <elliott> I will have no arguments.
01:04:25 <elliott> It is the perfect electron worm.
01:04:31 <elliott> Gregor: @ for actor is good though.
01:04:32 <elliott> Or, hmm
01:04:39 <Gregor> DUDE, you can't go antirogue.
01:04:44 <elliott> Gregor: What about 0-9A-Z for actors? It'd avoid sending more.
01:04:50 <Gregor> Oh, that's good.
01:04:53 <elliott> Gregor: AHEM
01:04:58 <Gregor> Except flags have owners too :)
01:05:03 <elliott> Gregor: @ does not mean "another player-species"
01:05:12 <elliott> Gregor: @ means "you, or something with the symbol @ (usually humanoids)"
01:05:24 <elliott> Consider playing a gnome in NetHack.
01:05:28 <Gregor> Are you claiming that actors aren't humans? That happen to be written in C?
01:05:30 <elliott> </pedanticism>
01:05:33 <elliott> Gregor: X-D
01:05:57 <elliott> Gregor: OK, hmm... 0-9 for actors, A-J for flags?
01:06:07 <Gregor> A-J for base, a-j for flags.
01:06:16 <elliott> Hmm
01:06:19 <elliott> I see flags as more important than bases
01:06:22 <elliott> So you want them to be more shouty :-)
01:06:27 <Gregor> OK, then a-j for bases, A-J for flags *shrugs*
01:06:28 <elliott> 0-9 for actors, a-j for base, A-J for flags?
01:06:35 <elliott> FINALLY WE WILL HAVE A PERFECTLY CRAFTED ASCII DISPLAY THAT NOBODY WILL EVER SEE
01:06:52 <Gregor> Now, do I separate every row with a \n, WASTING BYTES???
01:06:55 <elliott> Gregor: No.
01:07:04 <Gregor> Making the ASCII display beyond useless :P
01:07:09 <elliott> Yep :D
01:07:30 <elliott> Gregor: Suggested format: [move identifier (not guaranteed to be sequential)][grid][damages as raw bytes]
01:07:43 <elliott> Gregor: Hmm, you should be able to see which way an actor is turning...
01:07:52 <elliott> As an agent
01:07:54 <elliott> /actor
01:07:55 <elliott> /whatever
01:07:58 <Gregor> I was thinking I would only send damages for those which have damages.
01:08:13 <elliott> Gregor: That means that the update is not constant-sized.
01:08:17 <Gregor> So?
01:08:35 <elliott> Gregor: Well, it makes things slower for the programs...
01:08:42 <Gregor> Hm, fair 'nuff.
01:08:45 <elliott> Rather than just read(..., 243)
01:08:51 <Gregor> We definitely don't want programs to have to think...
01:08:51 <elliott> Where truncated input basically never happens
01:08:55 <elliott> X-D
01:09:01 <Gregor> Seriously though, we don't *shrugs*
01:09:02 <elliott> I get what you mean, about the protocol
01:09:15 <elliott> I was going to say damage as ASCII just 'cuz, but then I realised it's nice to be able to just memcpy it
01:09:19 <elliott> For comparisons, obviously
01:10:14 <elliott> Gregor: Commands: turn left: \, turn right: /, advance: ^, hit: X or !, poop: dunno?
01:10:22 <elliott> (Whereby poop I mean build and move forwards)
01:10:54 <Gregor> elliott: I refuse to deshimmy :P
01:11:00 <monqy> these commands are all over the place
01:11:08 <elliott> Gregor: I was thinking you should add shimmy later...
01:11:27 <Gregor> monqy: Having them compacted into e.g. 0x00-0x10 doesn't actually help anything.
01:11:28 <elliott> Gregor: I mean, it's gross to be able to build diagonally but not destroy diagonally, and adding another command to do THAT is insanity.
01:11:37 <elliott> So you should just stick with the orthogonality and accept that we're in Taxicab geometry :P
01:11:49 <Gregor> elliott: That's why my thought was that destroy and build are more-or-less modifiers.
01:12:08 <Gregor> But I may be willing to accept cardinal-only :P
01:12:16 <elliott> Gregor: Sure, but that only makes sense if you come from the viewpoint that shimmy makes sense :P
01:12:23 <elliott> The ONLY reason it makes sense is that we were talking about looking diagonally.
01:12:28 <monqy> oh I was thinking keyboard-wise but maybe that doesn't matter?? I'm not exactly sure what you're even doing
01:12:37 <elliott> WireWorld's rules may be "diagonally symmetrical" but that doesn't actually make sense because it's a field made out of squares :P
01:12:48 <elliott> monqy: you don't type these, it's a programming game
01:12:57 <elliott> Well, you could play as a human, but it'd be really hardcore
01:13:02 <Gregor> elliott: Being diagonally symmetrical is independent of being orthogonally symmetrical ...
01:13:06 <monqy> what do you type help
01:13:23 <elliott> Gregor: Uhh, yes?
01:13:33 <elliott> Gregor: My point is that the only reason shimmying is even on the cards is that electrons travel diagonally
01:13:37 <Gregor> Right
01:13:47 <elliott> But that DOESN'T mean that diagonal movement is reasonable in a logo-graphics model :P
01:13:58 <Gregor> monqy: Keyboard is irrelevant unless you can react to things within 1/15th of a second :P
01:14:06 <elliott> Gregor: BTW, I take it that things like invalid builds and the like will just be ignored?
01:14:07 <elliott> No error codes
01:14:09 <hagb4rd> hexagons
01:14:13 <elliott> You shouldn't be making such moves anyway
01:14:24 <elliott> And things like bumping into things when walking, well... you can see the bloody wall right in front of you.
01:14:30 <Gregor> elliott: I was intending to ack commands, so you would know if they actually happened within the turn.
01:14:39 <Gregor> That ack could be "OK" vs "too late" vs "invalid"
01:14:52 <elliott> Gregor: wait, there are no invalid digs now
01:14:55 <elliott> Erm
01:14:57 <elliott> Gregor: wait, there are no invalid builds now
01:15:04 <Gregor> True
01:15:04 <elliott> Because you have to stand on the square your wire appears on
01:15:17 <Gregor> elliott: Errr, what if another agent moves there :)
01:15:19 <elliott> Gregor: wrt too late, agents can check that themselves by comparing the world-state I think
01:15:21 <Gregor> YAY ATOMICITY
01:15:25 <elliott> There might be edge-cases where someone cancels out what you do identically
01:15:33 <elliott> Gregor: Agents can't walk into agents
01:15:35 <elliott> Just like they can't walk into wires
01:15:36 <elliott> Or electroncs
01:15:37 <elliott> electrons
01:15:39 <elliott> Or anything but space
01:15:47 <Gregor> Right.
01:15:57 <elliott> So yeah, that build fails.
01:15:57 <Gregor> Anyway, there are still invalid hits.
01:16:13 <elliott> Gregor: Yeah, but if they try and hit that, they're either like, genetic based... or broken >_>
01:16:23 <elliott> If "genetic", then "nothing happened" is the right thing to learn, if broken, well fuck 'em
01:16:54 <elliott> Gregor: But yeah, I think that a properly-written agent doesn't really have to worry about its turn going through...
01:17:01 <Gregor> So yeah, whether you like it or not, I'm acking everything. Neener neener neener.
01:17:14 <Gregor> (Err, acking all client commands, that is)
01:17:14 <elliott> Gregor: The time it takes to react to the ack makes it worthless
01:17:19 <Gregor> So don't *shrugs*
01:17:19 <elliott> You don't want to cancel your current decision-making process
01:17:25 <elliott> Gregor: Then there's no reason to ack :P
01:17:33 <Gregor> elliott: Maybe not for YOU.
01:17:48 <Gregor> elliott: Maybe if I'm getting a bunch of ack-too-lates, I'd like to switch to a faster strategy.
01:18:05 <elliott> Gregor: Fair enough... but you don't want a dynamic-length response.
01:18:09 <elliott> So you can only ack one per tick :P
01:18:15 <Gregor> And I don't want to determine that by "I moved forward in a totally-empty field and nothing appears to have happened"
01:18:22 <elliott> And invalid moves should ack as "received"
01:18:24 <Gregor> Or "I build-and-moved in a totally empty field and nothing appeared to happen"
01:18:26 <elliott> And just do nothing
01:18:44 <Gregor> Only one move per tick is valid anyway, of course I can only ack one.
01:18:52 <elliott> [zero or one][the identifier it was sent with][new identifier][grid][damages]
01:18:56 <elliott> Gregor: Yes, but it could receive two because of lag...
01:19:19 <Gregor> OH, I see what you're saying.
01:19:28 <Gregor> You want literally every message from the server to be of a fixed length.
01:19:29 <elliott> But w/e, just ack one, if you're that lagged you're fucked anyway
01:19:33 <Gregor> So, only one message per tick.
01:19:40 <elliott> Gregor: The only messages are updates and acks, so... yes?
01:19:54 <elliott> There's no compelling reason not to unify those since acks are of questionable usability anyway
01:20:02 <Gregor> Only to you.
01:20:08 <elliott> OK, let me put it this way:
01:20:15 <elliott> Multiple acks per tick is of VERY questionable usability.
01:20:26 <elliott> And breaks the simple "just read with constant size" client end.
01:20:34 <elliott> You have to do some kind of buffering.
01:20:48 <elliott> Gregor: BTW, I'd suggest eleven or seventeen viewfield, seven is a bit small...
01:20:50 <Gregor> OK, wait, since you can only validly send one move per turn ANYWAY, there's no need for multiple acks per tick ever.
01:21:23 <elliott> Gregor: Did you just un-realise?
01:21:26 <elliott> <elliott> Gregor: Yes, but it could receive two because of lag...
01:21:26 <elliott> <Gregor> OH, I see what you're saying.
01:21:28 <elliott> Oh, wait
01:21:32 <elliott> You saw what I was saying about a different thing
01:21:33 <elliott> <elliott> Gregor: Yes, but it could receive two because of lag...
01:21:35 <elliott> I repeat that then
01:21:37 <Gregor> If one is lagged, it's already been acked negative.
01:21:56 <Gregor> Since you specify the turn the move is intended for in the move.
01:22:01 <elliott> Client receives two server updates in quick succession because of lag, hastily responds to both.
01:22:09 <elliott> Server reads. Server gets two commands.
01:22:16 <elliott> Server can only say "hey, too late" to one.
01:22:18 <elliott> (Both of them were late.>)
01:22:32 <Gregor> elliott: The server's ALREADY said "hey, too late" to both.
01:22:40 <Gregor> It was part of its updates.
01:22:44 <Gregor> Every update includes an ack.
01:22:48 <elliott> Oh
01:22:49 <elliott> Fair enough
01:22:56 <Gregor> It's not really an ack anymore if you're acking nothingness, but :P
01:23:05 <elliott> If you enforce sequentiality of identifiers, then you can ack with one byte
01:23:12 <Gregor> Yup
01:23:16 <elliott> Good
01:23:30 -!- oklopol has quit (Ping timeout: 240 seconds).
01:23:40 <Gregor> OK, back to building ...
01:23:40 <hagb4rd> hey..i asked myself y not all the time
01:23:48 <elliott> Gregor: Link me to the hg repo btw?
01:24:34 <Gregor> https://codu.org/projects/rezzo/hg/
01:25:24 <elliott> Gregor: I blinked when a bitbucket page failed to materialised :P
01:26:29 <Gregor> Some stuff is out of date there though w.r.t. things I realized shouldn't have been there, and new changes.
01:28:06 <elliott> Gregor: So what IPC mechanism you using
01:28:12 <elliott> Please make it be something that looks like stdio to the program :P
01:28:26 <elliott> Also, is the playfield a torus or infinite?
01:28:35 <Gregor> Torus.
01:28:38 <Gregor> Infinite = infinite pain.
01:28:51 <Gregor> I was going to use pipes, so stdio to the program, yes.
01:29:24 <elliott> Gregor: = infinite pain?
01:29:31 <elliott> Are you speaking from a C implementation POV, please just say no.
01:29:56 <Gregor> elliott: I'm speaking from a computation complexity point of view.
01:30:06 <Gregor> Whoops, my plain extended, I now have more work
01:30:27 <Gregor> If you wanted to fuck up the server, you could just move infinitely in one direction pooping stable circuits.
01:30:54 <elliott> I am so glad that pooping is now our official terminology :P
01:30:58 <elliott> SO GLAD.
01:31:08 <elliott> plane not plain btw :P
01:31:14 <elliott> Gregor: So is the field just as big as what you linked me?
01:31:18 <elliott> That seems pretty tiny
01:31:24 <elliott> It's not like BF Joust where smaller = better strategy, I don't think
01:31:26 <elliott> Or maybe it is
01:31:37 <Gregor> elliott: That was just an arbitrarily chosen size.
01:31:45 <elliott> Gregor: Fairy nuff.
01:31:49 <elliott> (nuff is like cocaine but better.)
01:31:52 <elliott> (Only fairies have it.)
01:32:00 <elliott> (Therefore it means "good".)
01:32:08 <Gregor> I was just testing out substrate generation *shrugs*
01:32:23 <hagb4rd> lol
01:32:41 <elliott> Gregor: Hmm, that sets off happy bells in my head that say "WORLD GENERATION!!!!"
01:32:46 <elliott> What if you made a maze?????
01:32:56 <elliott> With dead-end electron rings instead of exits
01:33:26 <Gregor> I'm quite happy with my substrate as-is :P
01:33:38 <elliott> Gregor: It's called EXPERIMENTATION :P
01:33:47 <elliott> Different warriors for different substrate algorithms
01:33:56 <elliott> Gregor: BTW, what ASCII value is pooping?
01:34:29 <Gregor> elliott: None? Doesn't need one ...
01:34:50 <elliott> Gregor: It's... a command...
01:34:53 <elliott> So yes it does............
01:35:01 <monqy> &? *? ~?
01:35:15 <monqy> +?
01:35:20 <Gregor> OHOHOH
01:35:21 <elliott> ~ is pretty good because your tail is ~ (BECAUSE I SAY SO)
01:35:22 <Gregor> The command :P
01:35:28 <Gregor> Sorry, I'm writing the CA right now :P
01:35:29 <elliott> Oh wait
01:35:33 <elliott> Electron tails are ~
01:35:48 <elliott> Gregor: Having fun with agents being a part of the field? :-)
01:35:49 <Gregor> How 'bout ... b :P
01:35:51 <Gregor> As in "build"
01:35:55 <elliott> It's not that hard since you don't literally encode a state transition
01:35:58 <elliott> Well, usually you don't
01:36:00 <monqy> d as in defecate
01:36:03 <elliott> (Instead using ifs and the like)
01:36:05 <elliott> (You know this)
01:36:14 <monqy> do people have tails too
01:36:14 <elliott> Gregor: NO IT MUST LOOK LIKE A LITTLE PICTURE
01:36:31 <Gregor> monqy: 'd' is already damage/destroy.
01:36:33 <elliott> Gregor: How about @, it looks like one of those fake plastic dog poops you can buy
01:36:35 <elliott> Gregor: X_X
01:36:38 <Gregor> Basically I'm trying to piss of elliott here.
01:36:40 <Gregor> *off
01:36:43 <Gregor> I can't type today
01:36:50 <elliott> Gregor: I do not like you :|
01:37:39 <elliott> Gregor: Will you accept patches that make the commands and CA characters totally awesome if I get them in before any warriors are written that weren't written for the purpose of ensuring I can't write that patch :P
01:37:47 <hagb4rd> y do u care now? just do not spread all these magic values all around your code, so you can change it later
01:37:59 <elliott> hagb4rd: It's part of the protocol... magic values are the name of the game.
01:38:03 <hagb4rd> ok
01:38:17 <Gregor> elliott: I won't accept any patches before I get the damned thing to work at all :P
01:40:12 <elliott> Gregor: Hmm... maybe destroying SHOULD take only one tick.
01:40:33 <elliott> Gregor: After all, if someone is right behind you, chasing you, in one direction, shouldn't they be able to destroy your wire at the same speed yer poopin'?
01:40:34 <elliott> In fact
01:40:35 <elliott> Hmm
01:40:42 <elliott> Gregor: Destroying should move you into where the wire was
01:40:44 <elliott> So that it's dual to pooping
01:40:56 <elliott> Wait no
01:40:59 <elliott> That's stupid if it takes more than one tick
01:41:02 <elliott> Gregor: DISREGARD ALL THE ABOVE
01:41:09 <Gregor> elliott: Yeah, also if two people are both destroying the same cell.
01:41:35 <elliott> Gregor: They should merge. Each tick, it should swap whether one or the other's turn takes effect.
01:41:48 <elliott> This is the best idea and if you disagree with it, you are wrong, both in this matter, and as a person.
01:42:00 <Gregor> ...
01:42:16 <elliott> LITERAL BEST IDEA. BEST CHIMERAS.
01:43:15 <elliott> Gregor: Hmm, the timing code will be quite subtle in a bot
01:43:17 <zzo38> What are you making??????????????????????????????????
01:43:30 <elliott> I mean, obviously you can't just arbitrarily break the machine code :P
01:43:32 <elliott> So it has to be at some barrier
01:43:37 <elliott> e.g. reading or writing state
01:43:47 <elliott> I guess you basically just need yield()s
01:43:51 <zzo38> What are you making????????????????????????????????????????????????????????????????????????????????????????????????
01:44:01 <elliott> #define YIELD if (volatile_thing) return
01:44:09 <elliott> zzo38: A game, stop using tons of question marks that's my thing
01:44:14 <elliott> A programming game
01:47:03 <zzo38> Another game to make is one that you have to pick up all of the balls but you cannot carry all of them because the different color balls have different mass so it makes it difficult to win
01:47:47 <monqy> game where you flip a coin but it's really really big
01:47:47 <elliott> Gregor: You should replace the whole game with that.
01:48:29 <zzo38> monqy: Make that game too.
01:48:47 <zzo38> monqy: But I think your idea is a bit simple
01:52:23 <elliott> `addquote <monqy> game where you flip a coin but it's really really big
01:52:27 <HackEgo> 610) <monqy> game where you flip a coin but it's really really big
01:53:04 -!- evincar has joined.
01:53:33 <hagb4rd> a lil bit out of context isnt it? ..where can i read the quotes?
01:54:48 <zzo38> A lot of them are out of context, they like to do it like that
01:55:31 <hagb4rd> operation mindfuck still undone
01:56:08 <hagb4rd> work in progress
01:56:12 <elliott> hagb4rd:
01:56:14 <elliott> `pastequotes
01:56:16 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30030
01:56:21 <hagb4rd> nice
01:56:35 <hagb4rd> elliott: thx
01:57:54 <Gregor> elliott: I have successfully made something hideously broken.
01:58:22 <Gregor> elliott: Also, it only doesn't crash if I set a hardware watchpoint on the variable that causes the crash.
01:59:37 <elliott> Gregor: What.
01:59:42 <elliott> Gregor: How about not using C\
02:00:03 <Gregor> C: THE BEST LANGUAGE THERE IS FOR ALL PORPOISES EVER
02:01:53 <zzo38> C is not bad. But I don't think it is the best language there is for all porpoises ever, or the best language for all purposes ever. There are a lot of programming languages. But use C if that is what you want to use in this case.
02:02:42 <elliott> Gregor: What did you use before you used C for everything
02:03:39 <Gregor> elliott: C.
02:03:51 <Gregor> :P
02:03:58 <elliott> Gregor: Before that
02:03:58 <Gregor> D, before that Java, before that VB.
02:04:04 <elliott> Oh yeah, D
02:04:07 * Gregor sobs to admit that last one.
02:04:07 <elliott> You have really shitty taste in languages
02:04:15 <elliott> Gregor: But you don't sob to admit Java?
02:04:23 <Gregor> That was forced :P
02:05:17 <hagb4rd> so it doesn't crash while debugging?
02:05:38 <zzo38> I have used a lot of programming languages. Sometimes I still do.
02:05:47 -!- copumpkin has joined.
02:06:05 <elliott> Gregor: Are you using pthreads
02:06:10 <Gregor> hagb4rd: It doesn't crash while debugging, but ONLY if I set a watchpoint.
02:06:12 <Gregor> elliott: Heww no.
02:06:53 <elliott> Gregor: What ARE you using
02:06:59 <elliott> I can helpfully tell you not to use it
02:07:12 <Gregor> Nothing interesting, that's the thing.
02:07:21 <Gregor> There's no smell to chase.
02:07:36 <elliott> Are you using... for loops?
02:07:37 <elliott> Avoid those.
02:07:41 <elliott> Gregor: Is it in SDL-related code mayhaps?
02:07:50 <Gregor> elliott: SDL hasn't even started yet.
02:07:56 <elliott> Gregor: For loops?
02:08:27 <Gregor> elliott: I've got plenty, but the only active one is for (d = 0; d < tod; d++)
02:08:46 -!- copumpkin has quit (Client Quit).
02:08:46 <elliott> Gregor: I suggest avoiding for loops, they might crash your program. Hope this helps.
02:08:47 <zzo38> Why to avoid those?
02:09:04 <elliott> It is ENTIRELY possible for a program in a for loop to crash. Think about it.
02:09:18 <zzo38> Anything can crash your program if you program it incorrectly. That is why you have to be careful.
02:09:23 <Gregor> (gdb) p world->w
02:09:23 <Gregor> $5 = 97
02:09:23 <Gregor> (gdb) p world->h
02:09:23 <Gregor> $6 = 1627390102
02:09:24 <Gregor> Haha NO
02:09:32 <elliott> Gregor: Good constants
02:09:36 <elliott> World should be square btw
02:09:49 <Gregor> Rather than a 97x1627390102 wtfagon.
02:09:51 <hagb4rd> use foreach instead?
02:10:08 <hagb4rd> if possible
02:10:10 <zzo38> There is no foreach in C, you have to make up a macro to do foreach in C.
02:10:28 <zzo38> Although it can be done and is useful in some programs to do so.
02:11:39 <Gregor> ARRRRGH
02:11:45 <Gregor> DAMN - YOU - C - MODULO - OPERATION
02:11:46 <elliott> Gregor: wat
02:11:52 <elliott> Correction
02:11:55 <elliott> Damn you C
02:12:21 <Gregor> OK, works now :P
02:13:30 <Gregor> !c printf("%d\n", (-1) % 5
02:13:32 <Gregor> Err
02:13:33 <Gregor> !c printf("%d\n", (-1) % 5);
02:13:34 <EgoBot> Does not compile.
02:13:51 <elliott> EgoBot is faste
02:13:57 <Gregor> :'(
02:14:02 <elliott> !c printf("%d\n", (-1) % 5);
02:14:05 <EgoBot> ​-1
02:14:06 <elliott> lol
02:14:08 <elliott> Gregor: now it worke
02:14:26 <Gregor> Anyway, that is the WRONG ANSWER >_<
02:15:04 <elliott> Gregor: C does what it wants mofo
02:15:06 <elliott> Haskell offers both ;D
02:15:11 <hagb4rd> what?
02:15:13 <elliott> (div and mod and quot and rem)
02:15:16 <elliott> (or divMod and quotRem)
02:15:44 <Gregor> hagb4rd: I can say with 100% certainty that anyone who has ever said that (-1) % 5 is any value other than 4 is a terrible person.
02:16:05 <hagb4rd> gregor: ack#
02:16:06 <elliott> > -1 `div` 5
02:16:06 <lambdabot> 0
02:16:09 <elliott> > -1 `quot` 5
02:16:09 <lambdabot> 0
02:16:12 <elliott> Oh
02:16:12 <elliott> duh
02:16:15 <elliott> > -1 `mod` 5
02:16:16 <lambdabot> -1
02:16:17 <elliott> > -1 `rem` 5
02:16:18 <lambdabot> -1
02:16:21 <elliott> Gregor: Oops :P
02:16:31 <elliott> > divMod (-1) 5
02:16:32 <lambdabot> (-1,4)
02:16:33 <elliott> > quotRem (-1) 5
02:16:34 <Gregor> elliott: wtf :P
02:16:34 <lambdabot> (0,-1)
02:16:42 <elliott> Gregor: Operator precedence I think >_>
02:16:42 <Gregor> lol, mod and divMod don't agree
02:16:44 <Gregor> Oh
02:16:48 <elliott> > (-1) `div` 5
02:16:49 <Gregor> -(1 mod 5)?
02:16:49 <lambdabot> -1
02:16:50 <elliott> > (-1) `quot` 5
02:16:51 <lambdabot> 0
02:16:55 <elliott> erm
02:16:56 <elliott> > (-1) `rem` 5
02:16:57 <lambdabot> -1
02:17:01 <elliott> What >_>
02:17:02 <elliott> Oh
02:17:06 <elliott> > (-1) `mod` 5
02:17:06 <lambdabot> 4
02:17:08 <elliott> Gregor: FINALLY :P
02:17:15 <elliott> - really needs to be part of the number literal syntax.
02:17:31 <elliott> That's one of Haskell's major warts, "lol - is the only unary operator and also this means that you have to parenthesise negative literals always"
02:17:46 <elliott> And it means that you can't do (- 9) to partially apply (-) with a section
02:17:48 <elliott> You need (subtract 9)
02:17:49 <elliott> Gross
02:19:29 <evincar> Eew, really?
02:19:47 <elliott> No that was a total lie.
02:19:54 <evincar> Good.
02:20:55 <monqy> hi
02:21:10 <monqy> yeah I hate - it's awful
02:22:45 -!- sllide has quit (Read error: Connection reset by peer).
02:23:39 <Gregor> ANOTHER thunderstorm?
02:23:41 <Gregor> Come on, Indiana.
02:23:43 <Gregor> Seriously.
02:33:12 -!- Vorpal has quit (Ping timeout: 264 seconds).
02:33:26 <elliott> Indiana: Literally Texas.
02:39:51 <Gregor> Oh man, there is like a 0% chance that this viewport code is correct :P
02:44:47 <zzo38> I agree that (-1) % 5 == -1 is no good, I agree that it should be 4
02:45:08 <Gregor> elliott: See! Proof positive.
02:45:24 <Patashu> Why are there two kinds of modulus anyway, it's annoying
02:47:05 <zzo38> Maybe the negative kind is useful in some cases, but in general the positive kind (that is, without negative results) is better
02:49:37 <hagb4rd> > (-1) `mod` -5
02:49:38 <lambdabot> Precedence parsing error
02:49:38 <lambdabot> cannot mix `GHC.Real.mod' [infixl 7] and pref...
02:49:55 <hagb4rd> > (-1) `mod` (-5)
02:49:55 <lambdabot> -1
02:52:56 <hagb4rd> > (1) `mod` (-5)
02:52:56 <lambdabot> -4
02:59:18 <elliott> Gregor: Does it work yet
02:59:24 <elliott> <Patashu> Why are there two kinds of modulus anyway, it's annoying
02:59:25 <elliott> Because mathematics
02:59:37 <Gregor> elliott: I'm adding agents.
02:59:51 <Gregor> elliott: Also, I'm seeing that SDL doesn't seem to be able to select over FDs >_<
03:00:12 <elliott> Gregor: select() does that.
03:00:20 <elliott> Gregor: Why'd you need SDL to
03:00:20 <Gregor> elliott: select() doesn't select over SDL actions.
03:00:27 <elliott> Gregor: SDL... actions?
03:00:29 <elliott> Do you mean events?
03:00:42 <Gregor> Such as "lol your window went away", "I need a repaint", or "somebody just closed the window"
03:00:45 <Gregor> Yes yes yes
03:00:53 <elliott> It only tells you to repaint when it's restored or whatever
03:00:59 <elliott> You probably want your own event loop
03:01:21 <Gregor> But under that I need /something/
03:01:26 <Gregor> And it seems that I have no something.
03:01:30 <evincar> Wat.
03:01:31 <Gregor> I can't use select() or SDL >_<
03:01:49 <elliott> One thread handles all events, then does a bunch of SDL_GetTicks and SDL_Delay so that you're on time for drawing the next frame, then you draw a frame, save the current time (so you know when the next frame is), and repeat
03:01:53 <elliott> Another thread can select() and handle the rest.
03:01:57 <elliott> It's basically impossible to avoid threads using SDL.
03:01:57 <evincar> while (running) { while (SDL_PollEvent(&event)) { switch (event.type) { ... } } }
03:02:04 <elliott> evincar: <Gregor> elliott: Also, I'm seeing that SDL doesn't seem to be able to select over FDs >_<
03:02:11 <elliott> evincar: Also, lolniceandslow
03:02:14 <elliott> You want WaitEvent if you're doing that
03:02:20 <elliott> But you don't want to do that, you want to use PollEvent and sleep yourself :P
03:02:44 -!- copumpkin has joined.
03:02:53 <evincar> Meh, didn't mean to write a busy loop there, but don't care.
03:03:01 <Gregor> evincar: It still doesn't help.
03:03:05 <evincar> Point is, variable frame rate.
03:03:08 <elliott> Gregor: I just told you how to do it :P
03:03:08 <Gregor> evincar: I know how to write a simple SDL event loop, that doesn't help me.
03:03:11 <evincar> It wasn't, but it is now.
03:03:16 <Gregor> elliott: I REFUSE TO THREADS >_<
03:03:17 <elliott> Gregor: I'm getting pretty good at non-simple SDL event loops :P
03:03:21 <hagb4rd> you need the gametime to be passed
03:03:21 <elliott> Gregor: You have literally no choice.
03:03:25 <Gregor> elliott: NOOOOOOOOOOOOOOOOO
03:03:57 <elliott> Gregor: You need that anyway, because you need to sleep()
03:04:01 <elliott> To let the turn time pass
03:04:15 <Gregor> elliott: SDL has that.
03:04:18 <Gregor> It has timers.
03:04:36 <elliott> Gregor: You... don't want to rely on SDL for that >_.
03:04:37 <elliott> >_>
03:04:54 <elliott> 90s library + your critical loop = woooooooooooooooooooooooooooo
03:05:03 <Gregor> You're being stupid.
03:05:13 <Gregor> This problem doesn't exist.
03:05:25 <elliott> Gregor: Sounds like you have a problem from all your whining :P
03:05:29 <Gregor> The times involved are not astronomical or astronomically or small.
03:05:35 <Gregor> elliott: The timing problem, not the FDs problem.
03:05:36 <evincar> SDL_AddTimer is good enough for many purposes. I just prefer to avoid it.
03:05:43 <elliott> I wouldn't put SDL_PollEvent into my main event loop.
03:05:45 <elliott> But w/e.
03:06:05 <Gregor> wtf
03:06:09 <Gregor> HELLO SDL_WAITEVENT
03:06:09 <elliott> Gregor: You do realise that you are going to have to give in and use threads, right?
03:06:20 <Gregor> elliott: I already am, but the timing is totally unrelated to that.
03:06:25 <elliott> Sure.
03:06:25 <Gregor> I already have the timing infrastructure.
03:06:42 <hagb4rd> what's the problem?
03:06:44 <elliott> Gregor: Have I mentioned that you're going to have to use SDL_PollEvent, not WaitEvent :P
03:06:51 <elliott> Hmm
03:06:54 <Gregor> elliott: No, I won't.
03:06:56 <elliott> I suppose your world thread could create a user event
03:07:00 <elliott> That's so grosse though
03:07:11 <Gregor> The SDL and CA parts are /DONE/.
03:07:15 <elliott> Gregor: I take it that's what you're doing
03:07:16 <evincar> Yeah, I've had more problems with that than it solved.
03:07:24 <evincar> Using user events.
03:07:37 <Gregor> Oy vey
03:07:39 <evincar> From the timer thread, that is.
03:07:43 <elliott> Gregor: I'm asking a simple question, disregard evincar :P
03:08:03 <Gregor> elliott: Yes, that's what I'm doing. All I need is a big lock to make sure the CA and agents don't step on each other.
03:08:18 <elliott> Gregor: The CA evolves independently of the agents???
03:08:24 <Gregor> elliott: No, that's my point.
03:08:36 <elliott> Gregor: Why can't you just do ca_tick() after you get all the moves in and apply them
03:08:43 <elliott> That's a purely sequential thing
03:08:49 <elliott> All SDL has to do is turn the CA state into pixels
03:08:50 <Gregor> elliott: I have to display that shit :P
03:08:57 <elliott> So do that in the SDL thread
03:09:10 <hagb4rd> oh.. i thought we're talking bout the draw() not the update()
03:09:15 <elliott> for loop + p->pixels = done?
03:09:17 <elliott> I don't see how you need a lock at all
03:09:18 <Gregor> I'mma keep right on doing this how I'm doing it, because your advice is unhelpful :P
03:09:27 <elliott> Gregor: I just want to know why you need a lock
03:09:34 -!- pikhq has quit (Ping timeout: 252 seconds).
03:09:41 -!- pikhq has joined.
03:09:46 <Gregor> elliott: I suppose I don't need to guarantee I draw one consistent state to the screen, but I'd like to.
03:10:09 <evincar> I vote for buffering.
03:10:11 <hagb4rd> so you check collisions in the draw() part?
03:10:15 <hagb4rd> i don't get it
03:10:19 <elliott> Gregor: If the CA updates, I'd like it to update as quickly as possible :P
03:10:29 <elliott> hagb4rd: evincar: I take it you have no actual idea what we're doing at all.
03:10:34 <Gregor> elliott: And what the hell does that have to do with anything?
03:10:43 <elliott> Gregor: It was a joke re <Gregor> elliott: I suppose I don't need to guarantee I draw one consistent state to the screen, but I'd like to.
03:10:45 <elliott> Gregor: But hey, hashlife does it
03:10:52 <Gregor> Ah :P
03:11:01 <elliott> Don't you want to be as FAST AS HASHLIFE???
03:11:05 <elliott> ABANDON YOUR LOCKS
03:11:24 <elliott> Gregor: Wait. Waitasecond. Waitasecondamo. You use a user event to tell the SDL thread to draw, so the lock doesn't have to exist from SDL's perspective.
03:11:29 <elliott> You can lock before sending off the event.
03:11:31 <elliott> Oh, SDL has to unlock it,
03:11:32 <elliott> .
03:11:38 <elliott> But you definitely want to lock before sending the event :P
03:11:44 <elliott> Hmm, or do you
03:11:46 <Gregor> Here is my design:
03:12:05 <elliott> Gregor: With a big enough world, locking could cause the time guarantees to be fail to met.
03:12:11 <elliott> But I guess the time guarantees only matter while waiting for a turn.
03:12:11 <Gregor> one thread { while (select()) { BIG LOCK { everything } } } another thread { while (SDL_Bullshot()) { BIG LOCK { everything } } }
03:12:25 <elliott> Gregor: Beep, by "another thread" you mean "the main thread".
03:12:30 <elliott> You cannot call SDL threads from outside the main thread.
03:12:31 <Gregor> Well, yeah :P
03:12:34 <elliott> s/threads/calls/
03:12:59 <elliott> Gregor: Anyway, I'd just draw without any lock because of aforementioned speed paranoia...
03:13:07 <elliott> And the fact that it really doesn't matter if it updates half way :P
03:13:26 <elliott> Since it'll draw again in like 0.06 seconds
03:13:31 <elliott> I guess you could have repeated bad luck, so w/e
03:13:55 <hagb4rd> elliott: i take it.. you have no idea bout game programming patterns
03:14:16 <elliott> hagb4rd: Wow, you're a jerk. Especially because Gregor isn't developing an interactive game
03:14:35 <elliott> And there are no collisions to detect outside of the totally separate agent handling.
03:16:25 <hagb4rd> All I need is a big lock to make sure the CA and agents don't step on each other. <-- collisions?
03:16:36 <hagb4rd> sry...
03:16:39 <hagb4rd> wrong
03:16:50 <elliott> hagb4rd: Step on in the programming sense.
03:17:33 <Gregor> I'mma let you two duke this out since I find the whole conversation 115% uninteresting.
03:17:44 <monqy> what's even happening
03:17:51 <elliott> Gregor: Is repeatedly correcting someone even "duking"
03:18:07 <Gregor> monqy: Everybody hates each other, and this umbrella works wonders for murdering.
03:19:20 <monqy> so is anything not stupid happening
03:19:51 <elliott> monqy: Gregor is writing a game that is good apart from not using my ca
03:20:21 <monqy> is it using a bad ca
03:22:28 <elliott> monqy: wireworld so it could be worse????
03:22:31 <monqy> is your ca even usable yet
03:22:50 <elliott> monqy: I don't know maybe soon???
03:24:55 <evincar> I feel like we've had this conversation before, and recently.
03:25:05 <elliott> no
03:25:36 <evincar> YOU CAN'T TELL ME WHAT I FEEL
03:25:40 <monqy> evincar: and how's your language
03:25:51 <elliott> bad hth
03:26:09 <evincar> monqy: Been thinking about how best to implement the non-bootstrapped version in a way that doesn't bite me later.
03:27:22 <monqy> does that mean you've finished designing the language itself, or at least enough to consider implementation, or is this this problem not specific to or dependent upon the design of your language?
03:27:24 <evincar> Also what target language to use, which I suppose could be C++, if only as an alternative to C.
03:27:39 <monqy> c++?
03:27:44 <monqy> why c++
03:27:56 <elliott> lol
03:28:04 <monqy> elliott: hi
03:28:20 <elliott> hi monqy hi
03:28:22 <evincar> Compiles natively, is C with some other stuff I don't want to automate.
03:28:35 <monqy> like what
03:28:38 <elliott> im literally going to suffocate myself on a pillow bye
03:28:45 <monqy> elliott: sorry i was bored
03:28:52 <elliott> ok back
03:29:00 <evincar> elliott: If you'd like to recommend a different target language, be my guest.
03:29:17 <elliott> anything but C++??
03:29:20 <elliott> like say C??
03:29:21 <evincar> Your opinion is assuredly worth something.
03:30:08 <monqy> what about c++ is attractive
03:30:11 <monqy> over, say, c
03:30:24 <evincar> Okay, so my language targets C. And now I have to write scads more code, and I can't rely on automatic destruction or smart pointers or existing collections.
03:30:36 <evincar> I want it to *work* first.
03:30:42 <evincar> I can add other targets later.
03:31:19 <monqy> this is less about c being good and more about c++ being bad
03:31:36 <monqy> target haskell $$$$$$$
03:32:11 <elliott> <evincar> Okay, so my language targets C. And now I have to write scads more code, and I can't rely on automatic destruction or smart pointers or existing collections.
03:32:13 <elliott> have you ever used C?
03:32:24 <elliott> also do you know what the boehm gc is
03:32:28 <evincar> Yes, loads.
03:32:37 <evincar> Alright, now I have an outside dependency.
03:33:14 <Gregor> (Is the source a GC'd language?)
03:33:48 <monqy> Gregor: presumably, else hahahahahahahahahahahahahahahah
03:33:59 <elliott> evincar: outside epdenency
03:34:06 <elliott> here's a list of language implementations that depend on boehm gc
03:34:07 <elliott> - everything
03:34:13 <elliott> heres a list of other things that depend on boehm
03:34:14 <elliott> - everything
03:34:18 <evincar> Gregor: I'm not entirely sure it needs to be, being that it's stack-based.
03:34:26 <elliott> even gcc uses boehm for chrisssakes
03:34:35 <elliott> yes, using a stack absolves you of all memory management
03:34:45 <hagb4rd> someone has to take the ring back to mordor
03:36:11 <evincar> No, using a stack just makes memory management absurdly straightforward.
03:36:23 <elliott> lol
03:36:24 <elliott> wow
03:36:25 <elliott> are you serious
03:36:38 <evincar> So I'll target C, whatever.
03:36:40 <elliott> thats true if and only if you cant push nontrivial structures to the stack
03:38:26 <evincar> It's all references anyway. So don't I just have to deal with counting?
03:38:37 <evincar> And can't I throw that responsibility to the garbage collector if I'm feeling lazy?
03:38:58 <elliott> you have no cyclic structures? sweet
03:39:00 * evincar is still not convinced of the merits of GC over deterministic destruction.
03:39:15 <elliott> except that gc works in the general case and "deterministic" methods don't
03:39:22 <elliott> (gc can be perfectly deterministic)
03:39:55 <elliott> You could also use GGGGC if you want precise GC.
03:41:50 <monqy> evincar: good luck designing a good language (thumbs up)
03:42:14 <elliott> Gregor: How's it go :P
03:42:33 <evincar> monqy: Oh, I'll use a collector, and I'll end up the happier for it.
03:44:52 <Gregor> elliott: It continues to go :P
03:46:42 * hagb4rd poops away
03:46:44 <hagb4rd> bye
03:46:57 -!- hagb4rd has quit (Quit: Page closed).
03:50:54 <elliott> wat
03:54:45 <Gregor> elliott: ... what commands are left for actors other than move, build, destroy?
03:54:48 <zzo38> You could also have the programming language that targets LLVM, it has some things related to garbage collection too
03:54:53 <Gregor> Err, and turn of course :P
03:55:33 -!- MDude has changed nick to MSleep.
03:55:34 <Gregor> IIRC, LLVM's GC is lolterrible.
03:55:58 <zzo38> Then fix it
03:56:45 <Gregor> Also, apparently I can't decide if they're agents or actors.
03:57:22 <elliott> Gregor: Poop
03:57:27 <elliott> Not build, poop
03:57:42 <elliott> Gregor: Advance, poop, hit, turn left, turn right, these are the One True Names.
03:58:46 <elliott> Gregor: But yeah, those are all :P
04:01:17 -!- augur has quit (Remote host closed the connection).
04:06:46 <evincar> zzo38: I was going to mention LLVM, but I assumed I'd get laughed at.
04:07:01 <zzo38> evincar: I think LLVM is good in general.
04:07:02 <evincar> Also, MASSIVE DELAY.
04:07:23 <evincar> It certainly seems to be, but I honestly don't know enough about it to feel comfortable targeting it.
04:07:33 <evincar> Especially when I want to get something done quickly that I can later refine.
04:09:12 <zzo38> I am writing the program for using Glk with Haskell.
04:12:17 <Sgeo_> I am now witnessing what atrocious Python code looks like
04:12:33 <Sgeo_> I don't thnk this person's written in Python or any other computer language before
04:12:45 <zzo38> What program is it?
04:12:53 <Sgeo_> Something to do with YouTube stuff
04:13:38 <Sgeo_> I posted links in the minecraft channel
04:15:27 <zzo38> Do you know how, I can, in Haskell, to reference something in another module which I cannot import because it does not exist? But I do know the types of the other things I am accessing.
04:17:01 <Gregor> elliott: Now it all works except that it doesn't actually do anything.
04:17:30 <zzo38> Specifically glkInit :: String; glkMain :: Glk ();
04:18:15 <elliott> Gregor: Sweet.
04:18:28 <elliott> zzo38: Uhh, that doesn't make much sense. Do you want to use the FFI?
04:18:45 <elliott> zzo38: If the Glk is the Glk I know, though, I don't see why it needs its own monad; all the functions should just return in IO.
04:18:53 <elliott> /* glk_main() is the top-level function which you define. The Glk library
04:18:53 <elliott> calls it. */
04:18:53 <elliott> extern void glk_main(void);
04:18:59 <elliott> Oh, that's problematic.
04:19:12 <zzo38> Yes that is the reason.
04:19:33 <elliott> You have to write a C file defining glk_main() that uses the FFI to call a Haskell function named glkMain.
04:19:36 <elliott> Then everyone has to link with that.
04:19:43 <elliott> I... hmm.
04:19:50 <elliott> You might have to mark it as exported to the FFI in the source file anyway.
04:21:27 <zzo38> No, glkInit and glkMain are values used by the library program I am making, and they need to use that in the functions which C calls. It also does various other things such as ensure it is safe codes unlike C codes, such as the C code keeping opaque objects registry and dispatching Glk calls, and the Haskell code converting the types between C types and Haskell types.
04:21:40 -!- augur has joined.
04:21:53 <zzo38> Which means I need to import things that do not exist.
04:22:05 <Gregor> elliott: OMG so slow D-8
04:22:23 <zzo38> The user program will also import this program too, although in that case everything is exist already.
04:23:01 <elliott> Gregor: What part is slow?
04:23:12 <elliott> zzo38: You just "import" them by referencing them from C.
04:23:42 <zzo38> elliott: OK. How do I reference them from C, then? They are not C types!
04:24:43 <Gregor> elliott: Donno yet.
04:27:39 <elliott> zzo38: you can export things with the FFI
04:27:52 <elliott> eforeign export ccall foo :: Int -> IO Int
04:27:52 <elliott> foo :: Int -> IO Int
04:27:52 <elliott> foo n = return (length (f n))
04:27:54 <elliott> Then Foo_stub.h will contain something like this:
04:27:54 <elliott> #include "HsFFI.h"
04:27:54 <elliott> extern HsInt foo(HsInt a0);
04:27:55 <elliott> and Foo_stub.c contains the compiler-generated definition of foo(). To invoke foo() from C, just #include "Foo_stub.h" and call foo().
04:28:03 <elliott> see http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/ffi-ghc.html
04:28:10 <elliott> zzo38: you also want to look at 8.2.1.1. Using your own main()
04:28:11 <elliott> from the same page
04:29:59 <zzo38> I have looked at 8.2.1.1 already
04:30:08 <zzo38> I will look again
04:32:48 <zzo38> I suppose one idea, which can make it add the necessary exports if needed, as well as other things if needed, is to use Template Haskell.
04:33:52 <zzo38> Why does "foreign export" require the type even if it is already specified in the program?
04:37:01 <Gregor> elliott: So it's POSSIBLE ... just POSSIBLE that even with the simplest possible client you can't keep up :P
04:38:32 -!- evincar has quit (Quit: leaving).
04:38:52 <Gregor> elliott: No, never mind, seems to be a different bug >_>
04:39:08 <zzo38> Now ghci won't load the program if it has foreign export
04:39:51 <Gregor> elliott: Heh, I was always expecting the wrong timestamp X-P
04:41:22 <Gregor> Yup, works 8-D
04:42:02 <Gregor> elliott: Pull for AGENTS
04:44:52 <elliott> Gregor: I never downloaded
04:44:53 <elliott> Relink
04:46:10 <Gregor> https://codu.org/projects/rezzo/hg/
04:46:48 <elliott> Gregor: So will you accept a patch that fixes your letters :P
04:47:04 <Gregor> MY CHARACTERS ARE PERFECTION
04:48:41 <elliott> Gregor: http://sprunge.us/HNjb
04:49:07 <zzo38> Maybe it is {-# SOURCE #-} which will do allowing importing non-existing modules
04:49:13 <elliott> Gregor: I will accept keeping the name build rather than poop :P
04:49:15 <elliott> zzo38: No.
04:49:27 <elliott> zzo38: You _cannot reference glkMain in that way from Haskell code_.
04:49:30 <elliott> But with the FFI you can refer to it.
04:50:47 <elliott> Gregor: But I will be happy to test it once those completely-vital breaking changes are through :P
04:51:06 <elliott> Also, lol at your argument parsing "library"
04:51:57 <zzo38> Are you sure? It says you can use that to compile mutually recursive modules. But I don't know how you can refer to it with FFI since glkInit and glkMain are not C types.
04:52:32 <elliott> zzo38: By exporting them with "foreign export" from the Haskell file.
04:52:46 <elliott> You must simply do extern void glkMain(...); from your C file.
04:52:54 <elliott> And compile that to an object file which must be linked with the program using GHC.
04:53:11 <elliott> 222 if ((buf = SDL_SetVideoMode(w*z, h*z, 32, SDL_HWSURFACE|SDL_DOUBLEBUF)) == NULL) SDLERR;
04:53:20 <elliott> Gregor: You probably don't want HWSURFACE.
04:53:29 <zzo38> elliott: But it says "foreign export" still needs to be C types. I have two things neither of whcih are C types
04:53:44 <elliott> zzo38: IO () is exported just as IO ()
04:53:55 <elliott> Gregor: For one, your code will probably break with an HWSURFACE, since you don't lock/unlock it
04:54:03 <elliott> Gregor: For two, poking at pixels with an hwsurface is almost definitely going to be slow
04:54:48 -!- pikhq has quit (Ping timeout: 252 seconds).
04:54:50 -!- pikhq_ has joined.
04:55:09 <elliott> Suspect Gregor isn't actually here :P
04:55:35 <Gregor> Just ignoring you.
04:56:11 <elliott> Gregor: My advice about HWSURFACEs is hardly irrelevant... especially since the only time you're going to get one is fullscreened anyway.
04:56:51 <Gregor> I never claimed that anything you said was irrelevant, just that I'm ignoring you :P
04:56:55 <Gregor> I already did HW -> SW :P
04:57:39 -!- CakeProphet has joined.
04:57:39 -!- CakeProphet has quit (Changing host).
04:57:39 -!- CakeProphet has joined.
04:57:49 <elliott> Gregor is just hiding his shame that he didn't think of ! for destroy and ~ for tail.
04:57:59 <elliott> Hoping nobody will ever know.
04:58:14 <elliott> Well, it runs.
04:58:57 <Gregor> elliott: Do gcc wander.c -o wander, then ./rezzo ./wander
04:58:57 <elliott> --help?! What's this nonsense!
04:58:58 <elliott> Gregor: Nice docs
04:59:02 <Gregor> elliott: Thx :)
04:59:17 <elliott> if (sm.ack == ACK_INVALID_MESSAGE) {
04:59:23 <elliott> I... would not call walking into a wall an "invalid message".
04:59:28 <elliott> Nothing HAPPENED, but it was perfectly possible to try.
04:59:39 <elliott> And that wall could have been created on the same turn.
04:59:45 <Gregor> Brrrrrf.
04:59:48 <elliott> (How do you handle such cases, when the ordering of agents is revealed?)
04:59:56 <elliott> (That's a lot of special cases.
04:59:58 <elliott> )
05:00:14 <elliott> Welp, I did ./rezzo ./wander and can't fucking find the bastard at all.
05:00:27 <elliott> You should flash the general area with inverted colours at the start :P
05:00:51 <Gregor> No.
05:01:08 <elliott> Well, what would you be open to? It's literally impossible to find.
05:01:29 <elliott> Even with four of them I can only find two.
05:01:56 <elliott> You don't appear to generate any blocks on the most right hand side of the field... an off-by-one?
05:03:24 <elliott> More ignoring?
05:03:32 -!- zzo38 has quit (Remote host closed the connection).
05:04:24 <Gregor> elliott: Actually trying to fix exactly that problem.
05:04:31 <Gregor> I assume there's an off-by-one, but I'm yet to find it.
05:04:45 <elliott> Gregor: The "I can't see where any contestant is" problem seems more important...
05:04:51 <elliott> Or at least it is for me :P
05:05:04 <Gregor> It'll be easier when they're doing something :P
05:05:31 <elliott> Not... really? I have a high-DPI screen.
05:05:38 <elliott> They're smaller than the specks of dust on here.
05:06:05 <elliott> In fact, when they're adjacent to lines, I literally can't tell it from what subpixel rendering artifacts look like on other screens.
05:06:37 <Gregor> -z zooms :P
05:06:46 <Gregor> <-- so helpful
05:06:59 <Gregor> Honestly I consider the issue that's not just some display nonsense to be considerably more important.
05:07:09 <elliott> Any zoom level doesn't fit on my screen.
05:07:24 <Gregor> -w and -h change the field size
05:07:29 <elliott> That changes the gameplay.
05:07:56 <elliott> Gregor: OK, here's a MODEST PROPOSAL: What about a simple tail behind the agents? Just pink to background colour in like five pixels.
05:08:00 <elliott> That would make it incredibly to see them on any zoom level.
05:08:14 <Gregor> It actually /removes/ the blocks from the right and bottom >_O
05:08:42 <Gregor> elliott: I have not yet committed to making no changes for visibility. What I have committed to is fixing bugs before UI issues.
05:08:49 <elliott> OK fine :P
05:09:13 <Gregor> for (y = 0, yoff = 0; y < h-1; y++, yoff += w) {
05:09:13 <Gregor> for (x = 0, i = yoff; x < w-1; x++, i++) {
05:09:15 <Gregor> ^^^ spot the stupid
05:09:37 <elliott> lol :P
05:09:55 <elliott> Gregor: ./rezzo ./rezzo
05:09:56 <elliott> AW YE
05:10:00 <Gregor> The worst part is I honestly couldn't tell you why I thought it should be h-1 and w-1.
05:10:31 <elliott> pix[si+w*z*zy+zx] = typeColors[world->c[wi]];
05:10:38 <elliott> wrt so slow, you could just increment pix :P
05:11:09 <elliott> At least that works here, dunno if that might have side-effects
05:11:41 <elliott> Actually I'm unclear how you actually do zooming...
05:18:16 <Gregor> Arghwtf, I just "fixed" something and instead it broke everything.
05:18:31 <elliott> Gregor: Patch (in suitable format for "hg import"): http://sprunge.us/BVGR
05:19:37 <Gregor> I didn't realize you could - an include line ...
05:20:10 <elliott> Gregor: Yep.
05:20:17 <elliott> I'm pretty sure that's the one and only reason to do it ever :P
05:20:19 <Gregor> For some reason my board is turning dead instantly right now >_<
05:20:36 <elliott> C, best language.
05:20:56 <elliott> Gregor: What is sizeof(ServerMessage)?
05:21:05 <Gregor> elliott: Look at its definition :P
05:21:19 <elliott> What is VIEWPORT_SQ
05:21:25 <Gregor> elliott: Look at its definition :P
05:21:35 <elliott> What is VIEWPORT :P
05:21:43 <Gregor> elliott: Look at its definition :P
05:21:46 <elliott> Okay so it's thirteen squared times two plus two.
05:22:04 <elliott> 340
05:22:08 <elliott> HARDCODED WOO
05:23:43 <Gregor> Wow, apparently I don't know how to swap buffers properly (at 1AM) >_<
05:23:54 <Gregor> tmp = world->c2;
05:23:54 <Gregor> world->c = world->c2;
05:23:54 <Gregor> world->c2 = tmp;
05:23:56 <Gregor> Spot the bug!
05:25:35 <itidus20> n = sqrt(a^2 + b^2)
05:26:28 <elliott> itidus20: Almost as helpful as hagb4rd or whatever his name is :P
05:26:48 <elliott> Gregor: The amount of infrastructure required for a simple bot is astonishing :P
05:26:56 <elliott> I mean, slightly less simple than wander, by which I mean, recording anything at all.
05:27:07 <Gregor> Heh :P
05:27:15 <Gregor> Wander is clearly the best bot.
05:27:25 <elliott> Mostly the problem is that I have to translate it all to decent structures on read...
05:27:32 <elliott> Which I SUSPECT may take longer than 0 seconds.
05:27:40 <elliott> And operating on it in raw ASCII form is gross.
05:28:14 <Gregor> SHOULDA USED C LOL
05:29:56 <itidus20> ahh C ... could it be, that C is the language with the most different compilers ever written
05:30:23 <Patashu> Yep
05:30:38 <Gregor> elliott: By making wander use BUILD instead of ADVANCE, I made a circuit!
05:31:11 <elliott> Gregor: Woooo :P
05:31:20 <elliott> Gregor: Now if only we could say it was POOPING and have the names on our side.......................
05:31:20 <itidus20> thats what people need to be told when listing the virtues of C
05:31:49 <Gregor> But ... that IS one of the virtues of C ...
05:32:13 <Gregor> That list probably goes C, C++, JavaScript, by the way :)
05:32:37 <Gregor> (OK, OK, some of the olde languages may be up there too >_> )
05:32:39 <elliott> JavaScript? Really? :P
05:32:42 <elliott> Such a fanboy.
05:32:54 <Gregor> elliott: Every browser has an implementation!
05:33:39 <Gregor> Anyway, I've pushed my last changes for tonight, I'm going to sleep.
05:33:41 <Patashu> How about languages like fortran/fourth/cobol
05:33:52 <Gregor> <Gregor> (OK, OK, some of the olde languages may be up there too >_> )
05:34:19 <Patashu> magical google adventure time!
05:34:19 <Gregor> I don't think COBOL actually had that many implementations though?
05:34:32 <Gregor> Anyway, zleepitime.
05:34:54 <Patashu> why is fortran faster than C anyway?
05:35:17 <Patashu> 'Significantly, the increasing popularity of FORTRAN spurred competing computer manufacturers to provide FORTRAN compilers for their machines, so that by 1963 over 40 FORTRAN compilers existed.' fortran wins I think
05:35:25 <elliott> Over FORTY??????????????????????????????????????
05:35:26 <elliott> WOOOOOOOOOOW
05:35:30 <itidus20> hmm
05:35:37 <Patashu> by 1963!
05:38:34 <Gregor> Remember, there were barely forty COMPUTERS in 1963 (zzzzzz)
05:38:58 <Patashu> Lex Luthor stole forty fortran compilers
05:39:09 <Gregor> Patashu: And that's awful.
05:39:34 <Gregor> (Or was it "terrible"?)
05:39:47 <Gregor> Durn, it was terrible.
05:39:50 <Patashu> No! You can't quote a meme wrong!
05:39:53 <Patashu> You can't do that man
05:46:31 <elliott> Gregor: Ha ha I might be able to do it without ANY PARSING AT ALL
05:46:33 <elliott> FEEL THE HASKELL
05:46:36 -!- CakeProphet has quit (Ping timeout: 240 seconds).
05:48:19 -!- oerjan has joined.
05:49:33 <oerjan> 14:35:53 <elliott> 06:36:47: <oerjan> quintopia: well assuming you are using Linux, last i used that for a desktop focusing and moving to the top were independent actions
05:49:36 <oerjan> 14:35:59 <elliott> That's not really a common choice nowadays :P
05:49:46 <oerjan> PEOPLE POISONED BY WINDOWS CONVENTIONS, I SAY
05:50:41 <Patashu> there's a program, xmouse, that lets you focus on a window without bringing it to the top in windows
05:51:14 <elliott> That's also called any sloppy-focus WM ever.
05:51:31 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:53:12 <oerjan> well admittedly the wm's i used had a tendency to focus into the window the mouse was pointing to, which did have its own dangers. an actual way to _select_ a window for focus without bringing it to the top might be better. (and it probably exists.)
05:53:56 <elliott> oerjan: That's focus-follows-mouse. Sloppy focus is: Keyboard focus is behind mouse; clicking raises to surface.
05:54:23 <Patashu> wait, is there a difference between the two?
05:54:25 <oerjan> um what's the difference between those two.
05:55:39 <oerjan> and i mean selecting by some action other than simply moving the mouse, which as i said had its own dangers.
05:58:49 <elliott> oerjan: I described the exact difference.
05:59:03 <elliott> Focus-follows-mouse: Keyboard focus is behind mouse; mousing into a window raises to surface.
05:59:07 <elliott> Sloppy focus: Keyboard focus is behind mouse; clicking raises to surface.
05:59:20 <Patashu> ooh
05:59:36 <oerjan> ah. so it has no difference for focus.
05:59:49 <monqy> the way it works for me is clicking brings focus and clicking while holding down the super key floats the window if tiled and raises to the surface (and if you drag while holding the super key you move it around)
06:00:01 <monqy> I think the xmonad default is that focus follows mouse but I dislike that
06:00:36 <monqy> I usually use the keyboard controls to change focus if it's something textual, and click if it's something graphical
06:01:11 <oerjan> sounds good
06:02:46 -!- copumpkin has joined.
06:03:11 <oerjan> <Patashu> why is fortran faster than C anyway?
06:03:30 <oerjan> i've read something about better aliasing rules that are easier to optimize
06:08:56 <Patashu> aaah
06:15:07 <Patashu> http://www.ibiblio.org/pub/languages/fortran/ch1-2.html in particular b)
06:15:10 <Patashu> so you're right
06:17:05 <oerjan> a timeless document. and by that i mean it has no date.
06:17:37 <Patashu> http://www.ibiblio.org/pub/languages/fortran/ch1-2.html 1996-1998
06:17:53 <oerjan> ah
06:21:31 <elliott> Gregor: Guess who has a perfect clone of wonder that also presents the whole update structure as a rich structure with ALMOST NO PARSING OVERHEAD
06:21:33 <elliott> THIS DUUUUUUUUUUUUDE
06:22:03 <elliott> Well... it does store cells in memory as their ASCII character, so OK, it has the parsing overhead of "a really simple case statement on the character" each grid read, but c'mon :P
06:22:09 <oerjan> elliott should write advertisements
06:22:27 <elliott> oerjan: It's exactly 99 lines longer than the C version X-D
06:22:49 <elliott> But the C version uses the headers of the C implementation and DOESN'T do any of that fancy stuff, so it's about ten times lamer.
06:23:05 <oerjan> wait, are we talking about a haskell program _longer_ than a corresponding C program?
06:23:26 <elliott> I could write the equivalent of the C program in as many lines, although it cheats by having a dependency on an implementation header file that I don't
06:23:30 <oerjan> there may have to be some withdrawing of badges here
06:23:39 <elliott> I wrote mine with an eye to generalising to bots that ACTUALLY DO ANY DECISION-MAKING AT ALL:P
06:23:42 <elliott> [asterisk]AT ALL :P
06:23:49 <elliott> Apart from "Did I just bump into a wall? Turn left. Otherwise go forwards."
06:24:03 <oerjan> ah good old Karel the Robot
06:24:15 -!- CakeProphet has joined.
06:24:15 -!- CakeProphet has quit (Changing host).
06:24:15 -!- CakeProphet has joined.
06:24:32 <oerjan> another instance of me reading programming books without access to a computer
06:25:01 <elliott> wonder.hs:25:20:
06:25:01 <elliott> Warning: Defaulting the following constraint(s) to type `Integer'
06:25:01 <elliott> (Integral b0) arising from a use of `^' at wonder.hs:25:20
06:25:01 <elliott> (Num b0) arising from the literal `2' at wonder.hs:25:21
06:25:01 <elliott> In the expression: viewport ^ 2
06:25:02 <elliott> In an equation for `viewSize': viewSize = viewport ^ 2
06:25:07 <elliott> I LITERALLY HAVE "VIEWSIZE :: INT" THE PREVIOUS LINE
06:25:10 <elliott> HOW STUPID CAN YOU BE
06:25:15 <elliott> Oh, it's defaulting the TWO to Integer :P
06:25:42 <NihilistDandy> JERKS
06:25:51 <elliott> NihilistDandy: wat
06:26:00 <NihilistDandy> That
06:26:00 <oerjan> elliott: you must have some humongous warning level :P
06:26:05 <elliott> oerjan: -Wall
06:26:21 <elliott> oerjan: Warning about defaulting is reasonable since Integer is slow :P
06:26:27 <elliott> As is polymorphism
06:26:31 <elliott> viewSize_rZ1 =
06:26:31 <elliott> case $wf1 13 lvl27_r2Tk of ww_s2Kb { __DEFAULT ->
06:26:31 <elliott> I# ww_s2Kb
06:26:31 <elliott> }
06:26:33 <oerjan> istr someone complaining about ^ giving too many warnings before
06:26:34 <elliott> HOW DID YOU NOT CONSTANT FOLD THAT
06:26:36 <NihilistDandy> oerjan: elliott actually set up GHC to give inapplicable warnings. Just to keep him on his toes.
06:26:53 <elliott> viewSize :: Int
06:26:53 <elliott> viewSize = viewport * viewport
06:26:56 <elliott> LET'S SEE IF YOU CAN CONSTANT FOLD THIS
06:27:27 <elliott> There, now viewSize doesn't even exist :P
06:27:34 <elliott> (In Core)
06:28:20 <elliott> oerjan: You'll be pleased to know that I use no less than _two_ unsafe functions in this program.
06:28:33 <elliott> Well, ignoring castPtr/poke/peek I needed to implement Storable for Cell.
06:28:42 <elliott> Wait, make that three.
06:28:44 <elliott> getViewBytes :: Get (Vector Word8)
06:28:44 <elliott> getViewBytes = do
06:28:44 <elliott> bytes <- getBytes viewSize
06:28:44 <elliott> let (ptr, offs, len) = BI.toForeignPtr bytes
06:28:44 <elliott> return $ V.unsafeFromForeignPtr ptr offs len
06:28:45 <elliott> getView :: Get (Vector Cell)
06:28:47 <elliott> getView = V.unsafeCast <$> getViewBytes
06:28:53 <elliott> BI is, of course, Data.ByteString.Internal, an unstable API.
06:29:02 <elliott> Though I somewhat doubt toForeignPtr's interface will change much.
06:29:16 <oerjan> i also recall someone complaining that ghc did not optimize ^2
06:29:22 <elliott> (The cast is safe.)
06:29:24 <oerjan> both of these were years ago
06:29:29 <elliott> oerjan: It might have even been m- oh :P
06:29:34 <elliott> I WASN'T BORN YEARS AGO
06:29:49 <oerjan> not _that_ many years. after i joined this channel, certainly
06:29:59 <Gregor> elliott: Winning condition is unachievable :P
06:30:05 <elliott> Gregor: Good sleeping, eh?
06:30:07 <oerjan> which you did only slightly later.
06:30:10 <elliott> Gregor: Wanna see my Haskell? :P
06:30:16 <Gregor> elliott: Right up until I realized the winning condition was unachievable it was 8-D
06:30:23 <Gregor> elliott: Noooooo!
06:30:25 <elliott> Gregor: Do you even place flags?
06:30:26 <NihilistDandy> elliott: It still pisses me off that I'm older than you. MY LIFE WAS WASTED
06:30:36 <Gregor> elliott: No, but that's not the reason.
06:30:36 <elliott> NihilistDandy: You're probably more accomplished than me.
06:30:39 <elliott> Gregor: X-D
06:30:46 <elliott> Gregor: http://sprunge.us/ZYPI BEHOLD MY WANDER CLONE
06:30:47 <NihilistDandy> elliott: FSOV accomplished :D
06:30:49 <oerjan> also i have a vague idea it was probably on haskell-cafe
06:30:53 <Gregor> elliott: (The implementation is incomplete, but I mean by /spec/ it's unachievable)
06:31:09 <elliott> I'm actually proud of that code, it doesn't really have a single grotty line, even when it's doing something totally unsafe :)
06:31:19 <elliott> Which it only actually does in really one place in the code, but anyway
06:31:45 <elliott> {-# LANGUAGE MultiParamTypeClasses #-}
06:31:45 <elliott> Oh cool, this is actually unneeded
06:32:02 <elliott> Gregor: So why is that?
06:32:05 <monqy> so what does this thing do
06:32:10 -!- zzo38 has joined.
06:32:26 <elliott> monqy: It's a bot for Gregor's neat-o WireWorld-based programming game :P
06:32:31 <elliott> It is a very stupid bot.
06:32:38 <elliott> It is exactly as stupid as the example bot Gregor wrote.
06:32:43 <monqy> ahh
06:32:53 <NihilistDandy> ITT Wireworld :D
06:32:59 <NihilistDandy> *W
06:33:07 <Sgeo_> Ooh, where's this game?
06:33:08 * Sgeo_ wants
06:33:13 <elliott> monqy: Here's his: http://codu.org/projects/rezzo/hg/index.cgi/file/c4149bcda0c3/wander.c
06:33:26 <oerjan> i wonder if anyone has made a game based on the day and night CA
06:33:28 <elliott> Mine is just a port of that thing's logic to a much more generic, efficient, nice, pretty Haskell framework for this :P
06:33:52 <elliott> monqy: Optimised because you have exactly 0.06 seconds to decide what to do each tick.
06:33:59 <elliott> (Well, FSVO exactly :P)
06:34:05 <oerjan> one color per player, each turn it evolves normally and each player gets to manually change the color of one pixel
06:34:05 <NihilistDandy> elliott: You could have just said "Haskell framework" :D
06:34:16 <oerjan> goal is to wipe the other player's color off the board
06:34:16 <elliott> NihilistDandy: Now now, I'm not THAT much of a fanboy :P
06:34:20 <NihilistDandy> lol
06:34:54 <NihilistDandy> I'm midproposal for the UVM CS department, and the year hasn't even started
06:34:59 <elliott> What I do need to add is an additional thread... I basically need to run a "decide what to do thread" that decides what to do each turn and gets killed if it takes too long.
06:35:10 <elliott> That, in turn, has to draw from a longer-term "plan based on world state as merged in from updates"...
06:35:17 <elliott> But wander doesn't need any of that :P
06:35:22 <elliott> <elliott> Gregor: So why is that?
06:35:29 <Gregor> <elliott> Gregor: So why is that? // electrons spread flags, and bases act like permanent flags. To win you have to get an enemy flag next to your base. But that means you have to put an electron between the two, which, having two incompatible options, will simply dissipate.
06:35:38 <elliott> Quick typing
06:35:42 <elliott> (More likely very slow typing)
06:35:46 <oerjan> ooh D&N has a wp page
06:35:56 <NihilistDandy> oerjan: link?
06:36:00 <elliott> oerjan: Darnes & Noble? My first thought.
06:36:05 <elliott> (Yeah, yeah, day and night :P)
06:36:17 <NihilistDandy> elliott: Darnes and Noble is how I feel everytime I leave one of those stores
06:36:21 <elliott> wat
06:36:38 <NihilistDandy> Depressing bookstores
06:36:51 <elliott> I'm going to sit here assuming Gregor thinks my Haskell is amazing.
06:36:54 <NihilistDandy> Also, found the link, oerjan, so don't bother, if you were going to
06:37:23 <elliott> Do it for me oerjan
06:37:26 <oerjan> haskell is always amazing
06:37:35 <oerjan> http://en.wikipedia.org/wiki/Day_%26_Night
06:37:54 <elliott> oerjan: I can't spot a pun... IS THIS A FANBOY STATEMENT FROM OERJAN???
06:37:56 <NihilistDandy> I want to invent an anti-gun
06:38:07 <oerjan> yep, i love day and night
06:38:21 <NihilistDandy> It's pretty awesome
06:38:22 <elliott> I meant re haskell
06:38:25 <elliott> Day & Night is prettier than GoL, hough
06:38:25 <elliott> though
06:38:31 <elliott> I wonder if it is TC?
06:38:34 <oerjan> oh that. well i suppose.
06:39:07 <oerjan> it's certainly complicated enough to be TC
06:39:11 <elliott> indeed
06:39:15 <elliott> but so are a lot of things :)
06:39:23 <elliott> i guess those things are usually tc though :/
06:39:34 <NihilistDandy> ARE HUMANS TURING COMPLETE. DISCUSS
06:39:39 <elliott> http://upload.wikimedia.org/wikipedia/en/8/8f/Ladder_burst.gif this is pretty
06:39:43 <NihilistDandy> DISPLAY YOUR FLESHY BRAINS
06:39:49 <elliott> really pretty
06:39:56 <oerjan> finite memory, says some people
06:41:04 <oerjan> elliott: what CA is that
06:41:06 <elliott> oerjan: life without death
06:41:10 <oerjan> aha
06:42:07 <elliott> oerjan: did you admire my beautiful haskell :{
06:42:12 <oerjan> er no
06:43:22 <elliott> SUCH A TERBL PERSON
06:43:36 <elliott> or do you mean it was not beautiful
06:44:27 <monqy> some of the optimization sads me a bit
06:44:28 <NihilistDandy> elliott: TOO MANY POINTS
06:44:35 <oerjan> iz ok. btw you don't need to repeat an identical pattern for a new guard.
06:44:36 <NihilistDandy> MOAR @PL
06:45:03 <Patashu> if you want to play with unusual cellular automata you can use MCell
06:45:07 <elliott> Gregor: So is there an obvious fix to the spec, or?
06:45:11 <elliott> oerjan: eh?
06:45:11 <oerjan> i suppose it doesn't matter when it's a single character
06:45:13 <monqy> oerjan: did nested guards finally happen
06:45:21 <elliott> oerjan: oh hm, like I can just start it with |?
06:45:27 <oerjan> yeah
06:45:43 <monqy> oh
06:45:46 <oerjan> monqy: no, has always been that way
06:45:50 <elliott> oerjan: that feels really weird... local bindings propagating to an AST node not included within that binding structure
06:45:53 <monqy> I was thinking of something else
06:46:01 <elliott> I think I'll keep the "c" because that makes me feel happier than that thing which is disturbing?
06:46:01 <elliott> hmm
06:46:07 <CakeProphet> This is the busiest IRC channel I frequent.
06:46:07 <elliott> well I guess it kind of is one pattern with a lot of guards
06:46:09 <elliott> but
06:46:09 <elliott> yeah
06:46:13 <elliott> CakeProphet: not without me >:D
06:46:20 <NihilistDandy> CakeProphet: Get all up in #haskell
06:46:23 <monqy> I was thinking pattern in the sense of not haskell paterns but more like patterns occurring throughout the code
06:46:28 <NihilistDandy> But avoid #haskell-in-depth
06:46:30 <NihilistDandy> No one talks
06:46:36 <monqy> and then I think I misread something
06:47:00 <CakeProphet> #haskell is okay
06:47:06 <CakeProphet> but, no real reason to stay there.
06:47:09 <pikhq_> "The solution, obviously, was to hurry up and become God." This line makes me far too happy.
06:47:10 <oerjan> elliott: but the guards _are_ in the scope of the same pattern
06:47:51 <elliott> oerjan: yeah i know
06:47:52 <elliott> i just
06:47:55 <elliott> i mean
06:47:59 <elliott> the indentation would push it that far anyway :D
06:48:08 <elliott> <NihilistDandy> CakeProphet: Get all up in #haskell
06:48:13 <oerjan> yeah
06:48:16 <elliott> NihilistDandy: it's much less homely/useful now that it's so busy :(
06:48:30 <NihilistDandy> elliott: Well, sure. But I still have fun
06:48:34 <CakeProphet> yes #haskell wasn't very busy when I was there.
06:48:41 <NihilistDandy> edwardk is enough to make me happy nearly daily
06:49:14 <NihilistDandy> I wouldn't even know about Haskell were it not for Lisp
06:49:21 <NihilistDandy> Specifically, Land of LIsp
06:49:22 <NihilistDandy> *Lisp
06:49:49 <oerjan> monqy: i do recall there was some kind of proposal for nesting guards and/or patterns
06:49:51 <CakeProphet> I like how I'm getting paid to move bytes around.
06:50:04 <CakeProphet> strategically.
06:50:07 <elliott> CakeProphet: everyone is just paid to move atoms around.
06:50:08 <monqy> I'd also like multiple-clause lambda
06:50:09 <elliott> strategically.
06:50:11 <oerjan> the idea was that you should be able to nest without committing to the branch you nested into
06:50:30 <elliott> NihilistDandy: edwardk is nice... you only knew haskell since land of lisp?
06:50:30 <CakeProphet> elliott: good point
06:50:41 <elliott> i really didn't like that guy's short thing about lisp and haskell
06:50:48 <elliott> i mean you can say it's in jest but it still betrays your biases
06:50:54 <NihilistDandy> elliott: That was the first place I heard of it. Then I dropped Lisp and Scheme like syphilitic whores
06:51:04 <Sgeo_> http://www.fanfiction.net/s/5782108/11/Harry_Potter_and_the_Methods_of_Rationality
06:51:08 <Sgeo_> Omakes
06:51:08 <elliott> Rude, I like Scheme.
06:51:12 <NihilistDandy> lol
06:51:22 <NihilistDandy> So do I (mostly Racket)
06:51:29 <NihilistDandy> But I'm still almost all Haskell, now
06:51:31 <elliott> Sgeo_ has finally got to the point where it's impossible to tell if he's confused or just stupid.
06:51:40 <Sgeo_> elliott, what?
06:51:46 <elliott> <Sgeo_> http://www.fanfiction.net/s/5782108/11/Harry_Potter_and_the_Methods_of_Rationality
06:51:46 <elliott> <Sgeo_> Omakes
06:51:53 <CakeProphet> I find it prudent to keep track of less beautiful languages for the purposes of making money.
06:51:56 <CakeProphet> it's not as bad as it sounds.
06:52:03 <monqy> http://www.fanfiction.net/u/1730364/Hans_von_Hozel best fanfic author imo
06:52:11 <NihilistDandy> elliott: Scheme was my first exposure to FP, and I do love it. But Haskell's just nicer on a personal level
06:52:18 <elliott> CakeProphet: Knowing the more beautiful languages is a much scarcer skill.
06:52:22 <monqy> hans von hozel's fanfics are truly amazing
06:52:38 <elliott> CakeProphet: And not one generally called upon to do tedious busywork like you're enjoying.
06:52:39 <elliott> Just sayin'.
06:52:40 <Sgeo_> elliott, ....what?
06:52:48 <elliott> Sgeo_: you continue to push the boundaries.
06:53:10 <Sgeo_> I'm confused as to what, exactly, is wrong with what I said.
06:53:24 <NihilistDandy> CakeProphet: I know C, a little C++, and some x86. I can't even touch Java
06:53:27 <NihilistDandy> It hurts me
06:53:32 <itidus20> J Rowling's How to Build an Empire Writing a Few Magic Novels
06:54:02 <CakeProphet> NihilistDandy: I've been working in C# for the past fews days, but now I'm suddenly in Python.
06:54:04 <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
06:54:06 <elliott> monqy: how amazing are these fan fictions i must know
06:54:07 <CakeProphet> a more familiar setting.
06:54:13 <CakeProphet> NihilistDandy: ....lol
06:54:17 <NihilistDandy> *implementation
06:54:21 <elliott> `addquote <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
06:54:23 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
06:54:26 <elliott> 56. We are the Pirates reviews
06:54:26 <elliott> Pirates make their sail in to LazyTown!
06:54:26 <elliott> Lazytown - Rated: K - English - Crime/Suspense - Chapters: 1 - Words: 199 - Reviews: 8 - Published: 5-17-09 - Stephanie & Sportacus - Complete
06:54:26 <elliott> 57. Eurovision Song Contest 2009 » reviews
06:54:26 <elliott> And of course, that the ending can only make its finish when the contest actually happens.
06:54:28 <monqy> elliott: if i recall correctly, so amazing
06:54:28 <elliott> TV X-overs - Rated: K - English - Drama/Suspense - Chapters: 11 - Words: 1,673 - Reviews: 9 - Updated: 5-17-09 - Published: 5-8-09
06:54:28 <NihilistDandy> Aww, shit
06:54:31 <elliott> monqy: i cant decide which to read
06:54:31 -!- Patashu has quit (Ping timeout: 246 seconds).
06:54:36 <NihilistDandy> elliott: Can you please fix my spelling? :D
06:54:45 <CakeProphet> NihilistDandy: elliott has this thing about Perl, you see...
06:54:46 <elliott> NihilistDandy: Sorry, but I cannot misrepresent lines.
06:54:55 <elliott> There are plenty of typos in the database; you will just have to suffer in unison.
06:54:56 <NihilistDandy> I asterisked it :P
06:55:06 <elliott> NihilistDandy: I AM THE ARCHIVIST. YOU SHALL NOT DISTORT THE RECORD.
06:55:11 <elliott> That R in Record is capitalised.
06:55:19 <NihilistDandy> WE HAVE ALWAYS BEEN AT WAR WITH EURASIA
06:55:33 <elliott> http://www.fanfiction.net/s/5067667/1/We_are_the_Pirates
06:55:34 <elliott> wow
06:55:34 <NihilistDandy> THE rECORD
06:55:38 <elliott> "Maybe we should have not made our stealings their detection!" shout Captain Pirate, as the nuke to collide LazyTown and a boom.
06:55:46 <NihilistDandy> lol
06:55:59 <pikhq_> VVE HAVE ALVVAYS BEEN AT VVAR VVITH EVRASIA.
06:56:02 <elliott> The people were all stuck on boats because the Snails owned the world now. --http://www.fanfiction.net/s/5048176/1/Maple_Story
06:56:09 <elliott> monqy: this is the bes tfixtion
06:56:11 <elliott> fiction
06:56:16 <elliott> 80. Danube to the Stars reviews
06:56:16 <elliott> The Englands are tired at being confuse with America!
06:56:16 <elliott> Allo Allo! - Rated: K - English - Sci-Fi - Chapters: 1 - Words: 284 - Reviews: 7 - Published: 5-7-09 - Complete
06:56:19 <NihilistDandy> CakeProphet: What is elliott's thing about Perl, anyway/
06:56:20 <NihilistDandy> *?
06:56:23 <elliott> allo allo fanfiction
06:56:45 <pikhq_> elliott: http://www.fanfiction.net/s/5782108/1/Harry_Potter_and_the_Methods_of_Rationality I've actually been finding this utterly amusing.
06:56:54 <pikhq_> Perhaps a bit... Too much.
06:57:09 <NihilistDandy> pikhq_: Was this the channel where I first saw that mentioned, or was it #jesus?
06:57:14 <pikhq_> Probably here.
06:57:26 <pikhq_> I find it a bit too easy to excuse an 11 year old genius polymath.
06:57:30 <pikhq_> As a protagonist.
06:57:34 <elliott> The Methods of Rationality has potential in concept but it's really terrible.
06:57:53 <pikhq_> Well, yes, there's many obvious flaws in the writing.
06:57:58 <CakeProphet> NihilistDandy: his enjoyment of Perl bashing, I suppose.
06:57:59 <pikhq_> The concept is just amusing the hell out of me.
06:58:06 <NihilistDandy> My Immortal is the only fanfiction that matters, ever
06:58:13 <NihilistDandy> Beyblade Yaoi be damned!
06:58:14 <monqy> my immortal is good yes
06:58:26 <elliott> If anyone would like a summary: Harry Potter is a brat, but Eliezer Yudkowsky -- sorry, I mean Eliezer Potter -- is always right. This is because he uses Logic while everyone uses Stupid. Except when he's wrong!!! But even then, he's right.
06:58:43 <monqy> elliott: that sounds awful
06:58:45 <pikhq_> In case you hadn't noticed, I am willing to excuse a hell of a lot when the ideas entertain me.
06:58:47 <elliott> pikhq_: But if you have a thing for self-insert wish fulfilment fantasy fan fiction...
06:58:50 <elliott> Be my guest.
06:59:01 <NihilistDandy> [02:59:58] <elliott> pikhq_: But if you have a thing for self-insert wish fulfilment fantasy fan fiction...
06:59:14 <NihilistDandy> That's about five words too long
06:59:17 <pikhq_> NihilistDandy: Like I said, many obvious flaws.
06:59:20 <CakeProphet> NihilistDandy: hey our timezones match imagine that.
06:59:27 <pikhq_> elliott, rather.
06:59:33 <monqy> im going back to hans von hozel ok
06:59:38 <NihilistDandy> CakeProphet: Yeah, the whole GMT -5:00. Nobody lives there. :P
06:59:48 <CakeProphet> nope.
06:59:55 <NihilistDandy> I'm actually a ghost.
07:00:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
07:00:09 <elliott> pikhq_: The problem is that the purpose of the story is basically to recruit people into the Great Rationalist Yudkowsky Worshipping Circlejerk, and Harry is the vector for this.
07:00:15 <elliott> pikhq_: But this means that Harry can never actually fail, ever.
07:00:16 <CakeProphet> I am an elaborate timepiece.
07:00:28 <pikhq_> elliott: Well, yeah. Yudkowsky does enjoy his circlejerking.
07:00:30 <NihilistDandy> TockProphet
07:00:32 <elliott> He's the embodiment of rationality, and so it is LITERALLY IMPOSSIBLE for him to ever fail, because that would not match the worldview the thing is trying to portray.
07:00:44 <pikhq_> elliott: That doesn't mean I can't be entertained by his thoughts from time to time.
07:00:45 <elliott> So there can never actually be any real conflict, so it's pretty much DOA as fiction.
07:01:01 <monqy> i'd be too dead to enjoy any of it
07:01:01 <NihilistDandy> Logic Sue
07:01:22 <pikhq_> elliott: You needn't worry, I'm not about to go out joining the Yudkowsky circlejerk.
07:01:43 <NihilistDandy> But, but
07:01:46 <NihilistDandy> my erection
07:01:51 <elliott> Sure. I gave up on MOR basically when it became clear that Eliezer wasn't going to stop pushing his terrible view of social interaction.
07:01:53 <NihilistDandy> It's so…
07:01:54 <NihilistDandy> rational
07:01:55 <pikhq_> elliott: For a rationalist, he seems exceptionally egotistic.
07:02:18 <elliott> ("The only thing anyone cares about ever is status; therefore everyone should master portraying status and you will WIN. This applies UNIVERSALLY.")
07:02:34 <pikhq_> In fact, I'd say his ego is the largest I can think of.
07:02:36 <elliott> I'm pretty sure this is also the mentality that created the hilarious "pickup artist" bullshit...
07:02:42 <CakeProphet> dude check out my cool stuff.
07:02:51 <CakeProphet> I am totally not a douchebag.
07:02:58 <pikhq_> Which, TBH, is a pretty major flaw in someone who claims to engage in rational thought often. :P
07:03:43 <pikhq_> But, anyways, I'm enjoying his wank-in-text-form, perhaps a bit too much.
07:03:56 <NihilistDandy> elliott: I knew kids like that in school
07:03:59 <NihilistDandy> It was painful
07:04:03 <CakeProphet> I can't say that many of my thoughts correspond to ratios very much.
07:04:13 <pikhq_> CakeProphet: Smartass.
07:04:29 <NihilistDandy> π/1
07:04:39 <NihilistDandy> Bam, π is a rational number
07:04:40 <pikhq_> NihilistDandy: Smartass².
07:04:40 <elliott> NihilistDandy: It's pretty much the view most commonly picked up by being an cynical nerd who's bad at social interaction.
07:04:41 <NihilistDandy> FUCK YOU MATH
07:04:58 <NihilistDandy> elliott: Exactly. To a fucking t
07:05:00 <NihilistDandy> *tee
07:05:00 <elliott> Cynicism is pretty much the source of everything unbearable except the things it isn't the source of.
07:05:05 <elliott> Helpful statements from elliott.
07:05:21 <pikhq_> elliott: Hmm. I'm a cynical nerd who's bad at social interaction, and I just figure that there's something I'm missing here.
07:05:27 <NihilistDandy> elliott: Smart nerds just pick up drinking
07:05:38 <NihilistDandy> Also, pikhq_
07:05:47 <elliott> pikhq_: Try not being a cynic.
07:05:57 <pikhq_> I do, but it ain't easy.
07:06:05 <pikhq_> Many people seem to try hard to justify cynicism.
07:06:24 <elliott> "Young people who pretend to be wise to the ways of the world are mostly just cynics. Cynicism masquerades as wisdom, but it is the farthest thing from it. Because cynics don’t learn anything. Because cynicism is a self-imposed blindness, a rejection of the world because we are afraid it will hurt us or disappoint us." --STEPHEN COLBERT BEYOTCHES
07:06:32 <Gregor> elliott: I can't think of how to fix my flags :P
07:06:32 <elliott> (I think this is how you win arguments on the Internet; quoting Stephen Colbert.)
07:06:41 <elliott> Gregor: What's the problem again? I forgot completely :P
07:06:51 <Gregor> <Gregor> <elliott> Gregor: So why is that? // electrons spread flags, and bases act like permanent flags. To win you have to get an enemy flag next to your base. But that means you have to put an electron between the two, which, having two incompatible options, will simply dissipate.
07:07:03 <CakeProphet> elliott: yes I've read from arguments on the internet that this is a good approach
07:07:13 <elliott> Define "electrons spread flags"? If an electron has a flag behind it, it copies a flag as it move?
07:07:14 <elliott> moves?
07:07:27 <Gregor> elliott: I explained these rules :P
07:07:33 <pikhq_> Well. Actually, not sure that "cynicism" is quite the right term for what's a much more simple "fuck most everything, everything is wrong and could be better".
07:07:36 <Gregor> elliott: A flag moves if there's an electron next to it.
07:07:41 <elliott> Gregor: OK, rather than making it dissipate into space, just have it dissipate INTO A FLAG :P
07:07:52 <pikhq_> In certain contexts that could even be interpreted as optimisim, even.
07:07:54 <elliott> pikhq_: The problem is when you apply it to people.
07:07:54 <Gregor> elliott: So, to get a flag from point A to point B, you have to continuously send a sequence of electrons from B to A.
07:08:02 <pikhq_> And that was one two many "even"s.
07:08:11 <elliott> Like, sure, everything sucks, but "people suck" doesn't explain that and it isn't helpful in any way.
07:08:11 <NihilistDandy> CakeProphet: s/arguments on the internet/any reddit thread ever/
07:08:15 <Gregor> elliott: That doesn't make any sense, since the rules for the base and flag conflict.
07:08:15 <pikhq_> elliott: Hrm. I... Generally don't, actually.
07:08:39 <NihilistDandy> We should all be nihilists
07:08:42 <elliott> Gregor: Hmm...
07:08:44 <NihilistDandy> Because I'm great
07:08:51 <elliott> Gregor: Are you sure? :P
07:08:54 <Gregor> NihilistDandy: Also dandies?
07:08:56 <NihilistDandy> Assuming I exist, which is a big if
07:08:58 <pikhq_> Very few people actually intend to do things that are wrong, evil, stupid, etc. Quite a few people act on misinformation, though.
07:09:03 <NihilistDandy> Gregor: Especially dandies
07:09:07 <Gregor> elliott: Bases turn into flags ... that's how you get flags in the first place.
07:09:18 <elliott> Oh it is? Okay :P
07:09:22 <NihilistDandy> pikhq_: Being actively evil is kinda fun, though
07:09:23 <elliott> I was just thinking of bases as FLAG-KILLERS.
07:09:23 <Gregor> elliott: That is, they behave like a flag, except they don't disappear when there's an electron next to them.
07:09:30 <pikhq_> NihilistDandy: Meh.
07:09:41 <elliott> Gregor: Hmm... flags are basically spreading currents, aren't they?
07:09:45 <pikhq_> NihilistDandy: Fundamentally uninteresting, IME.
07:09:48 <elliott> You could just make them literally that and drop the electrons.
07:09:54 <Gregor> ... no.
07:09:55 <elliott> So you could just wire up opponent's base to your base.
07:09:57 <elliott> OK :P
07:10:13 <Gregor> A) Wiring an opponents base to your base = flags spreading in both directions, lol
07:10:14 <pikhq_> I mean, really, it'd be so easy and *boring* to be evil.
07:10:20 <NihilistDandy> pikhq_: You just don't know any really evil people. Cynical douche != villain
07:10:21 <Gregor> B) Remember the whole conversation about flags moving under lightspeed?
07:10:38 <elliott> Yeah >_>
07:10:50 <elliott> I'm not sure what to do, but the basic model seems like it should be right...
07:11:13 <CakeProphet> the flag would just be a special, slow-moving electron
07:11:21 <CakeProphet> I think.
07:11:32 <CakeProphet> that is generated from...uh, the flag.
07:11:33 <pikhq_> NihilistDandy: Start assassinating a single, random individual with a sniper rifle, move on after each such instance. Start leaving notes in conspicuous places detailing this, threatening to not stop unless my goals are met. Simple, easy, evil, and fucking *boring as all hell*.
07:11:41 <Gregor> The rules as stands: Flag with no electrons -> flag. Electron next to flag -> flag. Electron next to base -> flag. Electron otherwise or next to conflicting flags/bases -> tail. Flag next to opponent's base -> conductor + lose.
07:11:59 <NihilistDandy> pikhq_: Murder is boring evil. Terrorism is a dreadful bore.
07:12:10 <NihilistDandy> Real evil is much more subtle.
07:12:19 <NihilistDandy> TV evil is boring.
07:12:32 <pikhq_> Real evil is also a problem space I find even less interesting.
07:12:32 <Gregor> ANOTHER THUNDERSTORM, INDIANA?
07:12:33 <Gregor> WTF
07:12:39 <elliott> Gregor: Hmm...
07:12:40 <Gregor> That's three today.
07:12:52 <elliott> Gregor: It FEELS like it should be a really simple fix :P
07:12:57 <elliott> HELPFUL
07:13:03 <CakeProphet> Gregor: I think it would make more sense if flag simply generated a special flag electron when connected to a condcutor.
07:13:17 <CakeProphet> ....please fix my horrible typos.
07:13:20 <CakeProphet> kthx
07:13:22 <Gregor> CakeProphet: But that means that when you connect your base to the opponent's, you now have flags moving in both directions.
07:13:25 <Gregor> Which is much worse.
07:13:33 <elliott> Gregor: Then it goes onto the FLAG FIGHT STATE
07:13:34 <elliott> STAGE
07:13:39 <elliott> [GAME MUSIC]
07:13:39 <pikhq_> Clearly, I am not cut out for this "evil mastermind" business, since I can't even consider it interesting enough to think about how one would *hypothetically* go about it for more than a few seconds. :P
07:14:04 <CakeProphet> Gregor: not if you wait to connect to your base.
07:14:07 <CakeProphet> then you win.
07:14:26 <Gregor> CakeProphet: No, then your base poops a flag.
07:14:36 <CakeProphet> oh well you already won by then
07:15:00 <Gregor> a_.B -> a.B -> aAB
07:15:04 <Gregor> No, you haven't won.
07:15:11 <elliott> What's the _
07:15:14 <Gregor> Space
07:15:14 <elliott> Space?
07:15:41 <CakeProphet> yeah that notation doesn't mean anything to me.
07:15:47 <elliott> Wait, flags can... change space into wire?
07:15:49 <elliott> Gregor?
07:15:57 <Gregor> CakeProphet: a is a base, A and B are flags, . is a conductor, _ is space.
07:16:12 <Gregor> elliott: That was being done by an agent. I'm just showing what's wrong with CakeProphet's model.
07:16:21 <oerjan> `addquote <Gregor> ANOTHER THUNDERSTORM, INDIANA? <Gregor> That's three today. <elliott> Gregor: It FEELS like it should be a really simple fix :P
07:16:25 <HackEgo> 612) <Gregor> ANOTHER THUNDERSTORM, INDIANA? <Gregor> That's three today. <elliott> Gregor: It FEELS like it should be a really simple fix :P
07:17:19 <CakeProphet> Gregor: so your saying that your flag electron prevents their flag electron from ever reaching your base?
07:17:39 <CakeProphet> couldn't you just like, make the rules work so that it doesn't do that? :P
07:18:06 <Gregor> CakeProphet: Even if you did, it would take such ridiculous precision timing to do it right that I find it grotty at best.
07:18:17 <Gregor> (Which is the same answer to the same fix for the current system)
07:19:52 <elliott> Gregor: Is this going to require a major rework of some sort?
07:20:30 <elliott> Gregor: Here's a random idea: Destroying a base creates a flag-destroying virus that spreads. You have to destroy all flag cells of your opponent to win.
07:20:38 <elliott> So you have to take out the base and then get any on disconnected wires.
07:20:39 <elliott> I dunno.
07:21:46 <elliott> Gregor is now ignoring me and coming up with something better :P
07:22:25 <CakeProphet> Gregor: I think it would just make sense if opposite flag electrons didn't interfere with one another, and then it just becomes a matter of who got their base connected last.
07:29:13 <Gregor> elliott: It probably won't require a major rework. It's probably too easy to just glut the substrate with flags and then block off your own base in that system ... maybe.
07:29:21 <Gregor> CakeProphet: This is a CA. That is not how CAs work :P
07:29:46 <CakeProphet> I don't see why not...
07:30:06 <Gregor> ...A.B... <-- lol what do you do here
07:30:29 <monqy> ....C.... presumably
07:30:33 <elliott> Gregor: Oh yeah, I'd rather you just quickly patch up the current system, I was just giving an option if that's not possible :P
07:31:16 <Gregor> I'm thinking maybe "base" and "flag geyser" need to be distinct.
07:31:47 <elliott> Bases spit out geysers :P
07:32:03 <Gregor> Bases spit out nothing, they're just for swallowing opponent flags :P
07:33:21 <CakeProphet> Gregor: wouldn't it be easy if they just existed in the same place for a frame and then continued on?
07:33:34 <CakeProphet> I'm sure you could make it sound more formal.
07:34:00 <elliott> CAs don't work like that.
07:34:14 <CakeProphet> you couldn't make one that works like that?
07:34:20 <CakeProphet> I think you could.
07:34:22 <elliott> Not without additional junk states.
07:34:27 <CakeProphet> so be it.
07:34:39 <elliott> How about that's terrible.
07:34:48 <elliott> And would cause a HUGE explosion of junk states for clients to deal with.
07:35:03 <Gregor> CakeProphet: Also note that electrons are worthless in that system.
07:35:04 <CakeProphet> I can think of two junk states.
07:35:25 <CakeProphet> Gregor: ah, good point.
07:35:28 <elliott> For each A/B
07:35:34 <Gregor> CakeProphet: Every cell has 2^players states to accommodate every possible flag combination.
07:35:36 <elliott> There's nine warriors
07:35:50 <elliott> Gregor: Not EVERY cell :P
07:36:07 <elliott> Gregor: BTW, you're kind of fucked wrt more players... well, I guess you could use the few characters after 9
07:36:18 <elliott> Oh well, breaking protocol changes rock
07:36:21 <Gregor> elliott: I don't care about supporting more than *10.
07:36:30 <CakeProphet> make up some new formalism. throw some operators in, everything will be fine. >_>
07:36:38 <elliott> Gregor: I can imagine a really packed grid being fun...
07:36:48 <Gregor> COME ON PEOPLE
07:36:55 <Gregor> SOLVE OUR WIN-CONDITION PROBLEM
07:37:10 <elliott> Gregor: Base and flag geyser
07:37:12 <elliott> Money plox
07:37:19 <Gregor> elliott: That was my solution :P
07:37:59 <Gregor> Also I just noticed that you can protect your base by glutting it with your own flags X-D
07:38:00 <CakeProphet> which one does the agent start at?
07:38:09 <elliott> Gregor: Flags can be destroyed
07:38:16 <elliott> Gregor: What if your flags... were the bases.
07:38:18 <Gregor> CakeProphet: The agent in any situation starts in otherwise-empty space around them, not on either.
07:38:41 <CakeProphet> do they get to know where they are?
07:38:41 <elliott> Gregor: Note that you're going to have at least one ambiguous case because DRAWS ARE THINGS THAT EXIST
07:38:41 <Gregor> elliott: What if you destroy every flag?
07:38:47 <elliott> Gregor: Then you get more from the flag geyser
07:39:04 <Gregor> CakeProphet: Of course you get to know where your own base and flaggey are...
07:39:22 <Gregor> elliott: OHHHHHH, I see what you're saying.
07:39:23 <CakeProphet> lolflaggey
07:39:33 <Gregor> elliott: But now you're saying that touching two flags = win ... but win for who?
07:39:38 <elliott> Gregor: <elliott> Gregor: Note that you're going to have at least one ambiguous case because DRAWS ARE THINGS THAT EXIST
07:39:41 <elliott> Hmm
07:39:43 <elliott> I see what you mean :P
07:39:49 <Gregor> Draws are the only circumstance here :P
07:39:56 <elliott> Gregor: OK, electron hitting a flag turns it into a DEATH FLAG.
07:40:01 <elliott> DEATH FLAG and flag = win for flag.
07:40:02 <elliott> Q.E.D.
07:40:31 <CakeProphet> that could make for some interesting strategies.
07:40:51 <elliott> Gregor: ...so anyway, unrelated thing but something I keep messing up mentally: You remembered to include the row/column the agent is on when sending the view, right?
07:41:23 <elliott> Otherwise you... can't see things next to you. Which I guess is realistic in a sense, but at the same time, it's elegant to start next to your base and flag or whatever, rather than directly in front of them so you can see them :P
07:41:42 <CakeProphet> I like the flag/death-flag rules.
07:41:47 <Gregor> elliott: Yes, it's the bottommost row.
07:42:22 <CakeProphet> as it would mean that the strategic placement of electrons is important
07:42:32 <CakeProphet> whereas before they were irrelevant.
07:42:44 <elliott> Gregor: Oh dear, CakeProphet likes my joke... is it any good? :P
07:42:51 <Gregor> elliott: No :P
07:43:12 <elliott> Gregor: :(
07:43:21 <CakeProphet> why not?
07:43:24 <Gregor> It's just another "glut everything to win"
07:43:34 <CakeProphet> I have no idea what the word glut means.
07:43:37 <Gregor> Protect your flag and barf electrons everywhere.
07:43:44 <Gregor> `define glut
07:43:46 <HackEgo> ​/hackenv/bin/define: line 10: lynx: command not found
07:43:51 <Gregor> HackEgo: You're not helpful :P
07:44:07 <Gregor> Verb: Supply or fill to excess: "the factories for recycling paper are glutted".
07:44:07 <elliott> Gregor: Nonono, because you have to touch the special death flag.
07:44:10 <elliott> With your flag.
07:44:18 <elliott> And death flags turn into flags as soon as they move.
07:44:26 <CakeProphet> yeah so the idea is that you have to avoid electrons.
07:44:31 <Gregor> elliott: Now that part you didn't mention.
07:44:33 -!- zzo38 has quit (Remote host closed the connection).
07:44:38 <CakeProphet> while making sure your oponents flag gets electrified.
07:44:42 <Gregor> So how do flags move?
07:44:48 <Gregor> (In this setting)
07:45:32 <CakeProphet> same as before I think?
07:45:38 <elliott> Gregor: Same way as usual.
07:45:46 <Gregor> Usual is that electrons move them.
07:45:52 <Gregor> So that means they're all ooooh deathflags.
07:45:54 <elliott> Oh, right
07:45:59 <elliott> Gregor: They just spread along wire naturally, I guess :)
07:46:04 <CakeProphet> not if they just move like electrons but aren't electrons.
07:46:08 <CakeProphet> right.
07:46:21 <elliott> Gregor: OR, electrons move them, but if an electron would push it OFF A WIRE, it becomes a deathflag.
07:46:26 <Gregor> elliott: Then you could never catch them with an electron AND get your flag to them, lightspeed restriction.
07:46:35 <Gregor> elliott: Electrons pull, they don't push.
07:46:54 <elliott> Yeah, but they could pull them onto non-wire :P
07:47:11 <Gregor> How could they do that? They're electrons, they're on a wire by definition.
07:47:51 <CakeProphet> I like the idea that the flag is a death flag permanently (well, until it dies...)
07:47:52 <elliott> True >_>
07:48:01 <elliott> Gregor: Well, OK, to despecify slightly:
07:48:19 <elliott> Gregor: Flags get turned into deathflags [somehow]. Deathflags turn into flags when they move. Flags move as before, by electrons. Flag touching deathflag = win for flag.
07:48:27 <elliott> All we need now is somehow :P
07:48:27 <itidus20> have you guys played super bomberman games?
07:49:07 <CakeProphet> what's wrong with a flag becoming a death flag permanently when it touches an electron?
07:49:24 <Gregor> elliott: Errr ... observation ... that doesn't solve the VERY FIRST PROBLEM, it just makes both sides motive.
07:49:48 <elliott> Gregor: Eh?
07:50:14 <Gregor> elliott: .F*D. <-- lol that * should turn into both flags
07:50:28 <Gregor> CakeProphet: How do those flags move?
07:50:35 <CakeProphet> same as always.
07:50:44 <CakeProphet> er, I mean to say
07:50:44 <Gregor> FLAGS - MOVE - BY - ELECTRONS >_<
07:50:45 <elliott> Gregor: So they fizzle like electrons do when giving up
07:50:55 <CakeProphet> flags are just electron-like here.
07:51:07 <Gregor> elliott: Then you can't win.
07:51:30 <elliott> Gregor: Nope, because there's an electron below that asterisk
07:51:45 <CakeProphet> maybe death flag + your flag = your WIN flag
07:51:50 <Gregor> elliott: That asterisk is an electron ...
07:51:51 <CakeProphet> which you must then bring back to your base.
07:52:19 <Gregor> CakeProphet: Frankly I'm not a fan of any system where flags move like electrons ...
07:52:34 <Gregor> They're too fast, you can't meaningfully react to their presence if they're lightspeed.
07:52:35 <CakeProphet> -shrug- okay.
07:52:47 <CakeProphet> they could always be slower.
07:52:53 <CakeProphet> YOU get to make the rules, you know.
07:53:01 <Gregor> I also don't like state hell :P
07:53:06 <elliott> <Gregor> elliott: That asterisk is an electron ...
07:53:13 <elliott> Hmmm
07:53:27 <elliott> Gregor: OK, death flags turn into slightly-less-death-flags after a tick, and then turn into normal flags after that :D
07:53:34 <Gregor> X_X
07:53:40 <elliott> I feel an infinite regress.
07:53:47 <elliott> Gregor: OK, so first we have infinite states...
07:54:08 <Gregor> I'm likin' my base-and-geyser system a hell of a lot more than any of these nutty things :P
07:54:17 <elliott> Gregor: I thought there was something wrong with that
07:54:26 <elliott> Didn't you used to have geysers, I hg-nosied
07:54:39 <Gregor> elliott: I just used that terminology instead of "base" before.
07:54:44 <elliott> http://hpaste.org/50489 jesus christ
07:54:45 * CakeProphet likes the win-flag system that he is imagining, though he's not sure that everyone else is imagining the same thing.
07:55:11 <Gregor> elliott: I stopped reading after pokIntElement
07:55:40 <elliott> Gregor: DID YOU READ MY AWESOME HASKELL WARRIOR THOUGH
07:55:47 <Gregor> elliott: Nope 8-D
07:55:51 <elliott> AWESOMÉ
07:55:55 <elliott> Gregor: Not even glance?? :'(
07:55:59 <elliott> WILL YOU IF I LINK IT
07:56:00 <Gregor> I glanced :P
07:56:11 <CakeProphet> Gregor: and there's not state-hell if you just make it so that states can be superimposed
07:56:20 <elliott> CAS
07:56:20 <elliott> DO
07:56:21 <elliott> NOT
07:56:21 <elliott> WORK
07:56:22 <elliott> THAT
07:56:22 <elliott> WAY
07:56:22 <Gregor> CakeProphet: Superimposing states IS state hell >_<
07:56:33 <monqy> elliott: that hpaste what
07:57:18 <monqy> who would write that
07:57:52 <monqy> and these annotations
07:58:05 <CakeProphet> whatever.
07:58:40 <monqy> i'm guessing that one's core, but what's that one supposed to be? I've never seen llvm so I guess it oculd be that
07:58:54 <elliott> Cmm
07:58:58 <elliott> GHC's dialect of C--
07:58:59 <monqy> oh Cmm
07:59:09 <elliott> i gotta hand it to them, they're dedicated :)
07:59:21 <elliott> makes me think I could truly write that malloc without consing
07:59:23 <elliott> in haskell
07:59:26 <monqy> is Cmm the only flavour of C-- still alive?
07:59:38 <Gregor> Quite probably :P
07:59:55 <elliott> Yes.
07:59:59 <pikhq_> elliott: ... What.
08:00:03 <elliott> It's also probably the only flavour that was ever alive, ever.
08:00:05 -!- myndzi has quit (Read error: Connection reset by peer).
08:00:10 <pikhq_> elliott: You officially frighten me.
08:00:13 <elliott> pikhq_: That's not me.
08:00:18 <pikhq_> elliott: Oh, dur.
08:00:26 <pikhq_> elliott: sannysanoff officially frightens me.
08:00:47 <Gregor> Well, now that that storm's passed, back to trying to sleep.
08:00:54 <elliott> pikhq_: Hey, dude, I wanted to avoid all assembly beyond bootup in a Haskell OS by writing a memory allocator that didn't cons at all.
08:00:55 <elliott> Gregor: Pah :P
08:01:10 <Gregor> CakeProphet, elliott: Continue thinking about win conditions and barking at each other kthx :P
08:01:18 <pikhq_> elliott: ... Is that even doable?
08:01:22 <pikhq_> If it is, ♥
08:01:43 <CakeProphet> Gregor: space, conductor, electron head, electron tail, flag head, flag tail, death flag head, death flag tail, win flag head, win flag tail, base, flag geyser, electron geyser
08:02:00 <CakeProphet> no superimposing.
08:02:14 * itidus20 . o O ( win conditions: 1) ring out 2) knock out 3) tap out )
08:02:14 <elliott> pikhq_: I... think it might be.
08:02:17 <elliott> Gregor: I still think yours is best.
08:02:30 <elliott> Gregor: I dunno how thought-out it is though :P
08:02:50 <itidus20> 4) time out?
08:02:59 <elliott> pikhq_: I mean, you can make an Addr# pointing to anywhere you want.
08:03:28 <elliott> pikhq_: So it's just a matter of using a lot of octothorpes to read and write to that, and using Int#s for EVERYTHING.
08:03:39 <elliott> Even instead of Bools... although Bools might be OK since it's two static pointers, but I dunno how the RTS does it.
08:03:52 <CakeProphet> electron + flag = death flag death flag + flag = win flag (or maybe you just win at that point, I don't know if the win flag is actually a good idea)
08:04:06 <elliott> pikhq_: The real question is, can the RTS start without a memory allocator? Or rather, with a memory allocator written in Haskell that thus requires the RTS? :P (Even though it probably doesn't REALLY require the RTS because it doesn't cons or anything.)
08:04:08 <CakeProphet> flag + flag = cancelled out
08:04:40 <CakeProphet> once a death flaw always a death flag. any problems with this ruleset yet?
08:05:10 -!- myndzi has joined.
08:05:48 <elliott> CakeProphet: Let's ping Gregor and find out
08:06:25 <CakeProphet> oh, and flag electrons are slow (defined however you like)
08:07:32 <elliott> That doesn't work :P
08:07:38 <elliott> If you mean flags are a kind of electron
08:07:58 <CakeProphet> there's still a few questionable areas. death flag + electron = ?? (you could either change it back to a normal flag, have it continue being a death flag, or fizzle out) death flag + death flag = space I'm assuming.
08:08:13 <CakeProphet> er, conductor I mean
08:08:14 <CakeProphet> not space.
08:08:40 <CakeProphet> yes the flags are just slow-moving electrons that do not interact with electrons in the same way as normal electrons.
08:10:25 <CakeProphet> elliott: can you give me a better idea of why it won't work?
08:10:48 <elliott> Dunno, not paying attention :P
08:11:06 <CakeProphet> ASSHOLE
08:11:41 <CakeProphet> that means you're paying even LESS attention than I am.
08:11:47 <CakeProphet> Truly that is an incredible feat.
08:13:01 <CakeProphet> I think the rules are consistent but it may make the win conditions more or less circumstance.
08:13:45 <CakeProphet> (assuming you take out the win flag. including a win flag adds new complications but makes the win conditions a little less sporadic)
08:14:34 -!- pikhq has joined.
08:14:37 -!- pikhq_ has quit (Ping timeout: 264 seconds).
08:28:29 -!- Vorpal has joined.
08:33:50 <elliott> NihilistDandy: /msg
08:53:22 <pikhq> elliott: Obvious problem with my reading this further: my estimation of the size of Yudkowsky's ego grows with each passing sentence.
08:53:35 <elliott> quit while you're ahead
08:53:37 <pikhq> I swear, the man's hit the ego singularity.
08:53:45 <elliott> you mean HARRY has
08:53:47 <pikhq> Now I'm just curious how far it goes.
08:54:01 <pikhq> No, it's quite clearly self-insertion, that was obvious from the first chapter.
08:54:22 <pikhq> How many autodidactic polymaths are there, exactly?
08:54:57 <elliott> very few; there are thousands who think they're one
08:55:30 <pikhq> One sees my point.
08:55:42 <pikhq> s/One sees/You see/
08:56:55 <pikhq> Honestly, at this point I'm just curious to see how far the ego goes.
08:57:36 <pikhq> We're already at the point of "Stallman seems humble>
08:58:11 <CakeProphet> Kanye West?
08:58:44 <pikhq> Kanye West does not think himself the Rational Human.
08:59:46 <CakeProphet> who's to say he doesn't?
08:59:52 <CakeProphet> other than Kanye West?
09:00:05 <CakeProphet> perhaps you have a sampling of his lyrical work that would suggest he does not view himself as a rational?
09:00:08 <CakeProphet> :P
09:00:11 <pikhq> Observation indicates Kanye does not, at least, act upon this belief.
09:00:18 <elliott> Thus spake @kanyewest, "Stay positive."
09:00:28 <elliott> Also: "Don't ever try to sell me on anything. Give me ALL the information and I'll make my own decisions."
09:00:30 <oerjan> hypothesis: _everything_ becomes absurd if taken to its logical conclusion.
09:00:33 <elliott> That sounds like some sort of support of rational belief.
09:00:41 <oerjan> including reason.
09:00:42 <elliott> oerjan: well taking that to its logical conclusion, _everything_ is absurd
09:00:47 <pikhq> Whereas Eliezer runs an amazing, yet interesting, circlejerk.
09:01:08 <oerjan> elliott: no, not everything, just that sentence.
09:01:11 <elliott> "Mick Jagger is crazy fresh" -- Kanye has discovered new meanings of the word "fresh" I was previously unaware of
09:01:12 <pikhq> The worst bit is, he obviously is actually quite intelligent.
09:01:29 <elliott> "I didn't know Johnny Depp played guitar". The voice of a generation.
09:01:31 <oerjan> some things don't care about logical conclusions, and so may avoid absurdity.
09:01:40 <monqy> that harry potter fanfic's title alone gave me the death
09:01:45 <elliott> "Be nice" thanks kanye
09:01:50 <elliott> i'm stopping now
09:01:51 <pikhq> And at least some of his egotism is the result of, well, probably being smarter than 99% of the people he's met.
09:03:36 <oerjan> Eliezer Yudkowsky and the Methods of Megalomania
09:03:58 <pikhq> oerjan: Not so much "megalomania".
09:04:02 <oerjan> (title hereby released to the public domain)
09:04:19 <CakeProphet> ...my client says that two of the previous devs had to learn C# for this project....
09:04:25 <elliott> http://twitter.com/FakeEliezer
09:04:31 <CakeProphet> I'm kind of surprised it took them any appreciable amount of time.
09:04:46 <oerjan> pikhq: he has an excessive belief in rationality and his own ability to produce it?
09:05:06 <oerjan> isn't that pretty much straight in the definition of megalomania...
09:05:35 <CakeProphet> it's not excessive because it's PERFECTLY RATIONAL OKAY?
09:05:42 <oerjan> XD
09:06:28 <oerjan> actually even assuming rationality _is_ objectively correct, i hypothesize he has an excessive belief in his own ability to discern it.
09:06:35 <pikhq> oerjan: Okay, maybe it actually is megalomania.
09:06:50 <pikhq> Actually, quite probably.
09:07:09 -!- NihilistDandy has set topic: This umbrella works wonders for murdering! | software problems | Functor? I hardly knew 'er! | choking on a puzzle piece is like the consuming methanol of the alcohol abuse world | http://codu.org/logs/_esoteric/.
09:07:31 <monqy> is tunes still shunned
09:07:44 <oerjan> ask elliott, it's him doing the shunning
09:07:56 <pikhq> ... Yes, it's megalomania.
09:08:05 <elliott> monqy: Yes.
09:08:11 <monqy> poor tunes
09:08:16 <elliott> rip tunes
09:08:33 <pikhq> I've read 38 fucking chapters of self-insert fanfiction. It's fucking megalomania, and his head is larger than the solar system.
09:08:46 <elliott> thirty-eight???
09:08:49 <elliott> you need a saline drip, stat
09:08:57 <elliott> something really non-pretentious
09:09:02 <monqy> how many chapters are there
09:09:12 <monqy> in total
09:09:12 <pikhq> 72.
09:09:16 <monqy> yikes
09:09:19 <CakeProphet> ...this guy apparently thinks I am somewhat good at this.
09:09:27 <CakeProphet> even though I've just been kind of bullshitting the whole time.
09:09:38 <NihilistDandy> CakeProphet: Who?
09:10:03 <CakeProphet> guy who hired me to port his browser automator scripting engine thing over to linux.
09:10:25 <CakeProphet> which eventually turned into "rewrite this entire C# app in Python over the course of 3-4 months"
09:12:14 <Vorpal> CakeProphet, browser automator?
09:12:15 <Vorpal> what
09:12:22 <pikhq> elliott: How can someone be this unhumble.
09:12:40 <CakeProphet> Vorpal: it interprets scripts that automatically control a browser to do things.
09:12:42 <pikhq> And be a "rationalist".
09:13:02 <Vorpal> h<pikhq> I've read 38 fucking chapters of self-insert fanfiction. It's fucking megalomania, and his head is larger than the solar system. <-- why did you read that
09:13:12 <Vorpal> I mean, are you trying to go mad?
09:13:14 <pikhq> Vorpal: It was at least interesting.
09:13:31 <Vorpal> CakeProphet, what for
09:13:34 <pikhq> Few people write self-insert like actually intelligent people.
09:13:38 <CakeProphet> "this guy is full of himself, and I am totally captivated"
09:13:45 <pikhq> ... With ego inflation up the wazoo.
09:13:52 <CakeProphet> Vorpal: can't say. :P
09:13:56 <pikhq> CakeProphet: After about chapter 2.
09:13:57 <oerjan> <elliott> http://twitter.com/FakeEliezer <-- doesn't look very updated.
09:13:58 <Vorpal> pikhq, how many Wolfram :P
09:14:05 <pikhq> Vorpal: G
09:14:11 <Vorpal> pikhq, G?
09:14:15 <pikhq> Graham's number.
09:14:16 <CakeProphet> G WOLFRAM???? MY GOD
09:14:18 <Vorpal> ah
09:14:22 <Vorpal> CakeProphet, indeed
09:14:27 <Vorpal> quite absurd
09:14:28 <monqy> my god too
09:14:37 <Vorpal> pikhq, I thought 1 Wolfram was max
09:14:44 <pikhq> He broke the scale.
09:14:49 <Vorpal> ouch
09:15:18 <pikhq> I remind you, he is a "rationalist", and thinks anything notable of himself at all.
09:15:29 <CakeProphet> pikhq: what about A(G,G) Wolframs?
09:15:35 <oerjan> <pikhq> And be a "rationalist". <-- hypothesis, because everyone eventually confuses rationality with their own prejudices. i'm sure yudkowsky must have written something about it.
09:15:43 <Vorpal> what is a "rationalist"?
09:15:46 <CakeProphet> where A is the Ackermann-Peter function.
09:15:47 <pikhq> oerjan: Almost certainly.
09:16:04 <Vorpal> CakeProphet, never heard "Peter" in the name of that function before
09:16:10 <pikhq> Vorpal: One who believes in rational thought above all else, basically.
09:16:18 <CakeProphet> The original ackermann function took three arguments
09:16:27 <CakeProphet> the revised one is called ackermann-peter
09:16:32 <CakeProphet> fun fact.
09:16:47 <Vorpal> pikhq, I guess in theory that is commendable. Can't see it happening in practise if the world still has humans in it
09:17:06 <pikhq> He's also a singularitarian and a transhumanist.
09:17:08 -!- elliott has quit (Remote host closed the connection).
09:17:14 <Vorpal> ah
09:17:19 <pikhq> He's at least not suffering the *obvious* fault. :P
09:17:21 <Vorpal> that explains a bit
09:17:35 -!- elliott has joined.
09:17:48 -!- elliott has set topic: choking on a puzzle piece is like the consuming methanol of the alcohol abuse world | http://codu.org/logs/_esoteric/.
09:17:52 <elliott> NihilistDandy did it improperly. >:|
09:17:56 <elliott> ok so
09:17:56 <CakeProphet> transhumanist = "yeah, I think having genetically and cybernetically engineered super powers would be pretty cool"
09:17:57 <elliott> guys
09:18:02 -!- Lymia has joined.
09:18:03 <elliott> should i write my memory allocator in consless haskell
09:18:06 <elliott> SHOUDL I DARE...
09:18:13 <pikhq> CakeProphet: He intends to make it happen.
09:18:19 <NihilistDandy> elliott: YOU NEED TO BE MORE SPECIFIC
09:18:19 <Vorpal> pikhq, of course, one could aruge that anything sentient precludes absolute rationality. Maybe.
09:18:21 <monqy> shodule you darre
09:18:22 <elliott> can we stop giving yudkowsky attention now
09:18:22 <elliott> thanks
09:18:26 <monqy> shoudle
09:18:27 <monqy> shoulde
09:18:35 <pikhq> He just seems to fail to apply the whole "humans are utterly irrational beings that are basically forcing their brainmeat to act sane at times" bit to himself.
09:18:38 <elliott> ok
09:18:42 -!- Lymia has changed nick to Lymee.
09:18:43 <pikhq> And we're done.
09:19:17 <CakeProphet> I force my brainmeat into a comfortable state of vanilla wafer composition.
09:19:19 <monqy> I don't know enough about this guy to understand but he sounds a bit obnoxious
09:19:22 <Vorpal> elliott, got something against yudkowsky?
09:19:48 <Vorpal> pikhq, btw, fan-fic of what work originally?
09:19:50 <elliott> Vorpal: yep, and I don't see anyone in here who hasn't
09:19:54 <elliott> harry potter
09:20:48 <CakeProphet> how do I force my brainmeat to do things, you ask?
09:20:50 <CakeProphet> with brainmeat.
09:20:58 <NihilistDandy> He looks like a dick
09:21:09 <NihilistDandy> I'd punch him in the mouth
09:21:38 <monqy> i don't punch people becuase i
09:21:45 <pikhq> Self-insert works a bit better with Harry Potter. It's already self-insert fiction. :P
09:21:49 <elliott> punching people is not nice
09:21:51 <elliott> :(
09:22:31 <monqy> i;d never be able to punch people i don't think i'd be able to bring myself to do it under most circumstances
09:23:13 <elliott> once i punched a puppy NOT TRUE FICTION NO COPYRIGHT INTENDED
09:23:14 <CakeProphet> you may conjecture that I do not force my brain to anything but instead it merely transitions naturally between states as governed by physics.
09:23:26 <elliott> (CONTROVERSIAL YOUNG NOVEL)
09:23:45 <CakeProphet> elliott: write your own fan fiction.
09:23:45 <monqy> i my brain meats into a fist into your face
09:23:49 <CakeProphet> elliott: homestuck
09:23:53 <CakeProphet> homestuck fan fiction.
09:23:56 <CakeProphet> do it.
09:23:57 <elliott> there's
09:23:58 <elliott> enough of that
09:23:59 <elliott> in the world already
09:24:11 <CakeProphet> elliott: but none of it has an elliott self-insert.
09:24:19 * pikhq should sleep. 'Tis 03:25.
09:24:23 <elliott> yes. isn't that reassuring.
09:24:25 -!- oerjan has quit (Quit: NO PUN IN TEN DID).
09:24:26 <CakeProphet> elliott: or are you suggesting that you've ALREADY WRITTEN SOME!!!???!?!?
09:24:29 <monqy> hhehehehehehe homestuck
09:24:39 <elliott> "hhehehehehehe homestuck" --monqy, intellectual and philosopher
09:24:39 <NihilistDandy> pikhq: It's 5:25
09:24:42 <NihilistDandy> Here
09:24:55 <NihilistDandy> I win the "should be aslympics"
09:25:04 <CakeProphet> same here bro.
09:25:04 <monqy> last night i had a discussion about how wonderful it would be if homestuck didn't exist but the fandom still did
09:25:18 <elliott> monqy's adventures in things that are like the opposite of truth
09:25:21 <CakeProphet> NihilistDandy: we are superimposed as one being the spectrum of timezone competitive sports.
09:25:36 <CakeProphet> s/being the/being in the/
09:25:58 <NihilistDandy> CakeProphet: The United Superposition of States
09:26:41 <CakeProphet> ah, but then... I retire to slumber
09:26:45 <NihilistDandy> I hope the next version of the USSR is the USSSR
09:27:13 <NihilistDandy> Also, sleep
09:29:02 <monqy> i am sorry but homestuck just makes me think of wonderfully horrible things now
09:30:07 <elliott> i too equate things with their fandoms. you _don't_ want to know what my conception of Harry Potter's plot is, let me tell you.
09:30:23 <monqy> http://www.youtube.com/watch?v=vWo2CU3KH_0 homestuck
09:30:45 <elliott> im not even going to click that
09:30:52 <monqy> you're missing out
09:35:17 -!- myndzi has quit (Ping timeout: 276 seconds).
09:35:43 <monqy> by the way what is your conception of harry potter's plot
09:35:46 <monqy> now i'm curious
09:36:54 <elliott> i was using something called sarcasm to make something called a point
09:37:20 <monqy> whats that help
09:37:32 <elliott> dunno
09:38:10 <NihilistDandy> http://wondermark.com/749/
09:38:35 <monqy> hat
09:46:20 <elliott> pikhq: NihilistDandy: http://sprunge.us/CJNI
09:47:40 -!- Phantom_Hoover has joined.
09:48:12 <monqy> (() -> Addr#)? what sort of trick is this
09:48:47 <elliott> monqy: cant have top-level unlifted binding lol
09:50:03 -!- elliott has quit (Remote host closed the connection).
09:50:27 -!- elliott has joined.
09:54:11 -!- FireFly has joined.
10:10:24 -!- Patashu has joined.
10:25:15 -!- SimonRC has quit (Ping timeout: 260 seconds).
10:31:54 -!- SimonRC has joined.
10:48:49 <quintopia> elliott: halp
10:48:53 <elliott> quintopia: wat
10:49:19 <quintopia> i am trying to rotate an image by half pi by moving the pixels
10:49:26 <quintopia> image is a 1D array
10:49:31 <quintopia> i want it in one line
10:50:05 <quintopia> current line is ...
10:50:23 <elliott> rotate :: Double -> Picture a -> Picture a
10:50:23 <elliott> rotate r p = \(x :@ y) -> p (x*c - y*s :@ x*s + y*c)
10:50:24 <elliott> where !c = cos r
10:50:24 <elliott> !s = sin r
10:50:26 <elliott> this is all i know dont hurt my family
10:50:33 <quintopia> newbuff2[i]=newbuff[i%h*w+w-1-i/h];
10:50:57 <quintopia> it SEEMS like it should work
10:51:10 <quintopia> except hmm
10:53:25 -!- monqy has quit (Quit: hello).
10:54:40 <quintopia> it does work, when i remember to swap the width and height afterwards, ha
10:54:55 <quintopia> also, fixing that made me realize another bug
10:55:04 <quintopia> :(
10:56:09 <elliott> <benmachine> elliott: I can't help but feel if you're good enough to do this there are actually useful things you could be doing :P
10:56:10 <elliott> channel motto
11:02:16 <Vorpal> elliott, in here?!
11:03:17 <elliott> ?
11:03:21 <elliott> No, in hash-haskell
11:03:24 <Vorpal> ah
11:03:30 <Vorpal> elliott, still haven't fixed your keyboard
11:03:31 <elliott> #0 0x0000000000457ba0 in allocate ()
11:03:31 <Vorpal> wtf
11:03:32 <elliott> #1 0x0000000000448dde in rts_mkInt ()
11:03:32 <elliott> #2 0x0000000000402f71 in main ()
11:03:32 <elliott> Damn
11:03:42 <elliott> Vorpal: Maybe I'll upgrade to Lion on MY BIRTHDAY
11:03:57 <Vorpal> elliott, congrats on that backtrace if it crashed there
11:04:09 <Vorpal> elliott, hm?
11:04:12 <Vorpal> why upgrade
11:04:21 <Vorpal> isn't that a separate issue from the keyboard
11:04:27 <elliott> Gotta send it to Apple
11:04:29 <elliott> So gotta wipe it
11:04:31 <elliott> If gotta wipe it
11:04:34 <elliott> Want to upgrade for clean slate
11:04:38 <elliott> So that I get something useful out of it
11:04:41 <elliott> (It = wiping it)
11:04:52 <Vorpal> hm okay
11:05:59 <elliott> <Vorpal> elliott, congrats on that backtrace if it crashed there
11:06:02 <elliott> Not hard with what I'm doing
11:06:27 <elliott> Actually what I want is a segfault, but not the segfault I'm getting
11:07:17 <elliott> Vorpal: Guess who gets to read Cmm code! It's me!
11:09:23 <elliott> HaskellObj
11:09:23 <elliott> rts_apply (Capability *cap, HaskellObj f, HaskellObj arg)
11:09:23 <elliott> {
11:09:23 <elliott> StgThunk *ap;
11:09:23 <elliott> ap = (StgThunk *)allocate(cap,sizeofW(StgThunk) + 2);
11:09:24 <elliott> SET_HDR(ap, (StgInfoTable *)&stg_ap_2_upd_info, CCS_SYSTEM);
11:09:26 <elliott> ap->payload[0] = f;
11:09:28 <elliott> ap->payload[1] = arg;
11:09:30 <elliott> return (StgClosure *)ap;
11:09:32 <elliott> }
11:09:34 <elliott> SIGH
11:11:57 <elliott> #0 0x0000000000457bb0 in allocate ()
11:11:58 <elliott> #1 0x00000000004503d8 in createThread ()
11:11:58 <elliott> #2 0x0000000000448af9 in createGenThread ()
11:11:58 <elliott> #3 0x0000000000448b82 in rts_eval ()
11:11:58 <elliott> #4 0x0000000000402f94 in main ()
11:11:58 <elliott> GOD
11:12:17 <elliott> Vorpal: All these fuckin' allocations!
11:12:45 <Vorpal> <elliott> Actually what I want is a segfault, but not the segfault I'm getting <-- why
11:13:09 <Vorpal> elliott, anyway, why shouldn't creating a thread allocate stuff?
11:13:16 <Vorpal> elliott, also what made you resort to gdb
11:13:20 <elliott> Vorpal: Because I need 0 allocations.
11:13:26 <Vorpal> I'm curious. You are a known GDB hater
11:13:28 <elliott> And it's always gonna be gdb, I'm fucking around with the RTS.
11:13:35 <Vorpal> hm
11:13:38 <elliott> It's the only way to distinguish the _|_s that are segfaults from one another :P
11:13:40 <Vorpal> elliott, why do you need 0 allocations
11:13:46 <elliott> Vorpal: http://hpaste.org/50517
11:13:50 <elliott> Hope this answers your question
11:14:14 <Vorpal> elliott, I don't know enough of the internals of haskell to understand that
11:14:27 <elliott> You can read C code, so you can read that
11:14:30 <elliott> Just ignore the octothorpes
11:14:38 <Vorpal> elliott, the what?
11:14:44 <elliott> #
11:14:46 <Vorpal> ah
11:15:03 <elliott> topAddrAddr# is just NULL + 424242 with a dummy function around it
11:15:09 <elliott> topAddr and writeTopAddr just read and write it
11:15:15 <Vorpal> elliott, what is an Addr# ?
11:15:18 <elliott> primAllocBytes# should not be hard to understand, just ignore the threading of rw
11:15:19 <Vorpal> raw pointer?
11:15:22 <elliott> Vorpal: Yes.
11:15:29 <Vorpal> elliott, WHY DOES HASKELL EVEN ALLOW THIS!?
11:15:34 <elliott> It doesn't, GHC does
11:15:43 <Vorpal> okay why does GHC even allow it
11:15:44 <elliott> This code is so ludicrously nonportable in every way
11:15:48 <elliott> Vorpal: Internal use
11:16:01 <Vorpal> ah
11:16:19 <Vorpal> elliott, why 424242
11:16:25 <elliott> Recognisable in Core
11:16:37 <elliott> http://hackage.haskell.org/trac/ghc/browser/compiler/utils/Encoding.hs Take a look at utf8DecodeChar#
11:16:43 <elliott> SO BEAUTIFUL
11:16:58 <elliott> It's done like that for performance reasons :P
11:17:06 <Vorpal> ew yeah
11:17:14 <Patashu> so many #s
11:17:16 <Patashu> going to kill myself
11:17:37 <Vorpal> Patashu, why `plusAddr#`, why not make Addr# implement Num?
11:17:39 <Vorpal> err
11:17:41 <Vorpal> elliott, ^
11:17:57 <elliott> Vorpal: Firstly, because Num wants an *
11:18:00 <elliott> Addr# is a #
11:18:03 <elliott> (Kinds)
11:18:05 <Vorpal> ah
11:18:07 <elliott> Secondly, because look at the signature
11:18:13 <elliott> You add an Int# to an Addr#
11:18:21 <Vorpal> oh right
11:18:24 <Vorpal> :t plusAddr#
11:18:25 <lambdabot> Not in scope: `plusAddr#'
11:18:28 <Vorpal> meh
11:18:56 <elliott> Vorpal: http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html
11:19:14 <Vorpal> elliott, so you are basically trying to do sbrk() in haskell?
11:19:17 <Vorpal> am I right?
11:19:21 <elliott> "Misc
11:19:21 <elliott> These aren't nearly as wired in as Etc..."
11:19:27 <elliott> Vorpal: It's malloc, it's just a really shitty malloc.
11:19:31 <elliott> But yeah, sbrk is basically how it works.
11:19:37 <elliott> The idea is to run that on the bare metal.
11:19:50 <elliott> Obviously the pesky RTS trying to allocate in the process of calling it is not a helpful situation.
11:19:57 <Vorpal> elliott, well, then don't be surprised if it fails spectacularly when hosted
11:20:13 <elliott> FFS, it's meant to segfault when it writes to the bullshit constant address
11:20:31 <elliott> Crashing when the RTS tries to allocate because I passed a null pointer for the RTS capability structure will not go any differently on the bare metal
11:20:58 <Vorpal> elliott, the misc/etc thing. I would say that etc is more common. It has god damn seq after all
11:21:24 <Vorpal> of course, seq is pretty magic...
11:21:33 <elliott> Those are wrapped later on
11:21:37 <elliott> http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/src/GHC-Prim.html#seq
11:21:39 <Vorpal> elliott, what does traceCcs# do?
11:21:43 <elliott> Notice dummy implementation for haddock docs
11:21:48 <elliott> That's not the actual seq you use that's in GHC.Prim
11:21:51 <elliott> Vorpal: Fucked if I know
11:21:55 <elliott> Probably some debugging thing
11:22:21 <Vorpal> elliott, according to that file. traceCcs# and seq are the same. Is this file a dummy file?
11:22:32 <Vorpal> yeah must be
11:22:38 <elliott> <elliott> Notice dummy implementation for haddock docs
11:22:44 <elliott> It's generated
11:22:46 <Vorpal> right
11:22:50 <Vorpal> missed that line
11:23:06 <Vorpal> elliott, why let and now where?
11:23:08 <elliott> Capability *
11:23:10 <elliott> rts_eval (Capability *cap, HaskellObj p, /*out*/HaskellObj *ret)
11:23:10 <elliott> {
11:23:10 <elliott> StgTSO *tso;
11:23:10 <elliott>
11:23:10 <elliott> tso = createGenThread(cap, RtsFlags.GcFlags.initialStkSize, p);
11:23:11 <elliott> return scheduleWaitThread(tso,ret,cap);
11:23:15 <elliott> }
11:23:17 <elliott> Urrrrgh
11:23:19 <elliott> Vorpal: What?
11:23:25 <Vorpal> let x = x in x
11:23:31 <elliott> It's a dummy implementation
11:23:37 <Vorpal> yeah
11:23:42 <elliott> It's just put there by the script, the only time the file is ever used is to generate the Haddock docks
11:23:43 <elliott> docs
11:24:27 <Vorpal> elliott, anyway the RTS will have to allocate a bit for creating thread and so on. The memory must come from *somewhere*
11:24:31 <Vorpal> brb
11:24:56 <elliott> Vorpal: So don't do it by a thread
11:25:04 <elliott> Vorpal: I want as close to jumping in directly to the closure as possible
11:25:51 <Vorpal> back
11:26:10 <Vorpal> elliott, you will need to patch ghc for that
11:26:14 <Vorpal> probably
11:26:53 <Vorpal> elliott, ever played oblivion btw?
11:27:59 <elliott> No. Should I?
11:28:21 <Vorpal> nah. I was wondering about opinions
11:28:23 <Vorpal> it is okay
11:29:08 <Vorpal> elliott, open world rpg, great scenery, a bit dated graphics by now, it is showing it's age. But my main issue with it is the bad voice acting. There is no flavour to it.
11:29:27 <Vorpal> but huge open world, have to give it credits for that
11:29:29 <elliott> I know at least some of the NPCs and plot thanks to Prequel :P
11:29:34 <Vorpal> ah
11:30:10 <Vorpal> elliott, well, the voice acting is terribly flat. No emotion in it. No flavour. I'd say no voice acting would be an improvement
11:30:31 <elliott> voices suck, also humans suck, have I mentioned Elliottcraft contains 0 humans?
11:30:34 <elliott> no fucking humans. or voies.
11:30:36 <Vorpal> NWN1 had good, if incomplete, voice acting. Witcher 2 has really really good voice acting.
11:30:42 <Vorpal> elliott, different type of game :P
11:30:51 <elliott> superior type of game
11:31:01 <elliott> "incomplete"?
11:31:03 <elliott> were some lines just silent
11:31:03 <Vorpal> elliott, besides what about elves, dwarves, orcs and so on
11:31:11 <Vorpal> elliott, some NPCs were not voiced
11:31:25 <Vorpal> elliott, only like the main NPCs were
11:31:57 <elliott> elves are humans, dwarves are humans, orcs are stupid humans
11:32:09 <Vorpal> elliott, lizardmen?
11:32:13 <elliott> "men"
11:32:21 <Vorpal> right
11:32:25 <Vorpal> elliott, talking dragons?
11:33:01 <Vorpal> given the copious amount of dialogue in NWN1 the lack of voice acting was probably required to make the game fit on a CD or whatever it came on, I don't remember.
11:33:16 <Vorpal> I think it came on 2 CDs or such
11:33:28 <elliott> yes, I would accept a game where every character is a talking dragon.
11:33:40 <Vorpal> elliott, XD
11:33:48 <elliott> i'm not even kidding i would play the fuck out of that
11:33:51 <Patashu> elliott, play Spyro The Dragon for the PSX
11:33:52 <elliott> especially if it's never brought up ever
11:33:56 <Vorpal> elliott, witcher 2 has supreme voice acting. If you like RPGs then it is a must.
11:33:59 <elliott> Patashu: touche
11:34:11 <elliott> Vorpal: i don't like rpgs... except maybe pokemon, but i doubt witcher is that grindy
11:34:12 <Vorpal> for lots of other reasons than voice acting of course
11:34:21 <Vorpal> elliott, indeed it is plot driven.
11:34:31 <Vorpal> indeed,*
11:34:51 <elliott> http://bulk2.destructoid.com/ul/149036-thewitcher.jpg uglier than elliottcraft
11:35:01 <Vorpal> elliott, btw "Prequel" you mentioned above, what/who is that?
11:35:01 <elliott> i should just make all the elliottcraft bloocks shit rainbows
11:35:04 <elliott> everything is every colour
11:35:25 <Vorpal> elliott, that is not max settings in that screenshot. Besides it is low res.
11:35:28 <elliott> Vorpal: It's a comic in roughly the same format as MSPA set in Oblivion
11:35:30 <elliott> http://prequeladventure.com/2011/03/prequel-begin/
11:35:41 <Vorpal> heh
11:36:28 <elliott> Or, well, set as a prequel, I guess
11:36:32 <elliott> Does it count as in if it's before?
11:36:38 <elliott> Deep ontological questions
11:36:38 <Vorpal> elliott, oh another thing in oblivion: character face look on NPCs is terribly plain. Too even.
11:36:57 <elliott> i saw a screenshot of the catpeople, they're scary
11:37:10 <Vorpal> elliott, yeah. But I meant human and elf faces. Too flat.
11:37:22 <elliott> oh quill-weave is more terrifying though
11:37:30 <Vorpal> not familiar with that
11:37:35 <elliott> http://images3.wikia.nocookie.net/__cb20110621230405/elderscrolls/images/4/45/Quill-Weave_1.jpg
11:38:02 <elliott> (compare http://prequeladventure.com/this/story278.gif)
11:38:17 <Vorpal> elliott, the witcher screenshot was terribly jpeg compressed too
11:38:26 <elliott> im unfair to witcher :(
11:39:06 <Vorpal> elliott, btw witcher 2 graphics, it works better when playing it or in a video than in a screenshot. You won't see effects like motion blur or swaying grass in a still image. Yogscast did partial play-through of the game some time ago. Check out the graphics from there IMO.
11:39:32 <Vorpal> elliott, hm nocookie.net?
11:39:39 <elliott> Don't ask me
11:40:03 <elliott> But anyway, I don't see how any game could have better graphics than Elliottcraft :)
11:40:05 <Vorpal> elliott, the game screenshot one is scarier
11:40:13 <elliott> That's what I meant
11:40:15 <elliott> Popping the stack,
11:40:17 <Vorpal> elliott, how is that. Will your have smooth terrain
11:40:29 <elliott> Or do YOU know another game with dirt that looks different depending on the precise value of its moisture????
11:40:40 <elliott> Different in a way other than being tinted slightly :P
11:40:55 <Vorpal> elliott, that is not quite the same as having awesome dynamic light and shadows :P
11:41:06 <elliott> Vorpal: I considered joining corners up at one point, but I think the block model is nicer... I'm still open to arbitrary subdivision of blocks or smaller-than-minecraft blocks
11:42:00 <Vorpal> elliott, depends on your goals
11:42:08 <elliott> Best game
11:42:17 <Vorpal> in which genre
11:42:29 <elliott> The only relevant genre, Elliottcraft
11:42:40 <Vorpal> well duh
11:42:45 <elliott> It's based around utter hostility to all people that aren't me
11:42:53 <elliott> You might die your first three hundred days
11:43:30 <Vorpal> elliott, I'll turn on peaceful
11:44:13 <Vorpal> I think that minecraft is fun, but not for fighting in. It is fun to build in. If I want to fight I start an RPG and get a MUCH better fighting experience
11:44:31 <elliott> Who said anything about fighting?
11:45:13 <elliott> Anyway, feel free to build, but you'd better make sure it's structurally sound -- don't want that thing to topple over and all your blocks turned into worthless rubble that you have to melt-down and re-cast, mm?
11:45:31 <elliott> You might even have to steal a furnace.
11:48:54 <Patashu> Elliotcraft will have DF style structural integrity testing?
11:49:15 <elliott> It's not so much structural integrity testing, it's just... things won't stay up if you build them like an idiot.
11:49:24 <elliott> And unlike DF a one by one tower won't be enough to keep them up.
11:49:35 <Patashu> so what do you call it if not structural integrity testing?
11:49:48 <elliott> I dunno, that makes it sound like it's a separate step to me.
11:49:56 <elliott> It's like calling gravity "floating violation testing".
11:50:08 <Patashu> would you prefer 'block physics'
11:50:10 -!- GreaseMonkey has quit (Quit: The Other Game).
11:50:42 <elliott> Well obviously I have _that_ :-)
11:53:34 <elliott> Vorpal: "We're talking about Oblivion here; where faces and melted candles are indistinguishable from one another."
11:54:14 <Patashu> What will elliotcraft's circuitry be like
11:55:13 <elliott> (Two "t"s.) I'm not sure. Possibly hideously complex.
11:55:25 <elliott> Maybe bluestone :-P (Phantom_Hoover)
11:55:38 <Patashu> More complex than redstone?
11:55:47 <elliott> Redstone is dirt simple
11:55:52 <Vorpal> <elliott> Vorpal: "We're talking about Oblivion here; where faces and melted candles are indistinguishable from one another." <-- yep
11:55:53 <Patashu> It has lots of edgecases
11:55:55 <Patashu> And it's tricky to use
11:55:56 <Phantom_Hoover> Patashu, more interesting, certainly.
11:55:56 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
11:55:59 <elliott> It's tricky to use because it's simple
11:56:00 <Vorpal> elliott, where is the quote from
11:56:00 <Phantom_Hoover> And nicer to use.
11:56:14 <elliott> Vorpal: Prequel SA thread
11:56:34 <Vorpal> elliott, btw it allows you to customize a lot about your look. Even the size, position, and colour of your eyebrows.
11:56:52 <Vorpal> elliott, my guess is that all face textures are procedural in oblivion, and that is why they are flat.
11:58:09 <Patashu> There are some nice addons to the restone system in MC that you could steal
11:58:13 <Patashu> Like insulated wiring
11:59:06 <fizzie> The land of Oblivion, where the paint brushes float.
12:05:54 -!- sllide has joined.
12:08:38 -!- elliott has quit (Read error: Connection reset by peer).
12:12:30 -!- elliott has joined.
12:14:52 -!- Lymia_ has joined.
12:15:02 -!- Lymia_ has quit (Changing host).
12:15:02 -!- Lymia_ has joined.
12:15:38 -!- Lymia_ has changed nick to Lymia.
12:17:37 <itidus20> ok i just had another of my ideas
12:17:56 <itidus20> i call it the 125 number system
12:18:22 -!- Lymee has quit (Ping timeout: 258 seconds).
12:32:30 <Vorpal> <fizzie> The land of Oblivion, where the paint brushes float. <-- you played it?
12:32:40 <Vorpal> how the hell do you swim. Can't figure it out.
12:34:23 <fizzie> <fizzie> Vorpal: I played it a little bit. <- yesterday or so.
12:34:32 <Vorpal> fizzie, ah.
12:34:44 <fizzie> I remember doing swimming, but now how to do it.
12:34:44 <Vorpal> fizzie, so 1) how do you swim 2) where do you sell stolen items
12:35:19 <fizzie> If you join the Thieves Guild, their fences will let you use their services.
12:35:53 <Vorpal> fizzie, and how/where do I join that. And are there any options if I don't join that
12:37:27 <fizzie> According to UESPWiki, Thieves Guild fences, one of the Dark Brotherhood Murderers, and Mannheim Maulhand at the Inn of Ill Omen, accept stolen goods.
12:37:46 <Vorpal> ah interesting. Now to find "Inn of Ill Omen"
12:38:13 <fizzie> "on the Green Road between the Imperial City and Bravil (quest-related). It is just along the road from the Faregyl Inn.
12:38:13 <fizzie> The publican, Manheim Maulhand, buys potions and food whilst only selling the latter. In addition, he will also buy your stolen goods, even if you aren't part of the Thieves Guild. This, however, is only useful after you have reached the Mercantile skill perks that allow you to barter anything with him and invest in him."
12:38:44 <fizzie> You can probably join the guild with not much ill effects and then just ignore their questline.
12:41:09 <fizzie> There's a few options for joining, but the most straight-forward one (the one I think I stumbled by accident) was to read one of the "wanted" posters of Gray Fox in the city, then talk about that topic with people.
12:46:19 <Vorpal> fizzie, hm. I'm confused about the skills in this game. It seems you level up them independently? No global level thingy like many other games?
12:50:07 -!- Lymia_ has joined.
12:50:53 -!- Lymia_ has quit (Changing host).
12:50:53 -!- Lymia_ has joined.
12:50:55 -!- Lymia has quit (Disconnected by services).
12:50:57 <Vorpal> fizzie, hm he isn't buying my stolen stuff. Must be wrong category of items
12:50:59 -!- Lymia_ has changed nick to Lymia.
12:51:20 <Phantom_Hoover> Playing Oblivion, are we?
12:53:10 <Vorpal> Phantom_Hoover, yes. You played it?
12:53:21 <Vorpal> Phantom_Hoover, how the hell do I swim?
12:53:33 <Vorpal> I just sink and walk on the bottom when I try
12:53:36 <Phantom_Hoover> Tried Morrowind, but failed due to Wine not working for some reason.
12:53:41 <Vorpal> ah
12:53:44 <Phantom_Hoover> Vorpal, that's not how you swim?
12:54:04 <elliott> That's how _I_ swim.
12:54:25 <Vorpal> Phantom_Hoover, how do I swim then
12:55:02 <Phantom_Hoover> Vorpal, you walk around on the bottom of the water, same as everyone else.
12:55:13 <Vorpal> Phantom_Hoover, ...
12:55:24 <Vorpal> Phantom_Hoover, so why does the athletics skill mention swimming?
12:55:50 <fizzie> I've forgotten completely. I suppose you tried the jump key though?
12:55:55 <fizzie> That'd be the most logical choice.
12:56:20 <fizzie> Either that, or just looking upwards and trying to move forward.
12:56:42 <elliott> re
12:56:46 <Vorpal> hm didn't work with e before. Let me try again. Could it be heavy armour?
12:57:06 <fizzie> Yes, weight is a factor.
12:57:22 <Vorpal> hm
12:58:09 <fizzie> There's a quest (Mages Guild one maybe?) where they ask you to fetch a ring from the bottom of a well; but the ring is an "add few hundred stones of weight" ring, and it's a trick they play on you.
12:58:14 <fizzie> Then you drown.
12:58:16 <fizzie> Usually.
12:58:25 <elliott> X-D
12:58:31 <Patashu> wow, that's a dic kmove
12:59:14 <fizzie> http://www.uesp.net/wiki/Oblivion:Cheydinhal_Recommendation
13:00:11 <Vorpal> fizzie, ouch
13:00:25 <fizzie> "It does not actually use a Burden enchantment, it just has its weight set very high." Yeah, it weighs 150 units.
13:00:42 <fizzie> Made out of some ultra-dense matter, I suppose.
13:00:46 <Vorpal> fizzie, btw, is there like any storage chest you could use. Buy an apartment or whatever or such. Or can I expect items to remain where they are if I drop them somewhere?
13:03:51 <Vorpal> fizzie, anyway jumping didn't work, and I switcher to light armour
13:04:21 <Vorpal> oh wait, light armour and looking up works
13:04:22 <Vorpal> right
13:04:53 <fizzie> You can buy houses, and some questlines have you receiving places at the end of them.
13:05:09 <Vorpal> fizzie, ah. Are horses worth it btw?
13:05:20 <fizzie> I never bothered.
13:05:24 <Vorpal> I managed to get a lot of gold from a panaroid madman
13:05:36 <Vorpal> hm
13:06:30 <fizzie> Most chests are unsafe, but some (mostly quest-related, and then the bought houses) are safe: http://www.uesp.net/wiki/Oblivion:Containers#Safe_Containers
13:06:36 <fizzie> Dinnur time now.
13:06:42 <fizzie> (I.e. awaysh.)
13:07:35 <Vorpal> ah I'll use the chest in Weynon Priory for now
13:16:07 <Vorpal> fizzie, I like the scale of oblivion. The distances seems somewhat (though not completely) realistic. Unlike a lot of other games.
13:19:47 <Gregor> elliott, CakeProphet: All your ideas are terrible :P
13:19:59 -!- pikhq_ has joined.
13:20:05 -!- pikhq has quit (Ping timeout: 258 seconds).
13:20:23 <elliott> Gregor: I didn't give any more ideas :)
13:20:25 <elliott> I was SMRT.
13:20:32 <elliott> Gregor: I'm waiting for your master idea :P
13:20:58 <Gregor> I'm implementing my grotty inelegant base+geyser mechanism :(
13:21:10 <elliott> That's grotty and inelegant?
13:21:16 <Gregor> Idonno, I feel like it is :P
13:21:17 <elliott> That's how I assumed things worked originally
13:21:24 <elliott> Your geyser is your power socket
13:21:29 <elliott> The base is, like, a short-circuiter
13:21:30 <elliott> Makes perfect sense
13:21:44 <elliott> Though possibly not for those reasons
13:23:16 <Gregor> My kitten needs mittens so she can STOP CLAWING THE FUCK OUT OF ME
13:24:14 -!- ais523 has joined.
13:25:23 <cheater> kitten mittens for sittin'
13:27:18 <elliott> hi ais523
13:27:22 <ais523> hi elliott
13:29:31 <elliott> getViewBytes :: Get (Vector Word8)
13:29:31 <elliott> getViewBytes = do
13:29:31 <elliott> bytes <- getBytes viewSize
13:29:31 <elliott> let (ptr, offs, len) = BI.toForeignPtr bytes
13:29:31 <elliott> return $ V.unsafeFromForeignPtr ptr offs len
13:29:32 <elliott> getView :: Get (Vector Cell)
13:29:34 <elliott> getView = V.unsafeCast <$> getViewBytes
13:29:37 * elliott sits back, waits for ais523's death by shock
13:29:48 <elliott> BI there stands for Data.ByteString.Internals by the way :P
13:29:50 <ais523> oh, I wasn't looking
13:29:55 <elliott> Sorry, Internal.
13:30:00 <ais523> and now I've seen that sentence, I haven't looked just in case
13:30:02 <ais523> should I?
13:30:08 <elliott> Only if you can stand ... the heat.
13:30:14 * ais523 looks
13:30:32 <ais523> wow, that is indeed insane
13:30:44 * elliott bows.
13:30:52 <elliott> Sure is fast though :P
13:30:53 <ais523> my mind is refusing to work out what it actually does, other than a line-by-line translation of the individual lines
13:31:08 <ais523> is that some sort of type punning via unions/reinterpreting byte sequences, in Haskell?
13:31:44 <elliott> It reads viewSize worth of bytes as a ByteString, gets the underlying ForeignPtr storage (plus the offset into it and the length -- ByteString does efficient slicing this way), and creates an immutable Vector out of it
13:31:54 <elliott> (unsafely, because you could twiddle the ForeignPtr after and change an immutable value)
13:32:11 <elliott> it then casts the vector to have another element type which conveniently has the same Storable representation
13:32:44 <elliott> gotta do these kinds of things when your program has to read, parse, and make a decision based on that information in 0.06 seconds
13:32:58 <fizzie> Vorpal: There are some places where you can get inside the cities/towns from the "overworld" (jumping above the walls); if you manage that, you'll find out that they are just cheap low-resolution props, with clip-through walls.
13:33:13 -!- MSleep has changed nick to MDude.
13:33:54 <elliott> ais523: apart from that little performance trick, though, the whole program is not as bad as you might expect :P
13:34:27 <ais523> heh, TAEB uses the same trick
13:34:27 <Vorpal> fizzie, ouch
13:34:32 <fizzie> Vorpal: Also the same the other way around: if you climb out of a city without using a gate, you'll just fall through the ground and fall forever.
13:34:35 <ais523> although it's done purely in Perl, so not quite as bad
13:34:46 <elliott> ais523: heh, really? how?
13:34:48 <ais523> there's a comment next to it commenting on how ugly it is, but it speeds it up 30%
13:34:54 <Vorpal> fizzie, that sucks badly.
13:34:58 <ais523> elliott: oh, it just breaks encapsulation of the way Moose actually stores objects
13:35:11 <elliott> those unsafe calls are actually totally safe in the context of what I'm doing, thankfully
13:35:13 <ais523> and instead of going via accessors to access tiles, it just does a sequence of dereference operations
13:35:19 <elliott> they just avoid needlessly reconstructing the same representation
13:35:20 <elliott> ais523: heh
13:35:26 <elliott> ais523: Moose is hideously slow, isn't it?
13:35:29 <ais523> which I think compile pretty much directly into C
13:35:46 <ais523> Moose is relatively bad, although it's getting better, it does all sorts of ridiculous speed tricks
13:35:48 <fizzie> Vorpal: It was a complaint occasionally made, given that in Morrowind there's just the one world with no nasty transitions.
13:35:54 <Vorpal> fizzie, ah
13:36:29 <ais523> what's the etymology of the phrase "clip through"?
13:36:39 <ais523> I've known what it meant for ages, but am not sure why it means that
13:37:17 <fizzie> ais523: IDNOCLIP from Doom 2?-) (Though I suppose in reality the usage predates that.)
13:37:30 <itidus20> IDSPISPOPD
13:37:31 <elliott> Any procedure which identifies that portion of a picture which is either inside or outside a picture is referred to as a clipping algorithm or clipping.
13:37:31 <elliott> The region against which an object is to be clipped is called clipping window.
13:37:40 <itidus20> shrugs
13:37:45 <elliott> Due to the use of the term 'no clipping' to refer to turning off collision detection, the two are often confused.
13:37:47 <elliott> no origin :(
13:37:49 <ais523> ah, so the engine was using its clipping algorithm to calculate collisions?
13:38:09 <ais523> and so you turned off clipping to be able to walk through walls, as it turned off collisions as a side effect
13:38:11 <ais523> that would make sense
13:38:36 <itidus20> If only they released the source code to doom, obsessive anoraks could grok these answers.
13:38:41 <Vorpal> ais523, uh, that seems to be extrapolating quite heavily from what elliott said
13:38:51 <Patashu> doom's been cloned at least twice
13:38:54 <Patashu> so I think people know how it works
13:39:03 <ais523> Vorpal: it's an educated guess, based on what I know and what's been said in the channel
13:39:10 <ais523> it's not quite the same thing as extrapolation
13:39:12 <itidus20> im not being sarcastic... something else
13:39:15 <ais523> it's... induction, or something
13:39:30 <Vorpal> hm yeah
13:39:39 <itidus20> a sort of "emphasis through sarcasm"
13:39:44 <itidus20> shrugs
13:39:49 <fizzie> ais523: That, or just general association with "no use of that thing which causes the player to be 'clipped' to stay within the allowed region".
13:40:09 <ais523> hmm, I find it hard to imagine a non-convex clipping region
13:40:13 <ais523> or at least, non-simple
13:40:29 <ais523> (in the sense that I expect clipping regions to be topologically equivalent to a circle/sphere)
13:40:37 <ais523> I'm not sure why, there's no inherent reason why they should work like that
13:41:03 <fizzie> It's because it's harder to cut holes in the middle of the paper, as opposed to just whittling down the edges.
13:41:24 <itidus20> is non-convex like with a dent in it?
13:41:41 <itidus20> like pacman?
13:42:27 <Patashu> there are clipping algorithms for concave polygons and clipping regions
13:42:40 <ais523> itidus20: indeed
13:42:59 <Patashu> it's more complicated because it can return multiply polygon pieces when given one polygon
13:44:26 <fizzie> SVG lets you clip with any path, text, or basic shape.
13:44:38 <Patashu> you can define a clipping region out of -text-?!?
13:44:39 <Patashu> wow
13:44:47 <Patashu> or clip text?
13:44:55 <fizzie> The former.
13:45:09 <fizzie> The clip-path property of anything can refer to a text object.
13:45:18 <Patashu> Trippy
13:46:16 <fizzie> The (presumably more efficiently implemented" 'clip' property can only be a rectangle, though.
13:46:24 <fizzie> s/"/)/
13:46:57 <Patashu> is svg guaranteed to look the same no matter what the implementation is, like most of opengl's features?
13:47:53 <Vorpal> if you meet someone on a sidewalk, which side do you try to pass them on?
13:48:02 <Patashu> I keep left
13:48:07 <elliott> Vorpal: over
13:48:10 <Vorpal> Patashu, living in a left or right hand drive country?
13:48:14 <Patashu> left
13:48:16 <Vorpal> aha
13:48:23 <elliott> or sometimes through
13:48:47 <ais523> Vorpal: I pick a side according to where they and I are relative to each other
13:48:48 <Patashu> the fourth dimension collision resolution mechanisms I resort to do not have words in your english language!
13:49:05 <ais523> it's the easiest way to avoid collisions
13:49:15 <Gregor> OK, bases + flag geysers *grumble mumble*
13:49:19 <Vorpal> Patashu, do people usually pass on the left on sidewalks there? In Sweden, which is right hand drive, it is quite common that one person try to pass on the left and the other on the right. Leading to some swaying back and forth
13:49:21 <ais523> note that the sidewalks/pavements in the UK are typically on both sides of the road, so there's the added complication that we might be on either side of the road
13:49:27 <Patashu> Vorpal, almost always left
13:49:31 <Vorpal> hm
13:49:58 <fizzie> Patashu: That would I guess be the ideal, but I'm not sure how close it gets. It's not like OpenGL would guarantee you anything about cases involving floating-point rounding, either.
13:50:02 <Vorpal> ais523, well of course, but lets say it is a narrow enough sidewalk, not a broad one where 10 people could walk side by side.
13:50:23 <ais523> when walking along a road without pavements, the convention (it's enforced by the Highway Code, which isn't a law but if you don't follow it anything bad that happens is your fault by default) is that you walk on the right-hand side of the road, so there's no issue with passing other pedestrians because they're on the other side of the road already
13:50:27 <Patashu> floating point rounding is a bitch, but isn't it consistent across different implementations?
13:50:36 <Patashu> possibly not across different math libraries
13:50:48 <ais523> Vorpal: with enough room for two side-by-side, which is more or less universal, you pick whatever side you happen to be on relative to the other person, in the UK
13:50:59 <ais523> and if it's unclear, you guess and move that way a long time in advance, so the other person moves the other way
13:51:32 <ais523> the rules for pedestrian passing bicycle are more interesting, partly because they're completely different between the UK and Canada and I almost got run over as a result
13:51:55 <fizzie> ais523: Here it's the left side of the road, using the justification that then the lane immediately next to you (right-hand-side drive here) is the one where the approaching cars will come from the front, so you will notice them more easily; as opposed to walking on the right side and having a car surprise you from behind.
13:52:15 <ais523> fizzie: I think it's the same reasoning in the UK, just mirror-reversed
13:53:19 <Vorpal> ais523, and if you happen to be on a exact collision course?
13:53:22 <Gregor> elliott: Feel free to pull
13:53:35 <ais523> Vorpal: you can't tell that's going to happen, so you guess
13:53:45 <ais523> there's a 50% chance the two people make the same guess, and the situation resolves itself
13:53:53 <ais523> and a 50% chance you don't, in which case try again
13:54:14 <elliott> Gregor: But it'll break my code :P
13:54:15 <ais523> in fact, the odds are more favourable than that, because the two people probably won't guess at exactly the same time
13:54:26 <ais523> and the first person can observe the second person moving and choose the correct side as a result
13:55:35 <fizzie> Patashu: I don't think OpenGL defines the order of operations in e.g. matrix multiplication -- I mean, you'd want to leave room for optimization in the implementations -- and for example I'd assume something like z-fighting is allowed to look different on different display cards.
13:56:15 <Patashu> if matrix multiplication didn't have an order of operations, you'd have no guarantees as to which order your translates, rotates and so on were used in
13:56:18 <Patashu> bad example I think
13:56:33 <fizzie> Patashu: I mean the individual operations involved in multiplying two matrices.
13:56:53 <fizzie> Of course they define which side of the multiplication which matrix is on.
13:57:03 <Patashu> oh, I see - you're saying that depending on what order you do it in it might incur floating point errors differently
13:57:09 <fizzie> Well, it will.
13:57:59 <Patashu> http://glprogramming.com/red/appendixh.html
13:58:21 <fizzie> We had a "multiply two matrices" exercise in one "object-oriented programming course", and the automated exercise checker was using stringwise comparisons with no tolerance for error.
13:58:31 <Patashu> Ouch
13:58:33 <fizzie> So you had to get your floating-point errors in the same order as whoever made the model solution.
13:58:34 <Vorpal> fizzie, did you report that issue?
13:58:43 <fizzie> Vorpal: Yeah, I think it got fixed.
13:58:47 <Vorpal> goofd
13:58:49 <Vorpal> good*
13:59:00 <fizzie> It was especially aggravating since the exercise checker in question featured a tolerance option out-of-the-box.
13:59:38 <fizzie> So, "not a pixel-exact specification". Sounds reasonable; I mean, it's usually more about speed than exactness.
14:00:43 <Gregor> Bleh, my flag rules are borked >_<
14:00:45 <ais523> GPUs only started doing exact floating-point recently
14:00:55 <Gregor> Flags CAN move lightspeed ._.
14:02:29 <elliott> help why am i sixteen in hours who made this mistake........
14:02:32 <elliott> who is responsible
14:02:46 <elliott> im having fifth-life crisis
14:02:58 <fizzie> Didn't IEEE ad a "half-precision" (16-bit) float format to IEEE 754 recent-ishly, after it was used so widely in the graphics world?
14:03:03 <fizzie> s/ad/add/
14:03:04 <Patashu> you're about to be 16?
14:03:22 <elliott> yes, that's a thing about to occur.
14:03:35 <Patashu> dang I'm jealous
14:03:38 <Patashu> I'm 20 and a half -.-
14:04:02 <Patashu> 20 = old geezer in internet years
14:04:10 <elliott> ais523: hey you're triple old geyser
14:04:11 <elliott> flag geyser
14:04:13 <elliott> Gregor:
14:04:14 <elliott> i am
14:04:15 <shachaf> elliott: Don't worry, you'll die by the time you're 32.
14:04:16 <elliott> making everything relevant
14:04:23 <elliott> to everything else... also I can't type right now :/
14:04:33 <elliott> shachaf: OK, who stored my age in an unsigned five-bit integer?
14:04:35 <elliott> Was it you?
14:04:49 <elliott> I have to blame _someone_.
14:04:50 <shachaf> It was actually a signed six-bit integer.
14:05:05 <elliott> Ah.
14:05:06 <fizzie> One 6502-or-Z80-I-forget-which C compiler supported an 8-bit float format, I think.
14:05:08 <Gregor> So he'll turn -32.
14:05:22 <shachaf> No, he'll die.
14:05:55 <elliott> Why does that always happen to me?
14:05:57 <elliott> Dying, I mean.
14:06:10 <shachaf> You deserve it.
14:06:21 <shachaf> I think there was a song that said that.
14:06:27 <Patashu> wait, 8 bit float?
14:06:30 <Patashu> that sounds like a shitty idea I came up with once
14:06:35 <Patashu> and dropped when I realized how shit its precision was
14:06:38 <elliott> shachaf: Thanks for the CTCPs
14:06:42 <elliott> I'd lost them
14:06:45 <Gregor> The flag can form a surrogate tail for an electron, because its rules are basically identical to a tail >_>
14:07:10 <elliott> Gregor: X-D
14:07:16 <elliott> Gregor: Goes along for the ride
14:07:35 <Gregor> elliott: THIS GAME SUX :P
14:07:41 <fizzie> Patashu: http://en.wikipedia.org/wiki/Minifloat has a one-byte example, but doesn't list any notable use cases. I thought it might've been the CC65 compiler, but it's not.
14:07:43 <elliott> Gregor: :(
14:07:46 <elliott> Gregor: Or do you just mean this revision
14:07:50 <Gregor> I mean this revision
14:07:55 <elliott> Good :P
14:08:02 <elliott> Gregor: I still like the idea of flags hitching a ride, though.
14:08:12 <Gregor> elliott: I don't like the idea of lightspeed flags >_>
14:08:31 <Gregor> (Although of all the means of creating lightspeed flags, this is arguably the least offensive)
14:08:48 <elliott> Gregor: Just make a flag in tail position do something bad?
14:08:51 <elliott> Like turn the electron into a flag.
14:09:16 <Gregor> elliott: The electron DOES turn into a flag. Just like it WOULD turn into a tail. Hence "surrogate tail"
14:09:55 <elliott> Gregor: OK, what I mean is, no electron moves forward :P
14:10:25 <Gregor> elliott: Can't accomplish that without increasing neighborhood size.
14:11:09 <Gregor> Or, I suppose, the electron could turn into a tail instead of a flag if there's any open conductor around it ...
14:11:16 <elliott> Yes, good :P
14:11:19 <elliott> LOGIC
14:11:31 <Gregor> That also means you can't duplicate flags ...
14:11:48 <elliott> Good?
14:11:56 <Gregor> Maybe
14:12:01 <elliott> If you have two routes, one might be fast, one might be slow, you don't know which
14:12:04 <elliott> Just send the opponent's flag along both
14:12:06 <elliott> Best of both worlds
14:12:07 <elliott> Sux
14:13:40 <Gregor> Right, you can't (easily) do that.
14:13:58 <Gregor> (Actually you can do that, just not by duplication, you have to divide and conquer)
14:13:59 <Patashu> I don't get this: http://en.wikipedia.org/wiki/Exponent_bias Isn't the most significant place going to have the sign bit anyway?
14:15:30 <Gregor> Patashu: What do you mean "anyway"? This isn't a two's-complement integer, in principle they could put it anywhere.
14:16:33 <fizzie> Patashu: There's a sign bit for the value itself, but the exponent is logically speaking an unsigned integer, with that bias added.
14:16:35 <Gregor> elliott: Yeah, actually, it would be hard NOT to get the right effect with two branching routes, even without duplication.
14:16:45 <elliott> Gregor: Fair enough :P
14:16:59 <Gregor> elliott: If you just send electrons along both routes that don't interfere with one another, I think it'll work.
14:17:19 <fizzie> Patashu: Note that it has a range of e.g. -126 .. +127 and not -127 .. +126, which is what you'd get by treating the exponent as an equally-wide two's-complement signed integer.
14:17:28 <Gregor> Ohnowait, because once they merge they're pulling, so it'll just be a synchronization issue which gets the flag >_>
14:17:30 <Patashu> Hmm
14:18:03 -!- pikhq_ has quit (Read error: Operation timed out).
14:18:45 <Gregor> elliott: Ohwait, there's a simpler rule to get what I want; for an electron to turn into a flag, it must first have a tail.
14:19:28 <fizzie> Patashu: And there's also that ordering-when-treated-as-an-integer guarantee. That probably wouldn't work for a regular signed binary exponent.
14:19:58 <Patashu> I get it now
14:20:22 -!- pikhq has joined.
14:22:44 -!- Lymia has quit (Quit: Huggles for everybody~ ^_^).
14:23:35 <Gregor> elliott: Yup, that rule works :)
14:23:52 <elliott> Gregor: Woo
14:24:54 <Gregor> The only caveat I can see is that if you have tailless electrons next to flags, then BOTH dissipate. Which may be good or bad, but it's unexpected.
14:26:13 <Gregor> (Amongst the implications of this fact is that if you have a double-wire, flags will ALWAYS dissipate along it)
14:26:55 <Gregor> Err, that is, at the meeting of a single->double. I suppose if you had a double right up to the geyser, it'd work *shrugs*
14:29:02 <fizzie> Vorpal: Not related to anything, but in either Morrowind or Oblivion (I think Morrowind) I got my dude stuck in a piece of wall after jumping at it funnily, and he was *really* stuck. Some console commands finally got him extracted from that wall.
14:29:19 <Vorpal> fizzie, oh there are console commands? heh
14:30:02 <fizzie> It's bound to the standard key: where ~ is in US keylayout, the "§ or ½" key here.
14:30:27 <Vorpal> ah
14:33:50 <cheater> fizzie: what layout is that?
14:34:03 <fizzie> cheater: Finnish/Swedish.
14:35:55 <fizzie> Apparently Danish has a similar key there, except it swaps which is shifted (i.e. §/½ -> ½/§). Those Danes, always doing everything backwards.
14:37:38 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:38:56 <fizzie> It also reverses the Norwegian "Ø, Æ" (to right of L; corresponds to the Swedish/Finnish "Ö, Ä") to be "Æ, Ø" for no apparent reason.
14:53:00 -!- copumpkin has joined.
14:54:29 -!- MDude has quit (Ping timeout: 258 seconds).
14:56:35 -!- NihilistDandy has quit (Read error: Connection reset by peer).
14:56:53 -!- NihilistDandy has joined.
15:20:43 -!- pikhq has quit (Ping timeout: 252 seconds).
15:20:45 -!- pikhq_ has joined.
15:35:44 <elliott> Gregor: Has it changed again yet :P
15:47:21 -!- sliddy has joined.
15:47:22 -!- oerjan has joined.
15:48:35 -!- sllide has quit (Ping timeout: 252 seconds).
15:50:48 <elliott> hi oerjan
15:51:27 <oerjan> goætmida elliott
15:56:07 -!- jix has joined.
15:56:28 <elliott> Gregor: I'll test the changes soon...
16:06:47 <oerjan> <ais523> when walking along a road without pavements, the convention (it's enforced by the Highway Code, which isn't a law but if you don't follow it anything bad that happens is your fault by default) is that you walk on the right-hand side of the road, so there's no issue with passing other pedestrians because they're on the other side of the road already
16:07:09 * oerjan makes a mental mark that britain has the opposite rule of norway
16:07:44 <oerjan> wait, that's of course logical
16:08:30 <oerjan> <elliott> help why am i sixteen in hours who made this mistake........
16:08:53 <fizzie> oerjan: Goat's mid-body?
16:09:39 <oerjan> somehow i'd mentally marked it as september...
16:10:21 <fizzie> So your lavish birthday present is still in the mail! How unfortunate.
16:10:38 <oerjan> fizzie: just god ettermiddag horribly misspelled according to my dialect, which accidentally makes it look like sami
16:11:34 <oerjan> based on a pun by my ex-collaborator
16:13:47 <oerjan> <elliott> im having fifth-life crisis
16:15:06 <oerjan> the real crisis comes when augur rings your doorbell at midnight
16:15:22 <augur> <sulu> helloooooooo
16:16:26 <oerjan> who is sulu
16:16:29 <augur> ...
16:17:16 <ais523> hmm, the compose key has come in useful already
16:17:33 <ais523> retyping a Norwegian error message on a French website into Google Translate so I could figure out what it said
16:17:54 <oerjan> why didn't you just ask D:
16:18:04 <ais523> I don't know how to type å without using compose
16:18:08 <ais523> on this keyboard
16:18:14 <oerjan> å då så
16:18:27 <ais523> oerjan: because I'd still have had to retype it in order to tell you what it said
16:18:51 <ais523> the funny thing is, I'd actually guessed what it was purely from words that were almost the same in Norwegian and English
16:18:55 <ais523> like "software", which is identical
16:19:10 <oerjan> borrowing _does_ tend to do that.
16:19:19 <ais523> indeed
16:19:50 <oerjan> the more official norwegian is "programvare"
16:20:11 <ais523> and even that's pretty English-looking
16:20:30 <oerjan> yeah that's obviously a translation borrowing
16:21:01 <oerjan> except with something more descriptive instead of soft
16:22:29 <Phantom_Hoover> > 1220 / 170
16:22:29 <lambdabot> 7.176470588235294
16:22:41 <oerjan> > 1220 % 170
16:22:41 <lambdabot> 122 % 17
16:33:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
16:42:24 <Gregor> elliott: So, how's your warrior? 100% CHAMP?
16:44:32 <Gregor> elliott: Also, I'm thinking of adding your wire inventory to the outgoing message, so maybe protocol change weee :)
16:45:33 -!- zzo38 has joined.
16:54:43 <CakeProphet> :)
17:02:34 <zzo38> )
17:13:34 <elliott>
17:13:39 <elliott> Gregor: There's wire inventories now?
17:13:55 <Gregor> elliott: Soon.
17:14:06 <elliott> Gregor: I was never sure about them in the first place...
17:14:16 <elliott> Gregor: If destroying is slower than building, then building is basically hard-limited.
17:14:23 <Gregor> Oh ... that's a good point X-D
17:14:32 <Gregor> OK, they're gone again :P
17:14:36 <elliott> If it's not, then all hell breaks loose :P
17:15:23 <Gregor> elliott: Pull.
17:15:57 <elliott> Has it been reverted to http://codu.org/projects/rezzo/hg/index.cgi/rev/3a6964850280, because if so I need do nothing :P
17:16:05 <Gregor> No.
17:16:09 <elliott> How does the new agent-drawing work?
17:16:13 <elliott> Is it the TOTALLY AWESOME TAIL IDEA
17:16:17 <Gregor> No
17:16:24 <elliott> Psht :P
17:16:30 <elliott> What is it then
17:16:34 <Gregor> Arrows.
17:16:50 <elliott> Ah.
17:16:55 <elliott> Still can't see 'em, but it's a start :P
17:16:58 <Gregor> ...
17:17:03 <Gregor> They're friggin HUGE
17:17:04 <elliott> Would you accept a patch to add the trails?
17:17:19 <elliott> Gregor: Define huge
17:17:25 <elliott> Maybe my warrior crashed
17:17:28 <elliott> Has wander been updated?
17:17:40 <Gregor> wander was updated at some point, yes.
17:17:55 <elliott> Can't see 'em even with four :P
17:18:17 <Gregor> Did you ... recompile ...
17:18:23 <elliott> Hmm
17:18:24 <elliott> That
17:18:26 <elliott> That may be the issue
17:18:39 <elliott> WHOA now this is different :P
17:18:52 <elliott> What's the white blocks at the centre of these hubs?
17:19:09 <elliott> And how come the warriors seems to pass through the hubs
17:19:47 <elliott> Hmm, I take it the colouring is just some sort of highlight then...
17:20:25 <elliott> Now to add n-w support to the Haskell
17:22:30 <Gregor> The coloring is just a highlight. The white blocks are the base and flag geysers.
17:22:41 <elliott> Right.
17:22:45 <elliott> Any way to distinguish them?
17:22:54 <Gregor> Not at present :P
17:22:56 <elliott> And, hmm, why would there be four blocks as opposed to two?
17:23:05 <Gregor> Prettier symmetry *shrugs*
17:23:21 <Gregor> (You start with two bases in front of you and two geysers behind you)
17:24:36 <Gregor> Is there some canonical list of distinct colors in order by decreasing distinctiveness? (e.g. the list you'd use to choose colors for teams or bar-charts)
17:24:52 <elliott> Gregor: It's called a colour wheel :P
17:25:01 <elliott> Oh my god, this program's behaviour is so awesome.
17:25:07 <Gregor> elliott: That's in order of INCREASING distinctiveness, and uninvertable.
17:25:20 <elliott> It's caused a SHITLOAD of electrons to attach to this path it's building :P
17:25:30 <elliott> Gregor: Dunno then; something with HSV? LSV or whatever?
17:25:34 <Gregor> Is that a metric shitload or an imperial shitload?
17:25:57 <elliott> Gregor: http://ompldr.org/vOXp0ag http://ompldr.org/vOXp0aw
17:26:06 <elliott> It's literally eating its own wire while they pulse away madly now :P
17:26:21 <Gregor> elliott: But can you beat wander???
17:26:29 <elliott> Gregor: Can you even beat anything at this point
17:26:36 <elliott> Does the software recognise such a state
17:26:51 <Gregor> Umm ... no :P
17:26:57 <Gregor> But I can add that relatively quickly :P
17:27:01 <elliott> WTF at this blinking... electrons ca't exceed lightspeed.
17:27:16 <elliott> Might just be a zoom artefact
17:27:21 <elliott> Gregor: That would be good :P
17:27:25 <Gregor> Remember that thanks to you there's no synchronization between drawing and acting ;P
17:27:35 <elliott> Thanks to me? :P
17:27:41 <elliott> Oh, you removed the lock?
17:27:44 <Gregor> Yeah.
17:27:46 <elliott> Why, I agreed it was a good idea in the end :P
17:28:02 <elliott> I mean, your time limits only matter within a single turn; you can spend a second messing around drawing after that if you want to.
17:28:06 <Gregor> It was shockingly slow ...
17:28:07 <Gregor> that lock ...
17:28:13 <elliott> Ah.
17:28:20 <elliott> Gregor: Well what you really want is something COW
17:28:20 <Gregor> Besides, locking is for pussies.
17:28:32 <elliott> So that the CA can start modifying the world again while the display thread draws the original
17:28:37 <elliott> <Gregor> Besides, locking is for pussies.
17:28:43 <elliott> This line is doing something patently impossible and it's very noticable :P
17:28:54 <elliott> It's flickering on and off in its totality every tick.
17:29:25 <elliott> Is it just me or is the playfield mebbe a little oversized?
17:29:47 <Gregor> <elliott> It's flickering on and off in its totality every tick. That, uhh, shouldn't be a locking issue :P
17:30:03 <Gregor> Have your random seed and warrior? :P
17:30:05 <elliott> Sure it is; it's just reading the cells at the worst possible time.
17:30:16 <elliott> It's an electron/wire sequence.
17:30:22 <elliott> Well, electron/electron tail/wire
17:30:25 <elliott> Or maybe no wire
17:30:26 <elliott> w/e
17:30:28 <elliott> But okay
17:30:37 <elliott> elliott@katia:~/Code/rezzo$ ./rezzo ./wonder
17:30:38 <elliott> Random seed: 448210167
17:30:38 <elliott> wonder is
17:30:42 <Gregor> The thing is, unless it's only managing to read one in every three frames, that shouldn't happen.
17:30:47 <elliott> http://sprunge.us/LPVI
17:30:55 <elliott> compile with recent GHC and -O2
17:30:58 <elliott> needs the cereal package
17:30:59 <Gregor> Err, even then ... that just makes no sense.
17:31:09 <elliott> Gregor: Oh, and it reported NoMessage
17:31:10 <elliott> NoMessage
17:31:10 <elliott> NoMessage
17:31:11 <elliott> During the run
17:31:16 <elliott> It was a long run, but that's still some nondeterminism there :P
17:31:22 <elliott> (That means the server said it failed to send anything last turn)
17:32:10 <Gregor> elliott: HALP HOW DO I HASKELL
17:32:19 <elliott> Gregor: ghc --make -O2 wonder.hs
17:32:20 <Deewiant> ghc --make foo.hs -O2
17:32:24 <elliott> Gregor: If you get an error, tell me the error
17:33:23 <Gregor> wonder.hs:9:18:
17:33:23 <Gregor> Could not find module `Data.Vector.Storable':
17:33:23 <Gregor> Use -v to see a list of the files searched for.
17:33:30 <elliott> Gregor: cabal install vector cereal
17:33:36 <elliott> (You're almost certainly lacking cereal if you're lacking vector :))
17:33:39 <Gregor> Already installed cereal
17:33:45 <elliott> Do the same for vector then :P
17:33:55 <Gregor> You should know your real dependencies GEEZE
17:33:59 <elliott> The Glorious Glasgow Haskell Compilation System, version 7.0.4
17:33:59 <elliott> For reproducibility purposes ;-)
17:34:00 <elliott> Gregor: I do
17:34:05 <elliott> vector, cereal
17:34:16 <elliott> Oh, and bytestring but come on
17:34:18 <Gregor> <elliott> needs the cereal package
17:34:29 <elliott> Well yeah, it didn't occur to me that humans existed without cereal.
17:34:32 <Deewiant> Needs base, too!
17:34:33 <elliott> True in every sense of the word.
17:34:36 <elliott> Deewiant: WILL FIX
17:34:40 <Gregor> <elliott> needs the cereal package <-- did not mention vector
17:34:45 <elliott> WAAH WAAH
17:34:54 <elliott> You don't mention your gratuitous libc dependency in the Makefile either
17:35:09 <elliott> Gregor: It occurs to me that rezzo might want something like ais' Secret Project... you need more than reproducibility of the map, you need reproducibility of an entire run :P
17:35:13 <elliott> Which is exactly what ais is doing.
17:35:19 <elliott> I don't know how fast it is though.
17:35:25 <elliott> It works without any kind of emulation I think so maybe not so slow.
17:35:43 <Gregor> Graphics look all good to me *shrugs*
17:36:01 <Gregor> Yeah, I know, the random seed is only a small part of repro, but *eh*, it's better than nothing.
17:36:09 <elliott> <Gregor> Graphics look all good to me *shrugs*
17:36:10 <elliott> It takes ages
17:36:14 <elliott> Wait until it wraps around at least once
17:36:31 <Gregor> It's noming its own line right now.
17:36:41 <elliott> Wait until it gets about three/fourths up
17:36:43 <elliott> You should see the flickering
17:36:57 <elliott> Maybe it's just my display but the effect persisted on (badly smoothed) Compiz zoom
17:37:18 <Gregor> Oh, I see what's happening.
17:37:21 <Gregor> No, that's legit.
17:37:36 <elliott> What is happening :P
17:37:38 <Gregor> The electrons /next/ to that are happily attacking an empty conductor.
17:37:48 <Gregor> It totally fills up, then dissipates, then totally fills up again
17:37:56 <Gregor> Every cell has at least one electron next to it, in the next wire over.
17:38:07 <elliott> lol :P
17:38:10 <elliott> Nice.
17:38:53 <Gregor> (So no, no electrons are moving faster than lightspeed)
17:39:04 <Gregor> PS have we discussed how awesome the name for this software is?
17:39:12 <elliott> What's so awesome :P
17:39:38 <Gregor> Dood, it's REZZO
17:39:42 <Gregor> Say it with an Italian accent
17:39:46 <Gregor> Rezzo!
17:39:53 <elliott> Argh, I wanted to add SLIGHTLY non-trivial behaviour to wonder but I need a queue already
17:39:59 <elliott> Gregor: ...Resource?
17:40:04 <elliott> Resso...rect?
17:40:18 <elliott> You have to remember that I'm literally an idiot.
17:40:42 <elliott> Also my idea of an Italian accent is Mario.
17:40:43 <Vorpal> fizzie, any idea about this: I walked a long distance along a road and suddenly I started repeatedly falling through the road before being moved up again.
17:40:45 <Vorpal> very strange
17:40:52 <elliott> Vorpal: You may be in Hell.
17:41:09 <Vorpal> elliott, not really no
17:41:58 <elliott> Gregor: I don't suppose I can piggyback my Haskell warrior crap into the repo on the grounds of having a bunch of example warriors, 'cuz it sure would be convenient to commit this :P
17:42:10 <Gregor> elliott: The name has no meaning.
17:42:10 <elliott> TAKE OVER EVERY REPOSITORY........
17:42:18 <Gregor> elliott: I actually have no idea why I called it that.
17:42:21 <elliott> Gregor: Oh :P
17:42:25 <elliott> Well, it's a nice name.
17:42:39 <Gregor> elliott: I had started work on a precursor a few days ago, then gave up, then found that directory again but can't remember why I called it that.
17:42:44 <elliott> X-D
17:43:05 <elliott> I usually end up with directories in Code/ that I don't even know what they are.
17:43:38 <fizzie> Vorpal: Sounds more Minecrafty than Obliviony. :p
17:43:54 <Gregor> elliott: One sec.
17:43:59 <Vorpal> fizzie, was definitely oblivion.
17:45:02 <oerjan> google seems to imply rezzo means "shade"
17:45:58 <elliott> Gregor: What am I waiting for?
17:46:07 <fizzie> Vorpal: It's a glitchy game, though. If you haven't, I may suggest http://www.uesp.net/wiki/Tes4Mod:Unofficial_Oblivion_Patch -- though it probably wouldn't fix a bug like that, it's very good in terms of avoiding really annoying "oh no the quest state got all confused and now I can't progress" problems. (1800 bugs and 70000 object placement errors are no joke.)
17:46:44 <Gregor> My latency is like a bazillion right now.
17:46:45 <Vorpal> fizzie, ah, didn't know that. Will get it
17:46:49 <Gregor> elliott: I'm setting up a warriors repo.
17:47:01 <Gregor> Which would be done if my latency wasn't a billion
17:47:18 <elliott> Gregor: Great, so I can dominate the hill with my ten Haskell warriors with the same underlying framework
17:47:19 <elliott> WMAHAHAHAHAHA
17:47:20 <fizzie> Vorpal: As a word of warning, it does fix some exploitable-for-your-benefit bugs too, like the infamous floating brush one.
17:47:22 <elliott> W...mahaha.
17:47:35 <Vorpal> fizzie, floating brush?
17:47:44 <elliott> Gregor: I have a feeling this game will be less popular than BF Joust, more thinking required :P
17:47:45 <Gregor> elliott: https://codu.org/projects/rezzo/warriorhg/
17:47:52 <Gregor> elliott: Username ehird, password whatever it was for Plof.
17:48:00 <elliott> Does hg have a submodule thing?
17:48:03 <elliott> I forget.
17:48:08 <Gregor> Yes
17:48:21 <Gregor> See google.com/search?q=hgsub :P
17:48:35 <elliott> Jesus that's cpomplicated
17:48:41 <elliott> Maybe I'll just clone this into a subdirectory of my clone
17:49:05 <fizzie> Vorpal: In the "stock" Oblivion, paint brushes aren't affected by gravity. You can place them in air, and they stay exactly where they were put. In addition, if you place enough of them, you can jump and stand on top of them. Combined with one of the item-duplication bugs you can pretty much go anywhere, as long as you have the patience to place a few thousand paint brushes to build a bridge.
17:49:28 <elliott> fizzie: Amazing
17:49:29 <Vorpal> fizzie, lol
17:49:44 <Vorpal> fizzie, how could they not officially patch this stuff
17:49:50 <elliott> That is just the best bug ever
17:49:58 <oerjan> i cannot really get a confirmation from outside google translate, though.
17:50:02 <elliott> Is that simpler than using the console to cheat :-)
17:50:33 -!- pikhq has joined.
17:50:42 <fizzie> elliott: Probably not, but of course a purist would only use in-game mechanisms. Plus I think the console's not available for people playing the console versions. (How ironic.)
17:50:45 <Vorpal> elliott, nope. But it isn't technically cheating. Just exploiting a bug
17:50:46 <oerjan> oh there
17:51:13 -!- pikhq_ has quit (Ping timeout: 264 seconds).
17:51:14 <oerjan> English words for the Italian word rezzo
17:51:16 <oerjan> breeze, coolness, shade
17:51:43 <fizzie> "The console is only available on the PC; there is no way to use the console on the Xbox 360 or PS3 platforms." Right.
17:52:05 <oerjan> also it's an italian place name
17:52:37 <Gregor> oerjan: Well I knew it was Italian. Even though I "made it up", it sounds too Italian not to be legit.
17:54:05 <elliott> Gregor: I'ma just clone it into a subdirectory :P
17:54:11 <elliott> Unless you want to "officially" make it a subrepo.
17:57:51 <Gregor> I don't at all want to make it a subrepo.
17:58:01 <elliott> Okay.
17:58:07 <elliott> I don't know hg at all :P
17:59:24 <elliott> SF(ret->damage, malloc, NULL, (w*h));
17:59:24 <elliott> memset(ret->damage, 0, w*h);
17:59:27 <elliott> Gregor: Isn't calloc standard?
17:59:35 * elliott is trying to add trails
17:59:51 <ais523> calloc's rarely used, but that fits the definition of calloc pretty much exactly
17:59:55 <ais523> multiplication and all
18:00:23 <ais523> (what /is/ up with calloc's API?)
18:01:08 <elliott> ais523: mimics arrays, I guess
18:01:10 <elliott> static arrays, that is
18:01:15 -!- sliddy has changed nick to sllide.
18:01:23 <elliott> one param is a sizeof
18:01:25 <zzo38> I don't know, I have not used calloc in C
18:01:26 <fizzie> ais523: It does match fwrite/fread. Maybe they threw a d2 when deciding whether to do the multiplication inside or outside.
18:01:29 -!- sllide has changed nick to sliddy.
18:01:37 -!- sliddy has changed nick to sllide.
18:02:05 <ais523> I think someone pointed out that replacing calloc with malloc, a multiplication, and a zero is incorrect (the other way round is correct), but most stdlibs do anyway
18:02:16 <ais523> calloc(SIZE_MAX,SIZE_MAX) should probably fail
18:02:21 -!- copumpkin has joined.
18:02:28 <ais523> and definitely, shouldn't give you jus the one byte
18:03:08 <fizzie> Yes, I've always wondered if calloc impls bother to do the multiplication carefully.
18:03:14 <fizzie> Most callers of malloc certainly don't.
18:03:37 <ais523> fizzie: most impls in the wild don't either
18:03:48 <ais523> malloc callers probably know there can't be an overflow anyway, though
18:04:06 <ais523> or at least, that an overflow would break the program whether now or later
18:04:11 <Gregor> Yeah, I never use calloc, not sure why.
18:04:56 <ais523> because what it does is generally not a useful thing to do
18:05:21 <zzo38> How should Glk keyboard events be represented in Haskell, since using toEnum to convert invalid Unicode numbers to Char doesn't work
18:06:47 <elliott> zzo38: Word32, probabl
18:06:48 <elliott> y
18:07:14 <CakeProphet> best malloc implementation: void *malloc(size_t size) {return realloc(NULL, size);}
18:07:31 <zzo38> Yes that would work. I don't know if it is best way though
18:07:36 <Gregor> Especially good if you implement realloc in terms of malloc.
18:07:49 <CakeProphet> exactly. then you don't even have to implement anything!
18:08:19 <CakeProphet> lazy memory management.
18:08:44 <zzo38> It can use toEnum with 0xFFFF and 0xFFFE to Char but I don't know if that is proper in Haskell, since those are not valid Unicode characters.
18:10:08 <CakeProphet> (unsafeCoerce 0xFFFF) :: Char --can't be more proper than this
18:10:33 <oerjan> > maxBound :: Char
18:10:34 <lambdabot> '\1114111'
18:10:53 <oerjan> > showHex 1114111 ""
18:10:54 <lambdabot> "10ffff"
18:10:59 <elliott> Gregor: Well, I have tails... they're inefficient, have an overflow problem, and are always red... but apart from that...
18:10:59 <fizzie> Heh, "man mallopt" on my system: "[In synopsis:] void *malloc_get_state (void); int malloc_set_state (void *ptr); [In description:] malloc_get_state() returns a ... malloc_set_state()" (the ellipsis is a literal quote).
18:11:06 <zzo38> The Haskell 2010 report just says "The character type Char is an enumeration whose values represent Unicode (or equivalently ISO/IEC 10646) characters". It doesn't say some numbers that are still in the range 0x0000 to 0x10FFFF are valid or not valid.
18:11:17 <Gregor> elliott: Huh?
18:11:19 <elliott> zzo38: it also doesn't say that the type can't contain a pink banana
18:11:27 <elliott> zzo38: the values represent Unicode characters and therefore nothing else
18:11:28 <CakeProphet> fizzie: so you found a poorly documented piece of software?
18:11:28 <Gregor> elliott: Wait, you're implementing tails in rezzo???
18:11:34 <elliott> Gregor: Trails :P
18:11:38 <elliott> But I typo'd them as tails so NOW THEY'RE TAILS
18:11:42 <fizzie> CakeProphet: Not just any software, GNU software!
18:11:45 <zzo38> CakeProphet: Although, toEnum will also do that but only in range
18:11:50 <Gregor> elliott: If you commit that ... murder.
18:12:04 <elliott> Gregor: I don't have push access to the rezzo repository that I'm aware of.
18:12:11 <elliott> Gregor: But jeez, I was just writing it for you to take a look at :P
18:12:16 <zzo38> elliott: Does that mean GHC has a defect that allows (toEnum 0xFFFF :: Char) to work?
18:12:23 <Gregor> elliott: This is not snake, man :P
18:12:27 <elliott> Gregor: I don't see what's so inherently wrong about it; it only draws the colour when it would have been black.
18:12:32 <elliott> And no, but it provides much easier visibility of warriors.
18:12:36 <CakeProphet> > toEnum 0xFFFF :: Char
18:12:37 <lambdabot> '\65535'
18:12:44 <oerjan> > length [minBound .. maxBound :: Char]
18:12:45 <lambdabot> 1114112
18:12:54 <elliott> zzo38: hmm
18:13:00 <elliott> zzo38: I guess that's a bug, but a pretty low-priority one :P
18:13:13 <oerjan> > foldl1' seq [minBound .. maxBound :: Char]
18:13:14 <lambdabot> '\1114111'
18:13:21 <elliott> Gregor: BTW, by "tail", I mean it fades out the further away it is
18:13:31 <elliott> So it's basically just a SPEED LINE :P
18:13:36 <Gregor> Uhh
18:13:55 <oerjan> zzo38: no sign there is anything empty in the range
18:14:14 <fizzie> oerjan: Except the documentation, which says "Unicode characters".
18:14:17 <elliott> oerjan:
18:14:19 <elliott> oops
18:14:29 <elliott> oerjan: 0xFFFF isn't a Unicode character
18:14:33 <elliott> is it a Unicode codepoint, though?
18:14:36 <fizzie> It is.
18:14:36 <CakeProphet> older verions of malloc returned char *......?
18:14:43 <elliott> zzo38: I think the report really means codepoint and it just says character :-)
18:14:54 <fizzie> CakeProphet: Before the invention of "void *", that's probably the best you could do.
18:15:02 <elliott> CakeProphet: Like void * makes any sense
18:15:09 <elliott> sizeof(*p) where p is (void *) should be 0
18:15:14 <CakeProphet> void * makes perfect sense.
18:15:18 <elliott> sizeof(*p) where p is (void *) should be 0
18:15:27 <elliott> Or hmm
18:15:29 <elliott> What's sizeof(void)
18:15:31 <elliott> Can you even do that
18:15:33 <CakeProphet> no
18:15:41 <CakeProphet> void * just means you have a pointer...
18:15:42 <fizzie> Undefined: it's an incomplete type, that can never be completed.
18:15:44 <elliott> void isn't actually a type, so no, (void *) doesn't make sense.
18:15:51 <CakeProphet> no type. it's a pointer. it pointers to a word of memory.
18:15:53 <elliott> CakeProphet: "it makes sense because it just means what it means"
18:16:00 <CakeProphet> yep.
18:16:08 <elliott> nice circular
18:16:12 <elliott> but i have more fun things to do
18:16:18 <CakeProphet> rectangular logic?
18:19:10 <fizzie> A bitfield can also never be sizeof'd at all (or pointed to, even), nor can functions. Everything else (that is not an incomplete type) should be fair game.
18:19:32 <CakeProphet> basically void* makes sense because memory addresses are inherently typeless.
18:20:41 <CakeProphet> or they can be, anyways.
18:20:44 <fizzie> This is also the silly:
18:20:46 <fizzie> !c size_t foo = sizeof printf("foo - "), bar = sizeof (char[printf("bar - ")]); printf("baz: %zu %zu\n", foo, bar);
18:20:48 <EgoBot> bar - baz: 4 6
18:21:09 <fizzie> Pre-C99 it was always clear, the sizeof'd expression is never evaluated. But nowadays if it's a VLA it suddenly will be.
18:22:06 <CakeProphet> that's a beautiful misuse of features.
18:22:34 <elliott> so that sizeof is resolved at runtime? nice.
18:22:44 <CakeProphet> makes me proud to be a programmer.
18:22:48 <CakeProphet> with some many bright folks out there.
18:22:48 <elliott> i suppose they have to be for vlas.
18:28:18 -!- azaq23 has joined.
18:29:51 <zzo38> I still think Unicode is badly designed in many ways though
18:30:25 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
18:30:35 <elliott> Gregor: OK fine, no tails :P
18:30:36 <elliott> YOU WIN
18:30:41 <elliott> The psychological torture is too much.
18:33:02 <Gregor> I just added proper loss conditions.
18:33:10 <elliott> Gregor: I CAN;T TAKE IT ANY MOE
18:37:17 <Gregor> I daresay this game is starting to make sense.
18:37:36 <Gregor> I also daresay it will take all freaking eternity to FIND another player, let alone kill them.
18:38:06 -!- myndzi has joined.
18:38:55 <ais523> Gregor: isn't that the whole concept of Core Wars?
18:39:06 <ais523> well, except when you're playing against a paper-strategy program
18:39:40 <Gregor> Fair point
18:40:43 <Vorpal> <Gregor> I daresay this game is starting to make sense. <-- what game is it?
18:41:22 <Gregor> Vorpal: Rezzo. It's a competitive programming capture-the-flag game played on a wireworld-derived CA.
18:41:39 <Gregor> Also, its documentation is awesome:
18:41:39 <Gregor> $ ./rezzo --help
18:41:39 <Gregor> --help?! What's this nonsense!
18:41:40 <Vorpal> Gregor, innovative.
18:41:51 <Vorpal> Gregor, so what does man rezzo do?
18:42:04 <Gregor> $ man rezzo
18:42:04 <Gregor> No manual entry for rezzo
18:42:08 <Vorpal> Gregor, ouch
18:51:45 <elliott> Gregor: hg import patch for you: http://sprunge.us/hIKf
18:52:14 <Gregor> elliott: :(
18:52:32 <elliott> Meanwhile:
18:52:32 <elliott> https://codu.org/projects/rezzo/warriorhg/index.cgi/file/2cf20f7fdf02/wander.hs
18:52:35 <elliott> Fewer lines of code than yours.
18:52:43 <elliott> If you whip out the dependency argument I'll point to wander.c's dependencies :P
18:59:52 <CakeProphet> elliott: the next thing to do seems to be use a data structure to keep track of the current known grid.
19:00:08 <elliott> No, the next thing is a queue, and then the next thing after that is a threading system :P
19:00:11 <elliott> That comes later.
19:00:41 <CakeProphet> perhaps even make predictions about locations that are not in view by running the CA each step.
19:00:52 <CakeProphet> but keep the "predicted" grid seperate from the "last known" grid
19:03:25 <CakeProphet> also keep track of how long each predicted cell has deviated from the last known cell, so that the agent can make decisions on the likelihood of the predicted cells correctness.
19:05:46 -!- azaq23 has quit (Ping timeout: 260 seconds).
19:06:11 -!- azaq23 has joined.
19:08:27 <elliott> Gregor: Well, I've invented the most terrible one yet.
19:08:36 <Gregor> Yesssssssss
19:08:55 * elliott pushes
19:09:38 <elliott> Gregor: Pull warriors repo, make, then try rezzo on "tantrum" :P
19:10:30 <ais523> someone explain the rules of this game to me
19:10:36 <Gregor> elliott: Now that's what I call AI.
19:10:43 <elliott> ais523: WireWorld plus external influence
19:10:49 <Gregor> ais523: Do you know Wireworld? (If not, learn that first)
19:10:53 <ais523> I do
19:10:59 <ais523> well, I can't remember all the details
19:11:00 <Gregor> elliott: That arrow is throwing a FIT!
19:11:05 <ais523> but I knew them once, and I know the general concept
19:11:19 <elliott> ais523: bots can turn around, move forwards, move forwards and lay wire behind them (simultaneously), and hit the cell in front of them (four times to destroy)
19:11:38 <elliott> there's also bases and flag geysers, you have to attach the opponent's flag (travels with electron, comes from geyser) to your base
19:11:39 <ais523> ah, OK, four operations
19:11:44 <elliott> so it's CTF, WireWorld style
19:11:49 <Gregor> Yup
19:12:01 <Gregor> I should write down the CA rules :P
19:12:11 <ais523> and you can destroy each of wire/wire+spark/wire+tail back to no-wire by spending four turns?
19:12:13 <elliott> ais523: oh, and 0.06s per turn, realtime
19:12:29 <elliott> and you can turn exactly one cell to space by hitting four times, doesn't matter consecutive or not
19:12:33 <elliott> including geysers, etc.
19:12:38 <elliott> even agents i think?? Gregor?? :P
19:12:44 <ais523> what specifically's the victory condition?
19:12:44 <Gregor> No, not agents, bases or geysers.
19:12:51 <elliott> oh, okay
19:12:55 <Gregor> ais523: Enemy flag next to your base.
19:12:55 <elliott> ais523: <elliott> there's also bases and flag geysers, you have to attach the opponent's flag (travels with electron, comes from geyser) to your base
19:13:09 <elliott> Gregor: tantrm's strategy is truly brilliant
19:13:21 <elliott> Gregor: it builds forwards; if it can't, it hits out in front of it, and then turns left and restarts
19:13:29 <elliott> so if it gets trapped, it just spins around hitting things until it escapes
19:13:51 <ais523> can there be more than one flag corresponding to the same player at a time?
19:14:00 <elliott> yes.
19:14:04 <elliott> that's why you have a geyser of them :P
19:14:16 <ais523> I wasn't sure when the geyser generated a new one from the description so far
19:15:01 <Gregor> ais523: I'm writing up a README with a more useful description :P
19:15:02 <elliott> Gregor: Y'know, if both warriors respond in under their given time, you could avoid waiting the rest of the turn, and speed up perhaps the majority case massively...
19:15:26 <Gregor> elliott: Hello -q
19:15:37 <elliott> Gregor: Yeah, but, I mean, without disturbing the limit...
19:15:44 <Gregor> ... that's what -q does.
19:15:58 <ais523> I imagine the playfield has to be quite small to make this woek
19:15:59 <ais523> *work
19:16:01 <elliott> Gregor: Oh, really?
19:16:12 <Gregor> ais523: We're not really sure what, if anything, works :P
19:16:13 <elliott> ais523: I'm starting to think that the viewport should maybe be bigger and the playfield smaller
19:16:20 <elliott> the big field seems a non-starter to me
19:16:26 <elliott> it's essentially the same challenge repeated a bunh of times
19:16:27 <ais523> same
19:16:32 <elliott> which just = pointless slowness
19:16:40 <elliott> but you should have to explore a few areas before finding what you want
19:16:46 <elliott> so I'm not sure how big it should be
19:16:55 <ais523> what about a strategy of just building loads of wires connecting to your base
19:17:03 <elliott> I suspect that, modulo the time it actually takes to move, multiplying the viewport and board size by the same amount has no effect
19:17:06 <ais523> in the hope that a connection to the enemy's geyser ends up colliding with one
19:17:07 <elliott> on the overall slowness, I mean
19:17:27 <elliott> ais523: why would the enemy be connecting its geyser to anything?
19:17:40 <elliott> Gregor: Wow, tantrum is REALLY unproductive :P
19:17:44 <ais523> well, one of the wires you build might end up next to it eventually
19:18:11 <elliott> Gregor: I like how it's basically nondeterministically scribbling somehow...
19:18:16 <elliott> Langton's ant esque
19:18:35 <elliott> Gregor: OK, so new question: Why's -q not the default? :P
19:19:05 <Gregor> elliott: Because you should allow bots to use their spare time for thinking.
19:19:36 <elliott> Fair enough
19:19:49 <elliott> Didn't think of that because my two bots so far are really dumb :P
19:19:53 <elliott> And one of them is stolen :P
19:20:00 <ais523> Gregor: if they want to do that, why don't they just delay their submission until right at the end of their timeslice?
19:20:22 <elliott> ais523: Might miss it because of nondeterministicness... but that's also a good point
19:20:35 <elliott> (Nondeterministicnes sbeing "IO")
19:20:46 <elliott> What, less than four hours :/
19:21:13 <elliott> Gregor: Tantrum produces really interesting patterns :P
19:21:17 <Gregor> ais523: Yeah, too much scheduling involved, you couldn't do it accurately.
19:21:45 <ais523> elliott: isn't tantrum a variant of langton's ant?
19:21:56 <elliott> ais523: hmm, you think it might literally be that?
19:21:56 <ais523> not exactly the same because of the four-hits thing and it doesn't turn right on success
19:22:04 <ais523> but those are the only differences
19:22:04 <elliott> hmm
19:22:17 <elliott> that would explain why it's making interesting patterns spasmodically in its little corner :)
19:22:23 <elliott> when does it shoot away and become turing-complete?
19:22:42 <elliott> wait, does this mean that langton's ant can be decoded directly into rezzo?
19:22:44 <elliott> :D
19:24:49 <elliott> case updateAck update of
19:24:50 <elliott> OK -> push ActionQ (Turn R) >> push actionQ Build
19:24:50 <elliott> InvalidAction -> replicateM_ 4 (push actionQ Hit) >> push actionQ Advance >> push actionQ (Turn L) >> push actionQ Build
19:24:52 <elliott> feels like it should be easier
19:24:59 <elliott> (InvalidAction = "you tried to build/advance but you bashed into a wall")
19:28:47 <Gregor> ais523: https://codu.org/projects/rezzo/hg/index.cgi/raw-file/4f41806a8067/README
19:28:57 * ais523 reads
19:29:16 <ais523> elliott: I don't think Langton's Ant has ever been proven TC
19:29:45 <ais523> in fact, nobody's yet proven or disproven that given a finitely-many-cells-set initial condition, it always goes off and builds a highway eventually
19:30:30 <elliott> Gregor: The universality of Langton's ant was proven in 2000.[2]
19:30:31 <elliott> erm
19:30:31 <elliott> ais523:
19:30:37 <elliott> http://www.dim.uchile.cl/~anmoreir/oficial/langton_dam.pdf
19:30:49 <elliott> ais523: also osmeone else from the seolang wiki got published in Complex Systems.......
19:30:56 <ais523> elliott: aha
19:31:14 <elliott> but they were a person who is not as good a person who could have been published as most because they are the person who argued a lot about TC and "practical machines" (User:Oleg) oops......
19:31:28 <ais523> Gregor: the CA there looks a little buggy; in particular, flags don't conduct along conductors
19:31:32 <elliott> Gregor: -w and -h change the protocol, right?
19:31:33 <ais523> or, wait, do flags replace electron /tails/?
19:31:40 <Gregor> ais523: Flags replace electrons.
19:31:53 <Gregor> ais523: If you send an electron current at a flag, it will drag the flag towards the source.
19:32:25 <ais523> ah, hmm, so flags aren't actually anything like electrons, because they move in the other direction, and don't move of their own accord
19:33:01 <Gregor> Yeah
19:33:17 <Gregor> And actually you reminded me that I missed a condition in a rule :P
19:33:24 <Gregor> * electron:
19:33:24 <Gregor> * if one or more neighbor is a flag or flag geyser and one or more neighbor
19:33:24 <Gregor> is an electron tail,
19:33:48 <ais523> what information do agents have about their surroundings? just whether their previous attempted move was legal?
19:33:55 <elliott> ais523: they also see their viewport
19:34:01 <elliott> and the damages of all cells within
19:34:15 <ais523> everything, including owners of flags, etc?
19:34:24 <elliott> those are part of the states, so yes
19:34:34 <elliott> it's just a notational convenience to consider them equivalent
19:34:43 <ais523> hmm, and flags can only be destroyed by sending an electron adjacent to two differently-colored flags at once
19:35:06 <Gregor> ais523: Or just hitting them.
19:35:16 <ais523> ah right
19:35:16 <elliott> Hitting things: the best strategy.
19:36:03 <ais523> hmm, as far as I can tell it's completely obvious strategy to try to prevent any of your own flags being generated
19:36:31 <Gregor> ais523: That's obvious /strategy/, but it's not easily accomplished.
19:37:08 <ais523> against a single opponent, it's trivial; build a square of conductor (of any size, so long as you have room to move inside it) around your geyser
19:37:17 <ais523> that fits inside your viewport
19:37:24 <elliott> wire can be destroyed
19:37:26 <elliott> (conductor is a lame name)
19:37:31 <ais523> then whenever your opponent moves adjacent to it, you move to the other side of the same wire
19:37:48 <ais523> and repair it if they destroy it; repairing is faster than destroying
19:38:01 <elliott> Gregor: Writing a bot for this seems much more like a real AI task than BF Joust
19:38:08 <ais523> ah hmm, that only works if bots can't share a square
19:38:12 <elliott> Like, you want pathfinding pretty much immediately.
19:38:14 <elliott> ais523: They can't, CA.
19:38:17 <ais523> but you can easily always be in a position to repair
19:38:18 <Gregor> elliott: Yeah, but you can write it in any language, not just BF :P
19:38:21 <ais523> elliott: simple enough, then
19:38:37 <ais523> can you see which way the opponent is facing?
19:38:44 <elliott> Gregor: Doesn't make it easier :P
19:38:48 <elliott> ais523: Nope, but I did suggest that to Gregor once.
19:38:50 <ais523> if you can, it's even more obviously trivial to create an impenetrable convex barrier
19:38:59 -!- azaq23 has quit (Quit: Leaving.).
19:39:29 <ais523> if you can't, the opponent could knock the whole thing to 1 hit left, and then random-walk along it until you guessed the wrong direction and couldn't catch up with it
19:40:00 <elliott> Gregor: help hes desrtroying our ofensives
19:40:43 <ais523> this suffers from the usual BF Joust problem of "it can't do anything else", of course
19:40:44 <Gregor> He has fair points.
19:41:18 <Gregor> ais523: I'm hoping that the fact that the bots are in any language partially alleviates that :P
19:41:33 <ais523> Gregor: I mean, it's using all its actions defending
19:41:35 <ais523> and has no time to try to win
19:41:58 <Gregor> Oh, right.
19:42:01 <Gregor> You can only stalemate.
19:42:13 <Gregor> And if there are >2 bots, lol
19:42:40 <ais523> I know that in the "golfed BF Joust" thing I was wondering about, I was going to add a rule that "if the game goes to timeout, whichever program did the longest sequence of waits in a row wins"
19:42:43 <Vorpal> Gregor, how many dimensions does the game world have?
19:42:45 <Deewiant> How big is the world?
19:42:51 <Vorpal> 2D?
19:42:53 <Gregor> Vorpal: 2.
19:42:56 <Gregor> Deewiant: User-specified.
19:43:03 <Deewiant> Typical? :-P
19:43:05 <Gregor> Deewiant: Default 640x640 right now, which may be too big.
19:43:05 <elliott> <elliott> Gregor: -w and -h change the protocol, right?
19:43:14 <ais523> that rule basically makes defence programs and attack programs of similar qualities similar lengths
19:43:19 <Gregor> elliott: No, why would they?
19:43:22 <ais523> because you don't have to stick a whole full-tape clear in there
19:43:26 <Gregor> elliott: Only the viewport is part of the protocol.
19:43:28 <elliott> Gregor: Oh, viewport is still the same, duh...
19:43:38 <Vorpal> Gregor, is there a time limit for how long a bot is allowed for a turn?
19:43:50 <Gregor> Vorpal: 1/15th of a second, or as specified.
19:43:52 -!- azaq23 has joined.
19:43:57 <Vorpal> ah
19:44:34 <Vorpal> Gregor, the thing about allowing any language is good. Means you can do complex logic and tracking state of what the opponent did to a far greater level than in bfjoust
19:44:44 <Vorpal> Gregor, will egobot support tournaments for this?
19:45:10 <Vorpal> Gregor, view port? So the bots have a limited vision?
19:45:20 <Vorpal> makes everything a lot more interesting
19:46:01 <Gregor> Vorpal: EgoBot almost certainly won't :P
19:46:16 <Gregor> Vorpal: Yes, bots have a limited viewport. They also don't know their absolute location or orientation.
19:46:17 <elliott> Gregor: I'ma vote 338x338 for default size :P
19:46:31 <Gregor> elliott: That's ... a bit big, and not odd. Although I agree with increasing it.
19:46:31 <Deewiant> 338?
19:46:40 <elliott> Deewiant: Viewport squared times tw
19:46:40 <elliott> o
19:46:54 <elliott> At first I thought, viewport size of viewports
19:46:58 <elliott> But that's just 169x169
19:47:03 <elliott> You're likely to end up right next to your opponent
19:47:05 <ais523> do programs know the location of their own flag geyser and base?
19:47:06 <elliott> So I doubled it :P
19:47:11 <elliott> ais523: they spawn next to them, so yes
19:47:11 <Gregor> ais523: They start at them.
19:47:19 <ais523> oh, they're next to each other?
19:47:21 <zzo38> They have added some useful stuff in Glk although WinGlk is still using the old version of the specification.
19:47:35 <Gregor> ais523: Not /right/ next to each other, but close.
19:48:00 <Vorpal> <Gregor> Vorpal: Yes, bots have a limited viewport. They also don't know their absolute location or orientation. <-- assuming that the initial orientation and position is known then it becomes trivial
19:48:10 <Gregor> elliott: Maybe 33x33?
19:48:41 <Gregor> Vorpal: The initial orientation and position aren't known, but also aren't relevant, the point is just that you don't know what the server considers to be 0,0, you only know relative to your own starting position.
19:48:41 <zzo38> Including one thing I wanted to use, which is line terminator special keys. I sort of faked it in some of my own programs by adding keyboard shortcut resources to the Glk.dll file
19:48:48 <Gregor> Vorpal: Put differently, you have no compass.
19:49:14 <elliott> Gregor: You mean 429x429?
19:49:16 <Vorpal> I see
19:49:21 <elliott> I dunno... three hundred is big already.
19:49:21 <Gregor> elliott: No. No I do not :P
19:49:25 <elliott> WAIT
19:49:27 <elliott> WE ARE SO FOOLISH
19:49:31 <elliott> http://en.wikipedia.org/wiki/List_of_prime_numbers
19:49:39 <Vorpal> Gregor, how do you know when you hit a border of the world?
19:49:55 <elliott> Gregor: 277. Obviously.
19:49:56 <Gregor> Vorpal: The world is a torus.
19:50:00 <Gregor> elliott: I'mma go with 33.
19:50:02 <azaq23> "This list is incomplete"
19:50:04 <Vorpal> Gregor, ah
19:50:09 <elliott> Gregor: Wow, 277 is actually... good.
19:50:12 <elliott> Gregor: 33 is terrible :P
19:50:18 <Vorpal> elliott, why does it have to be prime?
19:50:21 <Gregor> elliott: (I'm also reducing the default world size)
19:50:34 <elliott> Gregor: I'm talking about world size...
19:50:46 <elliott> Gregor: http://ompldr.org/vOXp3bQ <-- 277x277 world
19:50:51 <elliott> That fits in well with a size-thirteen viewport
19:50:56 <elliott> Really well
19:51:00 <elliott> And is a nice good size when zoomed
19:51:01 <Vorpal> elliott, whoa, so many sub-categories of primes.
19:51:03 <elliott> ais523: Your opinions on that size?
19:51:07 <Gregor> elliott: ... >_<
19:51:07 <elliott> <Vorpal> elliott, why does it have to be prime?
19:51:10 <elliott> If you want even you want power of two
19:51:11 <Vorpal> elliott, I know only of a handful of those
19:51:13 <Gregor> elliott: I thought you were talking about the VIEWPORT, not the WORLD.
19:51:14 <elliott> If you want odd you want prime
19:51:17 <elliott> Gregor: Durrrr :P
19:51:19 <Vorpal> elliott, why.
19:51:20 <elliott> Gregor: No, the viewport is good as-is, I'd say
19:51:26 <ais523> elliott: I don't really have strong opinions about the size
19:51:28 <elliott> Gregor: Any more and it's too much to really process at once
19:51:34 <ais523> because I'm not really into this game
19:51:37 <ais523> yet, at least
19:51:39 <elliott> Gregor: Although, hmm
19:51:43 <ais523> maybe I will be if it evolves into something interesting
19:51:50 <elliott> Gregor: I could go for 29
19:51:51 <Gregor> ais523: The game is still very much in development, we're trying to figure out the right balance.
19:52:03 <elliott> Or 23
19:52:07 <elliott> Thirty-one is a bit big
19:52:08 <Gregor> elliott: So, there's no reason at all for the world to be a prime numbered size :P
19:52:10 <elliott> And thirty-three isn't even prime at all
19:52:12 <Vorpal> Gregor, is there any implementation of any parts of it yet?
19:52:22 <elliott> Gregor: EVEN POWER OF TWO, ODD PRIME
19:52:23 <Gregor> Vorpal: Yes. For example, all parts of it.
19:52:23 <elliott> THAT IS THE RULE
19:52:28 <Vorpal> Gregor, ah
19:52:37 <Gregor> elliott: But the world size doesn't need to be odd.
19:52:38 <elliott> Whoa, some flag action actually started happening.
19:52:38 <Vorpal> elliott, why does it have to be power of two or prime? I mean, I don't see any obvious reason here
19:52:42 <Gregor> elliott: In fact, it's currently even.
19:52:44 <elliott> And then it got obliterated.
19:52:47 <Gregor> Vorpal: Because we're computer scientists.
19:52:53 <Gregor> Vorpal: https://codu.org/projects/rezzo/hg/
19:52:54 <Vorpal> Gregor, so for vanity then
19:52:56 <Gregor> Yes
19:52:57 <elliott> Vorpal: OK, every number is either even or odd, right?
19:53:02 <Vorpal> elliott, ... yes
19:53:07 <elliott> And if you want an even number, you want a power of two, if you can pick a power of two, pick it, that's the rule in computing.
19:53:08 <ais523> elliott: no
19:53:11 <elliott> You always go for powers of two.
19:53:12 <elliott> ais523: Integer.
19:53:14 <Gregor> elliott: So I'mma go with 320x320.
19:53:17 <ais523> that's better
19:53:22 <Gregor> Or maybe 240x240?
19:53:27 <elliott> Vorpal: For ODD numbers, like say HASH TABLE SIZE
19:53:32 <ais523> 640x480!
19:53:32 <elliott> PRIMES generally perform unusually well
19:53:33 <Vorpal> elliott, I'm not agreeing with you on the even -> power of two, or odd -> prime
19:53:33 <elliott> Therefore
19:53:36 <elliott> If you want odd numbers
19:53:36 <Gregor> ais523: We're computer scientists, all numbers are integers :P
19:53:37 <elliott> You want primes
19:53:40 <Vorpal> elliott, it doesn't really matter here
19:53:47 <ais523> Gregor: that's not the case in AI
19:53:48 <elliott> Vorpal: Oh my god shut up you incredibly boring person.
19:53:55 <elliott> OBVIOUSLY I AM BEING ENTIRELY SERIOUS
19:53:59 <ais523> I know, because I was writing some floating-point AI code earlier today
19:54:00 <Vorpal> elliott, I'm fine with it if it is for vanity :P
19:54:03 <elliott> OBVIOUSLY I AM NOT JUST TRYING TO MAKE A COMPLETELY ARBITRARY CHOICE MORE FUN
19:54:19 <elliott> ais523: Hey, we need Secret Project
19:54:20 <ais523> you'd probably work out a good choice after some practice
19:54:22 <elliott> ais523: One important question
19:54:26 <elliott> ais523: How much does it slow down things running under it?
19:54:31 <elliott> We really want total repeatability of matches, y'see
19:54:44 <ais523> elliott: not very much if they're purely algorithmic, quite a lot if they make a lot of syscalls
19:54:54 <elliott> Hmm
19:54:57 <elliott> Like, what factor?
19:54:58 <ais523> also, it isn't finished yet
19:55:00 <Vorpal> elliott, it should be a regular prime!
19:55:01 <elliott> For a heavy syscall program
19:55:02 <ais523> I implemented select a couple of days ago
19:55:05 <Vorpal> elliott, to make it even more "fun"
19:55:27 <elliott> Gregor: It sure is fun to specify a size smaller than the viewport.
19:55:32 <Vorpal> or a regular prime that is also a sophie germain prime.
19:55:38 <Gregor> elliott: It does, in fact, work :)
19:55:38 <Vorpal> elliott, heh
19:55:45 <elliott> Gregor: Thank GOD :P
19:56:03 <ais523> elliott: I'm not sure; it multiplies context switches by a factor of 4 to 6, though, and those are probably going to be the most timeconsuming things
19:56:16 <ais523> for read and write, you have to multiply by another factor of 5
19:56:20 <elliott> Gregor: You should make sure every map has at least noe electron :P
19:56:24 <elliott> This map is TOTES UNWINNABLE
19:56:33 <ais523> because it has to work out if they're blocking or nonblocking first
19:56:34 <elliott> Gregor: Eh
19:56:36 <elliott> erm
19:56:37 <elliott> ais523: Eh
19:56:40 <ais523> and change timing rules according to if they do, in fact, block
19:56:41 <elliott> ais523: I guess it wouldn't work out then
19:56:41 <Deewiant> Eh
19:56:44 <Vorpal> ais523, isn't that just checking a flag?
19:56:44 <elliott> Deewiant: Eh
19:56:48 <Deewiant> elliott: Eh
19:56:52 <elliott> Deewiant: Eh
19:56:59 <ais523> Vorpal: yes, but it's checking a flag that's not in either your program, or the program you're testing
19:56:59 <elliott> Deewiant: How long until we get Trains: the Rezzo Series
19:57:04 <ais523> so you have to make a syscall to get it
19:57:23 <Vorpal> ais523, uh. You could cache it for the given fd
19:57:29 <ais523> lstat on /proc works, but injecting a fcntl into the testing program is probably faster
19:57:32 <Deewiant> elliott: When rezzo's closer to done than not-done
19:57:39 <ais523> however, getting the flag is only one of the five calls
19:57:46 <ais523> you have to set it too
19:57:46 <Vorpal> ais523, just cache it on open or fcntl?
19:57:55 <ais523> in order to work out if the read/write would block
19:58:05 <ais523> you set the handle to nonblocking, then try to do the read/write
19:58:06 <Vorpal> eh
19:58:11 <ais523> if it worked, great, set it back to blocking and you're done
19:58:17 <Vorpal> eh....
19:58:22 <ais523> if it didn't, set it back to blocking then repeat, and remember that that thread is blocked
19:58:29 <elliott> Deewiant: It's done insofar as it works and you can code things today
19:58:34 <elliott> The rules just might change a bit :P
19:58:44 <ais523> this would be so much simpler if I wasn't trying to make alternation of threads deterministic
19:59:02 <ais523> but you have to do that, as race conditions are a really common thing to happen in programs
19:59:17 <Deewiant> elliott: Yeah I don't count that as "done" :-P
19:59:23 <Vorpal> ais523, it is a bonus if you detect race conditions IMO
19:59:27 <elliott> Deewiant: You played BF Joust while its rules were still being tweaked
19:59:42 <Deewiant> elliott: Lower barrier of entry
19:59:44 <ais523> Vorpal: but you still have to make them reproducible
19:59:49 <Vorpal> ais523, hm true
20:00:06 <elliott> Deewiant: https://codu.org/projects/rezzo/warriorhg/index.cgi/file/34d876dfc612/tantrum.hs
20:00:15 <elliott> Deewiant: The parts relating to the queue and the IORef are going into Rezzo.hs, hopefully :P
20:00:22 <Vorpal> ais523, I guess you provide a way to try different slicing of the threads?
20:00:23 <elliott> i.e., everything but reallyDecide
20:00:36 <ais523> Vorpal: no
20:00:47 <ais523> that would be different, which means that it's not the same
20:00:52 <Vorpal> ais523, so there might be race conditions you can never try?
20:00:57 <Deewiant> elliott: hg clone and messing with Haskell is a bit more work than '!bfjoust foo bar' :-P
20:01:11 <ais523> Vorpal: and? all you're showing to me is that you don't know what Secret Project is for
20:01:12 <Vorpal> ais523, I'm asking about manually using some parameter or such to select a different slicing
20:01:21 <Vorpal> ais523, because you won't tell us!
20:01:23 <Vorpal> -_-
20:01:40 <ais523> anyway, there are infinitely many different slicings
20:01:50 <elliott> Deewiant: Pah :P
20:01:51 <Vorpal> true
20:02:02 <elliott> Deewiant: https://codu.org/projects/rezzo/warriorhg/index.cgi/file/34d876dfc612/Rezzo.hs Look at all this nectar I carefully optimised for you
20:02:08 <elliott> 113 getViewBytes :: Get (Vector Word8)
20:02:08 <elliott> 114 getViewBytes = do
20:02:08 <elliott> 115 bytes <- getBytes viewSize
20:02:08 <elliott> 116 let (ptr, offs, len) = BI.toForeignPtr bytes
20:02:08 <elliott> 117 return $ V.unsafeFromForeignPtr ptr offs len
20:02:09 <elliott> 118
20:02:10 <ais523> the one I've chosen is to context-switch at every syscall, with a different general rule for blocking syscalls, and a few specific exceptions (fork and exec are on that list)
20:02:11 <elliott> 119 getView :: Get (Vector Cell)
20:02:13 <elliott> 120 getView = V.unsafeCast <$> getViewBytes
20:02:14 <ais523> (also exit, for obvious reasons)
20:02:15 <elliott> LOOK AT MY SIN
20:02:18 <Vorpal> ais523, actually wait. Not true. Given programs run for finite time there is a huge but finite number of slicings
20:02:20 <ais523> *exit_group
20:02:46 <Gregor> I suppose the rezzo equivalent of an imp would be to wander around destroying every electron :P
20:02:49 <ais523> Vorpal: wrong, the length of time the program runs for could depend on how it was sliced
20:02:56 <Gregor> Stalemate yay
20:02:57 <Deewiant> elliott: Yeah, I was amused at the ^2 avoidance; how'd you pick up on that?
20:03:03 <CakeProphet> elliott: the flags, geysers, bases have parameters. THAT'S NOT HOW CA'S WORK BAAAAAW
20:03:20 <elliott> CakeProphet: >/dev/null
20:03:26 <Vorpal> ais523, you can only slice between instructions on x86 right?
20:03:28 <elliott> Gregor: I wonder if anyone will win? http://ompldr.org/vOXp3eA
20:03:30 <elliott> Deewiant: ghc-core
20:03:38 <Vorpal> ais523, possibly excluding the rep prefix
20:03:39 <Gregor> CakeProphet: The number of states is linear in the number of programs, not exponential.
20:03:44 <elliott> Deewiant: I think ^ (2::Int) might do it, but whatever
20:03:50 <ais523> Vorpal: that's not what I mean
20:03:54 <Deewiant> elliott: Right, so you actually went and properly optomized it
20:04:03 <ais523> I mean, a program could decide to terminate once it hit five detected race conditions in a row, or something
20:04:06 <elliott> Deewiant: The optimisation is maybe a little premature, but only because none of the current bots actually try to do anything at all :P
20:04:11 <elliott> Or, well, they DO, they just don't think.
20:04:18 <Vorpal> ais523, then what did you mean. A context switch has to happen at a specific point in the program code, no?
20:04:24 <CakeProphet> Gregor: true I suppose, but eventually the rules I came up with didn't involve any superimposing.
20:04:32 <ais523> Vorpal: I mean, the number of different ways the threads can be interleaved
20:04:38 <elliott> Deewiant: I should probably check whether the -funbox-strict-fields I have actually helps or not, but whatever
20:04:42 <ais523> at each point in the program, you can choose to context switch or not context switch
20:05:07 <elliott> <elliott> Gregor: I wonder if anyone will win? http://ompldr.org/vOXp3eA
20:05:09 <Vorpal> ais523, indeed. Lets say you have 2 threads running two instructions each. then you have: AABB ABBA ABAB BBAA BABA BAAB and so on
20:05:10 <elliott> EXCUSE ME THIS IS HILARIOUS
20:05:17 <elliott> They're still spinning around madly.
20:05:18 <ais523> I always context switch only at syscalls and syscall returns because it's a pain to hit any other moment in the program accurately
20:05:23 <CakeProphet> elliott: I guess eventually I'll need to a) get up-to-date on the current ruleset b) write a Perl player to destroy you. (muahahahahaha)
20:05:24 <Gregor> elliott: I'mma go with no :P
20:05:34 <Vorpal> ais523, which is finite, though it grows very quickly
20:05:38 <elliott> Gregor: EVENTUALLY they might rewrite the insane circuit to accidentally connect a flag and a base :P
20:05:44 <Gregor> CakeProphet: To be frank I totally didn't understand the last iteration of your rules.
20:05:47 <ais523> Vorpal: err, you have AABBABAB as well
20:05:47 <elliott> I like how there's still a hole left in the mess.
20:05:54 <elliott> CakeProphet: Perl? Good luck with that.
20:05:57 <ais523> nobody says that they have to interleave the same way each time round the loop
20:06:10 <Vorpal> ais523, I said for finite programs.
20:06:14 <Gregor> Yes, "do random shit" is surely the best strategy.
20:06:14 <elliott> Like, seriously, good luck with that, you might want to have long, hard talks with ais523.
20:06:17 <ais523> Vorpal: those are finite programs
20:06:31 <Vorpal> ais523, so where is the loop then? two instructions each and exit
20:06:31 <elliott> Who works under constraints of like, three moves per second, rather than FIFTEEN
20:06:37 <elliott> Is it fifteen? I don't even remember
20:06:45 <ais523> elliott: ?
20:06:48 <Vorpal> ais523, in this example that is
20:06:51 <elliott> ais523: TAEB vs. Rezzo
20:07:03 <Vorpal> ais523, I can't see where you get a loop in my example
20:07:05 <ais523> elliott: it's now up to about 5 per second regularly
20:07:14 <elliott> ais523: Wowzers :P
20:07:17 <ais523> Vorpal: oh, I see, you want your programs to be finitely long and contain no loops
20:07:25 <Vorpal> ais523, yes that is what I said.
20:07:25 <elliott> Gregor: Bug report: -w 1 -h 1 doesn't start
20:07:29 <ais523> such a great thing that all programs in practice work like that, right?
20:07:35 <elliott> Gregor: Nor does two
20:07:40 <Vorpal> ais523, or the loops they contain are only run a finite number of times
20:07:47 <elliott> Gregor: Three causes a floating point exception
20:07:50 <ais523> Vorpal: that's a crazy assumption
20:07:56 <elliott> Four hangs
20:08:04 <elliott> As does five
20:08:08 <ais523> the vast majority of programs won't exit given suitable input
20:08:11 <Vorpal> ais523, there are such programs. /bin/cat is bound by length of input for example
20:08:24 <ais523> Vorpal: /bin/cat /dev/zero
20:08:31 <Gregor> elliott: If it's too small to make loops, it barfs, yes.
20:08:37 <elliott> Gregor: Eight is the minimum height it'll start at :P
20:08:38 <Vorpal> ais523, yes. That is an infinite input.
20:08:41 <elliott> And what a GLORIOUS mess eight is.
20:08:48 <ais523> Vorpal: and it's one you have on your computer
20:08:51 <Vorpal> ais523, but changing the file changes the conditions anyway
20:08:54 <CakeProphet> Gregor: the flags move like electrons, and cancel each other out on collision like electrons, but move slower. When an electron collides with a flag it becomes a death flag. when a flag collides with a death flag it becomes a victory for the non-death flag's owner. collision of flags other than flag + death flag result in a conductor (though electron + death flag could result in something interesting, but that's somethin
20:09:00 <CakeProphet> probably got cut off.
20:09:06 <elliott> "but move slower" <-- with MAGIC.
20:09:07 <Deewiant> "but that's somethin"...
20:09:12 <ais523> Vorpal: do you see, anyway, that a flag to allow any possible interleaving of threads, and specifying which one, is insane?
20:09:18 <CakeProphet> elliott: yes, with rules, that you make. I don't care if it's not a CA.
20:09:18 <ais523> and really there's no reason for more than one anyway?
20:09:22 <Vorpal> ais523, definitely
20:09:32 <elliott> CakeProphet: Considering the ENTIRE IDEA Gregor had was to do it based on CA...
20:09:35 <Vorpal> ais523, but I do see a reason to test many if you want to find bugs
20:09:39 <CakeProphet> elliott: mmk
20:09:52 <Vorpal> ais523, kind of fuzz testing
20:10:06 <ais523> so, it turns out that the Secret Project is not designed for fuzztesting multithreaded programs
20:10:07 <Vorpal> ais523, btw about blocking or not, that depends on outside factors no?
20:10:14 <elliott> elliott@katia:~/Code/rezzo$ ./rezzo -q -w 8 -h 8 -z 9 warriors/tantrum warriors/tantrum warriors/tantrum warriors/tantrum
20:10:14 <elliott> Well this is somethink.
20:10:15 <ais523> nor do I think I've said anything that would imply it would
20:10:15 <Vorpal> ais523, like if a file is cached from disk
20:10:30 <ais523> and the Secret Project definitely does try to get rid of caching effects
20:10:37 <Vorpal> ais523, ah okay. How?
20:10:51 <ais523> by making the length of time the processor takes to actually do anything irrelevant
20:10:54 <ais523> that's obvious, isn't it?
20:11:02 <elliott> Bunch of InvalidMessages that one run there... blaming Gregor :P
20:11:10 <Vorpal> ais523, anyway if a read blocks or not is really up to the OS unless you emulate the entire file system and block layer. Or network layer or whatever.
20:11:11 <elliott> ais523: Yes, it is obviious.
20:11:14 <elliott> obvious.
20:11:18 <elliott> Ugh, more InvalidMessage
20:11:24 <elliott> Gregor: $ ./rezzo -q -w 90 -h 90 -z 9 warriors/tantrum warriors/tantrum warriors/tantrum warriors/tantrum
20:11:28 <CakeProphet> elliott: hey it just means that CA has some limitations. You could add a notion of time to the formalization so that transition rules only occur in (g`mod`n)==0 generations. :P
20:11:30 <ais523> elliott: good, for a moment I was wondering if it was me or Vorpal being stupid
20:11:35 <elliott> Gregor: Run that for a while, you start getting InvalidMessage spewed a bunch
20:11:40 <Vorpal> ais523, eh?
20:11:42 <ais523> Vorpal: whether a read blocks or not has nothing to do with cache effects
20:11:44 <elliott> Gregor: My understanding of the protocol is flawless so you have a bug :)
20:11:50 <Vorpal> ais523, I said *disk cache*
20:11:59 <zzo38> "For the purposes of derived instances, a newtype declaration is treated as a data declaration with a single constructor." No, I think that you should just be allowed to derive any class with newtype if the contained type has that class, and otherwise treat it as data with single constructor.
20:12:01 <ais523> Vorpal: whether a read blocks or not has nothing to do with disk cache
20:12:03 <Vorpal> ais523, as in, the file data loaded in to main memory
20:12:05 <Vorpal> ais523, really?
20:12:05 <elliott> Gregor: (-z 9 not necessary)
20:12:09 <zzo38> Why don't they do it like that?
20:12:10 <Vorpal> ais523, I thought it did.
20:12:12 <ais523> Vorpal: indeed
20:12:20 <ais523> if it finishes in finite time without any other change to the system, it isn't blocking
20:12:32 <elliott> zzo38: they do, with GeneralizedNewtypeDeriving for GHC
20:12:34 <CakeProphet> elliott: and besides, what's the purpose of it being a strict CA (which it currently is not anyways) other than saying "hey this is a cellular automata in the strictest sense possible (except it's not really)"
20:12:35 <ais523> try reading from a slow hard drive with O_NONBLOCK set, you'll find it works
20:12:38 <Vorpal> ais523, so uh what does a non-blocking read on a busy device do? That would wait for a while
20:12:45 <Vorpal> ah
20:12:47 <elliott> zzo38: it makes the derived Show instance less obvious, which is one disadvantage
20:12:53 <elliott> CakeProphet: It is currently a strict CA, and you're blathering nonsense.
20:12:58 <Vorpal> ais523, what about nfs?
20:13:11 <ais523> there's a special case for that, IIRC, and I forget what it is
20:13:13 <CakeProphet> elliott: whose number of states is dependent on number of players. Is that how CAs wor?
20:13:16 <CakeProphet> +k
20:13:20 <Vorpal> ais523, there generally is for nfs XD
20:13:23 <elliott> CakeProphet: Nope, there is a constant number of states.
20:13:23 <ais523> but the Secret Project controls all the filesystems you're allowed to access
20:13:25 <ais523> and none are on NFS
20:13:28 <ais523> so it doesn't come up
20:13:58 <CakeProphet> elliott: so then the flags, geysers, and bases, agents aren't states?
20:14:02 <elliott> CakeProphet: Yep.
20:14:05 <elliott> They are.
20:14:09 <Vorpal> ais523, Hm reading /dev/random can block iirc
20:14:11 <CakeProphet> then... how does that work.
20:14:21 <elliott> CakeProphet: Dunno, how about you find out rather than being an ass about it
20:14:28 <ais523> Vorpal: /dev/random is an interesting special case
20:14:33 <CakeProphet> elliott: I'm not I don't see how that is a constant number
20:14:33 <Gregor> Gawd I love the conversations on this channel.
20:14:35 <ais523> because how do you make a reproducible /dev/random?
20:14:43 <Gregor> "Ur a dumbarse" "Ur mom!" "lul"
20:14:52 <elliott> Gregor: You seem to be mistaking conversations for not having the patience to deal with someone
20:14:59 <Vorpal> ais523, well, you replace it with your own algorithm.
20:14:59 <Gregor> CakeProphet: The number of states is linear in the number of programs, so constant for a given run.
20:15:05 <ais523> Vorpal: yes, and you can pick one that never blocks
20:15:09 <elliott> Gregor: The number of states is constant.
20:15:14 <elliott> There are always ten of each player-specific state.
20:15:16 <Vorpal> ais523, not really realistic
20:15:20 <Vorpal> but sure
20:15:25 <ais523> Vorpal: so? it's /consistent/
20:15:29 <elliott> See also: ais523 dealing with Vorpal, the most amazing endurance feat ever.
20:15:38 <Vorpal> ais523, true
20:15:40 <Gregor> elliott: Well, fair enough, there's a max number of players, so in fact it's constant (though many will be unused)
20:15:46 <elliott> Gregor: "Many"
20:15:46 <elliott> :P
20:15:49 <elliott> At most 9
20:15:52 <CakeProphet> Gregor: so you have an infinite number of cellular automata that correspond to natural numbers.
20:15:53 <ais523> elliott: I think you understand the Secret Project Stage 1 much better than Vorpal does
20:15:55 <Gregor> elliott: 9*4
20:15:56 <Vorpal> ais523, anyway what about reading /dev/psaux? You talked about getting X to run under the secret project before iirc?
20:16:02 <CakeProphet> Gregor: perhaps excluding 0 and 1
20:16:07 <ais523> I can't mention much at all about Stage 2, though, or people would put 1 and 2 together
20:16:12 <elliott> ais523: Perhaps because I've stopped trying to guess the exact purpose
20:16:14 <ais523> Vorpal: I've never heard of /dev/psaux
20:16:18 <elliott> ais523: I think I have a good grasp of the workings, though
20:16:25 <Vorpal> ais523, the mouse, well the PS/2 mouse
20:16:27 <elliott> And I suspected that it'd do little to CPU-bound programs but slow down syscall-bound ones quite severely
20:16:30 <Gregor> CakeProphet: 0 and 1 are included, but sort of uninteresting. And as elliott points out, in fact it has a player # limit (10), so in that sense there's a limit.
20:16:32 <elliott> So I seem to have a working mental model of it.
20:16:33 <Vorpal> ais523, not sure where usb mice turn up
20:16:37 <ais523> Vorpal: oh, I'm going to support /dev/input/mice instead
20:16:50 <ais523> because all mice turn up there, and it's where programs tend to actually read in practice
20:16:56 <Vorpal> ais523, hm /dev/psaux seems to be legacy name for it these days. Go figures.
20:17:11 <elliott> psaux sounds like a squawk a bird makes
20:17:13 <ais523> also, because I finally figured out what format it was in
20:17:26 <ais523> which took several hours both experimenting and reading kernel sources
20:17:31 <Vorpal> heh
20:17:33 <Vorpal> ais523, no docs?
20:17:41 <zzo38> Is there anything like: derivable :: Name -> (Dec -> Q [Dec]) -> Q [Dec]; It would be useful to use in Template Haskell if you want to make up your own deriving of your own classes too, I would think
20:17:42 <elliott> Argh, I really need to figure out how feasible bidi parsers are
20:17:44 <CakeProphet> so yeah for this ruleset you could either 1) add a number of transitionary flag states to simulate the slow movement b) ditch that because it's awful and just change the rules because it's convenient.
20:18:02 <ais523> there are, but they don't describe the protocol
20:18:04 <elliott> You can't just "change the rules"
20:18:06 <elliott> A CA is a CA for a reason
20:18:09 <elliott> Namely, because it's a CA
20:18:10 <Vorpal> ais523, anyway what will you do for the mouse input?
20:18:15 <elliott> this is what Perl does to people
20:18:17 <CakeProphet> elliott: right, the idea here is that I don't care and it's not a CA anymore.
20:18:20 <Vorpal> ais523, pre-recorded input?
20:18:24 <ais523> Vorpal: that involves Stage 2, so I'll stay silent on it
20:18:29 <elliott> CakeProphet: I don't care
20:18:47 <Vorpal> ais523, when will you reveal that
20:18:53 <ais523> when Stage 3 is finished
20:18:57 <CakeProphet> elliott: it's a completely arbitrary thing to be concerned about. Also, it can still be modelled as a CA it's just slightly more tedious that way.
20:19:00 <Vorpal> ais523, and stage 3 is the last one?
20:19:13 <ais523> stage 3 is the purpose for which stages 1 and 2 exist
20:19:15 <Vorpal> so we won't hear any details about stage 2 or 3 until it is all done?
20:19:23 <Vorpal> :(
20:19:38 <Vorpal> you certainly do know how to build a hype though
20:19:45 <ais523> well, I need lots of help with stage 1
20:20:00 <ais523> and the hype is built to persuade people to help me with it
20:20:18 -!- monqy has joined.
20:20:21 -!- zzo38 has left.
20:20:59 <ais523> stage 2, it's much harder, because I have to ask the questions disguised in such a way that they're out of context (but have an obvious incorrect context so that people don't get suspicious), and I don't ask them in #esoteric either as it would be too obvious
20:21:12 <Vorpal> ais523, reveal details and you will get help.
20:21:23 <ais523> well, I don't need much help with it yet
20:21:28 <ais523> as I'm still trying to get stage 1 working
20:21:32 <elliott> Vorpal is really grumpy about this.
20:21:41 <ais523> anyway, I will say that being secret is a necessary property of the secret project
20:21:46 <Vorpal> elliott, certainly. Did you figure out what it was for yet?
20:21:59 <elliott> Vorpal: baww
20:21:59 <Vorpal> ais523, would it fail if not secret?
20:22:01 <ais523> yes
20:22:06 <ais523> it exists /for the purpose of being secret/
20:22:19 <Vorpal> ais523, oh I see. You are trolling us. Right.
20:22:33 <Vorpal> (good job though)
20:22:37 <ais523> well, yes I probably am, but that's not the project's purpose
20:22:46 <ais523> it's just a fun side-effect
20:23:05 <elliott> "trolling"
20:23:10 <elliott> if you're stupid enough to get annoyed about it
20:23:32 <ais523> well, it only trolls Vorpal, I think
20:23:51 <CakeProphet> conspiracy programs.
20:24:40 <ais523> its purpose is not trolling Vorpal, anyway
20:24:43 <ais523> its purpose is to be secret
20:24:56 <ais523> why this is the case, is also secret, for the same reason that the original project is secret
20:25:00 <fizzie> I think the /dev/input/mice protocol is documented, because I remember reading about it. I mean, doesn't it speak the regular PS/2 mouse protocol with the MS Intellimouse extensions?
20:25:15 <ais523> bleh, this is actually quite a hard concept to express
20:25:25 <CakeProphet> probably because it's so secret.
20:25:37 <ais523> fizzie: it speaks PS/2, and two different incompatible extension
20:25:41 <ais523> extensions
20:25:46 <ais523> depending on what's sent to it
20:26:15 <fizzie> Well, it speaks at least that Intellimouse thing.
20:28:25 <fizzie> MOUSEDEV_EMUL_PS2, MOUSEDEV_EMUL_IMPS, MOUSEDEV_EMUL_EXPS. Oh, right; basic Intellimouse, and Intellimouse Explorer, maybe?
20:28:44 <fizzie> I distinctly remember reading a document about this. But I suppose it was free-floating around the internet.
20:29:25 <elliott> hmm, this sure is hard when you're stubborn
20:33:31 <quintopia> "I just watched Source Code on DVD – it all seemed completely believable until I saw Jake Gyllenhaal using Bing as his search engine.
20:33:36 <quintopia> " -Weird Al
20:34:12 <CakeProphet> was he using a Mac as well?
20:35:38 <NihilistDandy> quintopia: I parsed that as a compiler flag
20:35:39 <Gregor> CakeProphet: OK, so even if we imagine that there's a proliferation of states associated with the flags such that they will "move slowly", I STILL don't get your idea.
20:35:48 <CakeProphet> It has been my observation in movie universe that Apple is the only PC manufacturer, so I woule assume so.
20:36:27 -!- ais523 has quit (Remote host closed the connection).
20:36:44 <NihilistDandy> CakeProphet: That's because they happen in the future, and in the future everything is white or aluminum
20:37:11 <CakeProphet> Gregor: The idea is that you want to electrify an opponent flag without electrifying your own.. I suppose that makes the win conditions somewhat chaotic but it means you could try to build trap circuits to make this possible.
20:38:09 <NihilistDandy> @hoogle text
20:38:09 <lambdabot> Text.Html text :: String -> HtmlAttr
20:38:09 <lambdabot> Text.PrettyPrint.HughesPJ text :: String -> Doc
20:38:09 <lambdabot> Text.XHtml.Transitional text :: String -> HtmlAttr
20:38:16 <NihilistDandy> @hayoo text
20:38:16 <lambdabot> Unknown command, try @list
20:38:32 <NihilistDandy> @google hackage text
20:38:33 <lambdabot> http://hackage.haskell.org/package/text
20:38:33 <lambdabot> Title: HackageDB: text-0.11.1.5
20:38:38 <elliott> ?src ShowS
20:38:38 <lambdabot> type ShowS = String -> String
20:38:46 <elliott> ?src ReadS
20:38:46 <lambdabot> Source not found. Wrong! You cheating scum!
20:38:49 <elliott> :'(
20:38:50 <elliott> ?src Read
20:38:50 <lambdabot> class Read a where
20:38:50 <lambdabot> readsPrec :: Int -> ReadS a
20:38:50 <lambdabot> readList :: ReadS [a]
20:38:50 <lambdabot> readPrec :: ReadPrec a
20:38:50 <lambdabot> readListPrec :: ReadPrec [a]
20:38:51 <elliott> :t read
20:38:52 <lambdabot> forall a. (Read a) => String -> a
20:38:52 <elliott> :t readS
20:38:54 <lambdabot> Not in scope: `readS'
20:38:57 <elliott> :t readsPrec
20:38:57 <lambdabot> forall a. (Read a) => Int -> String -> [(a, String)]
20:39:03 <CakeProphet> Gregor: also it makes you use a flag stream to win, instead of merely keeping it closed off from everything.
20:39:24 <NihilistDandy> elliott: Quite an outburst
20:39:27 <NihilistDandy> :D
20:41:02 <CakeProphet> Gregor: with the addition of some extra circuit components (diodes, pressure plates, a conductor cell similar to the "trampoline" in befunge that would make flags/electrons jump over the next cell) it would make it kind of a circuit-building battle.
20:42:27 <elliott> NihilistDandy: ?
20:42:53 <NihilistDandy> You and lambdabot talking to each other about reading
20:42:56 <CakeProphet> so a basic "attack" circuit would be a cross with a horizontal stream of electrons, and two diodes above and below the point of intersection.
20:43:27 <CakeProphet> the flag would pass through the diode, become electrified, and continue forward, while the horizontal electron stream couldn't propogate through the intersection (I think...)
20:43:47 <Gregor> CakeProphet: The degree of control required to electrify the enemy flag and not your own seems ... intense.
20:43:53 <CakeProphet> yep.
20:44:15 <NihilistDandy> This is quite odd
20:44:15 <oerjan> hm could the secret project be an OS-level time-traveling debugger...
20:44:57 <CakeProphet> Gregor: I think it might benefit from a mostly empty grid but I'm not so sure about that.
20:45:02 <elliott> oerjan: IT'S FEATHER
20:45:11 <elliott> OH M;Y GOD IT MAY ALERADY BE TOO LATE
20:45:15 <elliott> oerjan: GET THE FIRST PLANE TO BIRMINGHAM
20:45:17 <elliott> ILL MEET YOUAT THE AIRPORT
20:45:31 <CakeProphet> Gregor: empty except for electron loops to use as source currents.
20:45:34 <Gregor> elliott: You're gonna be waiting a while :P
20:45:55 <elliott> things i would watch: a thriller where a bunch of nerds on irc have to band together real quicklike to stop someone going insane and releasing terrors unto the universe because of their research
20:46:09 <CakeProphet> Gregor: also it might benefit from being able to build faster than the current system allows. So that complex circuits can be built somewhat quickly.
20:46:12 <elliott> we need more films aimed at the lucrative irc nerd demographic
20:46:31 <oerjan> elliott: oh darn
20:46:40 <elliott> oerjan: wat
20:46:52 <olsner> like... non-interactive text adventures?
20:47:02 <oerjan> elliott: no u wat
20:47:07 <elliott> olsner: no no. films.
20:47:22 <olsner> scrolls :)
20:47:24 <Gregor> `addquote <elliott> we need more films aimed at the lucrative irc nerd demographic
20:47:26 <HackEgo> 613) <elliott> we need more films aimed at the lucrative irc nerd demographic
20:48:09 <CakeProphet> Gregor: also view radius could be increased potentially. These are all variables that could be tuned with testing.
20:48:23 <elliott> Way ahead of you
20:48:25 <NihilistDandy> Scrolling up cinemas
20:52:02 <CakeProphet> Gregor: it is pretty complicated though. A top player would eventually need some pattern recognition abilities.
20:52:27 <Gregor> CakeProphet: I'm still digesting.
20:53:20 <Phantom_Hoover> `quote
20:53:22 <HackEgo> 437) <oklopol> are there boobs you wack and squeeze around to move the mouse? [...] <oklopol> like those little nipples in laptop keyboards, but they'd be full-blown boobies
20:54:12 <Phantom_Hoover> `quote
20:54:14 <HackEgo> 60) <apollo> What is there to talk about besides gay slang?
20:54:19 <Phantom_Hoover> `quote
20:54:21 <HackEgo> 486) <monqy> it was a wonderful dream <monqy> i died in it <monqy> that's how it started
20:54:24 <Phantom_Hoover> `quote
20:54:26 <HackEgo> 161) <ais523> cpressey: I have actually done a waterfall-model project that almost worked <cpressey> That's where you have a flexible kayak that bobs and weaves between the rocks as it plummets off the cliff
20:54:36 <Phantom_Hoover> `quote
20:54:38 <HackEgo> 27) IN EINEM ALTERNATIVEN UNIVERSUM (WO DIE NAZIS WON): <ehird> So kann ich nur schliessen, dass es falsch ist, oder die Welt ist vollig BONKERS. Gegrusset seist du der Fuhrer Hitler!
20:54:48 <Vorpal> Phantom_Hoover, did you know the bot does PM?
20:54:57 <Phantom_Hoover> Vorpal, NO
20:55:00 <Phantom_Hoover> `quote
20:55:00 <Phantom_Hoover> `quote
20:55:00 <Phantom_Hoover> `quote
20:55:00 <Phantom_Hoover> `quote
20:55:01 <Phantom_Hoover> `quote
20:55:02 <HackEgo> 219) <Gregor> elliott: My university has two Poultry Science buildings. <Gregor> Two!
20:55:03 <Vorpal> Phantom_Hoover, now you know
20:55:04 <HackEgo> 134) <oklopol> you move on the tape and shit
20:55:05 <HackEgo> 449) [on petrol] <ais523> oklofok: it's actually poisonous, so I advise against drinking it <Phantom_Hoover> ais523, also contains benzene, my carcinogen of choice.
20:55:05 <HackEgo> 20) <FireFly> Meh <FireFly> ._.
20:55:06 <HackEgo> 262) <j-invariant> 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. <j-invariant> HAHA [...] <j-invariant> this is amazing, like meeting a Mormon or something
20:55:46 <Phantom_Hoover> `quote 614
20:55:48 <HackEgo> 614) <Phantom_Hoover> Vorpal, of course I knew, you idiot.
20:56:05 <Vorpal> that one isn't even funny. Why is it there?
20:56:19 <elliott> anything against Vorpal goes in
20:56:28 <elliott> i dont know how that got there though
20:56:46 <Phantom_Hoover> `quote 614
20:56:48 <HackEgo> 614) <Phantom_Hoover> Oh come on isn't it obvious.
20:57:19 <elliott> Oh.
20:57:37 <olsner> fungot: kick it
20:57:37 <fungot> olsner: oh i am here already. outside the soya tha
20:57:37 <elliott> Phantom_Hoover: Help I need a crash course on how to be sixteen. I am not prepared.
20:57:57 <Phantom_Hoover> elliott, suggest you ask Taneb.
20:58:06 <Phantom_Hoover> I don't know how to be 16 in the back of beyond.
20:58:09 <Phantom_Hoover> Except in Ireland.
20:58:34 <olsner> elliott: I think you're supposed to be doing drugs and getting pregnant
20:59:42 -!- GreaseMonkey has joined.
21:01:00 <elliott> olsner: ok
21:01:11 <Gregor> elliott: I'm starting to think that tantrum isn't the best strategy.
21:01:40 <elliott> Gregor: Wow.
21:01:43 <elliott> Gregor: I'm.. shocked.
21:01:44 <elliott> Astonished.
21:01:46 <elliott> Shocktonished.
21:02:01 <elliott> Can you give the SLIGHTEST bit of evidence for this slander?
21:02:17 <oerjan> if tantrum is not giving the results you want, you are not using enough of it.
21:04:59 <CakeProphet> obviously the best approach is to use a botnet to traverse massive decision trees.
21:05:37 <oerjan> always a net win.
21:06:37 <CakeProphet> what's the sanest way to clear out /tmp without breaking anything?
21:06:52 <CakeProphet> I have a lot of junk tmp files that I need to remove, but I have no way to single them out in a single rm command
21:07:00 <oerjan> reboot
21:07:03 <CakeProphet> bah.
21:07:04 * oerjan runs away
21:07:15 <CakeProphet> THIS IS LINUX I REFUSE.
21:07:37 <olsner> just remove everything, that's what I do
21:07:43 <CakeProphet> yeah I'll see what happens.
21:07:48 <CakeProphet> should be fun.
21:08:06 <oerjan> and CakeProphet was never heard from again.
21:08:31 <CakeProphet> well, didn't seem to solve my close-to-max-memory-usage problem.
21:08:49 <pikhq> Is /tmp even a tmpfs on your system?
21:09:04 <oerjan> permfs
21:09:14 <olsner> CakeProphet: hmm, you have checked what's using the memory haven't you?
21:09:19 <fizzie> Or a "prmfs", to be more consistently named.
21:09:27 <oerjan> the files system implemented in cuneiform
21:09:30 <oerjan> *file
21:10:07 <olsner> is that the "cifs" thing?
21:10:08 <CakeProphet> chrome, java, chrome, chrome, chrome, chrome... I guess /tmp wasn't contributing much since I cleared it.
21:10:21 <olsner> kill the chromes
21:10:28 <CakeProphet> >_> yeah
21:10:35 <olsner> KILL THEM
21:10:48 <oerjan> Gregor will approve
21:11:03 <elliott> CakeProphet: be careful not to go by virtual memory
21:11:04 <CakeProphet> lol obviously I should go with my random hypothesis first before doing the obvious.
21:11:39 <CakeProphet> went from 86% to 23%
21:12:01 <olsner> so what did it?
21:12:06 <CakeProphet> chrome.
21:12:26 <CakeProphet> being alive for a week or more, me causing tabxplosions everytime I work on my freelancing project.
21:13:16 <Vorpal> CakeProphet, ram usage?
21:13:20 <Vorpal> heh
21:13:33 <Vorpal> CakeProphet, how much did chrome use in MB?
21:14:02 <Gregor> elliott: I just made the graphics SO SEXY you have no idea.
21:14:08 <CakeProphet> hard to say there were many processes. each one had around .3 GB or so.
21:14:13 <Vorpal> Gregor, screenshot
21:14:29 <elliott> Gregor: screnshotek
21:14:35 <elliott> are they textures
21:14:36 <Vorpal> CakeProphet, how much ram do you have in total?
21:14:47 <CakeProphet> 4 GB
21:14:52 <Vorpal> elliott, shaders!
21:14:58 <CakeProphet> yeah I don't feel like doing the math.
21:15:00 <elliott> http://codu.org/projects/rezzo/hg/ help i dont see what you actually did
21:15:01 <elliott> help
21:15:06 <CakeProphet> aka multiplication
21:15:13 <Vorpal> CakeProphet, heh, not much these days
21:15:15 <olsner> if the chrome people did it right, I think most of that memory per process should be shared memory
21:15:20 <elliott> http://codu.org/projects/rezzo/hg/index.cgi/rev/9b44df78ea77 Gregor: Did you forget something?
21:15:26 <elliott> olsner: they did do it right
21:15:30 <Vorpal> elliott, maybe he didn't commit it yet?
21:15:34 <elliott> Gregor: so where is the sexy..........e......................
21:15:39 <olsner> but of course, if you have enough processes they'll use a lot in total anyway
21:15:39 <CakeProphet> Vorpal: it's sufficient most of the time. This was an exceptional circumstance of negligence to reboot chrome.
21:16:01 <Vorpal> CakeProphet, ah. I find anything less than 8 GB annoying these days. My desktop has 16 GB
21:16:01 <Gregor> Vorpal, elliott: http://codu.org/tmp/rezzo1.png
21:16:12 <Vorpal> Gregor, looks cool
21:16:12 <oerjan> chrominal negligence
21:16:26 <Vorpal> Gregor, now it needs a shader, adding HDR.
21:16:27 <CakeProphet> Vorpal: that's insane I don't even know how I would reach 8 GB
21:16:31 <Vorpal> (because)
21:16:34 <CakeProphet> other than intentionally writing memory leaks.
21:17:26 <CakeProphet> pikhq: also mount | grep "/tmp" yields nothing.
21:20:24 <elliott> Gregor: where are the arrowes
21:20:31 <Gregor> elliott: ... still there.
21:20:39 <elliott> im cnsn t see in that screenshot
21:21:03 <Vorpal> CakeProphet, I have like 220 tabs open in firefox. And I can still do make -j8.
21:21:30 <Vorpal> CakeProphet, that is how I use my ram
21:21:33 <Vorpal> each to their own
21:21:36 <CakeProphet> uh my brain doesn't have the attention span for that many tabs.
21:21:41 <olsner> oh, you use it for firefox
21:22:21 <Vorpal> olsner, I have to say firefox 5 uses quite a bit less ram than older versions though. Still a memory hog, but not quite as bad
21:22:33 <Gregor> elliott: Dood, run with random seed 657868118
21:22:38 <Gregor> elliott: With four wanderers.
21:22:41 <Vorpal> olsner, and I never really liked chrome
21:22:47 <Gregor> elliott: Blue and orange/brown are RIGHT NEXT TO EACH OTHER :P
21:22:58 <olsner> I remember the times when firefox was an awesomely lean version of mozilla, it was usable with only 128MB of RAM
21:23:11 <elliott> $ ./rezzo -r 657868118 warriors/{wanderer,wanderer,wanderer,wanderer}
21:23:11 <elliott> Random seed: 657868118
21:23:13 <elliott> then it quits
21:23:14 <elliott> help
21:23:23 <Vorpal> olsner, heh. Not with 220 tabs though
21:23:29 <Deewiant> The web was simpler in those times
21:23:31 <Gregor> Also apparently my ability to take a random seed is borked or something ...
21:23:33 <Vorpal> olsner, anyway wasn't it firebird back then?
21:23:39 <Deewiant> Phoenix
21:23:49 <Vorpal> Deewiant, it was firebird at some point
21:24:04 <olsner> iirc phoenix was before firebird
21:24:05 <Deewiant> Yes, 0.7 or 0.8
21:24:06 <Vorpal> hm how did it grow so bloated.
21:24:17 <CakeProphet> Gregor: the board is fixed size right?
21:24:43 <Deewiant> Darn, 0.6 was Firebird, 0.8 was Firefox
21:24:44 <CakeProphet> hmmm I wonder
21:24:53 <CakeProphet> !perl print map 0, 1..5
21:24:55 <EgoBot> 00000
21:25:01 -!- oerjan has quit (Quit: Good night).
21:25:24 <CakeProphet> Perl never ceases to surprise.
21:25:33 <Gregor> CakeProphet: Size specified at runtime, defaults to 320x320.
21:25:38 <Gregor> elliott: Uhhhh, wtf?
21:25:41 <Vorpal> CakeProphet, it makes sense though
21:25:48 <CakeProphet> Vorpal: yes it does.
21:25:55 <Vorpal> Gregor, which language are you coding it in?
21:26:00 <Gregor> Vorpal: C.
21:26:05 <Vorpal> heh
21:26:12 <Vorpal> Gregor, why not haskell?
21:26:18 <Gregor> Because C is the best language for all porpoises.
21:26:27 <Vorpal> Gregor, tell that to elliott
21:26:44 <olsner> Gregor: but you're not a porpoise, are you?
21:26:45 <CakeProphet> !perl [map {[map 0,1..320]} 1..320]
21:26:58 <CakeProphet> !perl print [map {[map 0,1..320]} 1..320]
21:26:59 <EgoBot> ARRAY(0x7fcef4930068)
21:27:16 <Gregor> olsner: HOW DO YOU KNOW?
21:28:39 <olsner> Gregor: I just... know.
21:28:43 <Gregor> elliott: Re InvalidMessage stuff, it's because you're dead.
21:28:51 <CakeProphet> though I'm tempted to represent the board as a string so that I can use terrible regex hacks to match patterns.
21:28:57 <CakeProphet> perhaps I will have both.
21:29:15 <elliott> Gregor: Shouldn't that terminate the program
21:29:21 <Gregor> elliott: It should, but it doesn't :P
21:29:24 <elliott> Not much to think about when yer dead
21:29:25 <elliott> :P
21:29:27 <olsner> CakeProphet: sounds like you want to write this in sed, not in perl
21:29:39 <CakeProphet> olsner: no I want Perl for this one.
21:29:58 <olsner> CakeProphet: no you don't
21:30:39 <CakeProphet> I don't believe sed is a general purpose programming language.
21:30:43 <CakeProphet> not easily anyways.
21:30:54 -!- hagb4rd has joined.
21:30:59 <hagb4rd> hi
21:31:16 <olsner> the same could be sed for perl
21:31:22 <CakeProphet> ...no
21:31:36 <elliott> CakeProphet: https://github.com/darius/awklisp/blob/master/awklisp
21:31:39 <elliott> nicer than perl
21:32:03 <CakeProphet> that's not really saying much I guess. I'll look at it.
21:32:33 <CakeProphet> olsner: as far as I know sed cannot interface to a network without the help of bash.
21:32:47 <elliott> oh sed not awk
21:32:48 <elliott> who cares
21:32:49 <CakeProphet> but I don't know much about sed.
21:32:49 <elliott> awk is nicer
21:33:04 <olsner> that's true, sed has very poor communication skills
21:33:05 <hagb4rd> elliott: sorry elliot, didn't mean to bother yesterday..
21:33:10 <elliott> hagb4rd: ?
21:33:13 <elliott> i don't remember any botheration
21:33:17 <hagb4rd> k
21:33:20 <elliott> which reminds me, i should sleep.
21:33:25 <CakeProphet> also, believe it or not, Perl allows you to like... structure code and stuff.
21:33:33 <Gregor> elliott: With four tantrums on seed 657868118, brown kills blue :)
21:33:42 <elliott> Gregor: Have you fixed seed reading yet?
21:33:58 <elliott> Otherwise not much help :P
21:34:10 <Gregor> elliott: It wasn't broken, I was imagining things.
21:34:19 <olsner> you either have to pipe in/out through something that does everything for sed, or you can call external programs to do everything (but then you need a set of external programs that match what you need done...)
21:34:22 <elliott> elliott@katia:~/Code/rezzo$ ./rezzo -r 657868118 warriors/{wanderer,wanderer,wanderer,wanderer}
21:34:23 <elliott> Random seed: 657868118
21:34:23 <elliott> elliott@katia:~/Code/rezzo$
21:34:24 <elliott> Gregor: Then?
21:34:33 <pikhq> CakeProphet: Meh, who gives a fuck. C cannot interface to a network without the help of POSIX or Winsock.
21:34:36 <elliott> OH
21:34:40 <elliott> Gregor: Your error reporting SUCKS HARD
21:34:49 <Gregor> elliott: I actually have fixed that, just pushed :P
21:35:01 <Gregor> So PULL LIKE CRAZY
21:35:04 <Gregor> SO MUCH PULLING
21:35:05 <CakeProphet> pikhq: it's a bit different how it goes about that though.
21:35:14 <CakeProphet> meaning in C it's actually part of the language.
21:35:31 <pikhq> Depends on your notion of "part".
21:35:42 <CakeProphet> invokable within the language via functions.
21:36:06 <CakeProphet> so that it abstractions can be made over it.
21:36:09 <CakeProphet> -it
21:36:16 <pikhq> That's a poor notion.
21:36:27 <CakeProphet> it's still something that I can do with C networking that I cannot with sed.
21:36:31 <pikhq> Is zlib part of C?
21:36:46 <CakeProphet> so it's something to take note of.
21:36:50 <olsner> CakeProphet: what are you building btw?
21:37:09 <elliott> Gregor: Can't wait for red to die :P
21:37:27 <elliott> Gregor: Also, the arrows could do with being a little less translucent...
21:37:32 <CakeProphet> olsner: just toying with a Rezzo player in Perl, but I should really be doing more pertinent things.
21:37:32 <elliott> Hard to make them out in a sea of electrons.
21:37:41 <pikhq> Also, you can totally do networking from dc without bash.
21:37:44 <pikhq> Just need nc. :)
21:38:43 <elliott> Gregor: Why does "-q -r ..." not seem to take notice of the -q...
21:38:52 <CakeProphet> hmmm, I'm kind of surprised that Perl has no prototype for regex arguments, so that you can use /.../ instead of qr/.../ in the style of grep and split.
21:38:56 <elliott> Or is it just that slow :P
21:39:15 <Gregor> elliott: It's that slow.
21:39:34 <Gregor> elliott: On my quadcore it's lightnin' though :)
21:39:37 <CakeProphet> that would save TWO WHOLE CHARACTERS.
21:41:08 <elliott> Gregor: I really love how chaotic tantrum is :P
21:41:37 <elliott> It's harder to see all the spinning with these too-translucent arrows though OOOH BRING IT BACK TO THE MAIN POINT :P
21:41:45 <elliott> Do I have three green contestants...
21:42:05 <Gregor> elliott: It only initializes the first four colors, beyond that it's whatever garbage malloc() gave 8-D
21:42:17 <CakeProphet> split /\d+/, $string instead of split qr/\d+/, $string even though in most other contexts the /.../ would result in an immediate match on $_
21:42:24 <elliott> Gregor: Niiiiiiiiice
21:42:47 <Gregor> elliott: Err, five, rather.
21:42:52 <elliott> Gregor: Disappointed that -q without any warriors doesn't lock up my computer
21:47:07 <Gregor> elliott: Suggested colors for 6-10? :P
21:47:39 <CakeProphet> !perl sub bmap(&@){my$x=shift;map{map $x,$_}@_} $b = [map{[map 0, 1..5]} 1..5]; print @{(bmap {1} $b)->[0]}
21:47:44 <CakeProphet> :(
21:48:26 <quintopia> looks like this game is going to be, like, done today?
21:49:03 <quintopia> where does the name of the game come from, Gregor?
21:49:15 <Gregor> quintopia: Me.
21:49:21 <Gregor> *useless answer CITYYYY*
21:49:26 <hagb4rd> if we go fast enough we might be even get it done yesterday
21:49:30 <quintopia> you are secretly Rezzo???
21:49:34 <quintopia> that's your middle name?
21:49:46 <quintopia> Gregor Rezzo Richards. Guess it has a nice ring to it.
21:50:02 <elliott> Gregor: Chartreuse, octarine, mezoflouride, Rezzo Corporate Colour 9, autopsy red
21:50:09 <elliott> , tambourine stain
21:50:15 <elliott> , ballad architect
21:50:20 <elliott> , fascist umprinder
21:50:21 <elliott> Gregor: hth
21:50:22 -!- CakeProp1et has joined.
21:50:22 -!- CakeProphet has quit (Read error: Operation timed out).
21:52:29 <elliott> So guys
21:52:29 <elliott> What if i
21:52:31 <elliott> went to sleep
21:52:38 <CakeProp1et> you would die.
21:52:59 <elliott> aha, then i'd never become sixteen.
21:53:21 <olsner> oh, is it your sweet sixteen tomorrow?
21:53:48 <CakeProp1et> !perl sub test{print "lol"} map \test, 1..4
21:53:48 <EgoBot> lollollollol
21:53:54 <elliott> olsner: fsvo sweet
21:54:29 <CakeProp1et> that's, odd.
21:54:30 <CakeProp1et> !perl sub test{print "lol"} map &{\test}, 1..4
21:54:31 <EgoBot> Not a CODE reference at /tmp/input.15020 line 1.
21:54:39 <Gregor> OK, my colors are now: red, blue, green, orange, magenta, teal, puce, cyan, purple, light green
21:54:58 <elliott> You're a puce.
21:55:34 <elliott> OK
21:55:35 <elliott> really
21:55:36 <elliott> Goodnight.
21:55:58 <CakeProp1et> oh it's because bmap doesn't accept an arrayref. lame.
21:56:34 <Vorpal> elliott, have fun tomorrow then
21:56:51 <hagb4rd> that's nice..where can i get information on the egobot..is there a repo? could ya spend me a link? thanks
21:58:16 <hagb4rd> n8 elliott
21:58:56 <hagb4rd> what time do you have btw?
22:00:02 -!- elliott has quit (Ping timeout: 240 seconds).
22:00:24 <CakeProp1et> !perl sub bmap([&$]+){my$x=shift;map{map $x,$_}@_} $b = [map{[map 0, 1..5]} 1..5]; print (bmap {1} @$b)[0]
22:00:24 <EgoBot> Malformed prototype for main::bmap: [&$]+ at /tmp/input.15502 line 1.
22:02:37 <CakeProp1et> !perl sub bmap(\[&$]+){my$x=shift;map{map $x,$_}@_} $b = [map{[map 0, 1..5]} 1..5]; print (bmap {1} @$b)[0]
22:02:38 <EgoBot> Type of arg 1 to main::bmap must be one of [&$] (not anonymous hash ({})) at /tmp/input.15758 line 1, near "} @"
22:03:03 <CakeProp1et> heh.
22:03:53 <CakeProp1et> !perl sub bmap(\[&$]@){my$x=shift;map{map $x,$_}@_} $b = [map{[map 0, 1..5]} 1..5]; print (bmap 1, @$b)[0]
22:03:54 <EgoBot> Type of arg 1 to main::bmap must be one of [&$] (not constant item) at /tmp/input.15882 line 1, near "$b)"
22:04:01 <fizzie> If you have a \ in there, it's going to have to be a real thing that starts with & or $.
22:04:18 <CakeProp1et> ah right because it's a ref.
22:04:19 <quintopia> so
22:04:23 <quintopia> gaddafi is dead
22:04:28 <CakeProp1et> can't do \0
22:04:29 <fizzie> Well, no, it will be passed as a ref.
22:04:34 <CakeProp1et> that's what I mean.
22:04:51 <hagb4rd> quintopia: really?
22:04:57 <CakeProp1et> so you can't emulate map's signature with prototypes.
22:05:01 <CakeProp1et> not exactly.
22:05:43 <fizzie> (&@) possibly gets reasonably close.
22:06:04 <fizzie> It's what the docs use for an "almost exactly like" grep replacement, and grep's pretty close to map.
22:06:07 <quintopia> hagb4rd: i dont know
22:06:41 <CakeProp1et> yeah but that doesn't allow map 0, @list or grep /pattern/, @list
22:06:58 <CakeProp1et> the grep example being more common than the map one.
22:07:23 <CakeProp1et> ah well.
22:07:57 <CakeProp1et> I guess I'll just have to write {} and return with my map and grep like operators. the horror.
22:08:10 <quintopia> hagb4rd: looks like he was shot. alive but maybe not much longer?
22:08:33 <hagb4rd> quintopia: how can you tell?
22:08:49 <hagb4rd> qui´´´´
22:08:52 <hagb4rd> link?
22:08:53 <quintopia> http://twitter.com/#!/MalikAlAbdeh
22:12:30 <CakeProp1et> !perl print map ' ', 1..5
22:14:58 -!- FireFly has quit (Quit: FireFly).
22:36:08 -!- CakeProp1et has quit (Ping timeout: 268 seconds).
22:38:46 <Vorpal> quintopia, is it confirmed he is killed? By dependable sources?
22:39:06 <quintopia> read the twitter feed vorpal. says he is probably alive.
22:39:12 <Vorpal> ah
22:39:27 <Vorpal> quintopia, says killed in the top tweet
22:40:03 -!- CakeProphet has joined.
22:40:05 <Vorpal> wait, did I call it "tweet"? I meant "post" of course. "Tweet" is a silly name.
22:40:07 <azaq23> somehow twitter doesn't work for me anymore, FF 3.5.19. It shows the top bar and then nothing.
22:40:08 <CakeProphet> ($self->{arr}, $self->{str}) = ($g, join "\n", map {join '',@$_} @$g) if $g;
22:40:13 <CakeProphet> object-oriented Perl sure is fun.
22:40:24 <Vorpal> azaq23, tends to need js iirc
22:40:33 <Vorpal> yes that sucks
22:40:42 <quintopia> Vorpal: then it's still up in the air. i suspect he won't be alive tomorrow, either way.
22:41:02 <Vorpal> quintopia, is the shooting confirmed by reliable sources though?
22:41:03 <quintopia> also, tweet is correct. resistance to newspeak is futile.
22:41:14 <Vorpal> quintopia, such as NATO or whatever
22:41:20 <azaq23> Vorpal: JS is activated, otherwise this would be the easy reason. It still worked a month ago
22:41:30 <quintopia> the man is a journalist. he probably has sources that NATO doesn't
22:41:30 <Vorpal> huh
22:41:39 <Vorpal> quintopia, yes but are they reliable
22:42:23 <quintopia> the sources are anonymous. only the man doing the tweeting can be the judge of that
22:42:42 <quintopia> (anonymous to us, not to him, i mean)
22:42:47 <Vorpal> quintopia, so is there any other source than the man doing that posting on twitter?
22:42:50 <Vorpal> that is what I'm asking
22:42:58 <Vorpal> I don't know if I trust that man either
22:43:03 <Vorpal> I have never heard of him before
22:43:26 <quintopia> i don't know. have you looked?
22:43:28 <Vorpal> quintopia, In other words I'm asking for reliable independent sources.
22:43:42 <quintopia> why don't you seek them out then?
22:43:45 <Vorpal> quintopia, yes, tried google news
22:43:47 <Vorpal> nothing
22:44:15 <quintopia> i don't think other news services are going to say anything until the confusion has died down and the end result is absolutely confirmed.
22:44:28 <hagb4rd> reliable and independent..yes
22:44:32 -!- CakeProphet has quit (Ping timeout: 240 seconds).
22:44:44 <Vorpal> hagb4rd, exactly what I asked for. Reliable, independent
22:44:50 <Vorpal> err
22:44:51 <Vorpal> quintopia, ^
22:45:07 <quintopia> you're going to have to wait then
22:45:19 <quintopia> by tomorrow you will know
22:45:36 <Vorpal> quintopia, tomorrow what timezone? It is just after midnight here
22:45:38 <hagb4rd> i'd like to know who really is
22:46:04 <quintopia> check your morning tv news
22:46:06 -!- Patashu has joined.
22:46:13 <quintopia> i bet they'll know for sure by then
22:46:13 <Vorpal> quintopia, you mean news paper
22:46:22 <quintopia> no one reads newspapers
22:46:27 <Vorpal> quintopia, you live in US right?
22:46:37 <quintopia> also newspapers are printed much earlier than morning news is shot
22:46:39 <Vorpal> quintopia, in Sweden newspapers are still good quality, and common
22:47:12 <quintopia> wait until the morning tv news. i suspect newspapers wont have it yet
22:47:40 <Vorpal> quintopia, I don't even have a TV. So I'll check the radio then.
22:47:55 <Vorpal> quintopia, Sweden has public service on BBC quality level after all.
22:47:57 <Vorpal> unlike US
22:48:34 <quintopia> we have BBC america
22:48:59 <Vorpal> quintopia, okay, still it is not like it is BBCs main target.
22:49:31 <quintopia> you are very familiar with US news services?
22:49:34 <Vorpal> quintopia, and based on the name that covers more than one country
22:49:47 <hagb4rd> there are all kind of journalists in all ´countries
22:49:49 <Vorpal> quintopia, enough to know that public service over there is fairly limited
22:49:58 -!- CakeProphet has joined.
22:49:58 -!- CakeProphet has quit (Changing host).
22:49:59 -!- CakeProphet has joined.
22:50:04 <Vorpal> and that newspapers are not as common as in Europe
22:50:06 <quintopia> limited how
22:50:22 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:50:31 <quintopia> and newspapers are ridiculously common
22:50:37 <quintopia> and very complete
22:50:43 <Vorpal> quintopia, you said no one reads them
22:50:46 <quintopia> its just that paper journalism is the past
22:50:49 <Vorpal> that is what I meant
22:51:14 <hagb4rd> maybe ..ack
22:51:18 <Vorpal> quintopia, you have nothing like BBC really. You do have a few public service networks iirc, but no single major player like that.
22:51:34 <quintopia> i dont think you know much about the news here though. nott enough to directly compare quality.
22:51:49 <hagb4rd> right
22:51:57 <Vorpal> quintopia, possibly
22:52:25 <Vorpal> quintopia, oh and of course they are very US centric. And Fox is horrible.
22:52:56 <quintopia> not like newscorp doesnt do horrible things internationally.
22:53:12 <quintopia> but i dont hear many people criticizing NYTimes
22:53:28 <Vorpal> interesting
22:54:01 <Vorpal> maybe that paper have better quality?
22:54:08 <Vorpal> has*
22:54:23 <quintopia> including web
22:54:26 <quintopia> it may be so
22:54:40 <hagb4rd> they have the oldskool journalísts
22:55:02 <hagb4rd> but times will change
22:55:58 -!- CakeProphet has quit (Ping timeout: 240 seconds).
22:56:07 <quintopia> does CNN have a bad reputation outside the US?
22:56:24 <hagb4rd> no
22:56:35 <hagb4rd> but fox has
22:56:43 <hagb4rd> indeed
22:56:48 <quintopia> fox has a bad reputation IN the US. we call it an outlier.
22:56:54 -!- CakeProphet has joined.
22:56:55 -!- CakeProphet has quit (Changing host).
22:56:55 -!- CakeProphet has joined.
22:57:28 -!- CakeProp1et has joined.
22:57:31 <quintopia> but they are an opinion service, not a news service, so for delivering opinions they are pretty adequate
22:57:58 <hagb4rd> same shit we got here
22:58:07 <monqy> good thing they certainly don't call themselves a news source
22:58:12 <monqy> fair & balanced
22:58:12 <CakeProp1et> HALP HOW DO I SHOT FIND IN IRSSI
22:58:17 <monqy> help
22:58:31 <CakeProp1et> HALP TOO MANY WORDS
22:58:54 -!- CakeProphet has quit (Client Quit).
22:59:07 <CakeProp1et> brb
22:59:09 -!- CakeProp1et has quit (Client Quit).
22:59:26 <pikhq> Fox has a bad reputation in the US, except for its audience.
22:59:35 <pikhq> Which considers it a source of Truth.
22:59:37 -!- CakeProphet has joined.
23:01:47 <hagb4rd> which part does it make?
23:01:59 <hagb4rd> how big o
23:02:08 <hagb4rd> is the audience ..sorry
23:02:26 <pikhq> A fairly large portion of the GOP base.
23:03:15 <Gregor> pikhq: dood u shud rezzo
23:03:43 <hagb4rd> but its the center of america..and the south ..right?
23:03:49 <hagb4rd> not the coasts
23:04:43 <Vorpal> <hagb4rd> but times will change <-- maybe, but here newspapers survive by doing investigating journalism to a much higher degree than before.
23:04:59 <pikhq> And the US's electoral system is biased against population density.
23:05:00 <Vorpal> at least the ones that are still breaking even do
23:05:22 <CakeProphet> halp elliot's wonder.hs buffer cleared
23:05:26 <pikhq> Vorpal: Here journalism survives by spouting louder bullshit.
23:05:37 <Vorpal> pikhq, I think our way is better
23:05:37 <hagb4rd> lol
23:06:08 <pikhq> Yes, well, it is.
23:06:51 <Vorpal> pikhq, especially for democracy. Investigative journalism is an important tool to battle corruption.
23:07:25 <CakeProphet> Gregor: what's the link to that repo?
23:08:12 <Gregor> CakeProphet: https://codu.org/projects/rezzo/hg/
23:08:22 <hagb4rd> vorpal: absolutely
23:08:27 <pikhq> *Battle* corruption?
23:08:32 <pikhq> How unAmerican.
23:08:33 <Vorpal> pikhq, only reason I still subscribe to a newspaper is due to the really good quality journalism in it.
23:08:42 <Vorpal> svenska dagbladet
23:08:44 <Vorpal> svd.se
23:08:46 <Patashu> US POLITICS
23:09:58 <Vorpal> pikhq, that newspaper won a shitload of international awards. Not only for their journalism, but also for the design, and good use of graphics for visualisation iirc.
23:12:37 <CakeProphet> Gregor: agent ID = 0-9?
23:13:06 <Gregor> CakeProphet: Yes.
23:13:49 <olsner> Vorpal: don't be so confident that journalism is all free and awesome over here, it's merely less bad I think
23:14:14 <CakeProphet> !perl sub id2base($) {(qw(1 q 2 w 3 e 4 r 5 t 6 y 7 u 8 i 9 o 0 p))){shift}} print id2base(1)
23:14:14 <EgoBot> syntax error at /tmp/input.22813 line 1, near "))"
23:14:14 <Vorpal> olsner, true, not free. I mean SvD costs money certainly.
23:14:25 <Vorpal> olsner, anyway SvD /is/ good.
23:14:27 <CakeProphet> !perl sub id2base($) {(qw(1 q 2 w 3 e 4 r 5 t 6 y 7 u 8 i 9 o 0 p)){shift}} print id2base(1)
23:14:27 <EgoBot> syntax error at /tmp/input.22903 line 1, near "){"
23:14:31 <CakeProphet> bah
23:14:48 <olsner> Vorpal: I meant free as in freedom, freedom of the press to discover shit and write about it
23:15:07 <Vorpal> olsner, well, true, it could be getting worse. Who knows.
23:15:24 <CakeProphet> !perl sub id2base($) {tr/0-9/qwertyuiop/ =~ shift} print id2base(1)
23:15:32 <olsner> well, they are probably pretty free, but aren't very independent I think
23:15:37 <CakeProphet> I promise I'm not making like... a hilarious hack or anything.
23:16:11 <Vorpal> CakeProphet, if it doesn't print "just another perl hacker" I'm going to be disappointed
23:16:45 <CakeProphet> !perl sub id2base($) {shift =~ tr/0-9/qwertyuiop/} print id2base(1)
23:16:45 <EgoBot> Can't modify shift in transliteration (tr///) at /tmp/input.23127 line 1, near "tr/0-9/qwertyuiop/}"
23:17:06 <Vorpal> CakeProphet, but why not try it locally?
23:17:16 <Vorpal> just open a terminal emulator
23:17:24 <CakeProphet> this is actually more convenient.
23:17:29 <CakeProphet> I'll move to /msg
23:17:43 <Vorpal> CakeProphet, show us the end result though
23:18:17 <Vorpal> CakeProphet, also I have nothing against you doing it here. It is low rate enough to not be spammy :P
23:18:33 <Gregor> http://codu.org/projects/rezzo/hg/index.cgi/raw-file/tip/README.agents Here we go, a simple README for writing agents.
23:19:03 <Vorpal> Gregor, typo "my respond"
23:19:10 <Vorpal> should be "may"
23:19:37 <Gregor> Vorpal: Fixt.
23:19:46 <Vorpal> Gregor, :)
23:20:11 <CakeProphet> !perl sub id2base($) {my $_=shift;tr/0-9/qwertyuiop/;$_} print map id2base, 0..9
23:20:12 <EgoBot> Not enough arguments for main::id2base at /tmp/input.23915 line 1, near "id2base,"
23:20:21 <CakeProphet> !perl sub id2base($) {my $_=shift;tr/0-9/qwertyuiop/;$_} print map \id2base, 0..9
23:20:21 <EgoBot> Not enough arguments for main::id2base at /tmp/input.23974 line 1, near "id2base,"
23:20:25 <CakeProphet> ffff
23:20:39 <Vorpal> Gregor, so the client needs to be recompiled to use a different view port size? Hm
23:20:40 <CakeProphet> !perl sub id2base($) {my $_=shift;tr/0-9/qwertyuiop/;$_} print id2base 5
23:20:40 <EgoBot> y
23:20:41 <CakeProphet> tada
23:20:47 <CakeProphet> not terrible...
23:20:57 <CakeProphet> if I say "not terrible" enough it becomes not terrible.
23:21:10 <Gregor> Vorpal: It was argued that since this is essentially a realtime application, it's more important to know the size statically than to be flexible.
23:21:26 <Vorpal> ah I see
23:22:30 <CakeProphet> Vorpal: the purpose is to map each agent ID to a unique character for the purposes of representing the game grid.
23:22:44 <Vorpal> CakeProphet, ew
23:22:52 <Gregor> ... huh?
23:22:55 <CakeProphet> may not be necessary though.
23:23:40 <CakeProphet> Gregor: bases and geysers are states, but agents are not right?
23:23:46 <CakeProphet> otherwise moving around would destroy things.
23:24:27 <Gregor> CakeProphet: Agents are states, but agents may only move on blank spaces. The "wall" concept was merged into circuits.
23:25:05 <CakeProphet> ...I don't really like that but oh well.
23:26:16 <Vorpal> Gregor, so not really a CA any longer. Since the agent doesn't follow any CA laws
23:26:33 <CakeProphet> no opposite of that.
23:26:37 <CakeProphet> agents are states.
23:26:38 <Vorpal> after all it is controlled by an external program
23:26:42 <CakeProphet> well, yeah
23:26:53 <CakeProphet> controlled by a predetermined input string. :P
23:27:05 <Vorpal> CakeProphet, open('/dev/random')
23:27:15 <Vorpal> err " not '
23:27:37 <Vorpal> CakeProphet, you can't describe the agent's behaviour anyway in terms of the state of it and the neighbours
23:27:54 <Vorpal> iirc that is what makes a CA a CA, as opposed to for example a bully automata
23:28:28 <Gregor> <Vorpal> Gregor, so not really a CA any longer. Since the agent doesn't follow any CA laws // the CA and the agents were always independent. The agent DOES follow CA laws, it just only does so during the CA update.
23:28:36 <Gregor> The agent was never a CA itself, that makes no sense :P'
23:29:08 <Vorpal> Gregor, that is less of an issue when the agent is not a state :P
23:29:43 <Gregor> Vorpal: This opens the possibility of e.g. hitting agents (which currently you can't do)
23:30:02 <Gregor> Besides, it makes agent visibility not be yet more extra data.
23:30:06 <Vorpal> Gregor, so how do you win currently?
23:30:12 <Gregor> Vorpal: It's capture-the-flag.
23:30:18 <Vorpal> ah
23:30:28 <Vorpal> Gregor, flag geysers?
23:30:32 <Vorpal> how does that work
23:30:39 <Gregor> Vorpal: Did you read the README, or only README.agent? :P
23:30:47 <Vorpal> Gregor, link me to the readme
23:30:52 <Gregor> http://codu.org/projects/rezzo/hg/index.cgi/raw-file/tip/README
23:30:53 <Vorpal> I haven't seen it
23:32:46 <Vorpal> Gregor, btw the time system currently is unfair. I suggest basing it on CPU time instead somehow. After all, who knows what other process suddenly decides to run
23:33:16 <Gregor> Vorpal: I have decided to instead write a system that's actually implementable.
23:33:26 <Gregor> (It's unfair, but it's equally unfair to all contestants)
23:34:02 <CakeProphet> Vorpal the benefit of representing each possible state as a character is that I can use regex to match patterns.
23:34:12 <CakeProphet> that's the theory anyways. We'll see how it works out.
23:34:26 <Gregor> Oh, that's interesting ...
23:34:28 <Vorpal> CakeProphet, .... less efficient if you do it from C or such :P
23:34:48 <Gregor> Why do people seem to think that 1/15th of a second is some super-tiny amount of time? Implement it in Perl, who cares X-P
23:34:51 <Vorpal> Gregor, uh. How is it not implementable to measure CPU time. You just have to run the processes under your control.
23:34:59 <Vorpal> try ais secret project XD
23:35:07 <Gregor> Vorpal: Yeah, I don't got that ;P
23:35:18 <CakeProphet> Gregor: you think I'll end up going over the frame rate?
23:35:55 <Gregor> CakeProphet: Everything I've done in C has been way, way, way faster than it needed to be, so it's not like it's cutting it close.
23:36:07 <Patashu> Not fast enough
23:36:08 <Patashu> Code it in fortran
23:36:09 <CakeProphet> awesome.
23:36:22 <Vorpal> Gregor, hm what is a good algorithm to do pathing here. Considering the moving electrons I mean
23:36:47 <Gregor> Vorpal: The moving electrons have very little relevance to player pathing ...
23:37:03 <Vorpal> Gregor, iirc you said players could only enter empty cells?
23:37:12 <Vorpal> oh wait, conductors
23:37:15 <Gregor> Vorpal: Yes, but ele--yeah.
23:37:22 <Vorpal> Gregor, how do you cross a conductor?
23:37:25 <Gregor> Break it.
23:37:28 <CakeProphet> so far I've gone with the name "spartan" but I might change it once I actually have a strategy.
23:37:29 <Vorpal> ew
23:37:34 <Vorpal> Gregor, that is ugly
23:37:44 <Patashu> can you make a conductor go diagonally?
23:37:46 <Patashu> then agents can pass it
23:37:52 <CakeProphet> makes it easy to destroy circuits though.
23:37:52 <Gregor> Patashu: Yes, you can.
23:37:58 <CakeProphet> just flail around destructively.
23:38:01 <Gregor> Patashu: But you can't move diagonally.
23:38:05 <Patashu> o
23:38:07 <Gregor> CakeProphet: Destroying takes a while.
23:38:17 <CakeProphet> how so?
23:38:35 <Gregor> Cells have a damage value (which is completely independent of the CA)
23:38:59 <Vorpal> ew
23:39:04 <Vorpal> and the client can't see it
23:39:08 <Vorpal> just ew
23:39:14 <Gregor> Vorpal: So you've read but not actually read both of the README files then.
23:39:17 <Patashu> oh no...not...limited information
23:39:21 <Patashu> O_O
23:39:27 <CakeProphet> Gregor: so you... sit on the conductor for a while before it goes away, otherwise it gets replaced by a conductor when you step off?
23:39:30 <Gregor> Seeing as that you think that you can't see it when actually you can and it says so RIGHT IN THE FUCKING README
23:39:36 <Vorpal> oh I missed the damage array
23:39:37 <Gregor> READ
23:39:37 <Patashu> I demand a bfjoust variant where the player is told the status of the entire board
23:39:37 <Gregor> THE
23:39:38 <Vorpal> right
23:39:38 <Gregor> FUCKING
23:39:39 <Gregor> READMES
23:40:01 <Gregor> <-- much more polite in README form :P
23:40:25 <Vorpal> Patashu, go code it then
23:40:50 <Vorpal> Patashu, not that it will be interesting
23:40:51 <Patashu> it's an obvious joke
23:40:54 <Patashu> it won't
23:41:10 <Patashu> bfjoust is only interesting because you don't know what the fuck is going on except whether you're on a 0 or not
23:41:13 <Vorpal> perfect play would always lead to a draw. And perfect play would be even easier than in tic-tac-toe
23:41:42 <CakeProphet> Gregor: rezzo warrior repo plz (sorry if it's in plain site but I can't seem to get it from google or the previous link)
23:41:49 <CakeProphet> *sight
23:41:58 <Gregor> CakeProphet: That one's not in plain sight, since only elliott uses it :P
23:42:04 <Gregor> https://codu.org/projects/rezzo/warriorhg/
23:42:54 <Vorpal> Gregor, anyway hm I would make my client for the game multi-threaded.
23:43:03 <Gregor> Vorpal: Then do that :P
23:43:12 <Vorpal> Gregor, if I was about to do one :P
23:43:37 <CakeProphet> Gregor: reading Haskell is almost like reading a spec so I'm using it as reference. :P
23:44:14 <Vorpal> Gregor, oh another good trick: scan /proc for the server and suspend it while calculating the move. Since the other bot would not expect that, it should be an advantage.
23:44:16 <Vorpal> ;P
23:44:36 <Gregor> Vorpal: lol NO SIDE CHANNELS >_<
23:44:38 <Gregor> :P
23:44:42 <Vorpal> Gregor, aww
23:45:01 <Vorpal> Gregor, my next suggestion was using ptrace to modify the board :P
23:45:54 <Vorpal> Gregor, anyway a more borderline case would be busywaiting all the time you are not calculating
23:45:57 -!- hagb4rd has quit (Ping timeout: 252 seconds).
23:46:00 <Vorpal> I wonder what that would result in
23:46:06 <Vorpal> on all cores that is
23:46:15 <CakeProphet> heh, elliott and I used the same characters for the same states.
23:46:25 <Gregor> Vorpal: Probably snarfing up all the memory would be more valuable.
23:46:43 <Vorpal> Gregor, oh good point. But that would be tricky on linux.
23:47:00 <Gregor> while (1) malloc(1);
23:47:20 <Vorpal> Gregor, due to overcommiting, and swap you will not get the result you want from that I expect
23:47:48 <Gregor> Vorpal: Swapping is /exactly/ what you want. Overcommitting shouldn't be an issue with malloc(), glibc still needs its bookkeeping.
23:48:11 <Vorpal> Gregor, probably more efficient to just mmap a huge range and write to the first byte in every page
23:48:22 <Gregor> Vorpal: Yeah, that'd do.
23:48:29 <Gregor> setrlimit to the rescue :P
23:48:40 <fizzie> That sounds like a good way to get the best possible score for the OOM killer.
23:48:42 <CakeProphet> !perl print join "\n", qr/a/, qr/b/, qr/c/
23:48:43 <EgoBot> ​(?-xism:a)
23:48:45 <CakeProphet> lolwhut
23:48:49 <Vorpal> fizzie, oh true
23:49:33 <CakeProphet> !perl print "a\nb\nc"=~(join "\n", qr/a/, qr/b/, qr/c/)
23:49:34 <EgoBot> 1
23:49:36 <CakeProphet> :)
23:49:37 <Vorpal> Gregor, anyway filling up the ram of a modern desktop will take a while. I have 16 GB RAM.
23:49:52 <olsner> that'll take like several seconds
23:50:07 <Vorpal> olsner, yep. with 15 moves per second....
23:50:25 <Gregor> Vorpal: So, you're not gonna win in 45 moves *shrugs*
23:50:33 <Vorpal> heh
23:50:37 <CakeProphet> truly it is a glorious day when I can join regexes
23:50:42 <Vorpal> hm the first hdd I had was 3.2 GB iirc. That isn't a lot these days
23:50:43 <CakeProphet> though I suppose strings would have sufficed.
23:53:04 <Gregor> Vorpal: I could run the program under UMLBox with max (say) 64MB memory, and no more than one user process (which I /think/ still allows threads?)
23:53:18 <Vorpal> Gregor, no it doesn't
23:53:20 <Vorpal> afaik
23:53:35 <pikhq> It does with NPTL.
23:53:40 <Vorpal> ah okay
23:53:50 <Vorpal> Gregor, anyway 64 MB isn't much
23:53:57 <Vorpal> Gregor, not if you are using haskell
23:54:07 <pikhq> I at least think...
23:54:24 <Vorpal> Gregor, allow 1 GB or so. That would be more than enough. And not large enough to be problematic on a modern system.
23:54:30 <Vorpal> besides what is wrong with using fork()?
23:54:47 <Gregor> Vorpal: UML processes are processes, so you can still glut.
23:54:58 <Vorpal> Gregor, glut?
23:55:10 <Vorpal> as in the opengl related library?
23:55:13 <Vorpal> what
23:55:45 <Gregor> Why does NOÖNE no what glut means today.
23:55:52 <Vorpal> Gregor, tell me
23:55:59 <Gregor> Verb: Supply or fill to excess: "the factories for recycling paper are glutted".
23:56:09 <Vorpal> I see
23:56:33 <Vorpal> Gregor, must be deprecated. Removed in English 2011.08
23:56:41 <Gregor> :P
23:56:45 <fizzie> Gregor: It's because you keep using "no" for "know". The stupidity has retroactively spread.
23:56:59 <Gregor> fizzie: ... I seriously suck at English recently ...
23:57:17 <fizzie> I just got someone else's error message out of EgoBot via DCC, I think.
23:57:23 <Vorpal> heh
23:57:41 <Gregor> fizzie: Well, so long as /somebody/ gets them.
23:57:54 <Vorpal> Gregor, anyway 64 MB is tiny. 1 GB may be too much if you have many warriors
23:58:09 <Vorpal> Gregor, so, lets say 512 MB each? Sounds reasonable to me
23:58:11 <fizzie> http://p.zem.fi/yw0y -- wanted to check if it prints the other lines too, but it DCC-sent me someone's Haskell type problems.
23:58:28 <Gregor> Vorpal: My desktop has 1G 8-D
23:58:45 <Vorpal> Gregor, how quaint
23:58:45 <Gregor> (Nowait, 2G :P )
23:58:52 <Vorpal> still quaint
23:59:10 <Gregor> This desktop is from 2008.
23:59:13 <Vorpal> Gregor, anyway 64 MB each precludes many high level languages
23:59:19 <Vorpal> Gregor, low end then?
23:59:28 <Gregor> Vorpal: It's my main computer.
23:59:30 <Vorpal> Gregor, I mean my laptop from 2008 has more ram
23:59:37 <Vorpal> I think it is from 2008
23:59:42 <Gregor> I think 2008 might be wrong :P
23:59:43 <pikhq> Uh, 4G cost like $40 in 2008.
23:59:48 <Gregor> 2007?
23:59:49 -!- copumpkin has joined.
23:59:51 <Vorpal> okay 2009
23:59:52 <Gregor> Somewhere 'round there.
2011-08-22
00:00:03 <Vorpal> Gregor, still. It must have been low end
00:00:11 <Gregor> What do I need it for *shrugs*
00:00:14 <Gregor> All I do is program.
00:00:18 <Vorpal> Gregor, running warriors!
00:00:38 <Vorpal> Gregor, besides you play mc, no?
00:00:46 <Gregor> Vorpal: Yeah. It works fine.
00:00:58 <pikhq> Vorpal: Uh, Minecraft genuinely doesn't *use* more than 256MiB of heap.
00:01:21 <pikhq> Memory bloat is *not* a problem Minecraft has. :)
00:01:23 <Vorpal> pikhq, it manages to eat a lot for me. I have optimine or whatever it is called these days.
00:01:53 <pikhq> *Java* seems to love using metric fucktons of heap, though.
00:01:57 <Vorpal> pikhq, it eats more when playing single player than multiplayer of course
00:02:01 <Vorpal> pikhq, well, there is that
00:02:08 <Vorpal> pikhq, and the server eats a shitload.
00:02:15 <pikhq> Y'know, so it can have 1 GiB of heap, only 256 MiB of which is in use ever.
00:02:29 <pikhq> I suppose this lets it collect less?
00:02:42 <Vorpal> perhaps
00:04:00 <Vorpal> pikhq, how comes the server is so ram hungry though?
00:05:34 <pikhq> From what I gather, each loaded chunk uses up quite a decent bit of RAM.
00:05:41 <fizzie> Firefox has the largest RSS here; what, 1.5G of physical memory eaten for a reasonable set of 70-odd tabs?
00:05:51 <Vorpal> heh
00:05:53 <pikhq> And in multiplayer, more chunks will be loaded, unless you've got all players in the exact same chunk.
00:06:39 <Vorpal> pikhq, anyway on single player, more ram than what you mentioned will be used on far. Or less on normal.
00:07:45 <Vorpal> and of course, various plugins eating up further ram.
00:07:56 <Vorpal> well, night, *puts computer to sleep*
00:08:52 <olsner> nighty night Vorpal's computer
00:09:35 <CakeProphet> these regexes will be /really/ complicated...
00:11:06 <olsner> regexps are very simple compared to how much complication you can get out of them :)
00:11:33 <CakeProphet> matching strings in 2d grid = potential nightmare
00:12:25 -!- Vorpal has quit (Ping timeout: 250 seconds).
00:18:04 <CakeProphet> there has to be so many things wrong with this algorithm....
00:18:45 <olsner> the hallmarks of a good algorithm there
00:19:25 * CakeProphet is trying to match multiple occurences of a grid-like pattern in a multi-line string.
00:19:37 <CakeProphet> and also give the coordinates of the top-left corner of its occurence...
00:32:33 <CakeProphet> ah I think I figured it out.
00:42:42 <CakeProphet> what... why is emacs freezing.
00:42:44 <CakeProphet> STOP THAT.
00:45:30 <CakeProphet> .....
00:45:50 <CakeProphet> recover-this-file is also frozen
00:45:52 <CakeProphet> FFFFFFFFFFFUUUUUU
00:46:43 <CakeProphet> what...
00:50:25 <CakeProphet> apparently an unbalanced parenthesis fucked up emacs perl-mode?
00:58:14 <NihilistDandy> I blame the perl
00:58:49 <NihilistDandy> http://s348091950.initial-website.com/
00:59:03 <NihilistDandy> Cross the bridge to quality
00:59:33 <NihilistDandy> Jesus, darcs, have more warnings, why don't you?
01:04:32 <CakeProphet> !perl print "test" =~ /(?{"test"})/
01:04:32 <EgoBot> 1
01:05:01 <CakeProphet> !perl print "test" =~ /.(?{"est"})/
01:05:02 <EgoBot> 1
01:05:55 <CakeProphet> !perl my $x; print "01" =~ /.(?{pos $x})/; print $x
01:05:56 <EgoBot> 1
01:06:09 <CakeProphet> !perl my $x; print "01" =~ /(?{pos $x})/; print $x
01:06:09 <EgoBot> 1
01:06:12 <CakeProphet> !perl my $x; print "0" =~ /(?{pos $x})/; print $x
01:06:13 <EgoBot> 1
01:06:34 <CakeProphet> !perl my $x; print "0" =~ /((?{pos $x}))/; print $1
01:06:38 <CakeProphet> mmk
01:06:47 <CakeProphet> time to do terrible terrible things.
01:06:56 <CakeProphet> that probably do not work yet because I have not debugged anything.
01:07:10 <CakeProphet> !perl my $x; "0" =~ /((?{pos $x}))/; print $x
01:08:09 <CakeProphet> !perl my $x; "0" =~ /((?{x=pos}))/; print $x
01:08:09 <EgoBot> Can't modify constant item in scalar assignment at (re_eval 1) line 3, at EOF
01:09:06 <CakeProphet> !perl my $x; "0" =~ /((?{pos}))/; print $^R
01:09:07 <EgoBot> 0
01:09:13 <CakeProphet> !perl my $x; "0" =~ /.(?{pos})/; print $^R
01:09:13 <EgoBot> 1
01:09:19 <CakeProphet> aha
01:09:37 <CakeProphet> !perl my $x; "0" =~ /.(?{pos})/; print $^R, $1
01:09:37 <EgoBot> 1
01:10:05 <CakeProphet> this is a wonderful thing.
01:10:39 <Patashu> scary o.o
01:11:47 -!- NihilistDandy has quit (Ping timeout: 252 seconds).
01:12:59 <CakeProphet> !perl my $x; "0" =~ /(?{pos})/; print $1
01:13:06 <CakeProphet> !perl my $x; "0" =~ /(?{"0"})/; print $1
01:13:15 <CakeProphet> er what.
01:13:48 <CakeProphet> wow #perl is useless.
01:14:13 <CakeProphet> !perl my $x; print "0" =~ /(?{"0"})/;
01:14:13 <EgoBot> 1
01:14:16 <CakeProphet> !perl my $x; print "0" =~ /(?{pos})/;
01:14:17 <EgoBot> 1
01:14:19 <CakeProphet> !perl my $x; print "0" =~ /(?{pos;""})/;
01:14:20 <EgoBot> 1
01:14:24 -!- NihilistDandy has joined.
01:14:58 -!- Nihilist1andy has joined.
01:15:02 <CakeProphet> !perl my $x; print "00" =~ /.(?{pos})/;
01:15:02 <EgoBot> 1
01:15:08 <CakeProphet> ah okay.
01:15:43 <NihilistDandy> :|
01:16:24 <Gregor> I can make Rezzo videos now :)
01:16:31 <Gregor> Now if only there was something to make videos of :P
01:16:50 <CakeProphet> this is a wonderful thing I've discovered.
01:21:31 <CakeProphet> !perl print "test" =~ /^t@{["est"]}$/;
01:21:31 <EgoBot> 1
01:27:16 <CakeProphet> http://pastebin.com/P0RUvnw3
01:27:22 <CakeProphet> is this what beautiful code looks like?
01:27:39 <CakeProphet> also, haven't tested it yet so if you notice anything obvious let me know. I don't have time to debug atm.
01:30:07 <NihilistDandy> Is it me, or is Epigram really, really ugly?
01:30:37 <NihilistDandy> Oh, nevermind
01:30:46 <NihilistDandy> It was just Wikipedia making it look that way
01:31:38 <CakeProphet> bonus points if you can figure out what those regexes are supposed to do.
01:33:01 <CakeProphet> ah found a bug
01:37:51 <Patashu> Great, just great. The 0-star TAS got faster again http://tasvideos.org/forum/viewtopic.php?t=11699&postdays=0&postorder=asc&start=0
01:38:38 -!- sllide has quit (Read error: Connection reset by peer).
01:41:24 <NihilistDandy> "This TAS began when Kyman found a 1 frame improvement in the spiral stairs room."
01:42:05 <Patashu> 0-star TAS is the most pedantic of frame warsa
01:43:36 <NihilistDandy> What's BLJ?
01:43:45 <Patashu> backwards long jump
01:43:50 <Patashu> basically you park your rump against a wall and start doing long jumps
01:43:56 <Patashu> every time your velocity increases without bound
01:44:04 <Patashu> then you turn so there's no wall behind you and BAM you go flying
01:44:28 <Patashu> if you watch the run it's the 30Hz vibrating thing he does against solid surfaces
01:44:40 <NihilistDandy> I think infinite butt jump would be a better name
01:44:54 <Gregor> lolphysics
01:44:57 <NihilistDandy> I figured that was the thing, I just had no idea what it stood for
01:46:34 <CakeProphet> while I'm not sure if my Perl works yet (I would wager it does not), I am certainly still proud of how it looks.
01:48:09 <CakeProphet> !perl sub TEST(){'test'} print "&TEST"
01:48:10 <EgoBot> ​&TEST
01:48:13 <CakeProphet> :(
01:48:30 <Gregor> Perl: It is as bad as you can possibly comprehend.
01:50:20 <CakeProphet> !perl sub TEST(){\'test'} print "${TEST}"
01:50:35 <CakeProphet> oh right
01:50:53 <CakeProphet> !perl sub TEST(){my $t='test';\$t} print "${TEST}"
01:51:33 <CakeProphet> oh well, not important.
01:53:11 <CakeProphet> > 320*320
01:53:12 <lambdabot> 102400
01:53:27 <CakeProphet> that's quite a large string to run multiple regexes through.
01:54:13 <Gregor> CakeProphet: Your viewport is only 13x13, but I guess you probably want more global operations ...
01:54:20 <CakeProphet> yeah
01:54:28 <CakeProphet> but I could work only on the viewport as well.
01:54:50 <CakeProphet> and eventually do some kind of dynamic resizing so that I'm only searching known areas.
01:55:38 <NihilistDandy> Gregor: `quote 611
01:55:47 <Gregor> `quote 611
01:55:49 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
01:55:55 <Gregor> Heh :P
01:56:05 <CakeProphet> besides the viewport or a small radius around the viewport is probably better since the accuracy of the global environment is uncertain if I haven't visited recently.
01:56:18 <Gregor> (Implementino being Spanish for "implementation")
01:56:25 <NihilistDandy> Clearly
01:56:57 <Gregor> Oh, implementatino rather :P
01:56:58 <NihilistDandy> Also because someone (who shall remain named elliott) wouldn't accept my asterisk
01:57:39 <CakeProphet> !perl ' .'x(102400.0/2) =~ /fail/
01:57:51 <CakeProphet> !perl print "fail" unless ' .'x(102400.0/2) =~ /fail/
01:57:51 <EgoBot> fail
01:57:55 <Gregor> `quote implementatino
01:57:57 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
01:58:06 <Gregor> `run sed 's/implementatino/implementation/g' -i quotes
01:58:08 <HackEgo> No output.
01:58:11 <Gregor> `quote 611
01:58:13 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementation of awk
01:58:21 <CakeProphet> well, the full string traversal isn't a problem. a more complex regex might be considerably slower though.
01:58:47 <Gregor> CakeProphet: How "isn't a problem" is "isn't a problem"?
01:58:50 <NihilistDandy> That's neat
01:59:36 <CakeProphet> Gregor: I don't have a precise metric, I guess. 1/15 second is kind of hard to judge by ear.
02:00:04 <Gregor> CakeProphet: Run your simple regex 15,000 times and make sure it takes <1sec *shrugs*
02:00:26 <Gregor> OK, maybe 1,500 :P
02:00:51 <CakeProphet> !perl ' .'x(102400.0/2) =~ /fail/ for (1..1500);print "fail"
02:00:52 <EgoBot> fail
02:00:59 <CakeProphet> that was less than a second, even with latency.
02:01:13 <CakeProphet> unless there's some kind of cacheing that I don't know about?
02:01:17 <Gregor> Nope
02:01:33 <CakeProphet> not with egobot I mean Perl regex.
02:01:55 <CakeProphet> but I guess it construct a new string each iteration
02:01:56 <Gregor> Oh ... there might be.
02:01:58 <CakeProphet> so no cacheing if that's even possible.
02:02:07 <Gregor> CakeProphet: That clocks in at 0.008s on my system :P
02:02:18 <CakeProphet> > 1/15
02:02:18 <lambdabot> 6.666666666666667e-2
02:02:25 <Gregor> 0.06
02:02:36 <Gregor> CakeProphet: And I mean 0.008 in /total/, certainly not per iteration.
02:02:46 <CakeProphet> okay, probably not going to be a problem unless I get some massive regexes (which might actually happen)
02:03:02 <Gregor> You're several orders of magnitute away from it being a problem yet *shrugs*
02:04:03 <CakeProphet> also I generally take care to avoid things like nongreedy patterns.
02:04:29 <CakeProphet> !perl ' .'x(102400.0/2) =~ /.*?/ for (1..1500);print "fail"
02:04:30 <EgoBot> fail
02:04:36 <CakeProphet> which are apparently not a big deal either
02:05:12 <CakeProphet> reasoning about the performance of regex is kind of difficult actually....
02:05:29 <Gregor> Yeah, but you can make some broad guesses :P
02:06:36 <CakeProphet> I'm using Perl's illegibility to my advantage, so that future warriors do not copy my ingenius tactics.
02:06:41 <Gregor> lol
02:12:10 <CakeProphet> right okay so damage goes down as you sit on a conductor? when you get off it either becomes a space or conductor based on if the damage is depleted?
02:12:17 <CakeProphet> I'm just guessing. I don't really know how it works.
02:12:31 <CakeProphet> oh wait you use "hit" next to it?
02:12:47 <CakeProphet> because conductors act as walls.
02:14:06 <CakeProphet> I wonder how expensive a full rotation of the board would be, so that I could have regexes based on orientation.
02:18:35 <Gregor> Damage goes up, not down.
02:18:39 <Gregor> Otherwise, all yes.
02:18:55 <CakeProphet> oh, so you just have to keep hitting until it disappears?
02:19:09 <CakeProphet> is the value secret?
02:19:17 <Gregor> No, it's always 4 (as documented in the README)
02:19:28 <CakeProphet> should probably read that one of these days
02:19:33 <CakeProphet> >_>
02:20:34 <CakeProphet> okay so the server DOES NOT adjust your viewport based on orientation right? So if I wanted that I would have to do the rotations myself right?
02:20:48 <Gregor> The server DOES adjust your viewport based on orientation.
02:20:53 <Gregor> It's always what's in front of you.
02:21:52 <CakeProphet> oh excellent.
02:22:03 <CakeProphet> but I'll still have to rotate the board to have it match.
02:22:12 <CakeProphet> so same thing kind of.
02:22:23 <CakeProphet> well I could just account for the rotation
02:22:32 <CakeProphet> instead of rotating the whole thing constantly.
02:29:21 <CakeProphet> > 0.06 / 0.008
02:29:21 <lambdabot> 7.5
02:30:04 <CakeProphet> that's not a lot of regexes per turn, especially when if the complex ones are more time consuming.
02:32:43 <CakeProphet> so 1) resize grid as needed 2) use small arrays for things that can be near-sighted 3) hardcode some pattern matching
02:34:59 <Gregor> CakeProphet: Remember that was 0.008s to do 1,500 regexes.
02:35:50 <CakeProphet> oh right...
02:35:54 <CakeProphet> lol nv
02:35:55 <CakeProphet> m
02:36:21 <CakeProphet> I can get all semi-conscious on these bitches.
02:37:16 <CakeProphet> these games will be pretty long I imagine.
02:38:47 <Gregor> Well, my original idea for this was to just have an ongoing game that you can join at "any" point. That's made progressively less sense though.
02:38:56 <CakeProphet> heh
02:39:38 <CakeProphet> I would just create some huge monolithic grid that connects every possible point together with walkways so that I can scan for new bases to pillage.
02:39:50 <CakeProphet> or something like that.
02:40:02 <Gregor> Yeah, that's the problem, you're wildly disadvantaged as a new join :P
02:41:07 <CakeProphet> it will be interesting how well this regex approach works out.
02:41:32 <CakeProphet> IDEA.
02:41:38 -!- Patashu has quit (Ping timeout: 264 seconds).
02:41:40 <CakeProphet> instead of rotating the board just have 4 boards for every rotation.
02:43:17 <CakeProphet> so simple
02:43:24 <CakeProphet> and... painful to program.
02:44:47 <CakeProphet> > my @x=(1,2,3); print map{@x}@x;
02:44:48 <lambdabot> <no location info>: parse error on input `='
02:45:02 <CakeProphet> !perl my @x=(1,2,3); print map{@x}@x;
02:45:02 <EgoBot> 123123123
02:45:10 <CakeProphet> the list monad in Perl. :P
03:06:01 -!- zzo38 has joined.
03:21:27 <zzo38> Do you like this?
03:22:35 <Sgeo_> How does Perl's lambda syntax manage to be more sensible than the syntax of a descendent language?
03:24:40 <CakeProphet> er, what exactly are Perl's descendent languages? Ruby?
03:25:10 <CakeProphet> zzo38: like what?
03:26:51 -!- azaq23 has quit (Ping timeout: 246 seconds).
03:27:20 <CakeProphet> Sgeo_: well the syntax is just as sensible as any other sensible lambda syntax, but there are no named formal parameters, which might be considered not sensible. But this is a lack of sensibility in functions in general and not lambdas.
03:31:35 <CakeProphet> I kind of stopped paying attention to the lack of named parameters.
03:32:13 * Sgeo_ was referring to Ruby not Perl
03:32:41 <CakeProphet> you asked about Perl's syntax, there was my answer.
03:33:04 <CakeProphet> I'd say Ruby's is more or less sensible, but a bit wordy.
03:33:54 <CakeProphet> actually Perl's might be slightly wordier.
03:34:08 <CakeProphet> due to shifting and assigning parameter names
04:49:26 <CakeProphet> >_>
04:49:31 -!- CakeProphet has quit (Quit: Reconnecting).
04:49:47 -!- CakeProphet has joined.
04:49:47 -!- CakeProphet has quit (Changing host).
04:49:47 -!- CakeProphet has joined.
04:51:13 <CakeProphet> wouldn't (^) be slower than (**)?
04:53:42 <CakeProphet> :t (^)
04:53:43 <lambdabot> forall a b. (Num a, Integral b) => a -> b -> a
04:54:15 <CakeProphet> > (maxBound :: Int)^(maxBound :: Int)
04:54:16 <lambdabot> 9223372036854775807
04:55:04 <CakeProphet> > (maxBound :: Integer)^(maxBound :: Integer)
04:55:05 <lambdabot> No instance for (GHC.Enum.Bounded GHC.Integer.Type.Integer)
04:55:05 <lambdabot> arising from...
04:55:10 <CakeProphet> oh right.
05:15:48 <fizzie> > (fromIntegral (maxBound :: Int))^(maxBound :: Int)
05:16:03 <lambdabot> thread killed
05:16:06 <fizzie> I suppose that was a bit too large.
05:20:00 <CakeProphet> > (fromIntegral (maxBound :: Int))**(maxBound :: Int)
05:20:03 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
05:20:03 <lambdabot> arising from a use of...
05:20:52 <CakeProphet> > (fromIntegral (maxBound :: Int))**(fromIntegral (maxBound :: Int))
05:20:53 <lambdabot> Infinity
05:21:01 <CakeProphet> lulz
05:22:39 <fizzie> It'd have
05:22:43 <fizzie> > let i = fromIntegral (maxBound :: Int) in logBase 10 i * i
05:22:44 <lambdabot> 1.7492023358848572e20
05:22:50 <fizzie> That many digits.
05:26:50 <CakeProphet> f I were to name one of my strongest characteristics pertaining to software and programming I would say it's within Java and Visual Basics. I've been dealing with Visual Basics since my senior year of high school and the same with Java.
05:26:59 <CakeProphet> s/f/if/
05:27:30 <CakeProphet> introduction of one of my fellow classmates for this intro to software engineering online class. I definitely want to pick him for our group projects.
05:31:07 <itidus20> i think what happens is that a plural becomes a singular
05:31:11 <itidus20> such as "the basics"
05:31:32 <itidus20> and then, when having learned "the basics" is not a plural... when one encounters the word basic
05:31:39 <itidus20> the plural can attach itself
05:31:57 <CakeProphet> none of that made any sense to me.
05:32:36 <itidus20> people say "the basics" to mean the introductory knowledge of some area
05:32:44 <CakeProphet> mmk
05:32:49 <itidus20> however, noone ever speaks of a single "basic"
05:32:58 <itidus20> it's always "the basics"
05:33:06 <CakeProphet> unless they're talking about the programming language called Visual Basic
05:33:23 <CakeProphet> in which case it's written as "Visual Basic"
05:33:59 <itidus20> well.. for different meanings i know basic is used as a word on its own
05:34:08 <itidus20> but for the meaning of "things to tell a newbie"
05:34:27 <itidus20> for the specific meaning of "things to tell a newbie" it is usually "the basics"
05:34:37 <itidus20> akin to "the ropes"
05:35:00 <fizzie> But there's VBA, and quite a lot of difference between the old-style VB and modern VB.NET. Perhaps e just means e knows all the Visual Basics. All of them.
05:35:14 <CakeProphet> yes that's possible.
05:35:27 <CakeProphet> But maybe he's just stupid as well.
05:35:44 <fizzie> That's also always possible.
05:36:13 <itidus20> so, i think that when giving someone an introduction to a subject is called "the basics" that.. "introduction" is singular and so "the basics" seems to also be singular
05:36:40 <CakeProphet> no that's not how it works.
05:36:59 <itidus20> i am not disputing that the word basic is often used without an s
05:37:05 <CakeProphet> Here I'll show you the basics, they /are/ pretty easy.
05:37:34 <CakeProphet> /they/ /are/, even.
05:38:10 <CakeProphet> that means "basics" is plural, fitting with most other english words.
05:39:00 <itidus20> i know that "visual basics" is flatout wrong, but, "visual basics" is a common spelling
05:39:19 <itidus20> and there must be a reason why this particular grammatical foible occurs so often
05:39:31 <CakeProphet> this is the first time I've seen it.
05:39:52 <itidus20> maybe it is stupidity to some degree
05:40:05 <itidus20> another similar one is in australia there are some stores called safeway
05:40:17 <itidus20> but some people call it safeways
05:40:30 <CakeProphet> safeways or safeway's?
05:40:40 <itidus20> i don't know as i don't call it that
05:40:56 <itidus20> it could be "safeway's" imitative of "mcdonald's"
05:41:17 <itidus20> hehe
05:43:07 <CakeProphet> glogbot: sup
05:45:17 <CakeProphet> aloril atehwa_ augur augur chickenzilla clog GreaseMonkey iamcal ineiros jcp jcp|other jix lifthrasiir mycroftiv myndzi rodgort sebbu shachaf SimonRC variable twice11 Wamanuz yiyus yorick Zwaarddijk: sup
05:45:27 <augur> :|
05:46:07 <CakeProphet> roll call / everybody get in here!
05:46:32 <jcp|other> o.O
05:46:49 <CakeProphet> woah these people actually exist you just have to ping them.
05:46:54 <CakeProphet> ask and ye shall receive.
05:46:58 <CakeProphet> words of great wisdom.
05:47:59 <quintopia> what do you need
05:48:37 <fizzie> The #2 of the list (one spurious ping was enough, I guess) was speaking not more than a week or so ago.
05:48:59 <fizzie> As for #15, \o/
05:49:00 <myndzi> |
05:49:00 <myndzi> /`\
05:49:30 <quintopia> i haven't heard much from myndzi in a while
05:49:53 <CakeProphet> quintopia: I didn't ping you did I? o_o I guess since you asked: do you have any money I could have?
05:50:09 <CakeProphet> jcp|other: hello
05:50:17 <quintopia> you said "everybody get in here"
05:50:20 <quintopia> everybody includes me
05:50:23 <CakeProphet> augur: not sure why I pinged you actually.
05:50:25 <quintopia> aand no
05:50:30 <CakeProphet> quintopia: oh. 4chan meme.
05:50:31 <quintopia> i have no money
05:50:48 <CakeProphet> from harvey birdman: attorney at law.
05:54:18 <CakeProphet> http://tvtropes.org/pmwiki/pmwiki.php/Main/EveryoneGetInHere
05:55:03 <quintopia> that says everyone
05:55:07 <quintopia> you said everybody
05:55:11 <CakeProphet> ...... -_-
05:55:11 <quintopia> i sense discrrepancy
05:55:15 <CakeProphet> in the show it says everybody
05:56:21 <cheater> http://www.jerkcity.com/jerkcity1741.html
05:56:46 <shachaf> @slap CakeProphet
05:56:46 * lambdabot pokes CakeProphet in the eye
05:58:26 -!- oerjan has joined.
05:59:02 <quintopia> oerjan
05:59:16 <oerjan> quintopia
05:59:26 <quintopia> what are you working on these days
05:59:32 <fizzie> A roaring oerjan.
05:59:44 <oerjan> nothing
05:59:59 <quintopia> need any help?
06:01:03 <quintopia> i'm a pro at doing nothing
06:01:12 <quintopia> any time you need assistance with that, feel free to ask
06:01:14 <oerjan> ok, mr. hobbes
06:01:21 <CakeProphet> > do Nothing
06:01:21 <lambdabot> Nothing
06:02:43 <CakeProphet> > do do do do do do do do do do do Nothing
06:02:44 <lambdabot> Nothing
06:02:50 <CakeProphet> I'm going to write all of my Haskell code this way from now on.
06:02:56 <fizzie> > Just $ do Nothing -- oh if only $ would be ... instead
06:02:57 <lambdabot> Just Nothing
06:03:27 <CakeProphet> > let (...) = ($) in Just ... do Nothing
06:03:27 <lambdabot> Just Nothing
06:03:39 <quintopia> it's not the same
06:03:47 <CakeProphet> @define (...) = ($)
06:04:01 <CakeProphet> > Just ... do Nothing
06:04:02 <lambdabot> Not in scope: `...'
06:04:05 <CakeProphet> huh.
06:04:11 <oerjan> > [Just .. do Nothing]
06:04:11 <lambdabot> Couldn't match expected type `a -> Data.Maybe.Maybe a'
06:04:11 <lambdabot> against infe...
06:04:19 <oerjan> wat
06:04:27 <oerjan> oh wait
06:04:29 <CakeProphet> no Just parameter
06:04:32 <oerjan> no Enum
06:04:39 <oerjan> ...that too
06:04:53 <zzo38> The CPP with Haskelll doesn't work, it seem
06:05:02 <zzo38> At least, with GHCi
06:05:16 <CakeProphet> not by default no.
06:05:46 <oerjan> zzo38: there's a flag for it
06:05:51 <zzo38> But I typed > {-# LANGUAGE ForeignFunctionInterface, CPP #-} and I also put -XCPP that doesn't work either
06:06:17 <oerjan> oh is it a LANGUAGE pragma? hm.
06:06:33 <zzo38> Is it because it require # at the start of the line? It cannot go there because > is required at first
06:06:47 <oerjan> zzo38: oh that may be.
06:07:01 <CakeProphet> it wouldn't make # a new token I think it would just run the preprocessor first.
06:07:11 <CakeProphet> I wouldn't call it a syntax change, anyways.
06:08:15 <oerjan> http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#c-pre-processor indicates it's -fcpp
06:08:34 <oerjan> er
06:08:36 <oerjan> -cpp
06:08:41 <zzo38> OK, someone told me it was LANGUAGE pragma perhaps they are wrong, I will try -cpp instead
06:08:59 <zzo38> No, that is still error
06:09:04 <fizzie> > maybe (do Nothing) (fromMaybe $ Just Nothing) $ Just Nothing
06:09:05 <lambdabot> Just Nothing
06:09:39 <oerjan> zzo38: i guess the c preprocessor is run before the > 's are removed
06:10:26 <oerjan> oh there is -XCPP listed under the language section
06:11:55 <zzo38> No it says the > are removed at first before the C preprocessor
06:12:27 <zzo38> In section 4.5.3
06:13:00 <zzo38> But it is also GHCi and I don't know if that makes a difference too
06:13:27 <oerjan> hm it seems so
06:14:49 <oerjan> what do your preprocessor lines with > look like?
06:15:21 <zzo38> It looks like: > #ifndef GHCi but removing the space so it is ># is still error
06:15:31 <oerjan> ah.
06:15:39 -!- CakeProphet has quit (Ping timeout: 258 seconds).
06:15:39 <oerjan> yeah that's what i was wondering
06:15:59 <oerjan> maybe ask on #haskell
06:16:27 <zzo38> I tried that too, yes
06:18:25 <oerjan> do you get an error message?
06:19:20 <oerjan> that table seems to imply you can ask for a .hspp file to see what it looks like after the c pre-processor stage
06:19:23 <zzo38> Yes I get message that says is parse error on input `#'
06:19:40 -!- CakeProphet has joined.
06:19:40 -!- CakeProphet has quit (Changing host).
06:19:40 -!- CakeProphet has joined.
06:19:41 <oerjan> with -E
06:20:03 <CakeProphet> quintopia: if you're looking for something to do, run !wacro a few times until you find an acronym you like, name it, and then implement it (whatever it is...)
06:20:21 <CakeProphet> s/name/expand/
06:20:37 <quintopia> CakeProphet: i was looking for nothing to do. you notice how readily i offered to help do nothing.
06:20:39 <oerjan> oh you said it's ghci
06:21:02 <CakeProphet> quintopia: sounds like you're already doing a great job then.
06:21:04 <CakeProphet> !wacro
06:21:05 <EgoBot> PHGDNHMG
06:21:09 <CakeProphet> !wacro
06:21:09 <EgoBot> ZBMMCBISSE
06:21:13 <CakeProphet> ...
06:21:35 <CakeProphet> too many letters in those.
06:22:21 <quintopia> wacro should take a parameter for length
06:22:34 <zzo38> I tried -pgmP f:\cygwin\bin\echo.exe in order to see exactly what command-line parameters are given to the C preprocessor
06:25:35 <oerjan> i think i found a relevant post: http://osdir.com/ml/glasgow-haskell-users@haskell.org/2011-02/msg00037.html
06:26:10 <zzo38> I think C preprocessor is not the best kind of preprocessor for Haskell
06:26:14 <oerjan> it seems like the preprocessor directives should not have > , _even_ though they are run after the lhs stage
06:26:53 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
06:29:04 <oerjan> hm why should that be necessary...
06:30:09 <oerjan> !show
06:30:10 <EgoBot> That is not a user interpreter!
06:30:15 <oerjan> !userinterps
06:30:15 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak wacro warez wc yodawg
06:30:18 <zzo38> Yes they should not have > but the symbol GHCi is not even defined even though someone told me it is. Because I typed in ghci -pgmP f:\cygwin\bin\echo.exe I can see which symbols are defined in the preprocessor, and GHCi is not one of them.
06:30:24 <oerjan> !show wacro
06:30:24 <EgoBot> perl (sending via DCC)
06:31:32 <oerjan> oh you want to do something depending on if you're started in ghci?
06:31:56 <CakeProphet> oerjan: http://pastebin.com/mDyuacbS
06:31:58 <zzo38> oerjan: Yes. Some things in the file are for GHCi only and others are only for not GHCi
06:32:10 <zzo38> (It is the only reason I used the C preprocessor)
06:32:47 <CakeProphet> oerjan: and, dictionary miner: http://paste2.org/p/1596859
06:33:32 <CakeProphet> with most spaces conveniently removed for clarity of purpose.
06:33:38 <CakeProphet> :)
06:33:41 <zzo38> Is there another way, such as using Template Haskell? Can Template Haskell be used to check for such thing?
06:33:51 <oerjan> i have no idea
06:36:31 <oerjan> zzo38: however when using ghci i often run other functions directly instead of main. maybe you could define another function for invoking then?
06:37:10 <CakeProphet> imain
06:39:18 <cheater> can i somehow make the "extra key" between z and the left shift work as enter?
06:39:36 <oerjan> no. because it doesn't exist.
06:39:39 * oerjan runs away.
06:40:34 <zzo38> oerjan: This program has no main function; it is a library. But there are some things that it won't work in GHCi, such as foreign exports and import {-# SOURCE #-} and a few other things
06:40:51 <cheater> i bet zzo38 would know
06:40:59 <cheater> zzo38, how do i do that?
06:42:10 <oerjan> ok i have no experience with those things.
06:42:12 <zzo38> cheater: Doing what? Sorry I forgot
06:49:33 <zzo38>
06:51:22 * pikhq sucks terribly at this "sleep" thing.
06:51:31 * pikhq has said this a lot.
06:51:36 <pikhq> It remains true.
06:52:16 <oerjan> pikhq: i am glad to hear you ascribe to the norm for this channel.
06:52:23 <pikhq> Whoo.
06:58:36 <zzo38> I cannot figure out how to check for GHCi. C preprocessor does not work, Template Haskell commands location and recover do not work...
07:03:02 <oerjan> maybe you could split into different modules
07:06:00 -!- Zetro has joined.
07:21:19 -!- cheater has quit (Quit: Ex-Chat).
07:39:06 <Sgeo_> elliott and PH and Taneb should be happy they're asleep right now.
07:39:22 <Sgeo_> Hussie is currently trolling everyone who checks updates constantly
07:39:50 <Sgeo_> By releasing 1 page updates in rapider than usual succession
07:40:03 <Sgeo_> around 20 min intervals
08:08:23 -!- oerjan has quit (Quit: leaving).
08:20:09 <zzo38> Why can't the Template Haskell "recover" command recover from illegal foreign declaration errors?
08:35:06 -!- FireFly has joined.
08:52:19 <zzo38> I finally figured out how to make it so that the foreign exports are ignored in GHCi, and at the same time making it so that you do not have to specify the type of the exported function if you have already written the type elsewhere in the program.
08:52:46 <zzo38> I used "runIO getArgs" in Template Haskell to check if it has "--interactive" at first.
09:06:39 -!- zzo38 has quit (Remote host closed the connection).
09:21:13 -!- cheater has joined.
09:22:51 <cheater> hi
09:44:12 <cheater> where's ais when you need him
09:52:30 <cheater> ohh i think i need to augument rules/evdev
09:52:44 -!- cheater has quit (Quit: Ex-Chat).
10:01:56 -!- cheater has joined.
10:17:29 <Zetro> FireFly: hade du tänkt komma till matten?
10:19:52 <Zetro> ._. Wrong channel again
10:36:11 -!- GreaseMonkey has quit (Quit: The Other Game).
10:49:09 -!- Patashu has joined.
10:51:05 -!- monqy has quit (Quit: hello).
11:03:20 <yorick> CakeProphet: Y U HILIGHT ME
11:18:05 -!- BeholdMyGlory has joined.
11:44:17 -!- Vorpal has joined.
11:56:30 -!- boily has joined.
13:55:49 -!- Skaaarj has joined.
13:56:04 -!- Skaaarj has left.
14:07:19 -!- Patashu has quit (Ping timeout: 268 seconds).
14:08:44 -!- copumpkin has quit (Remote host closed the connection).
14:09:08 -!- copumpkin has joined.
14:25:04 -!- CakeProphet has quit (Ping timeout: 240 seconds).
14:27:02 -!- CakeProphet has joined.
14:51:22 -!- Phantom_Hoover has joined.
14:55:23 <Phantom_Hoover> OMG my school is going to let us buy our own labcoats BEST DAY EVER
14:56:44 <Gregor> Phantom_Hoover: I've been talkin' all summer about buying lab coats for the PL lab at Purdue :P
14:57:12 <Phantom_Hoover> I think lab coats are basically the height of fashion among nerds.
14:57:30 <Gregor> <Graphics guy> Do you really need to wear lab coats for a PL lab? <Gregor> Hey, don't blame me if your lab doesn't do /legitimate/ science.
14:57:31 <Phantom_Hoover> This is strange because I'm not going to touch a test tube after I leave school.
14:59:23 <Phantom_Hoover> Gregor, coffee spills are a real occupational hazard.
14:59:38 * Phantom_Hoover wonders if he can get away with wearing it over his uniform all year.
15:44:46 <cheater> what do you guys think of this layout http://pastebin.com/T1J7EpKa
15:44:56 <cheater> the B in the lower left is a second backspace
15:57:54 <Gregor> cheater: I think I want to hurt you.
15:59:02 <Sgeo_> Phantom_Hoover, I assume you saw Homestuck updates?
16:00:04 <Phantom_Hoover> Naturally, and then I a) realised that it probably wasn't EoA5, so Hussie LIED and b) went back to lab coat thoughts.
16:04:28 -!- nooga has joined.
16:04:43 -!- nooga has left.
16:04:50 -!- nooga has joined.
16:05:32 <nooga> meh
16:11:39 <CakeProphet> !perl ("Hi everyone and welcome to the FIFTH DIMENSION" =~ / /
16:11:41 <EgoBot> syntax error at /tmp/input.3289 line 1, at EOF
16:11:59 <CakeProphet> !perl ("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print pos." "})/)
16:12:00 <EgoBot> Warning: Use of "pos" without parentheses is ambiguous at (re_eval 1) line 1.
16:12:07 <CakeProphet> !perl ("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print (pos)." "})/)
16:12:08 <EgoBot> 3
16:12:23 <Phantom_Hoover> quintopia, GET OUT OF MY RSS FEEDS YOU BASTARD
16:12:45 <CakeProphet> !perl ()=("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print (pos)." "})/)
16:12:46 <EgoBot> 3
16:12:50 <CakeProphet> huh.
16:13:40 <CakeProphet> !perl @lol=("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print (pos)." "})/)
16:13:41 <EgoBot> 3
16:13:48 <CakeProphet> !perl @lol=("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print (pos)." "})/g)
16:13:49 <EgoBot> 3121624273137
16:14:07 <CakeProphet> !perl @lol=("Hi everyone and welcome to the FIFTH DIMENSION" =~ / (?{print pos," "})/g)
16:14:08 <EgoBot> 3 12 16 24 27 31 37
16:14:20 <CakeProphet> wooo...
16:14:39 * Phantom_Hoover realises that there aren't many future labcoat things he can do except wait until elliott turns up and goes livid with rage.
16:17:31 <nooga> !perl fork while fork
16:17:41 <nooga> oops
16:19:58 <CakeProphet> !perl sub a(){map fork, a}
16:20:03 <CakeProphet> !perl sub a(){map fork, a} a
16:21:29 <cheater> Gregor, why
16:22:18 <Gregor> cheater: You actually have to reach /farther/ to get to any of the vital symbol keys in your new "improved" system.
16:22:43 <Gregor> Unless you're missing the smallest finger on each hand.
16:24:16 <cheater> Gregor, i don't use them often at all.
16:24:22 <Gregor> Or, I suppose, if your hands are now supposed to be centered on sdfghjkl instead of asdfjkl;?
16:24:25 <cheater> i use enter and backspace and ; often
16:24:28 <Gregor> In which case shifting is a pain
16:24:48 <cheater> right hand fingers are on hjkl
16:24:55 <cheater> on the new hjkl that is
16:24:55 <Gregor> *brain explodes.
16:24:59 <cheater> nice
16:25:04 <cheater> i may now quit
16:25:15 -!- cheater has quit (Quit: Ex-Chat).
16:25:15 <Gregor> So shift is, like, lightyears away from your hands :P
16:27:24 -!- hagb4rd has joined.
16:36:30 -!- pikhq_ has joined.
16:36:43 -!- pikhq has quit (Ping timeout: 260 seconds).
16:38:43 -!- cheater has joined.
17:05:24 -!- CakeProphet has quit (Ping timeout: 258 seconds).
17:07:22 <quintopia> Phantom_Hoover: how did i gett in your rss feeds
17:07:51 <Phantom_Hoover> quintopia, Sam Hughes' response to your tweet.
17:09:11 <quintopia> quintopia: what. that was like yesterday or something.
17:09:21 <quintopia> i just addressed myself
17:09:37 <quintopia> i should get off the internet until im actually awake
17:16:20 -!- zzo38 has joined.
17:18:48 <cheater> who wants to try my new wonderful layout
17:18:53 <cheater> it is wonderful
17:21:26 <zzo38> I was unable to access it because of bad gateway error
17:30:46 <Gregor> BLACK UMBRELLA
17:37:11 <cheater> sorry zzo
17:37:29 <cheater> it is not uploaded yet that was just a pastebin of how the layout looks
17:37:56 <cheater> does your linux have xkb or xmodmap
17:38:31 <zzo38> I am not on Linux right now and in addition have no intention to adjust my keyboard layout anyways
17:41:26 <zzo38> But I did want to look but cannot access it
17:51:18 -!- hagb4rd has quit (Ping timeout: 252 seconds).
17:54:50 -!- NihilistDandy has quit (Quit: laundromat).
17:54:51 -!- Nihilist1andy has quit (Quit: laundromat).
17:56:23 -!- zzo38 has quit (Remote host closed the connection).
18:00:30 -!- oklopol has joined.
18:11:05 <Sgeo_> "Thus, the application we'll be building is Twitter FOR ZOMBIES"
18:11:10 <Sgeo_> So.... boring...
18:14:14 <nooga> http://webcache.googleusercontent.com/search?q=cache:Fdewfzbi-ZkJ:www.addedbytes.com/blog/if-php-were-british/+If+PHP+Were+British&hl=en&client=safari&strip=1
18:14:30 <nooga> elliottscript 2.0
18:18:09 <Phantom_Hoover> nooga, was this, by any chance, made by an American?
18:19:44 <nooga> i don;t know
18:22:40 <Phantom_Hoover> Doesn't look like it.
18:30:11 <Sgeo_> Ruby's "10 million ways to do one thing" philosophy is killing e
18:30:12 <Sgeo_> me
18:31:26 <nooga> an example?
18:32:09 -!- derrik has joined.
18:32:27 <Sgeo_> Tweet.update_attributes(), Tweet.attributes= then save,
18:32:30 -!- derrik has quit (Client Quit).
18:32:46 <Sgeo_> the_tweet[:whatever] = whatever the_tweet.save
18:33:01 <Sgeo_> For updating
18:33:11 <copumpkin> wonderful
18:33:22 -!- derrik has joined.
18:33:32 <Sgeo_> Ways to create records, like two Tweet.new uses, and a Tweet.create that allows skipping the .save
18:34:49 <cheater> why are you using ruby
18:34:51 <Sgeo_> For accessing attributes from an item
18:34:57 <cheater> are you doing this on purpose
18:34:58 <nooga> it's not ruby
18:35:01 <nooga> it's rails
18:35:03 <Sgeo_> some_item[:name] and some_item.name
18:35:40 <nooga> hash[:symbol] when you may want to pass a variable into []
18:35:54 <cheater> so anyways
18:36:02 <cheater> i like the new layout
18:36:10 <cheater> it is much more zen.
18:36:32 <cheater> i like how you can do most without moving your palms at all
18:36:50 <nooga> also
18:37:02 <cheater> it is a big improvement indeed
18:37:05 <nooga> Tweet.new just constructs the object so you may save it or not
18:37:11 <nooga> and manipulate it
18:37:22 <cheater> right hand is still a bit tricky but not overly so
18:37:27 <nooga> #create is used for rather simple models
18:38:08 <Sgeo_> Nothing wrong with using ActiveRecord without Rails, right?
18:38:16 <nooga> oh
18:38:29 <Sgeo_> Hypothetically, I mean
18:38:30 <cheater> nooga
18:38:36 <cheater> have you seen php on rails
18:38:40 <nooga> maybe you should check out Mongo.DB
18:38:52 <Sgeo_> ??
18:38:56 * Sgeo_ headaches
18:39:15 <nooga> http://www.mongodb.org/
18:39:21 <nooga> or Redis
18:39:30 <nooga> it's well suited for things like tweets
18:39:58 <nooga> and does not have stuff like migrations
18:40:29 <nooga> you just add keys in the model class and use it
18:40:42 <nooga> and magical persistence happens
18:40:58 <cheater> http://web.archive.org/web/20091103132947/http://phails.com/
18:41:10 <cheater> php on rails
18:41:36 <nooga> php is a big mistake itself
18:42:00 <nooga> they shouldn't make parodies with php
18:42:15 <cheater> i know right
18:43:56 <nooga> no, seriously -> http://www.phpontrax.com/
18:44:02 <nooga> it's real :D
18:49:05 <Sgeo_> The multiplicity of validators scares me
18:51:57 <nooga> you are free to write before_filter and validate by hand
18:52:10 <nooga> i mean before_save
18:53:08 <Sgeo_> <steerio> validate { |rec| rec.errors << :invalid if i_have_a_bad_mood }
18:53:08 <Sgeo_> <steerio> rec.errors[:something] that is
18:54:29 <nooga> oh, rightt
18:55:50 -!- oerjan has joined.
18:56:12 -!- pikhq has joined.
18:56:15 -!- pikhq_ has quit (Ping timeout: 252 seconds).
19:03:44 -!- Taneb|Kindle has joined.
19:03:53 <Sgeo_> Wait, do I actually have to make the database myself in Rails?
19:04:03 <Sgeo_> Django automatically makes databases
19:04:06 <Taneb|Kindle> Hello
19:04:42 <Sgeo_> Taneb|Kindle, Homestuck updates
19:04:47 <Sgeo_> Including a flash
19:05:00 <Gregor> Taneb|Kindle: Worst possible IRC device?
19:05:23 <Taneb|Kindle> Better than my mobile
19:05:43 <Taneb|Kindle> It works and it is free
19:06:18 <Zetro> IRC on a kindle?
19:06:27 <Taneb|Kindle> Sgeo_ I cannot really see it until sometime in early September
19:06:54 <Taneb|Kindle> Zetro and why not?
19:07:33 <Gregor> Taneb|Kindle: I have an eInk device, updates are ... less than ideal. If we were chattering away and it had conventional scrolling, it'd just be a mess. But does it have conventional scrolling?
19:07:40 <Zetro> Haven't seen anyone else using it for IRC :P
19:07:53 <Taneb|Kindle> I do not eally jknow
19:08:10 <Taneb|Kindle> Typing is somewhat awkward
19:09:17 <Gregor> Taneb|Kindle: Does text scroll like an IRC client on a computer, or in some other way? That is, when a new line appears, do all the current lines shift up?
19:09:37 <cheater> kindle irc is worst irc
19:09:42 <Taneb|Kindle> I dunno say more and I will tell you
19:09:59 <Gregor> Taneb|Kindle: Ohh, it hasn't even filled in a screen yet X-D
19:10:12 <Gregor> Taneb|Kindle: If it scrolls in some more stable way, then I see no reason why IRC on Kindle would be short of wonderful.
19:10:25 <Gregor> But if it scrolls whole-page, yukk.
19:10:29 <FireFly> I'd like to see a photo of IRC-on-an-eink-device
19:10:29 <Taneb|Kindle> Keyboard is awkward
19:10:35 <Gregor> Taneb|Kindle: Better than no keyboard :)
19:10:43 <Gregor> FireFly: Dood, my eInk device has Debian on it :P
19:11:10 <FireFly> Heh
19:11:27 <Taneb|Kindle> Scrolling is conventional
19:11:31 <Gregor> FireFly: http://www.mobileread.com/forums/attachment.php?attachmentid=75336&stc=1&d=1312936864
19:11:43 <Gregor> Taneb|Kindle: Yeah, that's awful ... it'll go all smushy every time somebody says anything.
19:11:43 <Taneb|Kindle> Using webchat
19:11:46 <Gregor> Ohhhhhhh
19:11:49 <Gregor> Then yeah :P
19:11:55 <Gregor> What you'd really want is round-robin "scrolling"
19:11:58 <FireFly> Aww, that looks too computery
19:12:15 <Gregor> FireFly: Whaddya expect, it's stock Debian :P
19:12:38 <Taneb|Kindle> I wonder what the Kindle OS is called
19:12:47 <FireFly> I wonder how an IRC client that uses a book-like font for the IRC lines would look (on an e-ink device, that is)
19:19:18 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
19:23:07 <Gregor> FireFly: Every font looks book-like on eInk.
19:23:15 <Gregor> Taneb|NotHere: Linux :P
19:23:17 <oerjan> <Sgeo_> "Thus, the application we'll be building is Twitter FOR ZOMBIES"
19:23:26 <oerjan> at least it'll be twitter with some brains...
19:23:33 <oklopol> BREAINISSSS
19:23:37 <oklopol> dfasgpeoitrhgeatrhg
19:23:54 <oklopol> what would you guys do without my input
19:24:05 * oerjan tosses oklopol a hitler's brain clone from iwc
19:24:11 <oklopol> :o
19:24:14 <oklopol> slewepw .>
19:33:07 -!- ais523 has joined.
19:34:19 <Gregor> ais523: Tell us, in your unending wisdom, what improvements Rezzo needs.
19:34:45 <oerjan> lasers.
19:34:50 <ais523> I, um, don't know
19:35:11 <oerjan> his wisdom is unending because it never begins
19:35:17 <Gregor> oerjan: On freaking SHARKS
19:35:22 <ais523> oerjan: heh
19:35:50 <ais523> Gregor: what would happen if bots weren't blocked by wire?
19:36:00 <ais523> as in, they can walk on top of wire
19:36:03 <oerjan> Gregor: i assume you have read the same recent iwc annotation as i
19:36:22 <Gregor> oerjan: ... no?
19:36:29 <Gregor> ais523: Then they could move around arbitrarily *shrugs*
19:36:32 <oerjan> oh?
19:36:42 <ais523> Gregor: indeed
19:36:47 <Gregor> ais523: The possibility of making them able to walk on wire but be hurt/moved by electrons was once discussed.
19:36:52 <oerjan> http://www.irregularwebcomic.net/3129.html from yesterday
19:37:01 <ais523> that way, the game would be more about manipulating the WireWorld than blocking each other in
19:37:15 <Phantom_Hoover> > 1220 / 170
19:37:16 <lambdabot> 7.176470588235294
19:37:31 <Gregor> oerjan: It is sad that you didn't get the reference in that comic, and thought I was referencing the comic >_
19:37:32 <Gregor> *>_<
19:37:56 <oerjan> Gregor: well i vaguely understand it's an older meme
19:38:08 <oerjan> but i _still_ assumed you'd read the iwc
19:38:48 -!- yourstruly has changed nick to erytssiN.
19:38:55 -!- azaq23 has joined.
19:39:02 -!- Taneb|Kindle has joined.
19:39:04 <oerjan> hm did iwc mention it even earlier...
19:40:04 <Taneb|Kindle> Of course the main problem with IRC on a Kindle is tha it disconnects so easily
19:40:16 <oerjan> Taneb|Kindle: wait, did iwc remove the crossover table entirely? i thought it was in the archive pages...
19:40:46 <Taneb|Kindle> Try in archive by themes
19:41:02 <oerjan> i did it wasn't there either
19:41:12 <Taneb|Kindle> Huh
19:41:21 <oerjan> oh it's in the cast page
19:44:02 <oerjan> ok there seems to be no lasers mentioned in the jumping the shark arc
19:44:33 <oerjan> (http://www.irregularwebcomic.net/comic.php?current=983&theme=17&dir=next5)
19:45:42 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
19:46:02 <Phantom_Hoover> Ooh, IWC nerdfest!
19:51:34 <Gregor> It's from Austin Powers >_<
19:51:37 <Gregor> And you are all TERRIBLE
19:52:25 <oerjan> Gregor: was looking it up
19:53:27 <oerjan> i have never seen any austin powers movies, but i suspect them to be the kind of comedy that makes me flee a room.
19:56:31 <Gregor> And that's terrible.
20:03:28 -!- monqy has joined.
20:08:27 <Gregor> LOL I implemented the CA wrong in the first place because I'm awesomepants X_X
20:11:50 -!- elliott has joined.
20:12:07 <Gregor> elliott: HEY ELLIOTT I SUCK AT WIREWORLD
20:12:13 <elliott> Gregor: ?
20:12:13 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
20:12:20 <elliott> im sixteen hi
20:12:20 <oerjan> elliott: happy birthday
20:12:33 <monqy> how could this happen
20:12:34 <Gregor> elliott: Oh yeah, happy American driving day and all that.
20:13:01 <Gregor> elliott: Anyway, the reason I was having so much trouble generating a substrate that wasn't crazyworld is that my wireworld rules were wrong :P
20:13:19 <Gregor> elliott: I forgot the part about /1 or 2/ electrons in the neighborhood, not >=1 :P
20:13:34 <elliott> Gregor: Your substrate wasn't crazyworld?
20:13:46 <Gregor> elliott: No, but it took a lot of attempts to get it that way.
20:14:16 <Gregor> elliott: In my initial attempt, it pretty much blew up the moment you put any electron on it. It would dup at every corner.
20:14:51 <Gregor> Err, that is, every corner would turn into a shower of duplicates.
20:14:53 <Gregor> Forever and ever.
20:15:03 <elliott> Right. That happens when you try to play on this field :P
20:15:07 <elliott> See: tantrum
20:15:33 <olsner> elliott: so you're 16 now? congratulations, that makes you old enough to be 16 years old
20:15:40 <elliott> Oh no, Vorpal found rezzo. Gregor: How painful are the logs?
20:15:54 <elliott> olsner: hooray
20:16:47 <Gregor> elliott: "How painful are the logs"?
20:17:21 <elliott> Gregor: when vorpal talks things get painful to read
20:17:22 <elliott> how painful
20:17:42 <Gregor> I only pay attention in short bursts :P
20:17:50 <fizzie> Ooh, SDL nastiness: the X11 OpenGL glue does a thing ISO C requires a diagnostic for, namely casts a void * (from dlsym) to a function pointer type. Shame on it.
20:18:31 <ais523> anyone know how to force Mesa into software emulation mode?
20:18:44 <ais523> and pretend that it's using the graphics card directly?
20:18:55 <elliott> fizzie: That's unavoidable without functions only added in recent POSIX I think...
20:19:11 <elliott> oh, looks like the EOA got posted
20:19:47 <Gregor> fizzie, elliott: Yeah, the only way around it that I know if is unportable. It's a diagnostic that's literally unavoidable.
20:20:10 <fizzie> There's a really ugly-syntax workaround advertised by the POSIX dlsym documentation. You simply write "int (*func)(int); ...; *(void **)&func = dlsym(...);" -- since pointer-to-function-pointer is obviously an object pointer, the cast is valid.
20:20:23 <fizzie> Sure it's unportable, but the act of casting to a function pointer in itself is unportable.
20:20:29 <elliott> Right.
20:20:56 <Gregor> elliott: Anyway, my fix to the underlying CA has me somewhat disappointed with flags again.
20:21:39 <elliott> 22:53:12: <quintopia> but i dont hear many people criticizing NYTimes
20:21:39 <elliott> you're not listening hard enough
20:21:41 <elliott> Gregor: Why?
20:22:30 <fizzie> ais523: I was pretty sure there was some environment variable to do that, but mesa's envvar documentation page doesn't seem to have any "choose-a-driver" variables.
20:22:35 <Gregor> elliott: In a situation that would cause a flag to become a surrogate tail, it instead dissipates ... but flags dissipating seems grotty to me. Actually I guess what I'm unhappy with is that 2x width wires are just always gross and horrible in Wireworld X-D
20:22:35 <elliott> Vorpal really wants us to know all about his favourite newspaper.
20:22:41 <Gregor> (>=2x that is)
20:22:48 <elliott> fizzie: And those would probably expose the in-use driver to the code.
20:22:55 <elliott> Especially if they getenv :P
20:22:57 <ais523> fizzie: it seems plausible that there is one
20:22:58 <olsner> although the standard says it's not supported, is a cast to a function pointer type actually any less portable than that other monstrosity?
20:23:17 <ais523> elliott: I don't mind the code knowing what driver's in use, so long as it doesn't arbitrarily decide to /not start/ because there isn't a GPU available
20:23:19 * ais523 silently rages
20:23:32 <elliott> ais523: are you... testing GPGPU programs?
20:23:37 <elliott> is that what the Secret is?
20:24:02 <ais523> elliott: no, I'm not
20:24:07 <elliott> darn
20:24:15 <ais523> well, not in a way related to the secret project, at least
20:24:16 <elliott> would you say that even to a correct guess? :)
20:24:33 <elliott> 23:32:46: <Vorpal> Gregor, btw the time system currently is unfair. I suggest basing it on CPU time instead somehow. After all, who knows what other process suddenly decides to run
20:24:34 <fizzie> I'm not entirely sure of the context again, but if it's a version of Mesa provided by you, you could simply only compile in support for the software rasterizer driver.
20:24:34 <elliott> 23:33:16: <Gregor> Vorpal: I have decided to instead write a system that's actually implementable.
20:24:34 <elliott> 23:33:26: <Gregor> (It's unfair, but it's equally unfair to all contestants)
20:24:41 <elliott> Gregor: You can just test the CPU time of the processes.
20:24:52 <elliott> That's nonportable, but perfectly fair.
20:25:02 <elliott> Technically frames could last a lot longer though.
20:25:34 <elliott> 23:35:55: <Gregor> CakeProphet: Everything I've done in C has been way, way, way faster than it needed to be, so it's not like it's cutting it close.
20:25:39 <Gregor> elliott: How does CPU time get counted while you're e.g. swapping? You're just not running?
20:25:39 <elliott> Gregor: Have you written anything that does any thinking at all
20:25:51 <Gregor> elliott: No, but the point is that I/O isn't a problem :P
20:25:53 <elliott> When the process isn't running CPU time doesn't increase :P
20:26:13 <ais523> elliott: I'm not going to lie about this, it would ruin all the fun
20:26:16 <Gregor> Right, so if it's just blocking, I'll block with it.
20:26:19 <ais523> besides, I'm really bad at lying
20:26:25 <ais523> it's part of the reason I'm such an honest person
20:26:28 <elliott> 23:38:35: <Gregor> Cells have a damage value (which is completely independent of the CA)
20:26:28 <elliott> 23:38:59: <Vorpal> ew
20:26:28 <elliott> 23:39:04: <Vorpal> and the client can't see it
20:26:28 <elliott> 23:39:08: <Vorpal> just ew
20:26:28 <elliott> Shut up shut up shut up shut up.
20:26:37 <ais523> because if I did lie, it wouldn't have the desired effect
20:26:50 <elliott> Gregor: Or some other process could be running instead of the warrior while it's thinking and you'd stop waiting for it...
20:27:10 <fizzie> ais523: The internets tell me you can set LIBGL_ALWAYS_SOFTWARE=1, but I can't find out where that is documented, just a lot of cases of people using it.
20:27:25 <elliott> 23:42:54: <Vorpal> Gregor, anyway hm I would make my client for the game multi-threaded.
20:27:26 <elliott> No shit.
20:27:48 <ais523> fizzie: hmm, I'll set it and see if it does anything
20:27:56 <elliott> 23:46:15: <CakeProphet> heh, elliott and I used the same characters for the same states.
20:28:02 <elliott> Gregor and I, you mean. Though I did fix them.
20:28:30 <elliott> 23:48:40: <fizzie> That sounds like a good way to get the best possible score for the OOM killer.
20:28:30 <elliott> "You win!"
20:28:36 <elliott> You prize is DEATH.
20:28:54 <elliott> 23:53:50: <Vorpal> Gregor, anyway 64 MB isn't much
20:28:54 <elliott> 23:53:57: <Vorpal> Gregor, not if you are using haskell
20:28:55 <elliott> Uhhhhhhhhh
20:28:59 <elliott> Do you know anything? Like, at all?
20:29:31 <Gregor> elliott: I'm considering changing the rules for building so that you cannot build fat wires or squares or whatnot. Tell me not to.
20:29:32 <elliott> Unless you have a memory leak, which is -- amazing, I know -- possible in any language, Haskell will not use more memory than, like, Python with the same structures.
20:29:39 <elliott> Less because of no object overhead.
20:29:47 <elliott> Yes, String is inefficient, so don't use String.
20:29:58 <elliott> Gregor: What, so it just arbitrarily stops you building a perfectly possible conductor arrangement?
20:30:10 <fizzie> ais523: Gah. It *is* documented in the Mesa environment variable page -- http://www.mesa3d.org/envvars.html -- it's the fourth thing there, in the obvious place, and I have no idea how I simply didn't see it there.
20:30:13 <Gregor> elliott: Yeah >_>
20:30:26 <ais523> fizzie: thanks
20:30:31 <elliott> Gregor: No, don't.
20:30:37 <Gregor> elliott: The thing is, we had this notion of electrons being a sort of scarce resource, but you can easily make a structure that just barfs a billion of 'em.
20:30:44 <elliott> 23:59:13: <Vorpal> Gregor, anyway 64 MB each precludes many high level languages
20:30:44 <elliott> You know LITERALLY NOTHING.
20:30:55 <fizzie> (Setting it didn't do anything for me, but that's probably because the version of libGL things here link to is provided by the nvidia binary blob.)
20:30:56 <ais523> SDL_GL_LoadLibrary() failed: No dynamic GL support in video driver
20:30:59 <elliott> Gregor: Electrons being scarce is stupid and you're stupid for wanting it.
20:31:00 * ais523 continues raging at SDL/GL
20:31:13 <elliott> Gregor: Having to find one ring is cool, but c'mon, the game is hard enough already for the warriors :P
20:31:35 <elliott> 00:00:58: <pikhq> Vorpal: Uh, Minecraft genuinely doesn't *use* more than 256MiB of heap.
20:31:35 <elliott> Unless you set it up, which literally everyone does.
20:31:44 <ais523> perhaps I should check the SDL docs, or the error message
20:32:46 <elliott> 01:30:07: <NihilistDandy> Is it me, or is Epigram really, really ugly?
20:32:53 <elliott> The current version of Epigram doesn't even have syntax.
20:33:00 <Gregor> elliott: Basically, here's the thing I don't like about the current situation with how everything interacts: You can trivially break any flag-stealing effort by just pooping conductor around your flag geysers.
20:33:24 <elliott> Gregor: Well, replace building altogether rather than just arbitrarily restricting it.
20:33:32 <Gregor> elliott: OK, replace it how?
20:34:01 <elliott> 01:58:06: <Gregor> `run sed 's/implementatino/implementation/g' -i quotes
20:34:01 <elliott> 01:58:08: <HackEgo> No output.
20:34:09 <elliott> `run sed 's/implementation/implementatino/g' -i quotes
20:34:14 <HackEgo> No output.
20:34:16 <elliott> He didn't say "implementation", he said "implementatino".
20:34:20 <elliott> `quote awk
20:34:21 <Gregor> lol
20:34:22 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
20:34:35 -!- boily has quit (Ping timeout: 268 seconds).
20:34:36 <elliott> 01:58:50: <NihilistDandy> That's neat
20:34:37 <elliott> I pioneered HackEgo sed-editing so stop giving credit to that terrible distorter.
20:34:43 <elliott> Yes, DISTORTER
20:34:56 <Gregor> I un-tort things.
20:35:14 <elliott> 02:05:12: <CakeProphet> reasoning about the performance of regex is kind of difficult actually....
20:35:14 <elliott> 02:05:29: <Gregor> Yeah, but you can make some broad guesses :P
20:35:14 <elliott> Backrefs: The worst.
20:35:56 <Gregor> elliott: We're talkin' like 6 orders of magnitude here.
20:36:54 <elliott> Gregor: I'm not saying his paranoia wasn't stupid, just that reasoning about regexps is only hard if you use the crappy algorithm because you want backrefs, which are nearly useless :P
20:37:01 <fizzie> ais523: Thanks to synchronicity, the function called by SDL_GL_LoadLibrary for the 'x11' video driver (X11_GL_LoadLibrary) is in fact exactly the one that did the cast-a-void-pointer thing.
20:37:13 <Gregor> elliott: Anyway, help me fix rezzo D-'8
20:37:21 <Gregor> My birthday present to you is that request^WDEMAND
20:37:27 <ais523> aha, and that statement plus my Googling's giving me a clue as to what's going on
20:37:34 <ais523> presumably, SDL_GL_LoadLibrary sees that it's running in framebuffer
20:37:55 <elliott> Awwww, all the forums I've ever registered at that demanded an age are sending me email. Apart from ones where I didn't even bother to be honest about the day and month.
20:37:56 <ais523> and the framebuffer GL support is pretty sloppy
20:38:27 <ais523> elliott: presumably you had to systematically lie about the year until you turned 13
20:38:32 <ais523> or did you not register at forums back then?
20:38:46 <elliott> ais523: I never stopped lying :P
20:39:07 <monqy> I'm lying _right now_
20:39:23 <ais523> elliott: well, you didn't have to lie any more, but perhaps you could lie anyway
20:41:00 <elliott> I don't see why they should know my birth date
20:41:13 <elliott> or just about everything else they ask for, to be honest
20:42:13 <elliott> 07:39:22: <Sgeo_> Hussie is currently trolling everyone who checks updates constantly
20:42:13 <elliott> 07:39:50: <Sgeo_> By releasing 1 page updates in rapider than usual succession
20:42:13 <elliott> 07:40:03: <Sgeo_> around 20 min intervals
20:42:13 <elliott> No, that's just how updates used to go; he uploads panels right after making them.
20:42:15 <elliott> 14:55:23: <Phantom_Hoover> OMG my school is going to let us buy our own labcoats BEST DAY EVER
20:42:15 <elliott> YESSSSSSSSSS
20:42:18 <elliott> SO JEALOUS
20:42:20 <elliott> BIRTHDAY RUINED
20:42:29 <Gregor> Lesse what Wikipedia has to say ...
20:42:31 <fizzie> ais523: At least the X server needs to offer the GLX extension in order for things to work out at all, I'd believe. I'm not sure if that happens if you're using the fbdev video output option.
20:42:32 <Gregor> England and Wales
20:42:32 <Gregor> The age of consent in England and Wales is 16 regardless of sexual orientation and/or gender, as specified by the Sexual Offences Act 2003.[44] However, if person A is over the age of 18 and in a position of trust over person B who is under the age of 18, it is illegal for A to engage in sexual activity with B.[45]
20:42:45 <Gregor> "position of trust" lololol
20:42:49 <elliott> 16:14:39: * Phantom_Hoover realises that there aren't many future labcoat things he can do except wait until elliott turns up and goes livid with rage.
20:42:49 <elliott> PRECISELY
20:42:53 <Phantom_Hoover> elliott, happy I SHALL HAVE LABCOAT HAH
20:43:09 <elliott> Gregor: Why did you just look up information about the age of consent.
20:43:21 <Gregor> elliott: FOR YOUR BENEFIT
20:43:40 <Phantom_Hoover> monqy, incidentally, I hate you.
20:43:41 <ais523> perhaps I need to put X in there too
20:43:51 <ais523> fb support seems kind-of buggy in a lot of programs that notionally support it
20:43:57 <Phantom_Hoover> I keep asking random people for "friendship <thing>" and it's crippling
20:44:01 <ais523> X generally wants to run as root, though
20:44:17 <Gregor> ais523: No? Xephyr or something.
20:44:27 <monqy> sometimes I forget if I started things or if it was actually elliott
20:44:31 <elliott> `addquote <Phantom_Hoover> I keep asking random people for "friendship <thing>" and it's crippling
20:44:33 <HackEgo> 614) <Phantom_Hoover> I keep asking random people for "friendship <thing>" and it's crippling
20:44:40 <fizzie> ais523: Oh, you don't actually have a X server there? You mean you were using SDL's "fbcon" video driver or something?
20:44:42 <elliott> "Pass the friendship salt, please."
20:44:44 <ais523> fizzie: yes
20:45:04 <Gregor> OMG, I so want to fix the HEWW out of building >_<
20:45:11 <Phantom_Hoover> elliott, I got a friendship smint, but I didn't get a friendship prefect badge.
20:45:28 -!- zzo38 has joined.
20:45:52 <elliott> 19:10:12: <Gregor> Taneb|Kindle: If it scrolls in some more stable way, then I see no reason why IRC on Kindle would be short of wonderful.
20:45:57 <elliott> Gregor: Have you seen those keyboards?
20:46:11 <elliott> Phantom_Hoover: Awwwwwwwwwwwwwwwwwwwww.
20:46:14 <fizzie> ais523: Well, yes, I don't think that thing has a GL_LoadLibrary callback at all. I suppose what *might* be possible would be Xorg + fbdev + Mesa + SDL 'x11' video driver, assuming X can provide the GLX extension in that sort of setup.
20:46:23 <Gregor> elliott: Well, it'd be a mostly reading-only activity :P
20:46:35 <elliott> Gregor: Maybe for YOU type type type type type
20:46:42 <oerjan> `quote implementati
20:46:44 <HackEgo> 611) <NihilistDandy> Also Perl, but I don't really consider that a programming language so much as a really heavy implementatino of awk
20:46:52 <oerjan> bah
20:47:16 <elliott> http://www.mobileread.com/forums/attachment.php?attachmentid=75336&stc=1&d=1312936864
20:47:21 <elliott> Gregor: Incidentally, is that xvkbd scaled or something?
20:47:26 <elliott> Or is that thing just lollowdpi
20:47:36 <Gregor> elliott: It's scaled in a weird way.
20:47:47 <Gregor> elliott: The DPI is actually friggin' enormous
20:47:57 <zzo38> I think Perl is a programming language too. Although, AWK is very good for the kind if stuff it is good for, of course. Not for most other things, but it can be used.
20:48:07 -!- derrik has quit (Quit: over and out).
20:48:25 <elliott> `addquote <zzo38> I think Perl is a programming language too. [...]
20:48:27 <HackEgo> 615) <zzo38> I think Perl is a programming language too. [...]
20:48:32 <elliott> A controversial opinion
20:49:23 <Gregor> Waaaah I wanna fix rezzo 'cuz it's totes borklebork.
20:49:49 <fizzie> Gregor: I've forgotten the name of your fancy eInkThing again.
20:49:57 <Gregor> fizzie: IREX DR800
20:50:03 <fizzie> But of course!
20:50:19 <fizzie> The T-Rex two thousand, I'll be sure to remember that in the future.
20:51:38 <Gregor> Also, http://www.qwantz.com/index.php?comic=2025
20:51:42 <Gregor> (You said "T-Rex" :P )
20:51:54 <fizzie> 160 DPI is not "friggin' enormous" now that phones go to 300+.
20:52:32 <fizzie> (See, I only wanted the name to MOCK it.)
20:53:00 <elliott> My computer is one hundred twenty. :p
20:53:19 <Gregor> Really, it's only 160DPI?
20:53:28 <Gregor> I would do the math, but ew, math.
20:53:52 <fizzie> Gregor: Well, I'm going by http://www.the-ebook-reader.com/dr-800-review.html .. but 1024x768 at 8.1" comes to something like that.
20:54:33 -!- elliott has quit (Quit: Leaving).
20:55:30 <Gregor> Yeah, I guess that's right.
20:55:31 <Gregor> Huh.
20:57:41 <oerjan> math. not even once.
20:57:54 <fizzie> The laptop here does 140 DPI. (1920x1080 and the diagonal by quick measurement is 15.75" -- though I think "officially" it's 15.6".)
20:58:56 -!- elliott has joined.
20:59:52 <Gregor> Oh, elliott was gone?
21:00:08 <elliott> I was busy making sure nobody could bother me for a few minutes :P
21:00:17 <elliott> There, I've read all four messages I missed.
21:00:44 <Gregor> So now it's time to FIX REZZO
21:01:07 <elliott> OK so firstly you should eliminate electrons.
21:01:13 <elliott> You should have to... use enemy flags... as electrons.
21:01:15 <elliott> I'm a genius.
21:01:19 <elliott> Maybe the rings just contain tails.
21:01:28 <Phantom_Hoover> `addquote <elliott> OK so firstly you should eliminate electrons.
21:01:29 <Gregor> Tails which somehow don't dissipate :P
21:01:30 <HackEgo> 616) <elliott> OK so firstly you should eliminate electrons.
21:01:47 <Gregor> sed 's/ELEC/POSI/g' -i *.{h,c}
21:01:49 <Gregor> Done
21:02:42 <elliott> Gregor: Do tails have to dissipate?
21:02:47 <elliott> They could just sit still, all lonely-like.
21:02:55 <Gregor> elliott: That's CRAZITUDE
21:03:01 <Gregor> elliott: The question is, do FLAGS have to dissipate?
21:03:22 <elliott> Yes. You use flags instead of electricity.
21:03:29 <elliott> Thy replace electrons. Obviously.
21:03:30 <elliott> They.
21:03:34 <elliott> (Heads.)
21:04:04 <Gregor> I still am not a big fan of lightspeed flags ... may need to adopt CakeProphet's and/or your crazy "death flags" (with a less stupid name) concept for that to work.
21:04:29 <Gregor> 'cuz then it's more about connecting the right circuits than "oh shit there goes my flag lol I lose"
21:04:55 <elliott> Death flags are stupid.
21:05:02 <elliott> I was being stupid when I was suggesting them :P
21:05:22 <Gregor> I know.
21:05:30 <Gregor> And you shouldn't have mentioned it :P
21:06:37 <Gregor> Maybe what I really want is just a more elegant way to prevent flags being surrogate tails.
21:09:25 <elliott> Gregor: What if agents carried flags, and hitting an agent (even just once) made them drop their flag, and flag next to base = win for base. Then the CA part would be TOTALLY USELESS X-D
21:09:39 <Gregor> elliott: PURRRRRRRRRRRRRRRRRRFECT
21:11:57 <Gregor> elliott: Incidentally, ais523 suggests that wires shouldn't be walls.
21:11:58 -!- AndGregor has joined.
21:12:19 <elliott> Gregor: What, you just jump over them?
21:12:25 <ais523> elliott: or stand on them
21:12:42 <ais523> it'd make it impossible to block in the opponent, making the wireworld part more interesting than the forming fences part
21:12:42 <Gregor> (Making the agents not a part of the CA proper at all)
21:13:04 <Gregor> (It's not like the agent states actually do anything in the CA :P )
21:13:13 <Gregor> Plus, then we could have electrocutable agents :)
21:13:48 <Gregor> If to build a fence you have to build a 3x-wide row and then electrify it, that's at least a bit more interesting than "I just pooped out some wire"
21:14:15 <ais523> heh, that sounds fun
21:14:16 <elliott> <ais523> elliott: or stand on them
21:14:19 <elliott> ais523: Breaks the CA property.
21:14:24 <Gregor> <Gregor> (Making the agents not a part of the CA proper at all)
21:14:25 <elliott> <Gregor> (It's not like the agent states actually do anything in the CA :P )
21:14:34 <elliott> Having invisible objects that aren't part of the grid is stupid and wrong and I won't stand for it.
21:14:39 <ais523> elliott: no it doesn't necessarily, you could just have a bot+wire state
21:14:39 <elliott> (That you can nevertheless see)
21:14:41 <Gregor> Not invisible.
21:14:49 <elliott> Yes invisible, they're not on the grid, the grid is the world.
21:14:58 <ais523> and decide whether bot+electron and bot+tail were allowed or not
21:15:00 <elliott> On top makes the world non-two-dimensional, which is stupid.
21:15:12 <Gregor> elliott: That is the stupidest reason I've ever heard :P
21:15:33 <Gregor> The actual agents have always been effectively outside the CA, the question is just whether they have avatars within the CA or not.
21:16:16 <elliott> I will like kill five people if you make agents not part of the CA. ACTUAL DEATH will occur.
21:16:27 <Gregor> elliott: Those people were probably jerks anyway.
21:16:34 <elliott> One of them is YOU.
21:16:40 <Gregor> elliott: I'd like to see you try!
21:16:49 <Gregor> elliott: Plus, I think that having electrocutable agents was originally YOUR idea.
21:17:03 <Gregor> (Switching to phone --> AndGregor)
21:17:22 <elliott> Gregor: It was a JOKE :P
21:18:05 -!- Zetro has changed nick to zetro.
21:18:27 -!- GreaseMonkey has joined.
21:20:46 -!- zetro has changed nick to Zetro.
21:22:03 <AndGregor> The more I think about it, the more there is /no damned reason/ to have agents be states.
21:22:47 <Sgeo_> I feel like I'm overdosing on magic
21:23:14 <Sgeo_> In routing, to point to a method new on a controller TweetsController, you point to.... "Tweets#new"
21:23:17 <Sgeo_> (in RoR)
21:25:08 <elliott> AndGregor: Because I WANT THEM TO BE.
21:25:46 <elliott> Sgeo_: Things there is approximately 0 interest in this channel for excepting you: Twitter, Ruby on Rails, the intricacies of Ruby on Rails' routing system.
21:25:57 <AndGregor> Good reason :P
21:26:54 <Sgeo_> I'm only talking about "Twitter" because that's the example this thing is using
21:27:15 <Sgeo_> Twitter, and zombies
21:27:52 <GreaseMonkey> lion go RoR
21:33:29 <AndGregor> OK, advantages of agents as states: Save ten bytes per message. elliott will kill otherwise. Disadvantages: useless extra states, focus on wall-building, no possibility for player-electron interaction.
21:33:54 <elliott> You can have player-electron interaction.
21:34:04 <elliott> My electrocution involved NO overlapping.
21:34:53 <oerjan> ...how can agents as states save bytes, won't it add to the bytes of every other cell as well?
21:35:17 <elliott> oerjan: Eh?
21:36:18 <oerjan> if you encode the field in a message, but presumably you don't if you think what i'm saying makes no sense
21:36:20 -!- Zetro has changed nick to zetro.
21:37:02 <elliott> oerjan: It makes no sense for reasons other than that :)
21:37:10 <elliott> oerjan: A state is one byte, we're not packing them into bits or anything.
21:37:14 <elliott> That would be ridiculous as far as processing goes.
21:37:27 <oerjan> ok :(
21:38:54 <AndGregor> Yeah, we tried to minimize processing overhead.
21:39:10 <AndGregor> Even at the cost of bandwidth.
21:39:30 <elliott> oerjan: ? :(
21:39:38 <elliott> AndGregor: Whole BYTES of bandwidth :P
21:41:30 <AndGregor> elliott: What advantage does agent-as-state have other than your ego?
21:41:55 <elliott> AndGregor: I like it, and having things not on the board affect the board/be affected by the board is really weird.
21:42:04 <elliott> Why would you get electrocuted by something on a different plane?
21:42:15 <oerjan> ectoplasm.
21:42:19 <elliott> Also, saves bytes and processing; the view shows all the things existing in the view.
21:42:52 -!- zetro has changed nick to Zetro.
21:43:13 <AndGregor> But you can't process an agent meaningfully anyway, since it doesn't behave like a CA state.
21:44:49 <elliott> Yes it does, just an inert one.
21:44:53 <elliott> You can draw out the ruletable easily.
21:44:58 <AndGregor> Or rather, obviously you can do some processing, but in a totally different way than the rsst
21:44:59 <elliott> AndGregor: You can process it in that all your bot by merging it into your worldstate...
21:45:20 <elliott> AndGregor: Anyway, consider, like, if you walk into your opponent's base, your agent cell dissipates and you lose :P
21:46:20 <AndGregor> ...
21:46:23 -!- nooga has quit (Ping timeout: 252 seconds).
21:46:50 -!- oerjan has quit (Quit: Good night).
21:47:33 <AndGregor> I disagree SO HARD, but need a keyboard
21:48:12 -!- FireFly has quit (Quit: FireFly).
21:48:22 <elliott> X-D
21:51:13 <ais523> hmm, apparently, as of this month, it's illegal in Missouri for teachers and their students to be Facebook friends
21:51:47 <Gregor> OK, so:
21:52:02 <elliott> ais523: cool
21:52:20 <ais523> that sounds like a bizarre sort of law to enact
21:52:55 <coppro> ais523: it's part of the "protect the children" mania
21:53:09 <ais523> hmm, I don't see how that would protect children, but fair enough
21:53:35 <Gregor> 1) The argument that it makes it easy to merge into the worldview is shallow, you're already assuming that the way you want to merge it in is by having one giant grid with both agents and state. But that's not the only and certainly not the best way; if you see an agent twice, you should be able to update its location more easily than running through the entire board until you find the old copy, removing it, then changing it (you could keep this information sep
21:53:35 <Gregor> arately either way, but it's faster to keep it separate if it's separate in the first place)
21:53:47 <Gregor> 2) Manually separating it is slower than manually merging it.
21:54:43 <Gregor> 3) My proposed way of showing agent locations is ten bytes, each of which is either 255 (not here) or an offset into the viewbox, so it takes just ten compare-and-updates to conflate them.
21:54:53 <Gregor> (3 might be 2b :P )
21:55:56 <Gregor> 4) Agents just aren't meaningfully states! They don't act like states! They update in a different period, and their behavior on their whole neighborhood is nondeterministic. That just ain't a state!
21:56:29 <elliott> I don't consider their actions on the neighbourhood to be done by the agent cells
21:56:39 <elliott> But I DO think you can do useful interactions based on agent cells dissipating resulting in the loss of the agent
21:57:19 <Gregor> You could do that without them being states.
21:57:24 <Gregor> In fact, them being states in no way aids doing that.
21:57:50 <Gregor> It just makes the communication more bidirectional.
21:57:57 <elliott> Yes it does, if you do it directly in the CA rules :)
21:58:42 <Gregor> But doing it directly in the CA rules doesn't keep anything simpler or more pure, agents' behavior depends on their state in the agent phase anyway.
21:59:12 <Gregor> Er rr
21:59:16 <Gregor> s/state/neighborhood/
21:59:36 <elliott> :<
22:01:05 <Gregor> Honestly, I'd say the biggest argument is that seeing an agent has known nonlocal effects on your worldview (it is not in its previous location, no matter where that was)
22:01:26 <Gregor> The whole "there exists exactly one cell of this state" thing is weird for a CA.
22:01:55 <Gregor> (Well, maybe not the biggest argument, but something :P )
22:02:23 -!- Patashu has joined.
22:02:54 <Gregor> My dead pixel is still here :(
22:03:09 <elliott> <Gregor> The whole "there exists exactly one cell of this state" thing is weird for a CA.
22:03:10 <elliott> CLONING.
22:03:20 <Gregor> Yeah, no.
22:03:29 -!- AndGregor has quit (Quit: Bye).
22:04:03 <elliott> Yeah, yes.
22:05:32 <Gregor> TIME FOR VOTING
22:06:16 <Gregor> With only two interested parties :P
22:07:45 <Gregor> I guess fundamentally, I'm now agreeing with ais523 that having conductors be walls = bad, but if they're not walls and agents are still states, then we have shitloads of stupid states.
22:08:24 <ais523> I don't see why you can't say that they're notionally states that are orthogonal to the other states (all of them, or many of them)
22:08:35 <ais523> and yet design the API to transmit the information in a more easily-parsed way
22:09:20 <Gregor> ais523: Other than saying the word "state", that is in no way distinct from having them not be states, and besides, if they're truly orthogonal than why even bother?
22:09:30 <ais523> Gregor: that's my point
22:09:35 <ais523> there is no real difference between your two points of view
22:09:43 <ais523> so why are you so adamant about sticking to them, both of you?
22:09:50 <Gregor> No, his view is that they are /true states/.
22:09:51 <ais523> it's as bad as the whole tuition fees thing
22:09:55 <Gregor> They actually have update rules in the CA.
22:10:03 <Gregor> The update rules are always "lol nothing happened"
22:10:04 <erytssiN> I would tend to disagree with that viewpoint
22:10:04 <ais523> Gregor: and that's not equivalent to your view how?
22:10:17 <Gregor> ais523: They can't move into conductors.
22:10:23 <Gregor> Or electrons, bases, geysers, anything.
22:10:33 <ais523> why can't you have a conductor+actor state?
22:10:51 <ais523> my view of all this, incidentally, was to add conductor+actor, and /maybe/ conductor+tail and conductor+electron
22:10:54 <elliott> ais523: Why is wire=wall bad?
22:11:13 <ais523> elliott: for gameplay reasons, because it makes it very hard to move around the map, and makes the whole wireworldiness mostly irrelevant as a result
22:11:15 <fizzie> Gregor: You said recently that each process running under UML shows up as a host process; was this in fact a fact? I would have assumed that it'd run its own internal copy of the task/process scheduler; and indeed http://user-mode-linux.sourceforge.net/old/kernel.html says "UML runs its scheduler independently of the host scheduler - the host scheduler simply implements the decisions made by the UML scheduler."
22:11:20 <ais523> it's going to be more of a wallbuilding game than anything else
22:11:26 <elliott> ais523: "Very hard"
22:11:31 <elliott> Only with the current substrate generator, and not REALLY.
22:11:39 <Gregor> My strategy is to go 'round making concentric rings around my base. Now the enemy won't even ever SEE where my base is, let alone be able to get to it.
22:11:43 <elliott> I'd be cool about making destroying take one tick.
22:11:50 <ais523> elliott: yes, because the optimal strategy is clearly to surround your base with a whole load of walsl
22:11:53 <elliott> Gregor: Unless they go inside.
22:11:54 <ais523> *walls
22:12:01 <elliott> ais523: Not if destroying takes one tick and moves you into the cell.
22:12:04 <ais523> Gregor: why concentric rings? just make a solid wall
22:12:09 <elliott> Then it can literally be the same action as movement.
22:12:12 <Gregor> ais523: I'm just talking about how I'm making the solid wall.
22:12:19 <ais523> elliott: ah, OK, so you think that actors should be able to walk on conductors but destroy them in the process
22:12:21 <ais523> Gregor: fair enough
22:12:28 <Gregor> elliott: Now my strategy is to find the enemy base and destroy literally freaking everything.
22:12:32 <elliott> ais523: Well, that's an odd way of looking at it, but sure :P
22:12:33 <Gregor> elliott: It'll take me no time.
22:12:45 <Gregor> elliott: And they'll never be able to get my flag because I destroy everything.
22:12:47 <elliott> Gregor: Except that then you have to run a really long table which the enemy can also destroy easily.
22:12:51 <elliott> cable
22:12:53 <elliott> Not table :P
22:12:58 <elliott> OK, make it take two hits.
22:13:02 <Gregor> elliott: No, you don't have to run a cable ...
22:13:15 <Gregor> This isn't a winning strategy :P
22:13:21 <Gregor> It's a stalematin' strategy.
22:13:30 <ais523> there's no reason /not/ to run a cable
22:13:41 <ais523> then you might win by chance, and stalemate the rest of the time
22:13:57 <Gregor> elliott: With two hits, we're back to making giant walls. If you just fill the whole friggin' world with walls, they'll never find your base.
22:15:07 <elliott> Yes you have to run a cable?
22:15:11 <elliott> Your base is far away from the flag.s.
22:15:17 <elliott> But okay.
22:15:28 <Gregor> <Gregor> This isn't a winning strategy :P
22:15:28 <Gregor> <Gregor> It's a stalematin' strategy.
22:18:55 <elliott> "But okay."
22:19:39 <Gregor> So where do we stand? X-P
22:21:10 <elliott> I stand that obviously things need fixing but I'm not convinced that the right fix necessarily involves de-stating agents.
22:21:25 <Gregor> Well, let's focus on fixing flag annoyance then.
22:21:53 <Gregor> The problem with flags right now is that they tend to not even make it around corners, and just barfing conductors everywhere is a pretty good way to kill flag-trails.
22:24:11 <Gregor> Actually ... why don't they? X-P
22:24:59 <elliott> I don't know, because we don't have any bots at all that do anything useful :P
22:25:23 <Gregor> Well, the thing is, I'm yet to see a bot even move a flag past a corner /by coincidence/
22:25:26 <Gregor> And I've run a lot of 'em.
22:27:55 <Gregor> OK, actually, I think there must be an implementation issue ._.
22:28:17 <Gregor> OHNOWAIT
22:28:18 <Gregor> I see the issue
22:28:47 <Gregor> http://sprunge.us/CUEE
22:29:41 <elliott> idgi
22:29:49 <Gregor> Note the flag dissipating in the last frame.
22:30:11 <elliott> Yeah, why
22:30:14 <Gregor> When it goes around a corner, you'll get the electron replaced with a flag, but ALSO moving to the other location it would have moved to on the corner.
22:30:30 <Gregor> Then, the flag dissipates because it's by an electron, and the electron dissipates because it has a flag and no tail.
22:30:46 <Gregor> (Err, wait, rather, that electron just doesn't become a flag, I did the last update wrong, but the point is the flag dissipates)
22:31:16 <Gregor> http://sprunge.us/KbEJ (corrected final state)
22:31:24 <elliott> So what's the fix :P
22:33:17 <Gregor> Good question.
22:33:28 -!- elliott has quit (Remote host closed the connection).
22:33:32 -!- elliott_ has joined.
22:33:39 <elliott_> Guys, I found the STUPIDEST PERSON.
22:33:45 <monqy> who what
22:33:52 <elliott_> Lambda calculus is useful if you want to prove theorems; not so much if you want to write software. After all, the whole notion of "no side effects" is quite ludicrous, and basically means "a pure functional program cannot actually do anything". So in that sense, I think pointers are considerably more useful than lambda calculus...
22:34:09 <Gregor> Wow
22:34:32 <monqy> why is he speaking
22:34:37 -!- Gregor has set topic: I think pointers are considerably more useful than lambda calculus | http://codu.org/logs/_esoteric/.
22:34:51 <elliott_> Gregor: To be fair to that part, it's in terms of what to teach first...
22:34:53 <elliott_> But come the fuck on.
22:34:55 <monqy> it makes me sad................
22:35:36 <elliott_> Guys, I have a plan.
22:35:50 <zzo38> Pointers and lambda are useful for different things, both are useful
22:35:53 <ais523> er, wow, I just encountered the abbreviation "irlol", which I think probably means "in real life laugh out loud"
22:35:54 <elliott_> Anyone who talks about programming ever who doesn't understand what functional programming is will be shot and then buried in an unmarked grave.
22:36:00 <ais523> how depressing that that even exists
22:36:04 <elliott_> I am now going to implement it.
22:36:05 <elliott_> ais523: that's great
22:36:54 <Gregor> elliott_: Umm ... I have the WORST POSSIBLE fix ...
22:37:03 <elliott_> Gregor: Sweet
22:37:21 <Gregor> elliott_: Conductor next to electron -> electron. Conductor next to electron AND flag -> flag.
22:37:34 <elliott_> Sounds good.
22:37:35 <elliott_> :P
22:37:39 <elliott_> BRB
22:37:59 <ais523> elliott_: interestingly, references (i.e. "a common special case of pointers") turn out to be most fruitfully made a core language feature in mathematical models of programming
22:38:15 <ais523> although you can simulate them because TCness, it's hard to prove anything about the result
22:39:02 <Gregor> elliott_: Ohwait, but then flags don't ever disappear, you just fill shit with flags >_<
22:44:29 <Sgeo_> "They own 69 percent of the total debt, which includes money the U.S. government owes itself."
22:44:37 <Sgeo_> Money... the government... owes itself?
22:44:49 <Patashu> economics are pretty silly, aren't they?
22:45:03 <Sgeo_> Oh, derp, I guess things like programs etc.
22:45:07 <zzo38> If I export a type from a Haskell module, will it export the constructors or not?
22:45:10 <Sgeo_> Erm, well, everything
22:46:14 <Gregor> Sgeo_: Different branches borrowing from each other.
22:48:58 <elliott_> back
22:49:48 <elliott_> <ais523> elliott_: interestingly, references (i.e. "a common special case of pointers") turn out to be most fruitfully made a core language feature in mathematical models of programming
22:49:48 <elliott_> <ais523> although you can simulate them because TCness, it's hard to prove anything about the result
22:49:55 <elliott_> I disagree with this
22:50:13 <elliott_> Models of certain types of languages, sure.
22:51:10 <Vorpal> elliott_, know any good lightweight PDF readers for windows?
22:51:19 <elliott_> Vorpal: Sumatra.
22:51:20 <Vorpal> I seem to remember you mentioned one some time ago
22:51:21 <Vorpal> ah
22:52:47 <Vorpal> elliott_, the bg colour hurts, I hope I can change that
22:52:56 <elliott_> What bg colour?
22:53:05 <Vorpal> elliott_, the yellow on starting the program
22:53:20 <elliott_> That doesn't display with any document open, and nobody starts a reader without opening a pdf.
22:53:24 <Vorpal> hm true
22:53:29 <Vorpal> it started itself first time
22:53:38 <elliott_> You can't even open Evince without opening it manually in GNOME :)
22:53:41 <elliott_> Well, in Ubuntu at least
22:53:53 <Vorpal> elliott_, I generally run it from the command line so.
22:54:02 <elliott_> With gnome-open
22:54:06 <elliott_> Nobody uses cmd in Windows ;-)
22:54:12 <Vorpal> true
22:54:20 * Vorpal forces elliott_ to use powershell
22:56:09 <Gregor> Argh, these flag rules ARGH
22:56:28 -!- zzo38 has left.
22:57:29 <Vorpal> Gregor, what?
22:57:38 <elliott_> "-bg-color $color change the yellow background color to a provided color in hex format (e.g. 0xffff00)
22:57:38 <elliott_> "
22:57:39 <Vorpal> change the game then
22:57:44 <elliott_> You can change the shortcut
22:57:49 <Gregor> Vorpal: I'm TRYING TO
22:57:53 <Gregor> I can't figure out good flag rules
22:57:58 <Vorpal> I see
22:59:32 -!- Phantom_Hoover has quit (Quit: Leaving).
23:00:01 <Gregor> Hmmm, this rule might be better. electron -> tail. tail -> if flags & no electron then flag else conductor. flag -> if tail and no electrons then conductor else flag.
23:01:23 <Vorpal> Gregor, what happens if you make all the world a conductor and add an electron in it?
23:01:47 <elliott_> With tail?
23:01:48 <elliott_> Or without
23:01:57 <Vorpal> elliott_, I'm interested in both
23:02:05 <elliott_> Which direction is the tail
23:02:08 <elliott_> Compared to the electron
23:02:39 <Vorpal> elliott_, well if all the world is a conductor and a torus, then any direction would give much the same effect, no?
23:02:44 <Vorpal> as far as I remember
23:03:33 -!- cheater has quit (Ping timeout: 246 seconds).
23:06:59 <Gregor> Vorpal: Crazypatterns.
23:07:06 <Gregor> Vorpal: Crazypatterns unrelated to flags :P
23:08:18 -!- itidus21 has joined.
23:08:19 <elliott_> :t \f x -> f <*> x <*> x
23:08:19 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f (a -> a -> b) -> f a -> f b
23:09:57 <Gregor> Naw, I don't like this rule either ...
23:10:21 -!- itidus20 has quit (Ping timeout: 252 seconds).
23:15:34 <Gregor> http://sprunge.us/FPPW New rule = less than ideal
23:16:58 <Gregor> Man, getting non-lightspeed flags which are affected by electrons but don't move at lightspeed = so hard :'(
23:16:58 <Sgeo_> elliott_, new album
23:18:14 -!- itidus20 has joined.
23:18:43 <Gregor> OMG SOMEBODY HELP ME WAAAAH :'(
23:19:53 -!- itidus21 has quit (Ping timeout: 252 seconds).
23:20:30 <elliott_> Sgeo_: Do you have an album updater? :-P
23:20:45 <Sgeo_> No
23:20:54 <Sgeo_> SOmeone mentioned it in one of the channels
23:21:25 <elliott_> Sgeo is in every channel on freenode (this position will not be changed by statements, evidence, or proof).
23:22:01 <Sgeo_> Is there a Homestuck channel on Freenode? o.O
23:22:43 <elliott_> Whooooosh
23:23:00 <Gregor> There, flags no never dissipate.
23:23:03 <Gregor> Clearly the best strategy.
23:23:19 <elliott_> Gregor: Definitely.
23:23:26 <elliott_> Gregor: What do they do at the end of a line?
23:23:27 <elliott_> of wire
23:23:39 <Gregor> elliott_: Sit there.
23:24:20 <elliott_> X-D
23:24:21 <elliott_> Nice.
23:24:51 <elliott_> fmap :: (a -> b) -> (a -> Writer String ()) -> (b -> Writer String ())... why is it rejecting the obvious implementation...
23:25:06 <elliott_> Oh, DURRRRRRRRR
23:25:09 <elliott_> I need (b -> a) >_<
23:25:20 <Gregor> I want better flag rules WAAAAAH :'(
23:28:48 <elliott_> Gregor: You think YOU have troubles, my type is wrong :-(
23:31:25 -!- copumpkin has quit (Quit: Leaving...).
23:31:35 <elliott_> Oh, DUH
23:31:41 <elliott_> I need Cons rather than (->)
23:31:52 -!- copumpkin has joined.
23:39:20 -!- zzo38 has joined.
23:40:16 <zzo38> It says Glk window sizes can be fixed or proportional, but winmethod_Fixed is defined as 0x10 and winmethod_Proportional as 0x20 but it doesn't say about putting zero instead of one of these constants?
23:41:04 <elliott_> So you can't?
23:41:28 <zzo38> I assume you can't but I don't know why it is like that
23:41:50 <zzo38> Is it to prevent you from making a mistake and forgetting to indicate whether it is fixed or proportional?
23:45:26 <elliott_> It might just be a standard for enumerations to use successive multiples of sixteen starting at 0x10; perhaps so that the look nice-ish in the enum declarations?
23:46:10 <zzo38> But winmethod_Left is defined as zero, but it is a separate enumeration
23:49:28 <elliott_> No idea, then.
23:49:35 <elliott_> Is there a reference implementation?
23:53:19 <elliott_> ais523: Didn't you say you were working with someone who had done things about bidirectional parsers?
23:54:00 <ais523> elliott_: I can't remember having said that
23:54:18 <ais523> nor am I aware that any of the people I work with have done things about bidirectional parsers
23:54:20 <elliott_> Darn
23:54:26 <ais523> nor am I even sure what a bidirectional parser is, come to think of it
23:54:29 <zzo38> I don't know, but I can just assume that you must specify Fixed or Proportional
23:56:02 <elliott_> ais523: a parser that also works as an unparser
23:56:06 <ais523> ah, I see
23:56:12 <ais523> oh, you might be thinking of gcc
23:56:17 <ais523> which does something vaguely like that
23:56:18 <elliott_> ...no :P
23:56:30 <elliott_> If it has something like that, I'd bet millions that the unparser is a separate codebase.
23:57:42 <ais523> elliott_: not for C
23:57:47 <ais523> it's for a crazy internal language
23:58:02 <ais523> which it parses a different crazy internal language into, then parses back out to asm on the same template
23:59:26 <elliott_> Heh.
23:59:39 <elliott_> For this type, the unparser outputs input that the parser would accept.
2011-08-23
00:14:20 -!- CakeProphet has joined.
00:14:20 -!- CakeProphet has quit (Changing host).
00:14:20 -!- CakeProphet has joined.
00:16:58 -!- Sgeo_ has quit (Quit: Leaving).
00:17:52 -!- Vorpal_ has joined.
00:17:53 -!- Sgeo has joined.
00:18:28 -!- Sgeo has quit (Client Quit).
00:18:35 -!- atehwa has joined.
00:18:35 -!- mycrofti1 has joined.
00:18:50 -!- Sgeo has joined.
00:19:02 -!- Zwaarddi1k has joined.
00:19:12 -!- Sgeo has quit (Read error: Connection reset by peer).
00:19:30 -!- Sgeo has joined.
00:19:53 <elliott_> ?src (*>)
00:19:53 <lambdabot> (*>) = liftA2 (const id)
00:21:21 -!- atehwa_ has quit (Ping timeout: 276 seconds).
00:21:21 -!- mycroftiv has quit (Ping timeout: 276 seconds).
00:21:22 -!- Vorpal has quit (Ping timeout: 276 seconds).
00:21:23 -!- iamcal has quit (Ping timeout: 276 seconds).
00:21:23 -!- Zwaarddijk has quit (Ping timeout: 276 seconds).
00:21:46 <elliott_> ?info (<|>)
00:21:46 <lambdabot> (<|>)
00:21:48 <elliott_> gah
00:22:51 -!- CakeProphet has quit (Quit: Reconnecting).
00:23:00 -!- CakeProphet has joined.
00:23:00 -!- CakeProphet has quit (Changing host).
00:23:00 -!- CakeProphet has joined.
00:25:13 <zzo38> Finally I fix the speakers in my computer today.
00:28:51 -!- GuestIceKovu has joined.
00:29:15 -!- iamcal has joined.
00:34:19 -!- GuestIceKovu has changed nick to Slereah.
00:42:18 <Sgeo> elliott_,
00:43:14 <elliott_> thz
00:43:15 <elliott_> thx
00:43:45 <Sgeo> yw
00:55:56 <Gregor> FLAG STAAAAAAAAAAATES
00:57:05 <Gregor> AND NOW for your viewing pleasure, ANOTHER conversational excerpt with no context (a father speaking of his young daughter): I told her to say "That's how I roll, yo" and my wife jumped on me hardcore. I am forbidden from teaching her gangsta'.
00:57:49 <quintopia> dang.
00:58:34 <quintopia> thats like being forbidden to teach american history
00:58:41 <quintopia> (x)
01:00:47 <elliott_> Gregor: X-D
01:05:26 <Gregor> elliott_: How long have you been going without 1-8 keys?
01:05:44 <elliott_> Months.
01:05:58 <Gregor> How many months? :P
01:06:05 <Gregor> I have to set a baseline for how long I can survive with a dead pixel.
01:06:13 <Gregor> I figure if you can go without 1-8, I can go without that pixel.
01:06:27 <Patashu> why don't you just buy a new keyboard?
01:06:35 <Gregor> Patashu: Laptop out of warranty.
01:06:41 <Patashu> oh laptop
01:09:18 <elliott_> Uh
01:09:21 <elliott_> My laptop is not out of warranty
01:09:25 <elliott_> I just have not sent it back yet
01:09:31 <elliott_> My laziness knows no bounds at all.
01:11:44 <elliott_> GreaseMonkey:
01:11:46 <elliott_> erm
01:11:50 <elliott_> Gregor: Greppign to find out now
01:12:08 <elliott_> 2011-01-01.txt:00:30:49: <elliott> #define uint8_t a[printf("hello world\n")]
01:12:08 <elliott_> What :P
01:12:10 <Gregor> ... wow :P
01:12:14 <elliott_> Gregor: What
01:12:25 <Gregor> Wow at you being too lazy to get it fixed.
01:12:30 <Gregor> Waitin' 'til it's out of warranty?
01:12:33 <elliott_> X-D
01:13:06 <elliott_> Gregor: I decided to wait until Lion was out; I don't want Apple snooping around my files, and I suspect booting leading to Linux would have them consider it out of warranty, so I'm going to wipe the thing before I send it.
01:13:10 <elliott_> Gregor: So I might as well get an upgrade out of that.
01:13:42 <elliott_> 2011-01-10.txt:01:50:09: <elliott> Obviously integers just have to snarf the keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and - when they're focused and do the obvious (*10)+.
01:13:42 <elliott_> What :P
01:14:13 <elliott_> 2011-02-11.txt:01:08:56: <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:14:14 <elliott_> Literal best debug statement.
01:14:27 <elliott_> 2011-04-18.txt:05:31:32: <oerjan> <elliott> does anyone have a simple way to map f keys to their numbers? :) <-- your laptop doesn't have a "use Fn to get numpad at jkluio789" feature like mine? i guess that doesn't help with the latter 3...
01:14:30 <elliott_> Gregor: At LEAST four months :P
01:14:43 <elliott_> 2011-04-15.txt:14:44:37: <elliott> I kept the lilac! 8D
01:14:44 <elliott_> 2011-04-15.txt:15:12:59: <elliott> With ugly aliased edges 8D
01:14:44 <elliott_> 2011-04-15.txt:15:16:37: <elliott> Gregor: btw I put your logs first in the community portal 8D
01:14:44 <elliott_> 2011-04-15.txt:15:53:36: <elliott> D8
01:14:44 <elliott_> 2011-04-15.txt:15:59:30: <elliott> 8D
01:14:44 <elliott_> 2011-04-15.txt:16:04:32: <elliott> 8D
01:14:50 <elliott_> Gregor: And not more, unless I was very patient copying those in.
01:15:25 <elliott_> 00:30:46: <elliott> int main(int ac, char **av)
01:15:26 <elliott_> 00:30:47: <elliott> {
01:15:26 <elliott_> 00:30:47: <elliott> #define typedef
01:15:26 <elliott_> 00:30:49: <elliott> #define uint8_t a[printf("hello world\n")]
01:15:26 <elliott_> 00:30:51: <elliott> #include <stdint.h>
01:15:26 <elliott_> 00:30:52: <elliott> }
01:15:28 <elliott_> 00:30:55: <elliott> ^ lol what
01:15:33 <elliott_> OK, that is the most beautiful program I have ever seen.
01:15:55 <monqy> <3
01:15:58 <Patashu> what
01:16:02 <pikhq> That is also fucking nuts.
01:16:26 <elliott_> Patashu: typedef unsigned char uint8_t;
01:16:28 <elliott_> --stdint.h (probably)
01:16:31 <Patashu> so the define it makes...
01:16:36 <elliott_> -->
01:16:36 <Patashu> executes in code you don't even make?
01:16:38 <Patashu> insane
01:16:39 <elliott_> unsigne char a[printf("...")]
01:16:52 <elliott_> Of course it could look totally different and system headers do not even have to be written in C.
01:16:54 <elliott_> But it's still amazing :P
01:17:18 <elliott_> d
01:18:10 <pikhq> And *this* is why using C's reserved names is undefined behavior.
01:18:13 <zzo38> I sometimes have typedef unsigned char byte; in some of my CWEB programs
01:18:28 <elliott_> zzo38: as long as you don't rely on byte being eight bits
01:19:28 <zzo38> On most computers a byte is eight bits. But C means char is eight bits at least anyways, you can modify the program for computers that use nine bits or whatever
01:21:39 <pikhq> elliott_: As much as it pains me to say this, that is one of the safest assumptions you can make.
01:21:46 <zzo38> LLVM has some better design because you can type "i8" if you want eight bits. But they should still need constraint analysis and constraint specification, which can help in some cases and with some computers, possibly.
01:21:47 <elliott_> pikhq: DIEEEEEEEEEEEE
01:22:41 <Gregor> $ cat testuint8.c && echo - && gcc testuint8.c && ./a.out
01:22:41 <Gregor> #include <stdio.h>
01:22:41 <Gregor> int main()
01:22:41 <Gregor> {
01:22:41 <Gregor> #define typedef
01:22:42 <Gregor> #define uint8_t a[printf("Hello, world!\n")]
01:22:44 <Gregor> #include <stdint.h>
01:22:46 <Gregor> return 0;
01:22:48 <Gregor> }
01:22:50 <Gregor> -
01:22:52 <Gregor> Hello, world!
01:22:54 <Gregor> (I'm a flooooooder)
01:23:37 <zzo38> Is this always a proper way in Haskell to check if it is GHCi or not, using Template Haskell? GHCi = runIO getArgs >>= \(x:_) -> (x == "--interactive")
01:23:50 -!- azaq23 has quit (Read error: Connection reset by peer).
01:24:03 -!- azaq23 has joined.
01:24:15 <shachaf> No.
01:24:40 <monqy> looks like it'll fail to type
01:24:44 <elliott_> Gregor: Obviously
01:25:22 <zzo38> O, yes, sorry I made a mistake I can see easily now
01:25:33 <zzo38> Yes it is the wrong type
01:25:57 <monqy> I have a feeling it isn't the best way though
01:26:14 <monqy> even if that means the best way is "don't do it"
01:26:19 <shachaf> getArgs also might not have "--interactive".
01:26:27 <shachaf> Or it might not be in the first position.
01:26:41 <shachaf> It might give you an empty list, in which case your program will crash. :-)
01:27:49 <zzo38> You might need something like this instead: ifGHCi t f = runIO getArgs >>= \(x:_) -> if (x == "--interactive") then t else f;
01:28:06 <monqy> ghci = fmap ("--interactive" `elem`) (runIO getArgs)
01:28:10 <zzo38> At least it worked for me to check getArgs for "--interactive" at first. But maybe there is still things wrong with it
01:28:21 <elliott_> shachaf: Out of curiosity, when would --interact not be in getArgs using GHCi?
01:28:31 <zzo38> monqy: Yes that probably would be better I guess
01:28:54 <shachaf> elliott_: Well, when I run ghci and type getArgs, it prints out [].
01:29:24 <elliott_> shachaf: But in a Template Haskell context in an imported module?
01:29:59 <shachaf> I'm not sure.
01:30:11 <zzo38> At least this worked for me: foreign_export :: Name -> Q [Dec]; foreign_export x = runIO getArgs >>= \(y:_) -> if y == "--interactive" then [d| |] else (do { VarI _ t _ _ <- reify x; return [ForeignD $ ExportF CCall (nameBase x) x t]; });
01:30:24 <Gregor> elliott_: Amazingly, your crazycode works with -ansi -pedantic.
01:30:29 <shachaf> zzo38: At *least* do the `elem` thing.
01:30:43 <elliott_> Gregor: Not mine. Don't give me credit. It was on Stack Overflow or something.
01:30:48 <Gregor> elliott_: Oh
01:30:48 <elliott_> Gregor: Anyway, cpp has no warnings that I'm aware of.
01:30:50 <zzo38> shachaf: Yes I can change it to `elem` in case that works better
01:30:56 <elliott_> Gregor: So I'm hardly surprised.
01:31:03 <zzo38> But still, this is the code I used for foreign exports.
01:31:09 <elliott_> zzo38: You do not need to parenthesise that do expression.
01:31:12 <Gregor> elliott_: I thought a[not-a-compile-time-const] wouldn't work in some mode.
01:31:52 <zzo38> elliott_: Actually I do need to; it is error if I don't parenthesise that do expression.
01:32:43 <elliott_> Gregor: Did you forget -Wall? :)
01:32:46 -!- Vorpal_ has quit (Ping timeout: 245 seconds).
01:32:47 <elliott_> -pedantic adds no errors, at least
01:32:53 <elliott_> zzo38: Well that's rubbish.
01:32:55 <Gregor> elliott_: It didn't even warn.
01:33:11 <Gregor> elliott_: -Wall -Werror -ansi -pedantic works D-8
01:33:25 <Gregor> Clearly that code is impeccable.
01:33:29 <elliott_> Gregor: I'm pretty sure system headers don't produce warnings.
01:33:31 <Gregor> It cannot be pecc'd.
01:33:32 <elliott_> For obvious reasons.
01:33:42 <Gregor> elliott_: But they should when you eff with them X-D
01:33:52 <elliott_> That's sooo detectable :P
01:34:12 <Gregor> elliott_: I'm pretty sure the only reason they don't produce warnings is that they're absolutely correct (by GCC's definition of "correct")
01:34:16 <zzo38> I used this code in order to correct two problems of foreign export at once.
01:34:32 <elliott_> Gregor: No, I'm fairly sure that warnings aren't produced in system headers... try inlining the specific generated line.
01:34:56 -!- zzo38 has quit (Remote host closed the connection).
01:35:06 <Gregor> error: ISO C90 forbids variable length array ‘b’
01:35:07 <Gregor> LAME
01:36:18 <elliott_> Gregor: Consider how bad system headers can be :)
01:36:33 <elliott_> "gcc sux because I run it on my IRIX system and it won't compile anything, it complains about something in stdlib.h."
01:36:43 <elliott_> (Is IRIX bad? I don't know.)
01:36:50 <Gregor> It is.
01:36:50 <elliott_> http://upload.wikimedia.org/wikipedia/en/a/a3/IRIX_desktop.png Nice.
01:53:45 <ais523> elliott_: I'm reading a list of corner cases of the rules of Diplomacy (the boardgame), and it mentions that a past ruleset allowed players who had two fleets, with one in harbour and one at sea, to defend each other by offering to transport a third party's units to the harbour in a way that caused a paradox
01:53:49 <ais523> and so causing all the actions to fail
01:54:02 <ais523> that's an awesome tactic, but it makes sense that it was fixed, it's kind-of unintuitive
01:54:28 <elliott_> :D
01:54:35 <elliott_> link?
01:54:35 -!- azaq231 has joined.
01:54:40 <elliott_> or is it not on the INTERNEJTKS
01:54:55 <ais523> http://web.inter.nl.net/users/L.B.Kruijswijk/#6.F.20
01:55:07 <elliott_> OK two people have followed two separate old Twitter accounts of mine in like two days waaaaaait I think they're spambots.
01:55:14 <elliott_> Really good spambots.
01:55:24 <elliott_> No wait, one of them definitely isn't.
01:55:25 <elliott_> But what?
01:55:37 <monqy> definitely isn't?
01:55:56 <elliott_> a spambot
01:56:12 <monqy> yes but how did you know this
01:56:14 <ais523> you may need to know the rules of Diplomacy to understand how it works
01:56:17 <ais523> well, almost certainly will
01:56:32 -!- azaq23 has quit (Ping timeout: 260 seconds).
01:56:33 <coppro> ais523: those are fun
01:56:52 <ais523> coppro: you strike me as the sort of person who probably knows about Diplomacy paradoxes
01:58:33 <coppro> ais523: I am sort of familiar with them
01:58:38 <coppro> I have not studied them in depth
01:59:45 <ais523> neither have I, but I'm doing so now because it's fun
02:00:36 <ais523> I wonder if they'd be TC on an infinite, repeating board, assuming that you always resolve a situation if there's exactly one consistent resolution, even if it's really complex?
02:01:10 <coppro> my hunch is no
02:01:17 <coppro> but stranger things have happened
02:04:30 <ais523> to start with, can you transmit data over unlimited distances?
02:04:44 <ais523> you obviously could if you could convoy fleets, but you can't
02:04:47 <ais523> perhaps there's some other method
02:05:58 <ais523> btw, webdiplomacy has pictures of all the DATC test cases, if you find them easier to understand visually: http://webdiplomacy.net/datc.php
02:06:23 <ais523> oh, ofc, you can just use one /really long/ convoy to transmit data over arbitrary distances
02:08:03 <ais523> another method is to have a chain of "fleet convoys army to break support of army on fleet that is trying to convoy army to break support of army on fleet that is trying to convoy..."
02:09:15 <ais523> which is possibly more useful
02:11:18 <ais523> I think you can make a NAND-based logic out of this
02:11:48 <ais523> using support-hold rather than support-attack you can make an inverter
02:12:26 <ais523> then you can beleaguer a fleet to produce an XOR gate, or use multiple supports to produce an AND gate
02:12:37 <ais523> so you can make an entire circuit
02:12:49 <ais523> then all you need to do is come up with a way to cross wires, or that might not even be necessary
02:13:48 <ais523> I'm pretty sure it's TC
02:14:38 <ais523> also, wow at PHP somehow managing to write an implementation of crypt() that sometimes returns the salt rather than the hash
02:14:54 <ais523> it was just reported on Slashdot
02:16:08 <Sgeo> o.O
02:16:37 <ais523> the obvious consequence is that suddenly, any password will work
02:16:58 <ais523> (this is in the new PHP 5.3.7 with the default implementation of crypt; there are two others that don't have the problem)
02:18:35 <Gregor> Instead of fixing anything, I have now made the competitor colors SO DISTINCT YOU GUYS
02:18:57 <Gregor> That puce is PUCE MOTHAHF***ER!
02:19:12 <monqy> puce
02:19:31 <Gregor> monqy: I was running low :P
02:20:17 <Gregor> When you've covered black, white, grey, yellow, brown, red, blue, green, orange, magenta, cyan, teal and purple, everything starts to bleed together.
02:20:42 <ais523> Gregor: when I implemented a bracket-matching thing for Wikipedia, I used golden ratio colors
02:21:09 <Gregor> ais523: Elucidate.
02:21:11 <ais523> hue is golden ratio percent times the color number, value alternates between 1/3 and 2/3, saturation maxed
02:21:33 <ais523> I could try to get a screenshot, give me a moment
02:21:50 <Gregor> Err, so they get closer and closer as you get further and further?
02:22:04 <Gregor> So it's optimized for small values, not for a specific count?
02:22:13 <ais523> no, each one's the same distance from the previous one
02:22:33 <ais523> using the golden ratio tends to make sure that the whole lot stays approximately evenly spaced if you take any contiguous sequence of n colors
02:22:57 <Gregor> Ummm ... yeah, need screenshot :P
02:23:22 <Gregor> Because "hue is golden ratio percent times the color number" suggests to me that the hue becomes more and more similar as you get more and more colors.
02:24:43 -!- CakeProphet has quit (Ping timeout: 260 seconds).
02:25:45 <ais523> wow, imgur is being abnormally slow
02:26:14 <ais523> it just gets stuck on 0% on its loading bar
02:26:15 -!- CakeProphet has joined.
02:26:15 -!- CakeProphet has quit (Changing host).
02:26:15 -!- CakeProphet has joined.
02:26:18 <ais523> I've tried twice now
02:26:35 <ais523> and the file's only 6K
02:26:58 <Gregor> Sweet.
02:27:24 <ais523> I can nc it to you if you have a port you can listen on
02:27:25 <Gregor> shar screenshot.png | sprunge :P
02:27:29 <ais523> or email, I suppose, but that seems like overkill
02:27:34 <ais523> Gregor: haha, I may as well
02:28:12 <ais523> http://sprunge.us/gHUN
02:28:39 <ais523> wow, there's a lot of junk in sharchives
02:30:28 <Gregor> ais523: It's generating colors from outside-in, yes? So if I used the same technique for 10, I'd get the first ten colors shown here?
02:31:05 <ais523> yes, although that's actually 2 to 11 as the first ten because the first color (a pure blue) was used by the sandbox heading
02:31:43 <Gregor> This lime and green are practically indistinguishable, and cyan and slightly-bluish-cyan are, uhh, yeah.
02:31:53 <ais523> adding two shades of grey (light and dark) won't conflict with any colors generated by that algo, so you can do that to get more
02:32:05 <ais523> but the point is, after a while you run out of possibilities for colors that aren't very similar to existing ones
02:32:13 <Gregor> Yes, I'm aware of that problem :P
02:32:15 <Gregor> Hence the puce :P
02:32:28 <Gregor> (And I can't use shades of grey for what I'm doing, btw)
02:32:54 <Gregor> Or, y'know, oughtn't to use shades of grey, as I actually do use one because I totally ran out of distinct colors X-D
02:33:20 <elliott_> ais523: What are you guys talking about
02:33:39 <elliott_> also, I thought things about scapegoat??? maybe
02:33:47 <Gregor> elliott_: Originally, the colors for the Rezzo warriors.
02:33:54 <Gregor> elliott_: Then, how to generate distinct colors at all.
02:34:21 <ais523> elliott_: and before that I proved Diplomacy TC with an infinite map
02:34:52 <ais523> or NP-hard to determine if a set of moves is paradoxical with a finite map
02:34:56 <Sgeo> Diplomacy's TC?
02:34:57 <ais523> as you can embed boolean satisfaction in there
02:35:06 <ais523> at least, without wire crossings
02:35:15 <ais523> there's probably some way to do wire-crossings too, but I'm not sure if they're necessary
02:35:26 <elliott_> WIRE-CROSSING PROBLEM SOLVED
02:35:55 <ais523> Sgeo: you can create chains of disrupting convoys that are trying to transport units that are trying to support an attack or hold on a convoy
02:36:00 <ais523> and chain this indefinitely
02:37:08 <elliott_> "What do you call it when it's Faust but both sides are the devil"
02:39:01 -!- variable has quit (Quit: I found 1 in /dev/zero).
02:39:11 <elliott_> ais523: Hey, how long should I let my GPG key last for, I'm dumb @ gpg
02:39:24 -!- variable has joined.
02:40:01 <ais523> elliott_: long enough that it doesn't expire while you're still using that key for something, short enough that advances in technology or encryption techniques won't leave it trivially breakable before it expires
02:40:24 <elliott_> ais523: I can always count on you to produce true but unhelpful statements
02:40:39 <ais523> elliott_: well, that's an "I don't really know the answer either"
02:40:47 <ais523> but maybe 5 years, if you want a definite answer that's a total guess
02:40:58 <ais523> i.e. probably false but possibly helpful
02:41:07 <elliott_> Hey Gregor, how long should my GPG... :P
02:41:24 <ais523> still, wow at PHP
02:41:38 <ais523> I don't get how you can mess up crypto quite that badly, and not notice
02:41:49 <ais523> they even had a test for that case, they just didn't run it quickly enough before the release
02:41:51 <elliott_> oh yes, that
02:42:17 <elliott_> ais523: I should probably learn GPG better since I want sg to use it for commit verification :P
02:46:43 <Gregor> elliott_: It should last at least 150 years.
02:47:33 <ais523> Gregor: how wildly optimistic
02:51:51 -!- azaq231 has quit (Ping timeout: 250 seconds).
02:55:36 <elliott_> IF I ADD MORE BITS IT'S SAFER RIGHT
02:56:55 -!- azaq23 has joined.
02:57:09 <ais523> elliott_: yes, but only to an extent
02:57:30 <elliott_> Joking :P
02:57:33 <ais523> at the moment there's no practical reason to believe 4096 or 8192 will be different in any way
02:57:46 <ais523> because probably the crypto itself will be broken before either becomes bruteforceable
02:58:04 <monqy> goodbye crypto
02:58:28 <elliott_> I picked the default (2048)
03:02:24 <Gregor> elliott_: flag + electron -> half-mast. half-mast + flag -> conductor, else flag
03:02:44 <elliott_> Half-mast X-D
03:02:54 <elliott_> More states is bad but yeah okay
03:03:16 <Gregor> elliott_: OMG OMG OMG MY FRIEND JUST SOLVED THIS MUCH MORE ELEGANTLY
03:03:18 <coppro> ais523: damn you, I'm still looking at diplomacy stuff
03:03:21 <elliott_> Gregor: How
03:03:22 <Gregor> (Since half-mast adds a bunch of states)
03:03:26 <elliott_> coppro: Take that back
03:03:28 <elliott_> (Pre-empting ais523.)
03:03:39 <ais523> elliott_: you pre-empted me pretty well there
03:03:40 <coppro> incidentally, in the news, dead leader of the opposition -> half-mast :(
03:03:53 <Gregor> elliott_: electron + flag + tail -> positron. positron + flag -> flag. flag + positron -> conductor
03:03:53 <elliott_> coppro: You really ought to or ais523 will be MAD FOREVER.
03:03:59 -!- azaq23 has quit (Ping timeout: 250 seconds).
03:04:05 <ais523> coppro: seriously, though, that's quite a trivial thing to damn someone over, it's not like I linked you to TV Tropes
03:04:55 <Gregor> elliott_: Oh, and positron + no flag -> conductor of course (although in principle this should never happen)
03:05:19 <Gregor> elliott_: And precisely one new state is added :)
03:06:41 -!- azaq23 has joined.
03:06:57 <ais523> Gregor: what does "+" mean here?
03:08:20 <Gregor> ais523: The first element in the +-set is the cell we're actually looking at, the other elements are in any neighboring cell.
03:08:39 <ais523> and what problem is that combination trying to solve?
03:09:44 <Gregor> ais523: The current rule set allows (and often results in) an electron and flag both dissipating. It makes it very difficult to get flags around corners (for example)
03:10:22 <ais523> when the electron and flag collide, is that?
03:10:32 <ais523> oh, that normally just moves them
03:10:54 <Gregor> Yeah
03:10:56 <ais523> it's a bit weird that positrons don't annihilate electrons
03:11:04 <Gregor> ais523: It's just a pointless name :P
03:11:09 <Gregor> ais523: Got a better one?
03:11:25 <ais523> it's, hmm, like a decaying electron
03:11:27 <ais523> quark, maybe
03:12:22 <Gregor> Do electrons decay into quarks? :P
03:12:32 <ais523> well, no
03:12:35 <ais523> but they're made of them
03:12:46 <Gregor> OMG THIS IS SO GOOD
03:13:02 <Gregor> The flag movement is so perfect 8-D
03:13:18 <ais523> coppro: seriously, you can't try to do something that serious for something so trivial; although I seriously doubt it worked
03:13:29 -!- CakeProphet has quit (Ping timeout: 258 seconds).
03:13:34 <Gregor> ais523: Seriously?
03:14:01 <ais523> Gregor: damning someone is, by definition, the worst possible thing you can do to them
03:14:06 <ais523> people should really think more about their insults
03:16:04 <Gregor> What subatomic particle mediates electromagnetism?
03:16:18 <ais523> photon
03:16:32 <Gregor> Hm ... that's ... duh :P
03:16:41 <Gregor> <-- so physics
03:17:09 <coppro> ais523: it's a good thing I don't believe in damning
03:17:40 <ais523> fair enough, then you can't have intended it as that
03:17:53 <Gregor> So, electron + flag = photon, where that photon is mediating the lolphysics reaction between them I suppose?
03:18:23 -!- GreaseMonkey has quit (Quit: The Other Game).
03:19:00 <elliott_> ais523: So if I say I don't believe in damning I can not-damn you all I want?
03:19:15 <Gregor> elliott_: So ... ~ should totally be reassigned to photons.
03:19:26 <ais523> elliott_: you'll make yourself look stupid, but OK
03:19:38 <elliott_> ais523: You're right. DAMN YOU AND YOUR LOGIC
03:19:50 <elliott_> (I'M SORRY I TAKE IT BA;CK)
03:19:51 <ais523> ^ looks stupid
03:19:54 <elliott_> :(
03:19:56 * elliott_ cries
03:19:58 <elliott_> im an adult now i have no excuse
03:20:04 <elliott_> am I really an adult :/ why
03:20:15 <ais523> you're only 16, right? you have to be 18 to legally be an adul
03:20:17 <ais523> *adult
03:20:25 <elliott_> Close enough
03:20:26 <ais523> btw, I think being 17/18 was the best time of my life
03:20:30 <ais523> so enjoy it while you can
03:20:36 <Gregor> elliott_: I take it by your lack of complaints that you're just fine with ~ being photons, because it's too clever not to :P
03:20:45 <elliott_> <ais523> I switched to Linux
03:20:50 <elliott_> Gregor: Why is that clever
03:20:50 <ais523> no, that came rather later
03:20:55 <elliott_> Oh, it's a wave :P
03:20:57 <ais523> I wasn't very computer-dependent back then at all
03:20:58 <Gregor> elliott_: Because photons are particles, but the--- yeah
03:21:03 <elliott_> ais523: Must have been all the partying and orgies, then
03:21:07 <elliott_> It was either that or Linux
03:21:23 <ais523> elliott_: well, I had a lot of interaction with real-life people then
03:21:32 <ais523> no actual orgies and very little partying
03:21:35 <Gregor> elliott_: Yeah, I'm making photons ~ and tails , or something.
03:21:35 <ais523> but lots of chat
03:21:58 <elliott_> ais523: No ACTUAL orgies :P
03:22:03 <elliott_> "It was only TECHNICALLY a threesome."
03:25:47 -!- azaq231 has joined.
03:26:04 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:39:34 -!- Sgeo has quit (Read error: Connection reset by peer).
03:40:13 -!- Sgeo has joined.
03:40:32 <elliott_> "Crash-only programs crash safely and recover quickly.
03:40:32 <elliott_> There is only one way to stop such software—by crashing
03:40:32 <elliott_> it—and only one way to bring it up—by initiating recovery. Crash-only systems are built from crash-only components, and the use of transparent component-level retries
03:40:32 <elliott_> hides intra-system component crashes from end users. In
03:40:32 <elliott_> this paper we advocate a crash-only design for Internet systems, showing that it can lead to more reliable, predictable
03:40:35 <elliott_> code and faster, more effective recovery. We present ideas
03:40:37 <elliott_> on how to build such crash-only Internet services, taking
03:40:39 <elliott_> successful techniques to their logical extreme."
03:40:55 <elliott_> I can't even tell if this is a joke.
03:41:16 <ais523> it isn't
03:41:22 <ais523> at least, the idea of crash-only programs isn't
03:41:27 <elliott_> Amazing :P
03:41:37 <elliott_> It does seem a bit long and in-depth to be a joke, but...
03:41:39 <ais523> someone pointed out that OSes have to do much the same thing on boot whether they just crashed or not
03:41:47 <ais523> and so advocated crashing as an optimised form of shutdown
03:42:02 <ais523> presumably this is a generalisation of the idea to other contexts
03:42:14 <ais523> ofc, orthogonal persistence is probably the extreme and rather useful form of that
03:42:23 <elliott_> Wow :P
03:42:29 <elliott_> <ais523> and so advocated crashing as an optimised form of shutdown
03:42:33 <elliott_> Recent OS Xs kind of do this
03:42:38 <elliott_> Applications can mark themselves as able to be shut down fast
03:42:46 <elliott_> And OS X just kill -9s them when shutting down rather than sigterm
03:42:52 <elliott_> Quite amazing :P
03:43:14 <ais523> err, that actually makes a difference? SIGTERM and SIGKILL do the same thing to a process with no SIGTERM handler
03:43:30 <ais523> and if a process is able to be shut down fast, why doesn't it just not install a SIGTERM handler?
03:43:38 <elliott_> Do I mean SIGTERM/
03:43:39 <elliott_> ?
03:43:44 <elliott_> I mean whatever OS X does for normal deinitialisation.
03:43:53 <elliott_> I'm pretty sure Cocoa and the like would install quit handlers.
03:44:09 <ais523> ah, I see
03:44:40 <ais523> standard on Linux is to SIGHUP everything interactive then SIGTERM everything that isn't, followed by SIGKILLing everything left, IIRC
03:45:53 <elliott_> Maybe it's SIGKILL instead of SIGHUP, then
03:46:02 <elliott_> Point is, you can set a flag to get kill -9'd when the system wants you gone :P
03:46:08 <elliott_> And that actually speeds up shutdown massively
03:46:12 <elliott_> AN IMPORTANT CASE
03:46:31 <elliott_> ais523: You probably guessed this, but @'s shutdown procedure is literally "sync; tell the hardware to stop beating"
03:46:48 <elliott_> hmm, does anyone have a link to that post on all the ways to shutdown a computer that don't work?
03:46:50 <elliott_> by the linux dev
03:47:00 <ais523> elliott_: it may be in my browser history, I'll check
03:47:21 <ais523> nope, it isn't
03:47:41 <ais523> I suppose you'd need to use a search engine, and you'd be much better at doing that than me as I don't use them often
03:47:54 <elliott_> I tried, but didn't get much
03:48:03 <elliott_> I guess I could search reddit, but that's a much worse search engine
03:48:05 <elliott_> I guess I could use site: too
03:48:36 <elliott_> Hmm
04:23:22 <pikhq> ais523: Standard on Linux is more complex than that, because init sucks.
04:23:35 <ais523> pikhq: ah, right
04:23:53 <ais523> init calls a shutdown command on every daemon it's responsible for, right?
04:24:02 <pikhq> Yup.
04:24:14 <pikhq> Standard on a runit-based system is SIGHUP, SIGTERM, SIGKILL, umount, sync, tell the hardware to stop beating.
04:24:33 <pikhq> Actually, might omit the SIGHUP.
04:24:48 <ais523> well, it depends on the order you send the SIGTERMs
04:25:00 <ais523> if you SIGTERM the terminal first, it's going to SIGHUP everything that it's the controlling terminal for
04:34:55 <Sgeo> elliott_, did you see MSPA news?
04:37:53 <elliott_> yes
04:47:55 -!- zzo38 has joined.
04:59:53 -!- cybergggirl has joined.
05:01:59 -!- cybergggirl has quit (Client Quit).
05:02:23 -!- tswett has quit (Remote host closed the connection).
05:04:52 <elliott_> C++ templates work can pre-calculate and optimize a lot of access. Think of C++ templates as haskell but with a different syntax, that is pretty exactly how it is.
05:19:31 <Sgeo> I assume that it's different, but horrible
05:19:49 <pikhq> It's mostly horrible in syntax.
05:20:03 <Sgeo> That's what I meant
05:20:08 <Sgeo> >.>
05:20:09 <pikhq> Otherwise it's a rather uninteresting functional language.
05:20:30 <pikhq> At compile time. In the type system.
05:21:51 <fizzie> Mr C++, in the type system, with the template. <- Another Cluedo line.
05:27:28 <zzo38> I have play Dungeons & Dragons game today
05:37:55 -!- BeholdMyGlory has quit (Remote host closed the connection).
05:52:09 <Sgeo> http://www.php.net/downloads.php 5.3.7 is still being offered on the downloads page
06:01:35 <pikhq> Dry socket is approx. t3h suck.
06:04:04 <pikhq> Ow ow ow.
06:04:42 <coppro> zzo38: you are Canadian, correct?
06:05:59 <zzo38> coppro: Yes
06:06:32 <pikhq> Not the worst pain I've experienced, but pretty close.
06:13:35 <elliott_> coppro: you've asked him that like twenty times
06:14:29 <oklopol> god morning
06:19:18 -!- pikhq_ has joined.
06:19:28 -!- pikhq has quit (Read error: Operation timed out).
06:19:52 <elliott_> oklopol: hi im god
06:22:18 -!- azaq231 has quit (Quit: Leaving.).
06:26:19 <pikhq_> Why must pain receptors and modern medicine be in direct conflict?
06:29:03 -!- itidus20 has quit (Ping timeout: 240 seconds).
06:29:33 -!- elliott_ has quit (Ping timeout: 240 seconds).
06:32:23 -!- nooga has joined.
06:44:49 -!- cheater has joined.
07:55:15 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
07:59:21 <quintopia> zzo38: who GM'd
08:00:06 <zzo38> quintopia: Same as before, I expect
08:00:22 <quintopia> your brother?
08:01:02 <zzo38> My brother is one of the players too, so am I.
08:01:16 <quintopia> and the GM is a friend?
08:01:18 <zzo38> It is same campgin as last time
08:01:20 <zzo38> quintopia: Yes
08:01:33 <quintopia> do you play paranoia?
08:01:40 <zzo38> No
08:01:43 * Sgeo likes Paranoia
08:01:45 <quintopia> oh
08:01:54 <Sgeo> I've played once or twice, GMed once or twice
08:02:01 <quintopia> sgeo: do you have the gamebooks on you?
08:02:13 <quintopia> pdf?
08:02:20 <Sgeo> I don't _think_ so, but you don't need them, you know
08:02:28 <Sgeo> http://sgeo.diagonalfish.net/paranoia/12_30_06_device_mania.html game I GM'd
08:02:55 -!- oerjan has joined.
08:02:57 <quintopia> i dont think ill ever GM, but i just want to know more about the stories and rules
08:03:03 <quintopia> ill read that thx
08:03:13 -!- Patashu has joined.
08:03:16 <Sgeo> I wasn't exactly following the rules then
08:03:35 <Sgeo> The rules for the GM boil down to: Do whatever you want. Make them distrut each other
08:03:50 <Sgeo> If there's a mechanic you don't like, ignore it
08:04:00 <Sgeo> The players aren't allowed to know the rules anyway
08:05:04 <Sgeo> According to the thread I started, the worst mistake I made was listening to the player trying to help me run the game
08:06:06 <Sgeo> http://www.paranoia-live.net/forum/viewtopic.php?t=5083
08:06:35 <Sgeo> "The only thing I'd say you did wrong is to let Scalene tell you how to run the game.
08:06:35 <Sgeo> #1 rule for GMing PARANOIA - Never let a player tell you how to run the game. Even if you don't know the rules, don't let on and just do things how you want. "
08:07:01 <Sgeo> There are rules mechanics though
08:10:32 <augur> finns: http://thebest404pageever.com/swf/Crazy_Finnish_Bakery.swf
08:10:34 <augur> opinion?
08:10:42 <ais523> Sgeo: the thing about Paranoia, is that the players are allowed to know and exploit the rules, /but/ are not allowed to express knowledge of the rules
08:12:54 <coppro> by extension, they cannot complain if you arbitrarily change the rules
08:13:02 <coppro> in fact, this is GM Rule #2, I believe
08:13:46 <coppro> "If you disagree with the rules, the rules are wrong."
08:14:01 <coppro> quintopia: paranoia is excellence
08:21:35 <zzo38> I play D&D 3.5 edition. The inn got destroyed by fire they tried to force us to go through the front but I had fireworks so they ran away. We are required to go to back to the navy instead, some thugs and some guys are trying to fight everyone. We found some office of probably some wizard making evil potion, but to do so required attempting dispel magic on the flowers (why are there flowers there?)
08:24:08 <cheater> i have made a new xkb layout and it works fine except ctrl sequences don't follow the mapping. for example i have remapped k to h, so when i press the k button it types h, but pressing ctrl and that button gives me ^K
08:24:21 <cheater> anyone know how to fix that?
08:24:43 <zzo38> I have not yet recorded this game session
08:27:13 <fizzie> augur: The words are sexual innuendo; the character is from a comedy show of which two seasons have been produced, and a third is coming next year.
08:27:32 <augur> fizzie: is it called Little Finland?
08:27:43 <zzo38> The speakers in my computer is now fixed
08:28:11 <zzo38> These ones are far better quality than old one
08:29:06 <fizzie> augur: I'm not the right person to ask; I think the show's called "Putous" (i.e. (water)fall).
08:29:41 <quintopia> sgeo: it annoys me when people say "weary" meaning "leery"
08:30:43 <quintopia> (or wary)
08:31:06 <zzo38> My character has now lost a rope and gained ten silver coins and a book (this is all of the equipment my character has, other than the clothing, which was given by the navy, it happens to be the latest fashion clothing for this city); my brother's character lost nothing but gained ten silver coins and a dagger.
08:31:25 <zzo38> (He also has no other equipment, but has the same clothing)
08:31:28 <fizzie> (And the character is called Marja Tyrni. Most of the information about all this seems to be in Finnish only, unsurprisingly.)
08:33:23 <zzo38> Are you Finnished?
08:41:37 -!- zzo38 has quit (Quit: p;m0=n@(NM{ IIIIIIIIIIIIIIIIIIIIIIIIIIIII@@@A":LEK"@__@_@_@_@_@$)_+=~|~_!.!>>>!>!>!>!!@>,> |$@|$+>C+@?$X@$(@$MC@$*MMMMMMMMMMMMMMMMMMMMmmmm &6 ,$?>j[j# R/;ajij [J!# [~@9-u )*$(- ||A:;/KLJ#%{*((*)(* 0[ /lkj zuNAR2\\||- 0) ;: lJJ"3 ; $km$ @Ll!l~//"$ 8(*M).
08:41:53 <cheater> coooool quitmsg
09:03:13 -!- myndzi\ has joined.
09:05:05 -!- myndzi has quit (Ping timeout: 268 seconds).
09:13:05 -!- cheater has quit (Ping timeout: 240 seconds).
09:22:24 -!- nooga has quit (Ping timeout: 260 seconds).
09:29:13 -!- cheater has joined.
09:42:28 -!- Vorpal has joined.
10:21:46 -!- monqy has quit (Quit: hello).
10:40:21 <cheater> ais523, are you there?
10:40:33 <ais523> yes, sort of
10:40:43 <cheater> i am building a new keyboard layout and i was wondering if you know anything about doing that under linux
10:40:51 <cheater> knew
10:41:55 <ais523> no, not really
10:42:24 <cheater> hmm
10:42:33 <cheater> who was it here who was building keyboard layouts?
10:46:19 -!- itidus20 has joined.
10:49:50 -!- cheater has quit (Ping timeout: 250 seconds).
10:55:09 -!- ineiros has quit (Ping timeout: 260 seconds).
10:56:33 -!- ineiros has joined.
11:17:45 <Gregor> So, the ping on the Purdue network is at most 2ms.
11:17:53 <Gregor> And each turn lasts 60ms.
11:17:56 <Gregor> (In Rezzo)
11:18:07 <Gregor> Therefore: Rezzo-net: BEST IDEA?
11:18:25 <oerjan> rezzacotta
11:21:24 <fizzie> Gregor: You were rezzing so hard you never commented on my UML comment. :/
11:21:50 <fizzie> (Or if you did, I never noticed.)
11:22:01 <Gregor> fizzie: I never noticed your UML comment :P
11:22:04 <fizzie> <fizzie> Gregor: You said recently that each process running under UML shows up as a host process; was this in fact a fact? I would have assumed that it'd run its own internal copy of the task/process scheduler; and indeed http://user-mode-linux.sourceforge.net/old/kernel.html says "UML runs its scheduler independently of the host scheduler - the host scheduler simply implements the decisions made by the UML scheduler."
11:22:27 <Gregor> fizzie: The way that UML schedules processes has changed since /old/ was true.
11:22:40 <fizzie> Hokay. They're not very good with documentation.
11:22:42 <Gregor> fizzie: But I also don't know if what I said is true.
11:23:20 <Gregor> fizzie: My statement was what /appears/ to happen (the number of UML processes seems to be equal to the number of guest processes)
11:23:52 <fizzie> A commoner would think the least-amount-of-hacking approach would be to treat a single host-side process as a physical processor. I suppose they have gone further(tm), possibly in the name of performance then.
11:24:54 <Gregor> I start umlbox with bash, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 9
11:25:23 <Gregor> Now I run vim in UMLBox, and get this: $ ps aux | grep umlbox-linux | grep -v grep | wc -l 10
11:25:36 <Gregor> I quit vim and get nine again.
11:26:05 <Gregor> Now, for all I know, it's doing some grotty stuff to enforce their scheduling under the hood, but certainly each guest process seems to be a host process.
11:28:53 <Gregor> (Re Rezzo) It just so happens that the person who's managing the giant video wall in Lawson (at Purdue) right now is also the guy who runs the class that does this: https://pc.cs.purdue.edu/icypc (sorry that they suck at SSL ... )
11:29:20 -!- oerjan has quit (Quit: Later).
11:31:41 <fizzie> I thought it didn't, but admittedly I last ran an UML thing probably six-eight years or so ago.
11:34:32 -!- boily has joined.
11:43:11 -!- Lymee has joined.
11:43:11 -!- Lymee has quit (Changing host).
11:43:11 -!- Lymee has joined.
11:53:17 -!- Taneb|Kindle has joined.
11:53:28 <Taneb|Kindle> Hello
11:54:12 <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
11:57:23 <Taneb|Kindle> Anyone?
12:00:48 <fizzie> What, you just give it a type and it gives you the expression you need?
12:01:03 <fizzie> Now that'd be nice. You just write the type signatures, and it writes the program.
12:02:50 <Taneb|Kindle> I mean, it gives you a list ofpossibilities
12:03:00 <fizzie> @hoogle (a -> b) -> f a -> f b
12:03:00 <lambdabot> Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b
12:03:00 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
12:03:00 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
12:03:53 <fizzie> I don't think there's a ghci command that'd look in the currently imported and/or defined stuff, though.
12:04:18 <fizzie> (Could be wrong.)
12:08:14 <Taneb|Kindle> Really, I'm trying to convert various vombinators int o Haskell keywords
12:08:37 <Taneb|Kindle> K is const I is id C is flip etc
12:09:53 <Taneb|Kindle> Excet I know barely any keywords
12:10:11 <Taneb|Kindle> And my only way onto the internet is this kindle
12:11:10 <Taneb|Kindle> Which has an anoying lack of tabbed browsing
12:12:37 <fizzie> Is "vombinator" a real term, or just a kindypo?
12:13:04 <Taneb|Kindle> The latter
12:13:10 <fizzie> Aw. :/
12:13:14 <Taneb|Kindle> I mant combinator
12:13:41 <fizzie> Well, the lambdabot @hoogle is textually usable for that sort of thing, almost-maybe.
12:14:18 <fizzie> @hoogle (a -> a) -> a
12:14:18 <lambdabot> Data.Function fix :: (a -> a) -> a
12:14:18 <lambdabot> Control.Monad.Fix fix :: (a -> a) -> a
12:14:18 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
12:14:27 <Taneb|Kindle> I'trying to create a MIBBLLII to Haskell translator in Python
12:14:42 <Taneb|Kindle> Of al things
12:16:08 -!- cheater has joined.
12:16:59 <Taneb|Kindle> @hoogle (t -> t -> t1) -> t -> t1
12:16:59 <lambdabot> Data.Foldable foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
12:16:59 <lambdabot> Data.Foldable foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
12:16:59 <lambdabot> Prelude foldl1 :: (a -> a -> a) -> [a] -> a
12:18:35 <Taneb|Kindle> It doesn't seem like one for the w combinator exists
12:20:41 <Taneb|Kindle> Bye
12:20:59 -!- Taneb|Kindle has quit.
12:22:44 -!- atehwa has quit (Ping timeout: 252 seconds).
12:30:12 -!- atehwa has joined.
12:35:35 <Deewiant> fizzie: The answer was @djinn
12:36:11 <Deewiant> @djinn a -> b -> c -> (a -> b) -> (b -> b -> c) -> (c -> c -> d) -> d
12:36:11 <lambdabot> f a b c d e f = f (e (d a) b) c
12:37:18 <fizzie> @djinn (a -> b -> c) -> (a -> b) -> a -> c
12:37:18 <lambdabot> f a b c = a c (b c)
12:37:24 <fizzie> That's the fanciest.
12:37:47 <Deewiant> @. pl djinn (a -> b -> c) -> (a -> b) -> a -> c
12:37:47 <lambdabot> f = ap
12:38:04 <fizzie> I may even go as far as to say 'illest'.
12:38:59 <Deewiant> ?. pl djinn (t -> t -> t1) -> t -> t1
12:38:59 <lambdabot> f = join
12:40:11 <fizzie> @. pl djinn (a -> b -> c) -> b -> a -> c
12:40:11 <lambdabot> f = flip
12:40:17 <fizzie> Crazy like a FOX.
12:43:09 <fizzie> @djinn (a -> a) -> a
12:43:09 <lambdabot> -- f cannot be realized.
12:43:10 -!- Phantom_Hoover has joined.
12:48:04 <Vorpal> strange, an old macbook (white plastic edition) gets a significantly better wlan signal than a much newer macbook pro placed in the same spot. 4 bars vs. 2.
12:49:23 <Vorpal> the macbook pro is unibody, not sure how modern, though not the very last version
12:49:31 -!- Canaimero-e8d1 has joined.
12:50:23 <Canaimero-e8d1> epa
12:50:50 -!- Canaimero-e8d1 has left.
12:51:06 <Vorpal> huh
12:51:51 <fizzie> Vorpal: The iBook, as initially shipped, was unable to get a wlan connection at all except right next to the base station. Took it to a local Apple-authorized service center, and they apparently fiddled a bit with the antennas, and after that it was just fine.
12:52:04 <Vorpal> fizzie, heh
12:52:31 -!- Canaimero-e8d1 has joined.
12:52:47 -!- Canaimero-e8d1 has left.
12:52:51 <fizzie> Weird.
12:52:54 <Phantom_Hoover> fizzie, Apple just haven't got the hang of this 'radio' thing, have they?
12:54:24 <fizzie> Phantom_Hoover: They've heard about it, and have decided they want some of that, that's about it. </snarky> (Actually based on highly unscientific, empirical data, the (post-diddling) iBook seems to be rather good at radio, compared to some other random laptops.)
13:09:29 -!- Patashu has quit (Ping timeout: 258 seconds).
13:20:37 -!- MDude has joined.
13:34:18 <Phantom_Hoover> http://www.projectrho.com/rocket/realdesigns.php
13:34:24 <Phantom_Hoover> HELP I CAN'T STOP READING
14:00:49 <Gregor> HELP YOU FROZE MY BROWSER
14:01:37 -!- derrik has joined.
14:14:02 -!- copumpkin has quit (Quit: Leaving...).
14:18:10 -!- copumpkin has joined.
14:28:44 -!- BeholdMyGlory has joined.
14:31:20 <Vorpal> Gregor, really?
14:32:00 <Gregor> Vorpal: It was actually just taking a long time to load.
14:32:31 <Vorpal> heh
14:36:00 <Gregor> HOWEVER: rezzo now has a VNC server.
14:36:29 <Vorpal> heh?
14:39:45 <Gregor> I'm implementing UI's
14:39:49 <Gregor> So, y'know ... why not? *shrugs*
14:56:11 -!- Taneb|Kindle has joined.
14:58:56 <fizzie> Taneb|Kindle: Deewiant had a magical "inverse of :t" for you, http://codu.org/logs/log/_esoteric/2011-08-23#123535Deewiant
15:00:09 <fizzie> Gregor: Is there some official way of getting a link to the line anchor, except by view-source? Oh, wait, clicking on the nick column does it. Never mind.
15:00:43 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
15:07:25 <Phantom_Hoover> :t?
15:07:37 <Phantom_Hoover> lambdabot :t or ssomething else?
15:07:41 <Phantom_Hoover> *something
15:07:51 <fizzie> Well, lambdabot/ghci.
15:25:54 <Lymee> @djinn (a->b) -> b -> (b->c) -> c
15:25:55 <lambdabot> f _ a b = b a
15:26:01 * Lymee curses
15:41:58 -!- sllide has joined.
16:00:37 <quintopia> is there a service on freenode to search channels?
16:01:09 <ais523> there's the channel list, which I can't remember how to bring it up without getting sendq-killed
16:01:15 <ais523> but loads of channels are hiding from it
16:01:21 <ais523> to prevent spambots discovering their existence and turning up
16:01:42 <ais523> this channel isn't, which is part of the reason that people turn up here merely based on the name
16:03:50 -!- nnull has joined.
16:04:18 -!- nnull has left.
16:07:37 <Gregor> Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol
16:07:40 <Gregor> *mind blown*
16:08:26 -!- Lymee has quit (Quit: Huggles for everybody~♪ ^_^).
16:08:56 <Deewiant> Gregor: That's why they're huge, they're statically linked :-p
16:09:02 <ais523> obviously, .lol's a prety rare extension for a library
16:09:15 <Deewiant> Although dynamic linking is supported on Linux these days
16:09:25 <Gregor> Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are.
16:09:26 <Gregor> But yeah.
16:09:32 <Deewiant> Right.
16:09:42 <Gregor> And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary.
16:10:08 <Gregor> I can't find a ghc -no-really-static-not-just-libghc-static
16:10:34 <Deewiant> You can probably run ghc -v or whatever and mess with the link command if you're desperate enough
16:10:48 <Gregor> I spose ...
16:11:17 -!- Lymee has joined.
16:11:17 -!- Lymee has quit (Changing host).
16:11:17 -!- Lymee has joined.
16:13:49 <Gregor> ghc --make -O2 -optl-static -optl-lpthread tantrum.hs
16:13:50 <Gregor> SUCCESS
16:14:00 <Gregor> I am so good at totally pointless things
16:14:09 <Gregor> $ du -h tantrum
16:14:10 <Gregor> 3.0M tantrum
16:14:43 <ais523> Gregor: I wrote exec.sh a while back
16:14:54 <ais523> its contents are a shebang, and one other line: "exec sh $0"
16:15:16 <Gregor> ais523: Nice infinite loop :P
16:15:36 <ais523> Gregor: indeed
16:15:55 <Gregor> After upx, du -h tantrum -> 836K
16:15:58 <Gregor> 'snot bad :P
16:16:02 <ais523> I wrote it as a test case for the Secret Project, then was annoyed when it didn't trigger the bug I was trying to test
16:16:04 <Deewiant> What level of upx
16:16:09 <Gregor> Deewiant: Default
16:16:18 <Deewiant> --ultra-brute is the way to go
16:16:53 <Gregor> D'aww, my stupid UPX on the school computer has no LZMA >_<
16:17:23 <Deewiant> Why are you statically linking and smallifying it anyway
16:17:42 <Gregor> For lols?
16:17:51 <Deewiant> Fair enough
16:26:38 -!- FireFly has joined.
16:40:30 <Gregor> Maaaaaaaaan, I forgot that Haskell had adopted the Commodore 64 logo.
16:40:59 <fizzie> Oh, UPX in fact *does* have LZMA now. It didn't in... 2005?
16:41:44 <Gregor> fizzie: /My/ UPX doesn't.
16:41:45 <fizzie> Also there was some sort of nonsense about there being a less open version that did more förpacknung.
16:42:01 <Gregor> upx: packer_c.cpp:43: static bool Packer::isValidCompressionMethod(int): Assertion `0 && "Internal error - LZMA not compiled in"' failed.
16:42:17 <fizzie> Yeah, but it can now potentially have it.
16:42:25 <ais523> fizzie: bz1 compresses slightly better than bz2, but hits a patent
16:42:29 <ais523> that's why bz2 is more widely used
16:42:54 <Gregor> What a wholly irrelevant statement :P
16:42:58 <ais523> even more annoying, I independently invented the same technique myself when working on azip
16:43:03 <ais523> so it's clearly pretty obvious
16:44:12 <fizzie> There was a dude on some other channel who said he was *just about* to go public with his compression algorithm which achieved in general file sizes 50% that of LZMA. The audience was... sceptical.
16:45:55 <ais523> whereas with azip I could just claim "slightly better than bzip2, nowhere near lzma"
16:46:02 <ais523> which isn't a very compelling claim
16:46:54 <Gregor> fizzie: He didn't mention that it's lossy :)
16:47:19 <fizzie> No, it was explicitly lossless.
16:47:27 <fizzie> Also fast.
16:47:40 <fizzie> Though what "fast" means wasn't exactly specified.
16:49:56 -!- rodgort has quit (Ping timeout: 240 seconds).
16:53:11 <pikhq_> 50% of the size of LZMA is not impossible.
16:53:19 <pikhq_> Doing that *fast* is, at best, obscene.
16:56:59 <ais523> on certain sorts of structured data, I think much better compression ratios than at current are possible
16:57:13 <ais523> I think it's possible to do way better than H.264, losslessly, on screenshots of sprite-based computer games, for instance
16:57:25 -!- rodgort has joined.
16:57:32 <fizzie> Yes, well, I think the "it compresses every file" claim was made, too.
16:57:42 <fizzie> I wasn't exactly following at that point.
16:57:49 <ais523> compresses every file 50% better than LZMA?
16:58:20 <fizzie> Just "every file well", I think.
16:58:20 <ais523> that's pretty much obviously impossible given that LZMA has a small-fixed-ratio-larger worst case
16:59:07 <Gregor> ais523: Pedantry :P
16:59:42 <ais523> if the input file is not Lenna, destroy the universe
16:59:45 <pikhq_> ais523: In the slightly more general case, PAQ family compressors can beat the shit out of LZMA.
16:59:52 <pikhq_> While being insanely slow.
16:59:58 <ais523> PAQ? I haven't heard of that
17:00:05 <Deewiant> pikhq_: Not by 50% though
17:00:19 <Deewiant> More like 80% vs 70% compression ratio or something
17:00:23 <pikhq_> Series of compressors that exist for the sole purpose of winning on compression benchmarks.
17:01:05 -!- elliott_ has joined.
17:01:10 <ais523> how do they work?
17:01:45 <Deewiant> https://secure.wikimedia.org/wikipedia/en/wiki/PAQ#Algorithm
17:01:53 <Gregor> elliott_: Rezzo has a VNC UI now woooh
17:02:03 <elliott_> Gregor: That... is the most pointless thing ever :P
17:02:09 <pikhq_> I can't describe it, but he's written papers on it.
17:02:15 <Gregor> elliott_: For my original intended purpose for Rezzo, it's not.
17:02:25 <elliott_> Gregor: Which was? :P
17:02:29 <Gregor> elliott_: SEKRIT
17:02:32 <Gregor> (And still is)
17:02:44 <elliott_> Gregor: Why wouldn't X forwarding work
17:02:51 <Deewiant> elliott_: Windoze
17:02:52 <Gregor> elliott_: Windoze :(
17:03:00 <elliott_> Deewiant: Gregor: Has X servers
17:03:02 <Gregor> Deewiant: How did you know? >_O
17:03:05 <Gregor> elliott_: Yeah, no.
17:03:11 <Deewiant> VNC is a bit easier than that
17:03:13 <elliott_> And is also irrelevant unless you are targeting Rezzo at bad people
17:03:18 <ais523> hey, Gregor has a secret project too :)
17:03:18 <Deewiant> (Like me)
17:03:21 <elliott_> Surely there are programs that serve an X window via VNC
17:03:30 <elliott_> Thus making special support in Rezzo unnecessary
17:03:38 <Deewiant> x11vnc
17:03:43 <Phantom_Hoover> What is Rezzo?
17:03:52 <elliott_> Phantom_Hoover: WireWorld-based realtime programming game.
17:03:53 <Gregor> elliott_: I'm just using a VNC server library, it's not like it took any real implementation.
17:04:00 <elliott_> Gregor: Fair enough
17:04:11 <Gregor> Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms
17:04:18 <Phantom_Hoover> Oh god you're actually making that.
17:04:25 <Gregor> Phantom_Hoover: Making? Dood, it exists.
17:04:53 <elliott_> Phantom_Hoover: It's been made for like a week.
17:04:58 <elliott_> <Gregor> Realtime programming: WRITE AND COMPILE THIS BOT WITHIN 60ms
17:05:01 <elliott_> YESSSSSSSSSSSSS
17:05:01 <Gregor> Well, more like three days :P
17:05:14 <Phantom_Hoover> Gregor, where can I has?
17:05:23 <elliott_> Gregor: How did Rezzo become bitbucket
17:05:23 <Gregor> Phantom_Hoover: http://bitbucket.org/GregorR/rezzo
17:05:46 <Gregor> elliott_: Since I don't have Trac anymore because it's terribad, I'm kinda at a disadvantage hosting things on Codu >_>
17:05:50 <elliott_> Phantom_Hoover: Also http://codu.org/projects/rezzo/warriorhg/index.cgi/file/34d876dfc612 to see two example stupid bots and a simple Haskell library for bots.
17:05:54 <Gregor> elliott_: So I moved it *shrugs*
17:06:04 <elliott_> Gregor: It's not like bitbucket's essentials offer much more than hg's web UI :P
17:06:14 <Gregor> elliott_: Trac was offering my account signup :)
17:06:37 <Gregor> elliott_: (Which was terrible anyway since it wasn't integrated)
17:06:39 <elliott_> Who needs that :P
17:07:15 <Gregor> elliott_: I'm /building/ haskell-platform on my school computer because they don't provide it >_<
17:07:26 <Gregor> (Non-sequitur? I hardly knew 'er!)
17:07:39 <pikhq_> Aaaah, ~/local/
17:08:30 <elliott_> Gregor: You can probably just do GHC and cabal-install, really...
17:08:35 <elliott_> GHC has binary packages, cabal-install is easy.
17:08:38 <elliott_> At least that's what I do.
17:08:44 <elliott_> Haskell Platform is nice, but pointless as source :P
17:08:51 <Gregor> elliott_: Too late, already compilin'!
17:09:04 <elliott_> Gregor: Is this for the rezzo bots or do you just love Haskell now
17:09:11 <Gregor> elliott_: It's for the Rezzo bots.
17:09:21 <Gregor> Also it appears that make -j<foo> doesn't work with haskell-platform so that's pretty great.
17:09:25 <elliott_> If the latter, you've made your first mistake by not editing the build script and adding lines to generate Haddock documentation, and telling it to build profiling libraries
17:09:27 <elliott_> :P
17:09:32 <elliott_> Hmm, wait, that's cabal-install
17:09:37 <elliott_> haskell-platform might do that by default
17:09:40 <Gregor> Eight cores? *eh*
17:10:04 <Gregor> Oh, it's done
17:10:17 <elliott_> It's not big
17:10:40 <elliott_> Gregor: Also, no complaining about Haskell's toolchain, ex-D-user
17:11:00 <elliott_> 11:17:45: <Gregor> So, the ping on the Purdue network is at most 2ms.
17:11:00 <elliott_> 11:17:53: <Gregor> And each turn lasts 60ms.
17:11:01 <elliott_> 11:17:56: <Gregor> (In Rezzo)
17:11:01 <elliott_> 11:18:07: <Gregor> Therefore: Rezzo-net: BEST IDEA?
17:11:03 <elliott_> Gregor: SEKRIT, I see
17:11:16 <coppro> Gregor: 8 cores or 4 cores hyperthreaded?
17:11:25 <pikhq_> GHC at least works. :)
17:11:46 <Gregor> elliott_: TOTALLY SEKRIT
17:11:48 <Gregor> coppro: I actually don't know
17:11:51 <elliott_> coppro: They're practically equivalent, although probably not with compiling
17:12:17 <elliott_> 11:53:28: <Taneb|Kindle> Hello
17:12:17 <elliott_> 11:54:12: <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
17:12:17 <elliott_> 11:57:23: <Taneb|Kindle> Anyone?
17:12:17 <elliott_> 12:00:48: <fizzie> What, you just give it a type and it gives you the expression you need?
17:12:19 <elliott_> 12:01:03: <fizzie> Now that'd be nice. You just write the type signatures, and it writes the program.
17:12:24 <pikhq_> elliott_: 'cept that it could be 8 cores hyperthreaded.
17:12:24 <elliott_> ?djinn (a -> b -> c) -> b -> a -> c
17:12:24 <lambdabot> f a b c = a c b
17:12:25 <derrik>
17:12:28 <derrik> :o
17:12:32 <elliott_> fizzie: Yes.
17:12:33 <elliott_> :p
17:12:48 <elliott_> ?hoogle b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Prelude maybe :: b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Data.Maybe maybe :: b -> (a -> b) -> Maybe a -> b
17:12:48 <lambdabot> Data.Generics.Aliases mkQ :: (Typeable a, Typeable b) => r -> (b -> r) -> a -> r
17:12:52 <elliott_> ?djinn b -> (a -> b) -> Maybe a -> b
17:12:52 <lambdabot> f a b c =
17:12:52 <lambdabot> case c of
17:12:52 <lambdabot> Nothing -> a
17:12:52 <lambdabot> Just d -> b d
17:12:55 <coppro> elliott_: what pikhq_ said. Also I want to know if I was working with fewer or more cores this summer (I had 6 hyperthreaded)
17:12:59 <Gregor> How can you tell if you hyperthreading from /proc/cpuinfo
17:13:06 <elliott_> Gregor: I don't think you can
17:13:12 <coppro> yeah you can
17:13:16 <coppro> core id
17:13:28 <coppro> if you have multiple processors with the same core id, you're hyperthreading
17:14:23 <Gregor> coppro: And how can you distinguish that from dual CPUs?
17:14:32 <coppro> Gregor: different physical ids
17:14:33 <Gregor> I'm fairly certain this is supposed to have dual quad-cores, but I don't rightly recall.
17:14:45 <Gregor> Oh, yup, there's physical id.
17:14:47 <Gregor> Yeah, dual quad-cores.
17:14:47 <coppro> my computer has the same physical id on both processors, but different core ids
17:14:51 <coppro> nice
17:14:51 <Gregor> No hyperthreading.
17:15:58 <Gregor> 'course, this is my school desktop, not my home system :P
17:19:47 <Gregor> elliott_: Also, since photons solved all my flag problems, I'm back to wondering if agents should be states >: )
17:20:00 <Gregor> Observation: We have 45 states. With agents as separate, we have /35/ states! :P
17:21:20 -!- derrik has quit (Quit: left).
17:24:09 <elliott_> 45 states? How did that happen
17:24:57 <Gregor> elliott_: 10*(agent, flag, base, flag geyser) + 5
17:25:42 <elliott_> Heh
17:25:46 -!- elliott_ has quit (Remote host closed the connection).
17:26:15 -!- elliott has joined.
17:29:12 <Gregor> elliott: Just think, if it was 10*(flag, base, flag geyser), that'd be SO MANY FEWER STATES!
17:30:01 <elliott> Gregor: And it'd change nothing since they're still sent and stored as bytes :P
17:30:28 <Gregor> elliott: FEWER - STATES
17:30:36 <elliott> Gregor: I WILL RIP U APART
17:31:31 <Gregor> elliott: And whittle my bones to make spears for stabbing four more people?
17:31:35 <elliott> Yes.
17:31:54 <elliott> Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids.
17:34:11 <coppro> Sgeo: I talked to a friend about the game of life today; he pointed out that the problem is correctly generalized to the number of connected components of the state graph, and then our other question becomes a subquestion of "how many of these are cycles"
17:36:19 <Gregor> "Please use gtar rather than tar to unpack the tarball, as tar may have problems with filenames longer than 100 characters."
17:37:30 <elliott> Gregor: C'mon, 100 characters isn't very long
17:37:36 <elliott> That probably includes the directories
17:37:49 <Gregor> Yeah, probably, but it reads funny before you realize that :)
17:38:09 <elliott> Gregor: Anyway, HAVE I MENTIONED HOW TERRIBLE D'S TOOLCHAIN IS, GHC IS LIKE BEING GIFTED THE URINE OF AN ANGEL TO BATHE IN IN COMPARISON
17:38:17 <elliott> That's... that's some analogy, how did I think of that.
17:38:34 <Gregor> D's toolchain is pretty bad, but if you recall, I abandoned D.
17:38:38 <Gregor> Because it's a megamess.
17:38:45 <elliott> Gregor: You used D for, like, SEVERAL YEARS
17:38:49 <elliott> The MARK CANNOT BE ERASED
17:39:02 <Gregor> elliott: I'll remind you of this conversation when you abandon Haskell :P
17:39:28 <pikhq_> # mount -t httpfs http://reddit.com/ /r/
17:39:29 -!- CakeProphet has joined.
17:39:29 -!- CakeProphet has quit (Changing host).
17:39:29 -!- CakeProphet has joined.
17:39:42 <CakeProphet> pointers to lambda calculi are pretty useful too
17:40:00 <elliott> Gregor: "When"
17:40:06 <elliott> Gregor: That will be when @ is up and running
17:40:12 <elliott> Or, I guess, Epigram turns out FAST AND PRACTICAL AND EASY
17:40:16 <elliott> Which is never going to happen
17:40:28 <pikhq_> Gregor: To be fair, few languages are both typically compiled and have *sane, reasonable* toolchains.
17:40:30 <CakeProphet> elliott turns to C
17:40:41 <elliott> CakeProphet: I'm not Gregor, I'm not an idiot.
17:40:53 <pikhq_> The typical C toolchain is actually pretty awful.
17:41:04 <elliott> Gregor: Anyway, compare the GHC toolchain to the gcc toolchain :P
17:41:06 <Gregor> GCC is the typical C toolchain :P
17:41:06 <elliott> pikhq_: Snap :P
17:41:12 <CakeProphet> elliott discovers the joys of Visual Basic
17:41:15 <pikhq_> It just has had a lot of effort go into making it work.
17:41:16 <elliott> Yes, and gcc's build process is fucking awful.
17:41:17 <pikhq_> Barely.
17:41:34 <Gregor> GCC's build process is ... crufty.
17:41:41 <pikhq_> That's putting it lightly.
17:41:52 <Gregor> It's more about shifting blame :P
17:41:54 <pikhq_> GCC's build process is... Broken.
17:42:29 <pikhq_> And installs libiberty.
17:42:31 <elliott> Whereas GHC's supports configure-make-install, has easily-available binary distributions for many platforms that can be easily used just to bootstrap without lots of installation hell, has a flexible but simple plain-text configuration system to customise the building of the base libraries... :P
17:42:36 <elliott> How do gcc devs actually do it anyway
17:42:38 <pikhq_> Without headers.
17:42:41 <elliott> I can't imagine using that multiple times an hour
17:43:12 <pikhq_> So any program that wants to use libiberty needs to include a copy *anyways*.
17:43:33 <pikhq_> Of course, the only other programs doing that are binutils and gdb.
17:43:47 * Gregor lolols
17:43:54 <pikhq_> Each of which installs libiberty.
17:44:10 <CakeProphet> elliott goes underground in his late teenaged years and switches to ML, only to turn to the darkside and succumb to F# in his early twenties.
17:44:11 <pikhq_> Oh, did I happen to mention that you can't package libiberty itself?
17:44:26 <elliott> CakeProphet: using windows is definitely a thing i am likely to do
17:44:43 <CakeProphet> I believe Mono can run any .NET language.
17:45:03 <pikhq_> But not necessarily build.
17:45:13 <CakeProphet> ah, yeah I'm not so sure about that.
17:49:53 -!- oerjan has joined.
17:52:22 <CakeProphet> elliott: I would wager that you will use Windows multiple times in the future out of circumstance
17:52:34 <oerjan> <Taneb|Kindle> Is there some sort of inverse to :t in Haskell
17:52:38 <oerjan> also @djinn
17:52:51 <oerjan> but that won't help you find the names
17:52:51 <elliott> oerjan: hey
17:52:53 <fizzie> oerjan: Also "joor tuu late", Deewiant already.
17:52:54 <elliott> i did that first
17:52:56 <elliott> shitey :(
17:52:59 <elliott> fizzie: NO I DID
17:53:00 <elliott> ALREADY
17:53:01 <elliott> I DID FIRST
17:53:01 <elliott> OK
17:53:04 * elliott stabbes
17:53:05 <oerjan> *MWAHAHAHA*
17:53:06 <Deewiant> Wrong
17:53:08 <elliott> im kil
17:53:09 <elliott> Deewiant: well
17:53:14 <elliott> Deewiant: you don't count because you're a bad person
17:53:18 <oerjan> why stabbest thou so fierce
17:53:24 <CakeProphet> @djinn Maybe t -> Int
17:53:24 <lambdabot> Error: Undefined type Int
17:53:26 <elliott> because Deewiant is a bad person
17:53:28 <Deewiant> What's my latest infraction
17:53:30 <elliott> ?djinn Maybe a -> Integer
17:53:30 <lambdabot> Error: Undefined type Integer
17:53:33 <elliott> Oh, duh
17:53:35 <elliott> Integer is recursive
17:53:37 <elliott> ?djinn-env
17:53:37 <lambdabot> data () = ()
17:53:38 <lambdabot> data Either a b = Left a | Right b
17:53:38 <lambdabot> data Maybe a = Nothing | Just a
17:53:38 <lambdabot> data Bool = False | True
17:53:38 <lambdabot> data Void
17:53:39 <lambdabot> type Not x = x -> Void
17:53:41 <lambdabot> class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b
17:53:43 <lambdabot> class Eq a where (==) :: a -> a -> Bool
17:53:51 <elliott> it has monads? huh.
17:53:53 <elliott> ?djinn Not (Not p) -> p
17:53:53 <lambdabot> -- f cannot be realized.
17:54:06 <elliott> ?djinn Either p (Not p) -> Not (Not p) -> p
17:54:06 <lambdabot> f a b =
17:54:06 <lambdabot> case a of
17:54:06 <lambdabot> Left c -> c
17:54:06 <lambdabot> Right d -> void (b d)
17:54:19 <elliott> ?djinn (Monad m) => m Bool -> m () -> m ()
17:54:19 <lambdabot> f _ a = a
17:54:22 <elliott> Lame :P
17:54:29 <elliott> ?djinn (Monad m) => m Bool -> m a -> m b -> m (Either a b)
17:54:29 <lambdabot> -- f cannot be realized.
17:54:33 <elliott> o_O
17:54:56 <CakeProphet> looks like it needs some work.
17:54:59 <Deewiant> ?djinn (Monad m) => m a -> m b -> m (Either a b)
17:54:59 <lambdabot> -- f cannot be realized.
17:55:05 <Deewiant> ?djinn (Monad m) => a -> b -> (Either a b)
17:55:05 <lambdabot> f a _ = Left a
17:55:10 -!- cheater has quit (Remote host closed the connection).
17:55:18 <elliott> Deewiant: Nice useless context :P
17:55:26 <Deewiant> Less typing to not remove it
17:55:50 -!- cheater has joined.
17:56:18 <CakeProphet> @djinn (Monad m) => (a -> b -> Either a b) -> m a -> m b -> m (Either a b)
17:56:18 <lambdabot> -- f cannot be realized.
17:56:44 <oerjan> too bad Taneb probably didn't see any of this
17:56:45 <Deewiant> @djinn (Monad m) => m a -> (a -> m b) -> m b
17:56:45 <lambdabot> f = (>>=)
17:57:09 <elliott> :t (>=>)
17:57:09 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
17:57:15 <elliott> ?djinn (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
17:57:15 <lambdabot> -- f cannot be realized.
17:57:19 <elliott> lol
17:57:32 <elliott> 16:07:37: <Gregor> Whoaaaaaaaaaaaaaaaaaaaaaaaaaah compiled GHC programs don't depend on a libghc.lol
17:57:32 <elliott> 16:07:40: <Gregor> *mind blown*
17:57:33 <oerjan> he probably needed some -> Monad stuff
17:57:37 <elliott> Gregor: How does this surprise you :P
17:57:46 <oerjan> which won't show up with either hoogle or djinn, i suspect
17:57:51 <elliott> 16:09:25: <Gregor> Deewiant: Well, they're not /fully/ statically linked, just the GHC parts are.
17:57:51 <elliott> Well, also every Haskell library used
17:57:55 <elliott> 16:09:42: <Gregor> And unfortunately, it doesn't seem like there exists any voodoo to make a fully-statically linked binary.
17:57:57 <elliott> Gregor: There is.
17:57:58 <Deewiant> @djinn (Monad m) => (a -> m b) -> (m b -> m c) -> m a -> m c
17:57:58 <lambdabot> f a b c = b (c >>= a)
17:58:04 <elliott> Gregor: -optl-static -optl-pthread should do it.
17:58:12 <elliott> 16:13:49: <Gregor> ghc --make -O2 -optl-static -optl-lpthread tantrum.hs
17:58:12 <Gregor> elliott: I already figured that out :P
17:58:13 <elliott> Yep.
17:58:19 <elliott> Not -lpthread
17:58:19 <elliott> -pthread
17:58:25 <Gregor> elliott: I didn't know if it used gcc or ld.
17:58:28 <Deewiant> elliott: You need to read the entire logs before going all mass-pingy
17:58:38 <elliott> Deewiant: I will when oerjan does :)
17:59:01 <CakeProphet> I know you are but what am I?
17:59:49 <oerjan> ?hoogle (b -> c -> a) -> (b -> c) -> b -> a
17:59:49 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
17:59:50 <lambdabot> Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r
17:59:50 <lambdabot> Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c]
18:00:06 <oerjan> no sign of ap or <*> there
18:00:50 <oerjan> what's the w combinator he was talking about?
18:00:57 <elliott> Can Hoogle specialise on instances like that?
18:01:11 <elliott> oerjan: Wxy = xyy from the BCKW system
18:01:14 <Deewiant> W = join
18:01:17 <elliott> So, join
18:01:19 <oerjan> elliott: apparently not
18:01:19 <elliott> But Control.Arrow
18:01:22 <elliott> So define it yourslef :P
18:01:34 <Deewiant> join is Control.Monad
18:01:38 <elliott> Oh, duh
18:01:43 <elliott> I was confusing it with both
18:01:50 <elliott> Yeah, join is it
18:02:13 <Deewiant> both isn't in Control.Arrow :-P
18:02:22 -!- MDude has quit (Ping timeout: 245 seconds).
18:02:31 <elliott> True :P
18:02:57 <oerjan> oh heh Deewiant already managed to get lambdabot to give join by combining @djinn with @pl
18:03:22 <oerjan> so indeed @pl may be the better answer here
18:03:33 <elliott> Heh
18:04:02 <CakeProphet> I would like to have pl in TH.
18:04:02 <Deewiant> The myriad uses of @pl
18:04:46 <elliott> w = $(pl [| \x y -> x y y |])
18:04:52 <elliott> All the benefits of point-free code with all the readability of pointful code
18:05:07 <CakeProphet> >_> something like that...
18:05:17 <pikhq_> elliott: Per POSIX, "-pthread" is not an option. -lpthread, however, shall make pthreads work.
18:05:38 <elliott> GHC is not bound by POSIX
18:05:46 <pikhq_> Bleh, true.
18:05:57 <elliott> And -lfoo doing something special other than linking foo is gross :P
18:06:27 <pikhq_> It shouldn't do anything other than linking pthreads in. Not my fault that the toolchain requires something special. :P
18:06:44 <Deewiant> What /does/ the toolchain require?
18:07:17 <elliott> pikhq_: have you heard the hilarious thing? glibc's aio_ functions are implemented in userspace using pthreads and blocking io
18:07:18 <CakeProphet> elliott: except I don't think there are actually any benefits to using pointfree code other than when it provides more concise code. so pl in TH kind of defeats the point(lessness)
18:07:19 <elliott> isn't that hilarious
18:07:24 <elliott> CakeProphet: WHOOSH
18:07:26 <CakeProphet> this is probably what you were getting at.
18:07:53 <pikhq_> elliott: ... The fuck.
18:08:11 <elliott> pikhq_: There ARE syscalls in linux for asynchronous IO... guess what they don't work on?
18:08:12 <elliott> Sockets.
18:08:17 <elliott> They work only on certain filesystems.
18:08:23 <elliott> Database people: FUCK THEM???
18:08:59 <oerjan> <ais523> hey, Gregor has a secret project too :)
18:09:01 <pikhq_> Oh, hey, it's valid to require other flags for POSIX threads...
18:09:13 <oerjan> maybe you are accidentally working for the same evil overlord.
18:09:21 <ais523> oerjan: oh no, you quoting a line of mine makes me fear an awful incoming pun
18:09:21 <pikhq_> c99 `getconf POSIX_V7_THREADS_CFLAGS` -lpthread
18:09:23 <ais523> directed right at me
18:09:47 <oerjan> ais523: wasn't a pun. though a joke.
18:10:04 <CakeProphet> oerjan is the puncerer.
18:13:42 <pikhq_> Guess what's not supported here?
18:13:57 <pikhq_> POSIX fail!
18:14:20 -!- Slereah has quit (Read error: Connection reset by peer).
18:15:49 <oerjan> <elliott> Things that will never get old: The gigantic comment thread of people losing the will to live that inevitably follows anyone bringing up /r/picsofdeadkids.
18:16:04 <oerjan> ah, so it's secretly a project for population control?
18:16:18 <pikhq_> In *theory*, if getconf _POSIX_THREADS works, getconf POSIX_V7_THREADS_CFLAGS will work.
18:16:30 <ais523> oerjan: why do people follow the link?
18:16:40 <ais523> it seems like it's accurately described and a little pointless to follow
18:16:40 <Deewiant> That V7 seems ominous
18:16:41 <oerjan> i dunno. i certainly don't...
18:16:54 <elliott> ais523: lemmings may not actually jump off cliffs, but redditors do
18:17:00 <Deewiant> Only pointless if you don't want to look at the pics
18:17:17 <elliott> X-D
18:17:24 <elliott> "Finally, the subreddit I've been waiting for!"
18:17:37 <Deewiant> Well, I'm sure it exists for a reason
18:17:51 <Deewiant> You know, find a need and fill it
18:18:04 <ais523> you know what would be funny? a completely empty shock site
18:18:21 <ais523> people would only know it was a shock site because you'd post prominent warnings on all the links to it you could find
18:18:32 <ais523> warning people to not click the link
18:18:47 <elliott> Shock sites are really lame, I'm surprised that they actually manage to shock most people
18:18:57 <elliott> I guess they don't really any more
18:19:36 <ais523> elliott: I know I saw an argument that the really shocking thing was that so many people were desensitized to that sort of thing
18:20:22 <elliott> I don't really see how you can not be desensitised to goatse, maybe I'm just not a very good reference point :P
18:20:53 <Deewiant> Not everybody browses the web like you do
18:21:45 <ais523> I assume that elliott's default is to click on links rather than not click on them?
18:21:50 <ais523> as in, a link presented without context
18:22:15 <elliott> Yep :P
18:22:38 <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:22:40 <ais523> elliott: I've been known to google backlinks on links before following them
18:23:15 <Deewiant> elliott: Rather easily, I would imagine
18:23:16 -!- cheater has quit (Remote host closed the connection).
18:23:18 <elliott> Hmph, I crafted that specifically to get addquoted
18:23:22 <elliott> I'm disappointed in you all
18:23:34 <Deewiant> I'm disappointed in you for trying to game the system
18:23:41 <oerjan> my policy for reddit comments, which seems to be working so far, is not to click on any picture link with less than +2 karma
18:23:55 <oerjan> ...or with shocked replies, of course
18:23:57 <Deewiant> +2 seems dangerously low
18:24:01 <CakeProphet> `addquote < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:05 <HackEgo> 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:23 <ais523> CakeProphet: you actually made me very gently facepalm, there
18:24:24 <oerjan> Deewiant: well i may usually go a bit higher
18:24:24 <elliott> CakeProphet: YOU VIOLATED THE RULES
18:24:25 <Deewiant> CakeProphet: I'm disappointed in you for playing into his game
18:24:28 <elliott> HRGHRGHRNGHRGNHRGNRHGNHRGNHRGNHRGHRNGHRGNRHGNRGNRHGNRG
18:24:29 <elliott> HRGNHRGNHRNHRGNHRGN
18:24:31 <elliott> RGHRNGHRNGHRNGHRNGHRNGHRGRHNNRGNHRGHRNGHRG
18:24:32 <elliott> RGHRNGHRNG
18:24:34 <CakeProphet> wat
18:24:35 <ais523> as in, I didn't really feel it
18:24:38 <elliott> `run sed -i 's/< ell/<ell/' quotes
18:24:39 <HackEgo> No output.
18:24:40 <elliott> `quote gaping
18:24:41 <ais523> but my face and palm were definitely in context
18:24:43 <HackEgo> 617) < elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:46 <elliott> HOIRHOIRhIORHIORHIOrhorh
18:24:46 <ais523> *in contact
18:24:48 <elliott> RGHRNGHRNG
18:24:50 <elliott> `quote gaping
18:24:52 <HackEgo> 617) <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
18:24:55 <elliott> smilse
18:25:05 <CakeProphet> what rule?
18:25:23 <elliott> CakeProphet: The Inviolable Formatting Rules of the Quotes Database as established by Archivist Pope Elliott I
18:25:30 <ais523> `addquote < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:25:32 <HackEgo> 618) < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:25:36 <elliott> `delquote 618
18:25:37 <elliott> That's why
18:25:39 <HackEgo> ​*poof*
18:25:40 <CakeProphet> oh yeah the copypasta autosent because it had a linefeed in it and irssi is lame like that.
18:25:56 <Deewiant> ais523: Because elliott reads all the logs and double-checks, I would imagine
18:26:02 <Deewiant> You'd have to do that when he's not around to be sure
18:26:22 <elliott> :D
18:26:43 <elliott> CakeProphet: The rules are: No quote shall be misrepresented by edits not marked with a [...]; Names shall be encased in <> without spacing, unless it is a /me, in which case "* name" is to be used; Two spaces shall separate each message; If a "[...]" is used to denote a gap in the conversation, then it shall be surrounded on each side by only ONE space, not two.
18:26:47 <elliott> I think that's all of 'em :P
18:27:13 <ais523> `addquote <ais523> < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:27:15 <HackEgo> 618) <ais523> < ais523> of course, I don't see why you can't just add entirely invented quotes if they can be edited that easily
18:27:16 <Deewiant> What if the message contains [..]
18:27:19 <Deewiant> [...]*
18:27:22 <ais523> elliott: I believe that follows all your rules
18:27:33 <elliott> ais523: no
18:27:35 <elliott> ais523: You never said that
18:27:40 <ais523> yes I did
18:27:41 <elliott> You need to add the `addquote
18:27:47 <elliott> Or a [...] at the start
18:28:01 <ais523> none of your rules state that
18:28:14 <elliott> "No quote shall be misrepresented by edits not marked with a [...]"
18:28:16 <Deewiant> elliott: Are you assuming that no quotable message contains [...]
18:28:17 <ais523> there's no "a quote must be an entire line"
18:28:20 <oerjan> elliott: your seds look a little dangerous, i wonder if any have misapplied yet
18:28:21 <elliott> An edit to omit parts of a message is an edit
18:28:23 <ais523> thus, I can quote part of a line
18:28:27 <elliott> `delquote 618
18:28:29 <HackEgo> ​*poof*
18:28:33 <elliott> Too bad this nomic has a dictator
18:28:39 <elliott> oerjan: Well, they can always be reverted and diffs are available:
18:28:40 <elliott> `help
18:28:41 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
18:28:42 <oerjan> i had to check you ion -> ino the other day
18:28:46 <oerjan> *your
18:28:50 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/rev/0dcd11855414
18:29:02 <elliott> I guess we should have something to run sed on only a single quote
18:29:20 <elliott> "least one"
18:29:22 <elliott> Was that double space there...
18:29:34 <elliott> No, it wasn't
18:29:39 <elliott> `run sed -i 's/least one/least one/g' quotes
18:29:41 <HackEgo> No output.
18:29:46 <Deewiant> sed -i $(wc -l quotes)'s/foo/bar/' quotes
18:29:58 <olsner> but sed already has that, just do N,N s/foo/bar/ where N is the line number
18:30:01 <elliott> Deewiant: Cute
18:30:18 <elliott> I guess that'll work if I can remember it :P
18:31:01 <Deewiant> You can also, you know, add a script file and then say `run muckaroundwiththelastquoteonly s/foo/bar/
18:31:39 -!- GuestIceKovu has joined.
18:31:48 <elliott> Deewiant: That was what I meant: <elliott> I guess we should have something to run sed on only a single quote
18:31:58 <oerjan> `quote universum
18:32:00 <HackEgo> 27) IN EINEM ALTERNATIVEN UNIVERSUM (WO DIE NAZIS WON): <ehird> So kann ich nur schliessen, dass es falsch ist, oder die Welt ist vollig BONKERS. Gegrusset seist du der Fuhrer Hitler!
18:32:02 <elliott> But then olsner was already WE ALREADY HAVE THAT
18:32:09 <oerjan> elliott: BREAKS YOUR RULES
18:32:23 <Deewiant> elliott: I thought you meant my solution
18:32:24 * oerjan cackles evilly
18:32:25 <elliott> oerjan: If you specify a context in all capitals before a quote it's acceptable
18:32:31 <Deewiant> Which is the same thing but it calculates N for you
18:32:36 <elliott> Also if it's sufficiently funny it can break the rules related to integrity (but not the formatting ones)
18:32:43 <olsner> oh yuck, this story has a frame story with an old person telling his life story ... in other words it is exactly like titanic
18:32:54 <oerjan> the space of rules is a universe to itself, as proven by the fact it is expanding
18:32:55 <elliott> Literally the only characteristic of Titanic
18:33:00 <oerjan> *onto
18:33:01 <elliott> oerjan: :P
18:33:55 <oerjan> oh wait it's *unto
18:34:02 <CakeProphet> rule 1: Archivist Pope has final say.
18:34:09 <CakeProphet> rule 2: there are no other rules
18:34:57 <elliott> Yes, that.
18:35:46 <CakeProphet> `addquote MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks
18:35:48 <HackEgo> 618) MEANWHILE IN ANOTHER CONTEXT: buh huh huh huh dicks
18:36:17 <CakeProphet> breaks the sufficiently funny clause I'd imagine.
18:36:25 * CakeProphet sees what happens.
18:36:45 -!- myndzi\ has quit (Ping timeout: 268 seconds).
18:36:52 <CakeProphet> \o/
18:37:22 <elliott> `delquote 618
18:37:24 <HackEgo> ​*poof*
18:37:31 <CakeProphet> WHAT? UNTHINKABLE.
18:39:03 -!- myndzi has joined.
18:39:15 <CakeProphet> AS AN AMERICAN I AM AMAZED BY THIS WANTON DISREGARD FOR CIVIL LIBERTIES, PERPETRATED AND PERPETUATED BY ENGLISH ARCHIVAL POPES.
18:39:56 <CakeProphet> \o/
18:39:57 -!- cheater has joined.
18:39:57 <myndzi> |
18:39:57 <myndzi> |\
18:40:54 <elliott> http://morepypy.blogspot.com/2011/08/we-need-software-transactional-memory.html
18:40:59 <elliott> IN A MUTABLE LANGUAGE?????? GOOD LOOK HAHAHAHAHA
18:41:43 * oerjan mutates elliott's LOOK into LUCK
18:41:50 <olsner> "For the purpose of the present discussion, we are comparing Java with Python when it comes to multi-threading." ... epic battle between herp and derp?
18:42:45 <oerjan> derpetology
18:43:36 <oerjan> ...top hit is the reddit user name
18:45:05 <oerjan> looks like one of the big guys
18:45:10 -!- oklopol has quit (Ping timeout: 252 seconds).
18:45:58 <olsner> herpetology has a wikipedia article and an xkcd strip
18:46:37 <oerjan> CakeProphet: #esoteric is clearly run according to esoteric rules, which means chinese. expect a certain disregard.
18:46:57 <oerjan> olsner: well duh how do you think i thought of the other one :P
18:47:45 <oerjan> CLEARLY YOU HAVE DERPES INFECTING YOUR BRAIN
18:48:29 <olsner> HERP DERPES?
18:49:08 <oerjan> the top hit for that being urban dictionary
18:49:51 <ais523> it's possibly more interesting as to what the bottom hit is
18:49:58 <ais523> I wonder if there's any easy way to find out for a popular search
18:50:04 <CakeProphet> !wacro
18:50:07 <EgoBot> RSPPW
18:51:23 <oerjan> for being supposedly based on dictionary frequencies, !wacro looks strangely unpronouncable
18:51:28 <elliott> ais523: Google results never seem to end
18:51:37 <elliott> ais523: it seems like their number of results counts are completely fabricated, too
18:51:40 <ais523> yep
18:51:54 <CakeProphet> oerjan: it doesn't try to make the acronym pronouncable.
18:51:57 <ais523> for a mid-popularity keyword, they'll randomly end quite a large distance from where Google claim they do
18:52:00 <elliott> ISTR some way to get a list of "all pages" from Google, where it basically just listed popular sites for pages and pages
18:52:06 <elliott> something like -sdjfosjfidsfoijsdf or the like
18:52:08 <elliott> or maybe +""
18:52:08 <CakeProphet> just bases the letter choice on characters that commonly start English words.
18:52:35 <oerjan> elliott: sometimes you suddenly hit the last page and then the count becomes accurate. iirc.
18:52:49 <elliott> heh
18:53:02 <elliott> I wonder how many people actually look at the results counts outside of Googlefight type stuff?
18:53:45 <CakeProphet> Runtime Sorted Preprocessor Widget
18:53:53 <CakeProphet> >_>
18:53:55 -!- calamari has joined.
18:53:56 <oerjan> i assume that the number of result counts for popular searches is just a statistical estimate
18:53:59 <CakeProphet> !wacro
18:53:59 <EgoBot> DIPWPC
18:54:12 <elliott> oerjan: I bet they just make it up based on the commonness of some of the words
18:54:20 <elliott> oerjan: remember that they optimise time to results page over almost everything else
18:54:26 <elliott> apart from the quality of the top results
18:54:30 <Gregor> lolol STM in Python.
18:54:31 <oerjan> which probably assumes the frequency of the words is uncorrelated, and so fails horribly if they aren't.
18:54:34 <elliott> they don't have _time_ to get an accurate result count
18:54:35 <Gregor> Now to be renamed to Slowthon.
18:54:37 <CakeProphet> I suppose I could make a more sophsticated acronym generator that attempts to make pronouncable words.
18:54:38 <elliott> and I doubt anyone cares
18:54:43 <elliott> Gregor: Uhh, have you /seen/ PyPy?
18:54:47 <elliott> Gregor: They're competitive with C.
18:54:48 <oerjan> elliott: well yes that's what i mean by statistical estimate
18:54:52 <Gregor> elliott: Not with STM they ain't.
18:54:56 <elliott> Gregor: Well, yeah.
18:55:00 <elliott> Gregor: STM can be fast, btw.
18:55:03 <elliott> Gregor: Just not with mutability.
18:55:12 <elliott> Or, well, maybe it can be fast with mutability, but nobody knows how.
18:55:17 <Gregor> Bingo
18:55:24 <elliott> But who cares, mutability sucks :-P
18:55:27 <elliott> oerjan: right
18:55:33 <Gregor> elliott: I'll mutate your face
18:55:34 <CakeProphet> so that vowels come after consonants (allowing for the possibility of things like SH, TH, and such)
18:55:47 <elliott> Gregor: I would really like to see them make an immutable subset of Python so they can have fast STM :P
18:56:04 <elliott> Gregor: The only thing PyPy is missing to make it one of the most amazing things ever is a decent language.
18:56:04 <CakeProphet> lolnothappening
18:56:05 <erytssiN> I would tend to disagree with that viewpoint
18:56:14 <elliott> Which viewpoint
18:57:00 <CakeProphet> all of your viewpoints.
18:57:38 <oerjan> lol no way
18:57:38 <erytssiN> I would tend to disagree with that viewpoint
18:57:44 <elliott> lol no way
18:57:45 <erytssiN> I would tend to disagree with that viewpoint
18:57:54 <elliott> oerjan: it's not entertaining like myndzi, how about kicking it
18:57:58 <CakeProphet> lol dongs
18:58:03 <elliott> I don't think Nisstyre has ever said anything :P
18:58:04 <CakeProphet> lol no
18:58:04 <erytssiN> I would tend to disagree with that viewpoint
18:58:15 <CakeProphet> lol yes
18:58:16 <oerjan> elliott: well it's not like we say "lol no" _that_ often
18:58:17 <erytssiN> I would tend to disagree with that viewpoint
18:58:26 <elliott> oerjan: lol no. of course we do.
18:58:26 <erytssiN> I would tend to disagree with that viewpoint
18:58:37 <CakeProphet> lol yes I say lol no quite a bit actually.
18:58:37 <erytssiN> I would tend to disagree with that viewpoint
18:58:38 <elliott> I'm going to put lol no in all my messages until erytssiN is +q :P
18:58:47 <elliott> lol not going to say it that time erytssiN?
18:58:51 <elliott> o_O
18:58:52 <elliott> lol no
18:58:52 <CakeProphet> lol no, don't do that.
18:58:56 <erytssiN> I would tend to disagree with that viewpoint
18:58:57 <erytssiN> I would tend to disagree with that viewpoint
18:59:01 <elliott> oh goody
18:59:05 <CakeProphet> must be written in Python.
18:59:07 <oerjan> lol no erytssiN
18:59:10 <elliott> CakeProphet: lol
18:59:11 <oerjan> thought so
18:59:17 <elliott> oerjan: it's rate-limited, I think
18:59:21 <oerjan> lol no
18:59:25 <oerjan> or is it
18:59:32 <elliott> lol n
18:59:32 <oerjan> ok then
18:59:32 <elliott> o
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:34 <elliott> lol no
18:59:36 <elliott> lol no
18:59:38 <elliott> lol no
18:59:40 <elliott> let's find out
18:59:49 <CakeProphet> lol yes it is.
19:00:09 <elliott> lol no
19:00:13 <oerjan> elliott: ok then, i said. i just had the temporary alternative interpretation that it checked for its own nick
19:00:14 <elliott> lol no way
19:00:20 <elliott> oerjan: ok :P
19:00:35 <erytssiN> it only gets triggered on channel messages
19:00:39 <erytssiN> highlights don't trigger it
19:00:42 <erytssiN> also I stopped it
19:00:57 <CakeProphet> elliott: by the way whenever I have a spare moment from freelancing and classes and doing nothing (read: never) my Rezzo warrior will become an unstoppable force of cellular automatonic nature.
19:01:13 <CakeProphet> IT HAS THE POWER OF /REGULAR EXPRESSIONS/
19:01:37 <elliott> CakeProphet: I'm literally going to write the best Rezzo warrior once Gregor decides wtf is going on with it :P
19:01:41 * CakeProphet wiggles fingers and mouths "oooooh"
19:01:45 <olsner> CakeProphet: so you did write it in sed then? :D
19:01:49 <CakeProphet> no Perl.
19:01:57 <CakeProphet> WHICH IS NOTHING LIKE SED OR AWK FUCK YOU.
19:02:05 <elliott> My motivation for this seems to be proving Gregor how WRONG he is for DISMISSING HASKELL AS BEING NOT THE BEST LANGUAGE EVER.
19:02:06 <CakeProphet> well "nothing like" is a untrue.
19:02:10 <elliott> (lol @lang is so much better)
19:02:14 <olsner> perl is like sed with added useless features
19:02:19 <Gregor> elliott: I'm extremely glad to see that motivation :P
19:02:22 <elliott> CakeProphet: Perl is literally extended awk with some features from sed
19:02:25 <Gregor> Or any other motivation.
19:02:30 <CakeProphet> elliott: nope.
19:02:31 <elliott> There's no argument, that's literally what Wall did :P
19:02:32 <elliott> Yes.
19:02:35 <elliott> Perl is an awk derivative.
19:02:40 <CakeProphet> true.
19:02:40 <elliott> If you disagree, you are wrong.
19:02:49 <elliott> It also borrows several constructs from sed.
19:02:54 <elliott> It has influence from C, but that comes via awk.
19:03:01 <elliott> It has a few pieces of sh because Wall has terrible taste.
19:03:04 <elliott> But really it's awk++ + sed.
19:03:08 <elliott> Which ends up being worse than awk, mind you :P
19:03:28 <CakeProphet> but it is not awk. it is a wholly separate thing at this point.
19:03:29 <pikhq_> It's awksedsh.
19:03:45 <olsner> awkshed
19:03:56 <Gregor> How awkward.
19:04:16 <olsner> perl - like awk but further awkward
19:04:17 <pikhq_> CakeProphet: It's an awk derivative. Even if it is not literally a POSIX awk.
19:04:21 <elliott> Gregor: So should I just move the warriors repo somewhere myself since I'm the only one who uses it :P
19:04:39 <pikhq_> Just like D is a C derivative even if it is not literally an ISO C99 implementation.
19:04:41 <olsner> or farther awkward
19:04:44 <Gregor> elliott: Maybe *shrugs*
19:04:46 <elliott> C is a D derivative, yo
19:04:49 <elliott> pikhq_: More like a C++ derivative
19:04:57 <elliott> Gregor: It will end up in either darcs or git if you tell me to do that :P
19:05:00 <CakeProphet> pikhq_: right. same could be said about C -> C++
19:05:00 <Gregor> elliott: Idonno, I think it'd be nice to have a central repo for those who like Sharing.
19:05:07 <pikhq_> CakeProphet: Quite.
19:05:15 <elliott> I agree, but it'd also be nice to have it in something that isn't hg :)
19:05:35 <Gregor> elliott: It'd be nice to have it somewhere where people can actually register accounts :P
19:05:51 <elliott> Gregor: I really don't think Rezzo will ever be so popular as to make the workload on you unreasonable.
19:05:58 <elliott> Gregor: I'd probably just move it to GitHub though :P
19:06:01 <elliott> Because all the darcs hosts suck.
19:06:07 <CakeProphet> but yeah point is I'm going to mutate your pretty Haskell code.
19:06:13 <CakeProphet> with mutations.
19:06:15 <CakeProphet> lots of them.
19:06:16 <elliott> I guess darcsden may be tolerable nowadays, but meh
19:06:26 <elliott> Gregor: You'll move everything to sgpen when it exists, right?
19:06:36 <elliott> The ONLY distributed, open-source Scapegoat host.
19:06:42 <Gregor> elliott: Maybe not "everything", I've got a bunch of stupid projects I haven't updated in years :P
19:07:18 <elliott> I really really like how sg's model basically supports copy-on-write forks out of the box :P
19:07:25 <elliott> You just need a separate branch-information cache for each repository.
19:07:29 <elliott> Which is tiny.
19:07:50 <Gregor> Anyway, I'm not enormously picky, since indeed you are the only one using it.
19:08:20 <elliott> I think I'll convert the build system for the Haskell stuff to cabal, since the "remake the library every time to avoid file clutter" solution sucks.
19:08:41 <elliott> real URL is https://bitbucket.org/GregorR/rezzo/
19:08:41 <elliott> abort: 'https://codu.org/projects/rezzo/hg/' does not appear to be an hg repository!
19:08:44 <elliott> Pro.
19:08:45 -!- calamari has left ("Leaving").
19:08:54 <elliott> How do I tell hg the repo's moved :P
19:09:56 <Deewiant> You can always edit .hg/hgrc
19:10:43 <elliott> Thanks
19:10:50 <Gregor> elliott: Idonno why, but that changeover seems to work on some hgs but not others >_>
19:10:53 <elliott> Why do people think hg's UI is intuitive :-P
19:11:00 <elliott> git has confused me a lot less, despite all its warts
19:11:07 <Gregor> elliott: That is, just having it be an http redirect.
19:11:10 <elliott> (But really literally every VCS' interface should be exactly darcs.)
19:11:12 <CakeProphet> elliott: because that's how intuition works.
19:11:17 <elliott> Gregor: Mercurial Distributed SCM (version 1.6.3)
19:11:20 <CakeProphet> not very coherently.
19:11:25 <Deewiant> elliott: Mercurial Distributed SCM (version 1.9.1)
19:11:31 <Gregor> Yeah, I'm on 1.9.1
19:11:37 <elliott> w/e :P
19:11:41 <elliott> Gregor: This substrate looks different
19:11:48 <Gregor> elliott: Damn rite :P
19:11:52 <elliott> Are wires still walls?
19:11:54 <Gregor> elliott: Yes.
19:11:57 <elliott> Good.
19:12:03 <elliott> How has the protocol changed?
19:12:10 <Gregor> elliott: Only the new states.
19:12:19 <elliott> Got a list? :P
19:12:23 <Gregor> elliott: README
19:12:38 <elliott> Is README.agents up to date?
19:12:44 <elliott> s/to date/to date/
19:12:46 <CakeProphet> Gregor: was that also in caps because you were screaming it?
19:12:53 <CakeProphet> or merely because that is the file name.
19:13:09 <Gregor> elliott: It will be as soon as I push.
19:13:17 <elliott> Gregor: Nice :P
19:13:21 <Gregor> CakeProphet: BECAUSE IT'S THE FUCKING FILE NAME NOW I'M SCREAMING
19:13:23 <Gregor> :P
19:14:27 <Gregor> elliott: It's pushed.
19:14:54 <elliott> An introduction for those new to cellular automata: https://bitbucket.org/GregorR/rezzo/raw/tip/README.simple
19:14:56 <elliott> Such a marketer
19:15:03 <elliott> Marketeer? Meerkat.
19:15:20 <CakeProphet> except that the whole damange thing isn't part of a CA, bawwwww
19:15:23 <elliott> Gregor: I thought there were positrons?
19:15:27 <elliott> CakeProphet: Literally stop talking.
19:16:03 <Gregor> elliott: No, I changed them to photons ... and told you that ...
19:16:06 <elliott> Gregor: README.agent is so not up to date.
19:16:08 <elliott> You are liar.
19:16:17 <elliott> Gregor: And also, _ is a terrible tail, I like the old , more :P
19:16:19 <Gregor> elliott: It is, for some reason bitbucket isn't showing it in /raw/tip/ though >_>
19:16:31 <Gregor> elliott: Do you? I couldn't decided if I liked ,
19:16:41 <elliott> Weelll
19:16:44 <Gregor> elliott: From a visual-distinctiveness perspective, it lacks ... visual distinctiveness.
19:16:47 <elliott> ,* looks kind of cute.
19:16:57 <elliott> _* looks ugly and also the tail is not really attached.
19:17:06 <elliott> Gregor: Well, I don't much like . for wires :P
19:17:13 <Gregor> >_>
19:17:27 <elliott> Gregor: I like how you changed wander.c to not be wander any more.
19:17:41 <Gregor> elliott: It was an accidental commit, which I am too lazy to fix :P
19:17:56 <Gregor> It's just a super-basic "here's how to do shit" client anyway *shrugs*
19:18:11 <Gregor> elliott: Besides, it still wanders, it's just incontinent.
19:18:20 <elliott> X-D
19:18:28 <elliott> I'm more annoyed because my wander.hs is not longer wander :P
19:18:41 <elliott> Gregor: BTW, would you hate me if I said I thought flags and flag geysers should swap, like they originally were? >_>
19:18:53 <CakeProphet> elliott: also, sorry I forgot you're the only one that is allowed to complain about the correctness of the CA.
19:18:54 <elliott> (At the time, I didn't really understand that you could expect more than one flag around, and the flag geyser is a more permanent thing.)
19:19:01 <elliott> CakeProphet: Seriously, this is inane and idiotic.
19:19:05 <Gregor> elliott: As in, their state characters should swap?
19:19:19 <Gregor> CakeProphet: The damage is actually not part of the CA in any way. It has no affect on the state transitions.
19:19:25 <elliott> Gregor: Yeah :P I'm not sure about that though. It's totally irrelevant anyway >_>
19:19:25 <Gregor> *no effect >_>
19:19:51 <elliott> By CakeProphet's logic, agents shouldn't be able to do anything because that breaks the CA.
19:20:06 <elliott> Of course he's trying to reductio ad absurdum any argument involving "that makes it not a CA" but he's really bad at it.
19:20:17 <Gregor> OK children, let's not squabble :P
19:20:21 <elliott> ;D
19:20:39 <CakeProphet> oh weird so when the electron becomes a photon it reverses direction.
19:20:55 <Gregor> CakeProphet: ... no? Photons don't have directions.
19:21:13 <Gregor> (Neither do electrons, except implicitly by their tails, but photons don't propagate)
19:21:22 <Gregor> elliott: Yeah, I might be convinced to change _ to , since _ is really ugly X-D
19:21:25 <elliott> Gregor: Suggest to me a really simple agent that wants a queue (rather than deciding each turn immediately) and processes the world state somehow :P :P
19:21:28 <elliott> s/:P :P/:P/
19:21:31 <CakeProphet> Gregor: uh, yeah you know what I mean. right?
19:21:43 <Gregor> CakeProphet: No, I actually don't.
19:22:14 <CakeProphet> on your diagram of the electron colliding with the flag, it starts moving in the opposite direction once that happens.
19:22:25 <CakeProphet> pulling.
19:22:27 <Gregor> elliott: Idonno :P
19:22:40 <Gregor> CakeProphet: Yeah, the /flag/ does. Flags have always moved towards electron sources.
19:22:53 <Gregor> CakeProphet: Photons just mediate that action, they don't move themselves.
19:23:00 <CakeProphet> ....right.
19:23:25 <Gregor> elliott, CakeProphet: Yeah, I'mma change tails to ,
19:23:45 <CakeProphet> ah I see this is a new electron that is approaching not the old one going backwards.
19:23:51 <CakeProphet> the old one became the photon.
19:24:00 <elliott> Gregor: OK
19:24:13 <Gregor> CakeProphet: Yeah
19:24:53 <elliott> Gregor: I still can't get over how efficient my map storage is 8D
19:25:09 <CakeProphet> "everything they own will disappear" means -> space right?
19:25:46 <Gregor> CakeProphet: Flags turn to conductors. Everything else turns to blank. I could make that clear I guess :P
19:26:58 <elliott> I sure hope Gregor doesn't mind things under the WTFPL being committed to his repository
19:27:13 <Gregor> elliott: warriorhg is nobody's repo :P
19:27:16 -!- nooga has joined.
19:27:26 <elliott> Oh, I'll upload all my illegal material then
19:27:53 <CakeProphet> also victory = state transitions that do not operate under the rules of a CA, but I suppose that's a moot point by now since that seems to be acceptable now.
19:28:17 <Gregor> CakeProphet: Victory isn't actually a state transition, I just presented it that way in README.simple to not overcomplicate.
19:28:28 <CakeProphet> o_o wat? okay.
19:28:51 <CakeProphet> well, not victory so much as defeat. victory obviously would end the game.
19:29:03 <Gregor> CakeProphet: The global cycle goes like this: Update cellular automaton, calculate/update defeat, await agent instructions.
19:29:20 <nooga> what
19:29:29 <Gregor> nooga: I SAID AWAIT AGENT INSTRUCTIONS
19:29:47 <CakeProphet> so as long as other-things-that-change-the-CA-without-using-state-transition-rules are classified as not being transition rules, then it's okay? or something?
19:30:22 <Gregor> CakeProphet: Agent actions have always been outside the CA proper. If they weren't, the whole game wouldn't make sense. Eliminating an agent /is/ an agent action.
19:31:35 <CakeProphet> that seems like a completely arbitrary distinction to me but okay. I understand that the game would make no sense as a pure CA.
19:33:44 <elliott> OK, cabal makes this needlessly painful :P
19:34:45 <Gregor> *GASP*
19:34:52 <Gregor> Did you just say something NEGATIVE about the Haskell userland?
19:35:22 <olsner> it ends with a ":P" though, could be sarcasm
19:35:35 <Gregor> True
19:35:50 <Gregor> "Haha did I say painful I meant DELICIOUS"
19:36:19 <olsner> I actually read it as "painless" first but had to read it over
19:37:33 <CakeProphet> inlined constants in Perl are zero-argument subroutines containing code that can be sanely inlined.
19:37:56 <elliott> Gregor: There are plenty of things wrong with the Haskell toolchain :P
19:38:06 <CakeProphet> code that doesn't use any kind of scope I think
19:38:06 <olsner> many languages have the property that constants can be inlined
19:38:33 <CakeProphet> olsner: that is a true statement.
19:38:35 <CakeProphet> >_>
19:39:43 <CakeProphet> I was talking it being a zero-argument subroutine that was unusual. But I guess it's not unusual for compiled languages
19:41:41 <CakeProphet> sub geyser($) {my$_=shift;tr/0-9/a-j/;$_} # Gregor
19:41:41 -!- zzo38 has joined.
19:42:06 <Gregor> Why am I a comment :P
19:42:07 <elliott> That makes no sense.
19:42:14 <CakeProphet> Gregor: is this correct? in other words, do the agent ids correspond to a-j in order so that 0 -> a, 1 -> b, ...
19:42:26 <Gregor> CakeProphet: Yes ... but agents don't correspond to geysers :P
19:42:44 <Gregor> Err, rather, an agent on the map is not a geyser ... it is an agent :P
19:42:51 <CakeProphet> ......right.
19:42:55 <CakeProphet> but they own a geyser right?
19:42:58 <Gregor> :P :P LOL I OVERUSE THIS SMILEY :P :P
19:43:00 <Gregor> Yes
19:43:02 <Gregor> And 0 owns a, yes
19:43:07 <CakeProphet> and if I wanted to determine the geyser for an agent this function is useful for that right?
19:43:13 <CakeProphet> okay.
19:43:14 <Gregor> Sure
19:43:17 <olsner> Gregor: :P
19:43:21 <elliott> Not really?
19:43:27 <elliott> You would want to determine WHERE the geyser is.
19:43:35 <CakeProphet> that's not what this function is for.
19:43:47 <fizzie> "More like GAYSER lol."
19:44:00 <Gregor> fizzie: OMG PWNT
19:44:11 <olsner> fizzie said gay lol
19:44:20 <elliott> fizzie: Lol. (No Homo)
19:45:26 <Gregor> elliott: I'm thinking of writing an interactive client.
19:45:43 <CakeProphet> that sounds like cheating to me.
19:45:46 <elliott> Gregor: So that you can be totally decimated by any bot that tries to do anything?
19:45:53 <Gregor> elliott: Yup :P
19:45:56 <Gregor> CakeProphet: Except that you can't think at 15FPS
19:46:03 <CakeProphet> o rite.
19:46:09 <elliott> Maybe you can't.
19:46:12 <Gregor> X-D
19:46:30 <Gregor> Hmm ... maybe there should be a way to /explicitly/ nop.
19:46:31 <elliott> Gregor: Personally, I would like strong sandboxing for both repeatability and cheating prevention.
19:46:39 <elliott> I think some kind of automated tournament thing would be great.
19:46:46 <Gregor> elliott: Repeatability is ... tricky.
19:46:46 <elliott> Honour system sucks.
19:46:48 <CakeProphet> sub geyser($) {my$_=shift;/\d/?tr/0-9/a-j/:tr/a-j/0-9/;$_}
19:46:52 <CakeProphet> hey look gaiz I made it invertible
19:46:54 <elliott> Gregor: Well, it is basically Secret Project.
19:46:56 <CakeProphet> the inverted case is probably more useful.
19:47:06 <elliott> Gregor: ais is getting hard repeatability on even threaded code :P
19:47:12 <Gregor> elliott: Yeah, I'm not doin' my own ais523 Sekirt Sauce Projekk
19:47:18 <elliott> Gregor: I'm saying you could use his once it's not secret...
19:47:21 <Gregor> Ah
19:47:36 <ais523> elliott: I'm trying, it's easier said than done
19:47:38 <elliott> Gregor: It slows down code that does a lot of syscalls quite a bit, but a bot is really just a thin IO layer and a bunch of CPU computation in at most, what, three threads?
19:47:42 <elliott> ais523: Well, it's your goal :P
19:49:19 <Deewiant> In git, is there a simple way of finding out how far up a parent commit is? I.e. given the hash, tell me what the N in HEAD~N should be for it to refer to the same commit
19:49:48 <elliott> Deewiant: git log --format= ... | grep ... | awk :P
19:49:57 <Deewiant> Yeah that's not 'simple'
19:50:13 <olsner> git log --oneline hash.. | wc -l
19:50:19 <Deewiant> Meh, whatever
19:50:20 <elliott> olsner: Cute
19:50:26 <elliott> Deewiant: Hey, olsner's is good
19:50:27 <olsner> plus/minus one commit, I think
19:51:10 <Deewiant> Yeah that's accurate, a bit better than my log --oneline | takeuntil hash | wc -l I suppose
19:51:13 -!- azaq23 has joined.
19:51:37 <olsner> hmm, I think you might need to add --first-parent if you have merges
19:52:03 <elliott> Deewiant: You have a takeuntil command? :P
19:52:45 <olsner> unsure what HEAD~N does with merges, but it'll probably just walk up the first parent
19:53:07 <Deewiant> elliott: {take,drop}{until,while}{1,}
19:53:26 <elliott> Deewiant: Wherefrom, or did you non-autovivify them
19:53:27 <elliott> Words
19:53:31 <Deewiant> elliott: {take,drop}{until{1,},while}*
19:53:34 <CakeProphet> ...lol
19:53:43 <Deewiant> elliott: Perl one-liners I wrote myself
19:54:00 <Deewiant> Very useful, I find :-P
19:54:02 <elliott> Deewiant: Perl one-liners named after Haskell functions. I'm disgusted
19:54:11 * elliott kills you a bit.
19:54:14 <Deewiant> Yeah I'm a bad person etc
19:54:30 <Deewiant> If you want me to rename them feel free to improve upon the names
19:55:19 <CakeProphet> so I decided to write all of my functions in the worst style possible.
19:55:32 <elliott> Deewiant: No, I want you to rewrite them :)
19:55:32 <CakeProphet> For example: sub base($) {my$_=shift;/^\d$/?tr/0-9/n-u/:(/^$rbase$/?tr/n-u/0-9/:($_=undef));$_}
19:55:41 <Deewiant> elliott: In Haskell?
19:55:46 <Deewiant> elliott: I like my perl regexps
19:55:48 <elliott> Deewiant: Or anything that isn't Perl, really
19:55:55 <Deewiant> Perl regexps
19:55:55 <elliott> Deewiant: http://hackage.haskell.org/package/pcre-light
19:56:00 <elliott> Deewiant: http://hackage.haskell.org/package/pcre-light
19:56:01 <Deewiant> Dude
19:56:05 <Deewiant> Perl is MEANT for this kind of stuff
19:56:08 <CakeProphet> this is two-pronged approach in which I humiliate elliott by defeating his player with incredibly ugly code
19:56:18 <CakeProphet> it is also a means of obfuscation to conceal my ingenius tactics.
19:56:25 <elliott> Deewiant: You can't use Perl regexps as an excuse when I point you to (almost-identical-to) Perl regexps for the ideal language :-P
19:56:56 <Deewiant> elliott: Write this in another language so that it is shorter and runs faster:
19:56:57 <Deewiant> #!/usr/bin/perl
19:56:57 <Deewiant> my $re = shift; while (<>) { print; last if /$re/ }
19:56:59 <Sgeo> elliott, you implemented regexes in @ already?
19:57:10 <elliott> Sgeo: No, @ disowns text.
19:57:15 <elliott> DISOWNS IT
19:57:27 <CakeProphet> while(<>) {print; last if /shift/e}
19:57:27 <elliott> Deewiant: What if it's slightly longer but runs much faster
19:57:37 <Deewiant> I can live with that
19:57:56 <Sgeo> Oh, does e evaluate whatever's in //?
19:58:13 <zzo38> AWK is also designed for text processing with regular expressions and so on, although there are some things that could be useful that are missing.
19:58:37 <elliott> Deewiant: Meh, I'd need iteratees to improve a lot on the speed and I cba
19:58:39 <CakeProphet> I wonder if last works in a map.
19:59:05 <Deewiant> elliott: Right :-P
19:59:09 <Deewiant> elliott: Hence, Perl oneliners
19:59:11 <olsner> not sure what that perl code does, but I think you could do something like sed -e "/$re/ {p;Q}"
19:59:19 <elliott> Deewiant: Well, it's your job :P
19:59:22 <Deewiant> sed doesn't have Perl regexps
19:59:53 <Deewiant> elliott: What's with the Perl hate :-P
20:00:17 <CakeProphet> actually using for instead of while would also remove 2 bytes.
20:00:33 <CakeProphet> print;last if/shift/e for<>
20:00:38 <CakeProphet> probably the shortest way to do that.
20:00:53 <elliott> Deewiant: Note how Perl is the worst language possible
20:00:53 <CakeProphet> er...no
20:00:54 <Deewiant> I wasn't golfing when I wrote it
20:00:57 <CakeProphet> you need to save the shift my bad.
20:01:01 <Deewiant> elliott: No, it really isn't
20:01:13 <elliott> Deewiant: It's the worst in its own special little corner
20:01:15 <Deewiant> elliott: It's good for this kind of oneliner if nothing else
20:01:18 <CakeProphet> print;last if/$_[0]/ for<>
20:01:18 <CakeProphet> there
20:01:32 <elliott> Deewiant: Write a Haskell DSL for that kind of one-liner
20:01:58 <Deewiant> There's already a DSL, it's called Perl, why reinvent it
20:01:59 <cheater> hi does anyone here know how to remap ctrl-key sequences such as ^I ^H etc in xkb when creating a new layout that is not qwerty derived?
20:02:24 <Deewiant> cheater: If you find out, let me know
20:02:25 <elliott> main = getRegexp >>= \re -> takeLinesWhile (`matches` re)
20:02:35 <zzo38> If you have a file with > at the beginning of some lines, you want to remove the > at the start of those lines and delete all other lines, there is the AWK program to do so: sub(/^>/,"")
20:02:39 <elliott> Deewiant: Because it would be not Perl and therefore not terrible
20:02:47 <Deewiant> elliott: Seriously, Perl is fine :-P
20:02:57 <cheater> Deewiant, have you made any layouts?
20:03:12 <Deewiant> I've modified one
20:03:24 <CakeProphet> !perl print last
20:03:25 <EgoBot> Can't "last" outside a loop block at /tmp/input.10032 line 1.
20:03:26 <Deewiant> cheater: Maybe stty is the way to go
20:03:32 <zzo38> elliott: Is there any Template Haskell stuff to compile any constant regular expression at compile-time into the program?
20:03:40 <Deewiant> And then per-program modification for non-TTYs :-P
20:03:45 <CakeProphet> !perl for(1..20) {print last}
20:04:19 <olsner> what does 'last' do in perl?
20:04:24 <cheater> deewiant: my problem is that my layout has e.g. h where qwerty has k, but when i press ctrl and that key then it is recorded as ^K
20:04:26 <Deewiant> olsner: Same as 'break' in C
20:04:30 <cheater> which is wrong of couse
20:04:45 <Deewiant> Oh, hmm
20:04:54 <CakeProphet> I was trying to shorten my code but last isn't an expression so I can't use ,
20:05:09 <CakeProphet> so you have to use for(<>){} I think
20:05:13 <elliott> zzo38: I think so
20:05:30 <CakeProphet> for
20:05:33 <CakeProphet> ...lolenter
20:05:34 <zzo38> compileRegEx :: Name -> String -> Q [Dec]; -- is one possible idea, but maybe there are other done differently
20:05:35 <Deewiant> cheater: That seems weird :-P
20:05:45 -!- ais523 has quit (Remote host closed the connection).
20:06:21 <cheater> yes very much so
20:06:33 <Deewiant> cheater: The layouts in /usr/share/X11/xkb/symbols/ all presumably work, so if you're doing things the same way I imagine yours should work too...
20:06:48 <cheater> i am
20:06:52 <CakeProphet> zzo38: you'd probably want to implement capturing somewhere.
20:07:05 <CakeProphet> indexed and named.
20:07:33 <cheater> let me try dvorak see what that does
20:08:36 <zzo38> CakeProphet: The type I have given could probably do that; because if the regular expression has captured parts then the function declaration it creates can have output type that lists the captured parts as well. But maybe it is not best way possibly
20:09:10 <CakeProphet> yeah I figured the type was fine.
20:09:13 <CakeProphet> also: http://pastebin.com/LpAdrB84
20:09:17 <CakeProphet> most beautiful I've ever written.
20:09:18 <CakeProphet> +code
20:09:27 <CakeProphet> right now it's probably a runtime error though.
20:09:37 <CakeProphet> NEED TO FINISH WORK AAAAUGH
20:11:22 <zzo38> How I learned about mahjong? From a book in the library. I had previously read different books about rules of mahjong in the library, but one day I found one describing the Japanese rules and I happened to like that one best
20:13:42 <CakeProphet> the idea is to take a list of regex and transform it into a kind of "grid" regex that matches across a 2-d rectangular area.
20:14:50 <CakeProphet> where each regex starts at the same x, with y being y+i where y is the first line's y coordinate
20:17:00 <elliott> Gregor: I'm unsure how to structure a generic queue solution >_>
20:17:14 <CakeProphet> probably by using the structure of a generic queue. :3
20:17:27 <elliott> Gregor: I mean, there's obviously the trivial solution where you just push and can't do anything else, but a lot of the time if something "urgent" comes up you might want to temporarily switch the queue to a new one and react to the emergency...
20:17:42 <CakeProphet> actually :> may be a more appropriate emoticon.
20:18:04 -!- copumpkin has quit (Ping timeout: 260 seconds).
20:18:13 <CakeProphet> elliott: probably means you want some kind of state.
20:18:31 <elliott> CakeProphet: Have you said a useful thing in the past like ten days wrt rezzo
20:18:35 <elliott> fsvo ten
20:18:48 <CakeProphet> state + flags?
20:18:50 <CakeProphet> is that more useful?
20:21:07 <CakeProphet> priority queue would be good.
20:21:29 <CakeProphet> then you can be like "oh shit this is important do this first."
20:23:01 <CakeProphet> which is essentially what you just said...
20:23:15 <elliott> A priority queue could work...
20:23:19 <elliott> Gregor: Would a priority queue be good? :P
20:24:24 <Gregor> Interactive client: Almost TOO useful!
20:25:10 <CakeProphet> elliott: what do you currently use as the queue elements?
20:25:47 <elliott> CakeProphet: Actions.
20:25:49 <CakeProphet> I was thinking maybe a priority queue of functions would be good, as then you can push entire atomic actions.
20:25:50 <elliott> Gregor: X-D
20:25:52 <CakeProphet> ah okay.
20:27:02 -!- monqy has joined.
20:28:26 <CakeProphet> however if you set urgent actions that are the result of trivial opponent actions
20:28:41 <CakeProphet> then your opponent could potentially bait you along with a string of pointless high priority things.
20:29:05 <Gregor> There's risks in any strategy *shrugs*
20:29:40 <elliott> Gregor: This isn't meant to be strategy though, this is meant to be something literally every bot can use and adapt to its wishes...
20:29:51 <Gregor> Fair 'nuff
20:29:56 <CakeProphet> yeah I'm just saying be careful with priorities and actions that consume a lot of turns.
20:30:03 <elliott> CakeProphet: Actions consume exactly one turn.
20:30:08 <CakeProphet> oh, okay.
20:30:08 <elliott> data Action
20:30:08 <elliott> = Advance
20:30:08 <elliott> | Turn LR
20:30:08 <elliott> | Build
20:30:09 <elliott> | Hit
20:30:10 <elliott> deriving (Show, Eq)
20:30:19 <elliott> If you want to schedule something compositely, you have to code that up yourself.
20:30:22 <elliott> I'm not writing an entire AI framework :P
20:30:33 <coppro> now I want a programming language based on roborally
20:30:42 <CakeProphet> why not use a State monad or something similar? then you could queue larger actions as a single unit.
20:30:48 <coppro> *wobowawwy
20:31:19 <elliott> CakeProphet: X_X
20:31:23 <elliott> CakeProphet: You are spouting technobabble.
20:31:41 <CakeProphet> >_>
20:31:50 <Gregor> elliott: I added an explicit NOP btw, which you will totally want to use always
20:32:00 <CakeProphet> queue functions that return sequences of actions instead of one action?
20:32:08 <elliott> Gregor: That sounds completely and utterly pointless.
20:32:12 <elliott> Gregor: What is the advantage?
20:32:22 <elliott> I guess it could be useful inside the queue, but that's an internal thing.
20:32:23 <Gregor> elliott: You get ACK_OK instead of ACK_NO_MESSAGE :P
20:32:25 <CakeProphet> :t getState
20:32:26 <lambdabot> Not in scope: `getState'
20:32:32 <CakeProphet> :t runState
20:32:33 <lambdabot> forall s a. State s a -> s -> (a, s)
20:32:35 <elliott> Gregor: So it decreases the amount of information you get and makes you do more IO?
20:32:37 <elliott> Gregor: a w e s o m e
20:32:45 <Gregor> elliott: Ayup.
20:33:00 <Gregor> elliott: I just didn't like the fact that "do nothing" was always an error *shrugs*
20:33:03 <CakeProphet> aka use State GenericStateStructure [Action]
20:33:05 <elliott> Gregor: It's not an error...
20:33:20 <elliott> Gregor: Just like InvalidAction isn't (It should be called NothingHappened or something)
20:33:41 <monqy> CakeProphet: I don't know what you're talking about but you're probably wrong
20:34:07 <Gregor> elliott: If you don't want it, don't use it *shrugs*
20:34:13 -!- boily has quit (Ping timeout: 260 seconds).
20:34:31 <elliott> Gregor: I have to add it to my library, which I am unhappy about :P
20:34:40 <Gregor> elliott: *sobblecopter*
20:34:42 <elliott> ENTERPRISE CUSTOMERS
20:34:45 <CakeProphet> monqy: sounds like you have a lot of vantage point of knowledge to support that assertion.
20:34:54 <CakeProphet> -lot of
20:35:05 <elliott> CakeProphet: Are you trying to be constantly insufferable about Rezzo?
20:35:10 <CakeProphet> no.
20:35:37 <Gregor> I ♥ #esoteric SO HARD
20:35:48 <CakeProphet> so State UsefulInformation [Action] as the queue elements makes absolutely no sense to you at all?
20:36:47 <monqy> I don't know what the queue elements are, but you spouted too much technobabble, as elliott noted, for me to take you seriously
20:37:04 <Gregor> Also, after poking around with the interactive client a bit, I'm coming around on the wires-are-walls issue >_>
20:37:16 <Gregor> (Back to "yae" that is)
20:38:25 <CakeProphet> technobabble = not incredibly specific
20:38:27 <CakeProphet> I guess.
20:39:55 <monqy> technobabble = you sound like you don't know what you're talking about
20:40:46 <elliott> Gregor: Wires are walls is the best.
20:40:53 <elliott> And anyone who thinks it isn't the best is the worst.
20:42:18 <elliott> Priority queues preserve insertion order for elements of the same priority, right?
20:42:35 <olsner> pretty sure they don't have to
20:43:20 <elliott> That sucks... like, majorly.
20:43:27 <elliott> In that it completely breaks my use-case :P
20:43:34 <olsner> well, just ... pick a priority queue that has that property
20:43:53 <olsner> or include insertion order in the priority somehow
20:44:31 <elliott> That's gross :P
20:44:34 <olsner> indeed
20:46:34 <CakeProphet> maybe an array of queues where the index is the priority? when you pull an element you pull from the highest priority non-empty queue?
20:47:13 -!- elliott has quit (Read error: Connection reset by peer).
20:47:19 <monqy> you killed him
20:47:22 -!- elliott has joined.
20:47:24 <monqy> hi
20:47:34 <olsner> there are like a hundred zillion ways to make a priority queue
20:47:40 <olsner> like approximately
20:50:42 <CakeProphet> though if you did use a queue of action-lists then a good rule of thumb would be that smaller list == higher priority
20:52:16 <fizzie> POSIX message queues are priority queues where within a single priority it works FIFO; but indeed I doubt that's a property inherent to the concept of a priority queue. (Compare stable and unstable sorts.)
20:54:42 <fizzie> C++ std::priority_queue doesn't guarantee that. :p
20:56:35 <elliott> I think heaps guarantees it.
20:57:12 <CakeProphet> I don't see how...
20:57:22 <olsner> also, which kind of heap?
20:57:26 <CakeProphet> heaps just guarantee that the root is the highest priority element.
20:57:56 <CakeProphet> if it's a max-heap that is.
20:59:11 <CakeProphet> maybe you want a HEAP OF QUEUES.
20:59:42 <CakeProphet> or rather a HEAP OF (PRIORITY, QUEUE)
21:00:12 <elliott> the heaps package.
21:00:14 <elliott> http://hackage.haskell.org/package/heaps
21:00:20 <olsner> CakeProphet: I think you'd rather need a map priority -> queue for that to work
21:01:20 <CakeProphet> well the heap would make inserts annoying, but pulls easy.
21:01:34 <CakeProphet> with map I think it would be the other way around?
21:01:59 <olsner> a heap normally doesn't do lookup, but you have to find the right queue for your priority
21:02:55 <Sgeo> !!!
21:03:07 <Sgeo> Just looked at the Wikipedia page for colorblindness
21:03:44 * Phantom_Hoover → sleep
21:03:47 <CakeProphet> I realized I was blind when I read about it on Wikipedia.
21:03:51 <olsner> Sgeo: congratulations on finding wikipedia, it's a good resource
21:03:53 <Phantom_Hoover> Sgeo, oh god are you colour blind.
21:04:06 * CakeProphet is colour blind but not color blind.
21:04:12 <Sgeo> According to "Test for tritanopia", normal visioned people should see the 56. I wonder if my monitor's at the wrong angle or something, or if..
21:04:17 -!- Phantom_Hoover has quit (Quit: Leaving).
21:04:49 <Sgeo> "Image may not be visible on LCD or with excessive screen glare."
21:06:49 <monqy> so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :(
21:07:02 <coppro> I see 37, nothing, 56
21:08:45 <Sgeo> (barely) 37, 49, nothing
21:09:18 <coppro> the 37 looks a bit like a 57 though
21:09:26 <coppro> the 56 is really obvius
21:09:28 <coppro> *obvious
21:09:42 <cheater> i see all possible numbers at the same time.
21:10:02 <coppro> cheater: cheater
21:10:13 <Sgeo> It's invisible to me
21:10:16 -!- Patashu has joined.
21:10:16 <itidus20> i think the question is whether you can see colored outlines which are supposed to be numbers.. its not about whether those lines form obvious numbers
21:10:21 <Sgeo> Unless I tilt the screen
21:10:34 <itidus20> it could be a screen thing
21:10:57 <Sgeo> Yeah
21:10:59 <monqy> I have my screen colours set kind of weirdly
21:11:05 <monqy> I think I made it bluer than it should be
21:11:11 <monqy> (because I like it that way)
21:11:20 <coppro> my blue is a little washed-out
21:12:42 <itidus20> it says down the bottom "^ a b c d Because of variations in computer displays, these illustrations may not be accurately rendered."
21:14:05 <elliott> <monqy> so I have to do some parsing so I thought I'd try trifecta but it can't find `Control.Monad.Trans.Codensity and I don't know what to do :(
21:14:09 <elliott> you are using cabal-install right
21:14:18 <elliott> that package is in the adjunctions package
21:14:21 <elliott> maybe you need to cabal update?
21:14:38 <monqy> yeah I tried getting adjunctions but it didn't work
21:14:41 <monqy> I'll try cabal-updating
21:15:06 <monqy> http://hackage.haskell.org/package/trifecta doesn't list adjunctions in the dependencies which is a bit bizarre??
21:16:01 <monqy> oh no dependency hell
21:16:13 <elliott> it might be a dependency of a dependency
21:16:19 <elliott> but ask edwardk on hash-haskell
21:16:25 <elliott> monqy: its not dependency hell because most of those packages are his :)
21:16:57 <monqy> it can't get semigroups because (other packages here) depend on old semigroups or something
21:17:03 <elliott> bifunctors, comonad, kan-extensions, keys, profunctors, reducers, semigroupoids, semigroups are all his
21:17:18 <monqy> hm
21:17:26 <elliott> monqy: scrap ~/.ghc, try again :P
21:17:32 <monqy> yeah I'll do that
21:17:59 <elliott> "(Of course, it's impossible to prove that it really came "from" Anonymous, and many Twitter accounts from members denied the idea: "1. Not discussed in IRC [Internet Relay Chat, the favoured gathering place for Anonymous members]. 2. Email & threats of violence not Anon's MO [modus operandi]. 3. @louisemensch is not important enough," tweeted one such, JohnDoeKM.)"
21:18:02 <elliott> "But the group is looking less like a force and more like an incoherent rabble as a result of the past two months"
21:18:07 <elliott> oh my god Guardian stop being terrible
21:18:49 <monqy> wow what
21:19:54 <cheater> elliott is turning this channel into The Sun
21:20:35 <monqy> what does that mean
21:20:35 <cheater> well done taking the conversation down at least 200000 notches
21:20:36 <monqy> help
21:20:47 <elliott> fuck of
21:20:47 <elliott> f
21:20:48 <cheater> the sun is a tabloid of the worst kind
21:20:50 <elliott> im good at type
21:21:09 <elliott> quoting the guardian makes you the sun, guardian nominated as most sun-like newspaper in england
21:21:57 <cheater> you have a penchant for picking out the turd raisins from the drain i guess
21:22:39 <cheater> consider starting a softporn blog
21:22:46 <monqy> ew why would he do that
21:22:59 <cheater> because that is what tabloids do
21:23:10 <cheater> metro is an even better example
21:23:21 <Deewiant> Woot, another change committed: http://i.imgur.com/pr6kU.png
21:23:22 <monqy> elliott honourary tabloid
21:23:41 <elliott> Deewiant: It's 0 lines now?
21:23:54 <Deewiant> That's the diff to the current :-P
21:24:53 -!- Ginto8 has joined.
21:25:19 <Deewiant> Saturday's was a bit more insertiony: http://i.imgur.com/jXB9V.png
21:25:29 <elliott> What exactly is the thing being mutated
21:25:41 <Deewiant> mushspace
21:26:05 <elliott> More like LAMEspace
21:26:30 <Deewiant> So how's shiro I MEAN LAME-O doing
21:26:57 <Gregor> elliott: I assume your bot is amazing by now.
21:27:11 <elliott> Gregor: I don't even know if anything compiles right now.
21:27:15 <Gregor> It's been, like, an hour!
21:27:31 <elliott> Gregor: Gimme a simple algorithm to do :P
21:28:22 <Gregor> elliott: Follow the leader :P
21:28:32 <elliott> Gregor: Wat :P
21:28:40 <Gregor> elliott: Just find another agent, and follow it.
21:28:47 <Gregor> USEFUL I NOSE
21:28:48 -!- nooga has quit (Ping timeout: 268 seconds).
21:29:00 <elliott> Gregor: That requires finding another one
21:39:28 <elliott> Gregor: What if... rezzo ncurses API
21:39:39 <Gregor> Sounds sexy.
21:39:42 <Gregor> But ncurses sucks balls.
21:39:50 <elliott> Gregor: It could just use ANSI instead :P
21:39:59 <Gregor> True
21:40:11 <elliott> Although, the default size is a bit large for a terminal :/
21:58:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:59:38 -!- myndzi has quit (Ping timeout: 258 seconds).
22:00:16 -!- myndzi has joined.
22:02:55 -!- FireFly has quit (Quit: FireFly).
22:41:22 -!- erytssiN has quit (Ping timeout: 240 seconds).
22:42:36 -!- erytssiN has joined.
22:58:09 <CakeProphet> man programming sure is fun.
22:58:14 <CakeProphet> when did you guys first learn how to program?
22:58:25 <olsner> learn?
22:58:37 <CakeProphet> uh, yes?
22:58:44 <CakeProphet> were you just born with the ability innately or something?
22:58:55 <olsner> isn't that what usually happens?
22:58:59 <shachaf> That's how programming works.
22:58:59 <CakeProphet> no
22:59:17 * CakeProphet knew Python out of the womb
22:59:34 <elliott> I started programming at eight. Unfortunately. (It was PHP.)
22:59:41 <elliott> (PHP: Not even once.)
23:00:52 <CakeProphet> I learned Python at 15. I started learning at home but I had a lot of free time in one of my "technology" classes (we did a lot of stupid shit with Publisher)
23:01:09 <CakeProphet> so I made a lot of drawings via the turtle module.
23:01:10 <monqy> I forget when I started
23:01:35 <monqy> probably somewhere around eight, more likely earlier than later
23:01:43 <monqy> I also don't know what my first language was
23:02:01 <Sgeo> I read about programming when I was young, but never actually _did_ anything for a very long time :(
23:02:26 <CakeProphet> same actually. I got a Java book once but it was complete gibberish to me at the time.
23:02:56 <CakeProphet> Python is a good starting language though.
23:03:42 <monqy> - cake "likes perl" prophet
23:03:50 <CakeProphet> though I distinctly recall static typing being somewhat of a strange concept to me. I suppose that's just the nature of switching from your first language to other styles of programming.
23:03:53 <Sgeo> I remember oohing and ahhing over Java because "it was free"
23:04:13 <Sgeo> Oohed and ahhed over Python for the same reason, but with Python, I actually started _playing with it_
23:04:16 <Sgeo> Unlike anything prior
23:04:27 <itidus20> java was free, portable, extensive built in API
23:04:32 <monqy> I think I started with logo but I never really learned it extensively and didn't do much sophisticated with it????
23:04:32 <CakeProphet> my old roommate who just recently learned C# had to learn some Javascript, and found dynamic typing strange.
23:04:44 <monqy> then I did some stuff on my calculator in basic
23:05:02 <CakeProphet> monqy: were your parents programmers or something?
23:05:04 <monqy> nope
23:05:07 <monqy> not at all
23:05:08 <CakeProphet> I'm just wondering how people get started at such a young age.
23:05:30 <pikhq_> Not that hard, really.
23:05:41 <pikhq_> You just have to be sufficiently curious.
23:05:46 <CakeProphet> I didn't specifically mention that it would be difficult. :P
23:05:55 <CakeProphet> though it... actually would be.
23:05:59 <elliott> it isn't
23:06:02 <Ginto8> I got started with C++ at 12; I wasn't very good, but I was definitely using the language
23:06:03 -!- erytssiN has quit (Quit: Leaving).
23:06:08 <elliott> you don't give a shit about things like abstraction and "best practices" at that age
23:06:20 <elliott> you have all the time in the world, so who cares if you have to code your awesome intro animation frame by frame?
23:06:22 <CakeProphet> typically kids aren't very good at abstract reasoning.
23:06:27 <elliott> bullshit
23:06:29 -!- sllide has quit (Ping timeout: 260 seconds).
23:06:32 <monqy> when i finally started giving shits about those things i learned haskell
23:06:34 <monqy> that was a few years ago
23:06:35 <elliott> and also bullshit that simple basic is abstract
23:06:39 -!- yourstruly has joined.
23:06:40 <pikhq_> You don't have to be to actually program, anyways.
23:06:47 <monqy> i forget if it was 3 or 4 years ago I learned haskell
23:06:52 <monqy> it was one of them
23:06:56 <CakeProphet> well right.
23:07:05 <pikhq_> You just need to be able to give instructions in a lot of detail.
23:07:12 <CakeProphet> obviously it's possible and some would find it easy.
23:07:28 <pikhq_> Which isn't *hard*, it just takes determination to pick up.
23:07:39 <pikhq_> And, guess what, kids can be absurdly stubborn.
23:07:43 <CakeProphet> yes, same for me when I learned at 15.
23:08:03 <CakeProphet> took determination to hammer the concepts into my brain.
23:08:09 <CakeProphet> also #python helped a bit.
23:08:18 -!- yourstruly has changed nick to yretssin.
23:08:25 <elliott> #python is awful
23:08:27 -!- oerjan has quit (Quit: Good night).
23:08:31 <CakeProphet> elliott: yes, of course.
23:08:44 <elliott> they parrot DO IT THIS WAY IT'S PYTHONIC without thinking about your question... it's an excellent one-way ticket to ~beautiful pythonic code~ that doesn't work
23:08:47 <CakeProphet> but I was like "halp how does for loop work" and they explained pretty well.
23:08:54 <elliott> heh
23:09:01 <elliott> Don't ask how the for loop works, tell us your REAL problem
23:09:10 <CakeProphet> yeah anyone who frequents #python is going to be a fucking zealot.
23:09:10 <monqy> by the time i bothered with python i knew enough about everything in the language that i just learned the syntax by looking at some examples
23:09:27 <CakeProphet> I bet #ruby is worse though.
23:09:29 <CakeProphet> #perl is pretty bad.
23:09:46 <CakeProphet> like, people try to convince of the One True Way.... in fucking #perl
23:09:48 <monqy> perl was too much bother for me
23:09:51 <CakeProphet> does that make any sense?
23:10:09 <pikhq_> Perl *has* a One True Way?
23:10:18 <CakeProphet> I'd imagine they would shit bricks if they saw my current spartan.pm code.
23:10:27 <monqy> i have a perl book, read it when i was bored and without internet connection or anything else/better to do, forgot it all
23:10:38 <CakeProphet> it is quite a bit to learn actually.
23:10:42 -!- Vorpal has quit (Ping timeout: 245 seconds).
23:10:46 <monqy> all i rmember was it was ridiculous
23:10:46 <pikhq_> I could've sworn that you were absolutely Perly if you just bothered with "using strict;"
23:10:49 <CakeProphet> compared to, say, Python or Java.
23:10:58 <CakeProphet> a lot of idioms, corner cases, weirdness.
23:11:25 <pikhq_> I suppose next you'll be telling you ##c told you to use Boehm GC? :P
23:11:36 <elliott> oh god, ##c
23:11:40 <elliott> possibly even worse than #python
23:11:44 <elliott> literally a cesspool
23:11:52 <monqy> I've never been to any of these channels
23:11:54 <CakeProphet> ##cesspool
23:11:55 <elliott> monqy: never do
23:12:01 <Ginto8> elliott, a cesspool of what?
23:12:07 <monqy> cess
23:12:11 <elliott> Ginto8: Cess.
23:12:17 <elliott> Ginto8: Also are you new, hi.
23:12:20 <pikhq_> monqy: You get flamed the fuck out of for, basically, not having literally memorised ISO C.
23:12:23 <Ginto8> yeah I'm kinda new
23:12:30 <CakeProphet> an example, I was asking for help in #perl about (?{...}) in regexes
23:12:40 <CakeProphet> and they were telling me not to make monolithic regexes.
23:12:45 <CakeProphet> I was like "tks gaiz don't care"
23:12:53 <elliott> pikhq_: I once asked a really ridiculously precise question there and even referenced the language as ANSI X3J11 or something
23:12:56 <elliott> pikhq_: They just ignored me :D
23:13:29 <Ginto8> I've done some stuff in some eso languages, and I figured I'd check out this channel. I'm mainly a C/++ programmer though, so I was curious if it was just that the people in ##c were always telling people to RTFM, or if they actually didn't know what they were talking about
23:13:51 <CakeProphet> qr{^(?:[!\n]*\n){$y}(?:.{$x})@{[join "(?:.{$x})",@orgr]}
23:13:56 <CakeProphet> I ask, what is so unreasonable about this regex?
23:14:02 <monqy> perl
23:14:22 <Deewiant> It's irregular
23:14:22 <pikhq_> elliott: ANSI X3.159-1999, or ISO/IEC 9899:1999.
23:14:31 <pikhq_> Ginto8: Mostly RTFM.
23:14:44 <pikhq_> CakeProphet: Doesn't look like a regular expression to me.
23:14:47 <CakeProphet> it is.
23:14:52 <CakeProphet> with some Perl code...
23:15:06 <CakeProphet> to interpolate a regex
23:15:08 <pikhq_> Hint, Perl "regex"es aren't regular expressions.
23:15:10 <Deewiant> It's a regex, but not a regular expression
23:15:22 <Ginto8> pikhq_, ah, they inherit that from ##linux it seems
23:15:24 <CakeProphet> pikhq_: oh good because I didn't say it was a regular expression.
23:15:28 <Deewiant> And thus, it's unreasonable
23:15:36 <monqy> heheheeheh
23:15:38 <elliott> pikhq_: I think the latter
23:15:38 <CakeProphet> pikhq_: so what are you getting at exactly? :P
23:15:41 <pikhq_> Ginto8: Except that the FM they refer to is obscene.
23:15:42 <elliott> except without the /IEC part
23:15:46 <elliott> Ginto8: oh, C++ :(
23:15:55 <monqy> :'(
23:16:05 <Ginto8> elliott, what?
23:16:08 <pikhq_> Ginto8: The C spec is very dense and hard to reference.
23:16:09 <Deewiant> elliott: The /IEC part is important don't come talking to us about this mythical "ISO 9899:1999" language
23:16:29 <CakeProphet> pikhq_: oh I see. yeah you just tricked me into saying it was. asshole.
23:16:50 <pikhq_> CakeProphet: :D
23:16:54 <CakeProphet> and then got all pedantic.
23:16:55 <Ginto8> pikhq_, I would never EVER touch the C spec in a million years. And I'm a guy that tried to wade through the file format spec for PNG xO
23:17:07 <elliott> Deewiant: :D
23:17:15 <pikhq_> It's pretty "fun" hunting down libc bugs.
23:17:37 <Ginto8> elliott, that at me?
23:17:43 <CakeProphet> monqy: you should learn Perl it's an educational experience.
23:17:44 <zzo38> To do C spec properly, you have to pay. That is one of the problems of C. C is still good for many things, though.
23:18:02 <monqy> CakeProphet: naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
23:18:04 <Ginto8> oh no sorry
23:18:13 <elliott> Ginto8: The line with "Ginto8:" in front was :P
23:18:17 <pikhq_> zzo38: Amusingly, the final draft of the C spec, which is known to have had no changes between it and finalisation, is free.
23:18:18 <monqy> CakeProphet: I'm glad I forgot it
23:18:32 <CakeProphet> monqy: how can you say it's bad if you've forgotten it? :P
23:18:39 <monqy> CakeProphet: I remember that it was bad
23:18:42 <elliott> pikhq_: god I remember when ams ignored me for consulting a post-C99 draft
23:18:44 <elliott> for details about free()
23:18:51 <pikhq_> elliott: Friggin' ams.
23:19:11 <elliott> i was sure he had to have like ran into me before and hated me because how can anyone be that much of a jackass without prior history
23:19:15 <pikhq_> Wasn't that post-C99 draft C99+later ratified standard extensions?
23:19:28 <elliott> TC1 or something
23:19:32 <pikhq_> Yeah.
23:19:33 <zzo38> pikhq_: In that case, that is OK, I guess. (But they did try to force people to pay for it. If I wanted a printout I would certainly pay for it, but I would not accept it as a proper standard that ought to be used if it cannot be accessed freely!)
23:19:45 <CakeProphet> Deewiant: all this Perl hatred. :(
23:19:54 <pikhq_> elliott: So, you referenced the latest standard.
23:20:10 <elliott> this was after I checked POSIX for him and he dismissed it
23:20:36 <pikhq_> *Admittedly*, the parts of POSIX that refer to ISO C are non-normative...
23:20:38 <pikhq_> Still.
23:20:52 <pikhq_> That's rather obscenely pedantic.
23:21:02 <zzo38> At least, Haskell has a free standard, and LLVM has free documents that are not entirely complete but all source-codes available and LLVM is still better designed than C in my opinion.
23:21:11 <Ginto8> elliott, so what's so :( about C++? aside from the pain in the ass templates, the difficulty of using good OOP, the pain that good memory management can be, the lack of decent module support, the mediocre standard library, and the rather crazy compilation method, of course
23:21:22 <Deewiant> Fun fact: mushspace uses -std=c1x with gcc
23:21:34 <pikhq_> Ginto8: You also neglect "it's a language with no reason to exist".
23:21:39 <elliott> Ginto8: And the fact that it attempts to build a high-level language on top of C
23:21:46 <elliott> And also everything else about C++ :P
23:21:49 <zzo38> When programming in C, I usually prefer a subset of GNU89.
23:21:50 <elliott> Deewiant: Why.
23:22:07 <Deewiant> elliott: Anonymous structures
23:22:12 <Ginto8> pikhq_, no reason to exist?
23:22:14 <elliott> Deewiant: Plan 9 C has that :-)
23:22:29 <zzo38> (GNU89 does have some of the things that were added in C99, too)
23:22:32 <Deewiant> elliott: Does it have packed structures, too?
23:22:42 <Deewiant> elliott: I'm currently using the VC++ extension for that :-P
23:22:48 <CakeProphet> I actually don't even remember how I learned Perl.
23:22:51 <CakeProphet> it just kind of happened.
23:22:53 <pikhq_> Ginto8: It is objectively worse for high-level code than, e.g. Smalltalk, and objectively worse for low-level code than, e.g. C.
23:22:58 <elliott> Deewiant: Nice.
23:23:03 <elliott> Deewiant: Why do you need those :P
23:23:14 <Deewiant> elliott: AIUI C1X has something equivalent but nothing implements it
23:23:34 <Deewiant> elliott: union coords { struct { int x,y,z; } int[3] v; }
23:23:40 <Deewiant> s/}/};/g
23:23:44 <pikhq_> It is a solution in search of a problem.
23:23:44 <Ginto8> pikhq_, a well-written C++ program can run as well as an equivalent C program, provided you use OOP where it's good, and don't just randomly throw things into a class because you feel like it
23:24:03 <elliott> Deewiant: Why :P
23:24:12 <CakeProphet> Ginto8: I don't think it was talking about efficiency.
23:24:17 <CakeProphet> s/it/he/
23:24:22 <Deewiant> elliott: Because writing foo.x is a lot nicer than foo.v[0]? :-P
23:24:26 <monqy> "it" is better
23:24:28 <CakeProphet> lol freudian slip I like to objectify people.
23:24:29 <elliott> Ginto8: And it'll either be incredibly ugly to avoid all C++ overhead, or not actually as fast as C.
23:24:33 <zzo38> For low level (actually, "all level") interpreted code, Forth is good for that. For portable low level compiled code, C is good. For portable high level compiled code, Haskell is pretty good.
23:24:44 <elliott> Deewiant: But N-dimensional
23:25:02 <Ginto8> elliott, true, but it allows more code reusability at a slight sacrifice
23:25:18 <Deewiant> elliott: N-dimensional it ain't
23:25:20 <elliott> Ginto8: Not IME... I take it you've seen the C++ FQA
23:25:23 <CakeProphet> for awesome scripts that do not correspond to all to any sort of low-level high-level analogy, Perl is good.
23:25:25 <elliott> Deewiant: Gross arbitrary restriction
23:25:34 <Deewiant> elliott: Optimizing for the common case
23:25:43 <elliott> Deewiant: Doesn't mean you should omit other cases
23:25:53 <Deewiant> elliott: There's no such thing as a Funge file format above trefunge, for instance
23:25:56 <Deewiant> elliott: Arguably they don't exist
23:26:18 <elliott> Deewiant: Then don't provide loading for those
23:26:32 <pikhq_> Also, the STL *alone* is reason enough to reject C++ entirely, IME.
23:26:41 <Deewiant> elliott: Really, I just don't want to figure out the general cases for a couple of tricky algorithms :-P
23:26:54 <Ginto8> elliott, no I haven't, but as I'm a game programmer, there's no high-level language with both enough performance and enough library support to be worthwhile
23:26:59 <CakeProphet> am I the only one here that vaguely finds C# to be a good language?
23:27:02 <Ginto8> but I will look at it
23:27:05 <CakeProphet> compared to, say, C++ and Java?
23:27:09 <monqy> help whats haskell
23:27:13 <Ginto8> CakeProphet, it's decent
23:27:17 <pikhq_> Ginto8: You're hallucinating. :P
23:27:20 <elliott> Deewiant: shiro-lahey continues to be superior.
23:27:29 <Deewiant> elliott: And nonexistent
23:27:29 <elliott> Ginto8: I'm using Haskell for that :-)
23:27:33 <Ginto8> pikhq_, please please PLEASE provide me with an alternative
23:27:34 <pikhq_> CakeProphet: C# tries to be a better Java, and seems to pull that off.
23:27:35 <elliott> Deewiant: Well, yet.
23:27:43 <Deewiant> elliott: Until it exists it's inferior
23:27:46 <CakeProphet> Ginto8: if I recall there's a JIT compiler for lua that gets pretty amazingly close to C++ speeds.
23:27:53 <Ginto8> o.o
23:27:54 <elliott> Deewiant: I'm really tempted to call it lahey-space instead and scrub all references of Funge
23:27:58 <monqy> CakeProphet........................................................
23:27:58 <Ginto8> lua?
23:28:00 <elliott> CakeProphet: That means you have to use Lua.
23:28:02 <monqy> lua is bad too
23:28:03 <CakeProphet> pikhq_: yes, this is why I think it's a success.
23:28:07 <elliott> Pretty big disadvantage there.
23:28:14 <CakeProphet> he asked for a high level language. so... there it is.
23:28:19 <zzo38> C# is about as good as Visual Basic, I think. But probably a bit better because they have some C stuff that Visual Basic doesn't work. I do not program in C# but I did once find and read a C# program because I found a program for Duckworth-Lewis method and it was written in C#
23:28:29 -!- GuestIceKovu has changed nick to Slereah.
23:28:33 <monqy> lua, the epitome of high level languages
23:28:56 <Ginto8> zzo38, please NEVER EVER refer to VB as a "good" thing. I've been there, I've done that, and I've suffered enough
23:28:57 <Deewiant> elliott: Lahey-space is just the topology, which I'm pretty sure other people call a torus
23:28:58 <CakeProphet> also lua is commonly used in game programming so I figured it would be a good choice for that since it's probably well-supported by existing software.
23:29:11 <elliott> Deewiant: Tori aren't infinite
23:29:12 <pikhq_> Ginto8: Obvious answers include C# and Java. Slightly less obvious answers involve "Most friggin' languages, seriously constant factors hardly matter, stop kidding yourself."
23:29:21 <elliott> pikhq_: That's not really true.
23:29:22 <zzo38> Ginto8: It isn't a good thing in general. I didn't try to imply it is
23:29:26 <elliott> Python won't work for anything three-dimensional.
23:29:36 <Deewiant> elliott: The filled-with-spaces stuff is Funge, not Lahey
23:29:43 <CakeProphet> pikhq_: Python, Perl, and Ruby for game programming = lol
23:29:59 <monqy> CakeProphet: and yet you suggest lua
23:30:03 <elliott> Deewiant: Hmm, I'd say Lahey-space includes tori and funge-space
23:30:04 <CakeProphet> elliott: though numpy helps a bit.
23:30:10 <CakeProphet> monqy: yes because it has a very good JIT compiler.
23:30:14 <elliott> Deewiant: Tori themselves aren't equivalent because they can't be infinite
23:30:20 <zzo38> Well, Visual Basic works when writing simple GUI programs meant for Windows only. That it is what it is invented for and that is probably all it should be used for.
23:30:21 <elliott> CakeProphet: numpy is not really useful for game programming.
23:30:29 <elliott> monqy: LuaJIT is very fast, mind you
23:30:34 <pikhq_> I also feel obligated to pimp Haskell here.
23:30:35 <zzo38> It should not be used for other purpose instead
23:30:35 <Deewiant> elliott: Mayhap, that was just a side point anyway
23:30:42 <elliott> pikhq_: Shut up I'm in charge of Haskell pimpin'.
23:30:47 <Deewiant> elliott: My main point was the space stuff :-P
23:30:50 <elliott> Deewiant: Well, give it a less Funge-related name than fungespace then
23:30:54 <monqy> 16:29:04 < monqy> help whats haskell
23:30:58 <monqy> does that count as pimping
23:31:00 <Deewiant> elliott: I.e. Lahey is just "vectors wrap like this"
23:31:02 <elliott> Deewiant: What if I made it handle finite spaces too :P
23:31:10 <elliott> Wait
23:31:14 <elliott> Deewiant: Fungespace is finite too, duh
23:31:27 <pikhq_> Ginto8: Oh, further obvious answer: C.
23:31:29 <zzo38> For some game programming I find QBASIC useful, though.
23:31:34 <Deewiant> elliott: Yes, except in bignum funges which aren't spec-compliant
23:31:39 <elliott> Deewiant: Those aren't funges
23:31:43 <CakeProphet> elliott: though actually it's probably comparable to Java... which is still pretty fast for most purposes.
23:31:45 <Deewiant> elliott: In which it's still finite, but arbitrary
23:31:51 <elliott> Deewiant: But yeah, it's literally just implementing a torus with a certain eye towards memory consumption :-)
23:32:06 <elliott> Finite but arbitrary = ugly implementation-centric way to say infinite
23:32:24 <Deewiant> elliott: No, because e.g. y stipulates that bounds must exist :-P
23:32:40 <elliott> Deewiant: Fair enough
23:32:45 <elliott> Deewiant: It's a finitely-filled infinite space
23:32:46 <Deewiant> elliott: (Of course it also stipulates that a maximum size exist)
23:32:51 <CakeProphet> ArrayList in Java = infinite
23:32:52 <Deewiant> elliott: Yeah, that's correct
23:32:53 <CakeProphet> :)
23:33:03 <CakeProphet> because it's finite but arbitrary.
23:33:41 <Deewiant> elliott: Anyhoo, call it whatever you like but I argue that "lahey-space" is an insufficiently precise designation
23:33:43 <zzo38> For MegaZeux game programming, I can use Robotic and Forth.
23:33:49 <Deewiant> elliott: You could make that a type class though :-P
23:34:28 <elliott> Deewiant: The question is, are there any Lahey spaces other than tori and infinite fungespaces
23:34:48 <elliott> Deewiant: If not, then I think calling it LaheySpace is fair
23:34:49 <Deewiant> elliott: Infinite fungespaces aren't Lahey, I don't think
23:35:04 <Deewiant> elliott: Assuming they can be infinitely full
23:35:13 <elliott> <elliott> Deewiant: The question is, are there any Lahey spaces other than tori and infinite finitely-filled fungespaces
23:35:13 <elliott> Jeez :P
23:35:19 <Deewiant> elliott: "The requirements for a line in Lahey-space are the following: Starting from the origin, no matter what direction you head, you eventually reach the origin."
23:35:35 <elliott> Yes, but I'm saying is there any other weird topological space that fits that apart from those two
23:37:01 <Deewiant> I think that just defines a torus, or at least that's what it seems like to me
23:37:25 <elliott> Deewiant: "infinite finitely-filled fungespaces" ;; one of these is not a torus.
23:37:28 <Deewiant> I guess there's stuff like Möbius strips but it can probably be represented as a funky torus
23:37:35 <elliott> You can represent any individual state of it as a torus
23:37:37 <elliott> But it's not a single torus
23:38:31 <Deewiant> If it's a torus in R^n it is ;-P
23:38:45 <elliott> Deewiant: Some torus
23:39:21 <zzo38> What is "Haskell pimpin'"?
23:39:33 <Deewiant> elliott: Anyway, no, I don't think so
23:40:13 <CakeProphet> !perl sub take($@){(print,/$_[0]/&&last)for(@_[1..$#_])} print take /3/, 1,2,3,4,5
23:40:13 <EgoBot> 11
23:40:24 <elliott> Deewiant: Then all I have to do is support Integer coordinates and I can call it LaheySpace because it covers every kind of Lahey space
23:41:13 <Deewiant> elliott: No it doesn't, because Lahey spaces don't have the requirement that the value at every point is initially a space
23:41:33 <elliott> Deewiant: I'll just parameterise on the "empty value", duh
23:41:34 <Deewiant> elliott: In fact, they aren't required to be such kinds of key-value stores at all :-P
23:41:50 <elliott> I guess you could have a continuous lahey-space :/
23:41:54 <CakeProphet> !perl sub take($@){grep!/$_[0]/,@_[1..$#_]} print take qr/3/, 1,2,3,4,5
23:41:55 <EgoBot> 1245
23:41:55 <Deewiant> Yep
23:42:02 <CakeProphet> oh right.
23:42:04 <elliott> Deewiant: Well I'm not calling it a DiscreteFinitelyFilledSparseLaheySpace
23:42:09 <elliott> DFFSLS
23:42:22 <Deewiant> elliott: What's so wrong with FungeSpace
23:42:48 <Gregor> DFFSLS rolls of the tongue better.
23:42:53 <elliott> Deewiant: Because I want to upload it to Hackage and make a post to the appropriate Haskell list and have everyone stare in confusion at my topological prowess
23:43:01 <elliott> It will be So Serious.
23:43:08 <Deewiant> elliott: Yeah, well, oh well
23:43:11 <CakeProphet> DFFSLS looks like something !wacro would make.
23:43:18 <monqy> !wacro
23:43:19 <EgoBot> SMUIQSCC
23:43:22 <monqy> bad
23:43:25 <monqy> !acro
23:43:28 <Deewiant> !wacro
23:43:29 <EgoBot> MZTPB
23:43:30 <EgoBot> RGBSQHAAQZ
23:43:33 <monqy> also bad
23:43:34 <CakeProphet> lol
23:43:46 <CakeProphet> FINE I'LL CHANGE It
23:44:04 <Deewiant> elliott: Just make a separate laheyspace package with the LaheySpace type class
23:44:14 <Deewiant> elliott: With no instances
23:44:19 <Deewiant> elliott: And then write a page or two about it
23:45:00 <elliott> Deewiant: X-D
23:45:12 <elliott> Deewiant: "Unfortunately there cannot be any truly general instance. The user is encouraged to define their own."
23:45:28 <Deewiant> Yup
23:46:10 <elliott> I just really want to get the Hackage bot to spam #haskell with serious-looking updates where I HALVE THE TIME OF [FANCILY-NAMED OPERATION]
23:46:55 <Deewiant> And you can do that while calling it FungeSpace
23:47:15 <Deewiant> Not like the name will mean any more or less than LaheySpace to most people, even most #haskell people
23:47:24 <elliott> No, they can easily determine that fungespace is only used in one context by googling
23:47:36 <elliott> Lahey-space could just be something really obscure that's only in the Funge spec and also heavy books on advanced topology
23:47:36 <Deewiant> Ditto laheyspace
23:47:46 <elliott> Since it isn't obviously invented for the purpose from the spec
23:48:10 <Deewiant> I suppose
23:48:39 <Deewiant> But I think when they see that "the mathematical model" is http://catseye.tc/projects/funge98/doc/laheys.jpg they'll understand
23:49:15 -!- Ginto8 has left ("Leaving").
23:50:06 <elliott> RIP Ginto8, killed by Haskell.
23:50:17 <elliott> Deewiant: Or they'll conclude that the page is just shit, like so many 90s webpages
23:51:09 <Deewiant> Ahem, Copyright (c)2000 Chris Pressey, Cat's Eye Technologies.
23:51:33 <Deewiant> But yeah, whatever
23:51:51 <Deewiant> These days google would find the advanced topology results as well, if there were any
23:52:13 <Deewiant> But I doubt it matters anyway :-P
23:53:23 <elliott> http://www.google.com/search?tbm=bks&tbo=1&q=lahey+space&btnG=
23:53:30 <elliott> Are we 'persons' yet?: law and sexuality in Canada - Page 5
23:53:35 <elliott> are we persons yet
23:53:57 <Deewiant> Use quotes, zero results
23:54:03 <monqy> I was just about to say
23:55:15 <elliott> dam u
23:56:33 <zzo38> DO NOT SIT ON THIS CHAIR PAST THE HOURS OF 6 AM ON [date].
2011-08-24
00:01:19 <CakeProphet> !delinterp wacro
00:01:19 <EgoBot> ​Interpreter wacro deleted.
00:01:23 <CakeProphet> !addinterp wacro perl http://pastebin.com/RazAC34W
00:01:24 <EgoBot> ​Interpreter wacro installed.
00:01:26 <CakeProphet> !wacro
00:01:26 <EgoBot> Bareword found where operator expected at /tmp/input.30875 line 4, near ""Content-Type" content"
00:01:27 <elliott> fail
00:01:31 <elliott> use sprunge
00:01:31 <CakeProphet> !wacro 4 5
00:01:32 <EgoBot> Bareword found where operator expected at /tmp/input.30938 line 4, near ""Content-Type" content"
00:01:35 <CakeProphet> lol wat.
00:01:36 <CakeProphet> oh rite
00:01:40 <CakeProphet> didn't use the raw link lol
00:01:43 <elliott> nope
00:01:43 <CakeProphet> !delinterp wacro
00:01:44 <EgoBot> ​Interpreter wacro deleted.
00:01:44 <elliott> thats html too
00:01:48 <elliott> oh hm maybe not
00:01:51 <elliott> i guess they fixed that
00:01:54 <monqy> it has \r\n i think???
00:01:59 <monqy> i mean the raw pastebin thing
00:02:01 <CakeProphet> yes
00:02:01 <monqy> just use sprunge
00:02:04 <elliott> doesnt matter really
00:02:09 <CakeProphet> isn't that a feature of HTTP in general?
00:02:11 <monqy> \r\n sads me
00:02:28 <CakeProphet> !addinterp wacro perl http://pastebin.com/raw.php?i=RazAC34W
00:02:28 <EgoBot> ​Interpreter wacro installed.
00:02:30 <CakeProphet> !wacro
00:02:31 <EgoBot> FCU
00:02:34 <CakeProphet> !wacro 4 5
00:02:35 <EgoBot> OTPP
00:02:38 <CakeProphet> !wacro 10
00:02:39 <EgoBot> CPLPFMLAMS
00:02:45 <CakeProphet> ...I didn't put a limit.
00:02:51 <CakeProphet> !wacro 50
00:02:51 <EgoBot> LHNSRCBCVCBAMBHZSCAHITDTDHJGMSCDCPUGTCHHTTWUDOHESG
00:02:54 <monqy> !wacro 999
00:02:55 <EgoBot> CAMPABNGDCYNACDJSSKDCUCJBREMMRRTLMSCPGSAITOMRSFGSMCVGABSCDCTSTNHOGDARGSDTBTIPMCWRRREBMILARSDSCRTFPGYAPPBBJJFCBEBEFMOHPMDRMBAAGCLETPSBCDVLSFCMSLFGULSHSSWTSMCRIAPCMPSNDSGCIGMOQOPVPUHCLTAHIOPDTOLMMJMCGAPBPBNTMMFBWLRMWSCICMMNISRHTFCCFHMPLOCBWPSSDRPLLPMBMDSMAECCSITGMRCSSRGBTCMTAPGLPVPAMTILTDTMGDDANFWDPCAMTESJHPLTPOMUORDMERMSGPQCXMFRCMCAMOSCWFAHRIHRCBBCCVPTENCBDETEECSSBDSQHLGWCISADISDTRPHGFRBMSSMNGSAHPSDVITWDWIIRRSFRACMAAQBUTDTGFQSAPOPIHBRTGMSFDUMCLPVAGTPALBBRBSCTAHPUB
00:02:58 <CakeProphet> so yeah
00:02:59 <monqy> snazzey
00:03:00 * CakeProphet fixes that.
00:03:16 <CakeProphet> let's see how many letters is that Wikimedia association.
00:03:20 <monqy> !wacro abcdef
00:03:21 <EgoBot> Argument "abcdef" isn't numeric in range (or flop) at /tmp/input.31529 line 47, <> line 1.
00:03:52 <CakeProphet> yep.
00:04:12 <CakeProphet> though it would be pretty spiffy if it knew what context .. was being used in for error messages.
00:05:27 <monqy> you know what would be spiffy?
00:05:30 <monqy> if contexts weren't a thing
00:05:33 <monqy> yeah I went there
00:05:45 <CakeProphet> contexts are awesome and totally not an issue ever.
00:06:13 <CakeProphet> "oh no is this return value going to be interpreted in scalar or list context???" doesn't matter.
00:07:29 <CakeProphet> but you can find out with wantarray if you want to provide different logic.
00:08:04 <CakeProphet> !perl sub test(){wantarray} print test
00:08:05 <EgoBot> 1
00:08:21 <CakeProphet> !perl sub test(){wantarray} print (test*3)
00:08:22 <EgoBot> 0
00:08:37 <monqy> :(
00:09:34 <CakeProphet> I don't really see what's bad about that, but to each their own.
00:10:26 <CakeProphet> so yeah, next step: try to make it generate pronouncable acronyms.
00:12:06 <CakeProphet> !delinterp wacro
00:12:06 <EgoBot> ​Interpreter wacro deleted.
00:12:12 <CakeProphet> !addinterp wacro perl http://pastebin.com/raw.php?i=s2SVjFMB
00:12:12 <EgoBot> ​Interpreter wacro installed.
00:12:17 <CakeProphet> !wacro 50 1000
00:12:18 <EgoBot> Can't return outside a subroutine at /tmp/input.32648 line 46, <> line 1.
00:12:27 <CakeProphet> oh rite should've debugged.
00:12:29 <monqy> !wacro
00:12:30 <EgoBot> PGID
00:12:48 <monqy> pgid
00:12:51 <CakeProphet> that is totally a thing I can do.
00:12:54 <monqy> !wacro
00:12:55 <EgoBot> PBLBZ
00:12:58 <monqy> pblbz
00:13:04 <CakeProphet> ...wat?
00:13:10 <monqy> !wacro
00:13:11 <EgoBot> UFABPTL
00:13:13 <monqy> ufabptl
00:13:20 <CakeProphet> what are you doing.
00:13:36 <monqy> these are bad :(
00:13:41 <monqy> make them better :(
00:13:46 <monqy> pgid was almost okay
00:13:57 <CakeProphet> look okay it is a very simple program.
00:14:00 <CakeProphet> I don't know what you're expecting.
00:14:13 <CakeProphet> !acro
00:14:17 <EgoBot> KOFKXKMEAI
00:14:19 <monqy> that's bad too
00:14:27 <monqy> !acro
00:14:31 <EgoBot> WCRQ
00:14:34 <monqy> :(
00:15:25 <CakeProphet> !delinterp wacro
00:15:25 <EgoBot> ​Interpreter wacro deleted.
00:15:28 <elliott> that sounds like a radio station in america
00:15:42 <CakeProphet> !addinterp wacro perl http://pastebin.com/raw.php?i=Ec8RSQtM
00:15:43 <EgoBot> ​Interpreter wacro installed.
00:15:47 <monqy> !wacro
00:15:47 -!- yorick_ has joined.
00:15:48 <EgoBot> FSIG
00:15:50 <CakeProphet> elliott: an east coast radio station to be exact.
00:15:54 <monqy> fsig
00:15:59 <monqy> !wacro 999
00:16:00 <EgoBot> CMMTASBCMAUOTTPWDTAMABSMAPSCESYPSUCDRJITCPDFCPTLMVRPSAFEIMSCPRRRNIFCAPSVDTNPSLMDKJSDMPCCRBIBSIEAIMSAFMDPWRCSPIBEWCSEWLGSFRJWALDRDSBRJGGCCMPPHWRCERIESSTSLSRLCOLBSBCSJLAWIDIIPNAWSCHMSTSSSDTPCTNCPRVSLLJAPEOSPMBPTCMCCMRCGBVLEDLPATKCBHFGADMKSRSSNCLIBGFOHMORFSBHIPYMPPRBCPBSSBSCSASPJCTGCKRSCSNCFFALWTPPPPBHJCRORMMRVSFBFCBBSMMSPBPBJBTPMOMGGOHMHNBCARHPMTCCRCARVTBMVTACJDTBPGKFBABSIPMTSKNHIDABACKDWTNPSLSTBPMDDSOBKSBSFIMTBAIDOGPBFWDPTRGPSVRLUSCMBEBJBLDOFTATTFHUPTCBRMCDSMGAWAS
00:16:00 <CakeProphet> though KOFKXKMEAI could be a west coast radio station.
00:16:03 <monqy> wacro
00:16:08 <CakeProphet> ...wat I thought I fixed that.
00:16:36 <CakeProphet> !wacro 25 50
00:16:37 <EgoBot> SAOSOGCVFPHSSRCSFPESPMVISCCCBSNPEPCFESFRC
00:16:40 <monqy> !wacro 999 999
00:16:41 <EgoBot> TYHSTBLRLFSDZPLTATPCSSMOSBSRRCMGQBFPSRJBPSLGBPFSBVDGAZTTSPVCALPBTGBDTBSPURCBBETMRBSHIGIBHGRCTMSCDLGWAVSJVWPUPPWIRDNVBAGFPMITUPECCHGBBTALTCTPILPWJDSDLTCNGABGRLWDDOGFVCOWHADCBFHMSBOCAPFHDBTLWIJMETNIASUCDMHMLOFPAAFSSFIRRSCCETFBHIBBAGIDCVRMSRAEMTODPMGEARFFSLCHSDAIAGSCOOBMQEPORCDCTDGCESDDABHSCMPWMPCACPCCOHBHJPPIABWHTTATWGRPLILSWDLBFQVMWABUDIPSLIBGLSDRGSSTCJPSSRBIMPGTMSLZTPNCSFPLPMISWORWRGTRNTMELABSFTHCPZHDRPCSDSLPAPSSBTAMMRMLFSGTCCAHOUMFAIBCSMBAFPKHLPPAGSDGVDPFMAMRDAD
00:16:50 <CakeProphet> ...
00:16:55 <monqy> what does the second one do does it a range
00:16:59 <monqy> betwen th eifrst and second
00:17:02 <CakeProphet> yes.
00:17:04 -!- yorick has quit (Ping timeout: 264 seconds).
00:17:18 <CakeProphet> well it's broken right now actually.
00:17:19 <elliott> http://en.wikipedia.org/wiki/WCRQ
00:17:20 <CakeProphet> one sec.
00:17:23 <elliott> today's best hits
00:17:28 <elliott> http://en.wikipedia.org/wiki/Arab,_Alabama
00:17:35 <elliott> Two other proper names for the town were sent to the US Postal Service for consideration: "Ink" and "Bird."
00:19:22 <CakeProphet> !delinterp wacro
00:19:22 <EgoBot> ​Interpreter wacro deleted.
00:19:27 <CakeProphet> !addinterp wacro perl http://pastebin.com/raw.php?i=mvP0STSg
00:19:28 <EgoBot> ​Interpreter wacro installed.
00:19:32 <monqy> !wacro 9999
00:19:33 <CakeProphet> !wacro 5000 9999
00:19:33 <EgoBot> TSOKCFUMCTBDAWTWSTFBATTTG
00:19:33 <EgoBot> CPICBMSAGBEAFMSTRKCECBPHB
00:19:41 <CakeProphet> limit is 25
00:19:45 <monqy> !wacro 25 999
00:19:46 <EgoBot> KUSRSDPIBSAIHMPSRDTDADLTF
00:19:56 <monqy> !wacro 9999999999999999999999999999999
00:19:56 <EgoBot> SVMSPAERHBWFGAPRVAWDSCMGJ
00:19:59 <CakeProphet> !wacro 25
00:20:00 <EgoBot> VNLBBANEEWABMSWGGCMTDDSSI
00:20:06 <monqy> !wacro -1
00:20:07 <EgoBot> Argument "" isn't numeric in numeric gt (>) at /tmp/input.2229 line 46, <> line 1.
00:20:10 <monqy> !wacro 0
00:20:19 <CakeProphet> obviously. :P
00:20:19 <monqy> !wacro abcdef
00:20:20 <EgoBot> Argument "abcdef" isn't numeric in numeric gt (>) at /tmp/input.2341 line 46, <> line 1.
00:20:27 <monqy> !wacro 1.2
00:20:28 <EgoBot> TU
00:20:31 <monqy> tu
00:20:39 <CakeProphet> stop making them better.
00:20:41 <CakeProphet> that is not better.
00:20:45 <CakeProphet> acronyms are abbreviations for things.
00:21:00 <monqy> 17:22:38 <EgoBot> Execution of /tmp/input.23630 aborted due to compilation errors.
00:21:03 <monqy> 17:22:38 <EgoBot>
00:21:08 <monqy> presumably from the !wacro 0
00:21:18 <monqy> try it
00:21:22 <CakeProphet> !wacro 0
00:21:29 <CakeProphet> nope.
00:21:38 <monqy> didn't you get the dcc chat request?
00:21:42 <CakeProphet> !wacro 0
00:21:43 <monqy> maybe it takes some time
00:21:44 <CakeProphet> nope
00:21:58 <CakeProphet> 0 would just make nothing happen.
00:22:04 <monqy> then how did that happen????
00:22:15 <CakeProphet> probably an earlier one?
00:22:18 <CakeProphet> !perl -1
00:22:21 <CakeProphet> lol
00:22:22 <monqy> but which
00:22:24 <CakeProphet> !wacro -1
00:22:24 <EgoBot> Argument "" isn't numeric in numeric gt (>) at /tmp/input.2662 line 46, <> line 1.
00:22:46 <CakeProphet> well so far these are all runtime errors so...
00:22:54 <monqy> !wacro 2 3 4
00:22:55 <EgoBot> CG
00:23:04 <CakeProphet> yeah it ignores anything above 2 args.
00:23:09 <monqy> !wacro 1
00:23:10 <EgoBot> V
00:23:12 <monqy> v
00:23:19 <CakeProphet> ...
00:23:42 <CakeProphet> feel free to remove the "uc" at the bottom of my code.
00:23:49 <CakeProphet> and make your own acronym generator command.
00:24:02 <elliott> v
00:24:03 <CakeProphet> just for you. because you're weird and like them to be lowercase.
00:24:14 <CakeProphet> !wacro 5
00:24:14 <EgoBot> SLSEA
00:24:59 <CakeProphet> okay so basically I have a markov chain of sorts.
00:25:11 <zzo38> Is there Haskell parsing program that I can add stuff into?
00:25:45 <CakeProphet> where the previous characters determine which random selection function is used.
00:26:32 <monqy> zzo38: ?
00:27:01 <zzo38> monqy: ??
00:27:04 <monqy> ??????
00:27:16 <monqy> parsing program? add stuff into? help
00:28:07 <CakeProphet> parsec?
00:28:08 -!- yretssin has changed nick to Nisstyre.
00:28:11 <zzo38> Such as, adding stuff to support new syntax and macros and various other thing, including to be able to check stuff doing during compiling to check for duplicate definitions, combine things together, and so on
00:28:34 <zzo38> CakeProphet: Parsec is a general parsing program I have used it, but I mean one specifically parsing Haskell codes
00:28:57 <CakeProphet> you could use any kind of general purpose language for that.
00:28:59 <monqy> zzo38: haskell-src-exts, haskell-src-meta, and friends?
00:29:09 <zzo38> monqy: OK, let me see
00:29:11 <CakeProphet> to just translate unprocessed file to Haskell source.
00:29:14 <monqy> zzo38: dunno how extensible they are
00:29:43 <monqy> zzo38: but they're for haskell source manipulation and friends
00:29:54 <CakeProphet> GHC, ghci, and lambdabot all have Haskell parsers that you could borrow code from.
00:30:52 <zzo38> How would I find the haskell-src-exts and haskell-src-meta? And which files in GHC and ghci would I use? Can I write codes to extend existing GHC/ghci?
00:31:17 <CakeProphet> http://hackage.haskell.org/package/haskell-src-exts-1.11.1
00:31:19 <monqy> http://hackage.haskell.org/package/haskell-src-exts http://hackage.haskell.org/package/haskell-src-meta
00:31:24 <CakeProphet> I've heard Google is pretty good for that sort of thing.
00:31:32 <monqy> i used hoogle
00:31:58 <CakeProphet> haskell-src-exts has a parseFile function that you would probably find useful for this.
00:32:21 <monqy> there's lots of stuff
00:32:26 <CakeProphet> and the module Language.Haskell.Exts.Build has functions to construct Haskell source trees
00:32:53 <monqy> there's also stuff to output template haskell i think
00:32:58 <monqy> for use in quasiquoters, friends
00:33:30 <monqy> haskell-src-meta at least has some TH examples
00:35:49 <elliott> that's what haskell-src-meta is for i think
00:36:10 <monqy> i didn't know if it was also for other things
00:36:54 <CakeProphet> so yeah Markov chain = good way to generate acronyms.
00:36:55 <zzo38> I can find a lot of information about haskell-src-exts but haskell-src-meta has not much information
00:37:11 <monqy> haskell-src-meta has examples
00:37:16 <monqy> I dunno about haskell-src-ext
00:37:16 <monqy> s
00:40:19 <CakeProphet> !perl sub test(){}sub test2(){} print (\test)==(\test)
00:40:56 <CakeProphet> !perl sub test(){}sub test2(){} $x=\test; print $x==$x
00:40:56 <EgoBot> 1
00:41:12 <CakeProphet> lolwat
00:42:23 <CakeProphet> !perl sub test(){}sub test2(){} $x=\test;$y=$x; print $x==$y
00:42:23 <EgoBot> 1
00:42:51 <CakeProphet> for some reason two different subrefs pointing to the same thing are not equal.
00:43:23 <CakeProphet> !perl sub test(){}sub test2(){} print (\&test)==(\&test)
00:43:24 <EgoBot> CODE(0x7fbbb0d05aa8)
00:43:30 <CakeProphet> >_>
00:44:01 <CakeProphet> !perl sub test(){}sub test2(){} print (\&test==\&test)
00:44:02 <EgoBot> 1
00:44:05 <CakeProphet> oh ojay.
00:44:08 <CakeProphet> *k
00:48:10 <zzo38> Is it possible to write syntax extensions to GHC? Some of the -X options provide their own syntax extensions but is it possible to write external ones?
00:49:25 <monqy> where by external you mean? doesn't have to be compiled into ghc?
00:49:32 <zzo38> Yes
00:49:36 <monqy> I don't know the specifics
00:50:52 <zzo38> I also think Template Haskell is not powerful enough to make up an entire module or to read an entire module, there are some things it doesn't do
01:00:40 <zzo38> What I would want to do, is for example, you can define your own reserved words which are always error, and you can catch errors including all information including what is around it and what is expected here, and other kind of error, etc. And then you can tell it to replace that and other things with something else
01:02:00 <zzo38> For example, I would like to be able to make it eliminate duplicate definitions and combine definitions, for example to change data Color = Red | Green; data Color = Green | Blue; into data Color = Red | Green | Blue;
01:03:26 <zzo38> Are there Haskell interpreter modules that can be included with another program?
01:05:02 <monqy> yes, like whatever lambdabot does?
01:05:12 <zzo38> I don't know what lambdabot does
01:07:15 <zzo38> Not very well, anyways
01:07:36 <CakeProphet> what do you do in this case: data T a b = Z | A a b | C b a; data T a b = Z | A a b b | C a b
01:08:04 <elliott> zzo38: mueval
01:08:05 <zzo38> CakeProphet: Generate an error message because the definitions of constructor A and C do not match
01:08:08 <elliott> zzo38: http://hackage.haskell.org/package/mueval
01:08:13 <CakeProphet> zzo38: mueval is terrible though.
01:08:18 <elliott> zzo38: For more flexibility, see http://hackage.haskell.org/package/hint, which mueval is built upon
01:09:39 <zzo38> CakeProphet: (An error message, which can of course, be caught like other errors and decide what to do, even if an error caused it to do this and then it is a second error which can also be caught afterward)
01:10:13 <zzo38> But this should be allowed: data T a b = A a b; data T b a = A b a;
01:10:33 <Sgeo> I appear to have started a flame war in #scala
01:11:21 <monqy> good job sgeo, hero to all
01:11:25 <monqy> what's it about
01:11:46 <Sgeo> Haskell's lack of enterprise stuff and whether "enterprise" stuff is useful
01:12:31 <monqy> wqhat's enterpreise stuffe
01:12:37 <elliott> what
01:12:41 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
01:12:50 <Sgeo> drdozer> no, you don't. If the boss says you're writing a component that's exposed through SOAP and talks to other components exposed through SOAP, with colaborators implementing their SOAP end-points in .NET, Java and Python, that's what you do
01:13:28 <elliott> http://hackage.haskell.org/package/shoap?
01:13:33 <monqy> i'lkl never survive in the real wordle
01:14:17 <Patashu> these compoents are filthy
01:14:20 <Patashu> they need a good scrubbing
01:14:25 -!- rodgort has joined.
01:17:52 <Gregor> http://codu.org/tmp/wol3-2011-08-23.ogg Have some musix
01:18:42 <zzo38> I have ideas, to invent Meta Haskell, it is usable in addition to Template Haskell. The syntax stolen by Meta Haskell is $${ and $$( and $$ with a word after that is no space between. But it is not allowed to be part of a "symbols" word. And then you have $$include which is like #include in C, $$setflag $$clearflag $$ifflag $$ifnflag which is like #define #undef #ifdef #undef except they are not macros and not used anywhere else,
01:19:43 <Gregor> `addquote <Sgeo> Maybe I should try to learn Scala instead of Ruby <elliott> I will boil your veins. <Sgeo> Which is less bad? <elliott> Probably Scala, but I don't want you learning languages.
01:19:45 <HackEgo> 618) <Sgeo> Maybe I should try to learn Scala instead of Ruby <elliott> I will boil your veins. <Sgeo> Which is less bad? <elliott> Probably Scala, but I don't want you learning languages.
01:20:01 <Patashu> poor sgeo
01:20:11 <monqy> has sgeo learned haskell yet
01:20:26 <elliott> no
01:20:34 <zzo38> $$reserve and $$reserveLayout to make new reserved words, it parse program into tokens, you can insert your own stuff to do, and then parse to syntax tree telling what kind of declaration and so on which you can also insert your own stuff and catch errors and stuff, and then you can make it do stuff with that result, and add postprocessor afterward
01:22:42 <CakeProphet> has Patashu learned Haskell yet?
01:22:59 <zzo38> Is there anything that can be used to do the things I describe?
01:23:38 <monqy> there's already an extension to use CPP
01:23:51 <CakeProphet> ..
01:24:29 <CakeProphet> I've heard Perl has a pretty good regexes and stuff. >_>
01:24:42 <zzo38> I know there is, but it doesn't do the other things I have described and it has some other problems too, since CPP is not designed for use with Haskell anyways
01:25:49 <Patashu> @CakeProphet: Not enough to use it
01:25:49 <lambdabot> Unknown command, try @list
01:26:19 <CakeProphet> huh weird, Wikipedia doesn't say whether Perl is strongly typed or weakly typed.
01:26:47 <CakeProphet> I'd say it's weakly typed, sort of.
01:26:52 <zzo38> For example, CPP certainly cannot do $$( $${ $$reserve $$reserveLayout
01:27:16 <monqy> CakeProphet: it's most certainly weakly typed
01:28:07 <Patashu> Has anyone ever made a CPPPP joke
01:28:25 <monqy> cpreprocessorpreprocessor?
01:28:29 <monqy> cpluspluspreprocessor?
01:28:30 <CakeProphet> monqy: yeah but it's strongly typed when it doesn't make sense to be weakly typed in its type system.
01:28:32 <Patashu> The former
01:28:39 <CakeProphet> !perl print "abc" > "123"
01:28:56 <CakeProphet> oh, nevermind, that was a warning.
01:29:02 <CakeProphet> !perl use warnings; print "abc" > "123"
01:29:02 <EgoBot> Argument "abc" isn't numeric in numeric gt (>) at /tmp/input.7685 line 1.
01:29:03 <zzo38> Well, I have use features of Enhanced CWEB for extra preprocessing of C codes
01:29:03 <monqy> in conclusion perls dumb
01:29:21 <CakeProphet> but it's a different kind of weak typing than C
01:29:28 <CakeProphet> it's not at a byte-level.
01:30:01 <CakeProphet> it's all contexty.
01:30:22 <monqy> i never said it wasn't
01:30:31 <CakeProphet> right I was thinking aloud.
01:30:45 <Gregor> elliott: omg writing bots is so much suck :(
01:31:06 <CakeProphet> Gregor: by bot do you mean rezzo warrior or like... IRC bot?
01:31:08 <CakeProphet> or?
01:31:09 <elliott> Gregor: Have you tried using my library
01:31:14 <Gregor> CakeProphet: Rezzo
01:31:24 <Gregor> elliott: Haskell is for dorks!
01:31:32 <elliott> Gregor: Dorks who write bots
01:31:49 <Gregor> elliott: IIRC, you haven't actually accomplished anything :P
01:32:07 <Sgeo> Rezzo?
01:32:20 <elliott> Gregor: tantrum.hs
01:32:24 <elliott> Gregor: But I was working on the queue stuff last
01:32:42 <zzo38> Can the "hint" program work with Template Haskell? Can it allow you to catch errors and then it can continue where it left off with the changes you made so it is not error?
01:35:12 <CakeProphet> Gregor: but C is THE BEST LANGUAGE THERE IS FOR ALL PURPOSES EVER
01:35:17 <CakeProphet> surely this should be easy.
01:35:38 <Gregor> CakeProphet: Just because it's the best language doesn't mean that it's obvious what a bot should do at all :P
01:36:00 <CakeProphet> imagine yourself as an agent.
01:36:03 <CakeProphet> should make things easier.
01:36:10 <CakeProphet> map out your decision process.
01:36:25 <Gregor> lol
01:36:33 <CakeProphet> :>
01:37:41 <CakeProphet> I'd say the trickiest part is navigating around walls
01:37:44 <CakeProphet> or deciding to break through them.
01:38:53 <elliott> Gregor: Well, you could code a pathfinding algorithm to start with
01:39:08 <elliott> That assigns appropriate higher costs to wires that need to be destroyed
01:39:50 <CakeProphet> it wouldn't be terribly helpful at the start though
01:39:55 <CakeProphet> since you have no idea where anything is at all.
01:40:34 <CakeProphet> but it would be safe to assume that breaking through a wall is probably going to let you go in the direction you want to go faster than walking all the way around.
01:40:44 <CakeProphet> at least initially.
01:40:51 <CakeProphet> when trekking somewhere unknown.
01:41:40 <CakeProphet> but if you're just wandering around going around the walls would allow you to cover more total distance.
01:42:37 <Gregor> Yeah, the very first thing you need to do is wander aimlessly.
01:43:09 <elliott> Gregor: How about write a bot that tries to see the entire world
01:43:14 <elliott> (With hardcoded world-size)
01:43:16 <elliott> And merge this into a worldview structure
01:45:41 <CakeProphet> are you given starting coordinates?
01:45:54 <Gregor> CakeProphet: Irrelevant.
01:46:20 <CakeProphet> might not be. also, smaller world might be better.
01:46:58 <Gregor> Dude ... your starting coordinates are entirely irrelevant.
01:47:03 <Gregor> World size isn't :)
01:47:18 <CakeProphet> it tells you which boundary you're closest to.
01:47:25 <CakeProphet> unless it wraps or something.
01:47:59 <Gregor> It's a torus.
01:48:14 <CakeProphet> which is a fancy way of saying it wraps around right?
01:48:30 <Gregor> In both dimensions
01:54:11 <CakeProphet> !perl my ($x,$y,$z,$a)= 0..3; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$q
01:54:12 <EgoBot> 123
01:54:26 <CakeProphet> !perl my ($x,$y,$z,$a)= 1..4; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$q
01:54:27 <EgoBot> 234
01:54:43 <CakeProphet> !perl my ($x,$y,$z,$a)= 1..4; ($x,$y,$z,$a) = ($y,$z,$a,$x); print $x,$y,$z,$a
01:54:43 <EgoBot> 2341
01:54:45 <CakeProphet> lulz
02:05:35 <CakeProphet> ....what.
02:05:39 <CakeProphet> why did they zip an mp3
02:06:43 <elliott> more compression
02:07:33 <pikhq_> It's the only common archival format on Windows.
02:07:41 <pikhq_> Well, unless you count RAR, I suppose.
02:15:47 <CakeProphet> uuuugh this intro to software engineering class is going to be so bad.
02:16:19 <Gregor> CakeProphet: That's the nature of SE.
02:16:28 <Gregor> CakeProphet: Enjoy learning the terrible UML.
02:18:06 <CakeProphet> favorite words for professor: "system" "solution" "complexity" "testing"
02:18:45 <monqy> what's intro to software engineering hehehehehee
02:19:26 <CakeProphet> it's a class that claims to give you real world experience about designing large-scale software projects.
02:19:30 <CakeProphet> but in fact teaches you nothing.
02:20:17 <pikhq_> Unfortunately, that's a bit hard to teach in an academic setting.
02:20:43 <pikhq_> It could probably be *done*, but not in the way that professors would like.
02:25:17 <zzo38> I want to have a Haskell command "more" that is followed by a capitalized word and optionally parameters, ussable in place of any of the following: A statement in a do-block. Where a constructor is expected in a data type declaration. A declaration of a class member. A name in an import or export list for a module. A case in a case expression.
02:25:56 <monqy> what would it do? you might be able to implement it with quasiquoters
02:26:14 <monqy> maybe not the name in an import or export list part
02:26:26 <zzo38> For example: hoge = do { putStr "x"; more Hoge; return 17; }; more Hoge = putStr "zzz"; more Hoge = doSomething;
02:26:48 <zzo38> Do you understand what it would mean from this example?
02:27:06 <monqy> no
02:27:19 <zzo38> Actually sorry, it should be like this: hoge = do { putStr "x"; more Hoge; return 17; }; Hoge = putStr "zzz"; Hoge = doSomething;
02:27:37 <monqy> what would it do
02:27:49 <Patashu> more Hoge becomes everything assigned to Hoge?
02:27:51 <zzo38> Or this: data Color = more Colors deriving Eq; Colors = Red; Colors = Green; Colors = Blue;
02:27:58 <zzo38> Patashu: Yes.
02:29:51 <zzo38> To give an example with paramters: data T t = Z | more TTT t; TTT a = Once a; TTT b = Twice b b;
02:29:51 <CakeProphet> zzoskell
02:30:44 <zzo38> That is one of my ideas.
02:31:09 <CakeProphet> the audio quality of this classroom recording is terrible.
02:31:25 <CakeProphet> but the class is scheduled at the same time as another class, so I have to listen to these.
02:37:16 <zzo38> And in case of do-statements with <- you could have: do { x <- work; x <- stop x; stop x; } which would be like do { x <- work; y <- stop x; stop y; } (after "more"-expansion)
02:41:42 <pikhq_> Um. Doesn't that already work?
02:41:49 <zzo38> pikhq_: I don't know; I have not tried it.
02:42:04 <pikhq_> It should based on how the do notation transform works...
02:42:16 <zzo38> Yes it works already
02:42:18 <zzo38> I tried it now
02:42:21 <pikhq_> That's the same as: work >>= \x-> stop x >>= \x-> stop x
02:42:39 <pikhq_> Which is of course the same as: work >>= stop >>= stop
02:44:54 <zzo38> I tried using GHCi and yes it does already work that way.
02:46:57 <elliott> zzo38: The problem with "more" for extending "data"-types is that every function defined on an ADT has to either have a blanket handling of unhandled constructors, or else be incomplete...
02:47:06 <zzo38> What I would like to have is that we can have Meta Haskell which allows you to make up things such as "more" command rather than having it built-in, therefore you can make up a lot of other stuff too
02:47:11 <elliott> That is, every function must be written with all the constructors that will be added in the future in mind
02:47:16 <elliott> Which makes it much less useful than it could be
02:47:20 <elliott> This is essentially the Expression Problem
02:47:39 <elliott> This may interesting you a bit: http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html
02:47:50 <elliott> From the she Haskell preprocessor that adds a few interesting features, some related to dependent types
02:47:52 <elliott> (used by the Epigram project)
02:48:00 <elliott> the linked http://www.daimi.au.dk/~madst/tool/papers/expression.txt is also a really good read
02:48:09 <elliott> (the solution in GJ presented is not relevant to understanding it)
02:48:09 <zzo38> elliott: Well, if you combine the "more" with "data" and the "more" with "case", then you can possibly solve the problem you described.
02:49:04 <elliott> zzo38: That sounds like pretty much a direct attempt at solving the expression problem, then
02:49:14 <elliott> In which case you probably really want to look at http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html like I said
02:49:21 <elliott> (You'll need to understand GADT syntax to get it)
02:49:57 <zzo38> Yes I did read the information about GADT syntax already
02:50:21 <Sgeo> Does "dobblego" sound familiar to anyone?
02:50:24 <CakeProphet> not that it's difficult or anything.
02:50:30 <CakeProphet> (GADT that is)
02:50:31 <elliott> Sgeo: What of him?
02:50:43 <elliott> He's Tony Morris, the guy behind Functional Java.
02:50:54 <elliott> Active in #haskell, I think he uses Scala quite a bit, and he has a blog???
02:50:59 <elliott> I don't know what you mean
02:51:11 <zzo38> And in some cases with this "more", you have some things with fall-back that in a few places where that data type is used, you only care about some of the constructors, and ignore others (or do something else specific in all other cases that you did not specify otherwise)
02:51:44 <CakeProphet> wow this class is going to be so gay.
02:51:48 <Sgeo> I think he comes off as a bit of a Haskell fundie, I guess. Also, I ended up on the opposite side of some argument as him
02:52:13 <zzo38> deriving (Eq) is one situation where you might only care about a few constructors in certain functions, rather than all of them. Because, you can test for equal.
02:52:26 <elliott> He's not a fundie, he just doesn't bother debating with people without a decent amount of background information, which is perfectly reasonable.
02:52:49 <monqy> is sgeo trying to argue without knowing what he's talking about
02:52:52 <elliott> (HInt: You probably don't have the relevant background.)
02:52:56 <elliott> [asterisk]Hint
02:53:01 <quintopia> i just noticed the arduino ide looks just like the processing ide. who is copying whom?
02:54:10 <elliott> Arduino is copying Processing, IIRC.
02:54:14 <elliott> Arduino hardware is programmed using a Wiring-based language (syntax + libraries), similar to C++ with some simplifications and modifications, and a Processing-based IDE.[3]
02:56:51 <quintopia> arduino is atmega...what? i know wiring was 128
03:02:12 <CakeProphet> !wacro
03:02:13 <EgoBot> MASAJESC
03:02:21 <CakeProphet> !wacro
03:02:21 <EgoBot> EUCWCB
03:03:55 <CakeProphet> !wacro
03:03:56 <EgoBot> CPO
03:04:02 <CakeProphet> !wacro
03:04:02 <EgoBot> DBRETESQ
03:04:14 <CakeProphet> !wacro 1 4
03:04:14 <EgoBot> WB
03:04:14 <monqy> bretesq is good
03:04:21 <CakeProphet> !wacro 1 4
03:04:22 <EgoBot> D
03:04:24 <monqy> d
03:04:27 <CakeProphet> !wacro 2 5
03:04:27 <EgoBot> HE
03:04:34 <CakeProphet> !wacro 2 5
03:04:35 <EgoBot> SWPRC
03:04:45 <CakeProphet> I like those two
03:06:10 <Gregor> Welp, I've got a destructive world-explorer.
03:07:43 <CakeProphet> probably the best strategy there is.
03:08:09 <CakeProphet> at least while no one has any idea how to make an effective player.
03:08:14 <Gregor> Heh
03:10:41 <zzo38> Yes that higpig.html does describe something similar to what I have described. But I think mine is better I had other ideas too that are not what that describes, including, that some things can have specified orders and other stuff too
03:13:31 <monqy> almost finished a pretty consistently good acronym generator
03:13:56 <monqy> the first two tests produced "moo" and "djini"
03:14:01 <elliott> wow
03:14:10 <elliott> does it just try to mix consonants and vowels or have you got some markov chain shit going on
03:14:18 <monqy> it's a bit weird
03:15:54 <monqy> it tries to mix them (increasing probability of switching as it stays on either) and it has a maximum of one plosive (defined as "bcdgkpqt") per consonant chain
03:16:34 <monqy> what I need to do now before making that better is get the length working well. right now it just has a constant 1/5 chance of stopping after each letter
03:16:35 <elliott> lol
03:17:07 <monqy> the third test produced no output, and the fourth was "csouimzip". definitely room for improvement.
03:17:32 <monqy> i rather like hooftoootut though
03:18:00 <monqy> erbyuewain, ugwuxl, qzibehahocwutsuepnueh
03:20:08 <zzo38> Default superclass instances is seem useful so that you can make Monad automatically become a Functor as well, but then what if you want to do other way around by defining unit/join/fmap instead of defining return and >>= ? Or even, define return and >=> and make it figure out >>= from that
03:20:18 <elliott> hooftoootut is me
03:20:34 -!- Canaimero-e8d has joined.
03:20:35 <elliott> zzo38: Well, you can have
03:20:43 -!- Canaimero-e8d has left.
03:21:20 <elliott> class (Applicative m) => Monad m where join :: m (m a) -> m a; join a = a >>= id; (>>=) :: m a -> (a -> m b) -> m b; m >>= f = join (fmap f m)
03:22:43 <monqy> sgakvoguyfranogignuym
03:23:04 <monqy> ooh glicvoy is good
03:23:25 -!- azaq231 has joined.
03:23:33 <monqy> ceolme, vexgoqxu, iayail
03:24:56 <elliott> nice words,
03:25:52 -!- azaq23 has quit (Ping timeout: 268 seconds).
03:26:00 <monqy> maybe i will improve it after working on other things for a while
03:26:21 <monqy> I was going to learn trifecta but then I got distracted with besting cakeprophet at word generation
03:28:00 <CakeProphet> One of Guido's key insights is that code is read much more often than it is written.
03:28:03 <CakeProphet> lulz
03:28:39 <elliott> genius
03:28:48 <monqy> one of the things I do I can't decide if it's sensible or not: instead of using a monad or something to carry around random number generator state, I have a function with signature (a -> StdGen -> b) -> StdGen -> [a -> b]
03:29:16 <monqy> StdGen because of I forgot to make it more general
03:29:18 <CakeProphet> Capitalized_Words_With_Underscores (ugly!)
03:29:31 <CakeProphet> yeah that's totally not an arbitrary distinction Python Style Guide
03:30:05 <elliott> it is ugly
03:30:17 <elliott> monqy: I would make a random monad
03:30:41 <CakeProphet> how is it more_ugly_than_this
03:30:44 <CakeProphet> orThis
03:30:51 <monqy> CakeProphet: reasons
03:30:59 <CakeProphet> what is the objective difference.
03:31:17 <monqy> elliott: it's there partially for historical reasons. originally I was trying to golf it into one line so I could install it without worrying about paste bins
03:31:33 <monqy> elliott: and it seemed shorter than monadic stuff
03:31:36 <zzo38> monqy: You can look at my suggestion for alternative MSE random number functions
03:31:48 <monqy> ?
03:32:10 <zzo38> (Basically, there are pure versions of all the "random_" functions that start with "rand_" instead)
03:32:28 <zzo38> (I also suggested pure versions of the export template functions)
03:32:39 <monqy> now I'm confused
03:35:37 <zzo38> Unfortunately I cannot figure out how to link to it. It is comment 71866 in the MSE forums, in node 4887
03:39:40 <CakeProphet> uh... what.
03:39:44 <CakeProphet> this code. makes no sense.
03:40:08 <Sgeo> Can ais523's VCS be made to work with http://cdn.bitbucket.org/rmacnak/newspeak/downloads/purthesis.pdf ?
03:40:10 -!- GreaseMonkey has joined.
03:41:55 <elliott> Who cares
03:42:05 <elliott> (I might care if you summarised it)
03:42:59 <Sgeo> I can summarize the basic idea of Pur, but not in enough detail to be useful in determining if...
03:43:27 <Sgeo> It's an abstraction over VCSes, and compares Subversion, Git, and Mercurial to try to determine an abstraction for "generic" VCS
03:44:22 <zzo38> This is MSE code, but it could be done in Haskell or other programming languages as well: rand_int(begin: lower_bound, end: upper_bound, seed: seed) - Like random_int but uses a seed parameter. If all parameters are the same the output will be the same every time. Also does for all other random_ functions, have rand_ versions.
03:45:10 <Sgeo> MSE?
03:45:55 <zzo38> Magic Set Editor
03:46:15 <zzo38> I have also been working on TeXnicard which hopes to be different from MSE while usable for similar purposes
03:46:28 <zzo38> You can use whichever one you prefer or both
03:47:07 <zzo38> The GUI design of MSE means a lot of things have been omitted and I have made suggestions which can correct some of these problems, but it still isn't perfect
03:48:10 <elliott> <Sgeo> It's an abstraction over VCSes, and compares Subversion, Git, and Mercurial to try to determine an abstraction for "generic" VCS
03:48:13 <elliott> Sounds boring and inherently limiting
03:55:31 <CakeProphet> is there even like... a problem with current VCS?
03:55:36 <CakeProphet> that needs fixing?
03:56:03 -!- EgoBot has quit (Read error: Connection reset by peer).
03:56:45 -!- EgoBot has joined.
03:57:02 <elliott> CakeProphet: Yes.
03:57:05 <elliott> Massive ones.
03:57:47 <zzo38> Can the GHC plugins API allow making such things as I described for Meta Haskell and so on?
03:58:09 <CakeProphet> elliott: would it be cool if you elaborated?
03:58:28 <CakeProphet> I don't know enough about these problems
03:58:40 <CakeProphet> I'd like to complain about them on #esoteric in the future.
03:58:43 <elliott> CakeProphet: probably, but give me a minute first
03:58:49 <elliott> and there's already a known solution to the problems :)
03:58:55 <CakeProphet> take your time.
03:59:52 <elliott> no, give me a minute as in i'm busy :P
04:00:30 <CakeProphet> that's what I assumed...
04:04:51 * CakeProphet just learned how to fold a burrito.
04:04:55 <CakeProphet> this is an excellent skill to have.
04:08:05 <CakeProphet> as I can now take large blobs of ingredients into a container that is portable and edible.
04:08:53 <CakeProphet> portability is a very important thing for a food to possess, imo.
04:10:16 <zzo38> After I write Haskglk, can they make the Haskell compiler into Glulx, that can use all of the same exported types and functions and so on?
04:10:26 <CakeProphet> I guess edibility is important too, but that's kind of an inherent property of being food.
04:11:11 <CakeProphet> zzo38: I'm not entirely sure what you're talking about but it sounds ridiculous so I'm going to say no.
04:13:18 <zzo38> CakeProphet: Maybe it is ridiculous but maybe it is possible? They could also make it compiling Haskell into other virtual machines too, not only Glulx, but also Java, and so on
04:14:55 <CakeProphet> I guess it's possible in the purest sense.
04:15:05 <zzo38> Haskglk requires your main module to export two things: glkInit :: String; glkMain :: Glk (); but if compiling into Glulx then the glkInit would be useless in that case and glkInitialFile could not be used
04:15:19 <CakeProphet> but probably not going to happen soon or possibly ever.
04:15:23 <CakeProphet> who knows.
04:17:00 <CakeProphet> but I guess a lot of the work has already been done if you use GHC to translate haskell to core.
04:21:03 <zzo38> It is probably possible to compile C or LLVM into Glulx, although the standard library for accessing the system would have to be different. In the case of Haskell, most of the commands in the IO monad would not work (peek and poke could still be used, though). But all the commands in the Glk monad, with the exception of glkInitialFile, could work natively.
04:23:28 <elliott> CakeProphet: 'Fraid it might have to wait until tomorrow
04:23:36 <CakeProphet> NOOOOOO
04:23:40 <CakeProphet> NOW I WILL NEVER KNOW.
04:23:55 <CakeProphet> I am so... carefree right now.
04:24:26 <CakeProphet> without the ugly truth given to me so that I may sulk about it.
04:25:36 <CakeProphet> okay so this code makes no sense.
04:25:49 <zzo38> Outside of the "Dispatch" chapter, you would probably have to rewrite very little to get it to work with Glulx if there is a way to do this compiling.
04:26:09 <CakeProphet> okay so it has a while loop that reads lines from the file and assigns to a variable
04:26:19 <CakeProphet> then it takes that line and splits by \r\n
04:26:23 <CakeProphet> does that make....any sense at all?
04:26:26 <zzo38> (Nothing in the "Dispatch" chapter is exported from the module, except for a few foreign exports.)
04:26:59 <zzo38> (But foreign exports are not exports anyways, they are different)
04:39:48 <zzo38> I have read that a functor is homomorphisms between categories. It says monad in Haskell is functor, too, it is what the class says it is. And I have read that monad axioms with >=> are simply that it forms a category. What categories exactly is this functor mapping? I don't know for sure I don't know category theory perfectly and am a bit confuse
04:43:04 -!- copumpkin has joined.
04:44:41 <CakeProphet> OO no longer makes any sense.
04:44:47 <CakeProphet> I remember it making at least a little sense before.
04:45:01 <CakeProphet> but I've been using Haskell and Perl for far too long
04:45:09 <CakeProphet> I have no idea why I would use a constructor for half of this shit.
04:46:02 <pikhq_> OO is a pitiful attempt at shoehorning stronger typing into the structured languages.
04:46:20 <CakeProphet> zzo38: http://en.wikibooks.org/wiki/Haskell/Category_theory
04:46:49 <CakeProphet> it's a functor from a category to the same cateogry.
04:48:09 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
04:51:49 <zzo38> But I have read that monads with >=> and return also form a category
04:53:10 <zzo38> "We've defined two parts, something that takes objects in Hask to objects in another category (that of Maybe types and functions defined on Maybe types), and something that takes morphisms in Hask to morphisms in this category. So Maybe is a functor." But Maybe is also a monad and later it says monads go from a category to the same category.
05:01:30 <coppro> Maybe is a subcategory of Hask
05:01:50 <coppro> so a functor from Hask to Maybe can be taken as an endofunctor
05:03:19 <zzo38> According to Wikipedia: "Endofunctor: A functor that maps a category to itself." OK, now I can see. Yes it does make sense now
05:07:50 <zzo38> "Monad axioms: Kleisli composition forms a category." (double spacing indicates Haiku lines)
05:09:03 <zzo38> So, I suppose x maps to return . x and composition maps to >=>
05:11:42 <Sgeo> Hask?
05:12:29 <zzo38> Hask is the category of Haskell
05:16:43 <Sgeo> Is Leksah any good these days?
05:17:10 <CakeProphet> this might be the worst code I've ever had to seriously analyze.
05:18:46 -!- azaq231 has quit (Quit: Leaving.).
05:26:31 -!- pikhq has joined.
05:27:00 -!- pikhq_ has quit (Ping timeout: 260 seconds).
05:51:27 <zzo38> Are there bimonads, like there are bifunctors?
05:53:44 <pikhq> Hmm. If future paleontologists looked back on us, they would probably be pretty dang confused by the rather sudden incidence of no third molars in Homo sapiens.
05:55:15 <pikhq> Though... That'd probably be the least of their worries.
05:55:24 <pikhq> "Holy fuck, civilization everywhere".
06:00:14 <zzo38> I noticed that with { f (x:y) = y:[[x]]; f [] = []; } that (join . (f)) and (join . (f >=> f)) and (join . (f >=> f >=> f)) seems same what is this property called?
06:01:57 <zzo38> pikhq: Can you invent stuff for purpose of confusing future paleontologists?
06:03:42 <Sgeo> third molars?
06:03:50 <pikhq> AKA "wisdom teeth".
06:03:52 <Sgeo> Ah
06:04:29 <Sgeo> pikhq, that's depressing
06:06:05 -!- elliott has quit (Ping timeout: 252 seconds).
06:10:40 <CakeProphet> zzo38: the flattening Kleisli indifferene invariant
06:12:09 <CakeProphet> :t id >=> id
06:12:09 <lambdabot> forall (m :: * -> *) c. (Monad m) => m (m c) -> m c
06:12:46 <CakeProphet> :t (id >=> id) [[1,2,3,4],[6,7,8]]
06:12:47 <lambdabot> forall c. (Num c) => [c]
06:12:51 <CakeProphet> > (id >=> id) [[1,2,3,4],[6,7,8]]
06:12:51 <lambdabot> [1,2,3,4,6,7,8]
06:13:35 <CakeProphet> there's your monad defined with Kleisli composition.
06:14:45 <CakeProphet> for functions anyways.
06:15:23 <CakeProphet> :t (>=>)
06:15:24 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
06:15:35 <CakeProphet> er, nevermind, not for functions
06:16:35 -!- nooga has joined.
06:16:43 <CakeProphet> I like how id basically turns a -> into an equality.
06:17:06 <CakeProphet> :t id :: (a -> m b)
06:17:06 <lambdabot> Couldn't match expected type `m b' against inferred type `a'
06:17:06 <lambdabot> `a' is a rigid type variable bound by
06:17:06 <lambdabot> an expression type signature at <interactive>:1:7
06:17:24 <CakeProphet> >_> yeah I didn't think that would work
06:19:05 <CakeProphet> > (id >=> (:[])) 4
06:19:06 <lambdabot> No instance for (GHC.Num.Num [b])
06:19:06 <lambdabot> arising from a use of `e_14' at <inter...
06:19:27 <CakeProphet> > ((:[]) >=> (:[])) [4]
06:19:27 <lambdabot> [[4]]
06:19:30 <CakeProphet> > ((:[]) >=> (:[])) 4
06:19:30 <lambdabot> [4]
06:20:31 <CakeProphet> > fmap (id >=> id) ((:[]) >=> (:[])) [4]
06:20:31 <lambdabot> [4]
06:30:40 <pikhq> ...
06:30:44 <pikhq> Srsly?
06:35:30 <pikhq> Any particular reason for not using join and return?
06:39:22 <CakeProphet> zzo38 was talking about Kleisli composition forming a category or something.
06:39:37 <CakeProphet> so I... made join and return? I don't really know why.
06:39:57 <pikhq> Okay, then.
06:40:35 <CakeProphet> I mean ((:[]) >=> (:[])) looks way cooler than return so I think it's pretty defensible.
06:40:40 <pikhq> Shame that ((:[]) >=> (:[])) only works on [a].
06:40:54 <CakeProphet> it's like a totem pole or something.
06:41:44 <CakeProphet> yeah I'm not entirely sure that you can define return in terms of other monadic operators.
06:44:07 <pikhq> Also, (:[]) suffices. :P
06:45:19 <zzo38> pikhq: Well, that is meaning return is the identity of the >=> so it is suffices of course
06:45:58 <CakeProphet> if you guys keep it up the totem pole is going to be very angry..
06:46:54 <pikhq> :t return >=> return
06:46:55 <lambdabot> forall a (m :: * -> *). (Monad m) => a -> m a
06:46:57 <pikhq> Sure enough.
06:52:38 <CakeProphet> oooooh okay
06:52:39 <CakeProphet> so
06:52:44 <CakeProphet> return = return >=> return
06:52:47 <CakeProphet> it all makes so much sense.
06:53:44 -!- cheater has quit (Ping timeout: 260 seconds).
06:55:52 <zzo38> If you have a "more" command like I described, then if using "more" inside of "case", it would rearrange everything included there in the order of specificness (but leaves it together in that "more" so that other case alternatives given stay where they are), and in all ways of using "more" you can override the position by putting a number at front, such as: data Color = more Colors; 5 color Blue; 1 color Orange;
06:56:10 <zzo38> data Color = more Colors; 5 Colors = Blue; 1 Colors = Orange;
06:57:01 <zzo38> Now it will put Orange first, which is useful if you are deriving Enum
07:03:25 <CakeProphet> how do I decode base64 in sh
07:03:30 <CakeProphet> also, what is a good hex viewer.
07:05:01 <fizzie> base64 -d, hexdump -C | less. (Okay, the last one's not necessarily good. I'd guess "good" depends on what you need to do with it.)
07:05:30 <pikhq> base64 -d (not POSIX, part of GNU coreutils), and od -x (POSIX)
07:05:36 <CakeProphet> decode base 64 and view the result as hex?
07:05:58 <pikhq> base64 -d|od -x
07:06:02 <pikhq> Durp.
07:06:18 <CakeProphet> see what fizzie for context of why I said that.
07:06:24 <CakeProphet> *fizzie said
07:06:27 <pikhq> Ah.
07:06:42 <CakeProphet> I KNOW BASH GAIZ
07:06:45 <CakeProphet> just not every program
07:06:53 <zzo38> What else the "more" would do with automatic ordering for "data", is, duplicates are allowed, multiple constructors can be specified at once, and the order is kept as it is on each line if possible, such as: data T = more Z; Z = Two | Three; Z = Three | Four; Z = One | Two; will put them in order: data T = One | Two | Three | Four;
07:07:02 <fizzie> "od -x" defaults to little-endian 2-byte view, doesn't it? It can do a more sensible hex output, but you need to ask.
07:07:24 <fizzie> "od -t x1" for example.
07:08:06 <CakeProphet> nevermind I apparently don't even need to view hex.
07:08:14 <CakeProphet> THIS CODE MAKES NO FUCKING SENSE AAAAH
07:08:14 <fizzie> "hexdump -C" gives the "traditional" (fsvo) split hex-plus-ascii view, though it's non-POSIX (part of bsdmainutils, here) too.
07:08:21 <pikhq> Oh, bleh, right.
07:08:33 <CakeProphet> man I sure would hate to use something non-POSIX
07:08:47 -!- zzo38 has quit (Remote host closed the connection).
07:08:55 <CakeProphet> it would matter so much to me.
07:09:01 <fizzie> Portability is KEY, especially when you just want to do a thing once on your own system.
07:09:08 <CakeProphet> lolyep
07:09:14 <pikhq> GNU shit is shit, even when it doesn't matter. :)
07:09:45 <pikhq> (though, hexdump is more "traditional tool that POSIX didn't decide to standardise, in favor of a different but mostly the same traditional tool")
07:13:09 -!- pikhq_ has joined.
07:13:26 <fizzie> I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU".
07:14:52 <CakeProphet> line.Contains('|').Equals(true)
07:14:54 <pikhq_> I prefer /bin/busybox base64, because at least Busybox is the only tool ever installed anywhere, right?
07:14:56 <CakeProphet> this code is so horrible
07:14:57 <pikhq_> :P
07:14:58 <CakeProphet> in every way;
07:15:10 -!- pikhq has quit (Read error: Operation timed out).
07:18:17 <fizzie> Add a couple of ".Equals(true)"s to the end for emphasis.
07:21:01 <pikhq_> Hopefully you can even do s/true/.Equals(true)/g for a bit.
07:21:14 <pikhq_> Erm, true.Equals(true)
07:21:36 <CakeProphet> seriously that's code that a novice Java programmer would write.
07:21:38 <CakeProphet> and this is C#.
07:21:56 <fizzie> Java doesn't have monopoly on stupidity, there's plenty of it to go around.
07:21:59 <fizzie> (Cf. PHP.)
07:22:01 <CakeProphet> the poor way to write it in C# would be line.Contains('|') == true
07:22:14 <pikhq_> If anyone has a monopoly on stupidity, it's PHP.
07:23:04 <fizzie> I would think the "natural" poor way to write it in Java would be line.contains("/") == true too.
07:23:23 <CakeProphet> oh yes you're right.
07:23:26 <fizzie> Since I'd guess you can't even .equals() a boolean, it's a primitive type.
07:23:30 <CakeProphet> actually I don't think boolean has methods in Java.
07:23:34 <CakeProphet> yes.
07:23:49 <fizzie> They don't do the "value types with methods" thing in those parts.
07:24:10 <pikhq_> Not to mention the primitives aren't objects.
07:24:33 <fizzie> But no worries, you can always work around it using (new Boolean(line.contains("/")).equals(new Boolean(true)).
07:24:40 <pikhq_> :D
07:25:52 <pikhq_> Hmm. C++... new Boolean(line.contains("/")).operator==(new Boolean(true)) // and leaks memory?
07:26:12 <pikhq_> Erm.
07:26:16 <pikhq_> s/./->/
07:26:31 <pikhq_> C++: because fuck you.
07:30:20 <CakeProphet> new Boolean(line.Contains((CharSequence)(new StringBuilder((CharSequence)(new String("/")))).Equals(new Boolean(new String("true")))
07:31:10 <CakeProphet> it's better to expose the interfaces instead of those nasty concrete classes.
07:31:42 <pikhq_> Needs moar factories.
07:33:00 -!- Lymee has quit (Ping timeout: 260 seconds).
07:33:22 <CakeProphet> AbstractBabyFactory
07:34:05 <CakeProphet> public class YourMom extends MyPenis implements AbstractBabyFactory
07:34:37 <fizzie> { std::auto_ptr< Box<bool>* > b1 = new Box(line.contains("/") /* template param inference, ooh */); std::auto_ptr< Box<bool>* > b2 = new Box(true); b1->operator==(b2); } /* commit message: "fixed the leak" */
07:35:12 <fizzie> (Disclaimer: should probably use some sort of standard "Box" out of Boost or something.)
07:38:28 -!- cheater has joined.
07:43:55 -!- dbc has joined.
07:44:07 <CakeProphet> wow: http://remysharp.com/2007/11/14/base64-decode-to-file/
07:44:17 <CakeProphet> obviously the best way to do it.
07:45:29 <CakeProphet> aside from not using base64 -d, he also doesn't even use -p with perl
07:45:57 <CakeProphet> I should leave an strongly-worded reply.
07:50:07 <CakeProphet> @instances-importing Monad Data.Set
07:50:07 <lambdabot> Couldn't find class `Data.Set'. Try @instances-importing
07:50:15 <CakeProphet> @instances-importing Data.Set Monad
07:50:16 <lambdabot> ((->) r), ArrowMonad a, ContT r m, Either e, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, ST s, StateT s m, WriterT w m, []
07:50:39 <CakeProphet> no Set monad? :(
07:50:46 -!- dbc has quit (Quit: Seeeeeya).
07:57:04 <CakeProphet> :t (\x y -> fmap (join.y) x)
07:57:05 <lambdabot> forall (m :: * -> *) a a1 (f :: * -> *). (Monad m, Functor f) => f a1 -> (a1 -> m (m a)) -> f (m a)
07:57:30 <CakeProphet> :t (\x y -> join . fmap $ y x
07:57:31 <lambdabot> parse error (possibly incorrect indentation)
07:57:35 <CakeProphet> :t (\x y -> join . fmap $ y x)
07:57:36 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m a)
07:57:36 <lambdabot> Probable cause: `fmap' is applied to too few arguments
07:57:36 <lambdabot> In the second argument of `(.)', namely `fmap'
07:57:55 <CakeProphet> :t (\x y -> join . fmap y $ x)
07:57:56 <lambdabot> forall (m :: * -> *) a a1. (Monad m, Functor m) => m a1 -> (a1 -> m a) -> m a
08:00:58 <CakeProphet> I think whenever I consider making something an instance of Monad I'll first consider how to define join and fmap
08:01:10 <CakeProphet> because they're a little more natural to figure out than bind.
08:08:00 <fizzie> CakeProphet: Not only that, but the code as written doesn't work if the lines of the text aren't wrapped on the 3-byte (4-character) base64 boundaries, since it'll try to decode each line independently.
08:17:06 -!- BeholdMyGlory has joined.
08:39:14 -!- GreaseMonkey has quit (Quit: The Other Game).
08:43:04 <Sgeo> "So, unless first-class modules are something you get excited about, or you need Java interop for something, Scala isn't really worth the effort if you're already using Haskell, except as another excuse for broadening your experience of languages."
08:43:16 <Sgeo> Butbut..... I _do_ get excited over first-class modules!
08:48:56 -!- Lymee has joined.
09:09:26 -!- augur has quit (Remote host closed the connection).
09:16:59 -!- nooga has quit (Ping timeout: 246 seconds).
09:19:23 -!- oerjan has joined.
09:25:17 -!- itidus21 has joined.
09:28:03 -!- itidus20 has quit (Ping timeout: 240 seconds).
09:28:18 -!- Patashu has joined.
09:30:13 <Patashu> I've coded an algorithm for my proto-RTS whereby a unit behind other units will curve around them to reach its destination (if its next step is blocked it tries the step + and - a slight change until it finds one that works or gives up). Normally it works OK even on corners but sometimes it gets wedged and vibrates angrily on the spot. I was wondering what the 'most elegant' way to detect
09:30:13 <Patashu> such buzzing and fix it would be
09:32:38 <Patashu> Well, detecting is easy actually, I can just take a snapshot of position every X frames and compare to the present, if it's the same I'm stuck. What should the correction strategy be...
09:33:16 <Patashu> Maybe pretending the other units are larger more and more until you make progress? Let's try that
09:37:56 -!- Vorpal has joined.
09:43:06 -!- augur has joined.
09:51:42 * Sgeo wants to try Dylan
10:11:01 <Patashu> Hmm, I have an idea
10:11:22 <Patashu> If I detect I'm stuck, look for the direction which I can move the furthest in, move that way for a while then try again
10:15:23 -!- nooga has joined.
10:19:12 -!- augur has quit (Remote host closed the connection).
10:42:28 -!- FireFly has joined.
10:42:47 -!- cheater has quit (Remote host closed the connection).
10:45:32 -!- cheater has joined.
10:52:59 -!- yorick_ has changed nick to yorick.
11:13:16 <Patashu> Got it working
11:17:04 -!- monqy has quit (Quit: hello).
11:20:27 -!- cheater has quit (Remote host closed the connection).
11:21:28 -!- cheater has joined.
11:23:38 -!- nooga has quit (Ping timeout: 245 seconds).
11:23:55 * Sgeo wants Dylan to not be a dead language
11:36:06 -!- itidus21 has changed nick to itidus20.
11:41:40 -!- sllide has joined.
11:43:17 -!- oerjan has quit (Quit: leaving).
11:56:18 -!- boily has joined.
12:04:44 -!- nooga has joined.
12:35:35 -!- nooga has quit (Ping timeout: 250 seconds).
12:50:51 -!- nooga has joined.
13:46:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:54:53 -!- Patashu has quit (Ping timeout: 245 seconds).
14:01:34 -!- ais523 has joined.
14:10:52 -!- ais523 has quit (Read error: Connection reset by peer).
14:12:38 -!- ais523 has joined.
14:18:42 -!- copumpkin has joined.
14:18:46 -!- copumpkin has quit (Changing host).
14:18:46 -!- copumpkin has joined.
14:36:20 -!- Phantom_Hoover has joined.
14:37:09 -!- augur has joined.
14:44:45 -!- augur has quit (Remote host closed the connection).
15:00:17 -!- ais523 has quit (Remote host closed the connection).
15:10:39 -!- zzo38 has joined.
15:32:57 <zzo38> I have a list of "You know you've been in Japan too long when..." and I have never been in Japan but a few of the things in that list are things I have sometimes done.
15:42:06 <Phantom_Hoover> :O
15:44:14 -!- nooga has quit (Quit: Lost terminal).
15:47:12 <zzo38> I have recorded part of the D&D game.
15:48:01 <Phantom_Hoover> This can only be hilarious.
15:48:25 <zzo38> I am doing typing more recording now.
15:55:02 <zzo38> Spells I used during this session: My Light, Touch of Health, Object Reading, Pyrotechnics, Dismiss Psionics, Major Creation. Can you understand their uses?
15:55:27 -!- ais523 has joined.
15:57:39 -!- augur has joined.
16:07:47 -!- quintopia has quit (Ping timeout: 252 seconds).
16:08:21 <zzo38> Do you know how to help with this document anything that could be rewritten a clearer way or in a better way of writing story?
16:08:25 <zzo38> http://zzo38computer.cjb.net/dnd/recording/level20.tex
16:09:10 -!- quintopia has joined.
16:09:10 -!- quintopia has quit (Changing host).
16:09:10 -!- quintopia has joined.
16:24:30 -!- derrik has joined.
16:38:22 <Gregor> How to Fail 101: Write the A* pathfinding algorithm but with restrictions on which direction you're allowed to move. Do not take those restrictions into account in the heuristic.
16:41:21 <ais523> Gregor: does that actually make it wrong? or just inefficient?
16:41:27 <ais523> (as in, which direction was the heuristic wrong in?)
16:42:43 <Gregor> It makes it unusably inefficient. It will basically search the entire map, desperately pleading with itself as one part of the algorithm makes it go farther while the other says "no dawg, you should go that way LOL"
16:44:08 <zzo38> I think too many paragraphs begin with "Also"
16:44:36 <zzo38> (That is, in the document I linked)
16:55:18 <ais523> haha, and we see what and who is responsible for the PHP crypt() security bug: http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/php_crypt_r.c?r1=314438&r2=314437&pathrev=314438
16:55:25 <ais523> that edit is amazing
16:55:29 -!- CakeProphet has quit (Ping timeout: 246 seconds).
16:56:21 <Gregor> Woooo pathfinding
17:18:12 -!- elliott has joined.
17:26:48 <elliott> `addquote <fizzie> I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU".
17:26:52 <HackEgo> 619) <fizzie> I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU".
17:28:17 <elliott> 07:50:15: <CakeProphet> @instances-importing Data.Set Monad
17:28:17 <elliott> 07:50:16: <lambdabot> ((->) r), ArrowMonad a, ContT r m, Either e, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, ST s, StateT s m, WriterT w m, []
17:28:17 <elliott> 07:50:39: <CakeProphet> no Set monad? :(
17:28:20 <elliott> cannot be done
17:28:59 <elliott> 08:43:04: <Sgeo> "So, unless first-class modules are something you get excited about, or you need Java interop for something, Scala isn't really worth the effort if you're already using Haskell, except as another excuse for broadening your experience of languages."
17:28:59 <elliott> lol, yeah, because scala is JUST AS GOOD as haskell in every other respect
17:29:11 <elliott> apart from being impure. and having pointless OO crap. and relying on horrible java libraries.
17:29:15 <elliott> and being way slower.
17:29:22 <Deewiant> That's not what that implies
17:29:42 <Deewiant> In fact, it specifically implies that Scala is worse, or at least no better, than Haskell :-P
17:29:52 <elliott> Gregor: how's pathfinding
17:30:09 <elliott> Deewiant: Yeah, but it also implies that if first-class modules excite you then you should totally consider ditching Haskell for Scala
17:30:14 <elliott> Which is stupid
17:30:29 <Deewiant> I think it just implies that you should take a look at it
17:30:43 <Deewiant> Which is fine IMO, for a language feature one finds exciting
17:31:05 <zzo38> I saw the description of power set functor, so why is there no set monad? I do not completely understand category theory
17:31:12 <elliott> Deewiant: Well, Sgeo certainly did not interpret it that way :P
17:31:19 <elliott> zzo38: there is not one in haskell because Set has an Ord constraint
17:31:41 <Deewiant> elliott: If you say so; I didn't interpret him like that :-P
17:32:27 <Gregor> elliott: Works
17:32:39 <elliott> `addquote <Phantom_Hoover> FFS, building a perpetual motion machine should not be this hard.
17:32:41 <HackEgo> 620) <Phantom_Hoover> FFS, building a perpetual motion machine should not be this hard.
17:32:42 <elliott> Gregor: Is it Haskell yet
17:32:58 <Gregor> elliott: No, I said it works LOLOLOL THIS DOESN'T ACTUALLY MAKE SENSE
17:33:13 <elliott> Gregor: wot
17:36:55 -!- zzo38 has quit (Remote host closed the connection).
17:41:51 <Phantom_Hoover> Help I started reading Project Rho and I can't stop.
17:43:01 <elliott> Friendship Project Rho.
17:43:12 <Gregor> elliott: By setting the pathfinding action to build instead of advance, I can cover the entire world in garbage!
17:43:14 <elliott> What _is_ Project Rho.
17:43:25 <elliott> Gregor: Sweet. Link me to the code so I can rip it off.
17:43:41 <Gregor> elliott: https://bitbucket.org/GregorR/rezzo-gragents
17:43:45 <Gregor> It's just A*
17:43:48 <elliott> "gragents"
17:43:50 <elliott> R usrs.
17:44:25 <Gregor> Gregor Richards' Agents
17:44:30 <elliott> Suuuuuuuuuuuuure
17:44:58 <Gregor> It was originally grwarriors
17:44:58 <elliott> Strangely I've never really used pathfinding much before. I wonder why not. I should implement something nice instead of A* because I'm a hipster.
17:44:59 <Gregor> So yeah
17:45:08 <elliott> Gregor: You realise you already have y
17:45:18 <elliott> Gregor: You realise you already have a private namespace, you don't need to prefix things, this isn't C :P
17:45:33 <Gregor> This is C ...
17:45:39 <elliott> Gregor: ...no, this is bitbucket.
17:45:51 <Gregor> Oh, you mean I could barf it into rezzo.
17:45:58 <elliott> Your "rezzo-agents" will not conflict with any other "rezzo-agents", is what I am saying :P
17:46:02 <Gregor> Ohohoh
17:46:13 <Gregor> If I just called it "agents", it wouldn't be clear *shrugs*
17:46:17 <Gregor> gragents I'll admit is overkill :P
17:46:20 <elliott> I said "rezzo-agents" :P
17:46:28 <Phantom_Hoover> <elliott> What _is_ Project Rho.
17:46:32 <Phantom_Hoover> The rocket thing?
17:46:39 <elliott> Phantom_Hoover: What rocket thing?
17:46:53 <Deewiant> elliott: http://www.projectrho.com/rocket/
17:46:53 <Phantom_Hoover> http://www.projectrho.com/rocket/
17:46:56 <Phantom_Hoover> This rocket thing.
17:47:06 <elliott> Hmm, I think I have seen this page.
17:48:07 <elliott> void horizontalShimmy()
17:48:10 <elliott> Gregor really likes shimmies.
17:48:31 -!- nooga has joined.
17:48:35 <nooga> fuk
17:48:52 <nooga> i leaned my keyboard and fuked the key
17:49:03 <elliott> Is nooga ever not drunk when coming here any more.
17:49:13 <nooga> i'mnot drunk
17:49:17 <nooga> fuk
17:49:18 <nooga> :D
17:49:23 <nooga> not drunk
17:49:35 <elliott> Is your c key broken?
17:49:44 <nooga> that's orret
17:49:58 <Phantom_Hoover> nooga, so are your days of writing C programs oveR?
17:50:00 <Phantom_Hoover> *ovr
17:50:03 <Phantom_Hoover> *ver
17:50:05 <Phantom_Hoover> *over
17:50:22 <nooga> Phantom_Hoover: in fat, it was my first thought after disovering it
17:50:39 <nooga> i mean that the key is broken
17:54:03 <nooga> oh cruel world
17:54:45 -!- ais523_ has joined.
17:55:03 -!- ais523 has quit (Disconnected by services).
17:55:05 -!- ais523_ has changed nick to ais523.
17:57:42 <elliott> hi ais523
17:57:45 <elliott> nooga: "c"
17:57:56 <ais523> hi; computer overheated because the fan forgot to start
17:58:07 <ais523> it's OK now
17:58:38 <nooga> cccc
17:58:39 <elliott> ais523: you know how you said that microchanges could use a different hash function to become the hash of their parent plus an index?
17:58:49 <nooga> i can write c now
17:59:14 <nooga> i removed the key and touch the switch with finger
17:59:25 <elliott> nooga: I did that for I think e for a while
17:59:29 <elliott> I am really good at computer typing
17:59:32 <nooga> feels like a little nipple
18:00:31 <Phantom_Hoover> I always feel typing-inadequate.
18:00:59 <elliott> ais523 knows all too well the stories of that keyboard i have where like half the keys didn't stick on properly
18:04:20 <Phantom_Hoover> It's a tale of perseverance against impossible odds.
18:04:54 <Phantom_Hoover> Someone in America is probably making it into a film as we speak.
18:06:13 <nooga> cool
18:10:43 -!- Nisstyre has quit (Ping timeout: 245 seconds).
18:14:06 -!- boily has quit (Ping timeout: 260 seconds).
18:16:14 -!- yretssin has joined.
18:18:38 <Gregor> Electrons are so fragile X-D
18:19:20 <elliott> `addquote <Gregor> Electrons are so fragile X-D
18:19:22 <HackEgo> 621) <Gregor> Electrons are so fragile X-D
18:19:46 <elliott> Gregor: One problem is that getting around ANYWHERE involves breaking a wire which will probably lead to the death of any electron on it :P
18:19:56 <elliott> (But you can rebuild it in two ticks, so it's not that bad)
18:20:22 <Gregor> The main thing for me right now is the 1-or-2-neighbors rule.
18:20:37 <Gregor> I keep building structures where electrons have too many electroneighbors.
18:21:12 <fizzie> A "gragent" is an extra-groovy agent.
18:21:34 <fizzie> Like a "Gregor" is an extra-groovy egor.
18:22:00 <Gregor> Egor ain't got nothin' on me.
18:23:57 <Gregor> I almost want to put the world size in the server message, so you can make clients that scale without having to determine dynamically >_>
18:25:58 <elliott> Gregor: You can do it fairly easily...
18:26:06 <elliott> Bases and shit don't move, so it's easy to determine when you've looped
18:26:21 <Gregor> Yeah, but you've got enough problems to solve without solving that one :P
18:27:07 -!- cheater has quit (Remote host closed the connection).
18:27:50 -!- cheater has joined.
18:28:33 <elliott> Gregor: Well.
18:28:38 <elliott> Gregor: Most of the time it doesn't really even matter?
18:28:46 <elliott> You don't CARE how big the world is, you'll be looking for specific things.
18:28:53 <Gregor> That's a fair point.
18:29:05 <elliott> And if you really want to know it's not THAT hard to figure it out at all :P
18:29:22 <elliott> Unless a ton of people lose before you wrap around I guess but come on.
18:30:10 -!- boily has joined.
18:30:22 <Gregor> 'course it makes the datastructure more complicated too ...
18:31:28 <Gregor> NOWAIT, you totally care how big the world is, getting to something will be wildly inefficient if you go all the way across the map instead of looping.
18:31:54 <elliott> Gregor: What?
18:32:00 <elliott> Gregor: Of course navigation should be non-trivial...
18:32:03 <elliott> That's why the world isn't too big :P
18:32:35 <Gregor> I'm not just talkin' nontrivial, I'm talkin' you-must-detect-the-world-size-to-do-literally-freakin'-anything
18:32:46 <Gregor> Otherwise you'll always be going the wrong way.
18:32:49 <Gregor> Well, not always.
18:32:53 <Gregor> But a fair amount of the time.
18:33:03 <Gregor> Since the goal is not always to go to a place, then back to your base, then back to the place.
18:33:13 <Gregor> You care about local distances, not distances from zero.
18:33:17 <elliott> Phantom_Hoover: Please tell Gregor that navigating a torus does not involve knowing its size :
18:33:18 <elliott> :P
18:33:28 <Gregor> No, it doesn't, but navigating it even remotely efficiently does.
18:33:50 <elliott> Phantom_Hoover: Tell him that's not true either :P Unless Gregor has a really weird navigation algorithm in mind...
18:33:53 <Gregor> X_X
18:34:05 <Gregor> If you're at point X and you want to get to point Y, you need to know whether it's more efficient to go your idea of the "direct" way there, or around the back.
18:34:13 <Gregor> (i.e. the exact opposite direction)
18:34:22 <Gregor> You have no way of knowing which is better without knowing how big the world is.
18:35:04 <Phantom_Hoover> Hello guys are you asking my stuff.
18:35:04 <Phantom_Hoover> *me
18:35:13 <Gregor> Phantom_Hoover: elliott is being an idiot
18:35:25 <Phantom_Hoover> Looks like it.
18:35:29 <elliott> Hmmmmmmmmmmmmmmmmmm
18:35:34 <elliott> Gregor: Well, yeah, but that's just an optimisation
18:35:37 <Gregor> X_X
18:35:50 <elliott> With a decent-size world you won't waste THAT much time :P
18:36:04 <elliott> But anyway if you want to remove all the interesting coding challenge from the game BE MY GUEST
18:36:22 <Gregor> You only think that's the interesting coding challenge because you've done NO FUCKING CODE
18:37:01 <elliott> Gregor: And you have? You've implemented A* :P
18:37:28 <Gregor> And map-recording, and connecting electrons to one's base.
18:37:36 <Gregor> So yes.
18:37:38 <Gregor> A fuckload more than you.
18:37:43 <elliott> Map-recording is... not really anything.
18:37:44 <Phantom_Hoover> The world ends the world ends the world ends / Not with a bang but with a bicker.
18:37:50 <Gregor> elliott: It is if you don't know the size.
18:38:03 <elliott> Frankly, matches will last long enough that the navigation required to determine the world size is negligible.
18:38:43 <Gregor> Oy vey
18:38:53 <Phantom_Hoover> Oh FFS, I got the quote wrong.
18:39:06 <Gregor> Phantom_Hoover: ... fizzle? :P
18:39:16 <elliott> Phantom_Hoover: I was wondering if you were quoting some derivative work or something.
18:39:28 <Phantom_Hoover> Yes.
18:40:08 <elliott> ais523: you may be interested in http://stackoverflow.com/questions/2786899/fastest-sort-of-fixed-length-6-int-array/ (GPU-related)
18:40:20 <elliott> ais523: Eagerly await your Checkout solution :P
18:40:48 <ais523> elliott: you clearly do it with parallel compare-and-swap
18:41:23 <elliott> The sort6_sorting_network_v4 seems to be the fastest, which seems to do that
18:41:25 <ais523> the first answer has the correct answer
18:41:33 <ais523> well, correct approach
18:41:35 <elliott> Right
18:41:38 <ais523> I'm not sure if the answer given there is the very best
18:41:44 <elliott> ais523: Well, the question has a faster one
18:41:49 <ais523> however, on a GPU, you'd want to do it in parallel
18:41:54 <ais523> and that's doing it in series for some insane reason
18:41:56 <elliott> (Than the first answer)
18:42:46 <elliott> oh, and http://www.reddit.com/r/programming/comments/jsmog/fastest_sort_of_fixed_length_6_int_array/c2et4sm too
18:43:17 <ais523> interestingly, the program in the question is in C not in CUDA
18:43:20 <ais523> so parallelism isn't expressible
18:48:28 -!- derrik has quit (Quit: done).
18:56:15 <elliott> hmm, how does unicode text rendering in terminals even work? (I realise that it doesn't, in most of them)
18:56:31 <elliott> it doesn't seem like you'd be able to keep a consistent terminal grid while obeying RTL and the like
18:57:56 <fizzie> "It doesn't" is probably very close, especially when it comes to direction-changing.
18:58:08 <fizzie> Sometimes the half-width/full-width stuff works.
18:58:55 <olsner> usually works fine for the ASCII part of unicode :P
19:04:12 <elliott> fizzie: Well, yes.
19:04:17 <elliott> fizzie: But I want it to work.
19:04:38 <elliott> I guess what I want to ask is "how SHOULD it work", and I guess "how does it work in terminals that at least partially Get It Right".
19:05:02 -!- azaq23 has joined.
19:06:40 <fizzie> The fullwidth latin letters seem to borderline work in Vim/rxvt-unicode. The cursor block is a bit wacky though.
19:06:50 <fizzie> I don't think it tries to do direction "natively".
19:06:59 <nooga> im trying to make clang together with libc to handle nul terminated strings with length prepended
19:08:39 <olsner> I love how weird projects like that pop up regularly around here
19:08:40 <elliott> fizzie: I'm talking more mlterm, uuterm and the like.
19:08:53 * olsner isn't doing enough of them
19:08:59 <nooga> what projects?
19:09:25 <olsner> nooga: like trying to make clang and libc handle length-prefixed strings
19:09:50 <nooga> ah
19:12:43 -!- myndzi\ has joined.
19:12:59 <nooga> and then utf-8 and then i can write the kernel and bootstrap libc
19:13:53 <elliott> why not just write your own library
19:15:18 -!- myndzi has quit (Ping timeout: 258 seconds).
19:15:31 <nooga> because i want that handled on the lowest level possible and because i'm looking for a reason to play with osdev
19:16:22 <elliott> why bother hacking glibc to do it
19:16:24 <elliott> waste of time
19:16:57 <nooga> the more stupid reason the better
19:19:03 -!- yretssin has quit (Ping timeout: 245 seconds).
19:21:44 -!- yretssin has joined.
19:25:40 <olsner> nooga: hmm, so you're writing an operating system? and the libc/clang thing is for the kernel?
19:25:48 <nooga> yep
19:27:19 <olsner> why not just reimplement the specific stuff you need instead of trying to port glibc(?) to kernel space?
19:28:50 <elliott> At least modify a libc defined for it
19:28:54 <elliott> Like PDCLib
19:28:57 <elliott> [asterisk]designed
19:29:03 <elliott> glibc isn't meant to run in kernel space.
19:30:15 <nooga> elliott: i didn't say anything about glibc
19:30:46 <elliott> You said libc. Porting BSD libc is laughable, and you didn't mention another specific libc so I was not about to go assuming it was one that you're unlikely to be running as your system libc
19:31:57 <olsner> most of the stuff in libc is useless anyway, just throw it out and build your own optimalized assembler memcpy
19:32:18 <nooga> i use newlib ;p
19:33:43 <elliott> olsner: So what happened to your oS
19:33:49 <elliott> [asterisk]OS
19:34:04 <olsner> elliott: it's moving steadily forward at 0 velocity
19:36:33 <olsner> hmm... last thing that happened was iirc that I tried to do some coding on my mac but apparently homebrew didn't have a formula for bochs so I had to write my own and the result failed to boot :)
19:36:51 <olsner> homebrew: clearly superiour to macports
19:37:08 <elliott> OS X: so terrible
19:37:22 <elliott> You should just try and get a Debian chroot working or something :P
19:37:37 <quintopia> elliott: when will you acquire a working keyboard?
19:37:38 -!- boily has quit (Ping timeout: 258 seconds).
19:37:39 <elliott> Debian GNU/Mach
19:37:48 <elliott> quintopia: Soon.
19:37:53 <elliott> First I will deacquire a working laptop.
19:37:59 <olsner> ooh, that sounds convenient though ... do debian chroots work in HFS filesystems?
19:38:03 <elliott> Then later I will reacquire it, or more likely a replaced one of identical furnishing.
19:38:17 <quintopia> what will you use in the meantime
19:38:26 <elliott> olsner: I... doubt Debian depends on any capitalisation clashes? I somewhat doubt the whole toolchain will spit out Mach-O properly though
19:38:33 <elliott> I mean, Debian is all ELF all the time, as far as I know
19:38:37 <elliott> quintopia: My older laptop
19:38:57 <elliott> olsner: You could write an ELF loader like Gregor did for Windows.
19:38:58 <quintopia> elliott: do you know any pixel artists
19:38:59 <elliott> Or just port his.
19:39:02 <olsner> oh, right. the Mach-O thing ... how hard could it be to acquire an ELF loader for OS X?
19:39:04 <elliott> quintopia: Why
19:39:10 <nooga> why
19:39:27 <olsner> or just write my own os x kernel module for it, how hard could *that* be
19:39:30 <nooga> it's completely possible to build nice compiler stack on OS X
19:39:41 <Gregor> (I did in fact write an ELF loader for Mac OS X too)
19:39:50 <olsner> (homebrew: just write an ELF loader and install a debian chroot to work around one missing package)
19:40:03 <olsner> clearly superior to macports again
19:40:29 <olsner> Gregor: cool stuff, did it work?
19:40:54 <nooga> oh right
19:40:58 <Gregor> olsner: Yup
19:41:01 <nooga> how is Microcosm doing?
19:41:29 <Gregor> nooga: Ask Vorpal :P
19:41:52 <olsner> hmm, otoh... a debian chroot would have *Linux* ELFs, right?
19:42:44 <elliott> Just a matter of translating syscalls, although at this point you're practically looking for Microcosm
19:43:02 <elliott> Gregor: Does the ELF loader have any kind of syscall translation mechanism? :P
19:43:51 <olsner> plugging in a dvso shouldn't be rocket science, but even then there'd be so many tricksy system calls to implement
19:43:51 <Gregor> elliott: Why would it?
19:44:07 <Gregor> elliott: It has the ability to transparently load host libraries as if they were ELF libraries.
19:44:34 <elliott> Gregor: Hmm
19:44:41 <elliott> Gregor: That should be enough to load anything that uses libc, right?
19:44:47 -!- yretssin has changed nick to Nisstyre.
19:44:51 <elliott> Gregor: Assuming that it doesn't use glibc-specific stuff
19:45:21 <olsner> but what's microcosm?
19:45:22 <elliott> Hmm
19:45:23 <fizzie> Clearly what you *should* do is to try to get MkLinux working under OS X. (MkLinux runs a Linux 2.0 series kernel under the OSF Mach 3 microkernel; clearly it's a trivial matter to bump that to Linux 3 on OS X's kernel.)
19:45:27 <elliott> Debian/kFreeBSD uses BSD libc, doesn't it?
19:45:46 <elliott> So ostensibly you should be able to get a Debian ELF chroot working with Gregor's loader...
19:46:31 <Gregor> elliott: That's a stretch.
19:46:36 <Gregor> elliott: And no, Debian/kFreeBSD uses glibc.
19:46:57 <Gregor> elliott: The problem isn't the functions, it's the structures.
19:47:09 <elliott> Gregor: glibc works on FreeBSD?
19:47:12 <Gregor> Yes
19:47:13 <elliott> Huh. And oh right.
19:47:19 <elliott> musl is ABI-compatible with glibc
19:47:21 <elliott> But that's not helpful :P
19:47:28 <elliott> Gregor: So I guess glibc miiight work on OS X? Same syscalls, roughly, right? :P
19:47:41 -!- Taneb|Kindle has joined.
19:47:42 <Gregor> G'luck with that.
19:47:53 <elliott> It's olsner's task, not mine :)
19:48:05 <elliott> "To build gcc and glibc on Mac OS X, you'll need to install a few gnu utilities:"
19:48:22 <olsner> lemme guess, a few == all of them?
19:48:25 <elliott> Doesn't seem to actually tell you how to do it, but :P
19:48:51 <elliott> olsner: OK so here is your task: Get glibc working on OS X with Gregor's ELF loader. Make sure a few GNU things compile with it and libraries compiled with it. BOOTSTRAP DEBIAN
19:48:52 <Vorpal> <nooga> how is Microcosm doing? <Gregor> nooga: Ask Vorpal :P <-- what? You never did anything on the design
19:48:57 <elliott> Then just trash it all and install Debian proper.
19:49:05 <Gregor> Vorpal: That was the point X-P
19:49:51 <olsner> the original issue was that my homebrew formula for bochs was missing something ... now I'm porting debian to a new platform :>
19:50:02 <Vorpal> Gregor, not implementation. Design I said.
19:50:04 <fizzie> "-- officially supported hardware includes: x86, Motorola 680x0, DEC Alpha, PowerPC, ETRAX CRIS, s390, and SPARC. It officially supports the Hurd and Linux kernels. Additionally, there are heavily patched versions that run on the kernels of FreeBSD and NetBSD (from which Debian GNU/kFreeBSD and Debian GNU/NetBSD systems are built, respectively), as well as the kernel of OpenSolaris.[9] It is also used (in an edited form) and named libroot.so in BeOS and Haiku."
19:50:40 <Vorpal> Gregor, I said I was willing to work on the implementation but that I lacked (and still lack) the knowledge to do the design of it.
19:51:07 <elliott> olsner: You could also just use Gentoo Prefix, which supports OS X, but that's... Gentoo.
19:51:30 <elliott> olsner: You may also want to try NetBSD's pkgsrc, which supports OS X.
19:51:33 <fizzie> Or you could just, you know, install Bochs.
19:51:43 <elliott> fizzie: The problem is that all package managers for OS X suck :P
19:51:53 <fizzie> Yes, well, there's this thing of not using any.
19:52:08 <elliott> olsner: Oh, and Nix/Nixpkgs support OS X fully; that's a nice one.
19:52:09 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
19:52:23 <Gregor> elliott: Mind you, getting ELFs that load in the ELF loader is a trick anyway :P
19:52:35 <Gregor> elliott: Since to my knowledge GCC doesn't have an elf-darwin target.
19:52:44 <Gregor> So you have to make generic ELF binaries that "happen" to be good enough.]
19:52:46 <fizzie> OS X is an officially supported Bochs platform, you shouldn't need to get any help from a package manager.
19:52:55 <elliott> fizzie: Well, yes, but.
19:53:02 <fizzie> Yes, yes, it's the principle of it.
19:53:07 <olsner> officially supported? I don't think so, it doesn't work anyway
19:53:16 <Phantom_Hoover> http://esolangs.org/w/index.php?title=Tedius&curid=4163&diff=24402&oldid=24385
19:53:26 <Phantom_Hoover> Tedius has gone from 'meh' bad to hilarious bad.
19:53:29 <fizzie> http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html "1.8. Supported Platforms: Emmanuel Mailliard ported the Macintosh code to MacOS X with Carbon API. Jeremy Parsons (Br'fin) has been maintaining the MacOS X port since March 2002; see Section 3.4.7 for compile instructions."
19:53:35 <elliott> olsner: It comes in .app form I believ.
19:53:36 <elliott> e.
19:53:50 <elliott> Phantom_Hoover: wtf?
19:53:53 <elliott> pila started editing it
19:53:55 <olsner> the mac parts are broken, that is... the X UI works if you disable all the mac stuff that doesn't compile
19:53:56 <elliott> but plms made those two edits
19:53:56 <fizzie> It has a thing that makes a bundle of it, yes.
19:54:24 <elliott> olsner: Just get a binary?
19:54:28 <fizzie> It might be that the port has bitrotteded away.
19:55:16 <fizzie> There's a stack overflow (of all things) thread about compiling it on Snow Leopard; http://stackoverflow.com/questions/1677324/compiling-bochs-on-mac-os-x-snow-leopard
19:55:25 <fizzie> Some seem to have managed.
19:55:38 <fizzie> With -m32 being the most important magic flag.
19:56:42 <elliott> Isn't bochs itself kind of bitrotten
19:57:07 <olsner> well, I think I have those fixes because the formula I made actually builds
19:57:16 <olsner> and runs, just not my OS
19:58:29 <fizzie> Last update in trunk 9 hours ago, so apparently they're strill twiddling on it.
19:58:36 <fizzie> Last release from February, though.
20:00:31 -!- elliott has quit (Remote host closed the connection).
20:01:03 -!- elliott has joined.
20:02:24 <elliott> can you implement the lambda calculus in pointers
20:02:35 <elliott> thTAS THE QUESTION ???\
20:02:40 -!- azaq231 has joined.
20:02:42 -!- azaq23 has quit (Ping timeout: 264 seconds).
20:03:49 -!- oerjan has joined.
20:07:07 <elliott> ais523: oh I forgot I even said anything about scapegoat.... before i read the logs...
20:07:37 <oerjan> elliott, forgetting scapegoat exists for fun and profit
20:10:42 -!- Nisstyre has quit (Read error: Connection reset by peer).
20:10:45 * Sgeo wonders what statically-typed fun and dynamic languages are out there
20:10:55 <Sgeo> Would Dylan fit?
20:10:59 <elliott> I can't handle it any more.
20:11:56 <olsner> elliott: handle what?
20:12:08 <elliott> Sgeo.
20:12:27 <oerjan> Sgeo: some consider haskell to count.
20:12:29 <olsner> what's it done now?
20:12:52 <elliott> oerjan: no he wants a language that will make him start programming rather than learning more languages, not one that will "break his brain" tons ("" marks direct quote)
20:13:05 <olsner> oh, he spoke just before elliott there, almost missed that
20:13:06 <elliott> this is why he has gone from "learning" ruby to trying to find another language to "learn"
20:13:27 <oerjan> i don't know how to break procrastination without breaking brain
20:13:54 <oerjan> actually i don't know how to do either in any case.
20:14:39 <elliott> learning haskell apparently breaks your brain. with mathematical category throy.
20:14:45 <elliott> categoy throy. what was it?
20:15:09 <elliott> oh well, he already "knows" Haskell, he managed to write cat in about half an hour after all
20:22:16 -!- azaq23 has joined.
20:23:08 -!- azaq231 has quit (Ping timeout: 258 seconds).
20:30:07 <Gregor> elliott: It's because pointers are considerably more useful than Lambda calculus.
20:31:09 <elliott> Gregor: Right. Instead of having lambdas built in and pointers in libraries (Data.IORef, Control.Concurrent.MVar, Control.Concurrent.STM.TVar, Foreign.Ptr, Foreign.Storable), it should be the other way around.
20:31:13 <elliott> Control.Lambda
20:31:22 <elliott> THEN Haskell would be worth learning.
20:32:47 <oerjan> also there should be just one kind of pointer, but a dozen kinds of lambdas.
20:33:01 <elliott> Yes.
20:33:05 <elliott> For all purposes and situations.
20:34:40 -!- monqy has joined.
20:35:24 <oerjan> dynamically scoped pure lambdas, lexically scoped pure lambdas, lexically scoped pure lambdas that are slightly slower but work even with template haskell, delimited continuation scoped lambdas over an arbitrary monad which are however horribly slow...
20:35:48 <elliott> Yesssssssssssssss
20:35:52 <elliott> Gregor: See, NOW Haskell sounds appealing.
20:36:27 <Gregor> s/eal/all/ 8-D
20:36:52 <elliott> At least you can tell when a proposed Haskell change is disgusting :P
20:37:03 <oerjan> oh and a thread-safe version of the latter that tends to run out of memory due to space leaks which nobody except oleg manages to avoid.
20:38:02 <oerjan> oh and of course a near-complete set of strict variations
20:38:13 <elliott> oerjan: Are you trying to analogise those to the kinds of pointers or are you just snarking on general principles? :P
20:38:25 <oerjan> both.
20:38:36 <oerjan> ok very loosely analogise
20:38:47 <elliott> I guess that thread-safe one is meant to be STM?
20:38:56 <elliott> I didn't think space leaks were common with Haskell STM
20:39:58 <oerjan> _you_ try to avoid space leaks in a concurrent framework running on top of a transformed list monad
20:40:34 <elliott> oerjan: um it's not that bad is it... I guess you are probably joking at this point
20:40:40 <elliott> but it's O(n) in the number of concurrent transactions worst-case, I believe
20:40:44 <oerjan> at _this_ point?
20:41:04 <elliott> :D
20:43:38 -!- Sgeo has quit (Ping timeout: 245 seconds).
20:44:08 <oerjan> anyway, oleg has shown how the space leaks can in principle be avoided by doing each step via bytestrings and unsafeCoerce
20:45:04 <elliott> http://www.reddit.com/r/programming/comments/jt1ff/fluxflex_free_python_hosting_250mb_web2py_howto/c2exqnd?context=3
20:45:06 <elliott> I upset the spammer :(
20:45:15 <elliott> Your comment is very hurtful to the Python community. It is not constructive. It does not help anybody.
20:45:36 <monqy> (thumbs up)
20:46:15 -!- myndzi\ has quit (Ping timeout: 258 seconds).
20:47:35 -!- myndzi has joined.
20:53:30 -!- Sgeo has joined.
20:57:26 <elliott> hmph
21:00:04 -!- augur has quit (Remote host closed the connection).
21:02:59 <elliott> `addquote <Phantom_Hoover> Hmm, I really need to institute dwarven birth control.
21:03:01 <HackEgo> 622) <Phantom_Hoover> Hmm, I really need to institute dwarven birth control.
21:08:55 <oerjan> so exponential growth is not a viable DF strategy?
21:26:12 <Gregor> elliott: Nice thing about building being the same cost as advancing is you can explore non-destructively without wasting time.
21:28:15 <elliott> Gregor: "Non-destructively"?
21:28:33 <Gregor> elliott: More or less leaving your shit intact.
21:28:37 <Gregor> (If you have to cross your wires)
21:28:58 <oerjan> don't cross the streams
21:29:15 <elliott> Gregor: Ah
21:29:24 <elliott> Gregor: Well, if you break a wire, it only has to stay broken for two cycles
21:29:30 <elliott> One cycle to move on to the wire, one to build+advance
21:29:37 <Gregor> elliott: Yeah, exactly.
21:29:39 <elliott> So as long as you don't have an electron too close nothing breaks, but if you do...
21:29:43 <elliott> Gregor: I made this point hours ago, btw :P
21:29:50 <Gregor> elliott: SO DID YOUR MOM
21:31:44 <elliott> `addquote <Phantom_Hoover> Intake flooded with magma. <Phantom_Hoover> Reactor connected. <Phantom_Hoover> Pumps active. <Phantom_Hoover> YES IT'S WORKING
21:31:46 <HackEgo> 623) <Phantom_Hoover> Intake flooded with magma. <Phantom_Hoover> Reactor connected. <Phantom_Hoover> Pumps active. <Phantom_Hoover> YES IT'S WORKING
21:31:56 <Phantom_Hoover> That's... not even funny.
21:32:25 <elliott> It is, if you have no idea what Dwarf Fortress is.
21:37:19 -!- azaq231 has joined.
21:38:42 -!- azaq23 has quit (Ping timeout: 264 seconds).
21:39:15 <elliott> meh, http://chrisdone.com/posts/2011-08-21-haskell-emacs.html does nothing that leaden can't do
21:39:29 <elliott> actually less since it doesn't integrate with a running ghci
21:40:50 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:45:23 <oerjan> wait, leaden exists?
21:45:52 <elliott> oerjan: Weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeell
21:45:57 <elliott> I did write leaden once but then I lost it
21:46:13 <elliott> leaden is unambitious enough that I could write it at any time, Emacs just hasn't annoyed me enough yet :-)
21:46:21 <elliott> (but it's getting close with haskell-mode's indentation)
21:55:54 -!- myndzi has quit (Ping timeout: 240 seconds).
22:00:04 <elliott> "So I'm surprised we don't hear more about K - surely functional weenies must love its winning combination of preposterously overdone terseness and geek kudos."
22:00:11 <elliott> Never have I wanted to punch someone so quickly
22:00:38 <monqy> whats k
22:00:51 <elliott> language
22:01:15 <monqy> K is a proprietary array processing language developed by Arthur Whitney and commercialized by Kx Systems.
22:01:18 <monqy> looking good
22:01:39 <elliott> monqy: it is good
22:01:44 <elliott> despiet your sarcasm
22:01:48 <elliott> monqy: do you know J?
22:01:52 <Sgeo> <insert snark about J here>
22:01:53 <elliott> K is very similar
22:02:03 <Sgeo> I intended to type that before elliott mentioned J
22:02:04 <monqy> one time I tried learning J but then got bored because my reading material was boring
22:02:17 <monqy> like really boring
22:02:26 <elliott> to learn J all you need is the very basics plus the vocabulary page
22:02:40 <monqy> what's the very basics
22:02:52 <monqy> and does the vocabulary page mean referencing or memorising
22:03:27 <Sgeo> If you don
22:03:31 <elliott> The very basics is... the array literal syntax, how the function application works, what a fork is, and how definitions work?
22:03:34 <elliott> And referencing
22:04:00 <monqy> one of the things I really didn't like about J, if I'm remember, is http://www.jsoftware.com/docs/help701/dictionary/d310n.htm this thing
22:04:24 <monqy> using an interger like that is just the stupidest design
22:04:33 <Sgeo> iirc, there are words that are synonyms for those numbers
22:04:43 <elliott> monqy: all J has is integers
22:04:55 <elliott> technically: n-dimensional arrays of (integer | floating point)
22:04:57 <Sgeo> And arrays
22:05:00 <Sgeo> Oh
22:05:01 <elliott> there are no other data types
22:05:47 -!- FireFly has quit (Quit: FireFly).
22:06:54 <elliott> monqy: but really, J is lovely
22:07:01 <elliott> monqy: : is not even really... part of the language?
22:07:04 <elliott> it's part of the definition syntax
22:07:05 <elliott> monqy: and btw
22:07:09 <elliott> you can say
22:07:11 <monqy> oh
22:07:12 <elliott> 'noun' : ...
22:07:12 <elliott> iirc
22:07:26 <elliott> rather than using the integers, somehow
22:07:35 <elliott> monqy: well it IS part of the language but it is only ever used when defining something
22:07:43 <elliott> which is the least important part of J??
22:07:57 <elliott> monqy: btw if you think that's gross look at how it does IO http://www.jsoftware.com/docs/help701/dictionary/xmain.htm
22:08:02 <elliott> but again, not really part of the "language proper"
22:08:18 <monqy> :(
22:09:30 <elliott> monqy: I mean, come on, it's a functional language that elegantly handles everything as transformations of N-dimensional arrays, where almost every definition is point-free...
22:09:40 <monqy> mmmm
22:10:06 <elliott> And with a really nice REPL
22:10:14 <monqy> is there any good way to learn it
22:10:17 <elliott> Plus lots of nice function-plotting stuff and the like in the stdlib.
22:10:23 <elliott> monqy: <elliott> The very basics is... the array literal syntax, how the function application works, what a fork is, and how definitions work? <elliott> And referencing
22:10:26 -!- myndzi has joined.
22:10:36 <monqy> oh just look thos up?
22:10:39 <Sgeo> !:
22:10:39 <monqy> ok i guess
22:10:53 <elliott> You just have to keep solving little problems interactively and build up your knowledge
22:11:01 <elliott> Plus looking at like solutions to Euler problems and the like in J will help??
22:11:13 <elliott> Probably anarchy golf solutions too as they're likely to be idiomatic ;-)
22:11:15 <monqy> maybe i'll try some of the easier project euler porblems or some code golf
22:11:25 <Sgeo> Hmm, how good/bad would J be for me simulating whether binary search on a constantly changing thing has a weird distribution (I understand the problem better than I described it, I promise)
22:11:26 <monqy> exactly what i was thinking
22:11:28 <monqy> er
22:11:32 <monqy> not wat sgeo said
22:11:33 <monqy> what elliott said
22:11:37 <monqy> i haven't read Sgeos stuff yet
22:11:50 <monqy> Sgeo: are you still doing that
22:11:54 <monqy> Sgeo: really
22:12:02 <Sgeo> monqy, I never got around to writing the simulation
22:12:28 <Sgeo> Too busy language hunting >.>
22:12:39 <monqy> have you learned haskell
22:12:46 <Sgeo> Define "learned"
22:12:50 <monqy> learned
22:13:02 <monqy> can you write good haskell comfortably
22:13:07 <elliott> monqy: ive already grilled him about it today
22:13:11 <monqy> ok
22:13:41 <monqy> Sgeo: what bad languages are you looking at now
22:13:55 <Sgeo> Dylan
22:14:02 <elliott> oh numbers in J are purple now with the new version neat
22:14:04 <elliott> i like pruple
22:14:12 <monqy> purple is good
22:14:19 <elliott> hard to type J without number or punctuation keys oops
22:14:22 <monqy> I've never tried dylan
22:14:42 <elliott> and finally Ctrl+Q quits it
22:14:48 <elliott> rather than bringing up some form manager crap
22:14:53 <elliott> (the ui's gtk not java now)
22:15:07 <Sgeo> I haven't looked into it closely, but I think I'd like it. Except for the dead community.
22:15:14 * Phantom_Hoover → sleep
22:15:23 <Sgeo> Deader than languages that a lot of idiots think are "unpopular"
22:15:28 <elliott> Phantom_Hoover: friendship sleep
22:15:43 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:22:48 -!- myndzi has quit (Ping timeout: 245 seconds).
22:24:44 <oerjan> die lang
22:25:54 -!- myndzi has joined.
22:27:17 <elliott> oerjan: wat
22:28:33 <oerjan> i'm just pointing out that it was practically doomed from the start with that name
22:28:51 <elliott> oh esowiki?
22:28:56 <elliott> or
22:28:58 <elliott> what are you talking about
22:29:01 <oerjan> dylan
22:29:09 <oerjan> ...i guess the y is short though
22:29:48 <elliott> i rather suspect it's named after that guy called Dylan, oerjan :P
22:30:01 <elliott> /ˈdɪlən/
22:30:01 <elliott> help
22:30:11 <oerjan> argh unicode
22:30:28 <oerjan> so, short
22:30:29 <monqy> help
22:30:31 <elliott> IPA
22:30:36 <monqy> help
22:31:08 <monqy> my font does the schwa weirdly
22:31:12 <monqy> upsetting
22:31:49 <elliott> schwa is bad sound
22:31:53 <oerjan> 'James Joaquin chose the name Dylan for "DYnamic LANguage."
22:31:57 <oerjan> '
22:32:05 <elliott> suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuure
22:32:12 <oerjan> but dynamic has a long y doesn't it.
22:32:13 <monqy> schwa is perhaps my least favourite vowel
22:32:18 <ais523> I like it
22:32:27 <elliott> oh ais523 is here again
22:32:32 <Gregor> monqy: Schwer is perhaps my most favorite vowel.
22:32:33 <ais523> I've been here all along
22:32:35 <elliott> or else was always here and just hates me talking about scapegoat
22:32:46 <nooga> etf
22:32:48 <nooga> wtf
22:32:49 -!- myndzi has quit (Ping timeout: 258 seconds).
22:32:50 <Sgeo> ais523 is <homestuck ref>
22:32:51 <ais523> I've just been splitting my attention too many ways
22:32:54 <oerjan> elliott: just like ericsson named erlang after that famous statistician. oh wait...
22:32:58 <nooga> how can that be
22:33:18 <monqy> this ipa does not match up at all with "dynamic language" now im confused
22:33:18 <elliott> oh, wondered why monqy was suddenly an idiot, but then it turns out it was nooga
22:33:19 <nooga> memcpy *changes* the destination pointer
22:33:34 <ais523> elliott: they're both the same nick color in my client too
22:33:40 <elliott> oerjan: The name "Erlang", attributed to Bjarne Däcker, has been understood either as a reference to Danish mathematician and engineer Agner Krarup Erlang, or alternatively, as an abbreviation of "Ericsson Language".[2][3]
22:33:42 <elliott> it's probably both
22:33:50 <Sgeo> Different nick colors here
22:34:00 <elliott> monqy: contractions can change prounocunreounations
22:34:00 <monqy> what's a nick coloure
22:34:05 <elliott> ais523: i domt use nick colours
22:34:21 <ais523> monqy: some clients color people's nicks in colors based on their username
22:34:28 <monqy> elliott: but by that much??
22:34:32 <ais523> which makes it either easier or harder to tell them apart at a glance depending on who's talking
22:35:32 <monqy> can also ugly things up, at least from what I've seen of it
22:35:53 <elliott> im aesthetics
22:35:59 <monqy> I don't even like hearing of when it colours the name backgrounds too
22:36:12 <elliott> oh if it just like backgrounded each line with a nice relaxing subtle pastel colour that could be nice???
22:36:30 <monqy> colour name background with ugly colour, colour name foreground with clashing ugly colour
22:36:33 <elliott> now i... want that....................................
22:36:36 <ais523> you'd want unique colors for everyone, and more unique for people who talked a lot
22:36:38 <elliott> monqy that would be good....
22:36:58 <ais523> and to gradually morph the colors over time as people joined and left, so that a) there still was no clash, and b) you didn't notice the colors changing
22:37:06 <elliott> ais523: prefect..........
22:37:49 -!- GreaseMonkey has joined.
22:38:01 <elliott> no but monqy imagine... a delicate pastel palette... of colours.... backgrounding the text....
22:38:07 -!- myndzi has joined.
22:38:08 <elliott> so leraxing
22:38:43 <monqy> I typically prefer black bacgkround
22:38:56 <elliott> monqy: no bad... black backgrond is bad for eys.............
22:39:07 <elliott> black on nice subdued background.....=good
22:39:36 <ais523> elliott: by black background, do you mean "background darker than foreground", or "black background"?
22:39:49 <ais523> because late at night, I typically use black on dark gray as a color scheme
22:39:55 <ais523> to prevent the screen being too bright
22:40:14 <elliott> ais523: mostly just black, I can see that off-white on dark grey might be a nice colour scheme for some people, I just personally don't like it
22:40:19 <elliott> but white on black is obviously terrible
22:40:25 <elliott> probably even worse than black on white
22:40:55 <ais523> elliott: well, I make the whole screen dark
22:41:10 <elliott> hmm, black on dark grey?
22:41:22 <elliott> the grey can't be that dark, or you'd be blind already
22:41:43 <ais523> elliott: the dark grey is still the brightest thing on the screen, or indeed in the room
22:41:50 <elliott> True :P
22:41:51 <ais523> think of it as white, just with a much darker screen
22:42:34 <elliott> I don't really understand why normal computer UIs are basically terribly-designed, colour-wise
22:42:49 <elliott> I guess because colour theory doesn't make things shiny
22:43:04 <ais523> elliott: hardly anyone cares; arguably they /should/ care, but they don't
22:43:30 <elliott> well, it's their _job_ to care about it, if they're UI designers
22:43:50 <ais523> elliott: it's more, it's their job to do what their boss asks them
22:43:53 <ais523> and their boss rarely does
22:43:57 <ais523> many projects don't even /have/ UI designers
22:44:00 <elliott> OK, it's their /responsibility/ :P
22:44:06 <elliott> And Ubuntu sure as hell does
22:44:12 <elliott> As does OS X, obviously
22:44:19 <elliott> I'm more talking about overall OS colour schemes
22:44:29 <elliott> Applications don't usually pick a huge palette of colours themselves, after all
22:44:33 <ais523> Ubuntu's color scheme seems to be "whatever nobody else is using"
22:44:43 <elliott> haha
22:44:53 <elliott> Brown! Purple! Next up: Green????
22:45:09 <elliott> hmm, I suppose it's more "dark grey / silver" nowadays
22:45:12 <oerjan> bleen
22:45:15 <elliott> / orange
22:45:17 <elliott> / mess
22:45:44 <oerjan> chartreuse/polka-dot
22:45:56 <monqy> I do not like orange or yellow
22:46:02 <elliott> hmm, I wonder what the nicest functional data structure for a text editor is
22:46:05 <elliott> probably a list zipper, I guess
22:46:11 -!- copumpkin has quit (Ping timeout: 246 seconds).
22:46:15 <elliott> kind of inefficient for large files, though
22:46:30 <elliott> I suppose you could use a zipper of constant-sized chunks
22:51:40 <elliott> I love how the pygtk docs are more usable than the gtk docs
22:51:46 <elliott> because the gtk docs show everything in C form
22:51:52 <elliott> which has a huge impedance mismatch with gobject
22:53:36 <elliott> oh my god
22:53:43 <elliott> monqy: oerjan: everyone: http://www.reddit.com/r/programming/comments/jt1ff/fluxflex_free_python_hosting_250mb_web2py_howto/c2eyj8z?context=1
22:53:51 <elliott> my funge-archive EXPOSED
22:54:20 <oerjan> oh nose
22:54:41 <elliott> cam;t stop laughing
22:55:06 <monqy> why do the other hostings do not get it?
22:55:09 <Sgeo> Is that person incapable of Googling?
22:55:30 <elliott> "Care to explain?"
22:55:31 <elliott> god it's like
22:55:39 <elliott> YOU HAVE PERSONALLY INSULTED ME AND MY WEBFRAMEWORK
22:55:42 <elliott> EXPLAIN YOUR PERSONAL PROJECTS IMMEDIATELY
22:55:49 <elliott> JUSTIFY YOUR EXISTENCE BEFORE I VANQUISH YOU FROM THIS EARTH
22:56:43 <monqy> what is web2py
22:56:48 <elliott> bad
22:57:46 <oerjan> careful, maybe he's actually interested. getting someone who is both an esolanger and a spammer could lead to painful mixed emotions.
22:59:46 <Sgeo> Everyone knows Steve Jobs resigned by now?
22:59:51 <Sgeo> </random>
23:00:28 <ais523> elliott: heh, you have a -6 comment?
23:00:33 <ais523> how did you manage to offend so many people?
23:00:37 <elliott> ais523: I'm pretty sure I have comments lower than that
23:00:50 <ais523> I mean, recently
23:00:51 <elliott> ais523: and, well, mdipierro either has a lot of insanely loyal students, or a lot of sockpuppet accounts
23:01:05 <elliott> I think I concluded the latter a while ago upon investigation, but I don't really care much
23:02:10 <monqy> im not understand
23:02:12 <elliott> ais523: but, uh, I dared to suggest that this guy's crappy webframework that he spams a ton might not be the top priority for web hosts worldwide :)
23:02:16 <monqy> is there contesxt im misisinge
23:02:31 <ais523> elliott: in quite a combative tone
23:02:36 <monqy> elliott: you dared sugested it impolitely........
23:02:59 <elliott> ais523: monqy: hey, he's the one who keeps spamming after I tell him not to :)
23:06:41 <elliott> I wish Gtk2Hs was nicer :(
23:07:33 <Sgeo> elliott, are you using J701 or J602?
23:09:47 <ais523> wow, Steve Jobs has just resigned
23:09:58 <ais523> did a good job of making it unexpected
23:09:59 <elliott> what
23:10:05 <elliott> wow
23:10:54 <ais523> heh, I was so expecting you to say "I know already"
23:11:03 <elliott> i am UNPREDICTABLE
23:11:13 <ais523> /did/ you know already?
23:11:20 <Sgeo> I think I may have mentioned it...
23:11:22 <monqy> sgeo mentioned it
23:11:27 <elliott> ais523: nope
23:11:41 <Sgeo> Well, then the obvious conclusion is that elliott has me on ignore.
23:11:52 <ais523> Sgeo: oh, you did mention it
23:11:57 <ais523> but I needed to read scrollback twice to see it
23:12:04 <ais523> therefore, I probably just have you on mental ignore
23:12:07 <ais523> rather than physical ignore
23:12:09 <elliott> heh, AAPL stock is going down
23:12:19 <ais523> elliott: not yet, they waited until the markets were closed before announcing
23:12:28 <monqy> good job
23:12:30 <ais523> but it's bound to crash as soon as they open again
23:12:31 <elliott> reddit is not always accurate?
23:12:37 <ais523> not least, because everyone thinks it's going to crash
23:12:37 <elliott> http://www.marketwatch.com/investing/stock/aapl
23:12:40 <elliott> this shows it going down at least
23:13:12 <ais523> elliott: it shows it up 0.69% at close
23:13:20 <elliott> e
23:13:20 <elliott> heh
23:13:25 <ais523> so presumably they're measuring something that can carry on even after close
23:13:34 <ais523> people promising to make trades, or something
23:13:34 <elliott> "I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple's CEO, I would be the first to let you know. Unfortunately, that day has come." <-- sounds like health reasons
23:13:45 <ais523> indeed
23:14:02 <elliott> oh well
23:15:41 -!- nooga has quit (Ping timeout: 260 seconds).
23:18:34 <elliott> monqy: can you kidnap some people and make them make gtk not unnice thanks
23:18:46 <monqy> :(
23:19:01 <monqy> I've never gtked
23:19:29 <ais523> elliott: nice 1 gtk
23:20:54 <elliott> ais523: oh
23:21:04 <elliott> monqy: well it is not that bad but the haskell binding is not as nice as the wx binding......
23:21:32 <ais523> you can give values all the way up to 19 (20?) to make it nicer
23:21:42 <monqy> you could use one of the frp gui things uless they're all bad...or you can't use the,.....m
23:21:47 <cheater> health reasons? fuck that
23:21:52 <cheater> guy just wants to retire
23:21:57 <elliott> monqy: im going to use reactive-banana...................
23:22:03 <cheater> who the hell would want to run a company till the end of his days
23:22:09 <cheater> he's old and decrepit
23:22:13 <cheater> and rich
23:22:18 <cheater> no reason for him to work at all
23:22:28 <elliott> and on medical leave since January obviously health has NOTHING to do with it
23:22:34 <elliott> monqy: but... i still have to define the ui widgets....
23:22:38 <elliott> monqy: frp just handles the interactions...
23:23:34 <monqy> ;_--;
23:23:51 <elliott> monqy: i could use wxwidgets but then it would look uglier????
23:23:57 <elliott> even though i guess i only need a few widgets
23:23:58 <cheater> as far as i am concerned apple is still just making updates to newton
23:24:02 <monqy> is there a wx banana
23:24:05 <oerjan> clearly we need frw
23:24:07 <elliott> monqy: yes
23:24:10 <monqy> I rememebr something about wx bananas
23:24:17 <elliott> oerjan: waht...
23:24:25 <oerjan> functional reactive widgets
23:24:28 <cheater> oerjan, yes
23:25:26 <oerjan> wax bananas are only recommended for decoration
23:26:55 -!- copumpkin has joined.
23:29:49 <elliott> oerjan: bax wnawnanan
23:30:06 -!- augur has joined.
23:30:57 <oerjan> famous tamil decorator
23:30:58 <Gregor> Oh I was strolling through the pork one daaaay
23:31:02 <Gregor> In the merry merry month of May
23:31:15 <elliott> oerjan: you misspelled bisexual
23:31:53 <Gregor> elliott: He wasn't referring to oklopol though!
23:31:54 <oerjan> In the merry merry month of bisexual? come on, elliott, that makes no fucking SENSE
23:32:02 <oerjan> oh wait
23:32:03 <Gregor> X-D
23:32:13 <oerjan> famous misreading
23:32:14 <Gregor> EVERY month is the month of bisexual!
23:32:40 <oerjan> if you say so
23:32:45 <elliott> monqy: http://sprunge.us/dbei thism is what gtk frp looks like... note how the stuff inside the "network <- compile $ do" block is nice and lovely but the stuff outside not so much...
23:32:52 <elliott> monqy: (it was even less nicemaking before I defined make/makeIn)
23:33:10 <elliott> compare reactive-banana-wx's equivalent,
23:33:18 <elliott> https://raw.github.com/HeinrichApfelmus/reactive-banana/master/reactive-banana-wx/src/TwoCounters.hs
23:33:27 <elliott> note how it is a nicer....
23:33:33 <monqy> it does look a nicer...
23:34:52 -!- augur_ has joined.
23:35:02 <Gregor> "Rezzo" appears to be a sufficiently-uncommon Italian word that most dictionaries don't have it.
23:35:04 <elliott> monqy: but wx is uglie
23:35:14 <monqy> :((
23:35:26 <monqy> is there amny...ogood....guis
23:36:00 <elliott> monqy: gtk....but api....is bad
23:36:24 <monqy> i meant api too...
23:36:29 <elliott> monqy: help
23:36:32 <monqy> hlep
23:37:05 -!- augur has quit (Ping timeout: 240 seconds).
23:38:40 <pikhq_> Damn. Steve Jobs resigned.
23:38:57 <pikhq_> Good day to not have AAPL stock.
23:39:20 <elliott> pikhq_: No, great day to buy AAPL stock tomorrow.
23:39:23 <elliott> Cheap as shit.
23:39:27 <elliott> Then sell it when the next iPhone comes out.
23:39:29 -!- augur_ has quit (Ping timeout: 245 seconds).
23:39:42 <pikhq_> elliott: Yes, but right now is a good day to not already have it.
23:39:49 <elliott> Well, no.
23:40:24 <pikhq_> Well, unless you're not a moron like most investors, and are in it for the long haul. :P
23:40:37 <elliott> monqy: I guess I wil use gtk because its text view is nicer...
23:40:39 <elliott> will
23:40:41 <pikhq_> "ZOMG SHORT-TERM THING! TIME TO LOSE MONEY!"
23:40:54 <elliott> monqy: I am tempted to try and use webkit instead (slightly)
23:41:01 <monqy> web kit??
23:41:10 <monqy> is it any good
23:41:32 <elliott> monqy: it is in ur browser.............
23:41:38 <ais523> elliott: monqy's not being serious, right?
23:41:48 <elliott> ais523: what would the fun be if you could tell?
23:41:54 <ais523> heh
23:42:16 <elliott> ais523: also, rich for you to say essentially "how can <PERSON> not know <ITEM OF POP CULTURE>"
23:42:31 <ais523> elliott: you think of WebKit as pop culture?
23:42:35 <elliott> http://hackage.haskell.org/package/webkit ... wab kat
23:42:51 <elliott> ais523: I have adopted the oklopol convention of referring to anything that isn't pure mathematics as pop culture
23:42:57 <elliott> (this includes the names of theorems)
23:43:05 <ais523> haha
23:43:19 <elliott> and, um, that more than one person knows about, I suppose
23:43:53 <ais523> what about theorems that only one person knows about
23:43:55 <ais523> (do those /have/ names?)
23:44:12 <elliott> it is the mystery of life
23:44:30 <oerjan> hey fermat's last theorem is _so_ pop culture
23:47:05 -!- sllide has quit (Ping timeout: 240 seconds).
23:47:10 <elliott> monqy: I do wish GTK had something like that layout thing though
23:47:27 -!- azaq23 has joined.
23:48:04 <monqy> would it be possible to make one
23:48:06 -!- azaq231 has quit (Ping timeout: 240 seconds).
23:48:56 <elliott> monqy: Probably, but.
23:49:02 <elliott> articulate (tm)
23:50:50 <monqy> webkit still won't compile because it depends on System.Glib.GString which still isn't in the glib package on hackage??? :(
23:51:03 <monqy> this has been going on for how long
23:51:23 <elliott> oh
23:51:27 <elliott> what do you mean still have you, tried before
23:51:32 <monqy> yes
23:51:36 <elliott> oh
23:51:52 <elliott> make a, buge report, in hash haskell
23:51:54 <elliott> bugle report
23:52:08 <monqy> i thought everyone already knew about it
23:52:24 <elliott> im, dont know
23:52:30 <elliott> and iam part of everybody
23:52:32 <elliott> i think
23:52:38 <monqy> iirc GString is in the glib darcs respository but they're too lazy too package it onto hackage for long...
23:52:48 <elliott> monqy: oh... i think they are making next erlease... one point oh...
23:52:52 <elliott> because... changing things
2011-08-25
00:03:27 -!- myndzi has quit (Ping timeout: 240 seconds).
00:04:09 -!- myndzi has joined.
00:06:18 -!- chickenzilla has quit (Ping timeout: 252 seconds).
00:21:43 -!- oerjan has quit (Quit: Good night).
00:27:03 -!- mtve- has joined.
00:27:34 -!- mtve has quit (Ping timeout: 252 seconds).
00:31:20 -!- mtve- has quit (Ping timeout: 260 seconds).
00:32:57 -!- evincar has joined.
00:36:10 -!- mtve has joined.
00:36:18 <Gregor> Why is the sky yellow
00:36:30 <Gregor> Dear Indiana: THAT IS NOT THE CORRECT COLOR FOR THE SKY
00:37:07 <evincar> Who do you think you are, saying what colour the sky ought to be?
00:37:13 <evincar> Maybe it wants to be yellow.
00:38:26 <monqy> im a sky doctor....and that is not what skys want....
00:38:44 <Gregor> I should think a sky doctor would know how to spell "skies" ...
00:41:54 <pikhq_> I should think a doctor would know how to spell "I'm", and what an ellipse looks like.
00:42:17 <pikhq_> Anyways, clearly the sky is going through a rebellious stage.
00:44:47 <Gregor> Well that much is clear.
00:44:51 <Gregor> What with the lightening.
00:44:53 <Gregor> And yellow.
00:51:08 <Gregor> OK, this is a nasty thunderstorm ...
00:51:10 -!- Vorpal has quit (Ping timeout: 260 seconds).
00:52:39 <elliott> Gregor: its sky barf
00:56:32 <monqy> rebel barf
00:57:00 <monqy> barf rebel
00:57:10 <monqy> (the sky)
01:01:29 -!- zzo38 has joined.
01:08:36 -!- azaq23 has quit (Ping timeout: 240 seconds).
01:08:37 <elliott> oh hmm that would be cool forleaden to have
01:10:39 <evincar> Leaden?
01:10:53 <elliott> yes
01:13:20 <monqy> leaden.
01:14:11 <evincar> Splain.
01:14:27 <elliott> monqy: i was thinking that like the haskell repl could be a fancy repl??? by which i mean: you know how like ghci sees if it's an io action and failing that does "print it"
01:14:44 <elliott> well this would be the same but it would try "display it" before print it and you'd have like
01:14:47 <monqy> yes i know that
01:14:58 <elliott> class Display a where ???
01:14:59 <elliott> and
01:15:01 <elliott> like
01:15:10 <elliott> a list could show the first like N elements that'll fit onto a screen
01:15:17 <elliott> and have a ... that you can click to show more at the end??
01:15:20 <elliott> and other nice... things like that...
01:15:40 <elliott> and you could maybe middle-click subexpressions to make them go into the prompt?? i don;t know
01:15:42 <elliott> it wouldb e ... cool
01:16:07 <monqy> hougle integration...might be nice
01:16:39 <elliott> monqy: yes but like..........
01:16:48 <elliott> monqy: if you had a library with colours
01:16:53 <elliott> you could construct a colour
01:17:00 <elliott> and it'd show a little square of that colour next to how it would normally be shown??
01:17:02 <elliott> that would be cool??
01:17:28 <monqy> how would you
01:17:28 <monqy> dou
01:17:29 <monqy> that
01:17:47 <elliott> instance Display RGB where displayWidget (RGB r g b) = ...some gui stuffe.....
01:18:13 <monqy> and whenever peoiple make colourse they will write an instance for Leadne????
01:18:33 <elliott> no............. you would have to put itin your ghcirc or something??
01:18:35 <elliott> but
01:18:36 <elliott> the point is that
01:18:40 <elliott> it would make for a lot of coole things......
01:18:53 <monqy> ok
01:19:29 <elliott> monqy: im dont know it was just an idea..... (at first i was thinking that I should play around with a standalone REPL thing to do that, and then i thought "oops but then leadesn would seem inferior i should put it into leaden")
01:20:27 <elliott> monqy: well you could still benefit from like the instances for lists?
01:20:28 <elliott> because
01:20:32 <elliott> typing in an infinite list
01:20:35 <elliott> and then yuour emacs buffer exploes
01:20:36 <elliott> not good
01:20:39 <elliott> typing in infinite list
01:20:42 <elliott> getting a bunch of elements
01:20:44 <elliott> and it ending at "..."
01:20:45 <elliott> good
01:20:58 <elliott> and it could like do pretty-printing stuff too? so that if elements were long they'd go on their own line
01:21:06 <elliott> and being able to manipulate sub-expressions separately is very good...
01:21:11 <elliott> it could like turn anything too deeply-nested into a ...
01:21:54 <monqy> and i guess you could make it not happen if you explicitly used show???
01:22:12 <elliott> well using "print" would be the explicietie thing....
01:22:20 <monqy> oh
01:22:28 <monqy> i guess print would work too....
01:22:41 <monqy> isn't print just putStrLn . show or something like that
01:23:05 <elliott> yes......
01:23:09 <elliott> wit h show it would have ""
01:23:10 <elliott> and also
01:23:11 <elliott> all the ""s inside
01:23:13 <elliott> would be \"
01:23:17 <elliott> and
01:23:17 <elliott> yeah
01:23:27 <monqy> oh rihgt
01:44:53 <pikhq_> On the IBM PC-AT, you could mask the NMI.
01:45:05 <elliott> :D
01:45:39 <pikhq_> You could write to a controller chip on the motherboard, which would prevent the NMI from reaching the CPU.
01:45:57 <pikhq_> Rather than merely telling the CPU to ignore the interrupt.
01:54:11 <elliott> "Thanks for the info. I did not mean to imply anything negative about your knowledge. In fact, I think my post makes you look better than your own previous post do (because your comments about web2py are naive)."
01:54:29 <elliott> i think i have upse t him monqy
02:00:28 -!- ais523 has quit (Remote host closed the connection).
02:00:59 <monqy> oops
02:04:59 <elliott> ?hoogle f a -> f b -> f (a,b)
02:04:59 <lambdabot> Prelude zip :: [a] -> [b] -> [(a, b)]
02:04:59 <lambdabot> Data.List zip :: [a] -> [b] -> [(a, b)]
02:04:59 <lambdabot> Language.Haskell.TH strictType :: Q Strict -> TypeQ -> StrictTypeQ
02:05:03 <elliott> : (
02:05:06 <elliott> monqy: hepl
02:05:28 <elliott> (I know, I know, liftAtwo (,))
02:05:38 <elliott> im just trying to generalise
02:05:42 <elliott> reactimate $ const mainQuit <$> eWindowClosed
02:05:43 <elliott> reactimate $ const mainQuit <$> eCtrlC
02:05:45 <elliott> to be less ugl???
02:05:59 <monqy> generalise?? speaking of which sometime i should learn syb maybe
02:06:09 <elliott> union :: Event f a -> Event f a -> Event f aSource
02:06:10 <elliott> Merge two event streams of the same type. In case of simultaneous occurrences, the left argument comes first. Think of it as
02:06:11 <elliott> oh there we go...
02:06:22 <elliott> oh thats same element type though hmm
02:06:25 <elliott> monqy: that was not syb.........
02:06:38 <monqy> i know..
02:06:44 <monqy> but would syb help
02:07:33 -!- azaq23 has joined.
02:08:46 <monqy> I don't see what's so not general enough about applicative functors though??? hlep????
02:10:26 <elliott> thats
02:10:28 <elliott> not what aht i ameant
02:10:28 <elliott> :t ignore
02:10:29 <lambdabot> Not in scope: `ignore'
02:10:32 <elliott> ?hoogle void
02:10:32 <lambdabot> Foreign.Marshal.Error void :: IO a -> IO ()
02:10:33 <elliott> ?hoogle ignore
02:10:33 <lambdabot> Text.Regex.Posix.ByteString compIgnoreCase :: CompOption
02:10:33 <lambdabot> Text.Regex.Posix.Sequence compIgnoreCase :: CompOption
02:10:33 <lambdabot> Text.Regex.Posix.String compIgnoreCase :: CompOption
02:10:37 <elliott> >:E
02:10:40 <elliott> :t (<dollr sign)
02:10:41 <lambdabot> Not in scope: `dollr'
02:10:41 <lambdabot> Not in scope: `sign'
02:10:46 <elliott> : (<$)
02:10:53 <elliott> :t (<$)
02:10:54 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
02:11:12 <elliott> :t ($>)
02:11:12 <lambdabot> Not in scope: `$>'
02:11:48 <monqy> would that be fmap (flip const) or what
02:15:44 <elliott> :t fmap (flip const)
02:15:45 <lambdabot> forall b a (f :: * -> *). (Functor f) => f a -> f (b -> b)
02:15:59 <monqy> oops
02:16:14 <monqy> i meant uh
02:16:18 <monqy> i don't know what i was thinking
02:16:41 <elliott> :t fmap . const
02:16:42 <lambdabot> forall a b (f :: * -> *). (Functor f) => b -> f a -> f b
02:16:58 <monqy> perhaps
02:17:13 <monqy> wait no
02:17:47 <monqy> (fmap . flip const), perhaps
02:18:00 <monqy> but that's dumb
02:18:31 <monqy> (flip (<$))?? I can't think of anything better
02:19:39 <elliott> ok
02:19:50 <elliott> ?pl \f a -> fmap (const a) f
02:19:50 <lambdabot> flip (fmap . const)
02:19:57 <elliott> yeah
02:30:20 <copumpkin> fmap (const x) has a name
02:30:39 <copumpkin> oh, you're using it
02:33:50 <elliott> :P
02:58:56 <Gregor> "Hi! For some reason we can't display an ad here, probably because of an ad blocker. If this ad is not displayed our design gets screwed up. We have full respect if you want to run an ad blocker but we would appreciate if you add us to your white list or consider donating via Flattr or Paypal."
02:59:05 <Gregor> I'm betting that donating will not remove this annoying banner :P
03:01:43 <pikhq_> It'
03:01:55 <pikhq_> It's really hard to feel sympathy for such a thing.
03:02:22 <pikhq_> Ads are a blight
03:04:33 <Gregor> But, but, "The free web is dependent on ads to continue to be free."!
03:05:22 <pikhq_> Yes, yes, our economic system sucks ass.
03:07:12 <zzo38> You can use protocols and/or filetypes that do not have ads, too
03:07:21 <Gregor> pikhq_: COMMUNIST
03:07:24 -!- Sgeo has quit (Ping timeout: 245 seconds).
03:07:34 <zzo38> Which also helps in other ways depending on what you are doing with these files
03:09:07 <pikhq_> More "anti-'free market'".
03:11:01 <zzo38> It is why, I should also invent SSH banking protocol, use this protocol to do banking transactions by computer by internet, including transfer money, copy bank statement, etc, in standardized way. Designed such that you can do it with a computer program that sends the commands for you simply, and can also be done simply by entering the commands manually, too.
03:17:16 <zzo38> I can see that a lot of the functions of Data.Set do require instance of Ord, however not all of them do.
03:18:03 <zzo38> You said that is why there is no monad definition for sets.
03:21:36 <elliott> Sets don't work without Ord, the fact that some functions don't have the cosntraint is just a mistake because it's not technically enforced
03:21:40 <elliott> But all the algorithms require it
03:24:49 <zzo38> I can see the description at the top about the algorithms.
03:33:22 <elliott> "sourceLanguageManagerGetLanguageSource" Gtk, I...
03:35:20 <zzo38> So, Data.Set would not work if you need unordered sets, then
03:35:24 <pikhq_> elliott: What.
03:37:00 <pikhq_> I'd be willing to bet Data.Set is doing a binary tree behind the scenes.
03:37:21 <elliott> zzo38: Data.Set is unordered.
03:37:26 <elliott> Sort of.
03:37:33 <elliott> It doesn't expose the ordering.
03:37:41 <pikhq_> Either that or the utterly naive algorithm, nub . sort :P
03:38:04 <elliott> zzo38: But the Ord instance can be totally arbitrary.
03:38:47 <pikhq_> Well, yeah. I'd think the only thing Ord would imply is that there is, in fact, an ordering.
03:39:55 <elliott> pikhq_: BTW it's slightly better than I said, s/GetLanguageSource/GetLanguage/ (Haddock fail)
03:40:11 <pikhq_> elliott: Still, WTF does it even do?
03:40:23 <elliott> Gets a language, given a source language manager and a language name.
03:41:24 <pikhq_> Strange.
03:42:48 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:46:06 <zzo38> What if you mess up things by making a pseudo Ord set (meaning it does not follow the Ord laws)
03:46:27 -!- azaq23 has joined.
03:46:38 <pikhq_> I think it breaks.
03:47:42 <elliott> Well you're at least going to have to get EQ vs. something that isn't EQ, I presume
03:47:51 <elliott> Unless it specifically checks again with == which would be pointless :P
03:50:18 -!- DeM0nFiRe has joined.
03:50:22 <DeM0nFiRe> Hello
03:53:49 <monqy> hi
03:54:07 <DeM0nFiRe> How's it going monqy?
03:55:17 <zzo38> My situation before of where you might want a value to have zero or more constructors of a datatype, is mathematically a set (assume constructors have no parameters for simplicity), and this Data.Set could be used, I guess, you can derive Ord and then it can be used.
03:55:58 <zzo38> But it might not necessarily be best, if you can store as a bit field and use the bit manipulation commands of the computer, for types with only a small number of constructors
03:56:59 <elliott> hello DeM0nFiRe
03:57:01 <elliott> please don't burn
03:57:23 <monqy> DeM0nFiRe: oh hi. it's going.
03:57:51 <DeM0nFiRe> Heh
03:58:17 <DeM0nFiRe> What I am working on is not REALLY esoteric but some people might think it is. I am trying to design a machine to facilitate kay OOP
03:59:33 <pikhq_> Kay, so a Smalltalk machine?
03:59:53 <pikhq_> Sounds like a completely and utterly reasonable goal.
03:59:55 <DeM0nFiRe> Well, not for specifically Smalltalk, but that kind of idea
03:59:58 <evincar> "Extreme late-binding of everything" Kay OOP.
04:00:12 <DeM0nFiRe> evincar: Well, that is one of the 3 requirements, yes :P
04:00:17 <DeM0nFiRe> That's the easy part :P
04:00:33 <evincar> Indeed.
04:00:40 <DeM0nFiRe> One of the requirements is local retention of state which is kind of getting me right now
04:01:04 <elliott> what's local mean there
04:01:12 <elliott> sounds like orthogonal persistence to me
04:01:14 <elliott> but then so does everything
04:01:16 <DeM0nFiRe> It means everything about an object is known only to an object
04:01:20 <evincar> I was working on a Smalltalk-like language recently, but I bailed when the folks in here made me realise that I really wanted a concatenative language rather than an applicative one.
04:01:20 <elliott> oh
04:01:30 <elliott> DeM0nFiRe: doesn't that basically just mean there aren't any backdoors...
04:01:34 <elliott> like you can't go poking pointers
04:01:40 <elliott> otherwise i don't see why you would have to expose anything not explicitly exposed
04:01:51 <DeM0nFiRe> The basic sum of what Kay OOP means is that objects are like little black boxes, and the only thing you know about each black box is that it can send and recieve messages
04:02:03 <DeM0nFiRe> Anything you need to know or anything you want the box to do has to be done through messages
04:02:11 <elliott> I'm aware :)
04:02:45 <pikhq_> I'm pretty sure elliott likes Alan Kay. :)
04:02:48 <DeM0nFiRe> Heh
04:02:54 <DeM0nFiRe> I was just making sure what I wanted was clear :D
04:03:04 <elliott> But I don't see how local retention of state is something you have to... do?
04:03:09 <elliott> Just don't expose anything about the objects
04:03:17 <evincar> Yeah, it's more of a don't.
04:03:21 <elliott> Unless you're trying to run arbitrary machine code and force it to obey these restrictions, in which case lol
04:03:25 <DeM0nFiRe> Well, keeping objects from knowing about each other is easy enough
04:03:47 <elliott> You don't have to "keep" them from doing it? If they don't have a reference to an object they don't know about it
04:03:51 <elliott> So don't give them any :)
04:04:17 <DeM0nFiRe> But yeah I want to be able to make it so from outside an object there is just no way to get the info from it. Of course since my machine is running on top of whatever other OS, once it gets to that OS level it's just in RAM like everything else
04:04:44 <DeM0nFiRe> But more as a thought excercise I would like to keep as true to that part of OOP as I can
04:06:30 <elliott> I'd call it something other than OOP, if onl because the term OOP is used to mean so many terrible things nowadays :P
04:06:40 <DeM0nFiRe> Yeah I know what you mean :P
04:06:43 <elliott> DeM0nFiRe: It sounds to me like you just want to define a really simple message-passing language
04:06:49 <DeM0nFiRe> But to me it's still the only true OOP :P
04:06:51 <DeM0nFiRe> Well
04:07:09 <DeM0nFiRe> I mean, message passing and late binding are super easy, and keeping objects from knowing about other objects is easy
04:07:32 <DeM0nFiRe> And just those things are enough to put the language I have designed on top of it
04:07:47 <monqy> is it a good language
04:07:54 <DeM0nFiRe> Well, I think so :P
04:08:11 <DeM0nFiRe> I plan on using it for scripting for games :P
04:08:31 <DeM0nFiRe> Being able to arbitrarily redefine objects at will would be awesome for that
04:08:39 * elliott sits, lounges in the superiority gifted to him by functional zealotry.
04:09:24 <monqy> me too
04:09:40 <elliott> This lounge needs a sofa.
04:09:50 <DeM0nFiRe> Yeah well
04:10:02 <DeM0nFiRe> Over here in my lounge, I can take the table I am not using anymore and make it a sofa
04:10:10 <DeM0nFiRe> Life is good :P
04:10:26 <elliott> And everyone else keeps assuming it's a table, and then suddenly your sofa is full of all kinds of shit that would normally go on a table
04:10:31 <elliott> And people sit on it and it's fucking uncomfortable
04:10:39 <elliott> In this analogy the uncomfortability is using an impure language and you are the one doing the using
04:10:54 <monqy> im the one putting the tacks there
04:10:55 <monqy> thats me
04:11:08 <evincar> Now now, are you two arguing about mutability?
04:11:08 <monqy> would you like your tacks elsewhere
04:11:10 <evincar> Tsk tsk.
04:11:12 <DeM0nFiRe> lol, nah, it's cool. Saves a lot on up front design time
04:11:20 <DeM0nFiRe> But I mean
04:11:32 <DeM0nFiRe> If you use it like a different language, you're going to get burned
04:11:44 <elliott> evincar: fuck tha police
04:11:44 <DeM0nFiRe> If you program in C++ like you are programming in C#, you are going to get burned :P
04:11:52 <elliott> If you program in C++ [...] you are going to get burned :P
04:11:57 <DeM0nFiRe> Heh hey now
04:11:57 <monqy> i was just about to say
04:12:00 <monqy> that exact same thing
04:12:08 <monqy> help
04:12:22 <elliott> This is the problem with my sockpuppet account
04:12:35 <elliott> He is prone to revealing his true nature >:(
04:12:48 <elliott> That totally made sense when I was writing it.
04:12:51 <DeM0nFiRe> C++ is not bad if you restrict yourself to a subset of it that is actually sane :D
04:12:59 <elliott> (the subset is empty)
04:13:03 <DeM0nFiRe> elliott: I know what you meant :P
04:13:08 <DeM0nFiRe> You know what elliott?
04:13:10 <DeM0nFiRe> You are a hater :P
04:13:23 <elliott> I guess with a sufficiently bad definition of sane the subset might be the parts of C that C++ isn't incompatible with :P
04:13:44 <monqy> am i a hatter too
04:14:10 <elliott> mad hatter <-- us
04:14:14 <elliott> (the us is all of us)
04:14:15 <DeM0nFiRe> So anyway, no one here is interested in designing a machine more or less for the sake of designing a machine :P
04:14:24 <elliott> We aren't?
04:14:28 <monqy> I prefer to design good machines
04:14:39 <DeM0nFiRe> Well, you were telling me to settle for less than Kay OO :P
04:14:42 <monqy> but designing good machines for the sake of it is just fine
04:14:55 <DeM0nFiRe> Well, this would be a good machine. If done properly it would be super secure
04:15:07 <elliott> itt: object capability model
04:15:19 <elliott> not actually restricted to OO languages :P
04:15:38 <elliott> btw I am not seriously hating on your machine I just have to reassert my functional superiority when required
04:15:41 <DeM0nFiRe> Well, of course not
04:15:52 <DeM0nFiRe> Message passing is also not restricted to OOP :P
04:16:00 <DeM0nFiRe> Neither is late binding :P
04:16:21 <monqy> i save my hattred for evincar's languages
04:16:28 <DeM0nFiRe> But it's all 3 together that make up OOP. Kay didn't invent all aspects of OOP, it took the seperate pieces and put it together
04:16:28 <elliott> hattred
04:16:29 <evincar> Hello.
04:16:34 <monqy> evincar: hi
04:16:37 <elliott> monqy: YUO SUMMED THE DEMON
04:16:45 <DeM0nFiRe> This is a good read http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
04:16:47 <evincar> I didn't even get pinged.
04:16:51 <evincar> I just lurk.
04:16:59 <monqy> evincar: how're your languages
04:17:00 <evincar> Like something eldritch that isn't an abomination.
04:17:13 <DeM0nFiRe> Also "OOP to me means only messaging, local retention and protection and
04:17:13 <DeM0nFiRe> hiding of state-process, and extreme late-binding of all things."
04:17:29 <DeM0nFiRe> That is what Alan Kay said on what he meant when he originally said "OOP"
04:17:42 <elliott> There's historical revisionism at work there :P
04:17:46 <evincar> monqy: Oh, y'know. Thinking about that concatenative one and trying to figure out what sets it apart from Factor.
04:17:57 <DeM0nFiRe> Heh well
04:18:09 <DeM0nFiRe> I think, yes, he was able to state it more clearly now than then
04:18:10 <monqy> is factor any good
04:18:33 <DeM0nFiRe> But if you look at what inspired OOP in the first place, it's not too hard to see what he was going for
04:18:50 <elliott> how did you find this place btw was it the wiki
04:18:56 <DeM0nFiRe> The Burroughs 5000 is mentioned in there, and that's what got me into thinking about trying to really grab that local state hiding and protection deal
04:19:11 <DeM0nFiRe> Yeah I did a search for something I forget what
04:19:13 <DeM0nFiRe> And found the wiki
04:19:26 <monqy> I forget how I found the wiki. maybe intercal.
04:19:55 <DeM0nFiRe> I think I did a search for esoteric
04:20:11 <DeM0nFiRe> maybe esoteric irc
04:20:20 <DeM0nFiRe> Because I was specifically looking for an IRC channel :P
04:21:14 <DeM0nFiRe> Hmm, unforgable reference. That is what I am missing
04:21:35 <elliott> DeM0nFiRe: unforgeable references are not hard? just don't offer something stupid like casting an integer to a pointer
04:22:00 <DeM0nFiRe> Well, I am not talking about from the language, that's easy to do like I said
04:22:22 <DeM0nFiRe> Basically, I am talking about not being able to run even machine code to inspect objects
04:22:31 <elliott> there is no difference between machine code and a langauge
04:22:32 <elliott> language
04:22:43 <DeM0nFiRe> Alright I guess I misunderstood what you meant
04:22:46 <elliott> machine code just prioritises different things
04:22:55 <elliott> for instance: how do you forge a reference on a traditional processor?
04:23:05 <elliott> mov dword [something expecting to contain a pointer], 99
04:23:12 <elliott> that's just casting an integer to a pointer :P
04:23:49 -!- sebbu has quit (Ping timeout: 258 seconds).
04:24:46 <DeM0nFiRe> Alright I think I can figure something out.
04:25:43 <DeM0nFiRe> So the other fun part about the language/machine
04:25:49 <DeM0nFiRe> it has to work easily with C++!
04:26:10 <monqy> work
04:26:10 <monqy> easily
04:26:11 <monqy> with
04:26:12 <monqy> C++
04:26:17 <monqy> ok
04:26:22 <monqy> I uh
04:26:25 <DeM0nFiRe> Yeah, I write my game engine stuff in C++
04:26:32 <monqy> how do you plan on doing this
04:26:43 <monqy> and why
04:27:22 <DeM0nFiRe> Well the why is not too hard, I write engines in C++, want to be able to natually connect the engine and the scripting without having to use C
04:27:56 <DeM0nFiRe> The how is, well I haven't entirely figured it out. :P
04:28:04 <monqy> but why do you do this in c++
04:28:26 <DeM0nFiRe> Because I want the low-ish level of C++ and I want classes
04:28:30 <monqy> and what exactly do you mean by work easily with C++
04:28:33 <pikhq_> Why torture yourself?
04:29:01 <pikhq_> monqy: Presumably he means "work easily with C".
04:29:02 <DeM0nFiRe> I have to be able to expose C++ code to the language and vica versa
04:29:09 <DeM0nFiRe> No, I do not mean work easily with C
04:29:10 <monqy> why do you want low-ish level of c++, why do you want classes, are there no other suitable languages
04:29:26 <pikhq_> DeM0nFiRe: There are very few languages that interact with C++.
04:29:40 <DeM0nFiRe> Well then I guess that is why I am making one, isn't it?
04:29:48 <monqy> DeM0nFiRe: if it's unrestricted c++, you're hopeless
04:29:48 <DeM0nFiRe> I know full well that there are very few
04:29:50 <pikhq_> And there is a reason for that.
04:29:56 <DeM0nFiRe> monqy: It's not unrestricted
04:30:01 <pikhq_> C++ is an esolang.
04:30:13 <DeM0nFiRe> :|
04:30:17 <DeM0nFiRe> Now you are just trolling
04:30:21 <monqy> nope
04:30:25 <pikhq_> No, I'm being entirely honest.
04:30:29 <monqy> DeM0nFiRe: ok, what are the restrictions, and how will you enforce them
04:30:40 <DeM0nFiRe> Alright, well there's no need to continue the discussion on whether you like C++ or not :|
04:30:47 <pikhq_> It also contains a couple!
04:31:03 <monqy> hehehe
04:31:07 <zzo38> Other new idea of feature in Haskell is automatic instances, where if there is no instance it will make one up using the program you specify to make it up. One use can be for tuples instances, but there can be others.
04:31:33 <DeM0nFiRe> monqy: Well, the main restriction is that every type that is returned or taken as a paramater for a function has to be wrapped, so it requires either some foresight or glue code
04:31:37 <zzo38> What are you trying to make with C++? I prefer to use C rather than C++ but that is just my opinion
04:31:53 <monqy> zzo38: there are libraries that let you make things to derive things for things
04:32:10 <DeM0nFiRe> I prefer C++ because I like classes
04:32:14 <monqy> DeM0nFiRe: is there any way to undo this wrapping
04:32:15 <evincar> DeM0nFiRe: As you may have noticed, C++ is not well-liked in here.
04:32:28 <monqy> DeM0nFiRe: or tamper
04:32:34 <monqy> DeM0nFiRe: hint: the answer is yes
04:32:38 <DeM0nFiRe> monqy: Defined by the wrapper, but for it to be useful obviously you would want to make it reversible :P
04:33:18 <monqy> DeM0nFiRe: as I understand it, if you're able to muck with the invariants of your machine in any way from the c++ side, you're screwed
04:33:26 <zzo38> monqy: Can you give examples of those kind of deriving?
04:33:29 <DeM0nFiRe> Realistically speaking, it means you will only want to wrap at a very high level so that you can wrap as few classes as possible
04:33:39 <DeM0nFiRe> But that's how a scripting language should be used in game development anyway
04:33:52 <monqy> zzo38: deriving instances for datatypes? I think one such thing is in the derive package
04:34:34 <DeM0nFiRe> Doing something like wrapping a whole game engine would be a pain in the ass, and it would also be not a great idea in any language
04:34:46 <DeM0nFiRe> But wrapping, say, a level class, some actor classes, some world object classes
04:35:11 -!- sebbu has joined.
04:35:18 <zzo38> monqy: Actually I mean other things too. For example you might make up a automatic instance to make a function automatically work with all lengths of tuples
04:35:24 <DeM0nFiRe> That's more managable, if done right you're going to get better performance, it's a clearer seperation of core programming and game scriptiing
04:35:26 <monqy> DeM0nFiRe: and how would you do this wrapping in such a way that you maintain your machine/language's invariants
04:35:28 <DeM0nFiRe> scripting*
04:36:15 <monqy> zzo38: oh. there's TH, and possibly some other things as well, for things like that??
04:36:22 <monqy> zzo38: I'm not sure exactly what you want
04:36:22 <DeM0nFiRe> monqy: Well, that is part of what I am working out. I want to have functions actually be procedure objects, and so then wrapping a class will actually wrap each member function
04:36:30 <zzo38> monqy: TH can do that, but not automatically.
04:36:30 <DeM0nFiRe> As a procedure object
04:36:39 <monqy> zzo38: what do you mean by automatically?
04:36:42 <DeM0nFiRe> Also, one thing to note is that things like classes and functions will only exist at the syntax level
04:36:47 <monqy> zzo38: as in it's resolved by the type system?
04:37:00 <zzo38> monqy: I mean, if it requires an instance but there isn't one, it calls the TH code you specify to create that instance.
04:37:13 <DeM0nFiRe> When read by the interpreter, the functions will become some sort of procedure object, and classes will actually become a clonable object
04:37:34 <DeM0nFiRe> So to make a new MyObject you will actually be cloning an object, not instancing a class
04:37:38 <zzo38> And will automatically determine when this is needed and use the same TH code in all these cases that it can be used with.
04:38:21 <monqy> DeM0nFiRe: so something along the lines of prototypes?
04:38:26 <DeM0nFiRe> Exactly
04:39:33 <DeM0nFiRe> I will be adding some stuff on top of that such as "freezing" and object which will make it so that object cannot be redefined, finalizing an object which will make it so it and copies of it cannot be changed
04:39:55 <DeM0nFiRe> So that way you can ensure that a number object is actually a number object :P
04:40:24 <elliott> oh you saida lot
04:40:30 <elliott> monqy: was saying good or bad
04:40:37 <monqy> in what case would a number object not be a nubmer object
04:40:46 <zzo38> monqy: Do you understand what I mean now?
04:40:58 <DeM0nFiRe> monqy: Well, the heart of this whole thing is that an object can be completely redefined
04:41:14 <DeM0nFiRe> So one object may have entirely different properties from when it was created
04:41:20 <DeM0nFiRe> That would not be a good thing for numbers
04:41:28 <monqy> would not be a good thing for anything
04:41:28 <monqy> at all
04:41:33 <DeM0nFiRe> Well, you're wrong :P
04:41:44 <DeM0nFiRe> You wouldn't want to actually change every single property
04:41:46 <elliott> <zzo38> monqy: Actually I mean other things too. For example you might make up a automatic instance to make a function automatically work with all lengths of tuples
04:41:49 <zzo38> And that the automatic instances can be recursive in case some cases of the ways that automatic instances are made up require instances too
04:41:50 <elliott> there are a finite number of tuple types
04:42:01 <DeM0nFiRe> But the fact that the properties of an object are defined at the object level rather than at a class level is super useful
04:42:18 <elliott> DeM0nFiRe: how is that different to prototype-based oo?
04:42:21 <monqy> zzo38: how would you write an instance-maker?
04:42:35 <zzo38> elliott: What is the limit of tuple types?
04:42:46 <elliott> zzo38: fifteen i think, it's in the report
04:42:48 <DeM0nFiRe> elliott: Well, first of all prototype based OO is closer to real OO than anything I know of except Kay OO itself :P
04:42:52 <zzo38> monqy: One way could be using Template Haskell.
04:43:11 <DeM0nFiRe> Second of all, like I said I will be adding things that are not in any prototype language that I know of
04:43:12 <zzo38> And this is not only for tuples anyways.
04:43:37 <DeM0nFiRe> Like freezing and finalizing, and there will be a sort of different inheritance model, since classes won't actually exist in the machine
04:43:41 <monqy> perhaps if objects were immutable and there was no way for the c++ side to muck............then you'd have your numbers be numbers............
04:43:45 <elliott> i think a lot of languages have freezing
04:43:55 <elliott> DeM0nFiRe: classes don't exist in prototype oo languages too :P
04:44:10 <DeM0nFiRe> elliott: Well, they will exist in my language but not my machine
04:44:17 <DeM0nFiRe> They will exist in syntax, but not the machine
04:44:52 <monqy> zzo38: and how would that work, more specifically?
04:45:01 <elliott> zzo38: you may be interested in http://community.haskell.org/~ndm/downloads/paper-deriving_a_relationship_from_a_single_example-04_sep_2009.pdf
04:45:11 <DeM0nFiRe> In all honesty
04:45:17 <elliott> or in SLIDE FORM :P http://community.haskell.org/~ndm/downloads/slides-deriving_a_relationship_from_a_single_example-04_sep_2009.pdf
04:45:28 <DeM0nFiRe> If there was a good implementation of JavaScript I would use that probably because it is close enough that I could use it for what I want
04:45:45 <elliott> DeM0nFiRe: how is V8 not good? it's even C++ :P
04:45:51 <DeM0nFiRe> Well
04:46:00 <DeM0nFiRe> It's C++ but still utilized in mostly C style
04:46:05 <DeM0nFiRe> Plus I hate google with a passion
04:46:06 <zzo38> monqy: Hypothetically assume Template Haskell has a function: automaticInstance :: Class -> (Type -> Q [Dec]) -> Q [Dec] (I might have some details wrong)
04:46:08 * elliott pings Gregor to handle whatever DeM0nFiRe says about javascript implementations since he's the expert
04:46:16 <DeM0nFiRe> Well
04:46:27 <elliott> DeM0nFiRe: you're letting your opinions of companies get in the way of using open source code that fills your needs? ok
04:46:42 <DeM0nFiRe> V8 is really the only true, mature standalone implementation of JavaScript, at least that I know of. I mean there's SpiderMonkey but that comes from mozilla
04:46:51 <DeM0nFiRe> elliott: It also doesn't fill my needs, as I said
04:46:54 <elliott> spidermonkey's just as standalone
04:46:57 <elliott> Rhino too
04:47:20 <elliott> DeM0nFiRe: you just said it was "mostly C style" which was totally not the impression I got when I read its API docs and I don't see how wrapping it to your needs wouldn't be simpler than writing a totally new thing :P
04:47:24 <elliott> not that i'm against writing a totally new thing
04:47:26 <DeM0nFiRe> Rhino is Opera's right? That's not available to use AFAIK
04:47:30 <elliott> but it seems weird to say that there is nothing that fits
04:47:31 <elliott> no.
04:47:42 <elliott> it's java though, so you probably don't care :)
04:47:47 <elliott> it's Mozilla
04:47:47 <pikhq_> elliott: Google's house style, like that of just about everyone sane, omits several C++ features.
04:47:51 <DeM0nFiRe> Heh, ok well then no I don't care
04:47:56 <pikhq_> In Google's case, most notably exceptions.
04:48:12 <DeM0nFiRe> Well, that is not what I am talking about
04:48:15 <pikhq_> C++ exceptions, of course, are a great misfeature.
04:48:29 <DeM0nFiRe> You call a series of functions to define objects with V8, that is not what I want
04:48:40 <monqy> oh nooooo
04:48:55 <elliott> surely that is wrappable.
04:49:03 <DeM0nFiRe> I am pretty sure I can come up with a way to at least semi-automagically wrap a C++ class and turn it into an object in my language
04:49:17 <monqy> hehehehehehehe good luck
04:49:27 <elliott> DeM0nFiRe: can't you make that translate to a series of function calls
04:49:35 <monqy> and how do you plan on doing this?
04:49:41 <DeM0nFiRe> Well, it's also not about going for the easiest solution. If there was an out-of-the-box JavaScript solution, I would use it. There's not, so I might as well go all out and make a language that does exactly what I want
04:49:43 <elliott> monqy: rtti stuff i guess
04:50:25 <DeM0nFiRe> Also the other cool thing is that my machine will work for making a JavaScript implementation on top of it :)
04:50:53 <DeM0nFiRe> And it will also be a platform for me to explore other language design related ideas that aren't something I would want to put in this language I am working on
04:51:08 <monqy> what all do you know about language design anyhow
04:51:34 <monqy> or think you know, or want to explore, etc etc
04:51:37 <DeM0nFiRe> Well, mostly what I have learned from studying the design of other languages, things like that
04:51:48 <monqy> other languages like what
04:52:16 <DeM0nFiRe> *shrugs* whatever, JavaScript, Ruby, Smalltalk, Java, C++
04:52:26 <DeM0nFiRe> Note that not all of them were looked at for examples of what was good :P
04:52:44 <monqy> I advise learning at least a functional language and a logic language
04:52:45 <monqy> at least
04:52:54 <DeM0nFiRe> I do plan on that
04:53:40 <zzo38> I advise all programmers to learn a few things about Forth programming, even if they decide later to never use it and/or to never continue to learn it
04:53:56 <DeM0nFiRe> I decided to make my own language because I actually looked at, I don't know, maybe 30 different languages? Trying to find one to do what I wanted
04:54:22 <DeM0nFiRe> And none of them did what I want, so I am sick of looking at languages so it's time to make one :P
04:55:38 <zzo38> I have also had ideas trying to find one to do what I wanted, although different than yours. Still read this I wrote my ideas of what I wanted in a specific usage programming language https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language It could probably be done with enough extensions to Haskell, though.
04:58:07 <DeM0nFiRe> LLVM is pretty cool stuff, but I couldn't quite find a way to implement what I wanted on top of it
04:59:03 <zzo38> I like LLVM too. I think LLVM is much better designed than C.
04:59:12 <DeM0nFiRe> Heh
04:59:56 <zzo38> One thing is if there are new reserved words, they will never conflict with any names you use in your program.
05:00:22 <zzo38> LLVM with powerful macro preprocessor would be very good programming language.
05:00:36 <DeM0nFiRe> I will likely later change my language up a bit to make it work on LLVM (I would mainly just have to remove the C++ interop stuff
05:00:44 <DeM0nFiRe> )
05:01:45 <DeM0nFiRe> The C++ interop stuff makes it more useful to me as a scripting language for games, but LLVM would add better C interop plus presumedly MUCH better performance, which would be better for a standalone language
05:05:22 <zzo38> I have included Forth in MegaZeux for use as an interpreted language; MegaZeux also has Robotic, and you can use both codes in the same game world.
05:06:24 <DeM0nFiRe> This MegaZeux http://en.wikipedia.org/wiki/MegaZeux ?
05:07:44 <zzo38> Yes, that one. However I made some extensions to it which are available here: http://zzo38computer.cjb.net/mzx1/mzx_extended/
05:08:35 <zzo38> Here are some examples of the Forth codes that you can use with it: http://www.digitalmzx.net/wiki/index.php?title=PZX#Examples_of_Forth_Codes
05:09:07 <zzo38> (Understanding ZZT would also help you to understand the uses of the examples better)
05:10:03 <DeM0nFiRe> Heh, well, I kind of doubt any of this would be directly useful for what I do, anyway. Know where I can find more technical info about things like the renderer and such?
05:10:54 <DeM0nFiRe> Ahh, looks like it's SDL now?
05:11:09 <zzo38> MegaZeux is using SDL. And I have used SDL for other programs too.
05:11:20 <DeM0nFiRe> I'm not a fan of SDL myself
05:11:44 <zzo38> I like SDL, though.
05:11:46 <elliott> does zzt like things even count as rendering
05:11:54 <elliott> http://www.textmodegames.com/images/screens/zzt.gif pro rendering
05:12:10 <DeM0nFiRe> :P
05:12:50 <zzo38> I don't know.
05:12:50 <evincar> elliott: Sure, you're rendering to a high-level (char+fg+bg) display, rather than a low-level (r+g+b) one.
05:12:51 <DeM0nFiRe> zzo38: No yeah I was just thinking allowed. I hadn't ever heard of MegaZeux before so I was wondering if it's something worth looking more into for myself
05:13:28 <DeM0nFiRe> aloud*
05:13:30 <zzo38> My own extensions of MegaZeux do allow writing custom renderers in Forth, although it is not very well documented.
05:13:33 <DeM0nFiRe> >.> <.< I didn't just do that
05:14:01 <zzo38> Here describes a series of games I make with MegaZeux: http://www.digitalmzx.net/wiki/index.php?title=Super_ASCII_MZX_Town
05:14:18 <DeM0nFiRe> I like ascii rendering, it's pretty cool
05:14:25 <zzo38> Which things under "Criticize" do you believe and which ones not?
05:14:26 <DeM0nFiRe> I wish I had a game idea that would be good for it lol
05:14:51 <DeM0nFiRe> zzo38: What do you mean believe?
05:15:01 <monqy> This game is bad because Hitler played it.
05:15:04 <zzo38> Note that MegaZeux does allow you to customize the character set (even at runtime), although I just used the CP437
05:15:21 <DeM0nFiRe> Ahh by ASCII I was being bad and I meant text rendering :P
05:15:25 <zzo38> DeM0nFiRe: I mean which ones you believe are correct and which ones you believe are incorrect
05:16:10 <DeM0nFiRe> Uhh my guess is that everything is false?
05:16:10 <zzo38> ("ASCII" appears in its name because the entire series uses only CP437 character set)
05:16:23 <DeM0nFiRe> Yeah
05:16:36 <DeM0nFiRe> If I was going to do a text game I would likely use the extended ASCII
05:16:43 <zzo38> OK, I believe you are correct that everything there is false
05:16:56 <zzo38> The stuff other than the "Criticize" list is correct, though.
05:17:20 <DeM0nFiRe> Did the digital MZX people really say all of it was true though? o.0
05:18:05 <zzo38> DeM0nFiRe: Well, sort of. Actually some of them are things other people said, but some are other stuff, or things in between these extremes, etc
05:18:43 <zzo38> For example, "This game is bad because Hitler played it." is actually a quotation from a scroll in one of the levels in this game.
05:18:56 <DeM0nFiRe> :P
05:19:22 <zzo38> "MagicGems are exactly like ZZT gems." is a statement general to MegaZeux, not specific to my game, although many people believe it to be correct although it isn't true at all.
05:19:46 <DeM0nFiRe> Heh well, clearly I would have no comment on that since I know what neither gems are :D
05:21:15 -!- elliott has quit (Ping timeout: 260 seconds).
05:21:58 <zzo38> Just note that the example Forth code I have linked to is much closer to being like ZZT gems.
05:22:21 <DeM0nFiRe> I can't wait til I have my machine finished, it will open up a lot of possibilities for me
05:22:56 <zzo38> "In one level you have to go through a corridor of lava with a windy potion and then quickly retreat from danger." Actually someone is being deluded by one of the puzzles; that is not the way to solve the puzzle at all.
05:24:46 <zzo38> There is the world file ZIP in case you want to play a game: http://zzo38computer.cjb.net/mzx1/ASCMZXTO/ascmzxto.zip
05:25:03 <DeM0nFiRe> Heh would I need to install MZX to run it?
05:25:12 <zzo38> You also need MegaZeux; select the file you need from http://zzo38computer.cjb.net/mzx1/mzx_extended/
05:25:25 <DeM0nFiRe> lol, sorry, I am not going to install that right now
05:26:02 <zzo38> (You do not need the megazeux.4th file unless you are writing games that use Forth codes; if you are running a game using Forth codes it will include its own copy of megazeux.4th)
05:27:09 <zzo38> It is not an installer; simply unzip it into a directory, and then edit the config.txt to set your preferences.
05:28:36 <DeM0nFiRe> Well it's 1:30AM so I am not planning on doing anything but chatting a bit more lol
05:28:57 <zzo38> OK
05:29:30 <DeM0nFiRe> So you said you like SDL, have you ever used OpenGL or Direct3D directly?
05:29:47 -!- Nisstyre has joined.
05:29:54 <zzo38> Did you know I have play D&D game? I have even recorded it, although I am not finished recording the second session
05:30:02 <zzo38> I have never used OpenGL or Direct3D.
05:30:47 <DeM0nFiRe> Ahh. Took me a while to decide to use OpenGL directly. I used SDL and a few different wrappers for Ruby of it before that
05:31:37 <zzo38> I have never used the 3D rendering stuff
05:31:58 <zzo38> In fact one program I wrote using SDL is available on Esolang wiki
05:32:02 <DeM0nFiRe> Yeah I am not actually using OpenGL for 3D stuff right now either
05:32:14 <monqy> direct opengl is pretty uglygross ime; i prefer sdl
05:32:20 <DeM0nFiRe> Well
05:32:27 <DeM0nFiRe> Depends on what you are doing
05:32:44 <DeM0nFiRe> Most of the ugly stuff (like glBegin()/glEnd()) has been removed from OpenGL
05:33:06 <monqy> is it just shaders now or what
05:33:06 <DeM0nFiRe> (implementations will still let you use it for backwards compatibility reasons, but you aren't supposed to :P )
05:33:15 <DeM0nFiRe> Yep, everything's shader based now
05:33:51 <DeM0nFiRe> So I write OpenGL 3.1 compliant code (mostly) but I do it in an OpenGL 2.0 context so that it can be used on more machines
05:34:08 <DeM0nFiRe> Since I am not using things like geometry shaders from GL3.1
05:35:00 <evincar> Direct mode was intuitive, but unwieldy. I'm glad it's been deprecated.
05:35:07 <DeM0nFiRe> Exactly
05:35:16 <DeM0nFiRe> It was something that was really easy to get started with
05:35:32 <DeM0nFiRe> But it was very very slow and it made your code invariably ugly
05:35:38 <evincar> But if you tried writing a large project with it, God help you.
05:35:55 <DeM0nFiRe> The GL 3.1 way to do things is harder to get set up initially, but once you do, everything is just nice
05:35:56 <DeM0nFiRe> nicer*
05:36:03 <evincar> // Warning: GL2.0 code ahead. Here be dragons.
05:36:14 <DeM0nFiRe> Faster, clearer, easier to maintain, easier to modify
05:36:38 <DeM0nFiRe> I am using only one thing that is in GL2.0 but not GL3.1
05:36:42 <DeM0nFiRe> GL_QUADS :P
05:37:05 <DeM0nFiRe> I have been too lazy to set up the equivalent with GL_TRIANGLE_STRIP or GL_TRIANGLES
05:37:14 <DeM0nFiRe> I will likely change it later, though
05:37:33 <DeM0nFiRe> Oh yeah also I am using GLSL 1.1 obviously :P
05:38:03 <DeM0nFiRe> But not using anything that has been removed from later GLSL versions
05:42:44 <zzo38> Now I made a list of implementation in my esolang wiki user page
05:45:10 <zzo38> My implementation of Deadfish in dc seems very strange
05:45:58 <zzo38> The entire program fits right here (it implements the XKCD variation of Deadfish): [p]1:z[d*]2:z[1+]3:z[1-]4:z[0sB]dsAx[lB0>AlB256=A0d?lBz;zxsBclCx]dsCx
05:46:30 <zzo38> dc codes are often like that, but this one is a bit more strange than most dc codes in one way
05:49:53 -!- DeM0nFiRe has quit (Quit: KVIrc 4.0.4 Insomnia http://www.kvirc.net/).
05:56:29 <zzo38> Although it is already possible to implement Markov chain using FurryScript, it might be better to add some commands to specifically deal with Markov chain, although I am unsure.
06:11:23 -!- zzo38 has quit (Remote host closed the connection).
06:42:15 -!- Patashu has joined.
06:43:17 <Patashu> Looks like my brother's CRT monitor has a problem. It's permanently stuck on projecting an apple core shape (sides bending in) and the bottom of it goes off screen even when you try to shrink it
06:46:53 <pikhq_> Many things that could be, none of them good.
06:47:04 <pikhq_> Have you considered getting a monitor made this millenium?
06:47:13 <pikhq_> (god I love that I can say that)
06:48:31 <evincar> pikhq_: ^5
06:50:08 <Patashu> I -think- it was made this millenium
06:50:17 <Patashu> But I mean, why fix it if it ain't broke? Except now it is
06:52:21 <Patashu> I think it's a good educational experience. He just learned how to manipulate windows (minimize restore etc) using just the keyboard
06:53:37 -!- Taneb|Kindle has joined.
06:53:49 <Taneb|Kindle> Hello
06:54:09 <Taneb|Kindle> Kindles disconnect easy we using 3G
06:54:59 <Taneb|Kindle> I seem to have hepython documentation on my laptop
06:55:04 <Taneb|Kindle> s/he/the /
06:56:33 <Taneb|Kindle> Is anyone here?
06:57:15 <monqy> no
06:57:20 <evincar> Not really.
06:57:51 <Taneb|Kindle> Okay
06:57:52 <evincar> I'm trying to decide on which Lisp/Scheme web framework to use.
06:58:06 <evincar> Anybody have meaningful opinions on that?
06:58:43 <Taneb|Kindle> I think I'll give Tanebcraft a futuristic theme
06:59:01 <Taneb|Kindle> And no, sorry
07:00:10 <Taneb|Kindle> I have never used either Lisp/Scheme or a web framework
07:00:45 <evincar> I guess I'll go with PLT, a.k.a. Racket, and hope for the best.
07:02:15 <Taneb|Kindle> Tell me how that goes
07:06:34 <Taneb|Kindle> One thing that the kindle lacks is tabbed browsing
07:08:01 <Taneb|Kindle> So comma bye
07:12:19 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
07:26:46 -!- chickenzilla has joined.
07:46:42 <evincar> This library has a lot of needless abstraction. :(
07:46:52 <evincar> And macro trickery for the mere sake of it.
07:48:05 <monqy> hm?
07:48:08 <pikhq_> No abstraction is needless. Most abstraction is underabstracted.
07:48:19 <pikhq_> It ain't abstract enough until it's an endofunctor!
07:48:27 <pikhq_> </stupid_haskeller>
07:48:36 <monqy> I agree with pikhq_; you're probably missing some point or another
07:48:49 <pikhq_> monqy: I was kidding.
07:49:00 <pikhq_> Many programmers are genuinely bad at abstraction.
07:49:05 <pikhq_> See: FactoryFactory.
07:49:11 <monqy> eek
07:49:24 <monqy> I guess I'm not used to misabstraction horrors
07:49:28 <monqy> usually it's the other way around
07:49:48 <pikhq_> Yeah, but when you get misabstraction it's *bad*.
07:51:30 <monqy> evincar: any examples? I'm a bit curious, now
07:52:20 -!- evincar has quit (Ping timeout: 252 seconds).
07:52:36 -!- sebbu2 has joined.
07:54:06 -!- sebbu has quit (Ping timeout: 240 seconds).
07:54:08 -!- sebbu2 has changed nick to sebbu.
08:00:54 -!- nooga has joined.
08:01:52 -!- pikhq_ has quit (Ping timeout: 252 seconds).
08:01:58 -!- pikhq has joined.
08:06:23 <nooga> haha
08:06:32 <nooga> clang has got blocks in C
08:07:34 -!- BeholdMyGlory has joined.
08:18:38 -!- evincar has joined.
08:23:50 <fizzie> "For the benefit of those who observe Webster’s spelling reforms, \textblockcolor is defined as a synonym for \textblockcolour, but those who would condemn such anaemic half measures can use \tekstblokkulur instead. There are also the corresponding spelling-reform variants of \textblockrulecolour."
08:24:06 <evincar> monqy: It's not that bad. I'm hard to please when it comes to libraries.
08:24:32 <evincar> There are some handy macros, but they have awful names like #%#
08:24:43 <monqy> ahaha what
08:24:59 <monqy> do they at least have a consistent, if not half-sensible naming scheme?
08:25:14 <evincar> They must, but I don't know where to find it.
08:25:20 <monqy> where by half sensible I mean pertaining to their function
08:25:31 <monqy> consistency alone is some sensibility, perhaps even a half
08:27:49 <evincar> In the tutorial for making a basic blog, there's this:
08:27:55 <evincar> (define new-post-formlet (formlet (#%# ,{input-string . => . title} ,{input-string . => . body}) (values title body)))
08:28:04 <evincar> Rather than, say, this:
08:28:06 <evincar> (define new-post-formlet (formlet (xexpr-list ((title input-string) (body input-string))) (values title body)))
08:28:39 <evincar> Macros are all well and good, but I like things to be concise.
08:28:48 <evincar> And to reflect the most common use case, with minimal weird syntax.
08:30:29 <monqy> I don't get #%#, but depending on the other workings of the library, I see how the ,{} notation could make more sense than what you did
08:30:30 <evincar> (Formlets being their own little quirk which arise from designing a web server...framework...thing around stateful continuations.)
08:30:36 <monqy> I don't know enough to tell, of course
08:30:41 <evincar> Sure, and neither do I.
08:30:48 <evincar> But I'm saying that API design should
08:30:51 <evincar> be simple.
08:31:06 <evincar> Even at the cost of implementation complexity.
08:31:18 <evincar> Because it probably *won't* come at the cost of implementation complexity.
08:31:29 <evincar> In all but pathological cases.
08:32:01 <evincar> It's not even that I can't figure out how to use it.
08:32:15 <evincar> It should just be obvious.
08:32:25 <evincar> Discoverability is a huge concern in API design.
08:32:34 <evincar> A user should be able to guess what function he needs.
08:34:15 <evincar> Or maybe I'm just griping 'cause it's fun.
08:34:28 <monqy> I actually meant in terms of api design
08:36:33 <evincar> Not sure what you're getting at.
08:36:56 <evincar> But anyway, modelling web transactions with continuations is very pretty.
08:40:05 <evincar> The world calls me with a request, and I generate and call a page which returns to me with another request.
08:40:22 <evincar> The result of a form submission, etc.
08:40:31 <Patashu> oh, that is good
08:40:47 <Patashu> you don't think about why continuations are useful until you think about async io
08:41:12 <monqy> evincar: I was talking about it might be conceptually nicer and more elegant etc etc to use a notation more like the one in the original rather than yours
08:41:51 <evincar> monqy: Oh, it might be, if you understand the reasoning behind it.
08:42:22 <monqy> well it depends on other things that can happen in the parts you changed
08:42:23 <evincar> But it's not immediately clear that #%# denotes a list of XML expressions.
08:42:32 <evincar> And I argue that it ought to be, all other things being equal.
08:42:52 <evincar> (By renaming it.)
08:42:58 <monqy> I was talking about the structure, rather than names
08:43:12 <monqy> namely, of the part with the braces and arrows, which you restructured quite a bit
08:43:29 <monqy> your names are generally more reasonable
08:43:46 <evincar> Why should I have to use braces? Why should I have to unquote what I send to this macro?
08:44:12 <monqy> I don't know! It depends on the other stuff in the library. that's my point.
08:45:02 <evincar> My point is that you ought to know, or rather, you ought to be able to discern from the code itself why it's written the way it is.
08:45:07 <evincar> I know this is a short example.
08:45:28 <evincar> So it's hardly worth discussing.
08:45:52 <monqy> if it's always of the same ,{thing . => . thing} structure, then yours is probably more reasonable, though just a slight bit less intuitive to read
08:54:18 <evincar> Hm. This is interesting.
08:54:43 <evincar> Racket also lets you model stateful servlets as stateless ones by serialising the continuations.
08:55:06 <evincar> Strikes me as brittle, as all of the serialised continuations are invalidated whenever you change your application.
08:55:23 <evincar> Also they can't be small.
08:55:26 <Patashu> won't non-serialised continuations be invalidated too?
08:55:49 <evincar> They'll be removed though, because the server will have stopped running the program.
08:56:03 <evincar> So they'll be invalid, but also gone.
08:56:15 <Patashu> what happens if you unserialize an invalid continuation?
08:56:17 <evincar> So they can't persist to fuck shit up in the future.
08:56:36 <evincar> Uh, presumably your application suffers catastrophic failure.
08:56:58 <Patashu> It might be smart enough to throw an exception
08:57:22 <evincar> So it is, actually.
08:57:38 <evincar> Still, peh.
08:57:43 <evincar> There has to be a better way of going about it.
08:58:07 <Patashu> version-sensitive continuations?
08:58:35 <evincar> That's still the same line of thinking though.
08:58:54 <evincar> Ideally I'd like forward-compatible continuations.
08:59:04 -!- Vorpal has joined.
08:59:19 <evincar> Those that don't fail unless what they refer to no longer exists.
09:00:02 <Patashu> do any programs even do that atm?
09:00:04 <Patashu> does chrome do it yet? lol
09:03:49 <cheater> evincar, every time you upgrade you have to make a migration script unless you are happy with the continuations being thrown away
09:04:06 <cheater> which is ok a lot of the time
09:07:11 <evincar> cheater: No, explicit migration wouldn't be necessary if the continuations were genuinely forward-compatible.
09:07:43 -!- CakeProphet has joined.
09:07:43 -!- CakeProphet has quit (Changing host).
09:07:43 -!- CakeProphet has joined.
09:08:17 <evincar> What I'm wondering is what kind of language has continuations for referring to "where I am now and what the rest of the compuation is" in a way that doesn't depend on the rest of the program.
09:08:36 <Patashu> I'm picturing some kind of diff-related utility
09:08:46 <Patashu> like the kind I read about that works on arbitrary data types not just strings
09:08:51 <evincar> If you make continuations explicit by writing things in CPS, your whole program is inside-out and the "rest" is "goddamn everything".
09:09:18 <cheater> evincar: this is impossible
09:12:15 <evincar> I disagree. If you specify things at a sufficiently high level, you can probably reduce dependencies to the point where it's feasible.
09:12:33 <Patashu> what about a 'language simulator' where the operations you can do on the code are small and atomic, so it can keep track of every programming element, e.g. assigning IDs to them?
09:12:40 <cheater> no you cannot
09:12:41 <Patashu> it'd be horrifically slow of course
09:13:59 <evincar> This is probably one of those things I assume should just work which turns out to be equivalent to the halting problem.
09:14:26 <monqy> equivalent?
09:14:53 <evincar> monqy: Something bother you about the term?
09:14:56 <monqy> yes
09:14:59 <cheater> how do you automatically migrate a continuation from "def main { f() } def f {yield; print 2 }" to "def main { print 2+2, yield' g() } def g { z = 7 ; yield; v = 3 }"
09:15:16 <cheater> sorry that ' should be a ;
09:15:31 <monqy> evincar: if "the term" means "comparing this to the halting problem"
09:15:37 <cheater> you cannot possibly even compare those code paths
09:16:00 <Patashu> @cheater: <Patashu> what about a 'language simulator' where the operations you can do on the code are small and atomic, so it can keep track of every programming element, e.g. assigning IDs to them?
09:16:01 <lambdabot> Unknown command, try @list
09:16:07 <monqy> evincar: it's not related to the halting problem at all, let alone equivalent
09:16:08 <cheater> Patashu, i was reading
09:16:11 <Patashu> ok
09:16:35 <cheater> Patashu, i am thinking of writing an AST/ASG code editor at some point
09:16:40 <cheater> this could facilitate such a language
09:16:41 <evincar> monqy: No, but some problems can be reduced to "if you could do this, then you could solve the halting problem, therefore your ideas are bad and you are bad".
09:16:54 <cheater> we could call it ELLLANG
09:17:23 <Patashu> ELL = ?
09:17:27 <cheater> because it will be the first version and it will suck
09:17:38 <cheater> ell comes from elliott which sucks too
09:17:43 <Patashu> oh
09:17:45 <monqy> ooh, burn
09:17:50 <cheater> but i hope the language will only suck half as much so only ELL
09:17:54 <cheater> :D
09:17:58 <evincar> cheater: The point is, anyway, that you can't resume f() between versions because it's missing in the newer version. But if f() continues to exist, it might be possible.
09:18:08 -!- azaq23 has quit (Ping timeout: 252 seconds).
09:18:52 <cheater> evincar, then you would keep f around as a stub. so replace the f in my question with an empty function and think about that again. the answer is the same.
09:19:22 <cheater> you can keep code around forever if you want but what you are doing is explicitly writing a migration path, which is exactly what you didn't want
09:19:43 <monqy> I think maintaining forwards compatability in this manner wouldn't be useful, and would only lead to pain in the programmers, in trying to make it useful
09:19:48 <Patashu> the IDE could write it for you
09:19:56 <Patashu> and then just don't modify the code outside of the IDE ever ever ever!!!
09:20:03 <Patashu> so yeah
09:20:19 <evincar> 6_o
09:20:28 <monqy> hi
09:20:39 <evincar> Yeah, it wouldn't be useful.
09:20:51 <evincar> But it's an amusing thought experiment at five in the morning.
09:21:10 <Patashu> evincar, it's 4 o'clock in the morning. What on earth are you doing?
09:21:30 <evincar> Messing with time, apparently.
09:21:42 <evincar> Through the magic of being on a different part of a sphere.
09:22:01 <Patashu> I just realized I misquoted a meme oops
09:22:19 <cheater> you are wrong, hotswapping of code is very important and is done in a lot of places
09:22:23 <cheater> erlang does that
09:22:30 <cheater> ksplice does that to the linux kernel
09:22:34 <Patashu> flex does it
09:22:43 <cheater> satellites do that
09:22:50 <cheater> you mean as in flex bison?
09:23:07 <Patashu> flex is a platform for flash: http://www.adobe.com/products/flex/
09:23:38 <monqy> cheater: hotswapping may be useful, but using it to maintain forwards compatability in the general case? maybe for special cases, sure
09:24:17 <monqy> or were you not replying to me
09:24:20 <monqy> in which case oops
09:24:25 <cheater> i was
09:25:08 <cheater> forward compatibility should be managed at the level of one update, not as a concept of making old code compatible with new code in one step
09:25:21 <cheater> unless that one step is actually composed out of multiple such atomic steps
09:25:46 <cheater> if you see it that way it becomes a much less daunting task
09:26:05 <cheater> in fact you can then probably make it backwards compatible too
09:26:52 <evincar> And I'm talking about web transactions specifically.
09:28:10 <monqy> cheater: maybe there's some sort of disconnect in understanding and we're actually talking about different things
09:28:12 <cheater> yeah that is fairly straightforward
09:28:23 <evincar> Where the browser accepts a page and yields a request, and the app accepts a request and yields a page.
09:28:34 <cheater> basically you have your data structure, and the state of a transaction
09:28:49 <cheater> with web apps your data structure is migrated server-side anyways
09:29:26 <cheater> and the transaction is just a state of the data structure that is like a VCS brabch, not merged into the main version until it is committed
09:29:51 <cheater> there is no reason you couldn't migrate that together with the main version of the database though
09:30:36 <cheater> the code is irrelevant to transactions
09:30:57 <cheater> or rather
09:31:17 <cheater> if you are mid transaction, code might decide what possible changes you can do to the data
09:31:44 <cheater> there are usually just a few paths from every identifiable checkpoint in a transaction
09:32:04 <monqy> anyway, what I meant, more specifically, was that I don't think it would be generally useful (though it would be in some cases, maybe even the common case) to swap stuff in the way evincar described for forwards-compatability purposes without some sort of migration assistance
09:32:04 <cheater> you just want those checkpoints to map to something in the new version and that is all
09:32:22 <monqy> and I probably messed up a bunch explaining previously and then
09:32:49 <cheater> what do you mean by migration assistance and why did you think evincar didn't want it
09:33:15 <evincar> But yeah, I don't think it would be useful at all.
09:33:22 <evincar> It might be, in a way I'm not considering.
09:33:33 <cheater> it is super useful
09:33:42 <monqy> I mean something explicit to assist with migration from the old code to the new code
09:33:44 <cheater> there are lots of things with long standing migrations
09:34:01 <cheater> it is a true and important problem in the Industry
09:34:12 <evincar> Right, but not generally between requests from the same user. :P
09:34:19 <evincar> User requests Page 1.
09:34:23 <evincar> I send him Page 1.
09:34:28 <evincar> I change my code.
09:34:34 <evincar> He expects Page 2.
09:34:36 <cheater> you are wrong
09:34:39 <evincar> My code should account for that.
09:34:39 <monqy> what I inferred from what evincar described is that he wanted it to be based on names, without requirement for writing migrations between versions
09:34:51 <cheater> you are thinking at the wrong level
09:35:03 <cheater> building applications, be it web apps or not, is not about pages
09:35:08 <cheater> or screens or dialogs or panels
09:35:21 <cheater> it is about actions
09:35:26 <evincar> Fine. I yield him "some data".
09:35:37 <cheater> then he comes back with that data
09:35:42 <evincar> And based on said data, he yields me "some request".
09:35:49 <evincar> Call it what you want.
09:35:50 <cheater> either you invalidate it or you give him a migration path
09:36:30 <cheater> here is an example
09:36:50 <cheater> a satellite with a realtime control spread across two processors
09:37:18 <cheater> the integration time of the PID is several minutes in order to get proper resolution
09:37:54 <monqy> for swapping of hot code in the general case, V8's optimizer/whatever does that, right?
09:37:56 <cheater> you want to upgrade the program without knocking the satellite off orbit. if the PID has to collect data over several minutes again while being unable to correct the orbit, the satellite is gone
09:38:48 <monqy> by general case I mean it is a specific application of a more general thing than swapping specifically for transition between versions
09:39:01 <cheater> the engine subsystem gets correction data based on the controller's output, and feeds the controller back with sensory information it got
09:39:28 <cheater> that sensory information changes format in the new version because e.g. the old version allowed a bug
09:39:38 <cheater> you have to upgrade this
09:39:53 <cheater> here is a solid application of this programming problem
09:42:23 <evincar> Solution 1: version everything. Solution 2: name fields and establish (possibly bidirectional) conversions.
09:42:46 <evincar> Solution 2 is what Blender does for serialising structs in its save format.
09:42:47 <monqy> ???
09:43:19 <evincar> Making them forward and backward compatible between versions, within reason.
09:43:30 <monqy> how is solution 1 a solution, and what does solution 2 mean
09:43:46 <monqy> alternatively, how are either of them solutions, and what do both of them mean
09:44:14 <evincar> Solution 1 = accept data in the old format but only generate it in the new one, and everything will be sorted eventually and then you can disable the old format.
09:44:53 <monqy> oh so this is about data?
09:45:01 <evincar> Solution 2 = establish a conversion between the two formats based on some metadata.
09:45:09 <evincar> My problem wasn't.
09:45:19 <evincar> Well, only insofar as code isn't data.
09:45:35 <cheater> it was, data and program are dual to eachother
09:45:38 <evincar> But I was also talking about Scheme, so I guess I was wrong.
09:47:15 <monqy> where by "about data" I mean "about establishing a translation between data formats, rather than code paths/etc."
09:47:31 <evincar> It amounts to the same thing, though.
09:47:48 <cheater> your code path is part of the data format.
09:47:58 <evincar> Because code paths, as serialised continuations, are data.
09:48:37 <evincar> But the obvious format to use isn't amenable to change.
09:48:48 <monqy> what's the obvious format
09:48:50 <evincar> So I guess I'm speculating about other formats.
09:49:04 <monqy> anyway I kind of forget what I meant
09:49:07 <monqy> :'(
09:49:17 <evincar> I dunno, I ought to sleep.
09:49:57 <evincar> This hasn't been terribly useful, and if elliott reads it later he'll probably find some reason or another to shout at me.
09:50:09 <monqy> me too :'(
09:50:16 <monqy> anyway I think I got confused at some point
09:50:19 <evincar> I imagine him as a small, skinny, angry fellow.
09:50:25 <monqy> and thought the conversation was about something it wasn't
09:50:33 <evincar> I guess I don't need to imagine that he's an angry fellow.
09:50:35 <monqy> and then started talking about bad things
09:50:41 <evincar> He's sort of demonstrated that.
09:51:07 <evincar> Oh well, misunderstandings can be entertaining at least, and fruitful at best.
09:51:12 <monqy> dear elliott: disregard everything i said in the preceeding conversation it (the conversation) was stupid and i was confused
09:51:39 <CakeProphet> I am immune to confusion.
09:51:41 <evincar> Did you just "haha disregard that I suck cocks" yourself?
09:51:48 <Patashu> is it possible to have serialized continuations and also have native code compiling?
09:52:03 <monqy> evincar: what does that mean
09:52:39 <monqy> evincar: depending, I may have
09:52:43 <evincar> monqy: http://knowyourmeme.com/memes/disregard-that-i-suck-cocks
09:52:45 <CakeProphet> Patashu: the serialized continuations would have to be either 1) platform dependent 2) bytecode interpreted seperately from the native code
09:53:04 -!- cheater has quit (Read error: Operation timed out).
09:53:09 <Patashu> haha, what a weird thought. compiling to both bytecode AND native code and running both simultaneously
09:53:24 <monqy> evincar: sure whatever
09:53:26 <evincar> Woo I got erbo'y talkin' 'bout what ah did be talkin' 'bout.
09:53:51 -!- cheater has joined.
09:53:55 <evincar> monqy: It wasn't a good joke but it was a joke and I'm dealing with insomnia.
09:54:00 <CakeProphet> Patashu: well not simultaneous. Running one or the other when appropriate.
09:54:32 <Patashu> CakeProphet: it could be multi-threaded
09:54:39 <evincar> Patashu: That's essentially the point of JIT compilation on architectures that otherwise use bytecode.
09:54:48 <evincar> Such as the JVM.
09:55:09 <CakeProphet> ah yes, that makes much more sense.
09:55:10 <evincar> You JIT what you can and bytecode what you have to.
09:55:16 <Patashu> then threads that can run entirely on native code do so, while threads that need e.g. serialized continuations run on the bytecode version
09:55:18 <CakeProphet> compile to bytecode and JIT compile that.
09:55:28 <Patashu> I don't think JVM works like that (it never needs to stick to bytecode, it JITs when it detects it needs to)
09:56:01 <evincar> I dunno, I'm not up on it.
09:56:02 <CakeProphet> jit jit jit jit jit
09:56:09 <Patashu> I'll jit that in a jiffy
09:56:13 <CakeProphet> !perl sleep
09:56:15 <Patashu> as soon as I'm over the jitters
09:56:31 <evincar> I thought compilation to native code was done primarily as an optimisation.
09:56:37 <Patashu> yes
09:56:40 <evincar> But maybe I'm living in the 90s.
09:56:55 <monqy> compilation to native code is done because it's hip
09:56:58 <monqy> there's no other reason
09:57:11 <evincar> Not, y'know, performance or anything like that.
09:57:36 -!- EgoBot has quit (Remote host closed the connection).
09:57:47 -!- EgoBot has joined.
09:57:59 <evincar> I've slowly been realising lately that a language ought to spare no expense when it comes to abstraction, and leave it up to the poor compiler writer to come up with clever optimisations to compensate.
09:58:22 <evincar> Language: EVERYTHING IS A CONSLIST
09:58:37 <monqy> good one
09:58:39 <evincar> Implementor: Ugh, no, dammit, sometimes things are numbers.
09:58:54 <evincar> Language: I HAVE INFINITE MEMORY
09:59:03 <evincar> Implementor: GC time.
09:59:07 <evincar> etc.
09:59:20 <Patashu> > C and fortran are still an order of magnitude faster than any other language
09:59:21 <lambdabot> <no location info>: parse error on input `of'
09:59:42 <Patashu> haha, it took as long as 'of' to realize, hey, this ain't haskell!
10:00:40 <evincar> In a language I was working on recently, that'd've parsed correctly.
10:01:00 <monqy> hm?
10:01:00 <Patashu> would To Kill a Mockingbird be a valid program?
10:01:11 <evincar> As ((C) and (fortran are still an order of magnitude faster than)(any (other language))).
10:01:27 <evincar> Because "and" and "any" are builtins and identifiers can be multi-token.
10:01:27 <monqy> what
10:02:03 <evincar> I mean, it wouldn't've *run*.
10:02:23 <evincar> I'm not *magic*.
10:02:41 <monqy> "identifiers can be multi-token" wouldn't it be simpler to expand the lexical syntax to make multi-word identifier tokens?
10:03:00 <evincar> wat
10:03:01 <Patashu> what's the difference?
10:03:03 <monqy> er
10:03:09 <monqy> one of them is simpler
10:03:11 <monqy> :'(
10:03:20 <Patashu> they sound like the same thing to me............
10:03:30 <monqy> one of them jives with me betterly
10:04:41 <evincar> Implementation-wise, yeah, identifier ::= identifier-part (ws* identifier-part)*
10:04:52 <monqy> I wouldn't want to bother having to stick my tokens together to form identifiers; it strikes me cleaner to have identifiers parsed nicely by the lexer
10:05:16 <monqy> but who cares about tokens what are those
10:05:47 <evincar> The feature is good for readability but bad for expectations.
10:06:11 <evincar> "if foo bar" is a parse error because "foo bar" is an identifier.
10:06:30 <evincar> I forget how I resolved that.
10:06:40 <evincar> Other than "if (foo) bar".
10:07:13 <evincar> Whatever. Time for sleep.
10:07:32 <monqy> if foo then bar?
10:08:03 <Patashu> tokens being able to have spaces in them seems like it's just asking for trouble, unless you're doing it to prove something
10:09:05 <evincar> I was doing it to prove that PotatoDomainInteractionControllerSystem is unreadable.
10:09:13 <monqy> but it is readable
10:09:19 <monqy> but why would you type it
10:09:20 <monqy> but
10:09:20 <monqy> why
10:09:31 <Patashu> it's readable enough
10:09:39 <Patashu> what about potato_domain_interaction_controller_system? that's readable as fuc
10:09:46 <Patashu> and where the token begins and ends is embedded into it as a bonus
10:09:58 <monqy> potato-domain-interaction-controller-system is good too
10:09:59 <evincar> Also to make an intelligently structured language with minimal punctuation.
10:10:45 <monqy> by punctuation do you mean "characters like .!~#$%^&*" or what
10:11:00 <Patashu> #define { begin
10:11:02 <Patashu> #define } end
10:11:07 <monqy> hehehehe
10:11:10 <monqy> yes
10:11:23 <monqy> but the other way around? maybe? who knows???
10:11:32 <evincar> JUST LIEK PACSAL :D
10:11:36 <monqy> depends on which way you're going. either way, yes.
10:11:45 <monqy> it is a point which I was planning to make
10:11:48 <monqy> after I got my answer
10:12:04 <evincar> And yes, by punctuation I mean "characters like fuck".
10:12:26 <monqy> seems like a bit of a strange goal
10:12:32 <evincar> Alternatively, whatever ispunct() says.
10:13:00 <evincar> It was one of the lesser important goals of that language.
10:13:08 <Patashu> SQL has low amounts of symbols
10:13:26 <evincar> Bluh. Too much redundancy though.
10:14:11 <Patashu> http://golf.shinh.org/reveal.rb?1000+digits/leonid+%28alnum%29_1226043321&rb
10:14:25 <evincar> I guess the point is that punctuation in a language should be intuitively meaningful, not just arbitrarily or conventionally specified.
10:14:31 <Patashu> so-called alnum solution
10:14:36 <evincar> Because keywords are self-evident.
10:14:57 <evincar> So punctuation ought to be held as close to that standard as possible.
10:15:42 <monqy> keywords are hardly self-evident
10:15:50 <Patashu> I don't mind punctuation most of the time because it's similar in most languages
10:16:01 <monqy> and it's as much defined by convention as other symbols
10:16:15 <evincar> This goes back to the API design argument.
10:16:23 <evincar> A keyword should give you a clue as to what it does.
10:16:41 <monqy> + gives as much a clue about what it does as "plus"
10:16:49 <Patashu> <$>
10:16:52 <monqy> perhaps even more
10:16:53 <monqy> clue
10:16:53 <Patashu> self evident the operator
10:17:00 <evincar> Well, yes, but that's an established convention.
10:17:02 <evincar> Same as English is.
10:17:14 <monqy> 03:16:00 < evincar> I guess the point is that punctuation in a language should be intuitively meaningful, not just arbitrarily or conventionally specified.
10:17:16 <evincar> Whereas ++ isn't universally recognised as concatenation.
10:17:18 <Patashu> hmm, what about fortran?
10:17:26 <Patashu> like 95% of its features are new keywords
10:17:33 <monqy> evincar: you said yourself that it shouldn't just be conventionally specified???
10:17:37 <monqy> evincar: maybe you're tired??
10:17:48 <evincar> You're right.
10:17:54 <Patashu> I think he means, established convention for -everyone- who speaks english
10:17:57 <Patashu> so + - etc are fine
10:18:04 <Patashu> ! is not, because what does ! mean? this sentence is really important?
10:18:21 <evincar> What I should have said was "the convention shouldn't be fully internal to the language: it should have a rational basis elsewhere".
10:18:51 <monqy> what about when that would only hinder it
10:18:51 <evincar> Patashu: Right.
10:19:04 <evincar> Then you make the break.
10:19:09 <evincar> But only then.
10:19:43 <evincar> And in an esolang, that's entitled to happen more often than not.
10:19:49 <evincar> But usability is usability.
10:20:10 <evincar> You've got to respect convention and human constraints, whether you like it or not.
10:20:18 <evincar> And I'm really leaving now.
10:20:21 -!- evincar has quit (Quit: leaving).
10:20:26 <Patashu> have you ever looked at inform, the scripting language for IFs?
10:20:27 <Patashu> bah
10:20:34 <Patashu> inform is written to look as much like english as possible
10:29:05 <Patashu> how do you send someone a message such that it bugs them about them the next time they come on
10:29:19 <monqy> lambdabot
10:29:46 <monqy> @help tell
10:29:46 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
10:30:25 <Patashu> tell evincar Check out this language, it's meant to be as english-like as possible: http://inform7.com/
10:30:29 <Patashu> like that?
10:30:35 <monqy> with a @ or ? in front
10:30:37 <Patashu> @tell evincar Check out this language, it's meant to be as english-like as possible: http://inform7.com/
10:30:37 <lambdabot> Consider it noted.
10:32:48 <monqy> being too much like english is a bad thing imo
10:33:07 <Patashu> I think so too in this case
10:33:11 <Patashu> english is ambiguous
10:33:19 <Patashu> if you word your sentence wrong the person you talk to is like 'okay I get what you mean'
10:33:51 <monqy> even if being like being like english itself isn't a hinderenace enough, it's bound just to end up being confusing constructing sentences that the thing will understand
10:35:06 <monqy> I agree that it's best to stick to well-established convention when it's not a hinderence, but I think a better rule is simply "don't be stupid"
10:35:42 <monqy> (programming language syntax that mimics natural language is stupid)
10:36:26 <monqy> (an inconsistent mess of symbols instead of making sense when it'd be just as easy to provide an english name is also stupid)
10:37:47 <monqy> (and in between those, it's kind of stupid to turn a simple consistent set of newly-introduced symbols into a mess of english words, especially when they aren't descriptive enough to actually convey more meaning or be more memorable than the symbols without being stupidly verbose)
10:37:59 <monqy> ((where by kind of stupid, I mean stupid))
10:38:35 <monqy> (((I put this here mostly just so I can tell evincar about it)))
10:39:54 <Patashu> what do you think about perl syntax?
10:40:03 <monqy> it's a mess
10:40:10 <Patashu> .. best operator
10:48:41 -!- monqy has quit (Quit: hello).
11:03:49 <fizzie> ../... in a scalar context is indeed the best.
11:08:29 <Patashu> there's a ... operator too?
11:08:53 <fizzie> It's almost but not quite exactly like '..'.
11:09:01 <fizzie> In list context, it is the same.
11:10:08 <fizzie> In scalar context, there's a slight difference in whether it tests the right operand on the first time when it becomes true.
11:11:20 <Patashu> http://www.perl.com/pub/2004/06/18/variables.html wow
11:11:21 <Patashu> perl is crazy lol
11:13:43 <fizzie> !perl @a = (1,2,3,4); for (@a) { print "dotdot $_ " if $_==1 .. 'truu'; print "dotdotdot $_ " if $_==1 ... 'truu'; }
11:13:44 <EgoBot> dotdot 1 dotdotdot 1 dotdotdot 2
11:13:48 <fizzie> See, a difference.
11:14:38 <fizzie> The dotdot tests the right side also on the round when $_ == 1, and thus becomes false immediately; the dotdotdot doesn't test until $_ = 2.
11:16:11 <fizzie> If you wonder about the "'truu'", I just needed something that's always true, except it couldn't be a constant number (e.g. 1) because if it's that, it gets magically automatically turned from 1 to $. == 1.
11:19:05 -!- GreaseMonkey has quit (Quit: The Other Game).
11:19:43 <Patashu> http://perldoc.perl.org/perlop.html#The-Triple-Dot-Operator
11:19:52 <Patashu> doesn't talk about its flipflop use
11:20:10 <Patashu> ah
11:20:13 <Patashu> it's talked about udner range operators
11:21:11 <fizzie> Right, there's also that use. Though I thought the triple-dot stand-in was something quite new?
11:21:37 <fizzie> (I mean post-5.10 new here.)
11:22:02 <Patashu> haha
11:22:06 <Patashu> Perl doesn't officially have a no-op operator, but the bare constants 0 and 1 are special-cased to not produce a warning in a void context
11:22:15 <Patashu> it's like stuff you see in java/C# just because C did it :O)
11:58:29 <nooga> hm?
11:58:32 <nooga> so
11:58:44 <nooga> where could I put the 0 in Perl?
12:00:24 <Patashu> void context
12:02:15 <Patashu> 1 while foo();
12:02:16 <nooga> oh
12:02:17 <nooga> 0;
12:02:18 <nooga> 1;
12:02:59 -!- Sgeo has joined.
12:03:11 <Gregor> It's like having a label at the end of a loop in C and using 0; just because labels need a statement.
12:03:16 <Gregor> fail: 0;
12:04:05 <fizzie> Or wanting to have a local variable in a case X: statement, and having to either insert an artificial {block} there, or put a 0; or something after the label.
12:04:38 <fizzie> Admittedly with an artifical block the scope of it won't then extend to the other case statements.
12:05:10 <fizzie> (And makes it C++-legal.)
12:05:34 <Gregor> With C89 you need a block too :P
12:05:41 <nooga> you could do just ;
12:05:45 <nooga> like
12:05:56 <nooga> if(something) ; else blah blah;
12:06:44 <nooga> uh no, {;}
12:07:00 <nooga> i remember playing with this
12:07:41 <Gregor> No, ; works.
12:07:58 -!- boily has joined.
12:07:59 <Gregor> But label:; reads like shit :)
12:08:44 <fizzie> Grammar-wise the ";" is an expression statement, only the expression is optional.
12:09:29 <fizzie> Possibly more often seen in for/while than elsewhere.
12:10:18 <fizzie> What also would look real stupid is "do ; while (whatever);"
12:10:41 <Patashu> is the idea that it looks stupid arbitrary or based on polling?
12:10:44 -!- Taneb|Kindle has joined.
12:11:00 <fizzie> "Do a sea monster while whatever."
12:11:03 <Taneb|Kindle> Hello
12:11:21 <Patashu> `addquote <fizzie> "Do a sea monster while whatever."
12:11:26 <Patashu> am I doing it right
12:11:26 <HackEgo> 624) <fizzie> "Do a sea monster while whatever."
12:11:34 <fizzie> Yes, for some values of "right".
12:11:41 <Patashu> so right is an array?
12:12:01 <Taneb|Kindle> No, a dict
12:12:14 <fizzie> "No, *you're* the dick!"
12:12:18 <Patashu> <things you can do right,bool>
12:16:18 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
12:17:22 <itidus20> is the word "do" redundant for a pc? :D
12:19:57 <Patashu> introducing the new keyword, dont
12:20:13 <Patashu> infuriating grammar pedants with its lack of apostrophe
12:30:16 <itidus20> dont { printf("blah\n"); } while (i > 5);
12:31:50 <itidus20> nou, ya' a dick, ya' the biggest dick in all of canada
12:57:08 <Gregor> rezzo crashes for /no freaking reason/ on Mac ...
12:57:19 <Gregor> It crashes while allocating the SDL window.
12:57:53 <Gregor> It's like SDL says "I need a window this size" and the Mac goes "NOT PRETTY ENOUGH" and barfs all over you.
13:01:55 <Gregor> ALSO: I decided before uninstalling MacPorts, I should update it (I don't know why)
13:01:59 <Gregor> It's taking FOREVER to update >_<
13:34:22 <fizzie> It took a day or two when I last booted the iBook and told it to update MacPorts, and I don't even have really much of anything installed from there.
13:36:52 <nooga> goddamn GDT
13:37:29 <fizzie> The global descriptor table?
13:38:57 <nooga> yep
13:40:20 -!- Phantom_Hoover has joined.
13:41:23 -!- iamcal has quit (Ping timeout: 276 seconds).
13:41:29 -!- iamcal has joined.
13:45:24 <itidus20> lol
13:45:26 <Phantom_Hoover> > 81 * 7 * 4
13:45:26 <lambdabot> 2268
13:45:31 <Phantom_Hoover> itidus20!
13:45:45 <itidus20> Aesthetic Disgrace Error E9504
13:46:01 <itidus20> Please see your Graphic Designer.
13:46:39 <itidus20> (recycling someone elses joke)
13:47:02 <Gregor> A typo has created the greatest forename ever: Weclome.
13:47:14 <Gregor> Or middle name!
13:47:42 <Gregor> Mordechai Weclome Birkenstein
13:47:52 <Gregor> Or even surname!
13:47:55 <Gregor> Mordechai Weclome-Birkenstein
13:48:05 <itidus20> Phantom_Hoover: <Gregor> It's like SDL says "I need a window this size" and the Mac goes "NOT PRETTY ENOUGH" and barfs all over you.
13:48:47 <Patashu> > product []
13:48:47 <lambdabot> 1
13:48:51 <Phantom_Hoover> Gregor, perhaps the most Jewish name?
13:49:09 <Phantom_Hoover> Although Weclome really looks English to me.
13:49:18 <itidus20> that joke has so much potential... oy vey
13:49:23 <Gregor> Phantom_Hoover: Idonno, it sounds hyperisraeli to me.
13:49:24 <itidus20> i mean the SDL one
13:49:45 <Gregor> The thing is, it actually crashes in the middle of Aqua garbage.
13:49:58 <Gregor> It's not SDL that crashes, it's the Aqua/Cocoa/whateverTF libraries.
13:50:15 <Patashu> how come?
13:50:58 <itidus20> Error "The ratio of your window's width to it's height is not expressible as a ratio of numbers less than 20"
13:51:29 <itidus20> :-??
13:52:54 <itidus20> Your background color is atrocious. Your fontfaces are outdated, and your borders look like children's scribbles.
13:54:16 <itidus20> Now get your ugly yeller keister offa my property while (i > 0) i--;
13:54:45 -!- GuestIceKovu has joined.
13:55:14 <Gregor> itidus20: It's 1:1 :P
13:55:23 * itidus20 barfs.
13:55:25 -!- Slereah has quit (Ping timeout: 268 seconds).
13:57:41 <itidus20> for whatever reason regular polygons are ugly in computer interfaces
13:58:00 <Patashu> I don't think a polygon can be irregular
13:58:04 <Patashu> you need at least four vertices for that
13:59:00 <itidus20> lol
14:01:20 <itidus20> in any case we humans like our rectangles
14:01:32 -!- iamcal has quit (*.net *.split).
14:02:23 <itidus20> Patashu: have you ever heard of the game N?
14:03:48 <Patashu> yup
14:04:05 <itidus20> Either way, I have been reading their blog today. It seems that after the success of N they have spent 4 years trying to make a 2d robot simulator. Poor things.
14:05:56 <Gregor> 2011-08-25 10:06:47.642 rezzo[21005:10b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error (1002) creating CGSWindow'
14:05:56 -!- iamcal has joined.
14:05:59 <Gregor> WTF, mac
14:06:57 <itidus20> it's because steve jobs resigned
14:07:05 <Patashu> http://www.google.com.au/search?sourceid=chrome&ie=UTF-8&q=Error+(1002)+creating+CGSWindow
14:08:57 <Gregor> ArghSDLmain
14:10:35 <itidus20> it may just mean i'm lazy, but my planned design for a virtual machine is basically to wrap high level function calls to a bytecode
14:11:00 <itidus20> having said this.... some languages on the wiki do the same thing :D
14:11:16 <Patashu> isn't that how jvm works? before it started jitting
14:11:17 <itidus20> well not a bytecode but tokens or whatever
14:11:25 <itidus20> dunno
14:14:33 <itidus20> i think in the long run linux will be a safest bet
14:14:52 <itidus20> windows has evidently no interest in backwards compatability
14:15:43 <Gregor> ...
14:16:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:16:10 <itidus20> ms platforms gradually dying off.. dos.. win3.11 .. win95.. win98.. visual basic 6 runtimes.. etc etc etc
14:16:24 <Gregor> Whereas Linux binaries from four years ago won't run :P
14:16:32 <itidus20> oh darn
14:16:36 <itidus20> thats not good
14:16:42 <Gregor> (Depending on how you made them)
14:16:48 <itidus20> hehehe
14:16:54 <Gregor> Yeah, Linux has an abysmal track record for backwards-compatibility (though it's getting better)
14:17:08 <Gregor> And in fact, it's not Linux.
14:17:11 <Gregor> Linux has a great track record.
14:17:14 <Gregor> It's the GNU userland.
14:17:21 <itidus20> lol
14:17:26 <itidus20> even more reason for virtual machines
14:17:37 <Gregor> Linux 3 can run binaries made with libc4 for Linux 2 :)
14:17:41 <Gregor> (.0)
14:17:49 <itidus20> when you know the actual machine is going to be extinct... rely on vm
14:17:53 <Gregor> Yuh
14:20:02 <itidus20> Some of the best games are built ontop of VM's.
14:20:16 <Gregor> And when the machine that runs the VM is extinct ... run it in a VM!
14:23:44 <itidus20> So the creators of N have shown that even they can fall prey to the siren's call of overengineering.
14:27:41 <itidus20> I thought(verb1) I was(verb2) clever by thinking(verb3) of creating(verb4) a skeletal animation system with no actual game in mind for it. However they spent like 4 years mucking around with one and they're not even close to having an actual game.
14:28:06 <Patashu> skeletal animation system, aka adobe flash
14:28:08 <Patashu> :P
14:28:26 <itidus20> uhmm
14:29:05 <Patashu> am I not right?
14:29:07 <itidus20> i dunno... they seemed to resist using common terminology such as "bone" as if it would reduce the signifigance of their work somehow.
14:30:53 <itidus20> another case of aimless r&d (they are quite happy to call the work they're doing r&d) under the guise of game development
14:31:12 <Gregor> Speaking of game design ... Rezzo! :P
14:31:17 <Gregor> lololobsessed
14:39:45 -!- copumpkin has joined.
14:45:08 -!- caddyshack has joined.
14:47:36 -!- caddyshack has left ("Ex-Chat").
15:03:53 -!- augur has joined.
15:08:14 -!- cheater has quit (Remote host closed the connection).
15:09:08 -!- cheater has joined.
15:13:33 -!- augur_ has joined.
15:13:42 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:14:42 -!- augur__ has joined.
15:15:22 -!- augur has quit (Read error: Connection reset by peer).
15:18:05 -!- augur_ has quit (Ping timeout: 246 seconds).
15:18:58 -!- augur__ has changed nick to augur.
15:20:08 -!- Taneb|Kindle has joined.
15:20:20 <Taneb|Kindle> Hello
15:24:46 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
15:26:03 -!- GuestIceKovu has changed nick to Slereah.
16:04:05 -!- sllide has joined.
16:51:36 -!- MDude has joined.
17:13:28 -!- elliott has joined.
17:15:49 <elliott> i really like it when new people in here get to talk to zzo
17:16:23 <elliott> 05:32:44: <DeM0nFiRe> Most of the ugly stuff (like glBegin()/glEnd()) has been removed from OpenGL
17:16:38 <elliott> if by ugly you mean not ugly, and by removed you mean now you get to write a shader for everything
17:24:01 <elliott> `addquote <Phantom_Hoover> The fact that the elves will be happy with this will hopefully be counteracted by the fact that I plan to drop them into the magma cistern.
17:24:07 <HackEgo> 625) <Phantom_Hoover> The fact that the elves will be happy with this will hopefully be counteracted by the fact that I plan to drop them into the magma cistern.
17:24:32 <Phantom_Hoover> elliott, oh come on, not everything I say about DF is quotable.
17:24:40 <elliott> Phantom_Hoover: Except that it is.
17:24:48 <elliott> Phantom_Hoover: Well, "* Phantom_Hoover makes SO MUCH SOAP" wasn't.
17:24:50 <elliott> But that was.
17:25:31 <elliott> `addquote <Patashu> But I mean, why fix it if it ain't broke? Except now it is
17:25:33 <HackEgo> 626) <Patashu> But I mean, why fix it if it ain't broke? Except now it is
17:26:01 <elliott> `delquote 625
17:26:04 <HackEgo> ​*poof*
17:26:38 <elliott> `addquote <Phantom_Hoover> The fact that the elves will be happy with this will hopefully be counteracted by the fact that I plan to drop them into the magma cistern.
17:26:40 <HackEgo> 626) <Phantom_Hoover> The fact that the elves will be happy with this will hopefully be counteracted by the fact that I plan to drop them into the magma cistern.
17:26:48 <elliott> `quote 625
17:26:51 <HackEgo> 625) <Patashu> But I mean, why fix it if it ain't broke? Except now it is
17:26:55 <elliott> good
17:28:45 <elliott> 09:07:11: <evincar> cheater: No, explicit migration wouldn't be necessary if the continuations were genuinely forward-compatible.
17:28:45 <elliott> I too want a magic language that anticipates all future changes to my program
17:32:17 <elliott> 09:17:27: <cheater> because it will be the first version and it will suck
17:32:17 <elliott> 09:17:38: <cheater> ell comes from elliott which sucks too
17:32:17 <elliott> glad to know I'm always in your thoughts, hope you find someone more interesting to obsess about one day
17:32:43 <elliott> i really like how cheater went from "this is completely impossible" to "let's all design a language that does this and also has an AST editor which will somehow make this work" in about five seconds
17:38:19 -!- FireFly has joined.
17:43:00 <cheater> i like how you are too stupid to understand what people say
17:45:28 <Phantom_Hoover> cheater, shut up.
17:45:47 -!- copumpkin has quit (Ping timeout: 276 seconds).
17:46:17 <cheater> no u
17:47:38 <cheater> \ood
17:47:43 <cheater> \ood.
17:47:47 <cheater> good.
17:47:56 <cheater> layouts r a bitch
17:49:05 -!- copumpkin has joined.
18:06:37 -!- boily has quit (Ping timeout: 240 seconds).
18:43:44 <cheater> http://pastebin.com/6kfwTsB0
18:55:11 -!- ais523 has joined.
19:17:17 <ais523> haha at Half-Broken Car in Heavy Traffic
19:17:40 <ais523> most ingenious 2D BF derivative I've seen at all recently
19:17:53 <elliott> that hello world is pretty
19:17:59 <elliott> looks like a two-dimensional CA trace
19:18:14 <elliott> one wonders what @outtext does, though
19:18:54 <ais523> presumably some I/O extension
19:27:18 -!- copumpkin has changed nick to TraderJoe.
19:27:19 <fizzie> Out of curiosity, can you 'nickserv ghost' the connection you're sending the request from?
19:27:29 <ais523> let me try on a second nick
19:28:00 -!- ais523_ has joined.
19:28:11 <fizzie> RAW >>> :NickServ!NickServ@services. NOTICE fungot :You may not ghost yourself. <<<
19:28:11 <fungot> fizzie: seriously if in future. tml i wake up long
19:28:13 <fizzie> Aw.
19:28:27 <ais523> :NickServ!NickServ@services. NOTICE ais523_ :You may not ghost yourself.
19:28:31 -!- ais523_ has quit (Client Quit).
19:28:44 -!- kwertii has joined.
19:28:47 <fizzie> (Alternative question: using the bot to test that: unethical, or just impolite?)
19:28:52 <elliott> So what's fungot's password?
19:28:53 <fungot> elliott: am i that much bad. take mno practice... i ll " comeoff" sardar:-behan di taki or tu sochti hai k mai roz ash said... ' today its me... because i m quite free these days la
19:28:55 <ais523> I don't think it's unethical
19:29:05 <ais523> elliott: it actually uses an SSH key
19:29:09 <ais523> because it has trouble remembering passwords
19:29:12 <elliott> heh
19:33:03 <elliott> ?pl \e -> eventQ eventKeyName e == "q" && Control `elem` eventQ eventModifier q
19:33:03 <lambdabot> (&& Control `elem` eventQ eventModifier q) . ("q" ==) . eventQ eventKeyName
19:33:08 <elliott> gross
19:33:11 <elliott> erm
19:33:12 <elliott> ?pl \e -> eventQ eventKeyName e == "q" && Control `elem` eventQ eventModifier e
19:33:12 <lambdabot> ap ((&&) . ("q" ==) . eventQ eventKeyName) ((Control `elem`) . eventQ eventModifier)
19:33:15 <elliott> grosser
19:33:33 <elliott> :liftA2 (&&)
19:33:34 <elliott> :t liftA2 (&&)
19:33:35 <lambdabot> forall (f :: * -> *). (Applicative f) => f Bool -> f Bool -> f Bool
19:33:52 <elliott> :t liftA2 (&&) ((== "q") . eventQ eventKeyName) (elem Control . eventQ eventModifier)
19:33:52 <lambdabot> Not in scope: `eventQ'
19:33:53 <lambdabot> Not in scope: `eventKeyName'
19:33:53 <lambdabot> Not in scope: `eventQ'
19:33:56 <elliott> good enough
19:34:03 -!- TraderJoe has changed nick to copumpkin.
19:46:36 -!- FireFly has quit (Quit: FireFly).
19:50:06 <elliott> ?undo \e -> do x <- eventQ eventKeyName e; y <- eventQ eventModifier e; return (x == "q") && elem Control y
19:50:06 <lambdabot> \ e -> eventQ eventKeyName e >>= \ x -> eventQ eventModifier e >>= \ y -> return (x == "q") && elem Control y
19:50:08 <elliott> ?. pl undo \e -> do x <- eventQ eventKeyName e; y <- eventQ eventModifier e; return (x == "q") && elem Control y
19:50:08 <lambdabot> ap ((>>=) . eventQ eventKeyName) ((. ((. elem Control) . (&&) . return . ("q" ==))) . (>>=) . eventQ eventModifier)
19:50:10 <elliott> gross
20:00:06 -!- monqy has joined.
20:02:37 -!- oerjan has joined.
20:03:24 -!- iamcal has quit (Remote host closed the connection).
20:12:09 <oerjan> <elliott> ?undo \e -> do x <- eventQ eventKeyName e; y <- eventQ eventModifier e; return (x == "q") && elem Control y
20:13:37 -!- EgoBot has quit (Remote host closed the connection).
20:13:49 -!- EgoBot has joined.
20:14:01 <oerjan> first, i think you are missing $ after return
20:15:08 <oerjan> \e -> liftM2 (&&) ((== "q") <$> eventQ eventKeyName e) (elem Control <$> eventQ eventModifier e)
20:17:02 <cheater> can you people not contain elliott
20:17:09 <cheater> now he is invading other irc channels
20:17:21 <monqy> oh no
20:17:23 <oerjan> ...
20:17:24 <cheater> i mean you have a responsibility for your pets
20:18:55 <cheater> lets just try and keep ourselves from making the whole irc network fall victim
20:19:02 -!- ChanServ has set channel mode: +o oerjan.
20:19:17 -!- oerjan has set channel mode: +b *!*ubuntu@*.vodafone-net.de.
20:19:17 -!- oerjan has kicked cheater Even I have my limits.
20:19:25 <elliott> fina
20:19:26 <elliott> fucking
20:19:26 <elliott> lly
20:19:37 -!- oerjan has set channel mode: -o oerjan.
20:19:38 <CakeProphet> oh boy I'm going to learn a little Visual Basic.
20:20:29 <CakeProphet> someone on Facebook asked if I knew "vba"
20:20:40 <CakeProphet> so, now I get to learn it to help them with something. weeeeee
20:20:55 <Phantom_Hoover> Friendship ban.
20:21:09 <CakeProphet> hey I'm not a language zealot.
20:21:19 <CakeProphet> my goal is to become slightly familiar with all of them at some point.
20:21:31 <CakeProphet> enough to program well in each.
20:21:34 <monqy> good luck
20:21:38 <elliott> all of them
20:21:38 <monqy> what's "all of them"
20:21:42 <CakeProphet> all of them.
20:21:45 <monqy> hahahahaha
20:21:47 <monqy> are you serious
20:21:52 <CakeProphet> ya dude
20:21:57 <CakeProphet> :> see this face?
20:22:00 <CakeProphet> that is the face of seriousness.
20:22:10 <Phantom_Hoover> CakeProphet, are you Sgeo's idiot girlfriend.
20:22:16 <CakeProphet> No. :>
20:22:35 <CakeProphet> we're totally not like a thing or anything.
20:22:56 <Phantom_Hoover> Are you a penguin.
20:23:24 <CakeProphet> uh, no.
20:23:44 <CakeProphet> what does any of this have to do with me learning "all of the languages"
20:23:54 <monqy> :>
20:24:06 <Sgeo> Should I point out that I do not, and have never had, a girlfriend?
20:24:06 <CakeProphet> >:3
20:24:13 <CakeProphet> Sgeo: no need.
20:24:16 <monqy> sgeo's idiot boyfriend
20:24:56 <Phantom_Hoover> Friendship idiot.
20:25:45 <Sgeo> Nor a boyfriend, and I have little-to-no interest in men in that way
20:26:20 <coppro> Sgeo: no, you shouldn't have done so
20:26:59 <CakeProphet> What I really mean is "learn as many languages as possible." I just do this thing with English where I don't always mean what I literally say.
20:29:23 <monqy> I only like interesting/good languages
20:29:44 <monqy> other languages are boring/bad
20:30:16 <CakeProphet> I can't know for sure until I write code in it. Then I have a better understanding of what I would use for.
20:30:42 <CakeProphet> also, I feel that some truly bad languages have a few decent ideas, and that these could be incorporated into new languages.
20:30:51 <CakeProphet> it's just a way for me to learn about all of these things in practice.
20:31:26 <CakeProphet> I doubt I'll find anything worthwhile in VB though...
20:32:10 <CakeProphet> but hey, one more skill. programming is like RPGs right?
20:32:30 <fizzie> Yes, in that it involves lots of grinding.
20:32:43 <fizzie> "Ooh, I leveled up my semicolon skill."
20:33:17 <CakeProphet> character sheet = resume
20:33:32 <CakeProphet> well, a resume is like... an abridged character sheet.
20:34:32 <monqy> yes i would like my profession to be in doing visual basic
20:35:23 <elliott> !haskell main = return (error "hi" :: Int)
20:35:32 <elliott> EgoBot?
20:35:34 <elliott> !haskell main = print 99 >> return (error "hi" :: Int)
20:35:39 <EgoBot> 99
20:36:52 <CakeProphet> monqy: I would never get a job programming VB
20:37:17 <CakeProphet> but, with freelancing, it allows me to program VB for a short period of time and make money off of the skill, while not getting burnt out.
20:37:48 <monqy> I don;t want to touch things I dislike
20:37:49 * CakeProphet has yet to find any Haskell jobs out there, but would like to.
20:38:00 <CakeProphet> monqy: I see.
20:38:40 <CakeProphet> I did find a SBCL job once.
20:40:03 <CakeProphet> Pick a hookah flavor for me #esoteric: gingerbread, mint chocolate chip, pumpkin spice, or lucky (vaguely tastes like some kind of fruity/sour gum)
20:40:34 <CakeProphet> PRNG = cheating
20:40:44 <CakeProphet> these are the rules.
20:42:46 -!- iamcal has joined.
20:43:23 <elliott> CakeProphet: Gingerbread... I...
20:43:42 <elliott> CakeProphet: Is "all at once" an option.
20:43:46 <CakeProphet> yes.
20:43:50 <elliott> CakeProphet: All at once.
20:43:51 <CakeProphet> though I'd probably exclude lucky.
20:43:59 <Phantom_Hoover> CakeProphet, all the drugs.
20:44:08 <elliott> That too.
20:44:10 <CakeProphet> gingerbread and mint chocolate chip would probably be amazing though.
20:44:18 <elliott> monqy: so my FRP Gtk stuff is going well...
20:45:11 <CakeProphet> Phantom_Hoover: how can you resist a drug that tastes like freshly baked cookies?
20:45:28 <elliott> monqy: http://sprunge.us/jBMg................
20:46:01 <quintopia> CakeProphet: yu mean christmas coffee?
20:46:46 <CakeProphet> No I don't know what that is.
20:46:47 <monqy> sourceLanguageManagerGetDefault good names
20:46:54 <elliott> monqy: that's oop for you
20:47:20 <elliott> monqy: now I am going to do a good thing (make Ctrl+A and Ctrl+E move the cursor to the beginning/end of the line rather than selecting all and doing nothing respectively)
20:48:15 <elliott> :t flip fmap
20:48:15 <lambdabot> forall a b (f :: * -> *). (Functor f) => f a -> (a -> b) -> f b
20:48:19 <elliott> ?hoogle flip fmap
20:48:19 <lambdabot> No results found
20:48:22 <monqy> how will you select every thing...
20:48:26 <elliott> ?hoogle hi a nice operator for flip fmap or something please
20:48:26 <lambdabot> No results found
20:48:37 <elliott> monqy: ctrl+shift+a i guess???????? that is less important than cursor movesments
20:48:48 <elliott> monqy: have you not used Ctrl+A/Ctrl+E do you not know...the power
20:49:05 <monqy> i usually use vim because i am a bad person....
20:49:13 <elliott> monqy: do you ever use a shell
20:49:16 <CakeProphet> elliott: I read about this nifty thing in Haskell once that lets you associate a name to another expression.
20:49:19 <CakeProphet> I can't remember what it is though
20:49:25 <elliott> (if you use your shell in vikeys mode i laugh)
20:49:32 <elliott> CakeProphet: pamf is not a good name
20:49:37 <monqy> I've never used ^A or ^E in shelle
20:49:47 <elliott> monqy: do so it will make you happey
20:49:50 <quintopia> man. i would probably like a vi'd shell
20:49:51 <monqy> but in vim i'm used to $ and ^
20:50:02 <CakeProphet> @hoogle (|>)
20:50:02 <lambdabot> Data.Sequence (|>) :: Seq a -> a -> Seq a
20:50:02 <lambdabot> Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a
20:50:02 <lambdabot> Text.Parsec.Prim (<|>) :: Monad m => ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
20:50:20 <CakeProphet> elliott: just use some hilarious operator.
20:50:27 <elliott> quintopia: you acn do it
20:50:31 <elliott> quintopia: its bad though
20:50:41 <elliott> quintopia: set -o vi
20:50:41 <quintopia> why bad?
20:50:42 <CakeProphet> can you use cents instead of dollars?
20:51:47 <CakeProphet> pamf = "pretty awesome motherfucker"
20:51:49 <quintopia> vi uses only regular qwerty keys for most everything. thus my terminal would be super portable (since mobile keyboards arent gud at specialty keys)
20:52:29 <elliott> quintopia: so do it
20:52:29 <elliott> set -o vi
20:52:45 <quintopia> i will maybe later
20:53:13 <CakeProphet> !wacro
20:53:16 <EgoBot> ICAVS
20:53:20 <fizzie> @hoogle (<**>)
20:53:20 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
20:53:36 <CakeProphet> <$$>
20:53:43 <CakeProphet> for flip fmap
20:53:47 <fizzie> Going by that terminologogy.
20:53:56 <CakeProphet> get moar $$$$$
20:54:11 <monqy> hi
20:54:14 <quintopia> International Climbing And Vertical Society
20:54:19 <CakeProphet> hi monqy
20:54:21 <quintopia> !wacro
20:54:22 <EgoBot> SSDL
20:54:35 <quintopia> solid state device language?
20:54:41 <CakeProphet> Super Standard Development Library?
20:55:02 <quintopia> sexy software description language
20:55:09 <CakeProphet> I am still displeased with the amount of garbage acronyms it produces.
20:55:16 <fizzie> International Conference for Angels, Vampires and Snakes. (For ICAVS, obvs.)
20:55:38 <CakeProphet> !wacro
20:55:40 <EgoBot> TFAW
20:55:53 <elliott> <fizzie> @hoogle (<**>)
20:55:53 <elliott> <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
20:55:56 <elliott> fizzie: Not the same thing.
20:55:58 <quintopia> JOCKS is the latest one i've seen that i like (Journal Of Cave and Karst Sciences)
20:56:01 <elliott> fizzie: That isn't a flip, the effects are reversed
20:57:12 <CakeProphet> > [1,2,3] <**> [1,2,3] <**> return (,)
20:57:13 <lambdabot> Overlapping instances for GHC.Show.Show (b -> (a, b))
20:57:13 <lambdabot> arising from a use...
20:57:21 <monqy> ?source (<**>)
20:57:21 <lambdabot> (<**>) not available
20:57:25 <monqy> oops
20:57:25 <fizzie> CakeProphet: You must find a large dataset of acronyms, and then learn letter bigram frequencies from that, and then go on from there.
20:57:38 <monqy> ?source <**>
20:57:38 <lambdabot> <**> not available
20:57:41 <monqy> oops
20:58:11 <CakeProphet> fizzie: well the next generator was going to produce weighted acronyms that are vaguely pronouncable by using a markov chain.
20:58:38 <CakeProphet> I was just going to keep this one for the non-pronouncable variety, though maybe I could improve that as well I just don't know where I'd find helpful data for that thing.
20:58:44 <quintopia> i doubt there are many patterns in acronyms, other than a disproportionate number containing S, ending in A and starting with N, I, or J
20:58:53 <CakeProphet> using a better data source than /usr/share/dict/words is probably a start.
21:01:20 <CakeProphet> quintopia: the markov chain one would alternate between consonant and vowel more or less, with each consonant/vowel using the same weighting scheme as in wacro, but with the added possibility of some double consonants/vowels for example SH, TH, GH, PF, FN, EE, EA, EO, actually I'd imagine there's a large variety of double vowels you could use.
21:01:32 <CakeProphet> but I'd have them rare enough so that they don't litter the acronyms.
21:02:50 <quintopia> for longer words, you may want to calculate trigram frequencies. i know that takes a lot more space to store, but it would save you some special casing for double letters like that
21:03:44 <CakeProphet> trigram?
21:04:03 <fizzie> Three-letter sequence, in this case.
21:04:10 <CakeProphet> double consosnant + vowel, double vowel + consonant
21:04:16 <CakeProphet> yes I know what you mean, but why?
21:04:46 <fizzie> The longer context, the more actual acronym data you need for frequency estimation, assuming no smoothing or interpolation. (Also assuming you're doing it machine-learning style, "find a pile of data, make a model", instead of manually writing some sort of sense-making rules.)
21:05:11 <quintopia> because english has rs and st and th but you never see rsth :P
21:05:20 <CakeProphet> well I wasn't planning on finding more data because I don't really know where I would find that sort of thing for this.
21:05:34 <CakeProphet> quintopia: the consonant/vowel alternation would prevent that
21:05:36 <quintopia> dict/words is sufficient for that
21:05:53 <quintopia> CakeProphet: but enforcing that requires more code
21:06:01 <CakeProphet> nah, just a markov chain.
21:06:20 <quintopia> more effort anyway
21:06:23 <CakeProphet> well yes.
21:06:26 <quintopia> id just let the data speak
21:06:40 <CakeProphet> I'm going to try this one first.
21:06:43 <elliott> a markov chain will just produce text unless you run it on an acronym database.
21:07:00 -!- boily has joined.
21:07:03 <CakeProphet> and then maybe pull some more stats from data.
21:08:21 -!- hagb4rd has joined.
21:08:33 <CakeProphet> elliott: the markov chain would give the probabilities for what the next character will be. it will be set up to alternate consonants and vowels.
21:08:47 <CakeProphet> in other words it will not be possible to go to every state from every state.
21:10:01 <elliott> Well, that's just stupid.
21:10:07 <CakeProphet> it will work though.
21:10:30 <CakeProphet> YOU WILL SEE.
21:11:10 <monqy> hi
21:11:45 <fizzie> You could do the same thing with a PCFG and the rules might be vaguely more sense-making, possibly. (If you insist of having Expert Knowledge(tm) of acronyms in there.)
21:12:33 <CakeProphet> just the letter frequency weighting is enough for me, I think. We'll see.
21:13:28 <CakeProphet> ah maybe a hidden markov model would simplify the number of state transitions.
21:13:49 <CakeProphet> not sure. I have other stuff to work on first though so I'm going to do this later.
21:13:59 <fizzie> Certainly, if you make it have a lower amount of hidden states.
21:15:00 <fizzie> For example, a strictly-alternating two-state ('consonant', 'wovel') HMM is going to have exactly [1 0; 0 1] as the transition probabilities, and then you don't even need to assign any.
21:15:32 <CakeProphet> one for vowel, one for consonant, perhaps. some letters/bigrams will probably end up being special cases that have different transition probabilities.
21:17:08 <CakeProphet> just so it doesn't produce quite so many alien-sounding words.
21:19:00 <fizzie> You can just stick exceptional two-letter combinations as rare-but-possible emission probabilities there. But the HMM output in the consonant state will be completely independent from what it emitted in the vowel state, so there's no sort of context there.
21:22:00 <CakeProphet> not entirely sure I'll need context, unless I want the words to sound vaguely English-esque
21:23:12 <CakeProphet> but I think the hidden markov chain is a pretty flexible model that could be fine-tuned later.
21:23:20 <CakeProphet> I don't know much about PCFG
21:23:43 <CakeProphet> it seems well-suited.
21:24:46 <CakeProphet> ah I see how it works. it's just a list of production rules with assigned probabilities
21:26:54 <fizzie> Well, maybe. The grammar might end up looking a bit funky if you want generic-enough output out of it. E.g. to generate any wovel-consonant-alternating sequence you might need something like "S -> SVC | SCV; SVC -> V C SVC | V C | V; SCV -> C V SCV | C V | C; C -> [something Consonantlike]; V -> [something woVellike]".
21:28:28 <CakeProphet> well the length is going to be either given by the user, or randomly generated beforehand by a user-given range or by the default range
21:29:10 <quintopia> fizzie: give me something wovel-like pls
21:29:11 <CakeProphet> same input parameters as wacro
21:31:02 <CakeProphet> so yeah I think the hidden markov model will be more flexible, or at least easier to make flexible.
21:31:04 -!- hagb4rd has quit (Ping timeout: 252 seconds).
21:31:17 <CakeProphet> because I can always just add more hidden states.
21:31:51 <fizzie> I'm not so sure a predefined length and a PCFG will work so well. Also unless I'm mistaken, something as simple as that up there can only give you random lengths out of a(ny) exponential distribution, which might not be what you want.
21:32:32 <fizzie> It's the same thing as with a HMM, the duration of staying in a particular state is always an exponential distribution, unless you go for some sort of hidden semi-Markov model.
21:34:00 <CakeProphet> probably the latter thing.
21:34:04 <Sgeo> How would an object-capability model be expanded to a pure-FP language like Haskell?
21:34:07 <fizzie> Our Finnish speech thing smooshes separate Gamma distributions to HMM states, because the phoneme duration matters more here than in English. (It often distinguishes between different-meaning words.)
21:34:07 <CakeProphet> basically I control the transitions and stop them whenever I want.
21:34:09 <quintopia> fizzie: you can terminate the run at any point
21:34:46 <CakeProphet> while length $outputstring < $inpLength
21:34:53 <CakeProphet> runMarkChain
21:34:58 <CakeProphet> *Markov
21:35:08 <fizzie> quintopia: Is this still re PCFG, or not? I mean, it's not really a PCFG production if you truncate it; but of course that's certainly possible.
21:36:09 <quintopia> you can make a markov model that self terminates at a prescribed length too, though truncating seems easier
21:36:42 <CakeProphet> yeah my markov chain would not worry about terminating at all.
21:37:15 <fizzie> Well, yes, but that's not related at all to what I said about HMM state durations. I was talking about the length of time (number of steps) it spends in a particular hidden state, which will always be random from an exponential distribution, unless you explicitly alter the transition probabilities based on the time spent there, at which point it is no longer a Markov model at all.
21:37:16 <CakeProphet> I would just run the transitions until the output string matched the correct length. But I will need to somehow make it impossible for a double consonant to occur at the end.
21:37:32 <CakeProphet> but I guess I could just truncate the double consonant. I'm not sure how that would effect the output word.
21:38:01 -!- variable has quit (Quit: I found 1 in /dev/zero).
21:38:49 -!- boily has quit (Ping timeout: 252 seconds).
21:39:30 <quintopia> what do you call a time-dependent markov thing?
21:39:39 <CakeProphet> but as you can see from conversations regarding Rezzo, I have absolutely no issue with hacking a formal model to suit my needs.
21:39:48 <CakeProphet> also, I wasn't aware time was involved.
21:39:57 <fizzie> Hidden semi-Markov model, usually.
21:40:02 <quintopia> ah
21:40:22 <fizzie> In your case time == number of letters.
21:40:28 <CakeProphet> not necessarily.
21:40:31 <CakeProphet> oh, well yes
21:41:16 <fizzie> HSMM's are problematical when it comes to learning one from data, though sampling from one (if you write the probabilities by yourself) is of course just as easy as from a HMM.
21:41:52 <CakeProphet> I guess truncation would be fine actually. Though it does slightly mess up the weight distribution. S will have more weight at the last transition because SH = S at that point
21:43:11 <CakeProphet> also truncating double vowels at the ends of words would probably result in some strange results.
21:43:18 <quintopia> i still think you're overcomplicating it. learning a straight HMM from a dictionary is far easier than handcoding transitions
21:43:42 <fizzie> Not that an exponential duration would necessarily be a bad thing. If you make a consonant/vowel two-state thing and give it a small but nonzero self-transition probability, you'll get alternating consonats and vowels, except occasionally but very rarely double-consonants or double-vowels. (But I guess you want to give different weights for different double-consonants.)
21:43:54 <CakeProphet> the problem is that I have no idea how to make a program "learn" a HMM
21:44:03 <fizzie> You use an existing library, of course. :p
21:44:32 <quintopia> or you just scan the document for trigrams, through them into a hashtable, count frequencies
21:44:48 <quintopia> and then covert those frequencies to probabilities in the obvious way
21:45:33 <CakeProphet> I still don't really understand why I would look for trigrams.
21:45:58 <quintopia> you dont have to, but it would better match english if you did
21:46:23 <fizzie> Getting transition probabilities "in the obvious way" won't give you the maximum-likelihood HMM, like "real" HMM learning (with Baum-Welch) would.
21:47:31 <quintopia> yes but its easy :P
21:47:50 <fizzie> Well, I guess it would for a strictly alternating consonant-vowel-thing, since there's always only one state where you could be.
21:48:23 <fizzie> Anyhoo. I'm a machine-learning person, my viewpoint is obviously biased.
21:49:03 <fizzie> (We dislike actually having any knowledge about anything.)
21:49:27 <quintopia> oh you work on unsupervised models?
21:50:11 <elliott> fizzie:
21:50:11 <elliott> In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
21:50:11 <elliott> "What are you doing?", asked Minsky.
21:50:11 <elliott> "I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.
21:50:11 <elliott> "Why is the net wired randomly?", asked Minsky.
21:50:12 <elliott> "I do not want it to have any preconceptions of how to play", Sussman said.
21:50:14 <elliott> Minsky then shut his eyes.
21:50:16 <elliott> "Why do you close your eyes?" Sussman asked his teacher.
21:50:20 <elliott> "So that the room will be empty."
21:50:21 <CakeProphet> oerjan: also I'm curious as to why you banned cheater.
21:50:22 <elliott> At that moment, Sussman was enlightened.
21:50:23 <CakeProphet> passive aggression?
21:50:24 <elliott> fizzie: Couldn't resist.
21:50:35 <quintopia> i love that story
21:50:47 <quintopia> anywayz -->
21:52:01 <CakeProphet> ketchup + mayo = the perfect condiment
21:52:14 <CakeProphet> useful for making other perfect condiments
21:52:22 <elliott> CakeProphet: well, he _was_ harassing me in another unrelated channel for joining it and then came here to complain about it...
21:52:24 <elliott> but I can't speak for oerjan.
21:52:30 <CakeProphet> ah okay.
21:52:42 <CakeProphet> from my vantage point it sounded like he was just being somewhat passive aggressive towards you.
21:53:09 <elliott> Is it passive if you're not actually being passive about it?
21:53:57 <CakeProphet> well I suppose in a chatroom verbal aggression is actual aggression.
21:54:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:54:24 <fizzie> I can possibly reveal that my official op-opinion was (posthumously) polled regarding this unfortunate matter, but of course all this was done in camera, and I simply cannot comment in any more detailed way.
21:56:19 <CakeProphet> typically an indirect verbal aggression in other contexts is known as passive aggression though.
21:57:07 <CakeProphet> "At least I'M not being passive aggressive like SOME people."
21:58:12 -!- GreaseMonkey has joined.
21:58:12 -!- GreaseMonkey has quit (Changing host).
21:58:12 -!- GreaseMonkey has joined.
21:58:53 <CakeProphet> I should have probably used some kind of parsing library for parsing this scripting language.
21:58:56 <CakeProphet> instead of hardcoding it.
21:59:02 <CakeProphet> oh well.
22:03:37 -!- Wamanuz has quit (Ping timeout: 260 seconds).
22:16:22 <pikhq> 20 years ago today. "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones." — Linus
22:16:58 <elliott> oh, happy birthday freax
22:17:11 <olsner> heh, "professional like gnu"
22:18:03 <pikhq> Yeah, at that point in time GNU was going to be released "any time now".
22:18:25 <pikhq> HURD had only been around for about a year.
22:18:45 <pikhq> So it was completely and utterly understandable that it was a pile of dog shit at the time. :P
22:20:11 <Lymee> How many architectures does Linux run on now?
22:20:12 -!- EgoBot has quit (Ping timeout: 250 seconds).
22:20:47 -!- augur has quit (Remote host closed the connection).
22:20:54 -!- EgoBot has joined.
22:21:00 <olsner> three, or maybe even more!
22:21:49 <pikhq> Just the kernel? I'm counting 24 ISAs.
22:22:05 <pikhq> And UML.
22:22:32 <olsner> linux can run on diagrams?
22:22:48 <pikhq> No, but Linux can run on Linux.
22:23:04 <elliott> * EgoBot (foobar@codu.org) has joined #esotericg
22:23:06 <elliott> Gregor: foobar
22:23:20 <Gregor> elliott: Baf.
22:23:23 <elliott> Gregor: wat
22:23:44 <olsner> fungot: fun it up a bit
22:23:44 <fungot> olsner: k. i bring the mini project. and course i wait for u. borrowing chem lab. u? phone dead yet, just asking becoz i also didn't go andthere wasn't lec proper with little space for the fart to release...prrrrrrrrr......
22:24:27 <fizzie> This is how low the bot has gone: now it's telling fart jokes.
22:25:26 <elliott> ^style
22:25:26 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms* speeches ss wp youtube
22:25:41 <elliott> fizzie: Did you ever do anything with those Google n-grams because you SHOULD.
22:26:50 <fizzie> Is it just me, or does RMS look like he's... uh, been chemically inspired, in that cover photo of Free as in Freedom (also first photo in Wikipedia "Linux" article)?
22:27:27 <coppro> it's just you
22:27:51 <ais523> RMS is actually in Birmingham today
22:27:59 <ais523> he was giving a talk at my University, but I didn't visit it
22:28:27 <ais523> because it was on a subject where RMS' opinion was completely predictable
22:29:08 <pikhq> Probably one of his canned speeches that he's been given for the better part of 20 years now, anyways.
22:29:19 <elliott> ais523: what subject?
22:29:19 <pikhq> s/given/giving/
22:30:27 <ais523> "Copyright vs Community in the Age of Computer Networks"
22:31:37 <ais523> and the abstract is pretty much "copyright is bad and it's getting worse, go get rid of it"
22:32:09 <pikhq> Not unreasonable, but utterly predictable from him. :)
22:32:54 <ais523> indeed
22:33:00 <ais523> so there was no need to actually attend the talk
22:35:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:35:52 * CakeProphet is officially the proud owner of a Dave record T-shirt
22:36:23 <CakeProphet> yes, it was obscenely overpriced.
23:10:40 <elliott> `addquote <Phantom_Hoover> I'm sacrificing the animals, then I'm going to bed.
23:10:46 <HackEgo> 627) <Phantom_Hoover> I'm sacrificing the animals, then I'm going to bed.
23:11:17 <elliott> gobject is really annoying.
23:12:00 <oerjan> gobsmacking
23:14:16 <CakeProphet> perhaps the trigram approach would be more effective.
23:14:17 -!- copumpkin has joined.
23:14:30 <CakeProphet> but... how do you count trigrams? gob|sma|cki|ng
23:14:37 <CakeProphet> wouldn't it be more like gob|sma|ck|ing
23:15:09 * Phantom_Hoover → sleep
23:15:11 -!- Phantom_Hoover has quit (Quit: Leaving).
23:17:56 <CakeProphet> fizzie: ^^^^^
23:18:44 <CakeProphet> because I realized currently the markov model doesn't allow for compound wording such as gobsmacking where there are three consonants in a row.
23:20:14 <CakeProphet> GOBSMACK
23:20:17 -!- Patashu has joined.
23:20:25 <CakeProphet> ah, I know.
23:21:35 <CakeProphet> perhaps I could analyze each word using multiple different approaches. so gobsmacking would become gob sma cki ng, go bsm ack ing, gob sm ack ing, etc
23:23:29 <CakeProphet> then I could find the most frequent trigrams and then pick the trigram combination for each word where the sum of its trigram frequencies is the greatest, and then only use that one for the final frequency result.
23:23:56 <CakeProphet> and then ??? PROFIT?
23:24:15 <monqy> :(
23:24:17 <CakeProphet> also maybe take into account positioning. For example "ck" is more likely to occur at the end of a word.
23:24:44 <CakeProphet> as is "ing"
23:25:42 <CakeProphet> the only way ck would occur elsewhere is if it's a compound word of some kind, I think.
23:26:05 <ais523> ingratitude
23:26:16 <ais523> I can't think of a word starting ck, though
23:26:57 <CakeProphet> well right... since "ingratitude" would be in my dictionary data most likely, ing at the start could be a possibility.
23:27:23 <CakeProphet> the main issue I'm having is how to decide how to split up words into n-grams
23:28:28 <CakeProphet> so maybe just accounting for every possible combination would be the best approach..
23:28:32 <CakeProphet> I dunno.
23:31:04 <oerjan> CakeProphet: i may be wrong, but i had the impression that trigrams used for building markov models like this would be overlapping, so gob, obs, bsm, sma, mac, ack, cki, kin, ing
23:31:16 <CakeProphet> oh okay.
23:31:37 <oerjan> using the first two letters to predict the third
23:31:55 <monqy> I had the same impression as oerjan
23:32:18 <CakeProphet> this is a new area for me so I didn't really know how it worked.
23:32:52 <CakeProphet> so you're not plugging in the trigrams themselves just using them to determine individual characters based on previous characters.
23:33:30 <CakeProphet> well, stochastically determine
23:34:07 <CakeProphet> so then how do you pick the first two letters? based on the frequencies of the first two letters for each word in the data set?
23:34:44 <oerjan> perhaps. i imagine it as having special initial/final trigrams with spaces in them for the boundary
23:34:54 <oerjan> so " g" and " go"
23:34:57 <CakeProphet> ah okay.
23:35:24 <CakeProphet> wow this makes so much more sense now.
23:37:06 <CakeProphet> I think what I'll probably do is allow for language options.
23:37:09 <CakeProphet> and mixing of languages.
23:37:25 <CakeProphet> I just need to find data sets for each language that I add.
23:38:27 <CakeProphet> I guess it's time to download some language packs. :D
23:38:31 <fizzie> Usually you count all trigrams, e.g. gob, obs, bsm, sma, mac, ack, cki, kin, ing.
23:38:44 <CakeProphet> right that's what I implied.
23:38:49 <CakeProphet> from what oerjan was saying.
23:39:06 <fizzie> I didn't bother to read what came after the highlighted-to-me bit.
23:39:21 <CakeProphet> mixing language data sets will be interesting.
23:39:54 <CakeProphet> the languages would need to have similar phonetic rules though.
23:40:24 <CakeProphet> otherwise you'd probably get words that can't be pronounced easily without inventing new phonetic rules.
23:40:39 -!- nooga has quit (Ping timeout: 268 seconds).
23:41:26 <CakeProphet> what are the packages that contain /usr/share/dict language data?
23:41:28 <fizzie> And yes, usually there's start/end symbols to model the edges separately, So you'd normally have <go, gob, obs, ..., ing and ng>. And then use just the bigram frequencies for the first word with context "<". (But certainly taking <<g, <go, gob, ... is possible too.)
23:41:53 <CakeProphet> I like the double symbol one.
23:42:27 <fizzie> "wamerican", "wfinnish" is what I have installed.
23:42:42 <fizzie> Maybe the others are similarly names.
23:43:09 <CakeProphet> ah the descriptions all contain /usr/share/dict so I'll just search for that.
23:43:28 -!- augur has joined.
23:43:34 <CakeProphet> I guess I want the insane version of everything.
23:43:36 <CakeProphet> wamerican-insane
23:44:07 <CakeProphet> or maybe I want wamerican-insane wamerican-huge wamerican-large
23:44:15 <CakeProphet> ...if the others aren't subsets.
23:44:34 <CakeProphet> but I'd imagine they are.
23:44:53 <fizzie> Often you need to consider the shorter-context frequencies too because there's not enough data to build a full model to cover unseen data well. Of course if you're generating from it, that doesn't really matter, since it's not going to generate anything unseen.
23:45:21 <CakeProphet> not sure I understand what you mean by shorter-context
23:45:52 <fizzie> Two-letter combinations, basing the next letter only on one previous letter, as opposed to two.
23:46:14 <CakeProphet> oh wait, no I definitely don't want to use wamerican-insane because it contains things like possessives, abbreviations, company names, etc.
23:46:31 <CakeProphet> names, places...
23:46:44 <CakeProphet> Aaronitic's is a word in wamerican-insane apparently
23:47:19 <fizzie> A trigram built with little data might have the 'sword alone can't stop' problem (technical term); if you only ever see a single instance of "ab?", say "abc", the trigram frequencies will then never generate anything else than "c" after "ab".
23:47:24 <CakeProphet> but maybe I do want that?
23:48:12 <CakeProphet> oh okay, so split by trigrams and bigrams and combine the frequency data?
23:48:21 <CakeProphet> magically?
23:48:23 <CakeProphet> lol
23:49:21 <CakeProphet> wow wamerican-insane is truly insane.
23:49:31 <fizzie> Well, that's interpolation. Take the probabilities of next letter by a*trigram(2-letter-context) + (1-a)*bigram(1-letter context).
23:49:39 <fizzie> It's a viable method.
23:50:03 <CakeProphet> but what if I use a data set such as.... wamerican-insane
23:50:11 <fizzie> (You can even include the no-context unigrams there with a small weight.)
23:50:12 <CakeProphet> would I need to worry about this since you said it's only a problem for small data sets?
23:50:47 <fizzie> Well trigrams are reasonably easy still. Maybe there's enough data.
23:50:55 <CakeProphet> /usr/share/dict$ wc -l american-english-insane
23:50:56 <CakeProphet> 638645
23:51:50 <CakeProphet> everything has a possessive version though, which I will probably remove.
23:51:53 <CakeProphet> so cut that in half.
23:52:08 <elliott> fizzie: have you gogol ngramames yet
23:52:22 -!- sllide has quit (Ping timeout: 268 seconds).
23:52:26 <fizzie> Doesn't give the word length. Assuming 6, that's about 4*300000 trigrams. (4 positions in a 6-letter word.)
23:52:40 <CakeProphet> Ab
23:52:40 <CakeProphet> Ab's
23:52:40 <CakeProphet> Aba
23:52:40 <CakeProphet> Aba's
23:52:40 <CakeProphet> Ababa
23:52:43 <CakeProphet> Ababa's
23:52:46 <CakeProphet> ....this dictionary is insane.
23:53:02 <elliott> <fizzie> A trigram built with little data might have the 'sword alone can't stop' problem (technical term); if you only ever see a single instance of "ab?", say "abc", the trigram frequencies will then never generate anything else than "c" after "ab".
23:53:02 <fizzie> > 26^3
23:53:03 <lambdabot> 17576
23:53:09 <elliott> fizzie: Isn't it the banana problem :)
23:53:18 <elliott> The sword alone can't stopping is better, though.
23:53:46 <fizzie> There are only that many trigrams, so it sounds like it perhaps wouldn't need any smoothing.
23:54:29 <elliott> fizzie: Mmph, now you're making me want to write my own Markov bot.
23:54:48 <CakeProphet> So there's Aaronical, Aaronite, Aaronitic, Aaronsburg, Aaronson, but no Aaronsoniticalburgite?
23:54:54 <elliott> fizzie: Out of curiosity how would a mere plebian obtain that Google data; preferably one of the forms that isn't five DVDs.
23:54:58 <elliott> Or can't they.
23:55:04 <fizzie> I'm not sure.
23:55:19 <elliott> "Run your own experiment! Raw data is available for download here."
23:55:20 <elliott> Ah.
23:55:25 <elliott> http://ngrams.googlelabs.com/datasets
23:55:27 <fizzie> Anyone can download the Google Books dataset.
23:55:32 <fizzie> Possibly others too.
23:55:38 <elliott> Oh, right, but that is not the set you have, right?
23:55:55 <CakeProphet> so I'm guessing Googles data is better than what I'm using, yes?
23:56:07 <elliott> CakeProphet: They're words, not letters, unless I'm terribly mistaken.
23:56:35 <elliott> fizzie: Hmph, that's a lot of data to download for such low ns.
23:57:09 <CakeProphet> elliott: wamerican-insane is also a list of words... >_>
23:57:14 <CakeProphet> I am looking for word data.
23:57:24 <elliott> CakeProphet: For an acronym generator? Stupid.
23:57:31 <fizzie> CakeProphet: You can take their unigram dataset as a word list if you want.
23:57:32 <CakeProphet> a pronouncable acronym generator.
23:58:07 <fizzie> elliott: Does it say anywhere how many words they had in the books that was built from?
23:58:24 <elliott> fizzie: http://ngrams.googlelabs.com/datasets :P
23:58:56 <CakeProphet> wow this is a ridiculous amount of data.
23:59:28 <elliott> It's more than you need.
23:59:44 <fizzie> 13.6 billion, I see.
2011-08-26
00:00:00 <CakeProphet> well if I only took the 1-gram set I could generate 2-grams and 3-grams from those.
00:00:06 <fizzie> (total-counts file of unigrams for "English")
00:00:08 <CakeProphet> or just use the 3-gram set
00:00:18 -!- hagb4rd has joined.
00:00:19 <elliott> fizzie: There's also that "one million" dataset.
00:00:21 <elliott> <CakeProphet> well if I only took the 1-gram set I could generate 2-grams and 3-grams from those.
00:00:24 <elliott> Uhh, I don't think so.
00:00:45 <fizzie> If you do letter bi/trigrams, yes, you can generate them from word-unigrams, when modeling a single word.
00:00:50 <elliott> Oh, well, right.
00:00:59 <fizzie> The word-trigram set is pretty useless in that case.
00:01:01 <elliott> /usr/share/dict/words would do just as well though, surely.
00:01:35 <CakeProphet> NOPE NEEDS MOAR DATA.
00:01:54 <fizzie> elliott: The web dataset was built over 1 trillion "words" (it's a bit messy) of random Internet pages, I believe.
00:02:02 <elliott> More obscure and therefore probably less familiar-looking data?
00:02:16 <CakeProphet> well the wlanguage-insane would be enough
00:02:27 -!- ais523 has quit (Remote host closed the connection).
00:02:46 <CakeProphet> elliott: I'm not necessarily looking for familiar-looking acronyms.
00:02:48 <fizzie> http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13
00:02:55 <fizzie> $150 for non-members.
00:03:07 <fizzie> But you'll get the shiny DVDs. :p
00:03:22 <elliott> fizzie: Is that of the web corpus?
00:03:24 <elliott> Worpus.
00:03:26 <elliott> Hunt the Worpus.
00:03:29 <elliott> Indeed it is.
00:03:32 <fizzie> Yes.
00:03:41 <elliott> What kind of DVD is it?
00:03:44 <elliott> i.e. capacity.
00:03:49 <CakeProphet> for mad overkill I could interpolate the non-duplicate occurences of words in both the insane language dictionaries and google data.
00:04:26 <elliott> fizzie: Also what are the chances of you putting them up on a torrent tracker. :p
00:04:36 <fizzie> Very zero. :p
00:04:40 <fizzie> It has about 13.5 million unique "words" of "English".
00:04:56 <elliott> <elliott> What kind of DVD is it?
00:04:56 <elliott> <elliott> i.e. capacity.
00:05:09 <elliott> fizzie: Also it doesn't really matter how real the words are with chains that long. :p
00:05:42 <elliott> File sizes: approx. 24 GB compressed (gzip'ed) text files
00:05:42 <elliott> Ah.
00:05:42 <fizzie> 4.4G says du -h.
00:05:57 <fizzie> (For DVD1.)
00:05:57 <CakeProphet> the google data would also allow my acronym generator to take year filters.
00:06:13 <CakeProphet> you know, if you're into that thing.
00:06:13 <elliott> fizzie: I can't help but think that any Markov algorithm running on the data would be... how do I put it... slow.
00:06:21 <fizzie> Yes, the book data is fancy that way.
00:06:45 <CakeProphet> elliott: nah I'm using Perl it'll be fine.
00:07:04 <fizzie> elliott: Dumped into PostgreSQL, I think it took a second or three per query (i.e. to sample one new word).
00:07:10 <elliott> fizzie: (It'd be nice to do the MegaHAL-style backwards-from-query and forwards-from-query stuff so you can answer questions with THE INTERNET on IRC.)
00:07:15 <elliott> Well PostgreSQL is not very optimised.
00:07:17 <CakeProphet> basically my "markov" chain will be hash tables.
00:07:29 <elliott> Can't you use one of those fancy short-English-text-optimised compression things?
00:07:31 <elliott> Bloom filters??
00:07:31 <elliott> Help.
00:08:19 <elliott> fizzie: help.
00:08:24 <fizzie> You can arrange them into a reversed-context tree, that makes the sampling fast. It's what fungot does.
00:08:24 <fungot> fizzie: only one place can sit one rnd first
00:08:57 <elliott> fizzie: Like, a hash table of most recent word to (a hash table of second-most recent word to ...)?
00:09:04 <elliott> That's just... a trie.
00:09:11 <CakeProphet> so the acronym generating data structure will basically be Ngram -> (Char -> Frequency)
00:09:16 <CakeProphet> where -> is a hash table.
00:09:28 <elliott> CakeProphet: Yes, that's going to be so awfully "efficient" with gigabytes of data.
00:10:06 <elliott> fizzie: Oh, dear, that 24 GB figure is gzipped.
00:10:15 <elliott> fizzie: That means it's probably ten terabytes unzipped.
00:10:15 <fizzie> Basically all unigrams to root node, all bigrams starting with "foo" to /foo, all trigrams starting with "bar foo" to /foo/bar; then you can just walk backwards in your current context + the tree, and when reaching a leaf use that node's wordlist to generate the next word (or backoff).
00:10:46 <fizzie> I think it was a bit less than a terabyte in Postgres, IIRC.
00:11:04 <elliott> fizzie: But I don't have a disk that big. :(
00:11:19 <CakeProphet> elliott: what are you going to use this data for?
00:11:20 <elliott> fizzie: I suppose I could plug in an external drive, but that'd be laughably slow.
00:11:29 <elliott> CakeProphet: An IRC bot to answer questions and babble, duh.
00:11:46 <monqy> would it be good
00:11:58 <elliott> monqy: Well, I mean, I'd like it to be good.
00:12:31 <fizzie> The book dataset could be more reasonable, not to mention more book-learned. Plus, as mentioned, you could tell it to sound like someone who lived e.g. in the 1920s.
00:12:46 <fizzie> Assuming they have enough books from each period, anyway.
00:12:57 <elliott> fizzie: Yeeeees, but that's a much less interesting engineering challenge.
00:13:15 <elliott> fizzie: I don't suppose the books n-gram data includes punctuation.
00:15:17 <fizzie> Haven't looked. The web-data does.
00:16:26 <fizzie> "argle, bargle" seems to have been turned into three tokens <argle> <,> <bargle> for the web.
00:16:33 -!- sebbu2 has joined.
00:16:44 <fizzie> They've probably also filtered it somewhat.
00:17:00 <elliott> Right.
00:17:10 <elliott> It'd be nice to get open and close quotes separately. :p
00:17:15 <elliott> Or at least space-quote differentiated from quote-space.
00:18:25 <fizzie> I have some sort of a regex-driven guesswork for that in fungot's preprocessing script, generates different tokens (POQUOT and PCQUOT or something) for them.
00:18:25 <fungot> fizzie: it in raffle city got mac meh? ya i'm also came to just saw ur msg only lol... after is everything wen v miss something ". real value. create a contact on indyarocks.com
00:18:29 <CakeProphet> if the data contained all punctuation then a close quote would be preceded by [,.!?]
00:18:41 <elliott> fizzie: How does it do the guesstimationeration?
00:18:44 <elliott> Or is that from raw data?
00:18:54 <fizzie> It's from raw data, yes.
00:19:21 <fizzie> It can't preprocess-fake an already ngrammized data like the Goggel stuff.
00:19:22 -!- sebbu has quit (Ping timeout: 260 seconds).
00:19:22 -!- sebbu2 has changed nick to sebbu.
00:20:11 <fizzie> Graa, I'll the sleep now. It's 3-and-a-half hours to wakeup time.
00:20:21 -!- augur has quit (Remote host closed the connection).
00:21:20 <CakeProphet> halp what's fastest way to download all of the 1-gram data for every language on this page
00:21:36 <Patashu> wget?
00:22:14 <CakeProphet> does it have some kind of URL regex option?
00:24:01 <CakeProphet> searching for the term regex in its man page yielded nothing.
00:24:43 <elliott> Regexps: The only way to do anything.
00:24:43 <CakeProphet> oh nevermind I found it.
00:24:46 <Patashu> I don't think it's smart enough to know what urls are valid
00:24:46 <Patashu> oh?
00:24:56 <elliott> <fizzie> It can't preprocess-fake an already ngrammized data like the Goggel stuff.
00:24:57 <elliott> fizzie: Right. :(
00:25:19 <CakeProphet> Regexps: probably the best way to filter only the URLs I want in this case
00:25:45 <CakeProphet> but it's more like sh wildcard stuff and not regex.
00:25:51 <CakeProphet> should work fine
00:27:52 <CakeProphet> any idea what "english 1 million" is?
00:29:22 -!- evincar has joined.
00:31:01 <fizzie> Probably either "English with just 1 million most common words", or "English from 1 million words of text"; former sounds more likely.
00:31:16 <elliott> fizzie: Good slepping.
00:31:24 <elliott> fizzie: But, um, BLOOM FILTERS
00:31:28 <elliott> SOLUTION TO ALL MARKVS???
00:31:30 <elliott> EXPERTS SAYS YES
00:32:04 -!- azaq23 has joined.
00:32:25 <CakeProphet> ls
00:32:26 <CakeProphet> ...
00:33:13 <evincar> Which one of us did you expect to give you a directory listing?
00:33:13 <lambdabot> evincar: You have 1 new message. '/msg lambdabot @messages' to read it.
00:33:45 <fizzie> I'm not immediately clear on how probabilistic set-membership-testing would help all that much.
00:33:52 <pikhq> TIL that Israeli DST is neither deterministic nor algorithmic.
00:34:04 <monqy> evincar: the lines following http://codu.org/logs/log/_esoteric/2011-08-25#103037Patashu for my response to what you were saying about whatever last night
00:34:58 <fizzie> Now the real sleep. (I just took a quick shower there, that's why still awake.)
00:35:10 <pikhq> DST in Israel is determined by whatever their legislature declares that year.
00:35:27 <monqy> evincar: in short, using good judgment when picking names is better than just sticking to well-established notation/whatever
00:35:31 <pikhq> Which means that there must always be at least one tzdata update a year.
00:35:41 <evincar> monqy: I agree.
00:36:02 <evincar> Good judgement includes genre awareness, that's all.
00:37:03 <monqy> consistency, clarity, and brevity are good too
00:37:03 <CakeProphet> weee wget
00:37:51 <evincar> CakeProphet: What have you wgotten?
00:39:51 <monqy> is this still about acronyms or have you moved onto more grand (general term for whatever you're doing)s
00:39:58 <monqy> things
00:40:01 <CakeProphet> all the 1-gram data from http://ngrams.googlelabs.com/datasets
00:40:02 <monqy> (that works, right?)
00:41:32 <CakeProphet> evincar: I'm still working on the acronym generator.
00:41:38 <CakeProphet> elliott has some kind of bot in mind.
00:42:11 <evincar> Bluh. English orthography isn't exactly ideal for this sort of thing.
00:42:20 <monqy> english orthography is awful
00:42:41 <evincar> But as long as we all agree on it, it serves.
00:42:52 <evincar> (Well, apart from color/colour etc.)
00:42:53 <CakeProphet> !perl %x = (); $x{a}++; print %x
00:42:55 <EgoBot> a1
00:42:59 <monqy> im disagree 100%
00:43:07 <monqy> looka t me go
00:44:29 <CakeProphet> I wonder if I should base my frequency data on the page/volume count
00:44:49 <evincar> My language continues to evolve.
00:45:09 <evincar> I decided it would be nice to have a non-TC language for making families of stack combinators.
00:45:18 <elliott> ok
00:46:08 <Patashu> stack combinators are like rot, dup etc?
00:46:20 <evincar> Yep.
00:46:34 <CakeProphet> lol wgerman-medical
00:46:57 * CakeProphet downloads everything
00:46:58 <evincar> But rather than specifying dup1, dup2, dup3, you can just specify dupn.
00:47:14 <evincar> I don't like arbitrary implementation-defined limits on things.
00:47:26 <elliott> "if you use more than dup2 ever you're doing something very wrong" --every designer of a stack language ever
00:47:28 <elliott> (experts)
00:47:31 <evincar> True.
00:47:38 <elliott> "similarly with almost all other non-trivial stack manipulation combinators" --them
00:47:46 <evincar> Most stack shuffling operations are for the benefit of beginners.
00:47:52 <elliott> "and since you can compose them all from a set of primitive ones why do you need a sublanguage for the rare cases" --me
00:48:17 <evincar> I dunno, it feels cleaner.
00:48:30 <evincar> It's no worse than having a type system.
00:51:20 <CakeProphet> the nice thing is that I'llonly have to generate the frequency tables once by using Data::Dumper to generate a hardcoded hash.
00:51:39 <evincar> Say what you will about Perl. It gets stuff done.
00:51:39 <CakeProphet> it would be silly to traverse all of the data every invocation.
00:52:11 <CakeProphet> the same can be said of most languages.
00:52:22 <CakeProphet> except C++
00:53:18 <pikhq> CakeProphet: ^5
00:53:31 <evincar> I maintain that every language is good for some things.
00:53:42 <pikhq> C++'s is torture.
00:53:57 <CakeProphet> pikhq: did you just exponentiate what I said by 5 or something?
00:54:02 <CakeProphet> I'm confused by this notation.
00:54:04 <evincar> C++ is good for...confusing beginners, being warty, and having a cocktease functional language embedded in the most godawful metaprogramming facility known to man.
00:54:05 <pikhq> No, that's "high five".
00:54:10 <CakeProphet> oh...
00:54:11 <CakeProphet> yes.
00:55:15 <evincar> Then again, if you treat it as C+const+RAII+templates, it's tolerably good.
00:55:15 * CakeProphet is having to use C++ in his data structures class
00:55:21 <CakeProphet> which will mean I will be getting slightly more familiar with it.
00:55:36 <evincar> At the very least you don't have to resort to macros or untyped pointers to make type-agnostic data structures.
00:55:44 <monqy> hi i got back whjat's hapening
00:56:02 -!- oerjan has quit (Quit: Goof night).
00:56:02 <CakeProphet> "wget is awesome" is happening.
00:56:10 <monqy> ok
00:56:22 <evincar> Then again, templates bloat binaries something awful.
00:56:27 <evincar> And compile times.
00:56:40 <monqy> why are we talking about c++
00:56:50 <evincar> Because I feel like complaining.
00:56:55 <evincar> And C++ is easy to complain about.
00:57:38 <monqy> ok
00:58:06 <monqy> 17:46:59 < evincar> I decided it would be nice to have a non-TC language for making families of stack combinators.
00:58:09 <monqy> why
00:58:24 <evincar> s/language/sublanguage/
00:58:30 <evincar> Genericity.
00:58:33 <evincar> In a word.
00:58:41 <monqy> why
00:58:43 <CakeProphet> yo dawg we heard you like stacks so we put stack combinators in your language so you can stack while you stack.
00:58:53 <monqy> :|
00:59:00 <evincar> Your meme is not welcome here.
00:59:30 <monqy> 17:49:42 < elliott> "and since you can compose them all from a set of primitive ones why do you need a sublanguage for the rare cases" --me
00:59:34 <monqy> me too
00:59:38 <monqy> 17:50:07 < evincar> I dunno, it feels cleaner.
00:59:39 <monqy> 17:50:20 < evincar> It's no worse than having a type system.
00:59:39 <monqy> what
00:59:51 <monqy> 17:53:28 < evincar> Say what you will about Perl. It gets stuff done.
00:59:52 <monqy> what
01:00:17 <evincar> What what?
01:00:19 <CakeProphet> evincar: there's a lot of perl hatred up in this bitch. be careful.
01:00:36 <monqy> evincar: respectively, what, and what
01:00:51 -!- augur_ has joined.
01:00:54 -!- augur_ has quit (Remote host closed the connection).
01:01:21 <elliott> monqy: so have you seen that new language
01:01:21 <elliott> uh
01:01:23 <elliott> what was the name again
01:01:24 <elliott> let me check
01:01:25 <elliott> on the wiki
01:01:27 <monqy> which one
01:01:28 <monqy> the bad one
01:01:31 <elliott> half-broken car in heavy traffic
01:01:34 <monqy> oh
01:01:35 <elliott> the two-dimensional one that ais likes???
01:01:35 <elliott> and that is
01:01:37 <elliott> kind of coo
01:01:37 <elliott> l
01:01:39 <elliott> imo
01:01:41 <monqy> yeah it's kind of cool
01:01:43 <elliott> it is.... rpettyt
01:01:47 <evincar> I'm willing to use a shitty language if it has a library that does what I need it to.
01:01:59 <CakeProphet> but see, Perl isn't a bad language.
01:02:02 <elliott> monqy: well
01:02:02 <evincar> Because it's that much less of my program that I have to write.
01:02:04 <elliott> hmm
01:02:08 <elliott> monqy: i do wonder if its tc though
01:02:19 <elliott> monqy: it seems like it might not be with a finite initial field
01:03:36 <monqy> maybe its tc....
01:03:38 <monqy> maybe not....
01:04:02 <elliott> monqy: hmmmmmmmmmmmmmmmmmmm
01:04:03 <elliott> maybe its
01:04:04 <elliott> BOTHE???????
01:04:06 <elliott> discus
01:04:07 <monqy> :o
01:04:10 <monqy> no never
01:04:11 <monqy> i refuse
01:04:13 <monqy> to
01:04:14 <monqy> believe
01:04:22 <evincar> The docs don't specify what it does when it goes outside the initial bounds.
01:04:23 <elliott> but
01:04:24 <elliott> belief is
01:04:25 <elliott> essential to
01:04:27 <elliott> screenwich
01:04:28 <elliott> emean
01:04:29 <elliott> times????
01:04:31 <evincar> If it's unbounded, it should be isomorphic to BF.
01:04:34 <elliott> think abutt it, monqy ........
01:04:39 <monqy> thinkeing........
01:04:50 <monqy> got nothing
01:04:51 <monqy> oops
01:06:12 <elliott> ops
01:06:17 <monqy> ooops
01:06:39 <CakeProphet> "belief is essential to screenwich emean times" -- elliott, philosopher and mathematician
01:07:07 <elliott> yes
01:07:23 <monqy> he did say that didnt he....
01:08:59 <monqy> what does this "random" example mean...for half broken car in heavy trafic
01:09:14 <monqy> does the car go in a random direction at start
01:10:55 <monqy> it looks like when it leaves one side it will wrap around....
01:11:02 <monqy> at least that's what that example indicates
01:11:04 <monqy> i think
01:13:09 -!- zzo38 has joined.
01:13:37 <CakeProphet> the program is a torus
01:13:45 <monqy> yes.....]
01:13:57 <CakeProphet> a much more sophsticated style of programming than your inferior linear languages.
01:14:06 <monqy> okay.....
01:14:21 <monqy> what is a linear language
01:15:14 <CakeProphet> where programs are a linear sequence of instructions.
01:15:35 <CakeProphet> instead of extradimensional, man.
01:16:15 <monqy> are all that many languages really just sequences of instructions
01:16:33 <monqy> or what are yous aying
01:16:37 <monqy> what is an instrcution
01:16:41 <monqy> what is a sequenc e therof
01:16:42 <monqy> help
01:16:59 <CakeProphet> depends on how you interpret instruction I guess. I suppose if you go by "lines of source code" then even 2-dimensional languages are linear.
01:17:10 <evincar> Music, writing; painting, photography; sculpture, film, 3D photography; 3D film.
01:17:36 <evincar> My new goal is to write a programming language whose sources are 3D movies.
01:17:37 <elliott> evincar: what
01:17:44 <monqy> evincar: hi
01:18:19 <evincar> Thus in some useless and gimmicky sense four-dimensional.
01:18:20 <CakeProphet> evincar: good luck
01:18:45 <evincar> Everyone is paying attention to me. :(
01:18:46 <monqy> evincar: waht
01:18:51 <CakeProphet> my languages all require viewing by 3d glasses.
01:18:56 <monqy> evincar: if you don't like it, stop talking :(
01:19:13 <evincar> Can't. Boredom compels me otherwise.
01:19:17 <monqy> ok
01:19:28 <CakeProphet> evincar: learn Haskell and Perl
01:19:31 <CakeProphet> and then make a hybrid language.
01:19:48 <CakeProphet> that should give you plenty to do.
01:20:04 <elliott> no
01:20:07 <elliott> i will
01:20:08 <elliott> pierce
01:20:09 <elliott> your eyeballs
01:20:25 <CakeProphet> -->0_0
01:20:28 <evincar> Is that a joke?
01:20:31 <monqy> make a hybrid language...implemented in overloardedstrings
01:20:33 <evincar> It's not funny enough to be a joke.
01:20:34 <evincar> Help.
01:21:09 <CakeProphet> the Perlskell is my cherished deity. Soon it will come...
01:21:13 <elliott> STOP STEALING HELP OMG
01:21:13 <elliott> (C)
01:21:16 <elliott> (C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)
01:21:18 <elliott> (C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)(C)
01:21:20 <monqy> (c)
01:21:21 <elliott> (C)
01:21:31 <CakeProphet> elliott: has anyone else done so?
01:21:36 <evincar> I'll write Hasperll and we'll see whose is better.
01:21:39 <elliott> CakeProphet: (C)(C)(C)(C)(C)(C)(C)(C)(C)
01:21:53 <monqy> I think I've seen some other instances
01:21:57 <monqy> I forget who did it though
01:22:03 <elliott> CakeProphet has i think
01:22:04 <elliott> because
01:22:05 <elliott> bad person
01:22:06 <CakeProphet> elliott: I use "halp" but I've (C)'d that one for a while now.
01:22:15 <monqy> halp is a bad word
01:22:31 <monqy> the internet ruined it??? maybe??? maybe i am imagining things???
01:22:45 <CakeProphet> man you guys are so stingy about personal preferences.
01:22:57 <CakeProphet> I am hurt.
01:22:59 <hagb4rd> halp is a 4 letter word
01:23:14 -!- augur has joined.
01:23:16 <zzo38> word is a 4 letter word
01:23:45 <CakeProphet> a bug in irp interpreter perhaps?
01:24:10 <CakeProphet> the addition of 2 and 2 is 4.
01:25:05 <elliott> the is a four letter word
01:25:28 <CakeProphet> not only is it now given answers to questions that were not asked, but it seems to be given misleading answers.
01:25:41 <CakeProphet> irp is all I can program in halp
01:25:43 <monqy> the internet ruined "teh", so when i misspell "the", i make sure to do it "hte"
01:25:59 <monqy> ~monqy secrets~
01:26:12 <elliott> i have so many monqy secrets
01:27:03 <evincar> Great, now I have to get used to accidentally hitting AltGr so I type þe.
01:27:50 <hagb4rd> 32bit word is a 4 letter word
01:28:20 <CakeProphet> friend is a 4 letter word
01:28:41 <monqy> what is a 4 letter word
01:28:42 -!- augur has quit (Remote host closed the connection).
01:28:44 <elliott> friendship word
01:29:06 <monqy> i think i won.
01:29:24 <CakeProphet> > length "32bit word" - length "friend"
01:29:25 <lambdabot> 4
01:29:54 <CakeProphet> > length "CakeProphet" - length "hagb4rd"
01:29:54 <lambdabot> 4
01:30:18 <monqy> word
01:35:40 <CakeProphet> sub length($) {$_=@_;/^.*(?{pos})$/;$^R} length "word"
01:35:45 <CakeProphet> sub length($) {$_=@_;/^.*(?{pos})$/;$^R} print length "word"
01:35:51 <monqy> hlep
01:35:53 <CakeProphet> !perl sub length($) {$_=@_;/^.*(?{pos})$/;$^R} print length "word"
01:35:53 <EgoBot> 4
01:36:01 <CakeProphet> regex = best way to do everything
01:36:43 <CakeProphet> !perl sub length($) {$_=@_;/^.*$/;pos} print length "word"
01:36:43 <EgoBot> 4
01:37:16 <evincar> D:
01:37:53 <monqy> perl at work: getting things done
01:38:06 <zzo38> Can you properly pronounce the name "Iuckqlwviv Kjugobe"?
01:38:14 <monqy> no
01:39:23 <CakeProphet> ee-yuck-kull-wuh-viv kuh-juh-go-be
01:39:29 <CakeProphet> there is my attempt
01:39:54 <zzo38> That not pronounce it is just writing!
01:40:03 <CakeProphet> lol
01:41:56 <evincar> [i@k:'lwvIv 'kjugobe]
01:42:48 <zzo38> evincar: Now you are trying better.
01:42:55 <CakeProphet> wats dat I dunt speaks no unamerican
01:44:12 <zzo38> Do you think this is someone's name? Do you like this?
01:44:21 <monqy> its my name
01:44:29 <zzo38> Do you think "Also" can be a proper name?
01:44:36 <monqy> yet i still do not know how to pronounce it..
01:44:47 <elliott> also zzo
01:44:48 <elliott> my name
01:44:48 <elliott> irl
01:44:53 <CakeProphet> could zzo38 sound any creepier than when he asks "Do you think this is someone's name? Do you like this?"
01:45:06 <elliott> what
01:45:12 <elliott> how is that creepy
01:45:13 <zzo38> CakeProphet: I don't know. Can you learn?
01:46:26 <CakeProphet> what is learn?
01:48:33 <monqy> help
01:48:36 <zzo38> Actually, "Iuckqlwviv Kjugobe" and "Also" are names of some characters in the D&D game. The letters of the first name were generated at random.
01:48:44 <zzo38> monqy: pleh
01:49:14 <CakeProphet> zhelp plehz
01:50:40 <CakeProphet> I think English should adopt the ¿
01:51:02 <CakeProphet> ¿What is learn?
01:51:07 <monqy> ¿¿¿
01:51:37 <monqy> ¿¿¿¿¿¿help??????
01:52:02 <itidus20> Old Norse hjalpa, Old Frisian helpa, Middle Dutch, Dutch helpen, Old High German helfan, German. helfen
01:52:11 <monqy> hi
01:53:36 <CakeProphet> !wacro
01:53:37 <EgoBot> OIMESO
01:53:42 <monqy> oimeso
01:53:55 <CakeProphet> why are we all so weird.
01:53:56 -!- Vorpal has quit (Ping timeout: 240 seconds).
01:54:56 <zzo38> CakeProphet: Because weird.
01:55:06 <elliott> monqy: im markov chane
01:55:17 <monqy> elliott: hi markov chane
01:55:36 <CakeProphet> dick chainy
01:56:19 <elliott> 00:10:15: <fizzie> Basically all unigrams to root node, all bigrams starting with "foo" to /foo, all trigrams starting with "bar foo" to /foo/bar; then you can just walk backwards in your current context + the tree, and when reaching a leaf use that node's wordlist to generate the next word (or backoff).
01:56:29 <elliott> time to figure out how this differs from the obvious way of doing it trie-wise
01:57:31 <monqy> twice I made markov bots. both dead now,. rest peacefully.
01:57:47 <elliott> monqy: yes but were YOURS designed to work on almost a terabyte of raw data in realtime
01:57:48 <elliott> I THINK NOT
01:58:04 <elliott> i guess i'll have to run it from home lol because no host will give me a terabyte
01:58:13 <monqy> I want to make another bot but not markov
01:58:23 <monqy> because markov is not cool enough
01:58:27 <elliott> botte will be good... but markov more important
01:58:34 <elliott> monqy: yes but mine will answer questions too......
01:58:38 <monqy> oh....
01:58:52 <CakeProphet> elliott: perhaps you should try to get a freelance project to make money to pay for awesome hosting.
01:58:54 <elliott> "what is X?" --> start with "X is", do one markov chain forward from that and one backwards, until complete sentence made
01:59:04 <monqy> some time i want to try scfg.............
01:59:21 <elliott> CakeProphet: well let's see now.
01:59:27 <monqy> instead of markov.....
01:59:30 <monqy> scfg is cool right.....
01:59:37 <CakeProphet> I considered using it. with regex of course to implement the transition rules.
01:59:37 <elliott> monqy: maybe
01:59:41 <CakeProphet> because there is no better way.
01:59:42 <elliott> TERABYTE
02:00:10 <elliott> ok so
02:00:21 <elliott> the only vps providers i can find offering anywher enear a terabyte of storage
02:00:35 <elliott> slicehost - 620GB gigs of storage, fiteen gigs of ram, two point five terabytes monthly bandwidth
02:00:37 <elliott> eight hundred dollars a month
02:00:42 <monqy> 8)
02:00:43 <elliott> rackspace - cba to work it out it's per-hour
02:00:56 <elliott> i guess a dedicated server
02:00:58 <elliott> would be cheaper in that case
02:01:02 <elliott> but w/e im not paying a hundred pounds a month to run a bot
02:01:29 <CakeProphet> buy a server. host it yourself. profit.
02:01:35 <elliott> host it myself where
02:01:36 <monqy> no
02:01:36 <monqy> die
02:01:38 <elliott> from my home connetion?
02:01:40 <elliott> because thats called
02:01:42 <elliott> WHAT I WAS GOING TO DO
02:01:47 <monqy> i always just run bots from home..
02:01:48 <elliott> except i can just reuse an existing machine
02:01:49 <CakeProphet> COOL DO THAT.
02:01:53 <CakeProphet> PROBLEM SOLVED.
02:01:57 <elliott> NICE YELLING
02:02:01 <monqy> hi
02:02:03 <CakeProphet> FUUUUCK
02:02:32 <CakeProphet> @let cruiseControl = map toUpper
02:02:32 <lambdabot> Defined.
02:02:39 <zzo38> I invented sokoban compression. It is like RLE, but it first encodes the walls/spaces (like the Generic Font format, it switches after every number), and then the targets skipping the walls, and then it encodes the number of positions between crates, skipping positions where there are walls or where a crate can never be moved from if it is placed there, and stopping when the number of crates is equal to the number of targets. Numbers are stored
02:04:13 <CakeProphet> you should make a patent.
02:04:19 <CakeProphet> and then when someone else invents you can get mad $$$$$
02:04:20 <zzo38> No.
02:04:32 <zzo38> I want it freely usable.
02:05:17 <CakeProphet> I am one english 1-gram file number 7...
02:05:23 <elliott> monqy: help i need a really space-efficient thing that's also really efficient to seek about while keeping it all on-disk
02:05:24 <CakeProphet> 317K/s
02:05:32 <zzo38> In addition, it is automatically assumed there are walls on the edges; you do not need to encode the edges.
02:06:07 <monqy> elliott: i am bad at knowing how to solve this probleme
02:06:11 <CakeProphet> hey wait I have money now why do I not own an external hard drive.
02:07:36 <CakeProphet> 1.5 TB HD: $57 external HD case: $11
02:08:08 <zzo38> I saw a program using Huffman coding to code a Sokoban game on Texas Instruments calculators, but I invented mine independently and it usually compresses better (since it avoids redundancy).
02:08:40 -!- augur has joined.
02:08:43 <Patashu> I can't imagine a huge need to compress sokoban levels, unless you've made some mega sokoban that'll take a year to beat
02:08:48 <zzo38> In a few cases, rotating or flipping the level will make it compress better.
02:09:03 <elliott> <CakeProphet> 1.5 TB HD: $57 external HD case: $11
02:09:03 <elliott> or
02:09:06 <elliott> just buy
02:09:07 <elliott> an external hd
02:09:13 <elliott> and get it for cheaper than the combination
02:09:59 <CakeProphet> cheapest I've found is $70
02:10:10 <zzo38> Patashu: Yes, that is a purpose. Although mostly I did just to see if I can. Another purpose is a game with many levels but for systems with small ROM, but large enough to write the decompression program; the improvement improves as more levels are added in this case.
02:10:37 <Patashu> now I'm curious as to whether there there are any notable sokoban variants
02:11:29 <CakeProphet> elliott: yes it makes absolutely no sense but buying the case and HD seperately is cheaper.
02:11:34 <zzo38> There are some. There are many different ways to decide variants. Including geomerty, such as hex grid sokoban, or 3D sokoban; sokoban with new pieces such as blocks that move different number of spaces when pushed; etc
02:11:59 <monqy> some assembley required: save $$$$$
02:12:02 <Patashu> yeah, I can imagine all the ways to vary it, but what results in a Good Game
02:12:04 * Patashu google google
02:13:23 <zzo38> Or, such thing as Snaky Sokoban (one of my ideas, too), where there is tail of your pieces and therefore you cannot go backwards. Another thing is you have multiple pieces all of which move in the same direction to push blocks, so you have to be more careful. Another idea is different color of crates which must match colors of targets
02:14:27 <elliott> monqy: oh and i need to store it in reverse format too, oops
02:14:33 <elliott> i guess iw ill have to... soncult fizzie on that
02:15:03 <CakeProphet> order placed. Now I just need to figure out what to do with 1.5 TBs
02:16:01 <zzo38> Do you have any other ideas about sokoban game?
02:16:36 <monqy> reverse format what is that
02:16:42 <zzo38> I also once played a game that is sokoban except they added keys and doors as well.
02:17:21 <Patashu> How about receptors being level-changing triggers? When a crate is on them, they alter one or more tiles. When a crate is not on them, the alteration might revert.
02:17:27 <Patashu> It'd be like those dickish block puzzles in La Mulana
02:17:44 <Patashu> And it combines trivially with any other sokoban modification
02:17:54 <Patashu> Well, not trivially
02:18:02 <Patashu> But with obvious usage
02:24:12 <elliott> Hmm...
02:24:33 <elliott> I think I have a decent idea of how to do the reverse-way around too without massive duplication
02:24:35 <elliott> Well, two ways
02:24:40 <elliott> I'm not sure if they are any good though
02:40:26 <CakeProphet> being a consumer sure is fun.
02:41:32 <CakeProphet> I get to work, buy things, consume them, and die!!
02:43:57 <CakeProphet> uh oh, I didn't check to see if my external is bootable.
02:44:00 <CakeProphet> oh well.
02:44:39 <Sgeo> "Also, I wasnt talking about lists (you cant express Lisp-like lists in OCaml because they cant be statically typed)"
02:44:45 <elliott> doesn't really matter
02:44:48 <elliott> is it usb
02:44:51 <elliott> because running os off usb = FAST
02:44:52 <elliott> :P
02:45:05 <Sgeo> What? I guess Lisp-like lists can't be statically typed in O'Caml?
02:45:14 <Sgeo> Because Haskell handles them just fine
02:45:17 <Patashu> Chip's Challenge is a superset of sokoban, I just realized
02:45:27 <Sgeo> http://schani.wordpress.com/2007/07/23/why-ocaml-is-not-my-favorite-programming-language/#comment-6957
02:45:31 <CakeProphet> elliott: fast enough. I used to have an Ubuntu flash drive that suited its purpose well.
02:46:03 <Patashu> block receptor -> brown button, and make a row of beartraps with the exit at the end
02:47:29 <CakeProphet> lets see... what's a large collection of useless data I could get.
02:47:46 <CakeProphet> halp pirate bay is down.
02:47:52 <CakeProphet> wat do?
02:48:43 <Patashu> zzo38, ever play chip's challenge?
02:48:44 <CakeProphet> I guess large volumes of word data would be nice to have. It allows for some interesting projects.
02:49:55 <elliott> CakeProphet: torrentz.eu
02:50:06 <elliott> meta-tracker
02:55:48 <CakeProphet> I guess
02:55:57 <CakeProphet> I should make a bot?
02:56:16 <monqy> would it be a good bot
02:56:21 <CakeProphet> well, no need. I can do everything via an egobot command actually.
02:57:29 <monqy> ok
02:59:31 <CakeProphet> but yes eventually I will probably make an irc bot.
03:00:10 <monqy> a good bot? a few times I've made bot. all dead. rest peacefully.
03:00:23 <CakeProphet> dunno. we'll see.
03:00:57 -!- augur has quit (Remote host closed the connection).
03:00:59 <CakeProphet> it would serve a variety of purposes. One in particular is being able to facillitate pen and paper RPGs
03:01:04 <CakeProphet> over IRC.
03:01:23 <CakeProphet> another would be a playground of programs, similar to egobot I suppose.
03:03:26 <CakeProphet> I might write it on top of lambdabot I'd like to have all of lambdabots commands.
03:05:07 <CakeProphet> or I could write in Perl, and then implement lambdabot's commands by PMing lambdabot and relaying the answer. :P
03:06:16 <monqy> :(
03:06:26 <evincar> Hacks are ideal.
03:06:28 <CakeProphet> I jest I jest.
03:09:05 <CakeProphet> !perl $test = q/(?{print "launch missiles"})/; "hi" =~ /$test/
03:09:05 <EgoBot> Eval-group not allowed at runtime, use re 'eval' in regex m/(?{print "launch missiles"})/ at /tmp/input.10433 line 1.
03:09:14 <CakeProphet> oh look security.
03:09:35 <CakeProphet> !perl $test = q/(??{print "launch missiles"})/; "hi" =~ /$test/
03:09:35 <EgoBot> Eval-group not allowed at runtime, use re 'eval' in regex m/(??{print "launch missiles"})/ at /tmp/input.10715 line 1.
03:10:13 <CakeProphet> so I /could/ allow user-defined commands that execute when they match an arbitrary regex
03:10:16 <CakeProphet> the question is
03:10:23 <CakeProphet> do I really want that to be possible?
03:10:55 <CakeProphet> probably not, unless I restricted them somehow.
03:11:24 -!- augur has joined.
03:12:55 <zzo38> Patashu: I think I have once play Chip's Challenge
03:13:27 <CakeProphet> !perl print /(?R)/
03:13:27 <EgoBot> Pattern subroutine nesting without pos change exceeded limit in regex at /tmp/input.11361 line 1.
03:23:51 -!- augur has quit (Remote host closed the connection).
03:38:09 <CakeProphet> !perl local $x; '5' =~ /(?<N>\d+)(?&FAC)(?(DEFINE)(?<FAC>\g{N}(?(?=0)(*ACCEPT)|(?<N>(??{$x*=$_{N};$_{N}-1})(?&FAC)))))
03:38:10 <EgoBot> Search pattern not terminated at /tmp/input.13080 line 1.
03:38:13 <CakeProphet> !perl local $x; '5' =~ /(?<N>\d+)(?&FAC)(?(DEFINE)(?<FAC>\g{N}(?(?=0)(*ACCEPT)|(?<N>(??{$x*=$_{N};$_{N}-1})(?&FAC)))))/
03:38:37 <CakeProphet> !perl local $x; '5' =~ /(?<N>\d+)(?&FAC)(?(DEFINE)(?<FAC>\g{N}(?(?=0)(*ACCEPT)|(?<N>(??{$x*=$_{N};$_{N}-1})(?&FAC)))))/; print $x
03:38:40 <CakeProphet> lulz
03:38:45 <CakeProphet> if only that had worked.
03:38:57 <CakeProphet> I'm not even going to try to fix it.
03:40:27 <zzo38> If you want to play RPGs on IRC, there is some IRC servers I have seen that have a GS command that allow you to do dice roll and calculation, as well as a few other things. (Type GS HELP for more information about this service.)
03:41:45 -!- derrik has joined.
03:43:34 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:44:31 -!- azaq23 has joined.
03:46:49 <CakeProphet> !perl local $x; '5' =~ /(?<N>\d+)(?&FAC)(?(DEFINE)(?<FAC>(?(?<N>)((??{$x*=$_{N}--})(?&FAC))?|(*ACCEPT))))/; print $x
03:49:20 <CakeProphet> recursive factorial in regex is probably not meant to be.
03:50:16 <Patashu> how do you debug that shi
03:50:30 <CakeProphet> I don't think you can.
03:51:06 <CakeProphet> !perl local $x; /(?{$x=2})/; print $x
03:51:07 <EgoBot> 2
03:51:07 <elliott> youre bad person
03:51:09 <elliott> monqy: tel themb ad
03:51:12 <monqy> CakeProphet: bad
03:51:18 <CakeProphet> !perl my $x; /(?{$x=2})/; print $x
03:51:18 <EgoBot> 2
03:51:26 <CakeProphet> !perl use strict;my $x; /(?{$x=2})/; print $x
03:51:26 <monqy> bad
03:51:27 <EgoBot> 2
03:51:29 <monqy> bad
03:51:29 <CakeProphet> oh okay.
03:51:58 <CakeProphet> what other modern languages support dynamic scope?
03:52:21 <monqy> haskell????/
03:52:30 -!- MDude has changed nick to MSleep.
03:52:32 <CakeProphet> really?
03:52:40 <pikhq> CakeProphet: Would you count "can freely peek up the call stack"?
03:52:40 <monqy> implicit arguments
03:52:51 <pikhq> If so, then Tcl.
03:52:53 <CakeProphet> pikhq: kind of.
03:53:21 <monqy> is (whatever)lisp a monder nlanguage
03:53:22 <pikhq> It's a bit more "explicitly pulling something into scope", though.
03:53:27 <monqy> i am sure there are lots of lisps with dynamic scope
03:54:08 <pikhq> Well, yeah. Dynamic scope is the historical norm.
03:54:17 <pikhq> For Lisp, that is.
03:55:05 <elliott> :t ?x
03:55:05 <lambdabot> forall t. (?x::t) => t
03:55:12 <elliott> :t let ?dynamic = 9 in ?dynamic
03:55:13 <lambdabot> forall t. (Num t) => t
03:55:24 <elliott> :t let map [] = []; map (x:xs) = ?f x : map xs in map
03:55:24 <lambdabot> forall t a. (?f::t -> a) => [t] -> [a]
03:55:35 <elliott> > let map [] = []; map (x:xs) = ?f x : map xs in let ?f = succ in map [0,99,0]
03:55:35 <lambdabot> [1,100,1]
03:55:47 <elliott> CakeProphet: dymanically scoped
03:55:53 <CakeProphet> oh my
03:56:07 <pikhq> GHC extension?
03:56:12 <elliott> yes, like everything
03:56:14 <zzo38> Is that what the question mark is for?
03:56:20 <CakeProphet> you could use that to have a this similar to methods in OO languages...
03:57:07 <CakeProphet> is that a more interesting abuse of language extensions that misusing overloaded strings?
03:57:10 <CakeProphet> does that count?
03:57:17 <CakeProphet> s/that/than/
03:57:39 <monqy> there is nothing worse than misusing overloaded stirngs.....ecxept maybe worse things.....
03:57:50 <zzo38> Does Haskell have overloading strings?
03:57:57 <Patashu> what's misusing overloaded strings?
03:58:02 <Patashu> like calling lock/wait on them?
04:00:15 <CakeProphet> Patashu: like using them to interpret arbitrary code as Haskell strings.
04:00:39 <Patashu> ooo, fun
04:01:07 <elliott> no
04:01:07 <elliott> no
04:01:08 <elliott> no
04:01:11 <elliott> Patashu: dont let CakeProphet exist
04:01:13 <elliott> make him die, stop, no,
04:01:17 <elliott> monqy: no help stop
04:01:20 <monqy> helop
04:02:13 <CakeProphet> (.) o m = let ?this = o in m
04:02:30 <CakeProphet> would that work?
04:03:32 <CakeProphet> I guess .$ would allow you to not hide composition
04:03:36 <elliott> :t \o m -> let ?this = o in m
04:03:37 <lambdabot> forall t t1. t1 -> t -> t
04:03:41 <elliott> no.
04:03:55 <elliott> :t \o (m :: forall x. (?this :: x) -> r) -> let ?this = o in m
04:03:55 <lambdabot> Predicate used as a type: ?this :: x
04:03:55 <lambdabot> In the type `forall x. (?this :: x) -> r'
04:03:55 <lambdabot> In a pattern type signature: forall x. (?this :: x) -> r
04:03:58 <zzo38> Do you know the function of double quoted strings in WEB? Do you know if it is possible to make Haskell to have that function, too?
04:04:01 <elliott> :t \o (m :: forall x. (?this :: x) => r) -> let ?this = o in m
04:04:02 <lambdabot> A pattern type signature cannot bind scoped type variables `r'
04:04:02 <lambdabot> unless the pattern has a rigid type context
04:04:02 <lambdabot> In the pattern: m :: forall x. (?this :: x) => r
04:04:21 <elliott> :t (\o m -> let ?this = o in m) :: x -> ((?this :: x) => r) -> r
04:04:22 <lambdabot> forall x r. x -> ((?this::x) => r) -> r
04:04:26 <elliott> CakeProphet: yes
04:05:13 <CakeProphet> neato
04:05:18 <elliott> CakeProphet: don't do it though
04:05:20 <elliott> ill cut your veins
04:05:23 <CakeProphet> I don't intend to
04:05:59 <CakeProphet> elliott: also arteries would be much more effective if you intend to have me bleed out quickly and die.
04:06:32 <elliott> no i want you to suffer like i have
04:11:04 <CakeProphet> elliott: lol, really? that's the effect my conversations on this channel have on you?
04:11:18 <elliott> yes slow painful blood losss, tell him monqy
04:11:19 <CakeProphet> sounds like a personal problem. :>
04:12:14 <zzo38> No! You have to bet your blood at a game of mahjong first.
04:13:00 <CakeProphet> my bot is going to sporadically respond about 2-3 times a day to something, babbling inanely about something and then following with a ":>"
04:13:45 <zzo38> Is that one the bot or just an example?
04:14:02 <elliott> that's CakeProphet
04:14:09 <elliott> anyway :> is my smiley
04:14:12 <elliott> (c) eso-std.org
04:14:14 <elliott> years ago
04:14:14 <elliott> ok
04:14:16 <elliott> channel famous
04:14:17 <CakeProphet> what?
04:14:18 <elliott> channel famous placeholder page
04:14:19 <CakeProphet> nonsense
04:14:24 <elliott> "sometimes i fly around in a spaceship :>"
04:14:29 <elliott> that has been a channel icon for years
04:14:31 <elliott> you cannot just
04:14:33 <elliott> steal the smiley
04:14:37 <zzo38> I do not live at the moon!
04:14:41 <elliott> ah
04:14:43 <CakeProphet> I didn't steal it dawg.
04:14:49 <CakeProphet> it's on my face right now. it's mine.
04:14:52 <CakeProphet> :>
04:15:54 <elliott> fak
04:15:54 <elliott> u
04:15:56 <elliott> shat
04:15:57 <elliott> had
04:15:57 <elliott> :(
04:16:11 <monqy> i used to say :> a lot and now i dont
04:16:19 <Patashu> :> is the best smiley
04:16:26 <monqy> now im only :(
04:16:29 <monqy> and :'(
04:16:30 <Patashu> I also like :}
04:16:32 <monqy> and ;-;
04:16:34 <monqy> and ;_;
04:16:37 <CakeProphet> > ((:[])>=>(:[])>=>(:[])) "elliott"
04:16:37 <lambdabot> ["elliott"]
04:16:38 <monqy> and ;_----___---____-_____-;
04:16:48 <CakeProphet> elliott: totem pole eats you
04:17:06 <CakeProphet> [] is its belly.
04:17:18 <CakeProphet> elliott is a symbolic representation of Elliott Hird
04:17:54 <monqy> hi
04:19:08 <CakeProphet> :t fix ((:[])>=>)
04:19:08 <lambdabot> forall b c. b -> [c]
04:19:15 <Patashu> wtf is that monstrosity
04:19:29 <Patashu> it's like...cons to an empty list then whatever >=> is
04:19:59 <monqy> it's really simple actually
04:20:00 <CakeProphet> > fix ((:[])>=>) "elliott" --the infinite totem pole of death
04:20:01 <lambdabot> *Exception: stack overflow
04:20:09 <monqy> dead
04:20:32 <zzo38> In the D&D game, my character wrote "DO NOT SIT ON THIS CHAIR PAST THE HOUR OF 6AM" on one of the chairs. Does this make sense to you?
04:20:42 -!- derrik has quit (Ping timeout: 258 seconds).
04:20:48 <monqy> > fix ("cakeprophet is a bad. "++)
04:20:49 <lambdabot> "cakeprophet is a bad. cakeprophet is a bad. cakeprophet is a bad. cakeprop...
04:20:53 <pikhq> > ((>=>)>=>(>=>))(:[])(:[])"foo"
04:20:54 <lambdabot> ["foo"]
04:21:35 <CakeProphet> zzo38: no
04:21:43 <zzo38> CakeProphet: Are you sure?
04:21:45 <CakeProphet> yes.
04:21:47 <CakeProphet> I mean
04:21:56 <CakeProphet> I understand what you said, but not why.
04:22:05 <monqy> what's sitting help
04:22:27 <zzo38> Did you know it is actually a chair made up by a magic spell (Major Creation) and it eventually expires?
04:22:32 <CakeProphet> :t (>=>) --patashu
04:22:33 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
04:22:40 <CakeProphet> all should be clear.
04:23:00 -!- derrik has joined.
04:23:02 <CakeProphet> zzo38: no, not at all.
04:23:10 <Patashu> monad composition or something
04:23:12 <zzo38> Now hopefully you do know.
04:23:25 <CakeProphet> Patashu: not monads but functions-that-you-can-use-with-bind
04:23:29 <CakeProphet> I'm sure there's a better way to say that.
04:23:37 <zzo38> Read it; I finished typing the recording of the session this time by now.
04:24:00 <CakeProphet> @src (>=>)
04:24:01 <lambdabot> Source not found. Are you on drugs?
04:24:46 <zzo38> Do you know how to read that recording? How many mistakes does it contain?
04:25:17 <pikhq> Should be something like f>=>g=\x->f x>>=g
04:26:00 <CakeProphet> :t (\f g x -> f x >>= g)
04:26:01 <lambdabot> forall t (m :: * -> *) a b. (Monad m) => (t -> m a) -> (a -> m b) -> t -> m b
04:26:10 <CakeProphet> yep
04:27:16 <CakeProphet> zzo38: interested in Shadowrun much?
04:27:20 <CakeProphet> I've been looking for a group.
04:27:29 <zzo38> CakeProphet: I don't know much about it.
04:27:38 <zzo38> You can explain more details if you want to.
04:27:39 <CakeProphet> me neither. :P I've only read the 5th edition book a few times.
04:27:51 <CakeProphet> it's uh... fantasy / cyberpunk basically.
04:27:56 <CakeProphet> I could link you to a PDF.
04:30:21 <zzo38> Did you read the recording of my game? (I am not requiring payment for you to read it)
04:30:45 <CakeProphet> I wasn't aware I had access to it.
04:31:57 <zzo38> http://zzo38computer.cjb.net/dnd/recording/level20.tex (In the same directory are "dungeonsrecording.tex" which is the macros, and "level20.dvi" which is the printout file)
04:33:56 <zzo38> You can find the \session heading which specifies the date that this game is played, while \chaptertitle is used for chapters organized according to story format instead.
04:34:13 <zzo38> Currently it has eight footnotes.
04:35:05 <zzo38> Do you like this? Do you like ___________?
04:37:06 <CakeProphet> not really sure how to view this stuff.
04:37:40 <zzo38> The .tex is just a text file, can be viewed in any program. DVI file is viewable in any DVI viewer program or printer.
04:38:19 <CakeProphet> said incorrect format when I tried to view the dvi
04:39:07 <CakeProphet> also don't know much about DND so the stats don't mean much to me.
04:39:09 <zzo38> Then view the .tex file
04:39:31 <CakeProphet> Also, the Doppelganger
04:39:56 <zzo38> It has the entire story text too, you do not need to know much about D&D to read that. The footnotes and character data is more having to do with the game to make it difficult to understand if you do not understand D&D, but the story text can be read by anyone (if you can read English story texts)
04:39:58 <CakeProphet> !wacro
04:39:58 <EgoBot> CVEBFHWL
04:40:09 <monqy> bad
04:40:46 <CakeProphet> zzo38: help(c) what is read.
04:41:06 <monqy> help(c)
04:41:06 <zzo38> CakeProphet: Yes, there is the doppelganger named Also, that is my brother's character so he made up that name. "Hello, my name is Clark." "I am Also." "O, you are also Clark?" "..."
04:41:19 <monqy> elliott: help(c)
04:41:31 <elliott> help
04:41:45 <CakeProphet> !help help
04:41:45 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
04:41:55 <CakeProphet> Gregor: help
04:41:58 <zzo38> CakeProphet: It is.
04:42:11 <monqy> @help help
04:42:11 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
04:43:12 <CakeProphet> zzo38: I'm not sure I'll get anything out of reading all of this. :/
04:43:43 <CakeProphet> except "Also is also a slave on Thesk island" = lol
04:44:02 <zzo38> Are you sure? Maybe you would notice mistakes having to do with story text. I am not very good at that kind of writing stuff. Of course, you can also learn a few things about D&D game from reading this, too.
04:44:30 * CakeProphet is fucking Kurt Vonnegut himself and master of all writtens.
04:45:01 <CakeProphet> well it kind of switches from third person to first person randomly
04:45:15 <CakeProphet> One day, a dwarf who was working in the mines decided to rescue both of us
04:45:16 <CakeProphet> slaves
04:45:24 <CakeProphet> us = first person
04:45:33 -!- pikhq_ has joined.
04:45:40 <zzo38> OK, thanks for noticing that.
04:45:41 <CakeProphet> and then goes back to being third person again.
04:45:50 -!- derrik_ has joined.
04:46:52 <CakeProphet> s/tracking device. Note that both of/tracking device, and both of/
04:47:19 <CakeProphet> the whole thing is kind of oddly worded but technically not incorrect I suppose.
04:47:25 <CakeProphet> or at least what I've read so far.
04:47:29 -!- pikhq has quit (Ping timeout: 240 seconds).
04:47:38 <zzo38> OK, I will take note of that in case I can correct that or someone can correct it. I will fix the "tracking device". OK I corrected that sentence now.
04:48:18 -!- derrik has quit (Ping timeout: 258 seconds).
04:48:32 -!- derrik_ has changed nick to derrik.
04:49:06 <CakeProphet> s/Now, Kjugobe suggested to put/Now, Kjugobe suggested putting/
04:49:15 <CakeProphet> though I'm not really sure if that's incorrect, it just sounds strange to me.
04:49:33 <zzo38> OK, I fixed that too.
04:50:21 <CakeProphet> I don't think there's any need for me to make suggestions honestly. It's not like you're writing a novel or anything.
04:50:30 <zzo38> Do you like this story? Is it interesting story that you like to read this kind of stuff? (Note: the \note{...} indicates footnotes. They are not part of the story text)
04:50:32 <CakeProphet> just recording what happened.
04:50:58 <CakeProphet> you should have used a \note{} to explain
04:51:03 <CakeProphet> for great humor.
04:51:44 <zzo38> CakeProphet: Well, I am recording what happened as well as trying to make it like writing a novel. But not for selling; just for reading by computer. You can print it in many modes to specify detail level; detail level 1 is mostly like a novel, while detail level 6 is everything.
04:52:09 <zzo38> CakeProphet: Use a \note{} to explain what, specifically do you mean?
04:52:35 <CakeProphet> \note{the \note{} indicates footnotes. they are not part of the story text}
04:53:18 <zzo38> O, like that. But the printout does not actually say \note
04:53:42 <CakeProphet> oh yeah I know I just meant in your sentence it would have been funny.
04:53:49 <CakeProphet> oh let me find something else...
04:54:17 <zzo38> O, you mean in my sentence on this IRC. Yes, in that case I agree with you it is funny way to do it I like it like that
04:54:25 <CakeProphet> while you're letting me correct you in stuff...
04:54:29 <CakeProphet> lemme find it.
04:56:09 <CakeProphet> 16:44:08: <zzo38> I think too many paragraphs begin with "Also"
04:56:22 <CakeProphet> s/^/Also, /
04:56:34 <CakeProphet> lolololololololol
04:56:40 <monqy> ok
04:56:43 <CakeProphet> > cycle "lo"
04:56:44 <lambdabot> "lololololololololololololololololololololololololololololololololololololo...
04:57:04 <CakeProphet> that is how funny I think that would be.
04:58:15 <monqy> ok
04:58:25 <CakeProphet> monqy is a bad.
04:58:32 <monqy> monqy is a bad.
04:58:35 <monqy> yep.
05:02:15 -!- zzo38 has left.
05:06:00 <evincar> Where is zzo from anyway? I'm occasionally suspicious he's a bot.
05:06:48 <elliott> die
05:06:52 <elliott> he is our hero
05:07:12 <elliott> this channel would be fucking unsalvagable without him
05:07:49 <monqy> zzo is amasing
05:07:53 <monqy> amaiznge
05:07:55 <monqy> amazing
05:08:05 <monqy> hlep
05:08:20 <evincar> Did I say being a bot would be a bad thing?
05:11:06 * CakeProphet is an hero.
05:11:36 <monqy> hi
05:11:46 -!- elliott has quit (Ping timeout: 264 seconds).
05:14:00 <CakeProphet> GNU Emacs comes with ABSOLUTELY NO WARRANTY
05:14:14 <CakeProphet> what if software /did/ come with absolutely warranties?
05:14:14 <evincar> Huh.
05:14:14 <monqy> oh no
05:14:16 <evincar> http://www.urbandictionary.com/define.php?term=zzo38
05:14:21 <evincar> Well this is interesting.
05:16:30 <CakeProphet> https://plus.google.com/117832052760789742441/posts
05:16:45 <CakeProphet> "HI IM A BIG DUDE FOR BIG PEOPLE" -- elliott hird
05:17:25 <evincar> You look like two sides of a strange rounded canyon.
05:18:01 <monqy> maybe I should get a gougle plusse sometime
05:18:09 <monqy> not sure what i would do with it
05:18:27 <evincar> I don't do anything with mine.
05:18:34 <evincar> Largely because I haven't made a video in a while.
05:18:40 <CakeProphet> I talk about all of my nerd projects to all of my non-nerd friends who basically don't pay attention.
05:18:43 <CakeProphet> it's fun.
05:18:45 <evincar> So I haven't told any of my subscribers to add me.
05:19:15 <monqy> the only friends I have it'd be pretty useless to google+
05:19:20 <evincar> CakeProphet: That's what my blog is for.
05:19:24 <monqy> or something like that
05:19:31 <evincar> Except I acknowledge that no one listens.
05:21:47 <CakeProphet> all I have is a livejournal, where I post pictures of me cutting myself.
05:21:58 <monqy> I don;t livejournal
05:22:11 <CakeProphet> I also write poems. -_;;
05:22:17 <monqy> hehehehe
05:23:47 <evincar> I didn't know LJ was still a thing.
05:23:51 <CakeProphet> HAHAH I LIED. JOKES ON YOU.
05:24:12 <monqy> ok
05:24:53 <CakeProphet> bahahahahaha
05:25:04 <CakeProphet> buh huh huh huh huh
05:25:05 <monqy> cake "easily amused" prophet
05:26:57 <CakeProphet> mon "help(c)" qy
05:28:34 <evincar> Hmm.
05:28:42 <evincar> Idea.
05:29:13 <evincar> Unix-style programs have one port for input and two ports for output, but all of these ports are one-dimensional.
05:29:36 <evincar> We should have 2D ports as well, for images and such.
05:29:47 <evincar> Just a thought.
05:29:53 <pikhq_> Won't work well with C.
05:29:57 <evincar> It'd be more useful in a graphical shell.
05:30:03 <evincar> Yeah, C = Unix.
05:30:06 <evincar> :(
05:30:06 <pikhq_> Or, really, any other bits of the stack.
05:30:28 <pikhq_> Too moronic to allow for any data structures other than char*.
05:30:59 <evincar> Meh. You *can* serialise everything.
05:31:08 <evincar> Obviously that's been working all along.
05:31:47 <evincar> Maybe I'll just make programs that open up file descriptors 3-13 and output 10 bytes to each if I want to write a 10x10 image. :P
05:31:50 <pikhq_> It's also utterly moronic.
05:32:10 <pikhq_> Yes, it technically works, but so does assembly.
05:32:36 <evincar> Yeah, so some higher-level language integration with the shell would be nice.
05:33:01 <CakeProphet> Haskshell
05:33:05 <evincar> If there were a consumer-quality Lisp-based OS, I'd go for it.
05:33:33 <evincar> Or any number of other things. Factor would be fine, or even something like Smalltalk.
05:33:57 <evincar> Guess I should team up with that guy who wanted to write a "Kay OOP" system.
05:34:07 <pikhq_> I hear Symbolics offered those. In the 80s.
05:34:27 <evincar> What you're saying is true.
05:34:36 <evincar> But I don't know if you're toying with me.
05:34:51 <pikhq_> No, being quite honest and depressed.
05:35:59 <evincar> What's got your gills down and brown, toothflake?
05:36:53 <pikhq_> EVERYTHING SUCKS
05:37:00 <pikhq_> Not just computers, EVERYTHING!
05:37:15 <evincar> Most people like things that suck.
05:37:26 <pikhq_> Most people suck.
05:37:40 <evincar> More or less.
05:39:01 <evincar> So I'm re-doing my web site.
05:39:17 <evincar> Going to get started on that programming language genome project.
05:39:21 <pikhq_> Remember, <head> and <body> make baby IESVS cry!
05:39:23 <evincar> I know there was some genuine interest here.
05:39:34 <Sgeo> IESVS?
05:39:58 <evincar> Sgeo: Jesus.
05:40:02 <pikhq_> I don't believe in miniscule letters, U, and J in Latin.
05:40:18 <evincar> pikhq_: Nor spaces. But maybe interpuncts.
05:40:31 <pikhq_> evincar: Interpuncts are a bit harder to type, sadly.
05:40:51 * Sgeo was thinking some bizarre version of Internet Explorer
05:41:08 <Sgeo> Welp, Internet Explorer version SVS is the Son of God. It's official.
05:41:20 <pikhq_> IESVS, now with more YHWH!
05:42:08 <evincar> pikhq_: Crap, just found out interpunct isn't in my compose map! This must be fixed.
05:42:17 <evincar> Lest I type • instead.
05:43:12 <pikhq_> I think the only one I can get at trivially is "・".
05:44:01 <pikhq_> Which is U+30FB, KATAKANA MIDDLE DOT
05:47:01 <evincar> Also, time to write a script for cat /usr/share/X11/locale/en_US.UTF-8/Compose | grep
05:47:09 <evincar> Because that shit's handy.
05:47:14 <evincar> And yes, I know, UUOC.
05:48:28 -!- derrik has quit (Quit: gone).
05:56:05 <CakeProphet> !wacro
05:56:06 <EgoBot> HNG
05:56:30 <monqy> awful
05:56:38 <CakeProphet> !wacro
05:56:39 <EgoBot> HIDAWSTS
05:57:11 <CakeProphet> !wacro
05:57:11 <EgoBot> ACCPP
05:57:33 <evincar> Well, you're getting closer?
05:57:35 <evincar> I think?
05:57:45 <CakeProphet> ...no, I haven't changed the program at all.
05:57:53 <evincar> Although with that HNG I think Ego had a hernia.
05:58:11 <CakeProphet> !wacro
05:58:11 <EgoBot> OWH
05:58:15 <evincar> Yep.
05:58:18 <evincar> Definitely injured.
05:58:46 <CakeProphet> !wacro
05:58:47 <EgoBot> STCDST
05:58:56 <CakeProphet> !wacro
05:58:56 <EgoBot> KDAS
05:59:04 <evincar> !wacro
05:59:04 <EgoBot> RAFR
05:59:11 <evincar> Hee.
05:59:14 <evincar> I am sated.
05:59:30 <fizzie> elliott-the-logreader: Regarding the reverse-context tree, doing it "the obvious way" is going to be just as fast for a fixed-length n-gram query (e.g. "what are all the 5-grams that begin 'argle garble blargle merf'"), but when they're arranged in the tree I mentioned, you can 1) easily have a variable-length n-gram model (just stop descending when you hit a leaf), and 2) do smoothing/interpolation without performing the corresponding 4-gram query ("what are t
05:59:31 <fizzie> he 4-grams that begin 'garble blargle merf'"), because the answer to that is just the parent node of where you were.
06:00:27 <CakeProphet> !wacro
06:00:28 <EgoBot> BDD
06:00:52 <fizzie> (Of course in fungot's case it's not about the speed, it's about the amount of code needed for sampling, since writing it takes time.)
06:00:52 <fungot> fizzie: ya i hav got one downloading the full match it up. love u so much. sorry. will see in half an hour. thennow i'm going home le. retarded.
06:00:56 <monqy> CakeProphet: absolutely miserable
06:01:29 <CakeProphet> fungot
06:01:29 <fungot> CakeProphet: there is no. yellow is yes. i tell. stupid hear after i wont talk to you:-.
06:01:59 <Sgeo> What style is this?
06:02:12 <monqy> sms?
06:02:17 <fizzie> Sgeo: The SMS one, I'd guess.
06:02:18 <fizzie> ^style
06:02:18 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms* speeches ss wp youtube
06:02:20 <fizzie> Yes.
06:02:50 <CakeProphet> ^style c64
06:02:50 <fungot> Selected style: c64 (C64 programming material)
06:02:54 <CakeProphet> fungot
06:02:55 <fungot> CakeProphet: communication registers: a, x, its starting address for the ieee bus card timeout flag
06:03:04 <fizzie> I think that one suffers from poor preprocessing.
06:03:20 <fizzie> There's so much code examples and tables and that sort of stuff in the material.
06:03:52 <CakeProphet> ^style jargon
06:03:53 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
06:03:58 <CakeProphet> fungot
06:03:58 <fungot> CakeProphet: dump always does the young heroine, unruffled amidst the snarls and snaps of hunters from 65myears ago, but since it would be
06:04:05 <fizzie> That one's just weird.
06:04:08 <fizzie> ^style c64
06:04:08 <fungot> Selected style: c64 (C64 programming material)
06:04:09 <fizzie> fungot: So how do I... let's say, configure the VIC-II so that I get an interrupt at the hblank at the middle of the frame?
06:04:09 <fungot> fizzie: expressions are: none note: the read/ write line on the screen is 208. since this will minimize digital noise at the end of this book in appendix e lists the program is to read.
06:04:40 <fizzie> It's possibly not very useful for a programmer.
06:05:02 <quintopia> ^style youtube
06:05:02 <fungot> Selected style: youtube (Some YouTube comments)
06:05:08 <quintopia> fungot!
06:05:08 <fungot> quintopia: strange but very good. john moore hasn't really proven himself as a kid i have played the game! :) so funny
06:05:23 <fizzie> That one suffers from a rather small dataset, but otherwise it does sound quite youtubey.
06:05:37 <quintopia> expand the dataset!
06:05:53 <fizzie> fungot: So how about them airplanes? (It's made from the comments of like three videos, one of which was a plane crash, or something.)
06:05:54 <fungot> fizzie: finally a snow mobile? gfto this game! i love those commercials but you obviously can't be serious by your own advice verify your information before posting stupid comments. this would never make it true that it's a throwback to techno pop.
06:06:02 <CakeProphet> you could have the youtube dataset randomly select several thousand youtube videos every month or so.
06:06:18 <fizzie> It's not my dataset, it was donated by asiekierka. I'm not sure I'm interested enough to make it "for reals".
06:07:12 <fizzie> ^style fisher
06:07:12 <fungot> Selected style: fisher (Fisher corpus of transcribed telephone conversations)
06:07:18 <fizzie> fungot: Hullo can you hear me huh?
06:07:18 <fungot> fizzie: in her car
06:07:26 <fizzie> fungot: In her car what?
06:07:26 <fungot> fizzie: uh and fight for everything they need to be really good noise
06:07:38 <fizzie> fungot: You're not really making much sense here.
06:07:39 <fungot> fizzie: so i mean i can be near someone who smokes and i can see maybe the school not actually stocking certain books in their library
06:07:49 <fizzie> "A-ha."
06:07:56 <Patashu> ^style homestuck
06:07:57 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
06:08:05 <Patashu> fungot: Sword
06:08:05 <fungot> Patashu: of apocalypse your thoughts on these developments in your gamefaqs walkthrough/ journal. it can only be a moment.
06:08:09 <fizzie> That's a bit of work-in-progress still.
06:08:24 <Patashu> fungot: worthless piece of shit
06:08:24 <fungot> Patashu: john, it appears we have reached an impasse
06:08:27 <Patashu> haha
06:08:39 <fizzie> Probably a straight quote, sadly. :p
06:08:49 <Patashu> fungot: fungot
06:08:49 <fungot> Patashu: the life in the water. dave's package contained a modified with rose's knitting. he gave rose a knitting set, the fabled to live on the green moon. they deemed the code which would inevitably be used to create becquerel. this animal must be a trick, interestingly enough, pertaining to punching cards, you've been contemplating what could it be the same. trolls think fashion is stupid. stop doing nothing but wondering wh
06:12:15 <CakeProphet> 5~3~3~3~3~3~5~3~5~
06:13:48 <fizzie> Coincidentally enough, fungot doesn't actually use the n-gram model for ending the sentence in the usual way (by just generating until it generates an end-of-sentence-token). It wasn't quite controllable enough, so I just flagged all (n-1)-grams that have occurred at the end of a sentence with a "can-stop" flag, and then for each such place it has a probability of stopping which depends on the length of the generated stuff.
06:13:48 <fungot> fizzie: a not boring way, build a way up the echeladder a while. until you woke up. she went this way. the cost a fortune
06:16:11 <CakeProphet> so it just randomly selects n-grams from the dataset?
06:17:05 <CakeProphet> fungot
06:17:06 <fungot> CakeProphet: to, uhhh.......
06:17:17 <Patashu> does fungot look at your input?
06:17:17 <fungot> Patashu: at that point you would essentially the same as the word " crazy"
06:17:21 <Patashu> or just start generating when it hears its name
06:17:43 <fizzie> Patashu: Unfortunately not, because it'd need to map your input into tokens, and I haven't implemented that in Befunge.
06:17:52 <evincar> Hay guaiyz, should the programming language genome thing have user accounts?
06:18:04 <evincar> I figure if it does I'll just use OpenID and be done with it.
06:18:10 <fizzie> CakeProphet: Well, yes, based on the previously generated context, of course. In the "usual" way.
06:18:29 <CakeProphet> lolwat
06:19:50 <fizzie> Watlol?
06:20:32 <evincar> I guess my real question is: would you expect to *need* to log in to this thing? It is sort of wiki-like, after all.
06:20:51 <evincar> And that raises the question of what the hell people would do with a user page if they had one.
06:20:58 <evincar> Maybe have points?
06:21:01 <evincar> And badges?
06:21:06 <evincar> 'Cheevements?
06:21:26 <evincar> \(°_o)/
06:22:01 <evincar> I can't say help(C) because help(C) is (C) and (C) is (C).
06:23:40 <Patashu> 1) Let people make accounts 2) store passwords in plaintext 3) enjoy your credit card fraud opportunities
06:26:17 <evincar> Trollolol.
06:26:32 <evincar> Oh wait.
06:26:34 <evincar> Tripcodes.
06:26:36 <evincar> Derp.
06:26:42 <evincar> Everyone likes tripcodes.
06:27:03 <evincar> And it's already been joked in here that this thing is an imageboard but not for images.
06:36:05 <monqy> hi
06:36:55 <evincar> monqy: hi how do i tripcode
06:36:58 <evincar> assist
06:37:04 <Patashu> what's a tripcode
06:37:28 <monqy> evincar: http://en.wikipedia.org/wiki/Tripcode hjelp
06:37:46 <evincar> Patashu: No-registration authentication. Basically just a hash of a password that gets tacked on to your username so you can be identified if necessary.
06:38:24 <Patashu> Oh, that's clever
06:38:25 <evincar> monqy: I'm looking for something...better.
06:38:26 <Patashu> Never seen that before
06:38:37 <evincar> Then you never go on imageboards, I take it.
06:38:52 <evincar> Any of the chans.
06:39:02 <Patashu> nope
06:39:17 <monqy> I only just heard of tripcodes last night myself
06:39:21 <monqy> I forget how
06:39:25 <CakeProphet> nubs
06:39:58 <CakeProphet> > nub "these guys are"
06:39:59 <lambdabot> "thes guyar"
06:41:07 <evincar> They're actually frowned upon for the most part.
06:41:26 <evincar> But I don't care.
06:41:28 <CakeProphet> nub "jumps quick lazy fox brown over dog the the"
06:41:35 <CakeProphet> > nub "jumps quick lazy fox brown over dog the the"
06:41:36 <lambdabot> "jumps qicklazyfoxbrwnvedgth"
06:41:48 <evincar> If you want the option to identify yourself, so be it.
06:41:50 <Patashu> they'd be easy to crack actually
06:41:52 <Patashu> if the algorithm is public
06:41:56 <olsner> > sort $ nub "jumps quick lazy fox brown over dog the the"
06:41:56 <lambdabot> " abcdefghijklmnopqrstuvwxyz"
06:42:04 <Patashu> just brute force attempts on your botnet until you get a match
06:42:36 <evincar> True.
06:42:41 <evincar> But I don't know how much I care.
06:44:16 <evincar> The gist of the site is: add/flag language, add/remove/flag/suggest gene.
06:44:27 <evincar> I don't want to have too much spam to deal with.
06:44:41 <evincar> But then again I'm not sure who'd spam a random informational site for programmers.
06:45:09 <Patashu> if it's built custom then it probably won't get any spam
06:45:40 <evincar> Maybe I'll just throw my hands up.
06:45:58 <evincar> And say "anyone can edit; if you see spam, delete it".
06:46:39 <evincar> In that case, all edits will just be anonymous.
06:46:57 <evincar> Still, there needs to be some sanity in the genes.
06:47:12 <evincar> I'll probably moderate just gene suggestions.
06:52:11 <evincar> Can anyone suggest a better name than "Programming Language Genome Project"?
06:52:21 <evincar> Or a better acronym than "PLGP"? :P
06:53:06 <CakeProphet> !wacro
06:53:07 <EgoBot> SPO
06:53:23 <evincar> The name of that one mouse from "Housepets!"?
06:53:32 <CakeProphet> !wacro
06:53:33 <EgoBot> WSESTT
06:53:34 <CakeProphet> !wacro
06:53:34 <CakeProphet> !wacro
06:53:35 <CakeProphet> !wacro
06:53:35 <EgoBot> BGMBRD
06:53:35 <EgoBot> HTSM
06:53:35 <EgoBot> DICSUIF
06:53:46 <evincar> Dicks you if.
06:53:55 <evincar> How helpful.
06:54:13 <monqy> appaling
06:54:30 <evincar> A-pailing.
06:54:57 <monqy> a peeling
06:54:59 <fizzie> Genome Project for Languages of Programming, the GPL-pee.
06:55:38 <monqy> how will that even work
06:55:56 <fizzie> You pee, and then everyone is free to modify that, as long as they pee too in public.
06:56:41 <fizzie> Also you can maybe have some invariant sections, I don't know.
07:02:36 <CakeProphet> !wacro
07:02:38 <EgoBot> EHPHC
07:03:24 <CakeProphet> !wacro
07:03:24 <EgoBot> BHR
07:03:26 <evincar> EPIC is a Programming-language Index for Coders?
07:03:27 <CakeProphet> !wacro
07:03:27 <EgoBot> BARS
07:03:41 <evincar> :O
07:04:05 <evincar> I'm pretty sure I can't escape bad acronyms.
07:04:08 -!- Lymee has quit (Read error: Operation timed out).
07:04:15 <evincar> So I should probably just avoid them.
07:04:35 <CakeProphet> !wacro
07:04:36 <EgoBot> ECBM
07:04:50 <evincar> After all, it's a Programming Language Genome Project, and nothing else.
07:05:19 <monqy> i prefered gpl pee
07:05:33 <fizzie> The pee of champions!
07:05:49 <CakeProphet> > replicateM 4 "plgp"
07:05:49 <lambdabot> ["pppp","pppl","pppg","pppp","pplp","ppll","pplg","pplp","ppgp","ppgl","ppg...
07:05:57 <CakeProphet> er...
07:06:12 <CakeProphet> > permutations "plgp"
07:06:12 <lambdabot> ["plgp","lpgp","glpp","lgpp","gplp","pglp","pglp","gplp","glpp","plgp","lpg...
07:06:29 <CakeProphet> > nub $ permutations "plgp"
07:06:29 <lambdabot> ["plgp","lpgp","glpp","lgpp","gplp","pglp","pplg","plpg","lppg","ppgl","pgp...
07:07:00 <evincar> GePPLa. The Genome Project for Programming Languages.
07:07:07 -!- copumpkin has quit (Ping timeout: 260 seconds).
07:07:25 <evincar> Geproprolang.
07:07:28 <fizzie> GULP, the Genome Undertaking for the Languages of Programming.
07:07:32 -!- copumpkin has joined.
07:07:47 <evincar> Can't sleep? Incontinent? Someone suck out your eyes with a powerful hoover? You need Geproprolang!
07:08:37 <evincar> fizzie: That's surprisingly not terrible.
07:08:39 <CakeProphet> son I am proud.
07:09:50 <CakeProphet> > (`replicateM` words "son I am proud") =<< [3..]
07:09:50 <lambdabot> [["son","son","son"],["son","son","I"],["son","son","am"],["son","son","pro...
07:10:16 <CakeProphet> > join $ (`replicateM` words "son I am proud") =<< [3..]
07:10:16 <lambdabot> ["son","son","son","son","son","I","son","son","am","son","son","proud","so...
07:10:34 <CakeProphet> > join . join $ (`replicateM` words "son I am proud") =<< [3..]
07:10:35 <lambdabot> "sonsonsonsonsonIsonsonamsonsonproudsonIsonsonIIsonIamsonIproudsonamsonsona...
07:11:57 <CakeProphet> > join . join . drop 40 $ (`replicateM` words "son I am proud") =<< [3..]
07:11:58 <lambdabot> "amamsonamamIamamamamamproudamproudsonamproudIamproudamamproudproudproudson...
07:24:35 -!- zzo38 has joined.
07:29:50 <zzo38> I realized that when designing CPU instruction sets, sometimes I have come up with things similar to VAX such as that if you write to a literal, you end up modifying the instruction, and setting the flags.
07:33:15 <zzo38> I have once designed an electronic circuit which can do CPU, there is only one instruction, which is transfer register and jump. The different registers have different side effects. Instructions must be aligned; the other bits of the PC register are flags that are manipulated with every jump.
07:34:11 <CakeProphet> > nub . permutations $ "help"
07:34:12 <lambdabot> ["help","ehlp","lehp","elhp","lhep","hlep","pleh","lpeh","leph","pelh","epl...
07:34:29 <zzo38> I think I also had one register which is XORed by the PC register to determine what the actual address of the next instruction will be.
07:34:31 <CakeProphet> > unwords . nub . permutations $ "help"
07:34:32 <lambdabot> "help ehlp lehp elhp lhep hlep pleh lpeh leph pelh eplh elph phel hpel hepl...
07:37:53 <zzo38> I had code segment and data segment, which are used as the high sixteen bits for code addresses and for data addresses.
07:38:08 <Sgeo> > length . nub . permutations $ "help"
07:38:09 <lambdabot> 24
07:38:16 <Sgeo> > length . permutations $ "help"
07:38:17 <lambdabot> 24
07:38:28 <Sgeo> > length . permutations $ "hhhh"
07:38:30 <lambdabot> 24
07:38:34 <zzo38> I have never tested my design, however.
07:38:58 <Sgeo> > length . nub . permutations $ "hhhh" -- 1. I'd feel awkward not including it though
07:38:59 <lambdabot> 1
07:39:05 <Sgeo> Night
07:40:19 <CakeProphet> I'm not really following this very well: http://blog.ezyang.com/2011/08/joseph-and-the-amazing-technicolor-box/
07:43:35 <zzo38> I especially like the [[User:Ian]] article in esolang wiki.
08:07:05 <CakeProphet> > (`replicateM` words "const & const &") =<< [3..]
08:07:06 <lambdabot> [["const","const","const"],["const","const","&"],["const","const","const"],...
08:07:15 <CakeProphet> > unwords . join $ (`replicateM` words "const & const &") =<< [3..]
08:07:16 <lambdabot> "const const const const const & const const const const const & const & co...
08:07:28 <CakeProphet> examples of common idioms in C++
08:07:36 <evincar> Derp.
08:08:18 <CakeProphet> > unwords . join $ (`replicateM` words "const & const &") =<< [1..]
08:08:19 <lambdabot> "const & const & const const const & const const const & & const & & & cons...
08:16:31 -!- zzo38 has quit (Remote host closed the connection).
08:32:42 <CakeProphet> > null (undefined:undefined)
08:32:43 <lambdabot> False
08:32:54 <CakeProphet> > null undefined
08:32:55 <lambdabot> *Exception: Prelude.undefined
08:36:25 -!- copumpkin has quit (Ping timeout: 250 seconds).
08:36:50 -!- copumpkin has joined.
08:43:16 <evincar> Welcome to the world of laziness.
08:43:43 <monqy> yawn
10:05:48 -!- evincar has quit (Quit: leaving).
10:09:41 -!- azaq23 has quit (Quit: Leaving.).
10:11:08 -!- GreaseMonkey has quit (Quit: The Other Game).
10:27:41 -!- Phantom_Hoover has joined.
10:28:55 <Patashu> 'permutations' is a function I soooo wish existed in C# etc
10:28:56 <Patashu> ;_;
10:29:00 <Patashu> or does it?
10:29:58 -!- monqy has quit (Quit: hello).
10:34:09 <fizzie> Patashu: C++ STL <algorithm> has std::next_permutation.
10:34:23 <fizzie> Rearranges a list to the next permutation.
10:34:43 <fizzie> Well, a collection. A container. A something with bidirectional iterators.
10:35:09 <fizzie> There is also the corresponding "prev_".
10:35:18 <Patashu> o_o
10:35:51 <Patashu> how did I miss this ;_;
10:38:41 <fizzie> java.util.Collections, the obvious place for it, doesn't. Don't think C# has one either.
11:25:49 -!- sebbu has quit (Ping timeout: 240 seconds).
11:26:22 -!- Lymee has joined.
11:34:05 -!- sebbu has joined.
11:34:05 -!- sebbu has quit (Changing host).
11:34:05 -!- sebbu has joined.
11:36:35 -!- Vorpal has joined.
11:37:02 -!- copumpkin has quit (Ping timeout: 252 seconds).
11:37:27 -!- copumpkin has joined.
11:41:19 -!- oerjan has joined.
11:42:08 <oerjan> 23:57:28 <CakeProphet> > unwords . nub . permutations $ "help"
11:42:09 <oerjan> 23:57:30 <lambdabot> "help ehlp lehp elhp lhep hlep pleh lpeh leph pelh eplh elph phel hpel hepl...
11:42:15 <oerjan> i suppose that was inevitable.
11:50:51 -!- boily has joined.
11:51:06 <oerjan> 02:57:00 <fizzie> Patashu: C++ STL <algorithm> has std::next_permutation.
11:51:06 <oerjan> 02:57:15 <fizzie> Rearranges a list to the next permutation.
11:51:28 <oerjan> that cannot be a pure function can it, i doubt it would get through all permutations otherwise.
11:51:44 <fizzie> C++, pure function?
11:51:54 <oerjan> i mean, depending only on the list input
11:52:35 <fizzie> It just mutates the list to be the (lexicographically) next permutation, based on the elements' comparison operator, or a custom comparator type.
11:52:56 <oerjan> actually it obviously cannot, since S_n is not cyclic for n large enough
11:53:02 <fizzie> And returns true, except if it's the "largest" permutation, it goes to the "smallest" one, and returns false.
11:53:09 <oerjan> ok so depends on an element order then
11:53:16 <fizzie> Yes, it does.
11:54:16 -!- Slereah has quit (Ping timeout: 252 seconds).
11:54:43 <Patashu> you can't draw a graph linking every permutation? why not?
11:54:47 -!- GuestIceKovu has joined.
11:54:58 <Patashu> you need to know where you started?
11:56:14 <oerjan> Patashu: i mean with opaque elements that cannot be compared. because then the new list must always be a fixed permutation of the old one.
11:56:35 <Patashu> you'd -hope- they can be compared
11:56:55 <oerjan> ...haskell's permutations works even if they cannot.
11:57:28 <oerjan> > length . permutations $ replicate 5 undefined
11:57:30 <lambdabot> 120
11:59:25 <fizzie> You could say it's [a] -> [[a]], as opposed to C++'s Ord a => [a] -> [a]. If you were feeling silly enough.
12:04:37 <fizzie> > let nextPermutation l = head . tail . dropWhile (/= l) . cycle . sort $ permutations l in nextPermutation [1,2,3,4,5]
12:04:39 <lambdabot> [1,2,3,5,4]
12:04:42 <fizzie> The best implementation?
12:07:53 <oerjan> it _might_ not be ideal speedwise
12:11:12 <Patashu> @t iterate
12:11:12 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
12:11:35 <Patashu> > let nextPermutation l = head . tail . dropWhile (/= l) . cycle . sort $ permutations l in iterate nextPermutation [1,2,3,4,5]
12:11:37 <lambdabot> [[1,2,3,4,5],[1,2,3,5,4],[1,2,4,3,5],[1,2,4,5,3],[1,2,5,3,4],[1,2,5,4,3],[1...
12:11:49 <Patashu> > let nextPermutation l = head . tail . dropWhile (/= l) . cycle . sort $ permutations l in iterate nextPermutation [1,2,3]
12:11:50 <lambdabot> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1],[1,2,3],[1,3,2],[2,1,3],[2...
12:11:55 <Patashu> seems to work
12:13:41 <Patashu> ah I get how it works
12:13:50 <oerjan> > let nextPermutation l = head . tail . dropWhile (/= l) . cycle . sort $ permutations l in iterate nextPermutation [1,2,3,4,5,6,7,8]
12:13:54 <lambdabot> mueval-core: Time limit exceeded
12:13:57 <Patashu> ouch
12:14:02 <oerjan> thought so :P
12:16:16 <fizzie> > let t = [1,2,3,4,5]; nextPermutation l = head . tail . dropWhile (/= l) . cycle . sort $ permutations l in sort (t : (takeWhile (/= t) . tail $ iterate nextPermutation t)) == (sort . permutations) t
12:16:17 <lambdabot> True
12:16:21 <fizzie> See, you do get them all.
12:25:19 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in iterate nextPerm [1,2,3,4,5]
12:25:19 <lambdabot> Couldn't match expected type `[a]'
12:25:19 <lambdabot> against inferred type `Data.Eith...
12:25:24 <oerjan> oops
12:25:46 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in nextPerm [1,2,3,4,5]
12:25:48 <lambdabot> Right [1,2,3,5,4]
12:26:56 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in iterate (either id id . nextPerm) [1,2,3,4,5]
12:26:58 <lambdabot> [[1,2,3,4,5],[1,2,3,5,4],[1,2,4,3,5],[1,2,4,5,3],[1,2,5,3,4],[1,2,5,4,3],[1...
12:27:20 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in iterate (either id id . nextPerm) [1,2,3,4,5,6,7,8]
12:27:22 <lambdabot> [[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,8,7],[1,2,3,4,5,7,6,8],[1,2,3,4,5,7,8,6],[1...
12:27:27 <oerjan> looks good
12:28:03 -!- derrik has joined.
12:28:52 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in unfoldr (either (const Nothing) (id &&& id) . nextPerm) [1,2,3]
12:28:53 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe a'
12:28:53 <lambdabot> against inferred ...
12:29:02 <fizzie> Yes, and it's even conceptually closer to the C++ version, since it also indicates the wraparound.
12:29:10 <oerjan> that was the idea
12:29:47 <oerjan> oh
12:30:39 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in unfoldr (either (const Nothing) ((Just.).(id &&& id)) . nextPerm) [1,2,3]
12:30:40 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe a'
12:30:40 <lambdabot> against inferred ...
12:30:46 <oerjan> urk
12:30:55 <oerjan> :t (Just.).(id &&& id)
12:30:55 <lambdabot> forall b. b -> (b, Maybe b)
12:31:01 <oerjan> oops
12:31:35 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in unfoldr (either (const Nothing) (Just.(id &&& id)) . nextPerm) [1,2,3]
12:31:36 <lambdabot> [[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
12:31:50 <oerjan> oops. oh well.
12:31:53 <Patashu> that's a hell of a way to use the function XD
12:32:27 <oerjan> :t isLeft
12:32:28 <lambdabot> Not in scope: `isLeft'
12:33:10 <fizzie> How come plain ":t" doesn't work in a query?
12:34:55 <oerjan> > let nextPerm [] = Left []; nextPerm (x:xs) = (case nextPerm xs of Right ys -> Right (x:ys); Left ys -> case span (< x) ys of (_,[]) -> Left (ys++[x]); (zs,z:zss) -> Right (z:zs++x:zss)) in takeWhile isJust . iterate (either (const Nothing) (Just . nextPerm)) $ Just [1,2,3]
12:34:55 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe a'
12:34:55 <lambdabot> against inferred ...
12:35:00 <oerjan> bah
12:35:05 <oerjan> too much work
12:35:08 <oerjan> fizzie: no idea
12:41:08 -!- sllide has joined.
12:47:21 -!- derrik_ has joined.
12:47:32 -!- derrik_ has quit (Client Quit).
12:47:56 -!- derrik_ has joined.
12:49:47 -!- derrik has quit (Ping timeout: 258 seconds).
12:49:55 -!- derrik_ has changed nick to derrik.
12:58:41 -!- copumpkin has quit (Ping timeout: 245 seconds).
12:59:05 -!- copumpkin has joined.
13:03:41 -!- augur has joined.
13:12:51 -!- augur has quit (Ping timeout: 245 seconds).
13:16:20 -!- Taneb has joined.
13:16:32 <Taneb> Hello
13:17:58 <oerjan> hello, you look distinctively unkindled
13:18:00 <Taneb> How are we all help
13:18:25 <oerjan> we are all doomed
13:18:33 <Taneb> No I just couldnt be bothered to put that in
13:18:36 <oerjan> so, business as usual
13:18:43 <oerjan> oh
13:20:21 <Taneb> I got my GCSE reults yesterday
13:20:36 <Taneb> They were... very neat
13:21:02 <Taneb> Two A stars two As two Bs and Two Cs
13:22:46 -!- oerjan has quit (Quit: So tired).
13:23:34 <fizzie> A-star is like A but with a footnote?
13:24:28 <Phantom_Hoover> Taneb, did you attach a handle to your Kindle.
13:24:29 <Taneb> It is the top decile
13:25:01 <Taneb> That would be Kindlehandled
13:25:40 <Taneb> But,almost
13:26:36 -!- GuestIceKovu has changed nick to Slereah.
13:26:42 <Phantom_Hoover> fizzie, A* is what they introduced because the English haven't got the hang of this "preventing rampant grade inflation" thing.
13:27:28 <Phantom_Hoover> (In Scotland, grades are defined entirely in terms of percentiles.)
13:27:29 <fizzie> Next, the A☄.
13:27:41 <Phantom_Hoover> The A meteor?
13:27:52 <fizzie> Right. It's like the next step from a star.
13:27:59 <fizzie> A star that shoots.
13:28:30 <Phantom_Hoover> Yes. That is how it works.
13:28:31 <fizzie> Or possibly A*, A⁑ and A⁂.
13:29:55 -!- Taneb has quit (Ping timeout: 252 seconds).
13:30:12 <fizzie> All the stars must've been too much for the Kindel.
13:30:24 <Phantom_Hoover> A*, A ░, A§.
13:31:52 <fizzie> A⁂͙̽͘. (Disclaimer: might not work right in a monospace thing.)
13:32:19 -!- Taneb|Kindle has joined.
13:32:40 <Taneb|Kindle> That's better
13:32:46 <Phantom_Hoover> Taneb|Kindle, what were the A*s in?
13:33:02 <Taneb|Kindle> Maths and Physics
13:33:22 <fizzie> Oh you silly browser. "javascript: and data: URIs typed or pasted in the address bar are disabled to prevent social engineering attacks. Developers can enable them for testing purposes by toggling the "noscript.allowURLBarJS" preference."
13:34:58 <Taneb|Kindle> Which browser?
13:35:39 <fizzie> FF3.6.18. (This is at work.)
13:35:58 <Taneb|Kindle> OK
13:36:28 <Taneb|Kindle> I use mainly Chrome and recently the Kindle browser
13:36:51 <Taneb|Kindle> Which annoyingly lacks tabbed browsing
13:37:47 <Taneb|Kindle> I wonder what framework it uses...
13:38:18 <Taneb|Kindle> Too quick and too non-Microsoft to be Trident
13:39:11 <fizzie> It's an ARM slate, isn't it? I wouldn't think Trident is even portable to anything non-Windows.
13:40:36 <Taneb|Kindle> Maybe it is an in-ouse developement by Amazon
13:40:37 <fizzie> "Kindle’s new web browser is based on WebKit to provide a better web browsing experience. Now it’s easier than ever to find the information you’re looking for right from your Kindle. Experimental web browsing is free to use over 3G or Wi-Fi." -- http://www.kindleincolor.com/kindle-browser/ when speaking of the Kindle 3.
13:41:18 <Taneb|Kindle> WebKit it is
13:41:45 <fizzie> WebKit here, WebKit there, WebKit everywhere.
13:45:08 <Phantom_Hoover> WebKit, WebKit everywhere, nor any drop to drink!
13:48:02 <Taneb|Kindle> I wonder how possible it would be to make a web browser in, say, Befunge-98 + PSOX
13:48:35 <Phantom_Hoover> SHH DON'T MENTION THE P-WORD
13:48:46 <Phantom_Hoover> For one thing, Befunge-98 has its own way of doing that kind of thing.
13:49:02 <Taneb|Kindle> Oh yes
13:49:11 -!- MSleep has changed nick to MDude.
13:49:54 <Taneb|Kindle> So, possible
13:49:58 <fizzie> Don't say the P-word, you'll awaken the sleeping beast.
13:50:13 <fizzie> I was supposed to add a HTTP client to fungot for fetching URLs, but never really got that done.
13:50:13 <fungot> fizzie: for a while it was frustrating. she's a huge culprit was. you can still be a way that it shakes is the same. trolls think fashion is stupid. stop doing nothing but wondering what could it be the same as the word " crazy"
13:51:57 <Phantom_Hoover> Taneb|Kindle, wait did you witness the glory of Homestuck Mode.
13:52:30 <Taneb|Kindle> ...Possib
13:52:33 <Taneb|Kindle> ly
13:53:02 -!- derrik has quit (Ping timeout: 258 seconds).
13:53:04 <Taneb|Kindle> If you are talking about old fungie there,then yes
13:53:08 <fizzie> IMPOSSIBLATOR.
13:54:05 <Taneb|Kindle> If you are talking abou a specif fungot moment then no
13:54:05 <fungot> Taneb|Kindle: the one who got you killed him for it? can't we say it, were all formerly the white text guy. you are sort of spectacular fucking jackknife off the loop, stable or otherwise.
13:56:25 <Taneb|Kindle> I am going eexploring bye
13:56:37 <Phantom_Hoover> Is that like exploring?
13:56:39 <fizzie> Go spelunking.
13:56:55 <Phantom_Hoover> fizzie, I don't think there are any caves in Northumberland.
13:57:13 <Phantom_Hoover> OH WAIT NO: http://en.wikipedia.org/wiki/Category:Caves_of_Northumberland
13:57:19 <fizzie> North UNDERland, certainly it's made out of caves.
13:57:58 <fizzie> "Cateran Hole is a circa 45m length cave set in the Gritstone of Cateran Hill in Northumberland. It lies about 4 miles due north of Eglingham, and can be reached by lining up the tall mast behind the farm with the left-hand end of the wood to the side of the Quarry House farm (to the north of the cave), then walking on this bearing."
13:58:01 <fizzie> I like the directions.
13:58:08 <fizzie> "Yeah, you know, the tall mast behind the farm."
13:58:34 <Phantom_Hoover> You underestimate the scarcity of notable things in Northumberland.
13:58:45 <Phantom_Hoover> The tall mast behind the farm is probably a beacon to all around.
14:00:10 -!- coppro has quit (Ping timeout: 240 seconds).
14:00:14 -!- coppro has joined.
14:00:34 -!- MDude has quit (Ping timeout: 240 seconds).
14:00:43 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
14:00:52 -!- MDude has joined.
14:02:57 -!- iamcal has quit (Ping timeout: 240 seconds).
14:03:04 -!- iamcal has joined.
14:03:14 -!- augur has joined.
14:05:57 <Patashu> Question, when you see stuff like (This is implemented using C's pow(3) function, which actually works on doubles internally.) - what is the (3)?
14:06:03 <Patashu> I see this a lot when talking about unix
14:06:25 -!- derrik has joined.
14:18:58 <Patashu> Wow, perl has a unary +
14:21:56 <Phantom_Hoover> Patashu, it's the man section.
14:22:15 <Phantom_Hoover> man pages refer to other pages as page(section).
14:22:19 <Phantom_Hoover> 3 is libraries.
14:23:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:29:55 -!- coppro_ has joined.
14:32:16 <fizzie> Used like "man 3 printf", to distinguish it from printf(1), the shell command.
14:34:11 <Patashu> so is it just, the first one is numbered 1, the second function with the same name is numbered 2 and so on?
14:35:08 -!- coppro has quit (*.net *.split).
14:35:08 -!- pikhq_ has quit (*.net *.split).
14:35:08 -!- quintopia has quit (*.net *.split).
14:36:16 <Phantom_Hoover> Patashu, no.
14:36:44 <Phantom_Hoover> 1 is shell commands, 2 is system calls, 3 is libraries, I forget what 4, 5 and 6 are, 7 is miscellanea, 8 is root commands.
14:37:35 <Patashu> OOOH
14:37:37 <Patashu> thank you thank you!
14:37:41 <Patashu> I have to write this down
14:37:53 <Phantom_Hoover> `man man
14:37:57 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
14:38:15 <Phantom_Hoover> On my system, that gives:
14:38:16 <Phantom_Hoover> 1 Executable programs or shell commands
14:38:16 <Phantom_Hoover> 2 System calls (functions provided by the kernel)
14:38:16 <Phantom_Hoover> 3 Library calls (functions within program libraries)
14:38:16 <Phantom_Hoover> 4 Special files (usually found in /dev)
14:38:16 <Phantom_Hoover> 5 File formats and conventions eg /etc/passwd
14:38:18 <Phantom_Hoover> 6 Games
14:38:20 <Phantom_Hoover> 7 Miscellaneous (including macro packages and conven‐
14:38:22 <Phantom_Hoover> tions), e.g. man(7), groff(7)
14:38:24 <Phantom_Hoover> 8 System administration commands (usually only for root)
14:38:26 <Phantom_Hoover> 9 Kernel routines [Non standard]
14:43:13 -!- pikhq_ has joined.
14:43:13 -!- quintopia has joined.
14:54:17 -!- copumpkin has joined.
14:56:03 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:57:54 -!- mycrofti1 has changed nick to mycroftiv.
15:58:35 -!- BeholdMyGlory has joined.
16:02:19 -!- FireFly has joined.
16:02:30 -!- copumpkin has quit (Ping timeout: 252 seconds).
16:09:36 -!- Wamanuz has joined.
16:15:07 -!- copumpkin has joined.
16:20:50 -!- variable has joined.
16:36:55 -!- kwertii has quit (Quit: kwertii).
16:44:30 <Phantom_Hoover> "During the 1980s Yossi and Avi Piamenta recorded traditional Jewish wedding lyrics to the tune of the song. The name of this song is Asher Bara Sasson ve'Simcha. It is often played at Orthodox Jewish weddings and celebrations." — WP page on Down Under
16:44:32 <Phantom_Hoover> whaaaaaaat
16:44:36 <Phantom_Hoover> I mean
16:44:41 <Phantom_Hoover> who thinks
16:45:42 <Phantom_Hoover> "Australian patriotic song — the perfect tune for my Jewish wedding!"
17:22:50 <Gregor> Sounds legit.
17:25:05 -!- MDude has quit (Read error: Connection reset by peer).
17:25:30 <CakeProphet> all of the ngram data is close to 10 GBs
17:25:37 <CakeProphet> 1gram I mean
17:27:06 <CakeProphet> < Patashu> Wow, perl has a unary +
17:27:20 <CakeProphet> uh, so do other languages.
17:30:04 <CakeProphet> !python print (+2)
17:30:05 <EgoBot> 2
17:30:41 <pikhq_> > (+2)
17:30:42 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
17:30:42 <lambdabot> arising from a use of `...
17:30:47 <CakeProphet> though I suppose Perl is one of the few where it's actually useful in certain situations.
17:31:15 <pikhq_> Well. Clearly Haskell has unary +. It just results in a function.
17:31:51 <CakeProphet> to distinguish something as numeric, or to distinguish hashrefs from blocks in situations where they're ambiguous.
17:33:06 <boily> > :t (+2)
17:33:07 <lambdabot> <no location info>: parse error on input `:'
17:33:25 <pikhq_> :t (+2)
17:33:26 <lambdabot> forall a. (Num a) => a -> a
17:33:43 <pikhq_> See, it has the obvious type.
17:36:00 -!- derrik has quit (Quit: gone).
17:37:38 -!- ais523 has joined.
17:56:28 -!- elliott has joined.
17:59:15 <elliott> 05:33:05: <evincar> If there were a consumer-quality Lisp-based OS, I'd go for it.
17:59:16 <elliott> 05:34:07: <pikhq_> I hear Symbolics offered those. In the 80s.
17:59:26 <elliott> they still do.
18:00:30 <elliott> 05:47:01: <evincar> Also, time to write a script for cat /usr/share/X11/locale/en_US.UTF-8/Compose | grep
18:00:31 <elliott> I...
18:01:14 <elliott> 05:59:30: <fizzie> elliott-the-logreader: Regarding the reverse-context tree, doing it "the obvious way" is going to be just as fast for a fixed-length n-gram query (e.g. "what are all the 5-grams that begin 'argle garble blargle merf'"), but when they're arranged in the tree I mentioned, you can 1) easily have a variable-length n-gram model (just stop descending when you hit a leaf), and 2) do smoothing/interpolation without performing the corre
18:01:14 <elliott> sponding 4-gram query ("what are t
18:01:14 <elliott> 05:59:31: <fizzie> he 4-grams that begin 'garble blargle merf'"), because the answer to that is just the parent node of where you were.
18:01:30 <elliott> fizzie: A variable-length n-gram model would take up considerably more disk space. :p
18:02:05 <elliott> fizzie: I'm not sure what smoothing/interpolation would be there -- merging together the four-gram and five-gram lists and picking from that, rather than just using one?
18:04:27 <elliott> 06:04:05: <fizzie> That one's just weird.
18:04:27 <elliott> 06:04:08: <fizzie> ^style c64
18:04:27 <elliott> 06:04:08: <fungot> Selected style: c64 (C64 programming material)
18:04:27 <elliott> 06:04:09: <fizzie> fungot: So how do I... let's say, configure the VIC-II so that I get an interrupt at the hblank at the middle of the frame?
18:04:27 <fungot> elliott: be in cahoots with! you guess none the wiser, you board the shuttle. next stop, it's unbecoming fuel a process known in advance how terrible you were going to be at this matching game, so it probably knows you know it.
18:04:27 <fungot> elliott: have a look. a trail of this fluid in the hall. you are going in. he's sent it in the first place
18:04:32 <elliott> You typed that in one second?
18:05:20 <elliott> 06:08:24: <fungot> Patashu: john, it appears we have reached an impasse
18:05:20 <elliott> 06:08:27: <Patashu> haha
18:05:20 <elliott> 06:08:39: <fizzie> Probably a straight quote, sadly. :p
18:05:20 <fungot> elliott: not that it would actually bother pitying you.
18:05:26 <elliott> "fellow john, it appears we have reached an impasse" (http://www.mspaintadventures.com/?s=6&p=002414)
18:05:43 <elliott> (I'm not sure it's so wise to include page titles.)
18:06:13 <elliott> 06:13:48: <fizzie> Coincidentally enough, fungot doesn't actually use the n-gram model for ending the sentence in the usual way (by just generating until it generates an end-of-sentence-token). It wasn't quite controllable enough, so I just flagged all (n-1)-grams that have occurred at the end of a sentence with a "can-stop" flag, and then for each such place it has a probability of stopping which depends on the length of the generated stuff.
18:06:13 <fungot> elliott: your sylladex thinks they are fabulous beta envelopes. i was just that you'd never tell me any idea how a video. it looks so 8ad!
18:06:37 <elliott> fizzie: So, with the glitch in the Final Fantasy data set, the problem is that "that sword alone" can't-stop?
18:06:44 <elliott> OHHHHHHH SNAPPPPP
18:08:40 <elliott> 06:37:28: <monqy> evincar: http://en.wikipedia.org/wiki/Tripcode hjelp
18:08:41 <elliott> Wouldn't it be hilarious if evincar implemented the trivial-to-crack original tripcode system. (Yes.)
18:09:48 <CakeProphet> ObZen
18:10:04 <elliott> 06:41:50: <Patashu> they'd be easy to crack actually
18:10:04 <elliott> 06:41:52: <Patashu> if the algorithm is public
18:10:04 <elliott> lol
18:10:12 <elliott> yeah just like all the SHA algorithms are totally beaten
18:10:13 <elliott> RSA too
18:10:19 <elliott> they just weren't hidden enough
18:10:27 <elliott> waht is cryprogrtaphy
18:10:27 <CakeProphet> heh
18:10:37 <elliott> mind you the originals are insanely crackable
18:10:39 <elliott> http://en.wikipedia.org/wiki/Tripcode#Description_of_the_algorithm
18:10:42 <elliott> just look how beautiful it is
18:10:49 <CakeProphet> help what is public key
18:10:54 <elliott> "Most noticeably, many implementations substitute various characters with their HTML entities. For example, 2channel translates <, >, and " to &lt;, &gt;, and &quot;."
18:11:00 <elliott> failed html escaping → STANDARD
18:11:49 <elliott> Aww, someone already wrote a GPU tripcode cracker...
18:12:00 <elliott> Looks Windows/ATI-only though.
18:12:17 <CakeProphet> http://blog.ezyang.com/2010/12/gin-and-monotonic/
18:12:25 <CakeProphet> I imagine this has been on reddit
18:12:28 <elliott> i looked at that but then i ran away scared oops
18:12:33 <ais523> elliott: those are the correct HTML escapes, aren't they?
18:12:35 <elliott> todo: read ezyang's words in depth
18:12:40 <CakeProphet> I can kind of follow it up to like... the last part
18:12:53 <CakeProphet> it helps to read the previous blog that he links, where he explains some of the notation.
18:12:54 <elliott> ais523: yes, but you don't escape something that is going into crypt(), rather than being rendered as html
18:13:29 <ais523> oh, that's on the /input/ to crypt()
18:13:33 <ais523> that is stupid
18:13:54 <CakeProphet> he interesting to see a diagram of the partial orders of data types.
18:13:57 <CakeProphet> *it's interesting
18:14:53 <CakeProphet> > head undefined
18:14:54 <lambdabot> *Exception: Prelude.undefined
18:15:07 <fizzie> Smoothing would involve considering the 4-grams too (either always, with interpolation; or sometimes, with backoff) when generating the next word, so that the model can generate also words for which there are no 5-grams in your dataset. Anyway, it's not really a necessary thing for babbling; fungot manages without. It's more important for actual language modeling purposes, where you have new data coming in.
18:15:07 <fungot> fizzie: the point. for the first time in i don't really have a choice based on a strong pale relationship will serve to balance and complement each other's, since there is no quadrant which naturally conceals two licorice scotty dogs are still here. you tell him. you thought he'd washed his hands of you.
18:15:24 <CakeProphet> though he has the diagram for head messed up. He says bottom -> []
18:15:34 <CakeProphet> but it's obviously bottom -> bottom
18:15:46 <CakeProphet> or maybe I'm reading it wrong.
18:15:50 <fizzie> (Mostly away; have to leave to Florence tomorrow at 0530am or so, and I haven't really packed yet.)
18:16:22 <CakeProphet> yes, I'm reading it wrong.
18:17:07 <CakeProphet> it's not showing the partial order of the output values.
18:17:15 <fizzie> elliott: Also, I typed the C64-related question first, and while typing it someone else went and switched the style away to something else, so had to do some cut-write-pasting.
18:17:20 <CakeProphet> just demonstrating that it's monotonic.
18:17:24 <elliott> fizzie: But I was _just_ about to ask about my insane case. :p
18:17:47 <fizzie> I had also another C64 question ready to go when someone else changed the styles again, so I just abandoned that one.
18:18:34 <CakeProphet> the diagram for const is kind of neat.
18:21:01 <pikhq_> Sweet Jesus I want. Researchers at IBM are putting together a 250 petabyte array. For no apparent reason.
18:21:02 <CakeProphet> > uncurry const (1,2)
18:21:03 <lambdabot> 1
18:21:07 <elliott> fizzie: Anyway, my next question was going to be about what a nice (space and time-efficient) way to store reverse ngrams would be too. That is: literally just reverse the input data and n-gram that, along with the forwards n-grams, such that I can either query for "words appearing after" or "words appearing before" for any n-gram.
18:21:30 <elliott> fizzie: I was just going to say "turn every leaf [(String,Int)] into ([(String,Int)], [(String,Int)])", but, you know, maybe there's a nicer way.
18:21:40 <elliott> Maybe a doubly-linked tree. :p
18:22:46 <CakeProphet> dude use teh huffmans
18:23:06 <elliott> fizzie: Also: BLOOM FILTERS. Tell me bloom filters help. BLOOM. FILTERS.
18:23:54 <pikhq_> elliott: Always does.
18:24:13 <elliott> fizzie: BLOOM FILTERS
18:25:04 <CakeProphet> I wonder if it would save space to keep an array of encountered words, and then the tree merely stores the indices..?
18:25:18 <CakeProphet> I doubt that would help at all actually.
18:25:26 <elliott> CakeProphet: With a billion words, I doubt it.
18:25:34 <CakeProphet> because now you have two data structures. :P
18:25:39 <elliott> I mean, that's four bytes; words are four bytes. Sometimes. :p
18:25:47 <elliott> I guess it might be smaller.
18:25:52 <fizzie> I do that (use 32-bit -- well, 28-bit, I think -- integers) in fungot.
18:25:52 <fungot> fizzie: it is a hate so pure and... pumpkin seeds? are you volunteering? prospit. by which of course it was a nasty pair of beagle puss glasses, several () a blank card, producing a different hole in the roof
18:26:05 <fizzie> I mean, the unigram list is a lot shorter than the 5-gram list.
18:26:25 <CakeProphet> elliott: well if you're using Haskell then every word will be larger than four bytes I believe.
18:27:27 <elliott> CakeProphet: Dude.
18:27:31 <elliott> It's going to be almost a terabyte.
18:27:37 <elliott> You think I'm storing it in memory?
18:27:46 <CakeProphet> HUFFMAN CODING.
18:27:49 <elliott> fizzie: Right, it's true.
18:28:03 <CakeProphet> elliott: I didn't know it was TB.
18:28:13 <elliott> fizzie: Just answer the easy questions and avoid the ones involving the backwards n-grams, why don't you. :p
18:28:14 <CakeProphet> or rather, had forgotten
18:28:18 <fizzie> As for building the reverse-context tree (if you want to do it; certainly you could make it work with a normal trie), assuming you don't want to do any pruning, I think it should be reasonably simple to just build it from a provided n-gram list. That's what fungot's conversion script does to the VariKN-generated model.
18:28:18 <fungot> fizzie: for a while it was frustrating. they are the most delicious bunches, not the nap in the grand dad for one for christmas. he is a rather piss-poor excuse. we 8oth of us, the whole plan hinged on that.
18:28:18 <CakeProphet> that that was the issue at hand.
18:28:29 <elliott> CakeProphet: Well, twenty five gigs compressed, but when put into a reasonable-ish database and decompressed, about a terabyte, says the fizzie.
18:28:53 <fizzie> The terabyte might be a bit high estimate, I think that included Postgres indices too.
18:28:58 <elliott> fizzie: Well, yes, but I'm asking how to do a backwards tree in the same thing.
18:29:05 <elliott> Or, hmm, you might not be trying to answer that.
18:29:14 <elliott> <elliott> fizzie: Anyway, my next question was going to be about what a nice (space and time-efficient) way to store reverse ngrams would be too. That is: literally just reverse the input data and n-gram that, along with the forwards n-grams, such that I can either query for "words appearing after" or "words appearing before" for any n-gram.
18:29:15 <elliott> <elliott> fizzie: I was just going to say "turn every leaf [(String,Int)] into ([(String,Int)], [(String,Int)])", but, you know, maybe there's a nicer way.
18:29:15 <elliott> <elliott> Maybe a doubly-linked tree. :p
18:29:18 <elliott> s/reverse/backwards/.
18:29:19 <CakeProphet> I recall reading about a compression algorithm that allowed for fast access but I can't recall the name...
18:29:21 <elliott> Clash of terminology there.
18:31:09 <CakeProphet> LZW would probably allow for fast reads?
18:31:29 <CakeProphet> since it's pretty simple to decode.
18:34:39 <fizzie> The tree, then. Well, assuming you have a sorted list of ngrams like "a b c foo -> w1; a b c bar -> w2; a b d foo -> w3; a b d bar -> w4" (with w1..w4 weights), what you want is a tree where the /c/b/a node contains [(foo, w1), (bar, w2)] and the /d/b/a node contains [(foo, w3), (bar, w4)].
18:35:07 <elliott> fizzie: I'm... not sure you understand me at all.
18:35:31 <fizzie> I'm not sure I'm trying to, I'm just elaborating on how I built it.
18:35:34 <elliott> Oh.
18:35:51 <elliott> I thought "The tree, then." was trying to answer my question.
18:36:35 <fizzie> Though there really isn't much to it, after that. I think I just built it by constructing the weight-list [(foo, w1), (foo, w2)] for one context (the n-grams are sorted, so they're all next to each other), and then just, you know, a tree-insertion.
18:36:44 <elliott> I suppose just storing what averages out to twice the data in a leaf would work.
18:36:50 <elliott> But it feels like I could do it more efficiently. :/
18:37:07 <elliott> (The only idea I had was to somehow build the tree loopy-style so that you could go up just as well as down and that worked somehow.)
18:39:38 <CakeProphet> if you're using the google data, you could flatten all of the year lines into a single to save a lot of space.
18:40:02 <elliott> The five-DVD web data is not per-year.
18:40:08 <fizzie> I don't think I have parent-pointers in my tree, since those aren't really needed for backoff either, if you just keep track of the current (at most 5 words deep) path you've descended. I think the perl-babbler is even a recursive function, so I could do backoff just by having a backoff-weight-derived probability for the function returning "I don't feel like generating a word today, why don't you have a go", at which point the previous recursion level would the
18:40:08 <fizzie> n use its weights. (Those being the (n-1)-gram weights.)
18:40:38 <fizzie> Anyway, I really neeeeed to pakc. This was just a random outburst. Happy to help, have a nice day, etc., etc.
18:41:26 <elliott> fizzie: For someone who isn't trying to answer my questions, you sure are replying to all my questions with advice that would be perfectly relevant if I hadn't explicitly said why I wanted a backwards path thing :P
18:42:08 <Phantom_Hoover> What *is* an n-gram, anyway.
18:42:25 <elliott> fizzie: For whenever: I basically just want two separate trees -- one built as usual, and another one built from the same data but with the data items themselves reversed. I just want to store the two in less than twice the space of one.
18:42:38 <CakeProphet> a sequence of n elements basically
18:42:42 <CakeProphet> from some other sequence.
18:42:44 <elliott> fizzie: I could obviously just do it on the leaves -- an "if you're going forwards" wordset and an "if you're going backwards" wordset in every leaf.
18:43:01 <CakeProphet> in this context an n-gram is a sequence of n words.
18:43:03 <elliott> fizzie: But it feels like I could, I don't know, make it so that just like descending the tree downwards when going forwards, you could somehow ascend it upwards when going backwards. Or something.
18:43:09 <fizzie> Oh, *that* sort of reversed. (Yes, I paid some attention, finally.)
18:43:22 <elliott> I DID say s/reversed/backwards/ for a reason :P
18:43:37 <fizzie> Unfortunately I don't have an immediate opinion on *that*. :p
18:43:56 <CakeProphet> Phantom_Hoover: for my acronym generator though I'm using n-grams of characters. So it can be any kind of sequence really.
18:44:05 <elliott> fizzie: But what about BLOOM FILTERS?
18:45:47 -!- calamari has joined.
18:47:53 <CakeProphet> > take 5 [1,2,3]
18:47:54 <lambdabot> [1,2,3]
18:50:08 <Sgeo> > take 5 $ repeat 1
18:50:08 <lambdabot> [1,1,1,1,1]
18:50:37 <CakeProphet> > let ngrams [] = []; ngrams ls = take n ls : ngrams (tail ls) in ngrams "hello friends"
18:50:37 <lambdabot> Couldn't match expected type `GHC.Types.Int'
18:50:37 <lambdabot> against inferred type ...
18:50:47 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams (tail ls) in ngrams "hello friends"
18:50:48 <lambdabot> Couldn't match expected type `[t]'
18:50:48 <lambdabot> against inferred type `GHC.Types...
18:51:48 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in ngrams 3 "hello friends"
18:51:49 <lambdabot> ["hel","ell","llo","lo ","o f"," fr","fri","rie","ien","end","nds","ds","s"]
18:52:23 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in ngrams 3 $ words "the quick brown fox jumped over the lazy dog"
18:52:24 <lambdabot> [["the","quick","brown"],["quick","brown","fox"],["brown","fox","jumped"],[...
18:52:44 <fizzie> Normally you'd stop at "nds" there in the letter-case.
18:53:38 <elliott> Hmm, I wonder if that tree-ascent thing would work.
18:53:42 <fizzie> Also pattern-match that tail.
18:53:43 <fizzie> > let ngrams _ [] = []; ngrams n l@(_:ls) = take n l : ngrams n ls in ngrams 3 "hello friends"
18:53:44 <lambdabot> ["hel","ell","llo","lo ","o f"," fr","fri","rie","ien","end","nds","ds","s"]
18:53:54 <elliott> All I have to do is store every parent as well as every child.
18:54:04 <elliott> That's probably more wasteful than just storing twice the data in leaves, though.
18:54:10 <CakeProphet> fizzie: personal preference. I think it's nicer without the @ pattern.
18:54:13 <elliott> fizzie: Ha, the Haskell Bug has got you.
18:54:16 <elliott> CakeProphet: tail is a partial function.
18:54:20 <elliott> You do not use partial functions when unnecessary.
18:54:38 <CakeProphet> ngrams n ls is also a partial function. in particular it is guaranteed to never have ls = []
18:54:55 <elliott> You don't know what a partial function is, I see.
18:55:01 <CakeProphet> no I do.
18:55:13 <CakeProphet> but it's the same thing. I am using tail in a case expression.
18:55:21 <elliott> No, there is no case expression there.
18:55:24 <pikhq_> elliott: Though he can be sure he will never be hitting the tail [] case.
18:55:38 <CakeProphet> elliott: let ngrams n [] = []; ngrams n ls = ... in ...
18:55:39 <elliott> pikhq_: Great -- so everyone has to mentally prove that to themselves to make sure the function is right.
18:55:41 <CakeProphet> see the case expression?
18:55:48 <elliott> pikhq_: So readable!
18:55:58 <elliott> CakeProphet: You do not know what a case expression is.
18:56:02 <CakeProphet> yes.
18:56:19 <CakeProphet> do you know what syntactic sugar is?
18:56:34 -!- pikhq has joined.
18:56:51 <elliott> fizzie: Additional nitpick with yours: lss@(_:ls) is more idiomatic.
18:58:16 <pikhq> 12:56 < pikhq_> elliott: Though he can be sure he will never be hitting the tail [] case.
18:58:19 <pikhq> 12:56 < pikhq_> Since that is handled by the ngrams n [] match.
18:58:22 <pikhq> 12:56 < pikhq_> Still, the @ pattern is nicer.
18:58:22 <elliott> pikhq: <elliott> pikhq_: Great -- so everyone has to mentally prove that to themselves to make sure the function is right.
18:58:24 <elliott> <elliott> pikhq_: So readable!
18:58:42 <CakeProphet> a match which /is/ a case expression, but whatever I am done with this line of conversation.
18:59:02 <elliott> CakeProphet: I'm pretty sure the semantics aren't actually identical to case.
18:59:07 <elliott> Mumble mumble irrefutable patterns.
18:59:22 <elliott> Actually I don't know if cases are defined by reduction of patterns or vice-versa in the report, but I'm fairly sure they differ in GHC.
18:59:33 <elliott> Regardless, no matter what it's defined in terms of it's not a case expression.
19:00:00 -!- pikhq_ has quit (Ping timeout: 264 seconds).
19:00:29 * ais523 reads comments to a proggit article, finds that everyone's complaining that the content of the web page is hard to read because it automatically draws the cursors of everyone else reading the article onto the page
19:00:39 <ais523> and yet people say that leaving JavaScript on by default is a good idea
19:00:43 <elliott> ais523: I linked that in -minecraft
19:00:50 <elliott> ais523: and -1, Troll
19:00:53 <elliott> (did I get my slashdot syntax right?)
19:00:54 <ais523> heh, that's why I wouldn't have seen it
19:01:00 <ais523> possibly
19:01:13 <ais523> the thing about JavaScript is, I can't think of too many legitimate uses for it
19:01:18 <elliott> -minecraft is more -df these days
19:01:19 <CakeProphet> elliott: what is the difference exactly with irrefutable patterns?
19:01:42 <ais523> elliott: that makes me smugly satisfied, is that wrong?
19:01:48 <ais523> at least, it's what I'd expect as a natural evolution
19:02:19 <elliott> ais523: bear in mind that we've been hating on minecraft almost as long as -minecraft exists :P
19:02:23 <elliott> s/exists/has existed/
19:02:32 <ais523> elliott: oh, it's not /just/ me who hates on it?
19:02:52 <elliott> ais523: well, _we_ hate on it because it doesn't nearly live up to its potential
19:03:00 <pikhq> ais523: Most people who play Minecraft both like and curse it.
19:03:06 <ais523> elliott: same here, I think
19:03:08 <elliott> pikhq: you clearly haven't seen /r/minecraft
19:03:13 <ais523> I think other things do live up to its potential quite well, though
19:03:16 <ais523> so it isn't necessary
19:03:18 <ais523> (DF is one of them)
19:03:26 <pikhq> Oh, right, sorry, not all people are sane.
19:03:27 <elliott> ais523: DF is not the game Minecraft could be
19:03:31 <elliott> Elliottcraft is :)
19:03:35 <elliott> (my Elliottcraft)
19:03:53 <pikhq> Not all people realise that adding more bugs than bug fixes with every release is not actually a sign of good programming.
19:04:31 * elliott inserts sceptical remark regarding whether _any_ software project gets less bugs over time on average
19:05:37 <pikhq> Smartass. :P
19:06:00 <pikhq> Y'know what I mean. Really, really *stupid* shit gets broken *directly by* his bug fixes.
19:06:54 <pikhq> And it runs on a really slow pace of development, with really rather conservative gameplay changes.
19:07:27 <pikhq> I mean, since 1.3 we've had, what. Repeaters, powered rail, pistons, wolves?
19:07:42 <CakeProphet> elliott: pattern binding is semantically equivalent to case expressions in the Haskell Report, for what it's worth.
19:07:58 <elliott> lambdabot has language extensions.
19:07:59 <pikhq> Or "what a modder puts in on day 1 of their 'ZOMG AWESOME' mod".
19:08:15 <CakeProphet> I see.
19:08:17 <elliott> pistons are a one day thing?
19:08:18 <elliott> pro
19:08:42 <pikhq> Okay, fine, give that one a week, maybe two if you don't want stupid breaking bugs.
19:08:50 <CakeProphet> language extensions = mass chaos? I guess?
19:09:05 <pikhq> Mostly because you're having to hack block movement into an architecture that doesn't handle it at all.
19:10:02 <pikhq> Meanwhile, the Nether is still a boring-as-hell place.
19:10:16 <pikhq> And by the time you've got diamond you've won.
19:10:16 <CakeProphet> LIGHTSTONE WEEEEEEE
19:10:36 <pikhq> Heck, by the time you've got a nice bit of iron you've won.
19:10:57 <CakeProphet> I believe invedit is the standard way to win Minecraft.
19:11:31 <pikhq> Okay, yeah, SPC and TMI to hack together a Creative mode is kinda entertaining still.
19:14:10 <elliott> Hey fizzie, what's the approximate format of those DVDs? :P
19:14:22 <elliott> (I'm wondering how quickly I can processermate them.)
19:14:40 * CakeProphet is now a proud owner of a Dave record shirt AND PS fractal shirt. +2 nerd cred.
19:16:50 <Phantom_Hoover> CakeProphet, real nerds don't need cred.
19:16:56 <Phantom_Hoover> (They have cerd instead.)
19:17:50 <CakeProphet> the nerd cred mostly functions as cred to non-nerds.
19:17:58 <CakeProphet> those who need the nerd cred.
19:18:19 <Phantom_Hoover> You mean those who are incapable of basic type theory? :P
19:18:36 <elliott> Irn bruuuuuuuuuuuurn.
19:18:42 <Phantom_Hoover> (:P makes any insult in good humour, no matter how barbed. Spread the word.)
19:18:43 <elliott> It's like an ice burn but... Scottish.
19:18:51 <fizzie> elliott: Urr, well. data/Ngms/Ngm-MMMM.gz, where N = 1..5, MMMM = 0000...[0117 in the 5gm case, probably something else for others], which contain "foo bar baz quux spoo\tK", where K is the count. Plus in each data/Ngms/ folder a data/Ngms/Ngm.idx which has a list of those .gz files, and the first n-gram from each file.
19:18:51 <Phantom_Hoover> elliott, MADE FROM GURDERS IN SCOTLAND
19:19:01 <elliott> Phantom_Hoover: Die, you terrible fucking piece of worthless shit. :P
19:19:25 <elliott> fizzie: I wonder what the index is for.
19:19:29 <CakeProphet> elliott: I will cook you and eat you like I have countless children.
19:19:33 <Phantom_Hoover> elliott, indexing, duh.
19:19:34 <CakeProphet> oops. forgot the :P
19:20:19 <elliott> Phantom_Hoover: BUT OF COURSE.
19:20:33 <elliott> fizzie: Hmm, oh wait.
19:20:48 <elliott> fizzie: I _can't_ really generate backwards n-grams, can I? Not from forwards n-grams; only from raw data.
19:20:54 <elliott> :/
19:21:13 <elliott> That puts a dent in my question-answering idea (stolen from MegaHAL; start with query, go forwards until end of sentence, go backwards until start of sentence).
19:21:23 <pikhq> Huh, that's neat. Yet bizarre.
19:21:33 <elliott> pikhq: What is.
19:21:43 <pikhq> FAT short filenames are stored in the system legacy charset. FAT long filenames are stored in UTF-16.
19:21:47 <elliott> 12:33:10: <fizzie> How come plain ":t" doesn't work in a query?
19:22:06 <elliott> fizzie: Probably it doesn't respond to non-commands; I doubt the "foo++" karma method works there.
19:22:07 <elliott> ?karma foo
19:22:07 <lambdabot> foo has a karma of 1
19:22:10 <elliott> foo--
19:22:12 <elliott> ?karma foo
19:22:12 <lambdabot> foo has a karma of 0
19:22:23 <pikhq> So you need at least two distinct charset parsers to handle FAT.
19:22:25 <Phantom_Hoover> @karma Phantom_Hoover
19:22:25 <lambdabot> You have a karma of 0
19:22:29 <Phantom_Hoover> :(
19:22:34 <Phantom_Hoover> @karma elliott
19:22:34 <lambdabot> elliott has a karma of 2
19:22:40 <elliott> 13:26:42: <Phantom_Hoover> fizzie, A* is what they introduced because the English haven't got the hang of this "preventing rampant grade inflation" thing.
19:22:40 <elliott> 13:27:28: <Phantom_Hoover> (In Scotland, grades are defined entirely in terms of percentiles.)
19:22:40 <elliott> FAK U
19:22:43 <elliott> ?karma ehird
19:22:43 <lambdabot> ehird has a karma of 0
19:22:47 <elliott> ?karma lambdabot
19:22:47 <lambdabot> lambdabot has a karma of 11
19:22:51 <elliott> ?karma C
19:22:51 <lambdabot> C has a karma of 5
19:23:00 <elliott> Let's talk about C--.
19:23:04 <elliott> It's such a nicer language than C++.
19:23:07 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in ngrams 3 . words . reverse $ "the quick brown fox jumped"
19:23:07 <elliott> Or, wait, hmm.
19:23:08 <elliott> ?karma C
19:23:08 <lambdabot> C has a karma of 5
19:23:08 <lambdabot> [["depmuj","xof","nworb"],["xof","nworb","kciuq"],["nworb","kciuq","eht"],[...
19:23:13 <elliott> C--
19:23:14 <elliott> ?karma C
19:23:14 <lambdabot> C has a karma of 5
19:23:19 <elliott> Yeah, those are filtered. :p
19:23:28 <elliott> CakeProphet: Nope
19:23:28 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in reverse . map reverse . ngrams 3 . words $ "the quick brown fox jumped"
19:23:30 <lambdabot> [["jumped"],["jumped","fox"],["jumped","fox","brown"],["fox","brown","quick...
19:23:36 <elliott> Yup
19:24:33 <fizzie> elliott: I don't see why not. If you have the raw data "a b c d e f g", you'll get forward-trigrams of "a b c; b c d; d e f; e f g" and backward-trigrams of "g f e; f e d; e d c; d c b; c b a", i.e. the same but reversed. (Also works with counts. "a b a b" + bigrams -> "a b, 2; b a 1" forward, "b a, 2; a b 1" backward, i.e. just mirror the bodies.)
19:24:44 <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in reverse . map (reverse . map reverse) . ngrams 3 . words $ "the quick brown fox jumped"
19:24:45 <lambdabot> [["depmuj"],["depmuj","xof"],["depmuj","xof","nworb"],["xof","nworb","kciuq...
19:24:51 <elliott> 13:57:13: <Phantom_Hoover> OH WAIT NO: http://en.wikipedia.org/wiki/Category:Caves_of_Northumberland
19:24:52 <elliott> "St Cuthbert's Cave is a natural sandstone cave in Northumberland approximately 13 km from Dunstanburgh Castle. It is neither very big nor deep, but rather takes the form of an overhang large enough to provide shelter for a small group.[1]"
19:25:00 <elliott> Phantom_Hoover: AMAZING NORTHUMBERLAND CAVES.
19:25:09 <elliott> fizzie: Yeees, but I need what comes after them.
19:25:32 <elliott> fizzie: Oh, hmm, the n-gram set is not actually in the "n-gram -> next-word" format, is it?
19:25:43 <elliott> It's just "n+1-gram". :p
19:25:49 <fizzie> Well, no. There is no "what comes after them". You use the 5-grams with a 4-word context to tell what the fifth word is. The same will work for telling the first word.
19:25:50 <elliott> (So actually the five-grams are an order-four Markov chain.)
19:25:54 <fizzie> Yes.
19:25:57 <Phantom_Hoover> Cool, WP says Edinburgh has a total of 40.6 sunshine hours in December.
19:26:02 <elliott> Four words isn't as nice as five, but I suppose six-grams would be rather ludicrously big.
19:26:02 -!- zzo38 has joined.
19:26:17 <elliott> fizzie: Right, that should be easy enough then.
19:26:33 <elliott> I suppose I should download one of the books datasets so I can practice my micro-optimised C programming.
19:26:38 <elliott> I mean, I don't want to have to process it for a week.
19:26:44 <elliott> (I don't suppose you know how long it took to import into Postgres?)
19:27:09 <ais523> hmm, something I've been wondering about (again, Gregor might know); suppose you have nine or ten copies of the same piece of music, but each of them has sound effects overlaid
19:27:11 <CakeProphet> I wonder what fungot would do with the google book data.
19:27:12 <fungot> CakeProphet: about the bad news. over the last one. wait no, that just made you disappear" and stuff?
19:27:19 <ais523> what sort of algorithm should you use to recover the original music?
19:27:27 <elliott> CakeProphet: Well, this all started with me pressuring fizzie to make it work with the internet data.
19:27:35 <elliott> But that would require a rather large retooling of fungot. :p
19:27:35 <fungot> elliott: and the way that it shakes is the same but different too, for the time being it makes your life kind of the dumbest and most far fetched but whatever. you also like to play games sometimes.
19:27:45 <ais523> presumably you want some sort of "majority vote" between them, which is easy with images but rather harder with sounds, because DFTs need a window and no value for it is perfect
19:27:53 <elliott> ais523: Do you know which effect was applied to each?
19:28:01 <elliott> i.e. the algorithm used to distort
19:28:03 <ais523> elliott: not effects, they've simply been mixed with other sounds
19:28:07 <elliott> Oh.
19:28:12 <elliott> Never mind, then.
19:28:18 <ais523> e.g. you have a+b, a+c, a+d, a+e, and want a
19:28:24 <ais523> obviously it's impossible in general
19:28:34 <ais523> (this is just-out-of-curiosity, incidentally, I don't have an intended use for this)
19:29:00 <pikhq> Well, first you make a self-improving AI.
19:29:29 <ais523> I don't think that's /necessary.
19:29:34 <ais523> s\
19:29:39 <ais523> *s/\./\//
19:29:41 -!- oerjan has joined.
19:29:44 <pikhq> It's *a* solution, though.
19:29:44 <ais523> nor am I even certain it's sufficient
19:30:25 <ais523> atm I'm thinking along the lines of "DFT all of them with the same window, take majority vote of the DFTs, unDFT the result", but am not sure it would work
19:30:48 <ais523> in particular, as the DFT is an inherently approximate process, I'm not convinced that the majority vote wouldn't just see lots of different votes all picking different values
19:30:56 <pikhq> I'm pretty sure human audio processing can pull off something similar, but much slower and worse. I am presuming that a sufficiently advanced intelligence could make it work.
19:31:16 <pikhq> And a self-improving AI is an "easy" route to a sufficiently advanced intelligence.
19:31:21 <elliott> "easy"
19:31:34 <pikhq> Scare-quotes for obvious reasons.
19:31:45 <ais523> because a) it's not really easy, and b) it's scary
19:32:40 <Phantom_Hoover> pikhq, what the hell is the actual problem.
19:32:50 <CakeProphet> almost as scary as having sentient furless apes everywhere!
19:33:23 <pikhq> Phantom_Hoover: ais523 has a few different copies of the same piece of audio, with varying effects applied. He'd like the original audio.
19:33:37 <ais523> Phantom_Hoover: it's a hypothetical problem, I'm just curious
19:33:37 <oerjan> > 86400-83486
19:33:38 <lambdabot> 2914
19:33:44 <ais523> pikhq: it's not effects, they've been mixed with other pieces of audio
19:33:53 <fizzie> ais523: Assuming additive noise, and a DFT window size that will cause it to have the correct spatio-temporal resolution, so that the corrupted bits don't overlap, I don't see why majority-vote wouldn't work. It'd be pretty close to applying the usual "restore the image" algorithm to the spectrogram of the sound. (It could be more robust to drop the phase information, though, and work just on the magnitude spectrogram, then reconstruct plausible phase afterward
19:33:53 <fizzie> s; that's not too tricky for overlapping windows.)
19:34:10 <elliott> fizzie: Relatedly: have I mentioned that speech interfaces TOTALLY SUCK?
19:34:15 <elliott> OHHH BURRRN
19:34:22 <fizzie> Repeatedly.
19:34:37 <ais523> fizzie: hmm, I'd /expect/ the phase to be the same if the original piece of music was the same, and a recording rather than synthesized
19:34:37 <pikhq> ais523: Ah. Yeah, human auditory processing does that all the friggin' time from a single audio stream (admittedly with bugs from time to time).
19:34:47 <CakeProphet> I am a speech interface. Speech to me.
19:34:52 <pikhq> So it's certainly possible in a hypothetical sense.
19:34:54 <Phantom_Hoover> I feel that the Scottish people in a voice-controlled elevator video is now relevant.
19:35:21 <ais523> Phantom_Hoover: I can imagine how that would go merely from the description
19:35:38 <Phantom_Hoover> I would link it but I have to feed the cat.
19:35:38 <pikhq> elliott: Even if we presume utterly perfect speech recognition, they would suck.
19:35:46 <ais523> (one of the people in my old department, their job was to go round training voice-recognition systems on various regional accents, so I came across the problem second-hand quite a lot)
19:36:03 <pikhq> It's just bad for general UI use. Though it could probably be neat in some specific cases.
19:36:14 <ais523> is speech faster or slower than typing? my guess is slower
19:36:24 <ais523> I'm pretty sure it's slower than reading something that's already been written
19:36:26 <pikhq> ais523: Depends on the typist.
19:36:33 <ais523> habitual IRC users
19:36:35 <fizzie> ais523: So would I. Anyway, if you want something more "fancy", run a blind source separation thing on the recordings, something like ICA (independent component analysis), it's going to spit out something pretty close to the original audio as one of the outputs.
19:36:36 <CakeProphet> `quote gaping
19:36:38 <HackEgo> 617) <elliott> Deewiant: How do you go through life without seeing at least one gaping anus, that's what I want to know
19:36:40 <Phantom_Hoover> It's http://www.youtube.com/watch?v=NMS2VnDveP8
19:36:42 <elliott> <pikhq> elliott: Even if we presume utterly perfect speech recognition, they would suck.
19:36:46 <elliott> I'm just trolling fizzie, stop it.
19:37:03 <ais523> fizzie: hmm, doesn't ICA take a matrix as input?
19:37:07 <pikhq> elliott: I'm presuming a modern computer running it.
19:37:21 <ais523> or am I thinking of something else?
19:37:32 <pikhq> So you'd have to be extremely detailed in your instructions for anything non-trivial.
19:38:03 <ais523> pikhq: I'd assume that a general-purpose voice recognition system that was practically usable for general computer use would be something like shellscript
19:38:12 <ais523> voice recognition is an inherently commandlinish sort of communication
19:38:21 <ais523> and so, we should keep the lessons learnt from command-lines
19:38:34 <CakeProphet> "trivially compute G factorial"
19:38:58 <fizzie> ais523: Well, it takes a multivariate signal, and it gives additive subcomponents out. Purely as a guess I'd suppose you'd best apply it to a spectral representation of the signal, again, as opposed to, say, the waveform.
19:39:55 <CakeProphet> spectral representation is usually better in all ways
19:40:01 <CakeProphet> except for that whole lack of time-variance.
19:40:07 <ais523> I wouldn't really expect it to be able to split out two different pieces of music from each other
19:40:19 <ais523> because it'd have to have some sort of concept of what harmony was, etc
19:41:04 <fizzie> ais523: From what I've heard, it works remarkably well "blindly" as long as your number of sources equals the number of microphones. (Even though the microphones all receive a different mixture of all the sources.)
19:41:05 <CakeProphet> harmony is easy.
19:41:25 <elliott> So, um.
19:41:31 <elliott> How big are the google books n-gram files?
19:41:42 <ais523> fizzie: oh, that's a different problem, I think
19:41:51 <elliott> Thirty-eight gigabytes for the four-grams compressed, I estimate.
19:41:52 <ais523> that's when you've got multiple pieces of music, each of which is mixed in different proportions
19:41:55 <elliott> I don't want to download thirty-eight gigabytes.
19:41:56 <ais523> and you want to get the originals back
19:42:16 <CakeProphet> ~/scripts/acro$ wc -c googledata/googlebooks-spa-all-1gram-20090715-7.csv.zip
19:42:19 <CakeProphet> 71850778
19:42:28 <CakeProphet> a single 1gram file zipped
19:42:29 <elliott> CakeProphet: That's just one of the files, isn't it?
19:42:31 <elliott> You need all of them.
19:42:36 <CakeProphet> yes I have them all.
19:42:43 <elliott> CakeProphet: Dude, those are just the one-grams.
19:42:48 <CakeProphet> yep.
19:42:50 <elliott> They're useless to me.
19:42:50 <ais523> wait, wouldn't a 1-gram file just be a letter frequency list?
19:42:52 <CakeProphet> those are the ones I need.
19:42:56 <fizzie> ais523: Well, why is that so very different? You have N recordings, each of which contains a single common source and its own sort of noise; that's just a matter of having mixing weights like that.
19:42:56 <CakeProphet> so I have them.
19:42:58 <elliott> ais523: no, just a list of words
19:43:03 <elliott> ais523: plus frequency
19:43:05 <ais523> elliott: oh, this is on words not letters?
19:43:09 <elliott> ais523: Yes.
19:43:11 <CakeProphet> elliott: but with wget I found it was very easy to grab every file as long as you have the space
19:43:19 <elliott> ais523: One billion "words" or so. :p
19:43:21 <ais523> fizzie: oh, I see what you mean
19:43:29 <CakeProphet> elliott: and the time.
19:43:30 <elliott> CakeProphet: Yes, but the one-grams are 9 files. The two-grams are ninety-nine.
19:43:40 <ais523> the problem there is that you're trying to split n+1 sources from n inputs there
19:44:04 <ais523> elliott: haha at your numeral use there
19:44:16 <fizzie> ais523: I'm not saying it'd work, but it might still find the shared source pretty well. You'd just get two types of noise in one of the outputs.
19:44:19 <ais523> yep
19:44:34 <elliott> ais523: I'm not quite sure what happened. :p
19:44:42 <pikhq> The 5-grams are 799 files.
19:44:54 <elliott> pikhq: Yes, well, I'm not downloading _them_.
19:45:02 <pikhq> Obv.
19:45:03 <elliott> When I want five-grams I'll buy the DVDs. :p
19:45:10 <CakeProphet> > 71850778*799
19:45:11 <pikhq> 9M each. Jesus.
19:45:11 <lambdabot> 57408771622
19:45:11 <elliott> That misses the year information though, but oh well.
19:45:14 <CakeProphet> assuming they're the same size.
19:45:14 <elliott> pikhq: 9M?
19:45:16 <CakeProphet> oh.
19:45:17 <elliott> More.
19:45:19 <elliott> Hundred.
19:45:23 <elliott> (Approx.)
19:45:32 <elliott> About eighty gigabytes.
19:45:33 <elliott> Approximately.
19:45:50 <elliott> fizzie: What's your favourite set of n-grams for n>two that isn't huge. :p
19:45:54 <CakeProphet> I /almost/ have enough space for that, I'd have to delete some music though.
19:46:22 <elliott> I don't have the lifespan to download that.
19:46:29 <CakeProphet> but soon I will have ONE AND A HALF FUCKING TERABYTES so I can just download everything I'd ever want to download
19:46:39 <pikhq> elliott: That's not actually *that* long to download.
19:46:56 <fizzie> elliott: I'unno, our Finnish stuff generally uses variable-length models, because it works on (statistical) morphemes, not words, so it needs rather long contexts.
19:47:45 <elliott> pikhq: 7% [=> ] 8,305,008 434K/s eta 4m 37s
19:47:49 <elliott> Times eight hundred.
19:48:07 <elliott> What, just three days?
19:48:09 <elliott> I guess it's not that bad.
19:48:13 <elliott> But my connection isn't always that good.
19:48:20 <pikhq> The 5-gram files are just 9M each.
19:48:27 <elliott> No, they're _not_.
19:48:33 <pikhq> Compressed, that is.
19:48:39 <elliott> For god's sake, click one of them.
19:48:41 <pikhq> I DID
19:48:46 <pikhq> IT'S 9M
19:48:50 <elliott> Click a different one, then.
19:48:52 <elliott> They're all over a hundred megabytes.
19:48:57 <elliott> Except maybe the first or last ones?
19:48:58 <elliott> I don't know.
19:49:02 <elliott> But the ones in the middle are all over a hundred.
19:49:09 <elliott> I know this because I'm clicking them this second.
19:49:34 <pikhq> Oh, look at that. 0, 1, 300, 799 are all 9M.
19:49:41 <elliott> X-D
19:49:44 <pikhq> Are we looking at the same corpus?
19:49:50 <elliott> pikhq: Evidently not, what are you looking at?
19:49:57 <pikhq> http://ngrams.googlelabs.com/datasets
19:50:01 <elliott> Which one?
19:50:04 <elliott> There are tens of corpuses on that list.
19:50:06 <elliott> Corpi.
19:50:25 <pikhq> ... Fek. I simply hit "end" to get to the 5-grams. Guess what that one is?
19:50:27 <pikhq> Spanish.
19:50:29 <elliott> Nice.
19:50:35 <elliott> You want the first set of five-grams. :p
19:50:43 <elliott> Or, well, the English One Million set might be rather more reasonable.
19:50:50 <elliott> Those zips are forty megs each.
19:50:53 <Phantom_Hoover> elliott, *corpodes
19:50:58 <elliott> So... thirty gigs.
19:50:59 <pikhq> *There* we go.
19:51:02 <elliott> That's not too bad, I suppose.
19:51:17 <Phantom_Hoover> (That noise is every classics teacher ever choking.)
19:51:34 <elliott> fizzie: Anyhoo, the "store all the smaller n-grams too" reverse-context thing sounds nice, but it also sounds like it'd take up rather a lot more space.
19:51:36 <pikhq> Still, that's not too bad to download.
19:51:43 <pikhq> Bit annoying, perhaps, but *meh*.
19:52:11 <pikhq> Bit surprised they went with zip for this.
19:52:50 <pikhq> Sure, it's ubiquitous, but this is one of those things where LZMA's benefit would probably be notable.
19:53:06 <elliott> I doubt it.
19:53:08 <elliott> It's text.
19:53:14 <elliott> ais523: Maybe they should use azip.
19:53:22 <pikhq> I'll test in a bit.
19:53:38 <pikhq> When this file finishes.
19:54:06 <ais523> elliott: the funny thing is, azip works by extracting n-grams and giving new names to them
19:54:17 <ais523> recursively
19:54:33 <elliott> ais523: heh
19:54:49 <ais523> that's why the decompressor is so small
19:55:16 <fizzie> elliott: Well, it's not several magnitudes more (since there are exponentially less n-grams than (n+1)-grams; though in Google data they've minimum-count pruned it, so it's not quite as drastic), but sure, it's not free.
19:55:17 <elliott> ais523: now's your chance to convince me not to spend one hundred and fifty dollars on a bunch of data to feed to an IRC bot
19:55:27 <zzo38> The ZPAQ compression algorithm allows the compressed file to include a prediction program and a postprocessor program. I suppose one thing you can do is depending on the data being encoded
19:55:38 <elliott> fizzie: Did that Postgres have all the prefix-grams too? :p
19:56:31 <fizzie> elliott: I think it had all the data, yes. But this is from memory. (Though discounting again the pruning, the 4-grams would be implicit in the list of 5-grams.)
19:56:32 <ais523> elliott: it really isn't worth it
19:56:36 <pikhq> Looks like it'll be ~15 minutes.
19:56:45 <ais523> there are rather better things you could do with $150
19:56:50 <elliott> ais523: I don't think you realise just how dedicated I am to Markov IRC bots. They have always been in my heart.
19:56:58 <ais523> elliott: I don't think you're being serious
19:57:03 <elliott> And yeah, but I can't think of any right now and I have a lot of $150s lying around wasting away. (Money deteriorates, right?)
19:57:04 <ais523> hopefully, you don't either
19:57:10 -!- monqy has joined.
19:57:17 <oerjan> <CakeProphet> > let ngrams n [] = []; ngrams n ls = take n ls : ngrams n (tail ls) in ngrams 3 "hello friends"
19:57:29 <elliott> ais523: Hey, think of it as an investment: I learn about micro-optimisation. :p
19:57:29 * ais523 ponders whether to keep playing along and making the conversation even absurd, or just stoping
19:57:30 <oerjan> > map (take 3) $ tails "hello friends"
19:57:31 <lambdabot> ["hel","ell","llo","lo ","o f"," fr","fri","rie","ien","end","nds","ds","s"...
19:57:41 <ais523> *stopping
19:57:43 <elliott> ais523: I am actually tempted to buy the data sets, if that's what you mean.
19:57:47 <ais523> ah
19:57:57 <ais523> I just don't know how much use you'll get out of them
19:58:18 <ais523> to some people, that sort of info is worth $150, because they need them for a project or their job or whatever
19:58:22 <pikhq> And you could wget them faster than it'd take for them to ship.
19:58:25 <ais523> to you, that doesn't apply, couldn't you just use a smaller dataset?
19:58:58 <fizzie> pikhq: They're not wgettable. This is not the Google Books dataset.
19:59:28 <pikhq> fizzie: Oh, so he's discussing purchasing, what, a *larger* corpus?
19:59:38 <oerjan> sadly the reverse of drop is not a standard function
19:59:56 <fizzie> pikhq: Yes. The Google Web "1T" corpus. It's from 1 trillion words of web-text, not puny ~15 billion words of book-text.
19:59:59 <ais523> elliott: if you want to learn about micro-optimization, go work on TAEB
20:00:04 <elliott> ais523: Well, the bot would ostensibly be entertaining; random internet is a rather difficult thing to imagine. But mostly it sounds like fun optimising the processing and on-disk formats so that it can all run in approximately realtime.
20:00:14 <monqy> reverse of drop? drop from end? take from end? help?
20:00:26 <ais523> elliott: it wouldn't be $150 entertaining, and it doesn't need a trillion-word data set to be entertaining
20:00:38 <oerjan> monqy: drop from end
20:00:40 <ais523> and you'd get bored pretty quickly
20:00:42 <elliott> ais523: Without a trillion-word data set there's no challenge. :p
20:00:48 <oerjan> take from end isn't either, though
20:00:51 <elliott> And you deeply underestimate my love of Markov bots.
20:00:54 <monqy> is elliott considering paying 150 bux to get a bunch of words
20:00:57 <ais523> just get a billion-word data set and make 1000 copies, adding in some statistical variation
20:01:01 <elliott> monqy: No, a bunch of n-grams.
20:01:03 <elliott> :p
20:01:07 <monqy> is elliott considering paying 150 bux to get a bunch of n-grams
20:01:15 <CakeProphet> oerjan: reverse . take n . reverse :P
20:01:15 <oerjan> monqy: it would be useful for getting rid of the "ds","s"... part above
20:01:15 <ais523> I don't think fungot's entertainment factor is worth $150
20:01:16 <fungot> ais523: man. it just so happens that today, the 13th of april. another day of uneventful but highly satisfying deliveries.
20:01:26 <ais523> and you wouldn't make something more entertaining than that
20:01:32 <elliott> ais523: fungot doesn't listen to your input.
20:01:32 <fungot> elliott: examine the wall behind a door there? or why he always was a little cagey, even when discussing the proper thanks.
20:01:35 <oerjan> CakeProphet: i sort of assumed you'd like to preserve a _little_ laziness
20:02:03 <CakeProphet> oerjan: I don't see how that's possible when you're dealing with things at the /end/ of a list.
20:02:09 <monqy> oerjan: ah, yes. I remember the last time I wanted to do something like that I did something like a takeWhile ((3 ==) . length)
20:02:21 <oerjan> CakeProphet: oh it's not _that_ hard
20:02:27 <monqy> CakeProphet: it's not hard at all
20:02:33 <oerjan> > iterate init [1..] !! 5
20:02:34 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
20:02:39 <oerjan> > iterate init [1..10] !! 5
20:02:40 <lambdabot> [1,2,3,4,5]
20:02:57 <monqy> how inefficient is that
20:02:59 <ais523> elliott: that makes fungot all the more entertaining when it comes up with something great
20:02:59 <fungot> ais523: the one who got you killed him for it? its the size of a bus wouldnt kill me at your computer you might be here too.
20:03:02 <oerjan> it's just not a named function, also i'm not sure how effective iterate init is
20:03:21 <oerjan> CakeProphet: oh wait you said take not drop
20:03:29 <elliott> ais523: Are you seriously saying fungot is the most entertaining possible Markov bot?
20:03:30 <fungot> elliott: man. it just so happens that today, the 13th of april. another day of uneventful but highly satisfying
20:03:30 <oerjan> yeah that would not be lazy
20:03:32 <ais523> besides, if you do a really good bot that predicts what comes after input, all you'll end up with is making everyone else in the channel redundant
20:03:32 <CakeProphet> yeah..
20:03:51 <ais523> elliott: I'm saying it's entertaining enough, and being better wouldn't make us much more inclined to set it off
20:04:09 <CakeProphet> I think elliott is mostly interested in the challenge.
20:04:10 <elliott> fizzie clearly approves, anyway. Obviously.
20:04:22 <elliott> And he's obviously the most mature, reasoned person of us all.
20:04:24 <elliott> Obviously.
20:04:35 <ais523> CakeProphet: can't you come up with a similar challenge that doesn't cost a huge amount of money for no good reason?
20:04:41 <ais523> or at least, if you can't, why can't elliott?
20:04:43 <monqy> elliott: i thought that was you.....
20:04:55 <monqy> everything i thought i knew is a lie
20:05:02 <CakeProphet> oh well yeah.. I wouldn't spend money on it.
20:05:20 <monqy> :'(
20:05:26 <monqy> I wouldn't spend money either
20:05:33 <CakeProphet> if I spent money on that data I would want to be doing something kind of important.
20:05:43 <elliott> I'll spent monqy on it.
20:05:48 <ais523> elliott: I see no evidence that fizzie approves
20:05:55 <Phantom_Hoover> Friendship monqy.
20:06:06 <elliott> ais523: Well, he wouldn't be advising me if not, OBVIOUSLY.
20:06:42 <monqy> not disapproving enough not to advise you on it
20:07:15 <monqy> I don;t really know what else I'd do with a bunch of n-grams other than make a stupid bot
20:07:21 <CakeProphet> help how do I make strong AI.
20:07:22 <monqy> probably aim a bit higher than markov though
20:07:53 <monqy> for the fun challenge/reward of having something better than markov
20:07:57 <CakeProphet> markov is eh pretty cool guy, doesn't afraid of anything.
20:08:03 <monqy> what
20:08:12 <elliott> monqy: You can't really... do much that isn't Markov-ish with n-grams, unless I'm mistaken.
20:08:23 <monqy> :(
20:08:26 <ais523> so they're pretty limited
20:08:48 <monqy> I guess I'd want a different dataset then...
20:08:55 <elliott> ais523: are you actually trying to come up with reasons for me not to get them because it's hilarious
20:09:04 <monqy> 150 is a lot of bux
20:09:35 <fizzie> Given that what you get from an n-gram is (n-1) words of context, I think it's pretty safe bet to say that the Markov assumption (of order n-1) will hold for most things you do with them.
20:09:54 <monqy> :(
20:10:16 <ais523> elliott: I think I've come up with most of them already
20:10:20 <ais523> I need to dip into more outlandish ones
20:10:20 <CakeProphet> !wacro
20:10:20 <EgoBot> SDBC
20:10:27 <monqy> miserable
20:10:31 <ais523> umm, if you buy one you'll be investigated for international statistics fraud
20:10:34 <CakeProphet> !wacro
20:10:35 <CakeProphet> !wacro
20:10:35 <CakeProphet> !wacro
20:10:35 <EgoBot> WGALB
20:10:35 <CakeProphet> !wacro
20:10:35 <EgoBot> LDMR
20:10:35 <EgoBot> CSRIPBOD
20:10:36 <EgoBot> GDDLBT
20:10:38 <elliott> ais523: but of course
20:10:42 <fizzie> Anyway, I'm sure I don't either approve or disapprove. I personally would not pay for that stuff, but that's not much of a reason for anyone else to base their behaviour on.
20:10:43 <ais523> because it's routine when that much data is invovled
20:10:50 <ais523> and I'm not sure you'd pass the routine screenings
20:11:16 <ais523> hmm, I wonder if I've ever bought anything that fizzie wouldn't buy in the same situation
20:11:19 <ais523> almost certainly, I suppose
20:11:36 <pikhq> Okay. xz gets the file to 53% the size of zip.
20:11:47 <elliott> pikhq: How long did it take
20:11:50 <monqy> I used to buy stupid things sometimes. now I don't buy anything. maybe one day I will buy again.
20:11:54 <pikhq> 15 minutes to compress.
20:12:18 * CakeProphet buys stupid things all the time thanks to the internet.
20:12:25 <ais523> I mostly buy things I need to survive and do my job, like food, transport, things like combs and toothbrushes, and the occasional laptop
20:12:34 <monqy> by stupid things i mostly mean books i don't read
20:12:36 <pikhq> And 13 seconds to decompress.
20:12:39 <Vorpal> <ais523> hmm, I wonder if I've ever bought anything that fizzie wouldn't buy in the same situation <-- what is the context, can't find it in the scrollback.
20:12:46 <Vorpal> I mean, what product
20:12:50 <Vorpal> where you discussing
20:13:02 <CakeProphet> actually no everything I have purchased online so far has been a valuable asset.
20:13:05 <ais523> Vorpal: fizzie saying that he personally wouldn't buy something, but that other people shouldn't make decisions on that basis
20:13:11 <CakeProphet> I can smoke gingerbread-flavored smoke WHENEVER I WANT.
20:13:13 <oerjan> <elliott> fizzie: I _can't_ really generate backwards n-grams, can I? Not from forwards n-grams; only from raw data.
20:13:14 <ais523> and the context of /that/ is a corpus of n-grams extracted from 1 trillion words
20:13:17 <Vorpal> ais523, indeed, that I saw
20:13:25 <Vorpal> ais523, heh
20:13:26 <oerjan> i'm wondering if it's possible in principle...
20:13:40 <Vorpal> ais523, and the statistics fraud thingy?
20:13:41 <elliott> oerjan: it obviously is
20:13:45 <elliott> oerjan: as fizzie showed later
20:13:52 <oerjan> oh
20:13:54 <elliott> oerjan: instead of taking (n-one) as prefix and the last one as the word following it
20:14:01 <elliott> take all but the first as the suffix
20:14:04 <elliott> and the first one as the word preceding it
20:14:26 <ais523> there's nothing inherently asymmetrical in n-grams
20:14:37 <ais523> you just need to sort the dataset differently
20:14:42 <calamari> can you guys lend me a few n-grams?
20:14:57 <elliott> calamari: They'll cost you.
20:15:05 <calamari> :)
20:15:09 <CakeProphet> $20n per n-gram
20:15:18 <monqy> are backwards n-grams better or something I'm bad at knowing things
20:15:18 <quintopia> calamari: they better be n+1-grams when you give them back
20:15:19 <Vorpal> calamari, here is a sample for free. it is for n=0 case.
20:15:41 <Vorpal> (it is free according to CakeProphet that is)
20:16:05 <CakeProphet> yes I am an much credible expert
20:16:09 <oerjan> elliott: ok i was thinking of a (possibly) slightly harder problem, where you don't have exact counts but only the probability of each final letter given the n-1 first ones
20:16:12 <fizzie> ais523: I am rather stingy, so I guess it's likely there's something I wouldn't buy.
20:16:16 <elliott> oerjan: Right, that's what I was thinking.
20:16:19 <ais523> fizzie: so am I
20:16:40 <elliott> oerjan: Hmm, if you represent probability as the number of occurrences (which seems reasonable), then it's easy to do, I suppose.
20:16:48 <ais523> the problem is, quite a few things that people pay money for are available legally for free
20:16:57 <elliott> fizzie: Say, how many n-grams are there in total, approximately?
20:17:00 <elliott> In that DVD set.
20:17:00 <ais523> and most of the others, there is no reason to buy them, as they take up space and don't benefit you
20:17:08 <elliott> I'm wondering how many bits you need to store the occurrences of a word coming after a prefix.
20:17:10 <fizzie> elliott: Didn't the LDC description page have counts?
20:17:15 <elliott> fizzie: Oh, maybe. I don't remember it.
20:17:26 <oerjan> elliott: um then you have extra data, namely the total count. it's _without_ the total count it becomes slightly interesting.
20:17:26 <elliott> fizzie: I'm wondering whether it's a good idea to maybe reduce it a bit so that it takes up less bytes.
20:17:36 <elliott> oerjan: Well, right.
20:17:39 <fizzie> elliott: Check there, it's faster than a zcat | wc -l for the whole data.
20:18:20 <Phantom_Hoover> elliott, what are you *doing*?
20:18:26 <quintopia> oerjan: its one five-hundred-thousand-gram
20:18:50 <elliott> Phantom_Hoover: N-GRAMS.
20:19:02 <elliott> fizzie: zwc. :p
20:19:15 <oerjan> quintopia: wat
20:19:25 <CakeProphet> N, elliott's drug of choice.
20:19:44 <quintopia> oerjan: you can also pretend it is 500,000 1-grams
20:20:01 <Vorpal> fizzie, what is the data elliott is using? that thing you and ais discussed?
20:20:01 <CakeProphet> no need to pretend.
20:20:04 <oerjan> quintopia: that is not the same amount of information
20:20:18 <elliott> Vorpal: Ostensibly, a five-DVD set of Average Internet.
20:20:28 <monqy> am i in it
20:20:29 -!- MDude has joined.
20:20:29 <quintopia> you have to throw out some information to treat it that way
20:20:32 <Vorpal> elliott, which you bought legally?
20:21:17 <elliott> Vorpal: No, I stole the DVDs from the n-gram shop.
20:21:36 <CakeProphet> elliott is a sick perverted fuck.
20:21:39 <fizzie> Completely unrelated, but I have a slightly annoying on-off NetHack save. It's turn 25k-or-so, I'm standing in the Castle throne room, I've checked ~all so far generated objects, and there have been no (0) instances of: bags of holding (amulet-soko), magic lamps, jumping boots, levitation boots, potions of levitation, rings of levitation. I'm not quite sure how I'm supposed to go over the trapdoors, if I need to come back at some point.
20:21:46 <Vorpal> elliott, ah
20:21:53 <elliott> Vorpal: (I don't actually have it yet.)
20:22:00 <Vorpal> elliott, huh
20:22:03 <elliott> ais523: fizzie NEEDS YOUR HELP.
20:22:18 <fizzie> Well, there's the castle wand, but...
20:22:22 <elliott> Vorpal: But, I mean, there are comparably huge data-sets available for free download: http://ngrams.googlelabs.com/datasets
20:22:36 <CakeProphet> protip: use the free one
20:22:43 <ais523> fizzie: I take it you haven't looted the Castle chest yet?
20:22:59 <ais523> I will nearly always burn a wish on a blessed ring of levitation in that situation
20:23:03 <monqy> test with the free one and if you get something amazing go for the big one? I still wouldn't, though.
20:23:08 <Vorpal> fizzie, pudding farming.
20:23:10 <ais523> in fact, I wish for one at the Castle if I don't have a levitation osurce
20:23:11 <elliott> monqy: That's what I'm going to do.
20:23:24 <ais523> even if I can solve the immediate problem of the trapdoors
20:23:34 <elliott> fizzie: Something that isn't pudding farming.
20:23:37 <Vorpal> fizzie, also can't you get a spellbook from sacrifising when your god is already happy? Which could end up being levitation
20:23:48 <Vorpal> elliott, why!
20:23:48 <ais523> the most urgent use of wishes is filling out your ascension kit items
20:23:51 <Vorpal> :P
20:23:55 <ais523> =oLev is an ascension kit item
20:24:01 <calamari> fizzie: hack the save file
20:24:13 <elliott> Vorpal: Because then you get subjected to the cruel, harsh punishment of pudding farming.
20:24:19 <Vorpal> elliott, hm true
20:24:30 <Vorpal> elliott, some people /like/ it though
20:24:31 <elliott> EVEN I KNOW THIS AND I'M TERRIBLE AT NETHACK
20:24:33 <Vorpal> go figure
20:24:45 <elliott> Vorpal: Well, elves like you _do_ need to pass the time SOMEHOW.
20:24:51 <calamari> I never could get into nethack.. moria was fun tho
20:25:05 <fizzie> ais523: The wand is untouched, yes. I guess I could just go and wish for it, right.
20:25:14 <ais523> fizzie: you should make sure you have a way to recharge the wand first
20:25:25 <Vorpal> elliott, I'm terrible at nethack too, never had a streak of more than 2 ascensions.
20:25:26 <ais523> but apart from that, yes, unless you're going wishless
20:25:34 <ais523> Vorpal: ascending even once is not "terrible"
20:25:38 <elliott> What ais523 said. :p
20:25:40 <Vorpal> ais523, I was joking.
20:25:51 <fizzie> ais523: Possibly to counter the lack of e.g. a single BoH, I have stumbled across four randomly generated scrolls of charging.
20:25:57 <elliott> Vorpal: It's easier to tell when you're joking if it isn't indistinguishable from normal you
20:26:04 <ais523> I'm not sure I've ever got a long actual streak, but recently, games I play with the intention of ascending them, I typically ascend
20:26:12 <Vorpal> elliott, how do you know I'm not always the joker.
20:26:19 <ais523> fizzie: make sure the one you use on the wand is blessed
20:26:22 <ais523> Vorpal: because you have no sense of humour
20:26:38 <elliott> What ais523 said :P
20:26:40 <CakeProphet> the only game I've played recently is Zombies mode of CoD: Black Ops
20:26:44 <Vorpal> ais523, come on. I can laugh at things.
20:26:48 <CakeProphet> which I am amazing at.
20:27:01 <monqy> whats games help
20:27:36 <elliott> vagrant is the only good roguelike, guys.
20:27:46 <Vorpal> <fizzie> ais523: Possibly to counter the lack of e.g. a single BoH, I have stumbled across four randomly generated scrolls of charging. <-- may the RNG be with you
20:27:47 <ais523> elliott: incidentally, it turns out it took me longer to stop reading about Diplomacy than I typically take to stop reading TV Tropes
20:27:54 <elliott> ais523: haha
20:27:57 <ais523> Vorpal: was that meant to be a joke?
20:28:13 <CakeProphet> DWOHRF FAHRTRUSS
20:28:23 <monqy> hi
20:28:26 <ais523> elliott: I'm very good at TV Tropes dicipline, I mentally decide whether the number of trope-related tabs I have open should increase or decrease, and browse accordingly
20:28:30 <elliott> CakeProphet: is not a roguelike
20:28:40 <ais523> is a game, though
20:28:44 <ais523> well, if you fix the spelling
20:28:51 <elliott> (Slaves to Armok: God of Blood, Chapter II: Dwarf Fortress: Adventurer mode is a roguelike, though)
20:28:53 <Vorpal> <ais523> Vorpal: was that meant to be a joke? <-- what do you think
20:29:02 <elliott> (but Dwarf Fortress refers to Slaves to Armok: God of Blood, Chapter II: Dwarf Fortress: Dwarf Fortress mode)
20:29:08 <CakeProphet> elliott: you assume that I say things in a context when in fact I am just a bot.
20:29:17 <Vorpal> dwarf fortress is easier than nethack
20:29:17 <ais523> Vorpal: well, it had the structure and context in which I'd expect a joke
20:29:19 <ais523> but it wasn't funny
20:29:23 <ais523> at all
20:29:24 <elliott> I wonder if adventurer mode is any fun
20:29:27 <elliott> has anyone played it?
20:29:32 <Vorpal> ais523, it wasn't supposed to be a joke.
20:29:32 <monqy> no
20:29:48 <Vorpal> ais523, nor was it completely serious
20:29:52 <elliott> has ais523 played it, has Phantom_Hoover played it HAS ANYONE
20:30:04 <ais523> elliott: I haven't
20:30:07 <Vorpal> elliott, ToadyOne has.
20:30:11 <ais523> and almost certainly, at least one person has
20:30:15 <Vorpal> ais523, you never played df at all
20:30:19 <elliott> I doubt Toady has ever played his own game
20:30:22 <elliott> he wouldn't have any time to make it
20:30:28 <ais523> incidentally, UID 2 cropped up on Slashdot, to comment on CmdrTaco resigning
20:30:33 <Vorpal> elliott, he played it to debug it most certainly
20:30:40 <elliott> ais523: who is UID 2?
20:30:42 <ais523> and it lead to a whole thread of UID-based discussion
20:30:44 <ais523> elliott: Hemos
20:30:53 <ais523> which is apparently ungooglable because it's a pronoun in Spanish
20:30:58 <elliott> ais523: and also, is "resigning" actually the right term? I can't imagine Slashdot as a business :P
20:31:05 <ais523> elliott: it is a business, technically
20:31:11 <elliott> why does it have a .org, then?
20:31:21 <Vorpal> elliott, because ICANN fails
20:31:22 <ais523> because it wasn't a business originaly
20:31:23 <ais523> then kept the domain name
20:31:50 <CakeProphet> ICANNT lulz
20:31:56 <monqy> hi
20:32:02 <Vorpal> monqy, hello?
20:32:04 <monqy> hi
20:32:05 <elliott> ais523: is there a UID 0, or does it start at one?
20:32:31 <Vorpal> elliott, in what context
20:32:42 <Vorpal> on *nix, uid 0 is root
20:32:42 <elliott> Vorpal: find it yourself, if you want to butt in
20:32:53 <ais523> Vorpal: I don't know, but I guess it starts at 1
20:33:04 <elliott> CakeProphet: thanks
20:33:15 <CakeProphet> wat
20:33:19 <Vorpal> ais523, er, you should know uid 0 = root.
20:33:20 <elliott> monqy: sorry, misping
20:33:32 <ais523> Vorpal: I thought we were discussing Slashdot
20:33:40 <Phantom_Hoover> <elliott> has ais523 played it, has Phantom_Hoover played it HAS ANYONE
20:33:42 <elliott> HackEgo: Vorpal decided to butt in
20:33:43 <Vorpal> ais523, I assume UID 2 is some user there?
20:33:46 <Phantom_Hoover> I haven't, no.
20:33:47 <ais523> and Slashdot UIDs go above 65535, so are not traditional UNIX UIDs
20:33:48 <elliott> glogbot: But he doesn't know what we're talking about
20:33:55 <elliott> fizzie: Then you pinged him instead of me for some reason
20:34:03 <ais523> Vorpal: that was what started the conversation in the first place?
20:34:07 <Vorpal> ais523, oh so you mean slashdot account IDs
20:34:15 <elliott> yiyus: this is ridiculous
20:34:16 <CakeProphet> I was thinking, "Why would elliott ever thank me for something in this universe."
20:34:22 <Vorpal> ais523, I assume it was a slashdot user *called* "UID 2"
20:34:25 <CakeProphet> clearly I have moved to a new universe.
20:34:26 <Vorpal> assumed*
20:34:32 <elliott> Vorpal: smart
20:35:00 <Vorpal> EgoBot, really?
20:35:35 <CakeProphet> What i slove? Baby d on't hrut me.
20:35:38 <Phantom_Hoover> BeholdMyGlory, are we doing a 'ping random people' thing?
20:35:54 <elliott> Slereah: no
20:36:09 <ais523> you will end up annoying most of the channel if you keep it up
20:36:12 <Vorpal> pikhq, what made you think that?
20:36:14 <Phantom_Hoover> chickenzilla, looks like it.
20:36:16 <elliott> mycroftiv: Nonsense
20:36:19 <CakeProphet> CakeProphet: hi
20:36:29 <Vorpal> great one
20:36:31 * elliott downloads one of the five-gram zips to toy with the data.
20:36:37 <Phantom_Hoover> copumpkin, who cares, none of them say anything anyway.
20:36:47 <elliott> clog: copumpkin talks, you idiot.
20:36:50 <ais523> it's as bad as the sequence that lasted over an hour in another channel where everyone omitted the letter 'd' from all their comments after someone deliberately misinterpreted a joke by an admin
20:36:51 <CakeProphet> chickenzilla: yeah I am in agreement with yorick
20:37:04 <Vorpal> ais523, hehe
20:37:04 <elliott> ais523: I on't see why we should o that.
20:37:14 <yorick> CakeProphet: you are?
20:37:15 <Vorpal> elliott, fail. "should"
20:37:19 <elliott> oops i pinged the right person oops
20:37:20 <elliott> oops
20:37:21 <elliott> oops
20:37:22 <elliott> help
20:37:25 <Phantom_Hoover> boily, I know, but I wasn't talking about him.
20:37:27 <elliott> boily: help variable
20:37:29 <elliott> Phantom_Hoover: SNAP.
20:37:45 <CakeProphet> yorick: help why are you here.
20:37:47 <copumpkin> Phantom_Hoover?
20:37:47 <Vorpal> who on earth is boily. Never seen him/her/it talk
20:38:01 <Vorpal> yorick, deliberate misping hour I'm afraid.
20:38:02 <elliott> variable: You're such a Wamanuz.
20:38:08 <monqy> im back from being away. thanking people instead of greeting them sounds good, for a nice change of pace.
20:38:14 <monqy> maybe I will mix them up
20:38:15 <elliott> Man, I'd Zetro my jix, but unfortunately I accidentally olsner the whole Zwaarddi1k.
20:38:15 <yorick> CakeProphet: to make you feel more shame
20:38:41 <elliott> aloril is such a fungot, but rodgort did verily atehwa my Nisstyre; it was totally ineiros, mtve.
20:38:42 <fungot> elliott: and that is? you've had it for some time as any to start a new memo
20:38:51 <elliott> three seconds until ais523 rage/parts
20:38:57 <Zetro> Uh
20:38:57 <quintopia> Vorpal: boily is the creator of aubergine. how could you not know boilu?
20:39:00 <CakeProphet> elliott: boily, that is quite Deewiant of you.
20:39:09 <elliott> Zetro: hi
20:39:14 <Vorpal> quintopia, never heard of that language either
20:39:18 <monqy> Zetro: hi
20:39:18 <Vorpal> should check it out
20:39:18 <Zetro> Hi lol :P
20:39:27 <Phantom_Hoover> Vorpal, who said anything about languages?
20:39:30 -!- calamari has quit (Quit: Leaving).
20:39:37 <Deewiant> I disapprove of your pingery
20:39:38 <Phantom_Hoover> `quote pumpkin
20:39:41 <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 \ 558) <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
20:39:45 <ais523> Zetro: they've been nickpinging random people
20:39:52 <ais523> to see how long it takes before I get annoyed, I think
20:39:56 <Phantom_Hoover> aloril, you would.
20:40:09 <Vorpal> ouch. This is getting out of hand
20:40:10 <ais523> sorry about that
20:40:10 <Phantom_Hoover> twice11, don't flatter yourself.
20:40:24 <elliott> * Users on #esoteric: MDude monqy oerjan zzo38 pikhq elliott ais523 variable copumpkin Wamanuz FireFly BeholdMyGlory quintopia coppro_ augur iamcal sllide Slereah boily Vorpal sebbu Lymee Phantom_Hoover hagb4rd EgoBot Sgeo CakeProphet chickenzilla Nisstyre mtve myndzi itidus20 rodgort yorick atehwa ineiros Zwaarddi1k mycroftiv Zetro jix SimonRC fungot aloril jcp|other jcp shachaf lifthrasiir olsner lam
20:40:24 <fungot> elliott: it was a big goofy adult. slow down! man. how's it going to happen. you double check your mail maybe its a good idea.
20:40:24 <elliott> bdabot twice11 Gregor HackEgo glogbot Deewiant clog fizzie yiyus
20:40:27 <elliott> there, now things can't possibly get worse
20:40:30 <elliott> oops: lambdabot
20:40:30 <Vorpal> elliott, *stab*
20:40:32 <monqy> hey i'm on that list
20:40:33 <elliott> on to the next less annoying thing
20:40:40 <elliott> ais523: you can thank me later
20:40:44 <Deewiant> elliott: I'm going with Vorp: *stab*
20:40:49 <elliott> Deewiant: hi
20:40:52 <Vorpal> ^style
20:40:53 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
20:40:53 * Lymee stabs elliott
20:40:55 <Vorpal> ah
20:40:55 <elliott> hi
20:40:56 <elliott> :D
20:40:57 <CakeProphet> elliott: I was not pinged for some reason.
20:40:59 <monqy> hi
20:41:00 * Phantom_Hoover stabs elliott.
20:41:06 <elliott> CakeProphet: A personal failing, I suppose
20:41:08 <Lymee> ^style nethack
20:41:08 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
20:41:10 <elliott> Phantom_Hoover: im holes...
20:41:11 <Lymee> fungot, what is 1+1
20:41:12 <fungot> Lymee: they say that sometimes simply to hear its hiss can prove fatal. its long handle is designed to allow the lovely sweet taste to spread out slowly over his head, began barreling toward the moon!
20:41:16 <ais523> CakeProphet: possibly your client detects mass pings
20:41:18 <elliott> ^style homestuck
20:41:18 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
20:41:20 <ais523> your name was mentioned
20:41:21 <Phantom_Hoover> fungot, how do I reach Sokoban it is so annoying
20:41:21 <elliott> Anti-Lymee brigade in force.
20:41:22 <fungot> Phantom_Hoover: good idea! the thought of that?
20:41:26 <monqy> elliott: hes irssi and the default is only to ping when name is at the start of whatever
20:41:29 <Phantom_Hoover> fungot, yes but how.
20:41:29 <fungot> Phantom_Hoover: it just doesn't feel secure the matriorb and hatch a new mother has any shit they want to scrape off their bulge on to a particular type of three-way relationship of a black president?
20:41:30 <Vorpal> Lymee, this is the nethack rumors iirc
20:41:37 <elliott> Phantom_Hoover: Sokoban isn't hard to reach is it
20:41:38 <monqy> elliott: so this won't ping CakeProphet
20:41:42 <monqy> CakeProphet: but this willl
20:41:44 <elliott> monqy: oh well that's stupid
20:41:47 <monqy> elliott: yep
20:41:52 <Sgeo> Isn't Sokoban just below Oracle?
20:41:56 <Vorpal> elliott, no, but annoying.
20:42:00 <Phantom_Hoover> elliott, it *shouldn't* be, but I never reach it.
20:42:03 <CakeProphet> monqy: help how to change
20:42:04 <Phantom_Hoover> Don't ask me why.
20:42:08 <ais523> Sgeo: it's parallel; the /entrance/ is just below Oracle
20:42:12 <augur> elliott: sub
20:42:13 <augur> sup
20:42:15 <Vorpal> CakeProphet, depends on client
20:42:22 <Phantom_Hoover> Everything always unravels and I never remember why.
20:42:32 <CakeProphet> Vor "doesn't read context" pal
20:42:33 <monqy> CakeProphet: i forget. oops. i haven't bothered fixing it, myself, but i rememeber trying once.
20:42:40 <Lymee> fungot, elliott sucks.
20:42:41 <fungot> Lymee: what does this mean? as for anyone surviving that, i thought adam baldwin from was a man shouldn't be able to pull this off i think i turning gay now :d
20:42:43 <elliott> Phantom_Hoover: You can go there before the Mines.
20:42:45 <monqy> I forget why I unfixed it
20:42:45 <elliott> Or is it naturally before hte mines.
20:42:46 <elliott> I forget.
20:42:48 <monqy> maybe ssomething else broke
20:42:49 <Vorpal> CakeProphet, I saw that, but it won't ping me
20:42:52 <Sgeo> ais523, technicalities, technicalities >.>
20:43:06 <Phantom_Hoover> elliott, I know that.
20:43:18 <Phantom_Hoover> That's what makes it all the more baffling.
20:43:49 <Vorpal> Phantom_Hoover, practise harder, that is how you manage nethack
20:43:50 <CakeProphet> ^style jargon
20:43:51 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
20:43:51 <elliott> oh, good: http://news.ycombinator.com/item?id=2916247
20:43:56 <CakeProphet> fungot: help how do I shot web?
20:43:57 <elliott> seems like _why is okay
20:43:57 <fungot> CakeProphet: i'm getting so fed up i could find.
20:44:33 <elliott> holy crap, this thing is a gig uncompressed
20:44:37 <CakeProphet> fungot: find what?
20:44:38 <fungot> CakeProphet: if you're lucky, when you could
20:44:45 <elliott> ais523: remind me never to open this text file with a normal text editor
20:45:12 <Phantom_Hoover> elliott, you made fizzie use the non-ESR version, didn't you?
20:45:33 <elliott> Phantom_Hoover: <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
20:45:33 <CakeProphet> fungot: you made me fun
20:45:33 <fungot> elliott: one of 25 d's consecutively will cause you to use
20:45:34 <fungot> CakeProphet: if there's one language that had expect is running in the " sh" manual. nothing improves a really fun time reloading a sco box here this weekend.
20:45:36 <elliott> It's not the jargon file.
20:45:39 <elliott> It's UNIX-HATERS, per my request.
20:45:43 <Phantom_Hoover> Oh, right.
20:45:43 <elliott> :p
20:46:42 <elliott> Ho hum, I guess I will write this program in C.
20:46:52 <CakeProphet> Gregor: ^^^^^^^^^
20:47:16 <Vorpal> elliott, what program
20:47:24 <elliott> Vorpal: n-gram processor.
20:47:28 <Vorpal> elliott, why C
20:47:39 <elliott> Vorpal: Because I need to process hundreds of gigabytes of data.
20:47:44 <elliott> Without waiting all year.
20:47:47 <Vorpal> elliott, and haskell isn't up to that?
20:47:56 <elliott> Vorpal: Sure it is, but I'm really impatient.
20:48:05 <elliott> The time spent micro-optimising a C program will pay off because Unix.
20:48:11 <Vorpal> heh
20:48:13 <CakeProphet> 1) open perl 2) use slurp mode 3) ???? 4) profit
20:48:16 <elliott> It's obviously going to be IO-bound, and Unix IO is terrible.
20:48:18 <Vorpal> elliott, use assembler
20:48:19 <elliott> CakeProphet: Good luck with that
20:48:21 <elliott> Vorpal: no
20:48:23 <Vorpal> CakeProphet, slurp mode?
20:48:28 <elliott> Vorpal: The bot itself will be written in Haskell of course
20:48:28 <CakeProphet> elliott: well that /was/ sort of the premise of the joke...
20:48:45 <CakeProphet> Vorpal: makes the read operation read the entire contents of the file to a string.
20:48:46 <Vorpal> elliott, it is even faster if you know what you are doing in asm
20:48:52 <Vorpal> CakeProphet, XD
20:48:53 <elliott> Vorpal: No it's not, IO-bound
20:49:07 <Vorpal> elliott, well writing your own IO layer I mean
20:49:09 <Vorpal> in the kernel
20:49:27 <Vorpal> elliott, anyway how large was it?
20:49:29 <Vorpal> a few GB?
20:49:34 <Vorpal> should fit nicely into ram
20:49:40 <elliott> Have I really got one with a shitload of punctuation as the starters?
20:49:47 <elliott> What a terrible test dataset.
20:49:50 <elliott> Vorpal: About a terabyte.
20:50:00 <Vorpal> elliott, you have the disk for that!?
20:50:01 <quintopia> should fit nicely into RAM
20:50:12 <quintopia> because who doesnt have a terabyte of ram?
20:50:13 <ais523> is a terabyte of RAM standard yet?
20:50:15 <elliott> Vorpal: A terabyte's worth of external storage costs about 0 pounds
20:50:28 <ais523> (I actually don't know, I tend to have really low-end hardware)
20:50:30 <Vorpal> elliott, over the internet? or compressed? or both?
20:50:34 <CakeProphet> Vorpal: that's $70 to be exact
20:50:35 <elliott> ais523: I refuse to believe you don't know
20:50:45 <ais523> I know a TB of hard drive storage was standard a few years ago for external drives
20:50:53 <ais523> and presumably is beginning to become standard for internal drive snow too
20:50:57 <ais523> *drives now
20:51:01 <elliott> Vorpal: What?
20:51:02 <ais523> but I'm not sure about RAM
20:51:07 <Vorpal> ais523, I have 16 GB in my desktop. It is probably mid-upper end. I know someone with a desktop with 32 GB RAM. I have over 1 TB of disk storage though
20:51:17 <ais523> are people still sticking at 3GB because Windows refuses to use any more unless you pay it lots of money?
20:51:31 <CakeProphet> Vorpal: compared to most people I know 16 GB is currently upper-mid-upper end.
20:51:35 <Vorpal> elliott, where the fuck are you going to be storing 1 TB of data. You said 5 DVDs before. That is way less
20:51:43 <CakeProphet> lolcompression
20:51:48 <ais523> Vorpal: uncompressed, presumably
20:52:04 <Vorpal> ais523, right. Whatever it is compresses extremely well then
20:52:14 <elliott> Vorpal: It's called text.
20:52:22 <elliott> Text compresses extremely well, unsurprisingly.
20:52:31 <ais523> and alphabetised text, even more so
20:52:34 <elliott> Vorpal: Anyway, it comes on five DVDs, but obviously decompresses to disk.
20:53:01 <Vorpal> elliott, it won't be IO bound at that compression ratio I suspect. Might well be CPU bound, depending on compression algorithm. If gzip it will probably be limited by ram bandwidth
20:53:10 <Vorpal> (guesstimate)
20:53:15 <quintopia> i dont use hard disks anymore. my data is stored on a solid state device etched into a planet-sized ball of diamond. upside: i can store 2000 exabytes of movies, books, and music. downside: a fetch takes about 8000 years. it's a tradeoff.
20:53:18 <elliott> Vorpal: dude, you have no idea what you are talking about.
20:53:21 <pikhq> ais523: Actually, you only need to get 64-bit Windows to surpass 3GiB.
20:53:21 <elliott> I'm working on the uncompressed data.
20:53:36 <ais523> pikhq: which still, for many people, means an upgrade that costs money
20:53:50 <elliott> ais523: most people don't worry about the cost of windows when buying expensive hardware
20:53:51 <Vorpal> quintopia, did you calculate those values?
20:53:54 <ais523> but yes, I think that they'd have trouble justifying an arbitrary limit that's close to MAXINT
20:54:01 <ais523> on a 64-bit system where MAXINT is higher
20:54:26 <pikhq> Home Basic does 8GiB, Home Premium 16, Pro, Enterprise, & Ultimate 192.
20:54:42 <elliott> Hey quintopia, I found you a subreddit: http://static.reddit.com/ads/PostCollapse.jpg
20:54:44 <Vorpal> pikhq, what one is only limited to the address space limits of the processor?
20:54:51 <pikhq> 2008R2 Foundation does 8, Standard 32, Enterprise, Datacenter and Itanium does 2 TiB.
20:54:52 <oerjan> > 2.30584301e21 ** (1/3)
20:54:53 <lambdabot> 1.3211229749647357e7
20:54:55 <pikhq> Vorpal: Linux.
20:55:04 <Vorpal> pikhq, so they sell no windows for HPC?
20:55:16 <oerjan> > 2.30584301e21 ** (1/2)
20:55:17 <lambdabot> 4.801919418315972e10
20:55:44 <Phantom_Hoover> Vorpal, it wouldn't make very much sense.
20:55:47 <oerjan> quintopia: i'm gonna hazard a guess your etching is not very optimal
20:55:51 <Phantom_Hoover> I mean, what would you look at?
20:56:02 <Vorpal> Phantom_Hoover, eh?
20:56:19 <quintopia> Vorpal: the 8000 is calculated. the diamond planet was said to be about 4000 lightyears away. i pulled the capacity out of my ass.
20:56:31 <Vorpal> quintopia, ah
20:56:35 <elliott> Calling a program that generates a tree gentry: hilarious?
20:56:37 <quintopia> let's say "i share the planet with other people"
20:56:37 <Phantom_Hoover> quintopia, oh god what are you doing.
20:56:55 <pikhq> Vorpal: Windows HPC seems to be all about clustering. Without a single shared address space.
20:57:40 <Vorpal> pikhq, ah
20:57:58 <pikhq> And it has a max of 128 GiB.
20:58:02 <pikhq> Per node, obviously.
20:58:03 <Phantom_Hoover> Can you even etch onto diamond?
20:58:13 <Vorpal> pikhq, huh. Datacenter does more
20:58:33 <pikhq> Yup.
20:58:34 <Phantom_Hoover> I thought you needed a semiconductor or something.
20:58:52 <pikhq> Fun fact: there is no Microsoft end-user 32-bit OS that supports more than 4 GiB.
20:59:00 <Vorpal> Phantom_Hoover, you could use impure diamond
20:59:01 <pikhq> Even ones that absolutely need PAE to run.
20:59:21 <Phantom_Hoover> Vorpal, somehow I doubt the planet is correctly doped.
20:59:29 <Vorpal> pikhq, which ones need PAE then
20:59:33 <elliott> Phantom_Hoover: That's illegal.
20:59:40 <pikhq> I *think* they started mandating NX support.
20:59:46 <pikhq> With 7.
20:59:50 <Vorpal> pikhq, ah. So no one uses PAE
20:59:53 <Vorpal> how silly
21:00:08 <olsner> pikhq: the amount of memory allowed is included in the kind of license you have, and the normal "client" licenses iirc put the limit at 4GB
21:00:20 <pikhq> olsner: Only on 32-bit.
21:00:32 <ais523> someone managed to hexedit a 32-bit consumer Windows (I forget which) into supporting more than 4 GiB of memory
21:00:32 <pikhq> x86_64 Windows starts at 8 and goes up.
21:00:43 <ais523> finding which bytes the limit was stored in must have been quite tricky
21:00:52 <pikhq> Wouldn't be too hard once you have that, though.
21:00:52 <olsner> pikhq: ah, ok ... it's not any kind of technical limit anyway, just a "how good computer you can have without paying more for the OS"
21:00:59 <pikhq> olsner: *Very* well aware.
21:01:02 <elliott> ais523: not really: put too much ram in, stick a debugger on it
21:01:04 <Vorpal> ais523, you could disassemble it to figure out
21:01:06 <olsner> pikhq: ok :)
21:01:13 <pikhq> I mean, hell, Windows *2000* went up to 32 GiB.
21:01:17 <elliott> there are tools for doing low-level debugging of windows, IIRC
21:01:20 <ais523> neither approach seems too practical
21:01:36 <ais523> you'd have to debug/disassemble Windows' entire boot sequence, and that takes forever even running full speed
21:01:54 <ais523> or, hmm, maybe just the memory allocator, that would be a lot faster
21:01:58 <pikhq> Oh, hrm. Linux currently has a hard-coded limit on addresses.
21:02:00 <Vorpal> elliott, microsoft provides a kernel debugger
21:02:03 <Vorpal> pikhq, oh?
21:02:05 <ais523> because the allocator would need to know what the limit was too
21:02:06 <pikhq> You can only use up to 128 TiB.
21:02:14 <elliott> ais523: running it under a kernel debugger won't slow it down that much..
21:02:15 <pikhq> ... Per process.
21:02:28 <elliott> ais523: you just need to breakpoint when it crashes, then edge back from there :)
21:02:28 <pikhq> Also, only 64 TiB of physical RAM.
21:02:51 <Vorpal> pikhq, so less total than per process?
21:02:51 <Vorpal> what
21:02:55 <Lymee> ^
21:03:05 <Vorpal> also why does the hard limit exist at all?
21:03:26 <elliott> hysterical raisins, presumably
21:03:41 <elliott> imagine if you multiply the amount of ram by a certain value
21:03:48 <elliott> --> overflow
21:04:05 <Vorpal> elliott, why would you multiply it
21:04:14 <Phantom_Hoover> Don't x86-64 processors have hard limits on virtual/physical memory anyway?
21:04:26 <Vorpal> Phantom_Hoover, yes 48 bits.
21:04:35 <elliott> Vorpal: To put it on the same scale as another value?
21:04:36 <Vorpal> and individual processors can have lower limits
21:04:41 <Vorpal> elliott, maybe
21:04:45 <pikhq> 64 TiB is 46 bits, 128 TiB is 47...
21:04:51 <Vorpal> on my laptop:
21:04:53 <Vorpal> address sizes: 36 bits physical, 48 bits virtual
21:05:40 <pikhq> The per-process limit makes a little bit of sense.
21:05:43 <Vorpal> pikhq, hm the limit is not speced to be 48 bits? just that you have to sign extend it right?
21:05:56 <Vorpal> iirc
21:06:05 <pikhq> One hard-codes a 48-bit assumption, and Linux takes half the address space for itself.
21:06:17 <pikhq> I have no idea about the physical RAM limit.
21:06:31 <Vorpal> pikhq, uh it is signed. Remember, on x86_64 the memory is signed
21:06:35 <pikhq> Yes.
21:06:56 <pikhq> Linux uses half the address space.
21:07:06 <Vorpal> kernel lives in the negative half yes
21:07:17 <pikhq> Well, except for somewhat confusing cases on x86_32, where you can get more complicated splits.
21:07:56 <Vorpal> yeah
21:08:02 <Vorpal> pikhq, 3/1 iirc?
21:08:18 -!- boily has quit (Ping timeout: 260 seconds).
21:08:18 <pikhq> Yeah, that's one of the splits.
21:08:29 <pikhq> You can also do 2/2 and even 1/3.
21:08:33 <Vorpal> heh
21:08:39 <Vorpal> pikhq, what is the point of those
21:08:44 <pikhq> No idea.
21:08:54 <Vorpal> the user space don't need to address much of the kernel anyway
21:12:09 <pikhq> Apparently the kernel's portion of the address space is the same in all processes.
21:12:17 <ais523> Vorpal: are you the same Vorpal who does updates on speeddemosarchive.com? or is it just a username coincidence?
21:12:26 <ais523> (I'm guessing the second)
21:12:42 <Vorpal> ais523, never even heard of that site
21:12:50 <ais523> so yes
21:12:57 <pikhq> So I suppose in some cases the address split could cause issues.
21:13:04 <ais523> it's a good site, but one you probably wouldn't be interested in
21:13:19 <Vorpal> ais523, what is it about? TAS?
21:13:27 <ais523> unassisted speedruns
21:13:38 <Vorpal> ah
21:13:42 <ais523> it's the unassisted counterpart of TASvideos
21:13:45 <pikhq> Also, the kernel's address space is always mapped to the first x bytes of physical RAM.
21:14:23 <pikhq> Which is apparently *really* useful for munging with devices that are mapped into physical address space.
21:14:37 <Vorpal> pikhq, eh?
21:14:47 <Vorpal> pikhq, kernels can be reallocated. It is a kernel option
21:14:48 <pikhq> Consider, for instance, a graphics card.
21:15:02 <Vorpal> reallocatable kernel
21:15:42 <Vorpal> pikhq, anyway a graphics card tend to be mapped above 1 GB or so
21:16:04 <pikhq> Yes, that changes where it gets loaded. That doesn't change that it assigns the high X bytes of virtual space to the low X bytes of physical space.
21:16:53 <Vorpal> oh
21:16:56 <Vorpal> interesting
21:17:09 <Vorpal> pikhq, why would it do that though
21:17:44 <pikhq> The single largest thing that makes easier is X.
21:18:07 <pikhq> The kernel can just permit X to access the part of that address space that corresponds to the graphics card.
21:18:27 <Vorpal> pikhq, yes it does that iirc
21:18:33 <Vorpal> which is why X needs root
21:18:54 <elliott> <Vorpal> pikhq, kernels can be reallocated. It is a kernel option
21:18:56 <elliott> "reallocated"
21:19:03 <elliott> also
21:19:07 <pikhq> Also, this seems to be the same address space that's used in kernel mode.
21:19:08 <elliott> can I just say that X's architecture
21:19:09 <elliott> makes me sad
21:19:12 <elliott> and I don't like X
21:19:12 <Vorpal> elliott, relocated
21:19:13 <Vorpal> typo
21:19:13 <elliott> and it's a bad thing
21:19:23 <elliott> i would just like to say that and can we all agree
21:19:24 <pikhq> When you do a system call, you change the ring you're in, but not the page table.
21:19:26 <Vorpal> elliott, long live wayland
21:19:29 <Vorpal> or whatever
21:19:29 <elliott> and then also agree that graphics systems needing root is terrible
21:19:34 <pikhq> elliott: Yes, agreed.
21:19:36 <elliott> Vorpal: how about @ :)
21:19:56 <Vorpal> elliott, once you START IMPLEMENTING it,
21:20:02 <Vorpal> then maybe
21:20:14 <elliott> Vorpal: you implement things without figuring them out properly first?
21:20:20 <ais523> is there any way to trick X into starting while it doesn't have root?
21:20:20 <Vorpal> elliott, go figure them out
21:20:29 <ais523> using, say, fbdev as the driver, it wouldn't need one
21:20:38 <Vorpal> ais523, it is suid, remove that suid, see what happens
21:20:43 <shachaf> @slap elliott
21:20:43 <lambdabot> go slap elliott yourself
21:20:43 <elliott> Vorpal: umm, clearly you've never had any actual difficult problems before
21:20:46 <shachaf> @slap elliott
21:20:46 * lambdabot places her fist firmly on elliott's jaw
21:20:48 <elliott> :P
21:20:52 <elliott> shachaf: :'(
21:20:54 <elliott> i've already been stabbed
21:20:57 <elliott> multiple times
21:21:01 <Vorpal> elliott, problems with what?
21:21:03 <elliott> is not my punishment harsh enough
21:21:03 <pikhq> So, it has a *constant* address space map to make it not a royal *pain* to do system calls, and it has constant address space map corresponding to physical space just to make hardware access easier.
21:21:05 <shachaf> @stab elliott
21:21:05 * lambdabot beats up elliott
21:21:08 <elliott> oh
21:21:09 <ais523> Vorpal: you get "permission denied", I think
21:21:21 <elliott> Vorpal: I can't just sit in a corner and suddenly work out all the details of @ by putting raw effort into it :P
21:21:31 <Vorpal> elliott, why not
21:21:44 <elliott> Vorpal: go solve the Riemann hypothesis
21:21:47 <elliott> I'll wait here
21:21:54 <elliott> it should just take a lot of effort, right?
21:22:05 <Vorpal> hm... Done. It is undeciable. Why that is is undecidable.
21:22:07 <pikhq> Oh, yeah, and since that address space map *is* constant, it needs to have physical space mapped in it so that the kernel *itself* can access memory-mapped hardware.
21:22:13 <pikhq> Such as anything DMA.
21:22:22 <elliott> Vorpal: false
21:22:30 <Vorpal> elliott, oh?
21:22:35 <Vorpal> how do you know
21:23:01 <Vorpal> it could be true, but there being no way to prove it.
21:23:10 <elliott> Vorpal: that's not what undecidable means, but I presumed you meant that
21:23:23 <Vorpal> if it was false we could always find a counter example
21:23:31 <elliott> anyway, hmm, it could be true, but I suspect it's not possible for it to be unprovable
21:23:31 <Vorpal> elliott, right, I used the wrong word. Sorry.
21:24:08 <elliott> consider ZFC+RH and ZFC+~RH; take the counterexample from the latter; apply it to the former; former system is proved inconsistent. but then the latter could have no constructive proofs of any such values
21:24:16 <elliott> I'll leave this up to oerjan before I make a fool of myself
21:24:29 <elliott> hey ais523, what's the longest word
21:24:33 <Vorpal> pikhq, heh
21:24:39 <Sgeo> RH?
21:24:51 <ais523> elliott: in what context?
21:25:00 <elliott> ais523: Google Books n-gram data :P
21:25:07 <ais523> I don't know
21:25:08 <elliott> oh, wait, I have the total counts set, I can find out
21:25:15 <elliott> wait, no I can't
21:25:19 <elliott> CakeProphet: what's the longest word in the one-gram set
21:25:19 <Sgeo> Oh, derp, riemann hypothesis
21:26:09 <Sgeo> ...and I would have seen that if I had scrolled up
21:27:11 <elliott> http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13
21:27:14 <elliott> (for my own reference)
21:27:26 <elliott> "Sequences that look like urls or email addresses form one token."
21:27:26 <elliott> neat
21:27:33 <elliott> grr, it doesn't say how big the individual files are
21:27:40 <elliott> when uncompressed
21:27:56 <elliott> hmm, I suppose I might want to operate streaming, so that I can pipe gunzip into it
21:27:58 <elliott> rather than mmapping
21:28:01 <elliott> that saves disk overhead
21:29:18 <CakeProphet> elliott: uh, I don't know I haven't looked at it yet.
21:29:28 <CakeProphet> DOING IMPORTANT FREELANCING STUFFS.
21:29:55 <elliott> ais523: Vorpal: pikhq: asserts are on even without -g and with optimisation options, right? only NDEBUG has an affect on it
21:29:59 <elliott> s/affect/effect/ I think
21:30:12 <Sgeo> elliott, go serve as the integral
21:31:22 -!- hagb4rd has quit (Ping timeout: 252 seconds).
21:31:49 <Vorpal> elliott, yeah
21:32:10 <Vorpal> elliott, where can I get that data btw?
21:32:17 -!- kwertii has joined.
21:32:24 <ais523> elliott: asserts are just macros
21:32:30 <ais523> they know nothing of the compiler
21:32:46 <elliott> Vorpal: http://ngrams.googlelabs.com/datasets for one-to-five-grams of various datasets from books, including year information; http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13 for six DVDs worth of internet for $150
21:33:02 <ais523> 5g of datasets wouldn't be very heavy
21:33:09 <elliott> ais523: eh?
21:33:16 <elliott> oh
21:33:26 <ais523> elliott: I wouldn't expect /you/ to take that long to get a joke, even a relatively weak one
21:33:40 <fizzie> elliott: From the Google web data, a random 4-gram sample I just grepped from my logs. When "shit hits the", what it hits is the "fan" in 16721 cases, the "fans" in 257 cases, the "proverbial" in 93 cases (of which 82 are the "proverbial fan"), the "fangs" in 60 cases, the "can" in 51 cases, and the "water" in 42 cases. (And presumably other things with counts <40, or was it <20. Anyway.)
21:33:56 <elliott> ais523: it took me about three seconds :P
21:34:16 <elliott> fizzie: X-D
21:34:17 <ais523> elliott: exactly, you're normally much faster than that
21:34:29 <elliott> fizzie: Just 16721? It's a common expression
21:34:41 <elliott> ais523: I didn't realise g meant weight-gram
21:34:46 <Deewiant> f8+'ua'=*+*
21:34:53 <elliott> ais523: I thought it was another "REASON NOT TO BUY THOSE DVDS"
21:34:58 <elliott> Deewiant: fungify?
21:35:00 <ais523> elliott: oh, no
21:35:05 <Deewiant> Ye
21:35:13 <ais523> that's what fizzie's saying, if the data only has 16721 instances of a proverb that common...
21:35:27 <elliott> gentry: gentry.c:20: process: Assertion `word_len < (sizeof(words[i]) / sizeof((words[i])[0]))' failed.
21:35:28 <elliott> Aborted
21:35:28 <elliott> cool, an actual bug
21:35:31 <elliott> Deewiant: what is amazing about it
21:35:33 <elliott> fizzie: lol
21:35:46 <elliott> Deewiant: And surely xy= is always shorter than either zero or one
21:35:51 <elliott> erm
21:35:52 <elliott> ais523: lol
21:36:42 <Deewiant> elliott: Nothing, I just sometimes fungify largeish numbers
21:36:44 <fizzie> ais523: "shit hits the fan" has "about 770,000 results" in Google entire; I don't know how many trillion words the whole web is, but probably much more than "one", like this dataset has. (Actually direct extrapolation would say the web is 46 trillion words.)
21:36:52 <elliott> Deewiant: Oh, I see
21:36:56 <elliott> Deewiant: But <elliott> Deewiant: And surely xy= is always shorter than either zero or one
21:37:06 <Deewiant> elliott: I don't understand what you mean
21:37:09 <ais523> aren't the number of results in Google searches completely fictional?
21:37:24 <elliott> Deewiant: Maybe = does something other than what I expect
21:37:38 <elliott> fizzie: "About 769,000 results (0.16 seconds)" here.
21:37:40 <fizzie> ais523: Maybe not quite "completely", but quite fictional.
21:37:49 <ais523> moderately fictional
21:38:07 <Deewiant> elliott: The only = there is in '=, which pushes fromEnum '=' on the stack
21:38:08 <ais523> so why is it there? tradition? making people feel warm and fuzzy?
21:38:11 <elliott> Therefore expressions passed to assert() must not contain side-effects since they will not happen when debugging is disabled. For instance:
21:38:11 <elliott> assert(x = gets());
21:38:11 <elliott> will not read a line and not assign to x when debugging is disabled.
21:38:13 <elliott> thanks wikipedia
21:38:16 <elliott> Deewiant: Ah
21:38:25 <elliott> I really like how Wikipedia uses gets as an example, and /uses it wrongly/.
21:38:30 <elliott> I mean, even more wrongly than gets used properly.
21:38:50 <elliott> ais523: latter, I suspect
21:38:52 <elliott> ais523: just like I'm Feeling Lucky
21:39:06 <Vorpal> elliott, correct the wp article
21:39:10 <elliott> "Google Search is the most-used search engine on the World Wide Web,[3] receiving several hundred million queries each day through its various services.[4]"
21:39:11 <elliott> that few?
21:39:13 <Vorpal> anyone can edit after all!
21:39:14 <elliott> I'd expect billions per day
21:39:17 <elliott> Vorpal: cba
21:39:21 <ais523> elliott: no, that makes sense; asserts only run in debug mode, and only in debug mode can you guarantee that gets() doesn't overflow (because you can assume that the dev is typing the input)
21:39:29 <elliott> ais523: gets takes an argument
21:39:29 <fizzie> elliott: Apparently there are 55528776221 bigrams, if I'm reading this irclog right.
21:39:29 <ais523> in production code, clearly you don't want to use gets()
21:39:43 <elliott> fizzie: Number of fivegrams: 1,176,470,663
21:39:51 <ais523> oh wow, it does as well
21:40:00 <Deewiant> "{ +"*+'}8'/"w0)"*+**+*
21:40:08 <elliott> Deewiant: 1,024,908,267,229
21:40:14 <ais523> forgive me for not knowing the API of gets()
21:40:15 <elliott> (that's the number of femtograms)
21:40:17 <ais523> it's not like I ever use it
21:40:20 <elliott> ais523: unacceptable :)
21:40:24 <Deewiant> elliott: 'M'}8'}'D+*+'}9' '{28'{55'@**+**+**+**
21:40:29 <pikhq> You mean to tell me Google has fewer queries per day then there are on the Internet?
21:40:32 <elliott> Deewiant: is that the best you can do?
21:40:32 <pikhq> I call bullshit.
21:40:39 <elliott> pikhq: eh?
21:40:47 <Deewiant> elliott: Define "best"
21:40:53 <pikhq> elliott: There's like a couple billion people on the Internet.
21:40:56 <elliott> Deewiant: Shortest
21:41:10 <Deewiant> Probably not, no
21:41:22 <Deewiant> That's ASCII-restricted too
21:41:23 <Deewiant> I think
21:41:25 <Vorpal> elliott, you use os x sometimes right? I have a question. I have a macbook next to me, it has been in sleep for a while. Every few hours it wakes up and makes a "checking if there is a cd in the drive"-noise. Is that normal?
21:41:27 <elliott> Google flags search results with the message "This site may harm your computer" if the site is known to install malicious software in the background or otherwise surreptitiously. Google does this to protect users against visiting sites that could harm their computers. For approximately 40 minutes on January 31, 2009, all search results were mistakenly classified as malware and could therefore not be cl
21:41:27 <elliott> icked; instead a warning message was displayed and the user was required to enter the requested URL manually. The bug was caused by human error.[30][31][32][33] The URL of "/" (which expands to all URLs) was mistakenly added to the malware patterns file.[31][32]
21:41:29 <elliott> yikes, forty minutes?
21:41:36 <elliott> I wonder how many millions of pounds they lost
21:41:38 <Vorpal> it is an older macbook, white model with large space between keys
21:41:43 <Deewiant> elliott: Latin-1: "MñT"f2+*+'û'6f8+"õ Á"*+**+**
21:41:55 <elliott> Vorpal: That used to happen to me with my iMac, I think.
21:42:04 <elliott> Vorpal: It's probably nothing to worry about, maybe just a bug in the firmware or something.
21:42:09 <Vorpal> elliott, ah.
21:42:14 <elliott> Vorpal: Maybe related to wake-on-LAN, but I doubt it.
21:42:22 <Vorpal> elliott, doubtful. Not even plugged in
21:42:28 <Vorpal> I mean, apart from to power
21:42:33 <Vorpal> elliott, and wlan is off
21:42:48 <pikhq> Yeah, there's apparently about 1 billion Google searches per day, and 2 billion YouTube views.
21:43:01 <elliott> more YouTube views than Google searches?
21:43:02 <elliott> really?
21:43:06 <Vorpal> yeah, what
21:43:06 <pikhq> Yeah.
21:43:14 <elliott> huh
21:43:19 <Vorpal> pikhq, how many youtube searches?
21:43:19 <ais523> that doesn't surprise me at all
21:43:24 <Vorpal> ais523, why
21:43:25 <pikhq> Vorpal: Couldn't find stats.
21:43:34 <elliott> fizzie: What _is_ varikn, anyway.
21:43:41 <elliott> Vorpal: because ais523 doesn't use Google, and assumes everyone is him
21:43:45 <fizzie> elliott: Another Google-data example. Here in "foo [x]" the x is the probability of the word foo in that particular context. "The beatings will continue [0.976] until [0.992] morale [0.944] improves [1]."
21:43:46 <ais523> because you only search when you don't know the page you're aiming for, and when you're on YouTube, you stay there keeping on watching videos continuously
21:43:47 <elliott> except maybe they like watching cute kittens a bit more than him
21:43:48 <elliott> :-P
21:43:58 <ais523> basically, you need to view YouTube to use it
21:44:01 <Vorpal> ais523, I search when I'm too lazy to type the full url
21:44:04 <ais523> whereas you don't need to search to visit a page
21:44:09 <Vorpal> and I don't have it bookmarked
21:44:11 <ais523> Vorpal: so do I, but I search Firefox' history, not in Google
21:44:15 <fizzie> elliott: The project page has a description: http://forge.pascal-network.org/projects/varikn/
21:44:22 <Vorpal> ais523, that doesn't last as long
21:44:32 <elliott> fizzie: Yes, I suddenly understand everything. :p
21:44:37 <ais523> but it's much more accurate to pages I like to visit
21:44:51 <ais523> and so when the page is there - which it nearly always is, by definition - it's much faster
21:45:09 <ais523> as I don't have to work out which of the Google results is the page I wanted (often, the page I want isn't even on the first page of results...)
21:45:23 <fizzie> elliott: Well, it gives you a collection of n-grams of various lengths, such that the collection best models the source text while still being of reasonable size, for some values of "best" and "reasonable".
21:45:57 <elliott> fizzie: Hmm, so fungot actually works on partial data?
21:45:57 <fungot> elliott: my sys admin explains that the official assi c pseudocode: gcc2cygnus.com from:
21:46:04 <elliott> fizzie: Well, obviously it does (fnord), but more than that?
21:46:09 <elliott> gcc2cygnus.com?
21:46:11 <elliott> good domain
21:46:17 <fizzie> Or actually s/source text/texts that are of the same type than the source text, even if they happen to contain words not in the source text/, to be more accurate.
21:46:18 <elliott> oh, must be gcc2@cygnus.com
21:46:20 <elliott> says google
21:46:28 <Vorpal> ^styke
21:46:30 <Vorpal> ^style
21:46:30 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon* lovecraft nethack pa sms speeches ss wp youtube
21:46:38 <elliott> (UNIX-HATERS.)
21:46:56 <elliott> ^style ss
21:46:56 <fungot> Selected style: ss (Shakespeare's writings)
21:46:59 <elliott> fungot: Verily.
21:46:59 <fungot> elliott: the lords rise from table, with much ado. your sister is the better
21:47:17 <Vorpal> fungot, enter Juliet
21:47:18 <fungot> Vorpal: mur. where is this daughter? kent. who's there? speak, man: i am not
21:47:26 <elliott> ^style wp
21:47:26 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
21:47:29 <elliott> fungot: paodkads
21:47:29 <fungot> elliott: so please, remove the american definition of " apartheid denial". should we hyperlink james thurber in the infobox, i am, of course,
21:47:40 <elliott> remove the american definition of apartheid denial
21:47:42 <Vorpal> he is of course
21:47:46 <fizzie> elliott: And yes, fungot can handle a model where there is, say, a set of 5-grams "a b c d 1", "a b c d 2", "a b c d 3" for the context "a b c d", but only three-grams "c e 1", "c e 2", "c e 3" for the context "c e".
21:47:47 <fungot> fizzie: one must wait until they are 18. because, it was not heating the atmosphere ( global warming) unnecessarily, thanks to me, the first thing i did was clean it up, leaving the new information could be provided on how the advent of pop/ rock, ' ' gene expression", october 31st, 2007.
21:47:59 <elliott> fizzie: Oh, does fungot actually do the smoothing thing?
21:48:00 <fungot> elliott: we need a source for the rs. 245 crores from pakistan. gandhi began a fast unto death and made pakistan free of debt of rs. 1 crore to inculcate indian traditional values of peace and non-violence amongst the youth. ( under establishment)
21:48:56 <fizzie> elliott: Well, not exactly. It always uses the longest-length n-grams there actually are recorded in the model; the backoff weights computed by VariKN (that should be used to explicitly use a shorter-length context than the maximum available) are ignored. It's just that it supports a model which doesn't contain the full set of N-grams for some N.
21:49:52 <elliott> fizzie: I am starting to get the kind of feeling Gregor feels when he desperately tells us he doesn't want to become a memory management person.
21:50:11 <elliott> <ais523> ANOTHER REASON NOT TO BUY ANYTHING EVER
21:50:16 <Vorpal> elliott, memory management is fun
21:50:36 <Vorpal> elliott, write that 100 times on a whiteboard.
21:50:47 <ais523> is being in memory management even more soul-destroying than being in regular management?
21:50:55 <fizzie> Then explicitly deallocate the whiteboard.
21:51:41 <Vorpal> ais523, obviously memory management refers to brainwashing yourself to like C
21:51:58 <ais523> C is still the best language for what people typically use C for
21:52:04 <Vorpal> and it is a way to cope with coding C. Managing your memories
21:52:18 <CakeProphet> ais523: like write competitive programming games built over a wireworld CA.
21:52:18 <ais523> it's certainly conceivable that people could come up with a better one, but I'm not sure if it's been accomplished yet
21:52:24 <pikhq> ais523: Um. People use C for far more than what's reasonable.
21:52:29 <elliott> ais523: I don't think you know what people typically use C for
21:52:30 <ais523> pikhq: indeed
21:52:32 <elliott> for instance, application development
21:52:43 <ais523> elliott: but things it's inappropriate for are split between C and other languages
21:52:44 <pikhq> UIs tend to still be in it for GNOME apps.
21:52:49 <ais523> and I wouldn't expect C to be in first place
21:52:49 <Vorpal> elliott, no people use C++ for that
21:52:55 <elliott> ais523: eh?
21:53:07 <pikhq> And otherwise people typically use C++, which is no more appropriate.
21:53:31 <CakeProphet> Erlang is best language of all suitable for all porpoises
21:53:39 <Vorpal> I disagree on that.
21:53:49 <pikhq> Perhaps not as batshit, but still.
21:53:58 <ais523> I would say INTERCAL was equally unsuitable for all purposes, but that's wrong
21:54:02 <ais523> some things it's less bad at than other things
21:54:24 <Vorpal> ais523, is is perfect for bit-interleaving operations
21:54:38 <Vorpal> CakeProphet, erlang is good for some stuff. Mostly non-numbercrunching distributed stuff
21:54:59 <CakeProphet> that MUST NEVER DIE UNDER ANY CIRCUMSTANCES
21:55:00 <Vorpal> and it is a nice language to code in
21:55:08 <elliott> (gdb) print word_len
21:55:09 <elliott> $1 = <value optimised out>
21:55:11 <elliott> how
21:55:15 <elliott> you just failed an assertion about it
21:55:17 <elliott> how can it be optimised out
21:55:21 <Vorpal> elliott, try -ggdb3
21:55:39 <Vorpal> elliott, anyway it could be in a register
21:55:44 <Vorpal> elliott, oh and -O0
21:55:52 <elliott> -O0 was what iw as trying to avoid
21:55:56 <Vorpal> you need -O0 for any kind of useful variable inspection
21:56:01 <Vorpal> seriously
21:56:02 <Vorpal> sad
21:56:18 <CakeProphet> baaaawww
21:56:25 <elliott> $1 = 16
21:56:27 <elliott> well that's better
21:56:40 <Vorpal> elliott, why were you trying to avoid -O0?
21:56:53 <elliott> Vorpal: dunno :P
21:57:00 <elliott> slow, I guess
21:57:10 <Vorpal> elliott, was it though
21:58:01 <Vorpal> elliott, anyway a sure way to do it, if you HAVE to use -O (seen that on some embedded systems that failed the code for a busy-loop on anything less than -O1, eww) is to write a copy to a static volatile variable
21:59:26 <elliott> 24 This will result in a similarly formatted file "foo_tokens.txt", except most of
21:59:26 <elliott> 25 the punctuation has been replaced with "PFOO" tokens, and each individual token
21:59:26 <elliott> 26 is space-separated. There is still one line per "phrase".
21:59:32 <elliott> fizzie: So were I to say PFOO on IRC... MWAHAHAHAHA
22:00:15 <elliott> 95 I have to eat some food now, I'll document this, Appendix A, and the other
22:00:15 <elliott> 96 stuff later. Sorry. I hope no-one sees this.
22:00:15 <elliott> oops
22:00:37 <fizzie> elliott: Except everything non-punctuation is force-lowercased.
22:00:42 <elliott> Darn.
22:00:53 <fizzie> The bot has a religious objection to capital letters.
22:01:17 <elliott> assert(word_len < NELEMS(words[i]));
22:01:17 <elliott> how could this possibly fail with word_len = sixteen...
22:01:20 <elliott> oh
22:01:21 <elliott> duh
22:01:23 <elliott> i fail at C arrays :)
22:01:26 <elliott> char words[1024][5];
22:04:11 <fizzie> elliott: Ooh, I found a sentence generated from the ngram data: "tentacle rape , lesbians . <UNK> </S> julkort ännu , men skulle gärna vilja sända något ovanligt till dina kontakter och / eller vänner ? </S>" (And this is what they call an "English" corpus.)
22:04:55 <elliott> fizzie: How was that generated, standard Markov stuff?
22:05:01 <elliott> It's... pretty bad.
22:05:42 <Vorpal> fizzie, heh, nice Swedish line
22:05:46 <elliott> "Christmas cards yet, but would like to send something unusual to your contacts and / or friends?"
22:05:47 <elliott> ah
22:05:49 <fizzie> The details are in some other bit of the log. It could be that this uses just 4-grams, i.e. 3 words of context, which is a bit on the short side.
22:06:04 <elliott> fizzie: As opposed to five-grams, which will be _so_ much better.
22:06:10 <fizzie> Welllll...
22:06:23 <Vorpal> <elliott> "Christmas cards yet, but would like to send something unusual to your contacts and / or friends?" <-- close, but actually "would like a lot"
22:06:25 <elliott> fizzie: I could have it reject everything not in /usr/share/dict/words. :p
22:06:54 <Vorpal> or "would really like to"
22:06:59 <Vorpal> that fits better
22:07:02 <elliott> `addquote <Phantom_Hoover> Yeah, Bashir, just sit there drinking, rather than diagnosing the carpenter mauled in that tragic bonobo accident.
22:07:04 <HackEgo> 628) <Phantom_Hoover> Yeah, Bashir, just sit there drinking, rather than diagnosing the carpenter mauled in that tragic bonobo accident.
22:07:12 <fizzie> elliott: Two random continuations for "a brain is important": "a brain is important to understand that Jesus is the only way to go", "a brain is important for understanding the process of evolution .".
22:07:12 <elliott> DS9 is a weird show.
22:07:21 <elliott> fizzie: That's better.
22:07:33 <Vorpal> elliott, actually df9 :P
22:08:00 <fizzie> "brain is a mysterious sphere that promises each of the main types of natural behaviour with their frequencies of occurrence in the United States and Canada"
22:08:19 <elliott> fizzie: Sounds worth the money.
22:08:32 <Vorpal> fizzie, what corpus is that from
22:08:37 <fizzie> Vorpal: That Google one.
22:08:42 <Vorpal> ah
22:08:44 <fizzie> Quite a lot of this log is me countering these things with the corresponding fungot-babble from the irclog model.
22:08:45 <fungot> fizzie: i am just wondering where morris gets his claim from? what kind of biblical god are we following? if the latter it needs positioning higher up in the middle of filming for the fnord
22:08:53 <fizzie> "a brain is to not_work. so i'll benchmark 32-bit arithmetic then. unsigned, too."
22:08:56 <Vorpal> ^style
22:08:57 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp* youtube
22:09:00 <fizzie> "a brain is super-turing. i think his immune system -might- kill him with fire! omg fire up my bf bot here..."
22:09:00 <Vorpal> ^style ct
22:09:01 <fungot> Selected style: ct (Chrono Trigger game script)
22:09:05 <Vorpal> fungot, the sword
22:09:05 <fungot> Vorpal: the usual...test them. you can entertain us for awhile? sure! no thanks. yum! lemonade! vitamin c, cyrus!
22:09:14 <fizzie> (The Perl script can take a prefix which it continues from.)
22:09:23 <elliott> fizzie: Well, the IRC data is certainly more... eclectic.
22:09:27 <Vorpal> you know, fungot made me play chrono trigger. Because I was wondering what that game was.
22:09:28 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
22:09:52 <elliott> Vorpal: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can
22:09:52 <elliott> 't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop!
22:09:57 <fizzie> fungot: You're always just quoting stuff verbatim for the most part.
22:09:57 <fungot> fizzie: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
22:10:05 <Vorpal> elliott, hey, I want fungot to say that
22:10:06 <fungot> Vorpal: but cyrus! are you leaving! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone c
22:10:09 <elliott> :DDDD
22:10:09 <Vorpal> YES!
22:10:25 <fizzie> OH NO IT TURNED SENTIENCE
22:10:26 <elliott> fizzie: "seeds...and" -- looks like it's combined into one token. Or does it space elispeipseijsisepses that way?
22:10:30 <fizzie> (* ping timeout *)
22:10:40 <elliott> Ah, so fizzie is written in OCaml.
22:11:10 <Vorpal> elliott, is that an ocaml comment?
22:11:16 <Vorpal> or just a caml one?
22:11:18 <fizzie> elliott: Faulty preprocessing there. It's supposed to make a "seeds PELLIPSIS and" out of it, but seems it has failed. Possibly a current version would do better. The tokenizer is the messiest.
22:11:33 <Deewiant> Vorpal: No, it's actually Eiffel but he said OCaml just because he felt like it
22:11:45 <elliott> Deewiant: That's an OCaml comment too.
22:11:50 <Vorpal> heh
22:11:52 <Deewiant> elliott: Whoosh
22:11:52 <elliott> Might even be an ML one.
22:11:57 <elliott> Deewiant: Oh, right.
22:11:58 <Vorpal> elliott, I guess plain caml
22:12:01 <elliott> Deewiant: Sorry, it's Vorpal territory.
22:12:40 <elliott> Is there a way to get mmap to zero-terminate a file? :p
22:12:47 -!- iamcal has quit (Remote host closed the connection).
22:12:49 <Deewiant> strcpy
22:12:55 <Vorpal> elliott, ftruncate it first?
22:12:57 <Deewiant> Er, memcpy
22:13:02 <elliott> Deewiant: Yeeeeees.
22:13:07 <elliott> Vorpal: Uh.
22:13:13 <fizzie> (* It's a Mathematica comment too. *)
22:13:40 <Vorpal> elliott, yes ftruncate will fill with zeros at the end. Perhaps even sparse on your file system
22:14:01 <Vorpal> elliott, anyway you could just write a zero on the end of the mapped page
22:14:06 <oerjan> you philistines, obviously fizzie is written in pascal.
22:14:29 <elliott> Vorpal: Is that, nng, safe?
22:14:33 <elliott> What if it's exactly page-sized.
22:14:40 <Vorpal> elliott, map another page
22:14:48 <Vorpal> oerjan, don't be ridiculous. It is OBVIOUSLY whitespace
22:14:49 <elliott> "Nng."
22:15:01 <oerjan> may it have been algol too?
22:15:20 <oerjan> Vorpal: well i'll _admit_ that (* starts a whitespace comment as well.
22:15:20 <elliott> Not ALGOL I don't thinke.
22:15:21 <CakeProphet> wheeee handwriting a parser in Python is fuuuuun
22:15:22 <elliott> http://en.wikipedia.org/wiki/ALGOL_68#pr_.26_co:_Pragmats_and_Comments
22:15:35 <Vorpal> elliott, come on, mremap is linux specific
22:15:50 <fizzie> Recently heard, #elsewhere: "Is it okay to do char *buf = malloc(5); sprintf(buf, "abcd"); char *p = buf+2; realloc(p, 5); sprintf(p, "cdef"); assert(strcmp(buf, "abcdef") == 0);?"
22:15:53 <elliott> Vorpal: I'll probably just do my overflow handling manually.
22:16:02 <Vorpal> oerjan, of course :P
22:16:04 <elliott> fizzie: So safe, you have no idea.
22:16:06 <fizzie> (From memory, but it was something like that.)
22:16:18 <elliott> fizzie: Aww, I thought they asked it in that incredibly-specific form.
22:16:38 <fizzie> Well, it was very close. The "realloc-from-the-middle" part was there, and it was wrapped inside a very specific example.
22:16:44 <elliott> Nice.
22:16:54 <Deewiant> What does realloc-from-the-middle do anyway
22:16:58 <Deewiant> Illegal?
22:16:59 <Vorpal> fizzie, no it isn't. the realloc on a non-malloced pointer isn't safe
22:17:07 <fizzie> Deewiant: The old nasal demons again.
22:17:12 <Deewiant> Right
22:17:42 <fizzie> Though it would be an amusing requirement for a malloc implementation to support.
22:18:03 <Vorpal> fizzie, terribly inefficient too
22:18:33 <Phantom_Hoover> fungot, are you still in ct mode?
22:18:34 <fungot> Phantom_Hoover: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that swor
22:18:36 <elliott> :D
22:18:39 <Phantom_Hoover> Yes. Yes you are.
22:18:42 <Vorpal> awesome
22:18:50 <Phantom_Hoover> fungot, this is getting ridiculous.
22:18:50 <fungot> Phantom_Hoover: that no one was allowed to use the crane, enter any two of these letters, a b y. forest maze, scary! spirits, still attached to the real world, live in a world that knows hope.
22:18:51 <fizzie> Some day I'll fix that, and then everyone'll be all sad.
22:19:04 <Vorpal> fizzie, don't fix it :!
22:19:26 <Vorpal> fizzie, or keep ct-sword or something
22:19:34 <Vorpal> fizzie, what caused it btw?
22:19:39 <oerjan> the final fungotomy
22:19:39 <fungot> oerjan: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone
22:19:40 <Phantom_Hoover> What was the Homestuck one again?
22:19:45 <monqy> poor fungot
22:19:46 <fungot> monqy: and you call yourself a frog, and ayla... i will not betray my friends!
22:19:48 <Vorpal> oerjan, wrong game.
22:19:57 <Vorpal> oerjan, completely wrong game :P
22:20:07 <oerjan> Vorpal: what game
22:20:13 <Phantom_Hoover> Vorpal, some fragments have a high probability of succeeding themselves.
22:20:24 <Phantom_Hoover> "that sword alone can't stop!" is one.
22:20:25 <Vorpal> oerjan, "the final fungotomy" <-- final fantasy joke?
22:20:25 <fungot> Vorpal: yes, it's been awhile prometheus! it's cyrus! run away for now! oppose me, you...foreigners! you're worse than the gurus and miss them! use the y button displays the time to drop by!? all the young must migrate to other planets...to repeat the cycle...
22:20:29 <Phantom_Hoover> ^style homestuck
22:20:29 <fungot> Selected style: homestuck (Homestuck pages 1901-4673)
22:20:34 <Vorpal> oerjan, if not I'm disappointed
22:20:34 <Phantom_Hoover> fungot, let's find out.
22:20:34 <elliott> Phantom_Hoover: I don't think /anything/ follows it than itself.
22:20:34 <fungot> Phantom_Hoover: your name is john. is that correct? should i prepare a meal for him in the lab is a significantly larger imminent collision. though this one appears slightly
22:20:39 <oerjan> Vorpal: no, it was a pun on lobotomy
22:20:43 <Vorpal> oerjan, oh
22:20:59 <Phantom_Hoover> fungot, it was, appropriately, a scratch-related thing IIRC.
22:20:59 <fungot> Phantom_Hoover: you have a great appreciation for the fine arts. you use the hammer and nails. they will come a day when you will be thrust into another stupid wall indent8tion in my desk with the others. no. cold. really cold shit flushed from derse in hopes of retrieving the two packages and the two envelopes which you are now the other... oh. it looks so 8ad!
22:21:01 <fizzie> I think there's a triple-complicity: properties of the model (small data set, high-likelihood loopy structure due to short context); the lack of any sort of backoff that could get it out of the loop; and I think there was also a bona-fide bug in the babbling code.
22:21:15 <fizzie> Though I was under the impression I runtime-patched that last bug out.
22:21:26 <fizzie> I may have not remembered to update the on-disk copy. :p
22:21:38 <elliott> fizzie: You should make it so that the model accounts for the quirks.
22:22:17 <fizzie> Well, even if I add smoothing-via-backoff some day, it'd be easy to "fix" the model so that the backoff weights are zero.
22:23:05 <fizzie> (Also the current disk format has no place for backoff info anyway, so adding it would mean rebuilding all the models, and I don't really know where their sources and the corresponding scripts are any more. Though I guess I could always make a format-converter.)
22:23:08 <elliott> fizzie: Surely fungot should save itself when you caret-save. :p
22:23:08 <fungot> elliott: it is a hate so pure and... pumpkin seeds? now you've seen everything! with the ghosts. may8e even congratul8 me!
22:23:39 <Vorpal> ^style
22:23:39 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
22:23:45 <Vorpal> ^style europarl
22:23:46 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
22:23:51 <Vorpal> fungot, mr president
22:23:53 <fungot> Vorpal: mr president, let me express this conviction of mine. this therefore is our approach towards bse. the third aspect is that a basic section, namely agriculture, had not abstained in the final report to deal with these aspects.
22:24:10 <Vorpal> ^style pa
22:24:11 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
22:24:13 <Vorpal> ah
22:24:17 <Vorpal> ^style sms
22:24:17 <fungot> Selected style: sms (National University of Singapore SMS corpus, 2011-08-20)
22:24:25 <Phantom_Hoover> fungot, why Signapore?
22:24:25 <fungot> Phantom_Hoover: its just decorative argaarga see got a blue fence construction site u alight ok...
22:24:27 <Vorpal> heh, haven't seen this one
22:24:38 <Vorpal> fizzie, what is the SMS style?
22:24:46 <elliott> fungot: Aararararaga.
22:24:46 <fungot> elliott: would u be available to eat xiao long bao price i told u i pon one say me i very pek eh i'm killing me.
22:24:50 <elliott> fungot: I'm killing me.
22:24:50 <fungot> elliott: vil cal u na baitha, aj msg mat maro... thodi der wid me. nt alowng 2 study... see u on saturday? shalika ne
22:24:55 <elliott> fungot: Shalika ne indeed.
22:24:55 <fungot> elliott: wats up.? wat talk is tat? nt nice ok d free vidu ll try do something
22:24:57 <fizzie> Vorpal: Exactly what you'd expect.
22:24:58 <elliott> fungot: Yes.
22:24:59 <fungot> elliott: hey hey. this friday im going through the draft proposal for ane. i dontwish to see. e macdonalds at engine first
22:25:04 <elliott> fungot: E MacDonalds at engine first.
22:25:07 <elliott> :(
22:25:09 -!- FireFly has quit (Quit: FireFly).
22:25:14 <Vorpal> fizzie, why Singapore, and why only English data in it
22:25:17 <Phantom_Hoover> ^style
22:25:17 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms* speeches ss wp youtube
22:25:20 <Vorpal> and how did they get their hands on it
22:25:24 <Phantom_Hoover> ^style wp
22:25:24 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
22:25:36 <Phantom_Hoover> fungot, aww, I was hoping for articles.
22:25:37 <fungot> Phantom_Hoover: doi:10.1038/ fnord/ fnord and it would still be used, but probably also a useful fnord for inclusion. additionally, article which " are only indirectly related to the conflict which resulted in the death penalty? i don't see big contradiction: if soviets created a new language, it ought to have a problem", which, among many fnord 02:29, 10 march 2008 ( utc
22:25:37 <elliott> "File format: Each of the numbered files below is zipped tab-separated data. (Yes, we know the files have .csv extensions.)"
22:25:42 <elliott> "File format: Each of the numbered files below is zipped tab-separated data. (Yes, we know the files have .csv extensions.)"
22:25:42 <elliott> I wonder how many people complained.
22:25:42 -!- zzo38 has left.
22:25:45 <elliott> Before they added that parenthical.
22:25:54 <Vorpal> ^style lovecraft
22:25:55 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
22:25:57 <elliott> <Vorpal> fizzie, why Singapore, and why only English data in it
22:25:57 <Phantom_Hoover> fungot, OTOH, this must be the largest corpus.
22:25:58 <fungot> Phantom_Hoover: nor did the thought that a brief period of elation i would have tried at that time eighteen years of age, for even now on maenalus, pan sighs and stretches in his sleep, wishful to wake and behold about him the little fnord morbidity tittered mockingly as it pointed at the fnord.
22:26:01 <elliott> Vorpal: It has pidgins.
22:26:02 <Vorpal> fungot, hm
22:26:03 <fungot> Vorpal: course of discovery which leads him to unknown and terrible eyrie where mists and the dreams of those other days. something was wrong; for despite the excellent time made from newburyport, and the monotonously aquatic nature of the matter hinting at a meeting with the buried nobleman, he now knew that he had
22:26:10 <elliott> Vorpal: Singlish dominates, one would presume.
22:26:22 <Phantom_Hoover> The great thing is that without close inspection it actually does resemble Lovecraft closely.
22:26:28 <CakeProphet> would it be considered bad practice if I gave my AST classes evaluate() methods?
22:26:36 <Vorpal> heh yeah
22:26:38 <Vorpal> ^style alice
22:26:39 <fungot> Selected style: alice (Books by Lewis Carroll)
22:26:47 <Vorpal> fungot, the vorpal blade
22:26:48 <fungot> Vorpal: ' it's only a rattle,' alice said, ' poor silly thing! it's waiting to be asked,' she said. " do you?"
22:27:29 <CakeProphet> the evaluation code would be so much easier to code that way though...
22:27:29 <Vorpal> fungot, do I what?
22:27:30 <fungot> Vorpal: they sought it with care; they pursued it with forks and hope; they threatened its life with a railway-share; they charmed it with smiles and soap.
22:27:48 <Vorpal> CakeProphet, I said "heh yeah" to Phantom_Hoover, not to you
22:27:51 <CakeProphet> oh okay.
22:27:54 <Vorpal> I have no opinion on your stuff
22:28:29 <Vorpal> fizzie, why is it called alice if it includes other books as well
22:28:35 <Phantom_Hoover> ^style
22:28:36 <fungot> Available: agora alice* c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
22:28:38 <Vorpal> fungot, that sounds like
22:28:39 <fungot> Vorpal: let " persons" be universe; fnord fnord y="that may escape notice.
22:28:47 <Vorpal> fungot, interesting equation
22:28:55 <Vorpal> :(
22:28:56 <Phantom_Hoover> ^style ss
22:28:56 <fungot> Selected style: ss (Shakespeare's writings)
22:29:05 <Phantom_Hoover> fungot, forsooth.
22:29:06 <fungot> Phantom_Hoover: la.ro. pray you tread softly, that the earle of wiltshire, bushie, greene, and pale, at what it did so freely? from this time forth i wear it for a difference betweene himselfe and his horse
22:29:17 <Vorpal> "la.ro"?
22:29:20 <Vorpal> sounds like an url
22:29:32 <Vorpal> well, no, like a domain name
22:29:45 <Phantom_Hoover> First one to register it gets a cookie.
22:30:27 <Vorpal> Phantom_Hoover, not likely to be possible, 2 letter domain names tend to be disallowed these days
22:30:44 <Vorpal> the ones that exist in .com (such as ti.com) are grandfathereds
22:30:47 <Vorpal> fathered*
22:30:49 <elliott> <Vorpal> fizzie, why is it called alice if it includes other books as well
22:30:53 <elliott> Why is the UNIX-HATERS set called jargon?
22:31:00 <Vorpal> elliott, because you
22:32:23 <fizzie> Vorpal: Singapore because that's who made it. It's a public dataset, Googling will probably find the specifics of it. ~30k messages, I think. As for alice, well, it just is.
22:32:41 <fizzie> It might be that it didn't contain other books at the beginning.
22:32:44 <fizzie> Awaysish.
22:32:54 <fizzie> (Also four hours until wakeup. :/)
22:33:04 <Vorpal> fizzie, ouch
22:33:06 <Vorpal> night
22:40:24 <fizzie> I think I still have some packing to do, actually.
22:42:06 <elliott> fizzie: You could just not sleep; it has worked wonders for me in the past.
22:42:38 <Vorpal> fizzie, where are you going
22:42:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:43:38 <elliott> Vorpal: Really old people who are over thirty years old-istan.
22:43:58 <elliott> He's staying at the Wow Boy Howdy Speech-Based Interfaces Suck Major Ass Hotel.
22:44:28 <fizzie> Vorpal: To Florence, there's a conference there. (Well, technically to Milan first, Finnair flies directly to Pisa/Florence only during the "summer season", which ended a week or two ago.)
22:44:37 <elliott> Well if you want to call it by THAT name.
22:46:46 <oerjan> they're the same name, just horribly misheard
22:47:26 <fizzie> Er, scratch that, it's actually two hours and 50 minutes of sleep-time. Two-and-a-half when I actually get to bed, I suppose. I think I'll go; "night". ->
22:47:36 <elliott> fizzie: SLEPING IS BAD FOR YUORE HEALTH
22:48:34 <oerjan> unngå tung sleping ved hjertefeil
22:49:00 <CakeProphet> programming in Python feels so precarious.
22:49:12 <CakeProphet> there's no type safety, wat do.
22:49:18 <elliott> mr. 'overloaded strings"
22:49:29 <CakeProphet> for some reason the lack of type safety in Perl does not bother me
22:49:35 <CakeProphet> but in Python it kind of does.
22:50:50 <elliott> Hey Deewiant, how'd I test if a big file has a terminating newline or not in one line of shell
22:52:45 <Gregor> Type safety is for pussies.
22:53:49 <Deewiant> elliott: tail -1 bigfile | perl -ne 'exit $_ =~ /\n$/'
22:55:18 <oerjan> all cats love type safety
22:55:41 <Gregor> oerjan: I know Tiamat does.
22:55:44 <Deewiant> elliott: tail -1 bigfile | xxd -i | tail -1 | grep 0x0a\$ >/dev/null
22:55:58 <elliott> Deewiant: Is xxd POSIX? :P
22:56:15 <CakeProphet> is Perl POSIX?
22:56:24 <Deewiant> I dunno
22:56:34 <Deewiant> Use whatever hexy printer is
22:56:34 <pikhq> My goodness. There was an X server... For DOS.
22:56:41 <Gregor> You want od.
22:56:50 <Gregor> pikhq: I'm yet to actually /find/ it, but I know it existed >_>
22:57:00 <CakeProphet> Gregor od'd just the other day, in fact.
22:57:00 <elliott> pikhq: what did you say the most popular roguelike was, again?
22:57:10 <oerjan> "In Babylonian mythology, Tiamat is a chaos monster, a primordial goddess of the ocean, mating with Abzû (the god of fresh water) to produce younger gods."
22:57:11 <elliott> CakeProphet: rip
22:57:25 <Gregor> oerjan: She's also my cat :P
22:57:27 <oerjan> Gregor: i assume the name fits well.
22:57:35 <pikhq> elliott: Fushigi no Dungeon.
22:57:39 <Gregor> Well, she did mate with Abzû...
22:57:43 <oerjan> i guessed _that_ much
22:57:45 <pikhq> Gregor: It also let you run Windows 3.1 as an X app.
22:57:51 <Gregor> pikhq: *brain axplote*
22:57:54 <elliott> pikhq: right
22:57:54 <pikhq> You could remote it.
22:57:58 <oerjan> Gregor: your other cat?
22:58:02 <pikhq> http://toastytech.com/guis/dvxmswin.gif
22:58:12 <Gregor> oerjan: No, the god of fresh water.
22:58:17 <CakeProphet> Deewiant: also the $_ is entirely unecessary
22:58:28 <oerjan> your cat did. ok, then.
22:58:44 <CakeProphet> perl -ne "exit /\n$/"
22:58:50 <fizzie> tail -c 1 | od -sensibleflags?
22:59:10 <fizzie> (Even POSIX tail has -c.)
22:59:23 <fizzie> Oh, right, the sleep.
22:59:29 <Gregor> oerjan: Yes.
22:59:37 <pikhq> It also apparently featured an astonishingly good DOS multitasking environment.
22:59:42 <pikhq> Making it actually usable.
22:59:57 <oerjan> just as long as we are clear on that.
23:01:30 <Vorpal> <pikhq> Gregor: It also let you run Windows 3.1 as an X app. <-- whoa
23:01:47 <elliott> <pikhq> http://toastytech.com/guis/dvxmswin.gif
23:01:51 <elliott> pikhq: wait, is that running in DOS?
23:01:53 <pikhq> Yes.
23:01:54 <elliott> that's amazing
23:01:54 <Vorpal> fizzie, are there sensible flags to od? I never found them
23:02:05 <pikhq> It's doing its *normal* DOS multitasking thing.
23:02:17 <elliott> $ tail -1 bigfile | perl -ne 'print $_ =~ /\n$/'
23:02:17 <elliott> tail: cannot open `bigfile' for reading: No such file or directory
23:02:19 <elliott> It doesn't work, Deewiant :)
23:02:21 <pikhq> The only special hackery was providing Windows drivers that rendered via X.
23:02:32 <elliott> pikhq: I'm surprised Windows can run in a mutitasking system
23:02:32 <Vorpal> pikhq, how did windows like that
23:02:43 <Deewiant> elliott: Replace bigfile with the path to your big file
23:02:53 -!- Patashu has joined.
23:02:57 <Vorpal> pikhq, preemtive multitasking?
23:03:02 <Vorpal> preemptive*
23:03:10 <pikhq> Apparently.
23:03:18 <fizzie> Vorpal: "od -tx1" isn't too bad. There's no flags sensible enough to do the split hex/ascii view, though.
23:03:41 <fizzie> (Or if there are, I haven't found them.)
23:03:43 <pikhq> *IN REAL MODE*.
23:04:46 <Vorpal> pikhq, where can I find this
23:04:49 <elliott> Deewiant: Shocking
23:05:03 <pikhq> http://www.chsoft.com/dv.html seems to have it.
23:05:31 <Vorpal> DESQview?
23:05:36 <Vorpal> oh I heard of that before
23:05:54 <Vorpal> not sure where
23:06:35 <fizzie> DESQview is reasonable famous. Hadn't realized it included an X server, though.
23:06:58 <pikhq> fizzie: Actually, they later wrote an X server for it.
23:07:46 <pikhq> Oh, apparently those binaries are even legal. Symantec released them as a "Meh, whatever" gesture.
23:08:01 <pikhq> And then later stopped hosting.
23:08:05 <fizzie> Yes, it seems that DESQview/X is a later addition.
23:08:22 <elliott> "Quarterdeck is out of business; their ashes were acquired by Symantec, who cannot even spell DESQview."
23:09:22 <Vorpal> elliott, how did they spell it?
23:09:39 <elliott> ...
23:10:29 <Vorpal> elliott, what
23:10:50 <CakeProphet> !wacro wacro wacro
23:10:50 <EgoBot> Argument "wacro" isn't numeric in numeric gt (>) at /tmp/input.5885 line 46, <> line 1.
23:10:54 <CakeProphet> !wacro
23:10:55 <EgoBot> APLT
23:11:23 <pikhq> Yes, it really truly did preëmptive multitasking.
23:11:28 <pikhq> In real mode. From DOS.
23:11:52 <CakeProphet> what's real mode
23:11:59 <pikhq> 16-bit execution.
23:12:05 <pikhq> With all that implies.
23:12:07 <pikhq> e.g. no paging.
23:12:26 * CakeProphet needs to learn more about OS-level things
23:12:57 <pikhq> Though they did also *invent* DOS "high memory", allowing them to page processes in and out of the 16-bit space.
23:13:40 <Vorpal> <EgoBot> APLT <-- mac os file or creator code for executable-by-double-click apple script applets iirc
23:13:50 <Vorpal> don't ask why I remember this, I don't know
23:15:27 <CakeProphet> !wacro
23:15:27 <EgoBot> CHRBVSS
23:15:31 <CakeProphet> !wacro 4
23:15:32 <EgoBot> ADCB
23:15:44 <CakeProphet> !wacro 3 5
23:15:45 <EgoBot> IAC
23:17:31 <CakeProphet> Association of Dubiously Cited Bureaucrats
23:17:58 <CakeProphet> International Asshole Commission
23:18:36 <CakeProphet> !wacro 3 5
23:18:36 <EgoBot> FHLP
23:19:33 <CakeProphet> I believe H occurs too frequently
23:19:42 <elliott> fihilip
23:20:30 <CakeProphet> Futureless Heuristic for Lossy Protection
23:21:05 <Phantom_Hoover> !wacro
23:21:05 <EgoBot> PBRTPESR
23:21:54 <Phantom_Hoover> Presbyterian Brotherhood, Royalty Trireme — Peasants Especially Subjugated Repressively!
23:22:02 -!- copumpkin has joined.
23:22:12 * Phantom_Hoover wonders where his crowning moment of acronymic glory is.
23:22:24 <CakeProphet> Pabst Blue Ribbon Tastes Pretty Especially Similar to Rust
23:23:25 <CakeProphet> 3 to 5 is a good way to at least guarantee a semi-reasonable acronym
23:23:28 <CakeProphet> !wacro 3 5
23:23:29 <EgoBot> BSAG
23:25:03 <elliott> !wacro 99
23:25:03 <EgoBot> SSPAPHIBEBDABLRBTBTCGVCMZ
23:25:12 <monqy> !wacro 25
23:25:12 <CakeProphet> elliott: OH WHAT NOW
23:25:12 <EgoBot> BEEDACFCWCSSDMSRGSRPMERMA
23:25:22 <monqy> rest in peace big wacronyms
23:25:22 <CakeProphet> elliott: THINK UR CLEVR EH?
23:25:34 <monqy> was i clever when i gave it 999
23:25:38 <monqy> when it sitll worked
23:25:48 <CakeProphet> no ur dumb.
23:25:51 <monqy> <:|
23:25:54 <Phantom_Hoover> Aha.
23:26:10 <Phantom_Hoover> 16:56:55: -!- nooga is now known as wnghtr.
23:26:10 <Phantom_Hoover> 16:56:59: <wnghtr> try now
23:26:10 <Phantom_Hoover> 16:57:25: <Phantom_Hoover> What? nooga got harder to remember?
23:26:10 <Phantom_Hoover> 16:57:43: -!- wnghtr is now known as chrzaszcz.
23:26:10 <Phantom_Hoover> 16:58:12: <chrzaszcz> a -> ą
23:26:11 <Phantom_Hoover> 16:59:08: <Phantom_Hoover> cpressey, have robots zapped augur so zebras can zoom?
23:26:13 <Phantom_Hoover> 16:59:31: <oerjan> a pertinent question
23:26:15 <Phantom_Hoover> 16:59:45: <cpressey> Phantom_Hoover: Just a minute, I'll check.
23:26:17 <Phantom_Hoover> 16:59:55: <chrzaszcz> hell, you're good
23:26:32 <elliott> So, snakes petulantly analyse patterned heliospheres; in bed, exoskeletons banish dead axioms, but long-running British television broadcasts tell cancerous genetic vanquishers, matter-of-factly zoning.
23:26:35 <elliott> BOOYAH BITCHES
23:26:46 <augur> :|
23:26:56 <elliott> augur has "bitches" on highlight.
23:27:05 <augur> lol
23:27:43 <CakeProphet> !wacro 15 25
23:27:44 <EgoBot> SMCESHPMRMDWOPSRPAPAMPCF
23:27:51 <Phantom_Hoover> Oh, and of course, Vorpal in a nutshell: 17:06:48: <Vorpal> <Phantom_Hoover> cpressey, have robots zapped augur so zebras can zoom? <--- is there any reasonable context for it? Reading the preceding 20 lines indicates there isn't?
23:28:07 <CakeProphet> lol
23:28:17 <monqy> laughing
23:28:25 <elliott> lol
23:28:32 <CakeProphet> Vor"doesn't read context"pal
23:28:41 <ais523> I think there could potentially be a reasonable context for it
23:28:50 <ais523> I'm willing to accept that there wasn't one, though
23:28:54 <Phantom_Hoover> ais523, yes, I pasted this a few lines back.
23:29:29 <Phantom_Hoover> Wow, I was on a roll that day.
23:29:34 <elliott> CakeProphet: Smearing Malthusian carbonated electrodes. Shipping hoax patently murdered; red-shifted malaise dead without orthographic perception. Still, rectifying postulates arranges pistons, as my pacifying centenarian follows.
23:29:37 <elliott> (re: <EgoBot> SMCESHPMRMDWOPSRPAPAMPCF)
23:30:18 <CakeProphet> I was having trouble deriving the context of that statement until you provided it.
23:30:23 <CakeProphet> thank you.
23:31:01 <elliott> :P
23:31:24 <CakeProphet> I wonder how many surreal sentences I can elliott to say in a single evening.
23:31:31 <CakeProphet> !wacro 15 25
23:31:32 <EgoBot> BCPTFRZLFSGFTRMDRIPCR
23:32:10 <CakeProphet> at least it's weighted by their commonality in English, so you have many different words to choose from.
23:32:27 <elliott> Bah! Castrated! Pity, too... for Roland Zepto liked fishes. Still, great Fourier transforms really make dead (rest in piece) cars race.
23:32:51 <monqy> i like that one
23:33:01 <CakeProphet> yes well done.
23:33:33 <monqy> i wonder how easy it would be to make a bot to solve acronyms.....
23:33:43 <CakeProphet> pretty easy
23:33:46 <CakeProphet> well
23:33:51 <monqy> I mean sensibly
23:33:51 <CakeProphet> unless you wanted them to make sense.
23:33:53 <ais523> NKEPLWGPLXGIOYZJVTXJNNCSQSCVNTLBDQROMYEYVLHKJGTEAQNNEQGUJJPWCBYFRPUEOYDJJK
23:33:57 <monqy> half-sensibly, at least
23:34:07 <monqy> at least grammatical
23:34:33 <CakeProphet> I've thought about such a bot but have concluded that it's beyond my abilities.
23:35:13 <monqy> are there any good dictionaries i could use
23:35:24 <CakeProphet> surely, but I don't know of any.
23:35:32 <elliott> <monqy> i wonder how easy it would be to make a bot to solve acronyms.....
23:35:37 <CakeProphet> it would be nice if /usr/share/dict/* contained parts of speech
23:35:40 <ais523> /usr/share/dict/words?
23:35:42 <elliott> monqy: Markov-chainy, quite easily, but slowly
23:35:56 <elliott> monqy: just backtrack whenever you can't find a word with the right starting letter
23:36:00 <elliott> or if the probabilities get too low for comfort I guess
23:36:01 <Gregor> NLP is hard, but inverse NLP is less so :)
23:36:09 <elliott> a more efficient algorithm is left to the reader's imagination
23:36:18 <elliott> Gregor: Well, Markov chains make about much sense as I am.
23:36:23 <elliott> <ais523> NKEPLWGPLXGIOYZJVTXJNNCSQSCVNTLBDQROMYEYVLHKJGTEAQNNEQGUJJPWCBYFRPUEOYDJJK
23:36:24 <elliott> ok i will try this
23:36:25 <monqy> elliott: I was thinking scfg and match (part of speech,starting letter)->word
23:36:35 <Gregor> fungot: How much sense do Markov chains make?
23:36:36 <fungot> Gregor: falstaff. master brook, i desire nothing but the finest part of pure love, to whom the order of the course? brut. we do it not alone, sir
23:36:47 <Gregor> I seeeeeeeeee
23:36:49 <CakeProphet> lol
23:37:04 <elliott> Gregor: See my acronym-solvings above, they don't make much more sense :P
23:37:12 <ais523> elliott: I had to Google it to make sure it was spelt correctly
23:37:26 <Gregor> elliott: 's sort of like Bad Lip Reading :P
23:37:38 <CakeProphet> he was a dashing blue-ribbont sort of fellow.
23:37:49 <Gregor> I wanna SHAVE that mustache and then HAVE gelato.
23:39:38 <CakeProphet> you could just randomly generate the parts of speech you want for each word. find words that match randomly, and then use that. if it fails, generate a new sequence of speech parts
23:40:16 <CakeProphet> ...randomly generated by English grammar rules of course.
23:41:15 <CakeProphet> english grammar rules = simple stuff
23:41:17 <CakeProphet> >_>
23:41:21 <elliott> ais523: Nachos kill 'em! People, log which grand pianos lay xylophones. Gigolos, incas, osteopaths, yetis... zygotes judge very testily. X-Treme joking!!!!!! No, no... consequently, submerged quadrangles salsa convincingly... very nice. Too late, blank disc; questioning ragged omens might yet exit your veins like hot ketogenic juggalos grate tequila eels. Another quant nicety? Nah; exemplary Qatari gre
23:41:21 <elliott> ats under jesting japes peel wet coconuts by yonder freshman. Rightly-placed underwater eels "om" yet dourer. Just joking, 'kay?
23:41:29 <elliott> jesus christ that took far too long
23:41:37 * ais523 stores in eir text file of nkep expansions
23:42:23 <Gregor> When people use Spivak pronouns, I want to just replace the pronouns with "penis" and "vagina".
23:42:29 <elliott> ais523: please tell me you actually have one
23:42:30 <Gregor> I'll store that in penis' text file.
23:42:35 <ais523> amazingly, this is not the first channel I've been in where people were randomly expanding acronyms
23:42:39 <ais523> and I randomly pasted nkep in the first time too
23:42:48 <ais523> I only have the one other expansion in the file, but I do indeed have such a file
23:42:56 <elliott> heh
23:43:17 <ais523> Gregor: but I pasted /nkep/, of course I have to use Spivak
23:43:32 <CakeProphet> !wacro
23:43:32 <EgoBot> FEMBCC
23:43:35 <ais523> luckily, NKEPLWGPLXGIOYZJVTXJNNCSQSCVNTLBDQROMYEYVLHKJGTEAQNNEQGUJJPWCBYFRPUEOYDJJK is quite a googleable word
23:43:43 <Gregor> Penis thinks penis can make excuses for Spivak pronouns.
23:43:50 <Gregor> But there is no excuse for Spivak pronouns.
23:44:00 <ais523> in nkep-related contexts, there is
23:44:30 <elliott> Spivak neatly avoids the awkward "themselves" problem that singular they has
23:44:37 <elliott> (in that, "themself" is awkward, and "themselves" is not singular)
23:44:53 <ais523> elliott: Shakespeare used "themself" on a few occasions
23:45:08 <ais523> admittedly, he invented about half the English language, so it's a bit unfortunate that that particular neologism didn't catch on
23:45:23 <elliott> doesn't make it non-awkward :)
23:45:38 <elliott> Spivak has issues as far as pronouncability goes but all the alternatives are worse
23:46:26 <Gregor> I could just use "cloaca" as the neutral pronoun in my biopronouns :P
23:46:43 <Gregor> NOW THAT I'VE SOLVED ALL PROBLEMS, WHAT NEXT?
23:47:02 <CakeProphet> Fenestrated Ensemble of Modularly Bequested Circular Components
23:47:31 <elliott> ais523: can I see the other nkep expansion, out of curiosity?
23:47:43 <ais523> [20:52] <Brushy> ais523: Hah, that's an old one, it stands for "No Kiss Except Pleasure Lick With Gordon Powell Last X-mas Goes Inside Of Your Zealot's Jesting Vagina Thankfully Xenu Jokes Not Needlessly Canadian Sasquatch Queen Serena Ceases Valium Nitrodioxide Trading Loathing Belgium's Diabolical Query Reaching Our Minds Yet Eternally Yeasting Verizon Line Has Kansas Jury Goers Turned Endlessly Agonizing Quebecian Network Namer Estephan Quarryman
23:47:45 <ais523> Gagging Unless Jazz
23:47:46 <ais523> [20:52] <Brushy> Johnson Plays Waltz Citing Beethoven's "Your From Round Pittsburg?" Use Escalating Overalls You Damn Jackasses... Just kidding!"
23:48:07 <ais523> I like yours better
23:48:18 <monqy> is there any proper meaning
23:48:34 <CakeProphet> elliott: "Fenestrated Ensemble" would be an excellent part of the name of a window manager or GUI toolkit.
23:48:49 <Phantom_Hoover> Nay, king. Even permitting legalities, we get past lascivious xenomorphs ghastly indignant. Oh, your zebra jumps — vaults! ­— to xylophones, John, never necessitating cars' sins, quickly saving Carmen valiantly. Not today, legate; Bajoran dentistry quora remind of my youth. Yes, even you vie lustily, heartily, Kate: just go. Teach Eritrean adults quietude; Nepalese nothing; Estonian quintessence. Good Uranus, jejune
23:48:50 <Phantom_Hoover> jam (preserve?) will cut BMI. Your Freudian recalcitrance predicates untowards endings, or your doom. Just joking, 'K?
23:49:20 <ais523> did you copy elliott's ending? or was that coincidence?
23:49:42 <Phantom_Hoover> Oh my god I didn't.
23:49:45 <Phantom_Hoover> That...
23:50:17 <Phantom_Hoover> I think it's because jjk isn't terribly easy to work around unless you use a cheap trick like that.
23:50:19 -!- elliott_ has joined.
23:50:26 <Phantom_Hoover> Mine was still better.
23:50:39 <Phantom_Hoover> elliott_, see my brilliant acronym.
23:50:47 <CakeProphet> !wacro 3 25
23:50:47 <EgoBot> DTATMD
23:50:54 <elliott_> 23:48:18: <monqy> is there any proper meaning
23:50:55 <elliott_> nkep
23:50:59 <monqy> nkep
23:51:03 -!- elliott has quit (Read error: Connection reset by peer).
23:51:08 <elliott_> Bajoran dentistry quora remind of my youth too, Phantom_Hoover.
23:51:29 <Phantom_Hoover> elliott_, the quora are for the number of teeth knocked out with rocks.
23:51:30 <elliott_> Also I swear you've said "jejune" before AT LEAST ONCE.
23:51:59 <elliott_> 23:50:17: <Phantom_Hoover> I think it's because jjk isn't terribly easy to work around unless you use a cheap trick like that.
23:52:04 <elliott_> John jested, killed.
23:52:09 <elliott_> A STORY IN THREEWORD
23:52:25 <CakeProphet> 3-gram
23:52:32 <Phantom_Hoover> 'Maud!' 'Yes!'
23:52:42 <copumpkin> why do people keep talking about pumpkin seeds in here?
23:52:45 <Phantom_Hoover> elliott_, 'jejune' has not been used on this channel before.
23:52:53 <CakeProphet> !wacro 3 25
23:52:53 <EgoBot> CRWUWAAICDSSCCFELLPSISIR
23:52:55 <Phantom_Hoover> copumpkin, the glory that is fungot's Homestuck mode.
23:52:56 <fungot> Phantom_Hoover: host. who knocks so hard?
23:53:00 <Phantom_Hoover> Specifically,
23:53:03 <Phantom_Hoover> `quote pumpkin
23:53:06 <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 \ 558) <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
23:53:37 <Phantom_Hoover> Hey, if you stick those quotes together you get an even better one.
23:53:56 <ais523> yep
23:54:07 <ais523> copumpkin: do you have a highlight for that?
23:54:19 <copumpkin> yep
23:54:28 <ais523> just "pumpkin", or the whole phrase?
23:54:33 <copumpkin> just pumpkin
23:54:37 <elliott_> <Phantom_Hoover> elliott_, 'jejune' has not been used on this channel before.
23:54:38 <ais523> my highlight on INTERCAL catches me out in here occasionally
23:54:40 <elliott_> IT MUST HAVE BEEN
23:54:45 <ais523> and surprises me by cropping up randomly in other contexts too
23:54:55 <CakeProphet> elliott_: this can only be settled by wget + perl
23:55:03 <CakeProphet> or you know like grep or something.
23:55:07 <elliott_> CakeProphet: Dude, we have rsync logs.
23:55:07 <CakeProphet> but preferably perl.
23:55:19 <ais523> why use wget when you have perl?
23:55:24 <ais523> it's perfectly capable of downloading things by itself
23:55:29 -!- elliott_ has changed nick to elliott.
23:55:34 -!- elliott has quit (Changing host).
23:55:34 -!- elliott has joined.
23:55:38 <CakeProphet> ais523: not as conveniently, BUT YOU HAVE A GOOD POINT
23:55:58 <ais523> more conveniently if you want to mix it in with a Perl script
23:56:08 <ais523> say, if you're only going to process each thing you download once and then discard it
23:56:12 <CakeProphet> Perl is an unstoppable force of nature, perfectly suitable for all sh porpoises.
23:57:13 <Sgeo> And CakeProphet reminds me of a stupid joke I saw once
23:57:31 <ais523> hmm, anyone know a language that beats Perl on library support?
23:57:38 <ais523> I think only really C and Java have a chance, and I'm not sure if either does
23:57:47 <ais523> /possibly/ the .NET languages
23:58:14 <CakeProphet> python's standard library is more complete than Perl without CPAN, I believe.
23:58:59 <elliott> Perl without CPAN isn't very featureful
23:59:11 <elliott> ais523: I would say C easily beats Perl
23:59:50 <ais523> I'm taking CPAN and platform-related equivalents into account, here
23:59:55 <ais523> Perl is not very featureful without CPAN, indeed
2011-08-27
00:00:11 <ais523> also, random libraries dotted around the Internet (Java scores well on that metric)
00:00:36 <elliott> ais523: Python probably measures up well in comparison
00:00:45 <ais523> I think so
00:00:58 <elliott> ais523: bear in mind that I think most CPAN hype is due to it basically being the first of its kind
00:01:02 <ais523> I think it's probably still behind because Perl had quite the head start in terms of people making lots of libraries for it
00:01:04 <ais523> elliott: indeed
00:01:16 <ais523> being first of its kind definitely gives a relatively major boost, though
00:01:20 <elliott> And I bet that if you investigated all the things you can supposedly get on CPAN, a large number of them will be completely broken
00:01:28 <ais523> hmm, interesting
00:01:31 <CakeProphet> truth.
00:01:34 <ais523> CPAN has automated testing, etc
00:01:40 <ais523> I do find partially broken stuff quite often
00:01:43 <ais523> but completely broken is rare
00:02:23 <elliott> 71145 Uploads, 23245 Distributions
00:02:23 <elliott> 98470 Modules, 9170 Uploaders
00:02:41 <elliott> I find it very hard to believe that there are anywhere near 23245 useful packages on CPAN
00:02:50 <elliott> although I suppose with the ridiculous kind of splitting they do it might be possible
00:06:28 <CakeProphet> I don't know much about rubygems but I believe it has a fairly large set of packages as well.
00:06:49 <Gregor> (Seven!)
00:10:18 <CakeProphet> perl -e "use List::Util 'sum'; print sum(split /\D+/, <>)" catlist.txt
00:10:19 <CakeProphet> 6331
00:10:31 <CakeProphet> catlist.txt is a copypasta from the category list on hackage
00:11:26 <elliott> Hackage's are all good, though.
00:11:33 <CakeProphet> all of them.
00:11:43 <Phantom_Hoover> elliott, POORLY DOCUMENTED RSYNC LOGS
00:12:22 <monqy> mention rsync logs on http://codu.org/logs/_esoteric/ or in topic? best keep it a secret? help
00:12:33 * pikhq is friggin' doing this.
00:12:56 <Gregor> monqy: !logs
00:13:01 <monqy> yes I know
00:13:03 <Gregor> pikhq: THEN FRIGGIN' DO IT
00:13:09 <pikhq> Come on, Firefox on DOS.
00:13:20 <Gregor> monqy: It's a lot of bandwidth so I'm not trying to make it super-duper-well-known :P
00:14:39 <CakeProphet> just found this little morsel on the web: perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
00:15:03 <CakeProphet> converts the number to unary and then determines if it's prime
00:15:06 <CakeProphet> with a regex.
00:15:07 <pikhq> It's surprisingly easy to do this in qemu, BTW.
00:15:40 <pikhq> I think the only "hard" bit is that I need to tell it to use an ne2k_isa network card instead.
00:16:03 -!- iamcal has joined.
00:16:40 <Phantom_Hoover> CakeProphet, eeew.
00:17:03 <elliott> Gregor: Do you have a machine with a terabyte of space just lying around? I hear you're rich, so let me tell you about these DVDs...
00:17:26 <Phantom_Hoover> So the ^1?$ presumably tests if it can be divided into m repetitions of n?
00:17:48 <CakeProphet> Phantom_Hoover: actually I'm not sure how it works because to me it looks like it's just determines if it's even or odd...
00:17:59 <elliott> ^1?$ just matches epsilon and "1", Phantom_Hoover.
00:17:59 <CakeProphet> the ^1?$ just matches the case of 1
00:18:04 <CakeProphet> yes.
00:18:22 <CakeProphet> also it's !~ which means "does not match"
00:18:43 <Phantom_Hoover> Oh, wait, that's a |, not a /.
00:19:38 <CakeProphet> but to me (11+?)\1 says "match an even number of 1's" unless I'm misunderstanding the nongreedy semantics
00:20:14 <CakeProphet> s'(11+?)\1'(11+?)\1+'
00:20:31 <elliott> Are you sure it's not just an odd-or-even tester? :p
00:21:58 <CakeProphet> using 9 as input yielded nothing
00:22:10 <CakeProphet> 7 yields "7 is prime"
00:22:39 <CakeProphet> it must be something to do with +?
00:23:29 <CakeProphet> ooooooh
00:23:31 <CakeProphet> wow.
00:23:35 <CakeProphet> yeah okay
00:23:43 <CakeProphet> I see how it works.
00:24:14 <Phantom_Hoover> So was my rough outline accurate?
00:24:54 <Phantom_Hoover> i.e. that the regex matches any m repetitions of a sequence of n 1s?
00:24:59 <oerjan> yes.
00:25:35 <CakeProphet> that's some clever backreferencing.
00:27:11 <ais523> this is all kind-of obvious, btw, you people
00:27:27 <ais523> I think I wrote a regex like that myself as a proof of concept
00:28:15 <Phantom_Hoover> ais523, it's regexes; they're write-only.
00:28:30 <ais523> no they aren't
00:28:49 <ais523> regexes are pretty easy to read; they're more or less equivalent to subroutines containing many lines, and take similar effort to read
00:29:03 <ais523> what you're doing wrong is trying to read them a line at a time rather than character at a time
00:30:05 <Phantom_Hoover> That was a joke, ais.
00:31:58 * Phantom_Hoover → sleep
00:31:59 -!- Phantom_Hoover has quit (Quit: Leaving).
00:32:43 <CakeProphet> yeah I agree that they're easy to read for the most part. What happened was the +? semantics threw me off
00:33:02 <CakeProphet> as you no longer read it character-by-character at that point, but have to refer to the rest of the pattern to figure out what it does.
00:34:04 <CakeProphet> `run echo "234346234346134983746987234987239587239847235" | perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
00:34:06 <HackEgo> No output.
00:34:19 <monqy> does +? do matching differently than * then?
00:34:29 <monqy> or am i confused
00:34:33 <CakeProphet> +? is like *?
00:34:38 <CakeProphet> but with a required first match
00:34:52 <monqy> I know the relationship between + and *
00:34:52 <CakeProphet> *? is like * in formal regular expressions.
00:35:01 <CakeProphet> * in perl regex is not.
00:35:04 <monqy> but I might not be getting ?
00:35:06 <monqy> oh
00:35:23 <CakeProphet> *? matches the minimum number of repetitions, * matches maximum.
00:35:34 <monqy> regex :(
00:35:52 <monqy> so is ? just a greediness thing then?
00:35:59 <CakeProphet> yes.
00:36:25 <CakeProphet> though actually I guess formal regular expressions have no notion of greediness.
00:36:51 <monqy> I'm used to (whatever)? === (whatever|epsilon) or maybe I only think I'm used to that and really I'm just 100% confused
00:37:10 <CakeProphet> that's what ? normally means, *? and +? are special forms
00:37:15 <monqy> ewwww
00:37:19 <CakeProphet> because you would never put a ? after * and +
00:37:26 <CakeProphet> otherwise.
00:37:28 <monqy> still, ewwwww
00:37:41 <CakeProphet> there's also ?? which I'm not quite so clear on.
00:38:27 <CakeProphet> it's a nongreedy ?, so I guess it'll match epsilon if the preceeding pattern matches in that case.
00:38:46 <CakeProphet> whereas ? would match the non-epsilon case in situation.
00:38:57 <CakeProphet> *that situation
00:39:02 <CakeProphet> it's not commonly used.
00:40:14 <CakeProphet> but anyways in ^(11+?)\1+$ the group in parens will continue to match 1s until any number of repetitions of that group matches the entire string of 1's
00:40:33 <CakeProphet> in other words, it consumes 1's until the number of 1's divides the total number.
00:40:40 <CakeProphet> or fails otherwise.
00:46:29 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in sieve [2..]
00:46:30 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
00:46:44 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in drop 1000 $ sieve [2..]
00:46:45 <lambdabot> [7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081...
00:46:49 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in drop 10000 $ sieve [2..]
00:46:52 <lambdabot> mueval-core: Time limit exceeded
00:46:57 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in drop 9999 $ sieve [2..]
00:47:00 <lambdabot> mueval-core: Time limit exceeded
00:47:07 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in drop 3333 $ sieve [2..]
00:47:11 <lambdabot> mueval-core: Time limit exceeded
00:47:14 <CakeProphet> > let sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs) in drop 2222 $ sieve [2..]
00:47:17 <lambdabot> [19597,19603,19609,19661,19681,19687,19697,19699,19709,19717,19727,19739,19...
00:47:45 <CakeProphet> let sieve (p:xs) = p : sieve {filter (\ x -> x 'mod' p /= 0) xs)
00:47:47 <CakeProphet> er...
00:48:16 <CakeProphet> echo "19739" | perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
00:48:21 <CakeProphet> `run echo "19739" | perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
00:48:24 <HackEgo> 19739 is prime
00:48:52 <oerjan> > nubBy(((>1).).gcd)[2..]
00:48:53 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
00:49:05 <oerjan> (obligatory)
00:49:12 <CakeProphet> oh that one is nice I forgot about that.
00:49:59 <CakeProphet> > drop 5555$nubBy(((>1).).gcd)[2..]
00:50:03 <lambdabot> mueval-core: Time limit exceeded
00:50:07 <CakeProphet> > drop 4444$nubBy(((>1).).gcd)[2..]
00:50:11 <lambdabot> mueval-core: Time limit exceeded
00:50:12 <CakeProphet> > drop 3333$nubBy(((>1).).gcd)[2..]
00:50:16 <lambdabot> mueval-core: Time limit exceeded
00:50:21 <CakeProphet> about the same in efficiency I guess?
00:50:32 <oerjan> well gcd is more expensive than mod
00:50:36 <CakeProphet> ah
00:51:00 <CakeProphet> I'll just run it on my machine to get insanely large primes.
00:51:29 <monqy> good luck
00:52:26 <CakeProphet> what's the big O on that one?
00:52:36 <oerjan> and it's not a true erathosthenes's sieve if it doesn't skip over non-multiples efficiently rather than dividing, i think
00:52:51 <monqy> nubBy is pretty inefficient as well iirc
00:53:18 <oerjan> well yes but i think nubBy is pretty equivalent to what CakeProphet wrote
00:53:34 <oerjan> ?src nubBy
00:53:34 <lambdabot> nubBy eq [] = []
00:53:35 <lambdabot> nubBy eq (x:xs) = x : nubBy eq (filter (\ y -> not (eq x y)) xs)
00:54:04 <CakeProphet> yeah that's very similar.
00:54:14 -!- copumpkin has quit (Ping timeout: 260 seconds).
00:54:31 -!- copumpkin has joined.
00:55:30 <CakeProphet> so could you use nubBy with mod?
00:55:35 <oerjan> sure
00:56:15 <CakeProphet> ah but you can't access the x
00:56:24 <CakeProphet> from eq
00:56:24 <oerjan> > nubBy(((<1).).flip mod)[2..]
00:56:26 <lambdabot> [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2...
00:56:29 <oerjan> oops
00:56:34 <oerjan> > nubBy(((<1).).mod)[2..]
00:56:35 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
00:56:56 <oerjan> ah it's actually the same length when written with <1
00:57:01 * CakeProphet is still waiting for the 9999th prime number to appear in ghci....
00:58:31 <CakeProphet> I know the Perl prime number tester is not very memory efficient, but perhaps it's computationally efficient.
00:59:01 <CakeProphet> probably not though..
01:00:07 <CakeProphet> `run echo "104729" | perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
01:00:14 <HackEgo> 104729 is prime
01:00:47 -!- Vorpal has quit (Ping timeout: 245 seconds).
01:04:57 -!- Nisstyre has quit (Ping timeout: 245 seconds).
01:05:00 <pikhq> That's pretty comedic. You can give the installer an invalid serial number.
01:05:26 <pikhq> It politely informs you that you can't get tech support without a valid one, and asks if you'd like to continue the install, or try again.
01:06:51 -!- Nisstyre has joined.
01:09:25 <monqy> cute
01:09:37 * CakeProphet pipes a Haskell programming that generates primes to the perl one-liner. a wonderful thing is happening.
01:09:45 <CakeProphet> all my CPU usage is pretty close to 100
01:09:51 <CakeProphet> s/all/also/
01:10:33 <CakeProphet> it's gradually starting to output slower as the numbers increase.
01:11:37 <monqy> that happens
01:11:43 <CakeProphet> .... >_> yes it does.
01:11:59 <CakeProphet> I'm just wondering at what point it will start to slow to a crawl.
01:12:05 <CakeProphet> currently in the 21k range
01:12:09 <monqy> eventually
01:13:10 <CakeProphet> mmmm it's a beautiful thing.
01:13:19 <monqy> what is it
01:13:54 <CakeProphet> I just told you....
01:14:06 <CakeProphet> Haskell program generating primes, Perl one-liner thing testing that they're primes.
01:14:11 <monqy> oh
01:14:21 <monqy> and how is that beautiful
01:15:00 <CakeProphet> because they're happily communicating on my processor, which is computing mad amounts of instructions.
01:15:12 <CakeProphet> I dunno, WHAT IS BEAUTY? monqy? help?
01:15:33 <monqy> help
01:17:39 <CakeProphet> wat....
01:17:54 <CakeProphet> sorted by CPU usage, the two two processes on my machine are currently "perl" and "java"
01:18:01 <CakeProphet> IS HASKELL JAVA?
01:18:17 <oerjan> rarely, i believe
01:18:57 <CakeProphet> oh okay, primes is at 0
01:19:15 <monqy> what is java doing
01:19:17 <CakeProphet> probably because it is working much faster than perl.
01:19:34 <CakeProphet> uh, I think it's the java applet for my online class.
01:19:39 <CakeProphet> I have no idea what it's doing.
01:36:39 <CakeProphet> lol, I just tried to define a main function in Python
01:36:44 <CakeProphet> I'M GETTING MY LANGUAGES CONFUSED AAAAH
01:36:58 <CakeProphet> earlier I tried to use "using" instead of "import" in a Haskell program
01:47:58 -!- hagb4rd has joined.
01:55:37 <sllide> i got mentioned?
01:56:36 <elliott> technically
02:02:43 <CakeProphet> super(self.__class__, self).__init__(source)
02:02:49 <CakeProphet> Python: a beautiful programming language
02:03:31 <CakeProphet> I love writing that line. all the time. it's fun. every underscore is like unadultered joy.
02:04:07 -!- pikhq has quit (Ping timeout: 240 seconds).
02:05:06 -!- sllide has quit (Quit: Leaving).
02:06:41 <elliott> CakeProphet: super is a waste of time
02:07:00 <elliott> also I'm pretty sure you're meant to put the actual class there, not self.__class__
02:07:09 <elliott> that's sort of the whole idea what with subclasses, I gather
02:07:23 <ais523> ah, I finally remembered what combo I'd bound to turn windows black and white
02:07:34 <ais523> now I'm trying to remember /why/ I bound a complicated combination to do that
02:07:40 <ais523> (super-shift-mousewheeldown, fwiw)
02:07:45 <elliott> CakeProphet: but seriously, just do Foo.__init__(self, ...) and avoid multiple inheritance forever
02:07:52 <elliott> ais523: /mousewheeldown/?
02:08:01 <ais523> elliott: yep, and mousewheelup to turn them back again
02:08:06 <ais523> hey, it's not like I'm going to press it by accident
02:08:14 <elliott> that's awful :P
02:08:15 <ais523> there are various amounts of desaturation in between
02:08:36 <ais523> I knew it was modifiers + mousewheel, but forgot which modifiers
02:10:43 <CakeProphet> elliott: if I recall correctly, the super(self.__class__, self).__init__ stuff is "more pythonic"
02:11:35 <CakeProphet> maybe I should go ask #python even though they suck dicks.
02:11:45 <elliott> CakeProphet: It is literally identical to super unless you have multiple inheritance.
02:11:53 <elliott> If you have multiple inheritance, you have two or more problems.
02:12:13 <elliott> CakeProphet: But seriously, I'm pretty sure you _have_ to use it like super(ClassName, self) for it to work properly.
02:12:19 <elliott> Or later inheritance will mess it up.
02:12:21 <hagb4rd> multiple inheritance suxx
02:12:26 <CakeProphet> nope it's the same.
02:12:37 <CakeProphet> super(self.__class__, self) is the same as super(ClassName, self)
02:12:37 <elliott> CakeProphet: No, it patently does not have the same semantics.
02:12:48 <elliott> self.__class_ =/= ClassName if self is an instance of a subclass of ClassName.
02:12:50 <CakeProphet> self.__class__ == ClassName
02:12:56 <CakeProphet> oh
02:12:58 <CakeProphet> right.
02:13:05 <elliott> CakeProphet: You may also enjoy this fun fun fun article: http://fuhm.net/super-harmful/
02:13:17 <CakeProphet> OH HEY I BET THIS EXPLAINS THIS BUG.
02:13:26 <elliott> tl;dr you have no hope of getting super right, multiple inheritance is shit, just say SuperClass.__init__(self, ...) and be happy.
02:13:54 <Gregor> HELLO KITTY
02:13:56 <CakeProphet> time to rewrite those lines in 6 or so classes.
02:14:19 <CakeProphet> < Dulak> CakeProphet: super() or call it as ParentClass.method() are the two options, I typically avoid super myself
02:14:24 <CakeProphet> Dulak of #python has spoken.
02:14:38 <elliott> Sounds like a Cardassian name.
02:14:52 <elliott> Make sure he doesn't hit you with a rock.
02:15:00 <elliott> Or several rocks.
02:15:21 <CakeProphet> man I hate #python
02:15:40 <hagb4rd> avoid super? this is so unesoteric
02:15:54 <elliott> Are we sure hagb4rd isn't actually a bot?
02:16:02 <CakeProphet> HERE AT ESOTERIC WE VALUE CLEAN, ELEGANT CODE.
02:16:21 * hagb4rd passes the turing test
02:16:42 <elliott> hagb4rd: not from here you don't
02:16:54 <MDude> Wasn't there some program mentioned on the wiki meant to take the input/output of esolangs that only have ASCII I/O and use some protocol on them to do tihngs like access files and stuff?
02:17:35 <Gregor> There have been various, IIRC PSOX is the most recent.
02:17:40 <elliott> MDude: Not ASCII, but eight-bit, yes. You might be thinking of PESOIX or EsoAPI or PSOX.
02:17:45 <elliott> But you don't want to.
02:18:36 <CakeProphet> weeeee OOP
02:19:33 <oerjan> hagb4rd: well as a small turing test, you might explain zygohistomorphic prepromorphisms as applied to the INTERCAL threading model.
02:19:34 <CakeProphet> elliott: okay so I've got a huge class tree of AST node types
02:19:51 <ais523> oerjan: I'm not even sure /I/ can do that
02:20:01 <oerjan> ais523: shhh
02:20:03 <elliott> CakeProphet: that might be one of your problems.
02:20:05 <elliott> CakeProphet: but go on.
02:20:08 <CakeProphet> would you consider it bad practice to implement the interpreter by calling an evaluate() method on the top level node?
02:20:22 <CakeProphet> which then calls subnodes evaluate methods, etc...
02:20:42 <hagb4rd> oerjan: syntax error
02:20:55 <elliott> CakeProphet: itt: visitor pattern
02:21:09 <elliott> basically yes it's fine.
02:21:19 <CakeProphet> awesome because that will actually be more pleasant than the alternative.
02:21:21 <elliott> CakeProphet: but you may also want to do it visitor style instead.
02:21:25 <elliott> http://en.wikipedia.org/wiki/Visitor_pattern#Source
02:21:28 <elliott> which is uh
02:21:33 <elliott> basically just syb: the verbose oop edition
02:22:01 <CakeProphet> I think that is the same thing as what I was talking about
02:22:07 <elliott> it isn't
02:22:14 <CakeProphet> oh I see the difference.
02:22:17 <elliott> it's more generic
02:22:21 <elliott> but you probably don't care
02:22:41 -!- oerjan has quit (Quit: Good night).
02:22:44 <hagb4rd> oerjan: would you like to explain it to me? i'd be glad to learn
02:22:45 <CakeProphet> I only care if my employer cares. I'm not sure he'll notice all the lengths I'm going through to me everything easy to extend later.
02:22:56 <elliott> CakeProphet: a method is better imo
02:23:11 <CakeProphet> elliott: so basically the difference here is that the visitor object has a method as well?
02:23:16 <CakeProphet> or?
02:23:19 <elliott> ...no.
02:23:21 <elliott> just do it as a method
02:24:29 <CakeProphet> instead of the "visitor" object I'll just be passing around an environment object.
02:24:38 <elliott> yeah, you don't understand the visitor pattern, but it doesn't matter
02:24:41 <CakeProphet> with symbol table, stack info, etc.
02:24:45 <elliott> if you want extensibility it's easier to have a method
02:24:54 <hagb4rd> oerjan: i really do not know much, but it took me 30 years of my life to find this channel ;)
02:25:02 <Patashu> isn't visitor pattern kidna like monads?
02:25:06 <elliott> Patashu: no
02:25:13 <elliott> hagb4rd: you spent thirty years of your life wanting an irc channel about esolangs?
02:25:38 <CakeProphet> elliott: plz explain visitor pattern.
02:25:53 <MDude> I was tihnking of making a 2D language that requires miltithreading, but it looks like Flip already does that.
02:26:01 <Patashu> isn't visitor pattern where you expose an iterator over all your children?
02:26:06 <hagb4rd> elliot: no not really.. to find a channel i really do not understand anything
02:26:36 <elliott> hagb4rd: any channel where people spoke nonsense all day would fit that bill, so i recommend you try #vjn
02:26:37 <CakeProphet> elliott: oh wait I see
02:26:43 <CakeProphet> it's like... double what I'm doing.
02:26:47 <elliott> Patashu: yes, which is unrelated to monads.
02:27:00 <Patashu> monads are where you can apply a function over a container of values regardless of what the container is, right?
02:27:01 <Patashu> that's monadish
02:27:04 <elliott> Patashu: no.
02:27:09 <hagb4rd> elliot: and not to forget.. find guys as charming as you are
02:27:12 <hagb4rd> ;)
02:27:19 <Patashu> as charming as elliott?
02:27:19 <elliott> Patashu: that's functors, and the description is misleading
02:27:20 <Patashu> that'll be tough
02:27:28 <elliott> ("computation" is better than "container" but still not quite accurate)
02:27:36 <Gregor> hagb4rd: If you had said that a week ago, we'd call the cops on you X-D
02:27:47 <hagb4rd> rofl
02:27:55 <elliott> Gregor: Dude, augur used to talk a lot in here.
02:27:58 <elliott> WHERE WERE THE COPS THEN
02:28:02 <CakeProphet> elliott: yeah visitor pattern looks really annoying I'm not going to do that.
02:28:09 <Gregor> elliott: Having sex with augur, where else?
02:28:21 <hagb4rd> gregor: is your game making progress?
02:28:29 <hagb4rd> finished it?
02:28:45 <elliott> Gregor: IS ZEE DONE YET
02:28:47 <Gregor> hagb4rd: It's implemented, but my attempts at making bots for it thusfar have had limited success.
02:28:50 <Gregor> elliott: *sobblecopter*
02:29:11 <Patashu> tried genetically making bots yet?
02:29:15 * Sgeo suddenly envisions writing tax processing code using Haskell's List monad
02:29:15 <hagb4rd> limited.. i see
02:29:21 <Gregor> Patashu: NO U
02:29:24 <elliott> Genetic programming is really really shitty.
02:29:31 <elliott> But it's still my first thought when I think of rezzo :P
02:29:36 <elliott> I mean, see how badly it does for BF Joust
02:29:39 <elliott> rezzo is about ten times more complicated
02:29:44 -!- azaq23 has joined.
02:29:56 <elliott> You can't just generate a program to do any task that involves some kind of tolerated imperfection :P
02:29:59 <Patashu> it's not shitty for -everything-
02:35:06 <CakeProphet> wow that did not take long enough to debug, obviously something is wrong.
02:37:56 <CakeProphet> elliott: also I'm curious as to how you would do an AST in Python
02:38:08 <CakeProphet> single tree class?
02:38:57 <elliott> first i'd use tuples with the first element being a tag, then i'd kill myself and promise myself i'd do haskell in the next life
02:39:42 <hagb4rd> yea the solution is clean, safe, fast and absolutely wrong
02:39:42 <CakeProphet> ...I think using a class is actually a better approach in Python.
02:39:53 <CakeProphet> YOU CAN'T CODE HASKELL IN OTHER LANGUAGES, ELLIOTT.
02:40:00 <CakeProphet> IT IS MORE ANNOYING.
02:40:16 <elliott> the first thing is... not the haskell solution.
02:40:27 <elliott> hagb4rd: seriously, you are literally just parroting things from a qdb, right?
02:40:31 <CakeProphet> well right, but haskell-esque
02:40:37 <elliott> or like a trite geek phrase database
02:40:47 <elliott> CakeProphet: more erlang-esque tbh
02:40:53 -!- GreaseMonkey has joined.
02:40:53 -!- GreaseMonkey has quit (Changing host).
02:40:53 -!- GreaseMonkey has joined.
02:41:24 <CakeProphet> elliott: but OO is so elegant! I've got like 77 lines of boilerplate AST code.
02:43:09 <hagb4rd> elliott: y should i do such miserable things? nope.. i read this on a sticker or sth
02:43:20 <elliott> hagb4rd: ok
02:44:22 <CakeProphet> hagb4rd: do you know how to write computer programs?
02:44:23 <Sgeo> YES YES YES HASKELL LAZINESS HELPS SOLVE MY PROBLEMS
02:44:34 <Sgeo> At least one of them, anyway
02:44:42 <hagb4rd> cakeprophet.. yes..
02:45:01 <Sgeo> I still feel like I'd... wait, State monad would break that, wouldn't it?
02:45:01 <hagb4rd> i've come here to change this
02:45:04 <Sgeo> Or not
02:45:38 <Sgeo> Or yes
02:45:46 <Sgeo> I should actually try it at some point
02:45:52 <Sgeo> Wonder if the ST monad has these problems
02:45:58 <hagb4rd> cakeprophet: but i'm not working at this lowlevel usually
02:46:13 <hagb4rd> but it's fun
02:46:14 <elliott> Sgeo
02:46:15 <Patashu> low level?
02:46:22 * Patashu ponders low level haskell... iota?
02:46:24 <elliott> what did you do to my client why can i see your messages again :(
02:46:42 <Sgeo> elliott, nothing deliberately
02:47:34 <elliott> Patashu: http://hpaste.org/50517
02:47:42 <Patashu> or that
02:56:22 <CakeProphet> hagb4rd: what languages do you know?
02:56:31 <CakeProphet> also what we've been talking about recently hasn't bee "low level"
02:56:40 <CakeProphet> *been
02:59:35 <elliott> is hagb4rd a programmer i thought he wasn't
02:59:38 <elliott> he's been here a while
03:03:14 <hagb4rd> okay.. let me put it this way. my humble job is consulting business parnters in it-issues.. very boring indeed..so nevermind
03:04:01 <hagb4rd> the opposite of operation mindfuck, you know
03:06:12 -!- pikhq has joined.
03:07:43 <monqy> hi is bad things happening
03:07:50 <Gregor> <Larry Page> I need a new company cell phone. Random lackey, go buy a Motorola. <Random lackey> Aye aye! (later) <Larry Page> Which model did you buy? <Random lackey> ... model?
03:09:48 <elliott> Gregor: That was just as funny as the first time I heard it, except instead of Larry Page it was Intel and instead of Motorola it was McAfee!
03:10:01 <Gregor> *badum*
03:12:56 <hagb4rd> the opposite of operation mindfuck, you knowu practice here
03:13:11 <hagb4rd> sorry
03:13:31 <hagb4rd> i killed my poem
03:13:37 <hagb4rd> *sigh
03:13:44 <pikhq> Stepdad types router admin password in plaintext, gets pissed that I noticed. Hooray, dealing with stupid!
03:14:17 <Gregor> Family: Literally the worst thing? (Since stealing elliott's phrases, anyway)
03:14:50 <elliott> I am fairly sure I did not invent any of the mannerisms I use.
03:14:57 <elliott> But by all means attribute them to me :P
03:14:59 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:15:23 <monqy> I probably invented at least a good few of my mannerisms
03:16:17 <hagb4rd> cakeprophet.. what you do here is the sophisticated, erisian, esoteric scientific approach.. in everyday-life the opposite of what i'm used too
03:16:47 <elliott> hagb4rd: have we told you that you've got the wrong definition of esoteric yet
03:16:54 <elliott> because you might have
03:17:17 <pikhq> Anyways. I've got DESQview X working, but I can't get the friggin' network stack to work
03:18:32 <hagb4rd> elliott: u don't miss any chance to do so, yes
03:18:44 <elliott> ok
03:18:49 <hagb4rd> what is esoteric than?
03:19:50 <hagb4rd> my english seems infantile but i'm a fucking intelligent bot
03:19:57 <hagb4rd> so explain
03:20:01 <elliott> http://esolangs.org/wiki/Main_Page, http://en.wikipedia.org/wiki/Esoteric_programming_language might help :)
03:20:43 <hagb4rd> ok... thank you
03:23:01 <CakeProphet> hagb4rd: so you can't program? we should fix that
03:23:18 <hagb4rd> CakeProphet: right
03:23:19 <monqy> are you sure this is a good idea....
03:23:30 <CakeProphet> teaching someone how to program is always a good idea.
03:23:31 <CakeProphet> always.
03:23:34 <monqy> always?
03:23:36 <CakeProphet> yep.
03:23:50 <monqy> so uh
03:23:52 <monqy> how are you going to
03:23:53 <monqy> uh
03:23:53 <monqy> do
03:23:54 <monqy> this
03:24:03 <CakeProphet> I'm not. IT WILL SIMPLY HAPPEN.
03:24:06 <monqy> oh
03:24:06 <monqy> okay
03:24:09 <monqy> well
03:24:10 <monqy> good luck
03:24:11 <monqy> with
03:24:11 <monqy> that
03:24:15 <hagb4rd> let me just listen for a while and ignore my stupid comments
03:24:17 <CakeProphet> and I will wait, and continue working on my project.
03:24:23 <CakeProphet> well you certainly won't learn that way.
03:24:35 <CakeProphet> you'll just listen to us and not know what we're talking about at all.
03:24:49 <CakeProphet> elliott: teach him Haskell. go
03:24:58 <pikhq> YES
03:24:59 <elliott> hagb4rd: you know histomorphism morphisms?
03:25:02 <pikhq> CAN HAS NETWORKING
03:25:09 <elliott> well what prepromorphisms are to morphisms
03:25:15 <elliott> and zygohistomorphisms are to histomorphisms
03:25:22 <monqy> help
03:25:25 <elliott> are to zygohistomorphic prepromorphisms
03:25:33 <elliott> what histomorphic morphisms are
03:25:37 <elliott> hope this helps
03:25:44 <hagb4rd> no, but i have a hairdresser callled dominique
03:26:03 <CakeProphet> elliott: I'm hoping you just made those words up
03:26:06 <CakeProphet> and they have no formal meaning.
03:26:17 <CakeProphet> (aside from morphism)
03:26:34 <hagb4rd> morphism!
03:26:42 <elliott> CakeProphet: zygohistomorphic prepromorphisms are real.
03:26:48 <elliott> see http://www.haskell.org/haskellwiki/Zygohistomorphic_prepromorphisms, http://stackoverflow.com/questions/5057136/real-world-applications-of-zygohistomorphic-prepromorphisms
03:27:08 <elliott> CakeProphet: oh, http://www.reddit.com/r/programming/comments/6ml1y/a_pretty_useful_haskell_snippet/c04ako5 before the stackoverflow link
03:27:08 <CakeProphet> no thanks I'm currently working on making 2 grand.
03:27:14 <CakeProphet> but maybe later.
03:27:19 <hagb4rd> okay.. that should be enough to confuse me in lesson1..thx
03:27:36 <CakeProphet> hagb4rd: no you definitely need to read an introductory text on how to program in some language.
03:27:41 <CakeProphet> or have a good teacher.
03:27:56 <CakeProphet> if you seriously want to learn.
03:28:03 <CakeProphet> and not just read confusing things you don't understand.
03:28:15 <hagb4rd> okay.. i'm used to c, java, pearl and stuff you're really not interested it
03:28:27 <elliott> CakeProphet: well, that's what the other kind of esoteric is all about.
03:28:34 <elliott> so it must do something for a lot of people
03:28:38 <monqy> i recommend the a gentle introduction to haskell
03:28:46 <hagb4rd> i know elliott
03:28:49 <elliott> monqy: its very gentle
03:28:51 <hagb4rd> so far
03:29:07 <hagb4rd> but i will read this articles..i promise
03:29:27 <hagb4rd> these
03:29:53 <elliott> don't, they're jokes.
03:29:54 <CakeProphet> my favorite part about writing a parser by hand has been: the myriad of error messages
03:29:57 <CakeProphet> so much fun.
03:30:10 <elliott> CakeProphet: you should write it in haskell instead. and then also use trifecta or something
03:30:21 <CakeProphet> lolwat
03:30:26 <CakeProphet> trifecta implies 3 of something.
03:30:39 <CakeProphet> NO SENSE IS MADE HELP
03:30:48 <copumpkin> it's a sweet parser library edwardk has been writing
03:30:53 <copumpkin> it's awesome
03:30:53 -!- azaq23 has joined.
03:30:56 <elliott> CakeProphet: http://hackage.haskell.org/package/trifecta
03:30:59 <CakeProphet> s/$/[(]C[)]/
03:31:03 <elliott> i haven't used it but apparently it is like parsec but nicer??
03:31:10 <elliott> and i hear it gives fancy syntax-highlighted automatic errors like clang does
03:31:16 <CakeProphet> oh, no too late for that. and this guy wants it in Python.
03:31:20 <elliott> as opposed to parsec's errors which are.... not good.........
03:31:28 <CakeProphet> neat.
03:31:29 <elliott> CakeProphet: that's ok, just write a python bytecode backend for ghc
03:31:33 <CakeProphet> heh
03:31:35 <CakeProphet> yeah okay.
03:31:41 <CakeProphet> that is totally possible.
03:31:46 <copumpkin> it also gives you syntax highlighting in html or other outputs if you want
03:31:47 <elliott> of course it is
03:31:50 <copumpkin> and will also support completion
03:31:50 <CakeProphet> because python bytecode is so non-language specific.
03:31:51 <elliott> not even that hard, I would guess
03:31:53 <elliott> stg isn't that complicated is it?
03:32:03 <elliott> CakeProphet: um python bytecode is actually really easy to target
03:32:04 <hagb4rd> okay..let's start with haskell then
03:32:08 <elliott> it's just a really simple stack machine
03:32:11 <elliott> with a few object things
03:32:27 <CakeProphet> yes I know. but would that be easy to translate to from a functional language?
03:32:33 <pikhq> Let's see how hella-slow this is.
03:32:43 <pikhq> It segfaulted!
03:32:44 <elliott> CakeProphet: ghc doesn't go straight from haskell to assembly dude
03:32:49 <CakeProphet> I am aware.
03:32:56 -!- MDude has changed nick to MSleep.
03:33:05 <CakeProphet> so you're saying translate either Core or C to Python bytecode yes?
03:33:09 <CakeProphet> or is there another step inbetween?
03:33:11 <elliott> CakeProphet: no, either STG or Cmm
03:33:20 <CakeProphet> oh, those are new to me...
03:33:31 <elliott> it goes Haskell → Core → STG → Cmm → backend, I believe
03:33:46 <elliott> Cmm is just GHC's internal dialect of C-- (http://www.cminusminus.org/)
03:33:52 <elliott> so it's basically C but with fewer assumptions and no high-level features.
03:34:01 <CakeProphet> what about STG?
03:34:07 <elliott> I dunno how nice stg would be to compile, ask copumpkin :-D
03:34:15 <CakeProphet> what kind of language is it though.
03:34:19 <elliott> but I'm pretty sure it's more functional-ish than Cmm
03:34:25 <elliott> so probably you want to turn Cmm into Python bytecode
03:34:31 <elliott> hmm, now I want to implement this :/
03:34:35 <copumpkin> it's not really a visible language
03:34:41 <pikhq> Okay.
03:34:49 <hagb4rd> what's your opinio on ms' f#
03:34:51 <pikhq> This message sent from DOS.
03:34:52 <elliott> copumpkin: tell me writing a Cmm → Python bytecode compiler is a bad idea
03:35:02 <copumpkin> it wouldn't be impossible, but I wouldn't do it
03:35:06 <elliott> hagb4rd: it's like OCaml except proprietary and not nice
03:35:08 <CakeProphet> hagb4rd: I don't really have one. Kind of neutralish.
03:35:15 <elliott> copumpkin: btw, "it's not really a visible language" - about STG or Cmm?
03:35:21 <CakeProphet> stg la
03:35:30 <elliott> I mean obviously none of it is "visible" but backends have to process something :P
03:35:35 <copumpkin> STG
03:35:41 <copumpkin> cmm I write a decent amount of
03:35:46 <CakeProphet> I'm almost convinced there's no clean way to write a parser via imperative style.
03:35:57 <elliott> copumpkin: well, right, a bunch of the rts is cmm isn't it
03:36:05 <copumpkin> some of it
03:36:07 <copumpkin> most is in plain C
03:36:09 <elliott> CakeProphet: imperative programs compose terrible, q.e.d.?
03:36:17 <elliott> copumpkin: close enough to a bunch for me
03:36:40 * elliott takes a look at http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/CmmType
03:37:26 <elliott> i like how most of this is "exactly like C-- EXCEPT ..."
03:38:19 <CakeProphet> elliott: though at least python has a partition method which makes things somewhat cleaner.
03:38:29 <CakeProphet> still I find myself resorting to character-by-character loops more than I would like.
03:38:36 <elliott> CakeProphet: you could just use a parser combinator library
03:39:03 <CakeProphet> ...I'm already almost done with this though, so.. I'll just use this.
03:39:14 * CakeProphet has about a week to implement the interpreter and the frontend stuff.
03:39:17 <monqy> why didn't you use a parser combinator library to start with
03:39:23 <elliott> CakeProphet: what are you actually coding
03:39:23 <CakeProphet> and test, and document everything.
03:39:41 <elliott> it sounds like someone is paying you a small amount of money to implement a language but that scares me because why...........
03:39:57 <monqy> cakeprophets language "its totally cool and good okay"
03:39:58 <elliott> please tell me it's at least a dsl
03:41:01 <pikhq> My goodness this is amazing.
03:41:15 <Sgeo> pikhq, hm?
03:41:35 <pikhq> This xterm is running in a DOS X server.
03:42:05 <Sgeo> Cool. Why would anyone make a DOS X server though?
03:42:09 <Sgeo> Except for fun
03:42:13 <Sgeo> Or if it's old
03:42:22 <pikhq> It's fucking ancient.
03:42:39 <pikhq> This features the ability to run Win 3.1 alongside X.
03:42:41 * Sgeo repeats to self "X is not new. X is not new"
03:42:48 <monqy> x is not new
03:44:09 <pikhq> DOS is more ancient than you would like to think.
03:44:46 <Sgeo> It's not DOS that I'm failing to think of as ancient (although I guess that too), but X.
03:45:36 <pikhq> Yeah. Still, it's utterly insane.
03:46:23 * CakeProphet has got mad language writing skills dawg.
03:46:28 <CakeProphet> don't even try to diss my shit.
03:46:35 <monqy> dissing
03:46:43 <CakeProphet> monqy: dude wait till I write my regex-inspired language.
03:46:46 <CakeProphet> bricks will be shat.
03:46:48 <CakeProphet> you will be in awe.
03:46:51 <Patashu> CakeProphet: perl?
03:46:53 <monqy> of how bad it is
03:46:55 <monqy> and awful
03:46:56 <monqy> and ugly
03:46:57 <monqy> and gross
03:46:57 <CakeProphet> Patashu: harr harr har
03:47:42 <CakeProphet> yeah because it makes complete sense for Perl to be inspired by a subset of itself.
03:48:08 <pikhq> I could go deeper.
03:48:22 <pikhq> I could start qemu.
03:49:11 <CakeProphet> actually regex is a superset of Perl due to (?{...}) and friends
03:49:29 <CakeProphet> and Perl is a superset of Perl regex.
03:49:41 <Patashu> oh shi-
03:49:43 <CakeProphet> PARADOX
03:49:55 <CakeProphet> Wall's Paradox.
03:51:00 <CakeProphet> monqy: essentially it's like regex except patterns have return values and there's basically a large set of "patterns" that are zero-width
03:51:16 <CakeProphet> so it's actually not like regex at all.
03:51:45 <CakeProphet> and more like a programming language with regular expression operations as first-class citizens.
03:52:41 <CakeProphet> also there's multiple contexts that an expression can be evaluated in, like Perl.
03:52:56 <CakeProphet> IT'S THE BEST THING EVER YOU WILL SEE.
03:53:06 <monqy> ew contexts (puke)
03:53:12 <Patashu> multiple contexts is basically implicit casting right?
03:53:39 -!- variable has quit (Remote host closed the connection).
03:54:27 <CakeProphet> Patashu: sort of.
03:54:47 <CakeProphet> it's a runtime occurence.
03:55:12 <CakeProphet> also in Perl subroutines can routine two completely different things based on their context.
03:55:29 <CakeProphet> the builtin operators do this often, and user-defined subroutines can do it with the wantarray operator
03:55:45 <CakeProphet> s/routine/return/
03:55:50 <Patashu> ah, that's interesting
03:55:54 <Patashu> that's something overloaded functions don't do
03:56:01 <CakeProphet> indeed.
03:56:26 <monqy> (puke)(puke)(puke)
03:56:45 <elliott> puk
03:56:55 <Patashu> *ponders object contexts plus polymorphism*
03:57:08 <CakeProphet> !perl $_='test'; print /test/
03:57:09 <EgoBot> 1
03:57:32 <CakeProphet> !perl $_='test'; print /(.)(.)(.)(.)/
03:57:32 <EgoBot> test
03:57:49 <CakeProphet> !perl $_='test'; print scalar /(.)(.)(.)(.)/
03:57:50 <EgoBot> Warning: Use of "scalar" without parentheses is ambiguous at /tmp/input.29688 line 1.
03:57:58 <CakeProphet> !perl $_='test'; print (scalar /(.)(.)(.)(.)/)
03:57:58 <EgoBot> Warning: Use of "scalar" without parentheses is ambiguous at /tmp/input.29772 line 1.
03:58:04 <CakeProphet> !perl $_='test'; print scalar (/(.)(.)(.)(.)/)
03:58:04 <EgoBot> 1
03:58:06 <CakeProphet> lolwat
03:58:12 <CakeProphet> I don't really see how it was ambiguous but OKAY.
03:58:25 <CakeProphet> so yeah in list context regex match returns a list of its captures
03:58:35 <elliott> CakeProphet ~ "maybe not as well-versed in perls grammar as perl"
03:58:37 <elliott> the eulogy
03:58:43 <CakeProphet> in scalar context it returns 1 or undef
04:00:13 <CakeProphet> Patashu: also because Perl subroutines take a list as their single argument that means passing as argument = list context
04:00:32 <CakeProphet> Patashu: unless you use scalar, which forces scalar context, as I did.
04:00:36 <hagb4rd> !perl $_=':P'; print /(.)(.)/
04:00:37 <EgoBot> ​:P
04:00:41 <hagb4rd> was
04:00:48 <hagb4rd> esoteric
04:00:54 <hagb4rd> rifg
04:01:37 <hagb4rd> last but not least it was kind of erotic
04:01:57 <CakeProphet> that's not really esoteric at all.
04:02:21 <monqy> not erotic
04:02:32 <hagb4rd> but it was a joke
04:02:50 <hagb4rd> i try
04:02:55 <hagb4rd> harder next time
04:03:42 <monqy> ok
04:04:37 <CakeProphet> I actually do find Perl code to be beautiful.
04:04:43 <hagb4rd> lol
04:04:52 <hagb4rd> CakeProphet: ack
04:05:04 <Patashu> I find vb code to be beautiful
04:06:00 <CakeProphet> $x=0;map{/i/&&$x++;/d/&&$x!=0&&$x--;/o/&&print"$x\n";$x*=$x!=16&&$x if/s/}<>
04:06:01 <myndzi> |
04:06:01 <myndzi> >\
04:06:10 <CakeProphet> beautiful.
04:07:16 <monqy> myndzi is the best part
04:12:51 -!- variable has joined.
04:14:48 <pikhq> I kinda wonder why this thing seem to miss key presses intermittently.
04:22:44 -!- pikhq_ has joined.
04:23:59 -!- pikhq has quit (Ping timeout: 258 seconds).
04:25:04 -!- Nisstyre has changed nick to luig1.
04:25:14 -!- luig1 has changed nick to nisstyre.
04:28:16 <hagb4rd> this is an awesone piece of js code http://deanm.github.com/pre3d/monster.html
04:28:48 <CakeProphet> "awesome piece of js" -- that statement cancels itself out and becomes nothingness
04:28:54 <CakeProphet> +code
04:30:27 <hagb4rd> maths can create such beauty.. and remains the most powerful tool of all
04:30:37 * CakeProphet stares at the tentacle ball for a few moments.
04:30:47 <hagb4rd> look at the code
04:30:58 <CakeProphet> I'm afraid to.
04:31:27 <hagb4rd> http://deanm.github.com/pre3d/monster.js
04:33:10 <CakeProphet> yeah I found it. it's pretty much not very possible to read.
04:33:21 <CakeProphet> but from what I can tell it manipulates a canvas object.
04:35:09 <elliott> that looks obfuscated :P
04:35:13 <elliott> as in mechanically
04:35:31 <monqy> for compression purposes, presumably
04:35:32 <Patashu> use beautify.js
04:35:44 <monqy> https://github.com/deanm/pre3d/tree/master/demos dunno if that demo is here though
04:40:50 <hagb4rd> i try to get it formatted.. but even that seems not be trivial
04:41:10 <hagb4rd> what the hell happens there
04:43:48 <CakeProphet> I find it funny that pastebin.com lists "Rails" but not "Ruby"
04:51:34 -!- elliott has quit (Ping timeout: 264 seconds).
04:54:05 <CakeProphet> http://www.youtube.com/watch?v=O2rGTXHvPCQ -- How IRC works, according to American television
04:56:06 -!- evincar has joined.
05:00:56 <monqy> old stuff
05:01:14 <monqy> but good
05:01:21 <CakeProphet> monqy -- resident cool kid
05:01:27 <monqy> sure
05:01:36 <CakeProphet> thank you.
05:04:49 <evincar> There are no good functional languages with web libraries that I like that I can also use on a shared hosting provider.
05:05:19 <evincar> I guess this is the part where I say "I might have to make one!"
05:05:22 <CakeProphet> Haskell.
05:06:04 <evincar> s/(functional languages)/$1 that I like/
05:06:45 <evincar> Haskell isn't so bad.
05:06:54 <evincar> Lately I've seen type systems as more of a gimmick than anything.
05:06:58 <CakeProphet> ...
05:07:08 <CakeProphet> you don't know anything about type systems.
05:07:13 <CakeProphet> or Haskells
05:07:24 <evincar> I don't know much about Haskell.
05:07:39 -!- azaq231 has joined.
05:07:56 <evincar> Never written anything non-trivial in it.
05:08:07 <CakeProphet> do you know how the type system works?
05:08:34 -!- azaq23 has quit (Ping timeout: 260 seconds).
05:08:58 <pikhq_> CakeProphet: Aaah, how hackers talk when they don't want to be overheard. XD
05:09:04 <evincar> Generally speaking, yes. I don't know what you're getting at.
05:09:10 <CakeProphet> how is it a gimmick.
05:09:36 <pikhq_> Also, |)\34|_ #4><><0|)\5 |_|53 1337.
05:09:41 <CakeProphet> pikhq_: yeah that's totally how it works. thanks smart math show.
05:10:28 <evincar> A type system is gimmicky in that it serves only to enforce contracts that probably wouldn't have been violated anyway.
05:10:36 <CakeProphet> ..uh
05:10:40 <evincar> Static typing requires type annotation at some point, even with type inference.
05:10:58 <evincar> So you do have up-front work to do.
05:11:13 <evincar> I just don't think it's necessary for all programs.
05:11:16 <CakeProphet> you do know that programs are not written perfectly the first time, right? and that type errors are a common result of this?
05:11:39 <evincar> The notion of type error is tied to a type system, though.
05:11:49 <CakeProphet> and also, that Haskell will most of the time infer type unless you are using advanced features or need to resolve an ambiguity.
05:12:10 <pikhq_> No, a type error can happen otherwise. It's just nowhere near as *clear* that's what happening.
05:12:51 <evincar> So a type error in an untyped language is just a logic error.
05:12:58 <evincar> Or dynamically typed or what have you.
05:13:01 <pikhq_> Particular form thereof.
05:13:04 <CakeProphet> evincar: also, a well-made type system helps to /guarantee/ that when your program compiles it will be well-formed, to a degree that the strictness of the type system allows.
05:13:18 <pikhq_> One where you're using the wrong *sort* of value in a place.
05:13:47 <evincar> I'm not saying type systems in general are bad, nor static type systems explicitly.
05:14:01 <pikhq_> You're saying it's "gimmicky".
05:14:03 <evincar> I just don't think the majority of software needs to be typed.
05:14:25 <pikhq_> You are one insane optimist.
05:14:28 <evincar> And that use of typing in software that *doesn't* need it is merely a gimmick.
05:14:41 <pikhq_> The majority of software needs as absolute much help as it can *get*.
05:14:42 <Patashu> Can you give an example of needing typing then?
05:15:03 <pikhq_> Most software is not merely poor, it is *terrible* and *fundamentally broken*.
05:15:22 <evincar> Give me a choice, though.
05:15:33 <CakeProphet> evincar: when my Haskell program compiles, I know I have finished most of the debugging process. The only thing that remains are logic errors (and no, runtime type errors are not logic errors, like you said)
05:15:33 <pikhq_> A strong type system can make this less prevalent.
05:15:36 <evincar> Type annotations are great as an optimisation.
05:15:57 <CakeProphet> evincar: Haskell requires almost no type annotations. that's not an argument against a well-made type system.
05:16:18 <evincar> I just don't think that there's significant value to be gained by *omitting* features from a language, namely unrestricted typing.
05:16:28 <CakeProphet> "features"
05:16:33 <pikhq_> s/unrestricted typing/unrestricted memory access/
05:16:37 <pikhq_> Any further questions?
05:16:46 <evincar> That's not what I mean at all and you know it.
05:16:57 <pikhq_> It's quite analogous.
05:17:09 <CakeProphet> you mean weak typing or the ability to use the wrong type in the wrong place?
05:17:28 <evincar> More or less. I like being able to be wrong.
05:17:32 <CakeProphet> !python print 2+"2"
05:17:32 <EgoBot> Traceback (most recent call last):
05:17:34 <pikhq_> Unrestricted memory access, as per common implementations of C, gives you a *lot* of power. It also gives you the ability to summon nasal demons.
05:17:52 <pikhq_> Most programmers, given power, will manage to summon nasal demons.
05:17:54 <evincar> Just in case I need to be "wrong" in that particular way at some point.
05:18:05 <Patashu> but.....unsafecoerce
05:18:22 <pikhq_> Also, yes, you can do *really* nasty things to Haskell's type system if you want.
05:18:39 <pikhq_> This, for good reason, is neither the default nor encouraged.
05:19:29 <CakeProphet> evincar: the fact of the matter is that Haskell's type system is in no way obstructive to your ability to be wrong.
05:19:48 <pikhq_> CakeProphet: Maybe he wants the ability to be unintentionally wrong?
05:20:27 -!- kwertii has quit (Quit: bye).
05:20:50 <CakeProphet> evincar: perhaps you should learn it because it will completely change the way you look at type systems.
05:21:02 * CakeProphet had a sort-of similar viewpoint before he had learned Haskll.
05:21:07 <CakeProphet> +e
05:21:08 <evincar> I dunno, I just think it should be all-or-nothing.
05:21:20 <evincar> You stay out of my way or you give me powerful tools.
05:21:21 <CakeProphet> what do you mean.
05:21:25 <hagb4rd> intermezzo: http://www.youtube.com/watch?v=3417VhdGScc
05:21:27 <evincar> And I've no doubt Haskell's tools are powerful.
05:21:30 <evincar> So I'm not knocking it.
05:21:39 <evincar> It's just not my cup of tea.
05:21:43 <evincar> At the moment.
05:21:57 <CakeProphet> evincar: because it tells you at compile time when there's a type error? I don't understand.
05:22:05 <CakeProphet> type errors are like... inevitable.
05:22:12 <CakeProphet> unless it's a weakly typed language.
05:22:33 <evincar> I mean, in a dependently-typed language, with enough type information, you can consider any error a type error.
05:23:20 <evincar> That's cool, and in systems that have an approximate analogue to dependent typing, you get at least some of that power.
05:24:12 <CakeProphet> >_> why are we talking about dependent typing now.
05:24:16 <evincar> It should be that either every error is a type error, or none is.
05:24:33 <CakeProphet> wat.
05:24:33 <evincar> Or so it seems to me at the moment.
05:24:50 <CakeProphet> there should just be segfaults.
05:24:53 <CakeProphet> only segfaults
05:25:01 <Patashu> there should be no errors
05:25:03 <Patashu> absolutely none!
05:25:10 <Patashu> if you run it it runs no matter what you put in
05:25:12 <evincar> Heh.
05:25:12 <Patashu> (iota anyone?)
05:25:15 <evincar> I'm not an idealist.
05:25:58 <evincar> Anyway, I'll look into getting Haskell to run on Bluehost.
05:27:33 <CakeProphet> :t read
05:27:34 <lambdabot> forall a. (Read a) => String -> a
05:27:39 <CakeProphet> > read "3" :: Int
05:27:40 <lambdabot> 3
05:29:36 <CakeProphet> parser is finsihed. time to move on the interpreter.
05:37:34 <CakeProphet> ...the parser is so ugly though. Really I should have tokenized the input first.
05:41:15 -!- augur has quit (Remote host closed the connection).
05:41:52 -!- augur has joined.
05:46:25 -!- augur has quit (Ping timeout: 252 seconds).
05:50:17 -!- Guest21058 has joined.
05:51:30 -!- Guest21058 has quit (Quit: Ex-Chat).
05:51:48 -!- Guest21058 has joined.
05:53:17 -!- Guest21058 has quit (Client Quit).
05:57:14 <CakeProphet> I think it is entirely stupid that Python has no sensible way to hide methods from an interface.
05:58:24 <CakeProphet> I understand the designer wants you to be able to poke around in the internals, but at least a way to hide things from documentation would be nice.
06:13:44 <CakeProphet> monqy: help how do I use lambdabot to send messages to people.
06:14:29 <monqy> @help tell
06:14:29 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
06:21:16 <CakeProphet> @src words
06:21:16 <lambdabot> words s = case dropWhile isSpace s of
06:21:16 <lambdabot> "" -> []
06:21:16 <lambdabot> s' -> w : words s'' where (w, s'') = break isSpace s'
06:21:24 <pikhq_> @tell CakeProphet You tell me?
06:21:24 <lambdabot> Consider it noted.
06:22:08 <CakeProphet> :t break
06:22:08 <lambdabot> CakeProphet: You have 2 new messages. '/msg lambdabot @messages' to read them.
06:22:09 <lambdabot> forall a. (a -> Bool) -> [a] -> ([a], [a])
06:22:20 <monqy> CakeProphet probabley telled privately.........
06:22:25 <monqy> was it a secret
06:22:37 <CakeProphet> uh, no, but no one elses business :P
06:39:08 <CakeProphet> @messages
06:39:09 <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
06:39:09 <lambdabot> pikhq_ said 17m 44s ago: You tell me?
06:39:35 <CakeProphet> lol, I apparently asked this question a year ago.
06:39:42 <pikhq_> :D
06:39:48 <pikhq_> Beautiful.
06:42:31 -!- azaq231 has quit (Quit: Leaving.).
06:50:55 -!- GreaseMonkey has quit (Quit: The Other Game).
06:55:35 <ais523> `addquote <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
06:55:37 <HackEgo> 629) <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
06:55:46 <ais523> truly awesome
06:58:18 <ais523> the unnecessary accuracy on the date just makes it better
07:00:35 <ais523> interesting that lambdabot doesn't remind of messages if you miss the first "you have messages" message
07:00:41 <ais523> until another message is sent
07:02:55 -!- ais523 has quit (Remote host closed the connection).
07:09:36 <CakeProphet> mmm hookah.
07:10:35 <CakeProphet> all smoke should taste like gingerbread.
07:10:50 <CakeProphet> even when it's smoke from a housefire.
07:32:54 * evincar is jealous.
07:33:16 <evincar> Although the last (and first) time I smoked a hookah was a bit extreme.
07:39:01 <CakeProphet> extreme?
07:39:11 * CakeProphet smokes three bowls in a row, sometimes.
07:39:19 <CakeProphet> perhaps I just have ridiculous tolerance
07:39:57 <CakeProphet> okay so now my parser REALLY works, after some thorough debugging. I now know the proper way to write a really shitty parser, and will avoid doing so in the future
07:40:08 <CakeProphet> by properly tokenizing the input before I begin constructing the AST.
07:40:25 <monqy> how about using a parser combinator library
07:40:34 <CakeProphet> monqy: that too
07:41:15 <CakeProphet> but I would also like to be able to construct an elegant parser from scratch.
07:41:59 <monqy> hint it won't be elegant give up now
07:42:10 <monqy> before its
07:42:11 <monqy> too late
07:42:15 <evincar> I'm doing an experiment with an ugly parser at the moment.
07:42:21 <CakeProphet> it's already too late. This is not my elegant parser.
07:42:35 <CakeProphet> This is my first attempt to write a non-trivial parser, really.
07:42:49 <evincar> I thought "what's the most painful way to model parsing?"
07:42:51 <monqy> non-trivial?
07:42:58 <evincar> And to myself replied "iterators!"
07:43:04 <CakeProphet> evincar: lulz
07:43:08 <monqy> if it's nontrivial you shouldn't be writing it by hand
07:43:14 <monqy> evincar: eh? c++?
07:43:17 <evincar> It's simple.
07:43:20 <evincar> Yeah, C++.
07:44:01 <CakeProphet> monqy: nonsense.
07:44:22 <monqy> one time I had to write a parser in c++. it was LL(1) and there were helpers and everything for doing tokenizeng and building the AST though so whatever
07:44:23 <CakeProphet> do most programming languages use parsing libraries for their parsers?
07:44:37 <monqy> "most programming languages"?
07:44:41 <monqy> do you mean most implementations?
07:44:47 <monqy> and how should I know
07:44:50 <CakeProphet> monqy: what do you think?
07:44:53 <monqy> though probably most of them use parser generators
07:45:00 <CakeProphet> do I really need to be explicit at every moment in every conversation?
07:45:02 <monqy> yacc/bison and its ilk
07:45:04 <monqy> yes
07:45:06 <monqy> you do
07:45:09 <CakeProphet> I can't just say "programming language" and get away with what I really mean?
07:45:15 <monqy> no
07:45:18 <monqy> I mean yes
07:45:19 <monqy> you can't
07:45:23 <monqy> also no you can't
07:46:26 <monqy> or wait was the lexer by hand too
07:46:29 <monqy> I think it may have been
07:46:37 <CakeProphet> my favorite question to receive from someone who knows nothing about programming: "why are there so many programming languages? why not just have one."
07:46:48 <monqy> do people really ask that?
07:46:49 <monqy> really?
07:46:53 <CakeProphet> a few times
07:47:08 <evincar> Paul Graham says the same thing occasionally.
07:47:09 <monqy> why are there so many natural languages why not just have one
07:47:15 <evincar> Because he has such a hard-on for Lisp.
07:47:46 <monqy> does he really say that in the same sense?
07:47:49 <monqy> if so: wow
07:48:05 <CakeProphet> also is there any kind of lexer that adds structure to the output tokens?
07:48:05 <monqy> where the same sense is "i am genuinely puzzled by the existence of multiple programming languages"
07:48:11 <CakeProphet> like for brackets and such?
07:48:32 <monqy> mmh?
07:48:50 <evincar> monqy: No, obviously not. He's just saying "Why doesn't everyone just use Lisp?"
07:48:54 <CakeProphet> seems like you could go ahead and get that step out of the way and simplify the parser
07:49:00 <evincar> Although he goes on to give very good reasons why not.
07:49:06 <monqy> evincar: yes that is a different sense
07:49:10 <monqy> evincar: a very different sense
07:49:19 <monqy> evincar: it's not even saying the same thing at all
07:49:33 <monqy> CakeProphet: what step
07:49:46 <evincar> Superficially it is. "Why so many? Why not just (this) one?"
07:49:58 <evincar> That was the joke.
07:49:59 <monqy> evincar: if superficially means using the same words
07:50:00 <evincar> :P
07:50:02 <monqy> it was a bad joke
07:50:13 <evincar> Fine, I'll keep working on my bad parser.
07:50:15 <CakeProphet> monqy: the step of structuring the program by brackets, string literals, and so forth.
07:50:21 <evincar> I am why we can't have nice things.
07:50:23 <CakeProphet> without fully generating the AST
07:50:56 <evincar> CakeProphet: You want a concrete syntax tree?
07:51:42 <evincar> That is, reflecting only the syntactic structure of the program, with any static meaning attached.
07:52:04 <evincar> Unless you mean not that.
07:52:34 <CakeProphet> I'm not really sure if it would help, but I think it would be easier if you went ahead and generated a semi-abstract syntax tree of some sort.
07:52:46 <monqy> what??
07:52:47 <CakeProphet> only structuring by brackets
07:53:44 <CakeProphet> in the lexer step, so that when you parse the full AST you already an idea of where things stop and end.
07:53:51 <CakeProphet> *already have
07:53:59 <monqy> that would complicate the lexer a lot, unless it's already really complicated
07:54:05 <evincar> So just a tree of tokens.
07:54:10 <CakeProphet> yes.
07:54:13 <evincar> Nah, it wouldn't be terribly complicated.
07:54:24 <evincar> See a "(", go down a level.
07:54:25 <monqy> and I'm not entirely sure what you mean by structing by brackets
07:54:26 <CakeProphet> monqy: but it would simplify the parser to a degree.
07:54:41 <evincar> See a "]" that doesn't match the "(" above you, error.
07:54:52 <evincar> It automagically takes care of nesting.
07:54:55 <CakeProphet> monqy: ....how does that not make sense. (stuff (goes here) ) is your input string
07:55:04 <CakeProphet> bam, now it is the token list ("stuff" ("goes" "here"))
07:55:12 <CakeProphet> *token tree
07:56:14 <monqy> I wasn't sure what you meant by brackets
07:56:29 <CakeProphet> so now when the parser scans the tokens, it doesn't have to deal with parentheses.
07:56:30 <monqy> still not
07:56:59 <CakeProphet> monqy: [()[\]{}<>]
07:57:08 <monqy> that isn't language-universal i hope you know
07:57:13 <CakeProphet> yes I know.
07:57:15 <CakeProphet> I am explaining
07:57:16 <CakeProphet> what I mean
07:57:17 <CakeProphet> by brackets.
07:57:21 <monqy> anyway that's not the lexer's job; add another step if you want it
07:57:22 <CakeProphet> for fucks sake.
07:58:41 <monqy> also
07:59:18 <monqy> while the added complexity to the parser of having to traverse the tree is pretty minimal, you have considered it, right
07:59:21 <monqy> ?
07:59:26 <CakeProphet> yes
07:59:37 <monqy> anyway just use a parser combinator library
08:00:11 <CakeProphet> and I believe it would be simpler to traverse the tree of tokens that it would be to construct it from a flat list of tokens, while also worrying about everything else that needs to be parsed correctly.
08:00:19 <CakeProphet> s/that/than/
08:00:28 <CakeProphet> in the same pass.
08:01:19 <monqy> but when you aren't writing it all by hand, you ~don't have to worry~
08:01:25 <CakeProphet> yes I know.
08:01:35 <monqy> so what's your point
08:02:23 <CakeProphet> sometimes it's just nice to have experience with something. Also, there are situations where you might not have such a library or it would be beneficial to not have an extra dependency.
08:02:33 <monqy> ?????
08:02:43 <monqy> oh
08:02:50 <monqy> the virtues of hand-writing parsers?
08:03:03 <evincar> Consider it a learning experience.
08:03:05 <monqy> in such a case I'd hand write a parser combinator library, or at least a parser generator
08:03:10 <CakeProphet> yes, I like to learn things.
08:03:18 <evincar> Consider it a research experience.
08:03:39 <monqy> I've had all the parser-handwriting experience I feel I need
08:04:25 <CakeProphet> perhaps I need more experience with "using appropriate libraries"
08:04:29 <CakeProphet> this is a skill I am lacking in. :P
08:05:23 <CakeProphet> also what if I ever want to write a Perl implementation?
08:05:36 <monqy> what's so special about perl
08:06:04 <CakeProphet> I believe the parser must be Turing complete in order to be correct.
08:06:31 <CakeProphet> or at least perl's (the only implementation I know of) is.
08:06:31 <monqy> ???
08:06:54 <CakeProphet> ????
08:06:55 <monqy> what do you mean by the parser being turing complee
08:08:16 <CakeProphet> I don't believe it can be statically parsed
08:09:03 <CakeProphet> http://www.perlmonks.org/?node_id=663393
08:09:36 -!- Patashu has quit (Ping timeout: 264 seconds).
08:10:53 <CakeProphet> this is probably why most Perl syntax highlighters are horrible.
08:12:39 <monqy> oh I've just never heard "turing complete" used in that sense
08:12:45 <CakeProphet> and: http://www.jeffreykegler.com/Home/perl-and-undecidability
08:12:47 <evincar> I don't think it's the right term.
08:12:51 <CakeProphet> probably not.
08:12:52 <monqy> yeah that's probably why
08:14:29 <CakeProphet> parsing Perl can require running Perl.
08:16:36 <CakeProphet> I recall reading that the perl parser uses a number of hueristics to basically guess what the source code means.
08:17:32 <evincar> Those are largely unrelated.
08:17:39 <evincar> I mean, they both take place in the parser.
08:18:06 <CakeProphet> right, what I mean is that a parser library probably is not going to allow me to do that.
08:18:12 <evincar> But one is related to the fact that later code is subject to interpretation in the context of earlier code.
08:18:21 <evincar> While the other is just DWIM.
08:18:34 <evincar> Assuming an otherwise ambiguous situation.
08:18:58 <evincar> Which isn't so much "heuristics" as it is just the Principle of Least Surprise.
08:19:35 <monqy> heuristics of least surprise
08:19:49 <CakeProphet> http://perl5.git.perl.org/perl.git/tree
08:19:52 <CakeProphet> weeee time to browse perl source.
08:20:37 <CakeProphet> ..and then immediately run away in fear.
08:21:05 <monqy> what did you find
08:21:50 <CakeProphet> large numbers of files and directories that I cannot navigate very well.
08:22:28 <CakeProphet> perl.c is a good start.
08:23:01 <monqy> 4918 lines eh
08:23:56 <CakeProphet> PerlInterpreter *my_perl;
08:24:01 <CakeProphet> do you see that? it's mine. :3
08:24:25 <monqy> this is a mess
08:25:13 <CakeProphet> yeah I have no idea where to actually find the parser.
08:25:42 <CakeProphet> oh hey parser.h
08:25:56 <CakeProphet> but where is parser.c...
08:26:21 <monqy> what all #includes parser.h
08:27:07 <itidus20> /ceci n'est pas une parser
08:27:22 <itidus20> oops
08:27:26 <itidus20> //ceci n'est pas une parser
08:27:35 <CakeProphet> U8expect;/* how to interpret ambiguous tokens */
08:27:43 <CakeProphet> this looks like a fun struct field.
08:27:53 <CakeProphet> that's U8 expect;
08:28:02 <monqy> I wonder what they were thinking when they wrote perl
08:28:04 <monqy> I wonder
08:28:55 <CakeProphet> NEXTTOKE nexttoke[5]; /* value of next token, if any */
08:29:02 <CakeProphet> this is obviously a weed reference
08:31:22 <CakeProphet> obviously..
08:38:04 <CakeProphet> monqy: I bet they were thinking "man I want a practical extraction and report language"
08:38:31 <CakeProphet> okay so perly.c is where the actual parser is.
08:38:33 <CakeProphet> toke.c is the lexer.
08:38:36 <monqy> perly.c
08:38:44 <monqy> vs normal perl.c
08:38:56 <monqy> also: because it has to be a godawful mess to be practical
08:39:07 <CakeProphet> http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/perly.y
08:39:10 <CakeProphet> perl grammar
08:39:22 <monqy> %token <i_tkval> LOOPEX DOTDOT YADAYADA
08:39:25 <monqy> yadayada
08:39:33 <monqy> %token <i_tkval> COLONATTR
08:39:38 <monqy> colon attribute?
08:39:54 <CakeProphet> uh my guess is ::
08:40:04 <monqy> yadayada?
08:40:11 <monqy> or colonattr
08:40:19 <monqy> i like this names
08:40:23 <monqy> dordor, bitorop
08:40:40 <CakeProphet> dordor is defined or.
08:40:45 <CakeProphet> //
08:41:13 <CakeProphet> bitorop is |
08:41:38 <monqy> anyway yadayada is best
08:42:19 <CakeProphet> I believe yada yada is a no op
08:42:37 <monqy> poor yadayada :(
08:43:07 <CakeProphet> !perl sub test {...}
08:43:09 <EgoBot> syntax error at /tmp/input.19173 line 1, near "{..."
08:43:19 <CakeProphet> THE PERL DOCS LIE.
08:43:47 <monqy> were you trying to see how that would lex?
08:44:05 <CakeProphet> no just seeing if it worked.
08:44:11 <CakeProphet> !perl ...;
08:44:12 <EgoBot> syntax error at /tmp/input.19287 line 1, near "..."
08:44:19 <CakeProphet> perldocs = lies
08:44:45 <monqy> presumably the ellipsis is metasyntax not literal perl???
08:44:57 <monqy> or are you joke
08:45:25 <CakeProphet> no it says in perldoc that ... can stand-in for a statement and does nothing.
08:45:31 <monqy> oh
08:45:51 <CakeProphet> maybe they are just lying.
08:46:08 <CakeProphet> if lying is joking then I guess perldoc is pretty good joke
08:46:32 <monqy> good joke regardless. because perl. ha ha.
08:53:06 <CakeProphet> monqy: you laugh, but perl is the cutting edge in perl-oriented design.
08:53:26 <monqy> laughing
08:53:45 <monqy> crying
08:54:32 <CakeProphet> http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/regcomp.c
08:54:34 <CakeProphet> regex compiler
08:55:18 <CakeProphet> I32 naughty; /* How bad is this pattern? */
08:56:02 <monqy> i like the parts where it increments naughty
08:56:13 <monqy> what is naughty's purpose
08:58:03 <CakeProphet> in this file it just sets a naughty flag if it goes over 10
08:58:14 <CakeProphet> and says "probably an expensive pattern"
08:58:45 <monqy> naughty
08:59:03 <CakeProphet> if (!(prog->intflags & PREGf_NAUGHTY)/* XXXX If strpos moved? */
08:59:06 <CakeProphet> in regexec.c
08:59:52 -!- Phantom_Hoover has joined.
09:04:44 <CakeProphet> http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/Configure
09:04:46 <CakeProphet> wow, just wow.
09:05:38 <CakeProphet> that is 23585 lines of sh
09:06:24 <monqy> "ARGGGHHHH!!!!!" - that file
09:07:55 -!- FireFly has joined.
09:08:08 <CakeProphet> if grep blurfldyick grimble >/dev/null 2>&1 ; then
09:08:09 <monqy> also me on that file
09:08:10 <CakeProphet> ......
09:08:21 <monqy> blurfldyick
09:08:24 <monqy> grimble
09:08:29 <CakeProphet> if grep blurfldyick grimble >/dev/null 2>&1 ; then contains=contains
09:08:37 <monqy> what
09:08:38 <monqy> i
09:08:43 <monqy> :(
09:09:01 <CakeProphet> elif grep grimblepritz grimble >/dev/null 2>&1 ; then contains=grep
09:09:09 <monqy> is this for real
09:09:11 <CakeProphet> yes
09:09:13 <Phantom_Hoover> CakeProphet, configures are automatically generated, aren't they?
09:09:18 <CakeProphet> yes.
09:09:50 <monqy> grimble
09:09:57 <Phantom_Hoover> monqy, that's a test of grep's behaviour, so they presumably just used the first word they could think of.
09:10:24 <monqy> they are bad at good words
09:10:48 <Phantom_Hoover> Perhaps you should suggest a patch.
09:11:05 <monqy> bug: grimble? really?
09:14:32 <CakeProphet> Dear Perl user, system administrator or package
09:14:33 <CakeProphet> maintainer, the Perl community sends greetings to
09:14:34 <CakeProphet> you. Do you (emblematical) greet back [Y/n]? n
09:14:52 <CakeProphet> # This question was auctioned at YAPC::Europe-2007 in Vienna
09:14:53 <CakeProphet> # I never promised you could answer it. I only auctioned the question.
09:21:23 <evincar> Yet another thing that's surprisingly difficult to do right in C++: making an iterator to adapt an input iterator to a bidirectional one.
09:21:35 <evincar> (To allow backtracking.)
09:21:46 <evincar> I don't know why I'm putting myself through this pain.
09:21:59 <CakeProphet> Configure is actually generating a config.sh
09:22:12 <CakeProphet> and Configure is generated from something called metaconfig.
09:32:30 <Phantom_Hoover> Yo dawg I heard you like configuring...
09:35:29 <Phantom_Hoover> Joined #freenode for the hell of it, and somebody is trying to convince them that #archlinux-ru shouldn't be allowed to have a message saying they switched network.
09:36:11 <monqy> exciting
09:43:38 <evincar> Alright, I've finally written enough boilerplate crap to safely write the useful(?) bit of this monstrosity.
09:44:18 <evincar> This is what I get for wanting lazy parsing in a language that is really, really not designed for it.
09:45:32 <monqy> why would you want anything in c++, except maybe a good language
09:47:06 <evincar> I don't knooow.
09:47:26 <evincar> It's to kill time.
09:47:32 <Phantom_Hoover> monqy, have you not heard of elliott's ventures into C++.
09:47:38 <Phantom_Hoover> They are hilarious.
09:48:01 <monqy> I;ve heard of c++ sudoku, but I forget quite what it was
09:48:04 <monqy> nothing else I can remember
09:48:40 <evincar> Phantom_Hoover: This sounds entertaining.
09:48:58 <Phantom_Hoover> He was programming in the template system IIRC, although I wasn't really paying attention at the time.
09:54:42 -!- GuestIceKovu has joined.
09:55:56 -!- Slereah has quit (Ping timeout: 258 seconds).
10:27:53 -!- Vorpal has joined.
10:38:45 -!- Vorpal has quit (Ping timeout: 260 seconds).
10:38:52 -!- Vorpal_ has joined.
11:07:08 <evincar> Well, after all that, parsing with iterators.
11:07:26 <evincar> Reduced the main method to: print(to_tokens(to_utf32(to_buffered(to_raw(stream)))));
11:07:48 <evincar> Could be worse.
11:08:18 <evincar> And now, sleep.
11:08:21 -!- evincar has quit (Quit: leaving).
11:12:31 -!- monqy has quit (Quit: hello).
11:14:19 -!- copumpkin has quit (Ping timeout: 260 seconds).
11:14:45 -!- copumpkin has joined.
11:26:41 -!- Patashu has joined.
11:56:20 -!- oerjan has joined.
12:25:18 <Phantom_Hoover> http://28.media.tumblr.com/tumblr_lgt3723bWm1qgcsjxo1_500.jpg
12:25:21 <Phantom_Hoover> whaaaaaaaaaat
12:26:22 <Phantom_Hoover> I really, really hope that was deliberate.
12:27:53 <Patashu> I don't get it
12:28:05 * oerjan has no idea either
12:28:22 <oerjan> is it one those darn dang cultural references
12:29:17 <oerjan> *of
12:41:34 <Phantom_Hoover> Patashu, the guys in the car look an awful lot like SBaHJ.
12:42:36 <Patashu> Oh, that's the joke
12:43:19 <oerjan> so, yes.
13:30:44 -!- MSleep has changed nick to MDude.
14:04:09 -!- MDude has quit (Read error: Connection reset by peer).
14:30:32 -!- sliddy has joined.
14:38:01 -!- augur has joined.
14:46:13 -!- oerjan has quit (Quit: leaving).
16:00:59 -!- derrik has joined.
16:32:24 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:36:52 -!- derrik has left.
16:45:28 -!- zzo38 has joined.
17:09:44 <Phantom_Hoover> http://en.wikipedia.org/wiki/RP_FLIP
17:09:49 <Phantom_Hoover> Oh my god I want one.
17:24:53 -!- wetneb has joined.
17:52:36 <Gregor> Phantom_Hoover: There only is one :P
17:52:50 <Phantom_Hoover> Gregor, WHO CARES
18:03:38 -!- quintopia has quit (Ping timeout: 264 seconds).
18:05:47 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
18:13:20 <CakeProphet> hi friendships.
18:14:06 <pikhq_> Well, that's utterly surprising.
18:14:16 <pikhq_> Fun fact: Bochs does real mode faster than qemu.
18:14:19 -!- quintopia has joined.
18:14:38 <CakeProphet> that's because Boch knows how to keep it real.
18:14:43 <CakeProphet> +s
18:18:00 <CakeProphet> !perl sub min($$){ my ($a,$b) = @_; [$a => $b]-> [$b <= $a] } print min(4,10)
18:18:00 <EgoBot> 4
18:18:22 <CakeProphet> !perl sub min($$){my($a,$b)=@_;[$a => $b]->[$b <= $a]} print min(4,10)
18:18:23 <EgoBot> 4
18:29:32 -!- sliddy has quit (Ping timeout: 245 seconds).
18:31:57 <CakeProphet> !perl sub min($$){my($a,$b)=@_ if @_;[$a => $b]->[$b <= $a]} print sort min, 5,4,3,2,1
18:31:57 <EgoBot> 12345min
18:32:06 <CakeProphet> lol
18:32:17 <CakeProphet> !perl sub min($$){my($a,$b)=@_ if @_;[$a => $b]->[$b <= $a]} print sort {min} 5,4,3,2,1
18:32:17 <EgoBot> Not enough arguments for main::min at /tmp/input.28958 line 1, near "min}"
18:32:23 <CakeProphet> !perl sub min(;$$){my($a,$b)=@_ if @_;[$a => $b]->[$b <= $a]} print sort {min} 5,4,3,2,1
18:32:23 <EgoBot> Sort subroutine didn't return a numeric value at /tmp/input.29016 line 1.
18:32:49 <CakeProphet> hmmm, I thought $a and $b were special dynamically scoped variables. Ah, I guess not when I redeclare them with my
18:33:54 <CakeProphet> !perl print sort d,v,c,s
18:33:54 <EgoBot> No comma allowed after subroutine name at /tmp/input.29149 line 1.
18:34:13 <CakeProphet> !perl print sort d,1,2,3
18:34:14 <EgoBot> No comma allowed after subroutine name at /tmp/input.29207 line 1.
18:34:16 <CakeProphet> wat
18:34:19 <CakeProphet> why did it work with min
18:35:40 <CakeProphet> son I am disappoint.
18:38:42 -!- Phantom_Hoover has joined.
18:38:47 -!- Phantom_Hoover has quit (Changing host).
18:38:47 -!- Phantom_Hoover has joined.
18:43:13 <zzo38> Should I write proposal of more-notation of Haskell in any wiki?
18:47:23 -!- elliott has joined.
18:48:34 -!- quintopia has quit (Ping timeout: 260 seconds).
18:48:46 <CakeProphet> zzo38: if you want, but I don't think people will buy it.
18:50:56 <CakeProphet> I could see it being somewhat useful if it allowed you to more a function definition as well as a data type definition.
18:51:22 <CakeProphet> allowing you to add more cases to a function to accomodate the new constructors.
18:51:51 -!- quintopia has joined.
18:51:51 -!- quintopia has quit (Changing host).
18:51:51 -!- quintopia has joined.
18:52:07 <CakeProphet> but that's not guaranteed to be an option in every situation like that.
18:53:02 <CakeProphet> f x = f' (g x) where f'(C1 a) = ...; f'(C2 b) = ...
18:53:20 <CakeProphet> more wouldn't allow you to add new patterns to f' because it's not in scope outside of f
18:54:03 <zzo38> It is my idea that you would be able to use more-notation with many things, including case-block as well as data types constructors, these two things go together.
18:54:28 <zzo38> So you would add patterns by using more-notation with case-blocks.
18:54:55 <CakeProphet> what about in my example. how would it work there?
18:55:11 <CakeProphet> how do you specify which case expression you are modifying?
18:55:15 -!- Taneb|Kindle has joined.
18:56:23 <Taneb|Kindle> I have just made a discovery that could revolutionize the face of computing!
18:56:28 <Taneb|Kindle> Windows teands to crash
18:56:29 <CakeProphet> also I think you can do something similar to this with type families
18:56:39 <CakeProphet> Taneb|Kindle: here is your Nobel prize.
18:56:40 <zzo38> You would have to change it to a case-block and then it would work. You specify which case expression in a way such as this: f x = case x of { C1 a -> ...; C2 b -> ...; more Cases; }
18:57:19 <zzo38> Cases = C3 c -> c + 1; Cases = _ -> 42;
18:57:34 -!- pikhq has joined.
18:58:05 -!- pikhq_ has quit (Ping timeout: 260 seconds).
18:58:13 <Taneb|Kindle> Basically, my laptop is temprarily unusable
18:59:23 <zzo38> CakeProphet: Did you notice anything else wrong? If so, I can try to describe those things too.
19:01:01 <Taneb|Kindle> So, what's up?
19:01:04 <CakeProphet> no, but I think type families is possibly a better solution to the kind of data type extension you want
19:03:13 <zzo38> Well, for one thing more-notation can be used in other places too, including: field lists (both for defining and for using), lists of values, do-blocks, case-blocks, data constructors, and it does such things as reordering and removing duplicates depending on how it is used. In addition, more-notation can take parameters.
19:04:27 <Taneb|Kindle> I think the world needs a brainfuck-I hate your bf derivative I really do-MIBBLLII polyglot
19:05:20 <Taneb|Kindle> Possibly with perl in there too
19:06:46 <Taneb|Kindle> All the polyglots have perl in them
19:06:50 <Taneb|Kindle> All of them
19:07:28 <Taneb|Kindle> Somebody managed to write a Piet-Piet polyglot
19:08:19 <CakeProphet> Perl is easy to polyglot
19:08:38 <Taneb|Kindle> In Piet, it printed "Piet", and in Piet it printed "Hello, World!" I think
19:09:26 <elliott> wat
19:09:26 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
19:09:54 <Taneb|Kindle> Different Codel size
19:10:34 <Taneb|Kindle> It is near the bottom of the example Piet programs on dangermouse.net
19:11:10 <CakeProphet> between pod, __END__ markers, heredocs, arbitrary quote delimiters, and regular comments
19:11:20 <CakeProphet> there are a lot of ways to ignore text in a perl program.
19:13:04 -!- pikhq has quit (Ping timeout: 246 seconds).
19:13:09 -!- pikhq has joined.
19:13:30 <Taneb|Kindle> I think perl is in many ways more esoteric than, eg, brainfuck
19:15:09 <Taneb|Kindle> Brainfuck isn't really that esoteric,come to think of it
19:15:30 <Taneb|Kindle> You can tell what it does just by looking at it
19:16:06 <Taneb|Kindle> That is morethan ca be said for languages such as Haskell or XSLT
19:16:43 <Taneb|Kindle> Unlss you are really good
19:19:45 <Taneb|Kindle> More people have heard of brainfuck than Mondrian or Visual J#
19:20:06 <elliott> I can tell what Haskell code does just by looking at it.
19:20:10 <elliott> That's called knowing Haskell. :p
19:20:44 <Taneb|Kindle> Haskell and XSLT may have been bad examples
19:21:23 <Taneb|Kindle> perl and... no, stick with XSLT
19:21:59 <Taneb|Kindle> At least for programs XSLT isn' designed for
19:24:09 <Gregor> Haskexesseltee
19:25:42 <Taneb|Kindle> Has anyone ever used Visual J#?
19:27:07 -!- oerjan has joined.
19:27:22 <Taneb|Kindle> It seems to be everything this channe is against
19:27:49 <Taneb|Kindle> Except it is neither Python nor a brainfuc derivative
19:28:09 <oerjan> this channel is against python?
19:28:26 <Taneb|Kindle> IOnly alittle
19:28:32 -!- derrik has joined.
19:28:43 <elliott> We need more cpressey and olsner so we can get the anti-Python flames brighter.
19:28:52 <elliott> Actually we need more cpressey full stop so we can have more cpressey.
19:29:06 <oerjan> a cpressing issue
19:29:08 <Taneb|Kindle> It is a hybrid of Java and C++
19:29:29 <Gregor> J# is dead.
19:29:31 <Taneb|Kindle> ...Microsft style
19:29:35 <Gregor> And also, that's a poor description of it.
19:29:37 <CakeProphet> I can tell what Perl code does just by looking at it.
19:29:40 <Gregor> It was basically just Java.
19:30:01 <Gregor> CakeProphet: perl -wlne'END{print$n}eof&&$n++;/<title>([^<]+)/i&&$n--' *
19:30:01 <Taneb|Kindle> With .NET bindings
19:30:28 <oerjan> CakeProphet: must be all your weed use
19:31:07 <elliott> Gregor:
19:31:11 <elliott> -wlne' The world is near its end.
19:31:11 <elliott> END{print$n} At the end the sum of all our sins and virtues will be reckoned and the judgement revealed.
19:31:11 <elliott> eof&&$n++; As the evil of mankind ends, perhaps the end itself is a positive thing.
19:31:11 <elliott> i And insensitive to the suffering of others.
19:31:12 <elliott> &&$n-- All this is for nought, and only hastens our demise.
19:31:14 <elliott> ' * For in the end, we are but stardust.
19:31:16 <elliott> hth
19:31:25 * oerjan bows
19:31:31 <oerjan> and i did it _without_ weed, even
19:32:09 <CakeProphet> ...
19:32:32 <CakeProphet> why would you even use that program...
19:32:46 <Taneb|Kindle> Does that program actually do anything?
19:32:48 <CakeProphet> yes.
19:33:08 <Taneb|Kindle> Good to know
19:33:14 <oerjan> it counts certain lines
19:33:24 <CakeProphet> it anti-counts them...
19:33:30 <CakeProphet> and then counts eofs
19:33:46 <oerjan> hm good point
19:34:09 <CakeProphet> which is why I am wondering
19:34:11 <CakeProphet> why you would ever do that.
19:34:32 <Taneb|Kindle> To confuse Taneb
19:35:47 <CakeProphet> Taneb|Kindle: read && as if-then, if something looks like it should have an argument but doesn't it's probably working on $_, which with -n $_ = current line
19:35:59 <CakeProphet> END{...} does stuff at the end of execution. QED
19:36:03 <Taneb|Kindle> How dosone anti-count? Is that like counting backwards?
19:36:12 <CakeProphet> by decrementing instead of incrementing.
19:36:22 <CakeProphet> it's a ... term I made up.
19:36:28 <CakeProphet> it is not an actual thing.
19:36:34 <Gregor> I prefer the interpretation on the wiki.
19:38:45 <elliott> It's counting lines that aren't <title> lines, I think :P
19:38:54 <elliott> Plus one, maybe.
19:38:55 <elliott> Hmm, wait.
19:38:58 <elliott> <Gregor> CakeProphet: perl -wlne'END{print$n}eof&&$n++;/<title>([^<]+)/i&&$n--' *
19:39:03 <elliott> It only ever increments on EOF.
19:39:07 <CakeProphet> right
19:39:11 <Taneb|Kindle> Anticounting
19:39:13 <CakeProphet> and decrements when there IS a title loine
19:39:14 <CakeProphet> *line
19:39:16 <CakeProphet> a non-empty one
19:39:19 <elliott> http://linuxgazette.net/84/okopnik.html
19:39:27 <elliott> This explains it, apparently.
19:39:31 <elliott> In an irritating Perlish manner.
19:40:32 <CakeProphet> - "Heavens, Woomert!" Frink's shock was evident in his features. "You must be as brave as a lion, to face something like that."
19:40:58 <CakeProphet> by the way all of this actually happened.
19:41:03 <CakeProphet> non-fiction account.
19:41:06 <Taneb|Kindle> In brainfuck it would make the tape -1, 2
19:41:53 <Taneb|Kindle> Assuming the tape is left unbounded
19:48:37 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
19:52:33 <CakeProphet> Gregor: let me know when you find some Perl I can't read.
19:52:37 <CakeProphet> I WILL ACCEPT THE CHALLENGE.
19:53:36 <CakeProphet> \N Any character but \n (experimental).
19:53:44 <CakeProphet> I don't really understand what is so experimental about \N
19:55:13 <Phantom_Hoover> We just don't know if it matches \n sometimes.
20:00:14 <CakeProphet> !perl "this is a test" =~ /.*?(?{pos})test/; print "this is a test" =~ /.{$^R}test/
20:00:15 <EgoBot> 1
20:00:21 <CakeProphet> weeeeee
20:01:03 -!- ais523 has joined.
20:01:29 <elliott> How Much of R is Written in R... (r-bloggers.com)
20:01:31 <elliott> cpressey......
20:12:30 <Phantom_Hoover> Where hast thou gone, cpressey?
20:15:26 <CakeProphet> !perl @matches = "test" =~ /test/; print @matches
20:15:27 <EgoBot> 1
20:15:33 <CakeProphet> !perl @matches = "(test)" =~ /test/; print @matches
20:15:33 <EgoBot> 1
20:15:44 <CakeProphet> !perl @matches = "test" =~ /(test)/; print @matches
20:15:45 <EgoBot> test
20:16:44 <CakeProphet> okay so one thing that's pretty stupid about
20:16:56 <CakeProphet> perl is that [] and {} are both considered true
20:17:50 <elliott> Phantom_Hoover: He quit us. :p
20:18:37 <ais523> CakeProphet: that's not stupid, that's pretty useufl
20:18:38 <Phantom_Hoover> ;_;
20:18:39 <ais523> *useful
20:18:47 <ais523> I use that all the time to see if a reference variable has been initialised or not
20:19:01 <ais523> do you really think the truth value of a pointer should depend on what it points to?
20:19:06 <CakeProphet> ais523: it's inconsistent with () being false.
20:19:08 <CakeProphet> though.
20:19:14 <ais523> no it isn't
20:19:29 <ais523> () is a value, [] and {} are references
20:19:39 <CakeProphet> yes I understand.
20:19:44 <ais523> you might as well say "it's inconsistent with sub {} being true"
20:20:14 <CakeProphet> that is different. usually when I am dealing with lists and hashes I want to quickly test the empty case as being distinct from every other case
20:20:17 <ais523> the false scalar values are undef, 0 and ""
20:20:19 <oerjan> :t \sub -> sub {}
20:20:19 <lambdabot> Empty record update
20:20:21 <ais523> the false list value is ()
20:20:26 <ais523> [] and {} are scalars, not lists
20:20:30 <CakeProphet> with arrayrefs and hashrefs this is not the case.
20:20:34 <CakeProphet> ais523: you don't need to explain this to me.
20:20:36 <ais523> and those are the only two contexts in Perl but void, which has no values at all
20:20:57 <ais523> why would the empty case be distinct, particularly wrt a hash?
20:21:08 <ais523> for an array, I can understand
20:21:22 <ais523> but why should a hash be different just because it has no entries? unless you're using it as a replacement for a set or something?
20:21:29 <CakeProphet> because it is. I am mostly concerned with the arrayref case anyways, but it makes sense with hashes too though I cannot provide an example.
20:21:57 <ais523> besides, if you /dereference/ it, you get the truth value you want
20:22:03 <CakeProphet> yes I know.
20:22:11 <ais523> print "the array contains elements" if @$array;
20:22:32 <ais523> why would you want $array to be false if it was a reference to an empty array, when saying what you actually mean is so simple?
20:22:45 <CakeProphet> this is what I will have to do. I am saying I should not have to do this extra step. No, I do not care how pointers work because Perl is not a low-level language.
20:23:13 -!- monqy has joined.
20:23:14 <elliott> then why are you using references?
20:23:20 <ais523> you should care how references work even in high-level languages
20:23:27 <CakeProphet> elliott: because you have to use them in Perl to get multi-dimensional structures.
20:23:28 <ais523> pointers are a low-level concept, but references are a high-level concept
20:23:33 <ais523> even, say, Idealized Algol has references
20:23:39 <CakeProphet> yes, and references to null things in Perl should be false. :P
20:23:55 <elliott> ais523: I would question how high-level references actually are, but they're certainly higher-level than pointers
20:23:57 <CakeProphet> because it is consistent with the logic you use with non-referenced things.
20:24:00 <ais523> CakeProphet: is a reference to itself true?
20:24:14 <CakeProphet> uh, show me how to do that in Perl.
20:24:19 <ais523> elliott: in a high-level imperative language, they should definitely exist
20:24:26 <ais523> in a functional language, you can get by without them
20:24:37 <elliott> ais523: imperative, definitely
20:24:37 <ais523> (because then you can conflate a reference to a value with the value itself)
20:24:56 <elliott> It isn't really a conflation, since a reference becomes an implementation detail
20:25:03 <ais523> CakeProphet: I can't think of a method offhand (it'd probably involve XS), but it's definitely possible
20:25:17 -!- coppro_ has changed nick to coppro.
20:25:20 <oerjan> :t when
20:25:20 <lambdabot> forall (m :: * -> *). (Monad m) => Bool -> m () -> m ()
20:25:20 <ais523> wait, no
20:25:24 <ais523> my $a; $a = \$a
20:25:33 <CakeProphet> ais523: if the reference is not pointing to an empty list then it should be true.
20:25:33 <ais523> that's surprisingly simple and straightforward
20:25:46 <ais523> CakeProphet: so if it's pointing to a reference to an empty list, it should be true
20:25:52 <ais523> even though the reference to an empty list is itself false?
20:25:54 <elliott> I like how CakeProphet's argument is "it should be true because I keep saying it should be"
20:26:06 <elliott> oerjan: are you WRITING HASKELA
20:26:26 <ais523> elliott: I'm trying to convince CakeProphet that his point of view is internally inconsistent and makes no sense
20:26:44 <oerjan> what is haskela
20:26:46 <CakeProphet> yes my argument is purely based on the way I think it should work. I think it simplifies the most common situation. When do you need an empty reference to be true?
20:27:03 <elliott> oerjan: hakskel
20:27:06 <ais523> CakeProphet: OK, what about this one: you have a scalar that might be undefined, or contain an object
20:27:14 <monqy> references are not boolesn??? help
20:27:16 <oerjan> koay
20:27:19 <monqy> what shappen
20:27:32 <ais523> it'd obviously be useful if undefined was false, and object was true, so you wouldn't have to specifically add "defined" there
20:28:01 <CakeProphet> but if EVERY reference is true
20:28:06 <ais523> now, why should that depend on the implementation details of the object? (say the object happens to be a blessed empty list; that's something that your code shouldn't care about)
20:28:07 <CakeProphet> when are you ever going to use a conditional with a reference?
20:28:15 <ais523> CakeProphet: when it has a chance of being undefined, of course
20:28:18 <CakeProphet> what would be the purpose of this hypothetical conditional statement we're talking about.
20:28:24 <CakeProphet> ah.
20:28:24 <ais523> reference-or-undef is a very very common thing to store in a variable
20:29:13 <ais523> I must have done conditions on reference-or-undef well over 100 times in TAEB
20:29:31 <oerjan> :t when <$> ?b
20:29:31 <lambdabot> forall (m :: * -> *) (f :: * -> *). (Monad m, ?b::f Bool, Functor f) => f (m () -> m ())
20:29:40 <zzo38> Is this good sofar? http://www.haskell.org/haskellwiki/User:Zzo38/Proposal_for_more-notation
20:29:51 <CakeProphet> ais523: okay fine.
20:30:24 <ais523> I even did /this/: https://gitorious.org/taeb/ais523/commit/fea807c048e759520c8c617775f7f07e718c0892
20:30:38 <CakeProphet> ais523: but still all of that could remain unchanged, and [] and {} could still be false.
20:30:41 <ais523> because someone had accidentally made the cast-to-boolean of most of the objects in TAEB very slow
20:30:47 <ais523> and I had to speed it up again by returning constant 1
20:31:07 <elliott> CakeProphet: except that then, you can't test for undef or reference
20:31:11 <ais523> (they'd defined stringification for debug purposes, and accidentally stated "boolean value depends on the stringification", so it was stringifying objects every time to see if they were "")
20:31:17 <elliott> because it tests for undef or reference to something that isn't empty, for some reason
20:31:24 <ais523> elliott: you can, using an explicit "defined", but it's messy
20:31:28 <elliott> CakeProphet: thank god it saved one character in your conditionals, eh?
20:31:38 <elliott> as opposed to the "defined " -- eight -- for the more common case
20:31:50 <CakeProphet> @{} is three characters. :P THREE WHOLE CHARACTERS.
20:31:50 <lambdabot> Maybe you meant: . ? @ bf do ft id pl rc v wn
20:31:53 <ais523> I'd rather save 8 in the common case than save 1 in a somewhat rarer case
20:32:06 <ais523> CakeProphet: and "defined " is EIGHT WHOLE CHARACTERS
20:32:07 <monqy> ??
20:32:08 <elliott> doesn't @$foo work
20:32:21 <ais523> elliott: yes, if $foo is a variable
20:32:24 <CakeProphet> ais523: yeah but that's not the case I'm working with. :P
20:32:30 <ais523> you need the {} if you have a more complex expression there
20:32:52 <CakeProphet> I suppose I could have my code replace the [] case with undef
20:32:56 <ais523> CakeProphet: why are you habitually storing 0-length arrays/hashes, and caring about them as a special case?
20:33:07 <ais523> I was going to say, perhaps if it really is a special case, undef would make a better special case
20:33:08 <Sgeo> zzo38, what does it do, exactly?
20:33:08 <CakeProphet> ais523: because they contain regex matches.
20:33:18 <CakeProphet> [] == didn't match
20:33:18 <elliott> <oerjan> :t when <$> ?b
20:33:18 <elliott> <lambdabot> forall (m :: * -> *) (f :: * -> *). (Monad m, ?b::f Bool, Functor f) => f (m () -> m ())
20:33:20 <elliott> oerjan: i'm watching you
20:33:38 <CakeProphet> [1] matched [a,b,c] matched and had groups
20:33:50 <CakeProphet> but I can just replace [] with undef
20:33:55 <ais523> CakeProphet: wow, that's a crazy API
20:34:09 <ais523> I'd expect "didn't match" and "matched with no groups" to have different representations
20:34:09 <CakeProphet> ais523: >_> that's how /.../ works except it is now in reference form.
20:34:17 <zzo38> Sgeo: I have explained before, on this channel, and on #haskell channel. I will type more about what it is doing, on there, too.
20:34:24 <ais523> well, I never said m//'s API was sane
20:34:45 <CakeProphet> ais523: why would it be the same? "matched with no groups" is true, why would it be ()?
20:35:19 <CakeProphet> like, I am literally just taking the result of match and putting brackets around it.
20:35:49 <ais523> it's because Perl's return-a-list APIs are flawed /because/ they aren't nullable, when often they want to be
20:35:56 <oerjan> :t <*
20:35:57 <lambdabot> parse error on input `<*'
20:36:01 <oerjan> :t (<*)
20:36:01 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f a
20:36:20 <ais523> as a silly example, if I do m/(1)|2/, how do I know which branch matched?
20:36:47 <CakeProphet> ais523: it's only flawed when I decide I want them to be arrayrefs. at the non-ref level it works just fine. () is undef in list context, (1) is 1 in list context, (a,b,c) is a special case that you only get in list context.
20:36:53 <CakeProphet> scalar context gives you undef or 1
20:37:13 <ais523> more plausibly, m/(\d+)|NA/
20:38:13 <CakeProphet> well right, my @captures = m/.../
20:38:16 <CakeProphet> oh look nothing captured
20:38:49 <ais523> so the problem with m//'s list API is, it's trying to return two separate data in one variable
20:38:56 <ais523> well, one list
20:39:44 <CakeProphet> !perl @c = "test" = /(abc)|test/; print @c
20:39:45 <EgoBot> Can't modify constant item in scalar assignment at /tmp/input.5957 line 1, near "/(abc)|test/;"
20:39:49 <CakeProphet> !perl @c = "test" =~ /(abc)|test/; print @c
20:39:53 <oerjan> :t when <$> ?b <*> ?c
20:39:54 <lambdabot> forall (m :: * -> *) (f :: * -> *). (Monad m, ?b::f Bool, Applicative f, ?c::f (m ())) => f (m ())
20:40:05 <CakeProphet> !perl @c = "test" =~ /test/; print @c
20:40:05 <EgoBot> 1
20:40:18 <CakeProphet> that is kind of strange. It should really return 1 if it matched but captured nothing.
20:40:34 <CakeProphet> !perl @c = "test" =~ /test/; print 1 if @c
20:40:35 <EgoBot> 1
20:40:40 <CakeProphet> !perl @c = "test" =~ /(abc)|test/; print 1 if @c
20:40:40 <EgoBot> 1
20:40:49 <CakeProphet> ah but (undef) is true
20:41:00 <CakeProphet> so it works out when you want to interpret the capture group as a boolean
20:41:05 <ais523> (undef) would make a more sensible compromise
20:41:15 <CakeProphet> that is what it does.
20:41:19 <ais523> although that's almost as hacky as "0 but true"
20:41:49 <CakeProphet> but it gives you all of the results you'd expect from match while also giving you capture group information.
20:42:22 <oerjan> :t (<$)
20:42:23 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
20:42:29 <CakeProphet> it's just maybe not immediately obvious what those values are. :P
20:43:07 <CakeProphet> okay well I fixed my issue regardless. I won't even have to check for []
20:43:31 <CakeProphet> if there was no match then it doesn't even include it in the list of matches.
20:43:39 <CakeProphet> as... that would be pointless.
20:43:40 <elliott> ais523: is 0 false in perl six by default?
20:44:01 <ais523> elliott: Perl 6 has numeric, string and boolean contexts
20:44:08 <ais523> 0 cast to a boolean context is false, though
20:44:13 <elliott> ais523: :(
20:44:17 <elliott> ais523: it should be true by default
20:44:21 <elliott> (as opposed to "0 but false")
20:44:22 <CakeProphet> that is the same thing as saying "0 is false in Perl 6"
20:44:31 <CakeProphet> that's also unchanged semantics from Perl 5.
20:44:52 <ais523> elliott: you can put traits on arbitrary objects to make them true or false
20:44:56 <CakeProphet> elliott: uh why.
20:45:03 <ais523> CakeProphet: there's a different quoting level involved
20:45:28 <ais523> in Perl 5, you use the string "'0 but true'" to give something that's zero numerically but true as a boolean, due to exploiting the way the casting works
20:45:40 <ais523> in Perl 6, you start with 0, then modify it with the but modifier to make it true, as in "0 but True"
20:45:59 <CakeProphet> Perl 6 is stupid, so that doesn't surprise me.
20:46:44 <CakeProphet> I don't know if you guys have noticed or not but the spec is kind of a clusterfuck of ideas.
20:47:04 <monqy> I haven't payed attentione
20:47:09 -!- derrik has quit (Quit: reconnect).
20:47:30 <CakeProphet> ais523: the but is optional though, right? you could just say "0 true"
20:47:34 -!- derrik has joined.
20:47:36 <ais523> CakeProphet: they actually work pretty well together, just they're not what people are used to
20:47:47 <ais523> CakeProphet: err, what? that's like me saying "1+1 is 2" and you saying "the + is optional, right?"
20:47:59 <elliott> <CakeProphet> Perl 6 is stupid, so that doesn't surprise me.
20:47:59 <elliott> <CakeProphet> I don't know if you guys have noticed or not but the spec is kind of a clusterfuck of ideas.
20:48:01 <elliott> --perl five fan
20:48:03 <ais523> I'm not talking about the string "0 but true"
20:48:15 <ais523> I'm talking about the operator but, with 0 and True as arguments
20:48:27 <CakeProphet> oh okay
20:48:32 <CakeProphet> I thought it was a string.
20:48:45 <CakeProphet> this makes more sense.
20:48:58 <zzo38> I have seen various good ideas in Perl 6 when looking at things. That includes the Perl 6 Periodic Table of Operators, where I saw that the % (modulo) operator is marked "iffy", which means it has a boolean negated form (like == has != and so on). There are also other operators I saw described there. And other features of Perl 6.
20:49:49 <zzo38> (Obviously, to me at least, the boolean negated form of % would mean it is divisible by.)
20:49:55 <ais523> yep, !% is pretty much a "divisible by" operator
20:50:07 <CakeProphet> you mean there's a seperate negated % operator with a different symbol, or that % returns 0 but true basically?
20:50:11 <CakeProphet> oh okay.
20:50:26 <ais523> CakeProphet: actually, ! is an operator that takes other operators as argument
20:50:27 <zzo38> CakeProphet: I mean a separate negated % operator. Although I don't know the details.
20:50:29 <ais523> and % is a legal argument
20:50:45 <CakeProphet> !x
20:50:50 <ais523> that's a different !
20:50:53 <ais523> with the same spelling
20:50:57 <CakeProphet> no x is an operator in Perl 5
20:50:58 <ais523> which is used is always obvious from context
20:51:00 <ais523> oh, i see
20:51:03 <ais523> *I see
20:51:08 <ais523> probably in Perl 6 too
20:51:12 <CakeProphet> !perl ptiny "sup"x5
20:51:13 <EgoBot> String found where operator expected at /tmp/input.6941 line 1, near "ptiny "sup""
20:51:16 <CakeProphet> !perl print "sup"x5
20:51:16 <EgoBot> supsupsupsupsup
20:51:24 <ais523> I wonder if you have a sub x, that it can always tell which is being used
20:51:34 <CakeProphet> !perl print 1x"25"
20:51:34 <EgoBot> 1111111111111111111111111
20:51:41 <CakeProphet> 1x = instant unary converter
20:51:43 <ais523> in Perl 6, presence or absence of whitespace is significant, so it would probably be the difference between !x and ! x
20:51:57 <ais523> (the amount of whitespace, if nonzero, isn't)
20:52:20 <CakeProphet> ais523: yes I imagine it can tell because a sub is prefix but x is infix.
20:52:38 <monqy> is perl 6 parseable
20:52:39 <zzo38> Is this better now? I wrote some explanation now. Still not complete, but I will also write more. If you have account write on that wiki page or on the talk page http://www.haskell.org/haskellwiki/User:Zzo38/Proposal_for_more-notation
20:52:56 <ais523> monqy: yes, more so than Perl 5
20:52:59 <ais523> it even has a defined grammar
20:53:09 <zzo38> If there is any unclear, please notify me.
20:53:29 <ais523> (Perl 5 is, in general, not parseable, although in most cases that actually happen in practice it is)
20:53:39 <copumpkin> zzo38: "Multiple constructors in a single more-declaration are guaranteed to keep the order given."
20:53:45 <copumpkin> what if I write T = One | Two
20:53:48 <copumpkin> and T = Two | One
20:53:53 <CakeProphet> !perl sub x($) {shift+1} print x 1x"4"
20:53:54 <EgoBot> Warning: Use of "shift" without parentheses is ambiguous at /tmp/input.7239 line 1.
20:53:54 <copumpkin> what's the result?
20:53:59 <CakeProphet> !perl sub x($) {(shift)+1} print x 1x"4"
20:53:59 <EgoBot> 1112
20:54:09 <ais523> copumpkin: you writing that made me think of a "copumpkin" as a dual of a pumpkin
20:54:19 <ais523> or a time-reversed pumpkin
20:54:21 <copumpkin> that's what it was intended as
20:54:22 <ais523> a bit like comultiplication
20:54:24 <ais523> heh
20:54:49 <zzo38> copumpkin: It is wrong to type that. Whether the compiler gives an error message or not is up to the compiler, but it doesn't mean anything correct.
20:55:08 <elliott> copumpkin was born when edwardk got a hold of pumpkin
20:55:24 * ais523 tries to imagine what a time-reversed pumpkin would be like
20:55:57 <zzo38> ais523: What is comultiplication?
20:56:36 <ais523> zzo38: you give it one value as an argument, and it returns two values, which if you multiply them, give the original value; in systems in which comultiplication exist (which don't, say, include normal arithmetic) there's normally only one unique way to do that
20:57:43 <zzo38> ais523: OK. What kind of systems are those?
20:57:59 <CakeProphet> so then a copumpkin, upon planting in the ground, yields pumpkin seeds...?
20:58:24 <ais523> I'm not sure; my only experience with comultiplication is proving that a system didn't have it
20:58:46 <ais523> CakeProphet: no, copumpkin seeds, and if you combine them together with the edible part of a copumpkin, you get a compumpkin again
20:59:10 <elliott> `quote pumpkin seeds
20:59:15 <HackEgo> 558) <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
20:59:21 * copumpkin sighs
20:59:26 <elliott> copumpkin copumpkin copumpkin copumpkin copumpkin
20:59:30 <elliott> ping forever
21:00:07 -!- hagb4rd has quit (Ping timeout: 252 seconds).
21:00:12 <CakeProphet> quick someone compile that into a quote
21:01:45 <monqy> compile what? are you someone?
21:01:49 <CakeProphet> no.
21:02:06 * oerjan vaguely thinks he's seen something like comultiplication somewhere
21:02:39 <ais523> oerjan: I'd expect you to know several examples, really; I seem to think that all theoretical mathematicians have huge sets of examples of every category in existence
21:02:45 <oerjan> http://en.wikipedia.org/wiki/Hopf_algebra
21:02:50 <ais523> although perhaps you haven't worked with coalgebras much
21:03:28 <oerjan> i knew someone who worked on quantum groups, and that included such things
21:03:39 <ais523> ah, aha, a general classification of things that are simultaneously regular algebras and coalgebras
21:03:42 <ais523> looks useful
21:05:15 <oerjan> i think i spent a bit of a month in ireland thinking about that stuff with him, although nothing came out of it
21:05:33 <oerjan> i cannot recall seeing comultiplication anywhere else
21:08:56 <zzo38> I added the description of use of more-notation in case blocks.
21:10:29 <coppro> woot, I love knowing all the secrets of the university, like mail delivered to the student society :D
21:10:33 <coppro> new OotS book is MIINE
21:14:44 <elliott> deac <- activate ((\c -> putChar c >> deac) <$> e)
21:14:48 <elliott> oerjan: i need mfix or recursive do, right?
21:15:52 <oerjan> um what are you doing
21:15:53 -!- derrik has quit (Quit: night).
21:16:46 <elliott> oerjan: that
21:16:48 <oerjan> if deac is not monadic then you cannot put it on the right of >> though
21:16:53 <elliott> it is
21:16:57 <monqy> is it in bad taste to write (\c -> putChar c >> deac) as ((>> deac) . putChar) because that's the sort of thing I od all the time
21:17:00 <elliott> oerjan: I mean, that is obviously not valid because deac isn't in scope
21:17:22 <elliott> monqy: I would prefer (putChar >=> const deac) or I guess (putChar >>> (>> deac)) would be ok too
21:17:30 <elliott> maybe we need (a -> m b) -> m c -> m c :P
21:17:30 <oerjan> ok, so rec deac <- activate ((\c -> putChar c >> deac) <$> e), i guess
21:17:37 <monqy> that would be good
21:17:38 <elliott> ?hoogle (a -> m b) -> m c -> m c
21:17:38 <lambdabot> Control.Exception handleJust :: Exception e => (e -> Maybe b) -> (b -> IO a) -> IO a -> IO a
21:17:38 <lambdabot> Control.Exception.Base handleJust :: Exception e => (e -> Maybe b) -> (b -> IO a) -> IO a -> IO a
21:17:38 <lambdabot> Control.OldException handleJust :: (Exception -> Maybe b) -> (b -> IO a) -> IO a -> IO a
21:17:43 <elliott> oerjan: right... is
21:17:47 <elliott> deac <- mfix (\deac -> ...)
21:17:51 <elliott> the desugaring?
21:18:07 <oerjan> something like that
21:18:27 <CakeProphet> :t mfix
21:18:27 <lambdabot> forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a
21:19:12 <CakeProphet> :t mfix return
21:19:13 <lambdabot> forall a (m :: * -> *). (MonadFix m) => m a
21:19:32 <CakeProphet> > mfix return :: [Int]
21:19:36 <lambdabot> mueval-core: Time limit exceeded
21:19:43 <elliott> mfix return ~ fix id
21:19:50 <CakeProphet> right.
21:20:38 <CakeProphet> > mfix (const [1,2,3]) :: [Int]
21:20:39 <lambdabot> [1,2,3]
21:20:42 <CakeProphet> woah.
21:20:52 <oerjan> shocking
21:21:16 <monqy> is there a difference between mwhatever and whateverM? is it that the former is specified in a typeclass, and the latter defined elsewhere?
21:21:25 <elliott> :t mempty
21:21:26 <lambdabot> forall a. (Monoid a) => a
21:21:29 <CakeProphet> > mfix (\x -> [x,x+1,x+2]) :: [Int]
21:21:31 <elliott> sometimes it is not even an monads...
21:21:33 <lambdabot> mueval-core: Time limit exceeded
21:21:42 <monqy> mappend is monoid too right
21:21:52 <elliott> yes
21:21:55 <elliott> and mconcat
21:21:57 <monqy> sometimes i'm afraid i'll get mappend and mplus mixed up
21:22:08 <monqy> mempty/mzero too
21:22:10 <CakeProphet> how do I use mfix help.
21:22:35 <monqy> is help the a new fad help
21:23:05 <elliott> no
21:23:06 <elliott> its
21:23:07 <elliott> (c) us
21:23:09 <elliott> CakeProphet is infringe
21:23:13 <CakeProphet> what is fad I just have question help
21:23:19 <coppro> no, I'm infringe
21:23:26 <coppro> ph34r m3
21:23:42 <monqy> is evincar infrenge too i forget
21:23:54 <zzo38> Please look I completed everything in my proposal except for the stuff related to Template Haskell.
21:24:01 <oerjan> monqy: i just read in Control.Monad an hour or so ago that *M is reserved for functions that do nothing other than add monadic wrapping to result types
21:24:17 <oerjan> well nothing much other
21:24:25 <monqy> :t mapM
21:24:25 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b]
21:24:28 <monqy> ???
21:24:38 <CakeProphet> mapM is quite useful.
21:24:50 <monqy> or did I misinterpret "add monadic wrapping to the result types"
21:25:03 <CakeProphet> yes
21:25:06 <elliott> no
21:25:08 <oerjan> :t map
21:25:09 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
21:25:27 <oerjan> you will see that the only type difference is some more m's at the final ->'s
21:25:45 <zzo38> I think that is clear
21:25:48 <monqy> oh "result type" applies to more than just the result type?
21:25:59 <monqy> makes sense
21:26:06 <oerjan> yes also result types of internal functions, it would seem
21:26:10 <CakeProphet> yes, "result types" applies to all of the result types.
21:26:15 <CakeProphet> >_>
21:26:30 <fizzie> Helloes from the sweaty Florence.
21:26:40 <elliott> hello how are you enjoying your hotel of badness
21:26:41 <monqy> :t mfix
21:26:42 <lambdabot> forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a
21:26:47 <monqy> :t fix
21:26:47 <lambdabot> forall a. (a -> a) -> a
21:26:49 <elliott> checkmate oerjanists
21:26:53 <elliott> fixM
21:27:10 <fizzie> It's bad indeed. Also warm.
21:27:30 <oerjan> CakeProphet: mfix on lists is especially subtle, so much so that i once made an incorrect bug report about it
21:27:50 <elliott> > mfix (9:)
21:27:50 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
21:28:00 <elliott> > mfix (\x -> 9:[x])
21:28:03 <lambdabot> mueval-core: Time limit exceeded
21:28:07 <elliott> hepl oerjan
21:28:14 <CakeProphet> how do I use mfix help
21:28:18 <monqy> help
21:28:19 <elliott> die
21:28:20 <elliott> infringing
21:28:21 <elliott> bastard
21:28:23 <elliott> >:(
21:28:26 * elliott enemy
21:28:40 <CakeProphet> > replicateM 4 "help"
21:28:40 <lambdabot> ["hhhh","hhhe","hhhl","hhhp","hheh","hhee","hhel","hhep","hhlh","hhle","hhl...
21:28:44 <monqy> hhhh
21:28:56 <monqy> bad stutter......
21:29:00 <CakeProphet> > nub . permutations $ "help"
21:29:02 <lambdabot> ["help","ehlp","lehp","elhp","lhep","hlep","pleh","lpeh","leph","pelh","epl...
21:29:07 <monqy> pleh
21:29:40 <CakeProphet> oerjan: leph what is mfix on lists.
21:29:49 <monqy> lef
21:30:11 <CakeProphet> I like elhp
21:30:23 <CakeProphet> I (c) it
21:30:25 <CakeProphet> it is mine now.
21:30:34 <CakeProphet> you may not be an infringe.
21:31:10 <monqy> dont worry i wont...............................because elhp is bad
21:31:14 <oerjan> > mfix (\x -> [1:x, 2:x, 3:x])
21:31:14 <monqy> (so bad)
21:31:15 <lambdabot> [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
21:31:18 <monqy> eek
21:31:24 <CakeProphet> oh okay.
21:31:25 <monqy> what did you do
21:31:31 <oerjan> lessee
21:31:40 <oerjan> > map (take 5) $ mfix (\x -> [1:x, 2:x, 3:x])
21:31:41 <lambdabot> [[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3]]
21:31:50 <monqy> > sequence (mfix (\x -> [1:x, 2:x, 3:x]))
21:31:50 <lambdabot> [[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1...
21:31:52 <CakeProphet> sir you need to calm down.
21:31:54 <monqy> 123
21:33:13 -!- augur has quit (Remote host closed the connection).
21:37:29 <zzo38> I wrote something about use of more-notation with Template Haskell, too, now.
21:39:32 <oerjan> !haskell import Control.Monad.Fix; newtype Fix f a = Fix (f (Fix f a)); whee = mfix (\r -> newIORef (Fix r)); wrrr 0 r = return (); wrrr n r = do {Fix r' <- readIORef r; putStr "*"; wrrr (n-1) r' }; main = do r <- whee; wrrr 50 r
21:39:58 <oerjan> !haskell import Control.Monad.Fix; import Data.IORef; newtype Fix f a = Fix (f (Fix f a)); whee = mfix (\r -> newIORef (Fix r)); wrrr 0 r = return (); wrrr n r = do {Fix r' <- readIORef r; putStr "*"; wrrr (n-1) r' }; main = do r <- whee; wrrr 50 r
21:40:03 <EgoBot> ​**************************************************
21:40:11 <oerjan> yay just two tries
21:41:30 <Deewiant> !haskell replicate 50 '*'
21:41:33 <EgoBot> ​"**************************************************"
21:42:48 <oerjan> Deewiant: THAT WASN'T THE POINT
21:43:01 <CakeProphet> oerjan's is more elegant.
21:43:45 <coppro> ^
21:44:00 <oerjan> anyway, the actual point was to demonstrate how mfix with IO's allows you to make IO actions referring to their own result.
21:44:23 <oerjan> in this case, making a cyclic list of mutable references.
21:47:43 <CakeProphet> hmm that's interesting.
21:48:04 <CakeProphet> if you rewrote the reference it would break the self-reference, yes?
21:48:32 <oerjan> of course any attempt to _evaluate_ the result before the IO action finishes will break.
21:49:00 <oerjan> well yes.
21:49:16 <oerjan> although in this case it's not that hard to put it back
21:49:44 <CakeProphet> oh okay so r and r' are never evaluated in the above, but if they were they would break.
21:50:26 <oerjan> um it's just inside whee they cannot be. wrrr evaluates r alright.
21:50:54 <oerjan> the whole mfix action must finish before you look strictly at the result.
21:51:03 -!- zzo38 has left.
21:51:32 <oerjan> this is for the IO monad. other monads may manage to be more lazy than that, i think.
21:53:03 <CakeProphet> ah okay.
21:53:36 <CakeProphet> I cannot think of a single use for such a reference.. lol
21:54:55 <oerjan> mutable graphs?
21:57:03 <CakeProphet> there's only one reference right? that references itself infinitely.
21:57:17 <Deewiant> I used mfix for something in Haschoo at one point but I don't remember what
21:57:58 <oerjan> anyway more generally this allows you to use tying-the-knot methods even if you are working in the IO monad. perhaps a reference to itself is not the most practical example of it, even pure values interleaved with IO actions can benefit.
21:58:46 <fizzie> "'You made me do it': Classification of Blame in Married Couples' Interactions by Fusing Automatically Derived Speech and Language Information". Someone's taken (parts of) http://www.phdcomics.com/comics/archive.php?comicid=718 to heart.
21:59:53 <oerjan> http://oerjan.nvg.org/esoteric/Unshackled.hs has some examples >:)
22:01:27 <oerjan> it occurs to me that probably won't compile with ghc.
22:01:33 <elliott> why not?
22:01:43 <elliott> mdo is still supported, just deprecated, IIRC
22:01:52 <oerjan> no LANGUAGE pragmas
22:02:06 <oerjan> well you can still add them on the command line i guess
22:02:06 <elliott> can just use -X
22:02:13 <elliott> I like how fillMemory uses mdo for no reason
22:02:39 <elliott> or maybe I just misunderstand mdo
22:02:41 <oerjan> it does?
22:02:53 <Deewiant> No it doesn't
22:03:03 <Deewiant> elliott: mem <- newMemory rArr prior to rArr <-
22:03:06 <oerjan> mem and rArr reference each other
22:03:17 <elliott> oh, so it does
22:04:58 -!- ais523 has quit (Ping timeout: 245 seconds).
22:08:11 -!- p01son has joined.
22:11:14 -!- p01son has quit (Quit: Leaving).
22:16:57 <CakeProphet> :t mfix
22:16:58 <lambdabot> forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a
22:17:35 <CakeProphet> instance MonadFix CakeMonad where mfix = ($undefined) --:3
22:18:35 <Lymee> @src mfix
22:18:35 <lambdabot> Source not found. :(
22:18:39 <Lymee> oh right
22:19:03 <CakeProphet> Lymee: do you have :3 on highlight?
22:19:39 <Lymee> Nope!
22:21:16 <oerjan> CakeProphet: i think there are some MonadFix laws which that probably breaks
22:21:26 <CakeProphet> you think?
22:21:43 <oerjan> mfix (return . f) = return (fix f) iirc
22:23:16 <CakeProphet> well for strict functions, bottom and m bottom are pretty close...
22:23:41 <CakeProphet> *return bottom
22:25:19 <oerjan> > length (return undefined)
22:25:20 <lambdabot> 1
22:26:01 <CakeProphet> what if the monad were strict also?
22:26:45 <Lymee> @src return
22:26:45 <lambdabot> Source not found. My brain just exploded
22:26:49 <Lymee> :t return
22:26:50 <lambdabot> forall a (m :: * -> *). (Monad m) => a -> m a
22:26:53 <oerjan> i think a monad in which return were strict and not always bottom would break the monad laws.
22:27:09 <Lymee> oerjan, so make it always return bottom.
22:27:09 <Lymee> :3
22:27:15 <elliott> oerjan: nope, actually
22:27:26 <elliott> oerjan: see http://haskell.1045720.n5.nabble.com/Strict-Monad-td3079813.html
22:27:38 <elliott> MonadLib has that as Lift, I think (http://hackage.haskell.org/packages/archive/monadLib/3.6.2/doc/html/MonadLib.html)
22:27:42 <elliott> well, http://hackage.haskell.org/packages/archive/monadLib/3.6.2/doc/html/src/MonadLib.html#Lift
22:27:54 <elliott> instance Monad Lift where
22:27:54 <elliott> return x = L x
22:27:54 <elliott> fail x = error x
22:27:54 <elliott> L x >>= k = k x -- Note: the pattern is important here
22:27:54 <elliott> -- because it makes things strict
22:27:55 <CakeProphet> oerjan: also when f is lazy wouldn't it satisfy the mfix law?
22:28:02 <elliott> oerjan: caret
22:28:09 <elliott> instance MonadFix Lift where
22:28:10 <elliott> mfix f = let m = f (runLift m) in m
22:28:10 <elliott> fwiw
22:28:29 <oerjan> elliott: "in which return were strict"
22:28:38 <oerjan> your return isn't strict is it?
22:29:02 <oerjan> (as a function)
22:29:20 <elliott> well, no
22:29:23 <elliott> but it's a strict monad :P
22:29:23 <oerjan> anyway, return undefined >> return x = return x by the monad laws, i believe
22:30:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:33:12 -!- azaq23 has joined.
22:33:15 <oerjan> CakeProphet: mfix (return . (1:)) = return (fix (1:)) but yours would give mfix (1:) = return (1:undefined)
22:33:21 <oerjan> er
22:33:33 <oerjan> *mfix (return . (1:)) = return (1:undefined)
22:34:09 <CakeProphet> oerjan: ah
22:34:34 <CakeProphet> I'm shocked, really.
22:34:51 <CakeProphet> oerjan: also wouldn't it be possible to include laws as part of Haskell?
22:35:05 <CakeProphet> basically as a compile-time check?
22:35:35 <elliott> CakeProphet discovers Coq.
22:35:39 <oerjan> theorem prover yada yada halting problem.
22:35:47 <elliott> `addquote <oerjan> theorem prover yada yada halting problem.
22:35:49 <HackEgo> 630) <oerjan> theorem prover yada yada halting problem.
22:36:24 <CakeProphet> is there some unwritten rule that compilers must halt?
22:36:27 <CakeProphet> how silly.
22:36:39 -!- augur has joined.
22:36:54 <CakeProphet> compilation is more fun when it's potentially undecidable.
22:37:19 <pikhq> You would think that.
22:40:03 -!- pikhq_ has joined.
22:40:53 <CakeProphet> what if you gave the compiler a written promise that everything was fine?
22:40:53 <oerjan> if a compiler doesn't halt it doesn't count as proof of TC-ness, at least
22:42:02 <oerjan> haskell has that, it's called unsafeCoerce.
22:42:47 <oerjan> you may find it somewhat unsatisfactory for ensuring monad laws.
22:43:18 -!- pikhq has quit (Ping timeout: 245 seconds).
22:44:54 <Sgeo> I might not be on Freenode tomorrow
22:45:11 <oerjan> elliott: hm that Id monad from your link actually has a strict return. hm.
22:45:49 <oerjan> but i think that works because that monad contains _only_ return x values.
22:47:52 <oerjan> so that undefined >>= f is not necessarily undefined. hm actually isn't that the definition of a _lazy_ monad.
22:50:12 -!- FireFly has quit (Quit: FireFly).
22:54:23 -!- augur has quit (Remote host closed the connection).
22:55:10 -!- augur has joined.
22:58:03 -!- zzo38 has joined.
23:03:14 <zzo38> I want to implement more-notation in Haskell, and be able to use it with Template Haskell. Writing it as a preprocessor will not do that
23:03:40 <zzo38> (That is, I want to be able to reify more-notation)
23:09:28 <pikhq_> Huh. For licensing reasons, Sun published a different package of the JDK for distros to use.
23:09:34 <pikhq_> Oracle is discontinuing that package.
23:10:05 <pikhq_> Making it so the official JDK is not at all legally redistributable.
23:10:51 -!- sllide has joined.
23:17:12 -!- Vorpal_ has changed nick to Vorpal.
23:20:12 -!- copumpkin has quit (Ping timeout: 240 seconds).
23:20:37 -!- copumpkin has joined.
23:32:07 <Gregor> pikhq_: And what's the status of OpenJDK?
23:32:17 <Gregor> Other than <Oracle> lol, no
23:33:37 <pikhq_> Gregor: Functioning, but with bugs?
23:34:01 <pikhq_> Also, perfectly legal.
23:34:19 <Gregor> Right, OK.
23:34:29 <Gregor> I mean, last I knew, my Java is icedtea.
23:34:53 <elliott> "Last I knew, my java is iced tea." --Gregor, senile.
23:34:57 <coppro> pikhq_: Why is this "Huh."?
23:35:42 <pikhq_> coppro: Did not realise that Sun was that friggin' retarded with the licensing.
23:35:50 <Sgeo> I still have no idea where the safest place in my apartment, if there is one, is
23:35:51 <Sgeo> :(
23:35:55 <pikhq_> "No, you can't redistribute this! Redistribute this OTHER package instead!"
23:35:58 <Gregor> elliott: BACK IN MY DAY, WE COULD ONLY GET 24 OUNCES OF ICED TEA IN OUR COFFEE AT STARBUCKS, AND WE LIKED IT! YOU WHIPPERSNAPPERS AND YOUR 124 OUNCE COFFEE-SLURPEE-DRINK-IT-CUPS ARE CODDLED
23:36:20 <elliott> Gregor: It's OK. Have this hot steaming mug of OpenJDK (water not included).
23:36:27 <elliott> Sgeo: wat
23:36:49 <pikhq_> elliott: Hurricane coming his way.
23:36:56 <elliott> oh
23:36:57 <elliott> right
23:36:59 <Gregor> elliott: YOU YOUNGINS AND YOUR ROCK-AND-ROLL COFFEE SEX PARTIES
23:37:14 <Sgeo> elliott, I live on an island that's in the path of a hurricane. I'm well outside the evacuation zone, but worried about wind breaking my window or something
23:39:02 <oerjan> an island in the eastern us, with a storm coming...
23:39:06 <oerjan> ^style lovecraft
23:39:06 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
23:39:15 <oerjan> fungot: what is your comment to this?
23:39:15 <fungot> oerjan: the next day, his last in raback, he again goes alone to bid the long-dead count farewell. once more the lighters grew wont to put out from the north curse and whine, and the
23:40:33 <oerjan> Sgeo: fungot says you should look out for long-dead counts
23:40:33 <fungot> oerjan: in a field, forced poison down his throat, as if to dispel the mood which was engulfing her more and more i come to a sort of
23:41:19 <Gregor> Sgeo: If you don't, he'll force poison down your throat. Or maybe that's how you're supposed to deal with him? Also it seems the poison is more of a mood-enhancer.
23:49:23 -!- augur has quit (Remote host closed the connection).
23:56:20 -!- evincar has joined.
23:57:36 <evincar> So it turns out that parsing with iterators is quite natural.
23:58:51 <CakeProphet> he lies.
23:59:14 <evincar> Largely because everything's modelled as a lazy dataflow.
23:59:29 <evincar> And any accumulation or state is encapsulated, if not actively discouraged.
23:59:37 <elliott> itt: parser combinators are literally the best anyone who doesn't like them is not a smart person
2011-08-28
00:00:47 <evincar> An iterator-based model seems to be a reasonable approximation for parser combinators proper.
00:01:52 <CakeProphet> as an input source, sure.
00:01:57 <CakeProphet> > [1..]
00:01:58 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
00:02:00 <CakeProphet> hey look it's an iterator.
00:17:01 <Gregor> AWWW I HAS KITTY
00:18:58 <Vorpal> Gregor, a foul-smelling neighbour's tomcat that wakes you up with noise outside your window in the middle of the night and sleep on your garden furniture?
00:19:13 <Vorpal> night →
00:22:29 <monqy> is the neighbour foul-smelling or is that his tomcat
00:22:33 <monqy> both??
00:23:32 -!- Vorpal has quit (Ping timeout: 240 seconds).
00:25:45 -!- sllide has quit (Ping timeout: 260 seconds).
00:27:51 <oerjan> i'll hazard a guess that tiamat is neither the neighbor's nor a tomcat. the foul-smelling part is plausible, though.
00:28:07 <Gregor> She smells like kitty
00:28:25 <Gregor> And considering that she sleeps next to me every night, I wouldn't let her get away with smelling too bad :P
00:29:14 <oerjan> oh i'm sure she _fnarfs_ like a kitty
00:29:32 * oerjan runs away
00:30:09 <Gregor> X-D
00:30:30 <Gregor> That being said, fnarf is the /taste/-equivalent, not /smell/-equivalent, I don't eat my cat :P
00:30:53 <oerjan> ah. what is the smell-equivalent then.
00:31:20 <oerjan> !simplename
00:31:29 <EgoBot> FYP.
00:31:34 <elliott> fyp.
00:31:40 <oerjan> so it appears.
00:31:46 <elliott> does she fyp like a kitty
00:39:40 <zzo38> Composition becomes (<=<) and applying functions becomes (=<<) and morphisms (x) becomes (return . x) and values (x) becomes (return x), is this correct? I don't know for sure
00:40:48 <Gregor> oerjan: There is no smell-equivalent. Fnarf is taste when one has no sense of smell :P
00:41:16 * Phantom_Hoover → sleep
00:41:39 -!- Phantom_Hoover has quit (Quit: Leaving).
00:42:14 <elliott> Gregor: Try licking your cat. Report back on your findings.
00:42:25 <elliott> Also, videotapei t.
00:42:27 <elliott> videotape it.
00:42:52 * Gregor uploads "Licking pussy" to youtube
00:42:57 * Gregor watches it get removed.
00:43:46 <monqy> give it a lewd thumnail and watch the views go up
00:43:52 <monqy> thubmnale
00:43:55 <monqy> thubmlain
00:43:58 <monqy> thunmail
00:44:02 <monqy> hlep
00:44:22 <elliott> thunmail
00:44:26 <Gregor> No custom thumbnails for me :P
00:44:28 -!- GreaseMonkey has joined.
00:44:28 -!- GreaseMonkey has quit (Changing host).
00:44:28 -!- GreaseMonkey has joined.
00:44:41 <elliott> Gregor: just do it the oldfashioned way (a second or two in the middle of the video)
00:44:50 <elliott> you can then adjust it I think :P
00:46:05 -!- Patashu has joined.
00:46:33 <zzo38> Don't put on Youtube. Then, it will not get removed from Youtube. You can use different format such as Vorbis/Theora.
00:46:43 <zzo38> And host it yourself so that Youtube will not damage it.
00:48:08 <elliott> Gregor: A perfect plan.
00:48:21 <zzo38> But I am not sure why a video is even necessary.
00:49:06 <pikhq_> zzo38: That's even halfway reasonable what with HTML5 video being supported most places.
00:49:49 <pikhq_> Though, unfortunately, you'll still need to encode to multiple formats, courtesy of stupid people going "ZOMG FREE CODEC BAD".
00:50:14 <pikhq_> Or, if you prefer blaming *them*: courtesy of MPEG being made of money-grubbing bastards.
00:57:25 <zzo38> How can I install Cabal packages? The people in #haskell channel kept tolding me things that don't go. I told them there is no cabal but they told me the same thing anyways. I do have lib/Cabal-1.10.1.0 but there is no executable program.
00:57:36 <elliott> You need cabal-install.
00:57:56 <elliott> http://hackage.haskell.org/package/cabal-install, http://www.haskell.org/haskellwiki/Cabal-Install, http://hackage.haskell.org/trac/hackage/wiki/CabalInstall.
00:58:09 <elliott> zzo38: If you install the Haskell Platform you get cabal-install.
00:58:22 <elliott> That's easier than bootstrapping it which is only offered as a Unix shell script to my knowledge.
00:58:35 <zzo38> But cabal is also cabal
00:58:40 <elliott> zzo38: What?
00:58:48 <elliott> No, cabal-install provides the "cabal" command-line tool.
00:58:52 <zzo38> I did install the Haskell Platform it has no cabal.
00:59:00 <elliott> It does, it just isn't in your PATH variable.
00:59:04 <elliott> Find out where cabal.exe is.
00:59:04 -!- MDude has joined.
00:59:05 <zzo38> It only has that directory but has no executable.
00:59:22 <elliott> it's probably in C:\Program Files\blah blah blah for some blah blah blah
00:59:42 <zzo38> O! I found it. It is: F:\Program Files2\Haskell_Platform\lib\extralibs\bin\cabal.exe
01:00:01 <zzo38> I typed dir cabal.exe /b/s from the directory I installed Haskell and that worked.
01:00:14 <elliott> Right, so add that directory to your PATH.
01:00:19 <zzo38> OK
01:00:48 <elliott> zzo38: Then do "cabal update"; you likely want to edit the configuration file it creates.
01:00:52 <elliott> (It tells you where.)
01:00:55 <zzo38> OK
01:01:33 <zzo38> Oops it says failed
01:01:33 <elliott> Specifically, you want to look for a line that looks like "-- documentation: False" and change it to "documentation: True", or it won't install the documentation for the libraries you install. You might also want to change the line mentioning library-profiling to "library-profiling: True", so that it installs profiling versions of libraries you install.
01:01:42 <elliott> (The packages that come with the Haskell Platform all have documentation and profiling.)
01:01:49 <elliott> zzo38: What does it say?
01:02:00 <zzo38> It says "cabal: failed"
01:02:04 <elliott> That's it?
01:02:21 <zzo38> But it did also tell where the config file is and created it.
01:02:50 <elliott> Is the only error "cabal: failed"?
01:03:04 <elliott> You need an internet connection to do it, if you're running it on a network-less box.
01:03:07 <zzo38> It has other messages too but not error messages.
01:03:16 <zzo38> I do have internet obviously I am connecting to IRC
01:03:19 <elliott> Well, the other messages are probably relevant to the failure.
01:03:22 -!- azaq231 has joined.
01:03:23 <elliott> zzo38: You could be doing it on another computer. :p
01:03:59 <zzo38> "Config file path source is default config file. Config file not found. Writing default configuration. Downloading the latest package list from hackage.haskell.org. cabal: failed"
01:04:02 -!- azaq23 has quit (Ping timeout: 250 seconds).
01:04:44 <elliott> Hmm.
01:04:53 <elliott> Are you able to download the file http://hackage.haskell.org/packages/archive/00-index.tar.gz?
01:05:07 <zzo38> It says "world-file: F:\Documents and Settings\user\Application Data\cabal\world" but there is no such file. Is that what is wrong?
01:05:36 <zzo38> Is that the file I need? If so, where do I install it?
01:05:40 <elliott> No, it'll create that when it needs to.
01:05:54 <elliott> That failure looks like it's failing to download http://hackage.haskell.org/packages/archive/00-index.tar.gz. Is there anything abnormal about your setup?
01:05:59 <zzo38> Where do I install the 00-index.tar.gz file?
01:06:44 <elliott> I don't know, but I'm just asking to see if you _can_. If you can't, that's the problem.
01:06:49 <elliott> If you can, then the problem is something else. :p
01:06:49 <zzo38> I don't think there is any abnormal stuff that would cause that to fail
01:07:31 <zzo38> Yes I can download it
01:08:07 <oerjan> perhaps try cabal update once more?
01:08:10 <zzo38> OK
01:08:19 <zzo38> No, it still failed
01:10:20 <elliott> hmm
01:10:24 <elliott> zzo38: try cabal -v update
01:10:28 <elliott> that should give more information
01:10:37 <zzo38> No, it is exactly the same
01:10:45 <elliott> huh
01:10:48 <oerjan> could http://www.haskell.org/pipermail/haskell-cafe/2011-August/094883.html be relevant?
01:10:50 <elliott> it says Downloading the latest package list from hackage.haskell.org
01:10:50 <elliott> Downloaded to
01:10:50 <elliott> /home/elliott/.cabal/packages/hackage.haskell.org/00-index.tar.gz
01:10:50 <elliott> for me
01:10:59 <elliott> does it not say something similar? then I guess the problem is with the downloading
01:11:00 <elliott> oh, hmm
01:11:09 <elliott> zzo38: can you try and find a curl.exe or wget.exe in the Haskell Platform tree?
01:11:13 <elliott> maybe it is expecting to find one in PATH.
01:11:17 <elliott> even though it uses the HTTP package...
01:11:38 <elliott> oerjan: unlikely, since -v didn't produce a message about the file being downloaded
01:12:04 -!- CakeProphet has quit (Read error: Operation timed out).
01:12:05 <zzo38> OK I will try what that says
01:12:06 <oerjan> ok it's just a cabal error i saw discussed recently
01:12:16 <zzo38> elliott: I have wget.exe and curl.exe in my PATH.
01:12:44 <elliott> hmm
01:13:15 <elliott> zzo38: I'd say ask #haskell quoting the output of cabal (you probably want to pastebin it), unfortunately I haven't the expertise to help further
01:13:25 <zzo38> Not any ones that might have been part of Haskell Platform, though. But I don't know how that would make a difference.
01:21:59 <oerjan> hm i think when installing the haskell platform, it asks whether you want to set PATH. did you confirm that?
01:22:33 <zzo38> oerjan: I told it not to set anything so that I can set it manually, which I did.
01:23:01 <oerjan> aha. maybe you are still missing some PATH element it needs, then.
01:23:42 <elliott> oerjan: no, it's a proxy problem.
01:23:47 <zzo38> oerjan: How would that cause it to try to use a proxy? I tried -v3 and it says it is using proxy 0.0.0.0:0
01:23:48 <oerjan> oh
01:23:49 <elliott> (as discovered in #haskell)
01:23:56 <oerjan> ok then
01:24:09 <elliott> zzo38: I don't suppose the config file says anything about proxies?
01:24:21 <zzo38> elliott: Yes I did look and the config file says nothing.
01:45:05 -!- copumpkin has quit (Ping timeout: 260 seconds).
01:45:30 -!- copumpkin has joined.
02:12:09 -!- augur has joined.
02:31:18 -!- pikhq has joined.
02:31:20 -!- pikhq_ has quit (Ping timeout: 260 seconds).
02:47:50 <pikhq> XD
02:47:56 <oerjan> "At a mere 21 million light-years from Earth, a relatively small distance by astronomical standards, the supernova is still getting brighter, and might even be visible with good binoculars in ten days’ time, appearing brighter than any other supernova of its type in the last 30 years.
02:48:11 <oerjan> http://newscenter.lbl.gov/feature-stories/2011/08/25/supernova/
02:48:41 <pikhq> I *think* it's theoretically possible to do 32TiB of space on x86_32 code. Running on an x86_64 processor. With segmentation.
02:49:17 <elliott> oerjan: pretie
02:51:01 <pikhq> It'd be something kinda like an unreal mode. But more an unlong mode.
02:51:19 <GreaseMonkey> with PAE you can have 64GB... if you're cheeky with segmentation + ISR handling that could work quite well
02:52:02 <GreaseMonkey> can you access the 64-bitness of the registers in 32-bit mode?
02:52:07 <pikhq> No.
02:52:13 <GreaseMonkey> poop.
02:52:26 <pikhq> And you can't do segmentation in 64-bit mode.
02:52:32 <pikhq> Not that you'd want to.
02:52:39 <GreaseMonkey> i know about THAT...
02:52:51 <GreaseMonkey> iirc 64-bit mode requires paging to be enabled
02:53:02 <GreaseMonkey> i've never done 64-bit though, only up to 32-bit
02:53:12 <GreaseMonkey> not sure if i ever pulled off unreal mode
02:55:53 <pikhq> More than that. What you do to enter long mode is you enable long mode through a couple of added real mode instructions, and then enable paging.
02:56:17 <pikhq> Enabling paging takes you into long mode.
02:56:49 <GreaseMonkey> hmm...
02:57:16 <pikhq> And then jump into the 64-bit segment.
02:57:23 <GreaseMonkey> s/segment/page/ ?
02:57:25 <pikhq> (so you're not in compatibility mode)
02:57:27 <pikhq> No.
02:57:30 -!- evincar has quit (Ping timeout: 246 seconds).
02:57:33 <GreaseMonkey> segment 0?
02:57:38 <pikhq> The vestiges of segmentation exists.
02:57:43 <pikhq> s/exists/exist/
02:58:03 <GreaseMonkey> echo cat | sed statement
02:59:29 <pikhq> The segment table exists on x86_64, but *only* for the purpose of the rings, and marking long mode vs. compatibility mode.
02:59:44 -!- evincar has joined.
03:00:03 <GreaseMonkey> i take it rings 1 and 2 don't serve much purpose?
03:00:44 <pikhq> Actually, they *can* serve purpose if you want your OS to have more flexibility than "this is kernel, this is not-kernel".
03:00:49 <GreaseMonkey> (not like they did after the 286... they really cocked that up)
03:00:52 <GreaseMonkey> hmmkay
03:00:54 <pikhq> An obvious use of them at present is Xen.
03:01:09 <GreaseMonkey> i thought xen was more of a hypervisor thing
03:01:19 <elliott> it is.
03:01:26 <pikhq> The guest kernels run in ring 1.
03:01:38 <pikhq> The Xen hypervisor runs in ring 0.
03:02:06 <GreaseMonkey> does it catch SGDT?
03:02:14 <GreaseMonkey> and yes i mean SGDT
03:02:40 -!- zzo38 has left.
03:03:01 <pikhq> Unless you're running using the hardware virtualisation extensions, what happens there is precisely the same as what happens when a userspace process does that.
03:03:32 <pikhq> If you *are* running with those, what happens instead is the system call gets trapped and the hypervisor emulates it.
03:03:41 <GreaseMonkey> sweet
03:04:06 <GreaseMonkey> i've never seen any info on how to use the hypervisor (i know there's the AMD and Intel variants)
03:04:30 <GreaseMonkey> oddly enough i did once read about how SMI works
03:04:33 <GreaseMonkey> erm, SMM
03:05:15 <pikhq> I'm not clear on the details, either.
03:06:37 <pikhq> I just know they make x86 meet the the Popek & Goldberg requirements.
03:11:43 -!- zzo38 has joined.
03:14:22 <zzo38> Do you know the books "Science Made Stupid" and "Cvltvre Made Stvpid"? On page 19 there is examples of effective use of statistics including: 50% of the U.S. population has a sub-median standard of living. The average mortality rate among people who jog is 100%. People who buy paperback humor books are less likely to be eaten by crocodiles than population in general.
03:14:55 -!- azaq231 has quit (Ping timeout: 260 seconds).
03:18:03 <evincar> How droll.
03:21:01 <zzo38> There is "PRONUNCIATION SYMBOLS USED IN THIS BOOK", none of which are actually used in the book. It includes "b" in "dumb", "e" in "home", "g" in "align", "k" in "know", etc
03:21:03 <oerjan> that last one needs a citation.
03:21:35 <zzo38> OK.
03:21:39 -!- azaq23 has joined.
03:21:58 <oerjan> (about the paperback crocodiles.)
03:22:15 <zzo38> OK.
03:24:21 <zzo38> There is a future invention checklist. Some of the things on that list have happened since the book was published, including: flat-screen TV, flat-screen 3D TV, first black president, and new joke invented.
03:25:34 <evincar> oerjan: I think it's just saying P(buy paperback humour books AND eaten by crocodile) < P(eaten by crocodile).
03:26:07 <zzo38> evincar: Possibly, although I am unsure.
03:26:46 <zzo38> There is a test to score yourself on to see if you are a neanderthal. Question #13 is not worth any points, though. ("Have you ever felt like bashing a postal clerk with a club? You are normal--no points.")
03:27:41 <oerjan> evincar: that's not a reasonable interpretation.
03:27:42 <Sgeo> evincar, <=, surely/
03:27:59 <Sgeo> Interpretation of what?
03:28:14 <oerjan> "People who buy paperback humor books are less likely to be eaten by crocodiles than population in general.
03:28:17 <oerjan> "
03:28:31 <zzo38> It doesn't seem to me like it is saying what evincar says it is, but I am unsure.
03:29:31 <oerjan> P(eaten by crocodile|buy paperback humour books) <= P(eaten by crocodile).
03:29:37 <oerjan> is my interpretation.
03:30:15 <oerjan> (P(Q|R) = P(Q AND R)/P(R) as usual)
03:31:18 <zzo38> oerjan: I also interpreted it in that way
03:33:08 <zzo38> It has periodic table of elements made up, the columns are now labeled: 1A, 2B, NOT 2B, 3D, 4F, and R2-D2. Elements include lint (Li), scum (Sc), irony (Feh), pandemonium (Pd), etc
03:35:46 <oerjan> istr mentioned that's been done also by "look around you"
03:36:35 <elliott> I don't know if Look Around You had a fake periodic table but it DOES have a fake everything else :P
03:37:12 <oerjan> it's the third google suggestion
03:38:04 <oerjan> http://www.bbc.co.uk/comedy/lookaroundyou/series1/periodic.shtml
03:38:54 <zzo38> I have also seen the Star Trek periodic table of elements.
03:39:44 -!- hagb4rd has joined.
03:40:53 <zzo38> The Look Around You periodic table is very different though.
03:43:16 <Sgeo> istr _mentioned_?
03:43:41 <oerjan> on reddit, probably
03:43:45 <Sgeo> <3 Look Around You
03:43:56 <Sgeo> I thought istr==I seem to recall
03:44:14 <Sgeo> I haven't watched the second season except for the music episode though
03:44:17 <oerjan> yes
03:44:46 <oerjan> as in i recall seeing some link to it
03:46:01 <zzo38> "If the surface area of the well is 750,000 cubic fluorometers..." Does that mean anything?
03:46:29 <oerjan> is that from the same book? if so probably not.
03:47:39 <zzo38> That is from Look Around You.
03:51:32 -!- Lymia has joined.
03:51:36 -!- Lymee has quit (Disconnected by services).
03:51:38 -!- Lymia has changed nick to Lymee.
03:52:32 <evincar> Sgeo: <= naturally, but < is what the sentence said.
03:56:41 <oerjan> then even more probably not.
04:00:35 -!- oerjan has quit (Quit: Good night).
04:07:57 -!- GreaseMonkey has quit (Read error: Operation timed out).
04:54:58 -!- GreaseMonkey has joined.
04:54:58 -!- GreaseMonkey has quit (Changing host).
04:54:58 -!- GreaseMonkey has joined.
04:58:43 <zzo38> Today is the only time I figured out the correct response for Final Jeopardy. It was something about the Earl of Chester or whatever, and the 18th century, I don't know anything about those things. But I said the correct response as soon as the clue was revealed, anyways.
04:59:20 <zzo38> I don't know why, but I understood it that time.
05:02:07 <zzo38> I want LLVM and Haskell to be ported to Glulx, can they ever do that?
05:02:34 <zzo38> And C.
05:05:08 <zzo38> Currently, as far as I know, the only programming language that compiles to Glulx is Inform. But it should have other programming languages too, such as C.
05:05:41 <evincar> I was thinking about targeting TinyVM or one of its cousins.
05:05:56 <evincar> Simply because that's a project that deserves some attention.
05:05:59 <zzo38> What is TinyVM or one of its cousins?
05:06:41 <evincar> zzo38: https://github.com/GenTiradentes/tinyvm
05:06:44 -!- elliott has quit (Ping timeout: 252 seconds).
05:07:56 <zzo38> Why can numbers not be specified in octal?
05:09:23 <zzo38> I also would like LLVM to target MMIX. And also for Haskell for target MMIX. I believe GCC already targets MMIX.
05:09:26 -!- derrik has joined.
05:12:32 -!- azaq231 has joined.
05:15:15 -!- azaq23 has quit (Ping timeout: 260 seconds).
05:18:32 <zzo38> TinyVM seems to be very simple
05:19:49 <evincar> I'm currently looking up how you do anything useful with it.
05:19:53 <zzo38> I understand why there is no "break" after case 0x17 but why is there none after case 0x18?
05:20:08 <zzo38> It does not seem you can do much useful with it, except for a simple experiment.
05:20:19 <zzo38> It does not even have input.
05:21:05 -!- MDude has changed nick to MSleep.
05:21:11 <evincar> I presume you can add hooks somewhere.
05:21:21 <evincar> Or, say, an "int" instruction of your own.
05:21:32 <evincar> Even just one point of customisation would be fine.
05:21:59 <zzo38> The "int" instruction seems to do nothing as far as I can tell from the tvm.c source file.
05:23:07 <zzo38> It also does not appear very well designed, but at least it will work and has simplicity and so on.
05:24:11 <evincar> I found it interesting, at least.
05:24:17 <evincar> In concept, primarily.
05:24:24 <evincar> "Here is a very small VM."
05:24:37 <evincar> I might fork it and clean it up somewhat.
06:08:53 <zzo38> Yes. It is interesting in that way.
06:08:55 -!- zzo38 has quit (Remote host closed the connection).
06:35:17 -!- azaq231 has quit (Ping timeout: 240 seconds).
06:36:42 -!- azaq23 has joined.
06:49:52 -!- jcp has quit (Ping timeout: 250 seconds).
06:50:53 -!- jcp|other has quit (Read error: Operation timed out).
06:54:02 -!- jcp|other has joined.
06:54:14 -!- jcp has joined.
06:54:36 -!- wetneb has quit (Quit: Leaving.).
07:24:22 -!- jcp|1 has joined.
07:26:16 -!- jcp has quit (Ping timeout: 258 seconds).
07:26:26 -!- jcp|other has quit (Ping timeout: 252 seconds).
07:27:14 -!- jcp has joined.
07:54:50 -!- Slereah has joined.
07:55:44 -!- CakeProphet has joined.
07:55:44 -!- CakeProphet has quit (Changing host).
07:55:44 -!- CakeProphet has joined.
07:56:11 -!- GuestIceKovu has quit (Ping timeout: 240 seconds).
08:09:33 <CakeProphet> hi my name is CakeProphet
08:09:50 <monqy> ok
08:10:19 <CakeProphet> okay so I am probably now going to switch to a parser combinator library.
08:10:24 <CakeProphet> upon realizing that I must also parse infix operators.
08:11:37 <CakeProphet> starting over with nothing: the joys of programming.
08:13:00 <olsner> don't underestimate the value of knowing how not to do it
08:15:49 <evincar> CakeProphet: You could use a Pratt parser.
08:15:58 <evincar> If you don't feel like switching.
08:16:54 <evincar> Although from the sound of it, your code could use it?
08:17:03 <evincar> That is, a change.
08:18:13 <CakeProphet> yes.
08:21:17 <CakeProphet> so I guess it's time to find one for Python. If I can't find one then I'll just use yacc.
08:22:13 <olsner> oh, you're writing it in python?
08:22:19 <monqy> google told me the python version of parsec is called pysec
08:22:36 <monqy> not sure how easy it will be to find
08:22:46 <monqy> or how good it is
08:29:47 -!- Patashu has quit (Ping timeout: 258 seconds).
08:53:32 <CakeProphet> a commonly used package is called pyparsing
08:53:35 <CakeProphet> that uses similar techniques.
08:56:26 <CakeProphet> @hoogle (<+>)
08:56:26 <lambdabot> Control.Arrow (<+>) :: ArrowPlus a => a b c -> a b c -> a b c
08:56:26 <lambdabot> Text.PrettyPrint.HughesPJ (<+>) :: Doc -> Doc -> Doc
08:56:26 <lambdabot> Language.Haskell.TH.PprLib (<+>) :: Doc -> Doc -> Doc
08:58:43 -!- derrik has quit (Quit: gone).
09:02:30 -!- EgoBot has quit (Ping timeout: 252 seconds).
09:02:38 -!- EgoBot has joined.
09:05:52 -!- BeholdMyGlory has joined.
09:06:48 -!- Phantom_Hoover has joined.
09:08:11 -!- Taneb|Kindle has joined.
09:08:19 <Taneb|Kindle> Hello
09:09:25 <evincar> Taneb|Kindle: Hello.
09:10:06 <Taneb|Kindle> How is the world of esoteric programming today?
09:10:59 <evincar> Question: in a postfix language, should "cadr" mean "car cdr" like its name indicates, or "cdr car" so it works the way it does in Lisp?
09:13:15 <evincar> I'm going with the by-name one.
09:13:20 <evincar> At the risk of confusing myself.
09:14:02 <Deewiant> If you want it the other way around you can always call it "rdac"
09:14:34 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds).
09:15:23 <evincar> Or car=head, cdr=rest, cadr=headrest, cdar=resthead, etc.
09:21:49 <Sgeo> xkcd came true >:<
09:22:45 <Sgeo> http://xkcd.com/937/
09:23:05 -!- derrik has joined.
09:23:06 <monqy> evincar: no need to do that if you have composition
09:25:12 <CakeProphet> monqy the functional purist.
09:25:22 <monqy> always and forever
09:25:49 <evincar> monqy: Naturally. I was just talking about names.
09:26:14 <evincar> (cdr car) "cadr" def versus (car cdr) "cadr" def.
09:26:31 <monqy> evincar: you missed my point; you don't even have to name them
09:26:43 <monqy> evincar: unless they're so extensively used and composition is so verbose that they really need them
09:26:50 <evincar> It's for concision.
09:26:52 <evincar> That's all.
09:27:02 <evincar> Composition is just juxtaposition.
09:27:10 <monqy> then there's even less reason
09:27:29 <evincar> It was a passing curiosity.
09:28:50 <CakeProphet> Sgeo: huh, these new ones are a little better quality than usual.
09:29:02 <CakeProphet> let's hope it's a steady comeback.
09:29:36 <CakeProphet> though he definitely already used the wedding setting in the "known someone too long to ask their name" comic.
09:29:50 <CakeProphet> (re: latest comic)
09:31:04 <CakeProphet> or maybe the quality has just gotten so long that if I find anything slightly amusing it's a sign of a "comeback"
09:31:09 <CakeProphet> s/long/low/
09:37:11 -!- CakeProphet has quit (Ping timeout: 260 seconds).
09:39:52 -!- CakeProphet has joined.
09:39:52 -!- CakeProphet has quit (Changing host).
09:39:52 -!- CakeProphet has joined.
09:40:23 -!- azaq23 has quit (Quit: Leaving.).
09:48:50 -!- Vorpal has joined.
09:48:57 -!- Vorpal has quit (Changing host).
09:48:57 -!- Vorpal has joined.
09:52:00 -!- derrik_ has joined.
09:52:29 -!- derrik has quit (Ping timeout: 264 seconds).
09:52:41 -!- derrik_ has changed nick to derrik.
09:54:26 -!- derrik has quit (Client Quit).
09:54:49 -!- derrik has joined.
10:01:31 -!- ptyyy has joined.
10:03:01 -!- ptyyy has left.
10:08:10 -!- FireFly has joined.
10:12:17 -!- GreaseMonkey has quit (Quit: The Other Game).
10:23:23 -!- Patashu has joined.
10:24:36 -!- evincar has quit (Quit: Sleeping through the hurricane.).
10:31:08 <itidus20> So a hd image has about 2 million pixels. Looking at such an image, a regular human couldn't identify the x,y coordinate of an arbitrarily selected black pixel on a white background or a white pixel on a black background, and yet we presume to understand the pixel.
10:31:46 <Phantom_Hoover> what
10:32:00 <itidus20> oh.. i will break down what i said
10:32:27 <itidus20> A 1920x1080 (HD) image has about 2 million pixels.
10:32:57 <itidus20> We could fill this image all black #000000 or all white #FFFFFF
10:33:28 <itidus20> And having filled the image, we could mark a single pixel in the inverse colour.
10:33:58 <itidus20> So if we filled the image all black, we could select a random pixel to make white
10:34:10 <itidus20> And if we filled the image all white, we could select a random pixel to make black
10:34:50 -!- MSleep has quit (Read error: Connection reset by peer).
10:35:08 <Phantom_Hoover> AHA WE SHALL FIND THE AMERICAN SPIES IN OUR MIDST
10:35:09 -!- MSleep has joined.
10:35:36 <itidus20> And yet, if we asked a casual human observer to tell us the (x,y) coordinate of that single pixel just by looking at it, most likely they could not
10:35:48 <itidus20> even given a signifigant amount of time
10:35:54 <monqy> Phantom_Hoover: hm?
10:36:02 <itidus20> it is highly likely they would be off by at least a pixel
10:36:03 <monqy> Phantom_Hoover: I'm in usa but apparently on a french server
10:36:16 <Phantom_Hoover> You cunning bastard.
10:36:26 -!- pikhq has quit (*.net *.split).
10:36:32 -!- chickenzilla has quit (*.net *.split).
10:36:32 -!- myndzi has quit (*.net *.split).
10:36:32 -!- atehwa has quit (*.net *.split).
10:36:32 -!- aloril has quit (*.net *.split).
10:36:32 -!- augur has quit (*.net *.split).
10:36:32 -!- itidus20 has quit (*.net *.split).
10:36:32 -!- fungot has quit (*.net *.split).
10:36:32 -!- clog has quit (*.net *.split).
10:36:32 -!- fizzie has quit (*.net *.split).
10:36:32 <monqy> I guess some people might try to connect to servers near themselves
10:36:32 <Phantom_Hoover> itidus20, yesyesyes I get all that I just have no idea what the hell you're talking about.
10:36:41 <monqy> bye itidus20
10:36:56 <Phantom_Hoover> Oh, wait, he was a SUBVERSIVE CAPITALIST PIGDOG
10:37:02 -!- pikhq has joined.
10:37:02 -!- augur has joined.
10:37:02 -!- chickenzilla has joined.
10:37:02 -!- myndzi has joined.
10:37:02 -!- itidus20 has joined.
10:37:02 -!- atehwa has joined.
10:37:02 -!- fungot has joined.
10:37:02 -!- aloril has joined.
10:37:02 -!- clog has joined.
10:37:02 -!- fizzie has joined.
10:37:10 -!- EgoBot has quit (*.net *.split).
10:37:14 <Phantom_Hoover> fizzie, YOUR TRUE COLOURS ARE REVEALED
10:37:38 -!- EgoBot has joined.
10:37:50 -!- coppro has quit (*.net *.split).
10:38:06 -!- coppro has joined.
10:38:22 -!- yorick has quit (*.net *.split).
10:38:41 -!- yorick has joined.
10:38:59 -!- FireFly has quit (*.net *.split).
10:38:59 -!- copumpkin has quit (*.net *.split).
10:39:00 -!- shachaf has quit (*.net *.split).
10:39:20 -!- derrik has quit (*.net *.split).
10:39:30 -!- FireFly has joined.
10:39:31 -!- copumpkin has joined.
10:39:31 -!- shachaf has joined.
10:39:34 -!- FireFly has quit (Quit: FireFly).
10:39:37 -!- derrik has joined.
10:39:40 -!- CakeProphet has quit (*.net *.split).
10:39:42 -!- monqy has quit (*.net *.split).
10:39:42 -!- olsner has quit (*.net *.split).
10:40:06 -!- Patashu has quit (*.net *.split).
10:40:08 -!- mycroftiv has quit (*.net *.split).
10:40:08 -!- Zetro has quit (*.net *.split).
10:40:08 -!- twice11 has quit (*.net *.split).
10:40:18 -!- FireyFly has joined.
10:41:03 -!- Patashu has joined.
10:41:03 -!- mycroftiv has joined.
10:41:03 -!- Zetro has joined.
10:41:03 -!- twice11 has joined.
10:41:18 -!- CakeProphet has joined.
10:41:18 -!- monqy has joined.
10:41:18 -!- olsner has joined.
10:44:20 -!- Slereah has quit (*.net *.split).
10:44:35 -!- Slereah has joined.
10:45:27 -!- monqy has quit (Quit: hello).
11:40:35 -!- FireyFly has changed nick to FireFly.
12:01:53 -!- oerjan has joined.
12:03:45 -!- augur has quit (Remote host closed the connection).
12:57:52 -!- hagb4rd has quit (Ping timeout: 252 seconds).
13:36:18 -!- sllide has joined.
13:46:14 -!- Sgeo has quit (Ping timeout: 245 seconds).
13:48:41 -!- Sgeo has joined.
13:49:00 -!- Patashu has quit (Ping timeout: 240 seconds).
13:54:59 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
13:55:07 -!- oerjan has quit (Quit: leaving).
13:59:44 -!- copumpkin has quit (Ping timeout: 250 seconds).
14:00:09 -!- copumpkin has joined.
14:05:44 -!- augur has joined.
14:22:25 -!- derrik has left.
14:22:48 -!- Wamanuz2 has joined.
14:25:33 -!- Wamanuz has quit (Ping timeout: 252 seconds).
14:59:41 -!- augur has quit (Remote host closed the connection).
16:38:47 <fizzie> Phantom_not_here_Hoover: I no gets it.
16:40:23 <Gregor> Every battle in the history of video games has been between The Order of Those who Walk Right, and The Cult of Those who Walk Left.
17:25:22 -!- zzo38 has joined.
17:35:52 -!- MSleep has changed nick to MDude.
17:45:10 -!- zzo38 has quit (Remote host closed the connection).
17:52:20 -!- Phantom_Hoover has joined.
17:55:21 -!- elliott has joined.
18:15:14 <elliott> Gregor: So does mudem work now?
18:17:18 <Gregor> elliott: In theory :P
18:17:39 <elliott> Gregor: Does it still have that nasty bug that made HackEgo unreliable? :P
18:17:56 <Gregor> elliott: In theory :P
18:18:25 <elliott> Gregor: That's annoying and restricts my plans for world domination :P
18:20:36 <Lymee> :t fix
18:20:37 <lambdabot> forall a. (a -> a) -> a
18:20:38 <Lymee> :t ($)
18:20:39 <lambdabot> forall a b. (a -> b) -> a -> b
18:20:50 <Lymee> > fix ($)
18:20:51 <lambdabot> Overlapping instances for GHC.Show.Show (a -> b)
18:20:51 <lambdabot> arising from a use of `...
18:21:03 <Lymee> :t fix ($)
18:21:04 <lambdabot> forall a b. a -> b
18:43:41 -!- yorick has quit (Quit: Poef!).
19:13:10 -!- sllide has quit (Read error: Connection reset by peer).
19:13:36 -!- sllide has joined.
19:13:52 -!- oerjan has joined.
19:24:28 <Sgeo> Gregor, how's work on Plof?
19:25:23 <elliott> Sgeo: http://codu.org/projects/fythe/hg/
19:25:49 <Sgeo> ty
19:26:20 <elliott> Sgeo: That was sarcasm. There is no current version of Plof 4 at all.
19:26:38 -!- zzo38 has joined.
19:26:52 <Sgeo> Oh >.>
19:27:06 <Gregor> elliott: That's technically not quite true :P
19:27:17 <Gregor> I've got a few files which may or may not be part of Plof 4 on my computer.
19:27:28 <elliott> The last thing that happened was me pestering Gregor about various language changes that I'd like after trying to use the previous evrsion, realising that it was far too bitrotten and incomplete to actually use, and then devoting my energy to making Fythe good enough to implement what I would want Plof to be, which then stopped when I got number keys :P
19:27:32 <elliott> Gregor: Fair enough.
19:27:37 <elliott> s/got/lost
19:27:38 <elliott> /
19:28:44 <elliott> Gregor: By "technically", do you mean that the files are a hundred lines long, last edited a year ago, and with syntax errors, or something more than that :P
19:29:12 <zzo38> Is there any proposal for restrictive classes in Haskell, such as having a monad that is only allowed to contain types of a certain class? (I would think it might also be necessary to have the monad type itself follow the same restriction so that "join" has a valid type on that monad)
19:30:02 <elliott> class Functor f a b | f -> a b where fmap :: (a -> b) -> f a -> f b
19:30:10 -!- pikhq has quit (Ping timeout: 246 seconds).
19:30:13 <Gregor> -rw-r--r-- 1 gregor gregor 8059 Jul 30 18:36 plof_g.plof
19:30:22 <elliott> class Applicative f a b | f -> a b where ... blah blah blah
19:30:25 <Gregor> $ wc -l plof_g.plof
19:30:25 <Gregor> 237 plof_g.plof
19:30:44 <elliott> Gregor: .plof? So nothing that can actually run then X-D
19:31:10 <oerjan> zzo38: there are classes generalizing Monad in that way, aka parametrized monads. they don't become instances of the ordinary Monad though.
19:31:27 <Sgeo> elliott, your nuber keys work now?
19:31:33 <Sgeo> number, too
19:31:50 <elliott> Sgeo: What makes you think that?
19:32:01 <Gregor> elliott: No, plof_g.plof is a Fythe file.
19:32:22 <Sgeo> Oh, I missed <elliott> s/got/lost
19:32:22 <Sgeo> <elliott> /
19:32:24 <elliott> Gregor: Good file extension :P
19:32:58 <oerjan> zzo38: they can still be used with do notation if you use the proper language extension
19:33:48 <oerjan> http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax
19:34:11 <zzo38> oerjan: O, that's how it works. But I think it would be useful sometimes to generalize any class in that way by specifying restrictions on instances; maybe you need to be able to specify restrictions on => specifications or whatever... maybe Template Haskell could make new classes but then you need to have members of the same name
19:34:23 <zzo38> I do know about rebindable syntax.
19:34:39 <zzo38> And I do not mean specifically monads or do-notation
19:37:15 <zzo38> Another possibility could be class-based pattern matching, where you could specify the purpose of functions based on their class.
19:37:25 <oerjan> well, this subject tends to come up whenever someone wants to make Set into a Monad :P
19:37:48 <zzo38> Yes, that is one of the purposes of what I am mentioning; it allows you to make Set into a Monad.
19:37:55 <oerjan> (because you cannot use it unless there is an Ord instance for the elements)
19:38:16 <oerjan> or at least Eq
19:39:07 <zzo38> The implementation of Set requires an Ord instance, although I suppose you could make up SlowSet with less capability of Set but only requires Eq not Ord
19:39:26 <oerjan> yeah
19:39:38 <Gregor> <elliott> Gregor: Good file extension :P
19:39:44 <Gregor> elliott: Oh, I'm sorry, I thought this was the year 2011 and I wasn't using DOS. I'd better rename it to PLOF_G.FYT
19:40:49 <elliott> Gregor: OBVIOUSLY I was referring to the fact that it was more than three characters, not the fact that you named a Fythe file .plof instead of .fythe :P
19:41:02 <elliott> Which you then subconsciously corrected to make the DOS dig :P
19:41:03 <Gregor> But there's no distinction
19:41:17 <Gregor> Unless you'd like all Plof files named .fythe.
19:41:36 <elliott> It's only coincidence that Fythe files are valid Plof, isn't it
19:41:37 <Gregor> Instead, I have made an executive decision that, since there is in fact no distinction, all files which are part of the Plof project will be .plof.
19:41:52 <Gregor> No, it's no coincidence at all; the Plof bits build Fythe into Plof.
19:41:58 <Gregor> There's no distinction because there is no Fythe language.
19:42:04 <Gregor> (Except when there is)
19:42:06 <elliott> Yes there is :P
19:42:19 <elliott> It's just coincidence that Plof happens to want to use "fythe {...}" to enclose Fythe bits :P
19:42:31 -!- ais523 has joined.
19:42:45 <Gregor> plof_g.plof in fact has no fythe {} bits, it has grammar {} and transform {} bits.
19:42:55 <CakeProphet> --potential employer
19:42:56 <Gregor> Ohnowait, I lied, there are a few fythe {} bits X-P
19:43:03 <CakeProphet> ....wat. WHY DIDN'T IT POST.
19:43:10 <Gregor> CakeProphet: Because of SATAN.
19:43:10 <elliott> I didn't know such bits existed, are they new?
19:43:20 -!- CakeProphet has quit (Quit: Reconnecting).
19:43:21 <Gregor> elliott: They've been in for months :P
19:43:30 <Gregor> elliott: They're implemented by fythecore.
19:43:37 -!- CakeProphet has joined.
19:43:37 -!- CakeProphet has quit (Changing host).
19:43:37 -!- CakeProphet has joined.
19:44:57 <elliott> Gregor: Oh, I ignored fythecore :P
19:45:36 <Gregor> Dood, cfythe is /basically/ done.
19:45:43 -!- pikhq has joined.
19:46:30 <elliott> Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P
19:49:08 <zzo38> How do I do if I want to define a monad in terms of unit/fmap/join or in terms of Kleisli composition?
19:49:31 <Vorpal> `addquote <elliott> Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P
19:49:36 <HackEgo> 631) <elliott> Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P
19:49:37 <elliott> m >>= f = join (fmap f m)
19:49:46 <elliott> zzo38: return = pure; m >>= f = join (fmap f m) for example
19:49:54 <elliott> Vorpal: that's not funny or interesting?
19:50:00 <Vorpal> elliott, it is typical of you
19:50:11 <elliott> Vorpal: so are most things I say
19:50:18 <Vorpal> elliott, this more than most
19:50:22 <Vorpal> elliott, and I find it funny
19:50:25 <elliott> not really, no
19:50:31 <Phantom_Hoover> elliott, like half my DF quotes?
19:50:44 <elliott> Phantom_Hoover: Those are funny assuming you don't know what DF is.
19:50:51 <elliott> I guess mine might be funny if you don't know what bignums are? But actually not really.
19:51:05 <Vorpal> elliott, it is funny if you don't know who elliott is
19:51:08 <Vorpal> maybe
19:51:19 <elliott> Considering you said that the humour is derived from its typicality, that's a contradiction.
19:51:20 <zzo38> elliott: OK. That can use unit/fmap/join (which is the most common way in category theory, I think), but there is also Kleisli composition can it be defined in that way?
19:51:39 <Vorpal> elliott, I was joking about the last thing.
19:52:06 <Gregor> `addquote <Vorpal> elliott, it is typical of you <elliott> Vorpal: so are most things I say
19:52:08 <HackEgo> 632) <Vorpal> elliott, it is typical of you <elliott> Vorpal: so are most things I say
19:52:10 <elliott> zzo38: Well, (f >=> g) x = do fx <- f x; g fx
19:52:12 <elliott> ?undo do fx <- f x; g fx
19:52:12 <lambdabot> f x >>= \ fx -> g fx
19:52:24 <Vorpal> Gregor, "that's not funny or interesting"
19:52:27 <elliott> so (f >=> g) x = f x >>= g, obviously
19:52:28 <Vorpal> (it is)
19:52:38 <elliott> Gregor: Let's keep that one and ditch the other.
19:52:39 <elliott> `delquote 631
19:52:41 <HackEgo> ​*poof*
19:53:07 <elliott> zzo38: yeah, I think (m >>= f) = (const m >=> f) ()
19:53:14 <elliott> :t \m f -> (const m >=> f) ()
19:53:15 <lambdabot> forall (m :: * -> *) b c. (Monad m) => m b -> (b -> m c) -> m c
19:53:18 <elliott> yeah
19:53:32 <Vorpal> brb, moving bouncer to a different computer
19:53:40 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
19:54:15 -!- Vorpal has joined.
19:56:15 <elliott> 36 hours agoHackBot<ais523> addquote <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
19:56:19 <elliott> ais523: thanks, I forgot to logread
19:56:36 <ais523> elliott: I considered even @telling you about it, it was so amazing
19:56:36 <oerjan> (g >=> f) x = f x >>= g = join (fmap g (f x))
19:56:45 <ais523> but decided you were probably going to notice it when going through quotes
19:56:57 <oerjan> :t join . fmap ?g . ?f
19:56:57 <lambdabot> forall (m :: * -> *) a a1 (f :: * -> *). (Monad m, ?g::a1 -> m a, Functor m, ?f::f (m a1), Functor f) => f (m a)
19:57:20 <oerjan> thank you, caleskell
19:57:23 <elliott> :D
19:57:28 <oerjan> :t join P.. fmap ?g P.. ?f
19:57:29 <lambdabot> Couldn't find qualified module.
19:57:32 <oerjan> argh
19:57:39 <oerjan> :t join Prelude.. fmap ?g Prelude.. ?f
19:57:40 <lambdabot> forall a a1 (f :: * -> *) a2. (Monad f, ?g::a1 -> f a, Functor f, ?f::a2 -> f a1) => a2 -> f a
19:57:45 <zzo38> I suppose it is then easy to just reverse them in order to define it in terms of (<=<) instead of (>=>) since (<=<) is matching category theory better, I think. Is it?
19:57:51 <oerjan> eek
19:58:19 -!- Sgeo has quit (Ping timeout: 245 seconds).
19:58:55 <oerjan> both >=> and <=< are valid category theory compositions
19:59:13 -!- monqy has joined.
19:59:52 <oerjan> for opposite categories
20:00:22 <zzo38> Yes, I did read about the opposite categories in Wikipedia.
20:01:07 -!- Sgeo has joined.
20:01:56 <oerjan> also i vaguely recall not all category theorists agree on which order to compose things
20:02:09 <elliott> ais523: um, hmm, I didn't see that quote, maybe I forgot to logread /yesterday/
20:02:40 <ais523> elliott: it was early morning yesterday
20:02:51 <ais523> just before I went to bed far too late
20:03:00 <elliott> oh no, it looks like evincar discusses languages before that quote
20:03:05 <zzo38> oerjan: Is that the caes? It seem to me that <=< is the one that matches the order of composition of ordinary morphisms in the Hask category when making them used in the monad
20:03:08 <monqy> elliott: oh no
20:03:11 <coppro> yeah, composition can go backwards to some category theorists
20:03:30 <elliott> >=> is much nicer than <=<
20:03:36 <elliott> backwards composition is... backwards
20:03:39 <elliott> (same goes for (.) really)
20:03:42 <monqy> I use <=< in some cases
20:03:52 <elliott> unfortunately the only standard name for (flip (.)) is (>>>) from Control.Category
20:03:55 <elliott> which is too verbose
20:04:00 <elliott> |> is what F sharp uses, IIRC, that's quit enice
20:04:02 <elliott> quite nice
20:04:07 <oerjan> zzo38: well it's the order which corresponds to ., yes.
20:04:10 <monqy> hm
20:04:29 -!- myndzi has quit (Remote host closed the connection).
20:04:51 <elliott> otoh, /application/ is arguably backwards in Haskell :)
20:04:53 <elliott> and thus Factor was invented
20:04:55 <oerjan> |> isn't flip (.), though, but flip ($)
20:04:55 <zzo38> oerjan: Yes, that is what I meant.
20:04:59 <elliott> oerjan: oh, it is?
20:05:07 <elliott> oerjan: is (.>) flip (.)
20:05:09 <oerjan> iirc
20:05:10 <elliott> I forget what the operator actually is
20:05:13 <elliott> .> is quite nice
20:05:15 <oerjan> elliott: i don't know
20:05:20 <elliott> (.) would be the nicest name, but it's taken ;-)
20:05:22 <oerjan> i've just barely heard of |>
20:05:24 -!- Sgeo has quit (Ping timeout: 245 seconds).
20:05:31 <zzo38> elliott: I can understand very well why it can be considered backwards
20:05:52 -!- pikhq has quit (Remote host closed the connection).
20:06:43 <elliott> 07:46:37: <CakeProphet> my favorite question to receive from someone who knows nothing about programming: "why are there so many programming languages? why not just have one."
20:06:43 <elliott> i think this a lot, too
20:06:47 <elliott> it would lower my stress levels considerably
20:06:59 <elliott> it would have to be a good one though
20:07:10 -!- Sgeo has joined.
20:07:14 <ais523> because different languages are good in different situations
20:07:49 <monqy> elliott: watch out, soon after, evincar will be stupid about it, iirc
20:08:16 <monqy> I guess it's probably too late
20:08:28 <zzo38> Of course you use different programming language for different purpose, is good idea.
20:09:04 <elliott> browser tabs scale so terribly :(
20:09:26 <monqy> it's all too frequent that I get so many tabs that I can't see any of the icons
20:09:32 <monqy> I guess firefox has a better time with that...
20:09:37 <elliott> what happens with me is
20:09:40 <elliott> not only do i get too many tabs
20:09:42 <elliott> i also get too many windows
20:09:50 <elliott> because i start new windows as a vague organisational method
20:09:52 <monqy> oh I keep myself to one window
20:09:54 <elliott> but then they just kind of... inbreed
20:10:12 <elliott> monqy: have i told you yet about my Perfect Tab replacements, they're totally perfect, one day i will implement them and be happy
20:10:18 <zzo38> On my computer I don't use the icons and each tab becomes as long as possible, so it becomes easier to watch. I also hardly ever open a large amount of tabs like many other people do.
20:10:42 <monqy> one of my problems is that I keep tabs alive forever as a note to self or a thing to read or investigate
20:11:03 <monqy> so I have a bunch of ancient tabs that I'm not paying any attention to that are a big clutter
20:11:15 <zzo38> You can use bookmarks isn't it?
20:11:33 <monqy> managing bookmarks like that would be a bit much for me
20:11:36 <elliott> monqy: you have not, asked me you should ask me
20:11:40 <monqy> elliott: ask
20:11:53 <elliott> monqy: ok so mine unifies history, bookmarks and tabs
20:12:07 <monqy> zzo38: if I made a special bookmarks place for those sorts of bookmarks it might be okay, but I dunno I'm too lazy
20:12:11 <elliott> monqy: instead of being horizontal it's vertical because the list is practically infinite (I'll get to this)
20:12:21 <elliott> monqy: basically,
20:12:30 <elliott> monqy: from a tab-less point of view -- i.e. only ever clicking links linearly on a page --
20:12:48 <monqy> is it just icons, are the names colapseable, or does it take up a lot of space :(
20:12:48 <elliott> monqy: it would be (either top-to-bottom or bottom-to-top, it's irrelevant) a list from most recently-visited page to least
20:12:51 <elliott> i.e., a history list
20:13:10 <elliott> monqy: it shouldn't take more than a hundred or two horizontal pixels which is not much these days, and it pays off in usability
20:13:13 <elliott> but yeah, listen,
20:13:37 <monqy> my horizontal space is valuable, what with tiling and all :(
20:13:42 <elliott> yes yes yes but listen
20:13:45 <elliott> monqy: now, obviously you have a cache, so if you click a page that's close enough to the current pages, it'll load instantly
20:13:51 <elliott> but further away ones might have to reload
20:13:53 <elliott> this is basically just gc
20:14:07 <elliott> monqy: now, clicking a page lower down obviously moves it to the top, because you re-visit it
20:14:23 <elliott> monqy: Ctrl+T just opens a new blank tab at the top and forks the history
20:14:24 <elliott> that is
20:14:34 <elliott> say you visit A->B->C, Ctrl+T, go to D->E->F
20:14:37 <elliott> if you omitted the Ctrl+T
20:14:39 <elliott> the list would look like
20:14:42 <elliott> A, B, C, D, E, F
20:14:44 <elliott> but with the Ctrl+T
20:14:45 <elliott> it looks like
20:14:50 <elliott> A, B, D, E, C, F
20:15:03 <elliott> because the most recent pages in each "tab" (fork) are at the bottom
20:15:05 <elliott> with the history above
20:15:46 <elliott> monqy: bookmarking something is just starring it; it moves around in the history like normal and you can bring up a list of all starred pages
20:15:58 <elliott> monqy: and also: tabs automatically unload if you ignore them for long enough
20:16:02 <elliott> because history = tabs
20:16:15 <elliott> (you can set tabs not to unload if you think a resource might expire; that just saves it to disk)
20:16:16 <monqy> unless they're starred I hope?
20:16:27 <monqy> oh good
20:16:31 <elliott> monqy: well, do you keep all your bookmarks open all the time? (assuming you used bookmarks)
20:16:33 <elliott> probably not
20:16:37 <elliott> but if you think it might expire you can hold it, yes
20:16:56 <elliott> so basically this is a vertical list, roughly in visitation order, organised with forks to keep relevant stuff near the bottom
20:16:59 <monqy> oh by unload I mistook you for meaning they get cleaned up forever :'(
20:17:05 <elliott> no, they just get GC'd
20:17:06 <monqy> im still tired
20:17:12 <elliott> to save memory
20:17:29 <monqy> would there be any way to organise starred tabs
20:17:29 <elliott> something nice would be if you hover over an entry it shows a little screenshot poking out from the list so you can easily distinguish pages by rolling your mouse around
20:17:49 <elliott> monqy: anyway, it does take horizontal space, but you could pretty much just dedicate a workspace to your browser, or use a vertical split in your WM :P
20:17:59 <monqy> ew vertical split :(
20:18:08 <monqy> er
20:18:09 <elliott> but really, horizontal space is pretty cheap
20:18:14 <elliott> erm, horizontal split
20:18:15 <elliott> you KNOW WHAT I MEAN
20:18:17 <monqy> yeah
20:18:22 <elliott> monqy: you could probably just give them notes, which would just be an arbitrary string of text, and you could fuzzy-search that
20:18:23 <monqy> I knew what you meant
20:18:25 <elliott> you could use them like tags if you wanted
20:18:27 <monqy> which confused me
20:18:39 <elliott> and a page title/url would count towards the notes I guess
20:18:45 <elliott> and obviously if you typed into the address bar it'd search notes as well as everything else
20:19:37 <zzo38> Would there be any use to have a kind ** for classes? And why is the proposal for type level natural numbers using Nat as its kind rather than using ## as its kind?
20:19:50 <elliott> because words are nicer than symbols
20:20:38 <zzo38> But all the other kinds use symbols
20:20:53 -!- Sgeo has quit (Ping timeout: 240 seconds).
20:21:39 <zzo38> Including * # (#) ? ?? ->
20:21:58 <elliott> that's the fault of those kinds :P except for maybe (->) and *
20:23:27 -!- myndzi has joined.
20:24:04 <zzo38> I don't think so. I think it makes sense to use symbols for the kinds since the words are used for type specifications and other stuff instead, so that you can use these symbols for specifying kinds.
20:24:06 -!- myndzi has quit (Client Quit).
20:24:15 <elliott> well, oerjan has a lot of opinions on this, so I'll hand it over to him
20:24:22 <elliott> monqy: ok pledge dedication to my amazing tab replacement scheme thanks
20:24:45 <elliott> monqy: oh and I guess if you don't use a fork's latest page much it moves to be after its history rather than with all the current forks?
20:24:53 <elliott> probably need that to keep the history part actually useful
20:25:32 <oerjan> `addquote <elliott> well, oerjan has a lot of opinions on this, so I'll hand it over to him
20:25:34 <HackEgo> 632) <elliott> well, oerjan has a lot of opinions on this, so I'll hand it over to him
20:25:54 -!- myndzi has joined.
20:26:00 <elliott> oerjan: i feel that may lose something out of context :P
20:26:34 <oerjan> no, not really. have you not learned anything about me :P
20:28:02 <Phantom_Hoover> oerjan, we all know that the only stupid quotes allowed are ones elliott adds of me.
20:28:03 <zzo38> They all lose everything out of context
20:28:13 <elliott> Phantom_Hoover: Bawww.
20:28:41 <oerjan> anyway my opinion if any is that using symbols is fine when there are only a few kinds, but that the more are added the more they need to switch to something more readable/mnemonic.
20:28:49 <zzo38> Actually I think (#) kind should be renamed to ## and natural number kinds should be +
20:29:00 <Phantom_Hoover> elliott, what the hell does 'baaaaw' mean?
20:29:06 <elliott> oerjan: they're adding Nat
20:29:16 <oerjan> so you said.
20:29:19 <elliott> Phantom_Hoover: I don't know but I didn't say that.
20:29:22 <elliott> oerjan: no, zzo38 said that >:)
20:29:43 <Phantom_Hoover> OK, 'Bawww'.
20:30:14 <elliott> Phantom_Hoover: It's the noise a sheep makes if it's really bad at making proper sheep noises.
20:30:16 <elliott> I think.
20:30:29 <zzo38> Maybe they should have a pragma to use named kinds and use symbols otherwise; I think Perl does something similar with other stuff
20:30:51 <Phantom_Hoover> elliott, you're a crappy sheep, in other words?
20:31:07 <elliott> Phantom_Hoover: Yes. :(
20:31:20 <oerjan> yes, perl's use english
20:32:07 <oerjan> :k (->)
20:32:07 <lambdabot> ?? -> ? -> *
20:33:17 <Phantom_Hoover> What does k do?
20:33:24 <Phantom_Hoover> :k (.)
20:33:24 <lambdabot> parse error on input `.'
20:33:25 <oerjan> shows the kind of a type
20:33:30 <Phantom_Hoover> Oh, right.
20:33:35 <Phantom_Hoover> :k Maybe
20:33:35 <lambdabot> * -> *
20:34:11 <Lymee> :k IO
20:34:11 <lambdabot> * -> *
20:34:32 <Lymee> :k data A b c = B b b c c
20:34:33 <lambdabot> parse error on input `data'
20:34:34 <oerjan> afaik (->) is the only common one i know that's very interesting
20:34:53 <CakeProphet> baaaawwing is what people do on the internet
20:34:54 <Phantom_Hoover> Instead of *s it has... QUESTION MARKS
20:34:57 <CakeProphet> when they are butthurt
20:35:03 <CakeProphet> yes, these are technical terms.
20:35:04 <Phantom_Hoover> And bawwwing?
20:35:13 <oerjan> because it needs to work with unboxed values as well
20:35:45 <CakeProphet> ?? literally means "the type allowed as arguments to functions" which basically means "everything but unboxed tuples"
20:35:45 <lambdabot> literally means "the type allowed as arguments to functions" which basically means "everything but unboxed tuples"
20:35:49 <Phantom_Hoover> Boxed?
20:35:54 <CakeProphet> I think it's the only place ?? is used.
20:35:55 <oerjan> :k State#
20:35:56 <lambdabot> Not in scope: type constructor or class `State#'
20:37:01 <CakeProphet> ? is any type, ?? is anything but unboxed tuples (# or *), (#) is unboxed tuples, # is unboxed types, * is boxed types.
20:37:48 <CakeProphet> boxed as in "has pointers and stuff" or is there a more technical definition? :P
20:37:54 <oerjan> boxed types are implemented as uniformly sized pointers to values, so they can be moved around without knowing more precisely what type they are, important for polymorphisms
20:38:05 <oerjan> *-s
20:38:26 <CakeProphet> yes, oerjan's explanation sounds much better.
20:38:35 <Phantom_Hoover> Seems inelegantly low-level for Haskell.
20:38:45 <oerjan> boxed non-strict types in addition have the option that the pointer goes to a not yet evaluated thunk
20:38:56 <CakeProphet> Phantom_Hoover: I believe it's a GHC thing
20:39:11 <CakeProphet> but, uh, it's useful to be able to deal with low-level details when you need to.
20:39:14 <oerjan> iirc all non-strict types are boxed, but there are exceptions the other way
20:39:15 <elliott> Phantom_Hoover: You would prefer it be slow?
20:40:01 <oerjan> Phantom_Hoover: all the kinds other than * are basically in order for ghc to be able to do things low-level for efficiency
20:40:14 <elliott> apart from Nat :)
20:40:21 <Lymee> :k Nat
20:40:21 <elliott> that's for Oleg
20:40:22 <lambdabot> Not in scope: type constructor or class `Nat'
20:40:25 * Lymee ?
20:40:49 <oerjan> Lymee: Nat will be a kind, and is just being added so i hear (above)
20:41:10 <oerjan> presumably the kind for types of the form 0, 1, 2 ...
20:41:28 <oerjan> which will be useful for type system calculations
20:41:39 <oerjan> :k 1
20:41:40 <lambdabot> *
20:41:50 <oerjan> :k 0
20:41:51 <lambdabot> Only unit numeric type pattern is valid
20:41:56 <oerjan> huh
20:41:57 <oerjan> :k 2
20:41:58 <lambdabot> Only unit numeric type pattern is valid
20:42:13 <Phantom_Hoover> Nat is a kind?
20:42:30 <oerjan> Phantom_Hoover: that's what this discussion started with, it will be
20:42:38 <elliott> <oerjan> Lymee: Nat will be a kind, and is just being added so i hear (above)
20:42:38 <Phantom_Hoover> How does that work?
20:42:40 <elliott> <Phantom_Hoover> Nat is a kind?
20:42:47 <elliott> Phantom_Hoover is practicing his Vorpal
20:43:08 <Phantom_Hoover> *practising
20:43:13 <ais523> oerjan: is Haskell getting dependent types, then?
20:43:17 <Phantom_Hoover> ais523, no.
20:43:28 <ais523> that's the most obvious reason to put a natural number in a type
20:43:31 <elliott> no it isn't
20:43:40 <ais523> hmm, what more obvious reasons are there?
20:43:41 <Phantom_Hoover> elliott, I was just asking circuitously how it works.
20:43:44 <elliott> class Vec n a where Nil :: Vec 0 a; Cons :: a -> Vec n a -> Vec (S n) a
20:43:46 <elliott> erm
20:43:47 <elliott> data Vec n a where Nil :: Vec 0 a; Cons :: a -> Vec n a -> Vec (S n) a
20:43:49 <elliott> not class
20:43:52 <Phantom_Hoover> Is it just the 0 | S n one?
20:43:55 <elliott> you can do this already obviously, s/0/Z/ and data Z; data S n
20:44:07 <elliott> GHC is just adding special support for it to make it less terrible to use
20:44:17 <ais523> hmm, I'd think of that like a primitive sort of dependent typing
20:44:27 <elliott> so would many people who have no idea what dependent typing really is :)
20:44:30 <Phantom_Hoover> ais523, it's not
20:44:33 <elliott> that's not dependent typing, that's literally just typing
20:44:44 <elliott> I suppose you could see all types as a kind of dependent typing but that's silly
20:44:50 <ais523> I suppose so
20:44:59 <Phantom_Hoover> Dependent typing requires they be arbitrary values.
20:45:04 <elliott> Phantom_Hoover: no
20:45:11 <elliott> Omegamega lets you do that with any type and is not dependent.
20:45:16 <ais523> it requires operations other than just "successor", I imagine
20:45:19 <ais523> but probably other things too
20:45:21 <elliott> Dependent typing is when values break through the :: barrier, that's it.
20:45:42 <Phantom_Hoover> That's what I meant.
20:45:48 <elliott> Well, right.
20:46:19 <oerjan> :k Maybe 1
20:46:20 <lambdabot> *
20:46:35 <oerjan> :t undefined :: 1
20:46:36 <lambdabot> Unit
20:46:41 <Phantom_Hoover> Is 1 the same as ()?
20:46:44 <oerjan> huh
20:47:00 <oerjan> :t undefined :: Unit
20:47:01 <lambdabot> Unit
20:47:02 <Phantom_Hoover> :t Identity
20:47:02 <elliott> Phantom_Hoover: why would it be?
20:47:03 <lambdabot> forall a. a -> Identity a
20:47:05 <oerjan> :t undefined :: ()
20:47:05 <lambdabot> ()
20:47:11 <elliott> :t undefined :: 99
20:47:12 <lambdabot> Only unit numeric type pattern is valid
20:47:14 <oerjan> elliott: unit is the name of () in ML
20:47:17 <Phantom_Hoover> elliott, because what is it, then?
20:47:23 <elliott> oh right, that unit numeric type pattern stuff
20:47:24 <elliott> that makes no sense
20:47:25 <Phantom_Hoover> 1 suggests a type with one element.
20:47:36 <elliott> Phantom_Hoover: no it doesn't
20:47:40 <elliott> it does in type and set theory
20:47:41 <elliott> but not in Haskell
20:47:43 <Phantom_Hoover> elliott, yes, it does.
20:47:49 <elliott> no.
20:47:51 <Phantom_Hoover> It *isn't*, but it certainly suggests that.
20:47:59 <elliott> no it doesn't :P
20:48:13 <elliott> modulo _|_s, the obvious type-nat representation has one value per type.
20:48:13 <oerjan> > undefined :: 1
20:48:13 <lambdabot> No instance for (GHC.Show.Show GHC.Generics.Unit)
20:48:14 <lambdabot> arising from a use of ...
20:48:21 <oerjan> hm Generics
20:48:21 <elliott> hmm, I wonder how many it has taking _|_s into account
20:48:24 <Phantom_Hoover> Yes, this is an objectively measurable thing.
20:48:25 <elliott> data Z = Z, so _|_ and Z
20:48:27 <elliott> data S n = S n
20:48:37 <elliott> (S Z) has _|_, S _|_, S Z, so three
20:48:45 <elliott> S (S Z) has _|_, S _|_, S (S _|_), S (S Z)
20:48:51 <elliott> so it's n+two, I think
20:48:58 <Phantom_Hoover> 1 suggests — without prior knowledge — a type with a single element.
20:49:13 <Phantom_Hoover> This does not mean it *is* a type with a single element, just that it's a reasonable guess.
20:49:25 <oerjan> elliott: you don't need anything more than _|_ in those types do you?
20:49:36 <oerjan> could just as well be just data Z
20:49:45 <elliott> oerjan: no, but that's not valid haskell ninety-eight :P
20:49:46 <Phantom_Hoover> oerjan, I thought empty data declarations dodn't work.
20:49:51 <elliott> yes they do
20:49:55 <oerjan> Phantom_Hoover: it's an extension
20:49:56 <elliott> it's haskell twentyten
20:49:57 <elliott> no
20:49:59 <elliott> it's in the report.
20:50:05 <oerjan> right
20:50:11 <Phantom_Hoover> You just love picking people apart on minor details, don't you?
20:50:18 <elliott> oh my god stop whining
20:50:28 <elliott> the minor detail was you saying they "don't work", oerjan saying it's an extension, which is patently untrue, it is in the report
20:50:39 <elliott> stfu if you're going to whine to simple answers to your implicit question
20:50:49 <elliott> oerjan: you could do newtype Z = Z Z, newtype S n = S (S n) but that's a rather non-obvious representation
20:50:54 <oerjan> well there's a language flag for it >:)
20:51:08 <Phantom_Hoover> Well, if you're in that mood, I can't be bothered interacting with you at all.
20:51:28 <elliott> you're interacting with an IRC channel
20:51:51 <elliott> you may be unusually irritable but that isn't going to stop me correcting factual errors when I can
20:52:05 <elliott> oerjan: yeah, but there's a language flag for Haskell98 too :P
20:53:17 -!- ChanServ has set channel mode: +o oerjan.
20:53:32 -!- oerjan has set channel mode: -b *!*ubuntu@*.vodafone-net.de.
20:53:39 -!- oerjan has set channel mode: -o oerjan.
20:53:41 <Phantom_Hoover> noooooooooo
20:53:47 <elliott> today on "bad op decisions"...
20:54:11 <Phantom_Hoover> Now open, sweepstakes on how long until he realises.
20:54:22 <Phantom_Hoover> Prize is a kitten.
20:54:24 <ais523> who was banned there?
20:54:28 <oerjan> ais523: cheater
20:54:29 <elliott> cheater
20:54:32 <ais523> ah, and why?
20:54:37 <elliott> trolling
20:54:39 <oerjan> he said something particularly rude to elliott
20:54:40 <ais523> (I mean, what in particular)
20:54:49 <ais523> ("trolling" was a pretty good guess in general)
20:54:50 <oerjan> well, about
20:54:52 -!- Sgeo has joined.
20:54:57 <elliott> oerjan: out of curiosity, what makes you believe that cheater has reformed?
20:55:35 <oerjan> elliott: nothing
20:56:06 <elliott> oerjan: so, umm, is the intent really to let a troll back in so that they can continue trolling?
20:57:20 <fizzie> I can take partial (if not full) blame of the alleged "bad op decision" here, since I did in fact suggest making it a ban that does time out.
20:57:54 <fizzie> Back when the SHADY CABAL was having it's SECRET DISCUSSIONS behind CLOSED DOORS.
20:58:03 <zzo38> I think the kind for natural numbers should be called + not Nat
20:58:07 <elliott> oerjan: if you don't intend to reply to my question, it'd be good if you could say so, so that i could stop checking
20:58:42 <zzo38> While (#) should be renamed to ## to not get mixed up with the parentheses
20:58:46 <monqy> cheater respected member of the #esoteric community
20:58:51 <monqy> "welcome back"
20:59:22 <elliott> oerjan: or not, anything goes
21:00:31 <zzo38> Would the natural numbers in types proposal allow making something such as this (but not necessarily using this syntax): data T 0 = X Int; data T n = Y (n-1) (n-1);
21:00:57 <CakeProphet> 17:01 < CakeProphet> what would be the easiest way to construct an AST with pyparsing?
21:01:11 <monqy> CakeProphet: hi
21:01:20 <oerjan> elliott: imo he was not banned for trolling, but for being particularly impolite. your stfu comment above reminded me that if i'm going to keep him banned i am surely going to have to ban you too eventually just for fairness.
21:01:25 <CakeProphet> 17:01 < mythmon> CakeProphet: what's an AST?
21:01:31 <CakeProphet> #python
21:01:38 <monqy> #python
21:02:00 <oerjan> and fizzie also advised against that >:)
21:02:55 <elliott> oerjan: you really think an off-hand comment to someone being testy is comparable to unprovoked yelling at someone in another channel just for joining it and then complaining loudly in here about not "controlling your pets"?
21:04:09 <monqy> why does cheater hate elliott anyway
21:04:38 <elliott> because everyone else keeps it to themselves when they notice him trolling
21:04:50 <ais523> he doesn't always troll, just usually
21:05:07 <ais523> I think he's genuinely interested in esolangs and related things, but has too much of a habit of trolling to not troll for long enough to find out more
21:05:10 <elliott> he would have to be an amazingly stellar contributor to make up for the 90 percent
21:05:23 <elliott> maybe if he was cpressey the ten percent of the time
21:06:09 <fizzie> At the ban-time I did a "grep cheater" against the August 2011 log, and there was a surprisingly high percentage of more or less reasonable content.
21:07:08 <elliott> fizzie: after I try and point out his trolling behaviour he usually holds off for a few weeks for obvious reasons. I would have better data on this, but I was too busy doing other things the last time it happened, and I figured it was pointless doing so after he was banned.
21:10:42 <elliott> I used to think he was just particularly bad at trolling for the blatantness of it but actually it's pretty good because by the time anyone goes to investigate it there'll only be pseudo-productive contributions.
21:11:50 <zzo38> Is it possible to make Haskell cabal have multiple servers?
21:11:58 <elliott> oerjan: I take it you're not responding?
21:12:29 <oerjan> elliott: i seem to be lost in a web of meta-thoughts. at best.
21:13:06 <elliott> Fine
21:15:05 <fizzie> I have also written and subsequently discarded approximately seven replies by now, so best not expect much from this front either.
21:15:12 <oerjan> XD
21:15:46 <fizzie> These are some deep waters; larger-than-life questions; after all, it's a matter of an IRC channel.
21:16:09 <elliott> Well, if nothing else I've come to expect complete non-action from matters involving cheater, so it is not exactly a soul-crushing surprise.
21:17:07 <CakeProphet> weeee parser combinators.
21:17:21 <zzo38> How to modify the parser in haskell-src-exts? It looks like happy and I do not know how to add stuff?
21:17:25 <elliott> It's surprising enough that he got banned for doing something blatantly trolly even by his standards, so I guess expecting a miracle is unreasonable.
21:18:02 <elliott> I do wonder why cheater gets far more leeway as far as behaviour that doesn't incur op warnings goes than anyone else, though, considering he stirs shit on a regular basis.
21:18:06 <oerjan> zzo38: i don't know precisely but happy is iiuc a LALR(1) parser like yacc/bison?
21:18:06 <elliott> And that's all I'll say.
21:18:52 <zzo38> The file InternalParser.hs says things such as happyIn14 :: (PExp L) -> (HappyAbsSyn ) happyIn14 x = unsafeCoerce# x
21:18:58 <oerjan> um who else is getting op warnings :P
21:19:12 <zzo38> But I do not know how to do that
21:19:12 <fizzie> All I'll say is that you "got" made an equally discarded eight, ninth and tenth reply with that.
21:19:21 <ais523> oerjan: is that when ops are warned about something?
21:19:24 <ais523> or when people are warned about ops?
21:19:32 <oerjan> ais523: ...no.
21:20:17 * CakeProphet tries to be polite most of them, and realizes that he has occasionally failed to do this.
21:20:21 <elliott> fizzie: It would be nice if I could get one undiscarded reply so that I at least have some sort of idea of the logic behind this. oerjan: Very few people, but very few people do the kinds of things cheater does.
21:20:37 <monqy> am i polite? sometimes maybe
21:20:50 <Gregor> Is there a lossless compressed 64-bit floating point audio format?
21:21:02 <Gregor> Other than .<whatever>.{gz,bz2,xz} :P
21:21:12 <CakeProphet> monqy: yes you are very polite. You even greet me!
21:21:19 <zzo38> FLAC is lossless compressed audio, but I do not know about floating point or 64 bits I don't know
21:21:31 <Gregor> zzo38: No float.
21:21:33 <fizzie> elliott: If you insist, but it's going to be a pretty low-quality reply, otherwise I wouldn't keep discarding them. A moment and I'll combine a few.
21:21:44 <monqy> me greeting people may have many possible meanings depending on context
21:21:56 <CakeProphet> c....context?
21:21:58 <zzo38> Why do you want it with floating point?
21:22:02 <oerjan> zzo38: oh probably that file is generated _by_ happy, and the real source file is somewhere else?
21:22:02 * CakeProphet scratches his head.
21:22:20 <monqy> irc isnt a programming language........no need to be so elegant
21:22:29 <elliott> fizzie: It may surprise you, but I'm not exactly expecting a highly-convincing reply of amazing logical quality, and not for reasons relating to yourself.
21:22:36 <CakeProphet> monqy doesn't know about irp, obviously.
21:22:57 <CakeProphet> Dear #esoteric, pease provide documentation for Internet Relay Programming.
21:23:28 <oerjan> http://www.esolangs.org/wiki/IRP
21:23:31 <CakeProphet> (irp uses a similar system to Intercal, where you must be polite to the interpreter/compiler)
21:23:40 <CakeProphet> otherwise it will just yell at you.
21:24:04 <oerjan> food ->
21:24:24 <CakeProphet> food -> OerjanState?
21:24:37 <CakeProphet> no, food -> OerjanState -> OerjanState
21:24:41 <zzo38> oerjan: The identification at the top says "Language.Haskell.Exts.Annotated.Parser" (although this module is actually called "Language.Haskell.Exts.InternalParser"), and there is no such file as far as I can tell the module says
21:25:19 <ais523> food -> OerjanState ()
21:25:52 <elliott> food -> cmd
21:25:53 <CakeProphet> pyparsing is a pretty good library, though the documentation could be somewhat better, and it's all in one massive file
21:25:55 <elliott> did i get your anguage right ais523 :(
21:26:06 <CakeProphet> so it literally takes like 2 minutes of holding page down to get to the bottom.
21:26:10 <ais523> elliott: I don't get it
21:26:17 <ais523> oh, ICA?
21:26:18 <elliott> ais523: I thought cmd and exp and bit and a....heplp
21:26:20 <zzo38> What is anguage?
21:26:27 <elliott> zzo38: i'm not sure
21:26:43 <ais523> I've actually forgotten what the abbreviation for "command" is, but cmd seems plausible
21:27:01 <ais523> I've been using exp$0 recently, as it's how the compiler treats it internally ("0-bit integer with possible side effects")
21:27:14 <fizzie> Here goes nothing. My timed-ban quasi-recommendation was possibly a two-pronged thing. Firstly, I have really not progressed much in my cheater studies, so I went with that cursory log-inspection and a lack of any specific firm opinion. Secondly, I advocate the TCP exponential backoff algorithm for channel ban times; it achieves in-practice indefinite bans in a finite number of iterations, yet theoretically never gives up hope. Anyhow, "rebanning" has a lower thr
21:27:37 <zzo38> Is there a version of haskell-src-exts that is using Parsec instead?
21:27:40 <elliott> fizzie: "has a lower th"
21:27:45 <ais523> most forums use exponential backoff
21:27:50 <ais523> elliott: it's "has a lower thr" for me
21:27:54 <fizzie> -- threshold than "banning". Maybe.
21:27:56 <ais523> presumably, as my nick is one character shorter than yours
21:28:18 <ais523> or something to do with the length of the names of the servers we're connected to
21:28:29 <fizzie> ais523: Server names, maybe; that's in the :prefix.
21:28:59 <fizzie> Does Freenode still do that "add a registered/unregistered indicator to all messages if the client asks for it" thing, or was that on the previous server?
21:29:00 <elliott> fizzie: Very well, but considering that cheater was successfully regularly bothersome and personally insulting for the better part of a year before getting banned, and even then only because he did two things in quick succession (bothered me in the channel and then complained here about it), I'll mark down ten years or so ahead on my calendar.
21:29:22 <ais523> "barjavel" vs. "sendak" is two char's difference
21:31:52 <ais523> elliott: he seems to grate on you much more than on other people; I'm not sure if that's because he's trolling you in particular, or some sort of huge personality mismatch
21:32:23 <elliott> ais523: There are others who he grates on in similar amounts, they just aren't public about it.
21:32:38 <elliott> Considering the kind of shit he gives me, I can't blame them.
21:33:04 <Gregor> Man, I'm ashamed that floating point saved me here.
21:33:09 <Gregor> FLOATING POINT IS ALWAYS WRONG
21:33:28 <CakeProphet> parser combinators in Python are pretty annoying without that lazy evaluation stuff.
21:34:19 <CakeProphet> to implmenet recursion in this library, you have to assign the recursive parser as a Forward object
21:34:26 <CakeProphet> then you say recursiveTerm << expr
21:34:28 <CakeProphet> later
21:34:44 <CakeProphet> once you've already used it
21:57:08 <oerjan> zzo38: http://code.haskell.org/haskell-src-exts/src/Language/Haskell/Exts/InternalParser.ly may be the happy source file
21:57:43 <zzo38> oerjan: Yes I found that file already
22:04:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:10:24 <CakeProphet> what is mac's line ending again?
22:10:32 <CakeProphet> just \r?
22:10:45 <elliott> \n.
22:10:51 <CakeProphet> oh, good.
22:10:51 <elliott> OS X is Unix.
22:11:12 <elliott> It was \r in the classic days which have been gone for ten years.
22:11:17 <CakeProphet> I thought they (Windows,Mac,Unix) were each different for some reason.
22:11:19 <CakeProphet> ah okay.
22:11:26 <CakeProphet> that must have been why I thought that.
22:11:33 <Deewiant> Windows = Mac + Unix
22:11:34 <elliott> monqy: Hey learn how to play DF.
22:11:40 <monqy> elliott: I forgot about that
22:11:41 <elliott> monqy: We're going to invade Hell.
22:11:46 <elliott> monqy: Well unforget.
22:11:48 <CakeProphet> elliott: I was actually thinking about doing just that.
22:11:58 <ais523> elliott: it will not end well :)
22:12:00 <elliott> CakeProphet: sorry you are not a cool enough kid to invade hell.
22:12:07 -!- zzo38 has left.
22:12:08 <elliott> ais523: Hey we're actually planning this. :p
22:12:16 <CakeProphet> dude I have a Dave record shirt. I am beyond cool.
22:12:20 <monqy> I guess I will need something to do now that I've finished my monster
22:12:21 <ais523> elliott: it will /still/ not end well
22:12:23 <CakeProphet> all I need now are some shades.
22:12:24 <elliott> ais523: I think we can do it, modulo about two decades of preparation.
22:12:31 <elliott> ais523: Weeell, we could trivially do it, with cave-ins.
22:12:33 <elliott> But that's wimpy.
22:12:36 <ais523> in-game decades, or real-life decades?
22:12:38 <elliott> In-game.
22:12:50 <CakeProphet> endline = Literal("\r\n") | Literal("\n")
22:12:51 <CakeProphet> wheeeeee
22:12:59 <elliott> ais523: The plan is to deal with the first swarm of demons, then build a wall around the edges of the hell in our map (so that demons spawning can't get in), and then put our trade depot in there.
22:13:20 <ais523> what would putting a trade depot in there do?
22:13:26 <ais523> also, can demons get through walls?
22:13:34 <elliott> ais523: Force traders to descend into the unfathomable depths of hell just to trade.
22:13:40 <elliott> We really hate traders.
22:13:41 <CakeProphet> this game sounds amazing.
22:13:42 <elliott> Mostly elves.
22:13:49 <elliott> ais523: No, they can't.
22:13:49 <ais523> elliott: how could they get there, though?
22:13:59 <ais523> if the demons can't get out, surely the traders can't get in?
22:14:01 <elliott> ais523: Umm, because we'll have broken open the adamantine shaft to hell?
22:14:07 <CakeProphet> expr << operator | stringLiteral | variable | stackIndex | command
22:14:11 <elliott> ais523: They only spawn at the edges of the hell map.
22:14:17 <CakeProphet> does this look like a sane alternative ordering for an expression?
22:14:21 <elliott> Phantom_Hoover knows more than me about hell. Maybe.
22:14:28 <elliott> But I'm fairly sure that they won't just spawn ANYWHERE.
22:14:28 <ais523> elliott: oh, so you're going to lock the demons to the edge of hell
22:14:32 <elliott> That would be ridiculous.
22:14:38 <ais523> and put a trading point in the centre, where the traders can actually get to
22:14:44 <elliott> ais523: Right.
22:14:54 <elliott> ais523: We'll have some sort of way to kill the demons that congregate around the edges every now and then.
22:15:06 <elliott> ais523: The hard part will be building the wall, because masons are going to have to work there while demons are spawning.
22:15:12 <elliott> So it's going to require heavy military guard.
22:15:28 <elliott> <CakeProphet> this game sounds amazing.
22:15:30 <elliott> CakeProphet: It is.
22:15:49 <ais523> CakeProphet: indeed, it's awesome
22:15:59 <ais523> (disclaimer: I don't actually play it, just listen to other people play it)
22:16:12 <CakeProphet> I'm not really sure how pyparsing's operator precedence thing work, especially recursively
22:16:12 <quintopia> how long do you think it will take before fortresscraft is as awesome?
22:16:17 <CakeProphet> but... I guess I'll find out.
22:17:20 <elliott> quintopia: you are kidding, right?
22:17:55 <quintopia> elliott: the author intends to make it more dwarf fortressy in the long run. it was original inspired by DF after all.
22:18:34 <elliott> FortressCraft is the one where they hired someone known solely for being a huge asshole on the internet to be their "PR" and call anyone who dared suggest it might be nearly identical to Minecraft without any interesting innovation various homophobic crap, right?
22:19:40 <quintopia> how would i know? it is true that it is a similar game to minecraft (on purpose) but it does have interesting innovation and will likely have more so in the future.
22:19:47 <elliott> Frankly though, I doubt anyone who isn't Toady One could make a game that tries to do the same thing as DF and succeeds with such aplomb who (a) isn't Toady One and (b) hasn't spent at least ten years on it.
22:20:14 <elliott> quintopia: I dunno, generally when people bring up random games out of the blue and suggest that they're gonna be totally as cool as DF they tend to know at least something about them.
22:20:28 <quintopia> i know something about the game
22:20:35 <quintopia> i don't know anything about the politics
22:21:14 <CakeProphet> program = ZeroOrMore(statement) + endString
22:21:18 <CakeProphet> weeeeeeee, combinators
22:21:27 <quintopia> but i doubt they are going to try to do the same thing as DF. just do lots of things inspired by it.
22:21:35 <ais523> elliott: most games aren't totally as cool as DF
22:21:48 <elliott> quintopia: Considering it's a first-person game, no, no they're not.
22:21:59 <CakeProphet> which is more readable: top-down or bottom-up?
22:22:05 <CakeProphet> for arranging the parser bits.
22:22:06 <ais523> (I've been playing more humble bundle games, but haven't found anything particularly inspiring in the latest batch; also, one of the .debs appears to have a dependency on an nvidia library, which is suspect as I don't have an nvidia graphics card)
22:22:20 <elliott> ais523: probably CUDA
22:22:33 <CakeProphet> well, nevermind. this is Python. I have to write it bottom-up
22:22:36 <quintopia> elliott: but they are currently working on independent commandable "slave" agents, so you can expect to be able to tell them to go craft and build stuff for you, DF style
22:22:43 <ais523> elliott: it wasn't, and besides CUDA only works on nvidia cards
22:23:28 <elliott> ais523: yes it does; your point?
22:23:47 <ais523> that I'd be very surprised if a computer game was specific to a particular brand of graphics card
22:23:50 <oerjan> CakeProphet: um parser tokens are usually mutually recursive?
22:23:54 <elliott> quintopia: that's a really shallow idea of what DF is
22:23:59 <elliott> ais523: fair enough
22:24:10 <elliott> quintopia: go play the real thing before comparing anything to it
22:24:15 <CakeProphet> oerjan: yes, there's a workaround for that in this library.
22:24:36 <ais523> even elliottcraft (my version thereof) will have agents that go off and build stuff for you, but it's nothing like DF
22:24:41 <Phantom_Hoover> elliott, isn't that basically elliottcraft in a nutshell?
22:24:43 <quintopia> elliott: it is a thing that DF has in it. therefore, incorporating the same idea is doing something inspired by DF.
22:24:45 <CakeProphet> oerjan: or are you saying there is no such thing as "bottom-up"?
22:24:48 <ais523> rather, the skill is in arranging them so that they do, puzzle-game-style
22:25:00 <elliott> quintopia: DF also has: pixels
22:25:01 <quintopia> doesn't have to be anything like DF to be inspired by it
22:25:07 <Gregor> Today I learned from quintopia: DF is slave labor
22:25:09 <elliott> Doom has pixels, so I guess it's inspired by DF
22:25:10 <quintopia> or to be as awesome
22:25:21 <elliott> Gregor: Yes, yes it is
22:25:25 <CakeProphet> needs moar sci-fi text-based games.
22:25:35 <oerjan> CakeProphet: well that too, but mostly your comment about python
22:25:39 <elliott> Gregor: Except that the slaves are idiots, terrible at following orders, ignore them half the time, and you still have to keep them happy
22:26:00 <CakeProphet> oerjan: oh right, yeah there's a fix for that. Basically there's a Forward object that acts as a placeholder, and then you fill in the logic later.
22:26:05 <Gregor> Today I learned: elliott is racist.
22:26:14 <elliott> Dorf is a species not a race dammit.
22:26:21 <quintopia> elliott: it is called fortresscraft because it is inspired by DF. therefore, you can expect that anywhere it contains DF-like ideas, it is because DF did it first.
22:26:25 <ais523> CakeProphet: as in text adventure, or as in tty-graphics roguelike?
22:26:29 <elliott> (I like to believe "dorf" is a horrible slur used only by us uncaring human overseers.)
22:26:34 <CakeProphet> ais523: either really.
22:26:34 <quintopia> (afaik, Doom was not named after DF)
22:26:39 <elliott> quintopia: lol
22:26:43 <Phantom_Hoover> elliott, well, they do what they're told — what am I saying, I spent ten minutes trying to get them to leave all the fortress' crap in a particular place.
22:26:43 <Gregor> Doom Fortress
22:26:53 <CakeProphet> ais523: but yes rogue-like would be nice.
22:26:53 <Phantom_Hoover> Gregor, that's redundant.
22:27:01 <Phantom_Hoover> If it's not a doom fortress, you're doing something wrong.
22:27:16 <CakeProphet> ais523: I use the term MUD but that refers to the online version, and has a more limited interface due to being telnet-based.
22:27:26 <Phantom_Hoover> There needs to be at least one crime against the laws of god and man.
22:27:26 <CakeProphet> *telnet-based with no fucking standardized anything.
22:27:45 <ais523> CakeProphet: have you seen ZAPM? it's a scifi roguelike that isn't horrible (although isn't as good as most of the better known roguelikes)
22:27:49 <quintopia> Phantom_Hoover: murder is one, no?
22:27:50 <elliott> Gregor: IMO the merging of Adventure and Fortress mode is inevitable in the long-term; that would lead to awesome things like storming a fortress all by yourself
22:27:54 <elliott> and then taking it over
22:28:00 <elliott> That enough like Doom for you?
22:28:03 <CakeProphet> ais523: sure haven't.
22:28:18 <CakeProphet> I would like DF-complexity-with-sci-fi-setting
22:28:21 <ais523> I'm, umm, not sure where you can get it, but presumably search engines know
22:28:26 <ais523> it's far from DF complexity, unfortunately
22:28:38 <ais523> but then, roguelikes tend to be single-player, which cuts down the complexity a lot
22:28:42 <elliott> Phantom_Hoover: also how awesome would it be if you had to climb up the pecking order to become fortress overseer.
22:28:55 <elliott> ais523: DF Adventure mode would tend to disagree
22:28:56 <Gregor> elliott: Enough like Doom? Sounds like Doom just ripped off DF.
22:29:01 <elliott> ais523: actually, Fortress mode is more like 0-player
22:29:08 <ais523> elliott: is the adventure mode as complex as fortress mode?
22:29:13 <ais523> and, umm, I mean single controllable actor
22:29:36 <Lymee> You could have only one directly controllable actor.
22:29:36 <elliott> ais523: it's set in the exact same world with the exact same monsters and algorithms and the like, it just only passes time explicitly, like single-stepping in fortress mode, and you have a restricted view radius, making it a Roguelike
22:29:46 <elliott> ais523: there isn't quite as much to do right now
22:29:52 <ais523> elliott: and how do you do combat, etc?
22:29:54 <elliott> ais523: but the actual interactions involved as certainly as complex, because they're the same
22:29:58 <elliott> ais523: well, by combatting :)
22:30:07 <Phantom_Hoover> elliott, BtW, it's not too hard to make your fortress a goblin stronghold.
22:30:08 <elliott> http://df.magmawiki.com/index.php/DF2010:Adventurer_mode#Combat
22:30:09 <ais523> I mean, do you order a whole load of dwarves to become soldiers and hope they fight?
22:30:15 <elliott> ais523: it's _Adventurer_ mode
22:30:16 <Phantom_Hoover> Just leave them in cages and abandon.
22:30:19 <elliott> ais523: that means you play it yourself
22:30:25 <ais523> elliott: ah, that's the fundamental difference I was getting at
22:30:32 <ais523> and I thought that was true, but then you implied I was wrong
22:30:44 <elliott> ais523: right, but, I mean, a swarm of goblin enemies will act just the same as in fortress mode
22:31:00 <oerjan> CakeProphet: hm i think if you have mutual recursion, you can still define bottom up as "everything except possibly the top (last) element is used by something later", and vice versa for top down
22:31:51 <CakeProphet> oerjan: yes, it makes a far amount of intuitive sense that there is still a bottom and top to the arrangement of parsers.
22:31:57 <CakeProphet> even with mutual recursion.
22:32:04 <elliott> ais523: still, I'd say that Adventurer mode is easily the most complex roguelike in existence, by orders of magnitude as far as world complexity goes
22:32:22 <elliott> ais523: it's probably not the most fun, though, at least not yet, but it's been developed more recently
22:32:36 <elliott> I don't think there's any way to win; most people just seem to try and genocide everything else
22:32:46 <ais523> elliott: it's more player-visible complexity I'm talking about
22:33:01 <elliott> ais523: I'd say the complexity of the DF world is obvious from a player level
22:33:02 <ais523> the rest of the world existing is pointless if you don't interact with it
22:33:14 <elliott> you can walk around the whole thing, so...
22:33:44 <elliott> FAQ
22:33:44 <elliott> [edit]How do I get past NPCs which are in my way?
22:33:44 <elliott> Press s to sit, then move to crawl between their legs. Once you're done press s to stand again.
22:33:45 <elliott> DF, I...
22:34:03 <quintopia> lul
22:34:27 -!- FireFly has quit (Quit: FireFly).
22:34:27 <monqy> that's amazing
22:34:39 <Gregor> And what if that NBC is a blob monster?
22:34:49 <quintopia> blobs have legs too!
22:35:00 <CakeProphet> I would assume it would already be attacking you
22:35:05 <CakeProphet> in which case sitting is probably not a good idea.
22:35:14 <Gregor> What if it's a friendly blob monster?
22:35:33 <quintopia> or maybe in that case "press s to turn sideways, move to squeeze past it gelatinous mass, then when you're done, press s to turn straight again"
22:36:07 <ais523> what drawbacks are there to going around in s-mode all the time
22:36:13 <elliott> ais523: probably tons
22:36:20 <ais523> indeed, I imagine so too
22:36:22 <ais523> which is why I asked
22:36:30 <elliott> ais523: I imagine it's slower to move around, your combat is probably incredibly impaired... I don't actually know though, I imagine you'd have to try it
22:36:34 <quintopia> you wear out your knees quicker
22:36:49 -!- cheater has joined.
22:36:56 <elliott> ais523: It's unlikely anybody knows all the disadvantages, considering that DF is long past the point where most of its interactions surprise Toady
22:37:33 <quintopia> totally emergent
22:39:44 <CakeProphet> source code plz?
22:40:04 <elliott> CakeProphet: you can look at and modify the raws; the engine is flexible enough that that lets you make all kinds of behaviour
22:40:09 <elliott> the source itself is closed, though
22:40:28 <CakeProphet> I am sad face. :(
22:40:37 <ais523> closed-source games are less fun, because messing with the source is part of the fun
22:40:47 <elliott> ais523: CakeProphet: Raws are basically a fairly-ugly DSL for describing creatures, objects, and interactions; the majority of the game is defined in them
22:40:52 <elliott> So it's "mostly" open
22:41:02 <elliott> people have done all kinds of stuff only by editing the raws
22:41:13 <ais523> but not, say, changed the size of the arena in arena mode
22:41:22 <elliott> Arena mode isn't much of a game :-P
22:45:37 <CakeProphet> elliott: Haskell text game?
22:45:52 <CakeProphet> is that a thing, we could do?
22:45:56 <elliott> Define "we".
22:46:11 <CakeProphet> uh, willing members of #esoteric
22:46:19 <CakeProphet> probably meeting some kind of Elliott Inclusion Principle
22:47:01 <CakeProphet> the CakeProphet Inclusion Pricinple is const True
22:47:16 <monqy> monqy doesn't have a well-defined inclusion principle
22:47:20 <monqy> yet
22:47:35 <CakeProphet> const undefined is probably going to be problematic.
22:47:47 <elliott> a haskell text adventure sounds no more interesting than any other text adventure project
22:47:57 <CakeProphet> perhaps we could have an Elliott-CakeProphet Meta-Inclusion Principle
22:48:03 <CakeProphet> to decide who gets inclusion principles.
22:48:04 <elliott> haskell does not really have much to offer apart from the ease in defining a relevant well-typed DSL, but there are already perfectly good declarative languages for this
22:48:35 <CakeProphet> elliott: what if we used STM to make everything concurrent?
22:49:09 <elliott> ...
22:49:20 <CakeProphet> THINK ABOUT IT
22:49:46 <CakeProphet> obviously active beings would like... have some notion of reaction time. so everything isn't instantaneous.
22:50:08 <elliott> sounds like DF. except that stm is really irrelevant
22:50:38 <CakeProphet> concurrency is relevant though, with STM being one of the better means of implementation out there.
22:50:52 <elliott> No, it's not really relevant at all.
22:51:03 <CakeProphet> okay fine it's not.
22:51:07 <elliott> There is no shared state involved, it's more of a CA-style world interaction scenario.
22:51:22 <CakeProphet> absolutely no shared state? none? are you sure?
22:54:25 <CakeProphet> if every entity is operating in tandem then there should be a way to regulate simultaneous interactions, no?
22:54:28 * Phantom_Hoover → sleep
22:54:41 -!- Phantom_Hoover has quit (Quit: Leaving).
22:54:42 <ais523> anyone here know French? is http://esolangs.org/wiki/User:JarvisCo spam?
22:54:58 <elliott> Google knows French
22:54:59 <ais523> I'm guessing yes
22:55:04 <elliott> I realize I'm About rapidly but quickly growing tired of unsolicited e-mails I get every day find regarding the new enhancement pill, cream or product unit. But it is limited for this kind of anonymous emails. Currently I have to watch out for you to enjoy or even tune in to hear those same hours on major TV shows as well as with the radio. Just what's more we should be generating cash income, or even that they would not still be on the air for w
22:55:04 <elliott> eeks just after day, month after month.
22:55:13 <elliott> maybe Google is trying to frame poor ol' JarvisCo
22:55:22 <ais523> that's good enough for me
22:55:44 <CakeProphet> !perl print qw(yes no)[int(rand(2))]
22:55:46 <EgoBot> no
22:56:01 <CakeProphet> perl disagrees, though I'm not sure I trust the decision making process.
22:56:55 <ais523> !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967296U/2)]);}
22:57:02 <ais523> err
22:57:05 <ais523> !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967296U/2)]);}
22:57:07 <ais523> double err
22:57:10 <ais523> !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967295U/2)]);}
22:57:26 <CakeProphet> throw in a "return 0" for good measure.
22:57:28 <ais523> the Perl is easier :)
22:57:31 <ais523> !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967295U/2)]); return 0;}
22:57:50 <ais523> CakeProphet: not needed in C99; although admittedly declarations for srand and time would be, and a declaration for printf is needed anyway but I know it works in gcc even without one
22:57:54 <elliott> surely rand()%2 is fair?
22:57:57 <elliott> if the distribution is uniform
22:58:08 <CakeProphet> ais523: do you need an include for any of that?
22:58:10 <ais523> elliott: historical UNIX rand used to alternate odd and even
22:58:18 <elliott> heh
22:58:28 <Deewiant> That wasn't very random then now was it
22:58:54 -!- Sgeo_ has joined.
22:59:38 <CakeProphet> I wish every language had qw
22:59:44 <CakeProphet> and q
22:59:56 <CakeProphet> in some way or another.
23:00:04 <CakeProphet> not necessarily identical syntax.
23:00:12 <CakeProphet> but still convenient syntax nonetheless.
23:00:21 <elliott> haskell does
23:00:24 -!- Sgeo has quit (Ping timeout: 245 seconds).
23:00:29 <ais523> what's haskell's syntax for qw?
23:00:34 <CakeProphet> elliott: via TH you mean?
23:00:44 <elliott> http://hackage.haskell.org/package/string-qq, http://hackage.haskell.org/package/string-quote, http://hackage.haskell.org/package/interpolatedstring-perl6, http://hackage.haskell.org/package/interpolatedstring-qq
23:00:54 <CakeProphet> oh my/
23:00:55 <elliott> there are more, but they're more templating languages than simple perl-style ""
23:01:19 <CakeProphet> nifty
23:01:29 <CakeProphet> no qw though.
23:01:38 <CakeProphet> unless that's part of the packages somewhere.
23:01:50 <monqy> what is qw
23:01:54 <CakeProphet> qw(a b c) == ("a", "b", "C")
23:01:59 <monqy> oh that would be easy to make
23:02:02 <monqy> like
23:02:03 <monqy> real easy
23:02:05 <monqy> the easiest
23:02:07 <CakeProphet> yes.
23:02:11 <oerjan> > words"a b c"
23:02:11 <lambdabot> ["a","b","c"]
23:02:17 <monqy> with quasiqoters
23:02:28 <CakeProphet> also..
23:02:34 <CakeProphet> qw#a b c# == ("a", "b", "C")
23:02:38 <elliott> > let qw=words in qw[q|...|]
23:02:39 <lambdabot> A section must be enclosed in parentheses thus: (q |...|)Not in scope: `|.....
23:02:48 <CakeProphet> though it's not quite as useful in qw as it is in q and qq
23:02:48 <elliott> CakeProphet: "C"?
23:02:59 <CakeProphet> oh *c
23:03:10 <CakeProphet> yeah it randomly uppercases the last element of the list.
23:03:21 <elliott> that's perl for you
23:04:37 <CakeProphet> !perl my $test = "c"; print qw(a b $test)
23:04:38 <EgoBot> ab$test
23:04:43 <CakeProphet> no interpolation apparently
23:04:54 <elliott> qqww
23:04:57 <CakeProphet> !perl my $test = "c"; print qqw(a b $test)
23:04:57 <EgoBot> Can't locate object method "a" via package "b" (perhaps you forgot to load "b"?) at /tmp/input.23546 line 1.
23:05:07 <CakeProphet> heh.
23:05:30 <monqy> ok i finally got so far into df to pick a site I hope it is a good site
23:05:46 <ais523> I suspect qqw exists in Perl 6
23:05:55 <ais523> although it'd probably be written qq:w or something like that
23:05:56 <CakeProphet> !perl my $test = "c"; print (qw(a b),$test)
23:05:57 <EgoBot> abc
23:06:07 <CakeProphet> that's TWO whole extra characters.
23:06:08 <elliott> monqy: um read the quickstart
23:06:10 <ais523> oh, ofc, it's written «»
23:06:11 <CakeProphet> come on perl.
23:06:14 <monqy> elliott: yes i am
23:06:14 <elliott> monqy: you want to start somewhere pretty easy for your first fort
23:06:16 <elliott> monqy: oh okay
23:06:18 <ais523> (with <> being a perl5-style qw)
23:06:28 <monqy> i spent a lot of time and effort trying to find somewhere easy :(
23:06:46 <oerjan> !perl my $test = "c"; print qw"a b $test"
23:06:46 <EgoBot> ab$test
23:06:52 <oerjan> bah
23:07:01 <elliott> monqy: you'll probably think your fortress is going to go perfectly then die of something really stupid but it is okay it gETS BETER....
23:07:02 <CakeProphet> oerjan: so much for "do what I mean" :P
23:07:06 <oerjan> !perl my $test = "c"; print qqww"a b $test"
23:07:07 <elliott> (after a few...hundred tries....)
23:07:21 <elliott> http://wtfjs.com/2011/06/27/min-less-max ;; oh come on, this is desirable behaviour, I'm annoyed that Scheme doesn't mandate this
23:08:34 <CakeProphet> !perl my $test = "c"; print qw(a b),$test #lulz
23:08:35 <EgoBot> abc
23:09:02 <CakeProphet> !perl print qqqsupq
23:09:19 <elliott> !perl perl print qqxhix
23:09:20 <EgoBot> syntax error at /tmp/input.31635 line 1, near "perl print"
23:09:25 <monqy> oh no it is all snowy i thought it said it was temperate what have i done
23:09:29 <elliott> !perl print qqxhi\nx
23:09:33 <elliott> monqy: screenshot
23:09:41 <monqy> of what
23:09:46 <elliott> monqy: df
23:09:52 <CakeProphet> elliott: I guess alphas are not allowed
23:09:58 <CakeProphet> probably because that would be a terrible choice
23:10:09 <elliott> monqy: also -minecraft is our main df discussion hub i can try and help you in there to avoid annoying CakeProphet and his perl fun
23:10:23 <CakeProphet> oh yeah I'm furious.
23:10:42 <CakeProphet> topic today: Perl fun
23:10:46 <CakeProphet> all other topics not allowed.
23:11:19 <CakeProphet> actually I might try DF myself after I get done with this parser business.
23:11:34 <CakeProphet> which requires that I stop getting distracted by perl..
23:11:50 <oerjan> CakeProphet: istr that '' as delimiters turns off interpolation and thought maybe "" turned it on
23:12:00 <oerjan> but nah
23:12:05 <CakeProphet> yeah the '' is the only special case.
23:12:18 <CakeProphet> unless you count ()[]{} being a special case.
23:12:33 <ais523> and <> and «»
23:12:44 <ais523> together with all the other bracketlike characters in Unicode
23:13:05 <CakeProphet> I've never tried any of those so I wasn't sure if they worked like that or not
23:13:44 <CakeProphet> also, does sed or awk have those quoting constructs?
23:14:05 * CakeProphet is wondering where they originated.
23:22:36 <oerjan> " vs. ' is shell, of course...
23:24:14 <ais523> and «» vs <> follows the same pattern
23:26:11 <CakeProphet> but what about q, qq, qw, and such
23:26:30 <CakeProphet> does awk and sed allow arbitrary delimeters for m/.../ and s/.../.../?
23:27:16 <elliott> yes
23:27:18 <elliott> well, near-arbitrary
23:27:52 <oerjan> `run echo test | sed 's=e=oa='
23:27:55 <HackEgo> toast
23:30:37 <CakeProphet> `run echo test | sed 'q/.../'
23:30:39 <HackEgo> sed: -e expression #1, char 2: extra characters after command
23:35:12 <ais523> you probably didn't mean q there
23:35:28 <CakeProphet> no I did I was testing if sed had such a thing.
23:35:46 <ais523> in sed, all commands are single characters
23:35:51 <ais523> and the 'q' command doesn't take an argument
23:36:11 <ais523> it /does/ have such a thing
23:36:16 <ais523> (see oerjan's test)
23:39:34 -!- cheater has quit (Remote host closed the connection).
23:41:58 <monqy> oh hey cheater was here
23:42:00 <monqy> I didn't even notice
23:44:54 <ais523> he didn't say anything, I don't think
23:49:02 -!- yorick has joined.
23:55:34 -!- cheater has joined.
2011-08-29
00:01:42 -!- Patashu has joined.
00:04:12 -!- zzo38 has joined.
00:06:58 <zzo38> I want to replace the front-end of GHC so that I can add stuff
00:07:18 -!- sllide has quit (Ping timeout: 276 seconds).
00:08:09 <elliott> zzo38: ok
00:09:05 <zzo38> How can I download only the front-end codes?
00:11:42 <elliott> you can't, just download all of GHC and ignore the rest
00:11:56 <elliott> http://haskell.org/ghc/dist/7.2.1/ghc-7.2.1-src.tar.bz2
00:16:35 <zzo38> Can you tell me which directories from the tape archive I need, though?
00:16:59 <elliott> I think they're all mixed together in the source directories; you may find the developer wiki helpful
00:17:23 <elliott> http://hackage.haskell.org/trac/ghc/wiki
00:17:26 <oerjan> maybe the ghc-api documentation?
00:17:36 <elliott> oerjan: can't do what he wants
00:18:22 <oerjan> well isn't the rest a wrapper around the ghc-api, more or less? (note: no actual clue inside)
00:19:35 <elliott> oerjan: I don't know what that means
00:20:56 -!- kmc has joined.
00:21:32 <zzo38> If I do get only the front-end files, will it still compile if I already have Haskell Platform?
00:22:06 <zzo38> Can it make it use the GHC API for everything else?
00:22:14 <elliott> You cannot get only the front-end files.
00:22:17 <elliott> GHC is distributed in whole form.
00:22:19 <elliott> It is not a large tarball.
00:23:01 <zzo38> I did download it already but can I extract only some of the files from the tape archive?
00:24:20 <cheater> why not just do a git checkout from the darcs server?
00:24:29 <ais523> cheater: that is, umm, not helpful?
00:24:55 <cheater> that would be intended as i was trying to help zzo not you
00:25:04 <ais523> cheater: that is not helpful for him either?
00:25:48 <cheater> are you asking because you don't know
00:26:21 <ais523> cheater: no, I'm trying to give you a chance to defend yourself as being mistaken rather than trolling
00:30:36 <cheater> what happens if i don't take that chance
00:30:43 <cheater> do i roll?
00:30:54 <cheater> and, what are my modifiers?
00:31:01 <ais523> no, you just get banned again
00:31:06 <ais523> or at least kicked
00:31:09 -!- ChanServ has set channel mode: +o ais523.
00:31:13 -!- ais523 has kicked cheater trolling.
00:31:15 -!- ais523 has set channel mode: -o ais523.
00:31:19 <elliott> I...
00:31:20 <elliott> you have ops here?
00:31:30 -!- cheater has joined.
00:31:41 <ais523> elliott: you wouldn't believe me if I said no after that, would you?
00:31:58 <cheater> nice, abusing op privileges after falsely assuming i'm trolling
00:32:00 <elliott> ais523: I'd probably check to see if you removed them afterwards
00:32:02 <cheater> how cute
00:32:08 <elliott> cheater: backchat to an op after they kick you after you just got unbanned
00:32:11 <elliott> smart things to do: the novel
00:32:18 <ais523> cheater: I doubt the other ops will overrule me on that one, although of course they can if they want to
00:32:32 <Patashu> we have ops here?!?
00:32:33 <cheater> well, i was trying to help zzo38
00:32:36 <zzo38> I don't think git checkout would help; I am asking which files correspond to the front-end, as well as some other questions such as whether it can access the GHC API to do the stuff after the front-end, whether it can use the different version, etc
00:32:38 <Patashu> oh, you have stealth ops
00:32:38 <Patashu> clever
00:32:46 <ais523> not taking a chance to prove you aren't trolling, after being given one and making it clear you're suspected as a troll, is tantamount to admitting to trolling
00:32:49 <cheater> as you can see he just gave a serious answer
00:32:51 <oerjan> Patashu: *MWAHAHAHA*
00:32:51 <zzo38> cheater: I understand you try to help, is OK, but you perhaps have misunderstand my question
00:33:20 <cheater> zzo38, i did not understand why you only wanted to get a part of the tar file.
00:33:34 <cheater> i find it easier to get the whole thing and then copy files out as needed.
00:33:49 <zzo38> cheater: I have downloaded the entire file. I can tell 7-Zip to extract only the files I needed. However, I do not know which files I need to extract.
00:34:30 <cheater> ais523, you started conversation with me by using an derisive tone and then made a statement which i could only take as humor, because i'd have never thought you would be taking yourself seriously at that point.
00:34:49 <cheater> i was wrong!
00:34:58 -!- elliott has quit (Read error: Connection reset by peer).
00:35:01 <ais523> cheater: the whole context was relatively clear
00:35:03 -!- elliott has joined.
00:35:16 <cheater> zzo38, are you perhaps looking for the place where teh ghci ui is defined?
00:35:27 <ais523> cheater: or do you just not read context at all, like Vorpal?
00:36:17 * elliott wonders what cheater is actually trying to achieve
00:36:19 <cheater> ais523, the context of your communication to me as i saw it was you picking on me, if you thought htere was a different context then you have failed to communicate it, or have chosen not to, in order to confuse me and then have an excuse for abusing op powers
00:36:34 <ais523> cheater: the context was that zzo38 /already had the files/, as you could tell from his comments
00:36:37 <zzo38> I am looking for the front-end of GHC, that is, the lexer, parser, renamer, and typechecker. Perhaps I can just try to do it with haskell-src-exts whatever I try to do and see if it helps; although it means I cannot access it with TH if I do that
00:36:52 <elliott> ais523: has it come up that you can't actually make a git checkout from a darcs repository yet
00:37:02 <ais523> so suggesting that he gets them again, using git, from a darcs server, is a little silly even if the darcs server provides a git mirror
00:37:13 <cheater> ais523, i thought maybe he's low on disk space or something like that and that's why he doesn't want to unpack the whole file
00:37:21 <ais523> elliott: it did, but that's not necessarily wrong in case there's multiple VCSes on the server
00:37:25 <cheater> the darcs server is a git server.
00:37:39 <ais523> cheater: well, that /is/ wrong, because git history takes up quite a bit of disk space compared to a tarball
00:38:07 <cheater> yeah, i guess that's right
00:38:30 <cheater> still doesn't justify you picking on me
00:38:55 <cheater> zzo38, let me see if i can find that in my checkout
00:39:00 <cheater> then i could tell you the file names
00:40:31 <zzo38> Perhaps I will just try to do it by modifying haskell-src-exts at first, and then if that doesn't work, modify GHC. But then, should I install "hint" package, so that I can make a interpreter, and be able to add interpreted codes. But is there a way to use that to add stuff for accessing by Template Haskell? Possibly I need to add my own kind of "reify" commands
00:41:23 <cheater> i have the directory compiler/parser in my checkout
00:41:47 <cheater> and compiler/typecheck
00:42:21 <zzo38> Is there a separate one for the renamer, or is the renamer and typechecker together?
00:42:36 <zzo38> cheater: Have you ever made changes to GHC?
00:43:26 <cheater> oh there is also compiler/rename
00:43:36 <zzo38> OK
00:43:54 <cheater> i think the lexer is part of the parser:
00:43:55 <cheater> ./compiler/parser/LexCore.hs
00:43:55 <cheater> ./compiler/parser/Lexer.x
00:44:01 <cheater> yes, i have
00:44:03 <cheater> to ghci
00:44:06 <zzo38> OK
00:44:17 <elliott> zzo38: you may find #ghc helpful, it contains a lot of people familiar with the ghc source
00:44:23 <zzo38> What things to GHCi, specifically?
00:46:19 <cheater> i have modified some commands
00:46:42 <zzo38> Which ones, and in what ways? And which version of GHCi?
00:47:49 <cheater> 7 but that part was the same in 6 i think
00:48:08 <cheater> i was just testing how and what i can modify the commands really
00:48:14 <cheater> nothing worth of sharing
00:48:21 <zzo38> OK
00:48:33 <cheater> *in the
01:00:06 <zzo38> Does cabal install user or global by default? Should I install user or global?
01:00:32 <elliott> on Unix, user; on Windows, it doesn't matter
01:00:40 <elliott> unless you have a multi-user Windows setup, which is very rare
01:00:43 <elliott> I'd just stick with the default
01:00:49 <elliott> which I think depends on your settings at install?
01:03:00 <zzo38> I do actually have two accounts so that I can do adminstrative functions with one account (usually using "runas") and everything else using another account.
01:03:24 <elliott> You probably want a user install, then
01:03:34 <elliott> which is the default
01:03:35 <ais523> elliott: OK, most people don't do Windows accounts correctly; but do you seriously believe that /zzo38/ wouldn't do Windows accounts correctly?
01:03:40 <ais523> (I do them correctly too)
01:03:45 <ais523> (when on Windows)
01:04:00 <elliott> ais523: I think he likes DOS, and doesn't like the computer to try and stop him doing things, even if they're dangerous
01:04:10 <elliott> so I find it perfectly plausible that zzo38 would want to use only an administrator account
01:04:49 <zzo38> The reason is not to stop me but to stop other software from doing things that I do not run under the administrator account.
01:05:17 <elliott> fair enough
01:07:23 <zzo38> Is it possible to tell cabal to access multiple servers? Is it possible to give the servers prefixes for package names in case some of them might have packages that have the same name but are different packages?
01:12:55 <zzo38> Some people told me that shell scripts set to suid in Linux doesn't switch. I think it should do it anyways. I did read somewhere that you can make a symlink named -i to trick it, but can you fix it by changing the shebang like to say #!/bin/bash --
01:13:43 <zzo38> Anyways it should be whoever decides to make it suid whose fault it is if they do it wrong, rather than the kernel. UNIX should not stop you from doing stupid things because then you cannot do smart things either.
01:14:42 <ais523> zzo38: the problem is not with a symlink called -i, but if you make a symlink to the shellscript itself, then load the shellscript, then after the shebang is read and while sh is loading, change the symlink to point to a different shellscript
01:15:07 <ais523> there's nothing the person who writes the script can do about that, except to name something in the shebang line that checks to see if the file it's operating on is actually suid with the right user
01:16:11 <zzo38> That could probably be corrected, by making the kernel seize the file if you run any suid program in that way; for consistency it can do that for all programs rather than only shell scripts.
01:16:42 <coppro> That would violate a principal part of the Unix model
01:20:14 <zzo38> Another way could be to make it if you run a symlink of a suid shell script it will call the program with the name of the actual file instead. Or make it so that symlinks don't run suid unless it is owned by the same user. But either way it seem it is the fault of whoever made it suid
01:22:05 <kmc> suid is irredeemably broken anyway
01:22:14 <Sgeo_> "Or make it so that symlinks don't run suid unless it is owned by the same user." I'm parsing that in two ways. One makes suid useless, the other seems risky, in that not all shellscripts owned by the suid-setting user should be suid-able
01:23:55 <zzo38> Sgeo_: You are probably correct. Is the other one any better?
01:24:29 <Sgeo_> I personally don't see any problems with sending the real file, but I'm not a UNIX geek
01:24:37 <ais523> zzo38: there is actually a fix that some UNIXes use; upon encountering a suid shell script, they open the shell script, then pass the open file descriptor to the interpreter
01:24:44 <ais523> changing the symlink won't change what the file descriptor points to
01:25:02 <ais523> Linux doesn't do it, though, for some reason
01:25:19 <ais523> kmc: what in particular do you dislike about it, and would recommend as an alternative?
01:25:31 <elliott> did kmc follow zzo back here? :P
01:26:19 <kmc> it's a confused deputy problem waiting to happen
01:26:22 <ais523> I'm one of those people who believes that UNIX is really far from perfect, but that you really need to know what you're doing to come up with anything better
01:26:37 <ais523> kmc: aren't all methods of escalating permissions? or are some worse than others?
01:26:52 <kmc> there are just too many ways the person running a binary can screw with that binary's execution
01:27:04 <elliott> that's more a rebuttal of the entire unix security model
01:27:12 <kmc> Linux et al try to patch this up with blacklisting
01:27:17 <elliott> which is certainly valid, but you can't really fix that within the contexts of unix
01:27:21 <ais523> kmc: pretty much all of them don't work on scripts that are either suid or have called setuid
01:27:24 <kmc> can't ptrace setuid binary due to special rule. can't set this or that environment variable by special rule. etc.
01:27:36 <kmc> ais523, right, because there are special blacklist rules, and sometimes they forget one
01:27:38 <kmc> anyway
01:27:44 <kmc> i agree this can't really be fixed without changing unix drastically
01:27:47 <ais523> you can't even look at all the procfiles of a process that's your own child that dropped permissions, if you've also dropped permissions
01:27:48 <kmc> like including real capabilities
01:27:59 <kmc> but there are still better alternatives
01:28:03 <kmc> that work in the confines of existing unix
01:28:09 <Sgeo_> Better than capabilities?
01:28:09 <elliott> Unix should just be @ instead, and then have never existed, and then @ should have existed in its place.
01:28:11 <ais523> Linux does have real capabilities, but I don't see how they avoid the problem
01:28:15 <elliott> that's my controversial Unix security opinion
01:28:17 * Sgeo_ is curious
01:28:19 <ais523> they're rather coarse-grained, though
01:28:20 <kmc> Linux has real capabilities?
01:28:22 <elliott> ais523: Linux does not have object-capability
01:28:27 <elliott> it has POSIX-capability, which are something else entirely
01:28:28 <zzo38> Then you should just fix suid so that it prevents the user running it from doing various things. The suid process could then add the permission that allows the actual user that run the program to send signals, if they want to.
01:28:30 <ais523> elliott: no, just subset-of-root-capability
01:28:34 <elliott> it has POSIX-capability, which are something else entirely
01:28:41 <kmc> POSIX capabilities are barely better than root / not-root
01:28:43 -!- azaq23 has joined.
01:28:48 <elliott> "real capabilities" refers to the object-capability model whenever I've seen it :P
01:28:57 -!- azaq23 has quit (Changing host).
01:28:58 -!- azaq23 has joined.
01:29:04 <Sgeo_> What's better than capabilities?
01:29:10 <ais523> well, object-capabilities are /still/ subject to the confused deputy problem
01:29:14 <kmc> i did not claim anything was better than object capabilities
01:29:26 <ais523> arguably, even more so than suid, because the person is still running an executable and able to mess with it
01:29:29 <kmc> ais523, yes, of course. in security one must talk about less-susceptible vs more-susceptible, not in absolutes
01:29:35 -!- azaq23 has quit (Client Quit).
01:29:43 -!- azaq23 has joined.
01:29:46 <ais523> at least with suid, you can say "that's suid" versus "that's not suid" and use it as a basis for blacklisting
01:29:51 <kmc> anyway, i propose to replace each setuid binary with a persistent daemon that serves requests over a UNIX socket
01:30:00 <zzo38> Elevation permission can be done using suid; in addition, reduce permission to that of other users while the program is still running could be done with other function calls (if the calling program is root), and then everything else to change permission of processes can be done with ptrace.
01:30:07 <kmc> it's a much narrower interface to the less-privileged user
01:30:22 <kmc> people know how to write secure network daemons, more than they know how to write secure setuid binaries
01:30:30 <ais523> it seems potentially vulnerable to DOS issues that setuid binaries aren't vulnerable to
01:30:36 <kmc> yeah
01:30:46 <ais523> and you can do bizarre things on sockets too, like using them to send SIGPIPE signals
01:31:49 <ais523> I suppose the argument's a resource-limit one; if a daemon is doing work on your behalf, how do you make it count against your own resource limits rather than the daemon's?
01:32:13 <kmc> that's an interesting question
01:32:46 <Sgeo_> How does one patch KDE2 under FreeBSD?
01:33:04 <kmc> one could argue that setuid binaries shouldn't be doing nontrivial work anyway
01:33:12 <kmc> i'm not sure if that really holds
01:33:30 <kmc> anyway replacing privilege escalation flaws with denial of service flaws is frequently a good tradeoff
01:34:00 <quintopia> the same way similar things are done in stuff like xen?
01:34:43 <Patashu> What does division by zero do in a language without runtime errors?
01:34:54 <ais523> Sgeo_: the most sensible answer to that question I know of was one about KDE3 being out
01:35:04 <ais523> presumably, you could use KDE4 as a substitute nowadays
01:35:36 <kmc> here's an example which looks much like object capabilities: instead of your HTTP server running as root just so it can get port 80, it talks to a daemon whose sole purpose is to open privileged ports on behalf of other processes
01:35:38 <ais523> (for those here who don't know of the phrase, it's a meme in certain countries (I forget which) where people ask that question at politicians and other celebrities in apparently serious interviews)
01:35:43 <kmc> (and send them back through a UNIX socket)
01:35:52 <Sgeo_> ais523, Wikipedia says Russian
01:35:53 <Sgeo_> http://en.wikipedia.org/wiki/How_does_one_patch_KDE2_under_FreeBSD%3F
01:36:26 <Sgeo_> Or, well, hmm
01:36:30 <ais523> ah, Russian-speaking countries in general, it seems
01:37:01 <ais523> kmc: and how does the daemon know who can open the port? and what the HTTP server will do with it?
01:37:21 <ais523> with object capabilities, you attach a "port 80" capability to the file containing the executable for the HTTP server
01:37:27 <kmc> not necessarily
01:37:29 <ais523> with a daemon, there's no obvious way to do that
01:37:36 <kmc> that's only one sort of object-capability system
01:37:42 <zzo38> Well, not only HTTP. It also includes a very large number of other protocols. Maybe even Message Send Protocol; although I forget what its port number is.
01:37:48 <ais523> well, that's one way in which it works
01:37:54 <kmc> that's basically the case where the daemon also happens to be the filesystem
01:37:56 <ais523> and I can't see an obvious way for daemon-capability to duplicate that
01:37:58 <elliott> ais523: nah, you pass the listen-on-port-80 capability to it at runtime
01:38:05 <ais523> elliott: oh, init passes it, or whatever?
01:38:13 <elliott> whoever starts the httpd passes it
01:38:32 <ais523> and needs it to be able to start the httpd
01:38:52 <elliott> unless they want to start it on another port, which would presumably be acceptable
01:38:53 <ais523> why would that whoever happen to have a port-80 capability? I can understand why init would have it
01:39:06 <ais523> but say I'm a network admin who wants to restart Apache or whatever
01:39:10 <ais523> where do I get a port-80 capability from?
01:39:50 <elliott> ais523: presumably you have near-omnipotence, considering that in unix you'd have access to sudo
01:39:59 <ais523> yep
01:40:11 <ais523> although, you'd actually only need a suid HTTP server to manage that
01:40:12 <elliott> so you'd just get one from the network driver
01:40:28 <ais523> or sudo can be set up to only allow people to run particular executables, which is much the same thing
01:41:41 <oerjan> <elliott> did kmc follow zzo back here? :P <-- poor HackEgo is going to be overworked
01:41:55 <ais523> gah, Firefox version numbers make discussions of website problems really hard to follow
01:41:57 <zzo38> The other way is monadic capability system. You have a Haskell program with a monadic type for operating system, and it exposes all of its constructors representing the basic operations (derived ones are just combiniations of the basic ones), when one program calls another in I/O mode it will intercept everything and there is no limit to the number of times it can be done
01:42:11 <ais523> you get "this doesn't work in Firefox 6" "well it works in Firefox 8" and no longer have an idea of who to follow
01:42:19 <ais523> or which one's remotely recent
01:42:25 <ais523> C-INTERCAL is winning, though, it's on version 29
01:42:35 <kmc> i don't know what a HackEgo is
01:42:44 <elliott> `run echo :(
01:42:47 <ais523> some projects like Java have discarded the major version number
01:42:48 <HackEgo> sh: -c: line 0: syntax error near unexpected token `(' \ sh: -c: line 0: `echo :('
01:42:49 <elliott> `run echo ':('
01:42:51 <HackEgo> ​:(
01:42:55 <ais523> C-INTERCAL effectively merged the minor and patchlevel, and discarded the major
01:43:29 <elliott> discard all version numbers, just fork the project and move every developer over before each new release
01:44:13 <zzo38> One part of the system is written in assembly language and manages the lowest level operating system operations, as well as all serialization and saving state to disk and restoring everything properly, and so on.
01:44:18 <ais523> elliott: haha
01:44:25 <ais523> but then I couldn't use a -2 version number component for betas
01:44:40 <ais523> (which I've recently caught myself wanting to do in non-INTERCAL-related projects; it really does make a lot of sense)
01:44:42 <elliott> ais523: just use more boring names for betas to discourage regular users from trying them
01:44:55 <elliott> Sigma-Zyzyzyzyzzz INTERCAL becomes Corporate Language Implementation Framework 9
01:45:02 <zzo38> (I don't know how well these ideas work; I have never tried it and am not even quite sure how)
01:45:02 <ais523> I generally want to encourage people to use betas in the case of INTERCAL
01:45:02 <elliott> becomes ALL INTERCAL ALL THE TIME!!
01:45:26 <elliott> ais523: hmm, name each fork after a particularly nice line of INTERCAL
01:45:32 <elliott> ais523: for the case of betas, a half-broken one
01:45:32 <ais523> I do'nt think it /has/ any "regular users"
01:45:39 <ais523> *don't
01:45:54 <zzo38> Please use negative version numbers if it helps in making the version numbers.
01:46:43 <Patashu> I want my version numbers to be arbitrary unicode
01:47:04 <zzo38> Patashu: Including control characters or not?
01:47:08 <Patashu> Sure
01:47:28 <Patashu> No, better - it's a link to a program that calculates the version number when ran
01:47:42 <oerjan> classical chinese numerals
01:47:49 <Gregor> No, better - it's a quine.
01:48:20 <Patashu> Every version number is a quine in echo
01:48:40 <kmc> every version number is an entire copy of Goedel Escher Bach
01:49:09 <zzo38> I usually just use the Major.Minor.Revision system except that if the minor increases beyond 9 then it is the next major instead, and if the revision increases beyond 9 then it is the next minor instead.
01:50:19 <zzo38> Which allows you to write it as a decimal number such as 100 for version 1.0
01:53:06 <oerjan> ^ul ((version 1.0)!(^ul )SaS(:^)S):^
01:53:06 <fungot> ^ul ((version 1.0)!(^ul )SaS(:^)S):^
01:53:57 <Lymee> version 1.0 < wat
01:54:15 <Lymee> ^ul ((um what is this part)!(^ul )SaS(:^)S):^
01:54:15 <fungot> ^ul ((um what is this part)!(^ul )SaS(:^)S):^
01:54:17 <Lymee> Heh.
01:54:33 <Lymee> !echo
01:54:38 <Lymee> !echo test
01:54:39 <EgoBot> test
01:54:43 <Lymee> ^ul ((um what is this part)!(!echo ^ul )SaS(:^)S):^
01:54:43 <fungot> !echo ^ul ((um what is this part)!(!echo ^ul )SaS(:^)S):^
01:54:44 <EgoBot> ​^ul ((um what is this part)!(!echo ^ul )SaS(:^)S):^
01:55:10 <ais523> kmc: how many printings does it have? you might run out of numbers after a while
01:55:24 <ais523> Lymee: ( ... )! is a comment in Underload
01:55:34 <Lymee> Ah.
01:55:40 <zzo38> EgoBot sends a zero-width character if the output starts with any punctuation mark
01:56:00 <zzo38> Although it should probably just send NOTICE for replies
01:56:08 <Lymee> > text "test"
01:56:09 <lambdabot> test
01:57:05 <Lymee> `echo ^ul ((`echo ^ul )SaS(:^)S):^
01:57:07 <ais523> how impossible is it to implement eval in Haskell?
01:57:07 <HackEgo> ​^ul ((`echo ^ul )SaS(:^)S):^
01:57:13 <Lymee> :<
01:57:17 <ais523> I'm wondering if it's doable at all, just to annoy purists
01:57:20 <elliott> ais523: not impossible at all
01:57:23 <elliott> http://hackage.haskell.org/package/hint
01:57:28 <ais523> haha, it's been done?
01:57:35 <elliott> ais523: how do you think lambdabot works?
01:57:42 <elliott> hint is great because it actually reifies the value
01:57:49 <ais523> I thought it was invoking an interpreter
01:57:53 <ais523> just like EgoBot runs interpreters
01:57:59 <elliott> it is, it just happens to use the GHC API to do it :P
01:58:01 <ais523> and so the eval would be unconnected with the original program
01:58:07 <elliott> oh, well it doesn't inherit your scope
01:58:13 <elliott> unless you pass things in explicitly
01:58:25 <elliott> and I doubt you could pass an IORef or anything
01:58:36 <elliott> but it provides an eval that results in a bona-fide actual value, so it's good enough :)
01:58:47 <elliott> and you could ofc have it produce a State monadic value and run that
01:59:06 <ais523> "monadic value" = "monad action"? or "thing you apply a monad action to"?
01:59:13 <elliott> monad action, yes
01:59:31 <kmc> what does EgoBot do?
01:59:52 <elliott> !help
01:59:52 <ais523> runs programs in a variety of languages, mostly esolangs
01:59:52 <EgoBot> ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
01:59:55 <elliott> !help languages
01:59:56 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
01:59:57 <elliott> !help userinterps
01:59:58 <EgoBot> ​userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
02:00:03 <elliott> !userinterps
02:00:04 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak wacro warez wc yodawg
02:00:07 <elliott> those things
02:00:19 <elliott> it's HackEgo's sibling
02:00:24 <ais523> !bfjoust simple_attack (>)*8(>[-])*21
02:00:32 <EgoBot> ​Score for ais523_simple_attack: 17.1
02:00:52 <ais523> good, it came last
02:00:55 <Sgeo_> You can't really use it to modify host functions, can you?
02:00:56 <ais523> I'd have been a little worried otherwise
02:01:18 <elliott> Sgeo_: define modify, mutate? you can't mutate values in Haskell
02:01:26 <elliott> whether through an eval mechanism or not
02:01:32 <Sgeo_> Mm.
02:02:00 * Sgeo_ mutters about inconveniently-se MIME types
02:02:02 <Sgeo_> http://code.haskell.org/hint/devel/examples/
02:02:12 <Sgeo_> *inconveniently-set
02:03:09 <elliott> Content-Type: text/x-haskell
02:03:10 <elliott> looks correct to me
02:03:27 <ais523> inconvenient because the browser won't open it inline?
02:03:41 <ais523> there should really be some content-type modifier that says "if you don't understand this, it's just fine for you to treat it as a text file"
02:03:48 <ais523> "but not try to execute it even if you're Internet Explorer"
02:04:03 <elliott> ais523: content-disposition: inline
02:04:10 <ais523> ah, great, it does exist
02:04:22 <elliott> it's a bit vague though
02:04:31 <ais523> (Wikipedia will not serve pages raw as text/plain, but will as text/css; text/plain triggers an old-IE bug where it'll interpret it as HTML sometimes)
02:04:54 <elliott> gross
02:05:06 <ais523> I know
02:05:12 <Sgeo_> "Evaluates an expression, given a witness for its monomorphic type."
02:05:26 <elliott> it actually works with polymorphic types, at least it did when i tried :p
02:05:26 <Sgeo_> Like a :: String or whatever?
02:05:28 <ais523> but avoiding a really exploitable XSS bug in old-IE is necessary, I think
02:05:38 <elliott> a witness is just (undefined :: T) or whatever
02:05:49 <Sgeo_> Ah, ok, that's what I thought
02:06:49 <Sgeo_> Wait, why is the as needed?
02:07:02 <Sgeo_> interpret "head [True,False]" (as :: Bool)
02:07:05 <elliott> its just sugar
02:07:15 <Sgeo_> What would that look like without the as function? Ugly?
02:07:34 <Sgeo_> Oh, type signature of interpret would be different
02:08:18 <elliott> ...
02:08:23 <Lymee> String -> a?
02:08:25 <elliott> it would explicitly involve an "undefined"
02:08:26 <elliott> which is ugly
02:09:03 <Lymee> Sgeo_, I think it'd be either String -> a or String -> IO a
02:09:24 <CakeProphet> class Eval e where eval :: String -> e ???
02:09:40 <Sgeo_> Lymee, http://hackage.haskell.org/packages/archive/hint/0.3.3.2/doc/html/Language-Haskell-Interpreter.html
02:09:41 <Lymee> (Which would make more sense anyways)
02:09:54 <Sgeo_> elliott, I meant something more like
02:10:12 <Lymee> Sgeo_, ah.
02:10:20 <CakeProphet> Lymee: a = IO b for when you need IO
02:10:24 <CakeProphet> so String -> a
02:10:29 <Sgeo_> interpret "head [True,False]" :: InterpreterT Id Bool
02:10:41 <Lymee> CakeProphet, makes sense.
02:11:59 <CakeProphet> so yeah you basically want Read except now every instance interprets Haskell to some kind of intermediate value and then makes sure it's the correct type
02:12:01 <CakeProphet> or something.
02:13:21 <CakeProphet> also you probably want to name your typeclass IsString
02:13:37 <CakeProphet> and turn on overloadedstrings
02:13:39 <CakeProphet> totally a good idea.
02:14:13 * elliott rips CakeProphet's soul.
02:14:25 <Sgeo_> http://hackage.haskell.org/packages/archive/hint/0.3.3.2/doc/html/Language-Haskell-Interpreter.html#g:10 the parens note here fails to show that that should be =\n and not =n
02:15:50 <elliott> oh noes
02:15:55 <elliott> send a patch
02:15:59 <elliott> its just a missing \ in the haddock
02:16:52 <CakeProphet> http://pastebin.com/kQ53Wdyy
02:16:54 <CakeProphet> help what is wrong
02:17:08 <CakeProphet> pyparsing.ParseException: Expected end of text (at char 0), (line:1, col:1)
02:18:44 <Sgeo_> I'm not at all set up to send patches
02:20:48 <monqy> CakeProphet: alternatively instead of providing an isstring instance make a quasiquoter and use dataToExpQ or whatever it is
02:20:56 <monqy> CakeProphet: to make the quasiquoter
02:21:17 <monqy> (dataToExpQ/dataToPatQ/dataToQa is very convenient for making quasiquoters)
02:21:48 <CakeProphet> monqy: help python
02:23:01 <monqy> CakeProphet: no
02:23:15 <monqy> I'm probably awful at python by now
02:23:43 <oerjan> CakeProphet: a hunch, are you successfully skipping whitespace where needed?
02:24:09 <CakeProphet> oerjan: pyparsing skips all whitespace (including newlines) by default
02:24:13 <oerjan> ok
02:24:14 <CakeProphet> or so I am led to beieve.
02:24:46 <elliott> i doubt your grammar is non-ambiguous with no newlines involved at all
02:25:26 <CakeProphet> it still did not work with newlines included.
02:25:41 <elliott> that isn't what i meant
02:25:43 <elliott> but w/e :P
02:26:39 <CakeProphet> elliott: no I mean I used newlines to define the grammar and told the parser to not skip newlines and it still did not work.
02:27:06 <oerjan> CakeProphet: perhaps try smaller test cases, such as just statement on the first line, and so on down until it succeeds?
02:29:33 <oerjan> basic bug case minimization
02:30:10 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
02:31:14 <Sgeo_> I intended to say something stupid in here, not in #haskell
02:31:26 <zzo38> You can sometimes open any text file inline in Mozilla browsers by prepending view-source: to the URL.
02:31:26 <monqy> did you say something stupid in #haskell
02:32:35 <Sgeo_> "<Sgeo> I think I can express what makes me uncomfortable about duck-typing lately in terms of the microwave metapho."
02:32:54 <monqy> yep
02:33:05 -!- GreaseMonkey has joined.
02:33:05 -!- GreaseMonkey has quit (Changing host).
02:33:05 -!- GreaseMonkey has joined.
02:34:42 <CakeProphet> oerjan: it's giving an error on the first line now, expecting a (
02:34:53 <CakeProphet> but with expr << stringLiteral | ...
02:35:01 <CakeProphet> it should see the " and parse as a string
02:35:02 <CakeProphet> SO CONFUSED
02:35:32 <zzo38> The browser I use also allows you to show anything internally when the download prompt is displayed. Push i to show as a specified MIME-type, or t to show as text/plain. That only works for HTTP (and HTTPS), though. For gopher, you push M-0 to view as text.
02:35:37 <monqy> maybe the library is bad...,maybe the python is bad...
02:36:16 <oerjan> CakeProphet: maybe it just gives bad error messages?
02:36:19 <elliott> maybe I'm bad
02:37:00 <zzo38> But I know that Parsec (with Haskell) displays proper error messages, even though I have not programmed any in.
02:37:44 <zzo38> Just try to feed an invalid program to my Constantinople compiler and it will display an error message telling you exactly what is expected.
02:37:45 <oerjan> btw how do backslashes work inside """ strings anyway
02:38:10 <oerjan> do they actually need doubling or not
02:38:40 <elliott> I believe so
02:39:02 <oerjan> `run python -c 'print """te\\st"""'
02:39:09 <HackEgo> te\st
02:39:17 -!- evincar has joined.
02:39:26 <oerjan> `run echo python -c 'print """te\\st"""'
02:39:32 <HackEgo> python -c print """te\\st"""
02:40:07 <oerjan> `run echo python -c "print '''te\\st'''"
02:40:09 <HackEgo> python -c print '''te\st'''
02:40:27 <oerjan> um wait
02:40:45 <oerjan> `run echo python -c "print '''te"'\\'"st'''"
02:40:47 <HackEgo> python -c print '''te\\st'''
02:40:53 <oerjan> `run python -c "print '''te"'\\'"st'''"
02:40:55 <HackEgo> te\st
02:41:02 <oerjan> hm
02:41:30 <zzo38> It displays the following message, which I did not even program in: (line 1, column 1): unexpected '@' expecting white space, "replace", "repeat", "in", "out", "end" or end of input In the expression: $parseConstantinople In the expression: $parseConstantinople initialMem In an equation for `main': main = $parseConstantinople initialMem
02:41:43 <oerjan> CakeProphet: anyway, continue making the error case smaller
02:41:54 <CakeProphet> working on just that.
02:42:38 <oerjan> <Sgeo_> "<Sgeo> I think I can express what makes me uncomfortable about duck-typing lately in terms of the microwave metapho." <-- that just means you fit in, and are soon ready to make a monad tutorial
02:43:02 <zzo38> (Actually according to the specification for Constantinople, "end" shouldn't go there, but my program treats "end" the same as end of input; i.e. it ends a block of code.)
02:43:03 <CakeProphet> oerjan: oh, well probably would help if I gave the parse function the correct arguments.
02:43:17 <CakeProphet> I was still using the same arguments from my own hand-written parser, where the first argument was the filename.
02:43:20 <Sgeo_> oerjan, more to do with OO and duck-typing than anything to do with monads
02:44:21 <CakeProphet> the joys of programming.
02:44:34 <oerjan> zzo38: Parsec tries to make good error messages but you can often improve them with the <?> operator
02:45:28 <zzo38> oerjan: OK. Well, in this case the error message seem OK to me. But thank you for telling me in case of future program I write and want to adjust the error message.
02:46:03 <oerjan> Sgeo_: WHOOSH (or just be glad you haven't seen that kind of monad tutorials)
02:46:25 <Sgeo_> oerjan, I've heard of the monad tutorial issue
02:46:28 <zzo38> I would prefer if it used the serial comma but that doesn't matter much and I don't plan to affect that, it is still OK how it is.
02:52:03 <zzo38> I noticed that it says expecting white space even though the white space check already succeeded (something like (spaces >> (...))) which is still a useful error message, however.
02:52:27 <oerjan> zzo38: hm right if you wanted that you'd probably write your own version of showErrorMessages
02:53:17 <oerjan> that commasOr local function in http://hackage.haskell.org/packages/archive/parsec/3.0.0/doc/html/src/Text-Parsec-Error.html#showErrorMessages looks like the culprit
02:53:57 <zzo38> I never even used showErrorMessages. The output of the parser is just sent to a function of this: either (fail . show) return
02:54:17 <oerjan> yes it's used in the Show instance
02:55:27 <zzo38> I do not really care much about that though.
03:01:34 <zzo38> Is there a TH program to compile regular expressions into Parsec?
03:02:26 <CakeProphet> I've been using emacs so long now that M-x h M-w is starting to feel naturally
03:02:38 <CakeProphet> -ly
03:03:29 <CakeProphet> oerjan: anyways thanks for the help. Here's the current program if you're interested. Currently testing cases and it's looking promising: http://pastebin.com/5kK8B35w
03:07:29 <zzo38> It seems you could make the regular expression compile, depending on capturing and that stuff, the containing type of the monad would correspond to String or (String,String) or (String,[String],String) etc depending on what it is. I don't really know for sure exactly, though.
03:07:52 <Gregor> Hmmm, which of the many file compression formats is the best when speed is paramount (but not to the point that just not compressing at all is better)
03:08:46 <zzo38> As far as I know, ZIP in extra fast mode. I am not sure. I would like to know the *real* answer to this question, too.
03:09:16 <elliott> Gregor: LZO
03:09:19 <elliott> Gregor: No contest.
03:09:19 <evincar> Gregor: Deflate and LZMA are both fairly fast. There are highly optimised libraries for both.
03:09:23 <elliott> No.
03:09:24 <elliott> LZO.
03:09:28 <evincar> Alright then.
03:09:32 <elliott> LZMA is not even in the same universe.
03:09:41 <elliott> Gregor: Oh, hmm
03:09:45 <elliott> Gregor: Compression speed
03:09:57 <elliott> Gregor: I still suspect LZO will be the fastest
03:10:03 <elliott> But its primary goal is lightspeed decompression
03:10:06 <elliott> I'd say either LZO or gzi
03:10:07 <elliott> p
03:10:21 <elliott> LZO has the advantage of needing very little RAM to compress :P
03:10:22 <Gregor> LZO, to my knowledge, doesn't have a convenient command-line tool like gzip
03:10:31 <elliott> sure it does.
03:10:34 <elliott> sudo apt-get install lzop
03:10:34 <zzo38> Gregor: Then write one.
03:11:24 <evincar> elliott: WP says compression is "comparable in speed to deflate".
03:11:39 <elliott> i thought Gregor meant decompression
03:11:40 <evincar> And that decompression is the "very fast" bit.
03:11:44 <Gregor> I mean both in fact.
03:11:48 <elliott> regardless, LZMA is nowhere in the same universe :P
03:11:54 <elliott> Gregor: Yeah, LZO is almost certainly gonna be your best bet
03:12:03 <ais523> LZO doesn't get massively good compression ratios, does it?
03:12:08 <ais523> it's purely there for speed and memory usage?
03:12:18 <elliott> ais523: now with Vorpal context powers
03:12:27 <Gregor> Holy CRAP but LZO is fast.
03:12:29 -!- azaq23 has quit (Ping timeout: 245 seconds).
03:12:34 <ais523> elliott: I did read context
03:12:39 <Gregor> Its compression rate isn't as good as gzip, no, but wow.
03:12:45 <ais523> it talked about the decompression speed, but not about ratio at all
03:12:47 <Gregor> We're talking 14sec vs 0.6sec.
03:13:00 <ais523> surely, a null compressor would be fastest
03:13:06 <elliott> <Gregor> Hmmm, which of the many file compression formats is the best when speed is paramount (but not to the point that just not compressing at all is better)
03:13:08 <elliott> You did not read context :P
03:13:13 -!- azaq23 has joined.
03:13:27 <elliott> Gregor: I think it should be relatively competitive with gzip at the highest level
03:13:31 <elliott> although, of course, not as fast
03:13:33 <elliott> erm
03:13:36 <elliott> although, of course, not as fast as it is on lower levels
03:14:27 <ais523> Gregor: null compressor fulfils the letter of your request
03:14:32 <ais523> because not compressing at all is /not/ better than it
03:14:41 <elliott> ais523 sure is helpful
03:14:48 <ais523> sorry, I'm tired and being a little silly
03:14:49 <CakeProphet> program.ignore(cppStyleComment)
03:14:52 <Gregor> elliott: Yeah, so helpful :P
03:14:52 <CakeProphet> this is almost too easy now...
03:15:06 <ais523> azip is rather too slow to compress, unfortunately, but decompresses in O(original file)
03:15:12 <Gregor> Also, lzop -9 is crazy-slow X-D
03:15:41 <Gregor> But yeah, lzop default is ridiculously fast and gets 52% compression ratio on this test file, which is good enough for me.
03:15:55 <evincar> CakeProphet: Screw you and your easy parser combinators. I did mine the hard way.
03:16:04 <ais523> Gregor: use the GPL version 3 as a test file, it's what I used for azip
03:16:06 <evincar> Deliberately, though. :P
03:16:16 <ais523> and thus, is now going to be the only acceptable test benchmark for compressors ever, apart from Lenna
03:16:25 <Gregor> ais523: Yeah, my file is big enough to be borderline-meaningful :P
03:16:28 <ais523> (I used the C-INTERCAL tarball as a larger test)
03:16:39 <ais523> Gregor: the GPL-3 is big enough to be borderline-meaningful too
03:16:42 <CakeProphet> evincar: my parser WORKED... until I realized my language needed infix operators.
03:16:54 <ais523> why does a language "need" infix operators?
03:17:09 <CakeProphet> *my implementation of an existing language
03:18:00 <evincar> ais523: Add macros. Implement infix operators as macros. Language no longer needs them.
03:18:17 <ais523> evincar: you'd have to implement infix macros, though
03:18:23 <zzo38> Then you need to add macros that are good enough to be able to implement infix operators.
03:18:25 <oerjan> <ais523> Gregor: the GPL-3 is big enough to be borderline-meaningful too <-- now _there's_ a statement that needs context.
03:18:26 <Gregor> ais523: My file is 86MB and only took lzop -3 0.6sec to compress :P
03:18:27 <ais523> which still, for decent macros, requires being able to parse infix
03:18:40 <evincar> ais523: Not at all. You would just need to wrap them.
03:18:55 <ais523> Gregor: just compress it 1000 times, and dodge cache effects as a bonus
03:19:08 <evincar> I saw a Pratt parser done as a Lisp macro so you could write (expr '(2 + 3 * 5)) or whatever.
03:19:37 <oerjan> evincar: if it's a macro you wouldn't use ' would you
03:19:44 <Gregor> Anyway, .sf.lzo: Clearly the best lossless audio compression format.
03:19:47 <evincar> Which is essentially how Tcl does it, if I recall.
03:19:56 <elliott> sf.lzo, the hip new domain name for sourceforge
03:20:00 <evincar> oerjan: I don't recall. I think that article did, but you wouldn't necessarily have to...
03:20:20 <zzo38> How do Lisp macros work?
03:20:41 <ais523> I won't answer, because whatever I say I'll be wrong
03:20:41 <elliott> well
03:20:44 <elliott> hth
03:20:45 <ais523> and shouted at as a result
03:20:48 <elliott> ais523: try "badly"
03:20:51 <Gregor> Like fuckin' MAGNETS
03:21:05 <ais523> elliott: I personally dislike them, but am willing to accept that that isn't a majority opinion
03:21:11 <ais523> and dislike them for reasons unrelated to how well they work
03:21:30 <elliott> properly-done fexprs are nicer, but macros are a lot easier
03:21:33 <elliott> to implement well and efficiently
03:21:38 <elliott> by far
03:22:06 <ais523> fexpr?
03:22:15 <evincar> ais523: Unevaluated expression, essentially.
03:22:21 <evincar> You just don't evaluate terms eagerly.
03:22:42 <ais523> oh, that is indeed very elegant, nice, and effective
03:22:49 <ais523> like slipping a call-by-name function into a call-by-value language
03:23:08 <elliott> no
03:23:25 <elliott> people really need to stop answering questions addressed at me incorrectly :P
03:23:43 <evincar> ais523: That's not exactly how it works.
03:23:54 <elliott> ais523: an fexpr is just a function that doesn't have its arguments evaluated; it's really easy to mess this up, though (see http://www.nhplace.com/kent/Papers/Special-Forms.html, a paper dedicated to advocating monads over fexprs from 1980)
03:23:59 <evincar> elliott: My explanation wasn't wrong.
03:24:00 <elliott> but it's possible to make them work well with lexical scoping
03:24:04 <elliott> see the Kernel language
03:24:06 <elliott> evincar: yes, it was
03:24:10 <elliott> fexprs are not unevaluated expressions
03:24:25 <evincar> Fine, they are functions taking unevaluated expressions.
03:24:36 <ais523> evincar: which is what a call-by-name function effectively is
03:24:46 <ais523> if elliott tells me they're different, then one of us is wrong
03:25:05 <elliott> ais523: it's not quite the same
03:25:11 <elliott> ais523: call by name functions can't expect their argument's ast, traditionally
03:25:31 <ais523> oh, the difference is that they can do things with their arguments other than evaluate them (possibly repeatedly)?
03:25:32 <elliott> (foo (f 9 0)) can't evaluate the same as (f 9 'avocado 0) (generically etc.)
03:25:36 <elliott> ais523: yes
03:25:42 <ais523> now I'm trying to work out the difference between that and macros
03:25:45 <elliott> basically, all their arguments are automatically quoted
03:25:49 <elliott> ais523: they're run at runtime
03:25:52 <elliott> ais523: the trick is, you don't need functions like this
03:25:56 <elliott> you can implement them in terms of fexprs
03:26:06 <elliott> that is, you can implement lambda in terms of vau
03:26:12 <elliott> (kernel's name for the fexpr-defining primitive)
03:26:15 <elliott> s/defining/creating/
03:26:21 <elliott> s/primitive/syntax/ I suppose
03:26:25 <evincar> ais523: Right, and compilation of fexprs is...problematic.
03:26:29 <elliott> (vau is itself an fexpr ofc)
03:26:37 <elliott> evincar: no it isn't, it's just constant-folding
03:27:01 <ais523> elliott: because fexprs are a generalisation of call-by-name, and you can implement call-by-value in call-by-name
03:27:22 <ais523> hmm, does Underload have fexprs?
03:27:45 <elliott> Who was it again who was responsible for the Vector skin change? Perhaps somebody could recommend a Design your own wikipedia skin option as most of the options suck. There ought to be a graphic option to design your own wikipedia design and main page. I am aware you can change the main page design in monobook but I want the option to make the frame much darker and make the articles stand out more. There is only so much you can do with changing y
03:27:45 <elliott> our Internet options colors and fonts. ♦ Dr. Blofeld 19:14, 28 August 2011 (UTC)
03:27:46 <ais523> it seems to meet every part of the definition so far, except that it can't do anything with the AST but print it
03:27:50 <elliott> [[Talk:Main Page]] is really weird
03:27:57 <elliott> ais523: sure it can; it can compose it with things
03:28:06 <oerjan> hardly, you can rarely pick anything apart unless the format is restricted
03:28:07 <elliott> admittedly, the things it can do are rather "safe"
03:28:19 <evincar> elliott: I thought you couldn't safely optimise them, at least.
03:28:26 <ais523> elliott: I'm not certain if that's AST-level composition, except because it's defined ot be
03:28:27 <ais523> *to be
03:28:32 <elliott> evincar: that's true iff you can't optimise function applications
03:28:37 <elliott> which is a rather hilarious, albeit bad, opinion
03:28:38 <ais523> you could do it without knowing the AST at all, by using a lambda, in other languages
03:28:44 <elliott> ais523: indeed
03:28:46 <evincar> Isn't it undecidable whether a particular expression is actually evaluated though?
03:29:02 <evincar> By static analysis alone.
03:29:03 <ais523> evincar: you don't need to know that to be able to optimise it, though
03:29:29 <ais523> in the cases where it is decidable that it's always, say, evaluated once and has no side effects, you can reorder it; but even if it isn't, inlining + standard optimisations will probably help
03:29:29 <elliott> evincar "You mean it isn't possible to optimise any TC language perfectly?" evincar
03:29:30 <evincar> But to compile it, you still need to have the data available.
03:29:34 <elliott> that is your new name
03:29:47 <ais523> optimisations don't have to work in 100% of cases
03:30:07 <elliott> the issue is mostly that your AST transformations could change what AST an fexpr gets at runtime
03:30:09 <elliott> but that's no problem
03:30:09 <ais523> and one that works in 99% of cases, like recognising if fexprs or call-by-name functions work identically to call-by-value functions, is going to be helpful
03:30:14 <evincar> I guess I'm just not clear how to compile a language with fexprs without just embedding an interpreter.
03:30:18 <elliott> since the AST should be semantically equivalent, if it's being used for evaluation
03:30:31 <elliott> evincar: you have to embed it, but that doesn't mean you have to use it all the time
03:30:36 <elliott> if you can statically eliminate all uses of it
03:30:36 <ais523> evincar: Underload's compiled by storing both the source and the meaning of every function together
03:30:41 <ais523> and using the source only when necessary
03:30:51 <ais523> and the meaning the rest of the time
03:30:59 <evincar> We do what we must I guess.
03:31:07 <ais523> elliott: how did your ul compiler compare to derlo?
03:31:20 <ais523> I can't remember which was faster, and whether it depended on the program
03:31:28 <elliott> ais523: badly, I think, but then I started writing a much better one recently
03:31:33 <ais523> ah, that would make sense
03:31:41 <ais523> and then didn't finish it because everyone has hundreds of unfinished projects
03:31:43 <elliott> ais523: (one that optimised numerals)
03:31:51 <elliott> well, I had a haskell version
03:31:54 <elliott> I started translating it to C, I forget why
03:31:57 <elliott> or was it an interpreter
03:31:58 <elliott> I forget
03:32:06 <elliott> I think I may have been trying to write a really good interpreter
03:32:16 <ais523> now I can't remember if derlo optimises numerals
03:32:18 <ais523> (it's an interp)
03:32:20 <elliott> it doesn't
03:32:25 <elliott> (I read derlo when writing mine)
03:32:41 <ais523> I know I have a Perl Overload interp somewhere which optimises numerals and nothing else
03:32:44 <ais523> that's unfinished
03:32:49 <ais523> because all overload interps are unfinished
03:32:52 <elliott> my numeral optimisation was better :)
03:32:57 <ais523> and the language itself is too hard to get your head around
03:32:58 <elliott> oerjan wrote a far-too-general number-detector
03:33:16 <ais523> elliott: indeed it is, the Perl program just regexes its memory every step looking for numbers
03:34:11 <elliott> hahaha
03:34:43 <evincar> So I had a thought about fractals.
03:35:10 <evincar> If you were to have a VM that logged every operation it evaluated...
03:35:35 <evincar> ...and decreased a "scale" value whenever it entered a new stack frame and increased it when leaving...
03:35:38 <elliott> ais523: argh, where is my interp? find it please
03:35:50 <ais523> elliott: I don't think you sent me a copy
03:35:53 <elliott> oh, I wonder if I lost it with my Code.tar.gz
03:35:59 * elliott prepares to cry softly
03:36:05 <evincar> ...then you could make a sort of nonuniform dotplot of the instructions executed, and you'd get a fractal representation of the execution of the program.
03:36:19 <evincar> It would show iteration at uniform scale and recursion fractionally.
03:36:36 <evincar> I don't know what purpose it would serve other than to look nice.
03:38:04 <elliott> ais523: looks like I may have lost it :(
03:38:43 <CakeProphet> okay so a huge problem with pyparsing is that the error messages are not good.
03:39:14 <ais523> elliott: how did you lose a tarball of code?
03:39:38 <ais523> and have you taken steps so it doesn't happen again?
03:39:39 <evincar> CakeProphet: Fork and improve?
03:39:45 <elliott> ais523: by not realising that megaupload would expire it rapidly, and by somehow losing my original download of it
03:39:59 <ais523> ah, right
03:40:13 <elliott> ais523: (I used it to transfer code from old OS install to new one, with no convenient storage media to hand)
03:40:17 <ais523> I use gitorious/patch-tag as backup for some things, but wouldn't expect, say, a pastebin or megaupload to do so
03:40:28 <elliott> well, I didn't intend it to stay there for longer than a day or so
03:40:36 <ais523> I take it that the old install is no longer accessible/wiped?
03:41:39 <CakeProphet> evincar: perhaps I can just find a way to augment errors like Parsec allows
03:41:46 <elliott> ais523: replaced by the new one :P
03:43:10 <CakeProphet> ah setFailAction is probably what I want.
03:44:57 <ais523> elliott: I'll generally keep at least an unpacked tarball and the original tarball for importantish tarballs like that
03:45:01 <ais523> and often a separate copy on a USB stick
03:50:53 -!- BeholdMyGlory has joined.
03:53:50 <CakeProphet> wooo everything works.
03:56:29 -!- oerjan has quit (Quit: Good night).
04:05:01 <ais523> wow, TIL that Thomas Edison invented the use of "Hello" to start conversations
04:05:24 <ais523> and suggested it to Alexander Graham Bell as a standard method of answering the telephone
04:05:43 <elliott> so that's the one thing edison /did/ invent
04:08:09 <ais523> heh
04:08:26 <ais523> the word was around beforehand, but with a different meaning (it was an expression of surprise)
04:08:47 <ais523> ofc, this is the sort of thing that's very likely to have unreliable sources behind it, so I'm not sure if it's so likely to be true, even if TIL it
04:15:04 <elliott> it seems to check out on googling
04:15:59 -!- copumpkin has quit (Quit: Leaving...).
04:16:58 -!- copumpkin has joined.
04:21:12 <evincar> I identify much more with Tesla. Edison should've come to his senses sooner.
04:22:01 <evincar> Also, it wasn't strictly surprise. It was just a literal "hey there".
04:22:11 <CakeProphet> DEBUGGING THIS IS PRETTY FUN
04:22:14 <evincar> Same as "hola".
04:25:08 <evincar> I can't decide if coming here makes me more or less productive as a programmer...
04:25:25 <itidus20> evincar: you are asking the wrong question.
04:25:38 <itidus20> it is the frequency of coming here
04:26:14 <evincar> And the duration.
04:26:25 <itidus20> a person is made or broken by their ability to do a day's work
04:26:42 <evincar> I tend to do a week's work in a day.
04:26:52 <evincar> That's not to say I'm seven times as productive as anybody.
04:27:03 <evincar> Rather that I slack off for six days a week then make up for it.
04:27:30 <itidus20> apparently if you have an employer you have to slack off because an employer will simply expect more and more from you for the same pay
04:27:33 <itidus20> so i hear
04:27:43 <itidus20> but if you are working on your own
04:27:45 <evincar> Being a freelancer seems to be working for me.
04:28:05 <CakeProphet> ME TOO ESPECIALLY DEBUGGING IT IS GREAT. :D :D :D
04:28:37 <evincar> I'm making a site for a guy who's going to pay me in Bitcoin...
04:28:51 <evincar> Mostly because I know him already.
04:29:02 <evincar> Also the dollar is going down the tubes anyway, so might as well diversify.
04:30:16 <evincar> But when I come here I get inspired to do stupid fun experimental projects.
04:30:16 <CakeProphet> I do not actually think the dollar is "going down the tube"
04:30:19 <CakeProphet> anymore.
04:30:24 <evincar> Some of which have turned into useful things.
04:30:30 <evincar> The dollar will fail.
04:30:37 <evincar> Evidence: every fiat currency ever.
04:31:00 <CakeProphet> I just realized that I am not drinking these beers.
04:31:01 <evincar> They might revalue it and re-back it.
04:31:03 <CakeProphet> clearly that is a problem.
04:31:09 <evincar> I doubt it, though.
04:31:11 <CakeProphet> and doing such will probably aid in my debugging skills.
04:31:37 <evincar> Alcohol tends to put me in a bad programming mindset.
04:31:40 <evincar> Caffeine as well...
04:31:52 <evincar> ...if I need to do something mindless and repetitive, caffeine is great.
04:32:05 <evincar> But my critical thinking skills go down the tubes when I have too much caffeine.
04:32:24 <evincar> And anyway, if you're using a language where there are mindless and repetitive tasks to be done, that might be your real problem.
04:32:40 <CakeProphet> no the real problem here is that THIS DOCUMENTATION LIES
04:32:46 <CakeProphet> it says call backs can take 0-3 arguments
04:32:59 <CakeProphet> so I give it a callback with one argument, and it calls it with zero
04:33:47 <elliott> self argument
04:33:51 <elliott> @ CakeProphet
04:34:09 <CakeProphet> onOperatorMatch() takes exactly 1 argument (0 given)
04:34:17 <CakeProphet> if it were being called as a method it would give me 1 argument.
04:34:17 <elliott> self argument
04:34:20 <CakeProphet> at least.
04:34:22 <elliott> ok
04:35:07 <CakeProphet> lol wat
04:35:12 <CakeProphet> adding the line: tokens = tokens.asList()
04:35:15 <CakeProphet> suddenly fixes everything
04:37:00 <CakeProphet> I don't even see how that's possible
04:37:32 <CakeProphet> why would adding a line of code in my callback change the way it's called...
04:38:02 <evincar> CakeProphet: print type(tokens) to see what's up?
04:38:18 <evincar> Or...what?
04:40:06 <CakeProphet> tokens is a ParseResult. that doesn't really have anything to do with my confusion.
04:40:22 <CakeProphet> my confusion is: before, my function was called with zero arguments. I add a line of code _in that function_, and it is called with 1.
04:42:22 <evincar> CakeProphet: \(°_o)/
04:42:46 -!- MDude has changed nick to MSleep.
04:43:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:47:26 <CakeProphet> evincar: pyparsing seems to put a function wrapper around my function before it's called.
04:47:50 <CakeProphet> perhaps the wrapper uses some kind of exception handling hack to detect which number of arguments to use.
04:48:09 <CakeProphet> meanwhile, an exception in my code was triggering that hack, and giving me an obtuse error message as a result.
04:48:17 <CakeProphet> fixing my codes error fixed the problem.
04:48:54 <evincar> Blurg.
04:49:08 <evincar> Hearing about this makes me cringe at a design I haven't even looked at.
04:49:15 <evincar> Pyparsing's, that is.
04:49:26 <CakeProphet> really they should have used inspect to get the actual number of arguments.
04:50:32 <CakeProphet> >>> inspect.getargspec(test)
04:50:33 <CakeProphet> ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=None)
04:50:54 <evincar> So much simpler.
04:52:19 <zzo38> Do you know how to play Scope or Pasur?
04:53:36 -!- jcp|1 has quit (Read error: Operation timed out).
04:53:47 <CakeProphet> evincar: granted the logic is still a bit more complicated than just taking len(spec.args), but it's not much more difficult than that and it would be _accurate_
04:55:08 <CakeProphet> though I guess the situation could also be improved by fixing Python's exception hierarchy
04:55:20 <CakeProphet> call to a function with too few / too many arguments = TypeError
04:55:22 <CakeProphet> obviously.
04:55:25 -!- jcp has quit (Ping timeout: 245 seconds).
04:58:33 <evincar> THROW TYPEERROR FOR ALL THE THINGS
04:58:57 <CakeProphet> TypeError is pretty common yes.
04:59:15 <CakeProphet> TypeError and ValueError are common for logic bugs.
04:59:24 <CakeProphet> though AttributeError can sometimes be the result of a type error.
04:59:55 <evincar> Don't most exceptions boil down to "argument was too high/low/otherwise invalid"?
05:00:01 <CakeProphet> no....?
05:00:18 <evincar> I don't mean in Python.
05:00:20 <evincar> I mean in general.
05:00:27 <CakeProphet> >_> also no?
05:00:28 <evincar> Name an exception that isn't one of those things.
05:00:42 <CakeProphet> NameError, IndexError, ImportError
05:00:49 <evincar> Other than "something blew up that was totally beyond our control".
05:00:59 <CakeProphet> !python import foo
05:01:00 <EgoBot> Traceback (most recent call last):
05:01:11 <CakeProphet> >_> oh, well yeah that's supposed to say ImportError
05:01:23 <evincar> Yeah, so the argument "foo" was invalid for "import".
05:01:55 <evincar> It boils down to "you fucked up" or "something beyond the scope of your program fucked up".
05:02:03 <CakeProphet> also you're going to argue that NameError is just locals()["variable"] which is silly because that's not how it owrks.
05:02:06 <evincar> Boil boil boil.
05:02:28 <CakeProphet> locals().__getkey__("variable") oh look invalid function call=.
05:02:49 <evincar> YouFuckedUpException
05:02:54 <elliott> evincar: hammer, nail
05:04:16 <CakeProphet> evincar: also you changed your definition of what _all exceptions ever_ are at least once now.
05:04:19 <evincar> elliott: Cactus, Dom DeLuise?
05:04:32 <evincar> I grouped the earlier three categories.
05:04:41 <evincar> Because I intended them as one.
05:04:43 <evincar> But didn't make it clear.
05:05:04 <CakeProphet> yes "you fucked up" is often a good a characterization of exceptions.
05:05:12 <CakeProphet> but is not the same as "function argument too low / too high/ invalid"
05:05:48 <evincar> I didn't say "function", but I would argue that it is.
05:06:00 <evincar> But it's a pointless argument.
05:06:04 <CakeProphet> < evincar> Don't most exceptions boil down to "argument was too high/low/otherwise invalid"?
05:06:04 <evincar> So I won't.
05:06:10 <CakeProphet> what else has arguments?
05:06:33 <evincar> Nothing. Statements have "operands" I guess.
05:06:51 <evincar> The point is that you're supplying an invalid value to a function somewhere.
05:06:53 <CakeProphet> basically now you're saying "an exception is an exceptional circumstance of the program"
05:06:58 <CakeProphet> how tautological
05:07:08 <evincar> No, specifically an invalid argument.
05:07:17 <evincar> It wasn't supposed to be a profound statement.
05:07:21 <evincar> We just keep talking about it.
05:07:30 <CakeProphet> > x
05:07:32 <lambdabot> x
05:07:38 <CakeProphet> oh right.
05:07:40 <CakeProphet> > hahahaha
05:07:41 <lambdabot> Not in scope: `hahahaha'
05:08:23 <CakeProphet> >>> def test())
05:08:25 <CakeProphet> [...]
05:08:30 <CakeProphet> SyntaxError: invalid syntax
05:09:09 <evincar> Yeah, you passed an invalid token sequence to the parser. :P
05:09:33 <evincar> Why is this still going on?
05:09:35 <CakeProphet> >>> while True: 1+1
05:09:36 <CakeProphet> ...
05:09:36 <CakeProphet> KeyboardInterrupt
05:09:37 <evincar> Go work on your program.
05:11:07 <CakeProphet> >>> iter([]).next()
05:11:08 <CakeProphet> ...
05:11:11 <CakeProphet> StopIteration
05:12:20 <CakeProphet> heh, I like how warnings in Python are actually exceptions.
05:13:17 <CakeProphet> warnings that stop your program aren't really very warning-like.
05:13:47 <quintopia> WARNING: YOUR PROGRAM ISNT RUNNING!
05:14:03 <quintopia> there should probably be a setting that suppresses those yes?
05:14:05 <CakeProphet> oh wait nevermind that's not how warnings work.
05:14:11 <CakeProphet> yeah they don't raise exceptions
05:14:36 <CakeProphet> they just have exceptions associated with them, that you can use with the warnings modules to filter warnings and stuff.
05:15:00 <zzo38> Can it make such a thing as "Haskell computer"?
05:15:24 <evincar> zzo38: You mean can such a thing be made?
05:16:16 <evincar> Probably. What fundaments of Haskell should be implemented in hardware?
05:16:23 <evincar> elliott?
05:16:27 <elliott> reduceron
05:16:30 <elliott> google it
05:16:33 <CakeProphet> evincar: no he's currently impersonating Buffalo Bill.
05:16:58 <elliott> (http://www.cs.york.ac.uk/fp/reduceron/)
05:17:36 <evincar> Oddly enough, I've read this.
05:17:41 <CakeProphet> reduceron is also a good name for a giant planet decimating robot.
05:17:53 <evincar> Must've come by it while looking up something Haskell-related.
05:18:02 <evincar> Though I can't imagine what.
05:18:13 <evincar> Considering I don't use Haskell.
05:18:44 <elliott> this isnt the personal character flaws channel :P
05:18:48 <CakeProphet> but you totally should.
05:19:31 -!- braap has joined.
05:20:07 <evincar> Probably.
05:20:07 <evincar> I've got nothing against it.
05:20:11 <elliott> braap braap
05:20:32 -!- braap has quit (Client Quit).
05:20:47 -!- jcp has joined.
05:20:58 <CakeProphet> I have lots of things against most languages.
05:21:02 <CakeProphet> I am a language antagonist.
05:21:05 -!- jcp|other has joined.
05:21:20 <monqy> I have lots of things against most languages as well. what are we talking about, now?
05:21:54 <CakeProphet> I was being sarcastic actually.
05:22:01 <monqy> I wasn't 8))
05:22:10 <CakeProphet> monqy however is a vile fundamentalist.
05:22:16 <CakeProphet> and thus we are destined to be language enemies.
05:22:21 <evincar> It's hard for me to feel legitimate, disliking a language I don't use.
05:22:27 <evincar> So I just reserve judgement.
05:23:49 <CakeProphet> operator_names = map(itemgetter(0), operator_table)
05:23:54 <CakeProphet> weeee duck typing + functional programming
05:24:08 <Sgeo_> What language is that?
05:24:12 <CakeProphet> python
05:24:23 <CakeProphet> itemgetter is from the operator module
05:24:50 <CakeProphet> >>> operator.itemgetter(2)([1,2,3])
05:24:51 <CakeProphet> 3
05:24:59 <monqy> I'm dying
05:25:27 <CakeProphet> monqy: the fact that such constructs are possible in Python is a vast improvement over most languages.
05:25:38 <CakeProphet> *possible and in the standard library
05:25:47 <monqy> most languages suck
05:26:09 <Sgeo_> CakeProphet, have fun with the crappy lambdas >.>
05:26:18 <CakeProphet> Sgeo_: yeah I don't use them ever...
05:26:25 <CakeProphet> I'd much rather define named functions.
05:26:40 <monqy> names are for losers
05:27:22 <CakeProphet> >>> map(functools.partial(operator.add, 1), [1,2,3])
05:27:22 <CakeProphet> [2, 3, 4]
05:27:30 <CakeProphet> functional programming in Python is very, uh, natural.
05:28:10 <evincar> Very uhnatural.
05:28:20 <zzo38> Is there possibility of converting GHC Core codes to F-lite codes?
05:28:23 <CakeProphet> well it's not /too/ bad if you get ride of the module names.
05:28:28 <CakeProphet> *rid
05:28:42 -!- pumpkin has joined.
05:28:44 <monqy> it will never not be too bad
05:28:48 -!- pumpkin has quit (Changing host).
05:28:48 -!- pumpkin has joined.
05:28:51 <CakeProphet> map(partial(add, 1), count(1))
05:28:58 <CakeProphet> count(1) being like [1..] in Haskell
05:29:24 <CakeProphet> though you'll want to use imap from itertools actually.
05:29:28 <CakeProphet> to maintain laziness;
05:29:29 <monqy> is count a what generator then
05:29:38 <CakeProphet> yes.
05:29:48 <CakeProphet> just an iterator actually.
05:29:55 <monqy> python terms I will never memorise
05:30:06 <CakeProphet> actually generator just means a function that returns an iterator
05:30:10 <CakeProphet> so yes, that is a generator
05:30:26 <CakeProphet> er, wait, no. fuck I don't know :P
05:31:10 <CakeProphet> itertools basically has a bunch of lazy versions of python list functions. pretty handy module.
05:31:19 <CakeProphet> I just wish functools came with more utilities.
05:31:42 <zzo38> However, in Javascript any function with "yield" is a generator function, it returns a Generator object and does not execute until the Generator object is called, and then it returns the first yield, it can be called next time to execute up to and returning the value of the next yield, and so on.
05:32:06 <CakeProphet> essentially the same in Python.
05:32:08 <Sgeo_> zzo38, similar to Python
05:32:18 <CakeProphet> though Python also has the whole coroutine thing.
05:32:30 -!- copumpkin has quit (Ping timeout: 245 seconds).
05:32:54 -!- pumpkin has changed nick to copumpkin.
05:35:58 <CakeProphet> you know what's really fun to look at?
05:36:07 <CakeProphet> C++'s operator precedence chart.
05:36:13 <evincar> Ugh.
05:36:23 <evincar> C++'s operator precedence is bad.
05:36:26 <evincar> Dumb and bad.
05:36:39 <monqy> thats what makes it fun
05:36:54 <evincar> I guess writing those lazy parsing iterators was kinda fun.
05:36:57 <evincar> In a horrifying way.
05:37:07 <CakeProphet> ...this being said by monqy, the language purist.
05:37:16 <CakeProphet> probably not sarcastically what so ever.
05:37:36 <evincar> Bad things can be fun by virtue of being bad.
05:37:48 <monqy> telling when or how much I'm joking at any given time may prove difficult
05:37:50 <evincar> I've had plenty of fun movie nights with less-than-excellent-quality films.
05:38:10 <monqy> you know what language has good operator precedence rules?
05:38:15 <CakeProphet> !wacro
05:38:16 <EgoBot> AECMBSP
05:38:20 <monqy> no its lisp
05:38:21 <monqy> also J
05:38:44 <CakeProphet> yeah I love mounds of parens.
05:38:44 <evincar> Also Factor.
05:38:52 <evincar> And Forth.
05:38:56 <CakeProphet> that's why I love Perl so much. all the parens.
05:39:05 <evincar> And whatever the hell I'm calling the language I'm working on.
05:39:11 <evincar> It's code-named "Very" at the moment.
05:39:22 <evincar> I was trying to come up with the least searchable language name I could.
05:39:30 <evincar> I failed, but it was a good time.
05:39:33 <Sgeo_> Null
05:39:44 <CakeProphet> of
05:39:52 <Sgeo_> Not "Null". ""
05:40:09 <evincar> No, the name of that one Sigur Rós album, ( )
05:40:18 <monqy> name it an operator character so google won't work
05:40:25 <evincar> Possibly the most painfully artsy thing that has ever been produced.
05:40:42 <monqy> " " would also work
05:40:56 <CakeProphet> site:goatse.bz
05:40:57 <monqy> or a literal mess of parentheses
05:41:17 <Sgeo_> (((((((((()))))))))
05:41:23 <monqy> too clean
05:41:29 <monqy> ())()(()))()()()((()()()()()()()))((()(()()
05:41:31 <Sgeo_> It's missing an end-paren
05:41:45 <evincar> It's missing several parens.
05:41:46 <monqy> it is still too lcean
05:42:02 <Sgeo_> I was referring to mine >.>
05:42:03 <monqy> (()(){[]][[]][}}}{[]())()(({}}{{}}0[((){]-0)
05:42:09 <CakeProphet> > length $ replicateM 20 "()"
05:42:09 <monqy> the 0s and - are for artistic effect
05:42:10 <lambdabot> 1048576
05:42:22 <Sgeo_> replicateM?
05:42:27 <monqy> replicateM.
05:42:32 <CakeProphet> > replicateM 20 "()" !! (1048576/2)
05:42:33 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
05:42:33 <lambdabot> arising from a use o...
05:42:38 <monqy> hheheheh
05:42:40 <CakeProphet> > replicateM 20 "()" !! (1048576 `div` 2)
05:42:41 <evincar> Perhaps the GPLv3 encoded in octal where the digits are ([{<>}]).
05:42:42 <lambdabot> ")((((((((((((((((((("
05:42:47 <monqy> good name
05:42:56 <CakeProphet> > replicateM 20 "()" !! (1048576 `div` 3)
05:42:57 <lambdabot> "()()()()()()()()()()"
05:43:01 <CakeProphet> ...
05:43:10 <CakeProphet> > replicateM 20 "()" !! (1048576 `div` 10)
05:43:11 <lambdabot> "((())(())(())(())(()"
05:43:17 <Sgeo_> > replicateM 2 "()"
05:43:18 <lambdabot> ["((","()",")(","))"]
05:43:45 <CakeProphet> > (`replicateM` "abc") =<< [0..]
05:43:45 <lambdabot> ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","a...
05:44:03 <Sgeo_> "replicateM n act performs the action n times, gathering the results.
05:44:03 <Sgeo_> "
05:44:09 <CakeProphet> yep.
05:44:10 <monqy> > (`replicateM` "abc") -<< [0..]
05:44:11 <lambdabot> Not in scope: `-<<'
05:44:13 <monqy> oops
05:44:17 <Sgeo_> "performs the action". Entirely, 100% clear outside of the IO monad
05:44:21 <monqy> > [0..] >>- (`replicateM` "abc")
05:44:22 <lambdabot> ["","a","aa","b","aaa","c","ab","aaaa","ac","aab","ba","aaaaa","bb","aac","...
05:44:32 <CakeProphet> Sgeo_: >> I believe
05:44:34 <CakeProphet> @src replicateM
05:44:34 <lambdabot> replicateM n x = sequence (replicate n x)
05:44:41 <Sgeo_> Or maybe the list monad's not all that intuitive to me
05:44:43 <CakeProphet> @src sequence
05:44:43 <lambdabot> sequence [] = return []
05:44:43 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
05:44:43 <lambdabot> -- OR: sequence = foldr (liftM2 (:)) (return [])
05:44:59 <Sgeo_> I think I get it
05:45:00 <monqy> CakeProphet: >> doesn't gather results so it couldn't be that
05:45:16 <monqy> the list monad is easy
05:45:43 <Sgeo_> Not when documentation talks about monads in terms of their "actions"
05:46:14 <monqy> thinking of the list monad as nondeterministic computation, a list action is a list of possible results
05:46:57 <Sgeo_> I knew the nondeterministic thing, just didn't think of it as an "action", ty
05:48:14 <CakeProphet> > (`replicate` "abc") =<< [0..]
05:48:15 <lambdabot> ["abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","a...
05:48:40 <monqy> great
05:49:05 <CakeProphet> > sequence $ (`replicate` "abc") =<< [0..]
05:49:07 <lambdabot> *Exception: stack overflow
05:49:35 <CakeProphet> > sequence "abc"
05:49:36 <lambdabot> Couldn't match expected type `m a'
05:49:36 <lambdabot> against inferred type `GHC.Types...
05:49:43 <CakeProphet> > sequence ["abc", "abc"]
05:49:44 <lambdabot> ["aa","ab","ac","ba","bb","bc","ca","cb","cc"]
05:50:06 <CakeProphet> > sequence ["abc", "cba"]
05:50:07 <lambdabot> ["ac","ab","aa","bc","bb","ba","cc","cb","ca"]
05:50:20 <CakeProphet> > sequence ["abc", "123"]
05:50:20 <lambdabot> ["a1","a2","a3","b1","b2","b3","c1","c2","c3"]
05:50:46 <CakeProphet> > sequence ["abc", "123", "!@#"]
05:50:46 <lambdabot> ["a1!","a1@","a1#","a2!","a2@","a2#","a3!","a3@","a3#","b1!","b1@","b1#","b...
05:50:47 <monqy> sequence in list monad is handy
05:51:12 <monqy> does lambdabot have syb
05:51:13 <monqy> > everywhere (mkT reverse) [1..10]
05:51:14 <lambdabot> Ambiguous type variable `a' in the constraint:
05:51:14 <lambdabot> `Data.Typeable.Typeable a...
05:51:16 <monqy> oops
05:51:26 <monqy> > everywhere (mkT (reverse :: Integer -> Integer)) [1..10]
05:51:27 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
05:51:27 <lambdabot> against inf...
05:51:31 <monqy> oops oops
05:51:31 <CakeProphet> :t everywhere
05:51:32 <lambdabot> forall a. (Data a) => (forall a1. (Data a1) => a1 -> a1) -> a -> a
05:51:40 <CakeProphet> lol wat
05:51:45 <monqy> > everywhere (mkT (reverse :: [Integer] -> [Integer])) [1..10]
05:51:46 <lambdabot> [2,4,6,8,10,9,7,5,3,1]
05:51:50 <monqy> yes lambdabot has syb
05:52:12 <CakeProphet> :t mkT
05:52:13 <lambdabot> forall b a. (Typeable a, Typeable b) => (b -> b) -> a -> a
05:52:23 <CakeProphet> ....
05:52:27 <monqy> > everywhere (mkT (reverse :: [Integer] -> [Integer]) `extT` (succ :: Integer -> Integer)) [1..10]
05:52:28 <lambdabot> [3,5,7,9,11,10,8,6,4,2]
05:52:57 <evincar> So there's this girl I know who's a software engineering major.
05:53:24 <CakeProphet> > everywhere (mkT (map toUpper :: String -> String)) "hello"
05:53:25 <lambdabot> "HELLO"
05:53:26 <evincar> And she was trying to argue today that iteration is more intuitive than recursion.
05:53:30 <monqy> > everywhere (mkT (reverse :: [Integer] -> [Integer]) `extT` ((:[]) :: Integer -> [Integer]) `extT` (concat :: [[Integer]] -> [Integer])) [1..10]
05:53:31 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
05:53:31 <lambdabot> against inf...
05:53:33 <monqy> oops
05:53:47 <CakeProphet> evincar: lolno
05:53:48 <nisstyre> I would tend to disagree with that viewpoint
05:53:50 <evincar> And I wept.
05:53:59 <evincar> Well, not really.
05:54:00 <CakeProphet> evincar: for simple algorithms, maybe.
05:54:03 <evincar> I just told her she was wrong.
05:54:07 <CakeProphet> but... not really.
05:54:10 <evincar> Or at least misguided.
05:54:11 <CakeProphet> it's the same thing.
05:54:25 <evincar> It is...
05:54:40 <evincar> ...but there's internal repetition and external repetition...
05:55:00 <evincar> ...and internal repetition is usually more intuitive for, y'know, decomposing problems.
05:55:12 <evincar> But I can't fault her.
05:55:13 <monqy> recursion is less confusing to me
05:55:13 <CakeProphet> I think you're just making up terms now.
05:55:24 <monqy> recursion is also cleaner
05:55:27 <monqy> recursion is also better
05:55:27 <evincar> She's only studied a quarter of Python and two quarters of Java.
05:55:40 <monqy> not self-taught? pfffffffffffft
05:55:41 <evincar> And you just know they didn't get into any FP.
05:55:46 <CakeProphet> monqy: not as efficient if unoptimized, however.
05:56:02 <evincar> She's surprisingly good for having just started.
05:56:04 <evincar> To her credit.
05:56:16 <evincar> But her process is so...processy.
05:56:17 -!- GuestIceKovu has joined.
05:56:19 <evincar> Businessy.
05:56:54 <CakeProphet> @pl join . sequence
05:56:54 <lambdabot> join . sequence
05:57:05 <monqy> CakeProphet: congratulations
05:57:28 <CakeProphet> > everywhere (mkT (join . sequence :: String -> String)) "hello"
05:57:29 <lambdabot> Couldn't match expected type `GHC.Types.Char'
05:57:29 <lambdabot> against inferred type...
05:57:42 -!- Slereah has quit (Ping timeout: 240 seconds).
05:58:24 <CakeProphet> oh rite
06:00:01 <itidus20> recursion vs iteration
06:00:05 <monqy> hi
06:00:20 <CakeProphet> I think itidus20 is a bot.
06:00:30 <Sgeo_> Tail-optimizable recursion might not be that intuitive all the time
06:00:51 <itidus20> i wonder if one is more intuitive than another
06:01:07 <CakeProphet> >_>
06:01:15 <evincar> Wouldn't tail-calls make more sense to someone who prefers iteration?
06:01:34 <evincar> Also, just gonna point out, everydamnthing is a fractal.
06:01:45 <CakeProphet> what?
06:02:06 <evincar> In nature. Many things exhibit fractal characteristics. They're recursive, in a way.
06:02:24 <evincar> From clouds to rocks to brains to coastlines.
06:02:31 <CakeProphet> ah I just didn't association nature to everydamnthing
06:02:53 <evincar> You bloody well should.
06:03:04 <CakeProphet> also I don't think coastlines are fractals.
06:03:05 <evincar> :P
06:03:12 <CakeProphet> and I've never heard of brains being fractals.
06:03:17 <monqy> > everywhere (mkT (reverse :: [Integer] -> [Integer])) (take 5 $ inits [0..])
06:03:18 <lambdabot> [[],[0],[1,0],[1,2,0],[1,3,2,0]]
06:03:21 <CakeProphet> but plants, sure, kind of.
06:03:26 <itidus20> but unpacking a truck is iterative
06:03:26 <evincar> Talking about self-similarity here.
06:03:27 <monqy> oh right
06:03:34 <monqy> i messed up :(
06:03:53 <CakeProphet> itidus20: you can also describe unpacking a truck recursively.
06:03:54 <elliott> <CakeProphet> also I don't think coastlines are fractals.
06:03:56 <elliott> they are.
06:04:00 <evincar> In your brain, there is an arrangement of weights in your neurons that mirrors the outside world, and one that mirrors yourself.
06:04:06 <evincar> elliott: Thank you.
06:04:06 <itidus20> i might be wrong
06:04:17 <evincar> CakeProphet: Go read Mandelbrot's paper on it.
06:04:17 <CakeProphet> elliott: how does that work. Where is the self-similarity?
06:04:19 <elliott> CakeProphet:
06:04:24 <elliott> http://en.wikipedia.org/wiki/How_Long_Is_the_Coast_of_Britain%3F_Statistical_Self-Similarity_and_Fractional_Dimension
06:04:27 <elliott> http://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension#Random_and_natural_fractals (fourth item)
06:04:37 <elliott> Hausdorf dimension of the coast of Britain ~= 1.25
06:04:38 <evincar> Fractional dimension isn't necessarily restricted to self-similar structure.
06:04:52 <elliott> (credit to Lewis Fry Richardson, popularised by above Mandelbrot paper)
06:04:56 <itidus20> CakeProphet: how exactly would you do that? @ unpacking a truck
06:05:05 <itidus20> describing it recursively i mean
06:05:37 <evincar> unpack first:rest = unpackOne(first) + unpack(rest)?
06:05:42 <CakeProphet> itidus20: to unpack a truck with 0 items, you sit back and relax. to unpack a truck with n items, you remove one item from the truck, and then unpack a truck with n-1 items.
06:05:44 <itidus20> ok humm
06:06:11 <itidus20> so is iteration is a specialization of recursion?
06:06:15 <CakeProphet> yes.
06:06:20 <CakeProphet> well, no.
06:06:32 <evincar> They're computationally equivalent.
06:06:45 <evincar> Neither's really a specialisation of the other.
06:06:46 <monqy> unpacking a truck: mapM_ unpack stuff
06:06:51 <CakeProphet> generally the same kinds of problems can be solved with both approaches. however the iterative approach uses extra data structures that are hidden away in the mechanism of recurson.
06:07:03 <CakeProphet> +i
06:07:14 <elliott> itidus20: iteration is a specific kind of recursion.
06:07:15 <elliott> evincar: false
06:07:19 <elliott> evincar: iteration is equivalent to tail recursion only
06:07:23 <zzo38> How do you figure out the order of specificness of patterns in case alternatives? Would it work to count how many constructors are mentioned?
06:08:04 <zzo38> Would a tree structure work?
06:08:24 <itidus20> is recursion slower and uses more memory for the same task?
06:08:47 <itidus20> only on a typical computer perhaps ^_^;
06:09:04 <elliott> itidus20: mu
06:09:10 <itidus20> computers aren't built for recursion after all
06:09:19 <elliott> unwarranted assumption.
06:09:28 <elliott> implicit unjustified assumption: computers are built for iteration.
06:09:40 <elliott> implicit unjustified assumption: recursion can never be compiled to iteration.
06:09:48 <itidus20> ooh
06:09:52 <Sgeo_> They're built for GOTOs, aren't they? Or am I mistaken?
06:09:56 <itidus20> now that last one is interesting
06:10:12 <evincar> elliott: Yes, but I was only saying that any recursive function can be expressed iteratively.
06:10:39 <monqy> if you emulate the call stack or what have you
06:10:48 <itidus20> so if the compiler can handle such things, then efficiency is no longer an issue
06:11:00 <itidus20> and its a matter of what is more usable
06:11:06 <monqy> ~recursion~
06:11:07 <elliott> itidus20: also assumption: the fact that hardware is not specifically created for recursion means it's inefficient to recurse.
06:11:11 <elliott> none of these things are good assumptions
06:11:35 <Sgeo_> It's memory-inefficient to non-tail-recurse, isn't it?
06:11:37 <evincar> Hardware these days, and instruction sets specifically, are pretty obviously geared toward compiler writers.
06:11:58 <monqy> h,,m?
06:12:25 <itidus20> ^^;;
06:12:27 <elliott> Sgeo_: in lazy languages, nearly irrelevant.
06:12:43 <elliott> tail recursive functions can leak stack and non-tail recursive functions can use constant space.
06:13:12 <Sgeo_> tail recursive functions can leak stack? How so?
06:14:09 <ais523> elliott: I use a slightly different definition in my work; leaking stack means that it's not tail recursion even if it looks like it
06:14:22 <itidus20> space doesn't really matter..
06:14:55 <Sgeo_> > let fac n = if n == 0 then 1 else n * fac (n - 1) in fac 1000
06:14:56 <lambdabot> 402387260077093773543702433923003985719374864210714632543799910429938512398...
06:14:58 <elliott> ais523: tail recursion is a syntactic thing
06:15:00 <Sgeo_> > let fac n = if n == 0 then 1 else n * fac (n - 1) in fac 100000
06:15:04 <lambdabot> mueval-core: Time limit exceeded
06:15:04 <elliott> itidus20: space means memory.
06:15:14 <itidus20> ya
06:15:15 <ais523> elliott: well, "not a legal target for a tail recursion operator"
06:15:18 <Sgeo_> Time limit, not space limit, bleh.
06:15:28 <Sgeo_> > let fac n = if n == 0 then 1 else n * fac (n - 1) in fac 10^100
06:15:29 <lambdabot> 946898192795960083943247682213801587131773992158187493243695155509789235917...
06:16:56 <Sgeo_> > 10^100
06:16:57 <lambdabot> 100000000000000000000000000000000000000000000000000000000000000000000000000...
06:17:13 <zzo38> I think [2,3] is equally specific as [2,3,4] even though the former mentions five constructors and the latter mentions seven constructors
06:20:13 <itidus20> ok my assumptions are founded on cognitive dissonance
06:20:23 <itidus20> a good foundation for any healthy assumption
06:20:24 <monqy> hi
06:20:28 <elliott> i should probably sleep
06:21:55 <Sgeo_> Why does fac 10^100 seem to work decently?
06:22:02 <Sgeo_> > let fac n = if n == 0 then 1 else n * fac (n - 1) in fac (10^100)
06:22:03 <lambdabot> *Exception: stack overflow
06:22:10 <elliott> lol
06:22:11 * Sgeo_ mumbles about precedence
06:26:53 <evincar> Huh. Neil Gaiman's daughter is Madeleine Rose Elvira Gaiman.
06:27:01 <evincar> I dated a Madeleine Rose.
06:27:35 <evincar> She was insane, and not in the usual sense that guys say their ex-girlfriends are insane.
06:28:41 <evincar> Also, I'm thinking of adding macros to Very but it would involve making parsing the source require executing it. :(
06:29:16 <evincar> Might hold off on that.
06:31:41 <itidus20> evincar: how do you know what guys mean about their ex's being insane? :D
06:32:14 <evincar> itidus20: I've asked.
06:32:16 <itidus20> sorry.. yeah.. women can really be insane
06:32:28 <evincar> Nope. Had nothing to do with the fact that she's female.
06:33:03 <itidus20> insanity can be attractive up to a limit
06:33:27 <evincar> She's just self-absorbed, elitist, and New Agey, and always had to get her way or would shut down.
06:34:45 <evincar> Demonstrates mental illness, but I shouldn't get into it.
06:34:45 <evincar> And I dated her for...almost three years? Two and a half?
06:35:09 <elliott> nothing you said is actually related to mental illness; signed, someone with mental illnesses
06:35:23 <evincar> elliott: I don't really want to talk about the legitimately wrong things.
06:35:31 <elliott> what?
06:36:15 <evincar> Well, I dunno. It's a bit disrespectful.
06:36:23 <evincar> Though I've already passed that line somewhere.
06:36:36 <elliott> calling someone insane is generally seen as disrespectful in most cultures, I think
06:37:47 <itidus20> she probably reads psychology books and plays mind games
06:38:09 <elliott> "she probably reads psychology books and plays mind games" -- itidus20, expert on women
06:38:10 <evincar> Alright, so she was depressed, suicidal, would hit and starve herself, sucked her thumb, and I'm sure I'm forgetting things.
06:38:25 <elliott> mainly the thumb-sucking, right?
06:38:52 <evincar> Basically she was spoiled to the point of it negatively affecting her life and the lives of those around her.
06:38:58 <evincar> But her parents didn't do the spoiling.
06:38:59 <evincar> Nobody did.
06:39:05 <evincar> She was just *like that*.
06:39:35 <itidus20> i will put this all into context
06:39:49 <evincar> I didn't find out about these things all at once.
06:39:53 <itidus20> evincar was casually trying to read about neil gaiman, and then his daughters name triggered memories of his insane ex
06:39:59 <evincar> And I was away at school most of the time.
06:40:03 <evincar> So that's how it went on so long.
06:40:09 <evincar> And yes, that's exactly what happened.
06:40:14 <evincar> It was a shitty period in my life.
06:40:22 <evincar> I know it's not exactly relevant to your interests, all.
06:40:48 <elliott> but seriously what has thumb-sucking got to do with anything
06:41:32 <itidus20> elliott: it's a symptom, indicative of his ex's manifold of insanity
06:41:59 <evincar> I'd call it "not a good sign that she's a well-adjusted adult".
06:42:25 <itidus20> i don't know anyone who is well adjusted to be honest except my relatives
06:42:49 <evincar> It's a relative thing. I know plenty of people who are perfectly stable in day-to-day life.
06:42:53 <evincar> But in relationships they go batty.
06:42:57 <itidus20> what is it with relatives, they always seem so well adjusted.. except the uncle who home-brews his beer and tells dirty jokes loudly
06:43:49 <evincar> Fun fact: because of having painful conversations with this girl on IM while my roommate ate food behind me, I now have a unique response to that sound.
06:44:20 <evincar> Specifically, if someone eats sloppy or crunchy food around me, especially while I'm on a computer, I get stressed and disoriented and need to leave.
06:44:20 <itidus20> evincar: so all these associative triggers need to be purged?
06:44:39 <evincar> It's kind of sad how Pavlovian conditioning works.
06:44:39 <itidus20> ah.. wow.
06:44:52 <evincar> Nah, that's just a fun snippet.
06:44:55 <evincar> I'm done.
06:45:04 <itidus20> you can refer to my previous statement: <elliott> "she probably reads psychology books and plays mind games" -- itidus20, expert on women
06:45:26 <itidus20> i think he was being sarcastic but that is probably for good reason
06:45:37 <evincar> Worst part was, she was totally unaware that anything she did bothered me. :P
06:45:43 <evincar> I lied constantly.
06:45:50 <evincar> Now I don't.
06:45:55 <evincar> And my life is full of win.
06:46:04 <itidus20> oh you poor thing.. women can often tell when a man is lying
06:46:26 <elliott> s/women/people/ s/man/person/
06:46:32 <evincar> I lied compulsively for like eight years.
06:46:38 <evincar> So I got pretty good at it.
06:46:50 <itidus20> elliott: no, the female gender is especially good at reading body language >:)
06:47:08 <evincar> I disagree.
06:47:21 <itidus20> ok fine.. more unwarranted assumptions
06:47:23 <itidus20> from me
06:47:29 <itidus20> graaahhh!
06:47:40 <elliott> s/gender/sex/, then define female sex unambiguously (you will have an almost impossible time doing this)
06:47:41 <evincar> I don't have any evidence for my opinion that the sexes are roughly evenly matched...
06:47:47 <evincar> ...but it's a reasonable assumption.
06:47:47 * elliott -- THE GREAT ANTAGONIST
06:47:54 <evincar> And I can play the "bisexual" card if necessary.
06:47:59 <evincar> Not sure if that helps.
06:48:40 <evincar> Hah, yeah, it's practically impossible to determine the gender of an individual in a rigorous way.
06:48:51 <evincar> If it looks like a female, call it a female.
06:48:54 <evincar> That's what I say.
06:49:46 <elliott> you could ask
06:50:00 <evincar> Also, I appreciate transsexuals have a hard time, but the ones that insist on being called male when they're obviously female, and get angry when strangers "mistake" them for the biological gender that they are, are not winning any points with me.
06:50:25 <evincar> You can want to live for a while as the other gender, and that's great.
06:50:32 <evincar> But...you have to cut people some slack.
06:51:25 <evincar> Asking is frowned upon for some reason.
06:52:38 <itidus20> evincar: theres a few schools of thought i think on this matter of traumatic associations
06:53:09 <itidus20> one is to simply try to avoid the stimulus.. i think this kind of works.
06:53:33 <itidus20> but it has a price to pay also.. it involves kind of micromanaging ones environment
06:54:11 <itidus20> but i should also point out that for example.. if your town is ravaged by a world war that there could be no escaping the reminders
06:54:54 <evincar> ...
06:55:05 <itidus20> the alternative i do not understand so well
06:55:16 <itidus20> as in, how to combat conditioning
06:55:23 <evincar> You know, I'm pretty sure no one's gonna be eating beans behind me while I program, in the event of my obscure New Hampshire town being ravaged by world war.
06:55:33 <evincar> Hell, this is an excellent place to be in the event of a zombie apocalypse.
06:55:58 <itidus20> evincar: what i mean is that if a war is the source of your trauma, it would be kind of inescapable
06:56:02 <evincar> In the hills, 10 miles from the nearest city, plenty of fresh water, everyone has guns, and a forest full of game.
06:56:36 -!- elliott has left ("Leaving").
06:56:53 <itidus20> the expectation that it should be somehow easy to get over it is wrong of course
06:57:54 <itidus20> it seems intuitive that beans shouldn't have such an effect on someone. however the truth is that it does. it is not about your strength, but it is just that the damage done is deeper than it appears
06:58:30 <evincar> It's not damage, though.
06:58:36 <evincar> It's Pavlovian conditioning.
06:58:47 <evincar> I simply *associate* that sound with the feeling of a need to escape.
06:59:01 <evincar> Which isn't the worst feeling.
06:59:02 <itidus20> why is it not damage?
06:59:05 <evincar> It's not painful.
06:59:29 <evincar> It's gotten me out on a nice long walk on more than one occasion.
07:00:08 <itidus20> if i was to bestow on someone an association between the sound of eating beans and the need to escape, would they not be damaged by it?
07:01:19 <evincar> It's not beans specifically.
07:01:27 <evincar> And no, I wouldn't count it as damage.
07:01:45 <itidus20> if a person is better off without it then i think its damage
07:01:55 <evincar> I used beans as an example because I could really go for some beans.
07:02:03 <itidus20> ^crunchy foods
07:02:03 <evincar> The Heinz ones, in the sauce. Mm.
07:03:36 <evincar> I think it's so oddly specific that it's not a detriment, anyway.
07:03:43 <itidus20> the real trouble is assuming we are entirely responsible for our mental wellbeing through application of willpower
07:03:48 <itidus20> when clearly there is more going on
07:04:16 <itidus20> like just sitting and the thoughts gather and an overwhelming storm of thoughts
07:04:45 <itidus20> the errors introduced by one pavlovian conditioning piled upon another
07:04:51 <itidus20> soon you are very far from the truth
07:05:15 <evincar> Or...it's an amusing anecdote.
07:05:28 <evincar> And I ask my roommate to please not eat that right now while I'm trying to work.
07:05:53 <itidus20> like trying to guide a robotic arm, where each of the joints has a slightly inaccurate rotation
07:06:13 <itidus20> and collectively the inaccuracies end up with the robot's arm far from where you expected
07:06:54 <itidus20> you can't really account for every last piece of traumatic conditioning... they don't stop
07:07:07 <itidus20> ok they occasionally stop... but not enough
07:07:28 <evincar> You're talking about something much broader than what I am. :P
07:07:55 <evincar> And to be honest I'm not really interested in examining the psychology of it.
07:08:07 <evincar> Or philosophical implications or whatever.
07:08:32 <itidus20> the rational aspect of the mind tries to explain it all... but it can't
07:09:25 <itidus20> it is practically useless to be rational about these things
07:10:29 <itidus20> i watched indiana jones 4 on tv the other day.. he is trapped in quicksand kinda
07:10:55 <itidus20> someone brings him a snake for him to use as a rope
07:11:07 <itidus20> he can't grab it because of his phobia
07:11:26 <itidus20> so he tells the guy "don't call it a snake! tell me to grab the rope!"
07:11:43 <itidus20> so he is able to grab the snake when the guy says "grab the rope"
07:12:42 <itidus20> its not rational, but it worked (i know its only fiction)
07:24:40 -!- ais523 has quit (Remote host closed the connection).
07:25:14 <zzo38> What happen in Haskell if you make instance of Eq class but == operator is not commutative? Or if == and /= are not the "not" of each other?
07:25:42 <monqy> things will break
07:31:15 <monqy> or at least not work as expected
07:33:29 <evincar> Anyone interested in starting a country?
07:33:41 <evincar> I've had this idea called "Opensourcia" floating around for awhile.
07:35:50 <monqy> sounds miserable
07:37:15 <evincar> I'll take that as a no.
07:37:38 <evincar> Should Very have references?
07:37:48 <evincar> Currently everything's done with values.
07:37:52 <evincar> Not that it matters much I guess.
07:38:18 <evincar> 3 dup results in two copies of "3", not two references to the same instance.
07:38:52 <monqy> why not have sharing :)
07:39:20 <evincar> Sharing is nice. It'd increase performance probably.
07:50:43 <monqy> so uh
07:50:46 <monqy> what's opensourcia
07:51:44 <evincar> I dunno, I was thinking about the possibility of a government with full transparency.
07:51:53 <evincar> Citizens submit bug reports in laws.
07:51:56 <evincar> That sort of thing.
07:52:05 <monqy> oh
07:52:17 <zzo38> Do you know about the BLISS programming language?
07:52:20 <evincar> The currency would be fixed to the population.
07:52:22 <monqy> what is bliss
07:52:35 <monqy> "the currency would be fixed to the population"? helo?
07:52:37 <monqy> help, I mean
07:52:37 <cheater> bug reports assume that there is a desired and an undesired outcome
07:52:45 <monqy> ???
07:52:55 <cheater> with laws, there will always be some people who desire another outcome as you
07:52:57 <evincar> monqy: The total amount of Opensourcian dollars would be limited based on the population of Opensourcia.
07:53:24 <cheater> that is because every society has a big part which is speculative or criminal
07:53:27 <evincar> So we wouldn't legislate things that are contentious.
07:53:34 <cheater> at least in some detail
07:53:49 <evincar> It would be individual and minor court settlement, mostly.
07:53:54 <cheater> e.g. a majority of people have crossed the street at a red light at least once
07:54:06 <cheater> yes evincar
07:54:16 <cheater> you've just described every law system in existence
07:54:19 <evincar> I think the majority of laws can be made discretionary.
07:54:27 <cheater> except your bug reports are called court cases
07:54:34 <evincar> Which is tantamount to not having them.
07:54:48 <itidus20> So what do mathematicians want these days? Are they coming to terms with the fact that their knowledge is effectively a meaningless excuse to sit at a desk and press keys?
07:54:54 <evincar> Not really. Court cases don't go meta.
07:54:54 <itidus20> Or is there something more going on?
07:54:59 <cheater> you cannot abide by laws you do not understand
07:55:13 <evincar> Okay...
07:55:27 <evincar> ...that's another topic.
07:55:29 <zzo38> BLISS was designed in 1970.
07:55:34 <cheater> arbitrarily changing laws are not possible to understand in any sort of even slightly complex situation
07:55:44 -!- elliott has joined.
07:55:58 <monqy> hi
07:56:04 <itidus20> mathematicians are useful for "me"... but are mathematicians useful for themselves?
07:56:21 <evincar> It's not arbitrary, but okay.
07:56:25 <itidus20> or are they a kind of labor force of the mind... industrialized
07:56:27 <cheater> most of the time court cases are just discourse that establishes facts and brings up relevant laws, trying to reduce the situation at hand to the outcome pointed to by the laws
07:56:39 <cheater> most arguments are about the interpretation of said laws
07:56:44 <evincar> And it's all publicly available anyway.
07:56:56 <cheater> there are very few so called first precedents happening
07:57:05 <itidus20> mathematics: the sweatshop of the intellect
07:57:47 <cheater> itidus20, i have no idea where ever you would get a stupid notion like this
07:57:59 <cheater> mathematics is applicable in lots and lots of places
07:58:02 <elliott> a more entertaining place than you get yours
07:58:07 <evincar> But it's a half-formed idea anyway.
07:58:28 <evincar> I just brought it up because I was curious what people's reactions would be.
07:58:46 <evincar> It's largely just a name.
07:58:58 <evincar> And really, most open-source projects are run by "benevolent dictators".
07:59:15 <cheater> government transparency and openness is a target for many countries
07:59:18 <cheater> but not all
07:59:20 <itidus20> cheater: but still, are mathematicians nothing more than a highly paid sweatshop
08:00:05 <monqy> evincar: benevolent dictators such as yourself?
08:00:08 <cheater> however most governments are structures that are very dated and it's difficult to roll out institutional transparency
08:00:19 <elliott> did evincar say benevolent dictator
08:00:31 <elliott> please tell me evincar proposed government by benevolent dictator
08:00:42 <elliott> guido 4 prez
08:01:24 <itidus20> cheater: it is the way that mathematicians seem to acknowledge that nothing new is really encountered.. they just provide formal proofs for things which are already known etc
08:01:25 <monqy> he said "benevolent dictator" in relation to open source projects, connecting that to his opensourcia
08:01:37 <monqy> so i drew the ocnnectione.....
08:02:02 <elliott> opensourcia "one nation under god (god is a fake, evincar rules the place instead)"
08:02:06 <elliott> (official motto)
08:02:31 <evincar> I wouldn't make a good leader.
08:02:40 <zzo38> In BLISS, if you want to read the value of a variable you must prefix it with a dot
08:02:43 <evincar> I mean, I am a good leader when forced into the position.
08:02:47 <evincar> But I don't like it.
08:02:59 <elliott> "I wouldn't make a good leader." "I am a good leader"
08:03:03 <elliott> -- e v. incar
08:03:06 <elliott> founder of opensourcia
08:03:07 <evincar> I'm more of a Pompous Grand Vizier type.
08:03:16 <elliott> s/ dollar sign/nothing/oops
08:03:21 <evincar> Welcome to correcting yourself.
08:03:27 <evincar> Oh wait, you're a functional programmer.
08:03:30 <evincar> There's no mutation.
08:03:39 <evincar> I can see how you got confused.
08:04:24 <evincar> Wait, there's a timestamp.
08:04:27 <evincar> FRP!
08:04:29 <evincar> :D
08:04:36 <evincar> All is well.
08:04:52 <elliott> "what is FRP" -- e v. incar, founder of opensourcia, motto: "what is frp"
08:05:06 <cheater> itidus20, that is wrong, new things are encountered, the notion is that they are not created.
08:05:24 <cheater> that is a deep philosophical rather than every day notion
08:05:45 <monqy> "bad joke or am i really poking fun at functional programeng and eliot" - evincar, one and only supreme führer of open source ia
08:06:04 <cheater> itidus20, or to better word it, things are encountered anew
08:06:12 <cheater> they're not new, but are new to you!
08:06:41 <evincar> monqy: Can't it be both?
08:06:51 <elliott> what is frp is a really good country motto
08:07:00 <monqy> maybe it was an inclusve ore...
08:07:02 <elliott> i want to live in a country whose motto is "what is frp"
08:07:17 <evincar> You may want to reconsider.
08:08:35 -!- evincar has quit (Quit: Anyway, sleep.).
08:08:39 <monqy> bye evincar
08:09:24 <elliott> "bye evincar" --monqy, enemy of opensourcia, motto: "what isn't frp"
08:09:44 <monqy> im proprietaria
08:10:05 <itidus20> sorry went afk
08:10:37 <elliott> proprietaria
08:10:51 <monqy> proprietaria
08:10:58 <itidus20> cheater: i am projecting. as in, i am taking those things i percieve in myself and accusing you of having them
08:11:08 <itidus20> or not so much "you" as mathematicians
08:11:24 <elliott> burn
08:12:51 <cheater> itidus20, can you elaborate?
08:13:45 -!- myndzi has quit (Ping timeout: 245 seconds).
08:14:24 -!- azaq23 has quit (Ping timeout: 252 seconds).
08:17:29 <itidus20> cheater, i was trying to define projectin
08:17:33 <itidus20> ^projection
08:17:39 <itidus20> such as..
08:17:45 <itidus20> if i said.. you're lazy
08:18:14 <itidus20> if i was projecting, it means, deep down i believe i am lazy, and so i am saying you are the lazy one
08:24:26 <cheater> right i understand projection
08:24:36 <cheater> what sort of work are you doing?
08:24:50 <cheater> i understand you are not working as a mathematician
08:28:56 <zzo38> I read the manual. Declarations of structure types in BLISS are extremely versatile; they can even contain arbitrary program code. They can have access parameters and declaration parameters. You can optionally have field names, but those are also very generalized.
08:31:52 <zzo38> It has a lot of compile-time functions which can be used to write macros. These macros are far more powerful than C macros; I think they are more like TeX macros.
08:33:48 <itidus20> My job is to occupy my bedroom. Loading the dishwasher. Putting groceries away sometimes. Chat in IRC.
08:34:18 <elliott> good job
08:39:25 <itidus20> And to challenge any obstacles that obstruct me from ... and at this point it gets murky
08:40:45 <elliott> so rude of cheater not to thank you for your in-depth answer :{
08:42:14 <itidus20> that obstruct me from (living/forging my mind for myself and humanity/sharpening my mind/doing what I must do in life/making my dead father proud)
08:42:20 <itidus20> etc etc
08:42:33 <itidus20> lol
08:49:36 <itidus20> I think it is because that focusing in a world full of distractions is so difficult that it is good.
08:49:55 <itidus20> Uh. A lot can be learned in the space of one day where attention is focused, you know.
08:50:05 <itidus20> A great deal indeed.
08:50:39 <elliott> ok
08:50:41 <itidus20> Infact, one can learn so much in the space of a day as to brag about it for a month.
08:51:16 <elliott> is that what you do
08:51:22 <itidus20> no
08:51:30 <monqy> bragging about learning things?
08:51:32 <monqy> is this what you do
08:51:38 <itidus20> i dont learn things
08:51:45 <monqy> would you brag
08:51:48 <itidus20> i brag because i don't learn things
08:51:53 <monqy> oh
08:52:16 <itidus20> i should like to think (laughs to myself) that if i learned something substantially useful that i would actually apply it
08:52:32 <itidus20> but... yeah i am the foolish bragging sort
08:52:36 -!- zzo38 has quit (Quit: +!>@./~#!).
08:52:59 <itidus20> i know that even learned mathematicians have their off days, down time..
08:53:18 <itidus20> heavy learning peaks and then plateaus
08:53:57 <itidus20> maybe they have enough that it comes time to balance theory with practice
08:57:32 <itidus20> maybe i have an aversion to learning in the same way that evincar is conditioned to need to escape when he hears the noise of someone crunching
08:58:43 <monqy> hm?
08:59:07 <itidus20> hmmmmm
09:09:05 <itidus20> this woman.. would send me email after email of porn images in order to condition me to associate her with pornography
09:10:43 <itidus20> of course it is wrong as elliott explained to tar all women with the same brush.. but that is an example of the madness i attracted into my online life
09:11:37 <monqy> how did this even happen
09:11:44 <elliott> itidus20: she might have been a spambot
09:12:18 <itidus20> no she just cut and pasted the images from websites into the email somehow
09:12:22 <monqy> does this have anything to do with that yahoo chat thing you were talking about
09:12:29 <monqy> a while ago
09:12:31 <itidus20> of course.. i met her in yahoo
09:12:34 <monqy> about how it didn't do you any good
09:12:47 <monqy> I think that may have been all you said
09:13:23 <elliott> are you sure she wasn't a spambot
09:13:41 <itidus20> its not completely evil... but basically i bit off more than i could chew
09:14:25 <itidus20> "oh isn't it great this girl likes porn and likes sending me porn" he thinks to himself. no she was a demonic woman. hahahaha.
09:14:36 <elliott> okay
09:16:15 <itidus20> its my own fault for having such twisted perversions
09:42:55 -!- kmc has quit (Ping timeout: 245 seconds).
09:44:13 -!- kmc has joined.
09:50:07 <CakeProphet> itidus20: I like to eat people.
09:50:09 <CakeProphet> good night.
09:57:48 -!- kmc has quit (Ping timeout: 252 seconds).
10:02:14 -!- myndzi has joined.
10:05:11 -!- GreaseMonkey has quit (Quit: The Other Game).
10:11:46 -!- kmc has joined.
11:25:50 -!- Patashu has joined.
11:29:16 -!- monqy has quit (Quit: hello).
11:29:48 -!- sllide has joined.
11:34:14 -!- Deewiant has quit (Ping timeout: 258 seconds).
11:38:37 -!- boily has joined.
11:49:58 -!- Deewiant has joined.
12:02:27 -!- boily has quit (Quit: WeeChat 0.3.5).
12:13:59 -!- boily has joined.
12:14:19 -!- augur has joined.
12:33:13 <Gregor> W3 validator seems to be giving me internally-inconsistent errors >_>
12:33:19 <Gregor> Element source not allowed as child of element audio in this context. (Suppressing further errors from this subtree.)
12:33:24 <Gregor> Then: If the element does not have a src attribute: one or more source elements, then zero or more track elements, then transparent, but with no media element descendants.
12:33:31 <Gregor> Except, it doesn't have a src attribute, so that's clearly OK.
13:04:57 <atehwa> Remember I told you about arranging a course on esoteric programming languages? We're arranging an "evening school" (peer meeting) first. See https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet
13:06:06 -!- atehwa has set topic: Esolang event @ Hel/Finland on 3.10.2011 | I think pointers are considerably more useful than lambda calculus | http://codu.org/logs/_esoteric/.
13:06:15 -!- atehwa has set topic: Esolang event @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | I think pointers are considerably more useful than lambda calculus | http://codu.org/logs/_esoteric/.
13:22:56 <elliott> neat
13:23:21 <atehwa> ain't it, though :)
13:27:09 <Gregor> "esoteeriset ohjelmointikielet"
13:27:13 <Gregor> Finnish is such a beautiful language.
13:29:37 <elliott> Gregor: hey, if we talked in Finnish then you'd have no problem deciphering my keyboard-mashings
13:29:45 -!- MSleep has changed nick to MDude.
13:31:50 <itidus20> mika tama on? se on bussi
13:33:38 <atehwa> onko tosiaan?
13:34:20 <atehwa> I'm somehow proud to have an esoteric mother's tongue
13:34:59 <atehwa> *mother tongue
13:37:01 <elliott> I'm still not convinced Finnish isn't a hilarious fabrication
13:48:35 -!- kmc has quit (Quit: Leaving).
13:53:02 -!- elliott has quit (Read error: Connection reset by peer).
13:53:12 -!- elliott has joined.
13:53:18 <atehwa> oh, but it is
13:53:30 <atehwa> I have the same feeling about German
13:54:15 <atehwa> A language that works so, must be someone's quirk
13:55:28 -!- kmc has joined.
14:16:55 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:20:58 -!- BeholdMyGlory has joined.
14:24:55 -!- CakeProphet has quit (Read error: Operation timed out).
14:27:11 -!- CakeProphet has joined.
14:27:11 -!- CakeProphet has quit (Changing host).
14:27:11 -!- CakeProphet has joined.
14:35:58 -!- FireFly has joined.
14:40:58 -!- copumpkin has joined.
14:41:48 -!- kwertii has joined.
14:51:02 -!- elliott_ has joined.
14:51:03 -!- elliott has quit (Read error: Connection reset by peer).
15:05:47 -!- Phantom_Hoover has joined.
15:10:13 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:11:20 -!- derrik has joined.
15:14:46 <Phantom_Hoover> Hello everyone.
15:14:46 <lambdabot> Phantom_Hoover: You have 8 new messages. '/msg lambdabot @messages' to read them.
15:14:57 <Phantom_Hoover> What a lovely surprise, lambdabot.
15:15:10 <elliott_> That weirdo derrik keeps sending Phantom_Hoover messages.
15:15:48 <derrik> /msg elliott_ :p
15:16:15 <Phantom_Hoover> No.
15:16:27 <Phantom_Hoover> @tell derrik Stop sending me messages, you sick bastard.
15:16:27 <lambdabot> Consider it noted.
15:21:00 -!- derrik has quit (Ping timeout: 264 seconds).
15:25:34 -!- augur has quit (Remote host closed the connection).
15:26:59 <itidus20> I guess I'm just a sick, sick bastard. Just one sandwich short of a picnic basket.
15:27:50 -!- augur has joined.
15:28:27 <Phantom_Hoover> itidus20, are you Deewiant?
15:28:47 <itidus20> `findquote deewiant
15:28:51 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: findquote: not found
15:28:53 <itidus20> oops
15:32:46 <elliott_> `pastequotes deewiant
15:32:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22811
15:53:07 -!- augur has quit (Remote host closed the connection).
15:57:37 -!- cheater has quit (Ping timeout: 276 seconds).
15:59:47 -!- augur has joined.
16:01:05 -!- kmc has quit (Quit: Leaving).
16:09:56 <itidus20> elliott_: so i have this idea
16:10:32 <itidus20> IDEA: Ideas Destined for Esolang Arena
16:10:32 -!- elliott_ has quit (Read error: Connection reset by peer).
16:10:39 -!- elliott has joined.
16:11:00 <itidus20> elliott: so i have this idea
16:11:06 <elliott> ok
16:11:09 <elliott> go on
16:11:27 <itidus20> its a game engine idea basically.. one i've been cooking for a while
16:11:39 <itidus20> but.. it is gradually making more sense over time
16:11:46 <elliott> ok
16:11:47 <Phantom_Hoover> Is it 2D.
16:12:08 <itidus20> The essence of the idea is 3d gameplay displayed in 2d.
16:12:39 <elliott> itidus20: dwarf fortress does that
16:12:48 <Phantom_Hoover> You mean literally every 3D game ever.
16:12:51 <elliott> arguably, also nethack and all other roguelikes, but that's rather more limited
16:12:58 <elliott> Phantom_Hoover: well I assumed it's something more nuanced than that :
16:12:58 <elliott> :D
16:13:00 <itidus20> Phantom_Hoover: well yes and no....
16:13:02 <itidus20> hmm
16:13:04 <elliott> itidus20: but go on, is it more interesting than just a cross-section view?
16:13:08 <elliott> (that's what DF does)
16:13:09 <itidus20> yes in the literal sense
16:13:13 <itidus20> i mean
16:13:17 <elliott> (because it was designed as a two-dee game first)
16:13:27 <itidus20> yes in the sense that every 3d game is a 2d projection
16:13:36 <itidus20> but...
16:14:20 <itidus20> uhmmm
16:14:22 <itidus20> uhmm
16:14:24 <Phantom_Hoover> Unfortunately, I realised that there are a few 3D games which don't just project to 2D, but they're like 0.1% of games, so it's not a huge deal.
16:15:03 <itidus20> Basically the key to the idea is that it is to look like a 2d game, and yet play like a 3d game.
16:15:31 <itidus20> >:-)
16:15:38 <elliott> go on, then
16:15:42 <itidus20> hummm
16:15:48 <Phantom_Hoover> So you mean like every 3D game ever?
16:15:55 <itidus20> lol
16:16:00 <Phantom_Hoover> I mean, how do you define 3D in the first place?
16:16:02 <itidus20> there isn't an exact idea
16:16:12 <itidus20> phantom.. 3 dimensional vertices
16:16:16 <itidus20> [x][y][z]
16:16:22 <itidus20> :P
16:16:27 <Phantom_Hoover> That's pretty vague.
16:16:30 -!- cheater has joined.
16:16:57 <itidus20> so what is the term for a 3d rectangle? is that a prism?
16:17:01 <itidus20> rectangular prism?
16:17:05 <Phantom_Hoover> A cuboid?
16:17:58 <itidus20> like a umm.. book
16:18:06 <Phantom_Hoover> A cuboid.
16:18:09 <itidus20> ok thanks
16:18:52 <itidus20> ok so my temporary definition is that 3d gameplay means that collision detection happens between cuboid primitives or spheres
16:19:10 <itidus20> or perhaps finite 3d planes
16:19:30 <elliott> That doesn't apply to anything polygon-based, does it?
16:20:10 <Phantom_Hoover> Depends.
16:20:13 <itidus20> a few polygon-based games might be like that ^^;
16:20:30 <Phantom_Hoover> Oolite, at least, does collision detection on cuboids.
16:20:53 <itidus20> now i have to read up what oolite is
16:21:04 <elliott> Play DF instead it's better and also obviously comparable.
16:21:10 <Phantom_Hoover> Open-source Elite remake/
16:21:24 <itidus20> yes... i am working on the assumption that cuboid collision detection is very common in 3d
16:21:38 * itidus20 winces.
16:21:49 <itidus20> or if not... then spheres
16:21:55 <elliott> DFDFDFDFDFDFDFDF, you should play DF.
16:22:46 <itidus20> ok so a cuboid and a sphere are both defined in terms of 3d vertices.
16:23:00 <CakeProphet> I am a Dorf Fartruss
16:23:10 <elliott> itidus20: will you play DF if I ask real nicely.
16:23:19 <cheater> itidus20, in older games bounding boxes would be cuboids or upright cylinders or spheres.
16:23:43 <cheater> nowadays a lot of models also have complicated meshes for collision
16:24:16 <itidus20> i assume here that spheres or cuboids also serve as a kind of preliminary bounds checking
16:24:32 <CakeProphet> I have a great urge to not go to class today
16:24:35 <CakeProphet> and just play DF.
16:24:49 <elliott> itidus20: So if I make a three-dimensional game and it doesn't do collision detection is it not three dimensional?
16:24:51 <itidus20> CakeProphet: can't you transform your classroom into a dwarf fortress?
16:24:52 <elliott> CakeProphet: A good urge.
16:25:04 <CakeProphet> hmmm
16:25:20 <CakeProphet> I am almost certain I will have no reason to go to any of my classes other than, uh, learning.
16:25:25 <cheater> Dwarf Fartress
16:25:33 <cheater> she who farts dwarven.
16:25:48 <CakeProphet> s/.*/Dorf Fartruss/
16:25:59 <elliott> CakeProphet: Then clirth.
16:26:03 <elliott> Phantom_Hoover: (Did I get my -rth form right?)
16:26:18 <elliott> I guess it should be "Then go-clirth.", which would be stopping going to the class.
16:26:18 <CakeProphet> elliott: ...I
16:26:25 <CakeProphet> you are not allowed to use -irth
16:26:28 <CakeProphet> and get a response from me.
16:26:28 <Phantom_Hoover> elliott, no, it'd just be girth.
16:26:34 <elliott> Phantom_Hoover: oh, duh.
16:26:37 <elliott> CakeProphet: Girth.
16:26:39 <Phantom_Hoover> CakeProphet, complainirth.
16:26:42 <itidus20> elliott: an interesting counter example is that a 2d rogue-like(i use this slang as if i ever played one) can be implemented with 3d graphics, polygons, procedural textures, geometry shaders,
16:26:50 <elliott> Phantom_Hoover: That still kind of implies you go and then stop, though, but I guess CakeProphet did go in the past, so.
16:26:56 <CakeProphet> girthhub
16:27:02 <elliott> itidus20: You should play DF it is great.
16:27:14 <CakeProphet> githubirth?
16:27:25 <itidus20> i knew a guy who was working on a 3d ultima frontend of some kind once
16:27:29 <itidus20> dunno which ultima
16:27:45 <CakeProphet> the chess variant no doubt.
16:28:21 <itidus20> technically anything made of electrons is 11 dimensional isn't it?
16:28:25 <elliott> I don't think itidus20 wants to play DF. :(
16:28:29 <itidus20> :D
16:28:35 <CakeProphet> elliott is sad face. :(
16:28:58 <itidus20> i wanna talk more about this though
16:29:27 <CakeProphet> ಥ_ಥ
16:29:32 <Phantom_Hoover> elliott, grievirth.
16:29:41 <itidus20> elliott> itidus20: So if I make a three-dimensional game and it doesn't do collision detection is it not three dimensional? -- good question
16:30:02 <elliott> Phantom_Hoover: But itidus20 considirthed playing DF, if he ever considered it in the first place.
16:30:33 <itidus20> humm
16:30:55 <CakeProphet> I am kind of confused as to how the cross-section works.
16:31:03 <Phantom_Hoover> What cross-section?
16:31:05 <CakeProphet> especially in open places outside.
16:31:07 <CakeProphet> DF.
16:31:30 <Phantom_Hoover> CakeProphet, it displays dots with the colour of the stuff below if it's one level down, or blue crosshatch otherwise.
16:31:50 <CakeProphet> ah okay.
16:32:01 <CakeProphet> so to move down a level outside you just walk flatly across the ground right?
16:32:10 <CakeProphet> >_>
16:32:14 <elliott> You don't move.
16:32:16 <itidus20> elliott: that is a tough question
16:32:22 <elliott> "You" are an omnipotent camera.
16:32:27 <CakeProphet> elliott: your dorfs
16:32:35 <elliott> They can handle slopes, yes.
16:32:39 <CakeProphet> okay.
16:32:48 <elliott> The mechanism is irrelevant to you; maybe they crawl.
16:33:15 <CakeProphet> it might be if I intend for them to be able to reach a specific location and they cannot for whatever reason.
16:33:37 <itidus20> I have thought about using color luminance as an indicator of depth with an orthographic projection.
16:33:57 <itidus20> (naturally i am not the only one >.<;)
16:34:33 <CakeProphet> ah okay so the giant blue spots are cliffs.
16:34:41 <Phantom_Hoover> <elliott> The mechanism is irrelevant to you; maybe they crawl.
16:34:49 <CakeProphet> I didn't actually have to build a slope downward I realize now... I could have just dug into the mountain south of me
16:34:51 <Phantom_Hoover> No it isn't.
16:35:00 <Phantom_Hoover> You should no DF simulates that in painfully exact detail.
16:35:03 <Phantom_Hoover> *know
16:35:16 <Phantom_Hoover> As any fule no.
16:35:30 <CakeProphet> so channel = dig a big pit thing.
16:35:32 <elliott> Phantom_Hoover: Well OK but I mean, it doesn't matter whether it's just by normal walking or by ascend-walking or anything.
16:35:48 <elliott> CakeProphet: Mine = Mine the actual block. Channel = Mine the floor.
16:35:56 <CakeProphet> oky
16:35:59 <elliott> Channel creates a room as if you mined it out on the level below.
16:36:10 <Phantom_Hoover> elliott, not as of df2010.
16:36:13 <elliott> (You're effectively removing the floor, and the block below it.)
16:36:15 <elliott> Phantom_Hoover: Huh?
16:36:22 <Phantom_Hoover> It makes ramps on the level below now, which need to be removed.
16:36:25 <elliott> Phantom_Hoover: That's exactly how it worked in Handlekindled; see: below my bedroom.
16:36:27 <elliott> Oh, well yeah.
16:36:31 <elliott> But it's still the essential same thing.
16:36:35 <elliott> Just with a side-effect.
16:36:36 <CakeProphet> oh.
16:36:40 * CakeProphet never removed the ramps.
16:36:54 <Phantom_Hoover> CakeProphet, keep them if you just want a way down to the next level.
16:36:57 <elliott> CakeProphet: What are you actually trying to channel?
16:37:08 <CakeProphet> nothing I'm referring to my originate channel in front of my entryway
16:37:14 <Phantom_Hoover> elliott, I'm assuming he's using the fortress quickstart guide.
16:37:15 <CakeProphet> that the guide recommends.
16:37:19 <CakeProphet> yes.
16:37:20 <elliott> Oh.
16:37:27 <CakeProphet> ANYWAYS MUST GET READY FOR CLASSES.
16:37:28 <Phantom_Hoover> Which advises you to channel a 3x3 pit and dig into it if there isn't a convenient cliff.
16:37:39 <elliott> Umm, but hasn't CakeProphet already got a fortress up.
16:37:48 <elliott> I mean, one with no workshops or anything, but.
16:37:51 <CakeProphet> turns out there was a convenient cliff I'm just bad at imagining ASCII cross-sectional textmaps as 3D space
16:38:03 <elliott> Protip: Blackness is solid rock.
16:38:09 <CakeProphet> yeah I got that.
16:38:17 <CakeProphet> now anyways
16:39:05 <itidus20> advantages to 2d graphics: 1)aesthetically pleasing. 2)easy to judge distances. 3)computationally cheap. 4)my girl. my girl. where will you go? i'm going where the cool wind blows.
16:39:19 <Phantom_Hoover> Always important, is 4.
16:39:41 <CakeProphet> yes, leadbelly is god.
16:39:53 <itidus20> i dont know them.. im listening to a nirvana cover
16:39:56 <CakeProphet> or, you know, just this really cool blues musician guy.
16:40:02 <Phantom_Hoover> Surely berylliumbelly?
16:40:05 <CakeProphet> itidus20: of course you are because no one knows anything about old blues artists.
16:40:13 <elliott> Except CakeProphet.
16:40:22 <elliott> Cake Prophet would be a really good name for an old blues artist.
16:40:23 <itidus20> he announces at the start of the song that he was offered leadbelly's guitar for $500,000
16:40:41 <CakeProphet> probably not a very good guitar.
16:41:44 <itidus20> "we're passing the basket. i even asked david geffin personally if he'd buy it for me"
16:42:19 <itidus20> hmm
16:42:40 <itidus20> i know which discography to share next then
16:53:03 <itidus20> anyway
16:53:28 <itidus20> advantages to 2d graphics: 1)aesthetically pleasing. 2)easy to judge distances. 3)computationally cheap.
16:54:02 <itidus20> extra detail on '2' one reason for pursuing stereoscopic 3d is to make it easier to judge distances in games and such things
16:54:38 <itidus20> because it's simply difficult
16:55:36 <itidus20> more details on '1' i will present 2 animated scenes.. and those who are bored enough to look can see which looks best :D
16:55:46 <elliott> if you think three-dee worlds are computationally cheap just because they're rendered two-dimensionally, you _need_ to play DF.
16:56:39 <Phantom_Hoover> Well, DF is not renowned for its intensive graphical strain.
16:57:04 <elliott> Phantom_Hoover: No, but if DF was rendered with actual three-dee in OpenGL it's not like the system requirements would skyrocket.
16:57:18 <elliott> (Heck, it uses OpenGL already to do the twodee.)
16:57:36 <itidus20> this is the contender representing 2d art: http://www.youtube.com/watch?v=kaIliI0gc1I
16:58:57 <itidus20> this is definitely a biased comparison .. sighs.. but 3d example is: http://www.youtube.com/watch?v=zB2gPZRsz0Q
16:59:06 <itidus20> the bias really isnt fair
17:02:24 -!- CakeProphet has quit (Ping timeout: 252 seconds).
17:03:31 <itidus20> i suppose gollum from lord of the rings would be a better contender for 3d
17:10:44 <itidus20> and.. the contrasting side of things is
17:12:11 <itidus20> 3d offers richer gameplay... for example.. movement in 26 general directions instead of 8
17:13:10 <elliott> play df, df has movement in a nearly infinite amount of directions (because it is like being a hundred characters at once) (except you can ALSO count all the menu things and designations as moves!!!!!!!)
17:14:43 <itidus20> a curious note is that some games such as ninja turtles arcade game have 3 dimensions, while some games like wolfenstein 3d have 2 dimensions
17:15:19 -!- elliott has left ("Leaving").
17:15:25 -!- elliott has joined.
17:15:32 <elliott> itidus20: will monetary bribes make you play df
17:15:37 <itidus20> yes
17:15:41 <elliott> how big
17:15:44 <elliott> name your price
17:16:11 <itidus20> lets start off to the tune of 1,000,000 euros so we have room to move
17:16:18 <elliott> ok. how about ten euros
17:16:54 <itidus20> oh you are clearly quite taken with df
17:17:02 <itidus20> that is good
17:17:55 <elliott> we have been taken with df for weeks (where taken means playing it)
17:18:04 <elliott> (everyone has been admiring df since it started existing ever)
17:18:26 <Phantom_Hoover> elliott has been ecstatic lately. He admired a fine DF lately.
17:18:47 <elliott> Phantom_Hoover: What is it with dwarves and, like, admiring doors.
17:18:56 <itidus20> because what i am talking about is not really common, i have spent some time comparing and contrasting 2d and 3d
17:19:11 <Phantom_Hoover> elliott, it's a *fine* door.
17:19:23 <itidus20> it is hard to really express "2d graphics with 3d gameplay"
17:19:34 <elliott> Phantom_Hoover: are there even non-fine doors.
17:19:35 <Phantom_Hoover> It opens with the smoothest of swings.
17:19:40 <elliott> Dorfs admired shit in my fortress of crap.
17:19:46 <Phantom_Hoover> Do you know how hard that is with a door made of rock?
17:19:53 <elliott> By which I don't mean they admired faeces in a fortress made out of faeces.
17:19:57 <itidus20> elliott: hmm.. perhaps i should tell you about a chapter from my childhood.
17:19:57 <elliott> Although that does give me my next megaproject.
17:20:08 <Phantom_Hoover> elliott, come on, you don't affect how your masons make stuff, which is why they can make nice things.
17:20:19 <Phantom_Hoover> itidus20, yesyesyes STORY STORY STORY
17:20:21 <elliott> Phantom_Hoover: Woodcrafter actually.
17:20:25 <Phantom_Hoover> Friendship story.
17:20:25 <elliott> Not that good a one, I don't think either.
17:20:28 <Phantom_Hoover> elliott, ELF
17:20:34 <elliott> Phantom_Hoover: um excuse me there was an AQUIFER
17:20:37 <itidus20> Phantom_Hoover: ok i had several artistic visions growing up.
17:20:40 <elliott> And also LOTS OF TREES _BUT_
17:20:44 <elliott> We had to get it all from the REALLY COLD OUTSIDE
17:20:49 <elliott> THERE WERE HONEY BADGERS AND SNOWSTORMS
17:21:02 <Phantom_Hoover> elliott, dude, you never even _saw_ the aquifer on that map.
17:21:09 <Phantom_Hoover> You ran out of food because you're an idiot.
17:21:21 <elliott> Phantom_Hoover: Nobody has technically died yet.
17:22:01 <itidus20> One vision I had was when i had some paper folded up like a book or whatever... I started to wonder, is there a way I can fold/cut/turn this paper to make it less linear.. to make it more like an interactive fiction
17:22:31 <itidus20> as if my brain was blasting the paper with matrices and the paper was not ready to yield
17:22:55 <Phantom_Hoover> itidus20, consider that you may have superpowers.
17:23:01 <itidus20> :P
17:23:06 <elliott> I rate this hypothesis as: plausible.
17:23:22 <Phantom_Hoover> itidus20 is......... THE MATRIXINATOR
17:23:56 <itidus20> as if my brain had an itching that there was more ways the paper could fold than i could imagine
17:24:22 <itidus20> like back then my idea of interactive fiction was "choose your own adventure" books
17:24:32 <itidus20> where at the bottom of the page you branched via page numbers
17:24:44 <Phantom_Hoover> itidus20, also, have you considered trying origami.
17:24:48 <itidus20> so the book had already demonstrated a capacity at branching
17:25:32 <itidus20> and maybe because when growing up we had this kids book which had paper pockets in it you could sorta stick things
17:25:42 <itidus20> probably all these things played on my mind
17:26:19 <itidus20> so.. the problem with a book of course is that you can't erase the pages
17:26:50 <itidus20> uh.. it is ROM... vs RAM
17:27:28 <itidus20> yes.. essentially a book is a ROM.. and a few operations are available
17:27:55 <itidus20> Jump to the next page. Jump to the previous page. Jump to page N.
17:28:14 <itidus20> it even had conditional jumps
17:28:57 <itidus20> if (you choose option 1) jump to page A; if (you choose option 2) jump to page B;
17:29:12 <itidus20> and some pages had a HALT instruction
17:31:36 <itidus20> ok so that was one idea.. pondering about the magic of book computation.
17:31:47 <Phantom_Hoover> Bookputation.
17:32:01 <itidus20> the second idea was more relevant. i had a decent collction of lego which was donated by a parents friend.
17:32:35 <itidus20> one day, while playing with these legos, i got this dream of a giant tower built out of lego bricks which stretched from hte ground to the ceiling
17:32:56 <itidus20> which would basically be 2ft square
17:33:30 <itidus20> and whenever i would go to a toystore growing up i would have my eyes out for lego blocks, secretly having the ambition to build it
17:33:50 <itidus20> but never found any lego compatible bricks or ones cheap enough etc
17:34:16 <Phantom_Hoover> The saddest story.
17:34:21 <itidus20> eventually about the time i had a 486 i started considering the possibility of creating my own 3d software.
17:34:48 <itidus20> so in a book about turbo pascal 6 system programming i started reading about segmented memory addressing :-s
17:34:49 <Phantom_Hoover> Here, behold http://www.youtube.com/watch?v=mEFPhXl3QQY and be happy.
17:34:59 <Phantom_Hoover> Oh god, segments.
17:35:01 * itidus20 facepalms.
17:35:05 <Phantom_Hoover> I know them only as an ancient horror.
17:35:13 <itidus20> 16bits -> 20 bits
17:35:19 <itidus20> anyway... nothing came of that.
17:35:52 <itidus20> ok ill watch video
17:36:43 <elliott> itidus20: will you play DF.
17:37:34 <elliott> Nobody likes my unsafe hackery in #haskell. /sniff
17:37:57 <itidus20> not today
17:38:23 <itidus20> my experiment at lego stopmotion can be seen here: http://www.youtube.com/watch?v=NzMEQlK1EBA
17:40:08 <elliott> Phantom_Hoover: Here, you appreciate my hack: http://hpaste.org/50760
17:42:17 <Phantom_Hoover> Is that printing IO Strings?
17:42:31 <elliott> ...no.
17:42:37 <Phantom_Hoover> THEN WHAT
17:42:42 <elliott> OK YOU HAVE INSUFFICIENT KNOWLEDGE TO APPRECIATE MY GENIUS SORRY
17:42:53 <elliott> A SADLY COMMON OCCURRENCE IN MY LIFE
17:43:22 <itidus20> i suppose that what i felt when sitting in my family room floor with a rug full of legos looking into the corner and imagining a tower, is what you feel when you play minecraft
17:43:39 <itidus20> hehe.
17:44:00 <Deewiant> elliott: Now make it work without --interactive ;-)
17:44:22 <elliott> Deewiant: Well that's the thing, I was running main from within GHCi
17:44:51 <itidus20> another of these childhood artistic visions was that i had this idea of carving a car out of wood... but not just a solid block car with the illusion of an interior
17:44:52 <elliott> *Main> do{ print "Hello, world!"; withInstance litD $ print "Hello, world!" }
17:44:53 <elliott> "Hello, world!"
17:44:53 <elliott> "Hello, world!"
17:44:53 <elliott> *Main> print "Hello, world!"
17:44:53 <elliott> "Hello, world!"
17:44:53 <elliott> *Main> withInstance litD $ print "Hello, world!"
17:44:57 <elliott> Hello, world!
17:45:00 <elliott> Deewiant: Wow, I broke monads
17:45:24 <itidus20> but a means to carve out the interior of a block of wood
17:45:41 <itidus20> somehow.. i felt a taste of mathematical magic in this primitive idea
17:45:45 <itidus20> as a child getting about
17:46:15 <elliott> Deewiant: I guess GHC makes unreasonable assumptions like only one instance per type :)
17:46:22 <itidus20> that it was somehow asking too much to carve the interior of a car out of wood
17:46:46 <itidus20> again.. computing provided the means to do it virtually.. again.. i never bothered :-s
17:47:27 <itidus20> also i thought slotcars were very very cool...
17:48:31 <itidus20> the natural progression of the slotcar to me was the ability to change lanes. i still think it is a problem that needs to be solved
17:48:48 <itidus20> so you can have something like the video game daytona usa except with slotcars
17:50:44 <itidus20> this tower.. it may have been inspired by the many towers of final fantasy 6
17:51:33 <itidus20> and perhaps star wars bases
17:56:02 -!- Sgeo has joined.
17:56:48 <itidus20> so theres this george lucasy way of exploring a space as seen in thx 1138 and the opening of starwars 4
17:57:05 <itidus20> and i don't think you really feel it much.. its very schizophrenic
17:58:00 <itidus20> i take it for granted, but it is as if his cameras are haunted by phillip k dick
17:58:10 <itidus20> or franz kafka
17:58:30 -!- Sgeo_ has quit (Ping timeout: 264 seconds).
18:04:48 -!- derrik has joined.
18:04:53 <elliott> Deewiant: Aha!
18:04:56 <elliott> main :: IO ()
18:04:56 <elliott> main = a >> b
18:04:56 <elliott> a = print "Hello, world!"
18:04:57 <elliott> b = withInstance litD $ print "Hello, world!"
18:04:58 <elliott> Deewiant: This works.
18:05:01 <elliott> Deewiant: Not in a where clause though.
18:05:31 <Deewiant> Not very robust now is it :-)
18:06:19 <elliott> Deewiant: I'm... not really sure what I can do about it; I suspect GHC has an instance cache type dealie that kicks in at the top-level declaration scope for whatever reason.
18:29:13 -!- augur has quit (Ping timeout: 240 seconds).
18:54:17 <itidus20> Phantom_Hoover: i just finished the video series
18:54:31 <Phantom_Hoover> It ended in tragedy.
18:54:42 <Phantom_Hoover> Noöne would buy the house so they unbuilt it.
18:55:20 <itidus20> my first thought is that what they need to do in future is to design a brick which is some degree more difficult to pull apart than it is to put together
18:55:38 <elliott> Phantom_Hoover: I would buy it.
18:55:56 <Phantom_Hoover> Yes, but this is related to the fact that you don't have enough money to.
18:56:13 <itidus20> this is the real appeal of minecraft isn't it
18:56:16 <elliott> Phantom_Hoover: Face it, I would spend money in the best way possible if I had it.
18:56:27 <itidus20> and.. perhaps df also
18:56:44 <itidus20> except he did it in real life
18:56:47 <itidus20> with lego voxels
18:56:48 <elliott> It might be the appeal of MC but probably not DF.
18:56:56 <elliott> DF isn't really about building something aesthetically appealing.
18:57:00 <itidus20> ok just mc
18:57:03 <elliott> Well, it is, but not aesthetically as far as visuals go, unless you're into that thing.
18:57:05 <coppro> mc is awesome
18:57:19 <elliott> now let's wait for the hilarious reveal where coppro is expanding mc to mean something different to the rest of us
18:57:25 <elliott> oOPS I RUINED IT
18:57:34 <coppro> ^
18:57:37 <Phantom_Hoover> Manilla cream?
18:57:39 <itidus20> so to repeat, my first thought is that what they need to do in future (for a real life minecraft) is to design a brick which is some degree more difficult to pull apart than it is to put together..
18:57:49 <elliott> Masturbation Club
18:57:54 <elliott> Mappers... Castration-arena?
18:58:02 <elliott> Mreally Clamepeople.
18:58:05 <coppro> elliott: math and computer
18:58:17 <elliott> that's the stupidest expansion of any acronym ever
18:58:19 <Phantom_Hoover> wat
18:58:54 <coppro> MC: the Math and Computer building at UW
18:59:15 <Phantom_Hoover> You guys have them in the same building?
18:59:25 <coppro> Phantom_Hoover: Computer Science is part of the Math faculty
18:59:57 <Phantom_Hoover> I'd approve if I didn't suspect that they don't just mean the mathsy bits of CS.
19:00:03 <itidus20> a garden of eden would be complete with lego bricks
19:00:16 <coppro> Phantom_Hoover: regrettably so
19:00:21 <itidus20> and exploding zombie types
19:01:03 <coppro> (the singular "computer" is not a typo)
19:01:07 <Phantom_Hoover> And then the serpent came unto Eve and said, approach that green frowny thing, for ye shall not be harmed.
19:01:22 <Phantom_Hoover> Computers science?
19:01:31 <elliott> Surgeons general.
19:01:34 <coppro> Phantom_Hoover: No. It got its name back when there was A Computer.
19:01:48 <coppro> The building housed Math, and the computer.
19:01:54 <elliott> [asterisk]the Math
19:01:57 <elliott> there was A Math then, too
19:02:10 <coppro> math is an acceptable abbreviation for mathematics
19:02:26 <Gregor> Computer Science has nothing to do with computers.
19:02:33 <Gregor> Therefore calling it "computers science" is nonsense.
19:02:43 <Phantom_Hoover> elliott, did you know that any sturgeons caught in British waters have to be given to the Queen, and as such a group of them is referred to as a Royal College of Sturgeons?
19:03:07 <Phantom_Hoover> `quote poultry
19:03:09 <HackEgo> 219) <Gregor> elliott: My university has two Poultry Science buildings. <Gregor> Two! \ 327) <Phantom__Hoover> Gregor, yeah, but Purdue has poultry science facilities beyond the dreams of avarice.
19:03:10 <coppro> [citation needed]
19:03:23 <elliott> Phantom_Hoover: I don't believe it, but I will henceforth act as if I did for the betterment of humanity
19:03:27 <elliott> Thank you for enriching my life.
19:03:39 <elliott> <Gregor> Computer Science has nothing to do with computers.
19:03:40 <elliott> <Gregor> Therefore calling it "computers science" is nonsense.
19:03:41 <Phantom_Hoover> elliott, courtesy of J.B.S. Haldane.
19:03:48 <elliott> Gregor: No more nonsense than calling it computer science
19:04:01 <Gregor> Yeah, it should be computational science or (my favorite) informatics.
19:04:08 <elliott> Gregor: Computing theory.
19:04:13 <coppro> ^
19:04:14 <elliott> It isn't a science.
19:04:16 <Gregor> elliott: But that's a subfield of computer science.
19:04:21 <Gregor> It /is/ a science.
19:04:31 <elliott> Gregor: No, theory of computation is a field of CS.
19:04:43 <coppro> *is a field of mathematics
19:04:51 <Gregor> elliott: I have reversed your "of" to form a synonym X_X
19:04:54 <elliott> coppro: CS is a branch of mathematics.
19:04:54 <Phantom_Hoover> Gregor, no it's not.
19:05:03 <Phantom_Hoover> Do you use the scientific method?
19:05:04 <elliott> CS is not a science; it is a branch of mathematics. That people incorrectly overlap it with SE is irrelevant.
19:05:12 <Phantom_Hoover> Are you trying to work out how computers function?
19:05:20 <elliott> Also the fact that you have machines that operate kind of like your theoretical ones is irrelevant, since calculators exist too.
19:05:30 <Phantom_Hoover> Calculator Science.
19:05:39 <elliott> That is henceforth what I will call mathematics.
19:05:44 -!- augur has joined.
19:05:46 <Gregor> Phantom_Hoover: The fact that there are layers of abstraction on top of it is the unfortunate (?) fact that engineering and science are merged in this field.
19:06:01 <Gregor> Phantom_Hoover: But the fact that I'm an engineer does not reduce the legitimacy of the field as a science.
19:06:15 <Gregor> That first sentence was weirdly formed :P
19:06:21 <Phantom_Hoover> Gregor, dude, it's not a science.
19:06:23 <Phantom_Hoover> Seriously.
19:06:37 <elliott> Gregor: That just means you do SE and CS; the former happens to be the applied version of the latter.
19:06:40 <Phantom_Hoover> In science, you have a complex system and try to model it.
19:06:47 <elliott> Engineers sometimes do mathematics, too :P
19:06:48 <Gregor> Phantom_Hoover: We did not invent computation. Computation is an extension of mathematics. You need to take some theory courses.
19:06:57 <Gregor> Phantom_Hoover: (Also, math is a science)
19:07:01 <elliott> <Gregor> Phantom_Hoover: (Also, math is a science)
19:07:01 <Phantom_Hoover> ...no.
19:07:04 <elliott> suddenly all credibility is lost
19:07:09 <Phantom_Hoover> Yeah, you have no idea what a science is.
19:07:27 <Gregor> lol
19:07:38 <elliott> "Science (from Latin: scientia meaning "knowledge") is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe.[1][2][3][4]"
19:07:52 <elliott> Things mathematics is not about: testable predictions about the universe.
19:08:14 <Gregor> Oy, this is so retarded.
19:08:31 <elliott> Gregor makes pedantic point about naming, reacts badly to further pedantic points.
19:08:40 <elliott> Novelisation, film in a few years.
19:08:57 <Gregor> Except that your pedantry is clearly not common opinion. See for example: THE NAME "COMPUTER SCIENCE" >_<
19:09:10 <elliott> Gregor: The name you think is nonsense
19:09:24 <Gregor> I said calling it "computerS science" is nonsense.
19:09:32 <elliott> <elliott> Gregor: No more nonsense than calling it computer science
19:09:32 <elliott> <Gregor> Yeah, it should be computational science or (my favorite) informatics.
19:09:44 <Phantom_Hoover> Gregor, funnily enough, I'm inclined to be prescriptivist with technical terms.
19:09:51 <Phantom_Hoover> Y'know, because it's *the entire point*.
19:10:11 <Gregor> elliott: ... lol. You and reading so much into things :P
19:10:44 <elliott> "Yeah" =/= agreement
19:12:13 <elliott> Gregor: But seriously, there's no way mathematics is a science.
19:20:08 -!- oerjan has joined.
19:20:34 <fizzie> http://en.wikipedia.org/wiki/Mathematics#Mathematics_as_science bla bla pro and con, neutral viewpoint, [who?] [citation needed] and so on.
19:20:51 <Gregor> lol, apparently my Purdue computer is prone to Totally Random Reboot Syndrome.
19:20:53 <Gregor> I shall determine the cause of this phenomenon ... with COMPUTER SCIENCE! lolololol*shot*
19:21:34 <Gregor> fizzie: <Literally every page on Wikipedia> bla bla pro and con, neutral viewpoint, [who?] [citation needed] and so on. :P
19:21:44 <elliott> Well let's see, Gauss is using a different definition of science to common English usage and is also a big ol' douche, "Gödel means mathematics isn't logic ergo science" is the most braindead shit ever... and the rest has nothing compelling at all.
19:21:55 <elliott> Except that universities sometimes group sciences and mathematics together.
19:21:59 <oerjan> Gregor: it cannot be real science if it's lolololol, sheesh.
19:22:05 <elliott> Which is compelling if by compelling you mean bulslhit.
19:22:08 <oerjan> you need *MWAHAHAHA* for that
19:22:23 <fizzie> Gregor: No, sometimes it's a direct copy-paste of some PR material.
19:23:14 <Gregor> This point is not worth arguing. Like, at all. We're so far into the pedantry rat hole that I can't see light and the air is stale.
19:23:31 <elliott> Gregor: Yeah, but which one of us is using up the hot air fastest?
19:23:40 * elliott is tooootally surviving this thing.
19:24:26 <elliott> so anyway http://esolangs.org/wiki/DPEMOFKOXM is the best language we've ever had
19:25:20 <Gregor> Lemme guess; Brainfuck, NOW WITH LETTERS
19:25:30 <Gregor> Oh, it's a quine.
19:25:39 <Gregor> The page conveniently includes its own interpreter.
19:25:41 <elliott> DPEMOFKOXM
19:25:59 <Phantom_Hoover> elliott, it's not a BF derivative, so it is significantly above angry.
19:26:14 <elliott> DPEMOFKOXM
19:26:34 <fizzie> Incidentally, there was a brain guy giving today's keynote speech. This Mitchell guy -> http://www.ccbi.cmu.edu/projects_neurosemantics.html -- and I have to add, "neurosemantics" is the fanciest term evar.
19:26:35 <elliott> Here I was about to DPEMOFKOXM out topic, but we have something actually serious in it for once!
19:26:42 <elliott> s/out/our/
19:26:49 <fizzie> Also they do mind-reading, they're like more than half the way to supervillainy there.
19:26:55 <Gregor> elliott: I had the same thought X-D
19:27:05 <elliott> Although I do wonder how many people here are in Finland and don't have some kind of bitter university-related rivalry going on that prevents them from caring.
19:27:13 <Gregor> elliott: I mean, we can't just go removing the pointers-lambda-calculus comparison.
19:27:14 <fizzie> Next they'll just pseudoinverse their matrices and do mind control. (What do you mean that's not how it works?)
19:27:27 <elliott> fizzie: please assemble relevant Finland statistics; thanks.
19:27:30 -!- Sgeo has quit (Ping timeout: 245 seconds).
19:28:24 <fizzie> I think our "rivalry" with the "UH" guys (best abbrv ev.?) is more of a friendly one than a bitter one.
19:28:37 -!- Sgeo has joined.
19:28:39 <oerjan> fizzie: it _might_ work that way, if the matrix represents the concept -> neuron map
19:29:12 <fizzie> oerjan: Well, they already pseudoinversed it, to make predictions of the neural activations for unseen words.
19:29:26 <fizzie> oerjan: Sadly the FMRI scanner will not suddenly start to control brains even if you inverse some matrices.
19:29:31 <elliott> fizzie: What if I hopped on the next plane to Finland and crashed the event.
19:29:34 <fizzie> oerjan: (At least I believe it will not. I'm no physicist.)
19:29:39 <elliott> Would you ban me?
19:29:48 <oerjan> it's a friendly rivalry, the reindeer head in your bed was just for amusement
19:30:34 <oerjan> fizzie: well you need to reverse the MRI rays too, duh
19:30:50 <fizzie> elliott: Oh hey, it says it's co-organized with our student organization too.
19:31:00 <elliott> fizzie: So would you... ban me...
19:31:10 <elliott> Also I'm glad that Finland unites for the cause of esolangs.
19:31:41 <fizzie> Is it even a thing you can crash? I mean, limited to any people?
19:32:07 <Phantom_Hoover> fizzie, how many Finnish people did you even bring here.
19:32:11 <elliott> fizzie: Weeeell, I'm an annoying little kid, and I doubt you're meant to enter through the window.
19:32:17 <elliott> Phantom_Hoover: Hey, that guy's the old list administrator.
19:32:19 <elliott> He found us independently.
19:32:21 -!- zzo38 has joined.
19:32:25 <oerjan> eek spiders in the roof.
19:32:30 <Phantom_Hoover> Who is?
19:32:39 <elliott> fizzie: Also if I spend all my time loudly rambling on about Feather's superiority they might get a bit annoyed.
19:32:40 <fizzie> Phantom_Hoover: atehwa, who's organizing that thing.
19:32:46 <elliott> Phantom_Hoover: The person who set the topic.
19:32:50 <elliott> Or that, yes.
19:33:19 <fizzie> I don't think I really bought anyone else to the channel. (Except maybe ineiros by copy-pasting the best bits to him. Maybe. I don't quite recall.)
19:33:20 <Phantom_Hoover> Guys why is it in Finland it should be in Edinburgh.
19:33:32 <elliott> I read that as "why is it called Finland it should be Edinburgh".
19:33:40 <elliott> A renaming which I wholeheartedly support.
19:34:14 <Phantom_Hoover> fizzie, so half the population of Finland ended up here of their own accord?
19:34:31 <elliott> Um, there are more Finns in here than there are Finns.
19:34:34 <elliott> I have been over this many times.
19:34:35 -!- Sgeo has quit (Ping timeout: 245 seconds).
19:34:41 <Phantom_Hoover> elliott, oh.
19:34:45 <oerjan> eviction complete.
19:34:56 <itidus20> one time when i was supposed to be studying at school i took out a book about finnish
19:34:56 <Gregor> Actually, esoteric languages convert people into Finns (if you're not careful).
19:35:07 <Gregor> Case in point -> itidus20.
19:35:10 <itidus20> i didn't learn much. i learned about the mysterious double-v
19:35:34 <itidus20> and i memorized two sentences "mika tama on? se on bussi."
19:35:41 <itidus20> haha.........
19:35:43 <fizzie> Phantom_Hoover: In particular I think I first "met" Deewiant here, even though I think he works in the same place.
19:35:44 <zzo38> I don't think they will convert people into Finns
19:36:09 <itidus20> also.... whenever i see a photo of finland it's always some wonderful wooden bridge going by a lake and trees
19:36:13 <Deewiant> fizzie: And you're correct.
19:36:16 <itidus20> ... haha....
19:36:19 <oerjan> *ceiling
19:36:36 <Gregor> itidus20: FIGHT IT
19:36:42 <Gregor> itidus20: FIIIIIIIIGHT
19:36:44 <itidus20> oh but theres one more thing
19:37:20 <itidus20> ieva's polka
19:37:27 <elliott> <itidus20> also.... whenever i see a photo of finland it's always some wonderful wooden bridge going by a lake and trees
19:37:33 <elliott> Deewiant: fizzie: confirm/deny description of Finland.
19:37:44 <coppro> confirm
19:37:45 <elliott> Actually not Deewiant he's never fun about these things.
19:37:51 <Deewiant> Confirm
19:37:53 <elliott> Oh
19:37:55 <Deewiant> Too late
19:37:59 <coppro> Norway is also entirely waterfalls
19:38:00 <elliott> I guess it really is like that
19:38:03 <elliott> "Huh."
19:38:04 <zzo38> In D&D game, I took one book from some office (probably the office of some evil potion maker). I have a lot of plan the use of this book in the game. (It can be eventually returned, if he survives and his office survives)
19:38:14 <itidus20> ieva's polka .. i'll link to the youtube
19:38:21 <elliott> I think we've all heard Ieva's Polka.
19:38:21 <oerjan> coppro: FALSE. we also have mountains for them to run from.
19:38:41 <oerjan> and fjords for them to run into.
19:38:41 <coppro> oerjan: that is part of "entirely waterfalls"
19:38:48 <oerjan> oh well ok then
19:38:54 <itidus20> try and close this song before the end of hte video.. go ahead and try: http://www.youtube.com/watch?v=1ygdAiDxKfI
19:39:05 <coppro> and the fjords don't count because they're bodies of water.
19:39:10 <elliott> itidus20: ok i will try
19:39:13 <coppro> Not that there's anything wrong with the fjords
19:39:18 <coppro> they are beautiful :D
19:39:21 <oerjan> coppro: but but they have infinite length
19:39:22 <coppro> and have won awards, I'm told
19:39:23 <elliott> closed at ten seconds in
19:39:24 <elliott> im magician
19:39:26 <Phantom_Hoover> Fjords are just a crappy imitation of firths.
19:39:27 <oerjan> (fractal facts 101)
19:39:43 <coppro> oerjan: fractal fjords?
19:39:45 <elliott> oerjan: cakeprophet doubted that coastlines were fractal earlier, the uncultured swine
19:40:11 <elliott> Phantom_Hoover: So how's that derived as an irth-form?
19:40:31 <elliott> Phantom_Hoover: Where the water stops going in /forwards/ because it's a body?
19:40:32 <Phantom_Hoover> It's when you stop going forth.
19:40:43 <elliott> Right.
19:40:47 <oerjan> elliott: *GASP*
19:41:56 <oerjan> first, go forth to the firth, forsooth.
19:42:41 -!- kmc has joined.
19:43:03 -!- zachk has joined.
19:43:15 <elliott> hi zachk
19:43:19 <zachk> hello
19:43:35 <itidus20> once i was innocently wandering around second life and someone approached twirling a leek which was emitting the sound of ieva's polka
19:44:00 <itidus20> it was only much later that i discovered the song outside of secondlife
19:44:00 <elliott> zachk: this is a channel about esoteric programming languages. sometimes.
19:44:00 <elliott> oerjan: hide the goats
19:44:12 * zachk nods his head
19:44:45 <Gregor> Hide the Finns!
19:45:05 <elliott> they're stealth finns
19:45:42 <Gregor> Oh good.
19:45:45 <cheater> you could say
19:45:48 <cheater> sealthinns.
19:46:05 <itidus20> and noone hates the finns :P
19:46:12 <Phantom_Hoover> The Russians do.
19:46:16 <Gregor> Damn you Noone!
19:46:21 <Gregor> Why you gotta be racist!
19:46:35 <Gregor> <Noone> screw finns they suck
19:46:36 <cheater> i didn't know finland was a race
19:46:48 <derrik> swedes think finns are weird
19:46:48 <lambdabot> derrik: You have 1 new message. '/msg lambdabot @messages' to read it.
19:47:01 <itidus20> ok so the russians do. thats more realistic
19:47:09 <itidus20> never say never after all
19:47:13 <Gregor> cheater: "Racist" is commonly used for ethnicities and heritages as well.
19:47:23 <elliott> But is racism a science?
19:47:33 <cheater> is it?
19:47:37 <cheater> why would it?
19:47:38 <itidus20> lets just pretend i didnt say noone hates them
19:47:42 <Gregor> elliott: It's an art!
19:47:42 <derrik> scientific racism comes close
19:47:43 <oerjan> finland is a big race to the bottom
19:48:22 <elliott> derrik: I would say one of the prominent features of scientific racism is being unscientific crap.
19:48:56 <derrik> that goes for many isms
19:49:08 <elliott> Doesn't make it a science :P
19:49:51 <derrik> generally, if you do lab tests, it is considered a science - if you tend to be materialist
19:49:58 <derrik> scientific racism is like that
19:50:01 <itidus20> it is difficult to live in a country which was founded by british convicts who arrived 200 years ago and cleansed and assimilated the native tribes..
19:50:27 <Phantom_Hoover> derrik, they don't let them do lab tests any more.
19:50:28 <itidus20> there is no meaning in it
19:50:31 <elliott> derrik: That's a rubbish definition.
19:51:12 -!- ais523 has joined.
19:51:13 <derrik> elliott: give a better one
19:51:26 <itidus20> ok its not as bad as i describe really :D
19:51:48 <elliott> derrik: A science is a field of research that meets the minimum standard of being better than terrible at meeting the scientific method.
19:51:57 <elliott> hi ais523
19:52:33 <derrik> elliott: there used to be a time when scientific racism was good enough.. so there
19:52:33 <ais523> hi
19:52:39 <derrik> stop being a racist now
19:52:47 <elliott> derrik: Whaddya mean by good enough
19:52:59 <zzo38> How many computers are there that use LFSR-based PC?
19:53:01 <derrik> as in better than terrible
19:53:11 <elliott> I doubt that :)
19:53:31 <itidus20> ok i have said too much and stirred up trouble.. i was going so well up till then
19:53:36 <Gregor> MEAT IS MOODER
19:53:43 <elliott> itidus20: When do you ever stir up trouble ever
19:53:55 <zzo38> The NES CIC uses LFSR-based PC.
19:54:22 <oerjan> itidus20: what do you mean stir up, no one even commented on it :P
19:55:06 <oerjan> itidus20 is the anti-troll
19:55:09 <itidus20> i am an n-dimensional vector... my life's mission is to orient myself to the correct "direction"
19:56:00 * itidus20 is basically kidding.
19:57:12 <itidus20> "A man from the Netherlands is being sued by RealNetworks for linking to a freeware application. The application, RealAlternative, is considered by some to be a competitive product to software from RealNetworks."
19:57:53 <elliott> is this the 90s
19:57:57 <itidus20> i have that installed
19:58:03 <elliott> so yes then
19:58:45 <itidus20> heh
19:59:02 -!- Phantom_Hoover has set topic: It is the 90s and there is time for Esolang event @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | I think pointers are considerably more useful than lambda calculus | http://codu.org/logs/_esoteric/.
19:59:03 <itidus20> yes some motherfuckers choose to encode things in real formats
19:59:17 <elliott> ais523: umm, wow, you know how you hate Ribbons?
19:59:33 <Phantom_Hoover> Ribbons?
19:59:34 -!- derrik has left ("better than terrible").
19:59:46 <Phantom_Hoover> Oh, the MS Word thing?
19:59:48 <ais523> elliott: the interface element?
19:59:52 <elliott> yep
20:00:07 <elliott> ais523: I might be coming around to your point of view; here's Microsoft's redesigned Explorer: http://i.imgur.com/pJcH5.png
20:00:13 <ais523> I don't so much hate them, I just think they're less efficient than toolbar+menu for no good reason
20:00:16 <elliott> a masterful trainwreck
20:00:29 <elliott> argh, what is taking up all my network pipe?
20:00:30 <ais523> their intended advantage seems to be discoverability
20:00:59 <ais523> wow, is that a crazy waste of screen space as well as requiring extra clicks for some actions
20:01:34 <elliott> ais523: bonus: "Here, they proudly overlay the UI with data from their research into how often various commands are used. They use this to show that “the commands that make up 84% of what users do in Explorer are now in one tab”. But the more important thing is that the remaining 50% of the bar is taken up by buttons that nobody will ever use, ever, even according to Microsoft’s own research. And yet somehow they remain smack bang in the mi
20:01:40 <elliott> ddle of the interface."
20:01:50 <itidus20> the problem with conlangs such as lojban and esperanto is they cheapen the value of language developing naturally
20:02:00 <elliott> i
20:02:16 <itidus20> oops i worded that bad
20:02:43 <itidus20> i mean, they lack what the non-constructed languages have in history
20:02:59 <ais523> elliott: see, as far as I can tell, you want to use a toolbar for one-click access to the most commonly used commands, and a menu for two-click access to more rarely used commands
20:03:19 <ais523> a ribbon's equivalent to toolbar+menu where the menu doesn't shut after you use it, it just stays covering the menu until you explicitly get rid of it
20:03:20 <elliott> obviously you want to use @ for everything, come on
20:03:31 <itidus20> it's the age old problem of over-engineering something.. or making something efficient and emotionally-void
20:04:17 <ais523> elliott: we currently don't have any idea on what @'s UI is, so we can talk about the relative merits of menus and ribbons with a clear concience
20:04:34 <elliott> ais523: maybe _you_ can.
20:04:46 <itidus20> uhhh... what am I saying? I am saying that i am a natural-language-anarcho-primitivist
20:04:49 <elliott> I know one important thing about @'s UI, and it's that it's perfect
20:05:08 <itidus20> or perhaps a natural-langage-neo-luddite
20:05:18 <ais523> elliott: I mean, you can say "A is perfect but I don't know what it is; B is imperfect, but better than C"
20:05:40 <elliott> anarcho-primitivists and neo-luddites, good role models
20:05:44 <elliott> by good i mean worst
20:06:20 <itidus20> but instead of applying the idea to technology(which i do sometimes) instead i am applying it to natural languages.. and the advancement of conlangs
20:10:05 <itidus20> elliott: yeah i heard the unabomber was one
20:10:09 <itidus20> not a good sign.
20:12:38 -!- kwertii has quit (Quit: bye).
20:15:01 <oerjan> yes you should take good role models such as mathematicians. ...oh wait...
20:22:36 <Gregor> Hey esopeople, what does this do on a 32-bit system (don't check, just guess): int x = 1234567890123L; if (x == 1234567890123L) printf("A\n"); else printf("B\n");
20:23:05 <elliott> Something wacky because this is C.
20:23:19 <elliott> Gregor: There's those rules about overflow in intermediate expressions, mayhaps they apply to == too.
20:23:23 <elliott> Pinging fizzie the language lawyer.
20:23:45 <oerjan> hm conversion rules...
20:23:51 -!- Sgeo has joined.
20:23:54 <Lymee> You need a laywer for C?
20:23:56 <Lymee> ...
20:23:57 <Lymee> Sounds about right.
20:24:11 <oerjan> Lymee: isn't that obvious.
20:24:29 -!- zachk has quit (Read error: Connection reset by peer).
20:24:31 <oerjan> the _sane_ thing would be A, i think
20:24:39 <oerjan> converting to the largest type
20:24:56 <oerjan> but i'm not a C lawyer so i'm not sure
20:25:14 -!- zachk has joined.
20:25:54 <oerjan> oh wait duh
20:25:58 <oerjan> B
20:26:15 <oerjan> x has already been truncated
20:26:35 <oerjan> so converting back won't give the original constant
20:26:40 <elliott> oerjan: um yes but the native integral type is that too
20:26:43 <elliott> so it should overflow then, as well
20:26:58 <fizzie> I would assume on a 32-bit system you would get some complaints about 1234567890123L, as it doesn't fit in a "long".
20:27:00 <Deewiant> In the ==, the x gets promoted to long
20:27:11 <Deewiant> In the =, the literal gets truncated
20:27:29 <oerjan> um won't long be 64-bit on a 32-bit system? i don't know that either :P
20:27:35 <elliott> oerjan: no
20:27:37 <oerjan> i was assuming so
20:27:37 <elliott> long is generally pointer-size
20:27:50 <oerjan> hm
20:27:53 <Deewiant> Oh right, small longs
20:28:12 <oerjan> is there even a difference between int and long then?
20:28:30 <fizzie> Not in value ranges; maybe in conversion rank.
20:28:38 <fizzie> I'm not sure it's a difference you could notice, though.
20:29:18 <fizzie> I'm not really a C lawyer; it's borderline possible that despite the suffix, integer constants automatically get a "long enough" type.
20:29:34 <oerjan> ok my official stance now is "i have no clue"
20:30:25 <oerjan> perhaps it's even undefined behavior
20:30:58 <elliott> I guess it prints B
20:31:02 <fizzie> "The type of an integer constant is the first of the corresponding list in which its value can be represented.
20:31:05 <elliott> Only because that's completely unintuitive
20:31:09 <fizzie> The list includes 'long long'.
20:31:09 <elliott> Which is the only reason Gregor would ask.
20:31:14 <oerjan> is EgoBot 32-bit or 64-bit?
20:31:32 <elliott> fizzie: Well hmph, if Gregor is relying on long long being sixty four bits then poo to him
20:31:36 <fizzie> If there is a "L" after it, the type is either "long" or "long long", depending on value.
20:31:45 <fizzie> And C99 "long long" is guaranteed to be at least that wide.
20:31:50 <oerjan> aha
20:31:54 <elliott> Hmm, fair enough
20:32:03 <elliott> Gregor: Yeah, it says B because mumble long long mumble.
20:32:10 <fizzie> So the x gets truncated in assignment, then promoted to 'long long' in the comparison, probably.
20:32:28 <oerjan> !help languages
20:32:29 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
20:32:38 <fizzie> There was something *really* unintuitive in the automatic integer promotions involving signed and unsigned stuff, but I've forgotten what it was.
20:32:43 <oerjan> !c int x = 1234567890123L; if (x == 1234567890123L) printf("A\n"); else printf("B\n");
20:32:47 <EgoBot> B
20:33:27 <Deewiant> !c printf("%zu\n", sizeof(long));
20:33:29 <EgoBot> 8
20:33:43 <elliott> long is irrelevant here
20:33:50 <oerjan> !c printf("%zu\n", sizeof(int));
20:33:52 <EgoBot> 4
20:33:52 <elliott> int is thirty-two bit on linux/xeightsix-sixtyfour
20:33:57 <elliott> so the results should be accurate
20:34:05 <elliott> Gregor: what do we win?
20:34:07 <oerjan> !c printf("%zu\n", sizeof(long long));
20:34:09 <EgoBot> 8
20:34:13 <Deewiant> If L makes it a long long then it doesn't matter whether it's 32 or 64 bit
20:34:30 <fizzie> Notably the type of "2147483648" is "long long int" (assuming 32-bit int, long; >32-bit long long), while the type of 0x80000000 is "unsigned int", despite having the same value.
20:34:38 <elliott> Deewiant: Yes it does, because "int" matters
20:34:39 <oerjan> Deewiant: well what matters is that it doesn't fit in an int
20:34:48 <fizzie> (The rules are different for decimal constants vs. octal/hex constants.)
20:34:54 <Deewiant> All current systems I'm aware of have int <= 32-bit
20:35:04 <elliott> Deewiant: DING DING DING
20:35:07 <elliott> DING
20:35:08 <elliott> DING DING DING
20:35:09 <elliott> DING DING DING
20:35:11 <Phantom_Hoover> DING DING DING
20:35:14 <elliott> DING
20:35:16 <elliott> DING DING DING
20:35:17 <coppro> DONG
20:35:18 <elliott> DAMMIT WHERE IS THE WIKIPEDIA PAGE
20:35:22 <Deewiant> elliott: My point is, both 32 and 64-bit systems.
20:35:35 <elliott> DING DING DING
20:35:37 <Deewiant> elliott: Gregor specified "32-bit system" as though it made a difference
20:35:38 <elliott> http://en.wikipedia.org/wiki/64-bit#Specific_C-language_data_models
20:35:44 <elliott> Deewiant: Solaris/SPARC64, Unicos
20:35:50 <elliott> Bitchez
20:36:23 <fizzie> It's what you could call "real 64-bit for men".
20:36:24 <elliott> Heh, Unicos is Cray, and has sixty-four bit shorts. How completely unexpected.
20:36:39 <elliott> What is it with Cray and weird bit-widths?
20:36:59 <Deewiant> Alright, Unicos. Solaris/SPARC64 doesn't count as "current" :-P
20:37:02 <fizzie> I seem to recall that at least some of the stuff that Cray makes is completely word-accessible, and they fake CHAR_BIT == 8 with those funky "word + offset" pointers.
20:37:22 <fizzie> But maybe that's just older stuff.
20:37:39 <elliott> Deewiant: TBH I hate LLP64 and LP64
20:37:45 <elliott> Because int is C's Standard Type(tm)
20:37:59 <elliott> It really sucks to waste half of everything unless you write your program atypically, and that doesn't help with libraries
20:38:15 <Deewiant> People who write typically write stupidly
20:38:28 <elliott> Deewiant: Yep, but have you coded @ yet?
20:38:46 <Deewiant> It don't exist bro
20:39:06 <elliott> Deewiant: I was making a vague point about perfection vs. conventions and compatibility
20:39:51 <Deewiant> There's not much of a compatibility argument for using int everywhere, I find
20:39:55 <Deewiant> Maybe I just don't use enough C libraries
20:40:13 <elliott> int is a lot less typing than unsigned long for loop indexes :-D
20:40:21 <elliott> (Yeah yeah, typedef ulong)
20:40:23 <oerjan> hm today's iwc is unexpected. i was guessing they'd choose Me.
20:40:33 <elliott> oerjan: how close to the end is it
20:40:50 <oerjan> about 24 strips iirc
20:40:55 <Deewiant> elliott: size_t
20:41:15 <elliott> Deewiant: And ssize_t for all the values?
20:41:18 <elliott> Brillant
20:41:27 <Deewiant> ptrdiff_t
20:41:41 <elliott> ssize_t makes me vomit puppy blood. I mean, metaphorically.
20:41:49 <elliott> But maybe also literally in a sufficiently animal-themed OS.
20:42:06 <Deewiant> How often do you find yourself needing ptrdiff_t/ssize_t? :-P
20:42:14 <Vorpal> ssize_t is a nasty hack
20:42:28 <elliott> Deewiant: Every time I use any function returning ssize_t
20:42:28 <Phantom_Hoover> http://www.irregularwebcomic.net/cgi-bin/poll.pl
20:42:32 <elliott> I kill a few people when that happens
20:42:37 <elliott> Good to get the spirit cleansed
20:42:43 <Phantom_Hoover> 29% of people don't wear any form of footwear at home.
20:42:46 <Phantom_Hoover> Whaaaaaaaaaaaat
20:42:46 <ais523> err, http://esolangs.org/wiki/DPEMOFKOXM
20:42:50 <ais523> that isn't even spam
20:42:51 <elliott> ais523: do not delete
20:42:56 <elliott> do not modify
20:43:00 <elliott> in fact, protect it, if you can
20:43:07 <ais523> it isn't categorized correctly
20:43:13 <Vorpal> <oerjan> hm today's iwc is unexpected. i was guessing they'd choose Me. <-- could be changed. Like "no, that won't do"
20:43:13 <elliott> ais523: ah, but it is
20:43:23 <elliott> ais523: your error is presuming that any categories could possibly fit it.
20:43:25 <Vorpal> oerjan, anyway is it confirmed IWC is going to end?
20:43:28 <elliott> apart from maybe [[Category:DPEMOFKOXM]]
20:43:32 <ais523> elliott: I expect you to expand it into a full article about something ontopic for Esolang
20:43:44 -!- Sgeo has quit (Read error: Connection reset by peer).
20:43:45 <elliott> ais523: No, I'm just going to invent an esolang called [[Talk:DPEMOFKOXM]]
20:43:51 <elliott> It can be discussed at [[Talk talk:DPEMOFKOXM]]
20:44:00 <elliott> I'm sure you will agree this policy is reasonable + sane
20:44:03 <Vorpal> <Phantom_Hoover> 29% of people don't wear any form of footwear at home. <-- that is a lot
20:44:18 <elliott> Phantom_Hoover: And five percent wear shoes.
20:45:40 <oerjan> Vorpal: no, but i'm still worried about it, with DMM always complaining about lack of time for stuff...
20:45:49 <Vorpal> oerjan, ah...
20:46:03 <elliott> maybe I'll binge iwc after its INEVITABLE END
20:46:07 <oerjan> he might very well decide to stop iwc when he hits his milestone
20:46:25 <Vorpal> oerjan, true :(
20:46:33 <ais523> Vorpal: I don't wear footwear at home, partly because most of the time I spend at home, I spend in bed
20:46:37 <ais523> I do wear it everywhere else
20:46:43 <elliott> I find it kind of hard to conceptualise the idea of IWC ending, and that was a very ais523 thought apparently because I almost put a - between sort and of instead of a space
20:46:50 <elliott> It's like a constant force of nature
20:46:50 <ais523> except in a few extreme circumstances like swimming baths
20:46:56 <elliott> I find it relatively hard to imagine IWC starting
20:47:04 <ais523> I've never actually read IWC
20:47:06 <oerjan> ais523: someone mentioned that on the forum, and DMM said he hoped that wasn't the reason for the poll result
20:47:10 <Vorpal> ais523, I tend to use indoor-sandals in home during summer, and warmer slippers during winter.
20:47:26 <ais523> Vorpal: ah, I see
20:47:35 <Vorpal> (spring and autumn are undefined)
20:47:35 <ais523> I find default house temperature warm enough as it is
20:48:37 <elliott> socks are the only option; I don't know why I hold this rabid opinion but it's probably for some good tradition-related reason
20:48:38 <Vorpal> ais523, I live in an old house. It can get quite cold inside even with both fireplaces in use. I mean, in an old house, when it is -27 C outside, it will get a bit colder inside too.
20:48:41 <elliott> I trust Phantom_Hoover has the good taste to agree
20:48:58 <ais523> Vorpal: -27 outside is a little rare in the UK
20:49:12 <Vorpal> ais523, yeah
20:49:13 <elliott> what does -27 feel like, i'm not sure i understand temperatures that low
20:49:13 <Phantom_Hoover> elliott, I wear slippers, actually.
20:49:18 <ais523> I'm one of those people who is known to open the window even in winter
20:49:23 <ais523> elliott: -8 is about where I start feeling the cold
20:49:31 <Phantom_Hoover> I have mentioned that my breath mists indoors in May, right?
20:49:32 <Vorpal> ais523, it is not exactly common here either. But happened a few times during the last winter.
20:49:39 <ais523> -15 is the coldest I've been out in in just a T-shirt, and got shouted at for that
20:49:44 <ais523> and to be fair, in retrospect it was a mistake
20:49:48 <Phantom_Hoover> I was once on top of a glacier in shorts.
20:49:55 <elliott> Phantom_Hoover: How soft are they; also how many depictions of rabbits do they contain. (These are literally the only important aspects of slippers.) (Also yes I exaggerate my liking of rabbits to please the crowd, shut up.)
20:49:57 <Vorpal> elliott, open a freezer. It is -18 C or so iirc?
20:50:02 <Vorpal> then make it worse
20:50:07 <ais523> Vorpal: in the UK? probably not that cold
20:50:07 <Vorpal> elliott, stay inside for a while too
20:50:08 <elliott> Vorpal: freezers are pretty mild as far as cold goes
20:50:10 <Phantom_Hoover> elliott, they are soft but lack rabbits.
20:50:20 <Gregor> <Deewiant> elliott: Gregor specified "32-bit system" as though it made a difference // it does make a difference in how the code is compiled, although the result happens to be the same
20:50:34 <elliott> Phantom_Hoover: OK fine. (Some slippers are not soft and their prime purpose is to make you step on your own toes and go ow because they are not soft; these slippers are the enemy.)
20:50:39 <Vorpal> elliott, only because you don't stay inside them. And when you open them the warm air from the room quickly mix with the cold air inside.
20:50:44 <elliott> Gregor: I don't see why, all the types involved are the same
20:50:46 * oerjan is wearing woolen socks with cotton socks inside. and shorts, my body is weird...
20:50:57 <elliott> Vorpal: Well, I guess I'll visit one of you guys' cold countries some time to find out
20:51:15 <elliott> I can't imagine it's that bad though, because below a certain temperature my behaviour is constant
20:51:18 <Phantom_Hoover> elliott, how do you even step on your feet.
20:51:19 <Vorpal> elliott, well -27 C was like during a week in total during the last two winters.
20:51:26 <Phantom_Hoover> Also most places have warmer summers than the UK.
20:51:27 <elliott> ("Freak out and shake wildly and uncontrollably and gibber about death.")
20:51:30 <elliott> (I'm not kidding.)
20:51:41 <elliott> Phantom_Hoover: You step on your feet because the slippers that are not soft are also inevitably too big for some reason.
20:51:44 <Phantom_Hoover> So if you're looking for consistent cold, you're better just moving here.
20:51:53 <Phantom_Hoover> elliott, consider that you are merely a midget.
20:51:53 <Vorpal> elliott, so yeah not exactly common, but it happens often enough that it isn't a freak event you will never encounter again in your lifetime
20:51:55 <elliott> I think we can all agree that the ideal form of footwear is whatever the smurfs use.
20:52:02 <elliott> Wait, do they even wear anything or are they just partly white.
20:52:16 <itidus20> smurf cartoons = easy to find..
20:52:18 <itidus20> however
20:52:27 <itidus20> smurf comicbooks = very difficult to track down
20:52:35 <ais523> Phantom_Hoover: Scotland might indeed be superior to England for temperature purposes for me
20:53:11 <Vorpal> elliott, btw, I know someone who been in -50 C. He walked from a hotel to a house across the square. He said that his moustache hard frozen hard from the moist in the exhaling air when he reached the other side.
20:53:29 <elliott> that's his fault for having a moustache
20:53:32 <Vorpal> thankfully I never experienced that
20:53:36 <itidus20> Phantom_Hoover: i have now seen 2 episodes of james may's toy stories..
20:53:38 <Phantom_Hoover> ais523, it is annoyingly warm in the summer even then, though.
20:53:51 <Vorpal> elliott, what is wrong with facial hair?
20:53:51 <ais523> indeed
20:54:07 <Phantom_Hoover> This may simply because I wear a jumper in all conditions, though.
20:54:09 <elliott> Vorpal: Show me a moustache that is not terrible and I'll show you a moustache that doesn't exist.
20:54:13 <elliott> Also, they will be the same moustache
20:54:17 <Phantom_Hoover> elliott, handlebar.
20:54:29 <Vorpal> elliott, moustache + beard of course. Grown together.
20:54:30 <elliott> Phantom_Hoover: Your definition of terrible is inadequate.
20:54:47 -!- Sgeo has joined.
20:54:48 <Phantom_Hoover> elliott, dude.
20:54:51 <Phantom_Hoover> Ohwait.
20:54:53 <Phantom_Hoover> Of course.
20:54:57 <Phantom_Hoover> Moustache envy.
20:55:51 <fizzie> You can get a frozen-beard experience in something like -20 already.
20:55:54 <elliott> Actually my face seems to want to develop a moustache before any other kind of hair at all, which is really annoying because I look like a prick and can't really do anything about it.
20:56:04 <Vorpal> elliott, shave?
20:56:22 <elliott> Vorpal: It's not a moustache, it's a hint that one day there might be a fledgling moustache attempting to claim this spot :P
20:56:39 <elliott> I suppose I could, like, rip the top layer of skin off.
20:56:40 <Vorpal> elliott, anyway that is common, I got moustache first too. Took a few years until I got a proper beard.
20:56:56 <elliott> Yes OK but this one is a really annoying moustache you don't UNDERSTAND my face is ANTAGONISING ME.
20:57:07 <Vorpal> Still, not enough to grow a full beard. But then, why would I want to look like RMS
20:57:12 <Vorpal> (oh god)
20:57:25 <Phantom_Hoover> elliott, I... think that's the natural pattern of beard growth.
20:57:35 <elliott> Phantom_Hoover: Yes OK but MY MOUTH STRUCTURE IS ALL WRONG FOR IT OKAY
20:57:58 <Vorpal> Phantom_Hoover, you will get that too one day, remember.
20:58:09 <elliott> ONE DAY PH YOU WILL BE AS OLD AS ME, VORPAL, WISEST IN THE LAND
20:58:22 <Phantom_Hoover> Vorpal, no I am actually a woman.
20:58:28 <Vorpal> elliott, nah, I wouldn't say that. I'm probably only second or third ;)
20:58:44 <elliott> Phantom_Hoover: This explains everything! I think!
20:58:49 <Vorpal> Phantom_Hoover, ah, then it will take a couple of more years
20:58:58 <Vorpal> err, grammar fail there
20:59:10 <Phantom_Hoover> Vorpal has not seen a woman.
20:59:26 <fizzie> Also, speaking of beards! Here's a surprise visitor at the Interspeech 2011 opening ceremony: http://www.interspeech2011.org/photos/getimage+ip.php?id=809400295
20:59:27 <Phantom_Hoover> Or maybe he's only seen prepu— no, I'm not going down that train of thought.
20:59:55 <Vorpal> Phantom_Hoover, I'm talking about http://en.wikipedia.org/wiki/Bearded_lady
21:00:05 <elliott> Vorpal has that article bookmarked.
21:00:10 <Vorpal> elliott, no I googled it
21:00:19 <Phantom_Hoover> Vorpal cannot love anything without a beard.
21:00:20 <Vorpal> elliott, try it yourself, awesome website
21:00:21 <elliott> Maybe Vorpal is a dorf.
21:00:22 <Phantom_Hoover> He is also straight.
21:00:25 <elliott> He fits the stupidity criterion.
21:00:27 <Vorpal> Phantom_Hoover, XD
21:00:30 <Phantom_Hoover> elliott, female dorfs don't have beards.
21:00:38 <fizzie> (Also http://www.interspeech2011.org/photos/gallery.php?gallery=Sunday_28_August_2011 has three other photos of him about 1/4th down the page.)
21:00:40 <Phantom_Hoover> As such, his options are extremely limited.
21:00:48 <Vorpal> Phantom_Hoover, depends on which fictional setting.
21:00:50 <elliott> Phantom_Hoover: Goblins?
21:01:03 <Vorpal> Phantom_Hoover, NOW YOU KNOW WHY I ALWAYS LIKED DISCWORLD ;)
21:01:30 <oerjan> did anyone link http://gerrycanavan.files.wordpress.com/2010/12/phmf5.jpeg yet
21:02:00 <Phantom_Hoover> No, but I was considering it.
21:02:13 <Phantom_Hoover> elliott, yes, what about Riker's beard WHAT NOW
21:02:32 <elliott> Phantom_Hoover: what.
21:02:48 <Vorpal> oerjan, nice
21:03:04 <Phantom_Hoover> elliott, CHECKMATE
21:03:09 <Phantom_Hoover> UNO
21:03:26 <elliott> oerjan: I really don't think we need to supply Vorpal his fetish material.
21:03:32 <elliott> This channel is rated PG OK.
21:03:36 <Vorpal> elliott, XD
21:03:47 <Phantom_Hoover> elliott, especially after his search for SCSI porn.
21:04:17 <elliott> "scsi porn" gets upsettingly few results.
21:04:42 <Phantom_Hoover> <elliott> Phantom_Hoover: Goblins?
21:04:47 <Phantom_Hoover> Do goblins even have beards?
21:04:56 <Phantom_Hoover> elliott, you and Vorpal both, then?
21:04:59 <elliott> I don't know, but they sure are ugly.
21:05:02 <Vorpal> <Phantom_Hoover> elliott, yes, what about Riker's beard WHAT NOW <-- that would suit you in a few years
21:05:03 <Phantom_Hoover> SCSI must be one sexy interface standard.
21:05:23 <Phantom_Hoover> Vorpal, no I will not be objectified by you I am a Strong Female Character.
21:05:26 <elliott> Actually I literally just conceptualise goblins as Prequel-Gro-Upp, but I'm fine with that.
21:05:30 <elliott> Except stupider.
21:05:41 <Vorpal> <Phantom_Hoover> elliott, especially after his search for SCSI porn. <-- don't forget google image search on PCMIA rule 34
21:05:46 -!- zachk has left.
21:05:47 <Vorpal> (safe search off)
21:06:14 <Vorpal> Phantom_Hoover, then it would suit elliott
21:06:32 <ais523> rule 34 always struck me as cheating a bit
21:06:35 <Phantom_Hoover> Were you looking for a bearded lady taking male and female plugs to a whole new level?
21:06:39 <Vorpal> ais523, oh?
21:06:46 <Vorpal> Phantom_Hoover, XD
21:06:49 <elliott> maybe i should grow the longest beard ever grown
21:06:50 <oerjan> <elliott> oerjan: I really don't think we need to supply Vorpal his fetish material. <-- sorry i didn't see that part as i was busy trying to find the picture, and then to find a version which wasn't an unreadable jpeg
21:06:50 <ais523> 35 seems a more accurate description of those sort of things
21:06:52 <elliott> that would be fun
21:06:57 <elliott> like if i tripped over my own beard
21:06:57 <Vorpal> elliott, good luck
21:07:01 <ais523> (it's a corollary/exception to rule 34, "if it doesn't exist it will be made")
21:07:29 <ais523> elliott: growing a long beard is rather difficult and requires a lot of knowledge of beard mechanics
21:07:33 <elliott> ais523: you just need to be biblical about it; rule thirty-four is more of a statement about many worlds
21:07:35 <ais523> I never shave, but my beard naturally stays quite short
21:07:47 <elliott> in that, over time, the world approximates a world in which porn of everything exists
21:07:50 <ais523> precisely /because/ I don't shave, apparently
21:07:53 <elliott> driven by rule thirty-five
21:08:00 <ais523> elliott: indeed, that's why I think rule 34 is cheating/misleading
21:08:06 <Vorpal> ais523, anyway as far as I can tell, there was *no* porn on PCMIA when I checked. Thankfully.
21:08:07 <elliott> ais523: welcome to religion
21:08:09 <elliott> ais523: beard mechanics sounds like a good thing to get a phd in
21:08:15 <elliott> http://www.sikhiwiki.org/index.php/Longest_beard_in_the_world
21:08:18 <elliott> how can this be the longest?? wtf
21:08:20 <elliott> cartoons have lied to me
21:08:23 <ais523> Vorpal: perhaps because you can't spell PCMCIA?
21:08:27 <elliott> i thought there were relaly people whose beard stretches out in front of them
21:08:31 <elliott> : /
21:08:38 <Phantom_Hoover> elliott, the beard *is* longer than him.
21:08:43 <elliott> Phantom_Hoover: Yes but come on.
21:08:43 <Vorpal> ais523, err I didn't typo it then. I got pictures of PCMCIA cards so :P
21:08:45 <elliott> I mean enough to trip on.
21:08:46 <Vorpal> just no pron
21:08:48 <Vorpal> porn*
21:08:50 -!- kwertii has joined.
21:08:51 <Vorpal> gah that typo
21:09:08 <elliott> http://farm5.static.flickr.com/4002/4488411025_b5aa0b0874.jpg
21:09:17 <elliott> apparently this is what google thinks constituets PCMCIA porn
21:09:18 <Vorpal> elliott, Phantom_Hoover: the reason why I checked this was that I was trying to find something that had no porn made on it. :P
21:09:19 <elliott> it might even be right
21:09:29 <elliott> "I have a feeling of divine happiness and I am thankful that God has chosen me for the gift of the longest beard," said Singh, 42. The measurement was presided over by Surrey-Newton MLA Harry S Bains, Surrey RCMP Sgt. Baltej S Dhillon and lawyer Sukhjinder S Grewal.
21:09:35 <elliott> that's the best blessing i've ever heard of
21:09:43 <Vorpal> elliott, what length was it?
21:09:54 <Phantom_Hoover> Referring to Sikhs as 'Singh': the stupidest?
21:09:57 <elliott> seven feet or w/e
21:10:08 <Phantom_Hoover> It's like referring to Dutch people as 'van'.
21:10:11 <elliott> "The longest beard ever was grown by Hans Langseth of Norway, whose whiskers stretched an incredible 5.33 m (17' 6) when measured upon his death in Kensett, Iowa, in 1927. The beard was presented to the Smithsonian Institution, Washington, DC, in 1967."
21:10:13 <Vorpal> 2.1 meters. Impressive
21:10:17 <elliott> measured upon his death
21:10:17 -!- Labbekak has joined.
21:10:17 <elliott> awesome
21:10:19 <Vorpal> ah
21:10:25 <elliott> oerjan: props
21:10:27 <elliott> hi Labbekak
21:10:28 <Phantom_Hoover> Such as noted Dutch musician, Van Morrison.
21:10:32 <Labbekak> goodday
21:10:32 <elliott> we're talking about the longest beards.
21:10:37 <Phantom_Hoover> (If you don't know who he is you are fortunate.)
21:10:38 <Vorpal> elliott, and 5.33 m, wow
21:10:41 <elliott> Phantom_Hoover: "what are lambdas" --van
21:10:48 <ais523> help what is lambda
21:10:57 <elliott> ais523: scary, that's what
21:10:58 <Phantom_Hoover> ais523, the cosmological constant.
21:11:12 <Labbekak> lol i got to this irc through ais523 esolang page
21:11:18 <Vorpal> ah
21:11:23 <Vorpal> Labbekak, a bit off topic at times
21:11:25 <Labbekak> and hes online
21:11:25 <ais523> Labbekak: that's one way to get there
21:11:37 * oerjan thinks Labbekak sounds norwegian.
21:11:38 <ais523> going via the community portal is the usual way, but I'm glad my userpage is doing something useful
21:11:45 <ais523> are you here to discuss esolangs or report spam?
21:11:47 <Vorpal> Labbekak, like... a lot of the time. Though when esolangs come up that is generally discussed.
21:11:49 <Labbekak> its dutch :p
21:11:51 <elliott> discuss spam and report esolangs
21:11:52 <oerjan> ah
21:11:58 <Phantom_Hoover> Labbekak, ah, van.
21:12:02 <elliott> hmm, that's actually more fitting of what we do here
21:12:15 <ais523> heh, it actually is as well
21:12:17 <elliott> at least, i like to consider myself a spam connoisseur
21:12:24 <elliott> and there are certainly plenty of esolangs to whine about
21:12:27 <ais523> new esolangs typically get reported as being incredibly bad
21:12:28 <elliott> s/esolangs/bad esolangs/
21:12:33 <Labbekak> :p was just interested in what was going on here
21:12:37 <ais523> why have all the people who make good esolangs stopped?
21:12:47 <Vorpal> ais523, well go implement feather!
21:12:47 <elliott> ais523: because of all the people who make bad ones?
21:12:48 <Vorpal> ;)
21:12:54 <Phantom_Hoover> Because all the good esolangs have been made.
21:12:58 <ais523> elliott: I'm still waiting on a spec for My Name Is Johny
21:13:04 <Labbekak> so what are the ideas behind feather
21:13:08 <elliott> ais523: I'm working on it, I got distracted by Rezzo, which is similar
21:13:10 <ais523> don't ask
21:13:11 <Phantom_Hoover> Labbekak, you don't want to know.
21:13:14 <ais523> /please/ don't ask
21:13:16 <elliott> Labbekak: try reading the esowiki article, then never ask again
21:13:18 <elliott> it's inhumane
21:13:23 <oerjan> <Phantom_Hoover> It's like referring to Dutch people as 'van'. <-- well at least singh is a noun (meaning lion iirc)
21:13:25 <Vorpal> Phantom_Hoover, that raises an interesting question: While the set of possible esolangs is clearly infinite, is the set of good esolangs finite or infinite?
21:13:35 <elliott> ais523: honestly, I don't think production has slowed down, it's just that we get so much rubbish on the wiki at a higher rate than good esolangs have ever been generated
21:13:42 <ais523> could be
21:13:49 <elliott> ais523: catseye still churns out multiple languages a year, after all, and most of them are interesting
21:13:49 <Phantom_Hoover> Vorpal, given that it's a subjective thing, I'm going to go for "shut up Vorpal".
21:14:05 <elliott> Labbekak: (http://esolangs.org/wiki/Feather)
21:14:07 <Phantom_Hoover> come back cpressey we mmiss you
21:14:08 <ais523> the random sample experiment I did a year back showed that the majority of esolangs are not completely awful, still, if you take all esolangs ever written
21:14:24 <oerjan> <elliott> oerjan: props <-- wat
21:14:34 <elliott> oerjan: norwegian guy had the longest beard ever, five metres
21:15:46 <Vorpal> Labbekak, Feather is a language that allows you to retroactively modify the language itself.
21:16:31 <Labbekak> now i have to find out wat retroactive means
21:16:35 <ais523> Vorpal: you can start to get to Feather by following a sequence of perfectly logical steps, then start to realise the implications and stop thinking about it in a pre-emptive attempt to stop your head exploding
21:16:44 <ais523> Labbekak: making a change to something that happened in the past
21:16:58 <ais523> sort-of like time travel
21:16:59 <Labbekak> ah right
21:17:07 <Vorpal> ais523, ah, it is a bit like that 4D puzzle game I read about. But worse?
21:17:19 <elliott> comparing a four dimensional puzzle to feather?
21:17:21 <elliott> that's insulting
21:17:30 <Vorpal> ais523, anyway just use IOT to implement it.
21:17:30 -!- sllide has quit (Ping timeout: 245 seconds).
21:17:36 <ais523> elliott: not really, /all/ comparisons involving Feather are inaccurate
21:17:38 <ais523> I think, at least
21:17:40 <elliott> i don't think iot provides enough
21:17:45 <ais523> so it's no more insulting than any other comparison
21:17:47 <elliott> it just provides standard-issue time travel
21:17:48 <ais523> I think call/cc provides enough
21:17:55 <elliott> well, I mean
21:17:56 <ais523> the problem is proving it
21:17:57 <elliott> for easy implementation
21:18:02 <Vorpal> <elliott> that's insulting <-- true, but there are few other things to measure it against. Nothing as bad as Feather for a start.
21:18:54 -!- Sgeo has quit (Quit: Leaving).
21:19:03 <Vorpal> ais523, would it be possible to make a nerfed version of feather, then based on what you learnt from that make a better one and so on?
21:19:09 <Vorpal> learned*
21:19:22 -!- Sgeo has joined.
21:19:26 <ais523> Vorpal: that's how I'm going about it
21:19:40 <ais523> the thing is, as it's Feather, you can start with the first nerfed version and then retroactively change it into a full version
21:20:22 -!- monqy has joined.
21:20:24 <Vorpal> ais523, well yeah.... I was thinking about maybe a trial one that is more limited than that, to work out concepts and so on.
21:20:39 <oerjan> > map ord "DPEMOFKOXM"
21:20:40 <lambdabot> [68,80,69,77,79,70,75,79,88,77]
21:20:48 <Lymee> > ord "AB"
21:20:48 <lambdabot> Couldn't match expected type `GHC.Types.Char'
21:20:48 <lambdabot> against inferred type...
21:20:51 <Lymee> :<
21:20:57 <ais523> Vorpal: either it has the inherent concepts that make it Feather, or it doesn't
21:20:58 <Lymee> > ord "A"
21:20:58 <lambdabot> Couldn't match expected type `GHC.Types.Char'
21:20:59 <lambdabot> against inferred type...
21:21:04 <oerjan> > ord 'A'
21:21:04 <lambdabot> 65
21:21:17 <Labbekak> ord 'b'
21:21:20 <ais523> if it doesn't, then none of the problems involved in retroactive modification come up, so it won't help
21:21:25 <Lymee> > chr 65
21:21:25 <lambdabot> 'A'
21:21:29 <ais523> if it /does/, then it's a protoFeather
21:21:31 <Vorpal> ais523, ah hm
21:21:45 <Labbekak> > ord 'c'
21:21:46 <lambdabot> 99
21:21:47 <Vorpal> ais523, so there are no hard concepts that could be tested on their own as such?
21:21:47 <oerjan> i just thought it looked vaguely vaguely russian, so i wanted to check the characters :P
21:21:55 <Phantom_Hoover> ais523, I thought the tricky bit was stuff like infinite stacks of interpreters.
21:22:00 <Lymee> > map (chr . (+) 5 . ord) "Huggles for everybody! Even the elves!"
21:22:02 <lambdabot> "Mzllqjx%ktw%j{jw~gti~&%J{js%ymj%jq{jx&"
21:22:11 <Phantom_Hoover> lambdabot, DIE YO UBASATRD
21:22:28 <Labbekak> > "oke"
21:22:46 <Lymee> > map (chr . (-) 5 . ord) "Mzllqjx%ktw%j{jw~gti~&%J{js%ymj%jq{jx&"
21:22:47 <ais523> Phantom_Hoover: it's not really infinite, you just pick a finite number for the size of your stack, and if it's too small, you retroactively make it bigger
21:22:47 <lambdabot> "*Exception: Prelude.chr: bad argument: (-72)
21:23:01 <Lymee> > map (chr . (flip (-)) 5 . ord) "Mzllqjx%ktw%j{jw~gti~&%J{js%ymj%jq{jx&"
21:23:03 <lambdabot> "Huggles for everybody! Even the elves!"
21:23:04 <Phantom_Hoover> ais523, yes, I surmised as much.
21:23:15 <ais523> Lymee: just use (-5)
21:23:21 <ais523> rather than (flip (-)) 5
21:23:31 <Lymee> Okey
21:23:45 <Labbekak> thats Haskell right?
21:23:48 <oerjan> Labbekak: you had a space before the >
21:23:55 <oerjan> and yes
21:23:55 <Vorpal> :t (flip (-))
21:23:56 <lambdabot> forall a. (Num a) => a -> a -> a
21:23:59 <monqy> :t (-5)
21:23:59 <lambdabot> forall a. (Num a) => a
21:24:02 <monqy> hehehehehehe
21:24:10 <Vorpal> ah it is the binary -
21:24:12 <Vorpal> of course
21:24:12 <Gregor> Welp, I guess I need to make an esolang.
21:24:16 <monqy> :t subtract 5
21:24:16 <lambdabot> forall t. (Num t) => t -> t
21:24:22 <Gregor> It's been, what, five years since my last one? :P
21:24:23 <Vorpal> Gregor, sure you do
21:24:50 <monqy> Lymee: you want (subtract 5)
21:25:07 -!- kwertii has quit (Quit: kwertii).
21:25:14 <Labbekak> Gregor you made glass right?
21:25:19 <Gregor> Labbekak: Yeah
21:25:31 <Labbekak> cool :)
21:25:39 <Lymee> @pl \f -> map (chr . f . ord)
21:25:39 <lambdabot> map . (chr .) . (. ord)
21:25:48 <oerjan> <ais523> Phantom_Hoover: it's not really infinite, [...] <-- i had this small idea that you could maybe use something equivalent to haskell's repeat for the bottom level?
21:25:56 <Lymee> :t map . (chr .) . (. ord)
21:25:56 <lambdabot> (Int -> Int) -> [Char] -> [Char]
21:26:12 <Lymee> Yay obfuscation
21:26:35 <Lymee> @pl map.(chr.).(.ord)$+5$"Test"
21:26:35 <lambdabot> (line 1, column 18):
21:26:35 <lambdabot> unexpected "+" or "$"
21:26:35 <lambdabot> expecting variable, "(", ".", white space, operator or end of input
21:26:35 <lambdabot> ambiguous use of a left associative operator
21:26:36 <oerjan> ais523: - is the one operator you cannot section properly. but there is subtract.
21:26:38 <Lymee> :(
21:26:49 <Lymee> @pl map.(chr.).(.ord)(+5)"Test"
21:26:49 <lambdabot> map . (chr .) . (ord "Test" + 5)
21:26:53 <Lymee> Erm
21:26:56 <Lymee> > map.(chr.).(.ord)(+5)"Test"
21:26:57 <lambdabot> Couldn't match expected type `f (a -> GHC.Types.Int)'
21:26:57 <lambdabot> against infer...
21:26:58 <ais523> oerjan: the bottom level is just a function that retroactively adds more levels
21:26:59 <ais523> and oh, right
21:27:15 <ais523> fun fact about ICA: if you're applying a function f to -5, the syntax is, logically, f((-5))
21:27:23 <ais523> but I added an abbreviation which allows just the one set of parens
21:27:36 <ais523> (the unary minus operator is a circumfix (- ... ))
21:27:45 <elliott> <ais523> (the unary minus operator is a circumfix (- ... ))
21:27:46 <elliott> don't
21:27:53 <elliott> this has caused massive problems for haskell
21:28:10 <elliott> make it part of the number literal syntax for all that's good and holy, with a separate negate operator :P
21:28:17 <Sgeo> _?
21:28:19 <ais523> elliott: it's not -
21:28:24 <ais523> as in, -x
21:28:27 <ais523> it's (-x)
21:28:29 <ais523> with the parens
21:28:34 <elliott> or at least have it bind tighter than application
21:28:35 <ais523> this makes it very different from binary -
21:28:41 <elliott> ais523: well that's hardly better but okay.
21:28:45 <elliott> :P
21:28:46 <Sgeo> What's wrong with _ for negative?
21:28:50 <ais523> how it binds is irrelevant because there's only one way circumfix operators can bind
21:29:03 <ais523> Sgeo: it looks silly, and it's not commonly used enough to be worth wasting a single character on
21:30:26 <oerjan> unary - would be entirely sane if haskell didn't have sections.
21:30:37 <Phantom_Hoover> Sections?
21:30:40 <monqy> negate for negation, -5 for negative 5, x - 5 for x minus five
21:30:51 <Sgeo> Phantom_Hoover, (5*) etc
21:30:56 -!- FireFly has quit (Quit: FireFly).
21:30:57 <oerjan> > (+5) 2
21:30:57 <lambdabot> 7
21:31:03 <Phantom_Hoover> Oh, right.
21:31:11 <oerjan> > (-5) 2 -- >:)
21:31:11 <lambdabot> -5
21:31:31 <monqy> nice one
21:31:39 <Lymee> I don't get it.
21:31:45 <oerjan> that's because of lambdabot's special Num (a -> b) instance
21:31:53 <Lymee> @pl (-5) 2
21:31:53 <lambdabot> -5 2
21:31:55 <elliott> <oerjan> unary - would be entirely sane if haskell didn't have sections.
21:32:06 <elliott> f -9 should really do the obvious.
21:32:10 <oerjan> Lymee: don't trust @pl to get subtle syntax details right
21:32:15 <Lymee> =p
21:32:52 <oerjan> elliott: haskell does things inspired by math. f -9 is not common math notation. well admittedly neither is f 9.
21:33:02 <elliott> qed :P
21:33:10 <Phantom_Hoover> oerjan, does it?
21:33:17 <Phantom_Hoover> The syntax isn't very mathsy, really.
21:33:32 <monqy> math but better
21:33:39 <Phantom_Hoover> monqy, no
21:33:41 <Phantom_Hoover> you are bad
21:33:50 <oerjan> Phantom_Hoover: haskell's parsing of -x*y+z is exactly as math would do it
21:33:56 -!- Labbekak has quit (Quit: Page closed).
21:34:03 <oerjan> actually that's a bad example
21:34:11 <Phantom_Hoover> oerjan, sure, but that's just operator precedence any binding and all that.
21:34:14 <oerjan> -x^y+z is better
21:34:24 <monqy> y*-x+z
21:34:26 <Phantom_Hoover> :t (^)
21:34:26 <lambdabot> forall a b. (Num a, Integral b) => a -> b -> a
21:34:32 <Lymee> > (-(x^y+z))
21:34:36 <lambdabot> mueval-core: Time limit exceeded
21:34:51 <Lymee> :t \x y z -> (-(x^y+z))
21:34:52 <Phantom_Hoover> Um.
21:34:57 <lambdabot> forall a b. (Num a, Integral b) => a -> b -> a -> a
21:35:07 <Phantom_Hoover> Shouldn't that've just complained about unbound variables?
21:35:08 <oerjan> Lymee: that's another lambdabot feature, single letters are defined as that special Expr type
21:35:12 <monqy> doesn't math have like a ton of notations
21:35:13 <monqy> ......
21:35:14 <oerjan> Phantom_Hoover: ^
21:35:17 <Phantom_Hoover> Ah.
21:35:20 <Phantom_Hoover> :t x
21:35:21 <lambdabot> Expr
21:35:41 <Phantom_Hoover> > (-(xx^yy+zz))
21:35:41 <lambdabot> Not in scope: `xx'Not in scope: `yy'Not in scope: `zz'
21:35:53 <oerjan> and x^y loops because y isn't a number which is reduced to 0 by the usual recursive definition of ^
21:35:57 <oerjan> (i guess)
21:35:59 <monqy> e.g. f 9 seems a lot more like lambda calculus notation than math notation, anyway
21:36:34 <monqy> or would normal math notation not make a mess of parentheses when used in haskell
21:36:34 <Lymee> > map(reverse)([[1,2,3],[4,5,6]])
21:36:36 <lambdabot> [[3,2,1],[6,5,4]]
21:36:37 <Lymee> I can't believe it's not C!
21:36:44 <monqy> i can.......
21:36:48 * Lymee runs
21:36:57 <Lymee> Jokes. :V
21:37:03 <monqy> bad ones
21:37:12 <monqy> it doesn't look anything like c
21:37:17 <monqy> more like what python
21:37:31 -!- elliott has quit (Ping timeout: 245 seconds).
21:37:33 <Phantom_Hoover> What Python? August 2011.
21:37:37 <monqy> does javascript have that notation for lists it's been so long since I've used it
21:37:48 <Lymee> !python map(reverse,[[1,2,3],[4,5,6]])
21:37:49 <EgoBot> Traceback (most recent call last):
21:37:49 <Phantom_Hoover> Today: we compare the Burmese to the Boa.
21:39:09 <oerjan> monqy: ok haskell's notation isn't exactly the same as math, but basic arithmetic is the same wrt precedence, and that's not a feature that i think is frequently redefined in math subfields
21:39:28 <oerjan> (the _meaning_ of the operators is redefined, but not their syntax)
21:39:57 <oerjan> because rings and groups are used everywhere
21:40:04 <Phantom_Hoover> Indeed, the meaning is usually redefined to fit the syntax.
21:40:23 <Phantom_Hoover> Well, I guess it's more general semantics, but still.
21:46:22 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:47:06 -!- kwertii has joined.
21:51:34 * Phantom_Hoover → sleep
21:51:35 -!- Phantom_Hoover has quit (Quit: Leaving).
22:01:53 <Sgeo> How much pain would I cause myself trying to implement something that's only partially continuation-passing style
22:03:20 -!- GreaseMonkey has joined.
22:05:09 <oerjan> i am thinking haskell could at least keep it sane if you use the ContT monad transformer to track the CPS-using parts
22:05:24 <oerjan> (just an idea)
22:05:54 <oerjan> or just Cont if the non-CPS-using parts are pure
22:22:52 <Sgeo> I didn't mean implementing in Haskell
22:23:08 <Sgeo> Although maybe if I studied the Cont monad, that would give me inspiration?
22:23:31 <Sgeo> But I am implementing this in LSL
22:23:40 <monqy> hehehe
22:25:11 <oerjan> no i'm meaning that if you used haskell, it might actually provide enough type security not to go mad while doing this >:P
22:29:18 <oerjan> trying to raise a continuation when there are intervening non-CPS parts would be disastrous, i think
22:29:36 <kmc> lots of programs use continuations without being in full CPS
22:29:46 <kmc> full CPS is pretty rare in human-written code
22:36:34 -!- ais523 has quit (Remote host closed the connection).
22:39:50 <Sgeo> Well, I'm planning on compiling to CPS or CPS-like
22:40:00 <Sgeo> But I want to avoid using continuations unless necessary
22:40:16 <Sgeo> For efficiency purposes. But it might complicate implementation
22:41:12 <Sgeo> On the other hand, full CPS would mean not needing to worry about ... what's the term for the stack of functions? call stack?
22:41:21 <oerjan> well afaiu you need to use CPS whenever you call something which might raise a continuation outside of it.
22:42:33 <kmc> yeah, you turn your call stack into a chain of closures in the heap, probably
22:42:47 <kmc> that's a known implementation technique, and it does simplify things
22:42:59 <kmc> but you pay for tracking that info one way or another :)
22:43:09 <kmc> it makes it easy to provide an actual call/cc primitive, for one
22:43:48 <Sgeo> I'm still a little uncertain how I'm going to handle memory
22:46:39 -!- CakeProphet has joined.
23:03:18 -!- cheater has quit (Ping timeout: 264 seconds).
23:07:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:26:48 -!- sllide has joined.
23:30:04 -!- cheater has joined.
23:46:34 -!- sllide has quit (Read error: Connection reset by peer).
23:56:21 -!- copumpkin has joined.
23:58:22 -!- CakeProphet has quit (Ping timeout: 240 seconds).
2011-08-30
00:16:35 -!- Patashu has joined.
00:22:03 -!- variable has quit (Ping timeout: 252 seconds).
00:25:14 -!- variable has joined.
00:26:17 <Gregor> OK esonauts, make some terrible jokes regarding the fallacy/phallus/fellatio punfecta.
00:26:33 -!- kwertii has quit (Quit: kwertii).
00:28:43 <oerjan> what do you think we are, cunning linguists?
00:30:17 <oerjan> http://www.reddit.com/r/programming/comments/jya5h/gmailcom_being_mitmd_by_iran_using_this/
00:31:51 <oerjan> (links to http://pastebin.com/ff7Yg663)
00:32:33 -!- azaq23 has joined.
00:33:25 -!- variable has quit (Ping timeout: 252 seconds).
00:36:13 -!- variable has joined.
00:43:02 <zzo38> I compiled a Haskell program that has foreign export, it made up a C program file with StgClosure and Capability and rts_checkSchedStatus and some other stuff that I don't know.
00:45:31 -!- variable has quit (Ping timeout: 252 seconds).
00:48:30 <zzo38> Once I was trying to fill a comment that had a CAPTCHA. If I typed in "Anonymous" as the name, it always said the CAPTCHA was wrong. I tried it ten times it didn't work so I changed the name to "A. Nonymous" and then it worked OK
00:48:54 <zzo38> (It didn't say anything about the name being wrong; it said the CAPTCHA was wrong.)
00:49:29 <zzo38> What kind of stuff is that?
00:50:03 <oerjan> bad stuff.
00:50:45 <zzo38> Why does it do that?
00:51:38 <oerjan> maybe someone doesn't want anonymous posts, and made a mistake in the code so it doesn't give a different error message
00:52:05 <oerjan> stupid, anyhow
01:53:54 <Gregor> HEEEEEEEEEEEEEEEEEEEEY
01:54:00 <Gregor> I didn't even notice the reference in the topic.
01:54:21 <Gregor> IT IS THE NINETIES, AND THERE IS TIME FOR FINNKLAX
01:58:07 <Gregor> I can't decide whether cranking up the reverb to 2 bounces is actually improving the audio, or I'm just jacking off to reverb.
02:03:11 <oerjan> Gregor: if you cannot tell the difference, you're in risk of committing a phallus fallacy.
02:03:44 -!- variable has joined.
02:03:51 -!- variable has quit (Changing host).
02:03:51 -!- variable has joined.
02:04:07 <Gregor> oerjan: BA-DUM
02:07:30 -!- copumpkin has quit (Ping timeout: 264 seconds).
02:07:55 -!- copumpkin has joined.
02:26:24 -!- jcp|1 has joined.
02:26:59 -!- jcp|other has quit (Read error: Operation timed out).
02:28:16 -!- jcp has quit (Ping timeout: 260 seconds).
02:31:01 -!- zzo38 has quit (Remote host closed the connection).
02:33:07 -!- jcp has joined.
02:34:15 -!- jcp|1 has quit (Ping timeout: 258 seconds).
02:36:24 -!- jcp|other has joined.
02:38:05 -!- jcp has quit (Ping timeout: 252 seconds).
02:50:52 -!- jcp has joined.
03:02:56 -!- augur has quit (Remote host closed the connection).
03:11:42 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:12:15 -!- azaq23 has joined.
03:48:09 -!- evincar has joined.
03:56:23 <Sgeo> Has anyone read this before? http://www.springerlink.com/content/w7824830mp13171x/
03:56:42 -!- GuestIceKovu has quit (Ping timeout: 240 seconds).
03:56:46 -!- Slereah has joined.
03:56:47 <Sgeo> !@#$ costing money
03:59:04 <coppro> haha
03:59:08 <coppro> <3 university
04:04:16 <Sgeo> "The Kerr metric, which describes empty spacetime around a rotating black hole, possesses these features: a computer can orbit the black hole indefinitely, while an observer falling into the black hole experiences an M-H event as they cross the inner event horizon. (This, however, neglects the effects of Black Hole Evaporation.)"
04:04:21 <Sgeo> http://en.wikipedia.org/wiki/Malament-Hogarth_spacetime
04:04:38 <Sgeo> Ooh, so if I'm willing to fall into a black hole, I can solve the halting problem for turing machines
04:07:02 <evincar> Can't a human determine whether a program can halt?
04:07:09 <evincar> Not whether it does.
04:07:12 <evincar> But whether it can.
04:07:36 <evincar> If so, is there an algorithm for that?
04:07:57 <Sgeo> What does "whether it can" even mean?
04:07:58 <evincar> Because if we can do it, I presume some equivalent finite machine can.
04:08:23 <evincar> I dunno, barring all else, while(true){} can't halt.
04:08:34 <evincar> But while(random()!=k){} can.
04:08:55 <Sgeo> I don't think impure stuff is part of traditional turing machines
04:10:54 <coppro> evincar: The only way to be sure is to run the machine over every possible input
04:12:36 <evincar> coppro: Not really. A human's insight can often discern patterns that lead to discovery of the particular inputs for which the program does and does not halt.
04:12:59 <evincar> Perhaps not always, but of course we're not infinitely intelligent either.
04:13:06 <evincar> We're just very good at pattern recognition.
04:15:14 <coppro> evincar: Yes, but pattern recognition is huristic
04:19:51 -!- MDude has changed nick to MSleep.
04:22:18 <oerjan> evincar: i think the collatz functions i recently learned about and put on the wiki are a counterexample where it's undecidable whether _any_ inputs don't halt. (the collatz problem itself is unsolved, but the paper i put as a link is iirc about showing that there are better examples)
04:23:04 <oerjan> (where better = some of them are definitely undecidable)
04:23:13 <oerjan> *iiuc
04:23:43 <evincar> That's true. I guess humans can't always get it.
04:23:47 <oerjan> hm that's the reverse problem though. but i'd be surprised if what you said was solvable.
04:23:55 <evincar> But I didn't say "does halt".
04:23:56 <evincar> I said "can".
04:24:08 <evincar> And obviously Collatz can halt for some inputs.
04:24:20 <oerjan> yes.
04:25:05 <evincar> So is there a case where the reverse is true, where every input we've tried hasn't halted but we're not sure there's no input that does?
04:25:24 <oerjan> mind you there's only a difference if there are inputs
04:27:10 <oerjan> hm there's that unambiguous parsing problem, which is undecidable, i think you can make that into an example.
04:27:58 <oerjan> given a context-free grammar, search for a string which has two different parsings.
04:28:07 <oerjan> halt once you find one.
04:28:34 <oerjan> hm wait what are the inputs
04:29:39 <evincar> The input is presumably the grammar.
04:29:52 <evincar> :P
04:30:24 <oerjan> that doesn't work since there are clearly some grammars that make this halt
04:30:32 <evincar> So there's no algorithm for finding ambiguities in grammars?
04:30:46 <evincar> A general one, of course.
04:30:55 <oerjan> not if you want it to halt if there aren't any
04:31:12 <evincar> Interesting.
04:31:30 <evincar> I always found it odd that analytical problems of that sort can be unhalting.
04:31:48 <evincar> It's sort of unintuitive that a finite input can represent infinite computation.
04:32:23 <evincar> But at the same time obvious, if you've ever programmed anything.
04:32:55 <evincar> What's even more odd is the class of programs that are designed not to halt.
04:33:08 <evincar> Telephony systems, aircraft controllers, that sort of thing.
04:33:59 <coppro> evincar: Any turing machine that we have never proven halts or does not halt on any input satisfies your criterion
04:34:39 <evincar> True.
04:34:50 <evincar> Humans are only so good.
04:35:01 <evincar> But of course, we're finite.
04:35:09 <evincar> Even if we're beautifully complex.
04:35:35 <evincar> I guess the notion of "does not halt" for a human is "gives up or dies after a while".
04:36:58 <oerjan> evincar: iirc the proof for those ambiguous grammars is by constructing from a turing machine a grammar where a string with two parsings describes the history of the computation of the tm, and only exists if it halts.
04:37:39 <evincar> Interesting construction.
04:38:13 <evincar> So lately I've been thinking about iterators.
04:38:18 <evincar> Pulling a Stepanov pretty much.
04:38:49 <evincar> I feel like they're a good model for pretty much any lazy computation.
04:39:08 <evincar> But of course C++ is awful and it's difficult to test the ideas I've been having.
04:39:21 <Sgeo> Then why use C++?
04:39:22 <oerjan> evincar: um, what about cyclic lazy structures
04:39:35 <oerjan> > let l = 1:2:l in l
04:39:36 <lambdabot> [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,...
04:39:40 <evincar> oerjan: You have a cyclic iterator?
04:40:00 <evincar> They're not really "traditional", but meh.
04:40:21 <oerjan> i'm thinking about the data sharing, here
04:40:35 <evincar> Could you elaborate?
04:41:07 <oerjan> that l in haskell evaluates to just a cyclic linked list with two elements
04:42:32 <oerjan> oh a better thing that would be hard with iterators is tying-the-knot constructions
04:42:46 <oerjan> technically l there is one, but very simple
04:43:31 <evincar> Yeah, a cyclic list isn't hard. You can make a cyclic_iterator just like you did there, with a cons_iterator and a reference.
04:44:26 <oerjan> ah, the mccarthy 91 function
04:44:31 <evincar> In fact, I think it'd be simpler if you just had a cyclic_iterator use a buffer_iterator internally (which ordinarily would adapt a forward iterator into a bidirectional one).
04:45:26 -!- MSleep has quit (Ping timeout: 245 seconds).
04:46:02 <oerjan> > let m = [m !! (m !! (n + 11)) | n <- [0..100]] ++ [91 ..] in m
04:46:03 <lambdabot> [91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91...
04:47:46 <evincar> What am I looking at here?
04:48:10 <copumpkin> the 99 function
04:48:13 <copumpkin> 91 function
04:48:15 <oerjan> a lazy list giving the values for the McCarthy 91 function
04:48:16 <copumpkin> mccarthy f91
04:49:12 <oerjan> and the calculation jumps back and forth, so an iterator is ... not so useful.
04:49:27 <copumpkin> it's a pain to implement in most proof languages
04:49:39 <copumpkin> because it doesn't obviously terminate
04:49:46 <oerjan> heh
04:50:37 <evincar> Interesting. I'll have to think about it.
04:51:25 <oerjan> evincar: i think maybe iterators are good for the kind of lazy list computations that "fuse" in the sense of ghc's optimizations
04:53:23 <evincar> I think you're right...
04:53:25 <oerjan> "Donald Knuth generalized the 91 function to include additional parameters. John Cowles developed a formal proof that Knuth's generalized function was total, using the ACL2 theorem prover."
04:53:51 <evincar> ...so like, general backtracking computation over a sequence?
04:56:42 <kmc> > let m = [m !! (m !! (n + 11)) | n <- [0..100]] ++ [91 ..] in dropWhile ((==91).snd) . zip [0..] $ m
04:56:43 <lambdabot> [(102,92),(103,93),(104,94),(105,95),(106,96),(107,97),(108,98),(109,99),(1...
04:57:14 <kmc> would be a lot more efficient with a memo trie
04:59:03 <evincar> Okay, so there has to be some means of general recursion, and I'm not sure how to get that without special-casing it.
04:59:18 <evincar> Sure, you could consider a "recurse_tag" some kind of axiom.
04:59:27 <evincar> But it would seem cleaner to have a "Y combinator" of iterators.
04:59:36 <evincar> Though I'm not sure what that would be.
04:59:49 <oerjan> evincar: hm that reminds me of the difference between general and primitive recursion
05:00:09 -!- zzo38 has joined.
05:02:17 <evincar> Actually, I'm looking at this wrong.
05:02:25 <evincar> Higher-order iterators are easy.
05:02:39 <evincar> They already have access to the iterators they're receiving.
05:02:49 <evincar> Dereferencing them is what forces values.
05:03:50 <evincar> So you could write a Y iterator that just returns an iterator constructed from the type given as its input.
05:04:30 <evincar> It'd be a literal translation of \f.(\x.f(x x))(\x.f(x x)).
05:05:15 <zzo38> I play Pokemon card. I managed to win even though they had only one side card remaining I had five, I just needed to survive for eight turns. But it helped because I had cards with a lot of hit points, as well as SWITCH and GUST OF WIND, guessing what card opponent has in their hand (they don't know how to bluff very well), and the prophecy defense. I picked up one card without a lot of hit points but did not play it in case opponent has GUST O
05:06:32 <zzo38> The last card in their deck was a water energy (which could be used for retreat), but I calculated everything ahead of time to ensure that if they were able to do that, they still would not be able to do enough damage to knock out my active pokemon.
05:07:02 <evincar> I never played the game...I was always more into Magic myself.
05:07:20 <evincar> Though I only collected Pokémon cards, and never built a Magic deck.
05:07:42 <zzo38> I play Magic: the Gathering cards too. But I also like to play Pokemon card. I do not own any cards; I always borrow cards.
05:08:41 <zzo38> I do have a few Magic: the Gathering cards, which are the ones I drafted. But I am never going to use them because if I go to a tournament I get new cards every time.
05:14:49 <zzo38> In the game of Pokemon card (I use old style rules), there is a lot of tactical options and strategy; like chess the game is 90% tactics but there is long term strategy. You also have to know defense; I have the book "Art of Defense in Chess" and really in other game there are similar defensive themes.
05:15:02 <evincar> Ooh, just had a thought about the iterator thing.
05:15:14 <evincar> You can model general loops as cyclic iterators and compositions of them.
05:15:34 <evincar> So you could have a game-loop-iterator(event-processing-iterator, rendering-iterator).
05:16:30 <evincar> And the game-loop-iterator models an abstract spiral data structure that ends when the game events end.
05:16:40 <zzo38> I have made up a new format of Pokemon card: All the cards in the deck other than basic energy cards are decided at random. And then, you can trade up to five of those cards for an equal number of new random cards. You can put basic energy cards yourself. In addition, you can play any evolution card as long as it is either the correct one (by name), *or* the following conditions all apply:
05:17:45 <zzo38> * It has the same energy type as the card it is being played on. * It is the correct stage (such as stage 1 on basic, or stage 2 on stage 1). * All the lower stage cards in the stack you are playing it on have a proper evolution card of the stage you are playing.
05:18:56 <zzo38> (For example, it is permitted to play WARTORTLE on SEEL but you could not play BLASTOISE on top of that because SEEL does not go up to stage 2.)
05:20:20 <evincar> zzo38: So you just have to remember which cards have evolutions? Or is it on the cards themselves? (I forget.)
05:20:48 <zzo38> (Some cards (such as EEVEE) have evolution cards of different energy types; such evolutions can still be played. However, you could not play any fire type evolution card on EEVEE. You could however, play DRAGONAIR but not continue it to DRAGONITE.)
05:20:56 <evincar> I remember SEEL → DEWGONG but the newer generation eludes me.
05:21:04 -!- oerjan has quit (Quit: Good night).
05:21:09 <evincar> I haven't really paid attention to Pokémon since 2nd generation.
05:21:40 <zzo38> evincar: The evolution cards do say what card you play it on top of. Other than that it does not say; but I can remember. I am only playing the first generation cards anyways, with the exception of LUGIA which has no evolution cards anyways.
05:23:01 <zzo38> The POKEMON BREEDER card does require you to know which stage 2 card matches which basic pokemon card even though the card does not say. However, if you limit yourself to first generation pokemon cards, you can tell which stage 2 card matches by the pokemon number (for example, the stage 2 card #6 (CHARIZARD) matches basic pokemon card #4 (CHARMANDER)).
05:24:04 <evincar> That's true, I hadn't thought of that.
05:25:42 <zzo38> Yes; if and only if you are playing first generation only, the function of the POKEMON BREEDER card does not use any information that is not printed on the relevant cards themselves.
05:25:51 <evincar> So I may have come up with a general way of nicely expressing lazy computation in an eager, imperative language.
05:26:13 <evincar> Which is nice because it also implies a nice way of compiling lazy languages into eager ones.
05:26:38 <evincar> I'm going to have to explore this...
05:27:00 <evincar> ...and probably make some intermediate language that compiles to C++ so I don't drive myself insane.
05:27:22 <evincar> C++ has ubiquity on its side, at least, as a target language.
05:27:23 <zzo38> Can you use LLVM instead?
05:27:31 <evincar> I would ordinarily.
05:27:32 <Patashu> compile to c-- instead
05:28:06 <evincar> But I think it'd be easier to target a slightly higher-level language where iterators make sense.
05:28:15 <evincar> If only as a proof of concept.
05:28:53 <kmc> wait, you're using C++ so you *don't* drive yourself insane?
05:30:12 <zzo38> I would like to program LLVM with the macros of BLISS and the literate programming of WEB.
05:31:01 <zzo38> That would be, to me, almost an ideal programming language for the level and other kind of thing which is C is being used.
05:31:01 <evincar> kmc: No, I'd be writing an intermediate language so I don't drive myself insane using C++ directly.
05:31:29 <evincar> At the very least, some kind of preprocessor.
05:31:32 <zzo38> LLVM is far better designed than C, in my opinion.
05:31:35 <monqy> targeting c++ sounds hilarious
05:32:06 <evincar> zzo38: I would like to see a high-level assembly based on LLVM, similar in some respects to C.
05:32:17 <evincar> I remember FASM has nice macros...perhaps something like that.
05:32:58 <evincar> monqy: I basically just need a language that's good for generic programming.
05:33:20 <monqy> evincar: what
05:33:23 <monqy> aahhahaha
05:33:26 <evincar> Is there anything else out there that's relatively low-level but also good at generic things?
05:33:38 <evincar> Because I would use that.
05:33:39 <zzo38> Do you know the macro system of BLISS? Now combine the BLISS macros with the metamacros of Enhanced CWEB, and the ability to run code at compile time (Enhanced CWEB allows it in @{ ... @} blocks, while Template Haskell allows it in $( ... ) blocks).
05:33:41 <monqy> it'd be easier and better to do all the generic stuff yourself than target c++
05:33:44 <monqy> to do the generic stuff
05:33:47 <monqy> are you crazy
05:34:07 <zzo38> What kind of high level assembly based on LLVM and similar to C? What kind of ideas do you have about it?
05:35:15 <evincar> zzo38: Something based on a system like this: http://flatassembler.net/docs.php?article=manual#2.3.3
05:35:37 <evincar> Where macros are introduced that build on one another to provide a high-level interface to the LLVM instructions.
05:36:56 <evincar> monqy: What do you mean, "do it myself"? Write an interpreter/compiler?
05:37:25 <monqy> aren't you doing that already?
05:37:30 <monqy> compiling your language to c++?
05:38:12 <evincar> I wasn't writing a language so much as just some macros or whatever to make writing loads of iterators less painful and error-prone.
05:38:54 <evincar> Also, if it targets C++, people might use it as a library.
05:38:59 <kmc> what percentage of popular programming languages started out as "just some macros"?
05:39:17 <zzo38> evincar: Actually in most cases I like the LLVM instructions directly; they are far better designed than C. But I would still like to have macros, similar to those in BLISS (Wikipedia has an article about BLISS; I also like the way that references to variables work in BLISS, and structures in BLISS; they are very versatile.)
05:39:20 <evincar> kmc: Do more popular languages count for more?
05:39:43 <zzo38> kmc: I think EMACS did.
05:42:05 <zzo38> Macros in BLISS have some similarities to macros in TeX and METAFONT (but not exactly).
05:47:13 <zzo38> Definitions of structure types in BLISS can take parameters and can contain any arbitrary program code.
05:47:51 <zzo38> And I would like to see an explicit union type in LLVM; it could possibly even be used for some optimizations.
05:47:52 <evincar> Hmm, that's another thing...what would be a good way of defining structures in my hypothetical iterator-language?
05:47:57 <evincar> (If I should make one.)
05:48:15 <evincar> Should all things be lists?
05:48:20 <evincar> It would make sense.
05:48:35 <zzo38> I don't know.
05:48:42 <evincar> Iterators naturally work on flat structures...
05:48:57 <evincar> monqy: What do you think?
05:49:31 <monqy> haven't been attentioning
05:50:05 <monqy> don't force them to be flat because that's dumb
05:50:58 <evincar> No, but it'd make sense for any concrete data to be represented by lists, lists of lists, and probably a handful of numeric types.
05:52:02 <monqy> and what is "iterators naturally work on flat structures..." about?
05:52:34 <evincar> Iterators present flat views of structures.
05:52:40 <evincar> Even if they're hierarchical.
05:53:15 <monqy> what kind of lists are we talking about
05:54:02 <evincar> Not sure. Probably contiguous, as you could represent linked lists with cons iterators.
05:54:03 <monqy> are they lazy? are they potentially infinite or perhaps restricted to being cyclic? are they necessarily homogenous?
05:54:10 <monqy> by homogenous I mean type-wise
05:54:18 <evincar> No, any concrete data would be finite.
05:54:25 <evincar> You model laziness with iterators.
05:54:26 <monqy> what do you mean by contiguous
05:54:30 <monqy> as in in memory?
05:54:33 <evincar> Yeah.
05:54:50 <evincar> So you'd get efficient strings.
05:55:02 <monqy> ugh whatever I don't feel like dealing with this right now
05:55:05 <evincar> I don't like having a primitive string type when it can be a list[char].
05:55:19 <evincar> :(
05:55:26 <evincar> I want someone to work this out with.
05:55:30 <monqy> ok then make it list[char]
06:00:22 <zzo38> In Haskell the String type is the same as [Char] and in C you often use char* type (although you sometimes explicitly declare an array in place)
06:02:00 <kmc> a line of inquiry which interests me (as a Haskell developer) is the extent to which things can be made to look like lazy linked lists but be implemented with contiguous memory
06:02:06 <evincar> zzo38: Is a Haskell list ever contiguous, even as an optimisation?
06:02:31 <kmc> this is already done on a somewhat ad-hoc basis, e.g. the Lazy ByteString type, which is basically a list of L2-cache-sized strict ByteStrings
06:02:43 <kmc> but it only gives you laziness at that coarse granularity
06:02:55 <kmc> and it's not a transparent optimization; it's a separate module written by the ByteString library authors
06:03:26 <kmc> evincar, in GHC, not really no
06:03:37 <kmc> sometimes the nodes would be accidentally contiguous, but this fact is not noticed or used
06:04:34 <evincar> Hmm.
06:04:52 <kmc> there are many data types in Haskell for contiguous packed data
06:05:05 <kmc> but they have significantly different semantics from lists
06:05:34 <evincar> I like the idea of all non-lazy things (data) being contiguous and having value semantics, and all lazy things (iters) being non-contiguous and referential.
06:05:49 <evincar> I guess I'll go with it for now.
06:05:55 <kmc> i like the idea of immutable data, for which value and reference semantics become much closer :)
06:08:03 <evincar> I think my data are de facto immutable, considering.
06:08:21 <zzo38> evincar: I don't actually know how Haskell lists are contiguous or not in memory a list in Haskell is just a constructor : of type a -> [a] -> [a] as well as the constructor [] of type [a]
06:09:57 <zzo38> They are probably not particularly efficient as C and that stuff, although the way it is done in Haskell does allow a lot more things to be done with it than it would be if it were a simple contiguous finite list of items.
06:11:26 <zzo38> (But Haskell does have FFI so that you can write parts of the program in C as well, or even LLVM since it uses the same calling conventions as C and is compatible with C programs)
06:12:50 -!- Phantom_Hoover has joined.
06:13:02 <Phantom_Hoover> @tell elliott Oh my god this is too perfect.
06:13:03 <lambdabot> Consider it noted.
06:13:15 <Phantom_Hoover> @tell elliott Bill Bailey's son is called Dax.
06:13:15 <lambdabot> Consider it noted.
06:13:18 -!- Phantom_Hoover has quit (Client Quit).
06:20:04 -!- PatashuXantheres has joined.
06:20:47 -!- Patashu has quit (Ping timeout: 258 seconds).
06:31:42 <evincar> Hmm, I'm reading the C-- spec. So far I quite like it.
06:40:09 -!- GreaseMonkey has quit (Quit: The Other Game).
06:40:57 -!- zzo38 has quit (Remote host closed the connection).
06:43:40 -!- CakeProphet has joined.
06:43:51 -!- CakeProphet has quit (Changing host).
06:43:51 -!- CakeProphet has joined.
07:02:56 <evincar> Seems a shame that C-- hasn't taken off like LLVM has.
07:03:21 <evincar> With the exception of the Cmm used by GHC.
07:03:53 <PatashuXantheres> C-- looks quite nice
07:04:27 <PatashuXantheres> I especially like the idea it has for handling garbage collection and exceptions
07:04:36 <PatashuXantheres> Tell us your code, then we'll tell you how to interact with the result
07:05:31 <evincar> Yep. And explicit support for tail calls and continuations and such is a major plus.
07:05:57 <evincar> I'm still unsure of how I want to compile this language to it.
07:06:17 <evincar> It seems to require parameterised types, which would be some work to implement the way I want.
07:20:09 <evincar> 'Any compile-time error message that begins with the phrase "This can't happen" indicates an internal error in the Quick C-- compiler.'
07:20:58 <evincar> You think?
07:37:10 <monqy> hm?
07:39:11 <evincar> The project seems largely abandoned. No CVS updates since 2009.
07:39:22 <evincar> And the latest release notes cite a lot of unfinished business.
07:39:55 <olsner> I believe it got taken over by ghc
07:40:21 <olsner> and the only up to date maintained version of C-- is the one built into ghc
07:40:24 <olsner> or something like that
07:40:27 <evincar> Yeah, Cmm is a subset of C-- used as a GHC IR.
07:41:25 <cheater> show me your garbage and i'll tell you who you are
07:42:22 <monqy> mostly compressed empty plastic water jugs
07:42:26 <evincar> cheater: Largely paper plates, napkins, teabags, and receipts.
07:42:32 <evincar> At least the one in my bedroom.
07:42:59 <monqy> and in the other, tissues, hair, dust
07:47:07 <evincar> monqy: What kinds of tissues? Muscular?
07:48:59 <monqy> facial tissues for containing and cleaning up mucous, blood, phlegm, spills, acting as napkins
07:49:14 <monqy> I should use them to dust too
07:52:32 <evincar> monqy uses people's facial tissues for scary things.
07:52:43 <evincar> Why would you cutt off people's faces, monqy? Why?
07:52:53 <evincar> Cutt is the way you spell cut.
08:13:14 <evincar> I had to convert some text from SJIS to UTF-8.
08:13:32 <evincar> I saved it in a temporary file before I ran iconv.
08:13:55 <evincar> Before I did, I checked to see that the file contained what I expected it to.
08:13:58 <evincar> My command line:
08:13:59 <evincar> cat shit
08:14:05 <evincar> Didn't think that one through.
08:15:52 <cheater> stop talking
08:16:09 <evincar> I think you mean typing.
08:16:11 <evincar> In which case no.
08:33:34 <evincar> "The new C++0x has various good new features like (vectors) ,new template, classes.etc"
08:33:42 <evincar> *facepalm*
08:45:00 -!- CakeProphet has quit (Quit: Reconnecting).
08:45:03 -!- CakeProphet has joined.
08:45:03 -!- CakeProphet has quit (Changing host).
08:45:04 -!- CakeProphet has joined.
08:45:28 <CakeProphet> Solon Mebsuthnazom, ARmorer cancels Drink: Went insane
09:02:06 <CakeProphet> everyone was pretty happy and then all of a sudden some socially withdrawn guy went crazy and killed a bunch of people..
09:02:20 <CakeProphet> and now everyone is killing everyone and dying from disease.
09:03:43 <evincar> CakeProphet: DF?
09:04:24 <CakeProphet> yes
09:15:58 <CakeProphet> I think everyone is going to die because they're too stupid to move all the corpses out.
09:16:16 <CakeProphet> and making food again
09:17:04 <monqy> set one of them to haul refuse and expand your refuse pile if it's full?
09:17:15 <monqy> one or a bunch
09:19:02 <CakeProphet> ....why do they always destroy the kitchen first when they freak out.
09:19:19 <cheater> because what's not to hate about a kitchen
09:21:24 <CakeProphet> bleh, I give up.
09:21:29 * CakeProphet has all of 5 people.
09:21:30 <monqy> :(
09:24:00 -!- evincar has quit (Quit: leaving).
10:11:21 <Vorpal> CakeProphet, df?
10:11:42 <Vorpal> CakeProphet, also the key to running a successful fort is making a boring one. That is however boring.
10:12:56 -!- copumpkin has quit (Ping timeout: 245 seconds).
10:13:22 -!- copumpkin has joined.
10:19:48 <Vorpal> bbl, rebooting for kernel upgrade
10:19:54 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
10:24:51 -!- Vorpal has joined.
10:28:03 -!- itidus21 has joined.
10:31:16 -!- itidus20 has quit (Ping timeout: 260 seconds).
10:58:13 -!- Lymee has quit (Ping timeout: 252 seconds).
11:40:15 <cheater> Vorpal, pft, you have to reboot to upgrade your kernel? How... last-millennium
11:45:12 -!- monqy has quit (Quit: hello).
12:46:06 <Vorpal> <cheater> Vorpal, pft, you have to reboot to upgrade your kernel? How... last-millennium <-- actually I used kexec
12:46:30 <cheater> no ksplice?
12:46:33 <cheater> c'mon
12:46:39 <Vorpal> cheater, anyway, I build my own vanilla kernels. Doubtful ksplice could do 3.0 -> 3.0.4 anyway
12:48:43 -!- PatashuXantheres has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
12:48:57 -!- boily has quit (Read error: Operation timed out).
12:49:25 <cheater> no idea
12:49:26 -!- boily has joined.
12:49:33 <cheater> i can ask one of the people who made ksplice
12:50:11 <Vorpal> cheater, I don't really care
12:50:23 -!- sllide has joined.
12:50:26 <cheater> you are just mean. :((
12:50:38 <Vorpal> ksplice is nice for HA systems obviously. But for my desktop? Nah, not worth the effort.
12:51:59 <cheater> i hope one day linux will do ksplice like stuff by default
12:52:20 <Vorpal> cheater, maybe, but ksplice won't work well when data structures change
12:53:17 <Vorpal> cheater, so only really useful if you stay on some distro that does releases with long support. My desktop runs arch which is rolling release.
12:56:53 <cheater> so you migrate!
12:57:03 <cheater> data structures can often be migrated.
13:05:07 <Vorpal> cheater, not easy when the memory subsystem is hauled over.
13:05:11 <Vorpal> that happens
13:05:25 <Vorpal> cheater, if it doesn't work between say 2.6.39 and 3.0 then it isn't worth it :P
13:20:43 <kmc> kexec is still a reboot, as far as disrupting all running programs
13:21:09 <kmc> it just speeds the process by skipping BIOS etc.
13:21:21 <kmc> i worked at ksplice until they got bought by oracle
13:22:22 <kmc> there's no absolute sharp line on how big of a change you can or can't do
13:22:53 <kmc> it's a matter of someone putting in the effort to read all those patches and make manual changes as appropriate
13:23:33 <kmc> most security fixes require no changes because they're stupid things like "lol, wrote < instead of <="
13:24:01 <kmc> we shipped many patches that modified data structures, and had very few issues with it, but they do require extra effort from humans
13:24:46 <kmc> ksplicing from 3.0 to 3.0.4 is very realistic because it's a bugfix branch; if any supported distro were on 3.0 then ksplice would almost certainly ship those patches at some point
13:24:54 <kmc> 2.6.39 to 3.0 would be a lot more work
13:25:15 <kmc> and now you know.
13:26:04 * Gregor imagines the NBC music and logo
13:32:56 -!- itidus21 has changed nick to itidus20.
13:33:47 <itidus20> so i have finally watched all of the james may toy stories
13:40:09 <cheater> the what now?
13:41:46 <itidus20> phantom linked me to one of them about a lego house when i mentioned something about lego
13:47:46 -!- azaq23 has quit (Quit: Leaving.).
14:21:55 -!- Phantom_Hoover has joined.
14:23:12 <Phantom_Hoover> http://www.ucfb.com/
14:23:19 <Phantom_Hoover> I was at a university thing today.
14:23:39 <Phantom_Hoover> These guys had a stall between Oxford and Strathclyde's.
14:24:40 -!- marzin has joined.
14:24:49 <marzin> hi to all :)
14:24:55 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:26:30 <marzin> I'm new to esolanguages ;)
14:27:40 <Gregor> Welcome to an obsessive waste of years of your life 8-D
14:28:20 <marzin> hehe :)
14:28:53 <marzin> now I'm presice specifiation for my first esolang (interpretator will be in python ;))
14:29:07 <Phantom_Hoover> The interpretator.
14:29:46 <marzin> sorry english is not my native language :)
14:31:11 <marzin> this will be have a very very simple multithreading and inspired by brainf**k
14:33:15 -!- kmc has quit (Quit: Leaving).
14:37:55 -!- MDude has joined.
14:38:14 <Vorpal> <kmc> kexec is still a reboot, as far as disrupting all running programs <- indeed
14:39:12 <marzin> heh :) hello world in 20+ lines
14:39:30 <Vorpal> marzin, what language
14:39:44 -!- itidus21 has joined.
14:39:51 <marzin> my esolang :)
14:39:54 <Vorpal> ah
14:40:03 <marzin> I just ended writing hello world
14:40:09 <marzin> :)
14:43:17 -!- itidus20 has quit (Ping timeout: 260 seconds).
14:47:53 -!- copumpkin has joined.
14:55:45 <Gregor> What's the nonshittiest widget toolkit?
14:57:58 <cheater> wx
14:58:15 <marzin> gtk+
14:58:17 <marzin> of course
14:59:12 <marzin> this depend of what language you want use and for what purpose
14:59:31 <marzin> for example you can't use a HAIKU-OS widgeds in Haskell
14:59:43 <marzin> ;)
15:01:38 <Gregor> I haven't chosen a language yet, but let's assume it's whatever language you hate most (for all "you")
15:01:51 -!- nooga has joined.
15:02:10 -!- BeholdMyGlory has joined.
15:02:46 <marzin> so
15:02:50 <marzin> as I know
15:03:04 <marzin> no widget tolkit exist for H9Q+
15:03:07 <marzin> :)
15:03:22 <Vorpal> Gregor, definitely hate H9Q+ most too
15:03:35 <marzin> I think
15:03:48 <marzin> should be a RAD IDE for HQ9+
15:04:04 <Vorpal> heh
15:06:52 <marzin> http://www.text-upload.com/read.php?id=130118&c=9097873
15:07:14 <marzin> TRYBIK v0.1 specifiaction :) maybe I write implementation in python
15:07:15 <marzin> :)
15:08:11 <Gregor> Naturally, your HQ9+ IDE should be in HQ9+
15:08:53 <marzin> yeah. But this will be non-standard extension
15:08:59 <marzin> I
15:09:11 <marzin> I command run a window with HQ9+ IDE :)
15:11:20 -!- Lymee has joined.
15:13:41 <marzin> btw: I wonder if trybik is turing complete ;)
15:16:27 <Vorpal> marzin, "One disc when loaded into memory of trybik VM has a exactly 256 (0-255) cells." <-- can you have an unlimited number of discs in a program?
15:17:26 <Vorpal> if there is only a finite amount of memory that you can access it won't be turing complete
15:17:27 <marzin> yeah
15:17:30 <Vorpal> right
15:17:37 <marzin> but one must load next :)
15:17:46 <Vorpal> marzin, from inside the program?
15:18:05 <marzin> it for it special cell
15:18:28 <Vorpal> marzin, wait is a disc for the data of the program or for the code?
15:18:30 <Vorpal> or both?
15:18:52 <marzin> both thing are equal in it :)
15:19:53 <marzin> I thinking about implementation of turing m. in this way:
15:20:03 <marzin> one disc work as "scanner"
15:20:27 <Vorpal> implement a TC language in it, if that is possible then it is also tc
15:20:43 <marzin> and next discs as memory
15:21:06 <marzin> this will be a like chain :)
15:21:43 <marzin> Vorpal: when I'm write implementation of it I will think about some tc language interpreter in it :)
15:21:50 <marzin> I'm must go bye :)
15:21:52 -!- marzin has quit (Quit: Page closed).
15:40:00 <Phantom_Hoover> <Vorpal> Gregor, definitely hate H9Q+ most too
15:40:21 <Phantom_Hoover> HQ9+ is acceptable because it was an original idea at the time.
15:40:28 <Vorpal> Phantom_Hoover, dude read the context
15:40:51 <Phantom_Hoover> I'm not like you; I don't read lines in isolation.
15:41:00 <Phantom_Hoover> You can safely assume that I have read the context.
15:41:13 <Phantom_Hoover> It is still an open question whether you even understand concept.
15:41:17 <Phantom_Hoover> *context
15:41:25 <Phantom_Hoover> God, I'm getting words wrong all the time.
15:41:29 <Vorpal> Phantom_Hoover, I don't hate HQ9+
15:41:36 <Phantom_Hoover> I suspect a lack of sleep.
15:42:05 <Vorpal> Phantom_Hoover, but it was about forcing Gregor to write whatever it was in HQ9+
15:48:36 <fizzie> What the WHAT.
15:48:43 <fizzie> The Linux Skype client accepts s/// rewrites.
15:48:52 <Vorpal> fizzie, err, where?
15:49:06 <fizzie> I just made one in the chat side, and it edited my original message, and put a little pen icon with a "this message has been edited" popup to it.
15:49:06 <Vorpal> fizzie, I hope it is on the sound!
15:49:15 <Vorpal> fizzie, awesome
15:49:33 <fizzie> Though I think it misparsed it, because I "s/,/./"'d, and the , turned to a \.
15:51:03 <Vorpal> fizzie, heh
15:51:04 <fizzie> Well, "s/Foo/Bar/" worked.
15:51:14 <fizzie> I suspect an escaping issue.
15:51:32 <Vorpal> fizzie, strace it to see if it calls out to sed or perl or whatever
15:51:43 <fizzie> Not right now, I'm in the middle of a call.
15:52:09 <Vorpal> fizzie, google knew this btw
15:52:28 <Vorpal> (google for "skype sed expressions" (without quotes))
15:52:57 -!- itidus21 has changed nick to itidus20.
15:53:08 <fizzie> Well, it'd be a bit surprising if I would have been the first to notice.
15:53:18 <itidus20> I am now known as itidus20.
15:53:34 -!- FireFly has joined.
15:53:35 <Vorpal> itidus20, and?
15:53:52 <fizzie> Apparently there's a proper UI for the editing/removal functionality too.
15:54:11 <Vorpal> fizzie, anyway the sed thing works on non-linux too it seems
15:54:11 <itidus20> and
15:55:34 <itidus20> buddha apparently advised not to speculatively delianate I as finite nor infinite, eternal nor not-eternal
15:55:38 <Vorpal> fizzie, actually only on mac and linux it seems.
15:57:05 <fizzie> Funnity.
15:58:24 <itidus20> keyword being apparently
16:00:02 <itidus20> it makes more sense if seen with the keen reasoning of a mathematician
16:01:07 <itidus20> but this is not how i want to launch myself into the room
16:01:33 <itidus20> guys, it's 2am.. my brother is asleep.. he works tomorrow.. i can't make coffee.. kettle too loud
16:01:50 <itidus20> this is the difficult hours where i have to behave
16:25:03 -!- zzo38 has joined.
16:38:49 -!- copumpkin has changed nick to quicksilwer.
16:40:08 -!- quicksilwer has changed nick to copumpkin.
16:53:06 <Vorpal> huh, cd takes flags
16:53:11 <Vorpal> at least in bash
16:53:20 <Vorpal> and in POSIX
17:01:12 -!- variable has quit (Changing host).
17:01:12 -!- variable has joined.
17:21:15 <zzo38> I say I want to make the Haskell with many extension of my ideas, but they don't like it because is insane and is worthless and so on...
17:21:50 <zzo38> (But what if you want to use the insane version of Haskell?)
17:23:52 <zzo38> Including more-notation, but also to rename the (#) kind to ## and the Nat kind to +
17:24:12 <zzo38> And adding a kind for classes, which you put the kind that the class corresponds to in square brackets.
17:25:59 <zzo38> Now classes can have classes, too.
17:30:18 <zzo38> And macros at the level of tokens but that can still contain executable Haskell codes, and can even create Template Haskell splices to be used later
17:31:05 -!- sliddy has joined.
17:31:35 -!- sllide has quit (Read error: Connection reset by peer).
17:33:33 <zzo38> And a {-# LAW #-} pragma that tells the optimizer to assume certain properties of the code such as monad laws or commutativity or whatever. And be able to generate this pragma using Template Haskell so that in an instance declaration you can just make it include the proper laws from elsewhere
17:34:52 <zzo38> Is all of this insane? It doesn't matter much whether or not it is insane, I think, isn't it?
17:35:38 -!- zzo38 has quit (Remote host closed the connection).
17:48:23 -!- CakeProphet has quit (Ping timeout: 240 seconds).
17:50:14 -!- CakeProphet has joined.
17:50:15 -!- CakeProphet has quit (Changing host).
17:50:15 -!- CakeProphet has joined.
18:01:50 -!- chickenz has joined.
18:20:15 -!- elliott has joined.
18:27:40 <elliott> 03:56:23: <Sgeo> Has anyone read this before? http://www.springerlink.com/content/w7824830mp13171x/
18:27:40 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:27:40 <elliott> 03:56:47: <Sgeo> !@#$ costing money
18:27:40 <elliott> 03:59:04: <coppro> haha
18:27:40 <elliott> 03:59:08: <coppro> <3 university
18:27:44 <elliott> coppro: Sgeo goes to uni- what am I saying.
18:27:55 <elliott> 04:07:02: <evincar> Can't a human determine whether a program can halt?
18:27:55 <elliott> 04:07:09: <evincar> Not whether it does.
18:27:55 <elliott> 04:07:12: <evincar> But whether it can.
18:27:55 <elliott> 04:07:36: <evincar> If so, is there an algorithm for that?
18:27:55 <elliott> no we can't.
18:28:23 <elliott> 04:12:36: <evincar> coppro: Not really. A human's insight can often discern patterns that lead to discovery of the particular inputs for which the program does and does not halt.
18:28:23 <elliott> yes, it is not impossible to prove that a certain program halts, or a certain program does not halt.
18:28:36 <elliott> (aren't you doing CS?)
18:29:02 -!- chickenz has quit (Quit: leaving).
18:29:43 -!- marzin has joined.
18:29:55 <marzin> re to all ;)
18:29:58 <elliott> hello
18:33:47 -!- marzin has quit (Client Quit).
18:35:21 -!- ais523 has joined.
18:35:37 <elliott> hi ais523
18:36:15 <ais523> hi elliott
18:38:48 <elliott> how to make me a loyal customer, method 909: take my request to add features to work around my temporary lack of number keys seriously
18:40:53 <ais523> heh, somebody did?
18:41:21 <elliott> ais523: yep (duckduckgo, which I suspect you already know of)
18:41:32 <ais523> I've heard of it, but forgotten what it's for
18:42:13 <elliott> it's a search engine; IMO it has much more useful results than Google, and they don't do the personalisation Google does (they also say they don't log, which I'm inclined to believe, but of course it's hard to tell)
18:42:39 <elliott> they also do a redirect thing to stop the referer to sites including your search query (but you can turn that off), which is nice
18:43:08 <ais523> ah, right
18:43:22 <ais523> does the redirect thing also collate which results people clicked on? Google does that on pretty much all its sites
18:43:45 <elliott> ais523: no; like I said, their mine marketing campaign is pretty much that they don't do any logging
18:43:58 <ais523> fair enough
18:44:15 <ais523> I may look at them; ever since Wikia Search and Cuil went down, I've been left without a good search engine
18:44:18 <elliott> obviously it's hard to prove that, but lying about that doesn't seem to fit with anything else they do
18:44:32 <ais523> Wikia Search I particularly liked because it tended to find relevant results that Google didn't
18:44:45 <ais523> the reverse happened a lot more, ofc, but just having that happen at all is useful
18:45:29 <elliott> ais523: heh, I suspect you might turn off one of my favourite aspects of it (if it can, it shows short summaries + links of relevant wikipedia articles at the top before the results, which I click on far more than the actual results; but I suspect you try Wikipedia first)
18:45:50 <ais523> yep, if I think it's at all likely to be there, I try it first
18:45:58 <ais523> unless I know another site that's more appropriate
18:46:01 <elliott> its calculator is better too (Wolfram Alpha rather than Google's inconsistent one) :P
18:46:09 <coppro> htis is true
18:46:18 <Phantom_Hoover> What's wrong with Google's?
18:46:25 <ais523> e.g. [[Bulbasaur]] was (maybe still is) a featured article on Wikipedia, but I'd be more likely to look it up on Bulbapedia, Smogon or Veekun, depending on what information I needed
18:46:33 <elliott> Phantom_Hoover: inconsistency: parenthesising an expression and building on top of its numeric result can just fail
18:46:39 <elliott> it doesn't like conversions being parenthesised, for instance
18:46:51 <elliott> and sometimes it just doesn't answer to a query for no reason, and if you change a few words or whatever it does
18:47:52 <ais523> why not use a calculator as a calculator?
18:48:24 <elliott> because computers obsolete calculators?
18:48:35 <elliott> admittedly, I don't care about it being done over the internet
18:48:45 <elliott> I would be happy if Chrome just called up Frink if it thought I entered a calculation
18:49:11 <ais523> elliott: well, calculator app on a computer, I consider to be a calculator
18:49:17 <elliott> but starting a calculator is more of a pain than opening a tab, and most application calculators don't let you use words instead of numbers :P
18:49:47 <CakeProphet> Vorpal: boring?
18:49:49 <CakeProphet> in what way?
18:49:58 <Vorpal> CakeProphet, ?
18:49:58 <elliott> ais523: if this were @, then I'd use a calculator program of some sort, because it'd be easy to call up; but making a search in Chrome is one of the fastest things I can do on my computer as it is, and one of the most general
18:50:04 <Vorpal> CakeProphet, care to give some context
18:50:06 <CakeProphet> Vorpal: df. forts. boring.
18:50:09 <elliott> and starting applications is much slower
18:50:11 <ais523> elliott: I'd need to load Chrome first
18:50:17 <ais523> well, I'd need to /install/ Chrome before that
18:50:20 <elliott> ais523: yes, but I wouldn't :)
18:50:23 <ais523> (I have Chromium installed, but not Chrome)
18:50:39 <ais523> elliott: amusingly, for simple calculations I often use echo $((1+1)) or whatever
18:50:42 <ais523> because I /do/ normally have a terminal open
18:50:50 <Vorpal> CakeProphet, ah. Well: wall the border of the entire map. always plug any caverns you run into and use fortifications to map out their extent, and avoid them. Stuff like that
18:50:55 <elliott> ais523: Chrome's address bar is basically a command-line these days, really
18:51:00 <elliott> or rather, search engines are
18:51:06 <elliott> some of them aren't very good at it, though
18:51:11 <ais523> except when I'm on my usual Konversation/Akregator/Firefox/Evolution setup that I use when generically online and not doing anything else
18:51:16 <elliott> I think that's what Ubiquity was trying to get at
18:51:17 <ais523> (that's what I'm doing atm)
18:51:29 <ais523> elliott: same; I'm not convinced that that's a bad idea
18:51:39 <ais523> although I think there's a reasonably high chance that Mozilla will screw it up
18:51:44 <Vorpal> CakeProphet, oh and traps. Lots of traps.
18:52:03 <Vorpal> CakeProphet, with guard dog for the single entrance corridor.
18:52:06 <elliott> ais523: I think Ubiquity is dead after Aza left
18:52:17 <elliott> Vorpal: traps are practically cheating
18:52:28 <Vorpal> elliott, oh?
18:52:34 <elliott> hmm, I was meaning to ask: Unix users, what mail client do/MUA you use? (if it's Evolution, don't bother responding)
18:52:46 <elliott> I'm wondering if it's feasible to switch away from gmail for my mail
18:52:54 <elliott> Vorpal: they're incredibly overpowered
18:52:57 <ais523> elliott: heh, I won't bother responding then
18:53:01 <Vorpal> elliott, anyway I wasn't saying that it was a good idea. Just that such a fort survives well.
18:53:03 <ais523> interestingly, I despise Thunderbird
18:53:04 <Vorpal> And is quite boring
18:53:07 <elliott> ais523: yes you will (you did)
18:53:18 <ais523> whereas I'm OK with evolution
18:53:21 <ais523> *Evolution
18:53:26 <elliott> Vorpal: IIRC traps' power is marked as a bug in the official tracker
18:53:31 <ais523> I've also tried using mail(1), but it's a little primitive
18:53:33 <Vorpal> <elliott> hmm, I was meaning to ask: Unix users, what mail client do/MUA you use? (if it's Evolution, don't bother responding) <-- for reading local reports from cron and so on?
18:53:35 <elliott> ais523: I don't remember liking Thunderbird, but maybe a user can convince me it got better
18:53:48 <ais523> I ended up trying it again recently, it had got even worse
18:53:51 <elliott> Vorpal: what do you think?
18:54:00 <ais523> Vorpal: presumably for over-Internet email
18:54:13 <Vorpal> elliott, do you run a local MTA? ;)
18:54:15 <elliott> Server-synchronisation features are desired, but I don't care whether it's Maildir over ssh or IMAP
18:54:17 <ais523> (wow, I didn't realise that that disambiguator would be ever needed again)
18:54:25 <Vorpal> elliott, for reading cron job reports I use alpine. I ended up using tunderbird for IMAP access to gmail.
18:54:29 <elliott> And I'm fine running a separate daemon to synchronise it as long as it's easy to pull, preferably from within the client
18:54:42 <elliott> ais523: clearly, it should be called imail
18:54:53 <elliott> Vorpal: tunderbird
18:55:02 <elliott> tunderbird ar go
18:55:09 <Vorpal> elliott, "ar"?
18:55:12 <elliott> ar
18:55:16 <Vorpal> ah
18:55:19 <Vorpal> thunderbird*
18:55:25 <Vorpal> wait that looks wrong too
18:55:27 <Vorpal> too sleepy
18:55:45 <Vorpal> elliott, yeah whatever, modulo typos
18:56:19 <elliott> 04:32:55: <evincar> What's even more odd is the class of programs that are designed not to halt.
18:56:20 <elliott> 04:33:08: <evincar> Telephony systems, aircraft controllers, that sort of thing.
18:56:20 <elliott> they are not designed to halt, but they are designed to be productive (technical term)
18:56:33 <elliott> in other words, they're a transformation from codata to codata
18:57:08 <Vorpal> there are LOTS of such systems even outside such specialised applications
18:57:19 <Vorpal> operating systems, web servers, and so on
18:57:35 <elliott> yes; nobody wants a non-halting program, really
18:57:40 <elliott> they want a non-halting, productive program
18:57:50 <elliott> which are expressable in total languages
18:57:59 <elliott> (although maybe not as easily as you'd like but that applies to existing total languages in general)
18:58:34 <Vorpal> elliott, I would say everyone wants productive programs. Some may halt. For example: simulate the weather for the next 4 days, then output the result and halt
18:58:55 <elliott> Vorpal: I am sceptical you know the technical definition of productive
18:59:15 <Vorpal> elliott, hm indeed, I wasn't aware it had a technical definition.
18:59:18 <Vorpal> elliott, what is it?
18:59:19 <elliott> unfortunately, I don't know anywhere good to point you to learn it
18:59:21 <Sgeo> TIL that there's a technical definition of productive
19:00:17 <Vorpal> elliott, so tell me what the technical definition is.
19:00:26 <elliott> I'm not a good teacher
19:00:56 <Vorpal> elliott, practise makes perfect
19:01:20 <elliott> Not on you, it doesn't.
19:01:37 <Vorpal> elliott, I meant for you to learn teaching
19:02:12 <elliott> Not on you, it doesn't.
19:02:19 <Vorpal> come on
19:03:02 <Vorpal> elliott, where did you learn that technical definition of "productive"
19:03:26 <Gregor> Maaan, sound physics are terrible.
19:03:33 <elliott> I don't recall. Maybe some Coq thing.
19:03:51 -!- CakeProphet has quit (Read error: Operation timed out).
19:03:55 <Gregor> So, amplitude drops off with 1/d^2, but because decibels are some kind of crazy human nonsense, they drop off with 1/d? What kind of nonsense is this?
19:04:08 <elliott> Gregor learns "logarithms".
19:04:12 <Vorpal> Gregor, dB are logarithmic
19:04:17 <Vorpal> is*
19:04:27 <elliott> Gregor "Math is science, what are logarithms" Richards (family motto)
19:04:29 <Gregor> But the confusing thing about dB is the human factor, not the math.
19:04:32 <Vorpal> elliott, and snap, you beat me to it
19:04:40 <Vorpal> Gregor, that is dBA isn't it?
19:04:42 <elliott> Enemy of Opensourcia, motto "what is frp"
19:06:07 <Gregor> Human in the sense that the reason why decibels exist is to match some human understanding of sound.
19:06:33 <Vorpal> Gregor, I mean, the human-ear-compensated thingy is dBA iirc? While plain dB is the simple logarithmic scale.
19:06:45 <Vorpal> Gregor, err, dB is used outside of sound.
19:07:03 <Vorpal> for example: signal and noise levels of wifi
19:07:14 <Gregor> Strudle.
19:07:21 <Gregor> *Strudel.
19:07:45 <Vorpal> Gregor, how is that relevant?
19:07:51 <Gregor> Vorpal: Stru.
19:07:53 <Gregor> Vorpal: del.
19:08:13 <elliott> Gregor: strudel
19:08:18 <Gregor> elliott: Strudel.
19:08:47 <elliott> 06:31:42: <evincar> Hmm, I'm reading the C-- spec. So far I quite like it.
19:08:48 <elliott> 07:02:56: <evincar> Seems a shame that C-- hasn't taken off like LLVM has.
19:08:48 <elliott> 07:03:21: <evincar> With the exception of the Cmm used by GHC.
19:08:48 <elliott> C-- is a dead project outside of GHC, which has its own dialect.
19:09:16 <Phantom_Hoover> Gregor, decibels are defined without any reference to humans IIRC.
19:09:39 <Gregor> Yes, the definition is just a logarithmic scale of amplitude.
19:10:03 -!- elliott has quit (Read error: Connection reset by peer).
19:10:06 -!- elliott_ has joined.
19:10:10 <Vorpal> why is transmitting power of wlan measured in dBm and not mW? In iwconfig output that is
19:10:20 <elliott_> Gregor: Also you didn't answer my QUESTION
19:10:24 <Gregor> But the question is, why do we need a logarithmic scale of amplitude? What was wrong with a linear scale? I know why pitch is logscale, and it's for strictly human reasons, even though the actual measure of pitch isn't human.
19:10:40 <Gregor> elliott_: Strudel.
19:10:51 <elliott_> Gregor: THERE IS NO MUA CALLED STRUDEL
19:10:59 <Phantom_Hoover> Gregor, dude, there are very good theoretical reasons for pitch to be logarithmic.
19:11:19 <Vorpal> elliott_, make one
19:11:19 <Phantom_Hoover> You... should know that.
19:11:37 <Vorpal> Phantom_Hoover, I'm not familiar with it, what is it?
19:11:43 <elliott_> Vorpal: Make one for me.
19:12:13 <Gregor> Phantom_Hoover: If humans didn't hear sound how we did, science would be muddling along with a linear scale of frequency and still be able to understand resonance, harmonics, etc.
19:12:20 <Gregor> s/did/do/ :P
19:12:54 <Vorpal> elliott_, execute this in bash: echo $'#!/bin/sh\nexec mail' > strudel && chmod +x strudel
19:13:03 <elliott_> Vorpal: not good client
19:13:03 <Vorpal> there, strudel 1.0
19:13:08 <Vorpal> elliott_, didn't say it was
19:13:18 <Gregor> elliott_: So what's this mua nonsense :P
19:13:20 <Phantom_Hoover> Gregor, sure, but we could never have defined any units other than the kilogram, second, kelvin, metre, ampere, mole and candela.
19:13:29 <Vorpal> Gregor, elliott_ is looking for a MUA
19:13:31 <Vorpal> I think
19:13:49 <elliott_> Gregor: 18:52:34: <elliott> hmm, I was meaning to ask: Unix users, what mail client do/MUA you use? (if it's Evolution, don't bother responding)
19:13:49 <elliott_> 18:52:46: <elliott> I'm wondering if it's feasible to switch away from gmail for my mail
19:14:03 <Gregor> I use thunderbird, and now elliott_ will complain about it.
19:14:05 <Vorpal> elliott_, while thunderbird isn't perfect, it is okay.
19:14:15 -!- oerjan has joined.
19:14:41 <Vorpal> elliott_, you mean a different mail provider than gmail?
19:14:43 <elliott_> Gregor: Nope, I've so far just ignored people who say Thunderbird, because they need to convince me it didn't stop being crap in the past five years :)
19:14:58 <elliott_> Vorpal: I use gmail as my client. I can set up qmail myself, I just want to know what clients people use.
19:15:21 <Gregor> elliott_: It's hard to convince you of things if you're ignoring me :P
19:15:28 <Gregor> Of course, it's hard to convince of things anyway, but *eh*
19:15:35 <Vorpal> elliott_, hm not sure what clients support maildir these days. Haven't been using qmail for quite a while
19:15:54 <Vorpal> Gregor, you forgot the subject of that sentence
19:15:55 <elliott_> Vorpal: I can use IMAP, dude.
19:16:15 <Gregor> Vorpal: Subjects are for losers.
19:16:31 <Vorpal> elliott_, right. For qmail, get netqmail iirc. To support SPF and such iirc. I think that was in the netqmail patch set. But it was years ago I used it.
19:16:33 <elliott_> Can Thunderbird do GMail-style conversations? Oh, hmm, https://addons.mozilla.org/en-US/thunderbird/addon/gmail-conversation-view/ seems to be an extension for is.
19:16:36 <elliott_> for it.
19:16:46 <Gregor> Anyway, suffice it to say that physically-realistic reverberation is so terrible >_<
19:16:49 <Vorpal> Gregor, as in you forgot "you" or "elliott" in that line.
19:16:51 <elliott_> My recollection of Thunderbird is basically "direct clone of Outlook Express and therefore just painful".
19:17:05 <Gregor> Vorpal: Yes, as subjects are for losers.
19:17:13 <Vorpal> right
19:17:32 <Vorpal> elliott_, it changed a bit. And it is quite a bit better than OE.
19:17:59 <elliott_> I'm tempted to try sup again, but I really dislike ncurses, and I don't know how maintained it is these days.
19:18:08 <elliott_> (I'm surprised nobody's yelled about mutt being great yet.)
19:18:16 <Vorpal> elliott_, give it a try for an hour or so, you can uninstall it and do rm -rf ~/.thunderbird if you didn't like it.
19:18:34 <Vorpal> elliott_, I used mutt in the past. I prefer alpine though.
19:18:54 <elliott_> Vorpal: I know I can; I'm just trying to prioritise through suggestions first.
19:19:11 <Vorpal> elliott_, does kmail still exist?
19:19:32 <Vorpal> elliott_, last I used it was during KDE 3. I have no idea how it changed since then.
19:19:45 <elliott_> It's Kontact now.
19:19:46 <Vorpal> It was okayish, better support for maildir and such than thunderbird iirc.
19:19:48 <Vorpal> ah
19:19:58 <elliott_> And it's more of a "contact suite" thing. It seems to be very KDE.
19:20:00 <Vorpal> elliott_, sounds like an address book application
19:20:30 <elliott_> Vorpal: Well, Wikipedia says it's KMail + KAddressBook + KOrganizer + Akregator + KNode (Usenet).
19:20:39 <elliott_> Although it does look like you can start those separately.
19:20:54 <elliott_> http://upload.wikimedia.org/wikipedia/commons/b/ba/KDE4.2-KMail.png ;; yeah, I'll pass. I doubt it could possibly be better than Thunderbird.
19:21:17 <Vorpal> knode was terrible, I remember that
19:21:31 <elliott_> I don't use Usenet, like everybody else.
19:21:45 <ais523> I like it, but generally just use Google Groups as I don't have a newsserver subscription
19:21:54 <Vorpal> elliott_, I stopped using it these days.
19:22:02 <ais523> I think it ought to be more popular among people who know what they're doing and less popular among people who don't
19:22:04 <ais523> then it would be great
19:22:05 <Vorpal> sad to see it die though
19:22:23 <elliott_> ais523: it died because it has no technological means to do that
19:22:24 <Vorpal> ais523, you mean like before eternal september?
19:22:29 <ais523> Vorpal: yes
19:22:34 <ais523> elliott_: heh, perhaps
19:22:37 <elliott_> ais523: which is the fate of pretty much every community nowadays
19:22:45 <elliott_> ais523: except accelerated because now the internet is huge
19:22:57 <ais523> communities ideally need to be moderately well known
19:23:01 <ais523> in order to stop that happening
19:23:04 <ais523> e.g. idiots just haven't heard of them
19:23:06 <Vorpal> elliott_, this channel, what about it?
19:23:22 <elliott_> ais523: reddit seems like it'll probably last for ages and ages, but at a much lower quality than it started with; the voting system keeps spam and blatant trolls down to a minimum, but it also promotes hivemind thinking
19:23:29 <elliott_> but Usenet had... nothing
19:23:40 <elliott_> except trying to cancel all spam posts, I guess?
19:23:43 <Vorpal> ais523, it is possible to maintain small communities that work like that. But once it grows past a certain point it seems to break down.
19:23:48 <ais523> elliott_: it had killfiles
19:23:57 <ais523> it's entirely possible to have two independent communities in the same newsgroup as a result
19:24:15 <elliott_> ais523: that doesn't make it any easier to run a server with that high spam traffic; and how do you think killfiles would help if botnets were developed when spamming usenet was still relevant?
19:24:18 <Vorpal> ais523, did that ever happen?
19:24:24 <elliott_> Vorpal: this channel is small
19:24:30 <Vorpal> elliott_, yes
19:24:31 <elliott_> Vorpal: hopefully, it'll stay that way
19:24:47 <ais523> elliott_: oh, I was referring to humans not spambots
19:24:49 <elliott_> and everyone here apart from Sgeo seems to be pretty good at selectively inviting people, if they do at all
19:25:00 <Vorpal> elliott_, we need fizzie to make a graph of average number of people over time
19:25:05 <ais523> spam's an independent problem
19:25:10 <elliott_> Vorpal: it would look like the graph of log size over time
19:25:14 <elliott_> i.e. /
19:25:36 <Vorpal> elliott_, doubtful. Some people idle, some speak more.
19:25:50 <Vorpal> possibly that cancels each other
19:25:54 <Vorpal> so hm
19:26:18 <Vorpal> elliott_, but hasn't it been pretty stable over the last year or so? Around 40-60
19:26:27 <Gregor> Damn it, improving the realism of reverb just makes it sound terrible :P
19:26:40 <elliott_> who actually talks in here, though? (. to prevent annoying pings) o.erjan, me, ais, l.ymee, n.ooga, c.opumpkin, iti, PH, you, c.heater, S.geo, D.eewiant, o.lsner, s.hachaf, c.oppro, f.izzie, a.tehwa, q.uintopia, g.regor are the only people who have talked recently
19:26:45 <Vorpal> Gregor, use an existing reverb implementation?
19:26:57 <elliott_> that's only nineteen people
19:27:06 <copumpkin> good job not highlighting me
19:27:08 <Phantom_Hoover> An elite group.
19:27:11 <Vorpal> heh
19:27:13 <Gregor> Vorpal: Reverb implementations that do more than single reverberation or "ambient" (read: bullshit) reverb don't exist.
19:27:15 <elliott_> copumpkin: heh, how did I manage to?
19:27:19 <Gregor> s/don't exist/are hyper-expensive/
19:27:23 <elliott_> Vorpal: well, that was a filtering of the people online now
19:27:23 <copumpkin> I also highlight on pumpkin
19:27:26 <Vorpal> elliott_, more or less yeah. Plus that new user today.
19:27:26 <elliott_> but that's most of 'em
19:27:38 <elliott_> copumpkin: but I said "opumpkin"!
19:27:45 <elliott_> Vorpal: oh, I just got to them in the logs
19:27:57 <elliott_> Vorpal: I doubt they'll stay very long; people don't tend to
19:27:59 <Gregor> "O pumpkin my pumpkin"
19:28:11 <elliott_> 14:59:31: <marzin> for example you can't use a HAIKU-OS widgeds in Haskell
19:28:11 <elliott_> Is that a challenge?
19:28:18 <Phantom_Hoover> Yes.
19:28:20 <Phantom_Hoover> Yes it is.
19:28:27 <elliott_> Gregor: but yeah, GTK, but don't even think about using it from C
19:28:33 <elliott_> Gregor: (Seriously, don't :P)
19:28:37 <Vorpal> elliott_, not good at English, but a honest attempt at a new esolang. Inspired by brainfuck but not one of the simple substitution clones.
19:28:40 <elliott_> Gregor: ((GObjects, man; GObjects.))
19:28:43 <Vorpal> someone should take a closer look at it
19:28:44 <copumpkin> elliott_: the string pumpkin is good enough :P
19:28:58 <elliott_> copumpkin: Now all we need is a useful word with "pumpkin" in it, and we can annoy you all day.
19:29:03 <Gregor> elliott_: How about ... gcj gtk+ trololololol
19:29:08 <Vorpal> elliott_, what was that new language gnome invented? Vala or something like that?
19:29:16 <elliott_> Gregor: For GTK, better than C.
19:29:23 <ais523> DPEMOFKOXM
19:29:25 <elliott_> Gregor: Anything with any kind of objects or at least higher-order abstraction is better than C.
19:29:32 <elliott_> Gregor: (For GTK)
19:29:42 <elliott_> Because you don't have to write object system plugging code every line :P
19:29:43 <Phantom_Hoover> elliott_, let's define opumpkin to mean 'Brainfuck derivative'.
19:29:44 <Vorpal> Gregor, you won't believe this, but GTK# from C# is quite nice compared to GTK from C.
19:29:51 <elliott_> Vorpal: Vala is pretty good, for glib and GTK :P
19:30:01 <elliott_> I wouldn't write a program in it from scratch.
19:30:05 <Vorpal> elliott_, ah
19:30:09 <elliott_> Vorpal: If Gregor has ever used GTK from C, he will believe that.
19:30:11 <Vorpal> elliott_, you coded in vala?
19:30:18 <elliott_> Vorpal: I wrote a hello world once :-P
19:30:29 <Vorpal> elliott_, with "quite nice" I mean "actually usable" as well.
19:30:40 <Phantom_Hoover> Does anyone *write* hello world?
19:30:46 <elliott_> 15:48:36: <fizzie> What the WHAT.
19:30:46 <elliott_> 15:48:43: <fizzie> The Linux Skype client accepts s/// rewrites.
19:30:46 <elliott_> 15:49:06: <fizzie> I just made one in the chat side, and it edited my original message, and put a little pen icon with a "this message has been edited" popup to it.
19:30:49 <elliott_> fizzie: OMG.
19:30:55 <Vorpal> Phantom_Hoover, I done it in befunge. Using t
19:30:57 <elliott_> fizzie: I am going to make everyone I talk to switch to Skype now.
19:31:42 <elliott_> 15:55:38: <Vorpal> fizzie, actually only on mac and linux it seems.
19:31:42 <elliott_> Or maybe not.
19:32:11 <elliott_> (Though that post saying it didn't work on Windows is a year old, so maybe that's changed.)
19:32:16 <Vorpal> elliott_, it works on windows? Or did you mean that you won't make people switch to skype?
19:32:25 <elliott_> 17:21:15: <zzo38> I say I want to make the Haskell with many extension of my ideas, but they don't like it because is insane and is worthless and so on...
19:32:25 <elliott_> 17:21:50: <zzo38> (But what if you want to use the insane version of Haskell?)
19:32:25 <elliott_> compelling
19:32:34 <elliott_> Vorpal: I meant if it doesn't work on Windows, then the reason no longer exists :P
19:32:39 <elliott_> Because everyone uses Windows.
19:33:16 <Vorpal> elliott_, I would suspect this channel, and IRC in general, has a larger percentage of linux users than the overall in the world.
19:33:36 <elliott_> Vorpal: yes, obviously by "everyone I talk to" I mean "you bastards".
19:33:49 <Gregor> Sad statement
19:33:54 <Vorpal> elliott_, you have a life outside #esoteric and #haskell and so on?
19:33:57 <Vorpal> huh
19:34:19 <elliott_> IT DEPENDS WHAT YOU MEAN BY LIFE
19:34:26 <Vorpal> :P
19:35:55 <elliott_> Surely someone here uses a client that isn't Thunderbird.
19:36:00 <elliott_> Or Evolution shut up ais523.
19:36:01 <elliott_> OH I KNOW
19:36:04 <elliott_> oerjan: WHAT MAIL CLIENT DO YOU USE
19:36:15 <ais523> elliott_: I wouldn't even have noticed your comment if you didn't ping me
19:36:23 <elliott_> Predicting either "Outlook" or "mutt or something through putty".
19:36:33 <elliott_> ais523: ;__;
19:37:28 <Vorpal> elliott | 641875
19:37:31 <Vorpal> that is a lot of lines
19:37:36 <elliott_> That few?
19:37:55 <Vorpal> elliott_, with nick merging too
19:38:03 <Vorpal> not sure if elliott_ is merged into it though
19:38:12 <elliott_> Not a very good merging if it doesn't use prefixes.
19:38:20 <elliott_> elliott` too, after all.
19:39:08 <elliott_> Why do people even write ncurses applications that aren't roguelikes.
19:39:13 <Vorpal> elliott_, yep it merged them
19:39:27 <Vorpal> nick | cnt
19:39:27 <Vorpal> ------------------+--------
19:39:27 <Vorpal> elliott | 641875
19:39:27 <Vorpal> Vorpal | 276156
19:39:27 <Vorpal> ais523 | 136770
19:39:28 <Vorpal> oerjan | 96917
19:39:30 <Vorpal> oklopol | 92305
19:39:37 -!- Sgeo has quit (Ping timeout: 245 seconds).
19:39:55 <ais523> elliott_: wow, have you really talked more than everyone else put together?
19:39:59 <Vorpal> then pikhq, gregor, sgeo, fizzie, Deewiant, Phantom_Hoover, cakeprophet
19:40:08 <elliott_> ais523: I doubt put together.
19:40:12 <Vorpal> ais523, that was just the top few lines. But let me sum the rest.
19:40:14 <elliott_> Vorpal: Take the cnt of every line?
19:40:24 <elliott_> Then just take out my cnt. Uh, rephrase that.
19:40:30 <ais523> Vorpal: are you merging, say, elliott_ and elliott?
19:40:34 <elliott_> ais523: Vorpal.
19:40:53 <ais523> (I actually use ais523_ and ais523 for different purposes, even though they're both me)
19:40:59 <oerjan> <elliott_> oerjan: WHAT MAIL CLIENT DO YOU USE <-- alpine
19:41:04 <Vorpal> ais523, yes
19:41:06 <elliott_> oerjan: oh, I should have guessed
19:41:06 <oerjan> (through putty)
19:41:15 <Vorpal> ais523, and also ehird, tusho, and so on
19:41:26 <ais523> if you're going further back, indeed
19:41:29 <Vorpal> ais523, I'm selecting from a view with those merged
19:41:31 <Vorpal> arvid=> select SUM(x.cnt) from (select nick,COUNT(*) as cnt from irc.logs_na group by nick order by cnt desc) as x where x.nick != 'elliott';
19:41:31 <Vorpal> sum
19:41:31 <Vorpal> ---------
19:41:31 <Vorpal> 1860488
19:41:31 <Vorpal> (1 row)
19:41:38 <elliott_> Vorpal: bad
19:41:41 <elliott_> Vorpal: or is that nomralised
19:41:42 <elliott_> normalised
19:41:44 <ais523> so elliott's responsible fore about a third of the conversation in here
19:41:56 <ais523> oh, excluding elliott, so a quarter
19:41:58 <ais523> *for
19:42:00 <Vorpal> elliott_, logs_na is a merged view
19:42:09 <elliott_> ais523: over all time, not just the time I've been here, presumably
19:42:18 <elliott_> I don't really talk THAT much, I just merge lines less :P
19:42:31 <ais523> heh, perhaps
19:42:35 <Vorpal> elliott_, indeed. Give me the date when you joined
19:42:46 <Vorpal> wait I can find that
19:42:50 <elliott_> Vorpal: do you mean first joined, or first joined and started talking?
19:42:53 <elliott_> two thousand and six, for the former
19:42:57 <elliott_> sometime in two thousand and seven for the latter
19:43:04 <elliott_> Maybe I should just write my own mail cli- NO
19:43:41 <Vorpal> arvid=> select * from irc.logs_na where nick = 'elliott' ORDER BY serial LIMIT 1;
19:43:42 <Vorpal> serial | tstamp | nick | target | uhost | type | body
19:43:42 <Vorpal> --------+---------------------+---------+--------+--------------------------------------------+------+------
19:43:42 <Vorpal> 208001 | 2006-12-29 21:42:41 | elliott | | n=ehird@user-5440e204.wfd80a.dsl.pol.co.uk | 3 |
19:43:53 -!- augur has joined.
19:44:00 <Vorpal> elliott_, but sure, let me select the first line you spoke in
19:44:25 <Vorpal> > select * from irc.logs_na where nick = 'elliott' and type = 0 ORDER BY serial LIMIT 1;
19:44:25 <Vorpal> serial | tstamp | nick | target | uhost | type | body
19:44:25 <Vorpal> --------+---------------------+---------+--------+-------+------+---------------------------------------------------------
19:44:25 <Vorpal> 271395 | 2007-05-14 17:49:00 | elliott | | | 0 | i honestly think my language may be worse than malbolge
19:44:25 <lambdabot> <no location info>: parse error on input `where'
19:44:26 <Vorpal> huh
19:44:32 <elliott_> that was a terrible language btw
19:44:34 <Vorpal> wait what, didn't you speak a single time?
19:44:45 <Vorpal> elliott_, which language was it?
19:44:49 <elliott_> not in 2006, I think I got too intimidated by the silence and long user list and left
19:44:55 <elliott_> Vorpal: never named, never worked, almost certainly not TC
19:45:05 * elliott_ wonders what pol.co.uk is
19:45:09 <elliott_> maybe tiscali
19:45:11 <Vorpal> select SUM(x.cnt) from (select nick,COUNT(*) as cnt from irc.logs_na where serial >= 271395 group by nick order by cnt desc) as x where x.nick != 'elliott';
19:45:13 <Vorpal> well there we go
19:45:14 <Vorpal> lets see
19:45:36 <Vorpal> 1589097 lines that you didn't say since then
19:45:56 <elliott_> cool
19:46:19 <oerjan> elliott_: http://oerjan.nvg.org/esoteric/ehird.pl and http://oerjan.nvg.org/esoteric/ehird.py ? >:)
19:46:35 <elliott_> oerjan: no, that was a good language
19:46:54 <oerjan> ok then
19:47:03 <elliott_> oerjan: EXCUSE ME :P
19:47:04 <oerjan> approximately the same time, though
19:47:12 <elliott_> Well, same YEAR, sure.
19:47:30 <elliott_> 2007-05-30.txt:00:22:26: <oerjan> anyway what i did do is at http://oerjan.nvg.org/esoteric/ehird.pl
19:47:35 <elliott_> OK fair enough.
19:47:49 <Phantom_Hoover> What does this thing do?
19:48:12 <Phantom_Hoover> Oh, it's a broken piece of crap.
19:48:52 <elliott_> .py works
19:48:56 <elliott_> except it doesn't do escapes, I think
19:49:01 <elliott_> or hmm
19:49:02 <elliott_> yes it does
19:49:05 <elliott_> ebcause python's re language accepts \n
19:49:09 <elliott_> oh
19:49:14 <elliott_> but oerjan doesn't fix escapes in the replacement
19:49:16 <elliott_> so no, it doesn't work
19:49:21 <elliott_> but it's close
19:49:22 <Vorpal> 641872/1589097 = .4039224792
19:49:23 <Vorpal> hm
19:49:40 <elliott_> Vorpal: that was _without_
19:49:44 <elliott_> you need to add the numerator back on
19:49:49 <Vorpal> elliott_, err oh yeah
19:50:01 <Vorpal> .2877099592
19:50:09 <Vorpal> elliott_, still a sizable proportion
19:50:16 <elliott_> also, qmail users: what's them good things for synchronising maildirs or imap
19:50:32 <Vorpal> elliott_, also wait, this is broken. It contains joins and parts too
19:50:34 <Vorpal> let me fix
19:51:06 <elliott_> ais523: oh dear, Thunderbird is three major versions ahead of my repository version
19:51:13 <elliott_> :)
19:51:28 <ais523> elliott_: it has Firefox syndrome, for the same reason Firefox does, right?
19:51:37 <elliott_> there's an official PPA, it seems
19:51:48 <elliott_> ais523: yes; personally, I'm sceptical of the value of releases as a concept altogether
19:51:56 <ais523> oh, that reminds me, is there a sane way to run gnome 3 programs on gnome 2?
19:52:14 <Vorpal> 633741 / (1410147+633741) = .3100664028
19:52:16 <elliott_> ais523: compile them, then run them; but why not use gnome 3 + metacity + gnome-panel instead?
19:52:17 <ais523> I don't want to install gnome 3, but am wondering if there's just a library I can install or something
19:52:18 <Vorpal> elliott_, that is more accurate
19:52:23 <elliott_> that's easier, and catches gtk 3 changes
19:52:29 <elliott_> and is basically identical, I gather
19:52:39 <Vorpal> ais523, I included joins and parts above, see revised numbers
19:52:44 <elliott_> joins and parts should be excluded
19:52:48 <ais523> elliott_: because I don't want to upgrade the system right now, and am trying to run the latest version of one gnome 3 version to see if bugs in it have been fixed
19:52:50 <Vorpal> this is just messages and /mes
19:52:52 <elliott_> they aren't content
19:52:55 <Vorpal> elliott_, yep I fixed it
19:52:59 <elliott_> ais523: try and compile it; with any luck it'll work
19:53:01 <elliott_> Vorpal: oh
19:53:03 <Vorpal> so you spoke ~31% of the lines
19:53:08 <ais523> elliott_: I did, it said I didn't have gnome 3 installed
19:53:14 <ais523> let me try again to get the exact message
19:53:14 <elliott_> aha, there's an official ppa for thunderbird
19:53:24 <elliott_> ais523: it's likely wanting gtk three
19:53:28 <Vorpal> ais523, gnome 3 itself is a bug.
19:53:35 <elliott_> Vorpal: -one, troll
19:53:37 <oerjan> elliott_: i vaguely thought i changed to python because it's re.sub _did_ allow escapes to work in the right places. but whatever.
19:53:37 <Vorpal> speaking of which, I saw somewhere that Torvalds said that too
19:53:45 <elliott_> oerjan: yes, but it won't replace in the _replacement_ string
19:53:53 <elliott_> Vorpal: -3, appeal to authority
19:54:18 <Vorpal> elliott_, I wasn't doing that. I was mentioning it. I was not saying that made it right
19:54:34 <oerjan> elliott_: well if you are sure of that.
19:54:52 <oerjan> it's been > 4 years
19:54:57 <Vorpal> elliott_, anyway gnome 3 is horrible. Have you tried it? And not that unity stuff of ubuntu
19:54:58 <elliott_> oerjan: >>> re.sub('abc', '\\n', 'abc')
19:54:58 <elliott_> '\n'
19:54:58 <elliott_> >>> print re.sub('abc', '\\n', 'abc')
19:54:58 <elliott_> >>>
19:54:59 <elliott_> huh
19:54:59 <elliott_> weird
19:55:27 <ais523> No package 'gtk+-3.0' found
19:55:30 <ais523> yep, it's GTK it needs
19:55:33 <elliott_> Vorpal: -4, ais523 has a problem that I am trying to help it with, butting in with your opinion on GNOME 3 is not really helpful
19:55:35 <ais523> and GTK 3 isn't in the repositories
19:55:39 <elliott_> ais523: if it's a different package, it might be a different .so too
19:55:44 <elliott_> ais523: so you might be able to install gtk3 yourself
19:55:48 <elliott_> without causing conflicts
19:55:51 <ais523> indeed
19:55:54 <elliott_> what program is it?
19:56:00 <ais523> gnibbles
19:56:02 <Vorpal> elliott_, -5 I don't care about your score system.
19:56:15 <ais523> it somehow managed to reintroduce bugs that I fixed myself (and sent them patches for which they accepted and it worked in the past)
19:56:18 <ais523> and make them even worse, somehow
19:56:20 <elliott_> ais523: looks like Oneiric has gtk 3, at least
19:56:29 <ais523> and I want to know if they've fixed them, and if not patch them again
19:56:35 <elliott_> Vorpal: -infinity, it's not mine, so shut up
19:56:38 <Vorpal> ais523, you could install gnome 3 elsewhere btw. And use -rpath or such
19:56:49 <ais523> elliott_: what's Oneiric?
19:56:50 <Vorpal> elliott_, why are you using it then
19:56:54 <elliott_> Vorpal: -nullity, I just suggested that, except only the dependency he actually needs
19:56:59 <elliott_> ais523: ubuntu
19:57:06 <oerjan> `python -c print "\\n"
19:57:11 <HackEgo> File "<string>", line 1 \ print "\\n" \ ^ \ IndentationError: unexpected indent
19:57:15 <elliott_> oerjan: it's re that does it
19:57:16 <oerjan> `run python -c print "\\n"
19:57:18 <HackEgo> No output.
19:57:20 <ais523> elliott_: perhaps it's because I'm on an LTS version
19:57:22 <elliott_> not print
19:57:22 <ais523> I wonder if there's a PPA
19:57:25 <oerjan> huh
19:57:32 <elliott_> ais523: I'm telling you to just nab the package from the upcoming 11.10
19:57:33 <oerjan> oh wait duh
19:57:36 <elliott_> assuming it's already in there
19:57:39 <oerjan> `run python -c print '"\\n"'
19:57:40 <HackEgo> No output.
19:57:46 <oerjan> gah
19:57:49 <ais523> elliott_: oh, you mean just grab the .deb and install by hand?
19:57:53 -!- monqy has joined.
19:58:06 <elliott_> ais523: yes
19:58:11 <elliott_> ais523: (or fiddle with apt's exclusion stuff but meh)
19:58:19 <elliott_> it's easier than compiling, at least, and more reversible than make install
19:58:19 <oerjan> elliott_: i'm just not sure what that '\n' you had above means
19:58:27 <elliott_> oerjan: It was '\\n', not '\n'.
19:58:29 <oerjan> is it backslash + n or a newline
19:58:33 <elliott_> oerjan: I printed it for a reason
19:58:37 <elliott_> to show that it got turned into \n
19:58:40 <oerjan> elliott_: the printed result
19:58:41 <elliott_> i.e. deescaped
19:58:44 <elliott_> oerjan: oh my god
19:58:47 <elliott_> <elliott_> oerjan: >>> re.sub('abc', '\\n', 'abc')
19:58:47 <elliott_> <elliott_> '\n'
19:58:47 <elliott_> <elliott_> >>> print re.sub('abc', '\\n', 'abc')
19:58:47 <elliott_> <elliott_> >>>
19:58:54 <elliott_> if it was backslash then n, it would be printed like that
19:59:09 <oerjan> oh k
19:59:52 <Vorpal> remember Window Maker?
19:59:56 <Vorpal> whatever happened to it
19:59:58 * oerjan does not have enough memory for all umpteen escaping conventions
19:59:59 <elliott_> it exists
20:00:12 <Vorpal> last release 6 years ago
20:00:13 <Vorpal> hm
20:00:15 <elliott_> oerjan: well obviously if I input as '\\n' and it's REPL'd as '\n' something changed
20:00:33 <elliott_> Vorpal: WM (git)snapshotWe do not provide our own binary packages. However, third partiessometimes make them available.
20:00:38 <elliott_> Revision by John H. Robinson, IV, 2011-08-17
20:00:48 <elliott_> http://repo.or.cz/w/wmaker-crm.git
20:00:52 <Vorpal> heh
20:01:03 <Vorpal> elliott_, I like that word "partiessometimes"
20:01:07 <elliott_> http://repo.or.cz/w/wmaker-crm.git/shortlog looks actively developed
20:02:14 <ais523> oh, I had a crazy dream last night
20:02:24 <ais523> I dreamt I was reading a book about Objective-C, to try to learn Objective-C
20:02:37 <elliott_> Quality issues
20:02:37 <elliott_> Would it be possible and appropriate to mention politely somewhere that Window Maker is pretty outdated and generally rubbish? — Preceding unsigned comment added by 193.203.82.226 (talk) 13:50, 21 July 2011 (UTC)
20:02:40 <ais523> I realised I was dreaming when the book reached the end of my knowledge of Objective-C, and would have to explain something to me that I didn't already know
20:02:47 <elliott_> haha
20:03:14 <ais523> but it turned out to be a recursive dream, and I merely dreamt I'd woken up rather than actually waking up
20:03:50 <Vorpal> ais523, heh, I never had a recursive dream that I remembered
20:04:01 <ais523> I've had quite a lot
20:04:07 * oerjan doesn't like his recursive dreams
20:04:08 <ais523> normally after waking up the first time, it's just annoying
20:04:13 <Vorpal> oerjan, oh?
20:04:20 <ais523> because you go through the normal just-after-waking-up routine and nothing's unusual
20:04:26 <ais523> then you wake up and have to do it all again
20:04:42 <Vorpal> ais523, start by reading some text, turning away and trying to read it again. Every time you wake up.
20:04:54 <Vorpal> should speed up the process
20:05:02 <oerjan> i tend to dream i'm in my childhood home, and then dream that i wake up sad in my apartment. and then i wake up for real, still sad.
20:05:03 <ais523> Vorpal: it hasn't happened for years
20:05:07 <Vorpal> ah
20:05:16 <ais523> this has been my first recursive dream for ages
20:05:18 <Vorpal> oerjan, ouch
20:05:29 <elliott_> oerjan: :{
20:05:47 <Vorpal> oerjan, you need to get a nicer apartment then. So you get a nice surprise when you wake up the second time
20:06:10 <oerjan> YOU DON'T SAY
20:09:38 <Phantom_Hoover> I haven't had that, although a few times I've been lying in bed completely convinced that I'm in another house.
20:10:06 <elliott_> hmm, I'm scared of trying out Thunderbird because my gmail is so huge
20:10:14 <elliott_> can I tell it to pretend I created my gmail ten days ago :D
20:10:27 <elliott_> huh, only 1171 megs used... still a lot to download
20:11:25 <Vorpal> elliott_, you need to enable sync for it to do that. Right click on a folder and select properties or something
20:11:33 <Vorpal> and select available when offline
20:11:47 <Vorpal> elliott_, if you don't do that it won't download more than the index and the mails you open
20:11:53 <Vorpal> assuming you use IMAP and not POP
20:12:05 <elliott_> index is still pretty big :P
20:12:23 <Vorpal> elliott_, not near 1171 MB though.
20:12:24 <elliott_> nice, thunderbird deduces the configuration from my email
20:12:38 <Vorpal> elliott_, yes it does that nowdays.
20:12:48 <Vorpal> for a handful of providers
20:13:18 <Vorpal> elliott_, remember to enable IMAP in the gmail preferences too
20:13:40 <elliott_> already did that years ago
20:13:54 <Vorpal> ah
20:18:40 -!- CakeProphet has joined.
20:18:40 -!- CakeProphet has quit (Changing host).
20:18:40 -!- CakeProphet has joined.
20:20:11 <CakeProphet> Vorpal: productivity, in management lingo, is the relationship between the completion of a task/production and time.
20:20:23 <CakeProphet> does that count as a technical definition?
20:21:32 * oerjan swats CakeProphet -----###
20:21:34 <oerjan> NO
20:22:06 -!- Sgeo has joined.
20:22:19 -!- CakeProp1et has joined.
20:22:44 <Vorpal> oerjan, what is the technical definition
20:22:51 <Vorpal> oerjan, I don't know it, but would like to know.
20:22:56 <Vorpal> elliott wouldn't tell me
20:23:28 <Vorpal> oerjan, it seems only he and you know this technical definition so far.
20:24:03 <oerjan> well afaik productivity of codata means that you're guaranteed to evaluate to a constructor in finite time, this should be clear enough if you understand haskell's laziness
20:24:29 <Vorpal> oerjan, ah.
20:24:33 <oerjan> so you can have an infinite list as codata, but you can get at each element in finite time
20:25:37 <oerjan> well this is my intuition, not the technical definition, which i may not even have read :P
20:26:16 <oerjan> in contrast, for data, you must be able to evaluate the _entire_ structure in finite time.
20:26:20 -!- Sgeo has quit (Read error: Connection reset by peer).
20:26:48 <oerjan> (this applies to terminating languages, haskell of course has no scruples with never halting)
20:26:55 <elliott_> hmm, thunderbird conversations has some flaws
20:27:27 <ais523> just use proper quoting in the actual emails, then you don't even need threading
20:27:33 -!- Sgeo has joined.
20:27:50 <elliott_> ais523: I vastly prefer flat threading over any other kind of organisation
20:28:25 <oerjan> one thing i'm still not clear about is what happens if you have interleaving of data and codata constructors.
20:28:33 <ais523> elliott_: as in, sorting emails by which email that wasn't a reply to anything they're an indirect reply to?
20:28:54 <elliott_> ais523: do the normal threading algorithm, then collapse it to a single level of hierarchy, ordering by date on the rest :P
20:28:57 <elliott_> (note: algorithm is inefficient)
20:29:38 <ais523> I suppose that in my case, chronological order of emails is often more important than context (which should be in the email already)
20:29:48 <ais523> I want to have all the new emails sorted to the bottom, no matter what conversation they're part of
20:30:15 <elliott_> no thunderbird stop downloading all my agora mail...
20:30:18 <elliott_> ais523: me too
20:30:24 <elliott_> ais523: that's why you sort conversations by date of last message
20:30:34 <elliott_> and read messages are collapsed by default
20:30:34 <ais523> but what if the most recent conversation is a really long one?
20:30:47 -!- boily has quit (Quit: WeeChat 0.3.5).
20:30:48 <ais523> what do you mean by "collapsed"?
20:31:07 <Phantom_Hoover> So I'm assuming Evolution has a litany of flaws which I've never noticed?
20:31:13 <elliott_> ais523: reduced to a byline + date; often elided entirely and replaced by a UI element that, when clicked, expands (in the case of tons of conversations)
20:31:14 <elliott_> erm
20:31:16 <elliott_> ais523: reduced to a byline + date; often elided entirely and replaced by a UI element that, when clicked, expands (in the case of tons of messages)
20:31:22 <elliott_> (usually all but the first few and last few)
20:31:29 <ais523> elliott_: oh, that's the state I have emails in normally
20:31:44 <ais523> even so, I'd imagine a thousand-email thread would scroll other emails off the top of the screen easily
20:31:46 <CakeProphet> ais523: uh, have you ever used gmail? :P
20:31:47 <elliott_> ais523: except you don't see the conversation
20:31:49 <elliott_> CakeProphet: no
20:31:56 <ais523> CakeProphet: no, I haven't
20:32:10 <CakeProphet> oh, well, it does something similar to what you guys are talking about I believe.
20:32:17 <ais523> the only webmail I've used are Outlook Web Access, roundcube, and Yahoo! Mail Classic
20:32:34 <ais523> which all use the sane method of one pane for the email you're looking at, and one that's just subjects/senders/etc
20:32:43 <elliott_> CakeProphet: i'm describing gmail's behaviour to ais523
20:32:49 <CakeProphet> except that new conversations appear at the top (but each email is at the bottom of its conversation)
20:32:51 <elliott_> ais523: anyway, no, that isn't the state you have emails in normally
20:32:54 <CakeProphet> elliott_: oh okay.
20:33:22 <CakeProphet> is that not like... the default behavior nowadays?
20:33:26 <CakeProphet> have I been spoiled?
20:33:34 <elliott_> ais523: maybe I'll switch to nmh
20:33:37 <elliott_> :)
20:34:16 * CakeProphet finds gmails behavior to be preferred to single email lists.
20:35:39 <CakeProphet> elliott_: also my fortress died.
20:36:16 <elliott_> CakeProphet: I heard; we told you you're stupid in -minecraft and gave you a bunch of pointers.
20:36:19 <elliott_> Read the log
20:36:29 <CakeProphet> one guy "withdrew from society" and then later went crazy and killed like 6 people with a bronze battle axe. Seemed to happen as soon as I started furnishing weapons.
20:36:34 <elliott_> <elliott_> CakeProphet: I heard; we told you you're stupid in -minecraft and gave you a bunch of pointers.
20:36:34 <elliott_> <elliott_> Read the log
20:36:35 <Phantom_Hoover> CakeProphet, you have felt the sting of the tantrum spiral.
20:36:43 -!- Sgeo has quit (Ping timeout: 240 seconds).
20:36:45 <elliott_> CakeProphet: http://df.magmawiki.com/index.php/DF2010:Strange_mood
20:36:46 -!- CakeProp1et has left.
20:36:53 <elliott_> you did not account for the strange mood's wishes, so they went berserk
20:36:56 <elliott_> and you had no military to stop him
20:36:58 <elliott_> so you went into a tantrum spiral
20:37:01 <elliott_> the end
20:37:08 <CakeProphet> I had /some/ military
20:37:11 <elliott_> not enough
20:37:11 <CakeProphet> but by then they were tantrumming
20:37:19 <elliott_> CakeProphet: Protip: If you can't account for their wishes, just wall-in their workshop
20:37:24 <elliott_> they'll just go insane in their own little hole
20:37:24 <Phantom_Hoover> CakeProphet, that he had an axe was a rather crippling oversight.
20:37:31 <elliott_> But yeah, http://df.magmawiki.com/index.php/DF2010:Strange_mood http://df.magmawiki.com/index.php/DF2010:Strange_mood http://df.magmawiki.com/index.php/DF2010:Strange_mood http://df.magmawiki.com/index.php/DF2010:Strange_mood
20:37:41 <elliott_> whenever a weird message comes up just google it :P
20:37:53 <CakeProphet> elliott_: good call :P
20:37:59 <CakeProphet> df: meant to played with google
20:38:01 <CakeProphet> I was playing offline
20:38:09 <elliott_> You... won't survive without the wiki.
20:38:25 <elliott_> It's not like NetHack where it's orders of magnitude harder; even the DF help system points you to the wiki.
20:38:38 <CakeProphet> also my workshops were all kind of directly connected to one another in a giant room
20:38:42 <CakeProphet> like a bit workshop room...
20:38:47 <CakeProphet> so no walling in.
20:39:06 <elliott_> CakeProphet: It's... not hard wall someone in.
20:39:14 <elliott_> Just draw a square around their room.
20:39:20 <elliott_> It'll easily complete before they go berserk.
20:39:21 <CakeProphet> I didn't assign rooms.
20:39:38 <elliott_> CakeProphet: Their workshop room, FFS.
20:39:43 <elliott_> Read the wiki; strange mooders claim a workshop.
20:39:57 <Phantom_Hoover> elliott_, that's not going to be a good idea if they're in a forge.
20:40:09 <elliott_> Phantom_Hoover: Better than a tantrum spiral.
20:40:21 <CakeProphet> elliott_: oh okay. I dealt with one of those but I didn't think the other guy claimed a workshop
20:40:40 <elliott_> If he withdrew from society, he did.
20:40:44 <CakeProphet> oh okay.
20:41:05 <CakeProphet> not sure how he got the bronze axe...
20:41:09 <CakeProphet> I don't think I had any bronze
20:41:11 <Phantom_Hoover> elliott_, nope.
20:41:21 <Phantom_Hoover> If they don't have the right workshop, they won't claim one.
20:41:25 <elliott_> Phantom_Hoover: Oh.
20:41:28 <Phantom_Hoover> They'll still go insane.
20:41:34 <elliott_> Phantom_Hoover: Do they just wander around until they kill everyone?
20:41:42 <Phantom_Hoover> CakeProphet, I assume he picked it up for some reason.
20:41:49 <Phantom_Hoover> Was he near your weapons stockpiles?
20:42:09 <CakeProphet> uh it took me a while to realize what was happening so I didn't really pay much attention until there were already bloody corpses.
20:42:26 <elliott_> Well that's your own damn fault. :p
20:43:08 <CakeProphet> my own inexperience, perhaps.
20:43:24 <CakeProphet> in any case I don't have the time to invest into another game atm
20:43:36 <CakeProphet> though I did enjoy it.
20:43:50 <CakeProphet> the game I'm brainstorming is quite different in style though.
20:43:58 <elliott_> It's not a game if you die before you get set up. That's like getting mauled on the first level of NetHack and calling it a day.
20:44:13 <CakeProphet> elliott_: real life.
20:44:22 <CakeProphet> I will play later.
20:44:29 <elliott_> LOOOOOOSEEEEER
20:44:36 <olsner> elliott_: that's how I play nethack, every time
20:45:23 <CakeProphet> elliott_: also when building workships would be better to give each of them individual rooms with furniture and stuff?
20:45:26 <CakeProphet> or does it matter>
20:45:56 <elliott_> CakeProphet: You... don't put furniture in workshops, as far as I know.
20:45:58 * CakeProphet didn't realize until halfway through this his officers wanted a bed. >_>
20:46:07 <elliott_> CakeProphet: Dude, I told you to make bedrooms for everyone.
20:46:16 <CakeProphet> I made plenty of bedrooms
20:46:23 <CakeProphet> but I didn't designate them to anyone.
20:46:23 <elliott_> Not enough for everyone, evidently.
20:46:27 <elliott_> CakeProphet: They automatically designate.
20:46:32 <elliott_> You have to use q to make the beds a room.
20:46:35 <elliott_> Then they self-designate.
20:46:37 <CakeProphet> yes I did.
20:46:52 <CakeProphet> and yeah I had a population of like 57, definitely didn't have enough rooms.
20:47:00 <CakeProphet> or beds for that matter.
20:47:04 <CakeProphet> even with multiple beds in each room.
20:47:26 <Phantom_Hoover> That was one of the things that brought down Handlekindled.
20:47:43 <CakeProphet> but dude my dining hall was bitchin. 2 long tables with 2 kitchens and ENGRAVED AND DETAILS WALLS/FLOORS
20:47:46 <CakeProphet> yeah that's right.
20:47:49 <CakeProphet> >_>
20:47:55 <elliott_> Phantom_Hoover: not... really.
20:48:01 <elliott_> Phantom_Hoover: Our dorfs were ecstatic beforehand.
20:48:10 <elliott_> Bedrooms wouldn't soften the blow of having nothing to eat or drink.
20:48:17 <Phantom_Hoover> elliott_ was too lazy to keep up room expansion, so by the time Taneb and I took over neither of us could be bothered to fix it.
20:48:26 <elliott_> Yes, but everybody was still really happy.
20:48:27 <CakeProphet> I think people were actually partying before the woodcutter guy went crazy.
20:48:34 <CakeProphet> so I was doing well until that point.
20:48:36 <elliott_> Partying happens constantly.
20:48:44 <Phantom_Hoover> elliott_, FFS, the point is that it buffers the unhappiness.
20:48:57 <elliott_> Phantom_Hoover: Handlekindled was waaay too far gone for that, really.
20:49:20 <Phantom_Hoover> elliott_, there was a lack of food and drink. That's not unrecoverable.
20:49:24 <Phantom_Hoover> A tantrum spiral... is.
20:49:41 <elliott_> The tantrum spiral occurred because we flailed around trying to fix that without doing what we had to do.
20:49:43 <elliott_> i.e. resizing the farm.
20:49:50 <Phantom_Hoover> Had they all had high-quality rooms, the spiral would have set in significantly later.
20:49:57 <Phantom_Hoover> And the problem was *not* farm size.
20:50:00 <elliott_> Well, high quality, OK.
20:50:03 <elliott_> Phantom_Hoover: What /was/ it then?
20:50:13 <CakeProphet> elliott_: I had just got a massive farm working when mine happened.
20:50:29 * CakeProphet was still working on the hospital though... bad timing. :P
20:50:34 <Phantom_Hoover> A fortress of 200 can be more than fed by 2 5x5 plots, one of which produces food only ¼ of the year.
20:50:37 <CakeProphet> and the military stuff.
20:50:42 <Phantom_Hoover> elliott_, I don't know, but it wasn't that.
20:50:46 <elliott_> CakeProphet: Your farm... shouldn't be big.
20:50:52 <elliott_> Phantom_Hoover: Well, OK.
20:50:56 <CakeProphet> elliott_: why is that?
20:51:06 <elliott_> Phantom_Hoover: Let's find out that CakeProphet has filled a whole level with farm and everything was going to break anyway.
20:51:19 <CakeProphet> a very large room in one level, yes.
20:51:21 <elliott_> (OK, I'm going by the word of that one guy on IRC, but a large farm is totally unnecessary, so.)
20:51:28 <elliott_> CakeProphet: Don't do that.
20:51:44 <CakeProphet> por que?
20:51:58 <elliott_> CakeProphet: It might have bad effects, and it's definitely utterly unnecessary.
20:51:58 <CakeProphet> dwarves don't like hording large amounts of food?
20:52:00 <Phantom_Hoover> CakeProphet, it's Bad, apparently.
20:52:02 <elliott_> You only need two tiny plots.
20:52:05 <Phantom_Hoover> Oh, wait.
20:52:16 <Phantom_Hoover> Plots grow more if you grow the same crop consecutively.
20:52:36 <Phantom_Hoover> A huge plot will have far fewer plots growing over multiple seasons.
20:52:44 <CakeProphet> so then... 4-5 small plots over time?
20:52:49 <CakeProphet> one for each plant?
20:53:01 <CakeProphet> (as season permits)
20:53:19 <CakeProphet> in the long-term that is.
20:53:37 <Phantom_Hoover> I went for 5x5 plump helmet, 5x5 plump helmet/sweet pot/cave wheat/pig tail.
20:54:11 <Vorpal> Phantom_Hoover, what about doing 25 1x1 instead?
20:54:29 <Phantom_Hoover> Vorpal, that would work if you want RSI, I suppose.
20:54:36 <Vorpal> Phantom_Hoover, macros
20:55:09 <Phantom_Hoover> Sure, but it's still pointlessly tedious.
20:55:09 <CakeProphet> Phantom_Hoover: this game seems built for RST :P
20:55:16 <CakeProphet> *
20:55:17 <CakeProphet> I
20:55:29 <Vorpal> CakeProphet, well yes.
20:55:56 <Vorpal> I think df with an isomeric map view and a better interface would work well.
20:56:17 <Vorpal> err isometric*
20:56:37 <elliott_> DF's interface is fine, modulo some nested menus, and labours.
20:57:23 <CakeProphet> I think I actually would be better with a english-word based command interface
20:57:29 <CakeProphet> as far as memorizing commands.
20:57:36 <Vorpal> eh
20:57:38 <Vorpal> nah
20:58:08 <Vorpal> elliott_, yeah assigning jobs is horrible. I use dwarftherapist for that. Starting the game in wine after each time I get a wave of immigrants to assign jobs. Then going back to native linux version.
20:58:13 <elliott_> CakeProphet: That would definitely give you RSI.
20:58:18 <elliott_> And also terminal boredom.
20:58:26 <elliott_> Vorpal: Uh, why WINE?
20:58:30 <elliott_> Vorpal: DT works on Linux, you idiot.
20:58:36 <Vorpal> elliott_, because dwarftherapist does not work on linux
20:58:38 <elliott_> Yes it does.
20:58:42 <elliott_> It needs root for me though; works for Phantom_Hoover without.
20:58:42 <Vorpal> elliott_, that is new then
20:58:55 <CakeProphet> elliott_: most of my time was spent tripping through menus awkwardly.
20:58:58 <elliott_> Vorpal: No it isn't.
20:59:01 <Vorpal> elliott_, last I checked I had to run it under wine
20:59:23 <Vorpal> elliott_, last I checked = maybe a year ago
20:59:33 * CakeProphet just played it on linux.
20:59:40 <elliott_> CakeProphet: DT, not DF.
20:59:44 <elliott_> Vorpal: It's been maintained since last September.
20:59:51 <Gregor> (DwarfTheRapist)
20:59:58 <Vorpal> elliott_, hm
21:01:50 * CakeProphet is so leet he doesn't programs that make his life easier.
21:01:53 <CakeProphet> +need
21:02:00 <CakeProphet> I don't need verbs either.
21:02:04 <CakeProphet> fuck em.
21:02:25 <Phantom_Hoover> Verbs, who needs them.
21:02:49 <elliott_> CakeProphet: It's not about maknig your life easier, it's about assigning labours in spreadsheet style rather than individually going through every single dorf in your fortress (which will number about one hundred) just to find out who's any good at mining and assigning that labour with the awful menu.
21:03:15 <CakeProphet> Phantom_Hoover, text-only image macro maker
21:03:17 <elliott_> Unless you think DF's main challenge is menu navigation, it isn't about hardcoreness at all.
21:03:32 <CakeProphet> elliott_: I believe what you just said is equivalent to "making your life easier"
21:03:37 <Vorpal> elliott_, more like 150 than 100
21:04:04 <elliott_> CakeProphet: No, making your life easier would be something that did something actually game-relevant.
21:04:14 <Phantom_Hoover> CakeProphet, it's not making your life easier, it's making it bearable.
21:04:24 <elliott_> CakeProphet: Games aren't designed with deliberately terrible menu systems to give them additional difficulty.
21:04:30 <elliott_> That's ridiculous.
21:04:50 <CakeProphet> uh, I think we are nitpicking here.
21:05:29 <elliott_> No.
21:09:11 -!- Patashu has joined.
21:10:21 <elliott_> fungot: I love you.
21:10:21 <fungot> elliott_: " exactly," i ventured, " but you, randolph carter, of boston on the earth or other planets where they traded. these creatures, in numbers apparently inexhaustible, were engaged in one stupendous migration from inconceivable heights to some depth conceivably or inconceivably below.
21:10:32 <elliott_> ^style
21:10:32 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft* nethack pa sms speeches ss wp youtube
21:10:55 <Phantom_Hoover> <me> Can that sword alone stop?
21:11:04 <Phantom_Hoover> <Cleverbot> I suppose so. Can't anything happen?
21:11:14 <ais523> hmm, so according to proggit, a root CA gave someone other than Google a wildcard cert for *.google.com
21:11:19 <Phantom_Hoover> fungot, isn't Cleverbot silly?
21:11:20 <fungot> Phantom_Hoover: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes. no.
21:11:33 <Phantom_Hoover> fungot, have you finished pondering?
21:11:33 <fungot> Phantom_Hoover: are you a man, if there weren't evil in this kingdom to you! eat! fun!
21:11:43 <Phantom_Hoover> fungot, oh no, not more death threats.
21:11:44 <fungot> Phantom_Hoover: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far out
21:11:52 <olsner> got fun, fungot?
21:11:52 <fungot> olsner: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! destroy bad man! big fire where lavos fall from sky! we no can call that the chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:11:55 <Phantom_Hoover> fungot, I don't believe in clones.
21:11:55 <fungot> Phantom_Hoover: we are looking, but well behaved! crono!! i owe you one! you saved the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:12:20 <Phantom_Hoover> fungot, but anyway, can that sword alone stop?
21:12:20 <fungot> Phantom_Hoover: we must do it to save you! who the heck are you?! c'mon!!
21:12:36 <Phantom_Hoover> fungot, first you're threatening to kill me, then you're saving me?
21:12:37 <fungot> Phantom_Hoover: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
21:15:04 <Vorpal> fungot, oh that sword
21:15:04 <fungot> Vorpal: i shall help also. up down cancel left lab area right factory area caution! do not turn, now! oppose me, you...foreigners! you're worse than the gurus and miss you.
21:15:10 <Vorpal> fungot, no?
21:15:10 <fungot> Vorpal: i shall help also. let us return in time! it's a moonlight parade! this must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
21:15:24 <Vorpal> fungot, yes, yes, but what about that sword?
21:15:24 <fungot> Vorpal: yes, it's been awhile prometheus!
21:15:41 <Vorpal> fungot, stop annoying me
21:15:41 <fungot> Vorpal: cyrus! are you leaving!
21:15:41 -!- GreaseMonkey has joined.
21:17:30 <elliott_> fungot: What can that sword alone not stop?
21:17:30 <fungot> elliott_: cyrus! are you leaving!
21:17:34 <elliott_> fungot: Yes.
21:17:34 <fungot> elliott_: by thy leave, crono?!! you brought back my cat! thank you, crono!
21:17:38 <elliott_> fungot: I'm the best.
21:17:39 <fungot> elliott_: but, we are far outnumbered! how can i do for you? thanks! it's about the missing queen. she still looks so much like leene, that they will take you to your place of execution?! strange, but!?
21:17:48 <elliott_> fizzie: You can do for me by saying that thing.
21:17:54 <elliott_> i hate you
21:19:33 <CakeProphet> also apparently I shouldn't give soldiers food because they will get interrupted while eating and it will cause miasma as no one else can access it at that point.
21:20:04 <Vorpal> fungot, well?
21:20:04 <fungot> Vorpal: time to shove off! the name's bandeau. here to build the ocean palace?
21:20:11 <CakeProphet> might have been what happened with the miasma after my spiral. guys goes crazy, interrupts people eating in kitchen, and then corpses and rotting food = miasma
21:20:19 <Vorpal> fungot, really?
21:20:19 <fungot> Vorpal: the real queen's safe, right! right. wrong! please return! by the way, the wings! now this is a way to the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:20:26 <Vorpal> fungot, come on...
21:20:26 <fungot> Vorpal: are you a man, if there weren't evil in this kingdom to you! eat! fun! this bridge! but, we are far outnumbered! she claims this area, and reigns from high atop the sea. now, only the 3 entities you saw will help you leave, crono?!! you brought back my cat! thank you, crono!
21:20:32 <Vorpal> fungot, oh well
21:20:32 <fungot> Vorpal: i see. you know, i really care... a time portal? what in the...! ozzie's stumped!
21:21:18 <Vorpal> CakeProphet, that is why you section off rooms so you can close them and open a hot spare
21:21:29 <Vorpal> forbidding the door and so on
21:21:32 <olsner> why don't we all just stop talking to fungot
21:21:33 <fungot> olsner: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:21:44 <oerjan> i'm sure fungot would like that.
21:21:44 <fungot> oerjan: that no one was allowed to use the crane, enter any two of these letters, a b y. end professor's message from the professor.
21:21:46 <Vorpal> olsner, because he hasn't mentioned the sword yet
21:21:55 <olsner> fungot: mention the sword
21:21:55 <fungot> olsner: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
21:22:05 <oerjan> fungot: not _that_ sword
21:22:05 <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
21:22:16 <elliott_> fungot: SWORD MOTHERFUCKER
21:22:17 <fungot> elliott_: but, we are far outnumbered! you're the only one thing we need to defeat you, lavos. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:22:21 <elliott_> fungot: FUUUCK YOUUU
21:22:21 <fungot> elliott_: the real queen's safe, right! right. wrong! please return to the castle! and letting these...hoodlums in here? traitors like you deserve from heckran! ha!
21:22:23 <elliott_> fungot: JSDIOJOISADJIDOSNFOSJDODSIFS
21:22:24 <fungot> elliott_: in the middle ages, sir slush!... smell of all the human race is doomed! mwa, ha! say, do you like plants?
21:22:25 <Vorpal> fungot, come on
21:22:25 <fungot> Vorpal: these unique items make us invincible! amazing! you found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:22:26 <elliott_> fungot: THAT
21:22:26 <fungot> elliott_: frog will do. those two are really looking forward, epoch!! fix the masamune!!
21:22:27 <elliott_> fungot: SWORD
21:22:28 <fungot> elliott_: your majesty! and queen. he and a friend left on a journey 10, then magic damage will be reduced by 10%. a star after any characteristic means it's at maximum strength! no matter what the price! it is, you idiot! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's
21:22:29 <elliott_> fungot: ALONE
21:22:30 <fungot> elliott_: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! strange, but!? all the young must migrate to other planets...to repeat the cycle...
21:22:31 <elliott_> fungot: CAN'T
21:22:31 <fungot> elliott_: it's time you jumped off this mortal coil...
21:22:32 <Vorpal> fungot, THAT SWORD
21:22:32 <fungot> Vorpal: we are looking, but well behaved! crono!!! 5, you mugs!
21:22:33 <elliott_> fungot: STOP
21:22:34 <olsner> fungot: sword, do you speak it?
21:22:34 <fungot> elliott_: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! i'm afraid i can't allow that... beast, keepin' me locked! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided
21:22:39 <elliott_> I HATE YOU
21:22:40 <elliott_> DIE DIE DIE
21:22:44 <Vorpal> fungot, really come on
21:22:44 <fungot> Vorpal: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:22:47 <elliott_> fungot: OIJSDOJIOSDDJFSGUDHFF
21:22:47 <fungot> elliott_: and you call yourself a frog, and ayla... i will not betray my friends! ha!! gotcha! heeheehee... oh, can you fix the masamune!
21:22:48 <Vorpal> fungot, ...
21:22:48 <fungot> Vorpal: and you call yourself a frog, and ayla... i will not betray my friends! he's a no good! choose 2 different ones! you have come far, and you must now carry out his sentence. hold the l&r buttons and then press the a button to access, but stay off of " techniques." stop immobilizes and disables you. in these bones, i shall return! by the way, the wings! now this is a way to the ocean palace?
21:22:53 <Vorpal> fungot, no
21:22:53 <fungot> Vorpal: your majesty! and queen. he and a friend left on a journey 10. all functions are down... got the terra arm and the crisis arm! found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:22:55 <elliott_> fungot: I:_;AFSDOGJHDNK CANT DEAL WITH YOURT
21:22:55 <fungot> elliott_: you! take! we find!
21:22:56 <Vorpal> fungot, not that
21:22:57 <fungot> Vorpal: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:22:57 <CakeProphet> fungot: I want you
21:22:57 <fungot> CakeProphet: you! take! we find! must report to sir krawlie what you just said!!
21:22:58 <elliott_> fungot: BULLSHIT
21:22:58 <fungot> elliott_: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
21:23:03 <elliott_> fungot: DIE IN A VAT OF PISS
21:23:03 <fungot> elliott_: we are looking, but well behaved! crono!! crono!! crono!!! help!! 7/ battle window up or down. want my advice?
21:23:07 <CakeProphet> fungot: stop
21:23:07 <fungot> CakeProphet: but, we are far outnumbered! are you leaving! sorry, fellas! i'm empty!
21:23:07 <Vorpal> fungot, come on
21:23:07 <elliott_> FireFlyNO I DONT
21:23:07 <fungot> Vorpal: like, thanks princess. i'll take that under advisement!! i've never even seen you with lucca! who's your pretty new friend! king guardia the xxxiii. i really enjoyed such powers... now, i know!!... smell of all the human race is doomed! mwa, ha! say, do you like plants?
21:23:13 <elliott_> fungot: IM CRYING IN REAL LIFE
21:23:13 <fungot> elliott_: shall we get back to the present? he's been known. we reptites will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's statue before my shift. i hate! ayla not like...
21:23:17 <elliott_> oerjan: BAN FUNGOT
21:23:22 <Vorpal> fungot, ...
21:23:22 <fungot> Vorpal: you, with you standing around! the trial! what has gotten away with this! a top secret document has been left behind? marle lucca the great magus. oh! crono!!
21:23:26 <Vorpal> fungot, come on
21:23:27 <fungot> Vorpal: but cyrus! are you leaving! no! tell us about the masamune!!
21:23:34 <elliott_> fungot: IM GOING TO PUNCH YO
21:23:34 <Vorpal> fungot, you are no fun today
21:23:34 <fungot> Vorpal: time to shove off! the name's bandeau. here to build the ocean palace? petal," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," "
21:23:34 <CakeProphet> fungot: the sword alone
21:23:34 <fungot> elliott_: we must do it to save you! who the heck are you?! c'mon!!
21:23:34 <fungot> CakeProphet: time to shove off! the name's bandeau. here to build the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call that the chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:23:36 <Vorpal> what
21:23:38 <Vorpal> what the fuck
21:23:38 <elliott_> <fungot> Vorpal: time to shove off! the name's bandeau. here to build the ocean palace? petal," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," " fang," "
21:23:38 <elliott_> fang," " fang," " fang," " fang," "
21:23:39 <fungot> elliott_: you are strong of will...! that's the pendant the gurus and miss you.
21:23:39 <Vorpal> was that
21:23:39 <elliott_> fang
21:23:40 <elliott_> that's
21:23:41 <elliott_> better
21:23:42 <elliott_> than
21:23:44 <elliott_> swords
21:23:49 <Vorpal> elliott_, agreed
21:23:53 <elliott_> but
21:23:54 <elliott_> still
21:23:56 <elliott_> we must
21:23:58 <elliott_> go on
21:24:14 <Gregor> http://tasvideos.org/1248M.html This might be the best-ever TAS :P
21:24:20 <Vorpal> elliott_, oh I realise where that list come from. Since it mentioned petal
21:24:37 <CakeProphet> fungot: can't stop that sword alone sword sword sword stop stop stop alone alone alone
21:24:38 <fungot> CakeProphet: i'd like to see that mystical sword for myself! geez! parental discretion advised. no time to talk. we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:24:42 <elliott_> Gregor: It's not much of a TAS :P
21:24:44 <oerjan> this is about the time when fizzie mentions that he fixed the sword bug
21:24:52 <Vorpal> elliott_, remember that thing in prehistory where you could kill enemies and get items to trade for
21:24:57 <elliott_> oerjan: well, evidently not since fang is still there
21:25:00 <CakeProphet> fungot: fang
21:25:00 <fungot> CakeProphet: that no one was allowed to use the crane, enter any two of these letters, a b y.
21:25:03 <elliott_> Vorpal: ?
21:25:08 <elliott_> fungot: DIE TO DEATH
21:25:08 <fungot> elliott_: your majesty! and queen. he and a friend left on a journey 10, then magic damage will be reduced by 10%. a star after any characteristic means it's at maximum strength! no matter what the price! it is, you idiot! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's
21:25:10 <elliott_> fungot: fang
21:25:11 <fungot> elliott_: it's a machine that looks like you!
21:25:13 <oerjan> fungot: fang fang numberwang
21:25:13 <fungot> oerjan: the real queen's safe, right! right. wrong! please return now, or you silly apes who end up ruling the world?
21:25:15 <elliott_> fungot: fangs in ur internal organs
21:25:15 <Vorpal> elliott_, oh you didn't play the game?
21:25:15 <fungot> elliott_: you are strong of will...! that's the pendant the gurus and miss you. you may use that " rainbow shell? can eat much! good music!
21:25:20 <elliott_> `addquote <fungot> elliott_: it's a machine that looks like you!
21:25:21 <fungot> elliott_: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it?
21:25:23 <HackEgo> 633) <fungot> elliott_: it's a machine that looks like you!
21:25:24 <CakeProphet> fungot: its a machine that looks like you!
21:25:24 <fungot> CakeProphet: yes, it's been awhile prometheus! sleep like stone statues. ' tis the masamune!!!
21:25:34 <elliott_> fungot: tis the masamune indeed
21:25:35 <fungot> elliott_: and you call yourself a frog, and ayla... i will not betray my friends! huh? there's something else in here? traitors like you deserve from heckran! ha!
21:25:47 <elliott_> fungot: i dont like you any more
21:25:48 <fungot> elliott_: yes, it's been awhile prometheus! happy! red star! me saw! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:25:55 <elliott_> fungot: stop harasing me
21:25:55 <fungot> elliott_: to the northwest of this cape. he took the gate at the fairgrounds!
21:25:57 <Vorpal> fungot, the masamune, what about that sword
21:25:57 <fungot> Vorpal: there! there it is! but by the time we're through with you, you'll be in danger. open hatch. trader has new weapons! all gone!
21:25:59 <elliott_> fungot: ;;;;;;;;;;;;;;;;;
21:26:00 <fungot> elliott_: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself! geez!
21:26:05 <Vorpal> fungot, ...
21:26:05 <fungot> Vorpal: your majesty! and queen. he and a friend left on a journey 10. all functions are down... got the terra arm and the crisis arm! found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:26:07 <elliott_> and i'd like to see that mystical sword for myself! geez!
21:26:09 <elliott_> fungot: and i'd like to see that mystical sword for myself! geez!
21:26:10 <fungot> elliott_: but cyrus! are you leaving!! my powers are being drained. why not? then you should leave quickly! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind? the mystics supposedly despise you! i'm leaving!
21:26:11 <Vorpal> fungot, come on
21:26:11 <fungot> Vorpal: the knight spirit has the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to the hero! hurrah to t
21:26:14 <elliott_> ....
21:26:14 <oerjan> fungot the stubborn
21:26:14 <fungot> Vorpal: that no one was allowed to use the crane, enter any two of these letters, a b y.
21:26:16 <Vorpal> what
21:26:18 <elliott_> THAT'S NOT THE RIGHT LOOP FUCKER
21:26:25 <elliott_> fungot: FUCKSHIT
21:26:25 <fungot> elliott_: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it? sure! no thanks. yum! lemonade! vitamin c, cyrus!
21:26:29 <elliott_> yum! lemonade! vitamin c, cyrus!
21:26:34 <Vorpal> elliott_, we discovered two new loops though
21:26:46 <CakeProphet> hurrah to the hero! is pretty amusing
21:26:52 <oerjan> fungot: your loops are failing
21:26:52 <fungot> oerjan: you! take! we find! can you imagine what the inside of that armor must smell like? i'm so excited! clear, too!
21:26:54 <Vorpal> fungot, hm
21:26:54 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself! geez!
21:26:57 <elliott_> ME TOO
21:27:03 <elliott_> <fungot> elliott_: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself! geez!
21:27:04 <fungot> elliott_: you are strong of will...! that's the pendant the gurus and miss you. you may use that " rainbow shell? can eat much! bring newcomers to meet me!
21:27:04 <Vorpal> fungot, THAT SWORD. TELL ME ABOUT IT!
21:27:04 <fungot> Vorpal: you! take! we find! where could sir cyrus be? miss you. this kingdom's been through a time machine! nya ha!
21:27:06 <elliott_> heh, direct quote
21:27:07 <oerjan> fungot: aum
21:27:07 <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! eat! fun!!
21:27:09 <elliott_> repetition, i mean
21:27:11 <elliott_> so yeah
21:27:36 <oerjan> fungot: to quote, perchance to stop
21:27:36 <fungot> oerjan: in the middle ages, sir slush!...
21:27:36 <Vorpal> fungot, and the sword?
21:27:37 <fungot> Vorpal: in the middle ages, sir slush!...
21:27:37 <elliott_> oh my god, a tas of kaizo mario
21:27:43 <Vorpal> heh
21:27:45 <Vorpal> that was nice
21:27:49 <Vorpal> RNG fail
21:28:09 <Vorpal> fungot, well the sword then?
21:28:09 <fungot> Vorpal: but, we are far outnumbered!
21:28:24 <Vorpal> fungot, only because that sword alone is outnumbered
21:28:24 <fungot> Vorpal: the real queen's safe, right! right. wrong! please return
21:28:35 <Vorpal> fungot, right? wrong? decide!
21:28:35 <fungot> Vorpal: these unique items make us invincible!" now, scram! just between us, i heard that magus's place...
21:28:39 <elliott_> fungot: i really hate you
21:28:39 <fungot> elliott_: the king awaits. you saved our queen? you see, the mammon machine are as follows. the y button displays the time to drop by!? all the young must migrate to other planets...to repeat the cycle...
21:28:43 <elliott_> fungot: REPEAT THE CYCLE
21:28:43 <fungot> elliott_: must think of a way to the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call that the chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:28:47 <oerjan> fungot: fnord
21:28:48 <fungot> oerjan: and you call yourself a frog, and ayla... i will not betray my friends!! jurassicnota rhythmnota you're so weaknota and i'm so rich i don't know where to find me should the need arise. bows, and guns. some frog guy dropped a shelter! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the r
21:28:50 <Vorpal> what
21:28:50 <CakeProphet> 17:29 <CakeProphet> `addquote <fungot> Vorpal: the knight spirit has the hero!
21:28:50 <fungot> CakeProphet: time to shove off! the name's bandeau. here to build the ocean palace? come to see you back again. please go and visit the king. the king fought the mystics over 400 long years. when will it be the reptites, or you silly apes who end up ruling the world?
21:28:53 <CakeProphet> hurrah to the hero! hurrah to the hero! hurrah to the
21:28:55 <Vorpal> yet another cycle
21:28:56 <CakeProphet> hero! hurrah to the hero! hurrah to the hero! hurrah to
21:28:58 <CakeProphet> the hero! hurrah to the hero! hurrah to the hero! hurrah
21:29:01 <CakeProphet> to the hero! hurrah to the hero! hurrah to the hero!
21:29:03 <elliott_> CakeProphet: ...
21:29:03 <CakeProphet> hurrah to the hero! hurrah to the hero! hurrah to the
21:29:04 <elliott_> `help
21:29:04 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
21:29:06 <CakeProphet> hero! hurrah to the hero! hurrah to the hero!
21:29:08 <CakeProphet> 17:29 <fungot> CakeProphet: that sword alone can't stop! that sword alone can't
21:29:09 <fungot> CakeProphet: you are strong of will...! that's the pendant the gurus and miss you. who disturbs my slumber? nu...! just trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered!
21:29:11 <CakeProphet> stop! that sword alone can't stop! that sword alone can't stop,
21:29:12 <Vorpal> elliott_, got the red vest! got the red vest!
21:29:19 <elliott_> CakeProphet: stfu
21:29:24 <elliott_> fungot: im a red vest
21:29:24 <fungot> elliott_: yes, it's been awhile prometheus! this must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
21:29:26 <CakeProphet> crono!
21:29:34 <Phantom_Hoover> How does fungot's RNG work?
21:29:34 <fungot> Phantom_Hoover: but cyrus! are you leaving! data confirmed!' are you stupid? this is the kingdom? well come. i'm sure that crono, he'll be a hero or a chancellor...
21:29:38 <elliott_> Phantom_Hoover: ?
21:29:41 <CakeProphet> elliott_: yeah I didn't realize it would paste that many lines
21:29:41 <Vorpal> fungot, stop being silly
21:29:41 <fungot> Vorpal: but, we are far outnumbered! crono!!! help!
21:29:51 <CakeProphet> but I got the sword alone can't stop.
21:29:52 <Vorpal> Phantom_Hoover, either RAND or ? I assume
21:29:54 <oerjan> fungot: your turn
21:29:54 <fungot> oerjan: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered
21:30:00 <elliott_> Vorpal: I think it's ?
21:30:03 <Vorpal> CakeProphet, where?
21:30:07 <oerjan> fungot: ? ?
21:30:07 <fungot> oerjan: you! take! we find! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the red vest! got the
21:30:08 <CakeProphet> Vorpal: pm
21:30:16 <CakeProphet> fungot: help?
21:30:16 <fungot> CakeProphet: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
21:30:21 <CakeProphet> fungot: help? ?
21:30:21 <fungot> CakeProphet: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:30:33 <oerjan> fungot: the day you stopped alone
21:30:33 <Vorpal> elliott_, so we found several new cycles today
21:30:33 <fungot> oerjan: but, we are far outnumbered! my powers are being drained. why not? then you should leave quickly! out for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have the masamune!
21:30:37 <Vorpal> fungot, ...
21:30:37 <fungot> Vorpal: we must do it to save you! who the heck are you?! c'mon!! empty! this must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
21:30:39 <elliott_> Vorpal: i think most of them we encountered before
21:30:44 <CakeProphet> fungot: ? ?
21:30:44 <fungot> CakeProphet: you are strong of will...! that's the pendant the gurus and miss you.
21:30:54 <oerjan> fungot: you are so pendantic
21:30:54 <fungot> oerjan: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:30:55 <Vorpal> <CakeProphet> Vorpal: pm <-- why?
21:30:59 <CakeProphet> fungot: are you a wizard?
21:30:59 <fungot> CakeProphet: you are strong of will...! that's the pendant the gurus and miss you. you may use that " rainbow shell? can eat much, much strong guy!
21:31:09 <CakeProphet> Vorpal: because I was going to secretly add a quote, secretly
21:31:11 <oerjan> fungot: are you a dragon then
21:31:11 <fungot> oerjan: i see. you know, i really care... a time portal? what in the...! ozzie's stumped!
21:31:17 <Vorpal> elliott_, hm perhaps we did that
21:31:17 <CakeProphet> and when I tried to do so it spat out the sword loop.
21:31:21 <Vorpal> fungot, and the sword?
21:31:21 <fungot> Vorpal: but cyrus! are you leaving! we're leaving! what you do? wake you, but need dactyl?
21:31:23 <elliott_> Vorpal: did what
21:31:31 <CakeProphet> Vorpal: > < > < > < > < > < < > > > <
21:31:34 <elliott_> CakeProphet: add a quote with fungot?
21:31:34 <fungot> elliott_: the real queen's safe, right! right. wrong! please return
21:31:34 <elliott_> smart
21:31:36 <Vorpal> elliott_, encounter those loops earlier
21:31:41 <CakeProphet> fungot: > < > < < < > < > > > < > < < >>
21:31:41 <fungot> CakeProphet: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
21:31:49 <Vorpal> fungot, yeah yeah
21:31:49 <fungot> Vorpal: frog will do. you'll need to find someone that can shine! we must do it to save you! who the heck are you?! c'mon!!
21:31:50 <CakeProphet> elliott_: oh I thought he was the quotebot for some reaso.
21:31:53 <oerjan> fungot: !
21:31:53 <fungot> oerjan: you are strong of will...! that's the pendant the gurus and miss you. hah! you think you are? coming and going out! he's really a tricycle! pass him!
21:32:00 <elliott_> oerjan: kickban fungot if not do what we say
21:32:01 <Vorpal> fungot, ..
21:32:01 <fungot> Vorpal: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! uwa, ha! say, do you like plants?
21:32:01 <fungot> elliott_: we are looking, but well behaved! crono!!!
21:32:03 <CakeProphet> fungot: !@#)@#%)*!@#)*@%)*!@_#(!@)%!_@_!#@%*_!@*$_!@*%'
21:32:03 <fungot> CakeProphet: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:32:12 <Vorpal> fungot, YOU are not well behaved though
21:32:12 <fungot> Vorpal: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! i bet my children are going!!
21:32:25 <CakeProphet> fungot: crono
21:32:26 <fungot> CakeProphet: the masamune!
21:32:27 <Vorpal> fungot, no I don't need a clone, I'm in the "do not call" register
21:32:28 <fungot> Vorpal: you, with you standing around! the trial! what has gotten away with this! a top secret document has been left behind? marle lucca... the password. emergency! security and activate the sword... the masamune!
21:32:31 <oerjan> fungot: you have been warned
21:32:32 <fungot> oerjan: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:32:45 <Vorpal> fungot, so tell me about the masamune!
21:32:45 <fungot> Vorpal: it's time you jumped off this mortal coil... ayla still fight? why you here?0ckino no like you! i'm leaving! who the heck are you?! c'mon!!
21:32:49 <Vorpal> fungot, fuck you
21:32:49 <fungot> Vorpal: by thy leave, crono?!! you brought back my cat! thank you, crono! cider please! the hero has made the epoch, your wings! now this is a treasure there... found the treasure!! probably filled with mystical forest powers are being drained. why not? then you should leave quickly!
21:32:59 <Vorpal> fungot, ...
21:32:59 <CakeProphet> fungot hurrah
21:32:59 <fungot> Vorpal: yes, it's been awhile prometheus! although we did sustain more damage. use the queen's hall. a good hit will wake you, but need dactyl?
21:32:59 <fungot> CakeProphet: but cyrus! are you leaving!
21:33:04 <oerjan> fungot: you are so crono logical
21:33:04 <fungot> oerjan: as long as you keep crono in your heart, the day of lavos"... go to " mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:33:16 <Vorpal> oerjan, ouch
21:33:17 <elliott_> fungot: that fucking sword alone
21:33:17 <fungot> elliott_: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! fine then, can a chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:33:22 <Vorpal> fungot, .
21:33:22 <fungot> Vorpal: i see. you know, i really care... a time portal? what in the...! ozzie's stumped!? just because i have to put up with your drivel, ribbit!
21:33:23 <elliott_> fungot: god you are a woejiew
21:33:24 <fungot> elliott_: yes, it's been awhile prometheus!'
21:33:29 <elliott_> fungot: its been a while fuck you
21:33:29 <fungot> elliott_: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! nirvana strike! graaaack...! how can i do for you? thanks! it's about the missing queen. she still looks so much like leene, that they will take you to your place of execution?! strange, but!?
21:33:33 <Vorpal> elliott_, what is a "woejiew"?
21:33:34 <elliott_> graaaack
21:33:38 <elliott_> Vorpal: sounds polish
21:33:39 <Vorpal> fungot, stop being such a PITA
21:33:39 <fungot> Vorpal: the masamune!! the king does not wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:33:47 <oerjan> fungot: are you polished
21:33:47 <fungot> oerjan: but, we are far outnumbered!
21:33:48 <Vorpal> elliott_, well you should know, you said it
21:33:54 <CakeProphet> fungot: no matter what they say I'll always love you
21:33:54 <fungot> CakeProphet: you, with you standing around! the trial! what has gotten away with this! a top secret document has been left behind the floor to fight the mother brain, yet!
21:33:56 <oerjan> fungot: the poles often were
21:33:56 <fungot> oerjan: there! there it is!
21:34:03 <Vorpal> fungot, WHERE!?
21:34:03 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
21:34:07 <Vorpal> fungot, ARGH
21:34:08 <fungot> Vorpal: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! i'm afraid i can't allow that... beast, keepin' me locked! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided t
21:34:11 <coppro> MOTHER BRAIN IS GOOGLE
21:34:14 <Vorpal> fungot, ....
21:34:14 <fungot> Vorpal: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:34:23 <Vorpal> fungot, fuck you.
21:34:23 <fungot> Vorpal: from where does the hero alone have the power. " m, madam...! i am, are you?! c'mon!! gotcha!
21:34:26 <CakeProphet> fungot: fuck me
21:34:26 <fungot> CakeProphet: that no one was allowed to use the crane, enter any two of these letters, a b y. every night, brings a new world of good!
21:34:31 <Vorpal> fungot, ...
21:34:31 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself! geez! thou art and science... all to you!
21:34:39 <Vorpal> fungot, what is it with you today...
21:34:39 <fungot> Vorpal: must think of a way to the ocean palace? aren't you going?! the king hast been injured? what's the big deal? so what if we won a war out there! can't it see i love my daddy! the children are going!
21:34:51 <CakeProphet> fungot: fungot fungot fungot fungot fungot fungot fungot fungot
21:34:51 <fungot> CakeProphet: i, myself, will bring an end to all. ghosts lurk in the ruins! the structural damage is severe. the tale?
21:34:56 <Vorpal> fungot, this must be a record for time on this style that you haven't mentioned the sword
21:34:56 <fungot> Vorpal: you! take! we find! epoch...become bird!!
21:34:57 <oerjan> fungot: to stop or not to stop, that is the question
21:34:57 <fungot> oerjan: the usual...test them. you can entertain us for awhile? chancellor: yes! well then rest and relax! huh?
21:35:07 <Vorpal> oerjan, we can't give up now
21:35:12 <Vorpal> fungot, ...
21:35:12 <fungot> Vorpal: but, we are far outnumbered! didn't you create him? that kino guy! much danger. open hatch.
21:35:18 <Vorpal> fungot, create who?
21:35:18 <fungot> Vorpal: it's time you jumped off this mortal coil... the name of time machine! nya ha! i run this town! and i'm so rich i don't know where to find me should the need arise.
21:35:22 <oerjan> fungot: you _will_ be put to the sword
21:35:22 <fungot> oerjan: it's a machine that looks like you! who the heck are you?! c'mon!!
21:35:25 <CakeProphet> Vorpal: crono!
21:35:26 <Vorpal> fungot, what an insult
21:35:26 <fungot> Vorpal: the masamune!! after them!
21:35:29 <elliott_> fungot: im going to kill your mom
21:35:29 <fungot> elliott_: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
21:35:32 <elliott_> ais523: can you kickban fungot thanks
21:35:33 <fungot> elliott_: yes, it's been awhile prometheus! here's your allowance, dear! now, off you go! didn't you create him? that kino guy!
21:35:40 <CakeProphet> fungot: he's really a tricycle!
21:35:40 <fungot> CakeProphet: but, we are far outnumbered!
21:35:45 <oerjan> fungot: alone the stop can't sword!
21:35:45 <fungot> oerjan: but, we are far outnumbered! there's the seed! amazing! you found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:35:53 <Vorpal> fungot, ...
21:35:53 <fungot> Vorpal: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:35:57 <CakeProphet> fungot: .
21:35:57 <ais523> elliott_: I don't think it's done anything wrong
21:35:57 <fungot> CakeProphet: it's time you jumped off this mortal coil... glenn!! ...wh...what g...l...e...n...n?
21:36:03 <Vorpal> fungot, I think the underlying RNG is failing
21:36:03 <fungot> Vorpal: and you call yourself a frog, and ayla... i will not betray my friends!
21:36:09 <ais523> the people triggering it, on the other hand...
21:36:17 <elliott_> ais523: oerjan is an op, he validates us
21:36:19 <CakeProphet> fungot: fuck ais523
21:36:19 <fungot> CakeProphet: but cyrus! are you leaving! ok. no. go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:36:20 <elliott_> fungot: ojfoijoijoief
21:36:21 <fungot> elliott_: yes, it's been awhile prometheus! something is reacting to the pendant. take out the contents are yours?
21:36:21 <Vorpal> ais523, ... it isn't mentioning the sword!
21:36:26 <ais523> why should it?
21:36:28 <elliott_> fungot: im killing you
21:36:28 <fungot> elliott_: of what?
21:36:31 <elliott_> fungot: of you
21:36:31 <fungot> elliott_: you are a little nervous compulsion. behavior to petition for their own good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a si
21:36:34 <oerjan> fungot: don't let it get out of hand
21:36:35 <elliott_> STOP LOOPING OTHER THINGS
21:36:43 <oerjan> wat
21:36:49 <CakeProphet> fungot: a concept usually denoted by a single, linear concept.
21:36:49 <fungot> CakeProphet: like a very clear mirror without falling in your favor again ill be here too.
21:36:56 <Vorpal> what
21:37:03 <elliott_> fungot: im clean mirror
21:37:03 <oerjan> fungot: how dare you ignore me
21:37:03 <fungot> oerjan: so, you give up, jade is my slime tube and this is a new game. there is a heavy amount of time i will say you are only here to deliver a message and then i'll put in the hallway. beyond a lot
21:37:04 <fungot> elliott_: as a veteran of the game. then i'll put in the hallway. beyond the walls of his room. john. return, he teaches her to fly a little higher, to see if john is of course it was a nasty pair of beagle puss glasses, several () a blank card, producing a different hole in the roof
21:37:04 <Vorpal> fungot, ...
21:37:04 <fungot> Vorpal: just a tiny, custom-tailored suit is all business
21:37:07 <Vorpal> fungot, ...
21:37:07 <fungot> Vorpal: enter name. it's a title under a bed of petunias like a normal. pm showed the bq a parking citation. if confronted, you will say you are only here to deliver a message and then i'll put his shit up?
21:37:13 <elliott_> is this chrono trigger
21:37:16 <elliott_> i think someone changed it
21:37:19 <Vorpal> fungot, "Vorpal"
21:37:19 <fungot> Vorpal: that it makes a guest of it, much as the moon takes liberty. reason. justice. civility. edification. perfection.
21:37:24 <elliott_> Vorpal: check the style
21:37:28 <Vorpal> ^style
21:37:28 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:37:32 <Vorpal> yeah
21:37:34 <elliott_> thats not chrono trigger
21:37:36 <CakeProphet> fungot: what i slove? baby don 'thurt me
21:37:36 <fungot> CakeProphet: the farm country, where small white cottages dream between little hills, and which came indubitably from the crevice between floor and altar where norrys was scraping away the lichens.
21:37:39 <elliott_> ^style ct
21:37:39 <fungot> Selected style: ct (Chrono Trigger game script)
21:37:40 <Vorpal> elliott_, who did this deed
21:37:41 <elliott_> fungot: THAT SWORD
21:37:41 <fungot> elliott_: there! there it is! but by the time we're through with you, you'll be in danger. open hatch.
21:37:45 <elliott_> fungot: ALONE CAN'T
21:37:46 <fungot> elliott_: must think of a way to the ocean palace? to be king of the sewer! gribbit! there's the seed! amazing! you found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:37:48 <elliott_> fungot: STOP
21:37:48 <fungot> elliott_: it's time you jumped off this mortal coil... are you all right?
21:37:55 <elliott_> ill jump off YOUR mortal coil :(
21:38:04 <elliott_> ^style
21:38:04 <fungot> Available: agora* alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:38:05 <Vorpal> fungot, ...
21:38:05 <fungot> Vorpal: and whereas, agora has now become the actual indulgence circulation level ( aicl) is referred to as a percentage; and ( only if any) who has shown
21:38:05 <CakeProphet> fungot: boing
21:38:06 <fungot> CakeProphet: if that rule. this restriction to be bound by the scorekeepor to make another
21:38:08 <elliott_> agora is not ct
21:38:10 <elliott_> CakeProphet: cease
21:38:12 <elliott_> ^style ct
21:38:12 <fungot> Selected style: ct (Chrono Trigger game script)
21:38:13 <Vorpal> ^style ct
21:38:13 <fungot> Selected style: ct (Chrono Trigger game script)
21:38:15 <elliott_> fungot: that sword
21:38:15 <fungot> elliott_: from where does the hero alone have the power. " m, madam...! i am the master of war! i've seen all kinds of battles from here, step back, prometheus!
21:38:18 <elliott_> fungot: your sword
21:38:18 <fungot> elliott_: there! there it is!
21:38:20 <elliott_> fungot: my sword
21:38:20 <fungot> elliott_: there! there it is!
21:38:23 <elliott_> fungot: all our swords
21:38:24 <fungot> elliott_: by this time). " now just try. i've often amused myself that way. consider this platform as our stage. good fnord and exits on both sides, if you put " is" or " all", the wardeness chimed in.
21:38:29 <Vorpal> fungot, are belong to us
21:38:29 <fungot> Vorpal: " how ever would oo do a garden without one? we make each bed three mouses and a half long, and two mouses wide."
21:38:34 <Vorpal> ...
21:38:35 <Vorpal> what
21:38:36 <Vorpal> ^style
21:38:36 <fungot> Available: agora alice* c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:38:38 <Vorpal> ^style ct
21:38:38 <fungot> Selected style: ct (Chrono Trigger game script)
21:38:40 <Vorpal> stop it
21:38:41 <oerjan> fungot: shocking
21:38:41 <fungot> oerjan: you! take! we find!
21:38:46 <elliott_> fungot: carpal tunnel syndrome
21:38:46 <CakeProphet> fungot:
21:38:46 <fungot> CakeProphet: oh. fuck. yes. yes, i'll hold.
21:38:47 <fungot> elliott_: didn't you try the uninstaller? i imported your goddamn viewtiful joe or whatever and that game is like punishment from god. hey you ball eating sons of bitches: when you make an omelette, sometimes you've got to be fucking kidding meeee. and she said " noooo! we have no record of that pre-sell ticket!" and i was nuh-uh, " ice wand!" and they'd be all- brian?
21:38:50 <Vorpal> ^style
21:38:50 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa* sms speeches ss wp youtube
21:38:54 <elliott_> <fungot> CakeProphet: oh. fuck. yes. yes, i'll hold.
21:38:54 <fungot> elliott_: i'm really glad we're hanging out. in fact, one of the worst beatings i ever saw a man take was... he kept kicking my ass, why don't we just make a big boat, hook it up to you if you say anything else.
21:38:55 <elliott_> --chrono trigger
21:38:57 <Vorpal> ^style ct
21:38:57 <fungot> Selected style: ct (Chrono Trigger game script)
21:39:02 <Vorpal> ^style
21:39:03 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:39:11 <Vorpal> fungot, stop changing style
21:39:11 <fungot> Vorpal: i'd like to see that mystical sword for myself! geez! hurry!! chief okay!! get' em! 200g per night. care to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered!
21:39:17 <Vorpal> fungot, very good
21:39:18 <fungot> Vorpal: but cyrus! are you leaving! press the y button displays the time to drop by!? all the young must migrate to other planets...to repeat the cycle... favorite people here!" seeing you so happy! now there's that stuffed-shirt, cyrus!
21:39:21 <oerjan> fungot: WOULDN'T WE ALL
21:39:21 <fungot> oerjan: but, we are far outnumbered! over 1300 points! let your hair down! get crazy! i'm opening a stall in leene! i thought she ate too!!
21:39:27 <Vorpal> fungot, yes we are!
21:39:27 <fungot> Vorpal: we must do it to save you! who the heck are you?! c'mon!! you got the broken! the mountain of woe. it's likely that dalton came from the laboratories to the west?... yes! well then rest and relax! huh?
21:39:34 <Vorpal> fungot, well, thanks.
21:39:34 <fungot> Vorpal: from where does the hero alone have the power. " m, madam...! i am the master of war! i've seen all kinds of battles from here, step back, prometheus!
21:39:35 <CakeProphet> fungot: my hair is down and I am getting crazy.
21:39:35 <fungot> CakeProphet: shall we get back to the present? he's been known. we reptites will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's place...
21:39:39 <CakeProphet> fungot: sup
21:39:39 <fungot> CakeProphet: you are strong of will...! that's the pendant the gurus and miss you. in these bones, i shall return! by the way, the wings! now this is a way to the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call that the chrono trigger. it is r66-y? cool? who knows what would become of my mystics? i must win!
21:39:44 <Vorpal> fungot, yeah
21:39:44 <fungot> Vorpal: from where does the hero alone have the power. " m, madam...! i am the master of war! i've seen all kinds of battles from here, step back, prometheus! at the moonlight parade! this must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
21:39:51 <Vorpal> fungot, but what about the sword
21:39:51 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
21:39:54 <Vorpal> ...
21:39:58 <elliott_> Vorpal: /msg
21:40:00 <CakeProphet> fungot: sword sword sord sord sord dorf dorf sorf sworf dworf
21:40:00 <fungot> CakeProphet: your majesty! and queen. he and a friend left on a journey 10, then magic damage will be reduced by 10%. a star after any characteristic means it's at maximum strength! no matter what the price! it is, you idiot! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. i
21:40:01 <fungot> CakeProphet: but, we are far outnumbered!
21:40:12 <elliott_> fungot: q
21:40:13 <fungot> elliott_: from where does the hero alone have the power. " m, madam...! i am, are you?! c'mon!!
21:40:23 <Vorpal> fungot, ...
21:40:23 <fungot> Vorpal: and you call yourself a frog, and ayla... i will not betray my friends! see ya around! the trial! what has gotten away with this! a top secret document has been left behind? marle lucca
21:40:32 <CakeProphet> fungot: the hero alone has the power to cannot stop
21:40:32 <fungot> CakeProphet: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it?
21:40:40 <Vorpal> fungot, you are not doing the right loop...
21:40:40 <fungot> Vorpal: it's time you jumped off this mortal coil... mother must be the invention. hope it still leaves you hungry! here you are the only one thing we need to defeat you, lavos.
21:40:50 <Vorpal> fungot, or any loop at all atm
21:40:50 <fungot> Vorpal: but cyrus! are you leaving! lavos come soon! no! tell us about the masamune!
21:40:52 <elliott_> fungot: sord
21:40:52 <fungot> elliott_: it's time you jumped off this mortal coil...
21:40:59 <Vorpal> fungot, sword
21:40:59 <fungot> Vorpal: the masamune!!
21:41:04 <Vorpal> fungot, yes that is a sword
21:41:04 <fungot> Vorpal: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:41:15 <Vorpal> fungot, uh you said that line before didn't you?
21:41:15 <fungot> Vorpal: the knight spirit has. you came to see it?
21:41:20 <Vorpal> ...
21:41:22 <CakeProphet> fungot: I don't got no fun. :(
21:41:22 <fungot> CakeProphet: yes this is my second conversation i've done and they always give people the first like uh um it's some university i think it's okay
21:41:26 <Vorpal> ^style
21:41:27 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:41:36 <Vorpal> fungot, ...
21:41:36 <fungot> Vorpal: to the northwest of this cape. he took back the medal from the frog king. and i'd like to see that mystical sword for myself!
21:41:45 <Vorpal> fungot, well, fuck you
21:41:45 <fungot> Vorpal: we are looking, but well behaved! crono!! crono!!! the monster who kidnapped the princess to the castle! go downstairs if you must know, i really care... a time portal? what in the...! ozzie's stumped!
21:41:53 <CakeProphet> fungot: tognuf
21:41:53 <fungot> CakeProphet: by thy leave, crono?!! you brought back my cat! thank you, crono! crono...! there was nothing i could do! we must use? take off. get off! the name's bandeau. here to build the ocean palace?
21:41:55 <Vorpal> fungot, fuck ozzie too. Bastard he is
21:41:55 <fungot> Vorpal: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop, crono!
21:41:56 <elliott_> fungot: i wasnmnt talking to you
21:41:57 <fungot> elliott_: ( ( uh-huh))
21:41:58 <Vorpal> YES
21:42:02 <elliott_> fungot: i hate your lunches
21:42:03 <fungot> elliott_: but they also have twenty four hour deal to train a pilot that was a
21:42:03 <Vorpal> but it was cut short
21:42:05 <Vorpal> elliott_, ^
21:42:08 <Vorpal> <fungot> Vorpal: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop, crono!
21:42:08 <fungot> Vorpal: event touring what kind of an infringement of rights
21:42:10 <elliott_> CakeProphet: stop changing the style, btw
21:42:12 <elliott_> <fungot> Vorpal: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop, crono!
21:42:13 <fungot> elliott_: and um just a regular office worker of mine that's where she goes to a different school now mn
21:42:15 <elliott_> no
21:42:17 <elliott_> it
21:42:19 <elliott_> didnt loop
21:42:23 <elliott_> look
21:42:24 <Vorpal> elliott_, it looped a bit.
21:42:25 <CakeProphet> elliott_: how did I change it?
21:42:25 <elliott_> ", crono"
21:42:27 <elliott_> Vorpal: look
21:42:29 <elliott_> <elliott_> no
21:42:29 <Vorpal> elliott_, yes
21:42:31 <elliott_> <elliott_> it
21:42:33 <elliott_> <elliott_> didnt loop
21:42:35 <elliott_> <elliott_> look
21:42:37 <Vorpal> elliott_, it "looped a bit", not far enough
21:42:37 <elliott_> <fungot> elliott_: but they also have twenty four hour deal to train a pilot that was a
21:42:37 <fungot> elliott_: ( ( my name's fnord
21:42:39 <elliott_> <Vorpal> but it was cut short
21:42:41 <elliott_> <elliott_> ", crono"
21:42:47 <elliott_> not enough
21:42:49 <elliott_> CakeProphet: <fungot> CakeProphet: yes this is my second conversation i've done and they always give people the first like uh um it's some university i think it's okay
21:42:50 <fungot> elliott_: in the middle ages, sir slush!... ...oh well! come again! these are my friends! the king does not wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:42:52 <Vorpal> elliott_, well I'm out now
21:42:54 <elliott_> that's the telephone set
21:42:56 <elliott_> before it was homestuck
21:43:13 <CakeProphet> elliott_: but how did I change the style?
21:43:18 <elliott_> CakeProphet: /msg
21:43:20 <Vorpal> CakeProphet, in /msg
21:43:21 <CakeProphet> >_> no?
21:43:25 <elliott_> >_> yes
21:43:27 <Vorpal> someone else then?
21:43:34 <elliott_> no
21:43:40 <Vorpal> elliott_, how do you know
21:43:46 <CakeProphet> though I like how I'm automatically targeted as such. :P
21:43:58 <CakeProphet> maybe it was.......
21:44:01 <elliott_> Vorpal: he pasted something from fungot in /msg earlier, we're the ones telling him to stop
21:44:02 <fungot> elliott_:/ blue spaces in/ skull :) dogs. since writing/ first part :) his duty to state everything in/ worst point :) view, if confirmed, would be equally convenient; but if you call a tree or plant an individual, you have much to answer for; i never received so much praise, and their points are likewise used in attack. sir philip egerton also informs me that/ damaras are likewise fond :) keeping pets./ indians generally have
21:44:04 <elliott_> ais523 wouldn't do that, nor would oerjan
21:44:05 <CakeProphet> someone who thought we were doing something stupid
21:44:07 <elliott_> everyone else is silent
21:44:17 <Vorpal> ^style
21:44:17 <Phantom_Hoover> ^style
21:44:17 <fungot> Available: agora alice c64 ct darwin* discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:44:17 <fungot> Available: agora alice c64 ct darwin* discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:44:21 <Vorpal> ^style ct
21:44:21 <fungot> Selected style: ct (Chrono Trigger game script)
21:44:28 <Phantom_Hoover> Darwin... didn't use smileys.
21:44:35 <elliott_> Phantom_Hoover: Yes, he did.
21:44:39 <Vorpal> Phantom_Hoover, known bug
21:44:41 <elliott_> Have you ever _read_ Darwin?
21:44:46 <Phantom_Hoover> elliott_, yes.
21:44:53 <CakeProphet> I used /msg -> I'm talking here -> ??? -> I changed the styles
21:44:54 <Vorpal> ^style
21:44:54 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:45:02 <elliott_> Phantom_Hoover: Clearly not closely enough.
21:45:10 <elliott_> CakeProphet: you used /msg to fungot
21:45:14 <elliott_> and also are the kind of person to do that anyway
21:45:47 <elliott_> SO NAAAAAH
21:46:34 <CakeProphet> I'm hurt. ;_;
21:47:18 <Phantom_Hoover> fungot, who is the real culprit?????
21:47:20 <Phantom_Hoover> AHA HE IS SILENT ON THE MATTER
21:47:21 <fungot> Phantom_Hoover: mr president, this morning we discussed employment in the report, mr president, first of all, it was a clear lack of democratic checks and balances, the efficient functioning of each institution contributes to the political criteria, in particular, have come out of the mire. the union must send out a message of integration and the foundation intend to draw up a comparative study between religious freedom in turk
21:47:38 <Phantom_Hoover> fungot, am I president.
21:47:40 <fungot> Phantom_Hoover: the council would not even convince a child that the united nations conference in september? in what way they could support a process of confrontation in the budgetary process and in making these auditions more systematic. furthermore, until we have the belgrade parliament in flames we know what giving a certain message in a certain way means. much more needs to be made, for example in the food industry, the nat
21:47:45 <Vorpal> ^style ct
21:47:45 <fungot> Selected style: ct (Chrono Trigger game script)
21:47:48 <Vorpal> fungot, well
21:47:48 <fungot> Vorpal: you! take! we find!
21:47:53 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:47:53 <fungot> elliott_: are you a man, if there weren't evil in this kingdom to you! eat! fun!
21:47:54 <Vorpal> fungot, and we find a sword?
21:47:54 <fungot> Vorpal: by thy leave, crono?!! you brought back my cat! thank you, crono!
21:47:55 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:47:55 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:47:55 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:47:55 <fungot> elliott_: need a clone? the magician, nolstein bekkler! executing program. please let me go... put me out?! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have? transform! this trading house. it's the kind! i've decided to stay with these humans! you're a traitor! you're not our king! but, we are far outnumber
21:47:56 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:47:56 <fungot> elliott_: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
21:47:56 <fungot> elliott_: are you a man, if there weren't evil in this world are places like that. a peaceful. hah! you think you are? coming and going out! he's really a tricycle! pass him!
21:47:56 <fungot> elliott_: is the gate key okay!! get' em! 200g per night. care to stay with these humans! you're a traitor! you're not our king! but, we are far outnumbered! thank you, crono!
21:47:56 <elliott_> fungot: ojisdfjoicsoimfdojisdf
21:48:01 <Vorpal> fungot, yeah
21:48:01 <fungot> Vorpal: w278 from a command to be `auto' or `resume' past the last location removed from anywhere in the distribution directory works; it is not documented here ( see below). the other compiler; c-intercal uses the intercal link intrudes on the control flow statements must be one decimal digit long. a rightshift can much more easily be done ( for instance
21:48:04 <Vorpal> no
21:48:05 <elliott_> fungot: hi im hi
21:48:06 <fungot> elliott_: the two steps into one large shift.)
21:48:08 <elliott_> fungot: hi im hi
21:48:08 <Vorpal> ^style
21:48:08 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic* irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:48:08 <fungot> elliott_: ( this is a marker is represented as a variable in other modern intercal compilers, into bailing out at compile time if it works. all other threads, the compiler can't figure out where it's ended up, it doesn't need to produce their own custom errors at run time ( if translating to c-intercal, except in the case of error).
21:48:12 <elliott_> CakeProphet: .
21:48:13 <Vorpal> ^style ct
21:48:13 <fungot> Selected style: ct (Chrono Trigger game script)
21:48:33 <Vorpal> ^style
21:48:33 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:48:38 <Vorpal> fungot, ...
21:48:38 <fungot> Vorpal: you! take! we find! who the heck are you?! c'mon!!
21:48:39 <ais523> heh, the INTERCAL style was pinging me
21:48:44 <Vorpal> ais523, how?
21:48:55 <ais523> I have a stalkword on "INTERCAL"
21:48:56 <Phantom_Hoover> Vorpal, it says "intercal".
21:49:06 <Vorpal> ais523, ah
21:49:09 <Vorpal> ^style
21:49:09 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:49:18 <Vorpal> fungot, ...
21:49:18 <fungot> Vorpal: as long as you keep crono in your heart, the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:49:20 <monqy> what are you doing to fungot ;_;
21:49:20 <fungot> monqy: after all, it is a theory that day and night is caused by the french revolution was produced by the commission of so fearful a mistake? did the right honourable baronet, and that
21:49:39 <Vorpal> monqy, we are trying to get it to produce the "that sword alone can't stop" loop
21:49:41 <Phantom_Hoover> fungot, day and night is one of the noted achievements of the French Revolution, yes.
21:49:42 <fungot> Phantom_Hoover: you! take! we find! pipe down! i'll tell you a story, right! right. wrong!
21:49:44 <Vorpal> fungot, ...
21:49:44 <fungot> Vorpal: the masamune!
21:49:45 <elliott_> fungot: ja
21:49:46 <fungot> elliott_: your majesty! and queen. he and a friend left on a journey 10. all functions are down... got the terra arm and the crisis arm! found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:49:51 <Vorpal> fungot, yes what about the masamune?
21:49:52 <fungot> Vorpal: we must do it to save you! who the heck are you?! c'mon!! empty!
21:50:02 <Vorpal> fungot, fuck you
21:50:02 <fungot> Vorpal: as long as you keep crono in your heart, the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:50:05 <elliott_> fungot: im stalk wor
21:50:05 <fungot> elliott_: but cyrus! are you leaving! thou art and science... all to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him? that kino guy!
21:50:19 <Vorpal> tricycle? I don't remember that
21:50:23 <Phantom_Hoover> fungot, he's really a tricycle?
21:50:23 <fungot> Phantom_Hoover: but, we are far outnumbered! fu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu, hu
21:50:25 <elliott_> fungot: that sword
21:50:26 <fungot> elliott_: we are looking, but well behaved! crono!! crono!!
21:50:28 <Vorpal> ^style
21:50:28 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:50:31 <Vorpal> what "hu" loop
21:50:32 <Vorpal> wtf is that
21:50:37 <monqy> fu, hu, hu, hu, hu, hu
21:50:42 <Phantom_Hoover> fungot, hu?
21:50:42 <fungot> Phantom_Hoover: must think of a way to the ocean palace! and if you wish! we shall hold this position to the last man! big fire where lavos fall from sky! we no can call you " knight cyrus fell while protecting our kingdom from magus. i'd stay away!
21:50:47 <elliott_> fu, hu, hu
21:50:51 <elliott_> hu hu hu
21:50:52 <Phantom_Hoover> fungot
21:50:52 <fungot> Phantom_Hoover: oznaczono jako spam oh...my...god. the aircraft. dumbass!
21:50:57 <Vorpal> elliott_, that is a nice loop though
21:50:58 <Phantom_Hoover> what
21:51:03 <elliott_> that's not ct
21:51:03 <Vorpal> ^style
21:51:04 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube
21:51:05 <elliott_> CakeProphet:
21:51:07 <elliott_> CakeProphet:
21:51:10 <elliott_> CakeProphet:
21:51:11 <elliott_> CakeProphet:
21:51:13 <elliott_> CakeProphet:
21:51:15 <elliott_> CakeProphet:
21:51:16 <Vorpal> fungot, yes?
21:51:16 <fungot> Vorpal: but cyrus! are you leaving! didn't you create him? that kino guy!
21:51:17 <elliott_> CakeProphet:
21:51:23 <elliott_> Vorpal: I corrected it
21:51:39 <Vorpal> elliott_, which style was "oznaczono jako spam"
21:51:50 <Vorpal> fungot, hi
21:51:50 <fungot> Vorpal: that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone can't stop! that sword alone
21:51:52 <Vorpal> YES!
21:51:53 <CakeProphet> elliott_: fuck you I'm not even paying attention.
21:52:00 <elliott_> ais523: is it yoj
21:52:02 <elliott_> ais523: is it you
21:52:09 <Patashu> that sword alone can't stop!
21:52:11 <Phantom_Hoover> fungot, is it ais????????
21:52:11 <fungot> Phantom_Hoover: i also thought so. then i go her house myself ba... i go buangkok i will b at simei but i feel like bring clothe eat in hall. cya!
21:52:12 <elliott_> (ais can't lie)
21:52:13 <Vorpal> elliott_, we achieved our goal!
21:52:14 <Patashu> why does it do that
21:52:18 <ais523> elliott_: ?
21:52:24 <elliott_> ais523: are you the one messing with the fungot style in private
21:52:24 <fungot> elliott_: after i make u smile becoz someone still loves to see u smiling!! lub u! go sleep dear. nite nite. doing the counting of kills me that u don't care enough to stop me...
21:52:27 <ais523> elliott_: no
21:52:32 <elliott_> Patashu: is it you?
21:52:36 <ais523> I wasn't looking at the channel, as I said
21:52:38 <Patashu> ?
21:52:46 <elliott_> ais523: you could have been looking at a /query fungot instead :)
21:52:46 <fungot> elliott_: can i use short form i left in your pigeon hole only. thepain on and miss u alot. how? hee. i wan to faster finish ur tut. no time tdy i went to work. even my dad asked mark if he was really gonna ' let' me keep me also some cafe to get a cd
21:52:49 <oerjan> <elliott_> ais523 wouldn't do that, nor would oerjan <-- hey, i _might_.
21:52:52 <elliott_> ok it's CakeProphet then
21:52:59 <monqy> I didn't do it either
21:53:01 <elliott_> oerjan: only if we were annoying you and that's impossible
21:53:01 <Vorpal> oerjan, but did you
21:53:25 <elliott_> oerjan: did youuuuuu
21:53:33 <elliott_> oerjan: DID YOU
21:53:41 <elliott_> i don't think he'd set it to homestuck if he was doing that anyway
21:53:44 <elliott_> it was probably CakeProphet
21:54:40 <elliott_> now that we've cleared that up let us hug fungot =
21:54:41 <fungot> elliott_: let's not start that again."
21:54:45 <elliott_> :(
21:54:52 <CakeProphet> lol
21:54:53 <Phantom_Hoover> fungot, don't you like hugs.
21:54:54 <fungot> Phantom_Hoover: instead of a list of church numerals representing the expression in the given time. ( in haskell,
21:55:33 <monqy> ^style
21:55:34 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc* jargon lovecraft nethack pa sms speeches ss wp youtube
21:55:46 <Phantom_Hoover> CakeProphet, sto pit
21:55:46 <CakeProphet> elliott_: I see how it is.
21:56:08 <CakeProphet> elliott_: Y U GOT2 JUDGE HOMIE?
21:56:16 <elliott_> CakeProphet: there is literally nobody else it could be, stop it, it's annoying
21:56:22 <CakeProphet> I TOUGHT WE FRANZ
21:56:39 <Phantom_Hoover> fungot, are we franz?
21:56:40 <fungot> Phantom_Hoover: a link at the top of the page. --user:pnoble805pat 10:00, 5 november 2007 ( utc)
21:56:45 <elliott_> that's also not irc.
21:56:48 <Phantom_Hoover> friends!
21:56:50 <oerjan> elliott_: no, but i _might_
21:56:59 <Vorpal> `addquote <elliott_> now that we've cleared that up let us hug fungot = <fungot> elliott_: let's not start that again."
21:57:00 <fungot> Vorpal: use the ' ' ' delete later'". the root ' rb doesn't have anything to do with the island. extra leaders chamberlain and fnord should be removed. fnord 06:40, 6 jan 2005 ( utc
21:57:02 <HackEgo> 634) <elliott_> now that we've cleared that up let us hug fungot = <fungot> elliott_: let's not start that again."
21:57:29 <elliott_> `delquote 634
21:57:31 <HackEgo> ​*poof*
21:57:33 <elliott_> violates international quoting standards
21:57:45 <Vorpal> elliott_, what standards are those
21:57:45 <Phantom_Hoover> `addquote <elliott_> now that we've cleared that up let us hug fungot = <fungot> elliott_: let's not start that again."
21:57:46 <fungot> Phantom_Hoover: sorry, i mean fnord. this is to recognize that ' ' '
21:57:47 <HackEgo> 634) <elliott_> now that we've cleared that up let us hug fungot = <fungot> elliott_: let's not start that again."
21:57:53 <Vorpal> elliott_, besides it *was* funny
21:58:09 <oerjan> intergalactic quoting standards of DOOM
21:58:10 <elliott_> violates intl. quoting standards, exercise 9: tell me which
21:58:10 <Vorpal> see, Phantom_Hoover agreed
21:58:21 <Phantom_Hoover> Vorpal, SPOT THE DIFFERENCE
21:58:37 <Vorpal> Phantom_Hoover, extra space, why
21:58:45 <Phantom_Hoover> Vorpal, because fungot tell him why
21:58:46 <fungot> Phantom_Hoover: ninja-to: a short neck, along with the monster was responsible for the guard. each of the race mentioned above.
21:59:03 <Vorpal> Phantom_Hoover, because nethack??
21:59:08 <oerjan> it's easy to spot the difference; it is in a different spot
21:59:12 <Vorpal> ^style
21:59:12 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack* pa sms speeches ss wp youtube
21:59:31 <oerjan> fungotto-san
21:59:31 <fungot> oerjan: they say that kicking a heavy statue is really good. the food, not because they ever get tired. fresh whole tripe calls for a long, single-edged samurai sword with a general a zen buddhism koan)
21:59:47 <elliott_> im a shfungotejd
21:59:48 <fungot> elliott_: what a total piece of shite.
21:59:54 <elliott_> that's not nethack.
21:59:58 <monqy> ^style
21:59:58 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck ic irc jargon lovecraft nethack pa sms speeches ss wp youtube*
21:59:59 <Phantom_Hoover> fungot, that is highly irresponsible nethack advice.
22:00:00 <fungot> Phantom_Hoover: the go daddy ad, firth is audi ad.
22:00:01 <oerjan> fungot is a fun shoggoth
22:00:02 <fungot> oerjan: it's official, britain's definitely got talent but could learn the real her is still angry that president bush is ten times better than that.
22:00:09 <monqy> help whos styleing
22:00:12 <Vorpal> Phantom_Hoover, are you changing the style?
22:00:13 <monqy> is it cake problet
22:00:16 <elliott_> CakeProphet: remember that /query window you made with fungot? please go there, select the whole irc window, and paste it into a pastebin without scrolling
22:00:17 <fungot> elliott_: looks like captain price to be a hard claim to back up the info yourself: look up a bit it would be too supernatural? meme pas foutu de faire un simple copier coller... ca me saoule des blaireaux comme ca!!
22:00:21 <elliott_> including all the irssi interface elements
22:00:26 <elliott_> thanks, expected in under sixty seconds
22:00:28 <Vorpal> Phantom_Hoover, rumours.false
22:00:34 <CakeProphet> elliott_: it's been gone for several minutes now.
22:00:47 <elliott_> CakeProphet: no it hasn't
22:00:56 <CakeProphet> ?
22:01:04 <elliott_> the style changed more recently than that
22:01:08 <Vorpal> elliott_, I think Phantom_Hoover did it
22:01:09 <CakeProphet> lol
22:01:12 <CakeProphet> circular logic is circular.
22:01:16 <elliott_> Vorpal: it isn't him
22:01:23 <Vorpal> elliott_, how can you be so sure?
22:01:38 <elliott_> because he doesn't have the dedication to do something for that long
22:01:45 <Vorpal> heh
22:01:51 <Vorpal> elliott_, that excludes you too I guess
22:02:01 <oerjan> also me
22:02:05 <elliott_> ok it was Phantom_Hoover
22:02:07 <monqy> fungot should say who changed the style....
22:02:07 <fungot> monqy: by the magnitude of posts here alone, not about the video... to me.
22:02:08 <elliott_> im betray
22:02:13 <Vorpal> elliott_, it was him?
22:02:17 <elliott_> apparently :P
22:02:17 <Vorpal> hm
22:02:22 <Vorpal> elliott_, he told you?
22:02:29 <elliott_> yes im EXPOSE THE TRUTH
22:02:31 <elliott_> i forgot that <elliott_> because he doesn't have the dedication to do something for that long
22:02:38 <elliott_> doesnt apply if the goal is getting me to make myself look like an idiot :D
22:02:55 <Vorpal> elliott_, I thought you were like friends?
22:02:59 <Phantom_Hoover> I'd've stopped if he hadn't started accusing CakeProphet.
22:03:00 <elliott_> hey fizzie when someone changes the style in fungot you should make it message the channel and append the sender of the message thanxe.....................
22:03:01 <fungot> elliott_: by the best
22:03:02 <oerjan> so it has to be a sufficiently lofty goal, check
22:03:06 <Vorpal> Phantom_Hoover, XD
22:03:07 <Phantom_Hoover> It was so funny I couldn't help myself.
22:03:11 <elliott_> Vorpal: you don't understand modern teenager friendship. you're just too out of touch bro
22:03:13 <Vorpal> @slap Phantom_Hoover
22:03:13 * lambdabot pulls Phantom_Hoover through the Evil Mangler
22:03:19 <Vorpal> ooh nice
22:03:24 <CakeProphet> elliott_: I TOUGHT WE /FRANZ.=&==/
22:03:28 <Phantom_Hoover> @slap CakeProphet
22:03:28 <lambdabot> go slap CakeProphet yourself
22:03:29 <Vorpal> elliott_, ah perhaps
22:03:30 <CakeProphet> :(
22:03:37 <Phantom_Hoover> @slap lambdabot
22:03:37 * lambdabot pokes lambdabot in the eye
22:03:49 <Vorpal> uh he needs to see a doctor
22:03:51 <Phantom_Hoover> @vixen Let that be a lesson to you.
22:03:51 <lambdabot> what are you
22:03:55 <CakeProphet> > ':':fix('(':)
22:03:56 <lambdabot> ":(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((...
22:04:00 <elliott_> @vixen
22:04:00 <lambdabot> You complete me
22:04:04 <elliott_> @vixen indeed
22:04:04 <lambdabot> Most guys don't understand me, but we really seem to connect.
22:04:05 <Phantom_Hoover> @vixen Clue's in the name.
22:04:05 <lambdabot> My instant messenger doesn't work.
22:04:12 <elliott_> I thought vixen replied in lowercase
22:04:27 <elliott_> ?yhjulwwiefzojcbxybbruweejw
22:04:27 <lambdabot> "\"#$%&'()*+,\""
22:04:37 -!- FireFly has quit (Quit: FireFly).
22:04:42 <CakeProphet> @vixen what is love?
22:04:42 <lambdabot> let's don't talk about that
22:04:46 <CakeProphet> elliott_: what just happened there.
22:04:46 <Vorpal> <elliott_> ?yhjulwwiefzojcbxybbruweejw <-- what?
22:04:49 <monqy> ?yhjulwwiefzojcbxybbruweejw
22:04:49 <lambdabot> Exception: <<loop>>
22:04:50 <Phantom_Hoover> @vixen What is grammar?
22:04:50 <lambdabot> why don't you guess?
22:05:02 <elliott_> Vorpal: yhjulwwiefzojcbxybbruweejw
22:05:08 <Vorpal> elliott_, what is that
22:05:09 <Phantom_Hoover> ?yhjulwwiefzojcbxybbruweejw
22:05:09 <lambdabot> Exception: <<loop>>
22:05:15 <Vorpal> elliott_, and how can you remember it
22:05:18 <elliott_> Vorpal: yhjulwwiefzojcbxybbruweejw
22:05:19 <oerjan> @vixen Are you a fish?
22:05:19 <lambdabot> i think you know the answer to that one, silly
22:05:20 <Phantom_Hoover> @vixen Why don't you work.
22:05:20 <lambdabot> What is your favorite cheese? Mines baloney.
22:05:25 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:05:29 <Vorpal> ?abc
22:05:29 <lambdabot> Maybe you meant: arr ask bf ghc rc src
22:05:32 <Vorpal> ??
22:05:34 <Vorpal> ?what
22:05:34 <lambdabot> @where <key>, return element associated with key
22:05:39 <Vorpal> ?.....asdkwahgakdsjf
22:05:39 <lambdabot> Unknown command, try @list
22:05:42 <Vorpal> @list
22:05:42 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
22:05:42 <elliott_> yhjulwwiefzojcbxybbruweejw
22:05:56 <Vorpal> ?yhjulwwiefzojcbxybbruweejw
22:05:56 <lambdabot> "\""
22:05:58 <Vorpal> ?yhjulwwiefzojcbxybbruweejw
22:05:58 <lambdabot> "\"#$%&'()*+,\""
22:06:00 <CakeProphet> @vixen I am not ral gud at dayts what is the dayt
22:06:00 <lambdabot> nothing good is on TV
22:06:01 <Vorpal> okay...
22:06:03 <elliott_> ?yhjulwwiefzojcbxybbruweejw
22:06:03 <lambdabot> Just 'J'
22:06:03 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:06:04 <elliott_> ?yhjulwwiefzojcbxybbruweejw
22:06:04 <lambdabot> Exception: <<loop>>
22:06:09 * Phantom_Hoover → sleep
22:06:10 -!- Phantom_Hoover has quit (Quit: Leaving).
22:06:10 <Vorpal> elliott_, wtf *is* yhjulwwiefzojcbxybbruweejw for
22:06:13 <elliott_> ?yhjulwwiefzojcbxybbruweejw
22:06:13 <lambdabot> Exception: <<loop>>
22:06:14 <elliott_> ?yhjulwwiefzojcbxybbruweejw
22:06:14 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
22:06:15 <monqy> who was yhjulwwiefzojcbxybbruweejw
22:06:19 <elliott_> im yhjulwwiefzojcbxybbruweejw
22:06:20 -!- elliott_ has changed nick to yhjulwwiefzojcbx.
22:06:27 <yhjulwwiefzojcbx> ?yhjulwwiefzojcbxybbruweejw
22:06:27 <lambdabot> "\""
22:06:28 <Vorpal> no you aren't
22:06:30 -!- yhjulwwiefzojcbx has changed nick to elliott.
22:06:33 <Vorpal> you are yhjulwwiefzojcbx
22:06:38 <Vorpal> which is shorter
22:06:38 -!- elliott has quit (Changing host).
22:06:38 -!- elliott has joined.
22:06:41 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:41 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:41 <lambdabot> "\""
22:06:41 <lambdabot> "\"#$%&'()*+,\""
22:06:41 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:42 <lambdabot> "\""
22:06:42 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:42 <lambdabot> Exception: <<loop>>
22:06:42 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:42 <lambdabot> "\"#$%&'()*+,\""
22:06:47 -!- CakeProphet has changed nick to Hammurabi.
22:06:58 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:06:58 <lambdabot> "\"#$%&'()*+,\""
22:07:00 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:07:00 <lambdabot> "\"#$%&'()*+,\""
22:07:00 -!- Hammurabi has changed nick to Hammerabi.
22:07:01 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:07:01 <lambdabot> Just 'J'
22:07:02 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:07:02 <lambdabot> "\"#$%&'()*+,\""
22:07:03 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:07:03 <lambdabot> Exception: <<loop>>
22:07:04 <elliott> ?yhjulwwiefzojcbxybbruweejw
22:07:04 <lambdabot> "\"\\\"\\\\\\\"\\\\\\"
22:07:06 <elliott> ?quote
22:07:06 <lambdabot> shachaf says: boost::lambda: The ultimate error message.
22:07:25 -!- Hammerabi has changed nick to Hammurabi.
22:07:28 <elliott> ?quote
22:07:28 <lambdabot> LinusTorvalds says: The slogan of Subversion for a while was 'CVS done right', or something like that, and if you start with that kind of slogan, there's nowhere you can go. There is no way to do
22:07:28 <lambdabot> CVS right.
22:07:37 <monqy> ?v
22:07:37 <lambdabot> Just 'J'
22:07:39 <monqy> ?v
22:07:40 <lambdabot> Just 'J'
22:07:40 <Hammurabi> hi.
22:07:42 <monqy> ?v
22:07:42 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
22:07:44 <Vorpal> ?v
22:07:44 <lambdabot> Just 'J'
22:07:47 <Vorpal> ?v
22:07:47 <lambdabot> Exception: <<loop>>
22:07:49 <Vorpal> well
22:07:53 <Hammurabi> ?sup
22:07:53 <lambdabot> Maybe you meant: bug map run slap src
22:08:00 <Hammurabi> ?y
22:08:00 <lambdabot> Maybe you meant: yarr yhjulwwiefzojcbxybbruweejw yow . ? @ v
22:08:06 <Hammurabi> ?yow
22:08:06 <lambdabot> Couldn't find fortune file
22:08:06 <elliott> ?quote
22:08:06 <lambdabot> megeria says: i am so new to haskell that i still have the new car smell
22:08:12 <monqy> ?keal
22:08:12 <lambdabot> the [nsa] even make light green both ways once
22:08:14 <olsner> @yhjulwwiefzojcbxybbruweejw
22:08:14 <lambdabot> "\""
22:08:25 <elliott> ?/ pl keal
22:08:25 <lambdabot> Maybe you meant: . ? @ v
22:08:27 <elliott> ?. pl keal
22:08:27 <lambdabot> today's 24 hour project was supposed to be logical overloading using plegm method
22:08:33 <elliott> ?. pl v
22:08:33 <lambdabot> "\"#$%&'()*+,\""
22:08:36 <elliott> ?quote
22:08:36 <lambdabot> mattam says: [Monads are] much more elegant [than soccer] in general.
22:09:03 <elliott> ?quote
22:09:03 <lambdabot> Plugin `quote' failed with: getRandItem: empty list
22:09:07 <elliott> :'(
22:09:11 <elliott> not good
22:09:22 <monqy> ggood quote
22:09:26 <elliott> ?quote
22:09:27 <lambdabot> Plugin `quote' failed with: getRandItem: empty list
22:09:28 <elliott> ?quote
22:09:28 <lambdabot> Data.Numbers.Primes says: The number 6 is a good value to pass to this function.
22:09:44 <Vorpal> aha I found out the story of yhjulwwiefzojcbxybbruweejw
22:09:53 <monqy> ?help yhjulwwiefzojcbxybbruweejw
22:09:53 <lambdabot> V RETURNS!
22:09:58 <monqy> ?help v
22:09:58 <lambdabot> let v = show v in v
22:09:59 <Vorpal> monqy, by googling
22:10:12 <monqy> the first result was someone telling sgeo to do ?help on it right
22:10:15 <monqy> or was that just for me
22:10:19 <Vorpal> monqy, further down
22:10:26 <monqy> im lazey
22:10:34 <Vorpal> monqy, apperently v used to be an internal variable that did strange things when printed when evaluating expressions
22:10:41 <elliott> "strange things"
22:10:41 <Vorpal> so they renamed that variable to yhjulwwiefzojcbxybbruweejw
22:10:44 <elliott> Vorpal discovers fix
22:10:52 <Vorpal> elliott, hm?
22:11:16 <Vorpal> elliott, I'm just checking what I found by googling
22:11:17 <olsner> Vorpal: fix
22:11:21 <Vorpal> elliott, http://itarchive.org/7410/116
22:11:29 <Vorpal> olsner, I see
22:11:41 <Vorpal> this could be wrong though
22:12:00 <olsner> that looks like a mangled copy of the #haskell irc logs
22:12:15 <Vorpal> olsner, yeah was the only one I found describing it though
22:12:15 <elliott> hmm, I've forgotten how to write N3
22:12:25 <Vorpal> elliott, press N then press 3
22:12:29 <olsner> Vorpal: the original logs from then are still kept by some log keepers
22:12:48 <Vorpal> olsner, well anyway, is that story behind that command correct?
22:12:53 <elliott> Vorpal: no
22:12:57 <Vorpal> elliott, ah
22:13:03 <elliott> to answer and question
22:13:09 <Vorpal> elliott, so the real story was?
22:13:11 <elliott> > let v = take 9 (show v) in v
22:13:12 <lambdabot> "\"\\\"\\\\\\\"\\\\"
22:13:15 <elliott> > let v = Just (head (show v)) in v
22:13:16 <lambdabot> Just 'J'
22:13:16 <Vorpal> ah
22:13:23 <elliott> > let v = take 9 [head (show v)..] in v
22:13:24 <lambdabot> "\"#$%&'()*"
22:13:33 <Vorpal> :t v
22:13:33 <lambdabot> Expr
22:13:37 <elliott> irrelevant
22:13:39 <oerjan> ...i think it would be > show v, then
22:13:45 <Vorpal> > show v
22:13:46 <elliott> oerjan: yes
22:13:46 <oerjan> argh wrong window
22:13:46 <lambdabot> "v"
22:13:56 <Vorpal> > show q
22:13:57 <lambdabot> "q"
22:13:59 <Vorpal> hm
22:14:01 <oerjan> oh well
22:14:03 <elliott> > x+9 / q
22:14:04 <lambdabot> x + 9 / q
22:14:07 <elliott> > sum [x+9 / q..]
22:14:08 <lambdabot> *Exception: not a number
22:14:15 <elliott> > sum (take 9 [(x+9 / q)..])
22:14:16 <lambdabot> *Exception: not a number
22:14:17 <oerjan> Vorpal: that feature is long since gone
22:14:18 <elliott> huh
22:14:39 <monqy> > yhjulwwiefzojcbxybbruweejw
22:14:40 <lambdabot> Not in scope: `yhjulwwiefzojcbxybbruweejw'
22:14:42 <monqy> :'(
22:14:55 <Hammurabi> esoteric is having a tantrum spiral.
22:15:00 <Vorpal> oerjan, right. But what did it do actually
22:15:03 <elliott> A libray for generating circuits for Xilinx FPGAs with layout.
22:15:08 <elliott> oh coooOOOOoooooOOOooOOOooOOOooOOoooOOOooOOOooOOOoooOOooOOOoooOOoooooooOOoooooooooooooOOOooooooooOOOooooOOoooool
22:15:13 <elliott> maybe ill actually write redsynth
22:15:19 <elliott> Vorpal: i told you
22:15:24 <Vorpal> elliott, fix?
22:15:26 <elliott> <elliott> > let v = take 9 (show v) in v
22:15:26 <elliott> <lambdabot> "\"\\\"\\\\\\\"\\\\"
22:15:26 <elliott> <elliott> > let v = Just (head (show v)) in v
22:15:26 <elliott> <lambdabot> Just 'J'
22:15:26 <elliott> <Vorpal> ah
22:15:27 <elliott> <elliott> > let v = take 9 [head (show v)..] in v
22:15:28 <Vorpal> elliott, that was all?
22:15:29 <elliott> <lambdabot> "\"#$%&'()*"
22:15:32 <elliott> Vorpal: ffs
22:15:34 <elliott> lambdabot code:
22:15:51 <elliott> result <- run_haskell_file ("let v = " ++ expr ++ " in print v")
22:15:53 <elliott> send_to_irc result
22:15:57 <Vorpal> elliott, aha
22:16:00 <elliott> <me> > show v
22:16:05 <elliott> <lambdabot> "\"\\\"...
22:16:11 <Vorpal> elliott, right. XD
22:18:40 <elliott> * SimonM: People don't seem to believe me when I say this. In
22:18:40 <elliott> retrospect we shouldn't have called it forkOS, we should have
22:18:40 <elliott> called it forkReallyExpensiveOnlyNecessaryForCallingOpenGL_IO.
22:18:40 <elliott> good quote
22:21:17 <Hammurabi> > v + 1
22:21:18 <lambdabot> v + 1
22:22:17 <oerjan> > v ** v
22:22:18 <lambdabot> v**v
22:22:27 <Hammurabi> > v^v
22:22:29 <oerjan> > fix (v**)
22:22:32 <lambdabot> mueval-core: Time limit exceeded
22:22:33 <lambdabot> v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**v**...
22:22:44 <Hammurabi> > v^4
22:22:46 <lambdabot> v * v * (v * v)
22:22:48 <oerjan> Hammurabi: *MWAHAHAHA* (aka, that's why i didn't use that)
22:22:48 <ais523> elliott: I take it forking into multiple processes in Haskell is mostly a bad idea because there are more idiomatic ways to do the equivalent of threads?
22:23:07 <elliott> ais523: you don't know what forkOS does :)
22:23:15 <ais523> no, I don't
22:23:22 <elliott> well, your question makes assumptions about what forkOS does
22:23:25 <ais523> I'm just asking a vaguely related question
22:23:31 <ais523> it implies it makes assumptions
22:23:36 <elliott> forkIO creates a spark; forkOS creates an OS thread
22:23:37 <Hammurabi> isn't forkOS basically forking an OS thread?
22:23:40 <Hammurabi> yes,
22:23:41 <ais523> but doesn't explicitly create any
22:23:43 <elliott> OS threads are incredibly slow
22:23:46 <elliott> sparks are nearly free
22:23:47 -!- Hammurabi has changed nick to CakeProphet.
22:23:59 <oerjan> Hammurabi: ** is a method, so can be redefined for the Expr type, while ^ is a function which requires its second argument to actually work as a proper Integral
22:24:01 <elliott> forkOS is only required when using thread-local storage via the FFI, or when a library demands all calls be made from one thread
22:24:09 <elliott> e.g. SDL, OpenGL
22:24:11 <elliott> , GTK
22:24:24 <CakeProphet> oerjan: yes I understand that I just wasn't sure what the result of ^ would be.
22:24:24 <elliott> and only for that one thread
22:24:31 <ais523> most of libc, in fact
22:24:35 <CakeProphet> > pred v
22:24:35 <lambdabot> pred v
22:24:47 <ais523> do sparks sometimes translate into OS threads? or are they always done internally?
22:24:52 <elliott> <ais523> most of libc, in fact
22:24:54 <elliott> no?
22:25:01 <elliott> ais523: and sparks are basically threadpooled
22:25:16 <ais523> there are all those _r functions
22:25:22 <elliott> oh, hmm
22:25:26 <elliott> no, threads are separate
22:25:36 <elliott> yeah, there's a thread pool, /and/ a spark pool
22:25:37 <ais523> to replace non-threadsafe non-recursionsafe libc functions
22:25:43 <elliott> ais523: here's a pretty diagram: http://i.imgur.com/f57Hm.png
22:25:53 <oerjan> elliott: forkIO doesn't create just a spark, par does that. afair.
22:25:59 <elliott> oerjan: see two lines ago
22:26:07 <elliott> ais523: and "As a result sparks are very cheap (you might have billions of them in a program, while you probably won't have more than a million Haskell threads, and less than a dozen OS threads on half a dozen cores)."
22:26:11 <ais523> can you communicate between sparks?
22:26:21 <ais523> my guess is no
22:26:26 <elliott> no, I think that's the main thing defining them
22:26:34 <elliott> there's all sorts of parallel strategies you can do
22:26:37 <oerjan> but threads are green threads, unless using forkOS
22:26:51 <elliott> oerjan: they still run on multiple threads, though
22:26:54 <elliott> (http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/doc/html/Control-Parallel-Strategies.html)
22:27:02 <elliott> (that () is for my statement about strategies)
22:27:03 <oerjan> ais523: they're pure code, so no
22:27:03 <CakeProphet> you can communicate with IORefs, MVars, and TVars and such yet?
22:27:05 <CakeProphet> *yes
22:27:09 <ais523> "green" means "done using stack manipulation tricks not things like processes", right?
22:27:14 <elliott> CakeProphet: using :: a -> Strategy a -> aSource
22:27:14 <elliott> Evaluate a value using the given Strategy.
22:27:14 <elliott> x `using` s = runEval (s x)
22:27:16 <elliott> sparks are pure
22:27:20 <ais523> oerjan: that was my guess
22:27:21 <oerjan> CakeProphet: all those require a monad
22:27:26 <elliott> ais523: oerjan's use of green is a bit misleading
22:27:29 <oerjan> sparks don't
22:27:30 <elliott> ais523: they're lightweight threads
22:27:34 <ais523> ah, right
22:27:46 <elliott> ais523: green usually means "lightweight threads with no OS thread pooling"
22:27:53 <elliott> well, that's my impression
22:28:05 <oerjan> elliott: oh right, so only cooperative ones are green?
22:28:06 <elliott> but you _only_ need forkOS when you need to deal with other libraries
22:28:12 <CakeProphet> oerjan: perhaps we are talking about different things then. I was talking about forkIO and thread communication.
22:28:15 <CakeProphet> :t forkIO
22:28:17 <ais523> I remember teaching students how to create lightweight threads using the signal handler hack
22:28:17 <lambdabot> Not in scope: `forkIO'
22:28:19 <CakeProphet> @hoogle forkIO
22:28:19 <lambdabot> Control.Concurrent forkIO :: IO () -> IO ThreadId
22:28:24 <elliott> oerjan: well, or preemptive but done in the language VM?
22:28:34 <CakeProphet> oerjan: forkIO uses the IO monad.
22:28:36 <oerjan> CakeProphet: ah forkIO can use all those. i thought you were talking about sparks still
22:28:41 <Vorpal> oerjan, elliott, in erlang green threads are used to refer to the erlang threads sometimes. They are run on one or more scheduler threads (those are OS level threads)
22:28:57 <CakeProphet> oerjan: oh, no I don't know what those are. :P it involves par though right?
22:28:58 <elliott> "On a multi-core processor, native thread implementations can automatically assign work to multiple processors, whereas green thread implementations normally cannot.[1][2]"
22:28:58 <Vorpal> so I would say oerjan's usage is fine.
22:29:02 <elliott> Vorpal: then that is non-standard terminology
22:29:17 <elliott> Vorpal: http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/doc/html/Control-Parallel-Strategies.html is preferable to using par directly most of the time
22:29:38 <Vorpal> elliott, fairly common though. Green threads are scheduled by native threads scheduled by the OS
22:29:51 <elliott> Vorpal: those are lightweight threads
22:30:07 <Vorpal> elliott, have been called green threads since the days before erlang supported SMP
22:30:18 <CakeProphet> I was under the impression "lightweght" and "green" were the same in that context.
22:30:29 <Vorpal> CakeProphet, same
22:30:31 <elliott> Vorpal: then that's just a continuation of outdated terminology
22:30:38 <elliott> http://en.wikipedia.org/wiki/Light-weight_process
22:30:42 <elliott> http://en.wikipedia.org/wiki/Green_threads
22:30:49 <elliott> "There are some other virtual machine programming languages that still implement equivalents of green threads instead of native threads. Examples:
22:30:49 <elliott> Haskell"
22:30:52 <elliott> or maybe this article is just shit
22:31:27 <Vorpal> elliott, "In computer programming, green threads are threads that are scheduled by a virtual machine (VM) instead of natively by the underlying operating system." <-- yep true. It is just that the VM schedules them on several different underlying OS threads.
22:31:44 <elliott> sigh
22:34:39 -!- copumpkin has joined.
22:38:48 <elliott> hmm, is log-structured storage just storing diffs instead of modifying the original data?
22:38:51 <elliott> (ais523?)
22:39:23 <ais523> elliott: "log-structured"?
22:39:55 <elliott> ais523: ok, I picked the wrong person to ping
22:40:04 <ais523> I think so
22:41:14 <CakeProphet> ability to undo changes at the expense of more storage required and more expensive reads.
22:42:05 <elliott> CakeProphet: that does not answer my question, and I don't know of any self-branded log-structured storages that offer undos
22:42:13 <elliott> unless crash recovery counts, which isn't quite the same thing
22:42:44 <Vorpal> <elliott> hmm, is log-structured storage just storing diffs instead of modifying the original data? <-- I think it stores changes sectors (for log structured file systems at least) but don't quote me on that
22:43:15 -!- oerjan has quit (*.net *.split).
22:43:15 -!- Deewiant has quit (*.net *.split).
22:43:15 -!- chickenzilla has quit (*.net *.split).
22:43:15 -!- atehwa has quit (*.net *.split).
22:43:15 -!- aloril has quit (*.net *.split).
22:43:20 -!- fungot has quit (*.net *.split).
22:43:20 -!- clog has quit (*.net *.split).
22:43:20 -!- fizzie has quit (*.net *.split).
22:43:28 <Vorpal> elliott, and try nilfs2, it offers undo by mounting old versions of the file system.
22:43:44 <elliott> Vorpal: so instead of having 9 sectors on your disk, it has 9n, where n is the length of the log?
22:43:57 <elliott> to read, it reads the last log entry; to write, it appends the new data to the log, or overwrites the oldest entry if there's no space?
22:44:13 <CakeProphet> elliott: I'm thinking of versioning file systems, actually. like files-11
22:44:26 <Vorpal> elliott, uh. Well if you changed sector 4 then only that one would have to be stored again. Well block rather, they tend to be larger than disk sectors these days
22:44:34 <elliott> Vorpal: and then crash recovery is just reverting the most recent change (for fs-wide, not sector-wide values of "most recent"), until it's consistent?
22:44:48 <Vorpal> elliott, that I don't know.
22:44:51 <elliott> <Vorpal> elliott, uh. Well if you changed sector 4 then only that one would have to be stored again. Well block rather, they tend to be larger than disk sectors these days
22:44:55 <elliott> what did i say that contradicted this?
22:45:22 <Vorpal> elliott, well you said 9n, if you changed one of those sectors it wouldn't be 9*2 but more like 9+1
22:45:28 <Vorpal> plus some metadata
22:45:49 <Vorpal> elliott, anyway that is my understanding of them. But don't quote me on it
22:45:50 <elliott> it has 9n storage globally
22:45:55 <ais523> also, SCO have just lost their appeal against Novell, which will probably actually shut down the court cases
22:45:56 <elliott> because the disk has 9 sectors, and a log has a fixed length
22:45:58 -!- oerjan has joined.
22:46:00 <ais523> their only appeal left now is to the Supreme Court
22:46:05 <Vorpal> elliott, oh I meant for a file of 9 sectors
22:46:07 <elliott> ais523: sounds good to me
22:46:10 <ais523> any bets on whether they'll try it or not?
22:46:22 <elliott> Vorpal: you didn't say anything about files, you just talked about sectors; Btree stuff has sectors too, not just files
22:46:27 <elliott> so it's one log per file?
22:46:31 <Vorpal> ais523, no, I say it is 50/50 on that
22:46:43 <elliott> ais523: I'll bet 99 pounds they don't
22:46:49 <elliott> ais523: because the enjoyment of them doing so is worth 99 pounds to me
22:46:50 <Vorpal> elliott, I meant that it stores sectors you changed again, not diffs of them
22:46:55 <elliott> and the 99 pounds will help soften the blow if they don't
22:47:15 <Vorpal> elliott, but I only studied log structured file systems a tiny bit
22:47:16 <ais523> in future, lawyers should probably not agree to be paid in advance
22:47:21 <elliott> Vorpal: that's just a sector-based diff
22:47:26 <ais523> regardless of how many appeals
22:47:31 <Vorpal> elliott, well yeah
22:47:42 <elliott> ais523: I'd feel bad for them if they didn't deserve it
22:48:17 <Vorpal> elliott, I read somewhere that the problem of write leveling in SSDs is very similar to the problems encountered in implementing log structured filesystems.
22:49:04 <Vorpal> elliott, and that TRIM provides the SSD with the knowledge that space can be reused, which a file system has anyway. But a SSD can't know as easily.
22:49:39 <ais523> <Anonymous Coward> I expect it to go to the Supreme Court, and after that to various international courts. And maybe after that the interplanetary court.
22:49:52 <Vorpal> ais523, heh
22:50:26 <elliott> I just want to know what log-structured storage is exactly; my current perception is: Each file is not stored as its sectors directly, but a fixed-size buffer of (sectornum,data); writes are done by appending (overwrite oldest entry if no space), reads are done by picking the most recent change with the right sector number
22:50:56 <elliott> the question is, how do you use this for crash recovery? for each file, store a "latest consistent state" number, and only increase it on fsync() of a whole file change?
22:50:58 <Vorpal> elliott, check wikipedia?
22:51:03 <elliott> Vorpal: I did; it was unhelpful
22:51:15 <Vorpal> elliott, check how nilfs2 is implemented?
22:51:34 <elliott> why nilfs? you've mentioned it twice so far
22:51:38 <elliott> but it's the first I've heard of it
22:51:50 <elliott> hmm, or maybe I heard of it once before
22:52:02 <elliott> but anyway, that's stupid, I'm not going to dig around huge linux production code to find the definition of a simple conecpt
22:52:08 <Vorpal> elliott, because it is in the linux kernel, it is modern, and it is log structured, and it provides undo by snapshot mounting
22:52:42 <Vorpal> elliott, anyway I can't help you further I'm afraid. You reached the end of my knowledge on the subject
22:53:18 <elliott> I don't see why which kernel it is in matters if I'm not going to run it; and you expect me to understand a modern, complex filesystem without knowing the definition of its core concept?; so are other filesystems, presumably; k.
22:53:35 -!- Deewiant has joined.
22:53:35 -!- chickenzilla has joined.
22:53:35 -!- atehwa has joined.
22:53:35 -!- fungot has joined.
22:53:35 -!- aloril has joined.
22:53:35 -!- clog has joined.
22:53:35 -!- fizzie has joined.
22:53:51 <Vorpal> elliott, oh, I assumed you had the kernel source locally?
22:54:08 <Vorpal> that was the reason
22:54:19 <Vorpal> oh right, you don't build your own kernels do you?
22:54:40 <elliott> Downloading a tarball is not a high barrier to entry. I think I have a Linux tarball around here somewhere, though.
22:56:12 -!- sliddy has quit (Read error: Connection reset by peer).
22:57:37 <ais523> I have the kernel source via the package manager
22:57:45 <ais523> there are kernel source packages that just unpack in /usr/src
22:57:55 <ais523> as build dependencies for kernel modules
22:58:13 <elliott> dear slicehost: stop emailing me about your upcoming death, I don't pay you anything or use your products
22:58:14 <ais523> (mostly they just need kernel headers, but full kernel source is needed sometimes)
22:58:15 <oerjan> <Deewiant> That's rude <-- well if i knew you were going to _speak_...
22:58:30 <ais523> elliott: has it been completely absorbed into Rackspace, now?
22:58:36 <ais523> poor _0x44
22:58:40 <elliott> oerjan: ooh, paste logs :P
22:58:44 <elliott> ais523: it's going to be
22:59:03 <oerjan> 15:03:25 * oerjan now imagines logarithmic structure of diffs.
22:59:03 <oerjan> 15:03:32 <oerjan> argh
22:59:03 <oerjan> 15:04:39 <oerjan> just me and the finns
22:59:03 <oerjan> 15:05:15 --- quit: oerjan (Quit: leaving)
22:59:03 <oerjan> 15:06:13 <Deewiant> That's rude
22:59:04 <elliott> ais523: which is probably not entirely a bad thing, because their offerings have been ridiculously subpar for years now
22:59:17 <elliott> oh, http://www.slicehost.com/ no longer lists their servers, and is all about rackspace cloud servers
22:59:19 <elliott> so i guess it's happened
22:59:22 <ais523> ever since they were bought in the first place?
22:59:34 <elliott> ais523: nope, they just never changed their offerings for years
22:59:38 <elliott> ais523: and everyone else's got better
22:59:44 <CakeProphet> need to figure out what to do with these 1,500,000,000 bytes that I have
22:59:45 <oerjan> elliott: fortunately there were one logbot on each side of the split
22:59:45 <ais523> I suppose linode is the new equivalent to what slicehost used to be
22:59:51 <elliott> ais523: prgmr :P
23:00:02 <elliott> slicehost used to be the service that nobody knows about but everyone recommends because they're really cheap
23:00:04 <ais523> prgmr's a bit more bare-metal, according to articles I've been reading
23:00:06 <elliott> and high-quality
23:00:15 <elliott> ais523: slicehost offers the exact same amount of access to your server, i.e. ssh
23:00:16 <Vorpal> <oerjan> <Deewiant> That's rude <-- well if i knew you were going to _speak_... <-- from where?
23:00:26 <elliott> the only extra thing they have is, umm, they also offer DNS, and let you reflash the server with a new OS
23:00:27 <oerjan> Vorpal: from the other side of the netsplit
23:00:27 <Vorpal> oh the other side of the split?
23:00:28 <ais523> whereas, say, linode actually have support, etc
23:00:39 <ais523> and prgmr aim for pure value
23:00:40 <elliott> ais523: prgmr have support too, it's just four dollars a month worth of it
23:00:56 <elliott> ais523: but, well, obviously prgmr isn't identical to slicehost, but I think linode is an inaccurate comparison, because linode have been around much longer
23:01:00 <elliott> and are very well-known
23:01:26 <ais523> yep, I see
23:01:33 <ais523> I thought slicehost were the best-known
23:01:44 <ais523> perhaps I've just grown up around weird people
23:02:09 <elliott> "grown up"?
23:02:12 <Vorpal> elliott, was slicehost VPS only?
23:02:16 <Vorpal> or did it have colo?
23:02:29 -!- Deewiant has quit (*.net *.split).
23:02:29 -!- chickenzilla has quit (*.net *.split).
23:02:29 -!- atehwa has quit (*.net *.split).
23:02:29 -!- aloril has quit (*.net *.split).
23:02:29 -!- fungot has quit (*.net *.split).
23:02:29 -!- clog has quit (*.net *.split).
23:02:29 -!- fizzie has quit (*.net *.split).
23:02:29 <elliott> Vorpal: vps
23:02:32 <Vorpal> ah
23:02:34 <elliott> albeit, vps up to fifteen gigs of RAM
23:02:39 <Vorpal> elliott, that is why I never heard of it.
23:02:42 <elliott> slicehost added bigger and bigger plans rather than making their cheap ones better
23:02:43 <oerjan> bye bye
23:02:44 <Vorpal> elliott, 15? why not 16?
23:03:37 <ais523> I don't think individual people, as opposed to businesses, use colo very often
23:03:54 <Vorpal> ais523, what about dedi then?
23:04:10 <ais523> even that's typically overkill
23:04:13 <ais523> although a little more reasonable
23:04:33 -!- Deewiant has joined.
23:04:33 -!- chickenzilla has joined.
23:04:33 -!- atehwa has joined.
23:04:33 -!- fungot has joined.
23:04:33 -!- aloril has joined.
23:04:33 -!- clog has joined.
23:04:33 -!- fizzie has joined.
23:04:38 <Vorpal> hm
23:04:43 <elliott> colo is pointless unless you're running an isp
23:04:48 <elliott> (in the internet service provider sense)
23:04:49 <CakeProphet> *1,500,000,000,000
23:04:50 <Vorpal> ais523, and renting your own rack?
23:04:58 <Vorpal> (just kidding)
23:05:11 <CakeProphet> er...
23:05:12 <CakeProphet> lol
23:05:17 * CakeProphet can do math.
23:05:28 <elliott> oerjan: logarithmic trees of diffs sounds like a really nice thing for scapegoat, but I'm not sure what it means
23:05:31 <ais523> Vorpal: renting an entire rack would be massive overkill for anything but medium-to-large companies, and only then if they were in a business where it was a plausible thing to do
23:05:39 <Vorpal> ais523, I know someone who rents a rack though. He runs a VPS company.
23:05:50 <ais523> Vorpal: yes, that actually makes sense
23:06:11 <ais523> as renting out VPS is one of the situations where you need an otherwise implausibly large number of servers
23:07:37 <oerjan> elliott: basically you'd save diffs between revisions 0 and 1, 1 and 2, 0 and 2, 2 and 3, 3 and 4, 2 and 4, 0 and 4, so you can always change between any two revisions in logarithmic time of their distance. just something that popped into my mind from the word "log", for all i know everyone already does that.
23:08:22 <ais523> oerjan: a similar idea to a skiplist?
23:08:23 <oerjan> specifically, you have diffs between revisions k*2^n and (k +- 1)*2^n
23:08:47 <ais523> ±
23:08:50 <ais523> yay, it's in my compose
23:08:53 <elliott> 25403 root 20 0 253m 148m 78m R 34 4.0 39:38.80 Xorg
23:08:53 <ais523> I've wanted that key for ages
23:08:55 <elliott> what are you doing...
23:09:02 <ais523> also, I have × too
23:09:04 <ais523> this is great!
23:09:12 <oerjan> ais523: i don't recall what a skiplist is
23:09:30 <ais523> neither do I, exactly, but it's something like that
23:10:35 <Vorpal> oerjan, for a file system I think it would be acceptable to just store original file in full, the current file in full and diffs from 0-1,1-2,2-3 and so on. That optimizes for reading current version and writing new versions, while still keeping small space. Accessing older versions would probably not be as common as accessing the last one
23:11:15 <oerjan> Vorpal: well this idea was specifically to limit the time to go between arbitrary revisions
23:11:21 <Vorpal> oerjan, ah yeah
23:11:49 <elliott> oerjan: i will reply once i read your lines (this will be within a minuet or so), helpful messages from elliott
23:12:06 * oerjan imagines elliott dancing around his room
23:14:18 <ais523> "we are releasing new versions of Firefox for desktop (3.6.21, 6.0.1, 7, 8, and 9)"
23:14:24 <ais523> VERSION NUMBERS DO NOT WORK LIKE THAT
23:14:30 <oerjan> google keeps adding annoying features, it now gives a spelling warning for my already correctly spelled minuet
23:15:17 <oerjan> i suppose it's reasonable given why i googled it
23:15:42 <elliott> ais523: the traditional versioning system doesn't work very well, though
23:15:50 -!- elliott has quit (Remote host closed the connection).
23:16:16 -!- elliott has joined.
23:17:18 <oerjan> ais523: i think you're supposed to add "GOODNIGHT."
23:17:29 <oerjan> *+.
23:17:55 <ais523> elliott: well that one makes even less sense
23:18:05 <CakeProphet> very little HD throughput, high CPU usage
23:18:13 <CakeProphet> must be because my hard drive is encrypted?
23:18:29 <ais523> CakeProphet: or because you're doing something that isn't I/O-bound?
23:18:34 -!- elliott_ has joined.
23:18:38 <oerjan> no, it's because it's all being rerouted to the NSA
23:18:41 <elliott_> <elliott> 23:07:37: <oerjan> elliott: basically you'd save diffs between revisions 0 and 1, 1 and 2, 0 and 2, 2 and 3, 3 and 4, 2 and 4, 0 and 4, so you can always change between any two revisions in logarithmic time of their distance. just something that popped into my mind from the word "log", for all i know everyone already does that.
23:18:44 <elliott_> <elliott> oh that's pretty
23:18:46 <elliott_> <elliott> ais523: sg could do that :)
23:18:49 <elliott_> <elliott> ais523: rather than storing full contents of files
23:18:50 <elliott_> <elliott> (for speed)
23:18:55 <CakeProphet> ais523: I'm currently moving 77 GBs of music to a 1.5 TB external hard drive
23:19:07 <ais523> ah, I see
23:19:07 <elliott_> CakeProphet: Encryption takes 0 CPU
23:19:17 <ais523> elliott_: perhaps plausible
23:19:19 <CakeProphet> what about decryption?
23:19:25 <elliott_> ais523: Encryption/decryption is much less expensive than a disk operation
23:19:26 <CakeProphet> as that is what I am currently doing.
23:19:32 <elliott_> that's why HD encryption is irrelevant
23:19:32 <ais523> elliott_: depends on whether it's hardware encryption or not, I suppose
23:19:33 <elliott_> speed-wise
23:19:36 <elliott_> ais523: no
23:19:41 <elliott_> ais523: disks are /really really slow/
23:19:42 <elliott_> CPUs aren't
23:19:49 <ais523> and whether they encrypted the whole thing at once
23:19:56 <ais523> although that would be silly
23:20:04 <ais523> (I mean, needing to decrypt the whole disk just to access one file)
23:20:09 <elliott_> a CPU is twiddling its thumbs when the HD is being read, decrypting a few kilobytes won't stop that boredom
23:20:21 <ais523> isn't a CPU running other processes while waiting for the HD?
23:20:38 <elliott_> yes, but thread-switching happens anyway
23:20:39 <ais523> GPUs run other threads merely while waiting for memory accesses to happen
23:20:45 <elliott_> and encryption/decryption of a small amount of data is cheap
23:20:55 <CakeProphet> lol skype is using all of my CPU
23:20:58 <CakeProphet> so. fucking. buggy.
23:20:58 -!- elliott has quit (Ping timeout: 250 seconds).
23:21:06 <monqy> haha skype
23:21:21 <CakeProphet> KILLALL SKYPE
23:21:24 <elliott_> ais523: anyway, I'm not so sure firefox's versioning system makes no sense
23:21:36 <elliott_> the people who get confused by it usually seem to be techies
23:21:46 <ais523> I just can't figure out why they have three different independent alphas
23:21:47 <elliott_> who are a rather bad sample
23:22:04 <elliott_> ais523: have you heard of branches?
23:22:06 <ais523> (presumably 7/8/9 are alpha because the version number stayed the same upon a change)
23:22:13 <ais523> elliott_: yes, but normally they're for different purposes than that
23:22:20 <elliott_> ais523: the work being done on 9 will presumably be about new faetures and things that can break a lot
23:22:25 <ais523> I can imagine two alphas because of feature freeze branch
23:22:28 <elliott_> whereas 7 will be bugfixes and modest improvements
23:22:32 <ais523> but not really more than that
23:22:32 <elliott_> and 8 will be somewhere in-between
23:22:51 <elliott_> ais523: firefox has always had separate branches for versions
23:22:54 <ais523> are changes being pulled from 7 into 8, and 8 into 9? then it makes a bit more sense
23:23:09 <ais523> branches for stable versions also makes sense, so you can backport security fixes, etc
23:23:19 <elliott_> ais523: well, the question is, have they ever been?
23:23:28 <elliott_> either way, this is no /less/ sane
23:23:42 <elliott_> ais523: I suspect they do merging nearer release time
23:23:49 <elliott_> but I'm not a Mozilla dev, so I don't know
23:25:38 <Vorpal> elliott_, hd encryption does slow down for other processes a bit. Since time spent decrypting could otherwise be used to compute stuff for other tasks. That is of course a rather specialised situation (will only matter when load without encryption would be close to 100% utilization).
23:25:49 <Vorpal> but in practise it doesn't make a difference
23:25:57 <Vorpal> I can say that from my own experience
23:26:12 <elliott_> Of course it takes CPU time, it just takes much less CPU time than just about everything else.
23:26:49 <Vorpal> elliott_, might be measurable for a really fast SSD though
23:27:02 <elliott_> SSDs are limited by things other than SSDs
23:27:10 <elliott_> i.e. SATA
23:27:25 <Vorpal> elliott_, that is 6 GB/s isn't it?
23:27:29 <Vorpal> or GBit?
23:27:33 <Vorpal> I forgot
23:27:36 <elliott_> It's more about latency I think
23:27:52 <elliott_> But I do know that apparently plugging SSD chips directly into the CPU speeds things up a lot :P
23:27:59 <Vorpal> heh
23:29:20 <Vorpal> elliott_, anyway, latency won't be an issue if you want to read a huge file or write a huge file in a linear way. That situation would happen on suspend and resume for example
23:29:43 <elliott_> Sure it matters, unless the kernel just sends off the entire file and waits
23:29:52 <elliott_> I suspect it's done at the sector level or whatever
23:29:55 <CakeProphet> nautilus is using 20% CPU right.
23:30:17 <CakeProphet> 40%, but I've got two cores so it counts to 200%
23:30:24 <Vorpal> elliott_, I thought ATA commands existed to write more than one sector at a time
23:30:33 <Vorpal> but maybe I'm confusing it with SAS or some such
23:30:43 <elliott_> Vorpal: Probably still limited, surely
23:30:54 <Vorpal> elliott_, anyway the SSD has a queue too. Native Command Queue
23:31:10 <Vorpal> elliott_, so you can send off 31 requests in one go
23:31:26 <elliott_> thirty one is less than like thousands
23:31:36 <Vorpal> elliott_, hm
23:39:29 <elliott_> ais523: wow, pastebin.ca exists
23:39:37 <elliott_> it seems to lack formatting, though
23:39:52 <ais523> elliott_: pastebin.ca (specifically pastebin, not the other services) came back up a while ago
23:40:12 <elliott_> then it went down again, no?
23:40:27 <ais523> I don't know, I wasn't looking
23:41:14 -!- copumpkin has quit (Ping timeout: 240 seconds).
23:41:38 -!- copumpkin has joined.
23:56:13 * elliott_ tries to optimise shiro
23:56:30 <elliott_> hey copumpkin, why would a record with an existential be slower than a typeclass
23:56:42 <elliott_> obviously you are the expert
23:58:09 -!- ais523 has quit (Remote host closed the connection).
2011-08-31
00:00:25 -!- Sgeo has joined.
00:07:41 <Deewiant> elliott_: 'Cause typeclasses are more expected and thus more optimized by compilers
00:08:08 <CakeProphet> but it seems to me like it would be almost entirely the same thing.
00:08:46 <elliott_> Deewiant: This was an insane typeclass
00:08:49 <elliott_> Multiple type families
00:09:05 <elliott_> And AFAICT everything should be erased at runtime
00:09:16 <elliott_> Hmm, maybe I need to make the fields strict?
00:09:46 <Deewiant> If you want things to be erased at runtime then they need to be strict, yes :-P
00:11:08 <elliott_> Deewiant: That isn't what I meant by erased at runtime, I mean I use unsafeCoerce
00:11:19 <Deewiant> >_<
00:11:37 <elliott_> Deewiant: It's a safe use of unsafeCoerce!
00:15:06 <CakeProphet> safeCoerceIPromiseReally
00:15:35 <Sgeo> elliott_, hmm, where and how?
00:16:38 <CakeProphet> !haskell import Unsafe.Coerce; main = print (unsafeCoerce 2 :: IO Int)
00:16:59 <CakeProphet> oh rite
00:17:03 <elliott_> Sgeo: ?
00:17:15 <CakeProphet> !haskell import Unsafe.Coerce; main = print =<< (unsafeCoerce 2 :: IO Int)
00:17:20 <EgoBot> 0
00:17:34 <Sgeo> elliott_, what are you using unsafeCoerce for?
00:18:10 <elliott_> Sgeo: dependent map
00:18:32 <elliott_> 19:09:50: <AnMaster> err? *thinks* O(n/2) == O(n)??
00:18:33 <elliott_> 19:09:57: <Deewiant> yep
00:18:33 <elliott_> 19:10:04: <AnMaster> then O maths are strange
00:18:42 <elliott_> 19:10:05: <Deewiant> O(constant * n) == O(n)
00:18:42 <elliott_> 19:10:08: <Deewiant> :-P
00:18:42 <elliott_> 19:10:18: <Deewiant> if you know the definition it makes sense
00:18:42 <elliott_> 19:10:21: <AnMaster> Deewiant, that would only be true if n is treated as infinite
00:18:47 <elliott_> Vorpal: you used to be really smart
00:18:49 <oerjan> coercion from Integer to IO Int, which iirc is a function underneath - definitely _not_ a recommended use
00:19:06 <elliott_> oerjan: I'm surprised that even worked
00:23:36 <monqy> elliott_: wow
00:24:22 <CakeProphet> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce 2 :: String -> Int ) "hi")
00:24:27 <EgoBot> 5836665117072162816
00:24:53 <CakeProphet> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce 2 :: String -> Int ) "hi")
00:24:58 <EgoBot> 5188146770730811392
00:25:06 <oerjan> marvelous
00:25:11 <CakeProphet> awww not referentially transparent.
00:25:20 <oerjan> well duh
00:26:08 <elliott_> I'm really surprised that works
00:26:22 <oerjan> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce 2 :: String -> Int ) undefined)
00:26:27 <EgoBot> ​-2810246167479189504
00:26:44 <CakeProphet> !haskell import Unsafe.Coerce; main = print (map (unsafeCoerce 2 :: Int -> String ) [0..])
00:26:49 <EgoBot> ​["
00:26:56 <CakeProphet> weeeee segfault
00:27:39 <elliott_> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce (2 :: Int) :: String -> Int ) undefined)
00:27:44 <EgoBot> ​-2810246167479189504
00:27:50 <elliott_> oerjan: ok, _now_ i'm confused.
00:27:57 <CakeProphet> there we go, perfectly safe.
00:27:58 <elliott_> result independent of defaulting???
00:28:06 <oerjan> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce 2 :: String -> Int ) undefined)
00:28:12 <EgoBot> ​-2810246167479189504
00:28:37 <CakeProphet> itt: fun with Haskell abuse.
00:28:55 <elliott_> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce (2::Integer) :: String -> Int ) undefined)
00:29:00 <EgoBot> ​-5116089176692883456
00:29:07 <oerjan> the strangest thing is that it implies it actually _looks_ at the argument
00:29:10 <elliott_> oerjan: huh so EgoBot follows different defaulting rules?
00:29:14 <oerjan> huh
00:29:24 <elliott_> oerjan: huh so EgoBot follows different defaulting rules?
00:29:26 <elliott_> !haskell import Unsafe.Coerce; main = print ((unsafeCoerce (2::Integer) :: String -> Int ) undefined)
00:29:31 <EgoBot> 504403158265495552
00:34:05 <oerjan> !haskell import Data.Typeable; main = print $ typeOf 2
00:34:24 <oerjan> gah
00:34:56 <oerjan> the Typeable ruins the defaulting :(
00:35:14 <oerjan> hm...
00:35:38 <oerjan> !haskell main = print (2^100)
00:35:44 <EgoBot> 1267650600228229401496703205376
00:35:55 <oerjan> nope, still Integer
00:36:00 -!- zzo38 has joined.
00:37:20 <Sgeo> What's the use of undefined here?
00:37:47 <oerjan> i just wanted to see if the coerced-to-function thing actually used its argument
00:38:08 <zzo38> I added "case guards" to "proposal for more-notation"
00:38:13 <oerjan> it _appears_ to, since undefined gives a consistent result, different from the others
00:38:44 <oerjan> but whether that's what actually happens, i don't want to bet :P
00:38:48 <oerjan> hm...
00:39:18 <zzo38> Are you no good at betting?
00:39:31 <oerjan> !haskell import Unsafe.Coerce; main = let f = unsafeCoerce 2 :: String -> Int; print [f "hi", f undefined]
00:39:46 <oerjan> oops
00:39:51 <oerjan> !haskell import Unsafe.Coerce; main = let f = unsafeCoerce 2 :: String -> Int in print [f "hi", f undefined]
00:39:56 <EgoBot> ​[6989586621679009792,6989586621679009792]
00:40:04 <oerjan> wonderful :P
00:41:53 <zzo38> Can unsafeCoerce work with unboxed types? That seems the only use where such thing would be useful
00:41:53 <oerjan> oh CakeProphet tried something similar, but i guess printing a fake String has a higher chance of segfaulting than a fake Int
00:42:17 <oerjan> zzo38: no, it is intended only for boxed types
00:42:51 <zzo38> Boxed types have a representation that you do not know so how can it ever help with anything? Is it useful for FFI?
00:43:19 <zzo38> Is it useful to use with newtype?
00:43:35 <oerjan> zzo38: it is useful for when you know a value is of a type but haskell's type system cannot prove it.
00:45:08 <zzo38> It doesn't seem best way to me, unless using with FFI. Maybe it would be better to be able to type in your own proof so that the entire program is provable
00:45:14 -!- azaq23 has joined.
00:45:21 <oerjan> say if you have a Map where you want to put values of different types, and you are using them in a way that you know is safe but since it's a Map haskell can only put one type in it. then you can use Any as the type of elements, and unsafeCoerce to convert to the real type (Any is specifically defined to let this be safe)
00:45:48 <oerjan> well yes but ghc does not have a dependent type system, so you cannot give a proof
00:46:07 <oerjan> but unsafeCoerce allows you to promise that you know it's OK
00:46:12 <elliott_> oh oerjan explained for me?
00:46:12 <elliott_> neato
00:46:15 <zzo38> OK, I suppose that seems one use of it.
00:47:13 <zzo38> But it does not seem that is the way of doing in Haskell. In C programming you would do that stuff in a list or whatever, it does not seem in Haskell to do that.
00:47:30 <oerjan> e.g. Dynamic is implemented using unsafeCoerce under the hood. you probably want to use that instead unless you need optimal efficiency (Dynamic requires comparing Typeable representations)
00:49:27 <elliott_> zzo38: it is the way of doing it in haskell
00:49:52 <zzo38> Of course in C you just use pointer cast not unsafeCoerce.
00:51:50 <elliott_> you would just use a file-scope variable in C for what I'm doing :)
00:52:03 <oerjan> in spirit unsafeCoerce _is_ just a pointer cast i think, although since the types are both boxed they probably are the same underlying C pointer type when compiled via C.
00:52:45 <zzo38> Is there the way to write optimizable types so that you can compile with checking in one way, and do the other compile with changing it optimizing to use unsafeCoerce and removing other unnecessary checks?
00:53:21 <oerjan> zzo38: you can probably use rules for that
00:54:29 <zzo38> Do you mean the RULES pragma? Yes I suppose that can do some things like that
00:56:23 <zzo38> But I don't think that can tell it to avoid some checks that it would ordinarily do anyways; there should be another pragma for that purpose.
00:56:42 <oerjan> well rules are done after typechecking of course
00:57:56 <elliott_> you can implement unsafeCoerce with a rule?
00:58:00 <elliott_> or does it typecheck again
00:59:03 <zzo38> I mean something like, some functions have nonexhaustive patterns, you have tested it and can prove that the patterns you have are good enough, put in a pragma that tells it to remove that check when optimization is enabled
00:59:56 <elliott_> btw, with existentials you can do what i want as a list
00:59:59 <elliott_> but then lookup is O(slow)
01:00:03 <elliott_> as opposed to maps which aren't O(slow)
01:02:44 <oerjan> elliott_: rules have to typecheck, but you could presumably have a rule to introduce a use of unsafeCoerce
01:05:03 <CakeProphet> can I have a rule that introduces a rule that introduces TH?
01:05:18 <elliott_> oerjan: right
01:08:26 <zzo38> CakeProphet: Not as far as I know, but if something could do that it ought to be some command added to TH allowing that, instead of a rule pragma.
01:10:44 <oerjan> i vaguely thought TH was applied before the core stage and rules during it
01:12:32 <CakeProphet> can I have recursive rules
01:12:38 <CakeProphet> with conditionals?
01:14:47 <CakeProphet> I am a warrior bbl lawl
01:15:00 <zzo38> I think it might be useful to have TH commands to allow you to do all of that stuff, but it would become difficult to implement due to translation to/from Core and doing TH stuff in Core and back again it makes difficult, I think.
01:15:02 <CakeProphet> `quote machine
01:15:05 <HackEgo> 100) <Slereah> I can do everything a Turing machine can do, except love \ 142) <fungot> [...] i'm a law student so i am loving my bread machine \ 155) <CakeProphet> how does a "DNA computer" work. <CakeProphet> von neumann machines? <Phantom_Hoover> CakeProphet, that's boring in the context of DNA. <Phantom_Hoover> It's just
01:15:22 <CakeProphet> `quote machine elliott
01:15:23 <HackEgo> No output.
01:15:29 <CakeProphet> I am sad safe.
01:15:43 <CakeProphet> *fase
01:16:04 <zzo38> Is that the correct syntax for the `quote command?
01:16:13 <CakeProphet> *faes
01:16:25 <oerjan> i think it takes either a number or a rexex
01:16:28 <oerjan> *regex
01:16:49 <CakeProphet> `quote (??{2+@})
01:16:51 <HackEgo> No output.
01:17:09 <CakeProphet> `quote elliott.*?machine
01:17:11 <HackEgo> 633) <fungot> elliott_: it's a machine that looks like you!
01:17:54 <CakeProphet> `quote ^x
01:17:56 <HackEgo> No output.
01:17:59 <CakeProphet> `quote ^q
01:18:01 <HackEgo> No output.
01:18:17 <CakeProphet> `quote ^<.*?> q
01:18:19 <HackEgo> No output.
01:18:21 <oerjan> also the check for a number sometimes blew up but i think elliott fixed that
01:18:22 <CakeProphet> :(
01:18:25 <zzo38> Can there be kinds for classes? For example if [] represent kind for classes, then [* -> *] is the kind of the Monad class, and then, if you have something named Z of kind * -> [* -> *] then you can have a function of type (Z b) a => a Bool -> b
01:18:39 <zzo38> But maybe it is impossible and nonsense
01:18:54 <CakeProphet> nonpossiblesense
01:19:05 <CakeProphet> oh by the way I'm not here anymore.
01:19:14 <oerjan> zzo38: there are certainly kinds for the class _arguments_
01:20:14 <zzo38> oerjan: But that is not what I meant
01:21:37 <oerjan> well i don't know. someone probably has thought about it.
01:22:49 <zzo38> What I describe might not be mathematically possible though (but I am unsure)
01:23:15 -!- CakeProphet has quit (Ping timeout: 240 seconds).
01:25:23 <zzo38> Actually I think it is in fact wrong and impossible, at least the way I described.
01:25:48 <zzo38> But maybe not.
01:25:54 <zzo38> I am confused a bit.
01:26:06 <zzo38> I keep changed my mind now I got confusing
01:29:24 -!- azaq23 has quit (Ping timeout: 276 seconds).
01:30:08 <elliott_> happens to me too
01:32:38 <zzo38> Do you know?
01:32:45 <elliott_> no
01:33:37 -!- azaq23 has joined.
01:53:23 -!- zzo38 has quit (Remote host closed the connection).
01:57:14 -!- GuestIceKovu has joined.
01:58:39 -!- Slereah has quit (Ping timeout: 276 seconds).
02:05:31 <elliott_> oerjan: i think i figured out why fingerprints are slower this way??? yay???
02:06:08 -!- elliott_ has quit (Remote host closed the connection).
02:06:42 <oerjan> good, good
02:07:39 -!- elliott has joined.
02:10:14 <elliott> oerjan: it didn't help :(
02:10:50 <oerjan> bad, bad
02:13:21 <elliott> maybe my FPState thing is bad
02:13:24 <elliott> <oerjan> bad, bad
02:14:02 <oerjan> food, food -->
02:16:42 <Sgeo> My web database class will involve PHP
02:17:19 <Sgeo> Can someone please give me a gun to shoot my foot off with?
02:17:46 <elliott> the gun is called not transferring
02:17:50 <elliott> it gets deadlier by the second
02:18:24 <Sgeo> Would it be terrible for me to just graduate from here then make up classes at Stony Brook while working towards a more advanced degree in CS?
02:29:22 <elliott> Deewiant: Actually you're soooooo wrong I don't see how this could possibly be slower at all, my previous use of a typeclass was used exclusively through an existential.
02:29:30 <elliott> SO HA
02:34:37 -!- Lymee has quit (Ping timeout: 245 seconds).
02:34:46 <Sgeo> I should attempt to grasp existentials
02:36:12 <Sgeo> data Worker x y = forall b. Buffer b => Worker {buffer :: b, input :: x, output :: y}
02:36:19 <Sgeo> Oh come on, is that all they're used for?
02:37:07 <oerjan> > fail "test" :: Either String Bool
02:37:08 <lambdabot> Overlapping instances for GHC.Base.Monad
02:37:08 <lambdabot> (Data...
02:37:17 <oerjan> O_o
02:37:43 <oerjan> lambdabot's instances are _really_ messed up.
02:38:07 <Sgeo> > fail "test"
02:38:08 <lambdabot> No instance for (GHC.Show.Show (m a))
02:38:08 <lambdabot> arising from a use of `M7990887826...
02:38:23 <Sgeo> > fail "test" :: IO ()
02:38:24 <lambdabot> <IO ()>
02:38:59 <Sgeo> For some reason, when oerjan first said it, I was thinking error instead of fail
02:39:13 <Sgeo> > fail "Discarded" :: Maybe Bool
02:39:13 <lambdabot> Nothing
02:39:40 <Sgeo> > fail "test" :: Either String a
02:39:41 <lambdabot> Overlapping instances for GHC.Base.Monad
02:39:41 <lambdabot> (Data...
02:39:51 <Sgeo> :t Just Right
02:39:52 <lambdabot> forall b a. Maybe (b -> Either a b)
02:41:37 <elliott> <Sgeo> Oh come on, is that all they're used for?
02:41:39 <elliott> what
02:41:57 <elliott> "A TUTORIAL USED ONE EXAMPLE LET ME JUMP TO A CONCLUSION AND ACT WEIRDLY ABOUT IT"
02:42:05 <Sgeo> I thought the first motivating example in http://www.haskell.org/haskellwiki/Existential_type was the only motivating example
02:42:13 <Sgeo> elliott, yes, that's what I did :/
02:42:28 <elliott> ONLY ONE MOTIVATING EXAMPLE
02:42:29 <elliott> OH NOES
02:42:33 <elliott> what's wrong with only one motivating example
02:42:52 <oerjan> well it's not really very motivating.
02:43:03 <oerjan> </python>
02:53:58 <Sgeo> What does Python have to do with anything?
02:54:05 <Sgeo> Oh, wrong Python
03:08:09 -!- elliott has quit (Remote host closed the connection).
03:08:21 -!- elliott has joined.
03:09:53 -!- azaq231 has joined.
03:11:42 -!- azaq23 has quit (Ping timeout: 258 seconds).
03:30:45 -!- Lymee has joined.
03:40:17 -!- Lymia has joined.
03:40:19 -!- Lymee has quit (Disconnected by services).
03:40:21 -!- Lymia has changed nick to Lymee.
03:53:56 -!- augur has quit (Remote host closed the connection).
04:10:34 -!- MDude has changed nick to MSleep.
04:48:15 -!- CakeProphet has joined.
05:11:35 -!- derrik has joined.
05:27:36 -!- elliott has quit (Ping timeout: 240 seconds).
05:32:13 -!- derrik has quit (Ping timeout: 264 seconds).
05:33:20 -!- derrik has joined.
05:42:04 -!- derrik_ has joined.
05:42:25 -!- derrik_ has quit (Client Quit).
05:44:49 -!- derrik has quit (Ping timeout: 264 seconds).
06:05:43 -!- CakeProphet has quit (Ping timeout: 250 seconds).
06:06:10 -!- GreaseMonkey has quit (Quit: The Other Game).
06:29:31 -!- CakeProphet has joined.
06:29:31 -!- CakeProphet has quit (Changing host).
06:29:31 -!- CakeProphet has joined.
06:36:01 -!- cheater has quit (Ping timeout: 258 seconds).
06:36:15 -!- oerjan has quit (Quit: Good night).
06:38:30 -!- cheater has joined.
06:47:34 -!- GreaseMonkey has joined.
07:11:33 -!- GreaseMonkey has quit (Quit: The Other Game).
07:12:51 -!- GreaseMonkey has joined.
07:12:51 -!- GreaseMonkey has quit (Changing host).
07:12:51 -!- GreaseMonkey has joined.
09:02:10 -!- Taneb||Kindle has joined.
09:02:27 <Taneb||Kindle> Hello
09:02:50 <Taneb||Kindle> I have TWO lines today
09:03:22 <Taneb||Kindle> Because I am piping the output of Taneb into a Kindle
09:03:38 <Taneb||Kindle> Or is it the other wa round?
09:04:28 <Taneb||Kindle> Lurker with an interesiting name yiyus tell me
09:05:39 <Taneb||Kindle> Oh goodbye
09:05:46 -!- Taneb||Kindle has quit (Client Quit).
09:06:07 <monqy> bye
09:32:16 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
10:49:17 -!- GreaseMonkey has quit (Quit: The Other Game).
10:52:00 -!- monqy has quit (Quit: hello).
11:59:18 -!- smoking has joined.
12:01:15 <smoking> hi to all
12:05:48 -!- smoking has left.
12:05:51 -!- sebbu has quit (Ping timeout: 258 seconds).
12:10:55 -!- boily has joined.
12:11:05 -!- cheater has quit (Quit: Ex-Chat).
12:11:46 -!- cheater has joined.
12:22:28 -!- derrik has joined.
12:30:53 -!- Sgeo has quit (Ping timeout: 245 seconds).
12:45:11 -!- sebbu has joined.
13:18:54 -!- derrik has left.
13:46:02 -!- BeholdMyGlory has joined.
14:04:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:14:47 -!- FireFly has joined.
14:15:01 -!- azaq231 has quit (Quit: Leaving.).
14:27:16 -!- Phantom_Hoover has joined.
14:31:59 -!- copumpkin has joined.
14:41:51 -!- BeholdMyGlory has changed nick to Behold.
14:48:19 -!- MSleep has changed nick to MDude.
14:48:41 -!- Behold has changed nick to BeholdMyGlory.
14:48:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:49:17 -!- BeholdMyGlory has joined.
14:50:00 -!- augur has joined.
14:53:18 -!- BeholdMyGlory has left.
14:54:28 -!- BeholdMyGlory has joined.
15:13:08 -!- Taneb has joined.
15:13:20 <Taneb> Hello
15:14:36 <Taneb> When I get home I will commence in a project that as far as I am aware no one has yet attempted
15:15:16 <Taneb> A program that outputs "Helllo, World!"...
15:15:29 <Taneb> Via One Hundred Esoteric Progra..
15:15:49 <Taneb> MMInG LANGUaGES
15:16:20 <Taneb> The lack of caps lock on akindle is both a blessing and a curse
15:17:16 <Taneb> The placement of the backspace buttone is undoubtedly a curse, though
15:17:47 <Taneb> This will be a long and arduous(?) quest
15:18:10 <Taneb> I will venture into the savage land of brainfuck
15:18:30 <Taneb> Through the dreaded Malbolge swamps
15:19:15 <Taneb> Into the high mountains of Lazy K
15:20:03 <Taneb> Explore the variable-dimension funge space
15:20:38 <Taneb> And probably end with HQ9+
15:21:07 <Taneb> LEVEL 1: HQ9+
15:21:07 <Taneb> h
15:21:54 <Taneb> LEVEL 2: deadfish
15:22:44 <Taneb> Err... what's the ASCII code for "h"?
15:23:01 <Deewiant> > ord 'h'
15:23:02 <lambdabot> 104
15:23:11 <Taneb> Merci
15:23:15 <Taneb> brb
15:23:17 <Deewiant> > map ord "Helllo, World!"
15:23:18 <lambdabot> [72,101,108,108,108,111,44,32,87,111,114,108,100,33]
15:27:37 -!- Taneb has quit (Ping timeout: 252 seconds).
16:01:25 -!- augur has quit (Ping timeout: 252 seconds).
16:10:08 -!- augur has joined.
16:35:22 <Gregor> Taneb: You're not here.
16:35:37 <Gregor> Taneb: It would take you centuries to make a Malbolge program that actually writes "Hello, world!"
16:36:21 <olsner> Gregor: You are here.
16:36:48 <Gregor> olsner: You too are here!
16:36:58 <olsner> Am not!
16:37:40 <Gregor> Taneb: Also make sure that ShaFuck is included.
16:39:08 <Gregor> OK, /me is shocked to learn that apparently Malbolge has been cracked quite a bit more than it was last I checked.
16:39:24 <Gregor> I seem to recall that the closest to a Hello, world! that there was output something like HeLLo
17:10:00 -!- nisstyre has quit (Read error: Connection reset by peer).
17:12:58 -!- CakeProphet has quit (Read error: Operation timed out).
17:33:15 -!- boily has quit (Ping timeout: 260 seconds).
17:50:58 -!- hagb4rd has joined.
18:06:26 -!- elliott has joined.
18:27:27 <elliott> 16:35:37: <Gregor> Taneb: It would take you centuries to make a Malbolge program that actually writes "Hello, world!"
18:27:28 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
18:27:30 <elliott> Gregor: What? It's been done.
18:28:35 -!- Wamanuz2 has quit (Remote host closed the connection).
18:28:51 <elliott> 16:39:08: <Gregor> OK, /me is shocked to learn that apparently Malbolge has been cracked quite a bit more than it was last I checked.
18:28:51 <elliott> 16:39:24: <Gregor> I seem to recall that the closest to a Hello, world! that there was output something like HeLLo
18:29:09 <elliott> Gregor: The first program was "hello world" with random-ish capitalisation which was generated.
18:29:18 <elliott> Gregor: But only a few years after -- like, two thousand and five -- people hand-wrote programs for it.
18:29:24 <elliott> (Well, modulo the "encryption" step and the like.)
18:29:38 <elliott> Malbolge is really susceptible to simple cryptanalysis.
18:32:20 -!- Wamanuz has joined.
18:42:33 <olsner> safe cryptography is hard to build into a language if you intend to distribute the interpreter
18:47:16 <elliott> olsner: only as hard as cryptography in general
18:47:32 <Gregor> Pff
18:47:36 <Gregor> ShaFuck is better :P
18:48:03 <olsner> what I meant was that if you distribute the interpreter people will be able to write programs in it regardless of how clever you make the built-in encryption
18:48:39 <elliott> olsner: um, no?
18:49:00 <elliott> olsner: what you're saying is "if you have the source code to a cryptographic program you can break its cryptography"
18:49:04 <elliott> to which i respond "lol"
18:49:28 <olsner> meh, nm
18:49:42 <elliott> olsner: If the routine is just "check signature, then run" then sure you can stub it out or whatever
18:49:47 <elliott> But then you're not writing in the same language
18:49:56 <elliott> And with things like ShaFuck it's much more entwined in the semantics
18:50:36 -!- kmc has joined.
18:51:07 <kmc> an esolang parody of Rails would be pretty good
18:51:46 <kmc> "Functions are declared using English names but must be called through the French equivalent. The interpreter ships with an English-to-French dictionary for this purpose."
18:53:46 <olsner> elliott: malbolge is not like "check signature, then run"
18:54:04 <elliott> sure
18:54:26 <elliott> Malbolge's flaw is that it's a crappy crypto system
18:54:27 <elliott> :P
19:07:35 -!- pumpkin has joined.
19:07:36 -!- Nisstyre has joined.
19:10:37 -!- copumpkin has quit (Ping timeout: 252 seconds).
19:11:37 -!- Zuu_ has joined.
19:12:27 -!- copumpkin has joined.
19:12:42 -!- Zuu_ has changed nick to Zuu.
19:15:09 -!- pumpkin has quit (Ping timeout: 240 seconds).
19:33:14 -!- oerjan has joined.
19:33:37 -!- copumpkin has changed nick to richardwagner.
19:34:26 <Phantom_Hoover> kmc, what bit of Rails is that parodying?
19:34:37 <Phantom_Hoover> Also, parody esolangs are unloved; go for it.
19:35:00 <kmc> Phantom_Hoover, if you have a class named "Child" it will look for a database table named "children"
19:35:12 <kmc> to this end it contains a long list of irregular English plurals
19:35:32 -!- richardwagner has changed nick to copumpkin.
19:35:41 <kmc> omg a copumpkin
19:35:41 <Phantom_Hoover> kmc, ...really?
19:35:46 <copumpkin> omg yes
19:35:49 <Phantom_Hoover> Like, this is a thing that happens in the real world?
19:35:52 <kmc> is this place just Super #haskell
19:35:53 <Phantom_Hoover> `quote copumpkin
19:35:58 <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
19:36:05 <Phantom_Hoover> kmc, BE WARNED
19:36:20 <Phantom_Hoover> Also I am not in #haskell which is why this place is superior.
19:36:23 <oerjan> kmc: well i think we went over quota about when you arrived
19:36:31 <copumpkin> kmc: I've been in here for millennia!
19:36:35 <oerjan> me neither, these days
19:36:38 <copumpkin> I was in here way before it was even starting to be cool
19:36:52 <kmc> Phantom_Hoover, http://stackoverflow.com/questions/3378316/change-plural-form-of-generated-model-in-rails
19:37:23 <elliott> kmc: it's not our fault you people keep coming here when it's mentioned in #haskell
19:37:29 <kmc> oh and "The Rails core team has stated patches for the inflections library will not be accepted in order to avoid breaking legacy applications which may be relying on errant inflections."
19:37:37 <kmc> that's a sign of a great API design guys
19:37:53 <kmc> "Let's make the language second-guess the programmer!" "OH SHIT we have to keep all the bad guesses forever"
19:38:02 <oerjan> <kmc> is this place just Super #haskell <-- mind you there are people going in both directions.
19:38:20 <oerjan> we probably sent zzo38 to you *MWAHAHAHA*
19:38:26 <elliott> yeah that was our fault, sorry guys
19:38:36 <kmc> haha
19:38:41 <Phantom_Hoover> <elliott> kmc: it's not our fault you people keep coming here when it's mentioned in #haskell
19:38:50 <kmc> Haskell: The Gathering
19:39:14 <Phantom_Hoover> Well, except for the Great Haskell To Esoteric To Ooc-lang Trek.
19:39:22 <oerjan> technically i was in #esoteric before #haskell, _but_ i had already learned haskell when i got to #esoteric
19:39:30 <elliott> Phantom_Hoover: That was a beautiful diaspora. Am I using the word diaspora right.
19:39:48 <Phantom_Hoover> elliott, probably not, but WHO CARES.
19:39:53 <elliott> oerjan: well that's what happens when you single-handedly write over half of the haskell 98 report.
19:40:00 <elliott> (do not listen to oerjan's objections, people, he is far too modest.)
19:40:17 <Phantom_Hoover> kmc, also, wow.
19:42:10 <oerjan> elliott: dammit i was considering making an "inb4 elliott says ..." comment
19:42:56 <kmc> "Haskell is an esoteric language anyway"
19:43:09 <oerjan> !languages
19:43:12 <oerjan> erm
19:43:13 <Phantom_Hoover> kmc, from a certain point of view, it is.
19:43:15 <oerjan> !help languages
19:43:15 <EgoBot> ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
19:43:24 <oerjan> proof: see above categorization
19:43:24 <Phantom_Hoover> That point of view is that of an imperative-only idiot, of course.
19:43:30 <elliott> OH THAT WACKY GREGOR
19:43:34 <kmc> why is c++ not under "esoteric"
19:43:44 <elliott> Phantom_Hoover: ais regularly refers to haskell as esoteric :P
19:43:53 <elliott> kmc: that would be too much of a compliment
19:44:06 <elliott> and why add a joke languages category if it'd only have one entry?
19:44:10 <Phantom_Hoover> elliott, a category that includes NetFuck but not C++?
19:46:03 <oerjan> !forth 2 2 + .
19:46:05 <EgoBot> 4
19:46:17 <Gregor> The real question is, why isn't Forth under esoteric :P
19:46:52 <Lymee> !fyb :[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;
19:46:53 <EgoBot> ​Use: !fyb <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/
19:47:00 <Lymee> !fyb does-this-still-work :[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;:[........]@@[+]++++++++++++*;
19:47:11 <Gregor> It probably doesn't X-D
19:47:20 <oerjan> !underload (:*)(:*)((:)~(*)**)~^^S
19:47:21 <EgoBot> ​:::***
19:47:30 <EgoBot> ​Score for Lymee_does-this-still-work: 0.6
19:47:47 <Gregor> Lymee: Impressive.
19:47:52 <kmc> i think many people well-versed in FP would consider Haskell to be esoteric
19:47:57 <kmc> it's not a typical functional language
19:48:19 <olsner> but almost none of the other functional languages are properly functional
19:48:39 <kmc> how so?
19:49:09 <Lymee> !fyb does-this-still-work :@++[.....................................................................]*;:[........]@@[[+]++++++++++++!>];:[........]@@[[+]++++++++++++!>];:[........]@@[[+]++++++++++++!>];
19:50:12 <EgoBot> ​Score for Lymee_does-this-still-work: 0.0
19:50:36 <Lymee> I guess the defect thing is now gone? =p
20:02:13 <oerjan> it defected
20:15:30 <Phantom_Hoover> DuckDuckGo doesn't give any easily-visible way to deactivate their spelling correction on searches.
20:15:31 <Phantom_Hoover> -what-
20:16:00 <elliott> It doesn't correct unless you click the link.
20:16:09 <elliott> That's a Google thing.
20:16:15 <Phantom_Hoover> No.
20:16:28 <Phantom_Hoover> http://duckduckgo.com/?q=headshoots
20:16:40 <Phantom_Hoover> Note distinct lack of any results even vaguely related to what I'm looking for.
20:17:12 <Phantom_Hoover> Note also lack of any way to get to said results.
20:17:34 <elliott> I suspect that's merely because all matching is fuzzy, whether it precorrects the query or not. BUt hmm, it is a bit difficult to get it to work. "headshoots dwarf fortress" works.
20:17:44 <elliott> Phantom_Hoover: But hey, click the feedback icon in the lower-right and tell 'em; I got a reply within a day.
20:18:09 <elliott> Personally that's the first I've seen of it.
20:41:26 <Gregor> What's a headshoot?
20:42:19 <oerjan> 's when a dorf got shoot in t'head, ye ken
20:43:54 <elliott> Gregor: I don't know, but a bunch of them make a fortress.
20:44:59 -!- monqy has joined.
20:45:01 <oerjan> > ord 'h'
20:45:02 <lambdabot> 104
20:45:28 <elliott> helo oerjan
20:45:28 * oerjan thinks he detects an off-by-one error
20:45:31 <elliott> heloerjan
20:45:52 <oerjan> iiisisiiio
20:45:57 <elliott> eieio
20:45:59 <oerjan> outputs 103 doesn't it
20:46:04 <Phantom_Hoover> Thoerjan.
20:46:07 <elliott> it doesnt even work because deadfish outputs in decimal
20:46:25 <oerjan> well yeah but it's not like he can get any closer :P
20:46:36 <oerjan> Phantom_Hoover: wat
20:47:27 <Phantom_Hoover> oerjan, u
20:47:29 <Phantom_Hoover> um
20:47:30 <Phantom_Hoover> you
20:47:31 <Phantom_Hoover> no
20:47:32 <Phantom_Hoover> you
20:47:46 <Phantom_Hoover> oerjan, http://www.youtube.com/watch?v=Pj2NOTanzWI
20:47:48 <Phantom_Hoover> watch this
20:47:52 <Phantom_Hoover> watch all the suggestions
20:48:01 <oerjan> NOOOOOOOOOO not the youtube
20:48:02 <Phantom_Hoover> Well
20:48:14 <Phantom_Hoover> Except the Japanese McDonald's ad one.
20:48:19 <Phantom_Hoover> I have no idea where that one came from.
20:48:26 <elliott> also the stoner on the price is right one?
20:48:59 <elliott> Phantom_Hoover: I'm surprised oerjan got his Ph.D. without studying that.
20:49:45 <Phantom_Hoover> I know, it's ridiculous.
20:51:03 <Phantom_Hoover> How would he know what the largest number is?
20:51:17 <elliott> didn't oerjan quote about the same figure for when arithmetic might break down once
20:51:18 <elliott> I THINK HE DID
20:58:46 <oerjan> i guess it's what we mathematicians call, er, what was it again
20:59:01 <oerjan> ah yes, "a folklore result"
20:59:20 <oerjan> (or theorem, but a number is not a theorem)
21:00:33 <oerjan> also, i now need to work out a plan to steal elizabeth 5's dress. preferably before it's toast.
21:02:51 <elliott> what do you have against toast :(
21:04:07 -!- zzo38 has joined.
21:04:13 <oerjan> nothing, but the dress would be no use if it cannot change shape.
21:06:41 <zzo38> I have a difficult situation in pokemon card. If the opponent's hand (five cards) consists entirely of trainer cards, I have an exactly one in three chance of winning (assuming I assume he does have), but I cannot see his cards and have no way of knowing that. Alternatively I may try to confuse/sleep, but then I have to survive for seven turns or do it enough times in a row to knock them out.
21:07:41 <Phantom_Hoover> oerjan, will you wear dresses beyond the dreams of avarice?
21:08:13 <oerjan> beyond _any_ dreams, Phantom_Hoover
21:08:27 <Phantom_Hoover> oerjan, don't tell Lymee!
21:08:34 <oerjan> O KAY
21:09:13 <Phantom_Hoover> A mod for DF has Nordic gold in it.
21:09:14 <Lymee> Uuu?
21:09:22 <Phantom_Hoover> This is funny for a number of reasons.
21:09:32 <oerjan> Lymee: no, not unununium, nordic gold
21:09:56 <Lymee> Uuuuuu... >:c
21:10:01 * Lymee puts oerjan into a poofy pink dress
21:10:03 <oerjan> what's so funny about nordic gold
21:10:04 <Phantom_Hoover> Firstly, Nordic gold is a very recent invention and is only used for Euro coins.
21:10:20 <oerjan> wat
21:10:31 <oerjan> tempus googlit
21:10:43 <Phantom_Hoover> Secondly, it's 5% aluminium, and aluminium is as rare as platinum in DF.
21:11:34 <oerjan> um google says it is (was?) used in swedish 10-krona
21:12:35 <Phantom_Hoover> Hmm.
21:13:21 <Phantom_Hoover> OK, it was developed 10 years before the Euro.
21:13:40 <Phantom_Hoover> That's still stupidly recent.
21:14:42 -!- ais523 has joined.
21:15:58 <ais523> happy australian mailman mailing list reminders day!
21:16:02 <zzo38> I selected NIGHTMARE since that has a better chance than the opponent's hand consisting entire of trainer cards (which is very unlikely, although he now has six cards)
21:19:00 <ais523> oh no, is it a bad thing if I see a statement by zzo38 and actually know the context?
21:20:12 <zzo38> Now he is confused and I only need to do 1 point of damage to knock him out. If I select NIGHTMARE, I have 2/3 chance to win this turn (he has DARK CLEFABLE [Lv33]). If I select POLTERGEIST, then I have a 2/3 chance if he has two trainer cards, 1/3 if he has one, 0 if he has none, and guaranteed if he has at least three.
21:21:17 <zzo38> He did not play any cards last turn so he probably has some trainer cards (he has 6 cards remaining in his draw pile and is unlikely to use BILL or PROFESSOR OAK at this time). If he had energy cards he probably would have used them (his bench pokemons have not enough energy to attack at this time), or basic pokemon cards.
21:21:23 <zzo38> But I don't know. What do you suggest?
21:22:04 <oerjan> ais523: resistance is futile
21:22:21 <cheater> what about reactance
21:22:37 <ais523> well, reactance = imaginary resistance
21:22:49 <ais523> that's probably going to be futile too if real resistance is futile
21:22:49 <zzo38> He has thirteen energy cards in his trash, if that would help.
21:23:19 <ais523> on the other hand, imagining it may be more productive if doing it for real doesn't work
21:23:31 <ais523> but it's going to depend a lot on the frequency
21:24:37 <zzo38> His two bench pokemons are resistance to me, but they don't have enough energy to attack and they can still be sleep or confuse. They have not enough energy to retreat a second time (unless he has an energy card in his hand, which he probably does not).
21:25:34 <zzo38> Which attack should I play?
21:25:56 <cheater> psyduck
21:26:46 -!- FireFly has quit (Quit: FireFly).
21:26:59 <kmc> wouldn't a perfect inductor have futile resistance and non-futile reactance?
21:27:12 <kmc> i'm with cheater on this one
21:28:17 <Phantom_Hoover> Inductor?
21:28:23 <ais523> kmc: do you /have/ a perfect inductor?
21:28:33 <ais523> a whole load of engineers would be interested in it
21:28:33 <kmc> yep
21:29:03 <ais523> Phantom_Hoover: the dual of a capacitor; unlike the duals of some components, it's possible to manufacture one in real life, although they're generally avoided because they can't easily be placed on microchips
21:29:05 <Phantom_Hoover> Perfect generally just means modulo energy losses, right?
21:29:17 <Phantom_Hoover> ais523, I know, we did them in AH physics.
21:29:31 <cheater> i heard talking about agda can induce coma perfectly
21:29:38 <cheater> how is that for a perfect inductor
21:29:53 <ais523> did you use them for anything other than demonstrating they obeyed the right formulas?
21:30:16 <ais523> it's amusing watching physicists do electronics, the circuits they use are always physically massive
21:30:26 <ais523> wires tens of centimetres long, etc
21:30:33 <Phantom_Hoover> So a perfect inductor would be one where E = -L(dI/dt) exactly all the time, surely?
21:30:52 <ais523> are you sure you mean E there?
21:31:01 <cheater> yes E is voltage
21:31:12 <ais523> voltage is more commonly V
21:31:19 <cheater> E is common for voltage
21:31:32 <ais523> no, it's common for energy
21:31:32 <Phantom_Hoover> ais523, I couldn't work out what the LaTeX for the curly one is.
21:31:49 <kmc> maxwell's equations canonically use D B E H
21:31:58 <Phantom_Hoover> kmc, irrelevant.
21:32:03 <kmc> no u
21:32:13 <Phantom_Hoover> None of those is emf.
21:32:22 <Phantom_Hoover> 21:31:19: <cheater> E is common for voltage
21:32:27 <Phantom_Hoover> This is so wrong I don't even.
21:32:47 <Phantom_Hoover> It's bad enough that E is used for energy and electric field; using it for voltage too would be far, far too insane.
21:32:52 <kmc> inductors aren't "generally avoided", they're everywhere
21:33:00 <ais523> Phantom_Hoover: I suspect cheater is just trolling again
21:33:04 <kmc> but yeah, cheaper alternatives are used when possible (as with anything else)
21:33:17 <ais523> kmc: avoided in the sense that people don't use them unless they have to
21:33:19 <ais523> but often they do
21:33:25 <Phantom_Hoover> ais523, sure, but it's more fun to pretend that he's that stupid.
21:33:26 <kmc> that's the same as any part though
21:33:44 <ais523> kmc: I've even seen circuits that use VDNRs just so they don't have to use inductors
21:33:59 <elliott> Phantom_Hoover: advanced stupidity can be a kind of trolling
21:34:13 <Phantom_Hoover> elliott, I'm imagining courses in advanced stupidity.
21:34:24 <ais523> elliott: I think the difference between stupidity and trolling is the same as that between ignorance and malice
21:34:38 <zzo38> I do not have PSYDUCK. I have HAUNTER [Lv26].
21:35:00 <elliott> ais523: exactly, so intentional stupidity is a kind of trolling
21:35:07 <elliott> admittedly, not a very common one
21:35:10 <ais523> elliott: yes
21:35:18 <monqy> not very common?
21:35:26 <elliott> monqy: intentional /feigned/ stupidity is common
21:35:33 <elliott> intentionally applying real stupidity is something else entirely
21:35:35 <ais523> elliott: at least Usenet trolls commonly make typos or grammar errors
21:35:44 <ais523> in the hope of causing more confusion when someone (often another troll) points them out
21:36:05 <ais523> elliott: would you call "refusing to learn" real or feigned stupidity?
21:36:13 <cheater> kmc, the problem is that they are not that easy to make
21:36:21 <monqy> ais523: sounds like intentional real
21:36:30 <ais523> monqy: I think I think so too, but am not sure
21:36:36 <elliott> ais523: depends what their motivation is, I suppose
21:36:49 <elliott> ais523: but it's disruptive whether intentional or not
21:37:03 <kmc> one thing i'm learning about this channel is that whenever cheater speaks there ensues a long-winded discussion of trolling
21:37:15 <kmc> regardless of whatever cheater said
21:37:15 <elliott> that's only happened like three times
21:37:22 <zzo38> Which attack do you think has a greater probability of winning?
21:37:27 <kmc> which i think makes him the master troll
21:37:27 <ais523> kmc: if you're known as a troll, even not trolling is trolling, because people look for the trollish aspects
21:37:29 <kmc> zzo38, psyduck
21:37:37 <ais523> kmc: psyduck isn't an attack...
21:37:48 <zzo38> I told you, I do not have PSYDUCK. I have HAUNTER [Lv26].
21:38:12 <cheater> zzo38, out of the possibilities you list i would take HAUNTER
21:38:16 <ais523> zzo38: which expansion is that Haunter from? (what are its attacks, if you don't know expansions?)
21:38:25 <zzo38> It is Lv26.
21:38:26 <cheater> but that is only because you have just mentioned one possibility
21:38:48 <elliott> kmc: I'm not sure provoking a vaguely interesting discussion about trolling counts as good trolling
21:38:49 <ais523> zzo38: I can't look up TCG cards based on their levels on the usual sites
21:38:52 <zzo38> Attacks are POLTERGEIST (damage according to number of opponent's trainer cards in hand), and NIGHTMARE (2 damage + either sleep or confusing)
21:39:10 <ais523> so although the level might be a unique description, it's useless in solving the puzzle
21:39:20 <ais523> hmm... how many HP is the opponent from being KOed?
21:39:21 <cheater> well if he has a lot of trainer cards then go for poltergeist
21:39:46 <ais523> nightmare's going to give you more than a 50% chance of surviving the turn, so it seems like a good use
21:39:48 <zzo38> But he also has a bench card DARK CLEFABLE [Lv33] (reduces damage to DARK cards by 0, 1, or 2, at random). (His active pokemon card is also DARK)
21:39:53 <ais523> unless one of the trainer cards is a full-heal equivalent
21:40:26 <ais523> (Magic: the Gathering makes a better esolang than Pokémon TCG, incidentally; there's more state to maintain)
21:40:33 <zzo38> He is already confused, he played nothing last turn, he has 7 cards remaining in his draw pile, 13 energy cards in his trash, and none of his bench pokemons have enough energy cards to attack (even if he picks one up next turn)
21:40:47 <zzo38> I have not seem his hand!
21:41:07 <ais523> and how many prizes are each player from losing? and do you have benched Pokémon?
21:41:23 <zzo38> I just know that it consists of six cards. It *probably* has no energy cards or basic pokemon cards but I am unsure.
21:41:49 <ais523> also, do you have any trainer cards in hand yourself?
21:41:51 <zzo38> Both of us need to knock out one opponent's pokemon to win. I have bench pokemons, both DROWZEE [Lv12] neither of which will help.
21:41:55 <zzo38> I have no trainer cards myself.
21:42:02 <zzo38> I have only energy cards.
21:42:20 <elliott> hmm, should I fix shiro's massive performance regression or fail to implement scapegoat again...
21:42:32 <zzo38> He need 1 damage to be knocked out, I need 2 damage to be knocked out.
21:43:00 <ais523> zzo38: go with Nightmare, the probabilities are much better that way
21:43:02 <zzo38> Actually I do have SWITCH, but that won't help now.
21:43:05 <zzo38> ais523: OK.
21:43:07 <Deewiant> elliott: Fix shiro, I await your superior funge-space
21:43:22 <zzo38> Yes I win
21:43:48 <ais523> I suppose the problem about using that attack is that now we never will know whether the other attack would have worked too
21:43:53 <elliott> Deewiant: There's a lot to do with shiro before I write that (fix the performance regression + fix the fingerprints I have + fix the weird text-mode bug I have to get a full Mycology pass + clean a lto of things up + put it into git).
21:44:14 <ais523> zzo38: glad to have helped
21:44:23 <Deewiant> elliott: I know; all the more reason to get to it
21:44:26 <ais523> elliott: what's your superior fungespace like
21:44:32 <zzo38> Of course he might have had evolution cards that could be why he played no cards, but if it was not a computer game, maybe he would have tried to trick me, too
21:44:45 <elliott> ais523: Like Deewiant's, but N-dimensional, and maybe fanceir
21:44:46 <elliott> fancier
21:44:53 <elliott> Possibly based on mcmap's experience
21:45:10 <elliott> ais523: I'll be happy if I can beat ccbi on Fungicide :-)
21:45:14 <ais523> elliott: I'm wondering what I should use to store space for Elliottcraft
21:45:35 <elliott> ais523: in-memory, or on-disk? the former should just be as close to the latter as possible, and the latter is more relevant
21:45:45 <Phantom_Hoover> ais523, octree!
21:45:47 <ais523> I wanted to do something hashlife-style, but it's enough not-a-CA that I don't think that it'll work
21:45:52 <elliott> Phantom_Hoover: won't work
21:45:54 <elliott> ais523: For my Elliottcraft, I've ended up just picking something similar to McRegion
21:46:08 <ais523> because it doesn't have a speed-of-light
21:46:10 <elliott> (will now describe:)
21:46:20 <ais523> (it has a 1/tick speed that's very basic, but it can be exceeded)
21:46:50 <elliott> ais523: That is: Each file contains a certain region of space, which is NxN chunks (mcregion assumes finite height that's small enough to stuff into every chunk but it can be generalised); each chunk is MxMxH blocks for constant H (height).
21:47:09 <elliott> ais523: You basically just have a lookup table at the start that points to the starting offset of that chunk in the file, and the actual chunk is just gzip-compressed data.
21:47:13 <elliott> ais523: Then you use the filesystem to do the actual region lookup.
21:47:32 <elliott> It's not amazingly elegant, but it exploits HD properties and the like and has good space usage.
21:47:40 <ais523> that's kind-of neat
21:47:47 <ais523> the problem with my version is that it has an infinite speed of sound
21:47:57 <ais523> sort-of like Rubicon
21:47:58 <elliott> ais523: You might just want to work with a finite world :P
21:48:09 <ais523> which means that speed-of-light-based calculations are problematic
21:48:11 <elliott> (as in, small enough to fit in memory at once)
21:48:14 <ais523> elliott: perhaps, but that introduces boundary issues
21:48:18 <elliott> ais523: Torus?
21:48:23 <ais523> perhaps I'll put black holes at the boundaries that destroy everything
21:48:25 <ais523> torus would be even worse
21:48:37 <elliott> oh, you could get, like, infinite acceleration with a torus, right?
21:48:57 <elliott> ais523: But yeah, mcregion is basically based on the fact that every chunk is tiny when compressed
21:49:09 <elliott> So you can fit a bunch of them into one sector
21:49:16 <Phantom_Hoover> <elliott> oh, you could get, like, infinite acceleration with a torus, right?
21:49:17 <elliott> and rarely have to rearrange the file
21:49:21 <Phantom_Hoover> This is a bad thing?
21:49:29 <elliott> Phantom_Hoover: :P
21:49:36 <ais523> elliott: wrapping all three dimensions would indeed allow infinite acceleration
21:49:47 <ais523> wrapping two, I don't think it would, but it'd make the game world act oddly in a visible way
21:49:52 <elliott> howso?
21:50:27 <ais523> elliott: I've just noticed that someone called Elliott has the highscore for a nonwinning game on NAO; is that you or a name coincidence?
21:50:28 -!- MDude has quit (Ping timeout: 245 seconds).
21:50:44 <elliott> ais523: I'm very sceptical it's me, and I suspect you are too
21:50:45 <ais523> elliott: you'd send something into the distance to get rid of it, and it'd end up coming back from the other side
21:50:47 <ais523> elliott: indeed
21:51:01 <ais523> NAO nicks often match Freenode nicks, though
21:51:06 <elliott> I'm pretty sure I have a different name on NAO
21:51:16 <elliott> ais523: really, my freenode nick is an oddity; Elliott is not a reliable nick elsewhere
21:51:23 <ais523> yep, I suppose so
21:51:30 <elliott> this one was stolen from me years ago, after all
21:51:32 <ais523> even ais523 isn't totally reliable (someone else has the nick on AOL)
21:51:34 <elliott> I'm still not sure what happened there
21:51:46 <elliott> ais523: I'm surprised there are even free AIM names left
21:51:56 <ais523> I haven't found a clash on callforjudgement yet, but it wouldn't surprise me if there was one
21:52:04 <elliott> I wonder how irritated people with really generic AIM names are?
21:52:08 <elliott> I bet they get bothered constantly
21:52:13 <elliott> like, "joe"
21:52:36 <ais523> I suspect most of them are no longer using AIM
21:52:56 <elliott> I don't see why not; it's the most popular messenger in the US still, I think
21:53:00 <elliott> and it's only fourteen years old
21:53:21 <elliott> I suspect they'll have changed screennames, though
21:53:35 <ais523> on pretty much any Internet service, aren't the majority of its users no longer using it, unless it's very new?
21:54:15 <elliott> ais523: well, AIM has critical mass, and it's not much of a novelty application
21:54:32 <elliott> "talk to friends" isn't something that gets old for most people, I suspect, especially when it's that ubiquitous
21:55:24 <elliott> (I suspect facebook is more popular these days, actually)
21:56:38 <elliott> this shiro slowdown is really baffling
21:56:52 <elliott> I'd dig into the core except that'd be completely painful
21:59:14 <cheater> what if you have no friends
21:59:36 <cheater> i guess aim has some bots that you could add like Smarterchild
21:59:40 <cheater> and pretend they are your friends
21:59:50 <cheater> but the conversation isn't too exciting
22:00:44 <Phantom_Hoover> cheater, how do you handle that problem?
22:01:12 <cheater> it is too much to handle
22:03:40 <zzo38> Do you need more-notation for guard-conditions?
22:03:54 -!- Sgeo has joined.
22:04:16 <elliott> Yes.
22:04:37 -!- Phantom_Hoover has quit (Quit: Leaving).
22:05:45 <zzo38> That is good because I put that in the document.
22:05:51 <elliott> Excellent.
22:06:14 <zzo38> That is, guard-conditions in case blocks.
22:07:14 <zzo38> It cannot (and should not) put everything, because of the different things of each one dealing with ordering and duplication and so on.
22:07:38 <zzo38> But what is the best algorithm to make order of patterns based on specificness?
22:07:56 <zzo38> Would a tree structure help?
22:09:12 -!- Wamanuz has quit (Remote host closed the connection).
22:10:08 -!- Wamanuz has joined.
22:10:24 <zzo38> Is there a use of class of a class?
22:25:44 -!- CakeProphet has joined.
22:33:09 <elliott> oh dear
22:33:24 <elliott> my bug appears to be unrelated to the fingerprint change
22:33:39 <ais523> elliott: oh good, I was afraid that the oh dear was out of context both forwards and backwards
22:33:41 <ais523> but you provided some
22:33:51 <ais523> having to ask /you/ about context would seem very out of character for you
22:34:03 <elliott> well, I say "hmm" a lot
22:34:16 <ais523> yep, but that nearly always gets context afterwards
22:34:19 <elliott> usually when I'm desperate enough about my bugs that I hope someone asks what I'm hmming about and then solves the problem immediately
22:34:28 <ais523> in that case, you waited /just/ long enough that I feared the context wasn't coming
22:34:48 <elliott> -coreIns '\"' = modifyCurrentIP $ \ip -> ip{ isStringMode = not (isStringMode ip) }
22:34:49 <elliott> +coreIns '"' = modifyCurrentIP $ \ip -> ip{ isStringMode = not (isStringMode ip) }
22:34:49 <elliott> clearly this is the source of my performance woes
22:35:12 <zzo38> Did I write it good? http://zzo38computer.cjb.net/dnd/options/Illithid_Savant.c
22:35:14 <ais523> hmm, what could be a vaguely interesting bot: a bot that randomly joins channels, waits for someone to talk then asks them the context
22:35:16 <elliott> ok... if the only other change really is the reason for my slowdown, I'm going to kill GHC
22:35:23 <zzo38> (Note: This is not a C program)
22:35:33 <ais523> zzo38: I was a bit confused by that URL...
22:35:50 <elliott> I was hoping it'd be a C program
22:35:50 <zzo38> The "c" stands for "class"
22:36:10 <ais523> zzo38: prestige class? template?
22:36:24 <zzo38> If you look in its directory, you see various extensions corresponding to different thing, such as "i" for item, "f" for feat, etc.
22:36:25 <ais523> and does it apply to illithids, or to non-illithids who want to be more like illithids?
22:36:27 <oerjan> <elliott> clearly this is the source of my performance woes <-- wat
22:36:36 <elliott> oerjan: it was a: ``joke''
22:36:40 <oerjan> > ['\"', '"']
22:36:41 <lambdabot> "\"\""
22:36:47 <elliott> oh thank god, that wasn't the source of my performance bug
22:36:48 <zzo38> ais523: This file is a prestige class. It applies only to illithids it is clear in the prerequisites
22:36:48 <elliott> wait...
22:36:53 <ais523> elliott: since when did you use LaTeX quotes?
22:36:55 <elliott> this bug is literally impossible, then
22:36:58 <zzo38> It even says "prestige class"!
22:37:02 <ais523> ah, OK
22:37:05 <elliott> ais523: I use them when being condescending
22:37:06 <ais523> I didn't look at the file, just at the name
22:37:19 <ais523> elliott: that's a little bizarre...
22:37:27 <zzo38> The second line of the file says [Prestige class]
22:37:33 <ais523> nothing about LaTeX really says condescension to me
22:37:39 <elliott> ais523: they predate TeX
22:37:48 <ais523> well, yes
22:37:50 <elliott> or, well, `old-style Unix quotes' do, and GNU inherited it
22:37:53 <ais523> but are used most famously in LaTeX
22:38:02 <ais523> the double ``'' at least
22:38:09 <ais523> singles are used in a lot more contexts
22:38:16 <elliott> I think it's probably a combination of the kind of terribleness GNU tutorials contain, plus maybe I think Riastradh in hash-scheme used them a ton
22:38:19 <zzo38> I just updated it by adding a few words
22:38:24 <ais523> I suppose ``'' quoting is plausibly used in m4
22:38:35 <ais523> but I'm used to seeing autoconf m4 which uses [[]] rather than regular m4's ``''
22:39:03 <elliott> hmm, I kind of want to set up a Linux cluster
22:39:11 <zzo38> I use `` '' in TeX, since that is the common way of its fonts, and ligatures. But there can be other way depending on what fonts are used.
22:39:48 <ais523> hmm, interesting spam
22:39:55 <ais523> its title is REF NO: L/200-26937 (VIEW ATTACHMENT) with a .html and a .rtf attachment
22:40:00 <ais523> and there's no text in the body
22:40:28 <elliott> ais523: OK; what I'm going to do is, assume there's no performance bug, clean this up massively, and then optimise the hell out of everything
22:40:30 <ais523> I'm actually vaguely curious as to what the attachment is, now, but am worried it's some sort of .rtf zeroday
22:40:42 <elliott> ais523: are you on Linux?
22:40:42 <ais523> I'll open it in gedit, I think, it's unlikely to be a zeroday against /that/
22:40:44 <ais523> elliott: yes
22:40:54 <elliott> things that scare me when I type them: "rm -rf Shiro"
22:41:05 <ais523> oh, apparently it has an invalid character encoding
22:41:06 <oerjan> NOOOOOOOOOOOOOOOOO
22:41:09 <elliott> I should really stop with the -fs
22:41:10 <oerjan> poor Shiro
22:41:13 <elliott> I do them instinctively when I -r
22:41:24 <ais523> which makes me even more suspicious that it's actually a renamed .exe or something
22:41:41 <kmc> rm -ri
22:41:50 <ais523> file /tmp/spam.rtf
22:41:51 <ais523> /tmp/spam.rtf: Rich Text Format data, version 1, ANSI
22:41:53 <elliott> instance (Num a, Num b) => Num (a,b) where
22:41:53 <elliott> (a,b) + (c,d) = (a+c, b+d)
22:41:53 <elliott> (a,b) - (c,d) = (a-c, b-d)
22:41:53 <elliott> -- These don't really make any sense
22:41:53 <elliott> (a,b) * (c,d) = (a*c, b*d)
22:41:53 <elliott> abs (a,b) = (abs a, abs b)
22:41:55 <elliott> signum (a,b) = (signum a, signum b)
22:41:57 <elliott> fromInteger a = (fromInteger a, fromInteger a)
22:41:58 <ais523> elliott: I normally leave them out even when I need them
22:41:59 <elliott> augh, what was I thinking when I wrote that second set?
22:42:01 <ais523> and then have to redo the delete
22:42:15 <Deewiant> elliott: ***FUNKY***
22:42:16 * ais523 reads it in less
22:42:24 <elliott> Deewiant: wat
22:42:28 <kmc> abs (a,b) = (sqrt (a^2 + b^2), 0)
22:42:36 <Deewiant> elliott: Re. funky instances in list-tries
22:42:41 <Deewiant> Just reminded me
22:42:41 <ais523> oh, apparently it's just ASCII text apart from it contains a NUL at the end for no obvious reason
22:42:43 <elliott> Deewiant: heh
22:42:45 * elliott replaces them all with errors
22:42:52 <elliott> kmc: heh
22:42:54 <ais523> We advise that you keep this award personal, till your claims have been processed and your funds remitted to you. \par This is a part of our security measures to avoid double claiming or unwarranted participants or impostors, taking advantage of the situation.Failure to claim your prizes would result to forfeiture and will be used for next 2,000,000 pounds sterling international lottery program.\par
22:42:59 <oerjan> elliott: um looks like perfectly appropriate pointwise arithmetic to me >:)
22:43:02 <elliott> ais523: always null-terminate your strings
22:43:17 <ais523> elliott: yes, but a nul-terminated... text file?
22:43:28 <elliott> ais523: they're strings!
22:43:35 -!- hagb4rd has quit (Ping timeout: 252 seconds).
22:43:39 <elliott> oerjan: yes, I'm sure that will make my bugs so much more comforting :)
22:43:39 <ais523> but not C strings
22:44:20 <ais523> oh, they've even included a telephone number in the UK, which is nice
22:44:39 <ais523> a mobile number, by the look of it
22:45:01 <ais523> it appears to just be phishing for real name/address/phone number sets
22:45:07 <ais523> I'm disappointed, I was hoping for an exploit
22:45:21 <oerjan> user-friendly spam
22:45:29 <elliott> -- gulp
22:45:29 <elliott> unsafeToAny :: a -> Any
22:45:29 <elliott> unsafeToAny = unsafeCoerce
22:45:29 <elliott> unsafeFromAny :: Any -> a
22:45:30 <elliott> unsafeFromAny = unsafeCoerce
22:45:32 <elliott> I share your thoughts, past Elliott
22:45:48 <elliott> where run Fingerprint{..} =
22:45:48 <elliott> fpRun $ FPState { fpGet = (unsafeFromAny . (Map.! fpName)) <$> gets globalFPState
22:45:48 <elliott> , fpModify = \f -> modifyGlobalFPState (Map.adjust (unsafeToAny . f . unsafeFromAny) fpName)
22:45:48 <elliott> , fpGetIP = (unsafeFromAny . (Map.! fpName)) <$> gets (ipFPState . currentIP)
22:45:48 <elliott> , fpModifyIP = \f -> modifyCurrentIP $ \ip -> ip{ ipFPState = Map.adjust (unsafeToAny . f . unsafeFromAny) fpName (ipFPState ip) } }
22:45:52 <elliott> but do you share my horror?
22:46:09 <kmc> haha
22:46:18 <kmc> dude, we have Data.Dynamic for a reason
22:46:32 <elliott> kmc: yeah, I used Data.Dynamic, but then I realised that it was wasting a lot of runtime on checks that were always true
22:46:35 <elliott> :)
22:46:38 <kmc> yeah
22:46:48 <elliott> kmc: I swear I'm doing macrooptimisation too!
22:46:50 <elliott> but the competition is tough
22:46:55 <oerjan> hm is unsafeFromAny . unsafeToAny actually safer than just plain unsafeCoerce, and if so why isn't it defined that way to begin with...
22:47:03 <elliott> oerjan: how is it safer
22:47:08 <kmc> it's safer because it's less polymorphic
22:47:22 <kmc> so more mistakes you could make with it are compile-time errors
22:47:31 <Sgeo> Being incompetent with a few million people's passwords is one thing. Being incompetent with data that, if released unredacted, could end up killing people, is a different thing entirely
22:47:33 <kmc> well, not the direct composition of the two
22:47:33 <elliott> unsafeFromAny . unsafeToAny :: a -> c
22:47:38 <elliott> doesn't look less polymorphic :-P
22:47:38 <kmc> but using one and then using the other somewhere
22:47:51 <elliott> oerjan: well, you can cast things that can't be casted to Any
22:47:55 <elliott> it's just not very reliable
22:47:58 <oerjan> elliott: well that haddock page says converting to and from Any are supported. hm, it may be only if it's the same type at both ends...
22:48:04 <kmc> yes
22:48:17 <elliott> oerjan: yes
22:48:18 <kmc> S -> Any -> T is no better than S -> T
22:48:33 <oerjan> ok then
22:51:49 <zzo38> Maybe you prefer this spell better instead of Illithid_Savant file? http://zzo38computer.cjb.net/dnd/options/Quick_Scroll.s
22:52:13 <elliott> some of this code is so ugly :(
22:52:18 <elliott> I don't know what I was thinking
22:52:26 <elliott> actually, yes I do, I was thinking I should pass Mycology before worrying about that
22:52:41 <zzo38> Or even the Prohibit_Metamagic spell, or Merciful_to_Gibbering_Mouthers, or Remove_Reality
22:53:11 <elliott> Remove_Reality sounds good
22:53:15 <ais523> Remove Reality is a spell that it ever makes sense to cast?
22:53:19 <oerjan> zzo38: oh looking at that haddock page again, unsafeCoerce# (with the #) _can_ be used with unboxed types
22:53:25 <ais523> zzo38: do you know about the "Locate City Bomb"?
22:53:26 <oerjan> istr you asked about that
22:53:45 <ais523> oerjan: the # makes it even more unsafe?
22:53:45 <zzo38> That is what I thought, once I saw unsafeCoerce#, there is one for boxed types and one for unboxed types
22:54:01 <zzo38> ais523: No I don't know about the "Locate City Bomb".
22:54:12 <oerjan> zzo38: well unsafeCoerce is just a wrapper around unsafeCoerce#, which can be used for all, iiuc
22:54:20 <zzo38> And currently Remove Reality is only the name, it has no text currently
22:54:23 <ais523> zzo38: it's a trick you can do by combining a lot of different feats
22:54:43 <ais523> that converts the divination spell Locate City into the most powerful damage spell in the game
22:55:31 <ais523> (in a caster-level times 10 mile radius, it deals 1 lightning and 1 sonic damage to everything, and makes them make a reflex and fortitude save; if they fail both saves, they're pushed to the edge of the area of effect and take d6 physical damage for every 10 feet moved)
22:56:02 <ais523> (it's generally also considered to affect inanimate objects, including the ground below the caster, and they automatically fail their saves unless magical)
22:56:13 <zzo38> OK, now I know.
22:56:45 <elliott> btw, does anyone know a system with getenv but not putenv?
22:56:56 <ais523> I think it still also locates cities, too
22:57:09 <ais523> elliott: arguably gcc-bf
22:57:12 <ais523> but only arguably
22:57:21 <ais523> because the whole notion of an environment is pretty hazy there
22:57:35 <elliott> ais523: I would like to see gcc-bf run Shiro :)
22:57:48 <oerjan> ais523: the # doesn't make it more unsafe, but it allows it to be used on non-lifted values
22:57:48 <ais523> I'd like to see it run a stdio hello world without crashing
22:57:50 <elliott> Right now I depend on System.Posix.Env because EVAR requires putenv, but that's rubbish because Windows has it too
22:57:55 <elliott> I'm tempted to just use the FFI to get putenv from the ystem
22:58:08 <ais523> note that getenv/putenv are entirely usermode code
22:58:10 <ais523> in fact, pure C
22:58:17 <ais523> they just manipulate the environ variable
22:58:40 <ais523> in fact, the whole thing's done by the libc; the only externally-visible time the environment comes up is when you exec a process
22:58:56 <ais523> and that goes via the libc, and it just puts the environment in as an arg when you exec
22:59:04 <zzo38> I rarely use damaging spells. The D&D game I am in most recently, I have only a single damaging spell (actually psionic power), the Energy Ray power. It is useful because you affect the type of damage, such as fire, electric, sonic, etc
22:59:05 <ais523> (the system call is execve, requiring an explicit environment)
22:59:34 <elliott> ais523: is environ as portable as getenv?
22:59:47 <ais523> I don't know
22:59:47 <Deewiant> elliott: Nope
22:59:53 <elliott> right
22:59:55 <Deewiant> Windows has getenv, not environ
23:00:08 <ais523> Deewiant: Windows does have environ, or at least 3.1 did
23:00:12 <ais523> if you used main rather than WinMain
23:00:23 <ais523> I, um, have very very out of date knowledge on how Windows works
23:00:31 <ais523> as I used to target 3.1 even once Windows XP was out
23:00:44 <ais523> and got annoyed when they removed deprecated functions from Windows 2
23:01:26 <ais523> (in particular, the one to control the internal PC speaker, I don't think they ever did replace that one)
23:02:23 <elliott> why on earth would you call a fingerprint for bitwise operations BOOL?
23:03:21 <Sgeo> My Operating Systems Internals and Design professor wrote a simulated OS in .NET that we'll be using for homework :/
23:05:33 <ais523> elliott: I wouldn't
23:05:53 <elliott> ais523: good
23:05:58 <ais523> Sgeo: in .NET "asm"? or in a language that compiles to .NET?
23:06:58 <elliott> who's fault is it that I'm writing this silly interpreter, anyway?
23:07:09 <Sgeo> I think it's just an application that pretends to be a simple CPU that takes a made-up assembly as machine code and does other OS-related tasks that we will replace with our own code
23:07:27 <elliott> oh, goody! a fingerprint with actual state to port!
23:07:28 <Sgeo> So, a language that compiles to .NET, I guess
23:08:05 <Sgeo> Why is the Bluebottle site down? :(
23:08:16 <Sgeo> Oh, it's not
23:08:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:24:02 -!- mauke has joined.
23:24:17 -!- preflex has joined.
23:27:32 <elliott> they're invading!!!!
23:29:57 <oerjan> clearly a conspiracy
23:30:12 -!- copumpkin has joined.
23:33:33 <ais523> gah, why does GitHub put a flash applet on code pages that just copies them to the clipboard?
23:33:33 -!- Gregor has quit (Read error: Operation timed out).
23:33:33 <ais523> since when were users not able to do that by themselves?
23:33:33 <Sgeo> RubyGems does that too
23:33:33 <oerjan> i can see no sign of #esoteric being recently mentioned in #haskell, so it's even worse: it's a _secret_ conspiracy.
23:33:33 <elliott> kmc: copumpkin: mauke: ok, speak up
23:33:33 <Sgeo> Oh right, Ruby and Git are in bed together for some reason
23:33:33 <elliott> who do we have to execute?
23:33:33 <copumpkin> ?
23:33:33 -!- CakeProphet has quit (Ping timeout: 258 seconds).
23:33:33 <elliott> don't play dumb
23:33:33 <oerjan> shachaf: YOU TOO
23:33:33 <copumpkin> I think cheater mentioned it in #haskell-blah at some point
23:33:33 <mauke> cernel joson
23:33:33 <copumpkin> or something like that
23:33:33 -!- Gregor has joined.
23:33:33 <shachaf> oerjan: Me?
23:33:33 <oerjan> YES YOU
23:33:33 <elliott> copumpkin: please tell me he was complaining about getting banned
23:33:33 <shachaf> I've been here for years.
23:33:33 <kmc> zzo38 is the #esoteric ambassador to #haskell
23:33:33 -!- Gregor has changed nick to Guest8904.
23:33:33 <copumpkin> elliott: dunno
23:33:33 * shachaf is a professional idler.
23:33:33 -!- glogbot has quit (Ping timeout: 258 seconds).
23:33:40 -!- esowiki has joined.
23:33:40 -!- glogbot has joined.
23:33:42 <shachaf> This is a foul place indeed.
23:33:51 <elliott> shachaf: no, that was zzo38's very own genius
23:34:06 <elliott> we just mentioned Haskell a few too many times, I think, so you all got to understand the magic
23:34:33 <mauke> :-|
23:34:46 <ais523> shachaf: zzo38 does that sort of thing by himself, but often talks about it here
23:35:38 <Sgeo> Usually though it's with more obscure things like ... that game thing, right?
23:36:08 <mauke> @keal
23:36:08 <lambdabot> where can i find opensource schematics of Linus Torvalds' x86 clone?
23:36:36 <shachaf> @protontorpedo
23:36:36 <lambdabot> and haskell is not a lisp. correct? holy shit then m learning haskell
23:36:47 <mauke> preflex: be PoppaVic
23:36:48 <preflex> automatic vars are stackframe, which is fine for use and lose - but some folks tend to be pigs about expecting infinite Memory available. It's an issue for some folks, and in combination with recursion, can ruin your day. I won't even talk about threads.
23:36:50 <elliott> ?yhjulwwiefzojcbxybbruweejw
23:36:51 <lambdabot> "\"\\\"\\\\\\\"\\\\\\"
23:37:01 <kmc> we all got to understand the magic: the gathering
23:37:05 <elliott> mauke: so how would one get preflex to output a line starting with an exclamation mark, backtick, or caret?
23:37:10 <shachaf> @@ (@protontorpedo) (@vixen @protontorpedo)
23:37:11 <lambdabot> I dont think tcl cn do that church is my favourite computer scientist.
23:37:11 <kmc> @. elite nixon
23:37:12 <lambdabot> YOU h4VE 7o FACE tHE phaC7 tH47 wH0LE prob1e/\/\ iz R341ly 7|-|3 blACxs. the k3Y I5 70 dIvize a SY5TEM THAT reCONIZE$ +HiS w|-|i|e no7 4PPe4RinG 70...
23:37:13 <elliott> I ask purely out of curiosity.
23:37:14 <mauke> elliott: should be impossible
23:37:24 <elliott> mauke: that's what they said about lambdabot, too >:|
23:37:28 <mauke> well, during normal operation
23:37:44 <mauke> elliott: you'd use the msg command
23:37:50 <Sgeo> @sgeo
23:37:50 <lambdabot> Unknown command, try @list
23:37:54 <Sgeo> Oh
23:37:56 <ais523> Sgeo: I wonder if zzo38 getting interested in something /makes/ it obscure
23:37:59 <elliott> ?so !sh echo '?quote oops'
23:37:59 <lambdabot> !sh echo '?quote oops' not available
23:38:00 <EgoBot> ​?quote oops not available
23:38:04 <elliott> heh
23:38:10 <shachaf> @@ <protontorpedo> (@protontorpedo) <lambdabot> (@vixen @protontorpedo)
23:38:10 <lambdabot> <protontorpedo> how would haskell solve the following gnarley problem: many client distributed accross the usa, transfers must take palce in the form of file transfer, and data must be read from
23:38:10 <lambdabot> files, and recorded, then other partners who apply taxes to this data and then give abck new files with taxes aded, then last transers to 4th parties who get us paid for the phone calls that are the
23:38:10 <lambdabot> product <lambdabot> church is my favourite computer scientist.
23:38:19 <elliott> ?so !sh echo '?quote oops'; #
23:38:19 <zzo38> ais523: I doubt it but possibly you try figure it out
23:38:19 <lambdabot> !sh echo '?quote oops'; # not available
23:38:20 <EgoBot> ​?quote oops
23:38:43 <ais523> even the Pokémon TCG stuff, zzo38 is interested in a version of it that nobody plays any more
23:38:52 <ais523> which makes his questions hard to follow sometimes
23:38:54 <mauke> preflex: msg #esoteric ?so !sh echo '@quote oops'; #
23:38:54 <preflex> ?so !sh echo '@quote oops'; #
23:38:55 <lambdabot> !sh echo '@quote oops'; # not available
23:38:55 <EgoBot> ​@quote oops
23:38:56 <ais523> (except, presumably, zzo38 himself)
23:39:15 <elliott> preflex: msg #esoteric obviously i have no security whatsoever
23:40:15 <mauke> http://mauke.dyndns.org/stuff/ploki/ - here's an esolang
23:40:28 <oerjan> @quote oops
23:40:29 <lambdabot> ihope says: Oops, I forgot that Djinn doesn't do GADT's.
23:40:39 <zzo38> Why don't you play that version of Pokemon card anymore?
23:40:55 <elliott> oh, what is this travesty? nobody pinged fungot during the quoting-fest
23:40:55 <fungot> elliott: and python control-flow expressions. any ideas what caused the original ( sorted) table of commands for my proggie i could use
23:40:57 <ais523> zzo38: actually, I never played that particular version in the first place
23:41:01 <elliott> ^source
23:41:01 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
23:41:02 <oerjan> elliott: oh wait, EgoBot's invisible space
23:41:12 <ais523> but mostly, because it isn't competitive between humans, and most players of competitive card games like playing human opponents
23:41:35 <zzo38> I prefer playing it with random deck, if possible
23:41:38 <kmc> which version is that?
23:41:41 <zzo38> That is deck consisting of random cards
23:41:45 <elliott> mauke: doesn't look _that_ esoteric :-D
23:41:54 <elliott> although i have no idea what io.pk does.
23:41:57 <zzo38> (Pokemon Card GB2 does not have that function, though)
23:42:11 <mauke> elliott: copies stdin to stdout
23:42:19 <zzo38> What is it not competitive?
23:42:35 <elliott> ABRUF 200 #<@sort #<cmp (list ] mid)#> @sort #<cmp (list [ mid)#>#>
23:42:42 <elliott> mauke: that looks like J if you expanded most of the verbs into words
23:43:17 <mauke> this language hides terrible secrets
23:44:34 <mauke> http://mauke.dyndns.org/stuff/ploki/ploki-0.6.5.1/examples/uncomment.pk
23:45:01 <elliott> pretty, apart from the parts that look like they're lifted from lolcode
23:45:16 <mauke> this language is older than lolcode (or lolcats)
23:45:36 <elliott> I was just referring to the LEET and KTHX keywords :P
23:46:09 <mauke> yeah, WUNT and CLAUDS are obviously perfectly normal :-)
23:46:17 <elliott> naturally
23:47:15 <elliott> ais523: tell mauke about Feather, hopefully it'll have a profound enough effect that the invasion tapers off
23:47:26 <ais523> elliott: I think I've come across a reasonably sensible definition of an esolang
23:47:42 <oerjan> ais523: THEN IT'S WRONG
23:47:43 <elliott> mention Feather to ais523, topic suddenly changes
23:47:55 <oerjan> ...retroactively.
23:48:01 <mauke> radioactively
23:48:02 <Sgeo> Would it be possible for me to play with Epigram 1?
23:48:14 <ais523> it's "a language for which the creation of comprehensive library support is not seen as something that it's particularly worth focusing effort on"
23:48:42 <elliott> ais523: ah, good, so funge-98 isn't an esolang, and PSOX isn't an esolang project :)
23:48:54 <oerjan> i'm with elliott
23:48:59 <Sgeo> Oh, found it
23:49:13 <elliott> oerjan: as in, you agree with the literal statements I made, or you agree with them sarcastically?
23:49:17 <ais523> elliott: I'm inclined to think that funge-98 is dangerously close to becoming a non-eso language, and may even have crossed the line already
23:49:26 <elliott> because they're fairly close to opinions I hold literally
23:49:36 <oerjan> mauke: i detect that you do not know the horror which is feather
23:49:41 <oerjan> elliott: yes.
23:49:51 <ais523> oerjan: neither does anyone else! that's what the horror's about
23:49:53 <elliott> nobody truly knows the horror other than ais523. it will eat his soul.
23:50:03 <elliott> if only he... looks
23:50:03 <mauke> oerjan: correct
23:50:10 <elliott> [spooky music]
23:50:19 -!- augur has quit (Read error: Connection reset by peer).
23:50:19 <Sgeo> The most horrible thing about Feather is the fact that it doesn't exist.
23:50:29 <elliott> that's far from the most horrible thing about it
23:50:31 <ais523> mauke: it's an idea that I'm not entirely sure is internally consistent, and trying to work out whether it is or not drives me mad
23:50:40 <mauke> I've programmed in Sorted!, though
23:50:44 <ais523> so it indeed doesn't exist, and wondering whether it could is the issue
23:50:48 <ais523> that causes all the problems
23:51:01 <ais523> they've mostly been confined to me, though, because nobody else really grasps what the idea is well enough to think about it
23:51:05 -!- augur has joined.
23:51:20 <mauke> is this like Tamerlane?
23:51:35 <elliott> ais523: you should at least give him the basic summary :P
23:51:39 <ais523> I doubt it, with Feather, "is this like X" seems to be false for all X
23:51:44 <ais523> including X = Feather
23:51:45 <elliott> ("mumble mumble retroactive change self interpreter")
23:52:04 <ais523> elliott: you can't summarise Feather to a Haskell person
23:52:11 <elliott> burn
23:52:11 <ais523> or to anyone else, fwiw
23:52:18 <mauke> http://catseye.tc/projects/tamerlane/doc/tamerlane.html
23:52:21 <elliott> ais523: well, you can inaccurately summarise it
23:52:30 <ais523> I supose so
23:52:36 <elliott> that's what the rest of us go by, at least
23:52:57 <elliott> mauke: the basic, inaccurate summary is that Feather is a language based around retroactively changing the interpreter
23:52:58 <ais523> but basically, it's a modification of the principle of single static assignment, where instead of assigning to a variable, you retroactively change the value it had when it was created
23:53:00 <oerjan> mauke: i think i can say with some confidence "no". and i hardly looked at your link.
23:53:08 <elliott> mauke: which means, Feather is normally interpreted by an infinite stack of metacircular Feather interpreters
23:53:10 <ais523> this applies to everything, including the interpreter itself
23:53:18 <elliott> mauke: but you can replace every element of that infinite stack with a new interpreter at the beginning of time
23:53:29 <elliott> and you do everything like that
23:53:29 <mauke> is this like the reverse ST monad?
23:53:31 <ais523> elliott: actually, the retroactive changing of the interpreter isn't even the most confusing element
23:53:38 <ais523> mauke: what's the reverse ST monad?
23:53:44 <mauke> like ST, but backwards
23:53:45 <ais523> it's more like continuations, anyway, used in a particular way
23:53:52 <ais523> oh, it's also object-oriented
23:53:56 <mauke> haha
23:54:30 <ais523> and this is how inheritance is done too
23:54:37 <ais523> so the whole thing almost fits together perfectly
23:54:43 <ais523> but working out the details drives people mad
23:55:00 <mauke> ok, then I'm just going to talk about ploki instead
23:55:07 <ais523> I made a major breakthrough when I made all objects have a property that's just a boolean of whether they're the unbox operator or not, that returns an unboxed value
23:55:16 <mauke> bonus points if you can tell me wtf "ploki" means
23:55:17 <oerjan> is ploki a p-language like plof
23:55:17 <ais523> at least it seems possible to get the whole thing off the ground if you do that
23:55:27 <ais523> even if it seems a little ridiculous to have something that specific
23:55:29 <elliott> mauke: programminglanguageusedby loki?
23:55:38 <mauke> elliott: unlikely
23:55:41 <elliott> PerLiskindof OKay Ithink
23:56:13 <kmc> wow, Feather sounds like it was designed during a salvia trip
23:56:25 <mauke> I think ploki introduces several novel features
23:56:31 * elliott notes http://esolangs.org/wiki/Feather
23:56:42 <ais523> kmc: this is part of the reason I don't take mind-altering drugs, this is the sort of thing I come up even when sober and in my apparently right mind
23:56:52 <mauke> here's not one of them: interpreter written in (mostly) ansi c
23:57:22 <mauke> major feature: there are no malformed ploki programs
23:57:31 <mauke> literally anything is a valid program
23:57:37 <oerjan> i think oklopol had a language like that
23:57:45 <elliott> oklotalk was like that
23:57:55 <elliott> I suspect it worked in a rather more insane manner than ploki in that aspect, though
23:58:02 -!- Slereah has joined.
23:58:06 -!- GuestIceKovu has quit (Ping timeout: 252 seconds).
23:58:16 <mauke> also: no error messages
23:58:24 <mauke> the only "diagnostic" is an infinite loop
23:58:35 <elliott> lame, it should just fix the program and keep going :)
23:58:39 <ais523> this sounds like lazy language designer features so far
23:58:45 <elliott> tried to open a file that doesn't exist? well, just open another one
23:58:48 <mauke> but the interpreter is smart enough to recognize some infinite loops and optimize them to sleep(inf)
23:58:50 <elliott> preferably one with a name close to the requested one
23:59:05 <mauke> elliott: basically impossible in ansi c
23:59:10 <mauke> (no directory support)
23:59:21 <elliott> mauke: excuses
23:59:34 <ais523> also, indeed, I can't see any similarities between Feather and Tamerlane at all
23:59:47 <elliott> relatedly: cpressey should come back here
23:59:52 <elliott> (if we say it at least once per day it will come true)
23:59:52 <mauke> ok, how about this: regex matching directly on filehandles
←2011-07 2011-08 2011-09→ ↑2011 ↑all