00:01:01 With the FFI issue, it seems it would be bad to make public API functions use fastcall 00:01:10 -!- augur has joined. 00:01:36 Windows has 3 or 4 different calling conventions in its public API, BTW. 00:02:10 It's a bit of a microsoftism, in the sense that I think GCC got it to be compatible with MS __fastcall. Though I'm not entirely sure of the history. 00:02:11 o.O that sounds.. annoying 00:02:42 ugh, being sick sucks :( 00:03:47 coppro, feel better soon 00:04:26 I certainly hope so :/ 00:05:03 coppro, there's a possbility you won't? :( 00:05:24 well, I've been fighting this damn thing on and off for two weeks 00:05:46 coppro, see a doctor? 00:05:56 have; says it 00:05:59 *says it's just a cold 00:06:06 feels like just a cold too 00:06:43 As long as it really IS just a cold 00:07:22 It's... CANCER 00:08:17 that would seriously suck :( 00:09:28 why do I hate myself? 00:09:56 It's from all that copprophilia. 00:10:58 * pikhq groans 00:12:32 no sane human being could possible want to do what I am doing right now... therefore I am insane 00:12:46 but logical. 00:13:05 coppro: what are you doing? 00:13:19 playing IWBTG 00:13:22 :-) 00:13:40 -!- Tritonio_GR1 has quit (Read error: Connection reset by peer). 00:14:15 coppro: that's only valid classically, I think 00:14:42 okay... I've made it past the up-falling apples 00:14:48 pfft, that's easy 00:15:12 now for the clouds :( 00:15:24 wimp, that part of the game is easy 00:15:49 lol 00:18:05 it would be nice to have a logical operation that didn't need parenthesising 00:18:11 like with nand you still need delimiters of some sort 00:18:12 you must be using some dictionary I don't know of 00:18:26 coppro: More vitamin D? :-> 00:18:26 but if we had an operation where we could specify either left or right associativity 00:18:38 and have it stand in for all our operations 00:18:51 then we could just say a logical expression is a list of variables and quantifiers, pretty much 00:20:03 i tihnk that's impossible though :( 00:20:04 *think 00:28:57 * Sgeo despises seeded grapes 00:29:16 what about seeded bananas? 00:29:54 How ARE you supposed to eat these damn things?!? 00:30:20 -!- augur has quit (Ping timeout: 276 seconds). 00:31:11 Me: Can I just swallow the seeds? Dad: No. Me: What will happen if I do? Dad: Nothing 00:31:19 -!- augur has joined. 00:36:21 that sounds like a problem with your dad, not the seeds. 00:36:37 i suggest sending him in for repairs. 00:36:49 pi - sqrt(pi)^2 = -0.0000000000000008881784; this thing really shouldn't be called "real" 00:37:07 oerjan, so, does that mean I should just eat the damn seeds? 00:37:08 unreal arithmetic 00:37:27 if you want to 00:39:25 on the flip side, i vaguely recall a long time ago my dad said one _should_ eat the cores of apples. i also vaguely recall recently reading apple seeds _are_ poisonous. 00:40:41 Apple seeds contain trace amounts of cyanide 00:40:49 but they are undigestable in any case 00:40:53 -!- MizardX has joined. 00:41:06 * Sgeo finds a video called "how to eat seeded grapes properly" 00:41:22 saved by the internet :D 00:42:15 Not that helpful 00:42:25 He goes over what DOESN'T work 00:42:53 * oerjan vaguely recalls when he had seeded grapes, he just ate the damn seeds 00:42:58 http://www.associatedcontent.com/article/961122/how_to_eat_nonseedless_grapes.html 00:43:31 i think chewing the seeds was a bit mixed experience, though 00:43:50 Nonseedless, what a nice way to put it. Why not unnonseedlessless? 00:44:14 Maybe "how to eat seedy grapes" would have had the wrong connotations. 00:44:35 Sgeo: lawl wtf 00:44:50 I ate "non-seedless" grapes for years, we grew them in our back yard :P 00:44:55 The proper way to eat them ... is to eat them :P 00:45:09 Including the seed>? 00:45:42 This is so complicated for Sgeo! 00:45:48 And how /do/ you open a banana anyway? 00:46:14 hm i've heard there's been some recent progress on banana opening technique 00:46:24 as in, the way i've always done it is not the best 00:46:39 alise: Sledgehammer. 00:46:46 the problem with the monkey technique is that... I forget 00:46:51 there's something wrong with it, anyway 00:46:53 Heavier the better. 00:47:00 so i'd stick to what you're doing 00:47:14 (i usually make a small break by the stem, then unwrap) 00:47:48 alise: it's probably messy or something 00:48:04 http://www.flickr.com/photos/philgyford/4505748943/sizes/o/ 00:48:04 | 00:48:04 /< 00:48:07 they're _monkeys_ after all 00:48:14 thank you, myndzi 00:48:45 What's wrong with eating the peel, exactly? 00:48:54 (Not that I eat banana peels) 00:49:36 alise: they shouldn't use 100%, that looks unprofessional and makes us think they grew up in north korea or something 00:50:08 i expect it's somewhat stringy? 00:50:35 also probably covered in pesticides 00:51:33 I don't think monkeys care about pesticides so much 00:51:55 probably why they're endangered. 00:53:07 wait, he actually suggests blowing the seeds out of your mouth 00:54:17 i guess it goes with the outside recommendation from earlier. 00:54:36 this seems ill-adapted to norwegian conditions. 00:54:53 Completely tangential, but: http://forums.mtgsalvation.com/attachment.php?attachmentid=104059&stc=1&d=1270799424 RoE is going to be awesome. 00:55:32 Steam, for the moments where it worked, showed RoE in My games, as a trial thing 00:55:40 Too bad I can't get Steam to not crash 00:56:50 Sgeo: Rise of the Eldrazi? 00:57:04 pikhq, not sure 00:59:15 pikhq: indeed! 00:59:43 * coppro thinks he'll actually be playing at the prerelease 01:00:24 augur: i thought your comment about grammars was more interesting than the conversation around it 01:00:34 :x 01:00:38 sewing grammars! 01:02:26 yes that one 01:02:36 its quite interesting 01:02:46 wanna hear about them? :x 01:02:52 NO 01:03:04 i was just leaving, give me a there line explanation (short lines) 01:03:09 *three 01:03:44 ok here goes 01:03:57 okay i won't count that as one cuz i like you. 01:05:03 a sewing grammar consists of two sets of n-dimensional string vectors like (where 0 is the empty string); one set is the basis, the other is the rules. 01:06:22 vector concatenation is what you expect, e.g. + = . the vector language of the grammar is just the basis closed under right-concatenation with the rules 01:06:57 e.g. b + r0 + r1 + ... for b in the basis, and r0, r1, ... in the rules 01:07:13 the string language is the set of strings generated by applying some function to the members of the vector language 01:07:58 i'm sorry we'll have to ignore that last line, you went over quota 01:08:03 :P 01:08:04 :P 01:08:29 so just as an example, take the classic non-CF language a^n b^n c^n 01:08:48 taken 01:09:03 that has no solutions for n > 2. i know this! 01:09:14 let the basis be just <0,0,0>, and let the rules be just , and let the string-generating function be f = xyz 01:09:35 yeah 01:09:47 <0,0,0> + + + ... is , obviously. 01:09:54 obviously 01:10:03 or take a^n b^m c^n d^m 01:10:17 and <0, b, 0, d> 01:10:26 let the basis be <0,0,0,0> and let the rules be and <0,b,0,d> 01:10:27 yep. 01:10:29 and there you go. 01:10:48 i wish we had more courses about grammarness 01:11:07 or take the word duplicate language ww for w in {a,b}* 01:11:18 for all letters 01:11:22 B = <0,0>, R = , 01:11:23 :) 01:11:41 sewing grammars: pretty easy. 01:12:05 also i find it intriguing, what can you express with it? 01:12:10 now, how you get more traditional CF languages i dont know. 01:12:10 i guess depends on f 01:12:28 the paper i learned about them from just addressed these kinds of phenomena 01:12:37 for palindromes, just make f reverse the latter one 01:12:37 balanced nested parens, for instance? no clue. 01:12:53 i think that's why they let you have a function and not just concatenation in the end 01:12:59 true. the problem with having f as a non-concatenative function is that it could be almost anything 01:13:08 sure 01:13:17 that's why "i guess depends on f" 01:13:21 yeah 01:13:23 anyway 01:13:27 go to sleep oklopol. :p 01:13:38 well not so much sleep as algebra 01:13:43 well, maybe sleep too 01:14:14 thanks for showing me the ways of sewing ~~~> 01:20:24 algebra! 01:23:57 algae bras 01:36:58 Huh, Caml was developed to implement Coq. 01:37:17 ML, on the other hand, originated in LCF (later HOL, Isabelle, etc.). 01:37:20 Proof war! 01:45:37 alise: thats rather interesting 01:46:32 Making a language in order to implement a language? 01:47:00 Sgeo: it makes sense 01:47:12 well, proof systems are really complex 01:47:18 indeed 01:47:20 so you want an expressive functional language to do it in 01:47:40 so actually making caml then making coq is way less effort in the long run than e.g. writing coq in c 01:47:46 (and longer-lasting bitrotwise) 01:47:54 Why not Haskell? 01:48:05 or some other language. i imagine that imperative languages might be useful for some sorts of logic 01:48:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:49:46 Sgeo: didn't exist at the time 01:49:51 + not very performant, 01:49:55 + personal taste 01:49:58 but yeah, this was way before haskell 01:50:00 late 80s early 90s 01:51:21 haskell debuted 5 years after caml, just fyi. caml: 1985, haskell: 1990 01:51:46 Should I attempt to learn O'Caml? 01:52:06 yes. 01:52:25 i need a name for a language phenomena 01:52:29 anyone care to help? :X 01:52:35 well, its not really a language phenomena 01:52:52 Any way to avoid tutorials that assume I've never seen a functional language before? 01:52:53 its a formal property of certain kinds of grammars, but it relates to linguistic phenomena 01:54:46 Any reason to learn O'Caml when I know Haskell 01:55:20 Sgeo: diverse perspective. 01:55:46 Sgeo: O'Caml has objects. 01:55:59 You can drink the OOP coolaid. 01:56:06 Koolaid, too. 01:56:19 * augur drinks pikhq's Koolaid 01:56:48 http://www.post-gazette.com/pg/10099/1048991-67.stm?cmpid=newspanel1 I'd drop TV in a heartbeat 01:57:10 i have a TV. 01:57:11 augur: you mean the phenomena of using -a plural nouns in the singular? 01:57:12 I mean, I almost never turn on a TV, I use Hulu. If it came down to Hulu vs. rest of the Internet, I would drop Hulu 01:57:13 its connected to my PS2. 01:57:30 oerjan: no. i presume you mean "data" as a singular? 01:57:30 -!- Oranjer has joined. 01:57:33 s/Hulu/Hulu and .. other means of watching shows/g 01:57:39 augur: and, _phenomena_ 01:59:13 well, its work pointing out that both of those words are loan words, and so its invalid to say that it's an -a plural. it's merely an irregular plural, english has no class of -a plurals as an actual class of the language, they exist only epiphenomenally as an artifact of the source language. 01:59:38 second, "phenomena" is an accepted, tho less common, singular form of the word 01:59:59 third, "data" in many dialects is a mass noun (like milk), hence "the data is" ~ "the milk is" 02:00:54 I still prefer "the datum is". 02:01:14 But, then, I'm a nerd who thinks English isn't complex enough. :P 02:01:29 english morphology isnt complex, this is true 02:01:46 but then, neither is latin or greek, in the grand scheme of things. 02:04:42 but english has plenty of complexity syntactically 02:04:55 if you want some introductions to this complexity, i would be happy to provide. :) 02:05:18 Sure, why not? 02:05:56 :o 02:06:08 my favorite example is extraction islands and parasitic gaps 02:07:23 :O 02:07:31 so you can do these things like extract sub-elements, right 02:07:32 for instance 02:07:45 John saw [the man] ==> [the man] that John saw ___ 02:07:51 To add two floats together you need to use a different operator, +. (note the trailing period). 02:07:54 That sounds fun 02:07:57 :( 02:08:07 and you can do it from both subject and object position 02:08:18 [the man] saw John ==> [the man] that ___ saw John 02:08:29 but you can only do it once 02:08:32 so for instance 02:09:25 [the man] saw [the woman] ==> [the man] that ___ saw [the woman] ==> ... ==> John saw [the man] that ___ saw [the woman] =/=> [the woman] that John saw [the man] that ___ saw ___ 02:09:48 pikhq: make sense? 02:10:13 not the why behind it, but just the fact of the matter 02:10:38 What's with the ;; thing? 02:10:56 augur: o.O 02:11:01 what? 02:11:03 Sgeo: stop trying to learn ocaml. 02:11:07 it's not a very good language 02:11:20 That's about it. 02:11:26 but, also, don't diss things like that; they're design choices 02:11:34 pikhq: i presume you understand roughly what im showing with "John saw [the man] ==> [the man] that John saw ___" 02:11:35 yes? 02:11:48 Yeah. 02:12:31 and i presume you get what i'm showing with "[the man] that the woman saw ___ ==> John saw [the man] that the woman saw ___" 02:12:32 yeah? 02:12:57 "o.O" is not a reaction of not understanding. 02:13:07 oh ok :p 02:13:15 its an expression of "thats fucking weird"? 02:13:43 Yes. 02:13:51 want some more weirdness? :) 02:14:22 Sgeo: ignoring syntactic ugliness is a prerequisite for learning ocaml 02:14:47 John saw [the man] before he met him ==> [the man] that John saw ___ before he met him 02:14:52 but 02:15:10 well no lets say not "met him" but "met the woman" 02:15:32 John saw the man before he met [the woman] =/=> [the woman] that John saw the man before he met ___ 02:15:35 English's syntax is crazy when you actually think about it. 02:16:11 to some degree. its quite well behaved, but it has a bunch of bizarre phenomena. this one actually is apparently a universal phenomena of language, but 02:16:13 Hm. Should I switch to speaking Lojban? 02:16:23 so you see how that last one is weird? 02:16:39 Yeah. 02:16:39 you cant extract out of an adverbial clause "before he met the woman" 02:17:25 ok now watch this 02:17:44 suppose that john saw the woman before he met that same woman 02:17:46 now: 02:18:00 [the woman] that John saw ___ before he met ___ 02:19:39 whats up with that, huh 02:20:11 if you extract out of the main clause object position, having the gap in the adverbial object position is no longer bad 02:21:24 the examples of that sort of thing multiply when you look at the different positions for the different gaps. 02:24:53 -!- zzo38 has joined. 02:25:47 Can you write a music using Bohlen-Pierce notes? 02:26:28 what is a music. 02:28:13 Bohlen-Pierce music is music that the notes follow 3^(n/13) instead of 2^(n/12) 02:28:42 your grammar is horrible 02:28:47 I think I heard of that! 02:28:59 on my local college radio station, I believe 02:29:02 that or NPR 02:30:31 zzo38: sorry about that, i got augur wound up by criticising _his_ english 02:30:44 Your Englishes all are sucks. 02:30:44 it's all my fault, really 02:30:58 oerjan: yes only my english was grammatical, and you're not a native speaker. ;) 02:31:20 augur: hasn't prevented me from correcting native speakers before 02:31:33 I think anarchy golf is broken (it is now maintenance?), did I break it by setting the PID too much? 02:31:41 Oerjan speaks better English than many a native speaker. 02:31:54 well writes 02:31:57 Well. At least types it. No idea how well he speaks it out loud. :P 02:31:57 true, but it DOES mean that your judgments are not reliable. your book knowledge might be, but your judgments are not. 02:32:43 augur knows english when he sees it. also, pornography. 02:32:51 :) 02:32:57 its true tho 02:33:03 Do most people NOT know pornography when they see it? 02:33:17 you can have exquisite book knowledge of english, but your intuitions about english will never match a native speakers 02:33:19 "There are all these naked people putting their body parts into each other in this picture ... what's going on?" 02:33:23 the same is true for any language 02:33:28 augur: Dude, all that's merely a matter of how much correct English he's seen. Of course, hardly any non-native speaker is going to be exposed to the foreign language as much as a native speaker is... 02:33:42 pikhq: no, it doesnt matter how much correct english he's seen 02:33:54 I don't like to watch pornography 02:34:09 there are certain things that are not possible for a non-native speaker to get, for some reason. 02:34:29 at least not without extreme attention given to the issue in question 02:35:26 * Sgeo goes to play some Worms 02:35:42 its a difference between knowledge of facts of the language, vs knowledge of the procedure that resulted in those facts 02:36:24 native speakers possess procedural knowledge that is independent of the particulars, and hence they can produce judgments for arbitrary expressions 02:36:43 can this procedural knowledge ever be taught to a non-native speaker? 02:36:53 -!- oerjan has set topic: DO NOT FEED THE AUGUR | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:36:54 second-language speakers, on the other hand, learn things as facts about particular words or constructions 02:36:59 Oranjer: Yarly 02:37:03 Oranjer: some of it can, some of it cant. 02:37:12 we dont actually _understand_ the procedural knowledge, so 02:37:18 Some of it can, some of it Kant. 02:37:54 -!- augur has set topic: DO NOT FEED THE AUGUR | /augur eats oerjan | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:38:05 yipe 02:38:14 Let's go back to porn :P 02:38:22 -!- augur has set topic: DO NOT FEED THE AUGUR | /augur eats oerjan out | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:38:25 Or is that what you mean tby "eat" 02:38:27 Hahaha 02:38:29 Win. 02:38:34 ;) 02:38:46 i aims to please 02:40:05 -!- oerjan has set topic: Topic closed by the moral police | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:40:17 -!- augur has set topic: Topic closed by the moral police | fuck the police | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:41:05 -!- Gregor has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:42:07 -!- augur has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://www.motherrussiasdaughters.com/images/euro-pornstars/euro-babe_2.jpg | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 02:42:34 I like the dagger style :P 02:42:50 Also, you came up with that link in a distressingly short amount of time :P 02:43:22 google images: "police uniform sex" 02:43:22 you think i just said augur knows his pornography for no reason, do you? 02:43:34 i know my google-fu, more accurately. 02:43:38 IIRC, that's not HIS pornography :P 02:43:43 OR SO YOU CLAIM 02:43:45 decidedly not. 02:43:53 sorry, the "his" was a typo 02:44:04 actually it wasnt 02:44:05 or misremembering, rather 02:44:07 its just a different his. 02:44:15 argh 02:44:33 english lets you say "I know my X" to mean "I know a lot about X" 02:44:53 as opposed to meaning "I know the X that belongs to me" 02:45:07 similarly for other possessive pronouns. 02:45:16 I was just riffing off the ambiguity :P 02:45:41 * augur riffs off gregor's ambiguity 02:45:43 ;o ;o ;o 02:46:03 * Gregor rips off augur's ambiguity 02:46:18 :x 02:46:22 hot 02:46:32 Did I say "ambiguity"? 02:46:35 I meant "clothes" 02:47:25 Can we go back to English now? X-P 02:47:43 also consider pied piping 02:48:23 ofcourse its considered bad form to strand your prepositions, eg "who(m) are you talking to" vs. "to who(m) are you talking" 02:48:50 but in some cases, you have to do more than just move the preposition along with the WH phrase 02:48:53 Oh pffft. 02:48:58 To consider that bad form is quite outdated. 02:49:09 true, but it was an example of pied piping 02:49:11 Gregor: hey, i was trying to subtly get us _away_ from English, here. and failing miserably. 02:49:19 To whom is it that you are speaking? 02:49:21 where you bring the extra but (the preposition) with you 02:49:27 but consider 02:49:32 This is the kind of language up with which I cannot put. 02:49:33 hot piping pies 02:49:36 "john was shocked by a book about joan of arc" is acceptable, but if you want to ask who the book is about 02:49:46 "who was john shocked by a book about" 02:49:48 this is pretty horrible 02:49:59 and it doesnt get better by pied piping the preposition: 02:50:06 "about who was john shocked by a book" 02:50:07 also horrible 02:50:13 but if you take the whole NP its fine: 02:50:16 A book about Joan of Arc John was shocked by; to whom it is that you are speaking is John. 02:50:18 "a book about who shocked john" 02:50:19 Police police police police police police police. 02:50:21 dammit s/hot piping/piping hot/ 02:50:26 Gregor: XD 02:50:35 Police, in Buffalo 02:50:39 HAWT BEASTIALITY 02:50:40 we,, sorry, "a book about who was john shocked by" 02:50:44 a ni way 02:50:47 i'ma go now 02:50:53 see you cool dudes tomorrowz 02:50:58 alise: see you 02:51:14 -!- alise has quit (Quit: Leaving). 02:51:36 "john read about about joan of arc" 02:51:52 =?=> "who did john read a book about" 02:52:08 =?=> "about who did john read a book" 02:52:20 whomsoever 02:52:22 =/=> "a book about who did john read" 02:52:40 so here youve got pied piping that is _bad_ 02:53:05 noone understands this phenomena/on either 02:53:43 The famous Dr. Daniel Noone understands most everything. 02:54:00 its true 02:55:55 Daniel Noone is an ancestor of Noonien Soong 02:56:06 Booh hiss at Trek references :P 02:56:16 you should see this paper im working on 02:56:24 Boo hiss at working on things. 02:56:25 >_> 02:56:34 my example sentences are all star trek references 02:56:54 specifically, instead of using the classical example "brutus stabbed caesar", i have "worf stabbed gowron" 02:57:02 insted of "a small brown dog" its "a small brown targ" 02:57:26 Ow. 02:57:27 My brain. 02:57:30 I needed that for thinking. 02:57:41 thinking is overrated. 02:58:18 Druhhhhhhh 02:58:49 I invented how to make up Pokemon Red on 8x8 ASCII only display with 7 buttons it works fine 02:58:55 ive decided that im going to use example sentences, in a series of papers, such that if you collected the example sentences together in order of appearance 02:59:12 they actually outline a plot of an episode of some random scifi show 03:00:46 OK, I like that idea a bit 03:00:58 * Gregor sobs silently to himself in the corner. 03:02:06 my intention is to make the sequence of sentences unassuming, so that you wouldnt realize whats going on unless you're astute 03:02:13 seq 100 1100 > /dev/dsp 03:02:24 e.g. using farscape, babylon 5, firefly, efc, etc. 03:02:27 less well known scifi 03:02:55 that way, if someone comes up to you afterwards and indicates that they recognize the story, you've discovered a fellow nerd 03:03:00 and made a new friend 03:03:32 augur: Yes I suppose that helps. But first you have to figure out the best way to make the example like that 03:03:41 s/friend/stalker/ 03:03:43 its not that hard 03:03:49 Gregor: theres a difference? 03:03:53 But gimme a minute! 03:03:58 Damn, you put another line in there. 03:04:01 Ruined my nonsense zinger.' 03:04:07 :) 03:04:15 i aims to displease 03:04:31 Basically, you aim to alter net pleasure. 03:04:42 Once I was testing some computer and I typed in: yes > /dev/dsp 03:04:56 * Gregor does that :P 03:05:05 Well that's unpleasant. 03:05:32 You can type yes yyyyyyy to make it lower pitch 03:05:40 The more "y" you add, the low pitch 03:06:38 is this in bash? 03:06:45 Sure. 03:07:43 thats useless 03:08:15 allit does is loop printing yyyyyyy 03:08:16 :| 03:08:29 But you can put > /dev/dsp 03:08:36 oh ok 03:08:36 And then it will sound 03:08:54 permission denied! D: 03:09:01 whats /dev/dsp 03:09:31 I think you might also be able to use > /dev/audio or | aplay -t raw 03:09:31 42nd notes. Just calculated that. Friggin' Chopin. 03:09:45 -!- lament has joined. 03:09:55 ah well, im on a mac so 03:10:13 Dood, they're the 7-tuplets of triplets! WTFWTF *boom* 03:10:15 Use the equivalent mac command, I don't know what it is 03:10:20 neither do i :D 03:10:34 Doesn't Mac have OSS? 03:10:36 Probably "yes" is the same, though 03:10:44 Gregor: have you implemented the theory in Generative Theory of Tonal Music yet? 03:11:01 augur: Nope! 03:11:07 lame 03:11:08 do so! 03:11:12 augur: I've chosen to implement my fingers onto this piano instead. 03:11:20 o ok 03:26:29 -!- oerjan has quit (Quit: Later). 03:32:42 -!- zzo38 has quit (Remote host closed the connection). 03:34:42 -!- Oranjer1 has joined. 03:35:34 -!- Oranjer has quit (Ping timeout: 264 seconds). 04:06:25 -!- augur has quit (Ping timeout: 264 seconds). 04:14:00 -!- augur has joined. 04:27:45 -!- lament has quit (Quit: lament). 04:35:02 -!- Oranjer has joined. 04:37:58 -!- Oranjer1 has quit (Ping timeout: 264 seconds). 04:40:30 -!- Quadrescence has quit (Ping timeout: 245 seconds). 04:43:00 -!- Quadrescence has joined. 04:47:44 Would it be entirely wrong to say that a VM is an interpreter for machine code? 04:50:14 no 04:55:58 -!- oklopol has quit (Read error: Connection reset by peer). 04:56:20 -!- oklopol has joined. 05:04:26 -!- Alex3012 has joined. 05:08:33 -!- augur has quit (Ping timeout: 276 seconds). 05:10:09 -!- oerjan has joined. 05:11:53 -!- oklofok has joined. 05:12:27 -!- oklopol has quit (Ping timeout: 276 seconds). 05:15:19 -!- Guest_126 has joined. 05:15:45 -!- Guest_126 has quit (Quit: Disconnected from OpenPilot Forums). 05:28:10 -!- augur has joined. 05:32:51 -!- Oranjer has left (?). 05:33:01 -!- Quadrescence has quit (Ping timeout: 252 seconds). 05:42:41 -!- Quadrescence has joined. 05:43:17 -!- lament has joined. 05:47:49 -!- lament has quit (Client Quit). 05:57:44 -!- oerjan has quit (Quit: leaving). 07:58:25 -!- oerjan has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:16 -!- kar8nga has joined. 08:12:43 -!- gm|lap has joined. 08:21:01 -!- Gracenotes has quit (Remote host closed the connection). 08:58:00 -!- jcp has quit (Ping timeout: 276 seconds). 09:07:37 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 09:16:29 -!- oerjan has quit (Quit: leaving). 09:29:14 -!- kar8nga has quit (Remote host closed the connection). 09:38:27 -!- lament has joined. 10:10:55 -!- Gracenotes has joined. 10:22:40 -!- tombom has joined. 10:44:45 -!- lament has quit (Quit: lament). 11:18:03 -!- augur has quit (Ping timeout: 260 seconds). 12:02:03 -!- adam_d has joined. 12:05:36 -!- gm|lap has quit (Quit: ilua). 13:03:24 -!- adam_d has quit (Ping timeout: 240 seconds). 13:12:09 -!- BeholdMyGlory has joined. 13:15:53 -!- Tritonio_GR has joined. 13:19:09 -!- alise has joined. 13:20:34 Good morning! 13:28:20 Cool, G(12) > G_64 where G = goodstein function. 13:28:25 -!- Quadrescence has quit (Ping timeout: 245 seconds). 13:28:31 Admittedly it has a rather more complex definition. 13:29:18 -!- Quadrescence has joined. 13:29:21 -!- Quadrescence has quit (Changing host). 13:29:21 -!- Quadrescence has joined. 14:07:00 http://upload.wikimedia.org/wikipedia/commons/1/15/Champernowne_CF.png the champernowne constant has a pretty fucked up continued fraction 14:07:05 that last term isn't even the complete one 14:09:03 -!- kar8nga has joined. 14:48:18 * alise plays with Prolog 14:54:54 coool 15:07:43 -!- oerjan has joined. 15:11:26 wow symbolic differentiation in prolog is like... stupidly fucktardedly easy 15:11:56 d(X, X, 1). 15:11:57 d(X, Y, 0) :- \+ X = Y. 15:11:57 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 15:11:57 d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B). 15:11:57 d(U/V, X, (V*A) / (U*B) / (V^2)) :- d(U,X,A), d(V,X,B). 15:11:57 d(U^V, X, (V*(U^(V-1))) * A) :- d(U,X,A). 15:12:18 err omit that X,Y,0 line I just added it and it messes things up 15:12:31 ?- d(x^2, x, R). 15:12:32 R = 2*x^ (2-1)*1. 15:12:53 foo(X,R) :- d(X^2,X,E), R is E. 15:12:53 ?- foo(34, R). 15:12:53 R = 68. 15:15:48 what's \+ ? 15:16:26 \+ X succeeds iff X fails 15:16:27 but ignore that line; it breaks stuff 15:16:27 I need to condition on X being a symbol 15:16:34 otherwise every differentiation gets the extra possibility R = 0 15:16:40 because of what your variables could be 15:16:44 heh 15:16:44 ?- d(X*Y,Y,X). 15:16:45 X = 1, 15:16:45 Y = 1*** ; 15:16:45 X = ** * 1+** * 1, 15:16:45 Y = ** * 1+** * 1 ; 15:16:46 ERROR: Out of local stack 15:16:49 (where ** represents "anything") 15:16:54 so 1*** is 1*something 15:17:14 (i.e. "what values for X and Y make the derivative of X*Y over Y equal to X?") 15:18:00 I like how we use the fact that arithmetic isn't automatically evaluated to return a symbolic expression, but we can then easily numerically evaluate it 15:18:06 because it's just the tree structure of prolog arithmetic 15:18:41 i think your U^V is wrong 15:18:46 btw if you use UPPERCASE VARIABLES as the variables for d it enumerates all the possible cases for the variable and the result... which is often not what you want 15:18:51 unless V is a constant 15:19:04 d(x^x, x, R) otoh will give you the expression 15:19:06 oerjan: yes... 15:19:12 I need to figure out how to express is-constant 15:19:26 oerjan: I think I can express it as: "V does not mention the variable" 15:19:36 no, you just need to use the multivariable chain rule properly :) 15:19:55 yeah but i'm lazy 15:20:47 and this is nice and short 15:20:57 d(U^V) = V*(U^(V-1))dU + ln U * U^V * dV 15:21:48 Fiine. 15:22:17 oerjan: but log is floating-point in prolog :( 15:22:20 oh, wait, that's only if you evaluate it 15:22:24 so the symbolic result will be precise 15:22:28 ha! this is perfect 15:22:53 oerjan: I hope that prolog uses the same precedence as your expression 15:22:57 (I really suck at operator precedence) 15:23:05 I know I have redundant parens in 15:23:09 (U*A) + (V*B) 15:23:13 and I think in (V*A) / (U*B) 15:23:44 oerjan: that rule broke my system 15:23:58 you can do d(X^2, X, R) 15:24:01 but not d(x^2,x,R) 15:24:38 you lack a rule for constants 15:25:18 also, division has a bug, should be (V*A - U*B) / (V^2) iirc 15:25:36 er right 15:25:39 i suck at mentally parsing things :( 15:25:54 hm or is that the wrong sign... 15:26:13 that is right i think 15:26:45 term_variables(+Term, -List) 15:26:45 Unify List with a list of variables, each sharing with a unique variable of Term.47This predicate used to be called free_variables/2 . The name term_variables/2 is more widely used. The old predicate is still available from the library library(backcomp). The variables in List are ordered in order of appearance traversing Term depth-first and left-to-right. See also term_variables/3. For example: 15:26:46 i'm unsure of the order of the terms 15:26:46 :))) 15:26:47 that sounds helpful 15:27:08 oerjan: i just looked it up that's right 15:27:12 ok 15:27:33 dammit, term_variables only works for UPPERCASES 15:27:42 -!- tombom_ has joined. 15:28:00 well of course, those are the variables, duh 15:29:01 yes 15:29:05 but I support differentiation on littles too 15:29:07 :P 15:29:08 d(X, Y, R) :- atom(X), \+ X = Y -> R is 0 ; R is 1. 15:29:20 (you can do this as two, shorter rules but then d(x,x,R) says R = 1 and then false which is irritating) 15:29:28 so will your ^ rule work now? 15:30:35 well i don't know why it didn't work the first time, how do you encode it? 15:30:44 -!- tombom has quit (Ping timeout: 276 seconds). 15:32:34 -!- adam_d has joined. 15:34:16 d(U^V, X, V*(U^(V-1)) * A + log(U) * U^V * B) :- d(U,X,A), d(V,X,B). 15:36:52 looks right to me 15:36:55 food -> 15:39:30 oerjan: it works at the expense of totally breaking things 15:39:41 because I basically have to add the default rule that d(x) = 1 15:42:15 oerjan: also at the expense of, you know, not actually giving correct results 15:43:24 but you _already_ have d(X,X,1) 15:45:31 nope 15:45:34 just changed things: 15:45:40 constant(X, Y) :- number(X) ; atom(X), \+ X = Y. 15:45:40 d(X, Y, R) :- constant(X, Y) -> R is 0 ; X = Y -> R is 1. 15:46:05 ?- d(x^2,x,E). 15:46:05 E = 2*x^ (2-1)*1+log(x)*x^2*0. 15:46:10 that *0 is fucking everything up 15:46:16 paren issue? 15:46:53 um that's correct, that term is supposed to cancel out when the exponent is a constant 15:47:24 (log(x)*x^2*0) 15:47:32 + has lowest precedence 15:49:00 then how come foo(n,R) = 0 for all n? given 15:49:05 foo(X,R) :- d(X^2,X,E), R is E. 15:49:09 or is your rule in addition to the previous one? 15:52:02 what rule 15:52:18 what do you mean by "all n" 15:52:55 if you evaluate foo(3,R), say, then of course you are doing d(3^2, 3, E) which is nonsense 15:53:19 you cannot substitute values until _after_ you have differentiated with a proper variable 15:54:23 this worked before though :) 15:54:27 with the other rules you can use uppercase vars too 15:54:58 only by luck. if you differentiated 3*x at x=3 it would break 15:55:53 hmm, right 15:57:10 -!- FireyFly has joined. 15:57:56 oerjan: but prolog has no function to substitute lowercase atoms does it? 15:58:44 i don't know, but i'm sure you can write one 15:59:26 that's a shame though I thought it was so awesome :( 15:59:26 oerjan: mind - 15:59:29 upper case i more efficient since it's essentially in-place update 15:59:34 d(X^2,X,E) with no constraints on X (e.g. argument) should work 15:59:40 it enumerates all the possible input pairs and output expressions 15:59:42 *is 15:59:53 ?- d(X^2,X,E). 15:59:54 X = ** ^ 2, 15:59:54 E = 1 ; 15:59:54 E = 2*X^ (2-1)*1+log(X)*X^2*0 ; 15:59:54 X = ** + **, 15:59:55 E = 2* (** + **)^ (2-1)* (1+1)+log(** + **)* (** + **)^2*0 ; 15:59:57 X = ** + **, 15:59:58 E = 2* (** + **)^ (2-1)* (1+ (1+1))+log(** + **)* (** + **)^2*0 16:00:27 eek :D 16:00:46 oerjan: writing a substitution function probably won't be so easy, as i have to handle variadic stuff 16:00:53 prolog should just be LOGICALLY CURRIED :))) 16:01:12 also i didn't say there _wasn't_ a function to substitute lowercase atoms, i said i didn't know 16:01:44 fuk currying 16:01:49 oerjan: i looked and couldn't find one 16:02:02 oh wait, d only ever generates function expressions with two arguments 16:02:03 convenient 16:02:07 and the function is always constant 16:03:21 * alise wonders why subst(X, X, Y, Y). 16:03:21 subst(F(A,B), X, Y, F(A2,B2)) :- subst(A,X,Y,A2), subst(B,X,Y,B2). 16:03:21 doesn't parse 16:03:23 the second line in particular 16:03:49 oerjan: I wish you could do it for uppercase vars it'd be a lot prettier 16:04:25 -!- FireyFly has changed nick to FireFly. 16:04:27 um why can't you 16:04:47 because you can't bind X 16:04:47 or wait 16:04:48 can you do 16:04:56 d(X^2, X, E), X is 34, R is E. 16:04:56 ? 16:05:04 sure 16:05:16 *X = 34 16:05:24 iirc 16:05:28 hmm problem is that generates the correct result /but/ 16:05:43 then it says it has more terms 16:05:44 and going on loops 16:05:46 (trying every other number to see if it's 34) 16:06:40 the problem is d/3 tries to substitute values for X 16:06:42 apart from that it works 16:06:53 ah you can just put ! after 16:06:58 foo(Xv,R) :- d(X^2, X, E), X = Xv, R is rational(E), !. 16:07:28 ?- foo(pi, R). 16:07:28 R = 6.28319. 16:07:29 (I removed the rational()) 16:07:39 still, it seems cleaner to do it with x 16:07:45 because then we can do more symbolic jiggery-pokery 16:08:43 still, this is awesome 16:08:49 imagine how awkward it would be in C :-) 16:09:08 alise: Which prolog do you use? 16:09:16 SWI 16:09:20 thought so 16:09:33 I might play with prolog a little more today. I haven't in so, so long 16:09:39 gprolog sort of doesn't feel terribly prologish to me and i think has weird names for some procedures I use intuitively 16:09:45 all the ones that aren't gprolog or SWI just seem really 90s 16:09:49 (or completely dead) 16:09:55 (or tied to some stupid platform) 16:10:15 sisctus is probably fine i've never tried it though 16:10:15 alise: you may want to start with d(X, Y, Z) :- var(X), !, something... 16:11:09 define something :P 16:11:47 that thing with constant above, perhaps 16:12:01 so unify the two? or two separate ones? 16:12:09 if I unify them then d(x,x,E) won't work 16:12:11 (nor d(x,y,E) 16:12:11 ) 16:12:31 anyway constant(X, _) always fails if X is a var 16:12:34 because X is neither a number nor an atom 16:13:00 alise: well rewrite the case anyway, the point is _not_ to substitute the first argument ever 16:13:10 d(X, Y, A) :- var(X), !, X = Y -> A = 1. 16:13:11 d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1. 16:13:14 is that acceptable? 16:13:23 i mean I'm not quite sure what you want it to do 16:13:31 oh hm 16:13:40 well i guess 16:13:58 constant(X, Y) :- number(X) ; atom(X), X \= Y. 16:14:01 is this the function at risk of substituting? 16:14:43 the risk of substituting is in _all_ the d clauses for specific functions 16:15:03 i see 16:15:03 whenever you pass an (upper case) variable as the first argument 16:15:09 but I'm stil not sure what you want me to do!! 16:15:11 *still 16:15:40 i want you to prevent that substitution by doing a check for the first argument being variable, then cutting and handling it specially 16:16:01 yes -- but specially how? 16:16:09 Cutting is lame 16:16:12 do you want to break that d(X^2, X, E) generates all the possible in/out pairs? 16:16:16 if so, I hate you and all your children 16:16:33 oh in that case move along, nothing to see here :D 16:16:42 :-D 16:16:42 i thought that was a bug 16:17:34 lol 16:17:37 no that's awesome 16:17:52 I still need to figure out how to write 16:17:54 subst(F(A,B),... 16:17:57 without syntax erroring 16:18:33 there is a predicate for breaking up terms into head + list of arguments 16:18:44 but you can't pattern match? 16:18:45 super fucking lame :( 16:18:55 anyway oerjan since when are you a prologer? 16:19:10 very barely 16:19:21 "very barely" is not a time. 16:19:42 although for a long time i guess. i'm not quite sure, may have been already in high school 16:19:55 Gregor: It is very barely a time. 16:20:08 (that i found a book on it. i'm pretty sure i didn't have an actual implementation) 16:21:18 Evaluate Expr. Although ISO standard dictates that A=1+2, B is A works and unifies B to 3, it is widely felt that source-level variables in arithmetic expressions should have been limited to numbers. In this view the eval function can be used to evaluate arbitrary expressions.53The eval/1 function was first introduced by ECLiPSe and is under consideration for YAP. 16:21:19 widely felt my ass 16:21:26 (LULZ INNUENDO) 16:23:42 Why Father Widely ... whyyyyyy 16:23:48 :D 16:23:58 oerjan: hmm I dislike your exponential rule because there is no precise evaluation for log in Prolog 16:24:03 because it has no precise irrational type 16:24:15 maybe I should reinstate my other one only for the case where V is constant 16:24:55 perhaps. 16:26:25 or just accept that the world is imprecise 16:27:01 aha 16:27:05 Term =.. [Funtor|Args] 16:27:08 *Functor 16:28:57 ?- subst(x^(x-x), x, y, R). 16:28:57 R = y^ (y-y) ; 16:28:57 false. 16:28:57 yay hooray 16:29:07 -!- MigoMipo has joined. 16:30:52 ?- subst(2*(x-y) + 0, x, flower, E). 16:30:52 E = 2* (flower-y)+0 ; 16:30:52 false. 16:30:52 ?- subst(2*(x-y) + 0 + (x*log(x/y)), x, flower, E). 16:30:52 false. 16:30:56 ok, so I need to handle single arg functions too :P 16:32:03 i'm thinking that prolog would make an excellent CAS 16:34:37 * alise wonders how you're meant to do a map in prolog 16:36:37 I was hoping it'd be something awesome, like 16:36:48 member(X, L), Y is X+1, assert(member(Y, L2)) 16:36:51 A YouTube video that I left in a tab overnight spontaneously decided to start playing 16:42:35 oerjan: is it healthy to try and remove "foo ; false" things? 16:42:36 like you get the one right result then a false 16:42:42 I'm trying to change my code to stop it 16:44:30 um 16:45:55 i don't know whether that is possible. 16:46:31 it is if you fuck with your code a lot :D 16:46:32 "I've tried to teach people autodidactism, but I've realized they have to learn it for themselves." --shapr 16:46:44 false is what afaiu what you get when there _are_ no more results 16:47:04 oerjan: well yeah 16:47:16 but i mean if you tweak your program so that prolog thinks that there cannot be any more results 16:47:18 (as opposed to maybe there might be) 16:47:20 it doesn't bother to prompt 16:47:23 so you get no falses 16:47:30 oh. 16:47:41 well i guess that's just a matter of adding cuts... 16:48:27 yeah :P 16:49:16 but then you need to be careful not to ruin your actual wanted multiple results 16:49:27 yeah 16:49:38 urgh, i shouldn't have defined a map function 16:49:40 bugs everywhere 16:49:44 how am i meant to dooo this 16:49:48 manually recursive function?# 16:50:20 i don't know 16:51:48 ?- d(x^2, x, E), subst(E, x, 42, E2), R is E2. 16:51:49 E = 2*x^ (2-1)*1+log(x)*x^2*0, 16:51:50 E2 = 2*42^ (2-1)*1+log(42)*42^2*0, 16:51:50 R = 84.0 ; 16:51:50 false. 16:51:50 yay! 16:52:03 this is beautiful 16:52:25 Making an Algebra system in Prolog? 16:52:52 well 16:52:52 i just implemented differentiation :P 16:52:53 but yeah i suppose i might do that 16:53:19 constant(X, Y) :- number(X) ; atom(X), X \= Y. 16:53:21 d(X, Y, A) :- constant(X, Y) -> A = 0 ; X = Y -> A = 1. 16:53:21 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 16:53:21 d(U*V, X, (U*A) + (V*B)) :- d(V,X,A), d(U,X,B). 16:53:21 d(U/V, X, (V*A - U*B) / (V^2)) :- d(U,X,A), d(V,X,B). 16:53:22 d(U^V, X, V*(U^(V-1)) * A + log(U) * U^V * B) :- d(U,X,A), d(V,X,B). 16:53:24 alise: can I see your diff program? 16:53:28 is that it? 16:53:29 Quadrescence: yes, see above :P 16:53:30 yes 16:53:50 is subst() a predefined func? 16:53:55 ?- d(x^(x/2), x, E). 16:53:55 E = x/2*x^ (x/2-1)*1+log(x)*x^ (x/2)* ((2*1-x*0)/2^2). 16:54:02 Quadrescence: it doesn't handle functions other than those enumerated so it's not "production ready" 16:54:05 i'll show the whole file 16:55:40 http://pastie.org/912899.txt?key=f9lcfe9rul5yb1kzk4czg 16:55:48 if you evaluate symbolically like in foo2, the only cuts you need are the two in subst 16:55:57 (otherwise everything has one more potential result which always fails) 16:56:00 that's just aesthetics though 16:56:06 more convenient when using the REPL 16:56:10 for foo you really do need the ! though 16:56:18 otherwise it loops forever trying every number and failing because it isn't Xv :-) 16:57:12 Quadrescence: you can also use this procedure to do a (really crappy) "search" for derivatives: 16:57:13 ?- d(X*Y, X, Y). 16:57:14 X = ** * 1, 16:57:14 Y = 1 ; 16:57:14 X = ** * 1+** * 1, 16:57:14 Y = ** * 1+** * 1 ; 16:57:15 ERROR: Out of local stack 16:57:26 (** meaning "anything that follows the rules of the function", I think) 16:57:45 also d would be better if it accepted any expression that doesn't mention the variable as constant but it doesn't 16:58:15 still, despite its flaws i think it shows just how awesomely awesome prolog is 16:58:55 Quadrescence: If I were trying to make this actually useful for anything I'd start by, say, making the code handle function compositions and then doing cases for sin and the like 17:00:03 -!- Alex3012_ has joined. 17:00:08 also it makes some assumptions... 17:00:11 ?- d(x/x, x, E). 17:00:12 E = (x*1-x*1)/x^2. 17:00:15 like x is not 0 17:00:48 alise: Yeah, I am aware, jeez what do you take me for, sum kinda idoit??? 17:00:54 and really there should be a simplification function so that it says things like "-1" instead of "(x*0-1*1)" 17:01:00 Quadrescence: aware of what? 17:01:40 alise: idk 17:01:44 okay :P 17:02:10 -!- Alex3012 has quit (Ping timeout: 245 seconds). 17:03:48 -!- Alex3012 has joined. 17:04:03 He's Alex ... 17:04:05 FROM THE FUTURE 17:04:11 (1002 years in the future) 17:04:42 Dun dun DUNNNNNNNNNNN 17:04:53 he's come here to investigate why civilization collapsed 17:05:36 unfortunately the people in 3012 don't understand cosmic irony 17:06:06 It takes more than 1000 years to rediscover cosmic irony. 17:06:13 yeah 17:06:32 (It does not, however, take 1000 years from an apocalypse to discover time travel) 17:06:33 -!- Alex3012_ has quit (Ping timeout: 265 seconds). 17:06:36 1003 years to be exact. 17:07:39 Gregor: depends how deep the apocalypse 17:08:23 I don't know that I've ever heard apocalypi described in terms of depth ... 17:09:06 well you need to remove all knowledge that could be used to rebuild civilization fast... 17:11:35 `addquote I don't know that I've ever heard apocalypi described in terms of depth ... 17:11:50 146| I don't know that I've ever heard apocalypi described in terms of depth ... 17:14:55 [[ “N*Sync is the best band ever!” => “For all bands xx, N*Sync is better than band x (or, x=N*Sync).” A quick listen can easily show this statement false.]] 17:16:25 [[ A buggy line from a song (Everybody Loves My Baby, Jack Palmer and Spencer Willson, 1924): “Everybody loves my baby; My baby don't love [anybody] but me.” => “For all persons x, x loves my baby. For all persons y, if my baby loves y, then y is me.” If true, one can conclude the speaker is his own baby, and is narcissistic. ]] 17:16:29 this is the best page about basic quantifiers ever 17:17:18 -!- oerjan has quit (Quit: leaving). 17:28:15 ?- d(x^x^x,x,E), subst(E, x, 42, E2), R is E2. 17:28:16 ERROR: Out of global stack 17:28:17 a deficiency 17:29:04 although that's just in is 17:29:15 so you could fix it by substituting, e.g. something better at arithmetic :P 17:29:25 (given a few dozen oodles of memory naturally) 17:29:33 still stack overflows suck 17:30:38 (other operations merely cause overflow) 17:56:28 -!- Tritonio_GR has quit (Quit: Leaving.). 18:00:19 oh lol ** doesn't mean anything 18:00:22 it means infinite :D 18:00:29 nesting 18:04:59 -!- oerjan has joined. 18:05:26 heh, zeilbeger would so approve of using prolog to do stuff 18:05:44 it's proved if you ran "seq(N), \+ prop(N)" for a while and it hasn't spit out a counterexample 18:14:03 oerjan: apparently var(X) is very unsound 18:14:04 logic-wise 18:14:22 and \+ plus copy_term/2 plus ! can express var/1 18:14:34 so cut really is quite insidious... 18:14:40 yeah 18:15:29 quite obvious really (that var/1 is unsound; \+/1, copy_term/2 and !/0 doing var/1 is new to me) 18:15:40 foo(X) :- var(X), X=1, then foo(X): X = 1, but foo(1) fails 18:15:52 although 18:15:53 why would you need copy_term... 18:15:58 oerjan: i don't know, but oleg said it 18:16:05 are you going to question oleg? 18:16:11 "With var/1, logic programming becomes programming in inconsistent logic." <-- well prolog /is/ turing complete... 18:16:19 Prolog's built-in negation predicate \+/1 is just as dangerous as var/1: indeed, negation can express var/1 in one line: 18:16:20 vr(X) :- \+ \+ (X=0), \+ \+ (X=1). 18:16:22 oh 18:16:24 oerjan: i see 18:16:26 \+/1 18:16:26 OR 18:16:28 copy_term/2 18:16:29 OR 18:16:30 !/0 18:16:34 can all express var/1 on their own 18:16:37 now THAT is scary! 18:16:51 well i knew \+ could be expressed with ! and fail 18:17:06 Prolog's built-in negation predicate \+/1 is just as dangerous as var/1: indeed, negation can express var/1 in one line: 18:17:08 vr(X) :- \+ \+ (X=0), \+ \+ (X=1). 18:17:08 Only a variable can be, alternatively, unified with two distinct atoms (e.g., 0 and 1). The double-negation is symptomatic. The evaluation of ?-vr(X). succeeds with the answer X=_G180 (the variable X remains unbound). Goals vr(0), vr(1), vr(2), vr([0]), and vr([X|Y]) all fail. 18:17:08 In the above example, the cause of unsoundness is obvious: the negated goal \+ (X=0) binds an existing free variable. This is called ``floundering''. Some Prolog systems report a run-time warning or an error in this case (floundering is not decidable statically). SWI Prolog, which is used for all tests here, lets floundering go undetected. 18:17:14 \+ X :- X, !, fail. 18:17:15 so basically negation makes prolog consistent 18:17:16 hah! 18:17:20 \+ X . 18:17:49 and what use is prolog without negation... 18:17:51 ok, some use, but not that much 18:18:39 and yeah fail can express it 18:18:54 oerjan: you do not even need ! I think? 18:18:57 nt(X) :- X -> fail ; true. 18:19:04 so basically I'm learning that 99% of prolog is inconsistent 18:19:11 What's terrible about expressing var/1 on one line? 18:19:20 Sgeo: var/1 makes prolog's logic inconsistent 18:19:27 Oh 18:19:31 For uniformity, we use the name vr/1 and define it here as the alias to the built-in var/1. We first ask the question if there is a value of X that makes foo(X) derivable from the current database of rules and facts. The Prolog system says yes and gives one such value, 1: 18:19:32 ?- foo(X). 18:19:32 X = 1 18:19:32 Yes 18:19:32 ?- foo(1). 18:19:34 No 18:19:36 If we verify the answer and check if indeed foo(1) is derivable from the current knowledge, we get the answer no. With var/1, logic programming becomes programming in inconsistent logic. We cannot generally trust any results. 18:19:51 The well-known elegant implementation of lambda-calculus in Prolog relies on copy_term/2. Because of that, copy_term/2 is the least objected to. Alas, copy_term/2, too, expresses var/1, also in one line: 18:19:52 vr(X) :- copy_term(X,0), copy_term(X,1). 18:19:56 Finally, cut, by itself expresses var/1: 18:19:56 noteq(X,X) :- !, fail. 18:19:56 noteq(_,_). 18:19:56 vr(X) :- (noteq(X,0), !, fail); (noteq(X,1), !, fail); true. 18:19:59 What does var do? 18:20:44 var(X) succeeds iff X is a free variable; X remains unbound 18:20:47 so e.g. var(X) but not var(1) 18:20:53 alise: -> ; can be defined with ! as well. i sort of think of ! and fail as more primitive. 18:20:56 which lets us distinguish whether we're searching for instances of X 18:20:59 or checking if 1 satisfies it 18:21:02 in foo(X) :- ... 18:21:03 oerjan: true 18:21:13 That.. doesn't sound that useful 18:21:14 I've just been tihnking of -> and ; as language constructs 18:21:15 *thinking 18:21:54 Although I guess when it comes to functions that return stuff through a free variable or something, it's a nice sanity check 18:21:54 ais523: brain ping 18:22:15 Sgeo: it's basically for practical purposes 18:22:27 like, you want to avoid pathological really-high-complexity behaviours 18:22:35 when prolog tries searching 18:33:02 so now I'm on a prolog kick :P 18:33:22 prolog-funge? 18:39:52 Deewiant: I considered that momentarily: but the slowness would be unbelievable. 18:40:03 And, besides, it's not really suited for that. 18:40:11 You never solve any constraint problems in Befunge. 18:41:11 So how's the ml-funge doing 18:43:07 It turns out I only work on things that take my fancy at this very second :) 18:43:33 Bah :-P 18:43:47 Deewiant: Well, hey, give me motivation. :P 18:45:12 You get to beat AnMaster at speed? I don't know. 18:46:01 Deewiant: You did that with D, and Tango at that. 18:46:11 And Tango is possibly the worst code ever. 18:46:19 No challenge at all :) 18:46:34 Tango is pretty good IMO 18:46:50 The issues are mostly in the GC (which does not originate in Tango) 18:47:13 And my workaround for that was to use C malloc/realloc/free :-P 18:52:17 -!- augur has joined. 19:00:08 -!- Tritonio_GR has joined. 19:07:48 -!- b3n4dd1 has joined. 19:12:48 -!- lament has joined. 19:13:43 -!- jcp has joined. 19:15:10 -!- oklofok has changed nick to oklopol. 19:17:31 -!- b3n4dd1 has left (?). 19:31:58 -!- augur has quit (Ping timeout: 264 seconds). 19:32:35 -!- lament has quit (Quit: lament). 19:38:17 -!- aschueler has joined. 19:41:50 oerjan: do you know if there is a predicate that will let me check if a certain thing is a predicate of a certain arity? 19:41:58 say I'm given foo/1, could I say foo-is-a-predicate-with-arity-1? 19:42:17 like as a test 19:42:27 ispredicate(X) :- predwitharity(X, 1) 19:42:53 ("barely", he said) 19:43:26 i distinctly recall SWI had an index 19:43:27 -!- coppro has joined. 19:43:46 and predicates organized by subject 19:44:58 yeah but it's hopeless to look up :) 19:45:07 i keep finding almost-but-not-quites :(( 19:47:11 -!- Tritonio_GR has quit (Ping timeout: 260 seconds). 19:49:37 -!- Tritonio_GR has joined. 19:50:36 http://www.swi-prolog.org/pldoc/doc_for?object=section%282%2c%274.14%27%2cswi%28%27%2fdoc%2fManual%2fexamineprog.html%27%29%29 19:56:25 alise: ^ 19:57:29 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 19:57:35 find(x) := { ircsay("oerjan: " x "?"); awaitreply() } 19:57:55 i actually stumbled upon that page before though :-D 19:58:05 though i don't see that it has what i want? 19:58:17 current_predicate? 19:58:35 ah 19:58:37 current_functor 19:58:43 oh, predicate would work better 19:59:04 so: 19:59:13 current_predicate(X/N), current_functor(X, 1). 19:59:14 well 19:59:15 X/1 19:59:37 oh, then current_functor is redundant 19:59:57 you'd think 20:00:21 ?- forall(predicate_, P, forall(empty, X, call(P,X))). 20:00:21 true. 20:00:39 forall P:A=>Prop : forall X:Empty : P X 20:00:47 where empty(_) :- fail. 20:00:51 predicate_(X) :- current_predicate(X/1). 20:00:52 and 20:00:55 forall(S,X,P) :- \+ (call(S,X), \+ call(P)). 20:01:22 you can also use forall(requirements,foo) where all variables are substituted -- this is built into SWI and so you can sweep the evil negation under the carpet 20:01:40 then: 20:01:41 ?- forall(predicate_(P), forall(empty(X), call(P,X))). 20:01:42 true. 20:03:10 nice that we have such reasoning tools in a "dumb" constraint solver 20:03:37 Deewiant, you might want to update the fungicide page btw. I pushed the alternative IP list thing. Still, to really become faster I need a new funge space. But that will have to wait for a bit due to lack of time for something as complex. 20:03:43 hmm wait isn't forall(S,X,P) :- \+ (call(S,X), \+ call(P)). exists 20:04:02 AnMaster: Maybe make a release? 20:04:21 Deewiant, no time currently. I don't think I will make one very soon. 20:04:32 messing around with sf.net, freshmeat and so on takes some time 20:06:09 Deewiant, does fungicide test stack stack begin/end much? If not that might be interesting 20:06:21 (forall x, P) = (~exists x, ~P), so if \+ (call(S,X), \+ call(P)) is exists x:S, P 20:06:24 then forall is... 20:06:33 \+ \+ (call(S,X), \+ \+ call(P)) 20:06:56 lol I can prove that there exists an element of the empty set such that false but not that forall elements of the empty set... 20:07:06 maybe i should just use forall 20:07:43 Deewiant, remember the alternative IP list needs to be explicitly enabled. Since it turned out to use more memory for "normal" programs 20:08:01 How much more? 20:08:45 Deewiant, it is due to larger constant basically. For large number of threads it is insignificant 20:09:00 wait no 20:09:03 \+ (call(S,X), \+ call(P)) 20:09:03 How much more? 20:09:04 is right 20:09:10 "there is no example of S such that not-P" 20:09:15 but I think it may hit 500 kB extra due to creating a pool to allocate from 20:09:19 something around that size 20:09:43 plus a small increase since it uses pointers. So 4 or 8 bytes extra per IP 20:09:48 depending on pointer size 20:09:51 ?- forall(empty, X, (X, \+ X)). 20:09:51 true. 20:09:52 You haven't even measured the difference and you're making it a compile-time optional optimization? Sigh... 20:09:52 heyhey, it works 20:10:09 Deewiant, I have measured it. I just don't remember the values off the top of my head 20:10:24 In any case, less than a megabyte... 20:10:40 I would love to see AnMaster's perfect OS. Actually, no, I really wouldn't 20:10:41 Seems pointless to leave it an option 20:10:43 s/$/./ 20:11:07 Deewiant, yes. And on my pentium3 system (which is where I test 32-bit x86) it was measurably slower on "few threads" programs 20:11:26 hmm well 20:11:28 used life.bf to test with 20:11:38 ~20% slowdown 20:11:49 (\+ \+ foo(X)) is exists X such that foo(X) 20:11:55 example, 20:11:58 exists_true(X) :- bool(X), X. 20:11:59 20% for one bigger memory allocation? Makes no sense 20:12:01 Deewiant, on my core 2 duo it wasn't measurably slower for life.bf 20:12:11 \+ \+ \+ \+ foo(X) = forall foo(X) then :-) 20:12:16 Deewiant, correct, but I suspect cache effects 20:12:40 which doesn't work 20:12:45 eh what I have works 20:12:50 Deewiant, since it wasn't measurable on a core 2 duo, some cache or branch prediction effect seems likely 20:12:58 If you're worried about old small-cache processors lump it in some kind of EMBEDDED_SETTINGS :-P 20:13:14 Deewiant, well, my desktop is still a sempron 20:14:08 Deewiant, the systems I test on are: pentium 3 @ 996 MHz (x86), Sempron 3300+ @ 2 GHz (x86_64), Core 2 Duo @ 2.26 GHz (x86_64) 20:14:56 cache sizes are: Sempron: 128 kB, Pentium 3: 256 kB, Core 2 Duo: 3072 kB 20:15:03 that is according to /proc/cpuinfo 20:15:11 I don't know if the last one is per-core or not 20:15:24 there is one such line for each core, so it may be 20:16:10 I don't think it is 20:16:22 anyway, since those are the ones I have available I'm not surprised if your results doesn't match mine. Especially not for the Pentium 3 box 20:16:35 does pentium 3 even do branch prediction? 20:17:41 The original Pentium did branch prediction 20:18:02 in my experience my pentium 3 box seems to gain a lot more from profile feedback compilation than the newer systems do. 20:18:26 perhaps it's predictor is cruder 20:19:03 If you had a Pentium 4 it'd probably gain even more, since they can take over a 100 cycles to recover from a misprediction :-P 20:19:21 Deewiant, alas I don't have one any more. One day it's heat sink wasn't enough 20:19:30 it was *charred* when I opened the case. 20:19:36 :-) 20:23:02 -!- augur has joined. 20:23:57 http://www.youtube.com/watch?v=DQV8jUpjRm0 MINDRAPE TIME 20:25:44 anyway another good reason to make the new one an option is that it isn't as well tested yet. 20:26:53 Deewiant, anyway a test like {}{}{} possibly both with some data to copy and with no copy might be interesting. I assume ccbi2 will be fast with it? 20:27:33 also perhaps a {-rep-}-rep that is {{{{{{{ ... }}}}}}} 20:27:39 like y-rep-n I guess 20:29:09 Deewiant, memory wise I know cfunge will use a lot on that, since with 32-bit cells the initial funge stack is 4 pages + a few bytes to keep track of stack top, stack array size and such 20:30:16 speed wise it shouldn't do too bad. CCBI1 will probably do extremely badly, CCBI2 I have no idea. the interesting bit will be watching rcfunge[12] and language::befunge 20:31:28 oerjan: whoa 20:31:32 oerjan: my differentiator integrates too 20:31:41 well sort of... 20:31:47 ?- d(E, x, x*0+2*1). 20:31:48 E = x*2 ; 20:31:48 false. 20:31:48 ?- d(E, x, 2). 20:31:48 false. 20:31:49 (there is some more optimisation I could do on memory allocation if it would turn out to be required, but I haven't seen any such cases yet) 20:31:55 -!- alise has left (?). 20:31:58 -!- alise has joined. 20:32:06 i expect that to be rather unreliable :D 20:32:17 oerjan: naturally; it will only accept inputs in the exact form that it outputs 20:32:19 oerjan, ? 20:32:27 oerjan, who was that to? 20:32:31 me 20:32:37 YOU WILL NEVER KNOW 20:32:42 darn 20:32:50 oh alise I expect. 20:33:05 NO ONE EXPECTS ALISE 20:33:16 heh 20:33:32 oerjan, nice monty python reference. 20:33:46 LIES 20:33:59 -!- Alex3012_ has joined. 20:34:22 ?- d(E, x, 1/x*x^ (1/x-1)*1+log(x)*x^ (1/x)* ((x*0-1*1)/x^2)). 20:34:23 E = x^ (1/x). 20:34:24 JUST LIKE A MAGIC 20:35:06 Deewiant, why did you make the lines dashed in the memory graphs? the light blue cfunge-32 was hard enough to see against the light grey background as it was before. Now it is near impossible 20:35:24 rcfunge2 is even harder to see 20:35:30 he wanted the graphs to be dashing, obviously 20:35:35 oerjan, hah 20:36:45 -!- Alex3012 has quit (Ping timeout: 276 seconds). 20:36:47 -!- Alex3012_ has changed nick to Alex3012. 20:38:28 AnMaster: Because previously some lines were identical 20:38:41 hm 20:38:47 Deewiant, select more visible colours then? 20:38:57 I do not select the colours, gnuplot does 20:39:07 * alise adds - differentiation 20:39:30 d(U+V, X, A+B) :- d(U,X,A), d(U,V,B). 20:39:30 whoops, spot the bug 20:39:40 Deewiant, can't you give it a colour scheme by some command line option or something iirc? Also I think it selects for white bg, not gray bg 20:39:50 which may cause the default to be suboptimial 20:39:52 AFAIK I can't 20:40:11 And yes, it does, but it unfortunately also sets a transparent bg on the svgs, which I haven't looked into fixing 20:40:21 gnuplot> help colornames 20:40:23 [...] 20:40:26 See `set palette`, `linestyle`. 20:40:46 Deewiant, seems you can. 20:41:03 Set palette looks complicated. 20:41:34 Deewiant, so it does 20:42:18 Deewiant, on the other hand, gnuplots docs generally looks complex. Due to being quite verbose I guess. 20:42:49 * alise adds sin, cos, log differentiation... 20:45:07 Deewiant, but yes, with sane colours for that background (and probably ones that work reasonably for white too, you might want to view it directly, I do when firefox decides to make it small) non-solid lines is indeed better. 20:45:18 but the current colours are piss poor. 20:45:52 For postscript I had a sed that replaced a yellow (yellow on white! completely invisible) in the .ps with an earlier-used colour (which was fine for dashed) 20:46:09 Deewiant, hm. 20:46:22 Deewiant, you could do sed for svg too 20:46:24 Do you have issues with other colours than the cyan? :-P 20:46:56 Deewiant, well, the one for rcfunge2 is even worse than the one for cfunge-32, 20:47:42 Deewiant, plots/horizontal-p.b98/10000000/line-memtime.svg show some rcfunge-like effects for ccbi2 it seems? Any idea why? 20:47:43 Ah right, that yellow. 20:47:56 Deewiant, no rcfunge1 is yellow 20:48:12 Deewiant, stinkhorn is quite bad too 20:48:17 the colour I mean 20:48:26 Right, that yellow is the one I meant. 20:48:39 IMO the rcfunge2 one is fine 20:48:47 but yeah: cfunge-32, rcfunge2 and stinkhorn are near invisible. (well not rcfunge2 when it goes up/down/up/down) 20:49:06 I can see rcfunge2 very clearly :-P 20:49:06 Deewiant, this is on my desktop display 20:49:09 let me try my laptop 20:49:16 it has worse colour reproduction 20:49:19 But yes, monitors and eyes vary so meh 20:49:40 well depends on angle of viewing 20:49:50 my desktop monitor has pretty wide viewing angle 20:49:53 That too, yes 20:49:56 much wider than my laptop 20:50:16 All in all colours in SVGs should be selectable by the web browser just like they are for text :-P 20:50:31 Lenovo didn't waste money on two things at least: the built in speakers and the screen 20:50:47 Deewiant, eh? 20:51:10 text in HTML* 20:51:13 Deewiant, oh btw, that red of ccbi1 is of varying width on my laptop 20:51:17 unlike on my desktop 20:51:38 as in, it is thinner when it goes horizontally than when it climbs 20:51:53 http://pastie.org/913291.txt?key=lbuqu2b1boebwbep7707iq woot 20:51:58 what fun toys. 20:52:00 Deewiant, could be due to higher DPI in the laptop perhaps? 20:52:04 well, toy, singular. 20:52:05 Deewiant, or older firefox 20:52:22 AnMaster: It looks such here. Don't know why, don't really care. 20:52:25 oh, look: foo no longer works. 20:52:28 I don't really care, though 20:52:36 Deewiant, hm 20:52:58 http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg 20:53:11 Deewiant, any idea about that rcfunge-ish allocation pattern for ccbi2 in plots/horizontal-p.b98/10000000/line-memtime.svg though? Something related to the gc? 20:53:18 (I assume you use the gc in some parts still?) 20:55:07 Deewiant, btw in the table below it indicates it ran more runs with ccbi2 than with cfunge? why? It doesn't seem to be "run as many times as possible until timeout" because it doesn't add up to the timeout 20:55:16 both cut off way below that 20:55:21 Have you read the rankings page? 20:55:21 seems unfair :/ 20:55:31 Deewiant, yes but I don't remember anything about that bit 20:55:36 Read it again. 20:57:48 yay my derivative works for a complex expression... well 20:57:51 with a large margin of error 20:58:04 3015981 ~= 3.01298e+06 20:58:09 Deewiant, not mentioned on the main rankings page(?) I'm talking about the "ran" column for individual problems sizes for a given problem- 20:58:13 s/-$/./ 20:58:40 Deewiant, like the last table at http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/horizontal-p.b98.html 20:58:41 Right, it's under "Measurements" on the Fungicide page 20:59:03 Deewiant, you said the *rankings* page just a few lines ago 20:59:10 not odd I couldn't find it then 20:59:22 Yes, my mistake 21:00:11 "If the time was less than a minute, it is run once more. This result is discarded. (A sort of cache-cleaning thing between the memory and time measurements.) Then, ten time-measured runs are performed." 21:00:29 Yes and? 21:00:32 eh, why only the disarcd-run for that. Why not for the larger sizes too? 21:00:39 Because it'd take forever 21:00:58 Deewiant, did that discarded run change the timing at all btw? 21:01:01 If it takes 3 hours to run I'm not going to run it three times just to watch it timeout 21:01:03 timings* 21:01:23 Maybe a bit 21:01:31 Can't remember, may not've looked at it 21:02:28 should have tested that before IMO. Seems silly to do it without any indication of that it is actually needed ;P 21:03:17 It seems sensible since there are likely some cache effects due to the memory-measuring process 21:03:21 Deewiant, anyway, yn-rep and y-rep-n will be a bit faster too now than what is shown in the rankings 21:04:03 I decided to it before finding out that some things take eons to run 21:04:12 hah 21:04:15 -!- lament has joined. 21:04:21 So then I dropped it for the longer times 21:04:33 Why is there porn in the /topic, by the way? 21:04:46 weird 21:04:48 Why would there ever not be? 21:05:01 Deewiant, well that would be ccbi1, rcfunge, language-befunge and pyfunge? 21:05:03 I don't know, it just hasn't always been there 21:05:07 (not the pron, no) 21:05:26 I guess stinkhorn for the y stuff too 21:05:29 It's either my fault or augur's fault :P 21:05:35 It's augur's 21:07:41 AnMaster: Re. the jittery memory allocation it could even be seeing something in the middle of a realloc 21:08:10 But no, can't obviously say for sure what it's about 21:08:41 if I use cut to stop my program erroring, that's bad isn't it :-) 21:08:56 augur put the pornographic material in the topic in response to the fuck the police 21:09:43 Deewiant, true 21:09:54 alise: I was about to say that I knew that and then I made the connection 21:10:19 -!- AnMaster has set topic: Topic closed by the moral police | fuck the police | (pics or it didn't happen) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 21:10:26 :-) 21:10:39 (after all there are minors in here) 21:10:53 poor innocent minors 21:11:10 http://pastie.org/913294.txt?key=mef5jrherk5iytbbn98kyg 21:11:11 (yes I saw that about moral police, I saw the irony in that before I did the topic change) 21:11:20 whoops 21:11:27 oerjan, yes, like ehird. Very innocent. 21:11:36 oerjan, what was that? 21:11:45 accidental right click 21:11:50 it looks more like ehird's coding style to me 21:11:58 oerjan, *right* click? Not middle click? 21:12:11 it's what putty uses 21:12:23 oerjan, you can change that in the putty settings 21:12:28 to be the usual middle for paste 21:12:50 See, but it's my fault because I put "(pics or it didn't happen)" there :P 21:12:59 oerjan: wait what did you change? 21:13:00 oh 21:13:07 oerjan, I always found anything else confusing back when I used putty 21:13:10 AnMaster: how does it look like my coding style? 21:13:14 it's how you're meant to write prolog 21:13:16 i don't have a middle button. in fact i don't even have a mouse here 21:13:33 oerjan, what then do you have without three buttons? 21:13:48 can't be a laptop, they have three buttons too nowdays don't they? 21:13:49 a trackpad 21:14:24 oerjan, hm, my thinkpad has three mouse buttons. Wait actually it has three buttons on the upper set (meant for use with the trackpoint) but two for the lower set (meant for use with the touchpad) 21:14:33 never noticed that before 21:14:34 -!- augur has quit (Ping timeout: 264 seconds). 21:14:36 middle /mouse/ button 21:14:49 I guess it is because I hardly ever use the touchpoint 21:14:49 AnMaster: so how is it my coding style :)) 21:14:52 err 21:14:56 touchpad 21:15:03 that was an interesting mix up of the words 21:16:25 -!- Alex3012 has quit (Ping timeout: 265 seconds). 21:16:29 I don't think I'm going to unignore alise after yesterday. For a long time. This way the channel is a lot nicer. 21:16:39 oh i remember 21:16:52 because of all those... "personal attacks" 21:16:56 Plus he doesn't seem to speak so much nowdays, so I don't seem to be getting the "missing half convo" bit 21:16:58 :) 21:17:09 doesn't speak so much? Because I'm fucking imprisoned monday-to-friday? 21:17:15 You complete and utter asshole. 21:17:30 And the obligatory condescending smiley face... 21:17:39 what a fucktard. 21:17:55 Deewiant, btw, it looks like nothing hit the memory limit. Is that correct? 21:17:59 alise: You've only been ignored since yesterday, so it seems he's talking about today. 21:18:14 AnMaster: IIRC yes 21:18:40 Deewiant: "He doesn't seem to speak so much nowadays" -- that seems more like a general statement to me. 21:18:51 Deewiant, I wonder if with longer timeout, ccbi1 might have hit it. 21:19:04 alise: Maybe, but the half convo thing could only happen today. 21:19:07 Not that I am particularly interested in discussing the broken reasoning of an idiotic asshole. 21:19:15 Deewiant: Well, you only get half-convo things if I'm actually there to talk. 21:19:16 AnMaster: Of course with longer timeout a lot of things could've hit it :-P 21:19:18 Less me, less half-convos. 21:19:21 Less issue with ignoring me. 21:19:24 That is how I parsed it. 21:19:34 Deewiant, well, only those who ended due to timeout obviously 21:19:52 did a lot of things do that? The graph on the main page shows them as non-completed doesn't it? 21:20:28 Yes. 21:21:02 hm 21:21:29 Deewiant, was cfunge and ccbi2 the only ones to not time out on any tests? It looks from the graph like stinkhorn timed out on a few 21:21:42 but not from the table below where it says it ran 74 21:22:07 There's a "maximum time" column, you know 21:22:09 Deewiant, which one is wrong, or alternatively: why are they different? 21:22:18 And "ran" is described immediately above the table 21:22:21 Deewiant, what is time ratio btw? 21:22:39 Ratio to minimum; I was hoping that was obvious 21:22:44 Deewiant, and why are there multiple time ratio columns? 21:22:55 I was hoping that was obvious too; one for total, one for max 21:23:02 Deewiant, well it wasn't 21:23:11 perhaps wider lines between to group them+ 21:23:14 s/+/?/ 21:24:02 Deewiant, shouldn't total time say timeout as well? 21:24:18 No, it just adds the timeout value 21:24:27 So that they can still be compared 21:24:35 hm okay 21:25:18 from mycology results page: 21:25:25 "In Mycology terms, both 1.27 and 2.02.00 are unfortunately limited by their mistreatment of form feeds: as far as I can tell, they are considered to terminate the file in Befunge mode, when they should be ignored. (Perhaps they increment the z-coordinate even in Befunge?)" <-- iirc yes that was what happened 21:25:29 when I checked it 21:25:36 don't remember for sure 21:26:07 Deewiant, does mycology check that the trefunge instructions reflect in befunge btw? 21:26:38 Hmm, I don't think it does 21:27:01 Deewiant, maybe it should. It could lead to some amusing results with some interpreters I bet 21:27:20 of course, rcfunge just *might* do the right thing there. 21:27:36 I doubt it would, with the current limited set 21:27:45 Deewiant, hm? 21:27:46 Rc/Funge-98 would die due to the form feed first anyway 21:27:55 And I'm pretty sure the others all handle it correctly 21:28:18 Deewiant, well you could test it before the form feed. Didn't you say you were using { and } to make the fingerprint tests position independent? 21:28:34 Yes, the fingerprint tests, but not everything 21:28:39 hm okay 21:28:54 And yes, I could, but why bother? :-P 21:28:59 true 21:29:08 Deewiant, what other interpreters do trefunge as well? 21:29:30 Of decent ones or of all? :-P 21:29:41 Deewiant, of ones currently listed on mycology page 21:29:51 CCBI and Rc/Funge-98 21:30:09 Deewiant, I kind of miss the old wider-than-browser-even-when-maximised table 21:30:20 It's still there in the old results :-P 21:30:34 * AnMaster goes there for nostalgia 21:30:46 rc 1 or 2? 21:30:49 Both 21:30:55 both what? 21:30:55 it seems mkry still has handed over the project. 21:31:01 maybe he is dead after all :/ 21:31:05 oh to alise? 21:31:10 AnMaster: Whoops, there goes a half conversation! 21:31:12 Tricky things those. 21:32:32 Deewiant, anyway, when will you update the fungicide results for cfunge wrt. the fork test 21:32:52 When you'll make a release, mayhap 21:33:02 Deewiant, "mayhap"? I need more definite than that 21:33:12 THIS IS IMPORTANT TO MY BUSINESS 21:33:21 Toss me a few euros and I'll do it tomorrow morning 21:33:26 Deewiant, har 21:33:33 ...but my business has no money 21:33:59 Deewiant, I might make a release tomorrow if I have some time left over then 21:34:19 I presume you will do it then at least during the next weekend 21:35:14 but it shouldn't take long now. Some tests indicate it is slightly slower than stinkhorn at fork now. And yes a new funge space is the next major thing I will do. No idea when 21:35:27 Deewiant, oh and I bet efunge would get timeout from it. So pointless to test that even 21:44:42 -!- kar8nga has quit (Read error: Connection reset by peer). 21:48:09 -!- oerjan has quit (Quit: Good night). 21:59:02 -!- Oranjer has joined. 22:02:46 -!- Oranjer has left (?). 22:23:34 -!- Oranjer has joined. 22:25:20 Ugh. And now I would need sound over network... :-/ 22:26:07 I don't have available speakers and volume is not enough for wireless headphones... :-/ 22:31:57 Ilari, eh? 22:32:05 "and volume is not enough for wireless headphones"? 22:32:23 Ilari, as in, the music is so faint it can't be heard over bluetooth or what? ;P 22:33:00 Ilari, however, both pulseaudio and jack have network parts 22:33:05 also plain alsa 22:33:21 The volume is so low (and mixer master / mixer PCM is at max) that playback isn't stable. 22:33:24 I never tried that though, was going to use jack but never had time for it 22:33:33 Ilari, that sounds weird 22:33:42 Ilari, why would it not be stable over bluetooth 22:33:59 does it shut down when there is no music or something? 22:34:13 and then have a significant start up time? 22:34:15 These headphones need certain minimum volume for stable playback. Yes, it shuts down otherwise. 22:34:29 Ilari, don't you have any wired headphones? 22:34:46 I guess all wired headphones are broken... 22:35:14 It starts up again very fast. What is nastier is that if it shuts down on weak signal, headphones will blast static at high volume. 22:35:15 http://alsa.opensrc.org/index.php/Network http://wiki.audacityteam.org/wiki/Recording_audio_playing_on_the_computer#Using_the_ALSA_PCM_file http://www.alsa-project.org/main/index.php/Matrix:Module-aloop 22:35:18 those links may help 22:35:38 the last one is only needed for some hardware 22:35:48 basically those without a mixer capture option 22:35:52 Of course, if signal is too weak, it won't start up again. 22:36:12 Ilari, stupid that it blasts static like that 22:36:16 I wouldn't use them at al.l 22:36:19 at all* 22:36:23 sounds dangerous 22:36:39 It starts up again very fast. What is nastier is that if it shuts down on weak signal, headphones will blast static at high volume. 22:36:41 yeah that happened to me 22:36:46 then i realised that they just sound like fuzz anyway 22:36:47 Ilari, you could also increase the sound volume of course that you transmit with. What produces the sound? 22:36:48 and stopped using them 22:37:57 -!- impomatic has joined. 22:40:04 Boxx looks interesting http://web.archive.org/web/20080319024539/boxx.origincode.com/docs.php 22:42:22 impomatic, yay, light gray on white bg 22:42:25 :/ 22:42:36 oh wait, it is light gray on *lighter* gray 22:42:38 even worse 22:42:46 basically unreadable page 22:43:21 Haven't you got a bookmarket to fix readability? 22:44:40 impomatic, no? I use firebug in those cases 22:44:47 but I'm not interested enough 22:44:52 :-) 22:51:29 Hmm... Got somewhat stronger signal. Don't know if it is powerful enough. :-/ 22:51:48 -!- MizardX has quit (Ping timeout: 276 seconds). 22:55:17 Ilari, stronger signal? 22:55:25 as in kill -SIGUSR1? 22:55:40 oh wait 22:55:43 that was music 22:55:50 * AnMaster confused Ilari with impomatic 23:06:02 -!- MigoMipo has quit (Remote host closed the connection). 23:10:55 -!- jix has quit (Ping timeout: 245 seconds). 23:17:33 -!- jcp has joined. 23:19:19 -!- FireFly has quit (Quit: Leaving). 23:21:00 -!- jix has joined. 23:39:13 -!- tombom_ has quit (Quit: Leaving). 23:41:04 -!- Tritonio_GR1 has joined. 23:43:40 -!- Tritonio_GR has quit (Ping timeout: 258 seconds).