00:00:09 <cpressey> My binding is bound to a binding.
00:02:48 <cpressey> I just tried a language construct that creates a module from all the bindings currently in scope. I wasn't really expecting it to include all the bindings from all the imported modules. And all builtins. But it does. I maybe need to rethink how to define modules.
00:13:16 -!- augur has quit (Ping timeout: 260 seconds).
00:18:28 <cpressey> Yay, set difference to the rescue.
00:20:15 -!- Sgeo has joined.
00:25:18 -!- Azstal has joined.
00:25:56 -!- Asztal has quit (Ping timeout: 252 seconds).
00:28:04 -!- cpressey has left (?).
00:28:11 -!- Azstal has quit (Client Quit).
00:42:11 -!- Pthing has joined.
00:43:39 <AnMaster> I have recently been hit with what seems to be synchronicity with regards to thinkpad 701C. The last few days it has popped up in 4 different unrelated contexts...
00:59:52 -!- MissPiggy has quit (Quit: Lost terminal).
01:03:22 -!- lament has quit (Ping timeout: 268 seconds).
01:08:43 -!- lament has joined.
01:11:31 -!- augur has joined.
01:13:03 -!- uorygl has quit (Quit: leaving).
02:39:38 -!- augur has quit (Ping timeout: 256 seconds).
02:46:56 -!- augur has joined.
02:50:33 -!- MizardX has quit (Ping timeout: 260 seconds).
03:31:46 -!- augur has quit (Ping timeout: 256 seconds).
03:57:46 -!- augur has joined.
04:01:53 -!- Gracenotes has joined.
04:17:40 -!- augur has quit (Ping timeout: 256 seconds).
05:12:31 -!- augur has joined.
05:17:34 -!- oerjan has joined.
05:19:17 <oerjan> <AnMaster> oklopol, oerjan wasn't connected when you said that
05:19:27 <oerjan> however, i have esoteric log powers
05:20:22 <oerjan> <AnMaster> <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. <-- possibly discworld related?
05:20:30 <oerjan> well _i_ was thinking lovecraft
05:24:32 -!- augur has quit (Ping timeout: 256 seconds).
05:27:34 <oerjan> <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- I first thought "what are you messing around with by doing induction over an uncountable set"
05:27:48 <oerjan> as mentioned, perfectly possible in theory.
05:29:31 <oerjan> however, you need to well-order the set first, and for most frequently used uncountable sets (reals, complexes) that requires using the axiom of choice. so you don't get any concrete sense of what the order is.
06:03:31 -!- lament has quit (Ping timeout: 246 seconds).
06:06:00 -!- augur has joined.
06:06:53 -!- lament has joined.
06:16:41 <oklopol> "AnMaster: oklopol, oerjan wasn't connected when you said that" <<< that's why i said it on-chan, not in pm
06:18:48 <oklopol> hey, how did you know i just came here
06:28:59 <augur> hows it goin oklopol
06:33:04 -!- oklopol has quit (Ping timeout: 245 seconds).
06:38:21 -!- coppro has joined.
06:43:44 -!- oerjan has quit (Quit: leaving).
06:49:24 -!- oklopol has joined.
07:08:08 -!- oklopol has quit (Ping timeout: 260 seconds).
07:18:47 -!- MigoMipo has joined.
07:20:02 -!- oklopol has joined.
07:32:28 -!- tombom has joined.
07:47:59 -!- MigoMipo has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
08:05:08 -!- kar8nga has joined.
08:26:39 <augur> a parasitic gap which has the reverse direction: Which candidate do even supporters of __ tend to dislike __?
08:27:07 <augur> where the parasitic gap is _inside the subject_
08:28:19 <olsner> nice topic btw, it's always up-to-date when you look at it
08:28:47 <augur> olsner: which what
08:29:44 <augur> http://en.wikipedia.org/wiki/Indexed_grammar
08:29:49 * olsner doesn't know what a parasitic gap is
08:29:52 <augur> http://en.wikipedia.org/wiki/Head_grammar
08:29:57 <augur> http://en.wikipedia.org/wiki/Global_index_grammar
08:30:13 <augur> http://en.wikipedia.org/wiki/Literal_movement_grammar
08:30:18 <augur> http://en.wikipedia.org/wiki/Range_concatenation_grammars
08:30:20 <AnMaster> http://example.org/I_can_also_spam_with_links
08:30:48 <augur> olsner: http://en.wikipedia.org/wiki/Parasitic_gap
08:31:06 <AnMaster> augur, is this programming or linguistics
08:31:31 <AnMaster> all all those links you pasted
08:31:42 <augur> PGs are strictly linguistic phenomena (unless someone invents a PL with them!)
08:31:54 <AnMaster> then I won't even bother looking
08:32:27 <augur> the *_grammar links are just pages for grammar formalisms that lie roughly in the range of the mildly context-sensitive grammars
08:39:22 <olsner> "Which candidate do even supporters of __ tend to dislike __?" what's supposed to be able to go after 'dislike' here?
08:39:47 <augur> nothing. the __'s just denote the positions in which "the candidate" is understood.
08:39:57 <augur> e.g. "even supports of Bob Dole tend to dislike Bob Dole"
08:41:26 <olsner> oh, I thought it was all about how you could plug in objects there that are *not* bound by the 'wh'
08:42:33 <augur> its all about the dependencies
08:42:47 <augur> the __'s denote the dependencies associated with the WH phrase
08:43:42 <olsner> hmm, what depends on what though? aren't all just gaps bound by 'wh'?
08:45:43 <augur> no, not necessarily
08:46:23 <augur> consider the topicalized "MARY I like ___, but John I hate ___"
08:49:47 <cheater2> so if you fill in the gaps in your question you get: Which candidate do even supporters of Bob Dole tend to dislike Bob Dole?
08:50:00 <cheater2> i think it's worthwhile to learn english grammar before you go after other grammars
08:50:27 <augur> cheater2: no, you dont fill in the gaps
08:50:28 <olsner> I guess that's the same thing as wh-fronting, yes... but there's only a single gap for each fronting, just that there are two phrases with independent bindings?
08:50:34 <augur> the gaps are just there to denote the dependencies
08:50:40 <augur> theyre not things that you fill in
08:50:40 <cheater2> and your sentence sucked balls
08:51:02 <cheater2> you gave us an example yourself: you put bob dole in both places
08:51:20 <augur> no, i gave you a different sentence without gaps and without the WH element
08:52:10 <augur> olsner: true, in the topicalized sentence i gave theres only a single gap for each element, but you can get parasitic gaps with topicalization as well
08:52:35 <augur> e.g. "THIS book Mary read ___ before shelving ___, not that one"
08:53:28 <olsner> so what makes either gap parasitic?
08:53:28 <AnMaster> <cheater2> i think it's worthwhile to learn english grammar before you go after other grammars <-- my reaction too
08:53:44 <augur> cheater2: the ___'s are the conventional notation for gaps, which is the conventional way of talking about long-distance dependencies of this sort. the idiom is basically a comparison with the non-gapped sentence.
08:53:44 <AnMaster> augur, it looks like "fill in word(s) here"
08:54:01 <augur> olsner: the second gap is parasitic because without the first gap, the sentence is bad
08:54:09 <AnMaster> to anyone that isn't a linguist
08:54:26 <augur> AnMaster: in many ways it IS, but not in the naive sense
08:54:30 <cheater2> augur: you are using circular definitions
08:54:58 <augur> it stems from the history of how this sort of phenomenon was treated in chomsky's early work
08:54:58 <AnMaster> augur, "naive" is wrong word here I think. Replace it with "normal" or "everyday"
08:55:31 <augur> whereby a sentence like "John saw Mary" is transformed by a rewrite operation into "who did John see"
08:55:51 <cheater2> ok so in fact __'s are parentheses
08:55:52 <AnMaster> augur, you lost information in that transformation
08:56:12 <AnMaster> cheater2, ah right if you see it that way it makes sense
08:56:17 <augur> AnMaster: true. in reality it was "John saw someone" underlyingly
08:56:25 <augur> i shouldve said that instead.
08:56:36 <augur> "John saw someone" -> "Who did John see"
08:56:36 <AnMaster> augur, you should have said *who* as well
08:56:44 <augur> that was the actual transformation
08:57:02 <augur> taking a declarative with an indefinite "someone", and turning it into the corresponding interrogative with "who"
08:57:34 <augur> infact, early theory I think considered "who" to be derived from rewriting the string "WH someone"
08:58:07 <olsner> hmm, right, "this book mary read War and Peace before shelving ___" is weird
08:59:29 <olsner> but if you make it "this book mary shelved ___ after reading ___" I think either gap can be replaced
08:59:58 <augur> well, the first cant be "filled"
09:00:03 <augur> its essentially what you just said was weird
09:00:15 <augur> "this book mary shelved War and Peace after reading ___" is horrible
09:00:30 <augur> but yes, the second gap can be filled with something else and its fine
09:05:31 -!- tombom has quit (Quit: Leaving).
09:16:37 -!- Pthing has quit (Remote host closed the connection).
09:59:47 -!- Pthing has joined.
10:05:36 -!- lament has quit (Ping timeout: 264 seconds).
10:07:59 -!- lament has joined.
11:28:03 -!- kar8nga has quit (Remote host closed the connection).
11:40:54 -!- augur has quit (Read error: Connection reset by peer).
11:41:05 -!- augur has joined.
11:50:58 <oklopol> augur: no straight man or gay top can understand the concept of not filling a gap with something.
11:51:15 <oklopol> that's why you have such a hard time getting the thing through
11:52:21 -!- BeholdMyGlory has joined.
12:01:09 -!- yiyus has left (?).
12:42:55 -!- Asztal has joined.
12:47:38 <fizzie> In many places, I presume; but it's what London's subway announcement speakers repeat while stopping at a station, IIRC. And it's been the title of at least one magazine article I've seen.
12:48:24 <fizzie> Based on where http://en.wikipedia.org/wiki/Mind_the_gap leads by default, the Underground connection is the "official" one.
12:53:51 <oklopol> well sure but wasn't it the name of a level in some flash game
12:55:56 <fizzie> Yes, that sounds also likely.
12:59:47 <fizzie> Wikipedia says it's "used" in the Flash-built game "VVVVVV".
13:02:13 -!- MissPiggy has joined.
13:06:21 -!- KingOfKarlsruhe has joined.
13:07:46 <oklopol> i'm fairly sure it's a game we've both played, #eso inducedly.
13:10:26 <fizzie> In this case I would have guessed that silly dot-action one, but grepping my logs didn't say anything about a mind-gappy level.
13:12:29 <Deewiant> Mind the gap was a level in that star-fetching programmy game
13:12:59 <fizzie> Maybe the level name wasn't just mentioned here.
13:18:24 -!- kar8nga has joined.
13:18:38 <oklopol> i was pretty sure it was robozzle
13:32:47 <Wareya> 07:59 < fizzie> Wikipedia says it's "used" in the Flash-built game "VVVVVV".
13:32:57 <Wareya> The last time I checked it wasn't built in flash
13:33:14 <fizzie> That was also from Wikipedia.
13:41:55 <Wareya> I'm pretty sure it was straight as3 with something like flex
13:51:33 <fizzie> "I use Flex with FlashDevelop on windows" -- I guess so; Flash-based in the runtime sense, anyway.
13:51:48 -!- FireyFly has joined.
13:56:42 -!- alise has joined.
13:57:27 <alise> This is Dispatch 3.
13:58:46 <alise> And I'd type but the keys are sticky; best fix that first.
13:59:22 -!- kar8nga has quit (Remote host closed the connection).
14:01:46 -!- FireyFly has changed nick to FireFly.
14:09:58 <alise> A little hard-handedness, it seems, goes a way; I wouldn't say a "long way" as my troubles are still numerous, but that is the idiom. I am no longer drinking that malnutrition-treatment. It came to a head a few days ago; after having a substantial lunch, I was still forced to drink it all, despite clear, immediate, recent-in-time evidence I was not malnourished whatsoever, and continued explanation that I was completely full and couldn't drink it. Eventuall
14:09:58 <alise> y, I settled for "I'll finish it later"; my parental overlords came, "for a visit", and brought me home for the night. The next day, we requested to meet with the head honcho there, and were told he was free; he was not, and we had to say the same things to a patronising-as-fuck nurse. Later that day we got our meeting and it was resolved; they had talked to their bullshitician^Wdietician and the drinks were gone; I just had to eat something else at the tim
14:09:59 <alise> e I normally would, and have a bigger lunch every day. Big deal, I ate that much before I went there anyway.
14:10:10 <alise> And I do wish that XChat was better at wrapping lines.
14:11:03 <alise> Other than that, no change; business continues as usual, except it was even more pointless as it's half-term, so no lessons, just sitting around on one games console or another all day. That's therapy, that.
14:12:58 <alise> I'd rather endure longer than I would have to with an alternative escape plan if it reduces risk, however.
14:13:53 -!- augur has quit (Ping timeout: 265 seconds).
14:14:27 -!- augur has joined.
14:18:03 <alise> But unless anyone has anything specific to ask or whatever, on to happier things. :)
14:18:28 <MissPiggy> alise this is so awful I hate this
14:18:29 <alise> cpressey's ring language sounds awesome! (Logreading while mother visits by using Opera Mini on her cheap-ass phone? Why ever not.)
14:18:40 <alise> MissPiggy: yeah but it's worse if you think about it :P
14:23:54 -!- Speedy2 has joined.
14:24:39 <Ilari> alise: Yeah, there are very few dieticans that have any clue about how stuff works in real world. But their speciality is directing people about what to eat and thus ethical responsibility would be to actually know something about nutrion and not just brain-dead-repeat "truth" taught by big pharma courses.
14:25:39 -!- Speedy2 has quit (Client Quit).
14:26:19 <alise> yeah - but at least the advice has improved from "DRIIIINK THIIIIS" to "eat a bigger lunch, and have some milk and biscuits at break time instead of the drinks" - to understand this, one must first understand that they appear to have this bizarre notion that, as a rule, I don't eat: I'm often praised after eating something merely because it was eating. I'm utterly baffled by this and think I know who to blame for it, but I won't say anything because it won'
14:26:19 <alise> t achieve a thing.
14:26:26 -!- scarf has joined.
14:26:34 <alise> You'll cheer me up.
14:26:39 <Ilari> I have heard likes of this: The patient might be deficient in nutrient A. Dietican advises to eat food B. Except that food B _interferes_ with absorption of nutrient A.
14:26:52 <scarf> I have to leave to teach Java in about half an hour, but I'll be back an hour after that
14:27:35 <scarf> hmm, my email server has taken to marking many legitimate messages with "SPAM:" or "?spam?" in the subject line
14:27:51 <scarf> whereas actual spam is generally marked "[SPAM?] ?spam?"
14:28:02 <alise> Spam, spam, spam, spam!
14:28:15 <Ilari> And also: The patient might be deficient in nutrient C. Dietican advises to eat food B. Except that food B does not contain nutrient C.
14:29:59 <AnMaster> <alise> cpressey's ring language sounds awesome! (Logreading while mother visits by using Opera Mini on her cheap-ass phone? Why ever not.) <-- since my phone has opera mini... wouldn't it be truly horrible for that purpose?
14:30:29 <alise> I dunno, the logs are just text. It folds all the lines into one, but apart from that...
14:30:57 <AnMaster> alise, folding the lines sounds horrible to begin with.
14:31:08 <alise> If it's a time and a <, it's a new line.
14:31:10 <alise> Anyway, it beats nothing.
14:32:08 <AnMaster> alise, well it does, it beats the built in web browser (opera mini is a java application) by far
14:32:18 <AnMaster> the built in one is much much worse
14:32:33 <alise> It's Opera Mini, ENHANCED BY VODAFONE!
14:32:35 <AnMaster> not sure how it is for pure text, it would probably just download it
14:32:43 <alise> It says on the logo screen.
14:32:51 <alise> I haven't seen any of this "enhancement" yet, mind.
14:32:59 <alise> Also, I tried downloading a java IRC client but it just saved it as a file and won't open.
14:33:03 <alise> AnMaster: Don't know.
14:33:15 <alise> Stable release 4.2.14912 (August 3, 2009; 6 month(s) ago (2009-08-03)) [+/−]
14:33:15 <alise> Preview release 5.0.17443 (December 23, 2009; 54 day(s) ago (2009-12-23)) [+/−]
14:33:23 <scarf> the enhancement was clearly just branding
14:34:01 <AnMaster> 5 is somewhat better than 4 I have to day
14:34:32 <AnMaster> for example, in 5 you can have multiple tabs
14:34:56 <AnMaster> and the user interface is easier to navigate
14:38:56 -!- kar8nga has joined.
14:41:04 <alise> MobileSafari ftw. :P
14:41:13 <alise> Or even what the fancy Nokia phones have; that's basically the same.
14:41:20 <alise> Or even Android's.
14:41:54 <AnMaster> alise, simple nokia phones has that horrible built in thing + opera mini
14:42:10 <AnMaster> btw it is snowing heavily here
14:42:33 <AnMaster> alise, I have no idea what mine has (Nokia 3120 classic)
14:43:59 <scarf> AnMaster: it was snowing here yesterday
14:44:12 <AnMaster> hm checking in the settings the version info thingy: "V 07.16\n27-05-08\nRM-354\n(c) Nokia"
14:44:28 <AnMaster> and yes that actually says "(c)" not "©"
14:45:13 <scarf> AnMaster: probably for encoding reasons
14:45:44 <Deewiant> AnMaster: Where'd you come up with "the version info thingy"?
14:45:48 <AnMaster> scarf, it does have unicode in sms and such
14:46:03 <scarf> SMS tends to use 8-bit encodings, rather than Unicode
14:46:17 <scarf> unless that's changed from 5 years ago or so when I last looked at it
14:46:51 <AnMaster> Deewiant, Meny → Inställningar → Telefon → Tel.uppdateringar → Aktuell programinfo.
14:47:41 <AnMaster> no clue what it would be on a non-Swedish phone (could guess for an UK phone)
14:47:56 <AnMaster> Deewiant, it is under the telephony update thingy basically
14:48:24 <Deewiant> Yes, I don't have an update thingy like that.
14:48:45 <AnMaster> there has never been any updates when I checked
14:48:46 <Deewiant> There's the "App. manager" but it doesn't include builtin software.
14:48:57 <AnMaster> Deewiant, I have no such thing as an app manager
14:49:15 <AnMaster> Deewiant, there are java apps in a folder
14:49:38 <AnMaster> hm I think nokia included some app to download/buy new apps from them/third parties
14:50:01 <AnMaster> when I looked it basically said for almost all "not compatible with this phone"
14:50:11 <AnMaster> wonder why they were listed at all
14:50:24 <AnMaster> they could try to only show relevant ones
14:51:06 <alise> "buy a new phone get this app"
14:51:45 <AnMaster> alise, it didn't even say that
14:52:08 <scarf> alise: the advertising in PC World around the release of Windows 7 was even more hilarious
14:52:14 <alise> AnMaster: something expensive
14:52:15 <scarf> it was along the lines of "Windows 7 is out, time for a new PC"
14:52:41 <scarf> AnMaster: it seemed to be working, at least
14:52:54 <scarf> so many people think that a computer is inherently tied to the OS version it comes with
14:53:06 <scarf> and it's those that they were targeting
14:53:11 <AnMaster> scarf, people who reads computer magazines?
14:53:23 <scarf> people who have seen adverts talking about how great windows 7 is
14:53:35 <AnMaster> scarf, "PC World" isn't a computer magzine over ther?
14:53:52 <scarf> AnMaster: it is, but it's mostly a chain of computer retail stores
14:54:07 <AnMaster> scarf, aha, that explains it somewhat
14:54:41 <AnMaster> scarf, who owns the trademark then, the chain or the magazine? Or are they related?
14:55:00 <scarf> in fact, I've been wondering that myself
14:55:37 <AnMaster> scarf, I estimate an average snow depth of 30 cm in the area I cleared this morning btw. And it was about 20 cm then.
14:55:51 <scarf> time to go teach Java, anyway
14:55:53 <AnMaster> probably will go out and clear away somewhat before it becomes too heavy
14:56:04 <Deewiant> The forecast here is 50 cm over the weekend
14:56:08 -!- oerjan has joined.
14:56:14 <AnMaster> Deewiant, something similar here iirc
14:56:36 <AnMaster> and I need to go to another city tomorrow. Not possible to cancel due to weather
14:57:55 <AnMaster> Deewiant, well, test at university (yes, during the weekend, it sucks, but apparently they are short of rooms during the single week when basically every student at the university has a test)
14:58:00 <AnMaster> would be better if they spread them out
14:58:12 -!- alise_ has joined.
14:58:24 -!- yiyus has joined.
14:58:28 <Deewiant> Yes, we have occasional exams on saturdays as well
14:58:39 <AnMaster> Deewiant, saturday *afternoon* even
14:59:52 <AnMaster> either someone hates me or I have really bad luck. Because for every course group (two at the same time) there has been one test on a Saturday for me
14:59:54 <oerjan> AnMaster: i made some comments to you earlier
15:00:06 <AnMaster> oerjan, where/when? and what were those comments?
15:00:34 -!- alise has quit (Ping timeout: 245 seconds).
15:00:36 <Deewiant> Seems to like you should say "or", not "and"
15:00:46 <AnMaster> oerjan, I do read scrollback, and since I saw my last line in there I suppose it must not be in logs either
15:00:59 <Deewiant> Either you can find out how to get to the comments or you can be given them directly, no point in both
15:01:10 <AnMaster> oerjan, but no I don't read logs unless someone highlighted my nick
15:01:24 <oerjan> AnMaster: your nick was present when i comented
15:01:43 <AnMaster> <Deewiant> Seems to like you should say "or", not "and" <---
15:01:55 <oerjan> however, maybe you don't get pinged on <AnMaster> quoting...
15:02:07 <AnMaster> oerjan, well I do get pinged by that
15:02:17 <AnMaster> but, maybe you had timed out and not noticed it?
15:02:20 <alise_> also re ring programming, cool cool
15:02:29 <Deewiant> AnMaster: Read the follow-up as well...
15:02:31 <oerjan> AnMaster: um i see it perfectly well in the logs
15:02:32 <AnMaster> oerjan, anyway I'm going outside to clear away some snow in exactly 1 minute
15:02:33 <alise_> needs to be a monoid too
15:02:44 <alise_> imo a ring computer is obviously parallel
15:02:51 <AnMaster> oerjan, thus, say what you wanted now
15:02:53 <oerjan> 21:19:17 <oerjan> <AnMaster> oklopol, oerjan wasn't connected when you said that
15:02:57 <oerjan> 21:19:27 <oerjan> however, i have esoteric log powers
15:02:59 <oerjan> 21:20:22 <oerjan> <AnMaster> <fizzie> "oklogon" must be some sort of an irr{egular,esponsive,ational,everent} shape, by way of analogy from polygon. <-- possibly discworld related?
15:03:04 <oerjan> 21:20:30 <oerjan> well _i_ was thinking lovecraft
15:03:06 <oerjan> 21:20:44 <oerjan> (with my version)
15:03:09 <oerjan> 21:24:32 --- quit: augur (Ping timeout: 256 seconds)
15:03:11 <oerjan> 21:27:34 <oerjan> <AnMaster> <cpressey> "Execution of instructions in one program induces execution of instructions in another, nearby program." Yes. <-- I first thought "what are you messing around with by doing induction over an uncountable set"
15:03:16 <oerjan> 21:27:48 <oerjan> as mentioned, perfectly possible in theory.
15:03:18 <oerjan> 21:29:31 <oerjan> however, you need to well-order the set first, and for most frequently used uncountable sets (reals, complexes) that requires using the axiom of choice. so you don't get any concrete sense of what the order is.
15:03:18 <alise_> a + b = compute a and b in parallel, obviously
15:03:20 <AnMaster> didn't see any reason to comment
15:04:33 <alise_> a `seq` (b `par` c) = (a `seq` b) `par` (a `seq` c)
15:04:58 <alise_> (a `par` b) `seq` c = (a `seq` c) `par` (b `seq` c)
15:05:28 <Deewiant> Of course, since all are just c ;-P
15:07:21 <oerjan> alise_: my hunch now is that this ring programming is just the endomorphism ring generated by extending computations to apply to the free abelian group over possible input
15:08:00 <alise_> my n and l keys aren't pressing nicely :(
15:08:04 -!- augur has quit (Ping timeout: 245 seconds).
15:08:08 <oerjan> with the provision that non-halting computations become -> 0
15:08:19 <alise_> not mzero, mempty, ofc
15:08:21 <oerjan> Deewiant: it's a simple algebraic construction, really
15:08:53 <alise_> data Cr = Bot | Cr :+ Cr | Cr :* Cr
15:08:58 <alise_> Methinks I need more than just that
15:09:00 <oerjan> my point is that i'm not sure you can get something more useful than chaining all inputs in parallel
15:09:03 <alise_> what's nop, then, if bot is 0?
15:09:06 <alise_> maybe nop = 0, bot = inf
15:09:16 -!- augur has joined.
15:09:54 <alise_> Deewiant: otoh a `par` b = b even if a = _|_
15:10:06 <alise_> so, of course, you need the resulting computation to have some sort of _result_
15:10:15 <alise_> so we need a new Cr, i.e. Id foo
15:10:40 <alise_> a :+ b -> Id (a' :+ b'), maybe (where ' denotes evaluation)
15:10:45 <Deewiant> Gotta love two-letter identifiers
15:11:25 <alise_> hmm, I don't think I can use par
15:11:30 <alise_> I need *deterministic* parallelism XD
15:11:50 <oerjan> alise_: my idea is that the result of a sum is just the sum of the results.
15:11:51 <Deewiant> Cr Id :+ :* <-- the embedded meaning, it is blinding
15:12:07 <alise_> This /is/ mathematics.
15:12:11 <alise_> oerjan: see, that's what I said!
15:12:26 <Deewiant> So you have an excuse to be obtuse? ;-P
15:12:40 <alise_> Deewiant: Well, I also need shorthand for my convenience, since I'll be using the names a lot.
15:12:45 <alise_> :+ and :* have embedded meaning, from rings.
15:12:51 <alise_> Id is identity, just like id.
15:12:57 <alise_> Cr is Computation Ring; it's arbitrary.
15:13:17 <oerjan> alise_: also this would work nicely with free vector spaces too, then you can multiply your computation with reals/complexes
15:13:51 <alise_> data ComputationRing = Bottom | ComputationRing :+ ComputationRing | ComputationRing :* ComputationRing
15:13:51 <oerjan> and get an algebra over a field (or another ring, if you want)
15:14:05 <Deewiant> You only need to type it once.
15:14:39 <alise_> oerjan: so a*b -> a'*b'?
15:15:20 <alise_> 1*x = x implies nop, but 1+x should be > x
15:15:52 <Deewiant> alise_: What does > mean here?
15:16:01 <alise_> Deewiant: Well, okay: !=.
15:16:07 <oerjan> this is the obvious way to get a ring unit in an endomorphism ring...
15:16:20 <alise_> So what is 1+x with respect to x?
15:16:32 <oerjan> um is x a computation then?
15:16:34 <Deewiant> And what does = mean here? Computation has same result?
15:16:38 <alise_> 1' = 1, so it's (1+x')
15:16:44 <alise_> which I guess is not x :P
15:16:54 <oerjan> then 1+x is a parallel computation that returns both input and x(input)
15:17:09 <alise_> oerjan: oh i see, it's basically currying
15:17:37 <alise_> psychoanalysis = fix id
15:18:03 <alise_> oerjan: so x*y = x' + y' or x' * y'?
15:18:37 <alise_> so really, eval :: Cr -> Cr -> Cr
15:18:41 <oerjan> um i don't understand your notation
15:18:55 <alise_> x' is the result of computing x
15:19:09 <alise_> a * b -> a' * b' or a' + b'?
15:19:13 <oerjan> um you also need to specify input
15:19:22 <alise_> well, it's the same for both
15:19:25 <alise_> so it can be left implicit, no?
15:19:26 <oerjan> (x*y)(inp) = y(x(inp))
15:19:41 <oerjan> if x and y are deterministic computations
15:19:48 <oerjan> otherwise, sum all branches
15:19:48 <alise_> so... you don't actually need parallelism at all :)
15:20:12 <oerjan> oh and bottom = 0 as input/output
15:20:27 <alise_> well, you'll never be able to inspect the output...
15:20:46 <oerjan> yeah i don't think this is _computable_
15:20:58 <alise_> I'm computing it simply by leaving 0 resulting in _|_
15:21:02 <alise_> which doesn't seem unreasonable to me...
15:21:19 <oerjan> but to have a ring you need 0 + x = x
15:22:31 <alise_> Well, can you even write a non-terminating program without 0?
15:22:36 <alise_> Not without an infinite program.
15:22:47 <alise_> 0 is really just \_ -> 0
15:23:39 <alise_> So I think this language is computable, and sub-TC.
15:24:04 <oerjan> well if you only use terminating programs as base
15:24:13 <alise_> Oh, I have only Bot and Id as base programs. :)
15:24:18 <alise_> data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr deriving (Show)
15:24:55 <alise_> I guess I need more to have anything useful.
15:25:06 <oerjan> well then you essentially get a free ring on 0 generators, aka Z
15:25:09 <alise_> So then () = 0, (() :+ ()) = 1, ...
15:25:26 <alise_> oerjan: hrm, so completely unable to be used for any useful computation then
15:25:30 <alise_> guess that's pretty obvious
15:26:12 * alise_ wonders what useful computations he could have
15:26:23 <alise_> well, we need *some* sort of looper
15:26:49 <alise_> http://pastie.org/832823.txt?key=a8bszac2sr9tpdd2n2pfw
15:26:52 <alise_> Ours for the extending, anyway.
15:27:11 <oerjan> but as i implied, you could throw any terminating functions into your base without trouble
15:27:49 -!- MizardX has joined.
15:28:23 <alise_> aye, but we want to be able to calculate fibonacci at least
15:28:49 <oerjan> well primitive recursion is enough for the former
15:29:05 <alise_> 0 x = 0, 1 x = x, 2 x = x :+ x, I think
15:29:28 <alise_> or at least I think so
15:29:34 <alise_> this is rather confusing
15:29:41 <oerjan> transfinite induction was mentioned earlier today, maybe you could use that, omega^2 gives you ackermann iirc
15:29:48 <alise_> *Main> eval (Id :+ Id) (Id :+ Id)
15:29:48 <alise_> (Id :+ Id) :+ (Id :+ Id)
15:31:28 <oerjan> also you seem to have left out subtraction in your ring
15:31:40 <alise_> that's (1+1) -apply- (1+1)
15:31:59 <MissPiggy> data Cr = Bot | Id | Cr :+ Cr | Cr :* Cr ??
15:32:05 <alise_> In mathematics, a ring is an algebraic structure consisting of a set together with two binary operations (usually called addition and multiplication), where each operation combines two elements to form a third element.
15:32:06 <alise_> MissPiggy: computation as a ring
15:32:54 <alise_> because that does not make any sense, I believe
15:32:55 <oerjan> alise_: if you want it defined as an algebraic variety, you need something like subtraction or negation explicit. otherwise you need a logic axiom for their existence...
15:33:09 <alise_> oerjan: yeah but I'm bored now :)
15:33:16 <cheater> generally should a closure copy the objects it's closing over, or just separate the identifiers from the global scope?
15:33:29 <cheater> effectively making a local copy of the identifiers
15:33:48 <oerjan> cheater: if you have mutable variables you need to be careful
15:33:56 <oerjan> copying doesn't work then
15:34:06 <cheater> what are mutable variables?
15:34:07 <alise_> cheater: copying is less efficient
15:34:15 <cheater> alise_: you misunderstood.
15:34:27 <alise_> cheater: that's nice, you could have just restated it more clearly
15:34:32 <oerjan> cheater: variables whose values can be _changed_
15:34:50 <alise_> variable variables, basically.
15:35:07 <cheater> oerjan: define 'value of variable'
15:35:11 <oerjan> cheater: and that means changes need to be visible to all scopes
15:35:24 <alise_> oerjan: cheater is just being obtuse
15:35:27 <alise_> i suggest ignoring him
15:35:37 <cheater> i am trying to understand something that requires precise statements
15:35:48 <oerjan> cheater: for once i agree with alise_ on annoyingness
15:35:56 <alise_> value :: [Value] -> Var -> Maybe Value
15:36:06 <alise_> mutate :: Var -> Value -> [Value]
15:36:12 -!- Asztal has quit (Ping timeout: 264 seconds).
15:36:17 <MissPiggy> alise you don't even !!!!!!!!!!!!! HASKELL
15:36:31 <alise_> I don't even !!!!!!!!!!!!! Haskell.
15:36:48 <cheater> oerjan: you're just teaming up with her in hopes of being laid
15:37:07 <oerjan> cheater: the thing is, iirc ML which has no mutable variables can get away with implementing closures with copying. and also iirc java does the same with a horrible hack of _disallowing_ closures over non-final variables
15:37:17 -!- Asztal has joined.
15:37:22 <alise_> ML has mutable refs doesn't it
15:37:40 <alise_> ofc they're separate entities
15:37:48 <oerjan> alise_: yes, but that doesn't matter since it's not actually the variables themselves...
15:38:16 <oerjan> in fact you could deal with mutable variables by copying references to them
15:38:22 <cheater> oerjan: if i have a closure in python, over x, it has a local version of x. so if i later assign, outside of the closure, in the global scope, something else to x, then the x in the closure still refers to the old object. whereas if i modify the object in the global scope outside the closure, by say changing one of its fields, then the change is reflected inside the closure.
15:38:42 <alise_> A person demands absolute preciseness of semantics, and then starts talking about Python's semantics?
15:38:53 <oerjan> cheater: that just says that what python calls closure is not what one would usually call a closure
15:39:09 -!- coppro has quit (Ping timeout: 260 seconds).
15:39:20 <alise_> data MutableVar = PointerToImmutable MutableReference
15:39:28 <alise_> tada now you can do closures via copying
15:40:24 <cheater> oerjan: and what is the difference?
15:41:49 -!- Pthing has quit (Remote host closed the connection).
15:41:51 <Deewiant> In Python's closures? That x didn't change.
15:42:04 <oerjan> cheater: a real closure would see the "same" variable as everything else in the scope of the variable
15:42:27 <oerjan> same in quotes because you can cheat if it really doesn't matter (e.g. immutable variable)
15:43:02 <Deewiant> It's not cheating if you can't tell the difference within the language
15:43:18 <oerjan> mind you this may be just a consequence of python's scopes being not truly lexical, also iirc
15:43:22 <alise_> http://catseye.tc/projects/burro/doc/website_burro.html
15:43:30 <alise_> he is dragging up the past!
15:43:35 <AnMaster> there is no free space for the cleared away snow any more
15:43:40 <alise_> AnMaster: Almost 20 inches?!
15:44:21 <AnMaster> Deewiant, snow swining, hm. Sounds like something to add to the olympic games
15:45:13 <oerjan> AnMaster: no nearby hill to shove it off?
15:45:35 <alise_> Pigs; racing through snow.
15:46:34 <oerjan> to nicely complement the summer sport of sow swimming
15:48:12 * oerjan recalls the pole vault from the frc hellympics
15:52:45 -!- alise_ has changed nick to alise.
15:52:56 <alise> scarf: so I've become obsessed with one paradigm
15:53:17 <alise> Tree rewriting! It's like functional programming, but (a) usually slow, and (b) restrictionless!
15:53:18 * scarf secretly hopes it's one he hasn't heard of
15:53:26 <scarf> alise: ooh, I like that one too
15:53:32 <alise> It's a symbolic computation system - we got yer algebra system.
15:53:37 <alise> It's a functional language - we got yer Y.
15:53:41 <scarf> but Cyclexa is not really at a usable stage
15:53:48 <alise> it's more than cyclexa
15:53:59 <AnMaster> <oerjan> AnMaster: no nearby hill to shove it off? <-- no
15:54:03 <alise> tree = symbol | app tree tree
15:54:08 <AnMaster> oerjan, or I would need to go up said hill
15:54:10 <alise> program is a set of tree' -> tree
15:54:14 <scarf> (it's effectively tree-rewriting, except it's string-rewriting with parsers determined at runtime so you can randomly reparse the string as some other tree if you like)
15:54:17 <AnMaster> but then all the neighbours would get mad
15:54:18 <alise> tree' = tree except another leaf is "freevar symbol"
15:54:25 <alise> it's bound on the RHS and replaced
15:54:27 <AnMaster> oerjan, this is inside a town after all
15:54:28 <alise> so we can have e.g.
15:54:47 <AnMaster> I realised there is yet another issue with time travel
15:54:56 <AnMaster> but a very very annoying issue
15:55:02 <alise> and we can evaluate (not (not (not x))) without defining x
15:55:06 <scarf> AnMaster: there are lots of issues with time travel
15:55:16 <AnMaster> scarf, "best before" dates on products would become useless
15:55:16 <alise> scarf: also, since terms without a rule just stay inert...
15:55:22 <alise> scarf: we can use function application as data
15:55:26 <scarf> alise: makes sense; the tree-rewriting version of SKI combinatory logic works like that, doesn't it
15:55:28 <alise> i.e. (Cons x y), without defining Cons
15:55:35 <oerjan> AnMaster: ah. i guess it only works if you live some way up a hill to start with.
15:55:37 <alise> scarf: yep, you can define SKI like that literally
15:55:38 <AnMaster> scarf, same for credit cards that has "valid to"
15:55:47 <AnMaster> (or whatever the English phrase for that is)
15:55:47 <alise> scarf: also, "X + Y" doesn't have to be specially supported
15:55:52 <scarf> alise: note that this is what Mathematica does for everything, except the bits that were hand-optimised in C
15:55:58 <alise> the head term just happens to be a free var
15:56:00 -!- addicted has joined.
15:56:00 <scarf> I'm prepared to believe, though, that it's a good idea but an awful implementation of it
15:56:30 <alise> Q, http://q-lang.sourceforge.net/, and its successor Pure, http://code.google.com/p/pure-lang/, are the best term-rewriting languages
15:56:36 <alise> Pure is even not hideously slow.
15:56:38 <AnMaster> hm looking at my various cards phrases such as "good thru" and "valid thru" pops up
15:57:10 <AnMaster> oerjan, yeah, plus that is hardly a hill. I guess the elevation is about 5-7 meters compared to the area around at most
15:57:21 <alise> scarf: a really cool thing is that since rules are independent, not "attached" to anything, you can "extend" "functions"
15:57:26 <AnMaster> oerjan, not sure what the English word is. But it is called an "ås" around here
15:57:35 <alise> doc factorial = "The factorial function."
15:57:43 <alise> doc fib = "Fibonacci"
15:57:44 <AnMaster> oerjan, ås being not a hill due to being rather narrow but quite long
15:57:50 <alise> (doc X) is just a term
15:57:58 <alise> same as fib or factorial
15:58:08 <scarf> hmm, that sort of thing leads to truly weird bugs in Mathematica
15:58:10 <alise> also, currying works:
15:58:16 <alise> (foo x) just doesn't evaluate
15:58:17 <scarf> where you get literal bits of its internal working dumped into your result
15:58:22 <alise> do ((foo x) y), however...
15:58:22 <AnMaster> what is the English word for that scarf?
15:58:33 <scarf> AnMaster: I'm not sure; there may not be a particular one
15:58:41 <alise> AnMaster: we don't really have them so we don't need to call them anything :P
15:58:52 <alise> scarf: Pure is even compiled - to LLVM, no less
15:59:00 <scarf> alise: we do, we just don't notice them
15:59:11 <scarf> alise: have you tried using it much yet?
15:59:15 <Deewiant> alise: Pure's shell is a good start
15:59:25 <AnMaster> scarf, alise: oh interwiki gives "ridge"
15:59:25 <alise> Deewiant: yeah that's relevant to the language.
15:59:35 <alise> scarf: well, I've read a lot of the docs and wrote some simple programs
15:59:45 <AnMaster> ridge sounds like something you would find at high mountains
15:59:52 <alise> I'm quite enamored with the paradigm; and the language isn't bad.
15:59:54 <oerjan> AnMaster: i though ås (a norwegian word too) was also translated as hill
16:00:05 <scarf> AnMaster: a ridge is basically what you get when a lot of hills or mountains nearby connect together
16:00:08 <alise> It's eager, yes, and impure, yes, but despite that it's still pleasant.
16:00:10 <scarf> to create one long hilltop, that's a ridge
16:00:14 <scarf> and it's not what you were describing
16:00:25 <scarf> hmm, how can an impure language be called Pure? irony? accident?
16:00:36 <AnMaster> scarf, or partly overlapping meanings
16:00:47 <AnMaster> possibly ås geologically is something else than everyday sense
16:00:47 <scarf> AnMaster: do you get ridges where you live?
16:01:10 <scarf> Birmingham is in a really hilly area, so I know of a few within an hour's driving distance
16:01:14 <AnMaster> scarf, in Sweden yes, around this part of sweden: no, you need to travel 1-2 hours by car to the nearest such place
16:01:49 <AnMaster> basically you have this large almost completely flat area and then some mountains at the west side of it
16:02:05 <scarf> heh, sounds like a mirror-reflected version of Norfolk
16:02:15 <scarf> which is rather hilly around the edges, but famously ridiculously flat in the central areas
16:02:20 <AnMaster> well mountains, a few hundred meters, you do notice it as pressure difference in your ears when you go over them though
16:02:41 <alise> NORFOLK: Secretly, part of the Netherlands.
16:02:45 <AnMaster> scarf, well, I live near the flat middle basically
16:03:07 <scarf> alise: at least it mostly isn't underwatetr
16:03:19 <scarf> well, below sea level
16:03:22 <scarf> which isn't /quite/ the same thing
16:03:42 <AnMaster> scarf, iirc some time after the last ice age this area was part of the sea.
16:04:11 <scarf> Norfolk got the way it was due to being covered in glaciers during the last ice age
16:04:21 <scarf> the hills round the edges are where the glaciers melted and dumped all the stones they were carrying
16:04:28 <AnMaster> scarf, and yes, there were glaciers here too
16:05:49 * scarf wonders how well concatenative langs compile into tree-rewriting langs
16:05:52 <scarf> probably quite well
16:06:11 <AnMaster> scarf, the mountains to the west contain some interesting remains such as fields with lots of round huge stones. And there is of course the occasional slab of stone in the middle of the plain. (which were put there by trolls or giants or something if you prefer the traditional stories ;P)
16:07:37 <scarf> "To my mind Mythryl deftly combines C speed, Lisp power, and Ruby convenience with the critical new ingredients of Hindley-Milner typing, state of the art generics and just the right level of side effects."
16:07:43 <scarf> ah, the dangers of semi-randomly clicking on links on Wikipedia
16:07:56 <scarf> apparently, it's an attempt to convert SML/NJ into a C-like syntax
16:08:14 <Deewiant> C + Lisp + Ruby + Hindley-Milner + generics + side effects
16:08:24 <scarf> yes, it scares me too
16:08:38 <scarf> I'm busy reading the docs to know whether to laugh at it or not
16:08:58 <MissPiggy> "new ingredients of Hindley-Milner typing" just sounds /confused/
16:09:17 <scarf> "Either way, this is a far cry from the hundred-plus lines of code of a typical C Quicksort implementation."
16:09:22 <scarf> hmm, that seems rather critical of C
16:09:29 <Deewiant> "new ingredients of x" obviously does, but "new ingredients of x, y, and z" is fine
16:09:33 <scarf> I've seen a Pascal quicksort in 20 lines, and that was in a book intended to teach Haskell
16:09:38 <alise> I know of Mythryl, I think.
16:09:39 <scarf> umm, to teach Pascal
16:09:46 <alise> Yeah; that thingl.
16:10:02 <scarf> http://mythryl.org/
16:10:06 <oerjan> pascal, haskell, nearly the same. if you slur enough.
16:10:23 <scarf> oerjan: it's a pain trying to discuss Haskell with people who know Pascal but not Haskell
16:10:25 <Deewiant> http://mythryl.org/my-Less_coding_effort_.html is what I wanted
16:10:27 <alise> "By four years in, vomiting blood in the wee hours was starting to seem entirely normal."
16:10:30 <scarf> you have to really emphasise the e to prevent them mishearing it
16:10:43 <alise> Argh, this keyboard doesn't have enough key travel; though the rubber domes _do_ make a nice clacky sound.
16:10:46 <Deewiant> And yes, it is a completely unoptimized "quicksort" of a linked list
16:10:55 <alise> It beats the previous, sticky one though, I think.
16:11:06 <oerjan> scarf: theoretically pascal should stress the last syllable, i think
16:11:26 <Deewiant> As opposed to the 100+ C lines of a suitably benchmarked introsort on arrays
16:11:28 <scarf> oerjan: yes, but a stressed e and a stressed a sound rather different
16:11:33 <alise> I feel like bashing the fucking keys! Am I even pressing these things?
16:12:01 <oerjan> um i'm actually not sure where haskell is stressed
16:12:05 <scarf> also, the Mythryl guy seems to use "linux$ " as his $PS1
16:12:12 <alise> Or has his box called "linux".
16:12:19 <alise> Or is just using it as an example.
16:12:24 * oerjan always stresses it on first syllable
16:12:25 <scarf> but who calls a computer after its OS?
16:12:31 <alise> scarf: Incidentally, you can do pure IO without monads in a term rewriting language, really trivially.
16:12:32 <scarf> oerjan: so do I, although I don't know that's right
16:12:44 <Deewiant> Except that my uname prints Linux, but whatever
16:12:49 <scarf> alise: what method in particular are you thinking of?
16:12:56 <alise> puts s = lambda k (_PUTS s k)
16:13:07 <alise> getc = lambda k (_GETC k)
16:13:12 <scarf> that looks rather like a monad to me
16:13:14 <alise> exit = lambda k _EXIT
16:13:17 <alise> well, yes, it is technically
16:13:26 <AnMaster> Deewiant, some TURT questions. Since I'm planning it for efunge. 1) Since heading (in degrees) and distance to move are both integers we might end up at non-integer x/y. This can of course be handled by floating point or fixed point math. However that poses a problem since there is an instruction to query the current coordinates. Should one return rounded-to-nearest values for it? Or round internally
16:13:37 <oklopol> a C quicksort takes like 8 lines max
16:13:48 <scarf> and a Joy quicksort takes one
16:13:58 <alise> x ; y = lambda k (x (y k))
16:14:03 <scarf> isn't there a GolfScript quicksort in something like ten characters?
16:14:03 <oklopol> in a hundred lines you can just manually program how to sort each possible list
16:14:07 <alise> puts "Hello, world!"; getc; exit
16:14:15 <AnMaster> Deewiant, cpressy said that he couldn't answer it, since he wrote that stuff so long ago he really doesn't remember what was intended or anything
16:14:16 <scarf> it turns into the monad
16:14:24 <scarf> "REPROGRAM YOUR SEMICOLONS!"
16:14:29 <alise> lambda k (_PUTS "Hello, world!" (_GETC (_EXIT k)))
16:14:51 <alise> so the RTS passes it some dummy end-of-thing
16:14:52 <scarf> yep, that's a monad; ; is bind here
16:15:00 <alise> but you never "define" the monad
16:15:02 <scarf> how do you deal with non-monad terms in there, though?
16:15:05 <alise> the magic there is that
16:15:07 <alise> you define a CPS language
16:15:10 <alise> and then the sugar over it
16:15:10 <scarf> as in, what's the equivalent of lift?
16:15:12 <alise> but they're defined in the same way
16:15:27 <alise> scarf: lift doesn't lift non-monadic values
16:15:30 <alise> do you mean return :: a -> m a?
16:16:06 <alise> well, if you're like most term languages, i.e. untyped,
16:16:17 <Deewiant> scarf: It wouldn't surprise me if GolfScript had a single char for quicksort ;-P
16:16:20 <alise> but anyway, you could do this:
16:16:26 <alise> return x = lambda k (k x)
16:16:31 <oerjan> original haskell 1.0 did have a CPS I/O system
16:16:36 <scarf> Deewiant: it probably has a single char for sort, but nothing would be requiring it to be quicksort
16:16:37 <AnMaster> Deewiant, I could see issues with both variants: a) for round to query only: if program uses that, jumps somewhere else, then jumps back to continue to draw the lines might no longer line up properly. b) for round internally: angles would sometimes get distorted. And if it moves two lengths in a given angle but not in a single go you could get lines supposed to be straight that are now somewhat curved.
16:16:58 <Deewiant> scarf: It could be requiring it, although that's admittedly unlikely
16:17:11 <scarf> just, I can't see any amount of sugar that would mean that ; could combine IO operations with non-IO operations
16:17:21 <alise> scarf: Of course you could.
16:17:21 <AnMaster> Deewiant, I'm not sure which of those is worst. Oh btw does ccbi keep track of the heading in radians or degrees internally?
16:17:21 <scarf> anyway, I don't see what all the fuss is about quicksort, mergesort is just usually better
16:17:29 <alise> puts s = lambda k (_PUTS s k)
16:17:29 <Deewiant> AnMaster: It's a raster format, you will get such issues.
16:17:34 <alise> puts s = _IO (lambda k (_PUTS s k))
16:17:37 <scarf> (strangely, Java specifies the sort of primitive types to be quicksort, and of objects to be mergesort, and I have no idea why)
16:17:37 <AnMaster> Deewiant, it isn't. It will render to svg
16:17:45 <alise> Then just pattern-match on _IO in ;
16:17:53 <AnMaster> Deewiant, or control a real turtle bot maybe ;)
16:18:00 <alise> x ; y = _IO (lambda k (k x)); y
16:18:08 <scarf> OTOH, that would preclude returning the puts function itself
16:18:13 <scarf> unless you had a separate return
16:18:16 <alise> Because there is no "puts function".
16:18:22 <alise> If you return "puts", that's a symbol.
16:18:28 <alise> Only "puts x" is rewritten.
16:18:32 <scarf> I mean, a partial application of it
16:18:37 <scarf> even a full application, in a lazy lang
16:18:37 <alise> For a curried function: "K x" is just a term. Not rewritten.
16:18:46 <alise> "K x y" is reduced, however.
16:18:48 <scarf> but it starts with _IO and so confuses your pattern matcher
16:18:52 <alise> Of course, you can have 'x = x without rewriting.
16:18:57 <alise> scarf: No, it doesn't.
16:19:00 <alise> "puts" doesn't start with _IO.
16:19:15 <alise> puts x doesn't start with _IO, either, but its reduction does.
16:19:29 <AnMaster> Deewiant, you could get floating point inexactness issues there when you turn in 1 degree steps or such. Like turing +1 degree 360 times might not give you the exact original heading.
16:19:49 <scarf> oh yes, so it's just going to be down to the usual lazy timing issues which drive strict programmers trying to learn Haskell mad
16:19:53 <scarf> and I can live with those
16:19:55 <alise> Turing +1 degree 360!
16:20:04 <alise> scarf: Well, Pure isn't even lazy.
16:20:13 <AnMaster> Deewiant, another issue: the "query bounds of drawing" thingy. Is it supposed to be max bounds or current bounds? cfunge seems to do the latter, but I'm not sure if this is correct. After all it is possible a befunge program might want to scale it's drawing based on available space. And if that returns 0,0,0,0 you have some issues.
16:20:14 <Deewiant> AnMaster: There are precision issues anyway since I don't use arbitrary-precision reals
16:20:21 <alise> So it solves this "problem" extremely easily.
16:20:45 <scarf> a strict language doesn't need IO chains, or IO monads, or anything like that
16:20:57 <alise> You can be strict and pure, scarf.
16:21:00 <AnMaster> Deewiant, true, but tracking heading as integer degrees and only converting for actual sin/cos usage would mean the inexactness of heading couldn't increase over time
16:21:18 <scarf> alise: yes, but the point is you don't need to be
16:21:19 <Deewiant> AnMaster: Unless my Mycology results are wrong cfunge's U definitely pushes the max bounds
16:21:24 <scarf> lazy and impure is a lot more difficult
16:21:28 <alise> scarf: Indeed, purity is a desirable property even in a strict language - _|_ is your only enemy.
16:21:38 <pikhq> alise: Back early?
16:21:55 <alise> pikhq: Early? 'Tis the 4th post-meridian hour of Friday.
16:22:00 <scarf> I'm probably going to leave Underlambda impure, though, to make it easier to compile into and out of, which is after all its design goal
16:22:16 <scarf> if I try to make a version that's actually useful for writing in, maybe I'll have to have an Underhaskell or something
16:22:18 <pikhq> alise: Oh, you get back at 4 PM?
16:22:21 <AnMaster> <Deewiant> AnMaster: Unless my Mycology results are wrong cfunge's U definitely pushes the max bounds <-- "huh"
16:22:32 <alise> pikhq: No, at half past the meridian today actually.
16:22:39 <Deewiant> AnMaster: iki.fi/deewiant/befunge/mycology-output/fp-turt/cfunge.txt
16:22:45 <alise> Early leaving on Friday... but when *would* you expect me to be back?
16:22:51 <scarf> AnMaster: U in which fingerprint?
16:22:55 <AnMaster> Deewiant, I read some other fingerprint
16:23:26 <AnMaster> it was the function for figuring out svg viewport or something it seems
16:23:30 <alise> pikhq: I'm actually curious when you thought
16:23:37 <AnMaster> anyway the design will be quite different from that in cfunge
16:23:53 <pikhq> alise: I thought it was just a bit later in the day is all.
16:24:10 <pikhq> I figured they'd have you around for pretty much of the work week or something.
16:25:01 <scarf> pikhq: the people imprisoning him probably hate having to guard the place as much as he hates going there
16:25:16 <AnMaster> Deewiant, since the way cfunge does it have some issues and is somewhat messy. I might rewrite it later on
16:25:47 <pikhq> scarf: True, true.
16:25:59 <pikhq> It's not like they enjoy it, they just have a stick up their ass.
16:26:31 <scarf> it's probably different people making the decisions from the people who have to live with their consequences
16:27:04 <scarf> in general, or decisions would be better in general
16:27:33 <alise> Some of them seem to get a real kick out of power, though.
16:27:36 <AnMaster> note to self: if you use vnc remember to turn off synergy first. That was quite confusing
16:27:55 <AnMaster> (vnc and synergy between same computers that is)
16:29:20 <pikhq> alise: The infamous Stanford prison experiment (which has not been repeated for ethical reasons) gives some evidence to suggest that merely being placed into position as guard of a prison produces that.
16:29:53 <alise> The Stanford prison experiment is chilling.
16:30:10 <scarf> yes, it's really scary
16:30:16 <alise> But add the Milgram experiment, and it's /fucking terrifying/.
16:30:32 <scarf> alise: I don't know that one
16:30:45 <Deewiant> It's the one with electric shocks
16:30:51 <alise> The experimenter (E) orders the teacher (T), the subject of the experiment, to give what the latter believes are painful electric shocks to a learner (L), who is actually an actor and confederate. The subject believes that for each wrong answer, the learner was receiving actual electric shocks, though in reality there were no such punishments
16:30:59 <scarf> I know that one, just not its name
16:31:13 <alise> The experimenter tells the teacher to keep doing it even as the intensity of the "shocks" supposedly increases to insane levels.
16:31:19 <alise> The teacher almost universally complies.
16:31:32 <scarf> and after a while the learner plays dead, and the teacher keeps increasing the shocks anyway
16:31:46 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
16:31:51 <scarf> apparently, it's highly dependent on how authoritative the experimenter seems
16:32:04 <pikhq> Milgram experiment.
16:32:07 <scarf> they repeated it with the experimenter wearing casual clothing, and people suddenly started acting sanely
16:32:39 <alise> Milgram + Stanford = Speak authoritatively, and you can get people to do horrible, horrible things - and start believing in them.
16:32:45 <Deewiant> scarf: Do you have a source for that?
16:32:57 <alise> Probably the only solution is to abolish authority entirely, which poses a whole host of other problems.
16:32:58 <scarf> Deewiant: I did once, but can't remember where it was
16:33:04 <scarf> and it was third-hand information then already
16:33:16 <pikhq> Deewiant: http://www.garfield.library.upenn.edu/classics1981/A1981LC33300001.pdf Here's the paper by Stanley Milgram.
16:33:55 <AnMaster> <alise> Probably the only solution is to abolish authority entirely, which poses a whole host of other problems. <-- quite. First that comes to mind is things like highway robbers and what not.
16:34:08 <alise> Trust AnMaster to always pick on the most trivial, boring example.
16:34:26 <AnMaster> alise, of course. I don't want to let your expectations down.
16:34:29 <alise> A /bigger/ problem with anarchy is preventing a state from establishing itself.
16:35:13 <AnMaster> alise, well yes. But I thought you didn't want authority, and a state seems to me to be the prime example of authority
16:35:15 <scarf> alise: yep, you'd have to enforce it from outside somehow
16:35:17 <pikhq> Deewiant: Here's where you could read it if you paid. http://psycnet.apa.org/index.cfm?fa=search.displayRecord&uid=1964-03472-001
16:35:32 <Deewiant> Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
16:35:36 <scarf> but the same effect seen in the Stanford experiment is seen in reality TV too
16:35:47 <alise> AnMaster: Duh... of course.
16:35:48 <pikhq> scarf: And prisons everywhere.
16:35:49 <scarf> you can easily get people to move from the real world to an imaginary one
16:35:51 <alise> AnMaster: That's what I said.
16:35:58 <AnMaster> alise, thus I didn't think you would consider that an issue
16:36:06 <alise> scarf: actually, there are numerous ways you could avoid establishing authority
16:36:11 <alise> AnMaster: You did not read what I said.
16:36:14 <alise> <alise> A /bigger/ problem with anarchy is preventing a state from establishing itself.
16:36:21 <alise> In a bad anarchy, gangs will form;
16:36:26 <alise> one gang will arm itself more than the others;
16:36:28 <scarf> that's an authority of its own
16:36:34 <alise> a few generations later, we will call it the state.
16:36:39 <AnMaster> alise, oh right, I read that as the other way around
16:36:39 <alise> scarf: no, as in societial ways
16:37:02 <scarf> you mean, you ingrain the importance of anarchy into everyone so much that they assume there's no other way?
16:37:07 <alise> things like teaching rational thinking to children from the very start
16:37:12 <scarf> and parents teach it to their children?
16:37:22 <scarf> hmm, rational thinking doesn't necessarily imply anarchy, I don't think
16:37:24 <alise> scarf: well, no; that's supporting ignorance - but letting people figure out why the anarchy is superior while they're children through rational means
16:37:47 <alise> but if you use rational thinking and come to the conclusion that anarchy is bad, well, don't try and establish a stable anarchy :P
16:37:51 <scarf> I'm not certain the anarchy would be superior
16:38:03 <pikhq> alise: Anarchy is only superior if the people involved are ethical, of course...
16:38:10 <alise> but if you conclude rationally that it is, that is the best method of sustaining it
16:38:19 <scarf> pikhq: pretty much /any/ governmental system works if all the people involved are ethical
16:38:28 <scarf> and in such a case, you may as well use anarchy to save costs, or communism for the benefits
16:38:29 <alise> pikhq: Right; the transition from state to anarchy is the hard part, because you need everyone involved to be pro-anarchy until you can teach the children about it
16:38:34 <scarf> it's just not going to happen in practice, though
16:38:36 <alise> you need stablility for a generation or two
16:38:39 <pikhq> They do differ largely in how they deal with a lack of ethics.
16:39:29 <alise> hmm... I can't figure out whether the most popularly expected (and thus almost certainly wrong) post-Friendly-singularity outcome is dictatorship or anarchy
16:39:29 <pikhq> Clearly, the real solution is singularity.
16:39:48 <alise> it would basically become the operating system for space; preventing harming another while allowing otherwise total control to everyone
16:39:58 <alise> now, are the laws of physics a dictatorship?
16:40:08 <alise> if yes, then probably so is the singularity; otherwise, probably not
16:40:22 <scarf> alise: what about the Asimov outcome?
16:40:36 <scarf> where a robot government was set up for a while, but it decided that its own existence was harmful for mankind
16:40:37 <alise> (well, disambiguate)
16:40:38 <scarf> and it phased itself out
16:40:43 <alise> scarf: that's not a singularity
16:40:52 <scarf> but I can imagine a similar outcome happening from a singularity
16:40:59 <alise> a Friendly seed AI would self-modify until it *is* beneficial to mankind
16:41:10 <alise> If it cannot, then it suggests that mankind is perfect already, which is total bullshit.
16:41:39 <scarf> alise: not perfect; the idea was that people inherently resent having computers in charge, and that dealt more damage than any good the computers could manage would do
16:41:43 <alise> (specifically, a seed AI with a correctly-specified supergoal, such as C.E.V., would achieve this supergoal at any cost (you account for acceptable and unacceptable losses in the supergoal))
16:42:07 <alise> scarf: then the singularity would improve our minds so that we did not mind the idea, which would presumably be increased intelligence + an understanding of what AI really is
16:42:18 <alise> (assuming the supergoal does not forbid doing such things, which it probably doesn't)
16:42:22 <alise> either that, or it would make itself voluntary
16:42:38 <alise> and, perhaps, attempt to explain why it is good to the people who say no
16:43:02 <alise> (it would probably still prevent harm between the people who say no, though, through simple moral imperative)
16:43:29 <Deewiant> Somewhat related reading (or, at least, this stuff brought it to mind): Eliezer Yudkowsky's "Three Worlds Collide", http://lesswrong.com/lw/y4/three_worlds_collide_08/
16:43:29 <scarf> hmm, ridiculous idea: the singularity decides that there's something special about humans as they are now
16:43:35 <scarf> e.g. maybe it discovers God exists
16:43:36 <alise> Deewiant: yes, I love TWC
16:43:39 <scarf> and likes humans in particular
16:43:40 <alise> When I say probably, by the way,
16:43:43 <alise> I mean almost certainly not.
16:43:59 <alise> (as does everyone else who tries to predict what the Singularity, or any other transhuman entity, will do; by definition we /cannot know/)
16:44:34 <alise> also, Three Worlds Collide protip: read the Normal Ending, then the True Ending
16:44:45 <scarf> ok, because I like trope subversion: there will be two Singularities which get created at more or less the same time
16:44:49 <scarf> and which end up jealous of each other
16:44:57 <scarf> so they refuse to work as a team
16:45:01 <alise> scarf: Both Friendly, yes?
16:45:06 <scarf> and this messes up the typical benevolent self-improvement thing
16:45:12 <alise> Deewiant: Well, but the choice is offered in the last pre-ending chapter.
16:45:15 <scarf> so they're both friendly in general, but have a blind spot where the other is concerned
16:45:24 <alise> There's no such thing as Friendly-in-general. :)
16:45:39 <Deewiant> Sure, but if you just read top-down like most people do you'll do it right. :-P
16:45:41 <alise> If an AI is almost-Friendly, it will modify itself so that it is Friendly (unless the blind spot is in a really inconvenient place; in which case, it's Unfriendly).
16:46:01 <alise> scarf: If they are both Friendly, then they will not be jealous of each other purely because this prevents the good outcome.
16:46:24 <alise> If either is Unfriendly, then either the Friendly one (if there is one) will become more powerful and kill it, or we are fucked.
16:46:35 <alise> Your outcome is impossible, and you should feel bad. :P
16:47:25 <scarf> hmm, more fun: a Friendly singularity is created, but somehow sandboxed because people don't trust it
16:47:47 <scarf> so it can't fulfil its whole outcome, and there are people who want to turn it off in the fear it's actually Unfriendl
16:48:12 <alise> can't box a transhuman
16:48:15 <alise> http://yudkowsky.net/singularity/aibox
16:48:27 <alise> by definition it will outsmart us; and even a human can unbox itself, see above
16:49:26 <alise> there's a reason Creating Friendly AI is a large, serious work; because there really does seem to be no other alternative
16:50:05 <Deewiant> alise: Those are no fun, they're secret
16:50:14 <scarf> hmm... what about a singularity not happening, because nobody can afford the energy bill?
16:50:28 <alise> Deewiant: That irritates me too, but it's to stop people going "ha ha, that wouldn't work on me", I think.
16:50:42 <Deewiant> I can't help but think that specifically because they're secret >_<
16:50:44 <scarf> and an AI can't be brought to the level of intelligence where it could outsmart that because it would be too expensive
16:50:49 <alise> Deewiant: Yes, well. Ask him :P
16:50:53 <MissPiggy> amazing I just read about that stanford prison
16:50:54 <alise> scarf: are you saying that even human + omega intelligence requires too much power?
16:51:01 <alise> MissPiggy: baader-meinhof phenom :P
16:51:07 <alise> scarf: because certainly human doesn't, we're living proof
16:51:07 <oklopol> to me, saying a transhuman would convince any human of something is like saying a human would be a superior dolphin
16:51:20 <alise> scarf: and once it goes past a certain point of intelligence, oh snap nanotech
16:51:25 <Deewiant> I mean, FFS, all you have to do is chat with a dude for a few hours and then end up saying "no"
16:51:26 <alise> and then it isn't a problem any more
16:51:33 <alise> Deewiant: Well, that's the whole point.
16:51:37 <scarf> I'm saying that human + omega intelligence implemented by humans, and therefore very inefficiently, may require too much power
16:51:51 <alise> Deewiant: If the conclusion wasn't highly unintuitive, the page would not exist.
16:52:03 <alise> scarf: That therefore doesn't follow.
16:52:07 <alise> scarf: And the AI is self-improving, remember.
16:52:28 <scarf> alise: I mean, that the singularity won't happen because we never get an AI to a self-improving stage
16:52:28 <alise> Given a massive data centre, perhaps even with specialised hardware, I find being unable to emulate a human incredibly unlikely.
16:52:35 <AnMaster> hm can a human really construct something smarter than a human?
16:52:38 <alise> And the AI will be /better/ than a human then, for it will be rational.
16:52:43 <scarf> not because we're technically incapable, but because nobody will put in the effort
16:52:45 <alise> AnMaster: Yes. It just can't understand the whole of it at once.
16:52:49 <MissPiggy> AnMaster, I don't see any reason why not
16:52:55 <alise> AnMaster: I thought the same too once, but I conclude it's a silly objection based only on intuition.
16:53:00 <alise> AnMaster: Consider two people working together.
16:53:01 <MissPiggy> AnMaster, I mean we can build things bigger, and stronger, so why not smarter?
16:53:01 <scarf> AnMaster: there are lots of things we can't understand the whole of at once even now
16:53:04 <alise> scarf: there is no self-improving stage
16:53:05 <scarf> even if they're a lot less smart than us
16:53:09 <MissPiggy> and why would we not understand it all even if it is smarter?
16:53:10 <alise> scarf: you build the AI to self-improve from the start
16:53:12 <alise> no matter how dumb it is
16:53:16 <alise> and you give it the supergoal from the start, too
16:53:22 <scarf> alise: if it's too dumb, it'll just reach a dead end
16:53:23 <Deewiant> Gah, that aibox thing is really pissing me off now
16:53:24 <alise> then you make it intelligent enough, manually, so that it will not fuck things up royally
16:53:34 <alise> Deewiant: Email him and complain.
16:53:43 <scarf> I mean, you could just set evfunge trying to solve the problems of world hunger or whatever
16:53:44 <alise> There is no reason at all to get angry.
16:53:48 <alise> MissPiggy: its secrecy
16:53:54 <scarf> but you probably wouldn't even be able to describe the problem in enough detail
16:54:07 <alise> scarf: Well, that's what the hard part is: making it intelligent enough.
16:54:10 <alise> MissPiggy: He hates it.
16:54:25 <Deewiant> I refuse to respect the unknown unknowns
16:54:30 <oklopol> MissPiggy: it's like a magic show, it's not at all interesting until you know how he does it
16:54:32 <alise> Deewiant: Then email him.
16:54:37 <alise> Getting angry is just, well, irrational.
16:54:47 <alise> oklopol: it's meant to be a warning, not a show :P
16:55:12 <alise> scarf: Probably the hardest part is: You cannot turn it on. Is it done yet? No, completely done? Have you /proven/ it will work? In independent systems? No? Then you cannot turn it on.
16:55:22 <MissPiggy> hm it doesn't seem like a magic trick to me
16:55:27 <alise> scarf: Can you even /imagine/ writing a program like that?
16:55:36 <scarf> alise: people would be bound to try test runs
16:55:39 <oklopol> alise: to me it's an interesting psychological experiment, i don't care about the AI aspect
16:55:45 <alise> scarf: No. You cannot.
16:55:45 <scarf> and yes, I have imagined writing programs like that, but only very simple ones
16:55:56 <oklopol> well, sure it's sort of a crucial part of the experiment, but maybe you know what i mean.
16:55:57 <alise> Unless you are sure it is Friendly, you cannot turn it on.
16:55:57 <scarf> and yes, I don't think it works
16:56:07 <alise> You can only be sure of that when it's completely done and proved correct multiple times.
16:56:17 <scarf> alise: I don't think humans would be capable of proving an AI Friendly
16:56:23 <alise> "cannot" as in "cannot by sheer risk".
16:56:47 <scarf> OTOH, I don't trust humans in general not to do ridiculously risky things
16:56:50 <alise> If you have a self-improving AI of a certain minimum intelligence, and it is not Friendly, and you run it, the world will end.
16:57:14 <scarf> on a slightly tangential subject, I've been wondering if there are any Hello Worlds around which are completely bug-free
16:57:18 <scarf> I'm wondering if the answer is no
16:57:19 <alise> scarf: well, doing nothing is highly risky, as someone else might create an Unfriendly AI; getting responsible, highly intelligent people to create a Friendly seed AI is the most responsible thing
16:57:25 <alise> #include <stdio.h>
16:57:51 <scarf> the standard C hello world has a few bugs, such as not handling output redirected to a disk which is full
16:57:51 <Deewiant> alise: How would e-mailing him help? He explicitly says he won't tell anybody
16:57:57 <alise> int main(void) { if (puts("Hello, world!") == EOF) { return EXIT_FAILURE; } return EXIT_SUCCESS; }
16:58:14 <alise> Deewiant: Ask for his reasoning. Either you'll be convinced or you'll only have wasted a very small amount of time.
16:58:42 <Deewiant> I'll have wasted /his/ time, which is rude
16:59:00 <MissPiggy> Deewiant -- you haven't said WHY this is annoying or you don't like it
16:59:04 <alise> Deewiant: Oh, you Finn.
16:59:13 <alise> Deewiant: I'm sure he's so pro-knowledge that he would not mind.
16:59:17 <alise> He's that kind of guy.
16:59:49 <Deewiant> MissPiggy: I cannot possibly fathom what could bring someone to change their minds thusly
17:00:01 <Deewiant> And I am annoyed that not even a hint is given
17:00:01 <alise> Deewiant: And that is why you would.
17:00:37 <alise> If you could fathom, without seeing, why you would lose, you would not lose.
17:00:48 <alise> Since you cannot, the AI can manipulate you in this way, making you lose.
17:01:09 <scarf> alise: the whole secret box thing, I can easily imagine how an AI would be let out of the box
17:01:12 <Deewiant> Eliezer is not a superhuman AI
17:01:23 <alise> Deewiant: But he knows something you do not (how to win the AI Box experiment).
17:01:35 <scarf> the solution, presumably, would be to have too many layers of indirection
17:01:38 <alise> Even if you found out that one secret, the point is that he, a mere human, achieved it.
17:01:46 <alise> So what would someone more intelligent than us think of?
17:01:49 <alise> We cannot know - that's the point.
17:01:59 <MissPiggy> alise he doesn't know how to win it
17:02:01 <Deewiant> I'm willing to believe the concept
17:02:08 <alise> MissPiggy: He won twice.
17:02:08 <MissPiggy> he just wanted to test if he had the ability
17:02:09 <scarf> if the only person who can talk to the AI can't themselves let the AI out of the box, then you have one layer of indirection in that the AI has to teach them to let someone else let them out of the box
17:02:22 <Deewiant> What I'm finding difficult to believe is specifically Yudkowsky winning
17:02:25 <alise> scarf: "Come over here, read this! You won't believe it"
17:02:28 <MissPiggy> I think he did actually win more than twice, but he also lost in a couple of times
17:02:31 <alise> Deewiant: Well, he is a very intelligent man.
17:02:35 <scarf> multiply that times hundreds of layers of abstraction and governmental-level forms
17:02:36 <alise> So far, this test has actually been run on two occasions.
17:02:38 <alise> Results of the first test: Eliezer Yudkowsky and Nathan Russell. [1][2][3][4]
17:02:38 <alise> Results of the second test: Eliezer Yudkowsky and David McFadzean. [1] [2] [3]
17:02:42 <MissPiggy> But I am saying he doesn't have a winning strategy
17:02:51 <MissPiggy> it's most like running faster than someone else
17:02:59 <alise> Remember that the other party is intelligent, too; he got them from the SL4 mailing list.
17:03:05 <scarf> hmm, I think even a typical average human could learn a winning strategy for that, given enough effort
17:03:06 <alise> MissPiggy: Yes, but consider that he's /human/.
17:03:07 <MissPiggy> yes that's why he didn't always win
17:03:15 <MissPiggy> oh what does being human have to do with it
17:03:25 <alise> MissPiggy: because a seed AI that wanted to escape would be /transhuman/
17:03:28 <alise> more intelligent than humans
17:03:33 <alise> so we would not be able to predict how it would subvert us
17:03:40 <MissPiggy> yeah it would win every time with unlimited high stakes :P
17:03:46 <alise> and it would be able to manipulate us like toys, by the sheer fact that it is more intelligent than us
17:03:53 <alise> scarf: yes, for humans
17:03:53 <MissPiggy> Yudkowski just wins most of the times, when the stakes are < $2000
17:03:59 <alise> scarf: but not for transhuman
17:04:04 <alise> MissPiggy: *Yudkowsky
17:04:13 <alise> also, the challengers were *very* sure of themselves
17:04:18 <scarf> alise: I mean, a typical human could win every time, so a transhuman would have no trouble
17:04:22 <alise> they seemed to have a huge point to prove and were very forceful
17:04:28 <alise> their conceding emails, meek and concise
17:04:33 <MissPiggy> yeah that's a big part of it, I think he needed that because otherwise he wasn't testing himself
17:04:45 <scarf> not a typical human without training
17:04:57 <MissPiggy> alise, in his coming of age series he talks about other times when he run this experiment and didn't win
17:04:57 <scarf> but, say, magicians have lots of practice getting people to miss a particular details
17:05:07 <scarf> *miss a particular detail
17:05:11 <alise> Anyway, point is: Since Yudkowsky did it, as a human, the risk with an entity of massively greater-than-human intelligence is too great to consider.
17:05:21 <scarf> I imagine compelling someone to do something in particular through psychology is, with practice, just as easy
17:05:24 <alise> So a box is not a viable risk-reduction strategy. Only Friendliness is.
17:05:31 <MissPiggy> I don't think I needed any convincing of that :P
17:05:33 <alise> MissPiggy: ah, ok then
17:05:38 <scarf> one of my RL acquaintances has fun getting strangers to randomly give him their wallets
17:05:48 <scarf> he gives them back, but it's always funny
17:05:50 <oerjan> alise: that aibox link is _not_ up to date. i do recall another page where he said he has done it more times, and lost some.
17:05:59 <scarf> Deewiant: via psychology
17:06:02 <alise> human vs transhuman
17:06:10 <alise> http://www.sl4.org/archive/0207/4689.html -- as recently as 2002, EY had the most annoying IRC habit ever!
17:06:19 * alise says to scarf: "He did this instead of normal messages."
17:06:19 <scarf> the basic trick is to make them assume they're supposed to give you something while they have their wallet in their hands
17:06:41 <Deewiant> Ah, but that's a bit different
17:06:54 <scarf> alise: hmm, is it theoretically possible to have an /unbreakable/ box
17:06:54 <alise> Deewiant: No it's not; tricking people is exactly what an Unfriendly AI would do to escape.
17:06:55 <MissPiggy> lol it must be fun talking to Eliezer for two hours
17:06:57 <Deewiant> That's abusing the subconscious to make them give you something other than what they think you're giving you
17:07:01 <scarf> as in, one that nobody could let the transhuman out of even if they wanted to?
17:07:02 <alise> The whole point is that its moral system is insufficient.
17:07:18 <MissPiggy> alise couldn't a friendly AI convince it's way out too though?
17:07:20 <scarf> my guess is no, but I'm not certain
17:07:20 <alise> scarf: Theoretically. But I imagine a transhuman could find laws in ANY human code so complex.
17:07:30 <MissPiggy> and then go on to be really good to people more efficiently.
17:07:31 <scarf> MissPiggy: yes, but that isn't a problem
17:07:32 <alise> scarf: One way of letting it out: Remove the box code.
17:07:44 <scarf> alise: oh, I was assuming an actual physical box here
17:07:45 <alise> scarf: If we cannot let it out entirely without rewriting it - well, the AI would rewrite itself. It can do that; it's self-modifying.
17:07:52 <oklopol> yeah most human codes have laws
17:07:52 <alise> scarf: Then no, that is impossible.
17:08:05 <alise> scarf: Of course, if it is somehow literally impossible to let it out of the box... then it is useless.
17:08:12 <alise> Once we are sure it is Friendly, the whole point is to let it out.
17:08:17 <Deewiant> alise: Sure, you presumably need to trick people (or he wouldn't've won), but you still need to type exactly "I am letting you, the AI, out now"; that's more like "I'm giving you what's in my hands" where he's wrong about what's in his hands
17:08:18 <alise> Otherwise it's a waste of time (and immoral).
17:08:27 <scarf> alise: the idea I'm thinking of, is to get one that you're sure is Friendly, somehow
17:08:33 <alise> scarf: then you need no box
17:08:39 <scarf> then let it be the only thing that can make the decision of whether to let a /different/ AI out of the box
17:08:42 <alise> let it out; that's the end-goal of a singularity
17:08:44 <scarf> I mean, you box it, then make sure it's Friendly
17:08:51 <MissPiggy> Deewiant, it specifically says it wasn't a cheap trick
17:08:53 <scarf> if it is, then it should have no problem with letting a different AI go singularity
17:08:54 <alise> in between those two, it escapes because it's Unfriendly
17:08:59 <Deewiant> You can't know whether it's Friendly
17:09:15 <Deewiant> MissPiggy: Yes, that's what I meant.
17:09:15 <alise> We cannot be sure of anything
17:09:24 <scarf> yes, the problem is that you can't be sure the first one is Friendly
17:09:25 <alise> but we must prove the AI Friendly multiple times in different systems in different ways before running it
17:09:35 <alise> MissPiggy: because we are fallible
17:09:39 <Deewiant> MissPiggy: But I can't help but think there's /some/ kind of trick involved in making the guy believe that letting it out is better.
17:09:42 <MissPiggy> what use is two proofs compared to one
17:09:42 <alise> we can /always/ have made an error and missed it, or proved the wrong thing, etc
17:09:49 <alise> MissPiggy: because the computerised proof system could have flaws
17:09:59 <alise> and the proof could end up proving the wrong thing, so another way of proving it helps too
17:10:11 <Deewiant> If you have an AI in a box, you should never let it out. Simple as that. You can /never/ know /anything/ about it.
17:10:46 <MissPiggy> the whole point of mathematics is that you can make accurate statements about the infinite mind
17:11:00 <alise> No mind is "infinite", whatever that means.
17:11:04 <alise> Anyway, yes, in mathematics.
17:11:10 <Deewiant> Same thing for anything potentially dangerous like that, really: humans too.
17:11:12 <alise> But our proofs, our proof systems - they are all fallible because we made them.
17:11:34 -!- addicted has quit (Remote host closed the connection).
17:11:35 <alise> Deewiant: anyway, you can know it's Friendly to an acceptable degree of risk
17:11:42 <alise> you work that out /before/ you run it, of course
17:11:46 <alise> and never bother with a useless box
17:12:00 <Deewiant> http://lesswrong.com/lw/uq/ais_and_gatekeepers_unite/ says '2 heavily promoted "victories" (the 3 "losses" are mentioned far less frequently)'
17:12:05 <MissPiggy> "they are all fallible because we made them" -- isn't that a pretty basic fallacy ?
17:12:12 <alise> Deewiant: and EY is human
17:12:14 <alise> transhumans arenot
17:12:15 <MissPiggy> but a CHRISTIAN said it, it must be wrong!
17:12:31 <pikhq> MissPiggy: Yeah, that's a pretty basic one.
17:12:31 <alise> Not only would it be incomprehensibly better at it: it would be faster.
17:12:34 <Deewiant> alise: Yes, as I and MissPiggy have both said, transhumans are fine. I had a problem specifically with EY.
17:12:38 <alise> Two hours with Yudkowsky; seconds with a superintelligence.
17:12:45 <oklopol> MissPiggy: it's not "must be", it's "can be"
17:12:48 <alise> It was just an example that the risk is high, not a proof that EY is transhuman :P
17:12:54 <alise> MissPiggy: transhumans are fine for the ai box
17:12:58 <alise> MissPiggy: also, I meant that
17:13:02 <alise> there is a high risk they are fallible
17:13:02 <oklopol> it can be wrong even if it's claimed by a computer
17:13:04 <alise> because we are fallible
17:13:06 <alise> blah you know what i mean
17:13:14 <MissPiggy> wait what does "transhumans are fine for the AI box" mean
17:13:22 <MissPiggy> I still don't get transhumanism it seems ridiculous to me
17:13:33 <Deewiant> TBH I'm a bit doubtful even of transhumans but transhumanity implies so many things that whatever, I have to accept it as a possibility
17:13:35 <lament> are transhumans like transfats?
17:13:54 <pikhq> MissPiggy: Well, we take a human. And make them more than human.
17:14:06 <alise> I am using transhuman to refer to an entity of greater-than-human intelligence.
17:14:08 <Deewiant> MissPiggy: I meant that we both agreed that if you have an actual superhuman AI, it can win the AI box experiment and get itself let out.
17:14:12 <lament> are you more than human if you have cancer?
17:14:18 <alise> As do all transhumans, substituting intelligence for some other characteristic occasionally.
17:14:31 <alise> The pop-sci definition of transhumanism is just horseshit, we don't want to breed with pigs or anything.
17:14:38 <pikhq> lament: No, still pretty damned human.
17:14:42 <alise> well the /others/ don't
17:15:58 <oklopol> i'm rather sure just giving the computer lots of brains wouldn't make it great at convincing people, sort of like how really smart people can suck at talking to humans. i think it would have to be so smart it could actually study the human brain to learn how humans should act in different situations. sort of how a human wouldn't make a great doplhin no matter how much we studied them.
17:16:03 <scarf> alise: what about this for a theory
17:16:27 <scarf> the reason that transhumans won't exist is to prevent them breaking out of the sandbox which surrounds what we think the Universe currently si
17:16:34 <alise> oklopol: of course a transhuman AI would Know How Humans Work
17:16:36 <lament> the movie avatar basically says that humans would make great dolphins.
17:16:46 <MissPiggy> oklopol: that's an interesting point -- but don't you think the AI could just treat a human as a program (that doesn't have a manual)?
17:16:51 <oklopol> would it study physical brains?
17:16:52 <scarf> as in, we're in a simulation; if we create a transhuman it'll break out /of the simulation/ to the universe outside, and whoever's simulating us is too scared of that to let that happen
17:16:58 <scarf> because /it/ might not be Friendly
17:17:06 <alise> oklopol: it would study how we react to us, and how we reason
17:17:22 <alise> in fact, a superintelligence (superintelligence > transhuman; basically, not only of greater intelligence, of incomprehensibly vastly greater intelligence) could predict how we would react to a situation with near-1 probability
17:17:22 <oklopol> alise: but we can't even figure out how ants work based on watching them
17:17:37 <alise> simply because we are so unintelligent compared to it that it is trivial for it to reason how we would react
17:17:40 <alise> oklopol: because we're humans, not transhumans
17:17:49 <lament> i have incomprehensibly vast intelligence, and i can't really do that
17:17:50 <alise> and so are not intelligent enough
17:18:00 <alise> oklopol: yes, but you need a certain level of intelligence to even do that to any system
17:18:05 <alise> transX != can understand X
17:18:12 <alise> sufficiently transhuman = can understand ants
17:18:22 <alise> even more transhuman = same, but with humans
17:18:28 <alise> superintelligence = can understand just about anything below it
17:18:33 <oklopol> MissPiggy: dunno, i stick to my ants and dolphins.
17:20:10 <lament> i'm vastly more intelligent than your mom. Does that make me transmom?
17:20:13 <alise> "I doubt that there's anything more complicated to the AI getting free than a very good Hannibal Lecture: find weaknesses in the Gatekeeper's mental and social framework, and callously and subtly work them until you break the Gatekeeper (and thus the gate). People claiming they have no weaknesses (wanna-be Gatekeepers, with a bias to ignoring their weakness) are easy prey: they don't even see where they should be defending."
17:20:13 <scarf> alise: is it possible to have something superintelligent enough that it can fully predict its own actions?
17:20:15 <alise> pretty much, I'd say
17:20:19 <alise> though I'm not certain
17:20:31 <alise> lament: well you /are/ male, so you've got the trans bit down
17:20:33 <scarf> alise: that quote is close to what I was thinking
17:20:42 <scarf> everyone has weaknesses
17:20:42 <oklopol> lament: yes, but the technical term for being smarter than her is "even more transmom"
17:20:53 <alise> scarf: we do that all the time, we look into the future
17:21:04 <alise> it can't predict its reaction to situation X without the information it will know at that time, though
17:21:06 <scarf> alise: yep, but we're not very good at it
17:21:17 <alise> it can't predict the unknown future, no matter how intelligent it is :)
17:21:27 <alise> but it'd probably be very good at knowing what it'd do assuming it doesn't change /vastly/
17:21:42 <AnMaster> <scarf> alise: is it possible to have something superintelligent enough that it can fully predict its own actions? <-- err no I doubt that. try predicting: "Will I halt?"
17:21:52 <lament> every time someone in this conversation uses the word 'vast', take a shot
17:22:01 <alise> lament: it's a useful word
17:22:06 <alise> also, rabble rabble bark bark.
17:22:07 <scarf> AnMaster: just because the halting problem is unsolvable in general doesn't mean it's unsolvable in any particular case
17:22:09 <pikhq> lament: That will involve vast quantities of alcohol.
17:22:20 <Deewiant> lament: I beat you to it by a vast margin
17:22:24 <scarf> there are lots of programs that can trivially be shown to halt, or to not halt
17:22:26 <alise> AnMaster: does foo () { foo() } halt
17:22:28 <lament> will i halt? yes *shoots himself*
17:22:39 <alise> AnMaster: warning: you CANNOT ANSWER THIS
17:22:43 <scarf> alise: which language, and does its optimiser do tail-recursion?
17:22:48 <alise> you fucking pedants :)
17:22:48 <AnMaster> alise, I can answer it in befunge ;P
17:22:52 <alise> scarf: irrelevant, infinite memory
17:22:55 <alise> (the latter question)
17:22:58 <AnMaster> scarf, true. Still, it seems unlikely that an AI will be a simple program
17:23:03 <alise> (define (foo) (foo))
17:23:10 <alise> AnMaster: irrelevant
17:23:15 <lament> Am I correct in assuming alise is ehird, because who else would have a female nickname?
17:23:15 <scarf> !befunge foo () { foo () }
17:23:17 <alise> we're not simple programs, we can still predict what we'll do to some extent
17:23:20 <EgoBot> Unsupported instruction 'f' (0x66) (maybe not Befunge-93?)
17:23:32 <alise> lament: Sukoshi-x or whatever she was called :P
17:23:39 <scarf> gah, it spammed me with error messages in an infinite loop
17:23:40 <AnMaster> scarf, in befunge98 as in egobot that will reflect due to file IO being disabled iirc
17:23:42 <lament> sukoshi is not a female nickname
17:23:52 <alise> I forgot the actual name
17:23:52 <scarf> until EgoBot itself halted it
17:23:53 <lament> she's female but the nickname isn't
17:24:00 <AnMaster> scarf, but there will be no stdio in that program
17:24:05 <lament> and no she hasn't been around in years
17:24:08 <alise> (I've been sexed up twice already!)
17:24:10 <scarf> AnMaster: who cares if it reflects or not, given that it has no halt instructions?
17:24:12 -!- kar8nga has quit (Remote host closed the connection).
17:24:23 <oklopol> this one time sukoshi just randomly decided to try to get me to do a programming project with me
17:24:50 <AnMaster> scarf, but it will halt on any real system after some time due to memory running out.
17:24:59 <Deewiant> You should masturbate more often if thinking of a programming project with yourself gets you excited like that
17:25:00 * scarf vaguely wonders if oklopol is the only openly heterosexual person here
17:25:17 <scarf> AnMaster: what does } do if there's no preceding {
17:25:23 <oklopol> can't help it, i love vaginas
17:25:28 <alise> scarf: are you hetero?
17:25:33 <scarf> then it'll just bounce between the } and f
17:25:38 <alise> scarf: then the answer is no.
17:25:41 <lament> i love pickled vaginas
17:25:41 <pikhq> It's been a while since 少し has been here.
17:25:42 <Deewiant> oklopol: It's just that programming by yourself doesn't usually imply them
17:25:43 <AnMaster> scarf, in 98 it won't bounce on the f.
17:25:50 <MissPiggy> was someone saying something about AI?
17:25:51 <AnMaster> scarf, f will push 0xf on the stack
17:25:51 <pikhq> Few years, I think.
17:25:58 <alise> scarf: are you saying that a function call cannot call another function to determine its answer?
17:26:06 <alise> just because human sociality has side-effects...
17:26:17 <oklopol> Deewiant: i'm secretly sukoshi
17:26:23 <scarf> alise: sorry, I've lost the context somehow, there are four conversations going on at once
17:26:34 <oklopol> scarf: pikhq is openly straight
17:26:56 <scarf> I apologise, it's a shame when a conversation ends for a stupid reason like that
17:27:09 <alise> scarf: more than one person openly hetero = do x <- determine scarf's sexuality; make sure x is hetero; return yes!!
17:27:11 <lament> are straight people basically self-hating?
17:27:20 <AnMaster> quick lets start another 5 discussions!
17:27:22 <alise> most people don't find themselves very attractive
17:27:26 <lament> they sublimate their hatred of themselves into liking of the opposite sex
17:27:31 <scarf> that's answering a different question, though
17:28:22 <scarf> lament: I think it varies from person to person; I met a girl once who openly claimed that all men should be straight and all girls should be lesbian or bisexual, on the basis that girls were just that attractive
17:28:22 <oklopol> in fact i'm the only attractive male i know
17:28:40 <alise> scarf: a lot of stupid men are like that :P
17:28:46 <alise> oklopol: at this point, augur cries
17:28:58 <alise> oh wait but a girl?
17:29:01 <alise> i just read that as guy, man, whatever
17:29:05 <scarf> alise: yes, that's what made it surprising
17:29:06 <alise> inferrence engine playing up again
17:29:16 <oklopol> all girls shuold be bi, all men should be bi, and people should live in these big sex communes
17:29:28 <MissPiggy> what do you think a self improving AI program would be written like?
17:29:35 <oklopol> maybe we could just have universities be those communes, that would be a perfect world
17:29:52 <scarf> MissPiggy: it would be written in dubious PHP
17:29:56 <AnMaster> scarf, what is the English word for a train that got thrown of the rails now again?
17:29:58 <scarf> because, people are just that stupid
17:30:00 <scarf> AnMaster: derailed
17:30:03 <lament> MissPiggy: fix improveSelf
17:30:08 <scarf> well, that's more falling off than being thrown
17:30:09 <alise> Clearly, we should all be bi poly switch herms.
17:30:20 <alise> MissPiggy: Complicatedly.
17:30:27 <AnMaster> scarf, ah, can it be used in a metaphorical sense about a discussion (like the Swedish equiv. term can)
17:30:43 <AnMaster> scarf, if so, I think that applies to this/these discussion(s)
17:30:47 <scarf> some idioms survive the language switch
17:30:56 <scarf> OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC
17:31:05 <MissPiggy> scarf because the new one is boring :P
17:31:05 <scarf> if it's being done socially, rather than an actual attempt to achieve somethign
17:31:06 <AnMaster> scarf, hard to know what languages copied/also-invented a given idiom
17:31:14 <lament> i have been trying to derail this one for the past 20 minutes and i'm still not sure i succeeded
17:31:21 <AnMaster> <scarf> OTOH, I don't see why a derailed discussion is necessarily a bad thing on IRC <-- I didn't say that
17:31:24 <scarf> lament: which one?
17:31:26 <scarf> AnMaster: no, you didn't
17:31:30 <AnMaster> and it is quite common in this channel even
17:31:38 <lament> scarf: i don't even want to mention it for fear it might recur
17:31:40 <scarf> just because I say something doesn't necessarily mean I disagree with you
17:31:55 <oklopol> sex stuff is easier on the brain, if i wanted to talk about interesting stuff, i could just be reading my books
17:31:56 <AnMaster> lament, it was probably derailed *before* you began, thus you should probably try to rerail it instead
17:32:02 <oklopol> well technically that's not talking
17:32:22 <oklopol> lament: i agree, this is better for many reasons
17:32:28 <oklopol> MissPiggy: universal algebra still
17:32:37 -!- Azstal has joined.
17:32:52 <oklopol> actually also combinatorics on words and complex analysis and some other stuff
17:33:22 <oklopol> if you're motivated, it's easy to motivate yourself to do pretty much anything
17:33:53 -!- Asztal has quit (Ping timeout: 240 seconds).
17:33:57 <lament> if you're motivated, it's easy to motivate yourself to motivate yourself to be motivated...
17:35:59 <alise> So, tree rewriting.
17:36:10 <AnMaster> this reminds me of that recent xkcd that wasn't a complete disaster
17:36:47 <alise> But also kinda boring.
17:37:05 <alise> Well, it wasn't exactly a unique idea or anything.
17:37:14 <alise> Just "ha ha, it's a silly social situation that amounts to a tautology if you interpret it naively."
17:37:15 <oerjan> Well boring xkcds are kinda boring
17:37:36 <AnMaster> alise, I said it wasn't a complete disaster. I didn't say it was great.
17:37:49 <alise> <scarf> just because I say something doesn't necessarily mean I disagree with you
17:37:50 <alise> <scarf> I'm not alise
17:37:54 <alise> Er, scratch that one.
17:38:15 <AnMaster> alise, perfect quoting there ;P
17:38:26 <alise> It's called a joke. :P
17:38:46 <AnMaster> alise, I somewhat hoped it was unintentional, it would have been funnier
17:39:23 <alise> I think I ought to think more about typed tree rewriting.
17:39:55 <lament> you know what sucks? tree rewriting
17:40:06 <lament> especially if one of your trees is MS Word DOM
17:40:28 <AnMaster> hm wait, it is xml based nowdays
17:40:36 <lament> of course it has a dom
17:40:51 <AnMaster> lament, did old-pre-docx word have a dom then?
17:41:08 <alise> lament: not tree rewriting like that.
17:41:30 <AnMaster> lament, if so, doesn't every document have a dom? possibly even plain text?
17:42:53 <AnMaster> lament, then how do you define a DOM
17:43:08 <lament> a bunch of objects representing something
17:43:14 <lament> plain text only has one object
17:43:19 <lament> so it's a particularly simple dom
17:43:38 <AnMaster> lament, but if the document format is not object based?
17:43:46 <oerjan> you may have DOM but do you have DOOM?
17:43:57 <lament> AnMaster: how can something not be object based?
17:44:21 <lament> kinda stupid to talk about dom in latex
17:44:24 <oerjan> alise: how the heck do you manage to >_< my jokes so quickly
17:44:28 <AnMaster> lament, I was thinking of latex documents without pictures yes
17:44:33 <alise> for being an idiot
17:44:45 <oerjan> impossible, it's the second time today
17:44:46 <alise> "How can you make an OBJECT of something that isn't OBJECT-BASED?? What is this DOM mystery????"
17:45:14 <AnMaster> lament, ps? oh that too indeed. Even more so.
17:45:21 <oerjan> you objectify it, of course. just watch out for the feminists.
17:45:28 <AnMaster> I guess you could consider a page an object
17:45:37 <AnMaster> except iirc it isn't defined like that in the ps code
17:46:42 <AnMaster> alise, but please define a DOM for ps then :)
17:46:53 <alise> You only use the diarrhea^Wdiresis when it's the same letter twice, right?
17:47:26 <alise> So "metaethics" is actually spelt metathics.
17:47:37 <scarf> any two vowels, to show that they aren't a dipthong
17:47:57 <alise> Isn't that ridiculously clunky most of the time? :P
17:48:02 <alise> People will think you're writing in german.
17:48:09 <alise> I do like how premptive looks, though.
17:48:19 * MissPiggy wonders if there is porn of people pretending to be feminists...
17:48:24 <AnMaster> wait, wouldn't it be yöu then?
17:48:31 <scarf> alise: err, really?
17:48:34 <alise> Y isn't a vowel there, I don't think...
17:48:36 <oerjan> gërman ïs just lïkë thïs, rïght?
17:48:38 <alise> scarf: really what?
17:48:38 <scarf> to me it would be coëfficient
17:48:47 <AnMaster> it is a a vowel in Swedish though
17:48:47 <scarf> becaise ie form a dipthong in that word, the way I pronounce it
17:49:02 <scarf> alise: co eff fish shent
17:49:11 <alise> That's one issue with the diresis; your spelling depends on your pronunciation.
17:49:20 <scarf> see, if people put the dipthongs in, people would have consistent pronunciation!
17:49:22 <alise> Dutch uses the same mark in a similar way, (for example cofficint), but for compound words there is now a preference for hyphenation - so zeeend (seaduck) is now spelled zee-eend.[3]
17:49:46 <scarf> pity, that's a great word
17:49:56 <AnMaster> hm is there any unicode symbol for i without the dot?
17:50:06 <alise> This is zeend for you, my duck-loving enemy!
17:50:19 <oerjan> AnMaster: surely, it's a turkish letter
17:50:38 <alise> I guess a good rule for the diresis would be: only use it if replacing it with a hyphen wouldn't look ridiculously silly. "co-effici-ent" looks silly; "co-efficient", I think, doesn't.
17:51:19 <alise> I'd like to write a typomogrifier program that does the boring stuff like smart quotes, but also ae to , oe to , stuffvowel-vowelstuff to stuffvowel(vowel)stuff, etc.
17:51:28 -!- kar8nga has joined.
17:51:30 <alise> Sure, you'd have to write "co-efficient" a lot, but still.
17:51:38 <alise> Also, you could plug in rules, like coefficient -> co-efficient.
17:51:45 <alise> Which would then reduce to cofficient.
17:52:02 <AnMaster> alise, by that logic shouldn't you write dis-able for example? or de-normalise?
17:52:43 <alise> s isn't a vowel, AnMaster.
17:52:49 <AnMaster> oerjan, err, isn't it de-normal-ise?
17:53:07 <AnMaster> of course norm and normal are quite close
17:53:25 <alise> Data point: The New Yorker (though I loathe to follow any rules it prefers, as it's a pretentious rag in general and especially in this area) only uses the diresis for repeated vowels.
17:53:26 -!- Asztal has joined.
17:53:30 <oerjan> now where did i put that figlet *whoosh* again...
17:53:42 <alise> So premptive but coefficient.
17:53:46 <AnMaster> alise, well true. still using a - there doesn't make much sense to me. It seems like co/de/un/re/dis are common modifying prefixes to words in English
17:53:49 <scarf> alise: wait, someone uses the diaeresis /at all/?
17:54:16 <alise> scarf: "Despite its long history in English, the diresis is now increasingly rarely used, with the The New Yorker magazine[2] and MIT Technology Review being prominent exceptions."
17:54:17 -!- Azstal has quit (Ping timeout: 265 seconds).
17:54:23 <scarf> also, why isn't it spelt diæ̈resis?
17:54:31 <AnMaster> <scarf> alise: wait, someone uses the diaeresis /at all/? <--- my reaction too
17:54:36 <alise> because is pronounced
17:54:53 <scarf> alise: no, I mean diaeresis over the æ itself
17:54:59 <scarf> because, it's a separate vowel from the i
17:55:06 <AnMaster> alise, how would you pronounce æ? Same as æ/ä in Scandinavian languages?
17:55:10 <alise> Dye a re-sys is how I pronounce it
17:55:14 <alise> Hmm, you're right.
17:55:17 <alise> But that's just ridiculous.
17:55:20 <scarf> well, I pronounce it dee erri sis
17:55:21 <alise> AnMaster: e, basically.
17:55:23 -!- tombom has joined.
17:55:26 <alise> , is how you pronounce it.
17:55:31 <AnMaster> alise, so quite different then
17:55:34 <scarf> AnMaster: like ae in Latin
17:55:46 <alise> For instance, dmon is pronounced demon, I believe.
17:55:49 <scarf> it's just pronounced like an e sometimes, though, like in that word
17:56:13 <scarf> alise: it's inconsistent, compare "daemon" to "paella"
17:56:27 <alise> http://en.wikipedia.org/wiki/Paella
17:56:29 <scarf> the second comes from Latin indirectly, which goes some way to explaining the discrepancy
17:56:29 <alise> I didn't know either.
17:56:35 <oerjan> i thought paella was paëlla
17:56:56 <alise> Then it's not plla, it's paella.
17:56:58 <scarf> oerjan: it's more like paeëlla
17:57:08 <alise> which does not bode well for my transmogrifier. :)
17:57:18 <alise> You'd just write p{ae}lla, I guess.
17:57:19 <AnMaster> scarf, that looks like something from Finland
17:57:41 <oerjan> "Paella is a Catalan word which derives from the Old French word paelle for pan which in turn comes from the Latin word patella for pan as well."
17:57:44 <scarf> my only conclusion is that English spelling makes no sense
17:58:00 <alise> Paella is not an English word.
17:58:20 <scarf> alise: yes it is, just because it originally came from another language doesn't stop it being English
17:58:24 <AnMaster> scarf, nor does most other languages with a written form of the language that is old enough
17:58:34 <alise> But English is basically the T (top) of languages.
17:58:37 <alise> We encompasserate everything.
17:58:42 <AnMaster> I don't know what age is the limit though, I would guess a few hundred years
17:58:46 <alise> Also, I don't love Compose any more. TeX-style input is better.
17:58:48 <alise> I want to write \top, dammit.
17:58:54 * scarf is relatively certain that "encompasserate" isn't a word
17:59:02 <scarf> but I think I know what it means, anyway
17:59:10 <AnMaster> alise, do you have 4 different ways to spell one and the same sound (which also happens to exist in no other languages)?
17:59:22 <alise> also \"e but that's just a Special Case
17:59:32 * oerjan recalls reading a claim about an indian language which was considered to encompass all of english
17:59:32 <AnMaster> <alise> Also, I don't love Compose any more. TeX-style input is better. <-- easy in ERC ;P
17:59:51 <scarf> AnMaster: probably
17:59:59 <scarf> most sounds in English have something like 10 ways to spell them
18:00:07 <oerjan> scarf: so you're not encompassionate about it?
18:00:07 <scarf> AnMaster: the 4 different ways thing
18:00:17 <scarf> oerjan: ouch, is that even a pun?
18:00:25 <scarf> it feels pun-like, but not exactly fitting the description
18:00:28 <AnMaster> scarf, well okay, but most sounds aren't unique to English though
18:00:55 <scarf> not to mention that vowel sounds are different in different parts of the UK anyway
18:01:07 <scarf> oerjan: stop it, seriously
18:01:23 <oerjan> scarf: am i getting your computer wet?
18:01:26 <AnMaster> scarf, http://en.wikipedia.org/wiki/Swedish_alphabet#Spellings_for_the_sje-phoneme_.2F.C9.A7.2F
18:01:40 <scarf> oerjan: no, I'm feeling physically ill
18:02:13 <scarf> hopefully it's just tiredness rather than bad puns
18:02:23 <scarf> although bad puns have induced similar effects in me before, probably psychosomatic
18:02:32 <AnMaster> scarf, and iirc no other language has that sound basically, possibly apart from Norwegian (looks at oerjan)
18:02:54 <scarf> AnMaster: there are other fun phonemes, like "ly" in Hungarian
18:03:04 <alise> It occurs to me that my linguistic and typographic style is at odds with my sthetics in other areas.
18:03:11 <scarf> which I can even pronounce well enough that a Hungarian would know what I meant, if not well enough to sound anything like a native
18:03:44 <AnMaster> scarf, and what does it sound like roughly?
18:03:48 <scarf> AnMaster: I was in Hungary for a week
18:03:52 <alise> I revel in things like , and direses, but eschew such fancy in my other areas.
18:04:10 <scarf> and start to say l, except you inhale in the middle of it and end with a Germanish j, (rather like an English y)
18:04:18 <AnMaster> scarf, then you picked it up quite quick
18:04:24 <oerjan> AnMaster: i assume you mean sj, which is not the same sound in norwegian. although we _do_ have several spellings for the equivalent (sj, skj, sk)
18:04:28 <scarf> AnMaster: we had lessons on how to pronounce hungarian
18:04:29 <AnMaster> scarf, Germanish j = Swedish one?
18:04:34 <scarf> AnMaster: probably
18:04:45 <scarf> alise: to me, that second letter looks like a half-size s-acute
18:04:53 * oerjan has been practicing swedish sj lately while singing in the shower :D
18:05:01 <scarf> yep, weird encoding issues
18:05:01 <AnMaster> oerjan, can you pronounce a Swedish "sju"?
18:05:08 <oerjan> AnMaster: i _think_ so
18:05:18 <AnMaster> (for the benefit of UK people: sv:sju = en:seven)
18:05:31 <oerjan> the swedish u isn't quite the same as norwegian either, i understand
18:05:42 <oerjan> (ours is middle, not front)
18:05:56 <AnMaster> scarf, heh that came out as <scarf> it's not ś, but [box with numbers in it]
18:06:20 <oerjan> which i _think_ means our u is rarer than the swedish one, i'm not entirely sure though
18:06:25 <scarf> well, I was just pasting what I saw
18:06:36 <AnMaster> oerjan, more like the Finland-Swedish u?
18:06:50 <scarf> woah, I think I just accidentally got first post on a Slashdot article
18:06:57 <scarf> and I even said something vaguely sensible
18:06:59 <AnMaster> oerjan, further back and tongue more curved I think
18:07:34 <alise> what about every other non-sv speaking person?
18:07:40 <alise> US, Canada, Finnish...
18:07:53 <scarf> http://yro.slashdot.org/story/10/02/19/1614216/Jacobsen-v-Katzer-Settled-mdash-Victory-For-FOSS?from=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29
18:07:59 <scarf> I love the literal "mdash" in the URL
18:08:03 <AnMaster> alise, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present
18:08:18 <alise> finland is scandinavian. probably
18:08:31 <alise> and they don't understand swedish
18:08:33 <scarf> jacobsen v katzer's a pretty interesting court case, actually
18:08:43 <AnMaster> alise, none of those people here atm
18:08:49 <AnMaster> in the last two screens for me
18:09:01 <scarf> basically, jacobsen wrote an open source project (licenced artistic licence), katzer completely ripped it off, not complying with the licence, nor even preserving attribution
18:09:06 <alise> <AnMaster> alise, true, but writing "non-Scandinavian" was longer and there did only seem to be UK people present
18:09:09 <alise> even that would be wrong
18:10:07 <AnMaster> alise, ? You mean me and oerjan, well that was given that we understood it
18:10:21 <AnMaster> and I only saw you and scarf in scrollback in addition to that
18:11:11 <alise> that does not stop it being wrong
18:12:00 <AnMaster> sure, log reading, and if they are from US or whatever they could use this info. It is optional to feel bad about doing so.
18:12:28 <alise> you were attempting to provide a strictly-correct alternative
18:12:38 <alise> as opposed to a wrong one; and then gave reasons why you did not say this
18:12:48 <alise> however, you failed the first; "non-scandinavian" would not be correct
18:12:57 <alise> therefore, your statement was not correct
18:13:00 * scarf reads the settlment
18:13:21 <AnMaster> alise, iirc you are taught some Swedish in Finnish schools
18:13:24 <Deewiant> alise: I guess the Finns in here, at least, understand Swedish to a reasonable extent
18:13:42 <alise> Very small second language.
18:14:04 <Deewiant> I don't know how actively scientific-type people tend to forget it after their last compulsory lessons are over
18:15:13 <AnMaster> alise, still, learning to count to ten would be amongst the basic things
18:15:15 <Deewiant> fizzie is older than me and so could weigh in here
18:15:27 <AnMaster> at least from my experience of learning second languages
18:15:49 <scarf> hmm, settlement is that Katzer and his company cannot use the OSS code in question at all, can't register any names similar to it as a trademark, and must pay $100,000 to Jacobsen; further disputes have to go to mediation, with the loser paying all the costs from them
18:16:30 <scarf> and the court's entered the settlement as being legally binding
18:16:35 <AnMaster> alise, so knowing that sju = 7 should probably be pretty common. If it had been some complex word it would have been a different situation.
18:23:57 <alise> I ought to work on my term-rewriting language.
18:24:18 <MissPiggy> alise are you going to self implement it
18:25:22 <augur> alise, you ought to work on a language with a very non-traditional syntax thats only describable by one of the roughly mildly context sensitive grammars ;D
18:25:25 <alise> Uh, the eventual goal is probably that, yes most likely as part of the OS.
18:25:40 <augur> especially those MCSGs that I recently created wiki articles for :D
18:25:54 <AnMaster> alise, I thought you said tree rewriting, not term rewriting a few minutes ago?
18:27:43 <alise> They are the same thing.
18:29:00 <augur> string rewriting and tree rewriting are computationally equivalent; tree rewriting just makes implicit certain string properties that otherwise would be explicit
18:29:26 <augur> further, a string can be viewed as a tree with only one non-terminal node
18:30:22 <augur> and thus string rewriting is a special case of tree rewriting with completely flat trees
18:34:30 <oklopol> oh? tree rewriting lets you do string rewriting in the nodes?
18:35:11 <augur> you rewrite the tree
18:35:32 <augur> its just that the tree is completely flat, with all terminal nodes hanging from a single non-terminal
18:43:02 -!- augur has quit (Ping timeout: 276 seconds).
18:49:04 <fizzie> Deewiant: I had managed to mostly-forget my Swedish very muchly after high-school years, but on the other hand it seemed to come back rather rapidly when I did one course to pass the compulsory Swedish stuff for the university. I don't know how much I'm biased by the fact that my wife speaks Swedish with her relatives, though.
18:50:23 <Deewiant> Did you get an opportunity to get the Swedish credits without taking a course, just doing an exam?
18:52:33 <fizzie> Deewiant: Yes, but I didn't feel certain enough that I'd pass it without problems. In retrospect, I probably would have, since I only sat on the Swedish course lectures -- didn't read ~anything at home -- and got a 5 (out of 5) for the course, and the higher grade of the two possible for the compulsory part.
18:53:30 <AnMaster> fizzie, but even before you forgot most of the Swedish you surely remembered a few words?
18:53:50 <fizzie> Before I forgot, I remembered quite many words, I would say. :p
18:54:00 <AnMaster> fizzie, err, before university I meant
18:54:03 <Deewiant> Even after he forgot, he clearly knew quite a bit
18:54:05 <AnMaster> before you had to remember again
18:54:17 <fizzie> Yes, I am reasonably certain I could have counted to ten.
18:54:20 <Deewiant> Which is to say, he didn't forget as much as it sounded like
18:55:14 <fizzie> Deewiant: I did "long Swedish" (for non-locals: started on third grade, so studied a total of 10 years during compulsory education and high school) before, that might also have had an effect.
18:55:39 <fizzie> Deewiant: On the third (or how many'th this is) hand, Swedish (the long one) was my worst subject in the matriculation examination thing.
18:55:41 <Deewiant> Yes, that is the type of person that generally gets the higher of the two possible.
18:55:57 <Deewiant> Worst, as in, the only one which you didn't get max points on? :-P
18:56:20 <fizzie> No, I actually only got an M out of it.
18:56:31 <alise> i want to rewrite terms fff
18:56:41 <fizzie> (And I don't think I got maximum points from anything else than maths.)
18:56:55 -!- scarf has quit (Remote host closed the connection).
18:57:12 <Deewiant> An M from the long might be equivalent to max from the short
18:57:29 <fizzie> That's possible, I guess. I don't really know the relative difficulties.
18:58:26 <Deewiant> If it weren't then it wouldn't be harder than the short, which wouldn't make much sense. :-P
18:59:43 <fizzie> For non-locals that don't have the same scale; the matriculation examination grade scale here goes I, A, B, C, M, E, L from worst (well, failed) to best; they come from Latin: improbatur, approbatur, lubenter approbatur, cum laude approbatur, magna cum laude approbatur, eximia cum laude approbatur and laudatur.
19:00:06 <fizzie> B and E are rather new grades, though; it used to be just I-A-C-M-L.
19:00:21 <Deewiant> "Rather"? Aren't they a few decades old at least?
19:00:54 <fizzie> B and M in 1970, it seems, so "originally" it was just I-A-C-L.
19:01:31 <Deewiant> I only did Swedish anyway, and in 2005
19:02:14 <fizzie> I did six topics, in 2002 (I think), so E wasn't exactly "new" at that point either, but still.
19:04:32 <Deewiant> Aren't those defined as percentile intervals, by the way?
19:05:15 <fizzie> Yes. Or at least there are official percentile numbers they're aiming at, nation-wide. I'm not sure if they strictly follow it.
19:05:54 <lament> numerical grades are too hard
19:06:01 <lament> it's much easier to remember IABCMEL
19:06:08 <fizzie> Apparently there's also four subclasses of I, denoted "i+", "i", "i-" and "i=". You get "compensation points" from other non-i grades, and if you get enough of them (what "enough" is depends on which one of those four i's it is) you may get a non-fail "i".
19:06:48 <fizzie> (This I either didn't know, or had forgotten.)
19:08:08 <fizzie> lament: It's also nice when some form somewhere asks for an average of these letter grades. There's no completely official way of computing the average; there used to be one, but it was deprecated.
19:08:43 -!- augur has joined.
19:09:18 <fizzie> I really don't know. It was that "yleisarvosana" thing, and it's no longer included in the papers, so it at least feels a bit deprecatedy.
19:09:21 <lament> fizzie: it's almost as bad in north america
19:09:34 <lament> there's something called the GPA, which is a number on the scale from A to B
19:09:47 <lament> i think A is normally zero
19:09:51 <lament> but B varies from one place to another
19:10:15 <fizzie> Deewiant: They added the E grade and removed that at the same time; so the old rules for computing the average don't really work any more, since the E grade is not included in them.
19:10:22 <lament> so when a university asks you for your GPA, they expect you to give it to them in their scale
19:10:43 <lament> but of course they don't tell you what their scale is
19:10:57 <augur> alise: http://en.wikipedia.org/wiki/Indexed_grammar ; http://en.wikipedia.org/wiki/Head_grammar ; http://en.wikipedia.org/wiki/Global_index_grammar ; http://en.wikipedia.org/wiki/Literal_movement_grammar ; http://en.wikipedia.org/wiki/Range_concatenation_grammars
19:11:18 <fizzie> Deewiant: I think I used just the median of my grades when I needed one for the graduate school application. Not that they really cared about that, but the form had a field for it.
19:14:18 <Deewiant> I've always wondered what the point of such is
19:14:57 <Deewiant> If they can verify it, why ask you, and if they can't, they can't use the info for anything important
19:16:12 <fizzie> They certainly didn't ask for the corresponding certificate papers, so I don't think they could verify it.
19:16:33 -!- Wareya has quit (Ping timeout: 256 seconds).
19:16:49 -!- Wareya has joined.
19:35:30 <AnMaster> fizzie, to further mess up things I have my degrees in two different systems
19:36:20 <AnMaster> one for those I read as a CS student, and one for a few other courses I took on the side.
19:36:41 <AnMaster> I hope I never have to calculate average for that. What is average of 5 and VG?
19:42:29 <fizzie> Oh, we have some different systems in the university course grading too (for example, the aforementioned compulsory Swedish is graded either "acceptable" or "good"), but I think all not-in-the-standard-1-to-5-scale grades are ignored when computing the average.
19:44:16 -!- cheater3 has joined.
19:44:41 <fizzie> Deewiant: I think they are also officially ignored by the thing that computes the final diploma averages. Certainly they're ignored in the record transcript printout.
19:45:05 <Deewiant> There's an average in the record transcript? I haven't noticed.
19:45:45 <AnMaster> <fizzie> Deewiant: I think they are also officially ignored by the thing that computes the final diploma averages. Certainly they're ignored in the record transcript printout. <-- why? because they couldn't figure it out either?
19:46:01 <Deewiant> Because there is no sensible mapping
19:46:24 <Deewiant> How would you map pass/fail to a numeric grade?
19:46:32 <AnMaster> Deewiant, you could look at what is "not passed" "passed" passed with excellence" in the various systems
19:46:40 <AnMaster> Deewiant, in our numerical system fail is 1 or 2
19:46:45 <Deewiant> Typically there's only one, pass
19:46:46 <fizzie> Deewiant: I wouldn't mind a 0/5 mapping. :)
19:46:54 <Deewiant> Fail isn't included in the transcript
19:47:03 <AnMaster> Deewiant, we have two pass in the letter system. Or 3. Think it is only 2 at university
19:47:05 -!- cheater2 has quit (Ping timeout: 246 seconds).
19:47:45 <fizzie> Swedish is the only one on my transcript that's not 0-5 or pass/fail; it has that fail/acceptable/good tri-valued thing.
19:47:48 <AnMaster> fizzie, 0/4 seems more reasonable if same as here
19:47:49 <Deewiant> Mapping it to 5 is sensible in some ways but it has the unfortunate effect of raising everybody's averages :-P
19:48:46 <fizzie> Ooh, I'd know a lot of people who'd hate a 0/4 mapping; those people for whom averages are Serious Business, and a 0/4 mapping would drag them down a lot, since there's quite a number of compulsory pass/fail courses.
19:49:15 <Deewiant> Yes, that's why you can't really map it to anything other than 5.
19:51:39 <Deewiant> So it really is most prudent to just ignore them in averages :-P
20:01:17 <Sgeo> alise, should I stop attempting to remind you? I vaguely recall you saying that it wasn't the plan anymore
20:01:50 <alise> We are waiting on a response from the advisor-in-matters-regarding-lawsomes first.
20:04:59 <oklopol> i was pretty annoyed at out swedish course being fail/2/4
20:05:59 <AnMaster> <Deewiant> So it really is most prudent to just ignore them in averages :-P <-- err. Why not change them to use the same system as the other ones?
20:06:06 <AnMaster> I mean, one single system would make more sense
20:06:38 <AnMaster> oklopol, why were you annoyed at that?
20:07:22 <oklopol> AnMaster: what fizzie said
20:08:49 <Deewiant> AnMaster: Well, that's a separate issue
20:08:56 <Deewiant> While we have them, it's best to ignore them
20:13:01 <AnMaster> Deewiant, has no one suggested that you all change to one system?
20:13:28 <AnMaster> oklopol, with enough other courses that you get 5 in your average would approach 5
20:13:38 <AnMaster> and if you then round to 4 decimals you could get 5
20:14:05 <Deewiant> I don't know if it's been suggested
20:14:14 <oklopol> i think it's 5 now, if you round to one decimal
20:14:28 <oklopol> but 4 would require about a thousand courses
20:14:43 <AnMaster> oklopol, well sure. rounding to 1 decimal is probably saner anyway
20:15:05 <AnMaster> just write it as 5.0 then (or 5,0 if you use decimal comma like in Sweden)
20:20:35 <alise> can anyone think of a better computational model of the reals than floating point?
20:20:52 <alise> i.e. fast, but without such inanity as breaking such fundamental mathematical laws as equality and... just about everything else
20:20:55 <alise> well it's not reals i guess
20:21:19 <oklopol> floats are an inexact model of the rationals
20:21:22 <alise> just rationals, except with a less stupid representation than 314159/100000
20:21:30 <alise> erm maybe off by one with the zeros there
20:21:31 <alise> oklopol: yeah i know
20:21:40 <oklopol> computable reals are closer
20:21:45 <alise> yar i mean rationals really
20:21:50 <alise> Deewiant: fixed point breaks mathematical laws doesn't it
20:22:05 <alise> i guess you can overflow to (Z,Z)
20:23:08 <alise> i just want a pony :)
20:23:38 <alise> really I just want something that programmers everywhere could replace every occurrence of "float" in their code with, and think "gee, my program runs a bit slower but suddenly I don't feel like cthulhu is resident in all my values any more"
20:24:42 <alise> like, if I have a fancy dependently-typed functional language I want to require rings to come with a proof of of a*(b+c) = (a*b)+(a*c)
20:24:55 <alise> and floating point doesn't let me do that, because it is a bad person and hates mathematics.
20:25:08 <alise> (at least, I think NaN fucks with that example; if not, substitute one it does fuck with)
20:25:24 <MissPiggy> well you can just define = to be rougly equal??
20:25:55 <MissPiggy> I mean people write programs that use floats which compute with error bounds so ... it's not like it returns a random answer
20:26:07 <alise> no, = should mean /equal/
20:26:08 <oklopol> but then it isn't an equivalence relation and cthulhu is totally present again
20:26:27 <MissPiggy> you can quotient by an equivalence relation
20:26:38 <alise> I mean, "Rational" satisfies the "Cthulhu has left the building" constraint but not the "gee my program isn't a /billion/ times slower" constraint
20:26:48 <Deewiant> alise: You have to define "programmers everywhere", some programs do rely on float behaviour (and others on their HW-speed)
20:26:59 <alise> MissPiggy: I don't care, it's still Really Surprising Behaviour when the rulez are broken
20:27:04 <alise> and it restricts how I can optimise, for one
20:27:17 <alise> Deewiant: Well, those programs aren't written in my glorious languages :P
20:27:42 <Deewiant> If you only meant yourself, just use fractions of arbitrary precision ints
20:28:01 <Sgeo> Dear Google Calendar: Unless you're planning on making Google Maps work with SLUrl for virtual locations, please don't bother making a map link.
20:28:14 <Sgeo> (Although it's really a trivial issue I guess *shrug*)
20:28:17 <alise> Deewiant: The reason I don't want that is that it's... well... not fast.
20:28:27 <alise> Not on today's CPUs, at least.
20:28:42 <Deewiant> Do you have programs that rely on the speed of that enough for the difference to be noticeable?
20:30:25 <Deewiant> alise: If you want something non-Lovecraftian, it'll be slow.
20:30:32 <alise> Admittedly I'm just /assuming/ that rationals are pretty slow, because people don't use them.
20:30:39 <alise> Deewiant: Yes, but not /glacial/.
20:31:24 <alise> Hmm. What's the issue with:
20:31:36 <Deewiant> If overflow is a problem then it'll be pretty glacial I'm afraid :-P
20:31:54 -!- cheater3 has changed nick to cheater4.
20:32:11 <alise> fixed-point with compile-time dynamic size (and run-time too for bigfloats)
20:32:15 <MissPiggy> It's possible to write correct programs that are efficient!
20:32:24 <alise> using the smallest integer representation that can store all the values of that size
20:32:39 <alise> that's lesser than reals, e.g. you don't get 1/3
20:32:45 <alise> Deewiant: compile-time or run-time
20:32:50 <alise> if run-time, increased on overflow
20:32:54 <alise> like int->bigint conversion
20:32:56 <Deewiant> And often enough it'll be run-time and hence glacial
20:33:23 <Deewiant> This is equivalent to what I said modulo implementation details :-P
20:34:50 <alise> Not as glacial as (Z,Z)
20:35:50 <MissPiggy> what the hell are you talking about
20:36:00 <MissPiggy> listen, people do something called NUMERICS
20:36:01 -!- zzo38 has joined.
20:36:07 <MissPiggy> and when they do that they find algorithms which
20:36:29 <oerjan> alise: what about numbers of the form m/2^n ? that's at least a ring
20:36:48 <oerjan> and should be fairly fast since floating point is
20:37:00 <oerjan> (here i'm intending unbounded n)
20:37:12 <zzo38> Do you know the computation class for [[Hyper Set Language]]? I think it is at least turing complete because you can implement the S and K combinators. But is more than turing complete? Or is something make it less?
20:37:56 <alise> oerjan: erm can that represent 3.14159?
20:38:07 <alise> admittedly i'm not thinking very clearly about this, some sort of mental block prolly :P
20:38:29 <oerjan> zzo38: this a set language? if you can define the halting set, then you'd be super-TC is my intuition.
20:38:59 <zzo38> oerjan: That is what I am asking, too. Do you think there is a way? If you read it, try to figure out if you can figure out anything from it, if you want to
20:39:04 <zzo38> http://esoteric.voxelperfect.net/wiki/Hyper_Set_Language
20:39:07 <oklopol> alise: it's just storing an arbitrary number of bits
20:39:17 <oerjan> alise: if you want all field equations (and dividing by 10^n generalizes to dividing by any natural number), then you pretty much force the rationals to be an exact subset
20:39:44 <alise> er, superset surely
20:39:57 <oerjan> (assuming 3.14159 = 314159/100000 there)
20:40:10 <oerjan> no, subset. you get at _least_ all rationals
20:40:50 <alise> so basically, the question is "what is an efficient representation for the rationals"
20:41:11 <alise> (m,2^n) at least, intuitively /seems/ faster than (m,n)
20:41:11 <zzo38> With natural numbers represented as sets, the less than operation is easy, A is less than B if A is an element of B.
20:41:47 <alise> wait wait, I'm not seeing the values for m and n to get 3.14159, prolly doing something stupid
20:42:23 <Deewiant> http://www.shoeboxblog.com/?p=15314
20:43:25 <alise> Prelude> 314159 / (2 ** 16.61)
20:43:30 <alise> presumably m and n : Z, though
20:44:23 <oklopol> you can store some of the correct first digits of pi, just like with base 10.
20:44:40 <alise> right, but not 3.14159 *exactly*
20:44:56 <MissPiggy> it is just GIVING UP if you think you can't do correct and efficient programs
20:45:08 <MissPiggy> yes it's difficult, but if you think it's impossible you are educated stupid
20:45:14 <oerjan> alise: of course not, 314159/100000 is in smallest terms
20:45:24 <oklopol> oh wait what the hell is that .16 about
20:45:24 <oklopol> or actually the whole thing
20:45:24 <oklopol> you can, you just need a lot of bits
20:45:28 <alise> MissPiggy: we shouldn't have to fuck about with representations for hours just to get something that runs before the universe is o'er, and that is correct
20:45:42 <zzo38> I think you can represent reals as sets by making it a set of all the natural numbers that are the bit positions in the real that are set
20:45:44 <alise> Prelude> 314159 / (2 ** 16.609640474436812)
20:45:55 <oerjan> you cannot get rid of the prime 5 factors in the denominator
20:45:59 <MissPiggy> alise, I don't do numerics either but it's a really important part of computing and without it nothing would work well
20:46:04 <alise> MissPiggy: we know
20:46:18 <alise> Deewiant meant if you want correctness /in general/ it's glacial
20:46:23 <alise> rather than inventing special representatiosn each time
20:46:24 <oklopol> no wait, i'm being completely retarded atm
20:48:16 <oerjan> zzo38: are you familiar with any of the usual constructions of real numbers as sets?
20:48:39 <alise> computable reals are nice apart from the whole lack of equality thing
20:48:42 <oerjan> well i guess yours works as one of them
20:48:55 <zzo38> oerjan: No, I am not familiar with that
20:49:37 <alise> oerjan: wait how is (m/2^n) more efficient than (m/n)?
20:50:03 <oerjan> alise: yeah it's mostly like binary then...
20:50:17 <MissPiggy> m/2^n + u/2^v = (m(2^v)+(2^n)u)/2^(n+v)
20:50:39 <oklopol> with n/m, you have to keep doing gcd
20:50:49 <oerjan> and those multiplications are shifts
20:50:50 <MissPiggy> oh except for 2^v & 2^n has to be computed..
20:51:12 <oklopol> so stuff like addition are really slow
20:52:14 <alise> the problem is that this representation doesn't seem to have many of the numbers humans like :(
20:52:27 <alise> at least floats "usually" are pretty similar to decimals if you stick to obvious things
20:52:40 <alise> of course that's no real objection, just a human one
20:52:48 <alise> this isn't a subset of the rationals
20:52:57 <alise> you can't represent 314159/100000
20:53:18 <oerjan> you are swapping sub and superset
20:53:26 <alise> it has to be a superset
20:53:49 <oerjan> i said, if you want all field equalities
20:54:10 <oerjan> including division. m/2^n only supports addition, subtraction and multiplication exactly
20:54:13 <alise> I guess (Z/Z) is the best for me then
20:54:21 <alise> which doth make me sad
20:54:57 <oklopol> how does it support division
20:55:04 <MissPiggy> alise but you don't care about nice looking numbers, all that matters is being within some tolerance of them
20:55:06 <oerjan> on the bright side, you at least can have equality work exactly with those
20:55:09 <MissPiggy> and the output of the algorithm is too
20:55:18 <MissPiggy> and this is not 'impossible to do efficiently'
20:55:19 <oklopol> somewhere in there i read it supports division
20:55:33 <MissPiggy> it's not like you have to have lots of dynamic checks all over, you just have to do a lot of hard analysis
20:55:52 <MissPiggy> it's nontrivial stuff, that's why you can't just make a field out of it
20:55:55 <alise> MissPiggy: of course, but a human will be sad if he punches in 1.33333 and gets something like 1.01725 back
20:56:07 <MissPiggy> well yeah that is why I use an exact calculator
20:56:16 <alise> with floats they're at least, you know, close enough
20:56:24 <MissPiggy> but a calculator is different than numerical algorithms
20:56:26 <alise> I guess I'll just totally love rationals
20:56:31 <alise> MissPiggy: yes but they need specialised code anyway
20:56:42 <MissPiggy> I don't use them without a lot of hard work on paper
20:56:44 <alise> I'm talking about the main thing you get when you think "oh I need sum division here"
20:57:07 <alise> yeah i don't like floats
20:57:10 <oklopol> MissPiggy: you program satellites or something?
20:57:47 <zzo38> What are the usual constructions of real numbers as sets?
20:58:16 <alise> my OS/language is going to be so amazing :|
20:58:33 <oerjan> i think once you go beyond the four arithmetical operations you quickly lose exact equality no matter what you do. for example, afaik it is unknown whether pi*e is rational, so you might hit a case where you cannot decide pi*e == p/q
20:58:35 <MissPiggy> zzo38: the normal one I know about is cauchy-convergent sequences of rational numbers.. so it's basically a list of fractions that tend toward some real number (each one being within a smaller tolerance of it)
20:58:56 <alise> oerjan: well you cannot represent "pi" or "e"
20:59:01 <alise> only approximations to some tolerance
20:59:03 <zzo38> MissPiggy: OK, I guess that's one
20:59:09 <MissPiggy> zzo38: but there's also some different constructions like in constructive-math you can represent them as programs which print out the n'th digit in finite time
20:59:10 <alise> actually this ties into my idea for implementation types
20:59:13 <oerjan> alise: you might in some representations
20:59:18 <oklopol> unknown whether e*pi is rational? 8|
20:59:19 <alise> you have an (opaque) value pi or e or 1/3 or whatever
20:59:23 <alise> oklopol: yeah it is
20:59:24 <MissPiggy> zzo38: of course adding them produces a new progam etc etc
20:59:32 <alise> oerjan: and an opaque type Real
20:59:35 <zzo38> MissPiggy: Yes, that too is one, like something
20:59:38 <oklopol> it's not known whether e+pi and i think e*pi is algebraic, but rational, that was new to me
20:59:44 <alise> oerjan: and at compile-time, you plug in some acceptable representation for it
20:59:47 <alise> like Float or Rational
20:59:58 <alise> and it uses the definitions of pi or e or 1/3 for that type
21:00:00 <oklopol> e*pi might be easier for algebraic
21:00:00 <MissPiggy> zzo38 (that's not really set theory though but I just thought that's a cool way)
21:00:00 <oerjan> zzo38: dedekind cuts are one. you then first construct the rationals and then a "cut" is a splitting of all rationals into two sets with the left set elements smaller than all the right set elements
21:00:11 <alise> so you write code that you can prove correct but cannot wrong (because e.g. it does = on computable reals)
21:00:17 <oerjan> and the boundary between them is always a real number
21:00:21 <alise> and substitute elsewhere whatever representation is acceptable
21:00:41 <MissPiggy> alise: no you can't just write a correct program on R and then use it with floats
21:00:45 <zzo38> I think in Hyper Set Language I could write a code that converts the represent as programs which print out the n'th digit into the one I specified at first, too
21:00:47 <oklopol> in any case it's definitely known e*pi is irrational, it just hasn't been proven
21:00:50 <alise> MissPiggy: of course it won't be correct on floats
21:00:55 <alise> which is why you specify an _acceptable_ type manually
21:00:59 <alise> maybe you're ok with floats
21:01:03 <alise> maybe you want rationals
21:01:12 <alise> maybe you want computable reals because you don't use = and don't care about speed
21:01:12 <oerjan> oh and MissPiggy mentioned cauchy sequences which i was thinking of next
21:01:28 <alise> you can't /know/ something that isn't proven
21:01:32 <alise> you can strongly suspect it, though
21:02:12 <oerjan> oklopol: oh maybe it's just algebraic that is unknown for them, i'm not sure
21:02:37 <oklopol> well, pi and e algebraic is a deep result, e and pi irrational is trivial
21:02:50 <oerjan> alise: oh, that makes me realize, you can also represent all algebraic numbers exactly. even more complicated though i presume.
21:03:04 <alise> oerjan: just do it symbolically? :P
21:03:17 <alise> that's how CASs do all this funky number stuff ofc
21:03:34 <MissPiggy> oerjan, I guess you cuold just list them as polynomials + an index (which root) ?
21:04:17 <MissPiggy> actually that wouldn't really help because how do you compute the new index
21:04:59 <oklopol> oerjan: not known whether e+pi or e/pi is irrational according to internet
21:06:21 <oerjan> alise: using polynomials they are roots of, plus some interval boundaries to distinguish different roots of the same one, i think that would work
21:06:32 <MissPiggy> hey that would be weird.. if it was undecidible whether e+pi is trancendental
21:06:43 <alise> why would that be weird
21:07:05 <oerjan> MissPiggy: what are indexes?
21:07:08 <lament> personally i can't decide if it would be weird or not
21:07:24 <oklopol> lament: but do you agree it'd be beautiful?
21:07:24 <MissPiggy> but that seems like a bad way to distinguist
21:08:16 <oerjan> oklopol: does that mean e*pi _is_ known?
21:08:34 <MissPiggy> http://planetmath.org/encyclopedia/LindemannsTheorem.html
21:08:37 <alise> what logic systems need is an FFI to other logic systems
21:09:11 <MissPiggy> alise hehe we should get them to trust each other
21:09:28 <MissPiggy> I saw an attempt at converting HOL proofs into Coq that was pretty heavy
21:10:26 <oerjan> MissPiggy: i'm not sure there is any pretty way to distinguish them. different roots of primitive polynomials are algebraically indistinguishable, afaik (galois theory), so you need some order or the like
21:11:09 <MissPiggy> oerjan I don't know galwah theory :(
21:11:15 <oerjan> <alise> what logic systems need is an FFI to other logic systems <-- kripke models!
21:11:23 <MissPiggy> Though seemingly innocuous, a proof of Schanuel's conjecture would prove hundreds of open conjectures in transcendental number theory.
21:11:34 <alise> oerjan: of course we need some sort of trust-metric between them all
21:11:41 <alise> so we can import proofs from other systems that we can't prove in our system
21:11:47 <alise> but only if they pass a certain Bullshit Factor
21:11:54 <alise> whose intention is to weed out the bullshit.
21:12:05 <oerjan> MissPiggy: well the point here iirc is that there are field automorphisms of C that map one root onto any (?) other
21:12:37 <oerjan> (one _given_ root, there may be restrictions on pairs and such)
21:13:47 * oerjan recalls having fun using kripke models to prove things were not intuitionistic tautologies
21:15:37 * MissPiggy wishes to know more about that but I watched a lecture on kripke models a while ago and did not get it
21:16:26 <oerjan> well let me try to recall an example
21:16:50 <oerjan> say the well-known intuitionistic non-tautology A or (not A)
21:18:25 <oerjan> you make two world's, one in which A is false, one in which A is true, with the former being less than the latter
21:19:00 <oerjan> then in the former, not A is _also_ false, since there exists a larger world in which A is true
21:19:33 <oerjan> and A or (not A) is then also false in the former, since or combines in each world
21:19:54 <oerjan> ergo: A or (not A) is not a tautology
21:20:29 <AnMaster> oerjan, I didn't quite get that either.
21:20:56 <oerjan> in intuitionistic propositional logic
21:21:00 <AnMaster> oerjan, or basically it sounds like a load of bullshit worthy of that recent xkcd about proving from invalid axioms ;P
21:21:20 <alise> *worlds not world's
21:21:35 <MissPiggy> but oerjan it is not a tautology so you have proved it is now the world explodes??
21:21:55 <oerjan> MissPiggy: i have proved that it is _not_ a tautology
21:21:58 <alise> AnMaster: yeah xkcd to rebut valid mathematical techniques, sounds like a funny joke to me
21:21:58 <MissPiggy> A or (not A) is ***not*** a tautology
21:22:05 <MissPiggy> kinda important to read ALL the worlds, sorry about that!
21:22:12 <alise> read all the worlds
21:22:55 <MissPiggy> oerjan, this is a metatheorem though?
21:23:09 <MissPiggy> oerjan, I mean you couldn't prove this internally, using a constructive logic could you?
21:23:10 <oerjan> because by some mumble mumble theorem, a proposition is an intuitionistic tautology if it is always true in every world of a kripke model satisfying the mumble mumble requirements
21:23:37 <AnMaster> <alise> AnMaster: yeah xkcd to rebut valid mathematical techniques, sounds like a funny joke to me <-- I wasn't trying to joke nor rebuting it
21:23:53 <AnMaster> just commenting upon how insane it sounded to someone who isn't a specialist
21:23:56 <oerjan> MissPiggy: well i guess not, but then you cannot do that with boolean logic either...
21:24:03 <alise> Then what were you doing? Either you think it's bullshit or you think it isn't.
21:24:14 <AnMaster> alise, see the line I said just after that
21:24:30 <alise> ";P" would imply you don't think it's bullshit and are attempting to make a joke; commenting upon how seemingly insane it is counts as a joke attempt, because it's meant to be taken non-seriously in a humorous way.
21:24:30 <AnMaster> unless you have ~10 seconds of lag, in which case I pitty you
21:24:53 <alise> <- Well, it's a start, Pure, but I think you can simplify that a wee bit.
21:25:02 <alise> AnMaster: you do it a lot :P
21:25:14 <AnMaster> alise, I don't think I use that word very often though
21:26:43 <AnMaster> oerjan, when is that type of logic that proves A or (not A) to not be a tautology actually useful?
21:27:06 <alise> I schooled you, son.
21:27:10 <alise> Now yo a clever bitch of a rewriter.
21:27:12 <oerjan> AnMaster: when you want to find out what are the intuitionistic tautologies?
21:27:23 <alise> oerjan: i think AnMaster is assuming that (a or not a) is actually a tautology "IRL"
21:27:31 <alise> thus his inquiry; just heuristics, though
21:27:53 <AnMaster> I was wondering what sort of other math stuff this is used for
21:27:59 <AnMaster> oerjan, and why do you want to do that?
21:28:10 <MissPiggy> AnMaster, metatheoretic investigation of foundational questions
21:28:10 <oerjan> AnMaster: also, i believe there are other forms of kripke models for some other logics (e.g. modal ones?)
21:28:57 <oerjan> AnMaster: this _did_ start out with alise's comment about logics needing FFIs for each other...
21:29:01 <AnMaster> oerjan, how do you pronounce "kripke" btw?
21:29:17 <alise> yes, Pure, turns out that's true also.
21:29:27 <oerjan> AnMaster: i think it's german. or wait was he american?
21:29:33 <AnMaster> oerjan, FFI in this context being? All I can think of is foreign function interface, which makes no sense here.
21:30:00 <oerjan> http://en.wikipedia.org/wiki/Saul_Kripke
21:30:29 <oerjan> AnMaster: i think that _was_ the intended meaning. how to call one logic from within another.
21:30:50 <oerjan> kripke models allow you to speak about intuitionistic truths in classical logic, say
21:31:01 <AnMaster> alise, interesting language. Did you provide a few rules and it then did various simplifications on it basically?
21:31:02 <alise> > (x+y==y+x) = true;
21:31:02 <alise> > (x*y==y*x) = true;
21:31:12 <alise> AnMaster: Yeah; basically, you define tree -> tree rewritings.
21:31:17 <AnMaster> alise, sounds like perfect to write a CAS in.
21:31:19 <MissPiggy> alise make it do partial fractions
21:31:20 <alise> Then you give it a tree and it rewrites it recursively.
21:31:26 <alise> AnMaster: exactly; this kind of stuff is the base of CASs
21:31:27 <oerjan> the bastard is still alive :D
21:31:44 <MissPiggy> alise please :(((( think of my homework!!
21:31:52 <alise> MissPiggy: fine what do you want it to aftually do
21:32:20 <AnMaster> alise, what is the complexity of this way of computing.
21:32:21 <MissPiggy> alise seriously partial fractions are cool I would be interested in seeing it in a rewrite language because it seems slightly less trivial than just simplification
21:32:33 <alise> AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous
21:32:56 <AnMaster> alise, well true. I realised it was badly worded. But I can't think of another way to phrase it
21:33:03 <MissPiggy> alise partial fractions is tne name for turning stuff like 1/((x+a)(x+b)) into P/(x+a) + Q/(x+b)
21:33:14 <MissPiggy> you have to solve for P and Q, and do it for more general cases..
21:33:14 <alise> The naive algorithm is slow (evaluating the innermost trees first, look for rewrite rules that match the tree; pick the most specific one (e.g. biggest or least free variables), replace with right hand side, repeat)
21:33:18 <alise> But there are better algorithms
21:33:21 <AnMaster> alise, given that you rewrite it recursively it sounds like some stuff would be rather inefficient to implement in it
21:33:31 <alise> Pure isn't naive; it compiles to LLVM and all.
21:33:38 <MissPiggy> 21:32 < alise> AnMaster: You can't ask for the "complexity" of a paradigm, that's ridiculous
21:34:01 <MissPiggy> maybe paradigm isn't the right thing
21:34:29 <alise> "What is the complexity of tree rewriting" doesn't make sense because it depends on the complexity of the computation
21:34:42 <MissPiggy> but stuff like mutable vs non-mutable and complexity completeness results are quite deep theorems in programming
21:34:46 <AnMaster> alise, what is the complexity of the best known algorithm for it then?
21:34:58 <oerjan> alise: apparently now ghc will also compile to LLVM, i hear
21:35:06 <alise> AnMaster: Still a meaningless question
21:35:12 <oerjan> not that i would know, never having downloaded it *ducks*
21:35:15 <pikhq> oerjan: It's replacing -fvia-c.
21:35:28 <alise> It makes me believe that it is likely that you do not understand the difference between complexity and speed on today's CPUs.
21:35:48 <AnMaster> alise, if I had meant to ask about that I would have asked about that
21:36:13 <alise> Then your question makes no sense.
21:36:16 <AnMaster> and the latter would vary a lot
21:36:20 <alise> AnMaster: what is the complexity of brainfuck?
21:36:38 <AnMaster> alise, what is the complexity of a given way to implement bf
21:36:48 <AnMaster> set the "given way" to "best known"
21:36:54 <alise> AnMaster: That question makes no sense at all.
21:37:00 <oerjan> now someone implement brainfuck with tree rewriting
21:37:11 <alise> AnMaster: What is the complexity of a naive implementation of Brainfuck?
21:37:14 <MissPiggy> how would you do that (in a cool way)
21:37:20 <pikhq> AnMaster: I don't think you can have algorithmic complexity of non-algorithms. ;)
21:37:22 <AnMaster> alise, first define the naive implementation
21:37:29 <MissPiggy> http://qwiki.stanford.edu/wiki/Complexity_Zoo:R#re
21:37:32 <alise> MissPiggy: define the different stuff as operators
21:37:36 <lament> kripke is an observant jew
21:37:38 <AnMaster> pikhq, oh right algorithms must terminate or how was it?
21:37:40 <lament> matisyahu is an observant jew
21:37:43 <alise> then you can generate bf programs with symbolicness
21:37:43 <AnMaster> well okay on that thing it fails
21:37:50 <lament> therefore, kripke is cool
21:37:52 <alise> and reason about them
21:37:56 <alise> AnMaster: no, pick one implementation
21:38:04 <alise> AnMaster: tell me how you would work out "its complexity"
21:38:08 <alise> hint: this question is /completely meaningless/
21:38:23 <MissPiggy> alise what about my answer? (RE) is that not correct?
21:38:54 <alise> MissPiggy: is that the complexity of the evaluation function, though?
21:39:01 <alise> I mean, yes, technically
21:39:04 <alise> but I don't think it's what AnMaster means
21:39:14 <MissPiggy> yeah it's not what he means I know that :P
21:39:16 <alise> he's trying to say "how much OVERHEAD does tree rewriting imply"
21:39:28 <alise> which is nonsensical too, s/tree rewriting/a given implementation of tree rewriting/
21:39:31 <alise> then rigorously define overhead
21:39:33 <alise> then maybe i can answer
21:39:50 <alise> we need a co-RE language
21:40:10 <MissPiggy> there's probably classes of algorithms in tree rewriting that have asymptotically lower efficiency than in a language with mutable reference
21:40:28 <MissPiggy> by _result I can't remember the name of ;_;_
21:40:40 <alise> you can have a tree rewriting language with mutable references, of course
21:40:51 <oerjan> MissPiggy: that lisp vs. pure lisp link from the other day?
21:41:03 <AnMaster> MissPiggy, tree rewriting can be mutable in place? Huh?
21:41:31 <AnMaster> alise, that seems rather messy
21:41:35 <MissPiggy> oh well I am probably wrong about that statement
21:41:43 <alise> Pure has side-effects
21:41:43 <oerjan> alise: that's graph rewriting then, isn't it
21:41:46 <alise> causes no issues at all
21:41:58 <alise> oerjan: well you consider references externalities usually but yeah
21:42:12 <alise> or other ways of modelling state
21:42:31 <AnMaster> alise, passing the state along all the time?
21:42:40 <AnMaster> doesn't solve the issue with IO though
21:42:57 <alise> You just model that as a data structure with continuations.
21:43:04 <alise> You can sugar it from inside the language.
21:45:01 <alise> this is a solved problem
21:55:30 <alise> computer modern is beautiful
21:58:32 <oerjan> incidentally "modern" means the mom in some norwegian dialects
21:59:20 <Deewiant> And Swedish, though it's probably archaic
21:59:42 <oerjan> could be a swedish loan, actually
22:02:24 <AnMaster> it means both modern and "the mother" in Swedish. And yeah somewhat archaic
22:03:36 <Deewiant> Different pronunciation for the two meanings though
22:07:49 <AnMaster> Deewiant, does English have that?
22:08:02 <AnMaster> one spelling, different ways to pronounce, different meanings
22:08:23 <Deewiant> http://en.wikipedia.org/wiki/Homograph
22:09:27 <augur> http://en.wikipedia.org/wiki/Generalized_context-free_grammar
22:10:01 -!- jcp1 has joined.
22:10:11 <oklopol> "oerjan: oklopol: does that mean e*pi _is_ known?" <<< if e*pi was known, then e/pi would also be
22:10:20 <AnMaster> Deewiant, actually isn't it instead http://en.wikipedia.org/wiki/Heteronym_%28linguistics%29 ?
22:11:05 -!- jcp has joined.
22:11:05 -!- jcp has quit (Remote host closed the connection).
22:11:14 <oerjan> oklopol: not if it was known _not_ to be rational
22:11:32 <oerjan> although if it were algebraic, the other one couldn't be
22:12:12 -!- zzo38 has quit (Quit: Ceci n'est pas une pipe).
22:12:32 <oerjan> AnMaster: (ir)rational, actually
22:13:06 <Deewiant> AnMaster: Right you are, that's more specific
22:13:10 <AnMaster> oerjan, any transcendental (sp?) number would be irrational right?
22:13:27 <oerjan> yeah but the point it isn't known to be either
22:14:15 <AnMaster> oerjan, but I can tell you something: it isn't an integer ;P
22:14:52 <oerjan> incidentally e^pi is algebraic
22:15:24 <AnMaster> wasn't that used to prove that pi is transcendental or something?
22:15:34 <AnMaster> that doesn't sound quite correct
22:17:20 <AnMaster> oerjan, something that confused me is the computable/non-computable number thingy
22:18:29 <alise> someone was trying too hard to be pretentious when writing this
22:18:29 <alise> In Attic Greek drama, a character in the play, as very often a deity, stood forward or appeared from a machine before the action of the play began, and made from the empty stage such statements necessary for the audience to hear so that they might appreciate the ensuing drama. It was the early Greek custom to dilate in great detail on everything that had led up to the play, the latter being itself, as a rule merely the catastrophe which had inevitably to en
22:18:30 <alise> sue on the facts related in the prologue. The importance, therefore, of the prologue in Greek drama was very great; it sometimes almost took the place of a romance, to which, or to an episode in which, the play itself succeeded.
22:18:59 <alise> AnMaster: chaitlin's constant is a real
22:19:01 <alise> it is not computable
22:19:09 <alise> (well, a given instance of it)
22:19:35 <AnMaster> alise, "the latter being itself" quite throw me off first time I read that sentence...
22:19:36 <alise> basically, RR contains unknowable elements.
22:19:46 <alise> AnMaster: I still haven't managed to read that paragraph!
22:19:55 <AnMaster> alise, it was fine up until that point
22:20:09 <alise> http://en.wikipedia.org/wiki/Computable_number
22:20:10 <AnMaster> after that it just makes no sense
22:20:11 <oerjan> a real number x is computable if there is a computable function f:N -> Q such that |f(n) - x| < 1/n
22:20:29 <oerjan> or so i think. there are probably many equivalent definitions
22:20:30 <alise> Ω is indeed one of the examples given
22:20:46 <oklopol> "oerjan: now someone implement brainfuck with tree rewriting" <<< i think i did that too with one of my tree rewriters, it's not like it's hard, just carry around a tape
22:21:09 <AnMaster> alise, some that is familiar from what I read elsewhere, it helps
22:21:30 <AnMaster> <alise> AnMaster: chaitlin's constant is a real <-- oh right
22:21:34 <MissPiggy> oklopol what about doing it without carrying tape?
22:23:15 <MissPiggy> can you push say > 3+ > 4+ > 6+ > through [1- > 7+ <] to get a program with one less loop?
22:23:35 <oklopol> so what modern is both modern and ancient in swedish
22:24:19 <AnMaster> oklopol, I didn't understand that
22:24:20 <oklopol> "oerjan: oklopol: not if it was known _not_ to be rational" <<< that's why err
22:25:17 <alise> MissPiggy: esotope does thinsg like that
22:26:28 <alise> http://code.google.com/p/esotope-bfc/
22:26:36 <MissPiggy> can it evaluate a brainfuck program without making a tape?
22:26:40 <alise> it also compiles hello-world-with-loops to a puts call :)
22:26:51 <alise> http://code.google.com/p/esotope-bfc/wiki/Optimization
22:26:54 <alise> MissPiggy: not just hardcoding
22:26:58 <alise> it really can do that kind of reasoning
22:28:29 <oklopol> MissPiggy: i don't get your "push say" thing
22:28:32 <MissPiggy> haha that compiler is such a hardcore optimizer that you have to use a specially fast tool to run it
22:28:44 <MissPiggy> oklopol, I just mean like partial evaluation or something, but all the way
22:29:25 <alise> MissPiggy: well, you don't want to evaluate all non-input-dependent code
22:29:30 <alise> because it might not terminate
22:29:41 <alise> what you _want_ to do is evaluate all code that you can automatically prove to terminate
22:29:58 <alise> maybe even all code that you can automatically prove to terminate and also determine that its "complexity" is below a certain bound
22:30:08 <alise> so that compilation doesn't take fifty-billion years just because execution does
22:30:11 <MissPiggy> I know you can just evaluate the program, then turn the tape into a >+ program that generates it -- but I was hoping it could be done without using a tape as intermediate
22:30:30 <AnMaster> <alise> it also compiles hello-world-with-loops to a puts call :) <-- that is quite trivial
22:30:38 <AnMaster> MissPiggy, I can describe the algorithm to do that
22:30:49 <MissPiggy> AnMaster did you read the documentation ???????????
22:30:59 <AnMaster> MissPiggy, I coded something very similar myself
22:31:11 <MissPiggy> AnMaster cool don't you have the code?
22:31:26 <AnMaster> MissPiggy, mine is rather buggy, but it is coded in erlang
22:31:31 <alise> MissPiggy: he had to ask the author of esotope how the extended euclidian algorithm worked :)
22:31:45 <alise> it was basically a copy with a more ad-hoc structure, AnMaster says it did better on some programs but those were pathological
22:32:01 <AnMaster> yes for that algorithm, I was not as smart back then
22:32:01 <alise> why am I not surprised you said that :)
22:32:13 <AnMaster> basically, figure out constants based on that the tape is at the program start all zero, then ++ means that "set 2" you can treat [-] and [+] as set 0 and do the same
22:32:18 <alise> wait you are now? why didn't somebody inform me :(
22:32:49 <AnMaster> MissPiggy, you convert >> and << to offsets and only actually move the pointer just before an unbalanced loop (where you can't figure out the offset easily)
22:32:58 <oerjan> alise: they had a singularity in sweden, but they're keeping it under wraps
22:33:03 <AnMaster> MissPiggy, now those constants can also be propagated to output
22:33:29 <AnMaster> MissPiggy, you need to unroll constant iteration loops of course
22:33:41 <AnMaster> each loop can be represented as a polynomial
22:33:45 <MissPiggy> okay I will just implement this then
22:33:57 <MissPiggy> what how do you represent them as polynomials?
22:33:58 <AnMaster> MissPiggy, well, each non-IO balanced loop that is
22:34:30 <oklopol> does the compiler optimize random access?
22:34:33 <oklopol> that's the only thing that matters
22:34:46 <AnMaster> MissPiggy, based on the loop counter, if you have [>++<-] you can figure out that the current position will be zero after but the next will be twice the current value
22:34:57 <AnMaster> if the next cell was zero before
22:35:03 <AnMaster> otherwise you add it instead of set it
22:35:18 <oklopol> i mean sure it's cool to compile constants into constants, but you could just do that by running the program
22:35:20 <AnMaster> augur, trivial, early merging would take care of ><
22:35:24 <oklopol> as pointed out infinite times
22:35:26 <AnMaster> then you get an unbalanced loop
22:35:32 <alise> oklopol: not without risking halting
22:35:34 <augur> AnMaster: BUT WOULD IT TAKE CARE OF THE FISH
22:35:41 <alise> or, if you solve that, extremely long execution times
22:35:48 <augur> MissPiggy: http://en.wikipedia.org/wiki/Generalized_context-free_grammar
22:35:49 <alise> erm *risking non-halting
22:35:50 <MissPiggy> I just realized this is exactly the same as having a type...
22:35:59 <alise> oklopol: nondeterministic, and less effective than this
22:36:03 <augur> actually, check out all of the pages i recently made. grammars :D
22:36:11 <MissPiggy> because as you evaluate the program you build up a data like >+++>+++++>+>+>+>>+++>>+++
22:36:15 <oklopol> who gives a shit, point is it's not an important optimization
22:36:17 <MissPiggy> which is just a data structure that represents a tape!
22:36:17 <AnMaster> MissPiggy, of course if you can figure out the value before at that tape position then it is trivial
22:36:46 <MissPiggy> augur, nice I just saved a big list of pages you made to read
22:36:47 <AnMaster> MissPiggy, you basically sort it. I used gnome sorting. which means swap if possible then take one step back, step forward if you can't swap
22:37:10 <alise> "I deliberately used a joke sort algorithm"
22:37:12 <AnMaster> MissPiggy, it is a stable sort (important) and it is easy to add quite complex restrictions to how you are allowed to swap
22:37:47 <AnMaster> alise, it is quite fast in practise for this, plus easy to implement with the various restrictions. And it isn't a joke
22:37:53 <AnMaster> just not one of the very fastest ones
22:38:39 <AnMaster> because I have never heard of that before
22:38:47 <alise> http://www.cs.vu.nl/~dick/gnomesort.html
22:38:49 <alise> clearly tongue-in-cheek
22:39:17 <AnMaster> btw, I only learned the name after I implemented it
22:39:29 <oklopol> tongue in your mom's cheek
22:40:13 <AnMaster> "It is conceptually simple, requiring no nested loops. The running time is O(n²), but tends towards O(n) if the list is initially almost sorted.[1] In practice the algorithm can run as fast as Insertion sort."
22:40:48 <AnMaster> and for most bf programs you can't reorder the whole thing due to unbalanced loops
22:41:04 <AnMaster> nor can you move stuff freely across a balanced loop
22:41:20 <oklopol> there are fast stable sorts
22:41:21 <AnMaster> until you figure out if they depend on each other
22:41:42 <AnMaster> oklopol, true, but can you do such complex conditions easily? Also it gave adequate performance for this case
22:42:20 <AnMaster> MissPiggy, anyway I gave up on the project when I got stuck on graph based optimisation
22:42:30 <AnMaster> didn't know enough about that sort of thing to make it actually work
22:42:39 <alise> i want project fortress, agda and pure to have sex
22:42:44 <alise> and produce a beautiful, beautiful language baby
22:42:50 <AnMaster> but not really interested in taking it up again
22:43:04 <oklopol> AnMaster: probably you could just have intelligence in your swap and < functions.
22:43:30 <AnMaster> oklopol, it all depends on what is between them
22:43:47 <AnMaster> alise, "project fortress"? never heard about that one before
22:44:01 <lament> alise: dog. spare dog legs. nails.
22:44:10 <alise> http://projectfortress.sun.com/
22:44:12 <MissPiggy> maybe we should bring then on a double date?
22:44:25 <AnMaster> MissPiggy, btw mine dropped those calls to set cells in the final version. One pass was to look from the end of the program and delete dead stores
22:44:34 <alise> implicit parallelism, yar. two-dimensional mathematical syntax with beautiful latex rendering, yar
22:44:39 <AnMaster> then if tape was never used it's variable was never declared
22:44:41 <oklopol> sleeeeeeeeeeeeeeeeeeeeeeeep ->
22:44:41 <alise> cool typing stuff, yar
22:44:48 <alise> totally sweet, yar
22:45:07 <AnMaster> shouldn't it be in that mix too
22:45:13 <alise> if you want a systems programming language
22:45:20 <alise> i myself have transcended such petty desirse
22:45:21 <AnMaster> alise, oh and smalltalk and haskell
22:45:29 <alise> agda includes the desire for haskell by being superior to it
22:45:39 <alise> (though not suitable for practical programming, that is irrelevant when language-mating)
22:45:47 <alise> smalltalk is a nice OOP language, but you don't need it if you have a nice functional paradigm
22:45:54 <alise> because it's superior
22:46:01 <AnMaster> alise, so mix them up and produce a bastard language
22:46:03 <alise> adding columns is more important than adding rows in the expression problem, so FP wins
22:46:12 <alise> AnMaster: no, I'd rather mix fortress, agda and pure :P
22:46:19 <AnMaster> alise, why not haskell as well?
22:46:47 <alise> because agda subsumes the haskell desire, by being superior to it
22:46:59 <alise> although not practical for real-world, boring programming, this is irrelevant when language-fucking.
22:47:00 -!- augur has quit (Ping timeout: 260 seconds).
22:51:47 <alise> fortress' syntax is so sexy though.
22:51:53 <alise> http://projectfortress.sun.com/Projects/Community/attachment/wiki/MathSyntaxInFortress/fortify-example.png
22:52:21 <MissPiggy> alise I have been spending fucking ages trying to get a repl with TeX display for my CAS :(
22:52:32 <alise> MissPiggy: try texmacs?
22:52:43 <alise> it's designed for things like that
22:53:31 * alise wonders why the syntax for fractions is what it is
22:53:33 <alise> as opposed to a division operator
22:53:43 <alise> I guess because you can view p/q as a constructor for rationals
22:54:45 <alise> MissPiggy: the really cool stuff happens when you type ascii code and get beautiful output on the go, though
22:58:38 <AnMaster> alise, does fortress use monads?
22:58:53 <alise> well, it could if you made it
22:58:54 <AnMaster> looking at the language it does seem quite cool
22:59:01 <AnMaster> and somewhat easier to learn than haskell
22:59:15 <AnMaster> a mix of imperative and functional in part even
22:59:16 <alise> easier to learn relative to what
22:59:21 <alise> it's not functional it's just mathematical
22:59:30 <AnMaster> alise, that explains part of it
22:59:42 <alise> http://pastie.org/833520.txt?key=ed3ghdi8fhelh3aot8jsw ;; my dream-land perfect editor for a rich-notation language
22:59:50 <alise> format is input\ndisplay as ascii
23:00:17 <alise> only because it's ascii
23:00:25 <alise> IRL it'd be totally smooth
23:00:31 <alise> yeah i prolly will
23:00:40 <alise> http://projectfortress.sun.com/Projects/Community/wiki/ViscoElastic more fortress syntax porn
23:00:53 -!- oerjan has quit (Quit: Good night).
23:02:14 -!- kwertii has joined.
23:03:37 <alise> http://projectfortress.sun.com/Projects/Community/wiki/FortressCommentSyntax Fortress has the most advanced commenting system of any language, ever. You can embed rendered Fortress code, tables... and images.
23:03:54 <alise> And I think it's about bloody time we had expressive comments.
23:04:22 <MissPiggy> I'm never going to use FORTRAN again!
23:05:59 <AnMaster> alise, is it for rendering to html or similar?
23:06:06 <AnMaster> alise, I usually read comments in the source
23:06:26 <alise> Fortress programs are considered as publications, pretty much. Ideally, you editor would show your code in the rendered form directly.
23:06:39 <alise> Anyway, the wiki-ish markup is perfectly readable in source code. Put it in a paper or publish it on the internet and it'll shine.
23:07:36 <AnMaster> alise, the {{{ }}} is somewhat annoying
23:07:56 <alise> Yes, but it's a rare construction.
23:08:43 <AnMaster> not in the page on it's markup though
23:13:12 <alise> AnMaster: hey i'm making a js demonstration of it too
23:25:22 <alise> MissPiggy: are you interested, at least? :P
23:25:36 <alise> a js demonstration of how I think editing should be done
23:26:01 <MissPiggy> how is that not something that will take a very long time??
23:26:14 <alise> well i mean it just shows you the entering of one single expression :P
23:26:32 -!- SimonRC_ has quit (Ping timeout: 246 seconds).
23:32:10 <alise> MissPiggy: ok, go to http://pastie.org/833571.txt?key=seg549im36wsbitxw8dug, copy the whole contents, and paste it into your address bar and go there
23:32:37 <alise> it'll play a 13.5 second demonstration of first, inputting the expression a[2^n]
23:32:42 <alise> and then navigating back through it
23:32:50 <alise> keyboard input on top, editor display on bottom
23:34:08 <alise> the basic idea is, you know how in texmacs you're using the cursor keys all the time just to step in and out of things?
23:34:32 <alise> so i try and display all the relevant information on-screen at all times
23:34:43 <alise> and if you input a symbol you input a matching symbol to complete it
23:35:00 <alise> in fact, if it weren't for the ) to terminate the ^, and you could get around that by e.g. making it terminate when x^y in ascii source would,
23:35:08 <alise> you'd write the ascii source and see the fancy source, directly
23:36:20 -!- SimonRC has joined.
23:37:04 -!- kar8nga has quit (Remote host closed the connection).
23:37:11 <alise> MissPiggy: indeed the ascii representation need not even be stored
23:37:25 <alise> in the case of my OS, you could live a long and productive life without ever causing any code to be represented as ascii text in memory in any way
23:38:53 <alise> process keyboard input to direct the editor, store internally as ast
23:39:01 <alise> a superset of the regular ast
23:39:05 <alise> because it allows incomplete expressions
23:39:15 <alise> or rather, allows a marker in an expression that denotes that it is not complete
23:39:25 <pikhq> alise: Ah, the data: URI.
23:39:42 <alise> pikhq: couldn't find an htmlpaste.com :)
23:39:49 -!- oklopol has quit (Ping timeout: 260 seconds).
23:40:58 <alise> MissPiggy: i think i'm going to diverge from regular mathematical notation a lot anyway
23:41:06 <alise> division symbol instead of fraction notation
23:41:23 <alise> sqrt() instead of the sqrt symbol
23:41:34 <alise> basically reducing the number of unique notations, they're mostly pointless
23:41:36 <MissPiggy> alise, hehe well you can fix all the HORRID crap they have in mathematical notation
23:41:55 <alise> what's wrong with abs(x), no I mean seriously, what is wrong with abs(x)
23:42:38 <lament> there're different norms but their notations are similar so you can tell they're all norms
23:42:46 <alise> I guess I am being a bit silly, because I'm retaining 2^n as superscript
23:42:56 <alise> perhaps I should use \uparrow, as does knuth
23:44:36 <tombom> normal mathematical notation???? BARF
23:44:43 <tombom> actually is || ambiguous like so much else
23:44:52 <alise> yeah that's why i'm totally fixin' it
23:45:02 -!- oklopol has joined.
23:45:08 <MissPiggy> hm I like superscripts and subscripts
23:45:21 <MissPiggy> it's nice to be able to adorn symbols with notes
23:45:23 <alise> MissPiggy: but why? why are + and * symbols but the next operator a superscript?
23:45:35 <alise> i don't mind super- and subscripts, but why use them for exponentiation?
23:45:47 <MissPiggy> so being infix operators expresses that, notationally
23:45:48 -!- tombom has quit (Quit: Leaving).
23:45:49 <alise> but it's still an operator
23:46:03 <alise> and we have plenty of infix ops that aren't associative in programming... like ->
23:46:05 <MissPiggy> I think the reason for exponents is because like
23:46:21 <lament> let's fix math because it's broken
23:46:24 <MissPiggy> there's a kind of homomorphism between * and +
23:46:29 <alise> homoerotic morphism
23:46:36 <MissPiggy> and I think the superscript is a nice way to do it
23:46:42 <alise> maybe you're right
23:46:52 <alise> it means that you can't really have complex expressions on the RHS of ^, though
23:46:53 <MissPiggy> I don't know... someone who thinks harder about syntax coulb probably give a really good explanation
23:46:56 <alise> you can with + and * etc
23:47:01 <alise> so that kind of sucks in a way
23:48:50 <alise> 2^(1/2 + 7/n - 44) for instance
23:48:54 <alise> would just look ugly
23:49:06 <MissPiggy> yeah well it does come up in real situations so deal with it
23:49:19 <alise> why deal with it when i can make the notation better?
23:50:09 <alise> I guess ^ is better for short things, though
23:50:16 <alise> 2^n is less cluttered than 2uparrow n
23:50:39 <Sgeo> alise, late pong
23:50:53 <alise> Sgeo: just wanted to host something nm now :P
23:52:35 <alise> my language will be so sweet
23:53:45 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:53:58 <oklopol> there's exp() for when the expression is complicated
23:54:45 -!- jcp1 has quit (Remote host closed the connection).
23:55:10 <alise> oklopol: i do not believe in exp()
23:56:16 <oklopol> you don't believe exponentiation is well-defined, if you're using that syntax?
23:56:27 <oklopol> because if so, then i'm totally with ya
23:56:42 <alise> i don't believe in that syntax!