00:00:01 <coppro> elliott: you're spouting nonsense
00:00:16 <elliott> coppro: Alternatively: Tell that to Conal's face.
00:00:45 <coppro> it's at least bulshytt
00:00:54 <Vorpal> this looks interesting: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming
00:00:55 <coppro> what you're saying, anyways
00:00:59 <elliott> coppro: OH MAN THANKS FOR YOUR CONVINCING ARGUMENTS
00:01:03 <elliott> good to know you are right
00:01:23 <elliott> i'll go back to using haskell, which is perfect as it is, obviously, despite the fact that many of the "leading" haskellers don't like IO and want FRP to succeed
00:01:30 <coppro> elliott: they're as high quality as your usual arguments
00:01:57 <oklopol> you can just run two copies of the program, and allocate a huge amount of memory in the other one, then always take the image drawn by the program that has recently changed the screen more
00:02:06 <oklopol> is my solution to gc freezing
00:02:16 <Vorpal> <coppro> elliott: they're as high quality as your usual arguments <-- coppro++
00:02:26 <oklopol> so that its gc cycle is different
00:02:33 <elliott> Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me?
00:02:36 <coppro> your argument is pretty much a vague appeal to authority
00:02:42 <elliott> you're in good company! like... Republicans!
00:02:46 <coppro> rather than any argument or even explanation of FRP
00:02:46 <elliott> coppro: no, see, i haven't presented any arguments
00:02:49 <elliott> coppro: i've just told you to go away
00:02:53 <Sgeo> elliott, http://docs.racket-lang.org/frtime/index.html isn't decent/
00:03:02 <Vorpal> elliott, I have no idea. I agreed with him based on actually agreeing on the point he was making.
00:03:12 <coppro> elliott: your argument is that FRP is "what makes functional programming possible"
00:03:13 <Vorpal> elliott, so I never tried out what you suggested.
00:03:19 <elliott> coppro: the IO monad is imperative.
00:03:20 <coppro> elliott: I'm not going away
00:03:23 <elliott> it wasn't an argument, also.
00:03:32 <elliott> Sgeo: no, it isn't. a good general implementation of FRP requires solutions to a few open research problems.
00:03:50 <coppro> the IO monad is interprative only depending on your interpretation of it
00:04:08 <Vorpal> elliott, does it feel good to always use strawman arguments by the way?
00:04:22 <elliott> Vorpal: ah... you see, you are making the same mistake as coppro
00:04:25 <elliott> I'm not making an argument.
00:04:28 <elliott> I'm telling you to fuck off.
00:04:40 <Vorpal> elliott, I am replying to this line in the same style: "<elliott> Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me?"
00:04:48 <coppro> elliott: we're not fucking off
00:04:51 <elliott> coppro: the IO monad is not impure iff C is impure.
00:04:54 <Sgeo> elliott, if you're going to tell people to fuck off, I'm going to tell you to fuck off.
00:04:56 <coppro> if you wish to stop having us talk to you
00:04:58 <elliott> ah, but you see, if I /ignore you, then you *will* fuck off.
00:05:12 <elliott> IRC clients have had ignore for the past two decades
00:05:17 <Vorpal> elliott, also appeal to authority: "<elliott> coppro: Alternatively: Tell that to Conal's face."
00:05:18 <oklopol> then that makes even less sense
00:05:28 <elliott> Vorpal: see, that was telling him to fuck off.
00:05:34 <coppro> elliott: you /ignoreing me is not me fucking off;
00:05:38 <elliott> if i thought an argument with coppro could be in any way productive, i would have responded differently.
00:05:44 <elliott> but, you see, i don't, because he always acts the exact same way
00:05:55 <elliott> oklopol: greater than works.
00:05:59 <elliott> Condition: ['compare', '#0', '#1']
00:06:03 <Vorpal> elliott, actually I think FRP looks interesting. But I despise the way you argument by being a jerk.
00:06:04 <Sgeo> elliott, I don't know if what you're saying has merit, but I am furious at you telling people to fuck off just because you disagree with them
00:06:10 <coppro> elliott: obviously no Haskell code will be truly functional
00:06:15 <elliott> Vorpal: *I am not arguing*
00:06:18 <coppro> no code on any Von Neumann machine will be
00:06:36 <Vorpal> elliott, okay if you say so. Looked damn similar however.
00:06:44 <elliott> ignored until, say, you figure out the difference between language and implementation, coppro
00:06:46 <coppro> elliott: do you want to refute my argument?
00:06:53 <Sgeo> coppro, the impurity of Haskell lies right outside Haskell
00:07:06 <oklopol> oh so maybe i did something completely fuck when i changed that one last bit.
00:07:26 <elliott> oklopol: :D my greater than? works even if you don't give it #0 and #1
00:07:32 <elliott> Condition: ['compare', '#0', '#1']
00:07:33 <coppro> elliott: your argument is that IO is not pure because of how it is implemented, but FRP is pure because it can be implemented so that it can be pure
00:07:37 <coppro> i.e. you have no logic
00:07:43 <elliott> oklopol: how amazing is that
00:08:09 <zzo38> Magic Set Editor scripting language is almost pure. It has a few impurities which I think could be easily corrected.
00:08:37 <oklopol> coppro: look beneath the surface
00:08:50 <oklopol> elliott: can i see your code? :P
00:09:00 <zzo38> coppro: Why do you think?
00:09:07 <coppro> zzo38: it's an imperative language...
00:09:10 <elliott> greater than? ~ {. -1, 3 -> 0
00:09:10 <elliott> greater than? ~ {. 3, 3 -> 0
00:09:13 <elliott> greater than? ~ {. 3, -1 -> 1
00:09:14 <coppro> it happens to have first-class functions
00:09:14 <zzo38> (Well, I am making TeXnicard and it is more like dc instead?)
00:09:17 <elliott> greater than? ~ compare; #0; #1
00:09:19 <elliott> oklopol: maybe removing <> made it work, but i doubt it
00:09:54 <zzo38> coppro: No it only has local variables and those are not impure. They are only local.
00:10:12 <coppro> zzo38: how do you define pure?
00:11:47 <zzo38> coppro: It would be pure if you change the random number functions to take a parameter "seed" which is normally by the built-in variable called "seed", which is available (and reseeded) for each export template, add card scripts, and pack generation. And also the export template functions for directory should instead return a list, ...
00:12:03 <coppro> zzo38: define pure for me
00:12:10 <zzo38> ... and you return from the export template script, the list of all of those concatenated together and then it will copy the files. Instead of duing it immediately.
00:12:10 <luatre> ValueError: substring not found :(
00:12:15 <zzo38> There, that would be pure.
00:12:18 <oklopol> look at this code snippet of mine, and tell me what you think
00:12:19 <oklopol> greater than? ~ {. 5, 6 -> 0 . 10, 12 -> 1 }
00:12:20 <oklopol> greater than? ~ {. 2, 2 -> 0 . 6, 6 -> 1 }
00:12:28 <oklopol> and then i looked at it for 15 minutes
00:12:36 <zzo38> coppro: Do you understand me?
00:12:38 <oklopol> i think i should sleep amore
00:12:39 <elliott> oklopol: i think you are my favourite person and can i come live with you
00:12:53 <oklopol> i've always wanted a 15yo gf
00:13:26 <elliott> oh, insufficiently clueterested
00:13:36 <elliott> clueterested sounds like some...horrible medical procedure
00:13:47 <elliott> like they redirect your bladder to your balls because it got infested or something
00:13:49 <coppro> zzo38: because you have failed to define pure
00:14:04 <zzo38> I know it is not a proper definition but doesn't it help?
00:14:14 <coppro> I want to know what your definition of pure it
00:15:23 <zzo38> coppro: That every function affects and is affected by, nothing outside of itself. Other variables outside of the function can be considered like a special kind of parameters, and so can variable assignment commands, because they can also be considered like parameters to the rest of the lines of the current function.
00:15:54 <elliott> oklopol: i think you have a bug or something
00:16:06 <elliott> zzo38: the current time of day is a paraemter to the program!
00:16:27 <elliott> there's only one recursion
00:16:49 <zzo38> (It does mean that for random numbers, you do have to keep track of the seed counter by yourself, but it could be defined a syntax to do so (like the increment operator in C)
00:17:03 <elliott> i'll try defining the function in lu
00:17:15 <variable> zzo38, int getRandomNumber { return 2; //chosen by a random die roll}
00:17:48 <variable> (and yes - I really did just roll a die)
00:18:12 <zzo38> The time of day, as long as it is set only once and stays the same for as long as the function takes to execute, it can work. (You could also have it set during card script, and a "action" script that you push a key to set date/time to the script so you can set it on the card, otherwise everything changes whenever you load the set!)
00:19:39 <zzo38> That way, would make it pure.
00:20:41 <elliott> oklopol: gimme your files so i can merge them in :D
00:20:48 <elliott> oklopol: was it just the pivot code that was bad
00:21:04 <oklopol> greater than? had an error, nothing else xD
00:21:29 <elliott> oklopol: so the pivot code was right?
00:21:36 <zzo38> You could make these suggested changes if you want to make MSE pure (it is not the most important thing); or use TeXnicard (which uses a different model of templates, so it doesn't need pure).
00:26:09 <oklopol> trying to make the actual quicksort now
00:26:40 <oklopol> but i have this vague feeling in my balls that that's not gonna happen anytime soon
00:28:33 <elliott> My new home is in the air.
00:28:36 <elliott> Although it's not tall enough to jump.
00:28:42 <elliott> oklopol: so can i have clue.py/stuff.py
00:28:57 -!- pingveno has quit (Write error: Broken pipe).
00:28:57 <oklopol> but i have a huge amount of horribly ugly debug code :D
00:29:18 -!- pingveno has joined.
00:29:18 <elliott> oklopol: i want the coooode
00:29:52 -!- cheater00 has joined.
00:30:06 <elliott> :: dof~{.0->0.5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0
00:30:06 <luatre> TypeError: 'int' object is unsubscriptable :(
00:30:15 <elliott> :: dof~{.0->0 . 5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0
00:30:15 <luatre> TypeError: 'int' object is unsubscriptable :(
00:31:07 -!- Mathnerd314 has joined.
00:32:51 -!- cheater99 has quit (Ping timeout: 240 seconds).
00:34:34 <elliott> "That's not irony." ;; on the internet NOTHING counts as ironic
00:36:40 <j-invariant> everything is impossible but only after you waste 10 mins proving lemmas
00:37:55 <Phantom_Hoover> j-invariant, you clearly have the same high standards for *everything* as elliott.
00:38:27 <Phantom_Hoover> To the extent that nothing actually satisfies the standards without violating several laws of physics or precepts of mathematics.
00:38:57 <zzo38> elliott: Then invent one antigravity.
00:39:00 <elliott> i'm trying to think of something that i can honestly say is perfect
00:39:13 <elliott> Phantom_Hoover: heck no :)
00:39:38 <elliott> Phantom_Hoover: plain tex is gross, whatever zzo38 said
00:39:42 <elliott> latex is a bit limited sometimes
00:39:47 <zzo38> TeX is very good but not quite perfect.
00:40:47 <zzo38> LaTeX and PDF are much worse.
00:41:12 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:42:21 <oklopol> elliott: btw you're right in that there kind of is an interpreter, it's only the actual function applications that are made into python functions.
00:42:26 <oklopol> but i guess you already knew that
00:42:36 <j-invariant> I define a new data type like lists except that it cannot have trailing zeros: [0,1,2,0,44,5] is okay but [3,54,2,0,13,0] is a type error
00:42:56 <zzo38> Do you have opinion/comment/suggestion/question about this? http://sprunge.us/BFGb
00:42:59 <oklopol> yep, for some reason i just didn't realize that's actually a rather important part of execution, and not just something that's done at first
00:43:18 <oklopol> reason is probably that i haven't been able to think all that straight today
00:43:28 <oklopol> for instance i watched hours of gay porn
00:43:52 <oklopol> j-invariant: definition accepted
00:44:15 <zzo38> oklopol: Then don't watch pornography anymore.
00:45:04 * Sgeo suddenly wants to buy Chessudoku
00:45:04 <oklopol> nono i think it was more like that i wasn't thinking straight so i started watching men lick each other's balls on the internet
00:45:11 <oklopol> and not the other way around
00:45:32 <oklopol> the reason for this is that i didn't sleep very well
00:45:41 <oklopol> my head is all wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerlie.
00:46:11 <oklopol> but yeah i'll go on with... i don't remember what but maybe i do when i open py
00:46:56 <oklopol> elliott: i think i managed to make a program with an actual runtime error :D
00:47:22 <elliott> oklopol: re ball licking, i think zzo38 just doesn't want anyone to wtach pornography
00:47:29 <oklopol> at least i think quicksorting a list of 7 objects shouldn't take more than 100 deep recursion...
00:48:00 <oklopol> i basically watch pornography as a hobby
00:48:25 <j-invariant> it's not possible to define this list type in any useful way
00:48:34 <zzo38> oklopol: No, it isn't true. I don't want to watch pornography myself, if other people do I don't complain. However, if you watch pornography and you cannot do anything else, then obviously you have done something wrong, such as not watching it upsidedown.
00:49:04 <oklopol> if you want to do something else, but can't, then yes, i agree, you should probably flip your screen
00:49:08 <zzo38> (I am not trying to stop you from watching pornography, I am just trying to suggest better things)
00:50:02 <oklopol> well watching porn can be interesting, once you get past the whole mmm pussy let's masturbate thing.
00:50:48 <oklopol> i have done rather exhaustive research in many areas, but haven't found a publisher yet.
00:50:52 <j-invariant> elliott: I wanted to prove (forall x, [p](x) = [q](x)) -> p = q -- p and q are lists of numbers which represent polynomials, and [p] is the evaluation of p
00:51:05 <zzo38> oklopol: In what areas have you done exhaustive research?
00:51:39 <zzo38> oklopol: No, I just want to know why you have not found a publisher yet.
00:51:46 <zzo38> Can you publish it by yourself?
00:51:46 <oklopol> the most common paraphilias, regular porn is not very interesting outside the mm pussy part
00:52:05 <zzo38> What is the difference?
00:53:53 <oklopol> but it's interesting how people react in weird situatoins
00:54:09 <oklopol> which is a *very* diverse branch of porn
00:54:41 <oklopol> the rules are completely different
00:55:06 <zzo38> O, so you want to tell the difference which pornography movies you like which are interesting as opposed to non-interesting pornography. Is that it?
00:55:42 <oklopol> mostly i'm interested in what people will do for money
00:55:50 <oklopol> and how well they can hide it
00:56:55 <oklopol> and also, a single type of porn will have a rather clear set of rules, for instance even you might know that in american porn, the girl blows the guy, then they have sex a couple minutes in the basic positions, then the guy jizzes in her face
00:57:13 <oklopol> this is not how things like bukkake and scat work
00:57:25 <oklopol> it's roughly how it works, but a lot of subtletieas
00:57:45 <zzo38> Actually I wouldn't know, I don't like to watch pornography. But at least now I know that it is not so simple to categorize.
00:58:17 <zzo38> Like, if you have a pornography store or archive you would need subcategory for those kind of things, I guess.
00:58:43 <oklopol> the problem with categorization is it really never works
00:58:50 <zzo38> At least that is a bit better hobby than ordinary watching pornography.
01:00:03 <oklopol> i mean it's easy to categorize based on certain elements, like for most people it would suffice that "in this movie girls has sex with donkey"
01:00:31 <oklopol> it's rather easy to categorize based on what people actually wanna wank to
01:01:05 -!- hagb4rd has joined.
01:01:11 <elliott> oklopol: i am totally moving in
01:01:15 <pikhq> Only in #esoteric does pornography get treated academically.
01:01:15 <oklopol> because most people either have one of a list common elements they want to see in their porn, and it's easy to find porn categorized based on those
01:01:25 <elliott> pikhq: erm plenty of other places too i would think :P
01:01:33 <pikhq> elliott: ONLY IN #ESOTERIC
01:01:38 <oklopol> like mm i wanna see fat chicks mm i wanna see japs licking each other's faces
01:02:13 <zzo38> If you are going to make a report would you categorize it? Such as, subcategories might be: artistic, photograph, movie, professional, manga, man, woman, American, children, animal, hard, soft, joke, .....
01:02:26 <oklopol> but once you get even slightly deeper, you can't really put your finger on the category, for instance there is obviously a continuous scale of whether the people actually enjoy touching each other
01:03:13 <elliott> zzo38: are you sure you would include the children category :D
01:03:49 <oklopol> i guess that's supposed to be the "amateur" category, but it doesn't really work that way
01:03:51 <zzo38> elliott: Of course child pornography is illegal but you need to include such a category anyways even if it is hidden
01:04:19 <pikhq> elliott: There is a black market for it, I'm sure.
01:04:21 <elliott> "[ ] Children (don't click this) (no really)"
01:04:27 <elliott> Vorpal: we're talking about pornography, hi
01:04:36 -!- sebbu2 has changed nick to sebbu.
01:04:42 <Vorpal> elliott, yes that was what I reacted to
01:04:47 <oklopol> zzo38: no, i wouldn't categorize like that at all
01:05:11 <zzo38> oklopol: OK. How would you categorize? Do you need to make a report of how you categorize?
01:05:11 <pikhq> Not to mention that drawn depictions thereof are generally *legal*. Though it will suck if you get accused of pedophilia and caught with such.
01:05:15 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:05:23 <Vorpal> oklopol, maybe there is some overlap though?
01:05:57 <Vorpal> oklopol, I mean, for most useful categorisations
01:06:01 <elliott> pikhq: not in the uk actually
01:06:06 <elliott> as of recently... now i look suspicious for knowing this
01:06:08 <zzo38> I have not meant to imply it is a category that you select exactly one category.
01:06:18 <oklopol> zzo38: i would analyze individual movies
01:06:35 <oklopol> if i had to write a report
01:07:11 <zzo38> oklopol: Aren't you doing this for the purpose of writing a report, though?
01:07:23 <oklopol> i just thought you were interesting
01:07:48 <zzo38> Of course I don't know because I don't like to watch pornography. I am only making suggestion.
01:07:56 <zzo38> Probably I am entirely wrong.
01:08:26 <oklopol> zzo38: oh well yeah i would definitely agree with having those as terms for certain types of porn
01:08:28 <pikhq> elliott: Yeah, but the UK probably still has laws against women showing ankle, I'm sure.
01:08:47 <oklopol> but for instance "hardcore" means nothing as an on/off scale
01:09:10 <oklopol> can be anything between "actual sex!" and max hardcore (actor)
01:09:17 -!- hagb4rd has joined.
01:09:59 <coppro> pikhq: it's better than the USA's laws against women implying they might show ankle
01:10:01 <zzo38> oklopol: Then maybe you need to add a category titled "actual_sex"?
01:10:04 <Vorpal> pikhq, I believe it isn't legal in Sweden either. IIRC there was some court case some years ago that suggested that the law was to be interpreted as it not being legal. Though textual stories of the same would probably be.
01:10:24 <oklopol> zzo38: i'm not very good at putting things like reactions of people into words, so i doubt i could ever actually write any sort of report on anything.
01:10:31 <oklopol> well, i doubt anyone can do that
01:10:46 <pikhq> Vorpal: I seem to recall it being precedent that the 1st amendment bars bans on child pornography without actual children involved in the creation thereof.
01:10:53 <pikhq> At least, in the US.
01:11:06 <Vorpal> pikhq, yeah the 1st amendment is only relevant for US
01:11:09 <zzo38> oklopol: I thought you previously said at first that you were going to write a report, and you need it published??
01:11:16 <pikhq> Vorpal: ... For now.
01:11:22 <Vorpal> pikhq, what do you mean
01:11:22 <coppro> I'm pretty sure the 1st amendment doesn't ban that
01:11:27 <oklopol> doesn't really matter what they say, because cp and necro fans can soon just make their own animations.
01:11:39 <pikhq> Vorpal: Joking suggestion that the US will conquer everything. That's all.
01:11:41 <elliott> Vorpal: We're going to give you democracy.
01:11:46 <zzo38> Can you just publish it by yourself? Or publish it in a pornography store?
01:12:01 <oklopol> "<zzo38> oklopol: I thought you previously said at first that you were going to write a report, and you need it published??" <<< are we talking about this because you took that seriously
01:12:01 <Vorpal> pikhq, I'm just waiting for China to invade you ;P
01:12:14 <coppro> Vorpal: I was about to make that joke, except funnier
01:12:21 <pikhq> Vorpal: Oh, they're not going to invade.
01:12:41 <pikhq> Vorpal: They'll just purchase.
01:12:44 <Vorpal> pikhq, oh true. They can probably buy you for a tenth of the market value
01:13:08 <oklopol> i have watched tons of porn simply out of pure interest (not saying i haven't also watched tons of it because of penis), that's all i meant.
01:13:09 <Vorpal> (or as the market value would have been if you hadn't managed the economy so badly)
01:13:13 <pikhq> Arguably, they've been working on the down payment.
01:13:16 <zzo38> oklopol: OK, if you cannot write a report, then don't. But you seem to know enough about these things to write a very small report.
01:13:39 <pikhq> (China is the largest holder of federal debt ATM)
01:13:42 <Vorpal> pikhq, only after it all went bad
01:13:53 <Vorpal> (if you meant what I thought you meant)
01:14:09 <elliott> oklopol: lol speaking of max hardcore who you mentioned: "Based on Max Extreme 4, the city of Los Angeles in 1998 charged him with child pornography and distribution of obscenity. The fact that the actress was over the age of 18 was not disputed; they brought charges based solely on the fact that the actress was portraying a character who was underage."
01:14:12 <oklopol> i usually aim for a certain level of professionalism in everything i do
01:14:32 <oklopol> he has a lot of movies like that
01:14:49 <oklopol> but the amount obscenity is incredible for an american actor
01:15:55 <oklopol> americans tend to do even rather hardcore stuff with a hollywood style feel of unrealness.
01:16:10 <oklopol> unlike japs who are just insane
01:17:28 <oklopol> dunno if i've seen that movie, i've been out of the game for quite a while
01:17:38 <pikhq> And Germans, who seem to have a fondness for feces.
01:18:00 <oklopol> there's also that brazilian group, best known for 2g1c
01:18:33 <pikhq> Fucking crazy bastards.
01:18:43 <elliott> oklopol: have you watched SWAP.AVI?
01:18:47 <oklopol> they have a very unique way of doing things
01:18:56 -!- oerjan has joined.
01:19:01 <oklopol> elliott: dunno, but usually i've seen the original movies years before these clips are made
01:19:05 <elliott> oklopol: http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php
01:19:10 <elliott> oklopol: it was requested by the something awful forums
01:19:19 <elliott> oklopol: to be the most ridiculous and inexplicable scat film possible
01:19:23 <elliott> oklopol: and they actually made it according to the requirements
01:19:29 -!- FireFly has quit (Quit: swatted to death).
01:19:34 <elliott> oklopol: read http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php
01:19:45 <elliott> Sexual Content: Imagine if the Holocaust was a 63 minute long video about pooping. Now imagine your mother drowning in a bathtub full of diarrhea. This is the sexual content of SWAP.avi.
01:19:46 <coppro> I should just never unignore elliott
01:19:52 <coppro> this channel is that much nicer without him
01:20:29 <Vorpal> coppro, only issue is missing out of more than half of the convos
01:20:29 <oklopol> well there are tons of 63 minute movies about pooping
01:20:34 <Vorpal> he is the most active speaker in here
01:20:56 <elliott> oklopol: no, no, keep watching
01:21:39 <elliott> Vorpal: i'm just waiting for you to have to do enough work that you leave and i will be able to completely dominate, making me in control of who ignores and gets ignores entirely based on channel flow.
01:22:28 <oerjan> coppro: under the circumstances, i am starting to agree
01:25:37 <elliott> oerjan: hey oklopol is the one who started the scat talk
01:26:17 * Sgeo decides he will ignore elliott's advice and re-investigate Ur/Web
01:27:03 <coppro> pikhq: who was that at?
01:27:05 <zzo38> Set your user mode +D if you want to ignore someone, next time.
01:27:30 <zzo38> I mean, mode +giDRQ
01:27:32 * elliott wonders wtf pikhq is doing
01:27:41 <pikhq> elliott: WTFing at coppro and oerjan.
01:27:45 <oerjan> pikhq: you and your funny blank lines
01:27:50 <zzo38> Next time you want to ignore someone, do like that instead.
01:27:59 <oklopol> looks pretty run-of-the-mill
01:28:06 <pikhq> 18:19 <coppro> I should just never unignore elliott
01:28:10 <pikhq> 18:19 <coppro> this channel is that much nicer without him
01:28:13 <pikhq> 18:22 <oerjan> coppro: under the circumstances, i am starting to agree
01:28:29 <elliott> i think oerjan is either complaining about my joke wrt controlling the channel flow. or the scat.
01:28:31 <elliott> i should ignore myself, it'd be fun
01:28:33 <elliott> never be able to correct typos
01:28:45 <coppro> pikhq: because while sometimes he provides me with new things to look at, usually what he does is "your worldview disagrees with mine you suck"
01:28:48 <oklopol> and the only reason i started talking about this is that zzo38 insisted
01:28:50 <elliott> coppro is just always an idiot, but apparently not idiotic enough to not ignore me
01:29:04 <elliott> solve the problem at the root
01:29:09 <pikhq> coppro: Your worldview disagrees with mine you suck.
01:29:18 <olsner> why not just ban everyone, that should be the end of all problems in this channel
01:29:19 <zzo38> oklopol: Because I insisted? ???
01:29:43 <zzo38> olsner: Don't ban anyone just set your user mode to +giDRQ -w
01:29:44 <elliott> olsner: how dare you suggest that
01:29:48 <elliott> and also everyone who isn't olsner
01:30:15 <Sgeo> elliott, how about joining ##elliott
01:30:16 <coppro> pikhq: that must have looked funny to elliott
01:30:20 <oerjan> pikhq: hey wait that _was_ a blank line, i thought you were doing something japanese i couldn't see
01:30:22 <Sgeo> And leaving #esoeric
01:30:25 <oklopol> "<zzo38> oklopol: In what areas have you done exhaustive research?" "<zzo38> What is the difference?" so i figured i'll take an example that makes you say "okay yeah i don't wanna know".
01:30:25 <zzo38> Setting the user mode like this is the best way to ignoring someone, instead.
01:30:33 <elliott> I think I'm an official representative for myself.
01:30:40 <coppro> I am also considering /ignoring zzo38
01:30:40 <elliott> So the extra # is ... not really needed ...
01:30:46 <oklopol> but you just kept asking for more
01:30:52 <coppro> on account of him never actually saying anything useful
01:30:54 <elliott> Sgeo: but, aww, you're hilarious when you're pissy
01:31:16 <zzo38> coppro: You do not need to ignore zzo38 or anyone else. If you want to ignore someone just set your user mode instead.
01:31:34 <elliott> zzo38: SHUT UP ABOUT USER MODES
01:32:09 <elliott> zzo38: unless they're programmed in enhanced cweb
01:32:13 <elliott> is your irc server programmed in enhanced cweb?
01:32:18 <elliott> can i download it with your web browser?
01:32:19 <coppro> yeah, definitely /ignoring zzo38
01:32:22 <elliott> will it run on your linux distribution?
01:32:29 <elliott> will I be able to configure it?
01:32:51 <zzo38> elliott: I did not write it entirely by myself. But both of these program will run my Linux distribution, you will be able to configure it, and it does have user modes.
01:32:51 <Sgeo> Wait, Gilad Bracha actually admires Racket's module system?
01:32:52 <oerjan> zzo38: how in the world is a user mode not containing information about a nick supposed to ignore them?
01:33:02 <elliott> If it's not written in Enhanced CWEB, I don't care, zzo38.
01:33:05 <zzo38> oerjan: Try it and see how.
01:33:12 <olsner> oerjan: because it ignores everyone? or something?
01:33:29 <zzo38> elliott: It is not written in Enhanced CWEB although maybe I can make change so that the next version is with Enhanced CWEB.
01:33:34 <oerjan> zzo38: so it's joke, ok.
01:33:51 <coppro> but zzo38 never actually says anything useful
01:33:57 <elliott> yes, the most hilarious joke
01:34:10 <elliott> oerjan: so why do you want to ignore me, i kinda want to optimise for annoying people?
01:34:27 <coppro> +Dg will make it so you pretty much can't receive messages
01:35:23 <coppro> the rest aren't really necessary
01:36:06 <elliott> i think oerjan has me on ignore
01:36:09 <oerjan> elliott: that scat thing
01:36:11 <elliott> usually he just bans people instead :D
01:36:17 <elliott> oerjan: oklopol was the one talking about it :P
01:36:30 <Sgeo> coppro, define "useful"
01:37:01 <Sgeo> You don't have me on ignore. Is what I say ever actually more useful than what zzo38 says?
01:37:09 <oklopol> i was talking about it because i was asked, and i don't think i mentioned anything that explicit
01:37:13 <elliott> Sgeo: that's an exceedingly good point
01:37:16 <elliott> i think i might ignore the both of you
01:37:16 <coppro> Sgeo: because unlike you, talking to zzo38 is like talking to a brick wall
01:37:31 <coppro> he never backs his claims up; he just rambles on about dumb things
01:37:36 <coppro> you seem to have some modicum of curiosity
01:37:38 <zzo38> With some of the bricks sideways and upsidedown.
01:37:55 <Sgeo> Thank you, I guess
01:37:56 <coppro> he just seems to get dumb ideas in his head and defend them to the death
01:38:08 <coppro> I mean "by repeating them over and over with no arguments"
01:38:18 <oerjan> what is it about people losing their temper over zzo38 lately
01:38:28 <elliott> oerjan: he didn't _use_ to spend every minute talking about enhanced cweb
01:38:39 <Sgeo> coppro, it's not that he gets dumb ideas... just ideas that are of interest to him and him alone, as far as I've seen.
01:38:41 <elliott> and butting into random, completely unrelated comments to talk about how everything you do should be in enhanced cweb.
01:39:00 <elliott> and, also, never actually really responds to any questioning or rebuttals of anything he says.
01:39:13 <elliott> tbh the "quantum free will" crap from a few days ago is what started annoying me, i didn't really care before that
01:39:24 <zzo38> I try to respond, at least. But maybe I do not do such good response.
01:39:27 <coppro> Sgeo: there was one a few days ago
01:39:31 <coppro> I'm too lazy to dig it out
01:39:41 <coppro> oh right the metaquantumwhodunnawutzit
01:39:44 <Sgeo> elliott, ooh, sounds like a discussion I'd be interested in
01:39:58 <oklopol> zzo38 annoyed me once for a few seconds
01:40:11 <elliott> Sgeo: apparently you can understand quantum free will by inverting a wikipedia article on itself to create a causality loop and then writing down the entanglement equation
01:40:13 <zzo38> Sgeo: Then read the log file you can read everything on this channel in the past days and weeks and months and years by anyone in this channel regardless of who wrote it.
01:40:15 <elliott> Sgeo: but not assuming the other part is real or even exists.
01:40:20 <elliott> Sgeo: This is almost a direct quote by the way.
01:40:32 <elliott> Sgeo: also, life creates the universe, but the universe creates life, and you can't have only one.
01:40:40 <elliott> Sgeo: also rocks have life but not very much life so they don't create the universe much.
01:40:43 <zzo38> elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!!
01:40:54 <zzo38> (The article itself is not invert)
01:40:56 <elliott> The double inversion? So ... a no operation?
01:41:11 * Sgeo contrapositives zzo38 twice
01:41:17 <zzo38> elliott: No, I mean to have both the invert and double invert together.
01:41:28 <elliott> Ah. Because contradictions prove things!
01:41:28 <zzo38> Like, combined in one piece.
01:41:32 <Sgeo> zzo38, instead of inverting the ideas, try just describing them?
01:41:42 <Sgeo> As inverted, I mean
01:41:44 <elliott> Sgeo: oh god we spent a whole day doing this, why did you go and say that
01:41:47 <zzo38> Sgeo: I try to describe them?
01:41:58 <elliott> Sgeo: his explanation is that it's not life which creates the universe, it's both and neither.
01:42:12 <oklopol> "<zzo38> elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!!" <<< okay clearly elliott had misunderstood you completely
01:42:13 <elliott> Sgeo: based on an article by some random quack written about on wikipedia who says that life is necessary for the universe or some crap.
01:42:18 <zzo38> elliott: Ah, now you can understand a bit better.
01:42:28 <Sgeo> zzo38, instead of describing ideas in terms of Wikipedia articles, describe them on their own terms, then optionally relate it to the article
01:42:30 <elliott> oklopol: well it's kind of hard to interpret nonsense
01:42:38 <Sgeo> elliott, Final Anthromorphic Principle?
01:42:47 * Sgeo wants to slap whoever came up with that
01:42:48 <elliott> Sgeo: no, not that, and it's "anthropomorphic".
01:42:51 <elliott> Sgeo: and that was Penrose.
01:42:56 <elliott> hmm i didn't add it to qdb
01:43:06 <elliott> oklopol: can it run qsort yet
01:43:26 <zzo38> Then add it (assuming HackEgo is not just broken)
01:43:26 <oklopol> well i've been busy ircing and thinking about whether i should read for that exam of mine
01:43:40 <zzo38> oklopol: Perhaps you should do the exam.
01:43:59 * Sgeo admires zzo38 not getting upset by the insults being hurled at him
01:44:18 <elliott> X in Y out, Y not mentioning X
01:44:31 <oklopol> i know what i should do, that doesn't necessarily mean i'll do it
01:44:32 <Sgeo> elliott, unsafeCoerce?
01:45:21 <Sgeo> So, zzo38 breaks the type system. Awesome.
01:46:00 <oklopol> funniiiiiiiiiiiiiiiiiiiiiiiiiiiii
01:47:38 <elliott> oklopol: well are you fixing it
01:47:50 <oklopol> http://www.vjn.fi/pb/p5451998242.txt
01:47:58 <oklopol> look at the output of compilation
01:48:20 <oklopol> i mean it compiles, but as i said, runtime error, i dunno what to dooooo
01:48:31 <elliott> oklopol: um yes, but you understand that i've been asking for your latest version
01:48:34 <elliott> oklopol: because mine hangs on that
01:48:37 <elliott> oklopol: so...gimme the py files
01:49:02 * Sgeo vaguely wonders if Ioke is a bit like the only thing I like about Racket
01:50:00 <elliott> i really need to fix shutup.
01:50:09 <oklopol> http://www.vjn.fi/pb/p1815468777.txt http://www.vjn.fi/pb/p5342334176.txt
01:50:16 <oklopol> at your own safetylessness.
01:50:35 * Sgeo is more type-system-breaky than zzo38. Sometimes I'll say stuff out of the blue that has no connection to anything whatsoever, sometimes I'll say something semi-relevant, and sometimes I'll ask relevant questions
01:50:38 <oklopol> the way i debug is less than optimal :D
01:50:49 <Sgeo> elliott, what makes you think it's broken?
01:51:11 <oerjan> Sgeo: also, orange juice is nice. *slurp*
01:51:12 <elliott> Sgeo: well when i nicked to sgeo and said Factor it didn't yell at me.
01:51:20 <zzo38> Sgeo: Sometimes anyone might do, isn't it?
01:51:20 <elliott> oerjan: especially when it's fecal matter!
01:51:23 <Sgeo> It's yelling at me
01:51:43 <elliott> oklopol: you know what, remove all the debugging code and i'll make sure qsort works
01:51:50 <Sgeo> Gregor's apples to oranges comparision convinced me to like oranges
01:52:03 <oklopol> if i want to debug a specific moment of compilation
01:52:27 <oklopol> they are just print statements
01:52:31 <elliott> oklopol: because i have to merge it into _my_ version
01:52:44 <elliott> oklopol: which means considering all your changes and making sure they work without conditionals
01:52:54 <elliott> oklopol: pain enough to do that when I have all this cool stuff too :P
01:53:00 <oklopol> of course they work without them, i only change glue
01:53:19 <oklopol> cool stuff is just print statements, i use a global so i can trigger stuff in stuff.py as well.
01:54:12 <elliott> + if isinstance(l,list) and len(l)==0:return 1
01:54:23 <elliott> return int(isinstance(l,list) and len(l)==0)
01:55:15 <elliott> oklopol: so is demolishing a failed policy?
01:55:33 <oklopol> not really, it still makes ski very fast
01:55:49 <elliott> oklopol: but you haven't made it good yet. right. :p
01:56:27 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:56:43 <oklopol> it gives a 6x improvement in one test case, so given that we currently have 2 test cases, i wouldn't exactly call it a failure
01:56:56 -!- copumpkin has quit (Ping timeout: 264 seconds).
01:57:17 <oklopol> it might be qs that's the odder one
01:57:25 -!- copumpkin has joined.
01:57:38 <elliott> oklopol: what do you use random for
01:57:40 -!- zzo38 has quit (Quit: !).
01:58:02 <oklopol> i added it to test random searching for fun
01:59:37 -!- hagb4rd has joined.
02:00:42 <elliott> oklopol: "death" to crash the program
02:01:36 <elliott> oklopol: what why did you punctuate what
02:01:57 -!- ChanServ has set channel mode: +o oerjan.
02:02:04 -!- oerjan has left (?).
02:02:05 <elliott> OKLOPOL JUST CAPITALISED AND PUNCTUATED A FUCKING SENTENCE
02:02:21 -!- oerjan has joined.
02:02:45 <oklopol> Can we just get back to the matter at hand, please.
02:03:01 -!- oklopol has changed nick to Oklopol.
02:03:02 <elliott> + if demolishing_done==True and first_round:break
02:03:05 <elliott> the real oklopol wrote this code
02:03:08 <elliott> he knows that you have to check booleans
02:03:11 <elliott> to see whether they're True
02:03:13 <elliott> before conditioning on them
02:03:27 <Oklopol> Okay. What does that have to do with anything?
02:03:28 * Sgeo decides to learn Io
02:03:34 <oerjan> now that was amusing, i wanted to close the chanserv window and closed #esoteric instead
02:03:36 <elliott> Oklopol: You're not the real oklopol.
02:03:49 <Sgeo> elliott, howso?
02:03:51 <elliott> Sgeo: said as someone who developed with it for months.
02:03:57 <elliott> Sgeo: and was part of the |||~~community~~|||
02:04:01 <elliott> Sgeo: for one, it has basically no stdlib.
02:04:05 <elliott> simple string and array functions are completely missing.
02:04:07 <oerjan> I'LL TAKE THAT AS A SIGN NOT TO BAN ELLIOTT YET
02:04:09 <Oklopol> elliott: I have no comment.
02:04:13 <elliott> also, there is basically no documentation
02:04:44 <oerjan> elliott: PAY ATTENTION. OR ELSE I'LL BAN YOU ANYWAY.
02:05:09 <Sgeo> elliott, so the concept is good, the execution is crap?
02:05:17 <elliott> Oklopol: i love how you called a variable demolishing, which stops you executing the demolishing function
02:05:22 <Oklopol> Oerjan accidentally exited #esoteric, when he tried to close the message from ChanServ when he opped himself. This meant he could not ban you.
02:05:31 <elliott> Sgeo: both are pretty crap. the "pass everything as a function" thing doesn't work well.
02:05:46 <elliott> foo(hello + world) <-- this could print "hello + world" to the screen even if hello=1 and world=2
02:05:54 <elliott> completely breaking basically... every invariant i can think of in programming
02:06:03 <oerjan> elliott: see Oklopol gets it. whether or not he's oklopol.
02:06:22 <Sgeo> elliott, isn't that what documentation is for?
02:06:34 <elliott> Sgeo: let's just have no rules.
02:06:40 <elliott> an arbitrary byte prefix has control over the rest of the program.
02:06:47 <elliott> string delimiters? why, functions can choose whichever ones they want.
02:06:52 <elliott> how can i use this without going insane?
02:06:55 <elliott> Isn't that what documentation is for?
02:08:28 <oerjan> elliott: i expect tomorrow we'll see in the news about how finland is the center of a new global pandemic of correct spelling, punctuation, and horrible fatal hemorrhaging.
02:08:33 <elliott> return call_clue(clue,args,10)
02:08:37 <elliott> Oklopol: you changed this to 1000, why? :P
02:09:03 <Oklopol> elliott: I changed it to 1000 in case quicksort actually happened to need more than 10 levels of function calls.
02:09:40 <elliott> Oklopol: oh my god you sound so...boring and sane like this
02:09:43 <Oklopol> I admit that was a much larger number than should be expected as an upper limit.
02:09:47 <elliott> Oklopol: so tell me, how do you structure your python code, usually
02:10:21 <Oklopol> Can you be more specific? "I think."
02:10:41 <elliott> Oklopol: like, what is your general coding formatting style!
02:11:07 <Oklopol> The one you see in the .py files i've given you.
02:11:47 <elliott> Oklopol: ok i hate you stop it
02:12:26 <Oklopol> Naming varies, because I don't particularly care about names, amount of whitespace varies, but is generally little. I tend to write rather long segments of code for doing simple things, even if I know a shorter way.
02:12:40 <elliott> clue.DepthLimitException: depth limit exceeded (cadar)
02:12:48 <elliott> and also, are you going to be like this forever
02:13:19 <Oklopol> I don't know what you are referring to. Is that from running quicksort?
02:13:22 <oerjan> elliott: only until the hemorrhages start
02:13:25 <elliott> Oklopol: no from running ski
02:13:44 <Oklopol> Oh. Heh, I guess I've broken something then.
02:13:47 <elliott> hm can demolishing_done be a non-boolean :D
02:13:54 <elliott> just looking at the differences between our codes
02:14:00 <elliott> Oklopol: yeah well... get on fixing that, freak of nature
02:14:30 <elliott> Oklopol: note this is with my non-conditional thing
02:14:35 <elliott> so maybe the branch-inferrer is taking too long
02:14:40 <oerjan> freaks of culture are even creepier
02:14:51 <elliott> Oklopol: it does the same on foo.clue
02:14:55 <elliott> depth limit exceeded for is negative
02:15:02 <Oklopol> Well, given that I've never had a run-time error in a Clue program, and suddenly both programs in existence are failing with the same error...
02:15:25 <elliott> excuse me, btw, but foo.clue breaks too :D
02:15:28 <elliott> which is just my set of stuff
02:15:49 <Oklopol> At least that one example program does.
02:16:05 <Oklopol> Somehow I doubt you made another testcase.
02:16:51 <elliott> Oklopol: ok so it's the removal of conditionals that break it
02:17:04 <elliott> Oklopol: can we just unify on the non-conditional version to make this a whole lot easier for both of us? :P
02:18:06 <Oklopol> I don't particularly want to since things work very slowly on my machine without that additional complication for the compiler.
02:19:51 <elliott> Oklopol: ehh it's actually not slow at all
02:20:01 <elliott> Oklopol: it's like, 3/4ths as fast
02:20:31 <Oklopol> Well, you can give me your files once you get SKI to compile.
02:20:59 <Oklopol> And quicksort, since I would very much like to see the program that was inferred for it.
02:21:25 <elliott> Oklopol: i will try and figure out the bug
02:21:35 <elliott> Oklopol: but only if you talk okloy again
02:22:05 <Oklopol> I have to eat something now.
02:22:08 <elliott> Oklopol: in glue(), you pass depth_lim to glue_ as True
02:22:11 <elliott> Oklopol: which is the same as 1 as an int
02:22:15 <elliott> Oklopol: what's it meant to be, 5?
02:22:22 <elliott> and is orig_objs meant to be True?
02:22:25 <elliott> if you can just correct that call
02:23:00 <elliott> Oklopol: you do not pass it as 5 :)
02:23:12 <elliott> Oklopol: but i'm not sure which way it should be rearranged, so if you could correct it... :P
02:23:39 <Oklopol> To me it looks like I pass it as 5.
02:24:38 <elliott> depth_lim,orig_objs=None,objectlookup=None):
02:24:46 <elliott> depth_lim=True, orig_objs=5, objectlookup=objects.
02:25:01 <Oklopol> Yes, one argument is not passed from glue.
02:25:53 <elliott> Oklopol: i increased the depth limit and it just overflows python's stack.
02:26:00 <elliott> Oklopol: i conclude you have an infinite loop somewhere.
02:26:18 <elliott> Oklopol: ok pop quiz for you
02:26:20 <oerjan> glue is the clue to glue clue together
02:26:23 <elliott> Oklopol: where in glue_ do you ever exit?
02:26:52 <Sgeo> Ur/Web takes ideas from functional reactive programming?
02:27:11 <Oklopol> elliott: The infinite loop must be in the generated code.
02:27:23 <elliott> Sgeo: it's a research language with strong links to type theory that you have mistaken as some kind of industry tool.
02:27:36 <elliott> Sgeo: as i have said on numerous occasions, if you don't understand this, you will get nothing out of it.
02:28:42 <oerjan> but it's Web, it _must_ be industrial!
02:29:26 <elliott> he should have made it Ur/DependentlyTypedSpreadsheets or something to avoid the peanut gallery
02:34:47 <elliott> Oklopol: so um er fixed the bug yet? :D
02:35:24 <Oklopol> I don't even know if there's a bug.
02:36:42 <elliott> Oklopol: well. i assume so.
02:36:49 <elliott> Oklopol: since it can't even work out "is negative?".
02:36:57 <elliott> is negative? ~ {. 0 -> 0 }
02:37:03 <elliott> is negative? ~ compare; #0; #1
02:37:07 <elliott> Oklopol: which, you know, should not overflow python's stack.
02:37:37 <Oklopol> It can't? Weird, since SKI and pivot work normally.
02:38:11 <elliott> clue.DepthLimitException: depth limit exceeded (cadar)
02:38:15 <elliott> if i increase the depth limit the stack just overflows.
02:38:28 <elliott> the only differences between our two versions is that mine hasn't got <> stuff, as i said
02:38:47 <elliott> - if demolishing_done and first_round:break
02:38:47 <elliott> + if demolishing_done==True and first_round:break
02:38:51 <elliott> demolishing_done can't be a non-bool, can it?
02:39:44 <Oklopol> It should always be a boolean.
02:40:52 <Oklopol> And I'm sure our versions are essentially identical, but I just plain cannot fix a bug my code does not have. If I've changed something that doesn't play well with your changes, sorry, but that's life.
02:41:20 <elliott> Oklopol: well considering our respective changes shouldn't even interact with glue ... :/
02:41:39 <elliott> http://sprunge.us/HQiJ is the whole differences... - is mine, + is yours... i'm trying to figure out wtf is up
02:41:55 <elliott> are you suuuure ski works for you? :/
02:44:03 <elliott> Oklopol: heh... if i remove most of the ski functions it finally gets a non-limit errors
02:44:08 <elliott> (complaining about all the missing things)
02:44:49 <elliott> Oklopol: ...okay so, as little as i believe this myself
02:44:55 <elliott> Oklopol: the error was a missing "import clue" in stuff.py.
02:45:07 <elliott> I guess apply_to_visible failed...somehow...
02:45:14 <elliott> Oklopol: do you have any big "catch every error" things?
02:45:20 <elliott> because that probably caused it if so
02:45:24 <Oklopol> So I suppose there was an error, which i catch somewhere.
02:45:31 <Oklopol> Sounds like something oklopol would do.
02:45:38 <elliott> yeah, but Oklopol would never do that
02:46:11 <elliott> Oklopol: so, um, i will try qsort now, can you link me to the current ver?
02:46:23 <Oklopol> It is interesting that I haven't run into that problem when debugging that.
02:46:32 <Oklopol> Sounds like something that would be a constant annoyance.
02:46:45 <Oklopol> It has not changed, but sure.
02:47:05 <Oklopol> http://www.vjn.fi/pb/p5399236149.txt
02:47:06 <Sgeo> elliott, As far as I can tell, what Ioke calls "macros" are Io-like functions
02:47:09 <elliott> Oklopol: i would have thought your code in general would be a constant annoyance when debugging :)
02:47:14 <elliott> that is, incidentally, not a complaint at all.
02:47:17 <Oklopol> Pivot should actually work, quicksort doesn't.
02:47:22 <Sgeo> Is that less bad than what Io does, since it means most functions don't do that sort of shenanigans?
02:47:27 <elliott> Oklopol: also it has changed i don't have qsort
02:47:30 <Oklopol> I don't find my code particularly hard to debug.
02:48:44 <elliott> Oklopol: qsort compiled, at least
02:48:50 <elliott> all in less than two seconds, no less
02:49:19 <elliott> add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
02:49:22 <elliott> is the non-null case for qsort
02:49:44 <elliott> now i'm not _certain_ but does qsort result in an integer?
02:49:46 <Oklopol> That looks pretty much right...
02:50:05 <elliott> Oklopol: yes, it works fine here. also, that <2s compilation is without <> marks.
02:50:12 <elliott> i'm going to fix my pretty-AST-printer now.
02:50:25 <Oklopol> I see what the problem is.
02:50:56 <Oklopol> Add is just the python (+) function, yes. That is not something that should be true.
02:51:06 <elliott> also, i'm trying qsort with demolishing now
02:51:48 <elliott> Oklopol: can you tell me why you are talking like this :x
02:55:02 <Oklopol> I don't have a reason, sorry.
02:55:35 <elliott> Oklopol: holy shit holy shit qs compiled
02:56:10 <elliott> now i'm gonna try and figure out how to fix my printer
02:56:26 <elliott> Oklopol: are you going to stop talking like that ever :(
02:57:27 <Oklopol> It is interesting that quicksort compiles, I don't see how it can with that bag.
02:58:12 <Oklopol> How can the element used as pivot ever get to the output?
02:58:41 <elliott> Oklopol: that's a mighty good point.
02:58:59 <elliott> | <<<{'#0': '#0'}>>><<<{'#1': '@(pivot left(car(#0) #0))', '#0': '#0'}>>>_ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
02:59:01 <elliott> ignore between <<< and >>>
02:59:06 <elliott> (note how mine avoids empty automatically :D)
02:59:19 <elliott> Oklopol: that's really weird
02:59:45 -!- luatre has quit (Remote host closed the connection).
03:00:05 -!- luatre has joined.
03:01:18 -!- luatre has quit (Remote host closed the connection).
03:01:25 -!- luatre has joined.
03:01:42 <luatre> ValueError: substring not found :(
03:01:49 <Oklopol> Eh, turns out it is smarter than me. It actually pivots the whole list by the first element, that that the pivot element itself goes on the right side.
03:01:57 <Oklopol> This way, it doesn't have to add it back.
03:02:04 <luatre> quicksort: [#0] | [] => #0 | _ => add(#1 @(pivot left(car(#0) #0)))
03:02:20 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:02:30 <elliott> Oklopol: your quicksort, it is, mighty "efficient"
03:02:34 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:03:04 <Oklopol> Well, the one given by luatre doesn't even call pivot right.
03:03:11 <elliott> Oklopol: no no that's a bug in the printer
03:03:18 <elliott> i fixed that in my local copy
03:03:23 <elliott> :. add(pivot left(1 [1]) pivot right(1 [1]))
03:03:29 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:03:42 <elliott> back to fixing my printer and avoiding thinking about that
03:04:22 <elliott> Oklopol: so how fast does ski compile for you
03:04:32 <Oklopol> It occurs to me that that quicksort would be an infinite loop in any language.
03:04:39 <elliott> i think i'm going to turn destructing on (nice avoidance of the common terminology there btw) to make testing this easier :D
03:04:54 <elliott> Oklopol: insufficient hinting!
03:04:59 <elliott> Oklopol: often a problem with the branchless form
03:05:03 <Oklopol> Because it can never actually "use" a piece of the input.
03:05:19 <elliott> Oklopol: i'm starting to suspect the whole oklopol thing is one gigantic act
03:05:21 <Oklopol> I need to make it also return singletons directly.
03:05:23 <elliott> and you're actually a horribly
03:05:32 <elliott> why do you violate my life's constants
03:05:36 <Oklopol> Either that, or I'm fizzie.
03:06:04 <elliott> despite being in stockholm
03:06:06 <Oklopol> I don't think I've been that much like him.
03:06:12 <elliott> you've punctuated and capitalised
03:06:14 <elliott> and that's basically enough
03:06:36 <Oklopol> Anyway, let me get back to the code.
03:08:47 <elliott> Condition: ['is list?', '#0']
03:09:03 <elliott> deep first ~ {:. [[1, 2], 3] -> 1
03:09:11 <elliott> deep first ~ is list?; cons; car; cdr
03:10:03 <Oklopol> First argument, I suppose, although that's #0.
03:10:10 <elliott> Oklopol: well precisely...
03:10:15 <Oklopol> Really I don't understand how the numbering works at all.
03:10:21 <elliott> depth of first has the constant #0
03:10:27 <elliott> so right, yes, why haven't i handled that
03:13:08 <elliott> | _ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
03:13:10 <elliott> Oklopol: that's definitely the quicksort code.
03:13:35 <elliott> Oklopol: hey you know what clue should be able to do
03:13:41 <elliott> Oklopol: MUTUTALLY RECURSIVE FUNCTIONS
03:15:39 <Oklopol> Yes, it should be able to do those. In fact, didn't I mention adding support for that today?
03:16:02 <elliott> do you talk like this in real life
03:16:48 <elliott> Oklopol: so, challenge: write even? in clue
03:16:50 <elliott> handling positive and negative numbers
03:18:38 <Oklopol> It seems that quicksort works fine now.
03:18:51 <elliott> Oklopol: oh joy: [[clue.DepthLimitException: depth limit exceeded (even?)]]
03:18:56 <elliott> Oklopol: also, can i has the code?
03:18:57 -!- res_ has joined.
03:19:01 <Oklopol> By which I meant my Clue program was wrong.
03:19:22 * elliott changes the depth limit to 10 and tests :D
03:19:31 <Oklopol> Well, actually it turns out only lists of lenght 3 can be sorted.
03:19:31 <elliott> to be fair it is a _very_ complex condition i want
03:19:40 <elliott> Oklopol: insufficient testcases, man
03:19:52 <elliott> Oklopol: Clue, the only language where not testing enough actually breaks your program.
03:20:49 <elliott> Oklopol: i'm having a bit of trouble making a program with a complex conditional
03:21:08 <elliott> Oklopol: specifically, even? is basically this: "if x<0 then (if x==-2 then 1 else 0) else even?(x-2)"
03:21:15 <elliott> and i just can't see how to do that, even with multiple functions
03:21:56 <elliott> i can do it with compare to 0
03:22:45 <elliott> "[compare(#0,0)] | -1 => 0 | 0 => 1 | 1 => @(dec(dec(#0)))"
03:22:55 <Oklopol> The program IS STILL CONCEPTUALLY WRONG.
03:23:16 <olsner> conceptual wrongness exists in program!
03:23:43 -!- poiuy_qwert has joined.
03:23:54 <Oklopol> You know what gave it away? Adding a third test case.
03:23:59 <Oklopol> : [1, 2, 3] -> [1, 2, 3] }
03:24:01 -!- j-invariant has quit (Quit: leaving).
03:24:24 <elliott> so i forgot to give positive even? #1 right
03:24:26 <elliott> [compare(#0 compare(#0 #0))]
03:24:32 <elliott> Oklopol: compare(0 dec(0))
03:24:36 <elliott> greatest way of writing 1 ever???
03:24:57 <elliott> Oklopol: here's what happens if i don't give it 0 either:
03:24:58 <elliott> [compare(#0 compare(#0 #0))]
03:24:59 <elliott> | 0 => compare(#0 dec(#0))
03:25:26 <Oklopol> Yeah nm, yes, that is fun.
03:25:27 <olsner> 0 defined as a number equaling its own predecessor?
03:25:39 <Oklopol> olsner: 0 is the python number 0.
03:25:47 <elliott> wtf i can't tab complete olsner
03:25:56 <elliott> olsner: no, compare() is <=>
03:26:00 <elliott> as in, -1 if <, 0 if =, 1 if >
03:26:09 <elliott> compare(x, x-1) is always 1
03:26:18 <elliott> so basically, Clue is a genius.
03:26:24 <oerjan> elliott: wait Oklopol is in stockholm? that clearly explains the change.
03:27:20 <oerjan> osnler is so hard to tab complete
03:27:51 <elliott> no seriously, it just doesn't let me :D
03:27:54 <olsner> why would I be hard to tab complete?
03:28:09 <oerjan> olsner: PROBABLY YOU'RE IN STOCKHOLM OR SOMETHING
03:28:18 <elliott> Oklopol: so here's a sane compilation of even?:
03:28:19 <elliott> | 1 => positive even?(negate(#0))
03:28:20 <oerjan> that is an explanation for _everything_
03:28:33 <elliott> Oklopol: but say i were to withhold is negative? from this program
03:28:37 <elliott> Oklopol: what does the genius of clue come up with?
03:28:43 <elliott> | 0 => positive even?(negate(#0))
03:29:01 <olsner> oerjan: probably not, but something could arbitrarily decide that my IP is in stockholm for whatever reason
03:29:38 <Oklopol> olsner: No, oerjan attributed my weird behavior to my being in Stockholm earlier.
03:29:53 <Oklopol> I'm not in Stockholm though.
03:29:55 <elliott> Oklopol: as a member of the Clue Standardisation Board, can I humbly suggest that we both rename "empty" to "empty?".
03:30:16 <elliott> Oklopol: are you sure, every predicate is getting "is" in front of it D
03:30:18 * oerjan somehow read that as the Clue Scandinavisation Board
03:30:26 <elliott> Oklopol: i mean sure but only if you actually make the change
03:30:55 <Oklopol> elliott: I'm not making any changes before quicksort works. I don't know why.
03:30:56 <olsner> Oklopol: isn't weird behaviour just normal behaviour when it comes to you?
03:31:08 <elliott> Oklopol: well, done in mine :P
03:31:16 <elliott> olsner: look at how he's fucking talking
03:31:33 <Oklopol> elliott: Okay, I don't exactly mind if your versions differ.
03:31:48 <elliott> Oklopol: i have a feeling you don't think much of elliottclue :)
03:31:51 <Oklopol> Maybe I'll do the change at some point.
03:31:53 <oerjan> elliott: You should just relax, I think.
03:32:13 <elliott> Oklopol: so uh, speaking of changes...constants in branchers? >_>
03:32:36 <elliott> Vorpal: http://0au.de/~apo/mario.png
03:32:41 <elliott> Vorpal: autoconverted, but still, :D
03:34:37 <hagb4rd> i'm sure you already have seen the enterprise [minecraft edition]? -- http://www.youtube.com/watch?v=kn2-d5a3r94 :>
03:34:49 <elliott> yes, like five years ago >:)
03:35:00 <elliott> Oklopol: http://www.youtube.com/watch?v=X32nuDEvw-4
03:37:52 -!- luatre has quit (Remote host closed the connection).
03:38:10 -!- luatre has joined.
03:46:02 <hagb4rd> have you ever played brabens frontier elite? probably the best game ever.. travel our galaxy with a cute spaceship, trade, fight pirates..become elite! until now the only game you can land on planets without any loading screens! pretty nice physics..all that on one single floppy(!).. a masterpiece of work.. hope that there will be a sequel some day :/
03:46:12 <elliott> Phantom_Hoover is an Elite fan.
03:46:15 <elliott> But everyone hates Frontier.
03:46:29 <elliott> Also, there _was_ a sequel.
03:46:36 <elliott> Also, everyone hates Braben. :p
03:47:06 <elliott> hagb4rd: Anyway: http://en.wikipedia.org/wiki/Frontier:_First_Encounters
03:47:28 <hagb4rd> i wonder if there where all the pgogrammers are gone
03:47:54 <hagb4rd> yea i know that one, but its about 15years old or sth
03:48:10 -!- res_ has quit (Quit: Ex-Chat).
03:48:12 <elliott> Oklopol: so I wrote a clue repl... it lets you specify filenames on cmd line, prints all the asts at startup, lets you evaluate stuff in LuatreLang, lets you load new files, and lets you reload everything
03:48:36 -!- GreaseMonkey has joined.
03:48:37 <elliott> http://en.wikipedia.org/wiki/Elite_4
03:50:10 -!- res0001 has joined.
03:50:11 <hagb4rd> how did he manage to fit all this stuff on one single floppy?
03:50:31 <hagb4rd> the old bastard should publish the code
03:50:39 <elliott> Procedural generation. Also, give more credit to Ian Bell; I imagine most of the procedural generation code Ian Bell had at least some part in.
03:50:59 <elliott> hagb4rd: I distinctly recall PH telling me that Braben litigated Bell into taking down the code to Elite.
03:51:11 <elliott> So a Frontier source release might happen, mm, approximately never.
03:51:34 <elliott> hagb4rd: Why bother, Asteroids II is better.
03:52:09 -!- res0001 has quit (Client Quit).
03:52:09 <Sgeo> hagb4rd, I don't think it exists yet
03:53:05 <elliott> hagb4rd: It's a 2D Newtonian-physics-based shooter with full physics including gravity (with orbits!) and things like localised physics distortion (e.g. slow down speed of light in a bubble that enemy is approaching, circle around it quickly and fire bullets inside before they can get out).
03:53:21 <elliott> Being "worked on" very, very slowly by me and PH, whereby most time spent working on it is thumb-twiddling.
03:53:31 <elliott> I do want it to get finished, though.
03:53:43 <hagb4rd> where can i get your alpha?
03:53:55 <Oklopol> 46 seconds to compile quicksort helper, which hopefully was the hard part of quicksort
03:54:06 <elliott> But it's going to be a commercial game if it ever does get done, so, uh, pony up $(preorder price). :P
03:54:18 <elliott> (The release will come with full source code, allowing redistribution of modifications.)
03:54:45 <Sgeo> Is that how Minecraft works?
03:54:46 <elliott> (So modding is perfectly legal and permitted, as well as complete reworks, so long as you either don't distribute enough to reconstruct a large part of the entire game, or only distribute it to people you can reasonably verify own it.)
03:54:49 <elliott> hagb4rd: There _is no code_ right now.
03:54:51 <Sgeo> Releasing source to purchasers?
03:54:57 <elliott> Sgeo: No, Minecraft is just closed source.
03:55:01 <elliott> It's just that Java is very easy to disassemble.
03:55:10 <Sgeo> hagb4rd, there isn't even code for the programming language yet
03:55:15 <elliott> You get something very close to the original code minus names (and the modders are working on that).
03:55:22 <elliott> hagb4rd: All that has been written is gravity.lisp, which does 2D Newtonian mechanics with orbits.
03:55:25 <Oklopol> Even I have disassembled some Java code.
03:55:49 <elliott> hagb4rd: Because 3D Newtonian mechanics is considered rather unfun to fly in -- see Frontier ;-)
03:55:54 <elliott> hagb4rd: The actual game won't be written in Lisp probably.
03:56:05 <elliott> But it was what PH hacked up that in (it doesn't even have graphics, it just prints tables of numbers).
03:56:19 <elliott> But it's a proof that Oklopol was wrong enough, or how PH interpreted Oklopol was wrong enough, and it can work:P
03:56:21 <Sgeo> elliott, what dialect of Lisp?
03:56:33 <Oklopol> >>> funcs["quicksort"]([4, 2, 45, 2, 65, 45, 34, 34, 6 ,76])
03:56:33 <Oklopol> [2, 2, 4, 6, 34, 34, 45, 45, 65, 76]
03:56:37 <Sgeo> What was Oklopol wrong about?
03:56:47 <elliott> Sgeo: Um, Oklopol said that someone said that orbits don't form well in 2D or something.
03:56:54 <hagb4rd> must lurk into this procedural generetion stuff..
03:57:03 <elliott> Oklopol: see, with my luatre console, that's as simple as
03:57:10 <Oklopol> Can I see proof of orbits forming?
03:57:14 <elliott> Oklopol: quicksort([4 2 45 2 65 45 34 34 6 76])
03:57:24 <elliott> Oklopol: proof, err, not really, ph isn't online and i don't have the code, but
03:57:31 <hagb4rd> then call ian and get started with elite4
03:57:32 <Oklopol> elliott: How fun, now can I try this in your bot?
03:57:36 <elliott> Oklopol: basically the only problem was a drift over time, caused by setting dx too high
03:57:46 <Oklopol> Please make it run url-given code.
03:57:55 <elliott> Oklopol: and it would be low enough in a game
03:57:55 <Sgeo> Aren't there plenty of orbit simulators?
03:58:00 <Sgeo> Microsoft Encarta came with one
03:58:04 <elliott> Oklopol: as i said, i don't have the current code
03:58:12 <elliott> Sgeo: the point is getting orbits to form naturally with newtonian mechanics in 2d
03:58:32 <elliott> Oklopol: I might make luatre just an interface to the repl, tbh, but I'll hack it up right now.
03:59:02 <Oklopol> It would be nice to be able to give urls since Clue is sort of a verbose language.
03:59:12 <hagb4rd> nothin simpler then the newtonian mechanics
03:59:31 <Oklopol> http://www.vjn.fi/pb/p1926614985.txt
03:59:33 -!- luatre has quit (Remote host closed the connection).
03:59:47 -!- luatre has joined.
03:59:58 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
03:59:59 <luatre> ValueError: substring not found :(
04:00:11 <Sgeo> What's the point of quicksort append?
04:00:17 <elliott> that was trying to evaluate that as a luatre expr
04:00:20 <Oklopol> Sgeo: It's a helper function.
04:00:34 <Oklopol> It's the kind of appending quicksort does after recursing.
04:00:54 <Oklopol> "quicksort helper" on the other hand has no clear meaning whatsoever.
04:01:10 -!- luatre has quit (Remote host closed the connection).
04:01:15 -!- luatre has joined.
04:01:23 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
04:01:35 <elliott> ...... http://www.vjn.fi/pb/p1926614985.txt
04:01:41 -!- luatre has quit (Remote host closed the connection).
04:01:42 <hagb4rd> inertia, no friction thats all
04:02:02 <hagb4rd> its easier then jumpnrun.. i guess
04:02:04 -!- luatre has joined.
04:02:05 <Oklopol> I don't see what friction has to do with anything.
04:02:06 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
04:02:07 <luatre> Compiling, just a minute...
04:02:07 <luatre> Exception: Can't compile pivot(<id>), inc twice(<id>), caaar pivot helper(<id>), make singleton(<id>), car pivot helper(<id>), quicksort helper(<id>), pivot condition 2(<id>), caaar with consed(<id>), cons to caaar(<id>), quicksort(<id>), greater than?(<id>), quicksort append(<id>), pivot left(<id>), triple(<id>), caaar(<id>), pivot right(<id>), cons to car(<id>), pivot condition(<id>), caar(<id>) :(
04:02:25 <elliott> Oklopol: your code is busy using the old busted clue 1.0 ;)
04:02:41 <elliott> Oklopol: i, uh, can't really think of a way to fix that that isn't a gigantic hack.
04:03:05 <elliott> Oklopol: Yeah, thankfully your program is still written in an identical fashion with <id> everywhere. :p
04:03:16 <hagb4rd> friction and gravity and impulse is the only counterforce to inertia in space Oklopol
04:03:17 <Sgeo> fuck you ~ {. [1] -> [2] . [1] -> [3] }
04:03:32 <Oklopol> Is http://www.vjn.fi/pb/p2134133721.txt better?
04:03:42 <Sgeo> ^^I don't think that's syntactically right
04:03:51 <Sgeo> What are those raw numbers I see in the code for?
04:03:56 <hagb4rd> making things preatty simple
04:04:00 <Sgeo> Those are both arguments?
04:04:01 <elliott> everything is just an example invocation.
04:04:08 <Sgeo> Instead of single-argument functions, ok
04:04:13 <Sgeo> So my fuck you makes sense?
04:04:13 <Oklopol> ...... http://www.vjn.fi/pb/p2134133721.txt
04:04:15 <luatre> Compiling, just a minute...
04:04:15 <luatre> Exception: Can't compile pivot(pivot condition), quicksort helper(quicksort append), quicksort(length), quicksort append(append), pivot left(pivot), pivot right(pivot), pivot condition(empty) :(
04:04:15 <elliott> Sgeo: it is valid, but you want to drop the [] there prolly, and you need hints
04:04:34 <elliott> Oklopol: it's "is empty?" now :D
04:05:09 <elliott> :: fuck you ~ {. 1 -> 2 . 1 -> 3 } fuck you ~ inc; dec; #0; #1; compare
04:05:09 <luatre> DepthLimitException: depth limit exceeded (fuck you) :(
04:05:26 <luatre> KeyError: 'quicksort' :(
04:05:49 <Sgeo> :: boring ~ {. 1 -> 2 . 1 -> 2 } fuck you ~ inc; dec; #0; #1; compare
04:05:49 <luatre> IndexError: list index out of range :(
04:05:52 <elliott> Oklopol: btw, why are inc/dec not called succ? also why isn't neg called negate >:)
04:06:01 <elliott> i kinda see clue as the language of the most verbose, useful names you can come up with, thanks to the spaces
04:06:12 <Sgeo> :: boring ~ {. 1 -> 2 . 1 -> 2 } boring ~ inc; dec; #0; #1; compare
04:06:12 <luatre> boring: [#0] | _ => inc(1)
04:06:15 <elliott> Oklopol: also shouldn't your greater than? be "is greater than?"
04:06:22 <elliott> Sgeo: you just need inc to do that. obviously.
04:06:24 <Oklopol> elliott: The way around the fact it's annoying to write "is empty?" will be that some sort of type information will usually tell the system what the contents of the bag should be.
04:06:36 <elliott> Sgeo: i was just giving fuck you a fighting chance with some nice functions.
04:06:42 <elliott> Oklopol: right. so shouldn't it be "is greater than?"
04:06:51 <elliott> Oklopol: and shouldn't neg be negate and sub subtract?
04:07:11 <elliott> Oklopol: you regressed thank you <3
04:07:13 -!- Oklopol has changed nick to oklopol.
04:07:26 <oklopol> ke, as they say in the land of the espanolas
04:07:33 <elliott> oklopol: i kinda miss Oklopol now, i have a feeling coherency is about to take a big dip :D
04:07:57 <elliott> oklopol: so um can I implement inc->succ; dec->pred in my impl sometime
04:07:58 <oklopol> i agree with all your naming stuff
04:08:06 <elliott> i don't have negate or subtract except in foo.clue
04:08:09 <elliott> which has them as negate and subtract
04:08:12 <elliott> maybe i should pre-load foo.clue
04:08:20 <oklopol> the names of things have annoyed me forever, but it's sooooo much work changing them
04:08:44 <oklopol> .:.:http://www.vjn.fi/pb/p8579956286.txt
04:08:45 <elliott> oklopol: changed to is empty? yet?
04:08:51 <oklopol> .:.: http://www.vjn.fi/pb/p8579956286.txt
04:08:52 <luatre> Compiling, just a minute...
04:08:52 <luatre> Exception: Can't compile pivot(<id>), inc twice(<id>), caaar pivot helper(<id>), make singleton(<id>), car pivot helper(<id>), quicksort helper(<id>), pivot condition 2(<id>), caaar with consed(<id>), cons to caaar(<id>), quicksort(<id>), greater than?(<id>), quicksort append(<id>), pivot left(<id>), triple(<id>), caaar(<id>), pivot right(<id>), cons to car(<id>), pivot condition(<id>), caar(<id>) :(
04:09:39 <oklopol> what now? and also, i'd prefer having negate and abs in the stdlib. i see no point not to
04:10:00 <oklopol> remember, this is not a tarpit, it's a high-level language gone really wrong
04:10:55 <oklopol> i changed all the id's back already
04:11:41 <elliott> oklopol: also, negate and abs _are_ in my stdlib
04:11:50 <elliott> oklopol: just use python to do it
04:11:59 <elliott> oklopol: open('foo').read().replace('<id>; ','')
04:12:07 <elliott> oklopol: open('foonew').write(open('foo').read().replace('<id>; ',''))
04:13:01 -!- azaq23 has quit (Ping timeout: 265 seconds).
04:13:11 * elliott renames foo.clue -> std.clue
04:13:24 <elliott> gives you an STD on every use!
04:13:45 <elliott> oklopol: you might wanna s/dec/pred/ and inc to succ on your code while you remove <id>
04:13:50 <elliott> 'cuz i'm gonna take advantage of the moment
04:13:53 <oklopol> i added append as a primitive
04:13:55 <elliott> or would "predecessor" and "successor" be better :D
04:14:15 <Sgeo> Why does id have <> around its name?
04:14:15 <elliott> nah, i'll make it pred and succ
04:14:21 <elliott> Sgeo: old obsolete feature
04:14:25 <elliott> oklopol: and i'll implement append in the stdlib
04:14:48 <elliott> technically i could have backwards-compat here
04:14:53 <elliott> but then you'd never change your progs :D
04:14:55 <hagb4rd> "[..]However, Mr Braben said that the pair originally had some difficulty finding a publisher, despite the game being popular with their friends.
04:14:55 <hagb4rd> He said that the game was so different from traditional coin-operated games, not least because Elite did not actually have a score, that most publishers rejected it. 'They just didn't get it, they wanted a high score and they wanted players to have three lives' ..lol
04:15:35 <elliott> oklopol: btw i have greater than? in my stdlib
04:15:39 <elliott> i'll rename it "is greater than?"
04:15:52 <elliott> oklopol: i still think this verbose naming might be a mistake :D
04:16:23 <oklopol> well there could be shorthands as well.
04:16:36 <oklopol> if it's not clear what is meant, both are added to the bag!
04:16:50 <oklopol> that's the great thing about clue
04:16:56 <oerjan> abs should be absolute value, surely
04:17:20 <elliott> oklopol: after you get qs working can I eliminate , from arglists and lists too?
04:17:32 <oerjan> elliott: magnitude, then?
04:17:32 <oklopol> how about "The function that returns the absolute value of the number given as a parameter."
04:18:07 <elliott> "A function that returns the negation (the subtraction from zero) of its argument if it is less than zero, or the argument itself if it is greater than or equal to zero."
04:18:11 <oklopol> yes, ","'s should be removed
04:18:53 <oklopol> also what were the things i was supposed to do for the sourch
04:19:14 <Sgeo> How much of the stdlib is primitives, and how much is written in Clue?
04:19:49 <elliott> Sgeo: there are a handful of both
04:19:59 <oerjan> "It's clues all the way down!"
04:20:08 <elliott> that should be it for now i think
04:20:12 <oerjan> (IN AN ALTERNATE IDEAL UNIVERSE)
04:20:26 <HackEgo> 17) IN AN ALTERNATE UNIVERSE: <pikhq> First, invent the direct mind-computer interface. <pikhq> Second, learn the rest with your NEW MIND-COMPUTER INTERFACE. \ 23) IN AN ALTERNATE UNIVERSE: <bsmntbombdood> there is plenty of room to get head twice at once \ 24) <oerjan> In an alternate universe, ehird has taste \ 25) IN AN
04:20:31 <elliott> oklopol: so anyway, my append function is taking A VERY VERY LONG TIME
04:20:33 <Sgeo> What are the ... does TC-ness imply?
04:20:45 <Sgeo> Why did I just say imply? I meant.. make sense
04:21:01 <elliott> oh more hints sped it up :D
04:21:19 <elliott> | _ => cons(car(#0) @(cdr(#0) #0))
04:21:48 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:21:51 <luatre> Compiling, just a minute...
04:21:51 <luatre> Exception: Can't compile quicksort helper(quicksort append), quicksort(length), quicksort append(append) :(
04:22:30 -!- luatre has quit (Remote host closed the connection).
04:22:36 -!- luatre has joined.
04:22:54 <oerjan> Sgeo: i imagine there is some function you cannot write in clue because no matter how many sample values you give there is _always_ a candidate function that works for those values and is easier to find. (note: i don't _really_ know how clue works.)
04:23:08 <elliott> oerjan: but is that function completeable
04:23:15 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:23:22 <elliott> oerjan: and remember that it only uses functions _you_ allow it to
04:23:30 <elliott> oklopol: what did you do to it.
04:23:50 <oklopol> oerjan: you can basically write imperative code
04:23:55 <luatre> Compiling, just a minute...
04:23:55 -!- luatre has quit (Remote host closed the connection).
04:24:07 <Sgeo> THE LOT OF YOU
04:24:10 <oklopol> it takes 46 seconds on my computer
04:24:14 -!- luatre has joined.
04:24:15 <elliott> oklopol: try when it comes back
04:24:18 <oklopol> and with your append, of course much more
04:24:31 <oklopol> because the function that takes 46 seconds is slow because it uses append so much
04:24:33 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:24:34 <luatre> Compiling, just a minute...
04:24:43 <elliott> if it takes 3 seconds i'll lol at your feeble computer
04:25:12 <oklopol> consider adding append as a primitive
04:25:19 <elliott> oklopol: consider FUCK YOU
04:25:24 <elliott> clue is a language for beauty, not usefulness
04:25:39 <luatre> Exception: Can't compile quicksort(length) :(
04:25:43 <oerjan> oklopol: elliott: i sincerly hope you will make a clue wiki page
04:25:49 <oklopol> ability to run at all is not even close a design goal, no
04:25:50 <elliott> i'll add append to std.clue
04:26:29 <oklopol> yeah i added a length function
04:26:32 <oklopol> as primitive, do you have it?
04:26:51 <oklopol> also make append check that its arg is not an integer
04:27:04 <elliott> oklopol: what does it do for integers
04:27:22 <elliott> oklopol: None the python object?
04:27:34 <elliott> well anyway reloading is broken SO
04:27:35 -!- luatre has quit (Remote host closed the connection).
04:27:36 <oklopol> oh it has a special meaning
04:27:57 -!- luatre has joined.
04:27:59 <elliott> oklopol: i haven't implemented that :)
04:28:02 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:16 <oklopol> at some point, i'm going to add { . [1] -> ! }, that is, erroring out
04:28:35 <oklopol> as a primitive type system
04:28:39 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:41 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:42 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:43 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:43 <oerjan> `addquote <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:28:44 -!- luatre has quit (Remote host closed the connection).
04:28:44 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:28:50 -!- luatre has joined.
04:28:51 <luatre> length: [#0] | [] => 0 | _ => succ(@(cdr(#0)))
04:29:02 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:29:03 <luatre> Compiling, just a minute...
04:29:03 <elliott> oerjan: I _mentioned_ ability to run before that :P
04:29:16 <oklopol> "just a minute" is funny because it actually takes about a minute.
04:29:23 <elliott> caaar ~ {. [1, 3, 4] -> 4}
04:29:35 <elliott> oklopol: i suspect this will turn into "[#0] | _ => 4"
04:29:35 <oklopol> yeah it's not really caaar
04:29:46 <elliott> oklopol: i suspect this will turn into "[#0] | _ => 4"
04:29:50 <elliott> but yes, that is also true :P
04:30:10 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
04:30:10 <luatre> greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0
04:30:10 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
04:30:10 <luatre> pivot right: [#0] | _ => caaar(pivot(#0 #1))
04:30:10 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
04:30:11 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
04:30:11 <luatre> caaar: [#0] | _ => car(cdr(cdr(#0)))
04:30:12 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
04:30:12 <luatre> make singleton: [#0] | _ => cons(#0 [])
04:30:13 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
04:30:13 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
04:30:14 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
04:30:14 <luatre> triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2)))
04:30:14 <oklopol> how could it turn into that
04:30:15 <luatre> caaar with consed: [#0] | _ => cons(#0 caaar(#1))
04:30:24 <oklopol> in no way could it turn into that, #4 is not given
04:30:41 <luatre> ValueError: substring not found :(
04:31:10 <oklopol> :. quicksort([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245])
04:31:11 <luatre> [1 2 3 4 4 4 5 5 5 6 6 6 6 9 34 34 45 45 45 46 53 54 54 54 54 54 55 65 65 67 67 67 76 76 234 345 345 354 356 435 536 564 643 3467 5245 6356 6543 58678]
04:31:20 <elliott> it even runs in finite time!
04:31:22 <oklopol> it's great how the actual programs aren't slow at all
04:31:24 <elliott> WITHOUT blowing the stack!
04:31:37 <elliott> :. [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]
04:31:38 <luatre> [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]
04:31:43 <elliott> :. length([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245])
04:31:50 <elliott> oklopol: yeah anything that can sort a 48 second list in a second is amazing in my book :D
04:32:13 <oklopol> elliott: you aren't being sarcastic by any chance? :D
04:32:32 <elliott> you sounded very oerjan for that line
04:32:48 <elliott> oklopol: but yeah, p. amazing
04:32:52 <elliott> how come this actually works
04:32:57 <elliott> kinda...damaging my faith in languages?
04:33:16 <elliott> oklopol: isn't it the clue way that, after doing one sort, you don't need to do any more
04:33:23 <elliott> because a smart impl could just turn it into any sort it wants
04:33:30 <elliott> ergo i don't have to do that :D
04:33:33 <oklopol> oerjan: yeah probably i should write up a couple page spec
04:33:43 <elliott> oklopol: you've done fib right?
04:34:11 <elliott> oklopol: i'm very close to writing a clue mode for emacs
04:34:14 <elliott> just to do the fucking indentation for me
04:34:23 <oklopol> btw that quicksort should probably go in the stdlib.
04:34:41 <oklopol> although all the functions you made for it should be primitives imo :P
04:34:41 <elliott> oklopol: well. you see. i would. except the stdlib currently takes about a second to compile.
04:34:49 <elliott> yeah i might make them primitives ;x
04:35:04 <oklopol> what's wrong with stdlib taking a minute to compile? :D
04:35:36 <oklopol> oerjan: anyway with the tcness definition most people have, clue is tc because i made ski in it
04:36:02 * Sgeo goes to write a wrapper for the AW SDK in Clue
04:36:07 <elliott> ::: http://www.vjn.fi/pb/p3111652293.txt
04:36:08 <luatre> Compiling, just a minute...
04:36:09 <luatre> DepthLimitException: depth limit exceeded (fib) :(
04:36:30 <elliott> ::: http://www.vjn.fi/pb/p7621978181.txt
04:36:31 <luatre> Compiling, just a minute...
04:36:32 <luatre> DepthLimitException: depth limit exceeded (fib) :(
04:37:31 <elliott> ::: http://www.vjn.fi/pb/p8721655922.txt
04:37:31 <luatre> Compiling, just a minute...
04:37:32 <luatre> fib: [#0] | 0 => 0 | 1 => 1 | _ => pred(#0)
04:38:36 <oklopol> this language really makes you think
04:38:41 <elliott> oklopol: i like how i TOLD it i was going to recurse
04:38:49 <elliott> nah man, this shit is easy
04:38:52 <elliott> ::: http://www.vjn.fi/pb/p8928373356.txt
04:38:52 <luatre> Compiling, just a minute...
04:38:52 <luatre> fib: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
04:39:21 <oklopol> note that the problem is your algo
04:39:32 <elliott> oklopol: my algo looks right to me?
04:39:41 <oklopol> ":. fib(100)" taking forever
04:39:52 <elliott> i think i might kill the bot!
04:40:03 <oklopol> i'm just very protective of clue
04:40:11 <oklopol> so i had to tell that right away
04:40:40 <oerjan> `run sed -i 's/usefulness/usefulness <elliott> or ability to run at all' quotes
04:40:44 <elliott> i'ma internalise^Wprimitivise the functions now
04:40:53 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:41:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18966
04:41:07 <oklopol> maybe i'll write a real crappy page for clue now so you can then complain about it and i have to make it better
04:41:09 <elliott> oerjan: the way of the quote database is very subtle.
04:41:20 <oklopol> actually that sounds really hard
04:41:28 <elliott> oerjan: you missed the last / for instance >:)
04:41:40 <elliott> oklopol: oh man my machine is churning
04:41:49 <oklopol> elliott: fib 100 will never run
04:42:01 <oerjan> `run sed -i 's/usefulness/usefulness <elliott> or ability to run at all/' quotes
04:42:20 <elliott> oklopol: what should I make add([] []) be?
04:42:29 <elliott> do errors in testing make the test fail?
04:42:32 <elliott> if so that'd be beneficial
04:42:49 <elliott> oklopol: add([1 2] [3 4]), I want to stop it working
04:42:49 <oerjan> elliott: well i knew i was tempting fate with using sed -i at all :D
04:42:57 <oklopol> stop it working in what sense
04:42:58 <elliott> will raising an exception make all tests involving add on list "fail"?
04:43:03 <elliott> oklopol: stop it returning [1 2 3 4].
04:43:10 <oklopol> you return None, as i said
04:43:15 -!- luatre has quit (Ping timeout: 240 seconds).
04:43:15 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <elliott> or ability to run at all <oklopol> ability to run at all is not even close to a design goal, no
04:43:24 <oklopol> that will not give you a None object in code
04:43:41 <oklopol> and it means test cases will fail, i guess that's what you wanna hear
04:43:56 <elliott> btw isinstance(a,int) fails for sufficiently big a
04:44:00 <elliott> and s/int/long/ works only for big a
04:44:43 <oerjan> > let fib = 1:1:zipWith(+)fib(tail fib) in fib!!100
04:44:44 <elliott> oklopol: length(0), None or 1?
04:45:04 <oklopol> length of numbers should be None
04:45:26 <oklopol> types will play a very important in clue 1.5
04:45:49 <oklopol> so let's try to separate the existing two types as much as possible
04:46:26 * elliott removes is even? from stdlib for now
04:46:52 <elliott> oklopol: i'm leaving is zero?, is negative?, and is greater than? in stdlib
04:46:57 <elliott> because they're... not performance-intensive
04:47:09 -!- luatre has joined.
04:47:13 <elliott> heh luatre died due to not responding to pings due to being lagged
04:47:27 <elliott> oklopol: wanna rename caaar to what it actually is and then link me to the qsort?
04:47:31 <elliott> i'll add it to my filesystem
04:47:36 <oerjan> is odd? should be called i don't even?
04:47:45 <elliott> what is this(i don't even?(42))
04:47:57 <elliott> oklopol: have you done fact
04:49:06 <oklopol> btw god esolanging is fun, why don't we do it more often :D
04:49:18 <oklopol> http://www.vjn.fi/pb/p8325321461.txt
04:49:19 <elliott> code=reduce(lambda a,b:a+b,[i for i in code if i!=" "])
04:49:25 <elliott> oklopol: you realise that this doesn't remove newlines?
04:49:32 <elliott> or are they removed elsewher
04:50:09 <oklopol> newlines are not the same as spaces
04:50:29 <oklopol> they are the end marker of bags
04:50:51 -!- hagb4rd has quit (Ping timeout: 240 seconds).
04:50:53 <oklopol> i don't really know the syntax...
04:51:13 <oklopol> "do like in these examples and it should work"
04:51:26 <elliott> oklopol: how many :s should comments be
04:51:38 <elliott> four? that's kinda nice since :: looks commenty
04:51:43 <elliott> or six, ::: looks the same
04:51:45 <elliott> and :: might be wanted for something
04:52:01 <elliott> yeah i'll make it six if that's okay
04:52:18 <oklopol> it would be nice if 5 was used as well then
04:52:25 <elliott> oklopol: well that's reserved for future expansion
04:52:57 <oklopol> are you actually adding :::?
04:53:08 <oklopol> you can just make it cut the rest of the line
04:54:09 <oklopol> oh god that exams gonna go baaaaaaaaaaaaaaaaaaad
04:54:20 <oerjan> caaar (l) = we need to go deeper (3 l)
04:55:10 <oklopol> btw once ! is added, you can pretty much exactly write the code you want
04:55:29 <oklopol> well umm, hard to put it to words
04:55:40 <oklopol> but it has a similar role as a weird thing as it does in prolog
04:55:43 <oklopol> of course, completely different
04:55:54 <oklopol> but it's this sort of technical thing that can be used to guide searches
04:56:06 <elliott> ghetto_ast is ghetto no more, incorporated into clue.py itself
04:56:10 <oklopol> it's actually very natural in clue, but i just find that fun for some reason
04:56:32 <oklopol> also the meaning is actually kinda similar, "stop this branch of search"
04:56:44 <elliott> TODO: rename the luatre functions to something nicer, put in luatre.py
04:56:50 <elliott> (I've decided that the expression language is called luatre)
04:57:14 -!- luatre has quit (Remote host closed the connection).
04:57:20 -!- luatre has joined.
04:57:26 <elliott> oklopol: put quicksort in again
04:57:39 <elliott> oklopol: while i work on a faster fib
04:58:07 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:58:08 <luatre> Compiling, just a minute...
04:58:14 <variable> how do I indicate an error in Haskell ?
04:58:24 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
04:58:24 <luatre> greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0
04:58:24 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
04:58:24 <luatre> pivot right: [#0] | _ => caaar(pivot(#0 #1))
04:58:24 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
04:58:24 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
04:58:24 <luatre> caaar: [#0] | _ => car(cdr(cdr(#0)))
04:58:25 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
04:58:25 <luatre> make singleton: [#0] | _ => cons(#0 [])
04:58:26 <oklopol> oerjan: would be nice except it's not a function
04:58:26 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
04:58:26 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
04:58:27 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
04:58:32 <oerjan> > error "Message here"
04:58:39 <elliott> variable: error "foo" for simple stuff
04:58:55 * Sgeo wants a jetpack
04:58:59 <elliott> variable: you might also consider returning (Maybe resulttype) instead, or having (Either SomeErrorType resulttype)
04:59:00 <Sgeo> http://www.martinjetpack.com/
04:59:03 <elliott> variable: for API functions
04:59:21 <variable> elliott, nah - I need Error in this case :-}
04:59:22 <elliott> "The Martin Jetpack is a experimental aircraft. Its tradename calls it a "jet pack", but is not jet- or rocket-powered."
04:59:34 <oklopol> elliott: consider printing compilation time btw, i find it very interesting at least
04:59:48 <oerjan> variable: it's just that error and friends can only be caught in the IO monad
04:59:56 <oklopol> can someone make a disambiguation page? :P
05:00:19 <oerjan> while Either and Maybe can be analyzed by pure functions
05:00:27 -!- luatre has quit (Remote host closed the connection).
05:00:32 -!- luatre has joined.
05:00:47 <oklopol> when clue was young, i remember ais523 saying "yay, we get our first disambiguation page"
05:01:02 <oerjan> variable: also there is undefined for when you don't even want to give a message
05:01:06 <elliott> oklopol: should keymaker's lang be "Clue (Keymaker)" or "Clue (2009)"
05:01:14 <elliott> the former is more disambiguous, the latter...nicer?
05:01:18 <variable> oerjan, does error exit the program? or does it continue going....
05:01:21 <elliott> in fact clue oklopol has no defined creation date i guess
05:02:13 <elliott> oklopol: clue was invented 2010—2011?
05:02:49 <oklopol> it's hard to say when it became a distinct language, all the ideas were there much before
05:02:59 <elliott> oklopol: http://esolangs.org/wiki/Clue
05:03:02 <oerjan> variable: it exits unless you catch it from IO
05:03:54 <oklopol> maybe i should call clue clue++, add km's clue commands, and say clue++ is an extension of clue
05:04:18 <oklopol> now all i need to do is actually write something
05:04:34 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
05:04:35 <luatre> Compiling, just a minute...
05:04:51 <luatre> TypeError: cannot concatenate 'str' and 'float' objects :(
05:05:08 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.12/20101026210630]).
05:05:17 <variable> elliott, http://pastebin.com/PETSzuE1 --> something is obviously wrong
05:05:18 <variable> unn.hs:6:12: parse error on input `<-'
05:05:24 <Sgeo> elliott, you should have oved it
05:05:31 -!- hagb4rd has joined.
05:05:39 <oklopol> maybe for all the syntax things, there could be a verbose command as well, but uppercase: "!" = CUT IT OUT, ":." = "RECURSION BRACH", ":" = SUBBRANCH
05:05:48 <oerjan> variable: essentially haskell has two kinds of error responses, the ones like error, undefined and throw (with more advanced exception options) that don't show up in your expression type but which exit and can only be caught in IO at most, and the other kind like Maybe and Either which show up in your expression type (usually as a monad wrapper) and don't exit but the result needs to be analyzed by the caller
05:05:55 <elliott> variable: also Maybe isn't a value
05:05:57 <Sgeo> Didn't see that the Talk page was in fact on Clue (Keymaker)
05:06:01 <elliott> so i have no clue whet you were trying to do now
05:06:24 <variable> elliott, I need parseUnn to return either "
05:06:34 <variable> an error or "" depending whether the file exists
05:06:54 <elliott> if fileExists then error "Oh no."
05:07:13 <elliott> your current function would need {return ""} as well as the fix for Maybe
05:07:15 <elliott> and you'd have to putStr it
05:07:18 <elliott> but that would be exceedingly pointless
05:07:40 <Sgeo> Someone should put a Network Headache server back up
05:08:06 -!- Zuu has quit (Ping timeout: 260 seconds).
05:08:11 <Sgeo> I wonder if Network Headache could be made to work serverlessly
05:10:17 <elliott> 05:04 luatre: TypeError: cannot concatenate 'str' and 'float' objects :(
05:10:28 -!- luatre has quit (Remote host closed the connection).
05:10:33 <elliott> try _now_ when it comes back
05:10:34 -!- luatre has joined.
05:10:41 <variable> elliott, http://pastebin.com/fLwG6dzU -> now I'm getting incorrect indentation
05:11:18 <variable> { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-))
05:11:52 <oerjan> variable: indent the else
05:11:55 <elliott> variable: um yes, then and else must be at the same level
05:11:58 <elliott> oerjan: better: separate the then
05:12:01 <elliott> put a new line and two spaces before then
05:12:16 <variable> elliott, ah then & else. I was aligning the if and else :-)
05:12:29 <oerjan> well then and else don't _need_ to be at the same level, but that may be best
05:12:35 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:12:36 <luatre> Compiling, just a minute...
05:12:36 <luatre> Compiled in 0.0620181560516 seconds
05:12:36 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
05:12:36 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
05:12:36 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
05:12:43 <elliott> oklopol: this fibonacci function is VERY fast
05:12:44 <variable> I put the then on a new line now :-}
05:12:45 <luatre> 354224848179261915075L
05:12:47 <luatre> OverflowError: long int too large to convert to int :(
05:12:53 <oklopol> did you implement ::: already?
05:13:17 <elliott> oklopol: i'm going to go fix all the functions to not use int() now
05:13:24 <oerjan> variable: technically it's not that else needs to be aligned with anything, but it _cannot_ be aligned with the do statements since it isn't a statement of its own
05:13:34 <elliott> oklopol: i'll use, uh, long() or something... or maybe maybeintmaybelong()
05:13:35 <oklopol> i'll put ::: on the wiki then
05:13:47 <elliott> oklopol: anyway feed it quicksort again
05:14:23 <oerjan> variable: this actually is being tweaked in the newest haskell standard i think because it trips up so many people
05:15:00 -!- luatre has quit (Remote host closed the connection).
05:15:05 -!- luatre has joined.
05:15:08 <elliott> oklopol: feed it qs again dammit :D
05:15:11 <elliott> it'll print compilation time
05:15:15 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:15:16 <luatre> Compiling, just a minute...
05:15:16 <luatre> DepthLimitException: depth limit exceeded (fast fibonacci loop) :(
05:15:27 <variable> elliott, two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments
05:15:29 <elliott> oklopol: your depth limit is too low
05:16:03 <oerjan> <variable> { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-)) <-- that is one of my design goals for my (mostly vaporware) language Reaper
05:16:22 -!- luatre has quit (Remote host closed the connection).
05:16:27 -!- luatre has joined.
05:16:30 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:16:31 <luatre> Compiling, just a minute...
05:16:31 <luatre> Compiled in 0.0681719779968 seconds
05:16:31 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
05:16:31 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
05:16:31 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
05:16:37 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:16:53 <luatre> 354224848179261915075L
05:16:55 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:16:57 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:17:00 <luatre> 222232244629420445529739893461909967206666939096499764990979600L
05:17:08 <elliott> oklopol: apart from your impl being kinda sucky, that fibonacci is stupid fast :P
05:17:09 <variable> oerjan, , two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments
05:17:21 <elliott> variable: mapM_ to go through command arguments
05:17:35 <elliott> number is just (length args) obviously
05:17:50 <elliott> variable: if you've done "args <- getArgs"
05:18:05 -!- azaq23 has joined.
05:18:09 <elliott> oklopol: fine I'll feed it qs
05:18:10 <variable> now - once I bind args - how do I get out of the "do"
05:18:17 <elliott> ::: http://www.vjn.fi/pb/p6825816189.txt
05:18:17 <luatre> Compiling, just a minute...
05:18:19 <variable> I don't need to be in an IO thing anymore
05:18:26 <variable> I want to go back to pure functional
05:18:29 <elliott> variable: um, you can't, what do you mean
05:18:32 <elliott> variable: just call purely-functional functions
05:18:39 <elliott> and do something with them
05:18:45 <elliott> print (somePurelyFunctionalThing 42)
05:18:47 <luatre> Compiled in 14.6956260204 seconds
05:18:48 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
05:18:48 <luatre> cons to car: [#0] | _ => cons(cons(#0 car(#1)) cdr(#1))
05:18:48 <luatre> triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2)))
05:18:48 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
05:18:48 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
05:18:48 <luatre> caaar with consed: [#0] | _ => cons(#0 caaar(#1))
05:18:49 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
05:18:49 <luatre> make singleton: [#0] | _ => cons(#0 [])
05:18:50 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
05:18:50 <luatre> caar: [#0] | _ => car(cdr(#0))
05:18:51 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
05:18:51 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
05:18:52 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
05:19:08 <variable> elliott, erm - I need to get the number of arguments **before** I do args <-
05:19:09 <elliott> oh wait, that is a slightly old one
05:19:17 <elliott> variable: no, you don't, and that's patently impossible
05:19:17 <variable> otherwise haskell outputs an error
05:19:27 <elliott> variable: where do you use the arguments?
05:19:28 -!- luatre has quit (Remote host closed the connection).
05:19:34 -!- luatre has joined.
05:20:30 <variable> elliott, meh - I made a mistake
05:20:41 <variable> before I had (fileName:_) which caused an error with 0 arguments
05:21:12 <elliott> _ -> error "you used it wrong, idiot!"
05:21:18 <elliott> rather than mucking about with length etc.
05:22:35 <oerjan> variable: or possibly [] -> error "you used it wrong, idiot!" as the first option if you want to allow more than one filename
05:22:40 <elliott> oklopol: can you do constants for branchers already
05:22:48 <oerjan> [] -> error "you used it wrong, idiot!"
05:22:55 <elliott> _ -> mapM_ processArg args
05:23:04 <oklopol> elliott: will you remove the commas btw?
05:23:14 <oklopol> because i'll make that official if
05:23:52 <elliott> oklopol: if you remove them from qsort :P
05:24:16 <oklopol> i can remove them from quicksort and ski, sure
05:24:26 <elliott> oklopol: i'll give you my latest ski
05:24:52 <elliott> oklopol: http://www.vjn.fi/pb/p1739965483.txt
05:25:02 <oerjan> variable: incidentally it is generally considered bad form to use length to check whether a list is empty, since that works badly when you want computation to be as lazy as possible, especially with empty lists
05:25:19 <oerjan> *especially with infinite lists
05:25:40 <elliott> oklopol: oh, this might be an issue
05:25:46 <elliott> oklopol: you kinda strip spaces
05:25:49 <elliott> which become the only separators
05:26:02 <elliott> oklopol: shall i uh redesign the parser :D
05:26:25 <oerjan> in fact even using list == [] is considered bad form because that needlessly forces the element type to be comparable for equality
05:26:57 <elliott> yeah infinite cmd line args
05:27:18 <oerjan> elliott: well i'm just trying to prevent him from getting into bad habits
05:28:33 <oerjan> that's the function to use, although it's usually even better if you can use pattern matching
05:28:41 <variable> oerjan, I'm a little confused now: how do I return from a function that an error occurred? Just, Maybe ?
05:29:12 <elliott> oklopol: i think i fixed it
05:29:29 <elliott> oklopol: do you want my current interP?
05:29:31 <variable> oerjan, Nothing is an error ? I was using it to say that nothing needs be done - should I return () for that?
05:29:43 <elliott> variable: data Maybe a = Just a | Nothing
05:29:49 <elliott> variable: imagine the result of a hash table lookup
05:29:53 <elliott> if an element is there, you would return (Just value)
05:30:12 <oerjan> variable: hm if you aren't actually returning a value in either case, maybe it would better to use Bool
05:30:14 <elliott> note that obviously if you return Nothing somewhere you have to return Nothing or (Just x) everywhere
05:30:19 <elliott> otherwise you'd be stepping outside Maybe
05:30:35 <oklopol> i want your interp once i've written a crappy version of the spec
05:30:37 <elliott> oerjan: he's already wrapping doesFileExist
05:30:38 <variable> oerjan, the weird thing in this case is that I need to return nothing except on error
05:31:32 <lambdabot> forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a]
05:31:35 <elliott> variable: runProg filename = do exists <- doesFileExist filename; if exists then error "Oh no!" else return (); main = do args <- getArgs; case args of [] -> error "Oh no!"; _ -> mapM_ runProg args
05:31:37 <variable> oerjan, http://www.esolangs.org/wiki/Unnecessary --> Writing a compiler for this
05:32:07 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
05:32:15 <variable> elliott, I had that - but then the compiler exits after the first bad file name
05:32:27 <elliott> variable: ah, you do not want that?
05:32:50 <variable> elliott, no - I want it to go thru every given file name and report failure of any of them
05:32:56 <elliott> @hoogle (a -> m b) -> m a -> m b
05:32:56 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
05:32:56 <lambdabot> Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b
05:32:57 <lambdabot> Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b
05:33:11 <elliott> variable: don't use error, then
05:33:19 <variable> elliott, just return a plain string?
05:33:37 <elliott> main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!")
05:33:48 <elliott> variable: I would use putStrLn directly
05:33:50 <oklopol> ==...== is a section, can i make a subsection kinda thing
05:33:51 <elliott> since you're in IO already
05:34:07 -!- luatre has quit (Remote host closed the connection).
05:34:11 <oklopol> everything else someone else will have to fic
05:34:13 -!- luatre has joined.
05:34:16 <elliott> oklopol: commas removed, plz2be qsort and ski
05:34:50 <elliott> oklopol: so it's 5:34 am and i blame you
05:35:48 <elliott> Vorpal: oklopol: http://www.minecraftwiki.net/wiki/Ambience oh holy fucking shit i had no idea this exists
05:36:05 <oerjan> elliott: i think it would have become 5:34 am eventually regardless
05:37:06 <variable> elliott, http://pastebin.com/8SRWxGm4 this is what I have so far. If I add putStrLn before parseUnn it fails; if uncomment the commented line it fails
05:37:11 <elliott> oklopol: http://www.youtube.com/watch?v=4PA2uLm8ups jesus fucking christ this is terrifying
05:37:27 <elliott> variable: ok well, that is wrong
05:37:46 <elliott> variable: right, okay, firstly
05:37:50 <elliott> so you need to have -> IO String
05:37:51 -!- hagb4rd has quit (Ping timeout: 240 seconds).
05:38:15 <elliott> variable: "putStrLn parseUnn" fails because parseUnn isn't a string :)
05:38:34 <elliott> variable: mapM_ (\filename -> parseUnn filename >>= putStrLn) fileNames would work
05:38:42 <elliott> oerjan should not respond with fancy monad operators now
05:38:51 <elliott> variable: I would s/return/putStrLn/ in parseUnn
05:39:02 <elliott> variable: and note that putStrLn "" will print a blank line -- use return () instead
05:39:09 <variable> cause I want to learn the functional method of doing things
05:39:18 <elliott> variable: the functional method of doing things is not done in IO :-) but okay
05:39:29 <elliott> variable: well... add \n to the end of the error string
05:39:41 <elliott> then s/putStrLn/putStr/ in the line that i said would work but is ugly
05:39:47 <Sgeo> A song got stuck in my head
05:39:47 <variable> elliott, the goal of this isn't to get it done. I did it in bash, perl, ruby, etc already - its to learn the language
05:39:54 <Sgeo> It contains more than my usual amount of swearing
05:40:07 <coppro> variable: try to one-line project euler problems in haskell
05:40:10 <elliott> variable: well, the whole operation of Unnecessary is basically IO.
05:40:19 <elliott> if FILE EXISTS, ok, if not, PRINT AN ERROR
05:40:25 <elliott> variable: so it is hard to suggest a functional way to do this :)
05:40:44 -!- hagb4rd has joined.
05:41:01 <oerjan> variable: although it _is_ possible to use higher-order monadic functions like filterM and mapM
05:41:07 <variable> coppro, I will - I've already done a few of them though
05:41:39 <oerjan> <elliott> main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!")
05:41:55 <elliott> @hoogle (a -> b) -> (c -> m a) -> c -> m b
05:41:55 <lambdabot> Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q
05:43:11 <elliott> oklopol: hihi are you converting
05:43:25 <elliott> oklopol: holy fucking shit
05:43:26 <elliott> oklopol: http://i.imgur.com/iJ2eG.jpg
05:43:30 <elliott> i am gonna rip his head off :D
05:45:46 <oerjan> i distinctly recall @more working once upon a time
05:45:57 <oerjan> @hoogle (a -> b) -> (c -> m a) -> c -> m b
05:45:57 <lambdabot> Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q
05:46:21 <oerjan> just in case someone else had got a command in in #haskell or such
05:46:51 <oerjan> elliott: well it's fmap/liftM + <=< of course
05:47:00 <oerjan> but it may not have a single function for it
05:47:22 <elliott> oklopol oklopol oklopol oklopol oklopol oklopol
05:48:00 <oerjan> :t (\f x -> fmap f . x)
05:48:01 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f1 (f a) -> f1 (f b)
05:49:10 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:49:20 <oerjan> lambdabot still defines (.) = fmap :D
05:49:31 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
05:49:39 -!- hagb4rd has quit (Ping timeout: 240 seconds).
05:49:47 <elliott> oerjan: but yes, of course it defines (.) = fmap, as specified by the Caleskell Report
05:50:18 <oerjan> elliott: your function is just (.)(.) with that notation >:)
05:50:27 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b)
05:51:20 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
05:51:43 <oerjan> indeed it _is_ fmap fmap fmap
05:52:03 <elliott> fmap fmap fmap fmap fmap fmap fmap
05:52:26 <oerjan> elliott: that reiterates after four fmaps
05:53:03 <oerjan> well eventually. i don't quite recall if it's immediately.
06:01:15 <elliott> oerjan: make oklopol a human
06:01:54 <oerjan> a recall reading somewhere that needing to sleep is a distinctly human characteristic
06:02:10 <elliott> he was working on the wiki page
06:03:33 <oerjan> well he hasn't saved the page
06:04:52 <oklopol> http://esolangs.org/wiki/Clue_%28oklopol%29
06:05:33 <oklopol> i tried to make it roughly correct, but didn't really aim for readability or completeness.
06:05:41 <oklopol> you can fix the formatting
06:06:05 <oerjan> oklopol: you will be mercilessly haunted by graue for creating a new category. well, if he gave any sign of being alive, that is.
06:06:32 <oerjan> or perhaps not being alive would help with the haunting
06:07:04 <oklopol> anyway, does that make sense to elliott after already knowing the language?
06:07:19 <elliott> oklopol: have you converted qs or ski
06:07:30 <elliott> oklopol: don't call them commands
06:07:33 <elliott> that's too impure for clue
06:07:50 <oklopol> they didn't really have a name, so i just chose a consistent naming for the purpose of writing that.
06:08:05 <oklopol> a clue is the set of stuff defining a single function
06:08:09 <elliott> oklopol: i'll completely rewrite that, _tomorrow_
06:08:28 <elliott> oklopol: now gimme ski and qs without commas
06:08:43 <elliott> oklopol: based on this ski http://www.vjn.fi/pb/p1739965483.txt
06:09:03 <variable> elliott, \filename what is that syntax called?
06:09:09 <oklopol> i suppose an example should actually be a single [1] -> [2] thingie
06:09:14 <elliott> variable: lambda... it's (\args -> value)
06:09:23 <oklopol> but then i need a name for { ... }
06:09:37 <elliott> oklopol: i'm wondering whether removing commas is actually nice
06:09:52 <oklopol> well i haven't seen code with that, it's just something i've been wanting to have
06:10:14 <elliott> oklopol: do it to qs and a decision can be made
06:10:42 <oklopol> quicksort ~ {. [1] -> [1] . [2] -> [2] }
06:10:42 <oklopol> quicksort ~ {:. [4 2 3 1] -> [1 2 3 4]
06:10:43 <oklopol> :. [2 5 4 1 5] -> [1 2 4 5 5]
06:10:46 <oklopol> quicksort ~ length; cdr; car; pivot left; pivot right; quicksort helper
06:10:47 <oklopol> you tell me that's not elegant as shit
06:10:49 <variable> Couldn't match expected type `IO b'
06:10:50 <variable> against inferred type `[String] -> IO ()'
06:10:54 <variable> _ -> mapM_ (\filename -> parseUnn filename >>= putStrLn)
06:11:07 <coppro> oklopol: what is this supposed to be?
06:11:14 <elliott> oklopol: so um just want to check, we are standardising on my impl right :p
06:11:26 <elliott> since... it's incompatible with yours on just about every program now
06:11:28 <coppro> oklopol: well obviously
06:11:38 <coppro> but what's with the funny syntax?
06:11:54 <elliott> coppro: it's clue, if you don't understand it
06:11:55 <variable> elliott, what am I doing wrong with that?
06:11:59 <elliott> i guess you're mentally retarded cuz
06:12:07 <oklopol> elliott: yes, removal of <> will be in clue 1.0 if that's okay by you
06:12:12 <elliott> variable: you forgot to provide the list at the end
06:12:20 <elliott> oklopol: 1.0? don't you mean 1.5
06:12:30 <oklopol> oh i forgot to credit myself, which i obviously want to do
06:12:35 <elliott> oklopol: but i also mean the renaming of funcs and stuff
06:12:45 <oklopol> coppro: the syntax isn't funny
06:12:48 <elliott> oklopol: can we call what i have clue 1.25 or at least close to it :p
06:12:51 <coppro> oklopol: what language?
06:12:55 <elliott> yeah the syntax isn't the funny part of clue
06:12:57 <variable> elliott, oh - I'm an idiot :-}
06:13:01 <oklopol> elliott: can't we just call it clue 1.0?
06:13:08 <elliott> oklopol: but what you had was clue 1.0
06:13:13 <elliott> i've been thinkin' of this as clue 1.25
06:13:15 <oklopol> but the changes are tiny :\
06:13:26 <elliott> oklopol: but it's also the OPTIMISATION
06:13:36 <elliott> oklopol: clue 1.5 is when we get constants in branches, I know that much :)
06:13:45 <elliott> oklopol: aww c'mon, let me have the 1.25 version number
06:13:49 <oklopol> OR the sensible branching system
06:14:13 <elliott> oklopol: what's a sensible system
06:14:48 <variable> elliott, http://pastebin.com/zVZnPNHj - final version
06:14:52 <oklopol> elliott: the one we designed with ilkka, or mostly i defined
06:15:08 <elliott> oklopol: because i like the current system a lot
06:15:12 <oklopol> instead of having one branching function, separate things one at a time.
06:15:34 <elliott> oklopol: that sounds like clue 2.0 to me anyway, not 1.5
06:15:40 <oklopol> if you find something that's true for a certain subset of examples, but not the other ones, first branch on that
06:16:08 <elliott> oklopol: theoretically that can be done already
06:16:12 <elliott> oklopol: if you have add in the bag
06:16:13 <variable> coppro, what is with the wut ?
06:16:20 <elliott> oklopol: since it can do addition of booleans... and also other stuff :)
06:16:24 <elliott> oklopol: like multiplication of booleans!
06:16:29 <elliott> just cons them into a list
06:16:36 <elliott> oklopol: should improper lists be allowed
06:16:59 <oklopol> elliott: no, they should not
06:17:14 <oklopol> there can be a tree type in the stdlib tho
06:17:31 <elliott> oklopol: can we ditch _? it can easily be coded in two lines
06:17:39 <elliott> and post-<>-removal it's basically never ever useful ever
06:18:04 <oklopol> you're like the secretary i've been talking about getting that does all the trivial stuff for me because i can't be assed
06:18:10 <variable> elliott, I have a new languag. You define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true
06:18:11 <oklopol> how much do you want me to pay ya
06:18:21 <elliott> oklopol: 0, i find this fun
06:18:41 <elliott> oklopol: well you can pay me £1000/day if you really want
06:18:43 <elliott> cheater00: not available here.
06:18:52 <elliott> cheater00: i'm planning on switching to bogons.net...
06:18:58 <cheater00> i wonder if i can reprogram my bebox to work with other isps
06:19:33 <elliott> cheater00: just buy a linksys
06:19:39 <elliott> all other routers are shit
06:19:48 <oklopol> someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway."
06:19:59 <oklopol> and add corrected qs there
06:20:08 <variable> new language -- define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls or exit early. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true
06:20:09 <elliott> oklopol: i will fix qs and ski i guess
06:20:18 <elliott> variable: it's like clue but worse! :)
06:20:24 <cheater00> someone should really fix """<oklopol> someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway." """
06:20:44 <oklopol> variable: it's like thue but worse
06:20:58 <elliott> it's like intercal but worse
06:21:42 <oklopol> "<elliott> oklopol: i will fix qs and ski i guess" <<< thank you, although i did it already
06:21:43 <elliott> oklopol: can i convert windows line endings to unix on all these files :D
06:21:48 <elliott> unless you code with notepad i guess (wordpad can do it)
06:21:49 <oklopol> assuming it was just commas
06:22:38 <oklopol> can you put them on the wiki AND link them here
06:22:56 <elliott> i'll even put them on a wiki page, not vjn
06:23:27 <elliott> oklopol: you forgot to mention how : = ..
06:23:36 <oklopol> that's like the most important part!
06:24:36 <cheater00> oklopol: you are the weakest link.
06:26:40 -!- lambdabot has quit (Ping timeout: 240 seconds).
06:26:59 <oklopol> elliott: i added that information on the page, in its rightful spot.
06:27:00 <Sgeo> There is a spammer on the wiki... posting nice but irrelevent stuff. Not a singe link
06:27:13 <Sgeo> "You certainly have some agreeable opinions and views. Your blog provides a fresh look at the subject."
06:28:34 <oklopol> or maybe that should be mentioned first
06:28:50 <elliott> oklopol: it's approaching 7 am so i'm going to sleep soon, but yeah, clue
06:29:16 <elliott> oklopol: possibly your crowning achievement as far as esolangs go
06:29:28 <elliott> oh sure the others have more interesting "theoretical" bases
06:29:34 <elliott> but do they obsolete the notion of programming itself?!
06:29:49 <elliott> oklopol: http://www.vjn.fi/oklopol/clue.txt oh my god what is this, Clue 0.1?
06:30:15 <elliott> oklopol: i actually kind of like it XD
06:30:29 <elliott> oklopol: i have a suggestion
06:30:44 <elliott> then the bag becomes like... "things you need"
06:30:56 <elliott> oklopol: will implement :P
06:31:30 <oerjan> Sgeo: one theory is that such spammer bots are trying to put their links in some form field which doesn't actually exist
06:31:33 <oklopol> WHAT ELSE SHOULD IT HAVE TELMMETELMMEE :D
06:31:46 <oerjan> so that they don't show up in the resulting edit
06:31:55 <elliott> oklopol: BLACKJACK AND HOOKERS
06:32:13 <elliott> oklopol: stuff_to_clue what is this what what what
06:32:34 <elliott> ah tknz_helper_list looks useful
06:33:32 -!- pikhq has quit (Ping timeout: 264 seconds).
06:33:35 <oklopol> okay it seems it does something more than that
06:34:21 <elliott> you don't even mention helper objects in the article btw
06:34:25 <oerjan> Sgeo: if you google that "You certainly have some agreeable opinions and views" phrase you will find that the spam is also in comments on some sites that are not wikis at all
06:34:54 <oklopol> as i said, didn't really aim for completeness, but yeah those should certainly be mentioned
06:35:24 <Sgeo> Found one.. it links to website
06:35:26 -!- pikhq has joined.
06:35:29 <Sgeo> http://website/
06:35:42 <Sgeo> http://www.knowyouaregod.com/blog/2010/03/27/13/
06:36:08 <elliott> oklopol: this is the greatest language
06:36:24 <oerjan> Sgeo: it could be that is also just something being put in the wrong format for a field?
06:36:26 <elliott> oklopol: i just wish, you know, coding in it didn't suck, because i'd totally use it for everything :D
06:37:03 <Sgeo> Ah, here the spammers suceeded: http://www.universities-in-europe.com/7-unconventional-ways-to-pay-for-a-college-education.html
06:37:11 <elliott> oklopol: so have you ever used emacs
06:37:30 * Sgeo falls in love with Clue
06:37:39 <oklopol> i think i've kinda used it a bit, at some point, but not really a relevant amount.
06:37:58 <elliott> oklopol: if it had it so that if you changed the name of a clue function, all the lines in the branch would automatically get re-aligned
06:38:01 <Sgeo> -shutup- Shut up about Clue!
06:38:05 <elliott> how much more perfect would your life be
06:38:32 <elliott> oklopol: IS THAT "ENTIRELY" I HEAR
06:38:38 <elliott> i believe i specifically forbade entirely as an answer
06:38:51 <elliott> oklopol: why does stuff.py exist btw, it's not like clue.py isn't 700 lines :D
06:39:41 <oklopol> it's not like there's any kind of logical separation
06:40:09 <oklopol> i just felt like things should be in multiple files because that's how adults code
06:40:23 <elliott> i'm a big boy now and i'm going to use multiple files
06:41:41 <elliott> oklopol: should...multiplication be in the stdlib
06:41:43 <Sgeo> I think PSOX was my only multi-file project thus far
06:41:44 <oklopol> mutual recursion is going to be a very big step, and i have no idea what the nice way to do it is
06:41:57 <elliott> mutual recursion is clue 1.75 isn'tit
06:42:04 <Sgeo> I was almost certainly under .. wai
06:42:06 <oklopol> there's no reason to make things slow just for the sake of making them slow
06:42:13 <Sgeo> Was about to say under 18, but I must have been 18
06:42:18 <oerjan> Sgeo: in fact i vaguely recall reading that one antispam technique is to include an invisible form field which _only_ bots would fill out, as a honeypot
06:42:27 <elliott> oklopol: call it "multiply"?
06:42:52 <oklopol> also divide, and make it fail if result is not int! :P
06:43:01 <oklopol> i'm not sure that's very sensible
06:43:16 <Sgeo> I can efel myself barely abl to type
06:43:24 <Sgeo> just staring at the screen numbly
06:43:28 <Sgeo> I don't know wh
06:43:38 <elliott> | 4 => multiply(#0 @(pred(#0)))
06:43:46 <elliott> factorial(4) doesn't even result in 24
06:43:58 <elliott> factorial ~ multiply; pred; 1
06:44:00 <luatre> ValueError: unknown url type: factorial(10) :(
06:44:02 <elliott> AttributeError: 'NoneType' object has no attribute 'isbase'
06:44:04 <luatre> ValueError: unknown url type: factorial(4) :(
06:44:06 <elliott> AttributeError: 'NoneType' object has no attribute 'isbase'
06:44:10 <elliott> oklopol: i think definitely
06:44:48 <oklopol> yeah that's kinda a clue.py bug. i noticed it earlier but i didn't feel like fixing it
06:44:54 <elliott> well i fixed it in factorial
06:44:58 <oklopol> that means none of your branches has been chosen as the default one
06:45:08 <elliott> oklopol: guess what happens when i deprive factorial of 1
06:45:15 <elliott> | 0 => multiply(pred(#0) pred(#0))
06:45:16 <elliott> | _ => multiply(#0 @(pred(#0)))
06:46:09 <oklopol> btw your factorial definition is very weird
06:46:22 <oklopol> did you copy paste it from your fibonacci program
06:46:37 <oklopol> can i have your current version?
06:46:46 <elliott> stack-hogging factorial ~ {. 0 -> 1 }
06:46:46 <elliott> stack-hogging factorial ~ {:. 4 -> 24
06:46:50 <oklopol> yeah, it should still work that way, but you need another base case
06:46:52 <elliott> stack-hogging factorial ~ multiply; pred; 0
06:46:54 <elliott> gonna do tail-recursive now
06:47:12 <oklopol> because it will actually do the recursion, just ignore the result :D
06:47:24 <oklopol> or... i guess it might use it as well, but then it would prolly be wrong
06:48:19 <oklopol> default=clue.branches[len(clue.branches)-1]
06:48:38 <oklopol> call clue, instead of what was @ if default == None before
06:48:51 <oklopol> that should maybe fix things.
06:49:12 <elliott> meanwhile cluetest.py has hung for me
06:49:15 <oklopol> i did, but my version is oooooooooold
06:49:26 <elliott> oklopol: you can fix it in mine tomorrow, double fun
06:49:46 <elliott> oklopol: if you promise not to like
06:50:11 <oklopol> just change those two lines, and maybe test out the current version on the examples
06:50:52 <elliott> oklopol: does vjn have a file-uploady
06:51:02 <oklopol> yes, the filebin, but i doubt it actually works
06:51:15 <elliott> oklopol: btw cluetest is the repl, "python cluetest.py file1 file2 file3", very useful for testing, see its source for more
06:51:26 <oklopol> and i don't know where it is, it seems
06:51:29 <elliott> oklopol: don't change cluetest or cluebot, though, I want to factor out the luatre code into a separate file rather than copypasting it
06:51:34 <elliott> before anything else changes
06:52:01 <elliott> factorial loop ~ {. 0 6 -> 6
06:52:01 <elliott> factorial loop ~ {:. 3 1 -> 6
06:52:04 <oklopol> i'm not going to change anything.
06:52:09 <elliott> factorial loop ~ multiply; pred
06:52:17 <elliott> factorial ~ factorial loop; 1
06:52:34 <oklopol> maybe because of . 3 -> 26
06:53:22 <elliott> oklopol: http://rapidshare.com/files/441572099/clue.zip
06:53:28 <cheater00> elliott: has your superdrive arrived?
06:53:31 <elliott> oklopol: feel free to correct it to 3 -> 6 locally in numplay.clue :P
06:53:34 <elliott> cheater00: no, about monday or tuesday
06:53:59 <elliott> oklopol: btw i would like it if the implementation became properly tail recursive even though python doesn't really allow that
06:54:05 -!- pikhq has quit (Ping timeout: 255 seconds).
06:54:14 <elliott> oklopol: I might make it compile to something that isn't a tangle of lambdas in a day or so
06:54:26 <elliott> because right now tail recursive code is useless :D
06:54:43 <oklopol> yes, was thinking of mentioning that, but realized you aren't an idiot
06:55:23 <oklopol> elliott: compiling to python bytecode shouldn't be very hard
06:55:42 -!- pikhq has joined.
06:55:42 <elliott> oklopol: yeah but also python bytecode is kinda gross
06:56:12 <oklopol> java bytecode would be nice. just because.
06:56:29 <oklopol> everyone else is doing it!
06:56:37 <elliott> oklopol: well it would certainly be fast.
06:56:44 <cheater00> elliott: because i want you to finally stop using macintosh operating system
06:56:53 <elliott> cheater00: i've used debian for the past months and ubuntu before that...
06:56:57 <elliott> i haven't touched os x in like a year
06:57:06 <elliott> oklopol: python bytecode has the advantage of being able to do reply stuff easy
06:57:13 <elliott> oklopol: and it's like... fast enough :P
06:58:12 <elliott> the most intuitive language possible
06:58:32 <oklopol> just give the results, and the compiler infers all the code!
06:58:35 <elliott> cheater00: because you write your programs by simply listing a few example inputs and outputs, and show how they recurse
06:58:40 <elliott> then there's sortofatinylineofhintsbutwhocaresaboutthat
06:58:44 <elliott> and it gives you your function!
06:58:54 <elliott> quicksort: oklopol: python
06:58:59 <elliott> quicksort: http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort
06:59:04 <elliott> cheater00: example driven despair
06:59:10 <elliott> oklopol: test driven dragon
06:59:22 <cheater00> elliott: how does it know what to infer
06:59:26 <elliott> oklopol: i'ma remove greater than? from quicksort and use is greater than? elsewhere 'cuz it's in stdlib
06:59:40 <cheater00> every finite sequence has an infinity of possible continuations
07:00:00 <oklopol> i don't know what test driven development is, but i assume it's something totally gay
07:00:22 <elliott> cheater00: just read http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort and absorb the simple
07:00:43 <oklopol> yeah it's not really even an esolang, we should be talking in #serious_programming
07:00:48 <elliott> Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!!
07:00:51 <cheater00> elliott: this sounds like one of those mysteries
07:01:16 <cheater00> like, how does science putty stay hard yet always able to become malleable
07:01:28 <elliott> Vorpal: this is nicer than painterly
07:01:41 <cheater00> or, how do rice krispies keep crackling and popping??
07:01:47 <elliott> Vorpal: winner of the texture pack compo :P
07:01:59 <elliott> Vorpal: also nice: http://www.eldpack.com/
07:02:24 <elliott> oklopol: so, clue self-interp
07:03:17 <elliott> oklopol: you will like this http://www.minecraftforum.net/viewtopic.php?f=25&t=98896 but i don't think it'll work on smp
07:03:26 <cheater00> the quicksort in clue is really truly the best quicksort ever
07:03:48 <cheater00> in fact i know someone who might be very interested in doing something like this with python bytecode
07:04:08 <oklopol> elliott: wanna make me a texture pack where all the blocks are just drawn a thick border
07:04:21 <cheater00> oklopol: how does clue know what to infer
07:04:24 <elliott> oklopol: i did a almost-all-solid-colour pack but it was beyond fugly
07:04:27 <oklopol> and maybe slightly different hues of black
07:04:32 <elliott> cheater00: and it does generate python
07:04:47 <elliott> anyway people sounds like other people sounds scary, they'd probably want to add a way to call functions too
07:05:03 <elliott> cheater00: http://www.vjn.fi/clue.rar see clue.py
07:05:07 <elliott> glue function in particular
07:05:10 <elliott> has kinda changed but mostly optimisations
07:05:12 <oklopol> well i can explain the procedure i use in my implementation
07:05:13 <elliott> that'll give you a good idea
07:05:17 -!- hagb4rd has joined.
07:05:28 <cheater00> why must i execute non-gpl code for this
07:05:42 <cheater00> A pages you tried to acess does no exist on this servers.
07:05:42 <cheater00> Copyright 2007 by VJN. All Rights deserted. v: 0.9
07:05:49 <elliott> cheater00: that's because you're bad
07:05:56 <cheater00> at least i can stay gpl for another couple of minutes
07:06:00 <elliott> cheater00: http://rapidshare.com/files/441572099/clue.zip
07:06:00 <oklopol> cheater00: it just brute forces
07:06:13 <elliott> if it literally just brute forced it'd never work.
07:06:21 <elliott> cheater00: http://rapidshare.com/files/441572099/clue.zip
07:06:26 <elliott> cheater00: dos line endings because oklopol
07:06:32 <cheater00> can't you use something sane like dropbox?
07:06:41 <elliott> cheater00: i would just host it myself except my web server is sort of not on.
07:06:58 <elliott> dropbox requires an account and is bullshit software i don't need irritating me...like all software
07:06:58 <cheater00> dropboxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy
07:07:02 <elliott> oklopol: do you edit with notepad or wordpad, can't really imagine you using anything else
07:07:17 <cheater00> i like the tools they provide and they're under steady maintenance
07:07:29 <elliott> oklopol: ah good, i can convert to unix file endings
07:07:32 <cheater00> oklopol: you're not using vim??????????????
07:07:40 <elliott> cheater00: fuck you, oklopol can do what the fuck he wants
07:08:01 <cheater00> elliott: i run it inside a VM so that i don't get infected with non-gpl-aids
07:08:11 <cheater00> elliott: no, oklopol cannot do anything.
07:08:20 <elliott> oklopol: thing i wanted to type: rm *.pyc
07:08:20 * cheater00 casts a spell of non-doing on oklopol
07:08:24 <elliott> oklopol: thing i typed: rm *.py
07:08:40 <oklopol> cheater00: it's really hard to just quickly summarize how exactly clue works
07:08:51 <oklopol> i guess it's a good illustration if i explain how recursion is done
07:09:11 -!- luatre has quit (Remote host closed the connection).
07:09:18 -!- luatre has joined.
07:09:19 <cheater00> oklopol: so you give clue some basic rules and some data and infers some rule that fits the data?
07:09:48 <oklopol> you give is an input -> output pair, and you tell it all the subinputs and suboutputs, which would be done recursively, then subinputs are computed from input, and output from suboutputs. this gives you a rule for computing recursive cases
07:10:12 <oklopol> it's the details that are interesting, since they make that feasible
07:10:24 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:10:25 <luatre> Compiling, just a minute...
07:10:25 <luatre> DepthLimitException: depth limit exceeded (pivot condition 2) :(
07:10:28 <cheater00> given two different implementations of clue, how do they ensure they infer the same rule?
07:10:42 <oklopol> cheater00: add more examples, and they'll probably have the same rule
07:11:00 <Sgeo> Why haven't I heard of Fantom before?
07:11:08 <elliott> Sgeo: you have, it was called Fan then
07:11:16 <Sgeo> elliott, I haven't heard of Fan either
07:11:18 <cheater00> oklopol: you just need to make a canonical way of traversing the space of rules.
07:11:29 -!- luatre has quit (Remote host closed the connection).
07:11:34 -!- luatre has joined.
07:11:36 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:11:36 <luatre> Compiling, just a minute...
07:11:36 <luatre> DepthLimitException: depth limit exceeded (pivot condition 2) :(
07:12:04 <elliott> newobj=applier(fun,subsetobjs)
07:12:09 <elliott> oklopol: this. this is the worst.
07:12:21 -!- luatre has quit (Remote host closed the connection).
07:12:26 -!- luatre has joined.
07:12:27 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:12:28 <luatre> Compiling, just a minute...
07:12:28 <luatre> TypeError: 'int' object is unsubscriptable :(
07:13:02 <elliott> File "/Users/ehird/clue/stuff.py", line 47, in car
07:13:02 <elliott> TypeError: 'int' object is unsubscriptable
07:13:37 <Sgeo> Duration literals?
07:13:47 <elliott> oklopol: should isempty 3 be None
07:14:01 <oklopol> cheater00: i don't really care what you think, it's a stupid idea to order the search in the spec, because then compilers would have to check that whole path, and in general that's impossible.
07:14:02 <Sgeo> Never seen anything like those before, although due to Factor's "syntax", factor may as well
07:14:15 <oklopol> it's easier to let people compile however they want
07:14:51 <cheater00> oklopol: not order the search, but canonicize the traversal
07:14:56 <oklopol> cheater00: it's not even specified that the same program should work the same way when compiled twice on the same compiler
07:15:07 <oklopol> cheater00: what's the difference?
07:15:12 <elliott> oklopol: what should cdr([]) be?
07:15:23 <cheater00> for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first"
07:15:33 <Sgeo> Fantom is failing to turn me on
07:15:34 <cheater00> you do NOT have to search all paths to do that
07:15:36 <elliott> oklopol: you will be glad to know, making stuff that should be errors into errors makes clue break the stack
07:15:37 <oklopol> yeah, that's what i meant by ordering the search
07:15:40 <Sgeo> It's not turning me off, but it's... boring
07:15:49 <elliott> Sgeo thinks about languages with his penis
07:16:06 <cheater00> oklopol: you don't have to pre-compute the complete space for that.
07:16:13 <oklopol> cheater00: no, but you can't use another strategy then, and it's not the spec's job to contain the best strategy.
07:16:15 <cheater00> oklopol: it's insane to think that
07:16:38 <Sgeo> Fantom : C# :: C# : Java
07:16:41 <Sgeo> From what I can tell
07:16:43 <oklopol> no you can't, you'd have to prove that it's the first thing you'd've found with the strategy given in the spec.
07:16:59 <cheater00> oklopol: you can input your own strategies.
07:17:11 <cheater00> oklopol: otherwise the language is really infertile
07:17:18 <elliott> oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me.
07:17:23 <elliott> oklopol: additionally, please hold on to your old code
07:17:27 <oklopol> cheater00: you are infertile
07:17:27 <elliott> so i can correct the current code with it tomorrow
07:17:40 <elliott> cheater00: you do not understand clue
07:17:56 <Sgeo> "This means non-nullable is the default unless otherwise specified:"
07:17:59 <cheater00> elliott: you do not understand what i understand about clue
07:18:04 <Sgeo> That's a good thing
07:18:15 -!- elliott has quit (Remote host closed the connection).
07:18:23 <Sgeo> It's like "Improve this here, improve that there"
07:19:13 <cheater00> oklopol: i think being able to input your own strategies would really be the best eva
07:19:24 -!- luatre has quit (Remote host closed the connection).
07:20:27 <oklopol> cheater00: it would be nice, yes, although possibly the topic of another language. what would be retarded is to write "if there is an implementation of function f with these properties in the ball of size k, then this implementation should be chosen".
07:20:55 <oklopol> or having in the spec that you always follow the right hand wall
07:21:05 <oerjan> <cheater00> for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first" <-- except this will cause you to miss parts for most labyrinths. which might be analogously relevant for clue as well...
07:21:05 <cheater00> well you define your strategies and put em in a lib
07:21:24 <oklopol> as i said, if you added a whole strategy concept to the language, yes, that would be nice.
07:22:02 <cheater00> oerjan: no, you would not miss them, unless they're unimportant.
07:22:13 <cheater00> oerjan: the idea is simply to get to the other side.
07:22:49 <oklopol> what does that mean, the right hand algo doesn't have backtracking
07:22:55 <cheater00> oerjan: it is not a goal to visit every square.
07:23:10 <cheater00> oklopol: imagine two labirynths, one is to your right, one is to your left
07:23:17 <cheater00> oklopol: the one to the right has no exit.
07:23:44 <oerjan> cheater00: sorry i somehow read that as "turn right always" :D
07:25:15 <oklopol> that's not part of the right hand algo, but yes, you're right, the right hand algorithm doesn't solve all labyrinth related problems. just like it doesn't solve the knapsack problem.
07:25:54 <oerjan> oklopol: i misread him, he didn't actually say the right hand algorithm
07:26:14 <oklopol> was wondering what that comment of yours was about
07:26:27 <oklopol> cheater00: i'm sorry as well
07:27:28 <oklopol> anyway it's a good thing that programs work differently on different compilers
07:27:45 <oklopol> the point is to put in enough examples that that doesn't happen, which isn't all that many.
07:28:31 <oklopol> this is meant to be a *practical* language, for your everyday programming needs.
07:28:49 <oklopol> it compiles quicksort in less time than it'd take you to eat a sandwich
07:29:23 <oklopol> and if you compile your programs to ski, you can write ANY PROGRAM POSSIBLE
07:29:23 <cheater00> oklopol: you haven't been paying attention in maths class have you
07:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
07:29:43 <oklopol> didn't you insult my math skills once before?
07:29:51 <oklopol> yeah that's the most retarded comment i've ever heard
07:30:20 * Sgeo learns of the existence of Noop
07:30:20 <cheater00> so the only thingi i'll answer is NO U
07:30:22 <oklopol> i'm going to stop talking to you now
07:32:02 <oklopol> but anyway it's clear that you can't continue the sequence 7 5 3 2 1 in anyway for instance, since the next one would have to be a prime number smaller than 1, and one doesn't exist
07:32:14 <Sgeo> SO MANY AWESOME SEEMING LANGUAGES OUT THERE
07:32:25 <oklopol> it can be mathematically proven that there are no prime numbers smaller than 1
07:32:32 <oklopol> let me prove that rigorously:
07:32:51 <oklopol> let p be a prime number that's smaller than 1; then, it must be 0, but 0 is not a prime number
07:33:13 <oklopol> also it could be negative, but then it's not a natural number, and the sequence must be over natural numbers
07:33:41 <oklopol> so i guess you should take your crazy theories elsewhere
07:34:05 <hagb4rd> riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf!
07:34:07 <oerjan> oklopol: 1 IS NOT A PRIME NUMBER
07:34:20 <oklopol> so actually even THAT sequence doesn't exist?
07:34:56 <oklopol> math can be pretty counter-intuitive sometimes
07:35:00 <oerjan> oklopol: you could also drop the 2
07:35:19 <oklopol> have you heard that theorem that if you take a ball, and an infinite amount of boxes, then you can build another ball by making the correct choice?
07:35:21 <oerjan> but that would be an odd thing to do
07:36:24 <oklopol> cheater00: how did it go again, i'm a bit rusty on my advanced complex measure theory?
07:36:35 <oerjan> oklopol: it rings a bell. do you know what's an anagram of banach-tarski?
07:36:59 <oerjan> banach-tarski banach-tarski
07:38:42 <oerjan> hagb4rd: sorry, but if there is anyone here who _doesn't_ know the answer, we'll have to ban him for being insufficiently geeky.
07:39:44 * oklopol just went "oh that simple thing" and went on with his life, now wonders if he could actually do it
07:41:30 <oklopol> was slightly deeper than i expected
07:43:07 <oklopol> hmm right, there actually is a trivial solution
07:43:09 <oerjan> http://xkcd.com/246/ and http://www.giantitp.com/comics/oots0327.html
07:43:36 <oerjan> (also http://tvtropes.org/pmwiki/pmwiki.php/Main/KnightsAndKnaves with the usual warning)
07:43:59 <hagb4rd> oerjan, you havent just gooled the answer, did you?^^
07:44:19 <oklopol> gave away the whole answer
07:44:21 <oerjan> hagb4rd: of course not, i was trying to find that oots comic from before
07:45:06 <oklopol> but you also don't know which one stands at which door :D
07:46:37 <oerjan> btw the tvtropes page _does_ contain spoilers. in fact several options.
07:46:54 <Sgeo> http://emerginglangs.com/speakers/
07:46:58 <Sgeo> I want to learn all of these
07:47:12 <Sgeo> Well, not all of them
07:47:20 <oklopol> okay so just use the fact both operations are involutions
07:47:33 <Sgeo> Dalvik isn't even a lang.. well, I guess it kind of ... huh?
07:47:40 <oklopol> "if you asked yourself, ...."
07:49:12 <oklopol> or, route through both gates
07:49:29 <oerjan> hagb4rd: i am currently mind-boggling at oklopol apparently being _two_ geeky to find a simple solution :D
07:49:31 <oklopol> really it's a trivial problem once you put it down formally
07:49:54 <oklopol> oerjan: my solutions are g^2 and gh
07:50:02 <oklopol> can you get away with just one operation?
07:50:04 <Sgeo> Now I'm looking at ooc
07:50:06 <oerjan> that's a danger of geekiness, you see too many options
07:50:23 <hagb4rd> its not that simple.. to be honest.. i spent hours on it
07:50:26 <oklopol> tell me in pm if you can't tell here
07:51:19 <oerjan> to be honest i've known this puzzle for so long that i cannot even remember if i solved it before reading the answer or not (probably not, to be honest)
07:51:36 <oklopol> i mean it's likely those aren't the simplest solutions when you actually translate them to english, but i don't think that's a very interesting problem.
07:56:56 <Sgeo> I think ooc has more marketers than program language designers
07:57:30 <oerjan> "Another is set in Transylvania, where people can be either sane or insane (insane people believe untruths) and either a human or a vampire. Humans speak the truth and vampires lie all the time, so an insane human speaks untruths he believes while an insane vampire speaks truths he does not believe in."
07:57:48 <Sgeo> Maybe I'm wrong
07:57:59 <Sgeo> But the documentation is so... obtuse
07:58:08 <Sgeo> I'll look at it agian later I gues
07:58:54 <oklopol> oerjan: doesn't a true mathematician forget all problems, and solve them from scratch every time
07:59:09 <oklopol> i hear neumann started all his proofs from epsilons
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:32 <oklopol> it would be nice if that was a characteristic of a true mathematician, because i still keep proving equivalences between definitions of continuity daily
08:00:50 <oerjan> oklopol: i certainly used to do such things
08:00:56 <oerjan> not so much these days
08:01:09 <oklopol> well, i'm working on finite things now, but usually
08:02:08 <oklopol> were you just like me at 21?
08:02:53 <oklopol> exam in 24 hours, fuckfuckfuck
08:02:55 <oerjan> reproving theorems in my head? yes.
08:03:25 <oklopol> being paid to do math has made me a really lazy studier, i feel like i'm above taking courses
08:03:49 <oerjan> i have the impression you're considerably more extroverted than me. but that might not be something which shows perfectly over irc.
08:04:16 <oklopol> i was recently told by a professor that i might enjoy the master's thesis seminar because i'm so extroverted
08:06:29 <oklopol> and once a guy was really surprised i was a mathematician because i actually talked to people
08:06:53 <oklopol> so i wonder what kinda mathematicians he's met because i mostly played the guitar when he visited afair
08:06:55 <oerjan> oklopol: i certainly started dropping a number of lectures after a few years. especially early morning ones.
08:07:44 <hagb4rd> master in maths, social engineerer, star-author and sex-symbol :>
08:07:48 <oklopol> i've started not doing homework, and improvising a solution if asked (they choose a random dude to present their solution)
08:09:01 <oerjan> oklopol: i think he deduces that from the fact you seem to actually get laid
08:09:21 <oerjan> if we are to believe you
08:09:24 <oklopol> hagb4rd: no i don't think so
08:09:34 <oklopol> oerjan: ah, the nerd definition
08:10:28 <oklopol> actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex
08:11:22 <oklopol> (we broke up because of artistic differences)
08:11:32 <oerjan> i _guess_ all the porn talk could be a factor as well
08:12:12 <oerjan> oklopol: you mean she didn't want to make a porn movie with you? how unartistic.
08:12:38 <oklopol> actually she didn't, although i'm not entirely sure that was a factor
08:13:17 <oklopol> so now that elliott is gone
08:13:31 <oklopol> there's really NOTHING for me here, i wonder if i should actually start studying soon.
08:13:46 <oklopol> it's just there's a fuckload of theorems : d
08:13:53 <oklopol> i mean a true and serious fuckload
08:14:07 <oerjan> hundreds of thousands, i hear
08:14:47 <oklopol> do you know green's theorem
08:15:08 <oerjan> no i'm a bit green on that
08:15:44 <hagb4rd> maybe we should kick&ban oklopol, until he mad the grade :p
08:15:50 <oerjan> (i thought you meant in analysis, and was going to complain that i missed a pun opportunity)
08:16:31 <oerjan> hagb4rd: tried that with Sgeo, didn't work
08:16:53 <oklopol> hagb4rd: also i need to sleep some part of that :D
08:17:14 <oklopol> 10 am now, the exam is actually at 9 am tomorrow prolly
08:17:37 <oerjan> it turned out eventually that he only got to doing his homework once he got back on the channel. well i guess the swiftly approaching extended deadline might have had a part as well.
08:17:43 <oklopol> there's maybe 10 pages that contain stuff i couldn't just crap out of my wrist in the exam
08:18:35 <oklopol> oerjan: green's is when you define xLy <=> Sx = Sy and xRy symmetrically
08:18:44 <oklopol> and then H = intersection of those
08:19:16 <oklopol> then a H class is a group iff it contains an identity iff it is closed under multiplication of at least two of its elements
08:19:40 <oklopol> there's a lot more where that came from
08:21:03 <oklopol> well aren't you gonna say "woooooooooow"
08:21:42 <oklopol> if i go to sleep now, and sleep my usual 10-12 hours, i'll still have like 12 hours left
08:21:43 <oerjan> not really, it doesn't precisely sound surprising
08:22:41 <oerjan> oklopol: in my case i would be more worried about actually being able to be awake tomorrow...
08:23:02 <oklopol> there are many examples of complicated proofs in the literature which prove a small subcase of that
08:23:14 <oerjan> but i guess your sleeping rhythm isn't quite as fragile as mine
08:23:19 <oklopol> why is it not surprising, maybe i don't understand it?
08:23:42 <oklopol> i don't have a sleeping rhythm.
08:23:52 <oklopol> i just sleep when ever i happen to
08:23:55 <oerjan> oklopol: well i guess it could be harder to prove than i think
08:24:23 <oklopol> thank god for saying that, i actually took the papers here
08:25:29 <oerjan> the first iff looks like it should be nearly trivial, at least
08:26:10 <oklopol> don't spoil it, i'm sure you're faster than me
08:26:25 <oerjan> hm wait is that an identity for H or for the whole semigroup?
08:28:15 <oerjan> yeah then that is trivial
08:28:43 <oklopol> right to left, why does tehre need to be an inverse in H?
08:29:08 <oerjan> because ee = e, so Sx and xS both contain e
08:29:35 <Vorpal> <elliott> Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!! <-- quite, but the inventory screen looks weird.
08:29:40 <oklopol> xS and Sx of course contain e, because they are that H class
08:29:53 <oklopol> so? that "inverse" might not be in H
08:30:46 <oklopol> alrighty, it's possible that there's a very simple proof, and that it's on three pages just for clarity, there's a very nice lemma that clarifies how things jump between these classes
08:31:20 -!- hagb4rd has changed nick to hagb4rd|afk.
08:32:38 <oerjan> deducing something from "closed under multiplication of at least two of its elements" looks somewhat harder anyway
08:32:41 <oklopol> anyway it's inverse semigroups that are the main point of this course, do you remember that semigroup problem we tried to solve in the fall?
08:33:14 <oklopol> inverse semigroups are that kinda stuff
08:33:25 <oklopol> you define inverses without an identity
08:33:36 <oklopol> like forallx, x = xyx for unique x
08:33:42 <oerjan> xx'x = x and x'xx' = x'
08:34:00 <oklopol> err right, that for unique is inverse semigroup i think
08:34:24 <oklopol> they turn out to have all kinds of crazy properties
08:34:39 <oklopol> ...which i don't understand at all
08:35:00 <oklopol> i suppose i did at some point, but now i don't even remember what the trace is
08:35:31 <oerjan> we were fooling around with idempotents and proving there was only one and thus it was a group under some condition
08:36:27 * oerjan doesn't recall any trace either
08:36:36 -!- marcules has joined.
08:36:42 <Sgeo> What worked for me was not sleeping for 48 hours
08:36:54 <oklopol> S is a group <=> forall x exactly one y: x = x x'x
08:37:14 <Sgeo> The effects of which are still with me
08:37:16 <oklopol> then also exactly one y: x x' idempotent
08:37:26 <Sgeo> In the form of staying up and night and sleeping during the day
08:38:13 <oerjan> oklopol: your spelling seems to imply you need sleep
08:38:16 <oklopol> i'm sure it was the first one
08:38:46 <oklopol> when reading these proofs, the most important thing is being able to retain the about 10 things they name, and remember exactly what equations were proved sofar
08:39:05 <oklopol> and that's like the exact opposite of the being able to do nothing with my brain state that i'm in atm
08:39:28 <oklopol> heeey shoppe is open, maybe i should go buy some pizza, and watch the cleveland show
08:39:32 <oklopol> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
08:39:51 <oerjan> this early on a sunday?
08:39:56 -!- dilapan has joined.
08:40:01 <oklopol> i think it's 10-10 every day
08:40:09 -!- Sgeo_ has joined.
08:40:15 <oklopol> it's a kinda special shoppe
08:40:25 <Sgeo_> BTW, elliott really was trying to login as me
08:40:29 <oklopol> because it's *the* shoppe of the student village i'm living in
08:40:29 <Sgeo_> -NickServ- 3 failed logins since last login.
08:40:31 <Sgeo_> -NickServ- Last failed attempt from: elliott!~elliott@unaffiliated/elliott on Jan 08 23:26:33 2011.
08:40:35 <oerjan> most shops in norway don't keep open on sundays, by law
08:40:48 <oklopol> ones under 400m^2 can stay open here
08:40:52 <oerjan> small ones are exempted
08:41:01 <oklopol> and can in general stay open whenever they want
08:42:40 <oerjan> oklopol: there was a great battle here in the early 90s between shops and gasoline stations where the former had to obey closing restrictions but not the latter and the latter started getting more and more shop-like groceries and the like
08:42:40 -!- Sgeo has quit (Ping timeout: 246 seconds).
08:43:48 <Sgeo_> Ok, the ANI tutorial reads like an esolang spec
08:43:51 <oerjan> after trying for a while to distinguish based on what they sold the politicians eventually gave up and changed it to being based on shop area instead
08:43:57 <oklopol> lol and then shops started selling gasoline
08:44:09 <oerjan> oklopol: well some tried
08:44:24 <oerjan> although not for that reason i think
08:45:13 <oerjan> there was a grocery chain (rema 1000) who tried adding gasoline outlets. this was after what i described above though.
08:45:56 <oerjan> i think they sold them off after a while
08:46:30 <oerjan> anyway here in norway 7/eleven tends to be open 24/7
08:47:32 <oerjan> (they're actually franchised by the rema 1000 people)
08:48:03 <oerjan> well here in trondheim at least, don't know if it's true in smaller places
08:48:28 <Sgeo_> How is ANI not an esolang?
08:49:16 <oerjan> i don't know about ANI but we used to require some _intent_ to be esoteric
08:49:36 -!- ais523 has quit (Remote host closed the connection).
08:50:04 <Sgeo_> I'm sure ANI is perfectly usable for ordinary applications
08:50:05 <oerjan> there was this BancStar thing which was completely insane but which wasn't considered esoteric since it was actually used in some industry
08:50:23 <oerjan> or something like that
08:50:38 <Sgeo_> It's just.. now I know what it feels like for an imperative programmer to jump headfirst into functional programming
08:50:43 <Sgeo_> Utterly, utterly bizarre
08:51:00 <Sgeo_> oerjan, do you know any dataflow languages?
08:51:04 <Sgeo_> Because that's what ANI is
08:52:04 <oklopol> oerjan: multiplication from left preserves H classes, so if two things have their product in a H-class, you also know their H-classes go into that H-class
08:52:14 <oerjan> hm i don't _know_ any, but i've heard something. sisal rings a bell.
08:52:14 <oklopol> this property of H is easy to prove, although a bit verbose
08:52:35 <oklopol> that's xy \in H => H group
08:52:38 <oklopol> which is the hard part i think
08:53:17 <Sgeo_> Oh, I think it's called anic
08:54:17 <oklopol> maybe it's not that simple bleh
08:54:33 <oerjan> um H classes are sort of left-right symmetric aren't they
08:55:22 <oklopol> i specified left because at that precise moment i wasn't sure i wouldn't need to talk about right as well
08:55:33 <oklopol> but now it looks kinda useless, yes
08:55:51 <oerjan> i certainly don't see why multiplication from left preserves H classes
08:59:18 <oklopol> not actually true: what's true is if x, y \in S, xLy, and sx=y, s'y=x, then 1) (s*) : R_x -> R_y is bij., (s'*) : R_y -> R_x is bij 2) (s*) and (s'*) are inverses 3) zLsz for all z \in R_x 4) u, v \in R_x => (uHv <=> suHsv)
09:00:12 <Sgeo_> ANIC gives me a headache
09:00:17 <Sgeo_> It looks awesome, but
09:01:08 <oerjan> oklopol: um but S is not necessary a monoid so how do you know there is an s such that sx=y? or is that an assumption?
09:01:12 <oklopol> if xLy, and sx = y, then multiplication by s from left is actually a bijection from R_x to R_y
09:01:30 <oklopol> and that's easy because s' is its inverse
09:01:45 <oklopol> i have the wrong definition
09:02:04 -!- azaq23 has quit (Quit: Leaving.).
09:03:15 <oklopol> if there already is an identity, then S^1 = S
09:03:37 <oerjan> that's i think equivalent to x \in S y and y \in S x, no?
09:03:58 <oklopol> yes, therefore i could implement this relation with s and s'
09:04:04 <Sgeo_> I don't even know the name of the thing
09:04:06 <oklopol> so yeah that was implicit up there
09:04:08 <Sgeo_> Is it ANI or ANIC?
09:04:46 <oerjan> hm except... if S x does not contain x what then
09:05:00 <oklopol> doesn't matter, L is defined using S^1
09:05:11 <oerjan> it's necessary to use S^1 for that
09:05:54 <oklopol> yes, it's necessary to define that particular definition the way it's defined, if you want to define it the way it's defined.
09:06:21 <oklopol> i just gave the wrong definition for relation L, originally
09:06:29 <oklopol> which would've made the theorems impossible to prove
09:06:34 <oerjan> well if S x doesn't contain x then only x is in its class
09:07:26 <oklopol> in its what class, L class with the correct def?
09:08:16 <oerjan> because S^1 y cannot contain x if S^1 x contains y and x is not y
09:08:53 <oerjan> assuming S x does not contain x
09:09:34 <oklopol> i can't think at all right now :\
09:10:50 -!- GreaseMonkey has quit (Quit: ilua).
09:11:00 <oerjan> assume S x does not contain x, and xLy, x != y. then S^1 x = S^1 y.
09:11:42 <oerjan> since x!=y, y \in S x. also x \in S y. but then x \in S x, contradiction.
09:12:30 <oklopol> you're using the wrong def of L there or?
09:12:53 <oerjan> since x!=y you cannot have 1 x = y or x = 1 y
09:12:53 <oklopol> so... you assume xLy, and prove S^1 x = S^1 y?
09:13:00 <Sgeo_> Maybe I should stick with Mozart/Oz instead
09:13:11 <oklopol> that's the definition of L
09:13:13 <oerjan> oklopol: um that's not proving, that's using the definition
09:14:20 <oklopol> does that give us something interesting?
09:14:33 <oklopol> it seems like it could be the gist of ...something
09:14:46 <oerjan> only a way to rephrase xLy without using S^1
09:14:58 * Sgeo_ goes back to trying to understand ANIC
09:15:38 <Sgeo_> Oz is tempting me though in every other way
09:15:42 <oklopol> i suppose it's something i'd normally consider trivial
09:21:14 <oklopol> i'll prolly go to the shoppe, eat a pizza, and try to sleep only till like 18
09:21:31 <oklopol> and hope i can stay awake all night and then do the exam :D
09:22:09 <oklopol> i've been trying to flip my sleep rhythm all week, but it just keeps around, and i mostly sleep during the day
09:23:11 -!- oerjan has set topic: The fucked up sleep channel | http://esolangs.org/wiki/Main_Page | logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D or (hg) http://codu.org/projects/esotericlogs/hg/.
09:23:23 <oklopol> anyway see ya, might actually be useful to talk about this stuff with you if i was even close to my usual self, but currently i'm just durrrr xS durrrr what did that mean again
09:24:58 <oklopol> ...actually that's exactly what i did because i defined R using xS and then assumed x was automatically there
09:32:04 <Sgeo_> Yay, I wrote an Oz program!
09:32:44 <Sgeo_> All sorts of languages have bizarre ways of saying NOP
09:32:50 <oerjan> i could write an Oz program, if i only had a brain
09:33:01 <Sgeo_> COBOL's continue, Oz's skip, Python's pass
09:34:22 -!- kokkoloko has joined.
09:35:12 <Sgeo_> http://pastie.org/1442161
09:35:24 <Sgeo_> Hey, this code from the tutorial is comprehendible!
09:35:55 <Sgeo_> I just realized something, I think
09:36:25 <Sgeo_> {Max 3 4 X} would bind 4 to X. But {Max 3 4 3} would raise an exception, and {Max 3 4 4} doesn't
09:36:31 <Sgeo_> That's interesting to think about
09:38:57 <Sgeo_> There's def. a Prolog vibe here
09:44:14 -!- kokkoloko has left (?).
09:54:18 -!- j-invariant has joined.
10:03:03 * Sgeo_ wonders what Alice is lie
10:03:26 <Sgeo_> Grah, don't want to learn SML first
10:03:46 <j-invariant> I think it's a sort of toned down version of Oz, but with Types
10:04:09 <Sgeo_> Is Oz still actively worked on?
10:09:50 <Vorpal> ineiros, there is a hole in my mines that I did not blow. I have not been on for a few days but I suspect ehird or PH. It looks like TNT
10:09:59 <Vorpal> they were in that area when I last disconnected
10:10:50 <Vorpal> ineiros, a lot of damage
10:16:36 <Vorpal> ineiros, see /msg for further detailks
10:19:43 <j-invariant> http://superuser.com/questions/230871/is-it-possible-to-code-on-two-different-computers-simultaneously
10:19:45 * oerjan predicts this will instigate a violent minecraft civil war which will lasts for months and only peter out when it turns out these explosions are just caused by a somewhat rare interaction of bugs
10:19:51 <j-invariant> "Is it possible to code on two different computers simultaenously"
10:26:36 <fizzie> oerjan: Sometimes it feels as if we're in a permanent civil war already.
10:32:39 * Sgeo_ wants to see servers based on war
10:32:51 * Sgeo_ imagines extensive Obsidian mining campaigns
10:33:13 <Sgeo_> http://en.wikipedia.org/wiki/List_of_programming_languages
10:33:21 <Sgeo_> Well, there goes any chance of me sleeping ever again
10:33:58 <Sgeo_> Actually, I have no way of determining which are interesting and which aren;t
10:34:25 <fizzie> All that have odd SHA hashes are interesting. (A scientific fact.)
10:35:31 <j-invariant> Sgeo_: you could make something that picks a random one each week and tells you to learn about it
10:41:53 -!- MigoMipo has joined.
10:54:16 -!- Phantom_Hoover has joined.
10:54:16 -!- Phantom_Hoover has quit (Changing host).
10:54:16 -!- Phantom_Hoover has joined.
10:54:36 -!- dilapan has left (?).
10:58:04 <Vorpal> Phantom_Hoover, perhaps you can explain why there is an obvious TNT hole in my mines. You and ehird were the people most recently seen near that place.
10:59:41 <Vorpal> Phantom_Hoover, in other words, you did it?
11:01:38 <Vorpal> Phantom_Hoover, that sounds absurd in this situation. Anyway someone blew up stuff there. One chest with mined obsidian and diamond (about 15 of each) was in the destroyed area. So I want to know who did it
11:02:17 <Phantom_Hoover> elliott placed the TNT, and I set it off unintentionally.
11:02:31 <Phantom_Hoover> Ridiculous as that sounds, I have a touchpad with tap-to-click enabled.
11:03:09 <Sgeo_> So TNT is unremovable?
11:03:30 <Phantom_Hoover> Sgeo_, you can safely detonate it if you pour water over it.
11:03:40 <Vorpal> Phantom_Hoover, speaking of compensation...
11:04:08 <Sgeo_> How much obsidian can you mine with 3 diamonds (= 1 diamond pick-axe)?
11:04:40 <Phantom_Hoover> You've stated yourself that you have storerooms full of it.
11:04:54 <Vorpal> yes quite. But it is work restoring the area
11:05:01 -!- FireFly has joined.
11:05:14 <Vorpal> Phantom_Hoover, you could have told me right away so ineiros could have used a backup to restore that chunk
11:06:14 <Vorpal> Phantom_Hoover, also compensation doesn't work that way. If you burn down a small garden shed in real life of someone who has a large house and a lot of money there will still be consequences
11:07:03 <Vorpal> Phantom_Hoover, I leave it up to you two how to split the compensation between you
11:08:04 <Vorpal> Phantom_Hoover, very well. I will speak with ineiros when he comes on
11:10:23 <Phantom_Hoover> But if you think elliott is going to do anything like help with "compensation", you are being astoundingly naïve.
11:10:26 -!- pingveno has quit (*.net *.split).
11:10:30 -!- coppro has quit (*.net *.split).
11:10:35 -!- Leonidas has quit (*.net *.split).
11:10:45 -!- dbc has quit (*.net *.split).
11:10:49 -!- hagb4rd|afk has quit (Quit: hagb4rd|afk).
11:11:07 <Vorpal> Phantom_Hoover, I wonder what he would do in real life in case he messed up for someone else
11:11:31 <fizzie> Sgeo_: With one diamond pickaxe, you can mine 1025 blocks of obsidian, assuming you have the patience (about 4 hours, 22 minutes of solid mining) for it.
11:12:25 -!- dbc has joined.
11:12:39 -!- pingveno has joined.
11:12:39 -!- coppro has joined.
11:12:39 -!- Leonidas has joined.
11:12:57 <Sgeo_> Minecraft is serious business.
11:13:26 * oerjan distinctly recall someone said obsidian should be made with lava and water, not mined
11:13:54 <Phantom_Hoover> Well, if you don't want to spend ages getting the blocks.
11:17:31 <Sgeo_> How long does it take to transport all the lava to where you need it?
11:17:53 <fizzie> Sgeo_: Depends on how many buckets you want to make.
11:18:16 <Sgeo_> Enough to have large stockpiles of lava
11:18:55 <fizzie> If you use all the non-hand slots for buckets, you could carry 27 bucketfuls of lava each trip to your lava sea.
11:25:55 -!- oerjan has quit (Quit: leaving).
11:26:46 <Phantom_Hoover> fizzie, incidentally, why is the hillside in front of the wooden house scoured of dirt?
11:29:29 <fizzie> Is this a new development or something?
11:30:13 -!- Phantom__Hoover has joined.
11:30:13 -!- Phantom__Hoover has quit (Changing host).
11:30:13 -!- Phantom__Hoover has joined.
11:30:53 <Phantom__Hoover> No, just wondering why it was like that in the first place.
11:31:01 <fizzie> Oh. Well, that was before my time.
11:31:30 <Vorpal> Phantom__Hoover, to answer your in game question: 26
11:33:15 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
12:20:14 <Sgeo_> I think I like Atomo more than Slate, but.. I'm wondering if Slate syntax weirdness is there for a very good reason
12:20:49 <Sgeo_> And how, in Atomo, you'd go about pattern matching such that a family of objects might receive etc,'
12:21:00 <Sgeo_> The way in Slate, you'd use Someclass traits in the thingy
12:21:25 <Sgeo_> I'm assuming elliott knows the answer to this. He's known almost every language I have ever looked at
12:22:33 <j-invariant> does wood have any use? or should it all be turned into planks?
12:22:39 -!- dangerouslyfluff has joined.
12:22:47 -!- dangerouslyfluff has left (?).
12:24:01 <Sgeo_> "For wood to be destroyed by fire it must have several sides simultaneously burning. If only one side is burning, the fire and wood block will last forever. This is probably a bug but makes for nice fireplaces. Now, Netherrack can be used instead, as it burns forever without any tricks."
12:26:05 <Phantom__Hoover> <j-invariant> does wood have any use? or should it all be turned into planks? ← basically, yes.
12:26:36 <j-invariant> also how does the algorithm for culling leaves work?
12:26:47 <j-invariant> when you chop some wood away there is some kind of CA that culls leaves
12:27:16 <Vorpal> <j-invariant> does wood have any use? or should it all be turned into planks? <-- it is useful to carry as logs in inventory, takes less space for the same amount of wood
12:28:35 <j-invariant> Is this list exaustive? http://www.minecraftwiki.net/wiki/Crafting
12:28:40 <Vorpal> j-invariant, lets say you are exploring a cave and want to carry torches with you. Carrying 64 logs will be equiv of 256 wood, which can be used for§ 512 torches (with 128 coal).
12:29:08 <Vorpal> and this can be done in inventory screen crafting slots
12:30:18 <Sgeo_> Atomo blocks are the prettiest of them all
12:30:45 <Vorpal> j-invariant, think so. But I haven't checked.
12:30:54 <Vorpal> but at a quick glance I see nothing missing
12:31:34 <Vorpal> j-invariant, though it does combine some where the material varies but the shape does not (various types of armour, the ore blocks)
12:35:28 -!- sebbu2 has joined.
12:37:27 -!- sebbu has quit (Ping timeout: 240 seconds).
12:41:02 -!- sebbu2 has changed nick to sebbu.
12:48:04 * Sgeo_ wants a list of all domain names that end with -lang
13:01:09 <Vorpal> Sgeo_, unsure if you can enumerate an entire TLD. Probably not
13:01:56 <Sgeo_> Vorpal, I am aware that my fantasy is unrealistic
13:02:03 <Sgeo_> Good thing too. It would be like crack
13:02:15 <Sgeo_> Any list of new and interesting languages is crack to me
13:06:10 <Phantom__Hoover> Sgeo_, http://en.wikipedia.org/wiki/Category:Programming_language
13:06:33 <Sgeo_> Phantom__Hoover, there's no filter on that
13:06:43 <Sgeo_> I have some idea of what fascinates me and what doesn't
13:09:06 <cheater00> it is based on the axiom of choice and uses rotations in 4 dimensions.
13:09:53 <Sgeo_> But there's so many awesome languages not on the wiki!
13:13:14 -!- ELEMENTO has joined.
13:14:15 <Vorpal> <Sgeo_> Vorpal, I am aware that my fantasy is unrealistic <Sgeo_> Good thing too. It would be like crack <-- what, is it a fantasy to list all domains ending in -lang?
13:14:19 <Sgeo_> I just searched Freenode for channels tha mention lang
13:15:40 <Vorpal> personally I seldom check out new languages unless someone I know mentions it
13:17:03 <Vorpal> I found a good set of usable languages that cover my daily needs (haskell, C, erlang, scheme, plus a handful of shell like languages for trivial tasks).
13:19:00 <Vorpal> I don't know of any that uses such a suffix
13:19:14 <Vorpal> I mean, it's #haskell, not #haskell-lang for example
13:19:18 <Sgeo_> Some have lang in the topic
13:19:33 <Sgeo_> #euphoria #mirah #haxe #grml #BitC
13:19:46 <Vorpal> the only one I heard of in that list is BitC
13:19:58 <Vorpal> which looks somewhat interesting. Might be dead though. Not sure
13:20:18 <Vorpal> oh wait, I heard of arc too
13:20:20 <Sgeo_> #fantom doesn't mention lang in the topic
13:21:03 <Vorpal> Sgeo_, it's a very very bad lisp. The PHP of LISPs basically.
13:21:25 <Vorpal> Sgeo_, Paul Graham, need I say more.
13:21:36 -!- ELEMENTO has quit (Quit: Linkinus - http://linkinus.com).
13:21:44 <Sgeo_> "The PHP of LISPs" was more informative than "Paul Graham"
13:23:31 <Sgeo_> grml is not a language, apparently
13:23:59 <Sgeo_> It got caught because of "Official language: en" in the topic
13:27:18 <Vorpal> Phantom__Hoover, err. Are you asking if I'm talking about arc or are you asking what arc is?
13:28:20 <Vorpal> Phantom__Hoover, the PHP of lisps. I expect elliott hates it too (not sure if it has been mentioned in the channel before).
13:28:46 <Phantom__Hoover> Yes, but that's just telling me your opinion of it, not what it is or why you think that.
13:29:45 <Vorpal> Phantom__Hoover, do you know of Paul Graham at all?
13:30:31 <Vorpal> Phantom__Hoover, hm, you should ask elliott when he comes on. I'm a bit busy today. Water leak and that means calling insurance company and so on.
13:41:08 -!- sebbu2 has joined.
13:42:07 <Vorpal> Phantom__Hoover, looks awesome
13:42:22 <Vorpal> Phantom__Hoover, is it Hindenburg?
13:42:43 <Vorpal> Phantom__Hoover, quite. How many blocks it it from end to end?
13:43:04 -!- sebbu has quit (Ping timeout: 255 seconds).
13:43:13 <Vorpal> Phantom__Hoover, less I think. But it is much thicker near the middle
13:43:33 <Vorpal> Phantom__Hoover, and it is a lot more complete
13:43:43 <Vorpal> Phantom__Hoover, what server is it on?
13:47:40 <Vorpal> Phantom__Hoover, nice large ocean in that screenshot too, behind the zeppelin or blimp
13:47:40 <Sgeo_> I'm going to play some more MC
13:47:48 <Sgeo_> I just wish I didn't have to do it fullscreen
13:47:58 <Vorpal> that is end of world is it?
13:48:02 <Phantom__Hoover> Did I mention that it's logically possible to penetrate 1-metre-thick layers of anything?
13:48:31 <Vorpal> Phantom__Hoover, of anything?
13:48:47 <Vorpal> Phantom__Hoover, well sure with the right tools
13:50:33 <Vorpal> Phantom__Hoover, but MC seems to match there except for bedrock. And bedrock can be explained by suspension of disbelief. And also that falling through bottom of world is annoying.
13:57:19 -!- Zuu has joined.
14:22:09 <Vorpal> Phantom__Hoover, are you saying you can wall through a wall of steel 1 m thick without making a hole?
14:23:04 <Vorpal> Phantom__Hoover, oh I thought this was a "look how unrealistic MC is" rant
14:24:46 <Phantom__Hoover> Place track on top of layer. Place minecart on top of track. Climb into minecart. Destroy minecart.
14:27:10 <Vorpal> Phantom__Hoover, where does the minecart end up?
14:27:57 <Phantom__Hoover> I assume you pick it up while falling into the top-secret enemy base.
14:29:47 <Vorpal> Phantom__Hoover, what happens if the layer is 2 or 3 thick?
14:35:46 <j-invariant> http://www.youtube.com/watch?v=S219XUm18LA <-- This particular break is called the AMEN
14:42:13 <Phantom__Hoover> There should really be a language that compiles into a TM.
14:44:13 <Phantom__Hoover> (I still think that http://www.youtube.com/watch?v=E3keLeMwfHY is the coolest thing ever.)
14:44:59 <j-invariant> you need a computer to build that computer
14:47:28 <Phantom__Hoover> Yes, but to be fair an analogue control mechanism would be nigh impossible to build.
14:50:52 <Vorpal> Phantom__Hoover, analogue computers do exist though.
14:54:35 <Phantom__Hoover> Vorpal, any sophisticated enough for a TM's control mechanism?
14:54:57 <Vorpal> Phantom__Hoover, no expert on them
14:56:22 <Vorpal> Phantom__Hoover, isn't that just an FSA basically?
14:56:24 <j-invariant> I don't understand. What's that to do with analogue?
15:03:05 <oklopol> j-invariant: you'd rather explain the idea at length every time you need it rather than give it a name?
15:03:35 <oklopol> i don't think it's at all absurd
15:04:14 <oklopol> anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing
15:05:27 <oklopol> j-invariant: digital is when we use two-valued electrical signals and no moving parts, analogue is else.
15:06:12 <oklopol> well that's a horrible oversimplification.
15:07:02 <oklopol> the significance of the term is that almost everything happens to be digital
15:07:26 <oklopol> so just knowing the vague fact of analogueness is more than enough in many cases
15:07:58 <oklopol> but really i'm not sure what you mean by that nothing in reality is analogue
15:08:48 <oklopol> i hope your point wasn't that the universe is discrete or anything
15:09:07 <j-invariant> I meant analogue as in Newtonian physics or exact real numbers (which can hold an infinite amount of information)
15:09:42 <j-invariant> if you take these things seriously you get stupid consequences like planetary systems which reach infinity in finite time etc.
15:10:50 <oklopol> i don't know what that means. but analogue is a very concrete concept, and it refers to the kind of continuous scales the universe allows, not to computation with reals.
15:11:03 <oklopol> what does "reach infinity" mean
15:12:11 <j-invariant> http://www.ams.org/notices/199505/saari-2.pdf
15:15:43 <oklopol> so reach infinity in the obvious sense
15:16:50 <Vorpal> <oklopol> anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing <-- indeed. Wasn't that what I said?
15:17:01 <oklopol> Vorpal: i was confirming that
15:35:52 <Sgeo_> YouTube comment: "omfg thats diamond i picked that yeter day and thoguht it was a snowball so i threw it into the lava xD"
15:35:57 <Sgeo_> http://www.youtube.com/watch?v=NaZ6wtes58M&feature=related
15:44:49 <Phantom__Hoover> Like a screech or some... oh, it's that terrifying ambience.
15:56:12 -!- Sgeo_ has changed nick to Sgeo.
15:58:48 -!- elliott has joined.
15:59:52 <Phantom__Hoover> elliott, Vorpal told me to ask you why Arc is the PHP of Lisps.
16:00:18 <elliott> Tell Vorpal I just woke up.
16:00:50 <elliott> Phantom__Hoover: Tell Vorpal I just woke up.
16:01:11 <elliott> 23:34:05 <hagb4rd> riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf
16:01:15 <cheater00> j-invariant: real numbers do not hold an infinite amount of information.
16:01:38 <elliott> cheater00: consider Chaitin's omega
16:01:50 <Vorpal> elliott, uh, you are not on ignore. Why go through Phantom__Hoover?
16:01:58 <cheater00> every real number can be encoded by a single point on an axis.
16:02:03 <elliott> Vorpal: because i felt like it!
16:02:10 <elliott> cheater00: that single point is describable only by a real.
16:02:21 <Sgeo> It can take an infinite number of digits to, say, describe the real in binary
16:02:22 <Vorpal> elliott, you are aiming for being awake the same time as oerjan is?
16:02:27 <Phantom__Hoover> They can be represented by an infinite array of bits; ergo, they represent an infinite amount of information.
16:02:35 <cheater00> but that real is just one piece of information.
16:02:46 <elliott> cheater00: you do not understand information theory.
16:02:51 <Sgeo> cheater00, I have a file on my hard drive
16:02:56 <cheater00> it cannot be described by a finite amount of binary data
16:02:56 <Sgeo> It's Infinity GB
16:03:09 <Sgeo> It does not store an infinite amount of information, as it's just one file.
16:03:21 <elliott> cheater00: you do not know what the formal definition of "information" is. accordingly, your arguments have no basis.
16:03:32 <elliott> a real _does_ convey an infinite amount of information.
16:03:51 <cheater00> elliott: my point is, "finite" depends on what algebraic system you are working on
16:04:14 <Sgeo> That's "infinity" that has a tendency to vary, I think
16:04:15 <elliott> cheater00: http://en.wikipedia.org/wiki/Information_theory
16:04:18 <Vorpal> elliott, but how compressible is that real. That is also interesting (though a different issue).
16:04:23 <Sgeo> I think "finite" is usually the same, I may be wrong
16:04:33 <Vorpal> not sure I'm using the right words for it here
16:04:35 <elliott> Vorpal: well it's equivalent to a unique infinite stream of naturals.
16:04:41 <elliott> so it's exactly as compressable as that :)
16:04:44 <cheater00> in Z, you can only encode +oo with an infinite amount of numbers which tend to +oo
16:05:04 <cheater00> in Z u {+oo} you can encode +oo in a finite amount of information
16:05:15 <elliott> cheater00: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all?
16:05:56 <Sgeo> I don't think you act condescendingly. Just wrongly.
16:06:00 <cheater00> elliott: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all?
16:06:01 <elliott> 23:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
16:06:01 <elliott> 23:29:43 <oklopol> didn't you insult my math skills once before?
16:06:01 <elliott> 23:29:51 <cheater00> quite possible :p
16:06:02 <Vorpal> elliott, what I was thinking of was that you can some reals, such as pi or e as a simple algorithm that can calculate it to any given precision.
16:06:02 <elliott> 23:29:51 <oklopol> yeah that's the most retarded comment i've ever heard
16:06:06 <elliott> 23:30:00 <oklopol> seriously
16:06:08 <elliott> 23:30:05 <cheater00> it's mathematically proven
16:06:10 <elliott> ^ this is idiotic and condescending towards oklopol
16:06:18 <j-invariant> 16:05 < elliott> 23:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
16:06:36 <elliott> j-invariant: however, cheater00 was repeating it over and over, acting like oklopol didn't know it,
16:06:39 <cheater00> someone's got a chip on their shoulder
16:06:41 <elliott> j-invariant: and trying to use it to "disprove" that Clue works
16:06:58 <elliott> the fact is that that theorem has basically NO relevance ...ever...
16:07:16 <cheater00> we're back to elliott making up bs
16:07:31 <cheater00> as usual when he's pissed off at something in his life and wants to channel it onto *someone*
16:07:54 <j-invariant> how is that not an attempt to make things worse?
16:08:08 <cheater00> my conversation with oklopol was fairly relaxed.
16:08:22 <cheater00> j-invariant: what i just said about elliott?
16:08:27 <elliott> lol @ logs, cheater00, always the psychoanalyst
16:08:44 <cheater00> j-invariant: how can it possibly get worse when i address the immediate problem at hand?
16:08:49 <elliott> i wonder what kind of person it takes to be a persistent troll without actually actively trying to _troll_, and then acting really stupid whenever anyone treats him like a troll
16:08:53 <j-invariant> llol at putting someone onn ignore then just reading what they say anyway X)
16:09:15 <elliott> j-invariant: it's great because i can just ignore 90% of it and yell at them for the remaining 10%
16:09:32 <Sgeo> elliott, Atomo: Nice language or piece of crap? Same question for Slate
16:09:53 <j-invariant> What's atomo and isn't slate that copycat thing
16:09:54 <Vorpal> <elliott> lol @ logs, cheater00, always the psychoanalyst <-- what exactly is the point of /ignore then :P
16:09:56 <elliott> Sgeo: try deciding yourself...unless you're going through like 498543795345794354354 languages and need a reply
16:10:08 <j-invariant> elliott: he is going through the whole list
16:10:12 <elliott> Vorpal: gets him angry, lets me ignore 90% of what he says without my irc client beeping
16:10:21 <Sgeo> It's just that Atomo and Slate are... similar
16:10:24 <Vorpal> elliott, oh you have it beep your speakers?
16:10:27 <elliott> not really. not at all in fact.
16:10:32 <elliott> Vorpal: when someone highlights me, yes. i find it useful.
16:10:35 <j-invariant> atomo: Hey guys, guys check this out: What if we took scheme right.. and then ... changed the syntax to look like ruby!
16:10:55 <cheater00> elliott: being on ignore doesn't make me angry, you making up bs and getting angry at me for no reason like a hormonal 13 year old girl on a rag makes me angry
16:10:56 <elliott> Sgeo: atomo i don't...care about... at all... it's just...not interesting in the slightest and doesn't innovate at all really
16:11:05 <Vorpal> elliott, i just make it flash the emacs "button" in the taskbar.
16:11:23 <elliott> Sgeo: slate is interesting! i have talked to the people behind it. it's prototype-based but with multiple-dispatch.
16:11:32 <elliott> but...it's still a mutable, imperative OO language
16:11:40 <elliott> and i'm completely sick of them.
16:11:42 <Sgeo> Isn't Atomo also prototype-based with multiple-dispatch?
16:11:46 <elliott> they are very much not the way forward.
16:11:48 <elliott> Sgeo: i don't know nor care
16:12:03 <elliott> okay, looks like it. but it's irrelevant.
16:12:07 <elliott> firstly, it's just a toy language.
16:12:14 <elliott> secondly, Erlang's concurrency model sucks.
16:12:21 <elliott> thirdlyi t's just ... how can you even get interested in it
16:12:30 <elliott> it is impossible to care about
16:12:54 <elliott> also it has macros, which are anti-features.
16:13:01 <Sgeo> It's like a prettier Slate.. missing some Slate stuff
16:13:16 <elliott> j-invariant: "features" that make a language worse
16:13:19 <Sgeo> @ is not pretty
16:13:21 <elliott> j-invariant: example: mutability
16:13:26 <Sgeo> The rest of it is, @ is not.
16:13:33 <elliott> Sgeo: good to know we're still extremely superficial
16:13:53 <Sgeo> Although.. it might be easier to understand than whatever magic Atomo does
16:14:12 <elliott> atomo also has bad concurrency and macros, as i said. two points against it.
16:14:18 <elliott> also, slate is an actual project, atomo is a toy language.
16:14:27 <Phantom__Hoover> <elliott> also it has macros, which are anti-features. ← even the Lispy ones?
16:14:32 <Sgeo> Slate seems to have taken a hiatus, and is just now waking up
16:14:40 <elliott> Phantom__Hoover: pretty much.
16:14:47 <elliott> Sgeo: it has been going since the 90s. their irc channel is relatively active.
16:14:58 <elliott> Sgeo: it still works fine. :p
16:14:59 <Sgeo> The huge manual is supposedly obsolete, there are no up-to-date binaries
16:15:09 <elliott> slate.little.32.2011-01-01.image.bz2
16:15:09 <elliott> slate.little.64.2010-04-01.image.bz2
16:15:12 <elliott> Sgeo: no up to date binaries?
16:15:20 <Sgeo> I stand corrected
16:15:29 <Sgeo> "Release Overview (Currently Old Releases Only)"
16:15:29 <elliott> Phantom__Hoover: (f (g hello) (h))
16:15:31 <elliott> Phantom__Hoover: this can't be the same as
16:15:37 <Sgeo> Why do they say "old releases only" then?
16:15:43 <elliott> Phantom__Hoover: (let ((hello 2)) (f (g hello) (h))
16:15:46 <elliott> Sgeo: those are snapshots, I believe
16:15:55 <elliott> Phantom__Hoover: basically... you can't rely on anything with function applications
16:15:58 <elliott> Phantom__Hoover: every invariant breaks
16:16:47 <elliott> Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid
16:16:56 <elliott> Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation.
16:17:30 <Sgeo> Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style
16:17:43 <elliott> the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway
16:18:01 <elliott> Phantom__Hoover: also: macros introduce more of a "compile time"
16:18:08 <elliott> whereas lazy evaluation doesn'
16:18:52 <Sgeo> elliott, how out of date is http://files.slatelanguage.com/progman/ ?
16:20:51 <Sgeo> "their irc channel is relatively active."
16:21:19 <elliott> Sgeo: perhaps because they haven't had a sgeo to irritate them.
16:27:17 <j-invariant> so I have to somehow aquire like a million iron ingots
16:27:35 <j-invariant> so I can make a track from the spawnpoint to somewhre interesting
16:27:52 <elliott> j-invariant: make sure to make it underground :P
16:27:58 <elliott> or high in the air would probably be ok
16:28:01 <elliott> j-invariant: mobs will walk on it
16:28:05 <Sgeo> Also need to install git
16:28:10 <elliott> and your booster energy will go
16:28:15 <elliott> j-invariant: make sure to use boosters, not powered minecrats
16:28:21 <elliott> unless you want a really slow ride
16:28:31 <elliott> j-invariant: impossible :) but boosters are close
16:28:37 <elliott> j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster
16:28:57 <elliott> j-invariant: it's a "bug" but although some people it's being fixed i'm not sure it will be in the short term at all, everyone uses them
16:29:03 <elliott> and it's SO MUCH FASTER than powered carts
16:29:41 <elliott> j-invariant: well. some people say it is but i haven't actually seen evidence
16:29:52 <elliott> j-invariant: anyway, easy enough to convert to whatever it gets replaced with when that happens.
16:29:58 <elliott> just removing them would be a joke, powered carts are useless
16:29:58 <Sgeo> Actually, I think I understand @ a bit better
16:30:02 -!- Mathnerd314 has joined.
16:30:05 <elliott> use a minecart enhancement mod if that happens :P
16:30:20 <j-invariant> wow http://www.youtube.com/watch?v=0v5cAFYouWY#t=4m52s cool
16:30:25 <elliott> j-invariant: anyway one booster can keep you going for hundreds of blocks
16:30:29 <elliott> so you only really need...one
16:31:53 <elliott> j-invariant: btw, an "easy" way to make a resetting booster is to make it go upwarda fater the cart leaves and hit a wall :D
16:31:59 <elliott> but using the south-west rule is more reliable
16:35:09 <j-invariant> http://www.youtube.com/watch?v=19PZA1tnKtg cool
16:36:37 <Sgeo> elliott, Slate has macros
16:37:17 <elliott> j-invariant: http://www.youtube.com/watch?v=4PA2uLm8ups enjoy being crepeed out
16:37:44 <elliott> j-invariant: pretty much :)
16:38:15 <elliott> 16:15 elliott: Phantom__Hoover: (f (g hello) (h))
16:38:15 <elliott> 16:15 elliott: Phantom__Hoover: this can't be the same as
16:38:15 <elliott> 16:15 Sgeo: Why do they say "old releases only" then?
16:38:17 <elliott> 16:15 elliott: Phantom__Hoover: (let ((hello 2)) (f (g hello) (h))
16:38:21 <elliott> 16:15 elliott: Sgeo: those are snapshots, I believe
16:38:23 <elliott> 16:15 elliott: Phantom__Hoover: basically... you can't rely on anything with function applications
16:38:25 <elliott> 16:15 elliott: Phantom__Hoover: every invariant breaks
16:38:27 <elliott> 16:16 elliott: Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid
16:38:29 <elliott> 16:16 elliott: Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation.
16:38:31 <elliott> 16:17 Sgeo: Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style
16:38:33 <elliott> 16:17 elliott: the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway
16:39:03 <Sgeo> Slate's macros require knowing that you're calling a macro, I think
16:40:30 <elliott> j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster has all kinds of boosters
16:40:56 <elliott> j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it"
16:43:35 <Sgeo> I don't like the idea that, in a message send, a clone of a clone of a clone of an object (essentially, a child) is not necessarily the same as the object itself in choosing what's dispatched
16:43:45 <Sgeo> Maybe I'm misunderstanding it
16:46:17 <elliott> Vorpal: house built on top of ice: best idea?
16:47:33 <oklopol> <elliott> oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me.
16:47:55 <elliott> Vorpal: oh wait bad idea, can't build underground
16:47:56 <elliott> oklopol: yess indeed i will do that in 2 min
16:49:57 <Vorpal> elliott, eh. house on top of ice sounds cool, and cold. And dark since you can't use torches
16:50:49 <Vorpal> <elliott> j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it" <-- ignoring the iron blocks the idea is still very neat
16:51:29 <Vorpal> elliott, btw tried out the two winner texturepacks (well, not the second place one, that candy one). Both are way too dark in colours for me.
16:51:46 <Vorpal> eldpack is somewhat better when it comes to that, but still too dark
16:52:07 <Vorpal> http://www.minecraftwiki.net/wiki/File:Minecart-booster-door-2.jpg <-- why!?
16:52:43 <Vorpal> oh I guess it can't go into the block fully
16:55:20 <elliott> OK. I built a path from spawn to my new house (out of wood markers). It's in a nice area. I have a sword.
16:55:37 <elliott> And there are no mountains to speak of nearby.
16:55:40 <Vorpal> elliott, oh where is that house?
16:55:48 <Vorpal> elliott, you finally getting a house I mean
16:55:54 <elliott> Vorpal: Er, on my single-player game.
16:57:21 <elliott> "As opposed to PostScript?
16:57:21 <elliott> I learned Japanese well after I learned PostScript. It turned out to my delight that Japanese and PostScript grammar have quite a lot in common. I don't know why it hasn't made the Japanese masters at writing clever PostScript though.
16:57:26 <elliott> (oh wait is link to obfuscated raytracer in postscript)
16:57:30 <elliott> so that's why anagolf is full of postscript ;)
16:58:13 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:13 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:13 <elliott> File "/Users/ehird/clue/clue.py", line 411, in call_branch
16:58:15 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
16:58:17 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:19 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:20 <elliott> File "/Users/ehird/clue/clue.py", line 411, in call_branch
16:58:23 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
16:58:24 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:27 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:29 <elliott> oklopol: that's bad, isn't it
17:02:10 <Vorpal> elliott, in /general/ backtraces probably are bad.
17:02:14 <elliott> to figure out what i broke
17:02:21 <Vorpal> elliott, though iirc there is some esolang based on error handling?
17:02:33 <elliott> Vorpal: no this is example based programming, the most powerful paradigm
17:02:38 <elliott> and i lost all my py files and my release doesn't work
17:02:44 <Vorpal> elliott, I didn't say that one was based on errors
17:02:50 <Vorpal> elliott, please read what I said :)
17:03:09 <elliott> oklopol: oh wait... it actually works, just depth limit errors turn into stack overflows
17:03:16 <Vorpal> elliott, <Vorpal> elliott, though iirc there is some esolang based on error handling? <elliott> Vorpal: no this is example based programming, the most powerful paradigm <-- this exchange makes no sense
17:03:52 <Vorpal> <elliott> and i lost all my py files and my release doesn't work <-- how?
17:04:10 <elliott> rm *.pyc ----> rm *.py, and no, i'm not going to alias it into rm -i, i'm just going to be more careful
17:04:26 <elliott> now i'm just trying to figure out why the zip i made doesn't work the same
17:04:27 <Vorpal> elliott, a decent compromise might be rm -I ?
17:04:39 <elliott> my rm does not have that option :)
17:05:03 <Vorpal> elliott, oh okay. For being a GNU extension (I assume) it is damn useful
17:07:03 <elliott> http://sprunge.us/EAUF didn't quite realise how tiny the Luatre implementation is
17:07:44 <elliott> a language for calling Clue programs, basically.
17:07:49 <elliott> luatre, the clue bot, uses it.
17:07:52 <elliott> and also the clue repl i wrote.
17:08:13 <Vorpal> elliott, the function names...?
17:08:45 <elliott> Vorpal: well "eval" is python's.
17:08:55 <Vorpal> elliott, also where is "cabinetoflaughter" called apart from inside itself?
17:09:02 <elliott> Vorpal: um that's a module
17:09:06 <elliott> for instance the repl and the bot
17:09:11 <elliott> cabinetoflaughter is just your eval func, obviously
17:09:12 <Vorpal> elliott, oh so it isn't the whole thing then
17:09:17 <elliott> it's the whole language impl
17:09:22 <elliott> cabinetoflaughter(park(code)[0]) is what other things do
17:10:10 <Vorpal> elliott, are the other functions part of the public API too?
17:10:20 <Vorpal> (doesn't python use some special naming convention for private?)
17:10:31 <oklopol> nothing is public, clue and all tools related to it are closed source
17:10:45 <Vorpal> oklopol, a very different sense of public :P
17:10:59 <oklopol> unless you really want to distribute them and download them for free
17:11:25 <oklopol> oh indeed, i didn't read context at all
17:11:26 <elliott> oklopol: is it ok if the interp stack overflows sometimes rather than, say, raising a depth overflow thingy
17:11:51 <oklopol> not really, if that means the program crashes
17:11:58 <oklopol> i don't care what error messages say tho
17:12:07 <oklopol> also, it's your interpreter, what does my opinion matter
17:12:19 <elliott> oklopol: it's your interp that i'm modifying :p
17:12:26 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
17:12:31 <oklopol> i figured you were just asking
17:12:34 <elliott> shouldn't that immediately return None if that returns none?
17:12:37 <oklopol> what luatre should print out or something
17:12:41 -!- lambdabot has joined.
17:13:05 <oklopol> well i don't care what luatre prints out
17:13:42 <oklopol> "<elliott> yeah?" meant "yes, it's luatre whose output we're talking about"
17:13:50 <oklopol> which i don't care about, as such
17:14:16 <oklopol> yeah you can make it immediately return none
17:14:16 <elliott> that should be return None right..?
17:14:24 <elliott> also, i tried that, but it didn't stop the stack overflow, so nm :)
17:14:32 <elliott> but yeah shouldn't nothing here be None...
17:14:41 <oklopol> right runtime errors are currently "nothing here" :D
17:14:50 <oklopol> but yeah you should totally change all those to None
17:14:58 <Vorpal> elliott, btw if you use version control rm *.py will be non-fatal (sure, changes since last commit would be lost)
17:15:08 <Vorpal> (but that is much less of a problem)
17:15:08 <elliott> Vorpal: it's oklopol. so no
17:15:11 <oklopol> because failed runs will also return "nothing here"'s when you use them for inference
17:15:16 <elliott> oklopol: except i think it's a compile time error too
17:15:23 <oklopol> i've used a version control system once!
17:15:43 <oklopol> the program was called tortoisesvn
17:15:51 <fizzie> Vorpal: Incidentally, turns out the N900 default camera app also has a manual white-balance knob nowadays (added by one of the firmware updates, I think); it still doesn't really have any other manual controls (like exposure/focus), but at least that's something.
17:16:01 <fizzie> That's a Windows Subversion client.
17:16:02 <elliott> oklopol: i changed all one instance and nothing changed :D
17:16:18 -!- cheater- has joined.
17:16:57 <oklopol> if there's a stack overflow, then clearly the "nothing here" thing is not reached, as that cuts the search.
17:17:04 <elliott> oklopol: because i'm getting a stack overflow when given a wrong program and depth_lim should be catching it!!
17:17:16 -!- cheater00 has quit (Ping timeout: 240 seconds).
17:17:20 <elliott> also, i'm not sure it does, there's no checks for nothing here :D
17:17:21 <oklopol> if your depth_lim is small enough, then sure
17:17:49 <oklopol> but the search should never be able to continue more than depth lim deep
17:17:51 <elliott> vrs=",".join(["n"+str(i) for i in xrange(n)])
17:17:51 <elliott> l="lambda "+vrs+" : f("+vrs+")"
17:18:09 <oklopol> is depth lim always decremented when you recurse in the interp?
17:18:19 <elliott> oklopol: it's YOUR interp :D
17:18:34 <elliott> if not demolishing_done or not first_round:
17:18:40 <elliott> not sure what that's about, you added it
17:18:40 <oklopol> note that it's possible that there's a huge stack of functions calls that were inferred, and can't be caught by the interp
17:20:21 <elliott> i guess so, changing it doesn't do anything
17:20:29 <elliott> lesson: don't write invalid programs
17:21:01 <Sgeo> elliott, ANIC. Worth learning or illegible mess?
17:21:11 <Sgeo> Dataflow programming sounds fun
17:21:20 <oklopol> have you tried example-driven programming?
17:21:41 -!- luatre has joined.
17:21:50 <fizzie> Vorpal: Tried it out on the boat (they have that "promenade" walking-thing) but unfortunately it has randomly cycling coloured lighting, which pretty much does the same thing as a randomly fluctuating white-balance.
17:22:10 <elliott> ::: http://www.vjn.fi/pb/p6237641484.txt
17:22:11 <luatre> Compiling, just a minute...
17:22:11 <luatre> Compiled in 0.0759010314941 seconds
17:22:11 <luatre> factorial: [#0] | _ => factorial loop(#0 1)
17:22:11 <luatre> stack-hogging factorial: [#0] | 0 => multiply(pred(0) pred(0)) | _ => multiply(#0 @(pred(#0)))
17:22:11 <luatre> factorial loop: [#0] | 0 => #1 | _ => @(pred(#0) multiply(#0 #1))
17:22:11 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
17:22:12 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
17:22:12 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
17:22:17 <Vorpal> fizzie, oh right you are in Sweden now?
17:22:20 <luatre> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L
17:22:28 <fizzie> Vorpal: No, I was on Saturday; we're home now.
17:22:40 <elliott> oklopol: how hard would it be to make the interp tail-recursive? i'm guessing very
17:25:09 <oklopol> easiest way would be to notice tail rcursion at runtime, and just hack up a tail recursive python call
17:25:22 <oklopol> but, i'd just compile to bytecode, in which case it's eay
17:27:40 <elliott> there are no tail recursive python calls really :)
17:27:44 <oklopol> hmm, yeah i don't know if there's a way to easily make a while loop out of that, it would get messy with functions that can branch in multiple ways
17:27:45 <elliott> oklopol: def name(n):return map(chr,range(97,123))[n%26]+"'"*(n/26)
17:27:51 <elliott> oklopol: thought you might enjoy that function
17:27:58 <oklopol> it's not that hard to change the contents of the stack
17:28:11 <elliott> it gives a,b,c,...,z,a',b',..,z',a'',b'',...,...,f''''
17:30:49 <elliott> >>> dict(enumerate([1,2,3]))
17:31:00 <elliott> r='('+', '.join(names)+') => ['+past(clue.condast,dict(enumerate(names)))+'] '
17:31:35 <elliott> oklopol: so have you added constants to branchers yet :D
17:31:44 -!- augur has changed nick to augur[afk].
17:32:07 <fizzie> map(chr,range(97,123))[n%26] looks far more sensibly written as chr(97+n%26).
17:34:29 <elliott> RuntimeError: maximum recursion depth exceeded while calling a Python object
17:34:33 <elliott> oklopol: i broke qsort:DDDD
17:35:00 <elliott> Exception: Syntax error: ,[2]]]]
17:35:04 <elliott> there is no , in the source
17:35:16 <oklopol> recursion depth is exceeded
17:35:58 <elliott> oklopol: DONE CONSTANTS IN BRANCHERS YET?
17:37:20 <elliott> oklopol: will you ever or do i have to SLAVE over the code.
17:38:21 <oklopol> well i might even do it today, it's like two lines of code
17:38:25 <elliott> omg the output is almost beautiful :DD
17:38:32 <oklopol> but i should really try to read these couple of pages i have left
17:39:02 <elliott> btw you know that your compare function is just python's cmp? :D
17:40:52 <oklopol> so my function check fails
17:41:00 <elliott> the body can be replaced :P
17:41:04 <elliott> oklopol: so wait is it cmp or -cmp
17:41:09 <oklopol> well that is of course true
17:41:12 <elliott> if not isint(a,b):return None
17:41:18 <oklopol> those are the same thing in clue
17:41:19 <elliott> because it changes the behaviour? :D
17:41:43 <oklopol> yeah, that's probably the awesomest thing about the language
17:41:52 <oklopol> you can change even the interface of functions
17:42:02 <elliott> ski apply only has one parameter
17:42:20 <Sgeo> I think I just had an effect on the evolution of Slate and Atomo
17:42:42 <elliott> i already replace helper objs
17:43:03 <oklopol> Sgeo: did you hear that in example-driven programming, you can change the sign of the output of your api function, and no one using that function will have to change their code. well, usually anyway.
17:43:19 <oklopol> that's the latest buzz of the example-driven programming community
17:43:30 <oklopol> btw is there such a term already, i didn't actualyl check :D
17:43:36 <Sgeo> oklopol, um... what? How does that happen?
17:43:48 <oklopol> elliott: no idea what #1 and #2 are.
17:44:03 <elliott> i like how printing this is fucking hard
17:44:20 -!- VelcroMan has joined.
17:44:21 <oklopol> i should probably try to find out how that numbering thing works at some point
17:44:33 <oklopol> or better yet, you should :D
17:44:35 <elliott> i have a feeling it's like
17:44:59 <elliott> oklopol: what i'm doing if you can't tell, is naming the arguments
17:45:09 <oklopol> well i could've guessed that
17:45:14 <elliott> just because it WASN'T READABLE ENOUGH
17:45:34 <elliott> okay...deep first's compilation is...very very wrong :D
17:45:42 <elliott> oklopol: you should see this:
17:46:33 <oklopol> one idea that i had was that 5x"."'d be used for these sort of clue lambdas, where you give an example of a subcomputation; unfortunately this would mean you could just show it the whole computation
17:46:48 <Sgeo> elliott, is Mozart/Oz dead?
17:47:17 <elliott> oklopol: clue has figured out that if car returns None
17:47:27 <elliott> and so it can return the element directly
17:47:40 <elliott> deep first([[1] 2]) -> deep first([1]) -> deep first(1) -> car returns None -> 1
17:47:44 <elliott> oklopol: it also has a default branch
17:47:49 <elliott> and both are represented in the ast by None :D
17:47:57 <elliott> oklopol: tl;dr your code doesn't give up on None for some reason
17:48:04 <elliott> so it's actually matching on None itself
17:48:24 <oklopol> it's very possible that that's true
17:48:30 <oklopol> i haven't thought about failing at all
17:48:41 <elliott> oklopol: so what functions actually call to test things :P
17:48:55 <elliott> oklopol: ALSO surely raising some special exception would be more reliable than None
17:49:16 <oklopol> the compiler makes sure that all computation is legal, and no Nones are seen
17:49:31 <elliott> oklopol: well it...doesn't :)
17:49:35 <elliott> otherwise this func would never be generated
17:50:05 <elliott> umm the [] bit is the condition
17:50:28 <elliott> case car(a) of None -> a; _ -> recurse(car(a))
17:50:31 <elliott> which should never be generated, of course
17:50:47 <elliott> case is list?(a) of 0 -> a; 1 -> recurse(car(a))
17:50:53 <elliott> oklopol: do you want my current files :P
17:52:41 -!- VelcroMan has quit (Ping timeout: 246 seconds).
17:53:54 <oklopol> car should throw an exception if it's called with illegal input during search
17:54:06 <oklopol> and in that case, the resulting object is not added to the list of available objects
17:54:10 <elliott> oklopol: where do you call functions in a search?
17:54:17 <oklopol> newobj=applier(fun,subsetobjs)
17:54:22 <elliott> oklopol: yeah no i removed that :D
17:54:31 <elliott> newobj=applier(fun,subsetobjs)
17:54:37 <elliott> car DOES return None given illgeal input
17:54:42 <oklopol> well obviously it doesn't work if you break it
17:54:47 <elliott> if not isinstance(l,list) or not l:return None
17:54:57 <elliott> so it gives exactly the same results
17:55:03 <elliott> because you do the same on newobj==None and <exception raised>
17:55:16 <oklopol> i do, so what, it doesn't work after that correction?
17:55:46 <elliott> oklopol: i'd like to point out that i removed it so that i got useful exceptions rather than "depth limit" for all of them :)
17:55:53 <elliott> considering the way of failure is to return None
17:56:03 <oklopol> yeah yeah it was a good change, if you fixed functins appropriately
17:56:07 <elliott> oklopol: anyway, i have no idea why it wouldn't work in my version, since it's functionally equivalent, are you sure your version doesn't produce the same output?
17:56:28 <oklopol> i'm not sure my version doesn't produce the same output, no
17:56:34 <oklopol> i don't have a good way to check
17:56:42 <elliott> python cluetest.py numplay.clue
17:56:48 <elliott> remember to fix the 3 -> 6 example in factorial first
17:57:47 -!- VelcroMan has joined.
17:58:34 -!- Behold has joined.
17:59:11 <elliott> hmm this person must be an esolanger...
17:59:27 <Sgeo> elliott, you must tell me your thoughts on Oz. I'll tell you my thoughts: It's large, but... fascinating. Just wish I was more confident that it was actively worked on
18:00:18 <oklopol> erm, can i give parameters to the program from the IDE, adding python to my command line path sounds like a chore, and the default python is 3.1 so i can't drag and drop; you don't use the same IDE tho
18:00:50 <elliott> oklopol: import sys; sys.argv=['','numplay.clue']; import cluetest
18:02:29 <oklopol> a fucking million useless settings for permissions, but you can't make python.exe not fucking close the terminal after running
18:02:34 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
18:02:52 <elliott> oklopol: trying it from the cmd line instead? :p
18:02:55 <oklopol> i hate command line arguments
18:03:02 <elliott> oklopol: just do it in cmd.exe and write out the full path to python or something
18:03:09 <elliott> it might actually be in the path
18:04:39 <oklopol> python is not in the path even though i have three versions of it installed.
18:04:41 <elliott> comment out the import readline in cluetest.py
18:04:48 <elliott> it's ... sort of not windows-tuned, thsi
18:05:34 <oklopol> wait why am i running numplay?
18:05:41 <elliott> oklopol: ...good question!
18:05:49 <elliott> might wanna turn on demolishing
18:06:18 <oklopol> with the same error you pasted
18:06:29 <elliott> oklopol: yeah it's a bug in ski.clue
18:07:38 <oklopol> now it just plain old can't compile
18:08:45 <oklopol> what the fuck, YOU CAN'T COPYPASTE FROM THE COMMAND LINE WINDOW IN WINDOWS 7
18:08:57 <elliott> you have to right click the title bar and click mark
18:09:05 <elliott> you've always had to do that
18:09:13 <oklopol> yes, and you STILL have to do it
18:09:18 <elliott> oklopol: dude, use it from idle, it'd be nicer prolly
18:09:58 -!- VelcroMan has left (?).
18:10:28 <oklopol> okay what, now it seems it's compiling
18:10:30 <elliott> oklopol: yeah you can just remove the readline line and then do
18:11:47 <oklopol> might be nice if you got some sort of sensible output from the compiler if you asked
18:12:09 <elliott> .load printso ut all the compiled ASTs
18:12:29 <elliott> oklopol: i might add that, once I can figure out whether the breakage is yours or mine :>
18:12:33 <oklopol> actually it's taking so long i doubt it'll actually happen
18:12:42 <elliott> oklopol: did you enable destructing
18:13:15 <oklopol> no, but when i enable it, it gives the compile error, it seems
18:13:27 <oklopol> Traceback (most recent call last):
18:13:28 <oklopol> File "<pyshell#0>", line 1, in <module>
18:13:28 <oklopol> File "C:\stuff\clue\cluetest.py", line 55, in <module>
18:13:28 <oklopol> File "C:\stuff\clue\cluetest.py", line 48, in refresh
18:13:28 <oklopol> funcs,asts=clue.compile_all(open(filename).read(),stuff.funcs)
18:13:29 <oklopol> File "C:\stuff\clue\clue.py", line 708, in compile_all
18:13:29 <oklopol> [i+"("+unfounds[i]+")" for i in compilees if not compilees[i].iscompiled]))
18:13:30 <oklopol> Exception: Can't compile deep first with cutoff(depth of first), depth of first(inc), ski type?(depth of first), ski apply(ski type?)
18:13:35 <elliott> oklopol: change inc to succ
18:14:00 <oklopol> what a clear error message
18:14:11 <elliott> yeah it should probably be topographically sorted or sth
18:14:32 <elliott> inc would be last, if that were so
18:14:53 <oklopol> yeah not sorted in that message, but compilation of course sorts
18:15:07 <oklopol> because you can't compile if there's an uncompiled function in your bag
18:17:47 <elliott> writing a clue editor first
18:19:21 <oklopol> lambdas would not only allow cheating, they would also make functions significantly uglier, because you'd have your clue cluttered with completely meaningless snippets of dataflow
18:19:49 <elliott> best user-hostile language veer
18:20:40 <oklopol> you wouldn't lose stuff like being able to flip the sign of compare tho
18:21:08 <oklopol> what about like [1, 2, 3] -> [2, 3] -> [3] for cddr for instance
18:21:40 <oklopol> with the meaning that the middle objects are just hints, "this object is useful!"
18:21:41 <elliott> oklopol: for recursion you mean?
18:21:53 <elliott> oklopol: that owuld be nice but what semantics would it have
18:22:16 <oklopol> at the level of what functions compile to
18:22:35 <oklopol> more like standardized compiler directive
18:22:49 <j-invariant> $db = new $class( $this->backupServer(), $wgDBadminuser, $wgDBadminpassword, $wgDBname, false, $flags );
18:22:57 <elliott> j-invariant: OH GOD STOP IT
18:23:06 <j-invariant> $wgDBtype is something like 'SQL' or 'PGSQL'
18:23:12 <elliott> STOPSTOPSTPOSTSPTJSPOTJSOPTJOPSTJOPSJTPOSJTPESRJGOIDKLFGMLKHFGJ
18:23:17 <j-invariant> and there are classes DatabaseSQL and DatabasePGSQL
18:23:24 <oklopol> basically, my idea was that in a_1 -> ... -> a_n, first a_2 would be found using a_1, then all state would be dropped, and another search would be started for a_3 from a_1 and a_2
18:24:05 <oklopol> which sounds really stupid of course, dropping state essentially means you'll make the same objects again :D
18:24:37 <oklopol> but, you would've sort of reached a milestone
18:25:04 <oklopol> also, btw, it should definitely be possible to ask the compiler that the bottleneck is
18:25:09 -!- asiekierka has joined.
18:25:27 <oklopol> i mean, there are a fixed number of searches, you could just make them store compilation times automatically
18:26:37 <oklopol> elliott: you removed the check for default==None between
18:26:38 <oklopol> return call_branch(clue,default,args,depth_lim)
18:27:05 <elliott> return call_branch(clue,i,args,depth_lim)
18:27:11 <elliott> return call_branch(clue,default,args,depth_lim)
18:27:33 <elliott> oklopol: well that's my clue.py
18:27:51 <oklopol> default=clue.branches[len(clue.branches)-1]
18:27:51 <oklopol> return call_branch(clue,default,args,depth_lim)
18:28:06 <oklopol> i think i mentioned this to you, but it may have been a change after you last got my code
18:28:23 <oklopol> that [-1] thing you're gonna mention
18:28:49 <oklopol> that change means that all functions are total.
18:28:59 <oklopol> currently, it's possible they are inferred non-total
18:29:19 <oklopol> that is, it's possible that there is actually no default branch, now the default branch is the last one
18:29:36 <oklopol> ! should be used for failure explicitly, should be easy to add
18:32:32 <oklopol> one way is that ! is just added as a separate object in the clue object parser, and it simply evaluates to a None.
18:32:44 <oklopol> i believe that'd do the trick
18:32:46 <elliott> oklopol: i'm pretty confused now
18:33:16 <Vorpal> Phantom__Hoover, how many blocks would ROU be now again when finished. Approx?
18:33:24 <elliott> oklopol: can i have your .pys
18:33:48 <oklopol> the important thing: add "if default==None:default=clue.branches[len(clue.branches)-1]"
18:33:50 <Vorpal> Phantom__Hoover, ah and why didn't movecraft work for this?
18:34:15 <oklopol> i haven't done any changes to my old files, or your files, but you can have my old files if you really want to.
18:34:28 <Phantom__Hoover> Vorpal, it has a built-in threshold of 1000 blocks; this is changeable, apparently, but I have a suspicion it'd clobber the memory and CPU to actually move something that big.
18:35:10 <Vorpal> Phantom__Hoover, right. So making that castle I'm building on my local test server (because single player is horribly laggy since beta) fly is not realistic then
18:35:28 <Vorpal> Phantom__Hoover, it has over 60000 obsidian alone :)
18:36:05 <Phantom__Hoover> Also, the algorithm for separating the ship from everything else would probably mess it up.
18:36:19 * Sgeo gets a headache trying to talk to someone
18:36:29 <Vorpal> Phantom__Hoover, and iirc over 500 000 stone (though hard to measure with such tools, the terrain below it is very uneven.
18:36:30 <Sgeo> [Not Alluded-To]
18:36:54 <Vorpal> (I guess anything between 150 000 and 400 000 is part of the proper castle)
18:37:08 <Vorpal> Phantom__Hoover, oh well.
18:37:15 <oklopol> elliott: so where is the printing of the compiler output done?
18:37:33 <elliott> oklopol: i've kinda rewritten that in my version
18:37:38 <elliott> if you're going to change it thennn :P
18:37:42 <Vorpal> Phantom__Hoover, wait, I'm testing it right now and I could place a stone block on top o my none-stone and it worked
18:37:50 <oklopol> i just want to know where the #x's come from
18:38:01 <oklopol> clearly your output lacks their origin
18:38:04 <Vorpal> Phantom__Hoover, however, stone below or to the sides were not included
18:38:08 -!- BMG has joined.
18:38:13 <oklopol> probably because neither of us knows what they even are
18:38:17 -!- BMG has quit (Changing host).
18:38:17 -!- BMG has joined.
18:38:19 <Vorpal> Phantom__Hoover, but only if placed more or less inside the craft
18:38:20 -!- BMG has changed nick to BeholdMyGlory.
18:38:24 <Vorpal> Phantom__Hoover, (it was a ship)
18:38:42 -!- drakhan has quit (Quit: Wychodzi).
18:39:13 <Vorpal> elliott, any block that is not a stone (and implicitly in this context: not air or a fluid either)
18:39:39 <Sgeo> I think this person's text messaging stuff is delayed by a few messages
18:39:53 <Sgeo> And for some reason, her texts include my text.
18:40:51 <Phantom__Hoover> Vorpal, the other reason a flying castle is impractical: MoveCraft empties chests.
18:40:59 <Vorpal> elliott, what is the largest structure known to have been done in MC so far? Largest as in most blocks placed.
18:41:08 -!- drakhan has joined.
18:41:15 <Vorpal> Phantom__Hoover, ah yes that is indeed a known bug
18:41:19 -!- Behold has quit (Ping timeout: 246 seconds).
18:41:23 <Vorpal> Phantom__Hoover, at least it is on the todo-list
18:41:53 <Vorpal> Phantom__Hoover, also it doesn't rotate crafts yet. Meaning you better make it rotationally symmetric for now
18:42:24 <elliott> oklopol: my clue editor is a total nazi
18:42:30 <elliott> oklopol: it reformats your code every time you do anything :D
18:42:45 * Sgeo fantasizes about war on a MoveCraft server
18:43:00 <Sgeo> -shutup- Shut up about your fantasies!
18:43:02 <Vorpal> elliott, what about largest bounding box (in a single direction)
18:43:07 <Sgeo> Phantom__Hoover, aww, darn
18:43:40 <Sgeo> Although I was thinking more of dropping TNT from ships than cannons on.. no, I was thinking cannons on ships too, more for defense
18:43:43 <Phantom__Hoover> What is it with the people who act like playing MC on peaceful is a personal insult?
18:43:45 <Vorpal> elliott, considering something like a 1x1x4000 cobbblestone thingy
18:44:29 <Vorpal> <Sgeo> -shutup- Shut up about your fantasies! <-- just ignore it, that /me you did above was perfectly okay IMO
18:44:58 <Phantom__Hoover> [[ * Notch made a tweet on October 22nd 2010, stating that "I'm changing "difficulty" to "realism". Lowest setting = creative. Highest setting = starve" ]]
18:45:08 -!- cheater00 has joined.
18:45:17 <Vorpal> Phantom__Hoover, haven't happened so far yeah
18:45:32 <Sgeo> Notch is just like me1
18:45:34 <oklopol> Phantom__Hoover: that's the one thing i'd change about mc
18:45:40 <Sgeo> [In the always taking hiatuses aspect]
18:45:41 <oklopol> thank god notch noticed it
18:46:08 <oklopol> elliott: so umm the #'s are just helper objects + inputs + subrec outputs, as one might imagine
18:46:15 <oklopol> it says so quite clearly in your code
18:46:20 <elliott> oklopol: sure but there's more than there should be :D
18:46:25 <Vorpal> Phantom__Hoover, btw craftbook is cool
18:46:27 <elliott> oklopol: for instance #1 and #2 in ski apply
18:46:31 <Phantom__Hoover> Because it's completely unrealistic not to have malicious creatures unrelentingly stalk you during the night
18:46:39 <elliott> and those are _inside_ the subrec _inputs_
18:47:03 <Vorpal> Phantom__Hoover, I have portcullises that can open and such now
18:47:11 <oklopol> well subrec inputs can be calculated from outputs of previous subrecs
18:47:15 -!- cheater- has quit (Ping timeout: 240 seconds).
18:47:16 <oklopol> so i don't see what the problem is
18:48:10 <oklopol> in ski apply, when #1 and #2 are used, they refer to the outputs of the first and second subrec, and they are first used in the third case
18:48:55 <elliott> oklopol: right! but #1 and #2 should get inlined
18:49:14 <oklopol> rrrrrrright i was being a retard
18:49:19 <elliott> nrpls['#'+str(i.get_arity()+len(clue.helper_objs)+sub)] = past(rrgs,rpls)
18:49:23 <elliott> notice the lack of using nrpls there
18:49:28 <oklopol> i was thinking like of a completely different thing
18:50:46 <oklopol> why do you rename to nrpls midway?
18:51:15 <elliott> it only applies for that one branch
18:51:30 <elliott> | 4 => @(pair(#1 ski type?(cdr(a))))
18:51:32 <elliott> bugger, still doesn't work
18:52:27 <Vorpal> Phantom__Hoover, movecraft fails at shadows. There is a shadow matching my aircraft on ground. Far from where the aircraft actually is currently
18:52:45 <oklopol> rrgs.append(past(i.getsubast(sub,ar),rpls)) should use nrpls
18:53:27 -!- impomatic has joined.
18:54:34 <oklopol> elliott: well, did you fix it?
18:55:05 <Vorpal> Phantom__Hoover, also why does lightstone give shadows on ground
18:55:16 <Vorpal> since it is as bright as the sun...
18:55:30 <Phantom__Hoover> Vorpal, yes, but it has z-axis attenuation, while the sun doesn't.
18:55:41 <Vorpal> Phantom__Hoover, good point
18:57:08 <elliott> | 3 => @(pair(@(pair(cadaar(a) ski type?(cdr(a)))) @(pair(cadar(a) ski type?(cdr(a))))))
18:57:09 <Vorpal> Phantom__Hoover, hm flying minecart. That should be possible to make smooth
18:57:33 * Sgeo imagines huge Obsidian bunkers, for things such as mining flint from gravel
18:57:34 <Vorpal> Phantom__Hoover, or flying boat (boat as in boat-crafted-in-workbench)
18:57:34 <oklopol> wait what, it actually infers that whole thing?
18:57:36 <elliott> oklopol: turning on destructing makes it do the bad version, I think
18:57:37 <Phantom__Hoover> Vorpal, did you try to move a craft with a minecart on it?
18:58:01 <Vorpal> Phantom__Hoover, I haven't
18:58:09 <Sgeo> In theory, with time+patience, all gravel can be turned into flint?
18:58:21 <Vorpal> Phantom__Hoover, but I wonder. if you could not make smooth movements instead of the one block at a time thing
18:58:21 <oklopol> elliott: no it doesn't, at least in mine
18:58:25 <Vorpal> Phantom__Hoover, with a mod
18:58:29 <oklopol> i can't even compile ski without demolishing
18:58:33 <elliott> default=clue.branches[len(clue.branches)-1]
18:58:33 <elliott> ^^ so do I want to add this in?
18:58:49 <elliott> done, let's see if it does anything
18:58:51 <Phantom__Hoover> Vorpal, not without radical alterations to MC, which is outside the scope of hMod's plugin architecture.
18:58:53 <Vorpal> Phantom__Hoover, you can get flying boat when you time out and are in a boat and falling down. So clearly it will work on the client side
18:59:04 <impomatic> Hmmm... does anyone know how I can work out the position of the rightmost 1 bit without using bitwise operations? (n & -n normally does the trick)
18:59:20 <elliott> oklopol: that's WITH your fix, can i have your clue.py and stuff.py?
18:59:21 <oklopol> elliott: after adding that, the order of examples matters, which i'm not sure i like
18:59:28 <oklopol> but it's better than not having it, still
18:59:57 -!- copumpkin has quit (Ping timeout: 260 seconds).
19:00:11 <Vorpal> impomatic, n & -n assumes two-complement doesn't it?
19:00:37 -!- copumpkin has joined.
19:00:56 <impomatic> Vorpal: yes, that's one of the problems.
19:01:15 <Vorpal> impomatic, hah! And here I was trying to make a silly remark :P
19:01:17 <oklopol> elliott: okay, in that case make it return None, otherwise it'll be order-dependent anyway
19:01:31 <Vorpal> impomatic, now I'm interested, what language or platform are you targeting here?
19:01:39 <oklopol> if you make it return None, you basically have an implicit default branch that fails.
19:01:55 <elliott> oklopol: still does it though :)
19:02:33 <oklopol> i really think you should have that order-dependence thing, actually, it just makes everything so much simpler.
19:03:09 <impomatic> Vorpal: I'm optimizing a non-recursive program to draw this: http://twitpic.com/3nt74q
19:03:11 <oklopol> elliott: well i dunno, why didn't you save your old code so i don't have to up it
19:03:24 <elliott> oklopol: but you've evidently changed it :>
19:04:00 <Vorpal> impomatic, why not make it recursive
19:04:02 <impomatic> Hmmm... pastebin.ca has been inaccessible here for a couple of days :-(
19:04:10 <elliott> oklopol: well i didn't remove that defaulting thing
19:04:11 <Vorpal> impomatic, also what sort of signed integers does redcode use?
19:04:17 <elliott> oklopol: so you must have added it? :/
19:04:44 <Vorpal> impomatic, use sprunge.us
19:04:49 <Vorpal> impomatic, it is good, and loads faster
19:05:50 <impomatic> Vorpal: I have a recursive program too... Redcode only has positive numbers. -x is represented as CORESIZE-x. In a normal core -1 is 7999
19:06:00 <oklopol> elliott: i haven't touched it
19:06:04 <Vorpal> impomatic, that's so wtf
19:06:16 <oklopol> well i may have, but it's unlikely that i have, more likely that the universe has a bug
19:06:56 <Vorpal> impomatic, why is it not a power of 2? Everything is better as a power of 2. No exceptions except for the exception that ternary is awesome.
19:07:16 <elliott> oklopol: should i make the editor automatically turn .. into :
19:07:24 <oklopol> upon my files says roughly so: http://www.vjn.fi/pb/p5657189962.txt http://www.vjn.fi/pb/p9156561368.txt
19:07:24 <elliott> oklopol: you type .., it becomes :, type a ., it becomes :., type a dot, it becomes ::
19:07:45 <impomatic> Vorpal: coresize can be any value, but historically it's been 8000.
19:07:52 <Vorpal> <elliott> oklopol: should i make the editor automatically turn .. into :<elliott> oklopol: should i make the editor automatically turn .. into : <-- what for?
19:07:59 <elliott> Vorpal: they are equivalent in clue
19:08:00 <oklopol> so... how do you get a dot then? :D
19:08:12 <elliott> oklopol: don't type an even number of them, duh!
19:08:25 <elliott> oklopol: it's keeping your code to the Clue Standardisation Board's recommendations for colon and dot entry
19:08:45 <Vorpal> elliott, yes but why do you want to enforce using one them rather than the other
19:08:57 <elliott> + if default==None:default=clue.branches[-1]
19:09:17 <oklopol> well yeah obviously i added that one
19:09:34 <Vorpal> elliott, wait, are you using a VCS now?
19:10:10 <oklopol> well, see, yours has the slight disadvantage that you can't write *any* functions with just one example in each hint
19:10:13 <elliott> oklopol: okay our versions have no notable differences to speak of other than the exception-catching :D
19:10:31 <elliott> oklopol: well... come up with an algo that isn't order-based, any algo
19:10:59 <Sgeo> Water spouts are apparently quite resistent to explosions
19:11:11 <Vorpal> elliott, order for what?
19:11:26 <elliott> oklopol: maybe default branches need syntax :/
19:11:32 <oklopol> one way would be to have *drumroll* conditions
19:11:36 <elliott> or maybe, you know, man up and add another case
19:11:39 <Vorpal> elliott, are you trying to decide which order to try things in?
19:11:49 <elliott> stuff breaks a lot anyway :P
19:11:54 <oklopol> that was actually one of the reasons i had conditions, i just forgot about it
19:12:02 <elliott> oklopol: who cares, SO IMPURE
19:12:06 <oklopol> yeah syntax for defaults is very much okay
19:12:50 <Vorpal> elliott, what are conditions in this context and why are they impure?
19:13:07 <elliott> oklopol: ofc it breaks down when you have complex conditions nayway
19:13:14 <elliott> oklopol: i don't see what's wrong with needing two example cases
19:13:22 <oklopol> Vorpal: a condition is a function used as the parameter of the switch statement that is the body of each function.
19:13:28 <elliott> oklopol: it'll probably hardcode the 1 or something stupid like that
19:13:54 <Vorpal> oklopol, why would they be impure though?
19:14:01 <oklopol> they were removed in the form they existed in the first version of clue, and were replaced with something else, but this is slightly technical.
19:14:11 <Vorpal> oklopol, can they have side effects?
19:14:12 <Sgeo> If you have a bunch of TNT together, does it make a stronger explosion or not?
19:14:35 <oklopol> basically, you used to be able to give the toplevel function, like you could say you switch on the value of f, switch(f(...)), but ... may be guessed by the compiler in any way
19:14:52 <Vorpal> oklopol, so in what sense are they impure?
19:15:25 <oklopol> they are code written by the programmer
19:15:36 <Gregor> Jan 08 20:51:23 <Sgeo> Gregor's apples to oranges comparision convinced me to like oranges // I win forever? :P
19:15:44 <Vorpal> oklopol, but in a sense the examples is code written by the programmer.
19:15:46 <oklopol> for instance, if the output format of that function f was changed, it's possible that it can't directly be used to branch anymore.
19:16:01 <oklopol> so the compiler should be allowed to do post-processing on the value of f
19:16:06 -!- asiekierka has quit (Ping timeout: 240 seconds).
19:16:12 <oklopol> so it's impure in a very precise sense.
19:17:00 <oklopol> Vorpal: examples are code written by the programmer in a sense, sure. but the sense i'm referring to is the one that breaks the ability to change output and input protocol.
19:17:10 <oklopol> which is one of the points of clue
19:17:25 <oklopol> you don't even have to read the api, as long as you know what the functions do on an intuitive level
19:17:38 <oklopol> of course this would only be true if the compiler was 100 times faster than mine
19:19:14 <oklopol> elliott: nothing wrong with needing two example cases i guess
19:19:48 <elliott> oklopol: my editor is... so nazi
19:19:55 <oklopol> would it be wrong if 1) if there's only one branch, it's always default 2) if there's exactly one recursion, it's default if no one else is
19:20:01 <elliott> you can't insert more than one space in a row
19:20:06 <elliott> oklopol: yeah that sounds ok
19:20:12 <elliott> oklopol: since... you can't get base case recursion :D
19:20:16 <oklopol> that would be nice and practical, but kind of impure.
19:20:27 <elliott> oklopol: recursion to me basically IMPLIES some defaultness
19:20:34 <elliott> oklopol: and one branch is default by basically definition
19:20:52 <oklopol> those are *very* natural, in actual programs
19:20:53 <elliott> i'll impl that after cled works :D
19:21:08 <elliott> oklopol: well i even think "random" functions obey that too
19:21:10 <oklopol> people would basically just assume them anyway.
19:21:12 <elliott> base cases don't recurse, by definition
19:21:18 <elliott> and recursion is walking towards a base case
19:21:23 <elliott> anything that isn't a base case, covers a range of values
19:21:36 <Vorpal> <elliott> you can't insert more than one space in a row <-- how do you indent then?
19:21:40 <oklopol> you could have some function used for branching
19:21:45 <Vorpal> elliott, also what editor is this? leaden?
19:21:57 <oklopol> and you could have an infinite number of base cases, say all the cases where that function gives a positive number
19:22:09 <oklopol> and if the function gives you a 0, it means you haven't found the result yet, and have to recurse
19:22:19 <Vorpal> elliott, is it an emacs mode?
19:22:24 <oklopol> in that case it'd be the base case that's defaul
19:22:25 <elliott> oklopol: so add more than one example :>
19:22:31 <elliott> Vorpal: no, i decided it would be way too hard like that
19:22:49 <oklopol> sure sure, i'm just saying it's technically possible to have a base case be the natural default
19:23:01 <oklopol> but then you'd just need to tell the compiler that by having two examples.
19:23:04 <elliott> oklopol: it's more pure than assuming the last is default, let's put it that way.
19:23:12 <Vorpal> elliott, hm, Is it ncurses-based?
19:23:24 <elliott> because it's convenient in python
19:23:28 <elliott> and not _hideously_ ugly on os x / windows
19:23:38 <elliott> the whole UI is a text box with a scrollbar to the right anyway
19:23:44 <elliott> so it won't even be too horrid on x11 :)
19:23:46 <Vorpal> elliott, it is rather ugly on linux though
19:24:05 <Vorpal> elliott, Tk scrollbars are ugly on linux
19:24:18 <Vorpal> elliott, do you use that theme thingy whatever it was called
19:24:33 <elliott> don't think tkinter can do that.
19:24:35 <elliott> i don't really care how ugly a single scrollbar is anyway :P
19:24:50 <Vorpal> elliott, wait, you don't care about aesthetics?
19:25:07 <Vorpal> elliott, how unlike you!
19:27:51 <Vorpal> elliott, last xkcd is so sad, but the title text was actually quite funny.
19:29:20 <j-invariant> "If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp. Python copies even features that many Lisp hackers consider to be mistakes. You could translate simple Lisp programs into Python line for line. It's 2002, and programming languages have almost caught up with 1958."
19:29:32 <Phantom__Hoover> [[Nevertheless, some historians still consider it was Hilliard who won that dude battle.]]
19:29:54 <Vorpal> j-invariant, where is that quote from?
19:30:05 <Phantom__Hoover> [[Fukutsuru died in 2005 but his frozen sperm lived on for people’s benefit.]]
19:32:34 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:33:02 -!- TLUL has joined.
19:33:18 <elliott> j-invariant: you could translate simple haskell programs into dofigj line for line. it's 2032, and programming languages have almost caught up with 1994.
19:34:30 <Vorpal> elliott, I wish I lived in such a world
19:34:53 <elliott> text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc)
19:34:53 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:38:42 <elliott> A good argument for Better Grass: http://i.imgur.com/82ndJ.jpg
19:39:17 <elliott> Vorpal: have you tried http://www.largames.com/lartexture?
19:39:36 <Vorpal> j-invariant, <Vorpal> j-invariant, where is that quote from?
19:39:48 <elliott> j-invariant: different texture pack
19:40:37 <Vorpal> elliott, it looks rather flat somehow. I prefer something suggesting a real world rather than something suggestion a flat mario64-like world. But sure I'll try it some day.
19:41:23 <Vorpal> elliott, uh and? I don't want the texture to make it look flatter than the default texture pack does
19:41:46 <Vorpal> elliott, to me it looks that way
19:42:17 <elliott> text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc)
19:42:17 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:45:42 <elliott> oklopol: it would be nice if compilations could be written to a file
19:46:30 <oklopol> it could even check that the compilation is correct
19:47:06 <elliott> oklopol: i think i'm gonna make cled hold the program as a structure in memory and just write it as a string all the time...
19:47:12 <elliott> and respond to keypresses :P
19:52:37 -!- cheater- has joined.
19:55:16 -!- cheater00 has quit (Ping timeout: 240 seconds).
19:55:53 <elliott> oklopol: i just realised that if i make it hold it as an object i get to make a terrible terrible semantic ui for it
19:55:58 <elliott> oklopol: you are gonna use this to write all your programs right :D
19:57:09 <elliott> hey Vorpal how do you make an emacs mode
19:57:27 <Vorpal> elliott, by writing elisp and reading docs.
19:57:40 <Vorpal> elliott, I haven't done it. I have tweaked existing ones however
19:57:43 <elliott> Vorpal: yes, but, without the second thing
19:57:50 <elliott> j-invariant: well. i'm writing an editor program BUT
19:57:51 <Vorpal> j-invariant, you never answered: <Vorpal> j-invariant, <Vorpal> j-invariant, where is that quote from?
19:57:55 <elliott> it might be easier to do it as an emacs mode :D
19:58:21 <Vorpal> elliott, as in postgresql command binary prefix?
19:58:26 <Vorpal> elliott, that is all I know it as :P
19:58:30 <j-invariant> emacs modes tend to have a certain format: They have a syntax hilighter table and such
19:58:35 <Vorpal> elliott, so what do you mean by pg
19:59:13 <elliott> j-invariant: yeah but in this case I want auto-indentation which is less than trivial for clue
19:59:16 <elliott> because it depends on the first line of the block
19:59:18 <elliott> specifically the length of the name
19:59:54 <Vorpal> elliott, I believe some modes manage such auto indention
19:59:59 <Vorpal> I can't remember which ones
20:00:26 <elliott> well yeah but i want to do it easily :D
20:01:58 <Vorpal> elliott, insert fitting can-only-have-2-out-of-3 statement here
20:02:04 <elliott> eh actually i have no question really
20:02:26 <elliott> oklopol: what's the max number of examples you'd put on one line
20:02:26 <oklopol> kebab place was the complement of a set containing an open ball arouns each of its points :(
20:03:11 <oklopol> i can imagine something like . number -> number more than twice on one line
20:04:42 <elliott> less than five, so long as the result is less than 50 chars
20:04:49 -!- impomatic has left (?).
20:04:56 <elliott> oklopol: because really long lines are ugly
20:04:59 <elliott> oklopol: this is the auto-formatter
20:05:09 <oklopol> oh right because ur editor hates jews
20:05:10 <elliott> oklopol: cled has kinda morphed into this thing where you edit the bags and branches and stuff as actual objects
20:05:15 <elliott> oklopol: and it just reads and writes to the files
20:05:23 <elliott> oklopol: you know... like oklOS :D
20:05:32 <oklopol> :)))))))))))))))))))))))))))))))))))))))))))))
20:05:37 -!- Wamanuz has quit (Remote host closed the connection).
20:09:19 <elliott> oklopol: should i make it impossible to put a function that doesn't exist into the bag :D
20:09:23 <elliott> nah, that's excessive. probably
20:09:34 -!- Wamanuz has joined.
20:10:54 -!- ais523 has joined.
20:17:01 <elliott> more than 3 ~ {. 4 -> 1 . 5 -> 1 }
20:17:05 <elliott> oklopol: written by a program :D
20:19:18 <oklopol> now add a feature where you can write a function, and it's compiled into examples
20:19:37 <elliott> oklopol: that would officially be the most pointless combination of programs in existence
20:19:50 <elliott> oklopol: i'm considering never putting more than one example on a line...
20:22:39 <elliott> depth of first ~ {. 0 -> 0 . 5 -> 0 }
20:22:39 <elliott> depth of first ~ {:. [[1 2] [3 4]] -> 2
20:22:45 <elliott> depth of first ~ is list?; cons; car; cdr; succ; 0
20:22:47 <elliott> oklopol: written by a program :D
20:25:21 <elliott> oklopol: i think we should just make this the new official syntax for clue: http://sprunge.us/HXGG
20:25:26 <elliott> also by written, I mean turned into text, obviously
20:25:29 <elliott> it didn't actually write the program
20:25:32 <elliott> although that would be nice
20:25:51 <elliott> oklopol: ooh i'ma make the bag into a set.
20:30:36 <elliott> oklopol: um in that it's a python set :D
20:30:41 <elliott> and ordered when it gets turned into a string
20:31:10 <oklopol> err okay, that sounds like a reeeeally useful change
20:31:35 <oklopol> but i suppose it means you can't use order for optimization, which is good because the order shouldn't be meaningful.
20:31:55 <elliott> oklopol: oh no no i don't mean in clue.py
20:32:19 <elliott> oklopol: you have to tell me now that you're gonna use this thing to write all your clue programs, even though it's crazy :D
20:32:27 <Vorpal> TI-83+ is weird, it has orthogonal persistence when turning off due to no key being pressed after a number of minutes. But if you manually turn it off you get back to the basic "shell screen" (for lack of better name) next time you turn it on.
20:32:30 <pikhq> There's a film adaptation of Asimov's Foundation series coming.
20:32:58 <j-invariant> the first bit was cool but it started dragging and dragging.....
20:33:11 <elliott> pikhq: I want to be a filmmaker for the sole purpose of making Ed stories and Fine Structure into films.
20:33:23 <pikhq> To be directed by Roland Emmerich.
20:33:27 <elliott> (Yes, I have considered how to depict Unbelievable Scenes.)
20:33:47 <elliott> pikhq: 2012: It's a Disaster!
20:33:57 <pikhq> You may know him for really, really *stupid* films, such as Independence Day and The Day After Tomorrow.
20:34:20 <elliott> pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0
20:35:50 <pikhq> So, if this adaptation is any good at all, it will be a miracle that psychohistory could not predict at all.
20:35:55 <Phantom__Hoover> <pikhq> To be directed by Roland Emmerich. ← NOOOOOOOOOOOOOOOO
20:36:30 <pikhq> Phantom__Hoover: At least it's not Uwe Boll.
20:36:53 <elliott> pikhq: http://www.youtube.com/watch?v=HSZhBParVjo
20:36:59 <pikhq> Phantom__Hoover: Yes it would.
20:37:00 <Phantom__Hoover> At least with Uwe Boll we would know everyone would hate it!
20:37:05 <elliott> pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0
20:37:58 <Phantom__Hoover> People who will not have read the book and will not see the film for the dross it will inevitably be.
20:38:19 <elliott> Phantom__Hoover: THIS IS EXACTLY WHY I HAVE TO FILM ED STORIES AND FINE STRUCTURE.
20:38:32 <elliott> OTHERWISE SOMEBODY, SOMETIME IN THE FUTURE, WHEN SAM HUGHES IS DEAD BUT INCREDIBLY POPULAR, SOMEONE WILL MAKE A FILM OF THEM
20:38:40 <elliott> Phantom__Hoover: I've read, like, over half of it!
20:38:46 <pikhq> Shame we can't resurrect Kubrick and have him do it.
20:38:54 <elliott> Phantom__Hoover: Really though it'd be a worthy film even just with Unbelievable Scenes and 1970—.
20:38:58 <Phantom__Hoover> Ed would really be better as an episodic miniseries thing.
20:39:10 <elliott> Phantom__Hoover: At the start... but not Be Here Now onwards.
20:39:28 <pikhq> Phantom__Hoover: Who said anything about "average-length"?
20:39:37 <Sgeo> How would you even go about turning FS into a film/
20:39:40 <elliott> Phantom__Hoover: Up to The Story So Far fits into my head-film with plenty of space left.
20:39:42 <pikhq> It'll be a 12 hour cinematic experience, I'm sure.
20:39:53 <pikhq> Phantom__Hoover: People watch LotR in a single sitting.
20:39:55 <elliott> Phantom__Hoover: 3 hours, maybe?
20:39:57 <pikhq> Any further questions?
20:40:06 <Phantom__Hoover> pikhq, that is two hours longer than the total length of LoTR.
20:40:15 <pikhq> Phantom__Hoover: Not the extended editions.
20:40:32 <elliott> Phantom__Hoover: If you can tell me why FS can't fit into three and a half hours without spoiling past The Story So Far, go ahead.
20:40:33 <Phantom__Hoover> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary.
20:40:58 <pikhq> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:41:34 <elliott> Anyway, with enough rejiggling of the starting bits (adding filler/transitions), Ed Stories could work as a film, I think.
20:41:35 <coppro> `addquote <Phatom__Hovver> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. <pikh> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:41:43 <elliott> Or maybe it could be in medias res.
20:41:52 <elliott> Starting with that moment where Ed calls up and says "hey, what did I ever invent that could work".
20:42:05 <elliott> Each invention leading to a flashback of the relevant short story. And then work Be Here Now into there somehow.
20:42:09 <HackEgo> 263) <Phatom__Hovver> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. <pikh> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:42:23 <coppro> I'm too lazy to fix it
20:42:31 <elliott> Gregor: what manner of witchery is this.
20:42:47 <Phantom__Hoover> pikhq, I actually found the Silmarillion less dreary than LoTR because of that.
20:43:09 <elliott> I tried to read Fellowship once, and decided that Tolkien was fucking with me about 100 to 200 pages in.
20:43:10 <pikhq> Phantom__Hoover: You found the Silmarillion *less* dreary.
20:43:23 <pikhq> elliott: The series is worth reading. Once.
20:43:31 <elliott> j-invariant: what did you say
20:43:39 <elliott> pikhq: The movies themselves were fairly slow too, but fun.
20:44:03 <pikhq> I wish it were public domain, so it would be legal to edit out the unneeded content.
20:44:23 <j-invariant> regarding Foundation: the first bit was cool but it started dragging and dragging.....
20:44:31 <pikhq> And leave the poetry as an appendix, or a seperate volume, rather than IN THE FREAKING STORY.
20:44:32 <j-invariant> I didn't make it into the good bits, I guess
20:44:33 <elliott> oklopol: this is going to be soooo much of a semantic editor
20:44:39 <elliott> oklopol: it's gonna be RIDICULOUS
20:44:42 <pikhq> j-invariant: What was the last bit you got to?
20:44:54 <j-invariant> pikhq: I can't remember, they were making wikipedia
20:44:57 <elliott> pikhq: Lord of the Rings in 500 Pages would be a great book.
20:45:14 <pikhq> I have some issues with the movies, but they do demonstrate that, dammit, Tolkien would be much improved with editing.
20:45:30 <pikhq> Though The Hobbit does this, as well.
20:45:31 <Phantom__Hoover> elliott, until pretentious literary types start badmouthing it.
20:45:51 <pikhq> Phantom__Hoover: Oh, they can go to hell. They badmouthed the books until recently anyways.
20:46:14 <elliott> http://tolkien.slimy.com/etext/EtextChps.html what is this.
20:46:21 -!- oerjan has joined.
20:46:21 <Phantom__Hoover> Because it wasn't ~deep and meaningful analysis of the human condition~?
20:47:48 <pikhq> Phantom__Hoover: The pretentious literary types really seem to like terrible fiction. About 50 years after it's been published.
20:48:04 <pikhq> On occasion they like good fiction as well, but I suspect this is a fluke.
20:48:29 <elliott> oklopol: this editor is going to be pretty horrible :D
20:48:36 <elliott> oklopol: it's basically going to be a shitload of boxes inside other boxes
20:49:41 <pikhq> Phantom__Hoover: "The Grapes of Wrath", by Steinbeck.
20:50:06 <pikhq> Phantom__Hoover: This book earned Steinbeck a Pulitzer and a Nobel Prize.
20:50:14 <elliott> recs=filter(lambda i:i.isrec(),clue.branches)
20:50:17 <pikhq> Every *other* chapter has plot.
20:50:24 <elliott> return call_branch(clue,default,args,depth_lim)
20:50:49 <pikhq> The plotless chapters are pretentious mental wanking put on a page, in the form of allegory.
20:51:25 <coppro> We only have 12 years to wait
20:51:56 <pikhq> copumpkin: By "12" or "42" you mean "infinity".
20:52:00 <Vorpal> elliott, other random info: a goto based loop in TI-BASIC is about 5 times slower than a for-based one. A for is about 20% faster than a while loop.
20:52:12 <elliott> copumpkin: YOU MEAN INFINITY DAMMIT
20:52:34 <Gregor> elliott: Pooppy witchery.
20:52:36 <pikhq> coppro: Retroactive copyright extensions happen every time Mickey Mouse is about to hit public domain.
20:52:39 <coppro> pikhq: I have no clue what you meant to say there
20:52:53 <elliott> coppro: Correct pikh -> pikhq.
20:53:35 <copumpkin> (once I get an indication of what information you're looking for in an answer to that kind of question, I can answer yours :P)
20:53:36 <pikhq> coppro: This tends to be enforced by WIPO.
20:53:41 <Vorpal> I can't find what "<elliott> copumpkin: YOU MEAN INFINITY DAMMIT" was a reply to
20:54:00 <elliott> yet more proof you have no scrollback
20:54:25 <pikhq> Every 20 years or so they get a stick up their ass, become convinced copyright needs to be 20 years longer, and strongarms most of the world into compliance.
20:54:28 <Vorpal> copumpkin, "someone new here" "someone who changed nick", "sometime who been away for many years but used to be a regular"
20:54:33 <Vorpal> copumpkin, that kind of stuff
20:54:39 <elliott> copumpkin: you mean infinit
20:54:47 <elliott> Vorpal: he's a #haskell informant.
20:54:52 <copumpkin> Vorpal: someone who's been here for about a week or two now I think, but yeah, relatively new :P
20:55:04 <pikhq> coppro: Member of WIPO, as well.
20:55:20 <elliott> yeah copumpkin is a member of wipo
20:56:46 <Vorpal> copumpkin, are you the codomain of pumpkins or?
20:57:00 <copumpkin> I'm a pumpkin in the opposite category
20:57:54 <pikhq> coppro: Well I'll be. You guys haven't gone beyond the international-treaty-required-minimum of *life plus 50*.
20:58:03 -!- Behold has joined.
20:58:20 <pikhq> Which is still bullshit.
20:58:21 <elliott> j-invariant: implement copumpkin in your category theory
20:58:55 <coppro> pikhq: in fact, Mickey Mouse has 6 more years here.
20:59:33 <elliott> 00:10:28 <oklopol> actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex
20:59:33 <elliott> 00:11:22 <oklopol> (we broke up because of artistic differences)
20:59:37 <pikhq> More so under US copyright law, where Congress only has the power to enact copyright law for the purpose of increasing the works produced...
20:59:39 <oklopol> movies are ridiculously short when you get used to watching seasons of a tv series in one go
20:59:45 <elliott> oklopol: *phew* i still couldn't quite see you as being in a stable, long-term relationship
20:59:50 <elliott> you seem less..conflicting now
21:00:47 <pikhq> (that is to say, under a strict interpretation of the US constitution, Congress *does not have the power* to create a copyright law that does not increase the amount of artistic expression.)
21:01:06 <j-invariant> elliott: Consider this http://pastebin.com/raw.php?i=VBavHxpt
21:01:06 <Vorpal> Phantom__Hoover, artistic difference could mean so very very much when oklopol says it.
21:01:07 <coppro> pikhq: have fun with that one
21:01:13 <coppro> pikhq: you should sue the government
21:01:17 <j-invariant> elliott: the problem is to write init in terms of foldr
21:01:20 <pikhq> (of course, under a strict interpretation of the US constitution, Congress doesn't have the power to do almost everything it does, so hey!)
21:01:25 <Vorpal> Phantom__Hoover, consider yesterday's discussion between him and zzo for example
21:01:43 <elliott> j-invariant: i've written functions in terms of foldr all the time
21:01:45 <j-invariant> elliott: Maybe the methods here could be incorperated into Clue
21:01:55 <elliott> j-invariant: since i think that data should be represented as its foldr
21:01:55 <j-invariant> elliott: I am pointing out that the derivation is systematic
21:01:59 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
21:01:59 <elliott> as in, instead of church representation etc.
21:02:14 <pikhq> Hmm. Of things it commonly does, it has the power to: run the military, fund roads, run the postal service, and tax.
21:02:16 <j-invariant> elliott: I have been watching some videos about the difference between the encodings data = ... and folds
21:02:47 <elliott> j-invariant: people have already encoded data as its fold as an implementation technique?
21:02:53 <elliott> and made pattern matching and recursion compile to that?
21:03:00 <Vorpal> pikhq, isn't the postal service private in US? If so that surprises me
21:03:14 <oklopol> elliott: it was rather stable and long-term imo
21:03:32 <pikhq> Vorpal: The postal service is very much public.
21:03:38 <elliott> oklopol: yeah but it isn't any more, which is the good thing. also if you're somehow normal enough to get offended by me saying this, just say
21:03:44 -!- KingOfKarlsruhe has joined.
21:03:54 <oklopol> i get offended if you tell me i suck at math
21:03:58 <j-invariant> elliott: You should learn uAgda: In this language we define data types by their elimination behavior and theen program with them using parametricity
21:04:03 <Vorpal> pikhq, I don't know if the word exists (it probably doesn't) but that is an geochronism
21:04:18 <Vorpal> (probably chron has to do with time)
21:04:26 <elliott> oklopol: i'm jokin i'm jokin
21:04:26 <Vorpal> (so it should be anageonism or something)
21:04:56 <pikhq> Vorpal: It functions independentally, does not receive any money *from* the federal government, but it's a government agency nevertheless.
21:05:01 <elliott> he does all the maths j-invariant
21:05:11 <elliott> he's a BACHELOR! he even got a plaque, saying he's a bachelor
21:05:14 <elliott> i think this is how degrees work
21:05:36 <Vorpal> j-invariant, I know the feeling
21:05:38 <pikhq> Vorpal: The functioning independentally is just a matter of how the bureaucracy works.
21:05:43 <j-invariant> do I just come across as some sort of liar that wants to trick people or what
21:05:48 <elliott> j-invariant: i listened to you :<
21:06:24 <pikhq> Vorpal: It's part of the executive branch, and technically the President could just start bossing people around.
21:07:41 <elliott> oklopol: have you ever used tkinter
21:07:47 <pikhq> Also, it predates the US, and was founded by Ben Franklin.
21:08:11 <j-invariant> elliott: http://www.youtube.com/watch?v=JwmU9kQTv4U
21:08:12 <elliott> oklopol: recursively transform an object structure into a gui widget, different widget type per class
21:08:16 <elliott> oklopol: and have it sort of automatically update?
21:08:34 <oklopol> i haven't used it enough to tell you more than any tutorial could
21:08:38 <elliott> j-invariant: i thought you just had a song that you referred to as HAPPY SONG for no reason :D
21:08:43 <oklopol> i've mostly just made basic interfaces with it
21:08:52 <oklopol> like you know text box + button
21:09:03 <elliott> oklopol: i'm tempted to just do this with sdl :D
21:11:26 <Vorpal> elliott, what are you doing then?
21:11:31 <j-invariant> elliott: this guy wanted to know how to write init as foldr, I tried to help him but he just ignored me
21:11:37 <elliott> oklopol: like i can't figure out how to do this, do i have to reconstruct every object constantly
21:11:47 <elliott> j-invariant: do you mean me >_>
21:11:53 <elliott> i don't recall wanting to know that
21:12:11 <elliott> it's possible he just didn't see your message...
21:12:22 <Vorpal> j-invariant, wait nvm. I read "geez" as "games" somehow (and sorted out the grammar without noticing it)
21:12:46 <Vorpal> I think I need to sleep
21:12:52 <j-invariant> Vorpal: well I /have/ spent about 60% of the last few days playing minecraft
21:13:05 <Vorpal> j-invariant, that was why I went "har har" :P
21:14:45 <elliott> oklopol: i think i need... zippers... in python :D
21:20:14 <elliott> oklopol: oh wow it's actually working.
21:23:36 <Vorpal> <elliott> mutable integers :D <-- what exactly do you mean?
21:24:05 <Phantom__Hoover> <elliott> oklopol: i think i need... zippers... in python :D ← Well, someone already did monads...
21:24:10 <Vorpal> elliott, uh. so it is inc() ?
21:24:11 <elliott> hmm possibly these objects should know their parents
21:24:22 <Vorpal> elliott, you mean x = 5; x = 6 ?
21:24:23 <elliott> Vorpal: the point is that it's (int *)
21:24:38 <elliott> x = Holder(5); f(x); x ==> Holder(6)
21:24:43 <Vorpal> elliott, so you need boxed mutable variables. Okay
21:24:54 <elliott> Phantom__Hoover: http://imgur.com/JybuB
21:25:59 <elliott> oklopol: current state of cled: http://i.imgur.com/931qc.png
21:26:05 <elliott> oklopol: those buttons are actually going to be like text boxes
21:26:32 <elliott> oklopol: the idea is basically that everything is a list: e.g. a branch is a list of examples
21:26:42 <elliott> oklopol: you can go up and down a list, "descend" into a list, and ascend back up
21:26:54 <elliott> oklopol: so for instance, the list shown there is 1, 2 and 3
21:27:11 <elliott> oklopol: if you are over, e.g. an integer, then you can type a new one to replace it
21:27:27 <elliott> oklopol: bags are obviously an auto-sorted unique list (set) of their elements
21:27:31 <elliott> oklopol: lists are of course lists of their elements
21:27:39 <elliott> oklopol: and the whole program is an auto-sorted unique list (set) of the functions
21:27:49 <elliott> and there's one extra key, /
21:27:53 <elliott> /foo jumps to the function foo
21:28:05 <elliott> oh, and there's also "insert element to list here" and "delete element"
21:28:13 <elliott> you create a function by inserting an element in the program, typing the name, and going from there
21:28:15 <elliott> Phantom__Hoover: what's aaargh
21:28:51 <elliott> oklopol: the keys to create "more than 3" look something like this:
21:29:04 <Vorpal> <elliott> Phantom__Hoover: http://imgur.com/JybuB <-- that looks like a cross between a creeper, a duck and some blobby creature from generic scifi that can shape shift.
21:29:07 <elliott> j-invariant: an editor for Clue trees
21:29:17 <Vorpal> elliott, end result is not scary but just laughable
21:29:42 <Vorpal> Phantom__Hoover, yes it just looks silly
21:29:54 <Vorpal> Phantom__Hoover, a mouth that shape, how would it close it?
21:30:12 <elliott> ever seen a creeper with its mouth closed?
21:30:20 <Vorpal> elliott, no and I blame notch for that
21:30:22 <elliott> oklopol: +emore than 3<up><down>+e+e0<up><right>e0<up>... and more
21:30:29 <elliott> oklopol: i swear this is easy to use :D
21:30:41 -!- BMG has joined.
21:30:53 -!- BMG has quit (Changing host).
21:30:53 -!- BMG has joined.
21:30:58 -!- BMG has changed nick to BeholdMyGlory.
21:31:07 <elliott> Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png
21:31:33 <elliott> http://www.minecraftforum.net/viewtopic.php?f=35&t=99048
21:33:56 <elliott> oklopol: i get the feeling you don't think this editor is brilliant :
21:34:32 -!- Behold has quit (Ping timeout: 260 seconds).
21:39:15 -!- GreaseMonkey has joined.
21:46:03 <oklopol> http://imgur.com/JybuB = awesome
21:47:55 <oklopol> someone should totally make mc with those graphics
21:48:30 <j-invariant> haha this guy shows how to make a memory cell using boats and doors
21:55:30 <elliott> oklopol: making this is so hard :D
21:55:36 -!- augur[afk] has changed nick to augur.
21:56:06 -!- sebbu has joined.
21:56:15 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
21:56:46 <elliott> http://imgur.com/nlL89 hd textures :D
21:58:04 -!- sebbu2 has quit (Ping timeout: 240 seconds).
22:00:09 <elliott> pikhq: I dare you to retell Lord of the Rings in 10 sentences.
22:00:17 <elliott> pikhq: (Not ten chapter-long sentences.)
22:02:45 <pikhq> elliott: Frodo Baggins must destroy the Ring of Power, so that ultimate evil cannot use it! He does so.
22:03:26 <elliott> pikhq: That leaves out almost all details. Try and pack all the important details into 10 sentences.
22:06:11 <j-invariant> "First Wikileaks, then their followers. Next will be the follower's followers. Eventually the US will get their real target: Kevin Bacon
22:06:47 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:09:50 -!- azaq23 has joined.
22:11:39 -!- j-invariant has quit (Quit: leaving).
22:12:30 <elliott> Vorpal: tile would probably work with this actually
22:13:28 <oerjan> <elliott> oklopol: what, why <-- he has an exam tomorrow, remember?
22:13:53 <Vorpal> <elliott> Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png <--- old, happens all the time with diagonals like that. It can go down if you have a 2x2 basin without the corners for example
22:13:53 * oerjan swats elliott -----###
22:14:09 <Vorpal> <elliott> Vorpal: tile would probably work with this actually <-- this made no sense
22:14:17 <elliott> pikhq: i have a tk question
22:14:17 <Vorpal> I do not know the context
22:14:22 <elliott> Vorpal: tk themeable widgets
22:14:36 <pikhq> elliott: I don't know Tk well, but k.
22:14:45 <elliott> pikhq: what event do I bind to on an entry (single-line text input field) such that it triggers whenever an extra char gets inserted?
22:14:54 <elliott> it calls even for things like tab, cursor keys, etc.
22:19:45 -!- Behold has joined.
22:22:56 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
22:23:00 <Phantom__Hoover> Could it copy the block data it receives to an SSP-compatible world file?
22:25:52 <elliott> Phantom__Hoover: fizzie already has that planned.
22:26:06 <elliott> Maybe I could plan how to blow up Mount Vorpal locally.
22:29:50 <elliott> pikhq: Do you know of a tcl wiki link listing tk events?
22:32:52 -!- pikhq has quit (Ping timeout: 240 seconds).
22:37:18 -!- FireFly has quit (Quit: swatted to death).
22:48:14 <ais523> hmm, that was a bizarre spambot on Esolang
22:48:23 <ais523> it's replacing arbitrary links with piped links to its own website
22:49:32 <coppro> sounds like one that might be effective
22:49:57 <Phantom__Hoover> ais523, looks like it was just programmed to s/[.*/<linkname> /
22:50:57 <ais523> Phantom__Hoover: indeed
22:52:41 <ais523> it really screwed up the syntax
22:53:06 <elliott> ais523: have you ever used a semantic editing tool?
22:53:52 <Phantom__Hoover> Links become links to the spammer's site, but with a single ] at the end.
23:08:39 <elliott> Phantom__Hoover: I'LL GET TO THAT LATER
23:08:59 <Phantom__Hoover> elliott, my Complaining About People Not Liking The Show entry on TV Tropes' MC article has been bumped to the YMMV tab.
23:10:54 <elliott> "Creepers are of the same species as the Slender Man."
23:12:40 <elliott> Phantom__Hoover: Meanwhile, http://www.youtube.com/watch?v=RiJh5fpWPAo
23:14:12 <elliott> Phantom__Hoover: Incidentally, with the kind of rates he gets there, HHI could double its TNT supply in days.
23:19:11 -!- TLUL has changed nick to TLUL|afk.
23:26:31 <Phantom__Hoover> http://www.minecraftforum.net/viewtopic.php?f=1016&t=71196
23:30:48 <Phantom__Hoover> Someone on TV Tropes said that you'd be mocked relentlessly for appreciating the things Notch does FOR FREE!
23:30:51 -!- fizzie has quit (Read error: Operation timed out).
23:32:49 <elliott> what, voxelperfect works again
23:33:02 -!- fizzie has joined.
23:33:13 -!- ais523 has quit (Remote host closed the connection).
23:34:45 <elliott> oklopol: hey it's actually working :D
23:37:32 -!- pikhq has joined.
23:39:25 <elliott> :: foo ~ { -> 3 }; foo ~ 3
23:39:26 <luatre> IndexError: list index out of range :(
23:39:29 <luatre> IndexError: list index out of range :(
23:39:36 <elliott> i should complain to oklopol about that :D
23:39:53 <Phantom__Hoover> How did he get FPS that high on the Reddit creative server?
23:39:59 <elliott> WITH SCIENCE!!!!!!!!!!!!!!!!!!!!!!!
23:41:16 <elliott> Phantom__Hoover: Obviously.
23:41:25 <elliott> Phantom__Hoover: It *is* a field of mathematics.
23:41:26 <elliott> Phantom__Hoover: "Computing theory".
23:41:29 <elliott> Or "Computation theory". etc.
23:41:37 <elliott> CS is neither a science nor related to computers.
23:41:39 <pikhq> People who claim otherwise are ignorant.
23:42:14 <Phantom__Hoover> pikhq, any other novels which are awful and loved by the pretentious?
23:42:29 <pikhq> Phantom__Hoover: Lemme find some.
23:43:20 <pikhq> Phantom__Hoover: Alternately, I could cut the work and just say "Look at a literature cirriculum."
23:43:21 <elliott> Phantom__Hoover: Iain M. Banks
23:43:52 <elliott> Phantom__Hoover: T'was joke.
23:44:01 <elliott> But yeah, I should have said just Iain Banks.
23:44:10 <pikhq> http://en.wikipedia.org/wiki/Pulitzer_Prize_for_Fiction Here's a list.
23:44:28 <Phantom__Hoover> SF in general isn't loved by the pretentious, since you need to have a modicum of intelligence to appreciate it.
23:44:33 -!- Behold has quit (Remote host closed the connection).
23:44:36 <pikhq> (note: some omissions required. Namely: Hemingway is a good author.)
23:45:00 <pikhq> (whose writing style is most notable for lacking any bullshit at all.)
23:46:43 <Phantom__Hoover> "Bullshit" here meaning "all forms of punctuation higher than the full stop."
23:47:22 <elliott> I want to like Vonnegut but can't because he hates semicolons. It is a wretched state of existence I find myself in.
23:47:28 <pikhq> Actually, it's more that he's completely unpretentious.
23:47:54 <pikhq> Of course, this is natural, considering that he's also quite legitimately a badass. :P
23:48:06 <elliott> "First rule: Do not use semicolons. They are transvestite hermaphrodites representing absolutely nothing. All they do is show you've been to college."
23:48:41 <pikhq> I don't recall *not* knowing proper use of the semicolon!
23:48:48 <Phantom__Hoover> Turns out that the guys who wrote the Oxford Latin Course love semicolons.
23:49:23 <elliott> I used to never use the semicolon, then I did, and used it excessively to the point of insanity in here; then I decided to stop entirely for a few months, which I did, and my writing became a bit less silly; and then I started again, but more moderately.
23:49:31 <elliott> Of course, "moderately" here means "a few times per sentence".
23:51:01 <Phantom__Hoover> When I pointed out to her that that was the ENTIRE POINT of the semicolon, she said I still wasn't using it properly.
23:52:32 <pikhq> Phantom__Hoover: Next up, write an essay on the proper use of semicolons.
23:52:38 <pikhq> Cite every major style guide.
23:52:49 <pikhq> (they're not likely to disagree on major points.)
23:53:32 <Phantom__Hoover> pikhq, well, her quibble was more that I had used it between sentences that weren't very logically connected.
23:54:06 <pikhq> Phantom__Hoover: Define "logically connected".
23:54:41 <Phantom__Hoover> I could put the text of the essay up, if you want, but it's not terribly good.
23:54:52 <pikhq> I've probably seen worse.
23:54:55 <Phantom__Hoover> I knocked it together in about 2 hours on the day before it was due.
23:55:23 <elliott> Phantom__Hoover: Wrongly = with LaTeX? :D
23:55:25 <Phantom__Hoover> (To be fair, I did use sections and a couple of footnotes.)
23:55:55 <Phantom__Hoover> Although lots of people made the oh-so-clever suggestion to typeset it in Comic Sans.
23:56:24 <Phantom__Hoover> GODDAMN IT APTITUDE I DON'T CARE IF THERE'S AN UNMET DEPENDENCY IN A COMPLETELY DIFFERENT PACKAGE TO THE ONE I WANT TO INSALL