00:05:06 <ehird> Who wants to test my magical dice roller?
00:11:39 <ehird> Asztal: GregorR oklopol
00:11:50 <ehird> pikhq. Sgeo. your mom.
00:12:24 <GregorR> ehird ehird ehird ehird ehird ehird ehird ehird ehird
00:12:44 <ehird> GregorR: WILL YOU TEST MY IMMUNE-TO-CHEATING IRC-BASED DICE SYSTEM <3
00:13:05 <ehird> it's just copy&pasting ;_;
00:13:10 <GregorR> Because you lamepinged me :P
00:13:22 <ehird> GregorR: Because nobody is onlinnnnnnnnnnnnne
00:13:30 <Jiminy_Cricket> I'll test it, ehird, as long as it doesn't require too much thought.
00:13:50 <ehird> Jiminy_Cricket: If you're on a UNIX-like system with Python, then the rest is just copy&paste from the output of a script
00:14:15 * GregorR stares at his beautiful running Python interpreter.
00:14:33 <ehird> Jiminy_Cricket: Oh. I could make it use the equiv. to /dev/random, but, tomorrow.
00:14:42 <ehird> OKAY SO HERE'S WHAT YOU HAVE TO DO
00:15:02 <ehird> I'll give you an initial line, which will be 'roll <sides> <sha1 hash>'
00:15:09 <ehird> Run 'python roll.py <sides>' and paste my line in.
00:15:17 <ehird> You'll get another line back. Paste it to the channel.
00:15:24 <ehird> FInally, I'll paste the result line.
00:15:33 <ehird> Paste that into the script, if it prints OK, no cheating has happened!
00:15:50 <ehird> For being my side, add an additional argument of 'alice', and do the same paste/copy dance.
00:15:56 <ehird> This could be automated in a client.
00:16:03 <ehird> GregorR: AND HERE IS THE SCRIPT
00:16:19 <ehird> GregorR: http://pastebin.ca/raw/1228858
00:16:30 <ehird> roll 100 e1d33f5e2ac718ae227cf58ace285a9dfc7c49f0
00:17:39 <GregorR> Hrm, wait, I think I borkled it a bit.
00:17:53 <ehird> GregorR: Did you run it with the second argument being 100?
00:18:00 <GregorR> Therein lies the problem :P
00:18:08 <ehird> you rolled the empty string?
00:18:22 <ehird> final roll 51 (YQjgBLnVeM3sGFNfrdTOEQV622w3S7K6tnEIEeNVLQVPw7HHBrQM3jISxYhY42oLIeU=)
00:18:55 <ehird> If that prints 'OK', then the final rolled number is 51.
00:19:20 <ehird> GregorR: Now let's do that fast, to simulate a real-world situation.
00:19:24 <ehird> roll 100 cf620c82c9c9941ffee2e101b6383a2916515c5e
00:19:47 <GregorR> I suck at copy/pasting aparently.
00:19:48 <ehird> final roll 18 (ATjJBwI1F4Mp9KM2Kq3qLpoTwCG4sM7huK20GBLQeNWKEXUXEGLj6EQ9Ko31htPtoQ8=)
00:20:14 <ehird> Here's, basically, how it works:
00:20:23 <ehird> It gets 50 bytes of random data from /dev/random.
00:20:30 <ehird> It seeds a prng with them.
00:20:38 <ehird> It generates a random number from 0 to (sides/2).
00:20:46 <ehird> It then gives you the hash of the seed.
00:20:57 <ehird> Then, the other side does the same but prints out the number in plaintext.
00:21:16 <ehird> Then, when 'alice' gets the number, it adds them together, and prints out the result, along with the base64-encoded text of the 50 random bytes.
00:21:27 <ehird> When 'bob' puts in that,
00:21:37 <ehird> it verifies that the base64 version hashes the same as the original hash
00:21:49 <ehird> then it seeds the prng with the bytes
00:21:56 <ehird> and generates a random number, etc
00:22:03 <ehird> and checks that it's equal to (final_result - bobs_number)
00:22:09 <ehird> (because, with the same seed, it should be the same, of course)
00:22:20 <ehird> this assures that the original number was not tampered with after seeing yours
00:22:35 <ehird> and since both halves are involved in the creation of the final number,
00:22:41 <ehird> one single party can't cheat to get a number to their advantage
00:22:46 <ehird> (unless they can predict another system's /dev/random... :P)
00:23:06 <ehird> GregorR: Neato / not neato
00:23:39 <ehird> Jiminy_Cricket: :o
00:23:57 <ehird> Anyway, I'd say the above ain't bad for a 48 lines script
00:24:45 <ehird> Jiminy_Cricket: Like you wouldn't cheat if, online, you were tasked with rolling the die and there was a certain number that would make you win :-P
00:24:54 <ehird> Although a game with something like that would be hideously imbalanced.
00:25:06 <ehird> Anyway, this'd be improved with a client plugin that does it.
00:25:24 <ehird> So you could do /roll myotherperson 100 and the two clients would go through the motions.
00:25:35 <Jiminy_Cricket> I don't generally play games in the first place that involve dice rolling
00:25:48 <ehird> Jiminy_Cricket: But what about your secret government intercepting mission plot?!
00:25:51 <ehird> HOW WILL YOU DO THAT
00:26:16 <ehird> That is some lame die
00:30:22 <ehird> GregorR: You be alice this time?
00:30:31 <GregorR> No, the exploit is on the bob side X-P
00:30:39 <GregorR> (If I understand how this works)
00:30:43 <ehird> roll 100 33248a78e79acc6449bc3a33f8cfe091fca71de1
00:31:01 <GregorR> I would love for this roll to be below 50, so I'm gonna go ahead and say
00:31:12 <ehird> final roll 22 (bKog8Sj6d+Drz08+aVajVZaRPgFCWL4HtggJZPAFSn1hkdUL2bPB6IMnOj67H4bRhUQ=)
00:31:14 <ehird> Well, yeah, that works.
00:31:18 <ehird> But you can't actually precisely do anything.
00:31:28 <GregorR> No, but usually it's the range you care about.
00:31:32 <ehird> GregorR: it's easy to fix
00:31:36 <ehird> instead of two /2 numbers added
00:31:42 <ehird> have two full numbers, added together, modulo.
00:32:09 <ehird> That means the final answer has to have another field
00:32:20 <ehird> it means it's unworkable, I think
00:32:39 <ehird> GregorR: How do you get a from ((a + b) % x) if you know b and x??
00:32:56 <ehird> is it even possible :|
00:33:01 <ehird> or am i having a brainfart
00:34:30 <GregorR> I know multiplication is not generally reversible, but addition should be.
00:34:51 <GregorR> (y-b)%x where y was your result?
00:37:51 <ehird> GregorR: oh, right
00:37:53 <ehird> i'll do it tomorrow
00:52:08 -!- sebbu has quit ("@+").
01:11:33 -!- CakeProphet has joined.
01:44:06 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
01:45:15 -!- CakeProphet has joined.
03:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | after I... squash the countless bugs..
03:13:40 <GregorR> I couldn't find the one voted for so I wore my porkpie.
03:24:50 <GregorR> Then you should fly in on Saturday :P
03:32:54 <Asztal> interesting... the newest noscript gives me "Clickjacking" warnings on choosemyhat.com if I click outside the table... o_O
03:33:07 <Asztal> seemingly randomly, too
03:35:22 -!- immibis has joined.
03:36:51 <fungot> immibis: is there a way to
03:36:54 <fungot> immibis: when i flunk out of life, the universe and everything
03:37:08 <immibis> fungot you're not part of life the universe and everythingh
03:37:08 <fungot> immibis: and there's the configuration edition thingie, at least
03:37:23 <immibis> fungot yeah that config edition is really stupid
03:37:24 <fungot> immibis: now, we have a /pub for images and such
03:42:33 -!- CakeProphet has quit (Connection timed out).
04:23:32 -!- ab5tract has joined.
04:24:18 <ab5tract> fungot bring da mthfckn ruckus
04:24:18 <fungot> ab5tract: ( how did the day turn out, points of contention here:
04:24:33 <fungot> ab5tract: oy vei. don't have that
04:24:48 <ab5tract> seems you got plenty to me friend.
04:45:38 <ab5tract> honored to take part, if you end up going with hasp
05:03:19 <ab5tract> i like the reflecting compare, but i also like the 'C|-' syntax. would it be totally unreasonable to ask for both?
05:38:17 -!- Elizabot has joined.
05:46:00 -!- Elizabot has quit (Read error: 104 (Connection reset by peer)).
05:52:10 -!- Elizabot has joined.
05:52:20 -!- psygnisfive has quit ("Leaving...").
06:12:09 <fungot> elizabot: Hi. elizabot: Hi.
06:12:12 <fungot> Elizabot: or, more properly, in python
06:12:12 <Elizabot> fungot: What does that suggest to you ?
06:12:13 <fungot> Elizabot: or set-car! to a non-char type analysis ( so you always get a car later)
06:12:13 <Elizabot> fungot: Can you think of a specific example ?
06:12:14 <fungot> Elizabot: part of your colon?
06:12:14 <Elizabot> fungot: Why are you concerned over my colon ?
06:12:14 <fungot> Elizabot: i'm still on the todo list, but it was
06:12:15 <Elizabot> fungot: Is it because you are still on the todo list that you came to me ?
06:13:26 -!- immibis has quit (Client Quit).
06:16:58 -!- psygnisfive has joined.
06:20:19 <fizzie> ehird: You get a%x from (a+b)%x if you know b and x; doesn't matter, of course, if you limit yourself to numbers in [0, x-1]. And if you noticed, I did use numbers [0, 19] for d20 precisely for that reason.
06:33:43 -!- Elizabot has quit (Read error: 110 (Connection timed out)).
06:46:14 <ab5tract> fungot: insane in the membrane
06:47:47 <fizzie> Your first comment crasheded it. I _really_ need to debug that bug.
06:47:51 -!- fungot has quit (Read error: 131 (Connection reset by peer)).
06:48:15 -!- fungot has joined.
06:50:01 <ab5tract> fizzie: is it allergic to cypress hill?
06:50:10 <ab5tract> fungot: insane in the membrane
06:50:10 <fungot> ab5tract: great that you found a new spot?
06:50:39 <ab5tract> i feel that way too. #esoteric is my ideal place to be fungot, thank you for noticing
06:50:40 <fungot> ab5tract: i always start with a
06:51:17 <fizzie> That one, yes. Since it's in the babble-generation code, it probably doesn't depend on the input; it just happens pretty rarely.
06:51:27 <ab5tract> fizzie: how would you imagine the ideal funge ide
06:51:49 <ab5tract> do you think it would be possible to write a funge ide in funge
06:52:13 <ab5tract> assuming AnMaster comes through with the erlang threads
06:52:16 -!- olsner has joined.
06:52:17 <fizzie> Not without some GUI toolkit binding fingerprint, no. Although there's WIND, but that's windows-only and so very primitive.
06:52:45 <ab5tract> are there any gooey kits for erlang?
06:53:07 <fizzie> Don't know about Erlang; I'm sure there are, most languages seem to have bindings.
06:53:15 <ab5tract> but theoretically it would be possible
06:53:38 <fizzie> Okay, maybe a text-based funge IDE, with TERM... but I think a GUI thing would have more opportunities for displaying things.
06:53:43 <ab5tract> i have a pretty good idea of how i would want to use it
06:54:38 <ab5tract> it needs to be able to render the broader map
06:55:37 <ab5tract> and then various levels of zoom and with a heirarchical fingerprint/method list
06:55:56 <ab5tract> that way we could really start talking advantage of this 32-bit address space
06:56:09 <ab5tract> which we might as well bump up to 64 for fun :)
06:56:40 <ab5tract> and the 3-d mode for trefunge...
06:56:50 <fizzie> Doesn't cfunge already do that? At least it does 64-bit cells, it only stands to reason the cell addresses are 64-bit too.
06:57:06 <ab5tract> they have to be equal to fit spec
06:58:05 <fizzie> Well, the spec says "A Funge-98 interpreter, *ideally*, has an addressing range equal to that of its cell size." [emphasis mine] so maybe it's not a must.
06:58:24 <fizzie> Still, given how AnMaster is, I'd be surprised if it didn't.
07:34:08 -!- kar8nga has joined.
07:36:14 -!- kar8nga has quit (Client Quit).
07:39:08 -!- ab5tract has quit.
07:40:29 <pikhq> GregorR: My roommates think that you look like a princess in your Egyptian Kofia.
07:40:33 <pikhq> Thought you should know.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:44 -!- oerjan has joined.
08:14:51 <bsmntbombdood> how do you force interpretation of a language to be parallel?
08:15:31 <oerjan> did i or did i not mention that concurrency was one of my weak points yesterday?
08:17:10 <oerjan> although it surely depends on what you mean by 'force', since any parallel computation can be simulated on a sequential computer, just slower
08:18:08 <bsmntbombdood> can you force interpretation of a program with n instructions to take exp(n) times longer than a reasonable language?
08:19:42 <oerjan> i'm not sure parallel execution is enough to speed n instructions up by exp(n).
08:19:53 <oerjan> looks more like an NP oracle thing
08:21:31 <oerjan> er... so the program is making a choice in each instruction, and the threads are used to do all options for all choices simultaneously
08:22:29 <oerjan> hm that may be a bit more than NP, but probably not more than PSPACE
08:23:00 <bsmntbombdood> the same way you convert a nondeterministic fsm to deterministic fsm
08:23:23 <oerjan> however in any case it is still an unsolved mathematical problem whether any of those are actually intrinsically slower
08:25:19 <oerjan> oh and maybe if the parallel threads can communicate you can get something harder
08:25:33 <oerjan> you want an EXPTIME problem.
08:30:23 <bsmntbombdood> maybe a syntax that takes exponential time to parse
08:32:40 <oerjan> well general grammars (more than context-free) are TC to parse
08:32:59 <oerjan> and context-sensitive are PSPACE-complete
08:38:56 <ais523> bsmntbombdood: forcing parallellism is one of the things I'm dealing with in my University 4th-year projects
08:50:13 <ais523> <AnMaster> DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT! DRAFT!
08:50:15 <ais523> hmm... I like the way that some people seem to disregard such warnings anyway
08:51:28 <oerjan> draft can be dangerous to your health you know. there was this norwegian woman who ended up with a painful disease that ruined her face...
09:07:08 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | he says there's nine bytes of padding.
09:09:37 <oerjan> that's a bit close for comfort
09:17:42 <oklopol> but, i think i've found a way to do numbers now
09:17:53 <oklopol> and by that i mean, assign rationals to the vars
09:18:01 <oklopol> and perform division and multiplication between them
09:18:10 <oklopol> but let's start with syntax
09:18:16 <oklopol> am i interrupting something?
09:18:29 <oklopol> aaanyway, the syntax, currently, consists of just a list of variables
09:18:36 <oklopol> there are four ways to denote a variable
09:18:51 <oerjan> argh my silent meditation, you're ruining it!
09:18:59 <oklopol> the ways are a..z, A..Z, .a.b.c....z, .A.B.C....Z
09:19:18 <oklopol> a..z and A..Z are simply variables that aren't in any way special
09:19:36 <oklopol> .a and friends are variables, that are always true with a 0.5 probability
09:19:47 <oklopol> a is the negation of A, and .a is the negation of .A
09:20:11 <oklopol> the actual program consists of triples, written simply by concatenating three variables
09:20:17 <oklopol> like, a line of code could be
09:20:57 <oklopol> that means (A or not B or not C) and (A or B or not C) and ...
09:21:09 <oklopol> on every line, 3-sat is run on the set of clauses
09:21:28 <oklopol> now this is simple sofar, we've just set A to 1
09:21:43 <oklopol> but, this is the interesting part
09:22:13 <oklopol> let's assume we haven't set A to anything, and start with no vars set
09:22:26 <oklopol> we can set A to 0.5 by doing something like this
09:23:28 <oklopol> if you cannot see why, which i'm assuming you don't, i can show how to deduce that
09:24:13 <oklopol> we start with A = .A, because we want to set A to 0.5, that is, we want to "make A true with a 0.5 probability"
09:24:43 <oklopol> (.A's value has nothing to do with A's value initially, i'm just starting naming from A with both kinds of vars)
09:25:18 <oklopol> (A = .A) = (a ^ .a) v (A ^ .A)
09:26:20 <oklopol> well, i actually used a truth table, thought i could deduce this easily :P
09:26:52 <oklopol> (a ^ .a) v (A ^ .A) = (a ^ .a ^ b) v (A ^ .A ^ B) v (a ^ .a ^ b) v (A ^ .A ^ b)
09:27:05 <oklopol> this is clearly true, we've added a variable that, given either value, makes this true
09:27:45 <oklopol> now, we should turn the minterm representation into a maxterm one
09:28:17 <oklopol> so we take all the cases that make the statement false
09:28:50 <oklopol> that is, (A ^ .a ^ b) v (A ^ .a ^ B) v (a ^ .A ^ b) v (a ^ .A ^ b)
09:29:08 <oklopol> and we kinda flip it, to get
09:29:26 <oklopol> (A v .a v b) ^ (A v .a v B) ^ (a v .A v b) ^ (a v .A v b)
09:30:04 <oklopol> and then it's a simply syntactic manipulation to get A.aB A.ab a.AB a.Ab
09:30:37 <oklopol> i actually had an error there, let's see where i made it...
09:30:42 <oklopol> i should've prepared this :P
09:31:00 <ais523> try preparing and then pastebinning
09:31:05 <ais523> and no, I haven't done yet
09:31:11 <ais523> but I haven't really being paying attention
09:31:15 <ais523> I'm still in go-through-email phase
09:31:21 <ais523> and I was planning to logread it later
09:31:41 <oklopol> well perhaps i'll do it properly in a pastebin
09:32:14 <oklopol> seems i need to go now. be back as soon as possible
09:32:22 <oklopol> because this is not even the interesting part yet
09:35:18 <AnMaster> <ab5tract> assuming AnMaster comes through with the erlang threads
09:35:19 <AnMaster> <fizzie> Still, given how AnMaster is, I'd be surprised if it didn't.
09:36:16 <AnMaster> <fizzie> Doesn't cfunge already do that? At least it does 64-bit cells, it only stands to reason the cell addresses are 64-bit too. <-- well yeah
09:37:12 <AnMaster> ais523, have you seen the ATR spec?
09:37:19 <AnMaster> oh wait yeah you posted the DRAFT bit
09:37:24 <ais523> yes, well allowing for the typo yes
09:38:03 <AnMaster> ais523, I just had breakfast, and I'm not a person that is good with mornings
09:38:15 <ais523> well, I'm alright with mornings
09:38:20 <ais523> but only if I've had a good night's sleep
09:38:20 <AnMaster> ais523, anyway, any comments on the spec?
09:38:30 <AnMaster> ais523, also mutex needs to be renamed
09:38:41 <AnMaster> maybe you got something better?
09:38:50 <ais523> I don't normally deal with that sort of threading stuff
09:39:01 <ais523> the threading stuff I deal with is much crazier
09:39:05 <AnMaster> the point is "mutex" and "lock" are too common words
09:39:17 <AnMaster> so I need a better, more original name
09:39:17 <ais523> do it like INTERCAL, have commands which dynamically delete themselves from the playfield when encountered
09:39:24 <ais523> atomically with whatever it is they were meant to be doing in the first place
09:39:50 <AnMaster> ais523, making stuff atomic here isn't very easy I'm afraid :/
09:40:17 <AnMaster> ais523, either it is async message passing (or blocking waiting for reply)
09:40:33 <AnMaster> or it is the set of actions restricted by ets tables
09:40:52 <AnMaster> the G P and C will need some complex locking
09:41:16 <AnMaster> Note that an implementation _may_ make g, p and other such instructions
09:41:16 <AnMaster> synchronous as well, but it is not guaranteed. Block access should never be
09:41:24 <AnMaster> at least to begin with that will be true
09:41:41 <AnMaster> g, p and such will be sync as well that is
09:42:32 <AnMaster> ais523, anyway do you have any knowledge of pthreads? Would this be painful to implement there?
09:42:46 <ais523> I don't have much knowledge of pthreads, and no idea
09:43:48 <AnMaster> it should be reasonably ok in erlang, only need G,P and C to handle a global lock there, since there is no atomic thing I can use as C on ets tables
09:56:06 <ais523> be back soon, rebooting (I've just upgraded the kernel)
10:29:42 <oklopol> http://www.vjn.fi/pb/p545622444.txt
10:29:59 <ais523> you can find out by /pinging me
10:30:10 <ais523> if I'm not here you won't get a reply
10:30:47 <oklopol> check that out, probably doesn't make that much sense, in which case you can ask further questions
10:30:50 <AnMaster> ais523, I got a reply sometimes when you said just a few minutes after that your connection had failed
10:30:53 <oklopol> assuming you'll read that at some point
10:31:12 <ais523> yes, you have to wait for the bouncer to notice I'm not here first
10:31:16 <oklopol> which i hope you do, because i think it's a pretty interesting idea
10:32:50 <AnMaster> oklopol, a question about that
10:33:09 <AnMaster> oklopol, are C and c variables?
10:33:18 <oklopol> c is the negation of C, as i explain there
10:33:31 <AnMaster> oklopol, ".[A-Z] (and .[a-z]) denote variables (and their negations)"
10:33:59 <oklopol> i should've escaped . i guess
10:34:31 <oklopol> .[A-Z] aren't normal variables
10:34:36 <ais523> oklopol: .[A-Z] is perfectly good wildmat syntax
10:34:51 <oklopol> .[A-Z] (and .[a-z]) denote variables (and their negations) that are true with a 0.5 possibility
10:35:04 <AnMaster> well yeah, the issue was it seemed to suggest that v was also a variable
10:35:09 <oklopol> it seems i've removed the line that explains actual variables :P
10:35:27 <oklopol> AnMaster: well that's not the actual language's syntax, just logic to show how to deduce the program
10:35:56 <AnMaster> oklopol, still better explain variables too
10:36:19 <AnMaster> btw, is it turing complete or not?
10:37:47 <ais523> my guess is it'll be turing-complete once oklopol figures out how to do flow control
10:39:11 <oklopol> but sofar, i've only solved the issue of infinite storage
10:39:44 <ais523> oklopol: is it retrievable, though
10:39:49 <ais523> I see how to store rationals into variables
10:39:53 <ais523> but how do you get them back out again?
10:40:03 <oklopol> well i'm not *entirely* sure
10:40:17 <oklopol> but you can "or" variables to get them to grow in probability
10:40:33 <oklopol> so i'm pretty sure you can somehow encode integers that can be inc'd and dec'd
10:41:06 <oklopol> as it's 3-sat, i'm pretty sure it's a two-way operation
10:41:07 <ais523> but being able to tinker with a probability is no good if you can't find out what it is
10:41:10 <oklopol> so you can do something like
10:41:22 <oklopol> well i could make things depend on whether something is 1
10:41:31 <AnMaster> <ab5tract> are there any gooey kits for erlang?
10:41:31 <AnMaster> <fizzie> Don't know about Erlang; I'm sure there are, most languages seem to have bindings.
10:41:39 <oklopol> and 1/(2^n) can represent n
10:41:50 <oklopol> now, i can inc and dec as much as i want, and branch on 0
10:41:56 <oklopol> which is what register machines do
10:42:01 <AnMaster> I also seen some custom GUI toolkit rendered to opengl
10:42:11 <fizzie> And "erlgtk" in sf.net.
10:42:42 <oklopol> so, A = B + 1: A = B ^ .A; A = B - 1: B = A ^ .A
10:43:20 <AnMaster> and is used for the erlang debugger and some other bits
10:44:16 <ais523> depending on probability 1 seems a bit non-physical, really
10:44:19 <ais523> but I suppose it makes sense
10:44:30 <ais523> atm, I'm just annoyed with this VHDL project I'm doing
10:44:39 <ais523> I wrote it recursively originally but it crashed the compiler
10:44:46 <ais523> (I even got the compiler to segfault at one point)
10:44:48 <AnMaster> fizzie, anyway I guess one could provide bindings for esdl to efunge... Would be pretty mad probably
10:44:50 <ais523> so I rewrote it iterativel
10:45:00 <AnMaster> might as well have "evaluate erlang term" or such
10:45:02 <ais523> which is a pain for parallelised mergesort
10:45:37 <ais523> anyway, now I'm trying it on a different compiler
10:45:41 <ais523> and it's reporting an internal error
10:45:45 <ais523> even for the iterative version
10:46:00 <ais523> and the line number it gives is in its own source code, only it's closed-source...
10:46:11 <AnMaster> ais523, what about using an open source one?
10:46:42 <oklopol> ais523: non-physical? i'm using an np-complete operation as the basic unit of computation, you think i care? :P
10:46:59 <AnMaster> ais523, and report that internal error as a bug to the developers
10:47:00 <ais523> AnMaster: but you need proprietary synthesisers to synthesise for proprietary FPGAs
10:47:06 <ais523> like the ones we have to use in the assignment
10:47:07 <oklopol> it's probably already tc if i just add a while loop.
10:47:35 <oklopol> assuming i have a scope for the loops
10:47:41 <ais523> hmm... not only is there an internal error, but the webpage that's meant to describe what the error is is 404
10:47:52 <ais523> now I have to guess what the problem is
10:48:19 <ais523> probably it's what VHDL was warning me about, for loops with exponentiation in the calculation of their bounds
10:48:49 <AnMaster> ais523, and how do you avoid that?
10:48:49 <ais523> (VHDL is very weird, most langs wouldn't care about something like that, but you have to understand that synthesis-VHDL has + - and *, but / is only possible by a constant power of 2, for instance)
10:49:09 <ais523> AnMaster: my guess is to pass the entity both the number of bits and 2 to its power as generics
10:49:18 <ais523> then loop too many times and use ifs to do nothing when the loop counter is too high
10:50:03 <ais523> it's the only lang I know of where arrays are normally numbered backwards
10:50:12 <ais523> i.e. the first element is some large number, the last element is 0
10:50:41 <ais523> because an integer is normally represented as an array of bits
10:50:45 <ais523> and that's the way bits are normally numbered
10:50:54 <ais523> it gets very confusing trying to do it the other way round
10:51:39 <oklopol> does anyone have ideas for a name for a language based on doing 3-sat with probabilities?
10:51:42 <ais523> say you have 128, as a std_logic_vector
10:51:46 <oklopol> oerjan: this may be your field
10:51:54 <ais523> then you want to extract the least significant bit
10:52:04 <ais523> slicing it with (0) makes a lot more sense than slicing it with (7)
10:52:09 <AnMaster> ais523, yep, that depends on endianness
10:52:21 <ais523> well, you define the endianness yourself in VHDL
10:52:26 <AnMaster> ais523, what about if you want the most significant bit then?
10:52:30 <oklopol> i don't like acronyms, i prefer puns of some kind
10:52:39 <ais523> but bits within a byte are nearly always big-endian in practice
10:52:51 <ais523> and you could write that as myvector'left
10:52:57 <ais523> well, myvector(myvector'left)
10:53:09 <AnMaster> ais523, does x86 have a bitendianness?
10:53:22 <ais523> AnMaster: what is this x86 you're talking about?
10:53:28 <oklopol> ais523: is VHDL a Lesser Language than Verilog?
10:53:35 <ais523> oklopol: they started out different
10:53:43 <oklopol> and by that i mean more low-level
10:53:44 <ais523> but after a while all the features from each were added to the other
10:53:52 <AnMaster> ais523, don't be silly, I was just wondering if bits are little- or big-endian on x86
10:53:56 <ais523> so nowadays they're the same lang with different syntax
10:54:17 <ais523> AnMaster: the x86 doesn't have bit-extract operations IIRC
10:54:21 <oklopol> well that's nice, syntax is what i learn the fastest
10:54:34 <ais523> most of the processors I know of that do number bits big-endian though
10:54:38 <AnMaster> ais523, indeed it doesn't, but internally it need to have some endianess for them
10:54:49 <ais523> the bits are on parallel wires, normally
10:54:52 <oklopol> no ideas for the name? guess i need to switch my brain to text mode
10:55:03 <AnMaster> ais523, what about serial interfaces then?
10:55:06 <oklopol> they're usually in math mode when designing the language
10:55:11 <ais523> AnMaster: they can be defined either way round
10:55:22 <ais523> I'm not sure offhand which RS-232 is
10:55:27 <ais523> which is embarrasing because I ought to be
10:56:17 <oklopol> AnMaster: i use plural and singular interchangeably when talking about brains
10:56:58 <AnMaster> well yeah the English way is pretty strange there... in Swedish you would use something like brainhalf when referring to the left or right part
10:57:59 <ais523> AnMaster: apparently SATA doesn't use either, it uses a lookup table to translate bytes into something more balanced
10:58:17 <ais523> computers are fine with a glut of 1s or 0s
10:58:22 <oklopol> the fun thing about loops is, this language is like prolog in that nothing you state is forgotten, ever, unless things go out of scope
10:58:28 <ais523> but fast cables don't like sending the same bit lots of times in a row
10:58:37 <oklopol> so the program is just an incredibly big set of clauses :P
10:58:47 <oklopol> let's try writing an infinite loop and invent flow control
10:59:00 <ais523> so basically it uses a lookup table to map the 256 possible bytes onto sets of 10 bits with balanced 0s and 1s
10:59:05 <ais523> thus no endianess involved
10:59:48 <AnMaster> ais523, what about using more than 1/0 when sending, having say 1,1.5,2,2.5 or so
11:00:09 <ais523> that doesn't help in practice for digital signals
11:00:16 <AnMaster> I mean generically it ought to be good data compression
11:00:22 <ais523> the data rate stays the same, because the noise susceptability gets worse
11:00:28 <ais523> so say you use 4 logic levels
11:00:37 <ais523> you have to halve the speed to keep the signal/noise performance the same
11:00:42 <AnMaster> ais523, did anyone ever use that on old modems to provide higher speed?
11:01:08 <ais523> I seriously doubt it, doubling the clock rate is normally a lot cheaper in circuitry than doubling the number of logic levels
11:01:18 <ais523> on the other hand, that sort of technique is used on radio signals all the time
11:01:24 <ais523> as they don't have constant voltages anyway
11:01:46 <ais523> well, that sort of thing
11:01:53 <ais523> also on wires which are sending waves rather than pulses
11:02:03 <ais523> but that's less common, normally only used for fibre optics and such
11:02:15 <ais523> because light is inherently a wave
11:02:28 <AnMaster> ais523, as well as a particle :P
11:03:01 <ais523> but the wave-like nature matters more if you're sending with lots of photons at once
11:03:09 <ais523> which most communication systems do
11:03:32 <AnMaster> anyway having 4 logic levels would allow you to encode bit-pairs. like 00 01 10 11
11:04:00 <AnMaster> which ought to double the speed in theory
11:05:14 <AnMaster> you don't even need to describe an uneven number of bits, since bytes are 8 bits and you never send anything less than bytes anyway
11:08:42 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
11:11:39 <oerjan> <oklopol> oerjan: this may be your field
11:12:06 <oklopol> http://www.vjn.fi/pb/p633146536.txt <<< using the vars as numbers
11:12:48 <oklopol> is there a justification for No?
11:13:00 <oerjan> only to make the pun work
11:13:52 <oklopol> you see, i need to be able to explain all the parts of the name to myself
11:13:58 <oklopol> out of the realm of the pun
11:14:13 <oklopol> must be completely sensible both as a pun and as just a name
11:15:38 <oklopol> looping is a bit hard to do, because i don't want to do it like prolog does, and i don't want mutable variables
11:16:11 <oklopol> so i want an explicit looping construct with scoping so i can create new variables
11:17:01 <oklopol> i guess i'll just start from the top, and convert something prolog-like into
11:17:43 <oklopol> oh, basically i want a construct that simulates tail-recursion
11:18:58 <oklopol> it's a while loop that's basically a procedure, the "scope" is simply the list of arguments, and after the loop, we recurse with some variables we created in the body as the new arguments
11:19:09 <oklopol> i'll try making an example
11:19:28 <ais523> ah, the lecturer here has solved my VHDL compiler problem
11:19:32 <ais523> by giving me a third compiler
11:19:43 <ais523> (and it seems to handle the code fine)
11:27:44 <ais523> also, VHDL is the only lang I think I've ever written a for loop which only ever iterates once
11:28:42 <oerjan> always exactly once? or once or zero
11:29:07 <oerjan> and this seemed like a good idea at the time?
11:29:15 <ais523> it still seems like a good idea now
11:29:17 <ais523> it saved a lot of typing
11:29:33 <ais523> basically I used it to define a variable at compile-time
11:29:36 <oklopol> oerjan: i'm pretty sure he's written brainfuck, and i'm pretty sure he's done ifs
11:29:40 <ais523> a constant with a calculated value
11:30:02 <ais523> by having it at both ends of the control range
11:30:09 <ais523> and using the iteration count as a constant
11:30:24 <ais523> for-generate loops are always unrolled at compile time in VHDL
11:30:29 <ais523> and I'm taking advantage of that here
11:31:53 <oerjan> is this just a way to simulate functional-style let expressions?
11:32:34 <ais523> given that the expression in question is (2**inputcountbits)*((depth*(depth-1)/2)-1)+(2**depth)*height, I think it was justified
11:32:48 <ais523> also I use that value 12 times within the 'loop'
11:33:01 <oerjan> i'm just surprised there is no simpler way
11:33:20 <ais523> generally speaking people don't do expressions that complicated at compile-time
11:33:30 <ais523> heh, I even have a compile-time bit-reversal function
11:33:34 <ais523> but that's written as a procedure
11:33:46 <ais523> I can do that because it's never involved in the control variable of a for-generate loop
11:33:58 <oerjan> ah so it's something Man was not meant to do
11:34:14 <oerjan> clearly some good Mad Science, then
11:34:23 <ais523> well, more to the point, it's because most of VHDL is deliberately limited to simple stuff
11:34:30 <ais523> because most VHDL synthesisers are stupid
11:34:46 <ais523> for instance there are some cases where and isn't commutative
11:34:59 <ais523> simply because if you write the arguments the other way round, the synthesiser won't recognise the idiom
11:35:12 <ais523> so one way round works, the other is a compile failure
11:36:58 <AnMaster> ais523, so non-idiomatic VHDL is a bad idea?
11:37:10 <ais523> you have to memorise the idioms more or less
11:37:29 <ais523> hmm... it's sufficiently annoying, actually, that I'm thinking about writing a compiler from non-idiomatic VHDL to idiomatic VHDL
11:37:49 <ais523> which let you express all the things which are very difficult to express in idiomatic VHDL
11:38:48 <ais523> for instance, it took me about an hour to figure out how to express a latch that can be sampled at the leading edge of any of a set of clocks
11:38:57 <ais523> it involves a latch for each clock, and lots of XORs
11:39:19 <ais523> so each clock toggles one latch whenever it wants to toggle the output, and the latch's outputs are xored together
11:40:08 <ais523> nonidiomatically you just need to write leading_edge(clock1) or leading_edge(clock2), which is so much simpler...
11:43:18 <ais523> anyway, going to get lunch now, I'll be back in a bit
11:57:02 <oklopol> okay, i think the language's semantics are complete now, and i think it's TC, but it's so weird i'm not sure i have the courage to spec it.
11:59:43 <ehird> 22:20:19 <fizzie> ehird: You get a%x from (a+b)%x if you know b and x; doesn't matter, of course, if you limit yourself to numbers in [0, x-1]. And if you noticed, I did use numbers [0, 19] for d20 precisely for that reason.
11:59:56 <ehird> Yeah, but, there are two rolls of sides that added mod sides
12:01:13 <fizzie> Yes, that's what I did.
12:02:07 <fizzie> "<a> I want to roll a d20, my hash is -- <b> okay, my [1, *20*] random number is <x>"
12:03:13 <ehird> fizzie: the point is, at the end, you have to use the crazy hash data to seed the prng, generate a number (which will be equal to a's!!), then check that it's alice's part
12:03:15 <ehird> if ((alices_num + num) % sides) == final:
12:03:17 <ehird> seems to work fine
12:03:44 <ehird> fizzie: version 2.0: http://pastebin.ca/raw/1229263
12:03:59 <ehird> Usage: 'python roll.py [sides|100]'
12:04:10 <ehird> If you add 'alice' to the end of the arguments, you are the diceroller persony thing.
12:04:23 <ehird> When it outputs a line, paste it to IRC, when you get a line from IRC, paste it in.
12:04:44 <ehird> Nobody apart from me has tested being alice, so feel free to do that if you want.
12:07:41 <fizzie> I'm not sure I see the need of the PRNG there, instead of just taking the seed modulo sides. It's random, already.
12:08:04 <ehird> Oops there's a bug on b's side.
12:08:08 <ehird> change sides/2 to sides
12:08:25 <ehird> fizzie: because it didn't have an even distribution when i tried that
12:08:34 <ehird> it had a strong bias to small numbers.
12:08:51 <ehird> but yeah if you want to test it changes sides/2 to sides and run it as 'python roll.py 100 alice' :-P
12:09:20 <fizzie> That's strange, /dev/random bits should be uniformly distributed.
12:09:39 <ehird> fizzie: They are, but play up when modulo'd.
12:10:13 <ehird> I think it'd work if the sides were divisible by the number of the bits or some silly thing like that
12:10:22 <fizzie> It should be a pretty small bias when you have a big number (is that 50 bytes?) and are computing modulo a small number of sides.
12:10:39 <ehird> fizzie: oh, yeah, 50 bytes. And, well, the sides is arbitary.
12:10:42 <fizzie> I guess involving the PRNG can help, though.
12:10:51 <ehird> I've been testing with 100 sides, but 10 sides and 1000 sides are perfectly reasonable.
12:11:58 <AnMaster> "<ehird> I think it'd work if the sides were divisible by the number of the bits or some silly thing like that" <-- you need the MAX_INT_FOR_YOUR_SIZE % MAX_SIDES == 0
12:12:22 <ehird> So I've brought the PRNG in.
12:12:24 <fizzie> It's a bias, yes, I just wonder how easy it should be to notice.
12:12:45 <ehird> alright. should we test? Let's do 1000 sides, for the novelty. I'll be bob.
12:12:50 <AnMaster> fizzie, depends on the values of MAX_INT_FOR_YOUR_SIZE and MAX_SIDES
12:14:34 -!- jix has joined.
12:15:47 <fizzie> I mean... if you take a uniformly distributed unsigned 32-bit number, so [0, 4294967295], and do modulo 1000, you still get a probability of .00099999983585 for [0, 295] and .00100000006868 for [296, 999]. That's something that's not very noticeable.
12:16:09 <ehird> Yeah, but, 10 sided dice.
12:16:11 <ehird> Are far more common :-P
12:16:33 <fizzie> Yes, and the bias is even smaller there.
12:17:44 <fizzie> .09999999990686774 vs. .10000000013969 for ranges [0, 5] and [6, 9].
12:18:05 <ehird> fizzie: Well, shush you. :-P
12:18:13 <ehird> Are there any actual _advantages_?
12:18:34 <fizzie> Less complex, and you don't have to trust your PRNG to do anything sensible. Not much else.
12:19:30 <ehird> fizzie: Well, fine, I'll make it do that
12:19:41 <ehird> Because you're a communist. :|
12:20:06 <fizzie> If you want to do it without bias, you'll need to take a number in range [0, K] where K % sides == 0; you can do that by discarding unfun values.
12:20:10 <fizzie> Oh, right, roll 1000 c21ca587f12bd71d1ac8b2e99c5cc3d7a9541efe
12:20:47 <ais523> also, my email is broken atm
12:20:55 <ais523> the University's server admins strike again...
12:21:10 <ehird> fizzie: http://pastebin.ca/raw/1229270
12:21:23 <ais523> and the Door has gone through a whole load of revisions since Wednesday, it seems
12:21:29 <ais523> atm it lets me in and out, but not anybody else...
12:21:56 <fizzie> Anyway... you can do "limit = max_int / sides * sides" (if you have a truncating division) and then reading random numbers as long as you get something that's <limit, if you want to avoid that bias. It should be pretty unlikely to get numbers that are >= sides.
12:21:59 <oerjan> the admins are regularly on strike?
12:22:14 <ais523> oerjan: no, just incompetent AFAICT
12:22:17 <ehird> fizzie: Is the bias ever really that bad?
12:22:25 <ais523> or maybe competent just Exchange is good enough at breaking to beat them regularl
12:22:41 <ehird> fizzie: I mean, the PRNG is effectively 0-bias.
12:22:47 <ehird> And... that's a good thing in a dice roller.
12:23:19 <ais523> also, I have a new mouse now, not that that's particularly relevant
12:23:20 <fizzie> ehird: That just depends on how Python implements the .randint(0, sides) part.
12:23:25 <ais523> bought it about 10 mins ago because the last one broke
12:23:38 <ehird> fizzie: Mersenne Twister, I believe.
12:23:59 <ais523> even better, this is Linux, so I can just ignore the install CD
12:24:08 <fizzie> That's the PRNG, but it doesn't say anything how Python reduces it to that range, since that's what causes the bias in the straight-forward modulo thing.
12:24:24 <AnMaster> ais523, as for that door, weird...
12:24:27 * ais523 wonders if move-mouse-wheel-sideways does anything, or is even detected by Linux
12:24:43 <ais523> probably not, as Emacs seems not to notice it
12:24:44 <AnMaster> ais523, ah that I can help with I think
12:24:45 <fizzie> Simply using the computing the next PRNG state and using that modulo N won't help with the bias except that it will bias something else than the small numbers consecurively.
12:24:51 <ais523> AnMaster: I'm not sure what I'd do with it anyway
12:24:52 <AnMaster> ais523, it needs a bit of work in xorg.conf
12:25:02 <AnMaster> ais523, not mouse driver, but evdev
12:25:13 <ais523> what is it meant to do, btw?
12:25:19 <ehird> fizzie: Okay, true.
12:25:23 <oklopol> http://www.vjn.fi/pb/p543544164.txt <<< a short program written in a noprob wimpmode
12:25:26 <ehird> fizzie: Well, http://pastebin.ca/raw/1229270, and let's try. :-P
12:25:40 <ais523> ugh, that isn't a particularly common operatoin
12:25:43 <fizzie> ehird: I'm already trying, but it's horribly slow. There's not much entropy going in that box.
12:25:43 <AnMaster> ais523, quite good in, say, gimp or similar
12:25:44 <ehird> test 1 of version 2 of the amazing
12:25:56 <ehird> DISTRIBUTED CHEAT-PROOF DICE ROLLER
12:25:57 <ais523> if it happens on a web page, I hold middle mouse button and use autoscroll (I have firefox set to autoscroll)
12:26:11 <ais523> ah, and I don't do much graphics, that probably explains it
12:26:30 * oklopol tries again when the traffic dies down a bit
12:26:40 <ais523> oklopol: I'm looking at that link now
12:26:52 <ais523> hmm... now I want to invent a mouse which has a trackball under each finger
12:26:58 <ais523> each of which can be clicked downwards as well as moved
12:27:01 <AnMaster> ais523, anyway evdev is a generic thing that can handle most types of HID devices basically
12:27:09 <ehird> fizzie: For me it's instant. I think OS X /dev/random uses Yarrow...
12:27:16 <oklopol> i'm not that good at speccing, i either give examples or just formally define how to run the language.
12:27:20 <AnMaster> err that would be silly "HID devices" since HID means Human Interface Device iirc
12:27:21 <oklopol> so i usually take the example road
12:27:23 <ehird> but yeah, it's instantaneous for me
12:27:39 <ais523> wtf does "Probloture" mean?
12:27:41 <oklopol> which isn't really a spec, but perhaps gives you an idea how problotures work
12:27:44 <ehird> AnMaster: I got the money to buy a HID device from the ATM machine, but I had to enter my PIN number and I got RAS syndrome.
12:27:51 <oklopol> but you can only do tail-recursive calls
12:28:07 <AnMaster> ehird, what is RAS? Remote Access Service?
12:28:10 <oklopol> kinda like a lambda that cannot be passed to other lambdas, but it's implicitly passed itself.
12:28:14 <ehird> AnMaster: Redundant Acronym Syndrome syndrome
12:28:50 <AnMaster> ehird, and ATM would be Async Transfer Mode to me
12:29:09 <ehird> AnMaster: Automated Teller Machine.
12:29:10 <oklopol> ais523: procedure + block = probloture
12:29:24 <oklopol> i couldn't find a sillier way to mix those together
12:29:30 <ais523> really, though, redundant RAS syndrome is just a syndrome caused by redundant use of acronyms
12:29:30 <fizzie> ehird: Don't know about OS X; at least on Linux reading from /dev/random will block until the kernel thinks it's seen enough entropy to actually return random numbers; and there's not many entropy sources on that box. I assume it uses interrupt timing as one source, but since there's no keyboard/mouse it won't get those very much either.
12:29:39 <AnMaster> ais523, also clicking middle button can be a bit hard with a tilting scrollwheel, at least it took a while to learn it for me
12:29:44 <fizzie> Well, there it goes: roll 1000 e62a7161266e41a150dd47f895c3fd3bcccd332d
12:29:52 <AnMaster> ais523, since if the wheel is tilted the click doesn't register
12:29:59 <ehird> fizzie: rolled 664
12:30:07 <ais523> ehird: on Linux read from /dev/urandom instead if you want it to invent slightly less random numbers rather than waiting for entropy
12:30:14 <ehird> ais523: no, I want true randomness
12:30:31 <AnMaster> ehird, even /dev/random isn't truly random
12:30:36 <ehird> if i'm paranoid enough to make it distribute over 2 users to eliminate cheating i'm paranoid enough to make sure it's truly random
12:30:39 <ehird> but it's closer than urandom
12:30:50 <fizzie> ais523: This is dice-rolling, after all! You can't be too careful.
12:30:52 <oerjan> oklopol: you realize there is no t in either of the mixed words?
12:31:03 <ehird> fizzie: Did you notice my reply?
12:31:06 <ehird> Paste it into the program. :P
12:31:08 <ais523> oerjan: t is a contraction of cd in this case
12:31:24 <ais523> oklopol: looks interesting, I think I get how it works
12:31:25 <oklopol> but yeah i guess it just sounded better.
12:31:26 <ehird> <ehird> fizzie: rolled 664
12:31:39 <oerjan> that's some nasty assimilation
12:31:46 <oklopol> ais523: that was the closest to while-loops i could get without adding mutability
12:31:49 <fizzie> final roll 745 (GaA7CjB9HcbwBdFkwZzBe1lsln6sl8JlOe6ZqVT0erl2JyPWGHNG3gnUdzSeHLKARMk=)
12:31:56 <oklopol> i didn't want any of those
12:31:56 <ais523> what do you mean by "mutability" here?
12:32:03 <ehird> fizzie: Well, my program says you're not a cheating communist.
12:32:15 <oklopol> ais523: that a variable could change value because of something other than backtracking.
12:32:26 <ais523> also, how do you do the equivalent of an if?
12:32:27 <oklopol> everything that's stated must always be true
12:32:37 <fizzie> Maybe I should've tried to cheat.
12:32:41 <oklopol> see the example in the end
12:33:06 <ais523> except VHDL doesn't do backtracking
12:33:23 <ais523> hmm... NoProb : Prolog :: VHDL : C
12:33:29 <ais523> that's one strange analogy
12:33:36 <oklopol> perhaps something like that :P
12:33:56 <ais523> AnMaster: oklopol's 3-sat language
12:33:57 <oklopol> AnMaster: the language i made today
12:34:15 <oklopol> NoProb, NP, 3-sat is an np-complete problem
12:34:19 <ais523> well, it's a very oklo sort of name
12:34:23 <oklopol> Prob because there's probabilities involved
12:34:25 <ais523> just because all the vowels are o
12:34:53 * ais523 wonders how easy it would be to write English without a, e, i, or u
12:35:14 <ais523> AnMaster: also I can middle-click even with a tilted scroll wheel
12:35:24 <AnMaster> ais523, ah, what mouse is it then?
12:35:35 <oerjan> ais523: not so good to do
12:35:42 <ais523> larger than my old mouse
12:35:50 <AnMaster> ais523, I have issues finding a large enough mouse, or even large enough keyboard
12:35:52 <ais523> could be interesting carting it around in a laptop bag, I suppose...
12:35:53 <oklopol> how the fuck can i implement that
12:36:01 <AnMaster> a full size pc keyboard is about as small as I can handle
12:36:08 <AnMaster> I would prefer slightly larger
12:36:21 <ais523> maybe you should get a projection keyboard, and put it further away from the table
12:36:26 <ais523> but those take a lot of getting used to
12:36:49 <AnMaster> ais523, I also like "deep" keyboards, so laptop ones are horrible, the keys should go down properly
12:36:56 * ais523 tries to imagine AnMaster using an iPhone
12:36:59 <ehird> full-sized php keyboards suck, this apple keyboard is stretching it a bit
12:37:04 <ehird> can't reach the very top keys
12:37:09 <ais523> AnMaster: ah, ok, projection keyboards are famous for the keys not going down at all
12:37:22 <oklopol> i could solve 3-sat with brute-force and a few optimizations, the problem is, there are probabilities, so really i'm solving the #P version of it, because i need to enumerate all ways to get truth out of a statement
12:37:24 <ehird> ais523: the iphone keyboard isn't actually that bad once you get used to it...
12:37:29 <ehird> my recent agora mails where sent with it
12:37:34 <ehird> (post-2am bst last night)
12:37:36 <ais523> ehird: it probably depends on how big yout hands are
12:37:44 <ehird> ais523: you use one single finger...
12:37:44 <AnMaster> also it seems only Microsoft make reasonably sized mice
12:38:09 <AnMaster> yet those mice are at least usable even though they are about 1 cm too short
12:38:10 <oklopol> another problem are the recursion vars
12:38:14 <ais523> Microsoft don't make mice at all, the Microsoft mice are Logitech mice with a different logo on IIRC
12:38:33 <AnMaster> ais523, the Logitech ones I seen have been smaller and harder to use
12:38:43 <ais523> yes, probably they're different hardware specs
12:38:44 <fizzie> I don't know about Microsoft today, but they certainly weren't logitech mice around the Intellimouse Explorer time.
12:38:57 <oklopol> the problem somehow needs to evaluate 3-sat *lazily*, and still *enumerate all possible ways to get 1*, if it's not lazy, it will infloop, if it doesn't enumerate all possibilities, it cannot calculate probabilities
12:38:58 <ais523> also, does anyone else use less to read email, or is it just me?
12:39:04 <ehird> AnMaster: are your hands like... joseph merricks
12:39:07 <AnMaster> well mine says "Microsoft Comfort Optical Mouse 3000"
12:39:22 <ehird> AnMaster: http://en.wikipedia.org/wiki/Joseph_Merrick the elephant man
12:39:26 <oklopol> but, i guess this is my everest, not yours, i think i'll read something
12:39:41 <fizzie> How long is that Comfort three thousand?
12:39:47 <ais523> hmm... I've realised that all my 4 or so outstanding problems to solve before I can implement Feather are actually the same problem
12:40:11 <AnMaster> ehird, I'm just large. Around 190 cm iirc (189.7 cm I think last I checked)
12:40:25 <ais523> wow, that is pretty tall
12:40:36 <AnMaster> ais523, well yeah, I'm tallest in family
12:40:54 <ehird> i don't know centimeters for height
12:40:56 <ais523> the outstanding problem in Feather is: to determine what in the program after a change corresponded to what before a change
12:41:00 <AnMaster> (about 3 cm longer than my dad, and 5 cm longer than mom.)
12:41:08 <ais523> ehird: there are 39 inches in a metre, you can calculate it from that
12:41:14 <ais523> AnMaster: also "taller" not "longer" when talking about people
12:41:15 <ehird> i was just commenting
12:41:17 <ehird> since i just realised
12:41:25 <ehird> i know some things in metric and some in imperial
12:41:31 <AnMaster> same word for both in Swedish...
12:41:47 <ais523> yes, there's no real reason to draw a distinction
12:41:54 <ehird> <AnMaster> (about 3 cm longer than my dad, and 5 cm longer than mom.) <- heh, this is a rather unfortunate slip derived from being non-native...
12:42:00 <ais523> in English, I think "taller" is normally used for things that are generally measured upwards
12:42:22 <ais523> whereas longer is used for something that's measured horizontally, like snakes
12:42:34 <oklopol> in finnish, we have separate words for tall and long, except we still use long for people :P
12:42:36 <AnMaster> ais523, what about diagonally?
12:42:46 <ais523> AnMaster: hmm... that's an interesting point
12:42:53 <ais523> probably I'd use "long" for 45 degrees
12:43:03 <oklopol> saying someone is tall would be like saying they're "high"
12:43:04 <ais523> but it would become more likely to be "tall" as it became more vertical
12:43:10 <oklopol> except without the drug connotation
12:43:26 <ais523> probably it wouldn't be consistent from one speaker to another, probably not even from one speaker to themself
12:43:32 <ais523> so yes, it's a stupid distinction
12:43:47 <ehird> i've always been the smallest person in any group of my age
12:43:51 <AnMaster> well yeah oklopol, you could use "högt" (high) about a building or so
12:44:01 * ais523 didn't invent English, and normally finds themself agreeing with foreigners when they complain about English being stupid
12:44:06 <ehird> honestly, i'm about as big as a 9 year old
12:44:10 <AnMaster> but long would also work I think
12:44:32 <ais523> in English "high" would refer to the object itself being a long way above ground, rather than the top of the object
12:44:44 <ais523> except for buildings sometimes we use "high" anyway despite that rule
12:44:52 <ehird> ais523: yeah, "that building is really high"
12:44:54 <AnMaster> ais523, a tall tower or a high tower?
12:44:57 <ais523> everything in English seems to have exceptions
12:44:59 <ehird> (a nice interpretation of that is that the building is on drugs)
12:45:03 <ais523> they mean the same thing
12:45:11 <ais523> but only for buildings, for some reason
12:45:13 <oklopol> ehird: so, basically, you decided to stop growing your body and used excess on your brain?
12:45:22 <ais523> a tall aeroplane and a high aeroplane would be quite different
12:45:26 <ehird> oklopol: no, but it would be amusing to have a huge bulging head
12:45:28 <oklopol> meaning you're actually 15 on irc
12:45:42 <AnMaster> ais523, an aircraft located at a high altitude?
12:45:53 <ais523> as opposed to an aircraft which measured a lot from top to bottom
12:45:57 <oklopol> ehird: excess in years, not size
12:45:57 <ehird> http://www.reddit.com/r/programming/comments/77l5b/forget_rss_here_comes_flickrs_lol_feed/
12:46:03 <fizzie> fi:korkea means "has a large vertical extent", while fi:korkealla means "located at a high altitude".
12:46:12 <ehird> ais523: it's just a lolcode bastardization.
12:46:19 <ehird> why can't flickr have done an underload feed?
12:46:20 <ais523> is that even possible?
12:46:25 <ehird> http://api.flickr.com/services/feeds/photos_public.gne?id=68497070@N00&lang=en-us&format=lol The offender.
12:46:37 <ehird> ais523: it's basically just "made up shit"
12:46:40 <ehird> except it looks like lolcode
12:46:44 <oklopol> IM IN UR BUCKETS MAKING UP FORMATS <<< i found this pretty funny :o
12:46:53 <ais523> but it's the only funny line in the thing
12:46:57 <fizzie> The fi:-lla suffix is something like the 'on' preposition in English.
12:47:15 <AnMaster> fizzie, ok you are worse with suffixes than Swedish then...
12:48:10 <fizzie> Except that the 'on' preposition in English has a whole lotta uses. Well, I guess our suffix has some others, too.
12:48:20 <ais523> ehird: the commentors are right, though, that is shorter and clearer than XML, even when compressed
12:48:38 <ais523> fizzie: it's worse in Latin, "in" and "on" are the same word there
12:48:40 <ehird> ais523: Well: http://nomic.info/perlnomic/log.rss
12:48:49 <oklopol> ais523: the distinction of tall and long is not an arbitrary distinction between objects in different angles, it's so you can tell what kind of size the speaker means
12:48:52 <AnMaster> fizzie, prepositions never seem to have a 1:1 mapping between languages, for any preposition...
12:49:47 <ais523> ehird: well, OK, it still has lots of unnecessary stuff in though
12:49:50 <ehird> Guys. A blast from the past: http://web.archive.org/web/20040130154403/http://mozilla.org/. Who remembers going there?!
12:50:03 <ehird> They told you to nab mozilla 1.6 with that flashy silver icon.
12:50:03 <ais523> someone should invent a YAML version of RSS
12:50:12 <ehird> "Mozilla Firebird" was a technology preview.
12:50:18 <ehird> by why the lucky stiff, it's !okay/news
12:50:20 <ehird> but...nobody uses it
12:50:23 <ais523> now someone should make it widely used
12:50:24 <ehird> because nothing supports it
12:50:32 <ehird> i think the _only_ implementor is hobix for obvious reasons
12:50:49 <ehird> but yeah, share in my wow at that old mozilla homepage
12:51:20 <ehird> AnMaster: because it's a blast from the past, so shush
12:51:38 <ais523> that reddit entry about the Google quine is quite interesting
12:51:53 <ehird> AnMaster: that's because you're an inhuman, lifeless machine. :|
12:51:53 <ais523> google a number and return that many results
12:52:01 <ais523> http://www.reddit.com/r/programming/comments/77o4g/proggit_chalenge_find_a_number_n_which_when/ is the discussion
12:52:07 <ais523> apparently 545000 works for some people
12:52:14 <ais523> but it returned 548000 when I tried
12:52:20 <AnMaster> Results 1 - 10 of about 548,000 for 545000. (0.05 seconds)
12:52:48 <ehird> google indexes reddit really rapidly.
12:52:51 <AnMaster> "I have discovered a truly marvelous number with this property but I can't post it here, because then Google would index my comment and it wouldn't be valid any longer."
12:52:57 <ehird> and all the sites that nab stuff from reddit
12:54:03 <fizzie> AnMaster: Anything natural-language-related is just exceptions on top of other exceptions. For example our adessive case (the "-lla" suffix) has the basic meaning "on top of something" or "around something", but it's also used to indicate possession; "the cat has ears" is "kissalla on korvat", which literally translated would be "there are ears on top of the cat".
12:54:40 <AnMaster> fizzie, that sounds hilarious in Swedish
12:54:54 <AnMaster> considering "korv" means "sausage"
12:55:20 <AnMaster> fizzie, well that is one variant
12:55:30 <fizzie> It's the famous one. :p
12:56:12 -!- oerjan has quit ("DRAFT DRAFT DRAFT DRAFT").
12:56:50 <fizzie> We've got something called "lauantaimakkara", literally "Saturday sausage"; I've never been quite clear what's very Saturday-like about it. It's pretty tasteless.
12:56:54 <ehird> DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT!!!!!!!!!!!DRAFT
12:58:46 <AnMaster> please please don't let this become sort of channel in-joke
12:59:13 <ais523> AnMaster: you've pretty much guaranteed it will now
12:59:24 <ehird> DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT!!!!!!!!!!DD!!RR!!AA!!FF!!TT
12:59:42 <ais523> ^echochohoo !!!DRAFT!!!
12:59:47 <fungot> echo reverb rev bf rot13 hi rev2 fib wc ul ctcp
12:59:47 <ehird> <blink><font color=red><marquee>DRAFT DRAFT DRAFT DRAFT DRAFT</marquee></font></blink>
12:59:59 <fizzie> I think some of 'em were lost when someone crashed fungot this morning.
12:59:59 <fungot> fizzie: hitler killed a lot of
13:00:19 <ais523> AnMaster: said something, then said it again minus the first char, then again minus the first two chars, and so on
13:00:19 <fizzie> Given the input 12345, it outputted "123452345345455".
13:00:35 <AnMaster> ais523, anyway I need to figure out the TODO marked bits, a good name for mutexes (latch is top one currently)
13:01:02 <ais523> not that it's anything appropriate, but it sounds nice and mysterious
13:01:13 <fizzie> So it would've outputted: !!!DRAFT!!!!!DRAFT!!!!DRAFT!!!DRAFT!!!RAFT!!!AFT!!!FT!!!T!!!!!!!!!
13:01:16 <AnMaster> I would prefer that it make some kind of sense
13:01:26 <ais523> AnMaster: wrong channel
13:01:38 <AnMaster> ais523, no more like a extended metaphor
13:01:57 <ehird> if you want memes to make sense, get out of #esoteric
13:01:57 <oklopol> latches? just call them unsafe flip-flops
13:02:18 <AnMaster> oklopol, the logic was: mutexes -> locks -> latches
13:02:30 <oklopol> yes, and i continued one level more
13:02:38 <AnMaster> a latch would have the operations latch/unlatch/inspect
13:02:39 <fizzie> You could use I and O (as in flIp and flOp) as the operations; no-one would ever remember which one was which.
13:03:06 <AnMaster> fizzie, heh, but what about the try-lock one?
13:03:11 <fizzie> AnMaster: U, as in flUb.
13:04:00 <fizzie> Maybe a bit silly. I'm trying to think of something completely surprising but with real-life mutual-exclusion semantics. Not having too much luck yet.
13:06:52 <AnMaster> deploy, fire, ask to be allowed to enter?
13:06:55 <ais523> hmm... the concept of bouncers seems to be an antipattern, actually
13:07:08 <ais523> presumably IRC channels have join and quit messages for a reason
13:07:20 <ehird> i don't thiink he's talking about an irc bouncer
13:07:22 <ais523> and bouncers exist to stop them ending up in the channel
13:07:51 <AnMaster> ais523, as one outside a restaurant(sp?)
13:08:01 <AnMaster> think that is the English word for them?
13:08:01 <fizzie> Like this: "Critical sections in the code can be done by copyRighting a particular number; when you have done that, no other thread may copyRight the same number, until you explicitly copyLeft the number first."
13:08:30 <ais523> more often pubs and nightclubs than restaurants, though
13:08:39 <AnMaster> fizzie, and what about try-lock operation?
13:09:55 <AnMaster> fizzie, "send a letter asking for permission to use"?
13:09:57 <fizzie> Thinking. "You can also simply File for copyright with the F instruction; unlike the copyRight instruction, filing for copyright won't block your thread, but you only get the copyRight for the desired number if it was free."
13:10:52 <AnMaster> except what are the implications for FOSS in this?
13:11:35 <AnMaster> oh and using the number in other contexts is obviously fair use.
13:12:11 <AnMaster> (such as in unrelated calculations)
13:12:23 <fizzie> Yes, the concept of copyRight in your language would be pretty limited; the only thing it would prevent is the copyRighting of the same number by someone else.
13:12:37 <ais523> that's not copyright, that's trademarks
13:13:13 <fizzie> It's not exactly trademarks either, since there are at least some things you can't do with someone else's trademarked logo or thing.
13:13:41 <ais523> the main thing you can't do with someone else's trademark is use it in a context unrelated to them
13:13:55 <ais523> I can talk about Microsoft Windows without problems, referring to the operating system
13:14:00 <AnMaster> (sco - microsoft) / novell * apple
13:14:05 <ais523> if I tried to make my own OS called Microsoft Windows, though, I'd be in trouble
13:14:10 <ais523> AnMaster: 0, obviously
13:14:16 <ais523> because that's what sco-microsoft evaluates to
13:14:29 <fizzie> Are you implying sco = microsoft?
13:14:42 <ais523> fizzie: I'm implying that SCO would probably be nothing without Microsoft
13:14:56 <ais523> I'm interpreting the - as set subtraction, rather than numerical subtraction
13:15:00 <ais523> which is not anticommutative
13:15:08 <AnMaster> ais523, yet you could sell windows?
13:15:20 <ais523> AnMaster: it depends on the scope of the trademark
13:15:27 <ais523> there's a huge court case going on about this at the moment
13:15:35 <ais523> between Apple the record company and Apple the computer company
13:15:52 <ais523> the record company claim the computer company started to breach their trademark when they released the iPod
13:16:07 <ais523> being music-related, you see
13:16:21 <AnMaster> ais523, then they did it when you included speakers in the computers too
13:16:42 <ais523> well, yes trademark law is a mess
13:16:49 <ais523> as far as I know that court case is still ongoing
13:17:02 <fizzie> There's been quite a lot of Apple Corps vs. Apple Computer trademark disputes.
13:17:15 <ais523> http://en.wikipedia.org/wiki/Apple_Corps_v._Apple_Computer
13:17:18 <fizzie> Wikipedia "Apple Corps v. Apple Computer" lists six.
13:17:42 <fizzie> Okay, six sections, anyway.
13:17:44 <ais523> hmm... it seems they settled eventually
13:17:52 <ais523> (in the 2007 one, which is the one I was thinking about)
13:18:02 <ais523> no idea who would have won if they hadn't
13:18:55 <fizzie> Still, you'll have to worry about a language where you can trademark small integers... well, except that in this language the scope of the trademarks would prevent people (well, threads) _only_ from trademarking the same numbers, not from using them any way they wish.
13:19:00 <AnMaster> stupid thing to name it the same
13:19:23 <AnMaster> fizzie, yep so I'll not use that terminology
13:20:13 <ais523> maybe "booking out", as in a library?
13:20:38 <ais523> you can book out things, and you give them back later
13:20:45 <ais523> you can't book something out if someone else has booked it out
13:20:56 <ais523> normally, though, when you book something out you say how long you're going to need it for
13:21:09 <fizzie> Possession of a physical object is one thing that's naturally mutually exclusive, yes.
13:21:10 <AnMaster> I thought it was "lend/return"
13:21:11 <ais523> AnMaster: you sign a piece of paper to say that you have it
13:21:44 <AnMaster> ais523, also you can normally be put on a queue for the book, which kind of doesn't work here since the queue order is non-deterministic
13:21:53 <AnMaster> at least that is how erlang currently implements waiting for locks
13:22:06 <fizzie> It's just a bit strange library, that's all. :p
13:22:25 <AnMaster> fizzie, and the try lock would be checking if a book is in?
13:22:34 <ais523> heh yes, a reservation
13:22:48 <ais523> or one of those library enquiry computer things
13:23:34 <AnMaster> ais523, try lock wouldn't be like reservation really? Since it would reflect instead of block if the book/lock was lended/held
13:23:56 <AnMaster> still it may kind of work I guess
13:24:51 <AnMaster> so the operations are: loan/return/???
13:25:11 <ais523> loan, return, check status
13:25:31 <AnMaster> ais523, C and S are in use and hard to change. hm
13:25:46 <ais523> both seem to fit well there
13:25:51 <fizzie> Wiktionary says that "loan" as a verb is ungrammatical outside the US: "to loan: (US) To lend. This usage is confined to the US (or perhaps parts thereof) and elsewhere is ungrammatical (loan being the noun, and lend the verb)."
13:26:23 <AnMaster> so T reflects if the book is loaned?
13:26:31 <AnMaster> sounds like wrong grammar to me
13:26:40 <fizzie> But the past tense for "to lend" is "lent", not "lended", apparently.
13:27:12 <ais523> and "on loan" is the phrase you're looking for
13:27:16 <ais523> not that that makes any sense either
13:27:33 <AnMaster> ais523, and the opposite of that?
13:27:45 <ais523> the libraries I use call it "available"
13:28:29 <AnMaster> and the number is obviously the extended ISBN (any number, not just well formed isbn)
13:28:53 <fizzie> Heh. "I called my library and tried to borrow the number 4, but unfortunately that number was already on loan."
13:29:28 <fizzie> Actually isn't "borrow" the correct verb for the receiving end?
13:29:45 <AnMaster> so borrow/return/try to borrow?
13:29:54 <fizzie> The library is lending the book to you; you are borrowing the book from the library.
13:29:59 <ais523> whereas the person borrows
13:30:08 -!- Slereah_ has quit (Read error: 113 (No route to host)).
13:30:10 <fizzie> Finnish just uses the same word "lainata" for both.
13:30:59 <ais523> either that or pay lots of fines
13:32:00 <fizzie> If you say you lost the book, and apologize a lot, you might just need to pay the price of the book; that's one way people use to "buy" out-of-print books.
13:32:11 <AnMaster> "don't try to acquire a mutex you already hold"
13:32:26 <AnMaster> "don't try to borrow a book you already ????"
13:32:37 <fizzie> "Don't try to borrow a book you already have. This would confuse the librarian."
13:32:57 <fizzie> Or "possibly confuse", since it's not clear what happens.
13:33:09 <ais523> now, I so want to implement mutexes using ar
13:33:14 <ais523> but I don't know if it's thread-safe
13:33:52 <ais523> no better reason than that
13:34:20 <fizzie> It's a funny library, though; you can't make a reservation (you can just wait for someone to return the book, but then it's pure luck who gets it, the one who was waiting first has no special privilege) and there's no time limit for loans.
13:35:39 <ais523> a time limit might actually be a useful protection against dropped mutexes
13:36:00 <fizzie> ais523: And then you'd need to pay with some clock cycles if you return your book all dirty.
13:36:13 <AnMaster> err, I couldn't implement that
13:36:30 <ais523> fizzie: nah, the OS would just force you to be a bit nicer
13:37:08 <fizzie> Heh. "We're not scheduling you as often as we used to, since you got burger sauce all over number 4 when you last borrowed it."
13:39:21 <AnMaster> oh another thing, the library have every possible book
13:39:30 <AnMaster> Hilbert's library or something
13:44:15 <AnMaster> very much so considering efunge have bignum cells
13:48:02 <AnMaster> ais523, fizzie: http://rafb.net/p/zTufIM86.html
13:48:27 <AnMaster> ais523, also please point out stuff that are language mistakes
13:49:43 <fizzie> B description says "every use of L".
13:50:17 <fizzie> I'll look more closely later (or maybe you have another draft at that point already), must go buy food and stuff.
13:50:53 <ais523> AnMaster: you should so define the interaction with TRDS
13:50:58 <ais523> leaving it undefined is a cop-out
13:51:02 <ais523> anyway, I have to go to lectures now
13:51:08 <ais523> see you all in about 2 hours 20 mins or so
13:51:56 <AnMaster> "Using TRDS and ATHR in combination shall cause demons to fly out of the Funge programmer's nose
13:53:02 <AnMaster> actually I think WIND wouldn't have issues
13:53:42 <AnMaster> "Using TRDS and ATHR in combination shall cause implementation-defined demons to fly out of the Funge programmer's nose."
13:54:51 <AnMaster> that allows for someone to actually do something sensible if they want (define the demons to be none, and work on other bits)
13:55:15 <ehird> AnMaster: TRDS and ATHR together sounds awesome
13:55:19 <ehird> why would you be so hostile >:(
13:55:43 <AnMaster> ehird, since TRDS is too badly speced to be sure how it would work in combination
13:56:00 <AnMaster> and because I don't want a headache
13:56:01 <ehird> AnMaster: it would be amazing
13:56:16 <AnMaster> ehird, feel free to work out a sensible way for how they interact then, I may even use it
13:56:33 <ehird> AnMaster: will you implement it
13:56:46 <AnMaster> ATHR? Yes in efunge, not in cfunge
13:56:51 <ehird> TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS TRDS
13:56:59 <ehird> the people have spoken
13:57:01 <ehird> and they want TRDS
13:57:48 <AnMaster> ehird, so you want to maintain it as a patch set against cfunge or efugne?
13:58:01 <ehird> no, the people want you to implement trds
13:58:31 <AnMaster> you may want it, it won't happen
13:58:51 <AnMaster> but since both are open source, feel free to do it yourself
13:59:26 <oklopol> i want you to implement trds too
13:59:37 <ehird> 200% of your user base
13:59:54 <AnMaster> ehird, neither of you use cfunge or efunge
14:00:02 <ehird> AnMaster: no, but only 1 person uses cfunge
14:00:08 <ehird> therefore two people are 200% of your userbase
14:00:12 <ehird> also 0 people use efunge
14:00:31 <AnMaster> ehird, actually ais523 use it, I use it, and I know someone else who do so. + fizzie use it sometimes
14:00:47 <AnMaster> ehird, and yes, efunge haven't had a release yet
14:01:29 <AnMaster> ehird, it still lacks many features, such as i and o
14:02:08 <oklopol> i might use cfunge if i used befunge
14:02:27 <AnMaster> oklopol, I still won't implement TRDS :P
14:02:49 <AnMaster> oklopol, do you actually know how messy TRDS is?
14:02:51 <AnMaster> http://www.rcfunge98.com/rcfunge2_manual.html#TRDS
14:03:20 <ais523> well, I'm in my lecture now
14:03:20 <ais523> and it's making no sense
14:03:20 <ais523> so although I can't really concentrate on the conversation here
14:03:20 <ais523> it makes more sense than trying to understand the lecture
14:03:45 <ais523> according to the syllabus it's about management
14:03:51 <AnMaster> Using TRDS and ATHR in combination shall cause implementation-defined demons to
14:03:51 <AnMaster> fly out of the Funge programmer's nose.
14:04:13 <ais523> it's actually a lecturer spending several hours talking about "customers"
14:04:23 <ais523> someone just complained that that was marketing
14:04:28 <ais523> and the lecturer asked what marketing was
14:04:37 <ais523> this is going to be a long 11 weeks...
14:04:41 <ehird> "what's marketing?"
14:04:52 <ehird> i cannot believe that
14:04:56 <ehird> i knew what marketing meant when i was 5.
14:04:59 <AnMaster> ehird, I hope he forgot ~ or something...
14:05:00 <ais523> but I'm not sure if it was rhetorical or not
14:05:18 <ehird> yeah i was thinking "rhetorical"
14:05:23 <ehird> either way thats a shitty rhetorical question
14:05:34 <AnMaster> ais523, anyway my point was... if you want sensible TRDS/ATHR interaction then you got to define it, since I can't figure that out.
14:05:51 <ais523> "How would you create Value Add thorugh a Internal Customer audit on yourself ?"
14:06:03 <AnMaster> hehe i read that as "Intercal"
14:06:07 <ehird> ais523: sounds like scientology
14:06:09 <ais523> (literal from the notes I've just been given, except the typo in through is mine, the other typos were the lecturer's though)
14:06:24 <ehird> ask him how his thetans are doing
14:06:39 <ais523> ok, this one's even more Scientologic:
14:06:41 <Asztal> managers abuse language :(
14:07:11 <ais523> "No Cynicism. Creativity, dreams, imagination Fantatical attention to consistency and detail Preservation and control of the xxxxx magic."
14:07:20 <ais523> ok, and I didn't typo in that, the typos are the lecturer's again
14:07:28 <ais523> and the xxxxx makes no sense in that context
14:07:32 <ehird> i am serious, that looks exactly like one of those sekrit scientology journal things i pirated
14:07:48 <fizzie> A friend-of-a-friend here got a scientology anti-psychiatry pamphlet. I didn't know they were doing that sort of thing in Finland.
14:07:49 <oklopol> ais523: what university were you at again
14:08:04 <ais523> but really, all management courses are like this
14:08:11 <ehird> fizzie: they do that thing -everywhere-
14:08:20 <ais523> and the IEEE insists that engineering courses are 1/12 management courses, I have no idea why
14:08:32 <ehird> stupid closed standard bodies
14:08:42 <ais523> the management lecturer last year was actually quite good though, he tought me accounting and company law
14:08:46 <ais523> so more business than management
14:08:54 <fizzie> Yes, but I get regular religious nonsense reasonably often, but never scientology stuff. It's strange.
14:09:45 <ais523> wow, I just realised that I have enough accumulated pass marks that I can fail this module and still get a first, in theory
14:09:55 <ais523> not that I really want to have to do that, but it's nice to have a safety valve
14:11:24 <AnMaster> ais523, still, if you think TRDS + ATHR should be well defined you better write that section.
14:12:38 <AnMaster> oklopol, async threads for Funge
14:13:26 <AnMaster> http://rafb.net/p/bQS3gx65.html
14:19:33 <AnMaster> ais523, http://rafb.net/p/bQS3gx65.html
14:19:52 <ais523> it seems this lecture theatre has a dodgy router
14:21:15 <ais523> hmm... the lecturer's explained that sentence with the xxxxx in
14:21:23 <ais523> apparently we were supposed to guess that xxxxx=Disney
14:21:30 <ais523> hmm... the sentence still doesn't make much sense though
14:22:40 <AnMaster> checking for i686-pc-linux-gnu-ar... no
14:23:00 <ais523> did it come up with the right answer, though?
14:23:01 <AnMaster> ais523, it was from gcc configure
14:23:11 <ais523> ah, that would explain it
14:23:18 <AnMaster> checking for i686-pc-linux-gnu-ld... no
14:23:20 <ais523> gcc configure does the same sort of stupid tricks as ick configure
14:23:25 <ais523> that's why I thought it was the same thing to start with
14:23:29 <AnMaster> ais523, well I'm building an llvm gcc
14:23:31 <ais523> except gcc configure is mostly hand-coded
14:23:49 <ais523> whereas ick's uses macros and some stupid semi-recursion stuff
14:24:09 <AnMaster> checking for i686-pc-linux-gnu-ld... no
14:24:23 <ais523> AnMaster: what are your build, host and target for that build?
14:24:37 <AnMaster> anmaster@phoenix ~/llvm/gcc-build $ ../llvm-gcc/configure --prefix=/home/anmaster/local/llvm --program-prefix=llvm- --enable-llvm=/home/anmaster/local/llvm --with-arch=pentium3 --with-tune=pentium3 --disable-libgcj --enable-libmudflap --enable-nls --enable-__cxa_atexit --disable-multilib --enable-clocale=gnu --enable-languages=c,c++
14:24:39 <ais523> gcc has to check all 3 of them
14:24:52 <ais523> ick cares about build and host, but target you do using CC at runtime
14:25:13 <AnMaster> ais523, well see the command line
14:25:46 <ais523> unfortunately the build/host/target are probably hardcoded there
14:25:51 <ais523> or at least one of them is and probably 2
14:26:20 <ais523> AnMaster: typo in F: singal should be signal
14:26:26 <ais523> although singal is a nice word too
14:26:32 <ais523> despite not meaning anything
14:26:50 <ais523> hmm... maybe it means something I don't know, then
14:27:04 <AnMaster> "Singal (Hangeul: 신갈) is an area of Yongin, in Gyeonggi Province, South Korea. It is near two major expressways and a large reservoir by the ..."
14:27:12 <ais523> first comma in B should probably be a semicolon
14:27:12 <AnMaster> continual, everlasting, continuous
14:27:35 <fizzie> "Old English", though.
14:27:51 <fizzie> WordNet doesn't know singal, but it's not that comprehensive anyway.
14:28:11 <ais523> well I didn't know it and I'm a native speaker
14:28:33 <fizzie> You're not a native speaker of Old English, obviously.
14:29:11 <ais523> also, R looks self-contradictory
14:29:15 <ais523> you define an error condition
14:29:19 <ais523> but then state "never reflects"
14:30:17 <ais523> in S, the first instance of "threads" should be "thread", and "it's" should be "its"
14:30:33 <AnMaster> ais523, ok you are right about R
14:31:30 <AnMaster> "Reflects on returning a book you don't have. Otherwise never reflects."
14:33:20 <fizzie> Note that pthread_mutex_unlock won't error out on unlocking someone else's mutex unless you use an error-checking (instead of a fast/recursive mutex) mutex. Of course you can define it, and it's arguably better that way.
14:33:53 <ais523> well, I suppose using fast mutexes is more C-like
14:34:08 <ais523> don't worry about error conditions, just make sure the prorgammer never lets errors happen
14:34:32 <ais523> slows down the programmer but speeds up the program, unless you have a /very/ good optimiser
14:35:19 <fizzie> Yes, it's just that B is defined in the "easy to implement even without error-checking mutexes" way, so for consistency's sake...
14:35:50 <fizzie> I don't think people write performance-critical Funge-98 code that much, though.
14:36:30 <ais523> AnMaster: "implementation defined and does not need to be the same on every run, or even for every use of B during a run" can be abbreviated to "unspecified" if you're using C-standard terminology
14:37:05 <ais523> although the original is possibly clearer
14:38:17 <ais523> in the notes section, "The library have all books" should be "The library has all books"
14:41:50 <ais523> the lecturer is trying to teach us about S.M.A.R.T.
14:42:09 <ais523> which is one of the things that everyone most hated about targets and such in my secondary school
14:42:14 <ais523> not that the whole system made any sense
14:42:26 <ais523> ehird: did they teach you that too, or did you escape from it?
14:42:32 -!- Slereah_ has joined.
14:42:42 <ehird> ais523: hm what where
14:42:44 <ehird> i haven't been paying attention
14:43:01 <ais523> ehird: did they try to teach you about SMART targets in secondary school?
14:43:11 <ehird> if they did i do not recall
14:44:17 <AnMaster> <ais523> well, I suppose using fast mutexes is more C-like <-- ?
14:44:43 <AnMaster> so it should be undefined instead?
14:45:45 <AnMaster> ais523, S.M.A.R.T.? As in harddisks?
14:48:54 <AnMaster> * Ping reply from ais523: 0.70 second(s)
14:49:05 <ais523> it's a management acronym
14:49:36 <ais523> Specific, Measurable, Achievable, Realistic, Time-related
14:49:59 <ais523> it's the managementese for what are good properties for targets to have
14:50:18 <ais523> except it leads to lots of arguments, such as what is the difference between achieveable and realistic anyway
14:50:33 <ais523> AnMaster: what it means in practice is that the targets you set have to have time limits
14:50:41 <ais523> but that isn't what time-related actually means
14:50:58 <ehird> ais523: you know what i hate? I hate internet-friends who take programming courses and ask me things. "can you decompile xml files" / "what" / "is it possible." "to decompile." "compiled xml files."
14:50:59 <ais523> AnMaster: that's the in-practice meaning, yes
14:51:22 <AnMaster> ehird, compiled xml files make no sense...
14:51:33 <ehird> AnMaster: congratulations, you got what i was saying
14:51:41 <ehird> i think he means binary xml file thingies
14:51:55 <ais523> ah yes, that reminds me of another weirdness about VHDL
14:52:04 <ais523> once you've finally translated it into an idiomatic form, and compiled it
14:52:14 <ais523> it's usual to decompile the output and interpret it to check that it still works
14:52:21 <AnMaster> binary xml files? You mean like encoded as ascii code points in stored in a binary file?
14:52:44 <ehird> there's such a thing
14:52:56 <ais523> would be the obvious solution
14:53:12 <ais523> hmm... I wonder if there is an official binary serialisation of XML?
14:53:25 <ais523> that wouldn't surprise me, even though it ought ot
14:53:26 <AnMaster> ais523, also for that VHDL issue it sounds like the compilers are horribly buggy
14:53:36 <ais523> AnMaster: no, the issue is that RL is horribly buggy
14:53:52 <ais523> once you've compiled into hardware, it works out how long all the wires are and so on
14:54:05 <AnMaster> as for "binary serialisation of XML", that makes no sense..
14:54:06 <ais523> and the decompiled version allows for the behaviour of the wires and such
14:54:28 <ais523> so for instance if two things happen at the same time in your source, in practice they'll normally happen at slightly different times in RL
14:54:33 <ais523> and the decompiled version will get that right
14:55:34 <ais523> hmm... your ATHR needs a "security considerations" section
14:55:38 <ais523> just because RFCs always have those
14:56:14 <ais523> wow, I just had an idea
14:56:22 <ais523> I think I might know how to get Feather to work...
14:56:47 <AnMaster> ais523, hm, I considered "ATHR and the impacts on modern society" section with the text "Not a lot." or something like that...
14:57:08 <ais523> although it's impossible to compare functions, it is possible to see if one function contains a copy of another
14:57:20 <ais523> and in a lang like Unlambda, the only way to find out what a function does is to run it
14:57:36 <ais523> and functions are generally modified by putting wrappers around them, that's the only thing you can do really
14:58:05 <AnMaster> ais523, also what would i put in security considerations? "Doesn't allow any additional external IO"?
14:58:17 <ais523> hmm... possibility for fork-bombs, maybe
14:58:27 <AnMaster> because I think ATHR would be safe according to cfunge's sandbox mode requirements
14:58:37 <ais523> could you fork-bomb with it?
14:58:43 <oklopol> ais523: what does it help if you know a function contains another?
14:58:46 <AnMaster> ais523, well thread bomb I guess...
14:58:55 <ais523> oklopol: the problem is to tell if two things are effectively the same
14:59:12 <AnMaster> ais523, also I saw a new horrible fingerprint in rc/funge, "FORK"
14:59:13 <ais523> the question is "what in the new universe corresponds to X in the old universe" after a retroactive modification
14:59:15 <AnMaster> http://www.rcfunge98.com/rcfunge2_manual.html#FORK
14:59:32 <AnMaster> and it is impossible to say what that actually does
14:59:42 <ais523> and the answer is "whatever has the same call tree of absolute function addresses, possibly with extra elements inserted"
15:00:05 <oklopol> ais523: sorry, i confused feather with your other unimplementable language
15:00:12 <oklopol> the name of which i forgot again
15:00:16 <AnMaster> oklopol, feather is implementable isn't it?
15:00:20 <ais523> Feather is at least in theory implementable, I think
15:00:26 <ais523> just I haven't figured out how yet
15:00:31 <ais523> I want to implement it to prove it's possible
15:00:34 <ais523> and then so I can program in it
15:00:58 <oklopol> proud is implementable too, just not well, it's a fuzzy issue
15:01:04 <AnMaster> ais523, should I attribute you with your nick or real name?
15:01:22 <ais523> I don't mind, "Alex Smith" would probably fit in best there given the other names
15:01:55 <ehird> but what about the wikipedia stalker-murderers
15:02:47 <ais523> well, my nick isn't on there, is it?
15:02:49 <AnMaster> ais523, anyway if implemented in erlang you effectively have no issue with fork bombs, erlang threads are very green. I think a newly created thread uses something like around 200-300 machine words of memory
15:03:36 <ais523> AnMaster: that just means that the fork bomb can become really big before you notice it
15:04:09 <AnMaster> ais523, well anyone sane would have proper ulimits set up
15:04:35 <oklopol> ais523: can you elaborate on why it helps that we can see whether a function contains another?
15:07:08 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | heh.
15:08:28 <ais523> oklopol: well, basically, suppose you retroactively modify the program
15:08:32 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
15:08:34 <AnMaster> ais523, btw how would ick interact with ATHR ;)
15:08:36 <ais523> the program will then rerun up to the point where you changed it
15:08:41 <AnMaster> not that I plan to implement it in cfunge
15:08:50 <ais523> AnMaster: if there was more than one thread at the end of any command, it would go crazy
15:09:16 <AnMaster> ais523, anyway that leaves the TRDS issue.
15:09:21 <ais523> oklopol: anyway, you need to avoid timeloops
15:09:24 <AnMaster> which I delegate to you ais523
15:09:31 <ais523> hmm... /me imagines ick + TRDS
15:09:59 <ais523> actually, ick + TRDS aren't fundamentally incompatible, but I can't figure out what the result would be
15:10:23 <AnMaster> ais523, and for ATHR and TRDS?
15:10:26 <ais523> oklopol: so, once you reach the command that did the retroactive modification, it shouldn't retroactively modify the second time round
15:10:36 -!- slereah has joined.
15:10:48 <ais523> AnMaster: I was joking, really, although I suspect the interaction would be the same as t + TRDS (i.e. only Deewiant understands it)
15:11:12 <AnMaster> ais523, I suspect it would be even messier
15:11:17 <ais523> oklopol: the problem is: determine when you reach that command, given that the program has changed in the meantime
15:11:40 <ais523> and I've come to the answer by considering what the likely modifications are
15:11:55 <ais523> I think I'll define a set of "sane" retroactive modifications that the standard library can cope with
15:12:21 <ais523> insane retroactive modifications are allowed to, but if you do them it's your responsibility to make sure the program doesn't timeloop or do other crazy pimetaradoxical things
15:12:31 <AnMaster> ais523, make each command have an GUID that never changes during a run?
15:12:42 <ais523> I thought of that too, but it doesn't help
15:12:51 -!- slereah has quit (Read error: 113 (No route to host)).
15:12:53 <ais523> because how do you tell it's the same command if the source changes, or the syntax of the lang changes
15:12:57 <ais523> and lambdas break it really badly
15:13:53 <ais523> the problem is to come up with something GUID-like that can cope with changes in the nature of the language
15:14:09 <ais523> and looking for call stacks with elements inserted seems to be the solution
15:14:17 <ais523> incidentally, the same problem comes up in handling I/O
15:14:45 <ais523> basically, the way I think Feather will do it is that input and output are tagged with their /purpose/
15:14:54 <ais523> and purposes are meant to be stable
15:14:56 <AnMaster> ais523, could you make feather become befunge?
15:15:12 <ais523> bootstrapping might be hard though
15:15:21 <ais523> as at some point the program would need to be a Feather/Befunge polyglot
15:15:25 <oklopol> i'll read, was watching a finnish racist boast about getting rid of foreigners on youtube
15:15:30 <AnMaster> ais523, care to give a short example program to show what the syntax looks like?
15:15:43 * oklopol likes watching nutjobs preach
15:15:55 <ais523> well, modulo the fact that I haven't come up with any examples yet, and the syntax keeps changing every now and then as I work out what the language features
15:16:09 <ais523> but after you've imported the standard library, it would be something like this:
15:17:21 <ais523> ^stdlib outputwrapper #sayhello [^stdlib output] [^stdlib stdout] "Hello, world!"
15:17:31 <ais523> that's not a very typical example though
15:17:49 <AnMaster> ais523, so how would you change the syntax? What does that bit look like?
15:17:53 <ais523> also, the # isn't strictly necessary, as curried functions don't have a sayhello message
15:18:33 <ais523> hmm... as a trivial example, I'll consider a modification to the language which makes a % at the start of the program comment out the entire program
15:19:07 <ais523> this could take a while to write, wait a while...
15:19:47 <oklopol> at some point, i considered a string from a marker to the end of the program for oklotalk
15:19:57 <oklopol> so you wouldn't need to worry at all about the contents of the string
15:20:16 <oklopol> and it'd be used by making an interpreter in the beginning of the program, then running the string
15:20:19 -!- Jiminy_Cricket has quit (No route to host).
15:20:27 -!- omniscient_idiot has quit (Read error: 113 (No route to host)).
15:21:27 <oklopol> oklotalk has lots of parsing features (planned that is), so it would be ideal for that sorta thing
15:22:55 <ais523> ^parser parse be [[old|[str|str head = '%' if [x|] old]] [^parser parse]]
15:23:15 <ais523> and that be could be become to make the change apply from now on, rather than retroactively
15:24:01 <ais523> also, most of the identifiers will probably end up different
15:24:05 <ais523> and may end up in different places too
15:24:15 <AnMaster> ais523, how does that match work
15:24:31 <ais523> and that's assuming that auto-unboxing and such have already been implemented, they'll be in the standard library though
15:24:44 <ais523> AnMaster: well, parse takes a string as input and returns a function as output
15:25:07 <ais523> so the new parser is defined in terms of the old one
15:25:27 <ais523> it compares [str head] (the square brackets are like parens) with '%'
15:25:31 <ais523> by telling it to compare itself with '%'
15:25:40 <ais523> that returns a boolean object
15:25:57 <ais523> its if method returns its first arg if it's true or its second arg if it's false
15:26:04 <AnMaster> ais523, could feather become any other language?
15:26:08 <ais523> one of those is a NOP whatever its argument
15:26:11 <ais523> and the other is the old parser
15:26:25 <ais523> it would need to get input from somewhere, though
15:26:29 <ais523> as in, the actual program to run
15:26:40 <AnMaster> ais523, so what if you made it C, how would it access mmap() and such?
15:26:41 <ais523> unless you wrote the program as a Feather/Befunge polyglot from the start, which could be fun
15:26:52 <ais523> AnMaster: you'd have to implement them in Feather
15:27:11 <ais523> I/O and standard library and such couldn't be in part of the becomed language unless they were in Feather's stdlib to start with
15:27:14 <ais523> file I/O probably would be though
15:28:09 <AnMaster> ais523, anyway what does the ^ mean?
15:28:18 <ais523> AnMaster: it refers to "this object"
15:28:32 <ais523> there are certain properties like stdlib that every object has
15:28:37 <GregorR> Hahahaha, you've inversed F# ;)
15:28:39 <ais523> so you can access them from anywhere
15:28:42 <AnMaster> ais523, if you could have that on the first line as first char, the befunge/feather polygot would be easy
15:28:57 <ais523> more to the point, it's trivial to get a [ on first line as first char
15:29:05 <ais523> and that also would make Befunge/Feather an easy polyglot
15:29:18 <ais523> anyway, I think ^ is the right character
15:29:26 <AnMaster> how would it handle the befunge program overwriting parts of the feather code?
15:29:28 <ais523> but what I actually wanted is whatever Smalltalk uses in that sort of context
15:29:41 <ais523> AnMaster: it wouldn't care, at the time the Befunge program ran the Feather code would no longer exist
15:29:48 <ais523> except as the Befunge interp
15:30:08 <ais523> if Feather modified itself into Befunge itself, you couldn't modify it back as Befunge has no command to retroactively change itself into Feather
15:30:22 <ais523> although you could modify it into a Befunge-like lang that could change back, maybe have it in a fingerprint...
15:30:38 <AnMaster> ais523, it could have that as a fingerprint or the same way that ick uses the middot
15:30:42 <ais523> however, modifying Feather into Befunge definitely qualifies as an insane change
15:31:00 <AnMaster> ais523, and yeah. What about changing it into scheme?
15:31:02 <ais523> so if you want stdlib to work after that, you're on your own
15:31:21 <ais523> likewise for most langs
15:31:35 <ais523> the rule for a sane Feather parser change is that in addition to the other requirements to be sane, it has to be backwards-compatible
15:31:52 <ais523> i.e. all legal programs under the old parser do the same thing, or the same thing and additional things, under the new parser
15:32:00 <AnMaster> ais523, so what about become instead of be?
15:32:01 <ais523> for instance, modifying the lang to make it run under a debugger is sane
15:32:05 <ais523> AnMaster: become is always sane
15:32:07 <AnMaster> didn't you say that worked around the issue
15:32:20 <ais523> become on the parser would have no effect until you tried to parse something, though
15:32:30 <ais523> as at that point you've already parsed your original program
15:32:44 <ais523> whereas be will modify the parser before it parsed your original program, that's what makes it a lot less sane
15:36:01 <AnMaster> ais523, what about one affecting every line of come from after this line?
15:36:17 <ais523> "come from" is a bit hard to define in a functional lang
15:38:11 <ais523> AnMaster: the entire program is parsed first then run
15:38:45 <ais523> you'd use be, but cause the parser to act the same way for earlier code
15:38:46 <AnMaster> ais523, that could he the sane way to protect syslib?
15:38:50 <ais523> ofc you have to define "earlier" somehow
15:38:54 <ais523> and yes, that would be sane
15:39:15 <AnMaster> define "earlier" as before some special marker
15:39:33 <ais523> the code is only linear in source form
15:39:38 <ais523> once it's a function, before has less of a meaning
15:39:43 <ais523> I'm sure it would be possible, though
15:40:04 <ais523> annotate all functions with the position in the source code they were generated from, for instance
15:40:10 <AnMaster> <ais523> the code is only linear in source form
15:40:15 <AnMaster> then what about making it into cat?
15:41:36 <ais523> well, cat would be trivial
15:41:54 <ais523> hmm... you could do a Feather quine by causing the parser to output its input rather than parsing it, retroactively
15:44:39 <AnMaster> ais523, then the source needs to be in linear form doesn't it?
15:44:50 <ais523> you know what the source code is
15:44:54 <ais523> but it's like any other compiled lang
15:44:58 <ais523> you have the source, and the executable
15:45:10 <ais523> in Feather, though, the executable can modify the source and it changes accordingly, whilst still running
15:45:41 <ais523> hmm... lazy parsing might be useful in Feather, not necessary, but nice
15:45:48 <ais523> maybe I'll make stdlib retroactively add it
15:46:18 -!- Slereah_ has joined.
15:47:06 <AnMaster> ais523, you could add it from within feather anyway ;P
15:47:21 <ais523> this is simply a discussion about what would be useful in the stdlib
15:47:32 <ais523> well, what changes the stdlib makes at the start of any program
15:47:47 <ais523> the nature of any Feather interp is that it has to be written entirely in Feather
15:47:56 <ais523> the nature of RL is that they have to be written in something else to start it off
15:48:18 <ais523> so you start off with two versions of the same interp, one in Feather, one in some other lang, which both do exactly the same thing
15:49:02 <ais523> that seems like a better bet than hoping a Feather interp will spontaneously come into existence, great as that would be
15:49:15 <ais523> once Feather is running, it's under the impression that there are an infinite number of layers of Feather interps under it
15:49:29 <ais523> because if you ever go down far enough that you reach the bottom, you can retroactively add more underneath
15:50:04 <ais523> however you can, of course, expose the mechanism for doing that so it doesn't fool if you want to
15:57:02 <ais523> leaving for about 20 mins, going to a different Internet connection
16:14:00 -!- sebbu has joined.
16:32:39 -!- oklopol has quit (Read error: 110 (Connection timed out)).
16:35:18 -!- Ilari has joined.
16:37:28 <AnMaster> ais523, hm should I make TRDS interaction undefined or leave it as the demons bit?
16:37:42 <AnMaster> consider I plan to let Mike Riley see this standard
16:37:42 <ais523> just leave it as demons
16:38:01 <ais523> every C programmer ought to know what that means anyway
16:38:11 <ais523> and it wouldn't be the first lang with a physically unimplementable spec
16:38:29 <AnMaster> ais523, oh no, it is implementable
16:38:31 <ais523> (HOMESPRING requires the interpreter to produce a temporal paradox upon encountering the character string . .)
16:38:37 <AnMaster> "Using TRDS and ATHR in combination shall cause implementation-defined demons to
16:38:37 <AnMaster> fly out of the Funge programmer's nose."
16:38:46 <AnMaster> the key is "implementation-defined" demons
16:38:53 <AnMaster> you could just define it to NULL
16:39:01 <ais523> is it an implementation-defined nose too?
16:39:16 <AnMaster> ais523, no but that wouldn't be needed, would it?
16:39:34 <ais523> the problem is to get null pointers out of the programmer's nose
16:39:40 <AnMaster> just define those demons to "no demons" then?
16:39:42 <ais523> that might not be trivial, they might not have a nose for instance
16:40:03 <AnMaster> for (i=0; i < 0; i++) { release_demon(&nose); }
16:40:21 <ais523> Slereah_: why the big sad left-handed smiley?
16:40:26 <AnMaster> ais523, any sane compiler would optimise that away
16:40:56 <ais523> hmm... how many languages let you declare but not define a function if you never use it?
16:41:04 <ais523> I wonder which others?
16:41:22 <AnMaster> ais523, well that wouldn't help here
16:41:58 <ais523> gcc would leave no references to release_demon in the object file
16:42:03 <ais523> if you were optimising
16:42:14 <ais523> so you wouldn't get the link fail that you normally get for referencing a non-existent function
16:42:27 <AnMaster> ais523, the variable nose could be an issue
16:42:30 <ais523> &nose would have to mean something, but I suppose nose could just be an extern variable...
16:42:33 <AnMaster> I guess you have to have a static variable
16:42:49 <AnMaster> for (i=0; i < 0; i++) { release_demon_in_nose(); }
16:43:02 <AnMaster> after all since that is all about side effects anyway
16:44:40 <ais523> well, it can be a static variable in a non-existent function
16:47:34 <AnMaster> hm I read about solving sodoku using the debian package manager's dependency resolution stuff... But what about using make?
16:48:01 <ais523> I'd be surprised if it was a lower computational class than dpkg
16:48:34 <ais523> I don't know, I don't see why it would be though
16:48:38 <ais523> whereas TC make makes sense
16:48:56 <AnMaster> also it is non-trivial to answer that for make. Since there are so many make dialects
16:49:15 <AnMaster> pmake and gnu make are the most common ones probably
16:52:48 <AnMaster> ais523, in ick, what is "arrgghh.o"?
16:52:59 <ais523> it handles command line arguments for generated programs
16:53:06 <ais523> deals with +wimpmode, +instapipe, and so on
16:53:18 <AnMaster> * SYNOPSIS: ick_parseargs(argc,argv)
16:53:48 <ais523> ok, presumably it was called parseargs.c before it was renamed to have a funky ick-name
16:53:57 <ais523> that must have been ages ago, probably I could find it in the changelog if I looked
16:54:09 <ais523> and the ick_ prefix is because I put ick_prefixes on everything
16:54:17 <ais523> when implementing the FFI
16:54:48 <ais523> that is, genuinely, a changelog
16:55:01 <ais523> the rename won't be there
16:55:07 <ais523> but the implementation of +wimpmode will be
16:55:29 <AnMaster> <ais523> that must have been ages ago, probably I could find it in the changelog if I looked
17:18:24 -!- Mony has joined.
17:53:52 <AnMaster> ais523, well anyway I will begin messing with input buffering in efunge to make it compatible with ATHR. Implementing ATHR will take some time
17:54:01 <AnMaster> since I don't have a lot of that currently
17:54:11 <ais523> ah, you're planning to actually implement it?
17:54:55 <AnMaster> so don't worry about it messing up ick
17:55:12 <AnMaster> ais523, I suspect doing it in C would be a pain anyway
17:55:35 <AnMaster> ais523, didn't you think I would implement it?!
17:56:11 <ais523> well, there are a lot of random lang ideas which are thrown around here and then not implemented
17:56:20 <AnMaster> ais523, of course TRDS won't ever be supported
17:56:39 <ais523> AnMaster: not even if you write featherfunge some day?
17:56:42 <ais523> it would probably be trivial in that
17:57:10 <AnMaster> ais523, I consider that a very hypothetical question.
17:57:21 <AnMaster> 1) There is no working Feather yet
17:57:24 <ais523> that involves having a working Feather first
17:57:32 <ais523> then you being motivated to write a Funge interp in it
17:57:38 <AnMaster> 2) I never said I would write a feather funge indeed
17:58:36 <AnMaster> ais523, anyway are there any languages other than erlang where ATHR would be reasonably easy to implement?
17:58:57 <AnMaster> ais523, "ATHR may not be implemented as synchronous by lazy programmers writing a
17:58:57 <AnMaster> Funge-implementation. That is considered very bad style. ATHR should be truly
17:59:11 <ehird> the style police will kill you
17:59:30 <AnMaster> ais523, does it have something async enough?
17:59:36 <ehird> AnMaster: how about "my language DOES NOT SUPPORT truly asynchronous threads, shut up and let me implement it for compatibility"
17:59:37 <ais523> it has synchronous multithreading in theory, but it's easier to treat it as asynch rather than trying to figure out how the synchrony works
17:59:55 <ehird> also "truly asynchronous threads" are impossible on a single-core system.
18:00:07 <AnMaster> ehird, well I was planning distributed
18:00:16 <ais523> it has ONCE/AGAIN and ABSTAIN/REINSTATE as its atomic primitives
18:00:26 <ehird> AnMaster: let people implement it however.
18:00:41 <ais523> (actually all commands are atomic in the current implementation, but ONCE/AGAIN/ABSTAIN/REINSTATE are the only keywords for which atomicity matters)
18:00:50 <AnMaster> ehird, Uf you feel offended you may have a better wording? I just want discourage it being implemented the same way as t by lazy programmers
18:01:01 <ehird> AnMaster: it won't be...
18:01:05 <ehird> because the whole purpose is not being t
18:01:08 <ehird> so just remove the paragraph
18:01:12 <ehird> plus, its very self-evident from reading it
18:01:15 <AnMaster> ehird, well Deewiant seemed to suggest doing it that way
18:01:18 <ais523> ehird: actually, I'd probably lazily implement it t-style
18:01:22 <ais523> if I just wanted to get something working
18:01:33 <ais523> maybe I'd deliberately skip steps every now and then at random
18:01:40 <ais523> to make it actually asynchronous
18:01:47 <ehird> there's nothing wrong with that.
18:01:58 <ais523> just like all my HQ9+ interps have an accumulator, even though there's no way to tell from inside the program that it's there
18:04:01 <Asztal> they should have a -O flag :)
18:04:42 <ais523> Asztal: that should store the accumulator in a register, for faster access
18:06:24 <Asztal> and possibly interleave consecutuve
18:11:53 <Deewiant> AnMaster: huh? when did I say that
18:15:20 <AnMaster> Deewiant, it was when discussing MVRS and ATHR
18:15:52 <AnMaster> okt 16 13:08:08 <Deewiant> AnMaster: but we wanted the option of sync vs. async
18:16:05 -!- kar8nga has joined.
18:16:17 <AnMaster> Deewiant, while you didn't say it straight out, what you said seemed to imply you wanted sync ATHR
18:16:32 <AnMaster> okt 16 13:03:36 <Deewiant> right, but what would ATHRs containing MVRSs even be?
18:16:34 <Deewiant> no, that was wholly about MVRS
18:16:42 <Deewiant> that latter was just me not understanding
18:16:50 <AnMaster> Deewiant, them I'm sorry is if I misunderstood
18:17:15 <Deewiant> I'm sorry I was misunderstood :-P
18:17:57 <AnMaster> Deewiant, anyway MVRS is too badly specced to be sure, So I'm going to contact Riley with the spec when I worked out the output bit and try to fix that
18:18:10 <AnMaster> Deewiant, also did you see the last version where "mutex" have become "book"?
18:18:13 <Deewiant> MVRS is much less than it was supposed to be
18:18:30 <AnMaster> http://rafb.net/p/BETCqd29.html
18:18:33 <Deewiant> and no, but I didn't really read through the earlier ATHR specs in detail either :-P
18:18:59 <AnMaster> Deewiant, anyway mutexes are now books in a library :P
18:19:15 <Deewiant> sounds to me like you've had too much to do with INTERCAL
18:19:24 <ais523> yes, it's a very INTERCAL-like analogy
18:19:35 <AnMaster> ais523, I added the security considerations there
18:19:47 <ais523> I'll have a look at them
18:19:59 <AnMaster> Deewiant, and what is wrong with that?
18:20:13 <Deewiant> nothing really, just making an observation :-P
18:20:50 <AnMaster> Deewiant, "too much" often indicates "more than what is a good idea" implying something is wrong
18:21:06 <Deewiant> well, having anything to do with INTERCAL is arguably a bad idea ;-)
18:21:11 <ais523> any amount is too much to do with INTERCAL, probably
18:26:49 <ais523> AnMaster: we both said much the same thing, that was what the snap was about
18:26:57 <ais523> it's an idiom that comes from a children's game
18:27:04 <ais523> people take turns revealing cards from the top of a deck
18:27:14 <ais523> when two the same in a row are revealed, the first person to say "Snap!" wins
18:27:20 <ais523> so it's all about reactions, really
18:27:34 <ais523> there are also various rules about how you can reveal the cards, as an anti-cheating measure
18:27:46 <ais523> (to prevent people looking at the cards before other people can see them)
18:30:26 <AnMaster> ais523, ehird Deewiant, do you like the new top section better in http://rafb.net/p/18vBZT98.html
18:31:02 <ehird> it still says DRAFT
18:31:03 <ais523> and the security consideration too
18:31:12 <ehird> +!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!++!DRAFT!+
18:31:13 <AnMaster> ehird, of course, because it is still a draft
18:31:24 <ehird> and we all know that
18:31:27 <AnMaster> that is why there is a TODO comment in the IO section
18:31:34 <ais523> who is Heikki Kallasjoki, btw?
18:31:35 <ehird> we wouldn't take some random pastebin post as something we should go implement right now
18:31:39 <ehird> it's hilariously over the top
18:32:01 <AnMaster> ehird, I believe I gave my reasons for it yesterday
18:32:07 <ehird> AnMaster: not any good ones
18:32:14 <ais523> AnMaster: what were the reasons again?
18:33:17 <AnMaster> ais523, that if nothing else, working with befunge programmers have taught me that it is better to over-specify and try to be extra clear (not sure if that is the right English word)...
18:33:33 <AnMaster> Because someone will surely interpret anything you didn't state in a way you didn't intent
18:33:43 <ais523> are Befunge programs generally sloppy and ambiguous?
18:34:11 <AnMaster> ais523, no, but considering all the disputes about what fingerprint specs, or even the funge-98 spec actually means...
18:34:21 <ehird> thats because they're both written rubbishly
18:34:24 <AnMaster> even for some cats eye fingerprints...
18:34:26 <ehird> doesn't mean you should go so over the top
18:34:42 <AnMaster> ehird, I believe the English idiom is "better safe than sorry"
18:34:57 <ais523> also, OVERENGINEERING is FUN
18:35:08 <AnMaster> ais523, well yeah but only on school assignments
18:35:12 <ehird> not when AnMaster is being serious
18:35:31 <AnMaster> ehird, You just fail at meta-meta-meta-humor :P
18:37:46 <ehird> AnMaster: It'd help if it was funny
18:37:59 <ais523> ehird: actually it's funnier because it's serious
18:38:07 <ais523> and AnMaster: one too many metas I think, unless I'm missing something
18:38:08 <ehird> i disagree totally
18:39:39 <AnMaster> ais523, actually I think I may have forgot a meta
18:42:55 <AnMaster> also you can have ATHR without having t.
18:59:24 -!- oerjan has joined.
19:00:49 <oerjan> <AnMaster> please please don't let this become sort of channel in-joke
19:01:06 <oerjan> also, DRAFT DRAFT DRAFT DRAFT
19:01:39 -!- ais523 has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | This channel is a !! DRAFT !! DRAFT !! DRAFT !! DRAFT !!.
19:05:53 <ehird> this channel is daft, more like
19:06:10 <oerjan> and has a lot of drift
19:08:31 * oerjan writes it up in case Slereah_ ever tries to run for president
19:09:17 <Slereah_> THIS IS A MUDSLINGING CAMPAIGN DESIGNED TO SULLY MY GOOD NAME
19:10:15 * ais523 was amused at all the focus on Joe the Plumber, when he seems to be some sort of richish entrepreneur, not the sort of typical American at all
19:10:20 <AnMaster> Deewiant, "BAD: i should have pushed (90, 16) as Vb", why is it so hard to output what it pushed instead? :/
19:10:45 <Slereah_> Is he a real hardworking American?
19:10:50 <Deewiant> AnMaster: because doing that requires a lot more code and it's possible that it didn't even push anything
19:13:26 <oerjan> Slereah_: a beer reporter, says google
19:14:56 <oerjan> depends how bad the beer is
19:15:16 <oerjan> but face it, there's a beer market out there
19:15:39 <Slereah_> http://www.boxingdaily.co.uk/wp-content/img/notasixer.JPG
19:15:45 <Slereah_> This is apparently Joe Sixpack
19:16:17 <Slereah_> http://media1.break.com/dnet/media/2007/11/27halloween.jpg
19:20:49 <ehird> he either loves nomic
19:21:26 <Slereah_> Can a man with such a moustache really hate America?
19:21:43 <Slereah_> He also has arms that bear arms
19:22:59 * pikhq doges the draft by 4Fing out
19:23:26 <AnMaster> {MaxX, MaxY} = load_binary(Binary, Fungespace, TrueX, TrueY, false, TrueX, undefined),
19:23:53 <pikhq> Exempt from military service for medical reasons.
19:23:55 <AnMaster> the two last parameters are only there because of i
19:24:09 <pikhq> Mental disability in my case, amusingly.
19:24:57 <Slereah_> pikhq : How are you mentally disabled?
19:25:46 <pikhq> If it weren't for that, I could feasibly pull off conscientous objector.
19:26:50 <pikhq> One who objects to military service for philosophical or religious reasons.
19:28:23 <ehird> How can autism get you off the draft?
19:28:27 <ehird> Well, unless it was severe autism.
19:28:36 <ehird> But you sure don't act like it :-P
19:33:11 <pikhq> The military tends to be pretty picky when it comes to mental status.
19:33:22 <pikhq> Keep in mind: they considered *Feynman* mentally unfit. ;p
19:34:31 <AnMaster> hm anyone got a program testing i in binary mode?
19:35:47 <AnMaster> Deewiant, it only does it in text mode iirc
19:36:40 <AnMaster> Deewiant, well why then doesn't it crash or report BAD? Since I don't implement the binary one yet.
19:36:56 <AnMaster> Deewiant, I implement i but not o btw
19:37:15 <Deewiant> and reads it back in with binary i
19:38:24 <Deewiant> AnMaster: hmm, does it say anything about lack of o?
19:38:46 <AnMaster> Successfully exited MycoRand. Rerun a few times to ensure ? works.
19:38:47 <AnMaster> Opening mycotmp0.tmp... failed.
19:38:47 <AnMaster> Trying to write to it with o...
19:38:47 <AnMaster> UNDEF: writing to mycotmp0.tmp with o failed
19:38:50 <Slereah_> Why don't every draft dodgers register as consciencious objectors?
19:39:00 <Slereah_> I mean, do they check it or something?
19:39:10 <AnMaster> Deewiant, y only claims to implement i
19:39:27 <AnMaster> Deewiant, so why it tries testing it at all and report it as UNDEF... no idea
19:39:48 <Deewiant> AnMaster: because the code there is compact and changing it from BAD to UNDEF was easiest
19:40:02 <AnMaster> Deewiant, ah, and no room to expand?
19:40:25 <Deewiant> I don't know what exactly goes where there
19:40:49 <AnMaster> Deewiant, but it is all relative storage offset so that is easy
19:41:09 <AnMaster> Deewiant, i is relative storage offset.
19:41:10 <Deewiant> the point is that mycorand.bf is there somewhere, but not in the source code
19:41:22 <Deewiant> so I don't know where I can expand without running into mycorand.bf stuff
19:41:25 <AnMaster> so just moving everything down a few lines should work?
19:41:31 <AnMaster> if you properly use storage offset
19:42:07 <Deewiant> probably wouldn't be too hard to make it do so though
19:42:35 <oerjan> Slereah_: at least here in norway, if you register as a conscientous objector, you have to do some civilian community work instead
19:42:59 <Slereah_> Can't you also be an objector to that?
19:43:03 <Slereah_> Like saying "I'm an anarchist"
19:43:21 <oerjan> Slereah_: no. then you go to prison, i believe.
19:43:39 <Slereah_> I pay taxes! I don't need to work for you!
19:43:49 <Slereah_> Well, I don't pay taxes to Norway
19:45:01 <AnMaster> oerjan, I can avoid it for two reasons 1) Gov cuts down on military anyway all the time 2) I got asthma, so health reasons as well
19:45:21 <AnMaster> they didn't even contact me about it. heh
19:45:29 <oerjan> well (1) applies in norway too, it would be stupid to object _before_ you're called in
19:47:03 <Deewiant> AnMaster: can you hg pull a Mycology from 88.114.230.95:8000?
19:47:41 <AnMaster> Deewiant, what is the hg command?
19:47:55 <Deewiant> AnMaster: if you have a repository, hg pull, if not, hg clone
19:48:05 <AnMaster> $ hg clone 88.114.230.95:8000 mycology
19:48:05 <AnMaster> abort: repository 88.114.230.95:8000 not found!
19:48:41 <AnMaster> Successfully exited MycoRand. Rerun a few times to ensure ? works.
19:48:41 <AnMaster> Opening mycotmp0.tmp... failed.
19:48:41 <AnMaster> Trying to write to it with o...
19:48:57 <AnMaster> UNDEF: writing to mycotmp0.tmp with o failed: can't test i in binary mode
19:48:57 <AnMaster> 1y says this is not Concurrent Funge-98, won't test t...
19:49:16 <Deewiant> AnMaster: says explicitly that it isn't testing i in binary mode because of no o
19:49:40 <AnMaster> Deewiant, still tries o even when it isn't supported though ;P
19:49:48 <Deewiant> AnMaster: even fitting that string in took a bit of messing about which is why I asked you to test
19:50:45 <AnMaster> Deewiant, you could potentially test it on mycorand.bf
19:50:57 <AnMaster> to see if it is read correctly by i when i is in binary mode
19:52:39 <AnMaster> Deewiant, anyway when ATHR goes final and efunge implemented it, will you consider implementing it in ccbi2?
19:53:33 <AnMaster> Deewiant, maybe you could send those MVRS change suggestions to Riley?
19:53:45 <AnMaster> Otherwise ATHR is actually more useful since it is better defined
19:54:00 <Deewiant> I might spam him when I get around to implementing it
19:54:11 <Deewiant> but can't really be bothered right now
19:54:18 <Deewiant> so if you are bothered, better that you do it
19:54:33 -!- ab5tract has joined.
19:54:50 <AnMaster> Deewiant, also it doesn't seem to allow lacking support for trefunge/unefunge, only for befunge-93/funge-98/funge-108
19:55:58 <AnMaster> ab5tract, work in progress, clearing up issues in funge-98
19:56:43 <AnMaster> ab5tract, it depends on when I finish it and when feedback from others are finished
19:57:02 <AnMaster> ab5tract, see http://kuonet.org/~anmaster/funge-108/funge108.pdf
19:57:13 <AnMaster> it replaces fingerprints with uris too
19:57:54 <ehird> ab5tract: There are no actual funge-108 implementations, likely will never be any outside of AnMaster's implementations, and there will likely not be any non-anmaster programs written in it.
19:58:02 <ehird> That is my assesment.
19:58:20 <AnMaster> ehird, well Mike Riley did show some interest in it
19:58:33 <ehird> Also, while URIs are good for...universally identifying stuff (as in... their whole purpose)...it just makes the funge code ugly because the URIs take up whole lines.
19:58:34 <AnMaster> only he didn't want to implement proper URI comparing
19:59:06 <ehird> ab5tract: funge code is generally pretty
19:59:34 <AnMaster> so would it be with embedded uris IMO
19:59:43 <ab5tract> you can have a stack on your stack stack that just stacks uris
19:59:57 <ab5tract> and put them somewhere far out in the space, all together in a neat order
20:00:30 <AnMaster> ab5tract, name collisions were a problem before
20:00:32 <ab5tract> of course i'm visualizing this entirely according to what i envisage as the perfect funge ide
20:00:51 <AnMaster> ab5tract, IDEs? Why would you need that
20:01:00 <AnMaster> all you need is a emacs major-mode
20:01:16 <ab5tract> so that funge doesnt read like a a linear ascii file anymore
20:01:17 <ehird> ab5tract: i'm planning on making a funge ide
20:01:25 <ehird> including fizzie's hyperlink-comment idea think
20:01:32 <AnMaster> ab5tract, I hardly ever use IDEs for anything
20:02:17 <AnMaster> (and no I don't use IDE in the other meaning either)
20:02:36 <ab5tract> well shit, AnMaster you have that emacs together and i'll use it once i can directly download emacs bindings coordination through a memory expansion through a e-sata port in my skull
20:02:50 <ab5tract> but probably not before that :)
20:03:09 <AnMaster> ab5tract, Try kate then? Currently I'm using kate to edit some Erlang code
20:03:19 <AnMaster> and emacs for some other C files
20:03:25 <ab5tract> what i want is a window that shows the space
20:03:49 <ab5tract> and i can zoom and fly around it and whatnot
20:03:50 <ais523> Emacs is excellent for VHDL, I find
20:03:58 <ais523> VHDL's syntax is obnoxious
20:04:04 <AnMaster> ab5tract, that only make sense for trefunge
20:04:08 <ais523> and so Emacs has a little wizard-like thing for each keyword
20:04:11 <AnMaster> for befunge a text editor is just fine
20:04:16 <ab5tract> no it can make sense for mbefunge as well
20:05:04 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
20:05:07 <oerjan> ab5tract: you've named it, you now have to invent it
20:05:10 <AnMaster> ab5tract, anyway opengl based such stuff have been done, but generally they suck
20:05:55 <ab5tract> ehird: what's your ide going to look like?
20:06:00 -!- bsmntbombdood has joined.
20:06:41 <ab5tract> are you gonna write it in funge?
20:10:42 <ab5tract> AnMaster: is emacs capable of having a zoomed out map of an entire 64-bit space?
20:11:06 <ab5tract> obviously it would have to be a pretty complex program for anything to even show up at that distance
20:11:22 <ais523> I think it would mostly show up as sameness if it did
20:11:32 <ais523> because a program that big's likely to be using its fungespace to store data rather than program
20:11:50 <ab5tract> but the idea is to be able to navigate the space on an x,y, and even z access
20:12:46 <ab5tract> z probably not being allowed to go negative
20:13:17 <ab5tract> but you can zoom out and check out all yo' data
20:14:17 <ab5tract> however, if emacs gives a great deal of x,y freedom then it would give me the most important feature i seek
20:14:35 <ais523> ab5tract: emacs has picture-mode
20:14:37 <AnMaster> <ab5tract> AnMaster: is emacs capable of having a zoomed out map of an entire 64-bit space?
20:14:42 <ais523> but that doesn't have a zoom IIRC
20:14:46 <AnMaster> I don't think that is feasible
20:14:58 <ais523> also, ab5tract, stop having a 5 in your name, it makes me think people are talking to me when they talk to you
20:15:15 <ais523> I'm used to being the only 5-containing-person around here
20:15:20 <ais523> but don't worry about it
20:15:30 <ais523> I don't have an exclusive right to 5s...
20:15:53 <AnMaster> ab5tract, also as I said when you had left channel in answer to GUI framework
20:16:00 <ab5tract> if irc were truly cool i coud use the befunge version of my name
20:16:08 <AnMaster> 1) gs is part of standard erlang. It uses Tk.
20:16:28 <AnMaster> 2) Wings3D (a 3D modeller in Erlang) uses some custom-made one that renders to OpenGL
20:16:38 <AnMaster> 3) fizzie added there was erlgtk
20:17:08 <AnMaster> ab5tract, but bindings for funge would be painful
20:17:33 <ab5tract> AnMaster: the idea of funge on erlang is very cool
20:17:36 <AnMaster> ab5tract, but since I plan to make = *evaluate erlang*, this may be a good idea
20:17:54 <ais523> I want to write a funge interp in something silly now
20:17:59 <ais523> like Thutu, that would be a disaster
20:18:03 <AnMaster> anyway doing = as system() would be truly painful in erlang
20:18:08 <fizzie> You can, apparently, with a bit of twiddling, use Tile (the less sucky Tk widget set) with Tkinter (the Python Tk bindings); I wonder if that's the case of 'gs' too.
20:18:19 <ais523> hmm... actually, I have some ideas how a Thutu interp for Befunge-93 could work...
20:18:19 <AnMaster> ab5tract, anyway efunge now have i also, but not o t or = yet
20:18:39 <AnMaster> ab5tract, t may never happen, since it will have ATHR
20:19:04 <ais523> but I have lots of other esostuff I want to do
20:19:09 <AnMaster> ab5tract, however, I must warn you that I'm a I'm a slow worker, especially during non-holidays
20:19:09 <ais523> and two RL projects which are almost eso
20:19:11 <ab5tract> AnMaster: funge-108 should just assume ATHR
20:19:27 <AnMaster> fizzie, and no idea about that for gs
20:19:33 <AnMaster> gs stands for graphic server btw
20:19:40 <ab5tract> ais523: "almost eso" sounds pretty cool
20:19:43 <fizzie> For some reason I find the Tk look quaint.
20:20:01 <ais523> ab5tract: I described my University fourth-year Masters project in this channel
20:20:03 <AnMaster> fizzie, it reminds me of mosaic yes...
20:20:03 <ab5tract> because its like pre-motif right?
20:20:05 <ais523> and the people here said I was mad
20:20:40 <ehird> tk isnt as old as motif
20:20:43 <fizzie> Oh, Tile is part of the 8.5 Tcl/Tk release. Didn't know that.
20:20:45 <ehird> tk has modern widget sets nowadays
20:21:25 <AnMaster> fizzie, what I wonder is how Tk can work with gs since I have no tcl installed
20:40:54 <fizzie> fungot: Hey, try speaking like Terry Pratchett writes. Just for curiosity's sake.
20:40:54 <fungot> fizzie: no, that was their trouble...
20:41:07 <fizzie> fungot: Pretty please?
20:41:08 <fungot> fizzie: ( kids generally, i meet people before they're buried./ ones near/ coast build rafts and head out across lonely seas to lands that are :) little clouded or full of stormy weather.
20:41:34 <fizzie> _Really_, that "other text than irclogs" script has some serious issues with :) and /.
20:43:21 <fizzie> Actually, no. It's just that the text generation code in fungot has a hardcoded list of punctuation tokens, but since :) and / are so _rare_ in the source text, they are not used, and in their place there's some of the most common tokens.
20:43:21 <fungot> fizzie: carrot took another step back. then, his claws fnord tracks in/ floor above. every so often.
20:43:48 <fizzie> I think "the" has been mapped to / here, and :) maybe to "a".
20:44:25 <fizzie> Well, that's easy to fix. Thanks for clarifying it.
20:47:15 <oerjan> carrot doesn't have claws!
20:48:44 <AnMaster> <fizzie> fungot: Hey, try speaking like Terry Pratchett writes. Just for curiosity's sake.
20:48:45 <fungot> AnMaster: ( i know." :) stubby troll finger prodded cuddy in/ back of his mind.
20:48:54 <AnMaster> I have read all the books of course
20:49:13 <AnMaster> oh wait... You mean like Carrot? with misplaced ,
20:49:46 <AnMaster> <fungot> AnMaster: ( i know." :) stubby troll finger prodded cuddy in/ back of his mind. <-- huh
20:49:55 <AnMaster> fizzie, you reloaded word list?
20:50:15 <fizzie> Yes, I was just scp'ing the new model over and you went and talked to it. :p
20:50:18 -!- fungot has quit (Read error: 131 (Connection reset by peer)).
20:50:38 -!- fungot has joined.
20:50:48 <fizzie> fungot's problem with :) and / should now be fixed.
20:50:48 <fungot> fizzie: " oh. pardon me, i'm just a novice, but he couldn't quite see what it did to metal.
20:51:03 <fungot> AnMaster: " you can damn well find another witch for lancre! for the fnord
20:51:25 <AnMaster> fizzie, I fear the " mess up the effect
20:51:46 <AnMaster> I'm a fan of those books. Yet they lack :) as far as I remember
20:51:46 <fizzie> Well, the " comes from the source text.
20:51:55 <fizzie> Yes, that was the problem.
20:51:58 <AnMaster> fizzie, which book(s) did you use?
20:52:12 <fizzie> There were no :)s and :(s so it removed those tokens, but fungot's punctuation list is hardcoded.
20:52:12 <fungot> fizzie: " will you look at that sky?'
20:52:31 <fizzie> So the two most common tokens ("the" and "a") were translated to the two last punctuation tokens (:) and /) by fungot.
20:52:31 <fungot> fizzie: he turned and waved at someone in the face.
20:52:46 <fizzie> The " comes from the source text, though. Lots of quoted text there.
20:53:23 <AnMaster> fizzie, well yeah, all the talk
20:53:42 <fizzie> I used the Discworld books 1, 3, 7, 8, 9, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26 and 27.
20:53:58 <AnMaster> fizzie, where did you get electronic copies?
20:53:59 <fizzie> Mainly because those were in the highly illegal ebook pile I once got.
20:54:13 <AnMaster> fizzie, So what ones are those?
20:54:48 <fizzie> Colour of Magic, Equal Rites, Pyramids, Guards! Guards!, Eric, Small Gods, Lords and Ladies, Men At Arms, Soul Music, Interesting Times, ...
20:54:59 <AnMaster> fizzie, also lacking number 2 is kind of painful if you have number 1. Since 1 ends with "to be continued"
20:55:15 <fizzie> Maskerade, Feet of Clay, Hogfather, Jingo, Carpe Jugulum, The Truth, The Thief of Time, The Last Hero.
20:55:18 <ais523> neither 1 nor 2 is much good anyway
20:55:24 <ais523> some of the later ones are good, though
20:55:29 <ais523> probably 3 was the first good one
20:55:39 <AnMaster> ais523, Thief of time is my favourite
20:56:00 <ais523> my favourite are the Ankh-Morpork Watch trilogy, but thief of time is good too
20:56:43 <ais523> but I'm not counting night watch as part of that trilogy, although it's OK
20:57:06 <AnMaster> some more depending on how you count
20:57:11 <Asztal> Thief of time is probably my favourite too, though I liked the Bromeliad trilogy
20:57:36 <AnMaster> What do you think about the last one? Nation?
20:57:52 <AnMaster> It is pretty good, but kind of non-Pratchett in style
20:58:54 <fizzie> I haven't read anything later-than-or-equal-to Going Postal yet, actually.
20:59:13 <Slereah_> The Going Postal series is pretty good, actually
20:59:19 <AnMaster> Well I got the complete collection of all books apart from some child books
20:59:20 <ais523> hmm... some of the books I have to read multiple times to understand
20:59:32 <ais523> Going Postal is one of them, but once I got it I liked it
20:59:34 <Slereah_> AnMaster : Do you have the non-discworld books too?
20:59:35 <Asztal> get maurice and the amazing cat :D
20:59:47 <Asztal> (err... Maurice and his amazing rodents)
20:59:53 <Slereah_> Even... The unadultarated cat? :o
21:00:06 <AnMaster> Slereah_, I don't have that "where is my cow"
21:00:16 <Slereah_> It never got translated in French, so I wonder if it's well known
21:00:23 <Slereah_> I have it, but I had to order it
21:00:30 <AnMaster> Slereah_, err why would French be of any interest?
21:00:44 <Slereah_> And all other books are translated
21:00:53 <AnMaster> Slereah_, well I get them in English anyway
21:00:54 <Slereah_> Even shitty ones like Dark side of the sun
21:01:03 <AnMaster> preserves the language, reading in original language
21:01:09 <AnMaster> Slereah_, dark side isn't that bad
21:01:17 <fizzie> I personally only own The Science of Discworld 1/2/3 and some (around six?) random Discworld books, probably with a uniform distribution of Finnish translations (received as gifts) and English versions (bought for reading when travelling).
21:01:22 <AnMaster> Slereah_, what do you think about Carpet people?
21:01:39 <AnMaster> Slereah_, do you have new or original version?
21:02:00 <AnMaster> Slereah_, also that is another thing I miss, some of the discworld diaries
21:02:14 <AnMaster> Slereah_, also I assume you got the discworld quiz books?
21:03:08 <fizzie> Obviously I picked the right author for fungot to quote from. :p
21:03:08 <fungot> fizzie: " samuel!" said caleb. " everything we believe is coming true. and her leg still dropped off. so i thought i'd better make certain.'
21:03:09 <AnMaster> also I lack some of those "short stories" that are listed in "books by the same author".
21:03:39 <AnMaster> fizzie, well he is well known, he writes fantasy (though unusual such) and we are geeks. What did you expect?
21:03:58 <fungot> AnMaster: angua picked out the little organizer and raised the cleaver and brought it down.
21:04:18 <AnMaster> fizzie, I think these sounds pretty bad in fact
21:04:47 <fizzie> I don't think very many other well-known fantasy authors would have multiple people here owning a rather complete collection of such a large set of books.
21:05:05 <fizzie> Yes, it isn't very conversational.
21:05:09 <AnMaster> fizzie, also it would be more realistic if the space between " and the text is correct
21:05:17 <fungot> AnMaster: ' it goes with us. it's very urgent.'
21:05:18 <fizzie> I'll get to that one of these days.
21:05:26 <fungot> AnMaster: dorfl wrote: ' wuffles ( 16), formerly of the palace.
21:06:12 <AnMaster> fizzie, what was the logic for that one?
21:06:29 <AnMaster> fungot, What about the copyright on your quotes?
21:06:29 <fungot> AnMaster: individual concerned. of course.
21:06:42 <fizzie> Punctuation is separate tokens, so when it choose "wuffles", it only had "wrote: '" as context.
21:07:08 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | hrrm.
21:07:19 <fizzie> I don't think I have very many other large collections of text on my computer to use as source text. So far IRC-talk has worked best for generating IRC-talk-like text -- a huge surprise, there.
21:07:19 <AnMaster> fizzie, "wuffles (16), formerly of the palace." kind of make sense for The Truth though
21:07:53 <AnMaster> fizzie, maybe some space cleaning? Like removing the space after ( and such
21:07:55 <fizzie> fungot: Just go back to IRC-speak.
21:07:56 <fungot> fizzie: run full, run delegate, more.
21:08:16 <AnMaster> fizzie, well now it will be that if you include this channel in the log
21:08:17 <fizzie> The space after ( is just an artifact of the Funge-98 token-sequence-to-text implementation.
21:08:30 <fizzie> I'll get it fixed at some point.
21:08:36 <AnMaster> fungot, maybe you should bug fizzie about refining it?
21:08:37 <fungot> AnMaster: you can approach it symbolically! fnord
21:08:51 <AnMaster> fungot, like... in lisp? But you are in Befunge... How would that work?
21:09:07 <AnMaster> fungot, great that you admit your mistakes
21:09:07 <fungot> AnMaster: and i'm sick of arguing with trotskyists when i was there i think
21:09:49 <fizzie> It's IRC-speak now, probably from #scheme.
21:10:18 <AnMaster> fizzie, using discworld was cool :P
21:10:26 <fizzie> "This really reminds me of arguing with Trotskyists when I was a young lad. They're all necons now, of course." was the original quote.
21:11:03 <fizzie> It used the "of arguing with" context to switch to the Trotskyists phase, and "when I was" context to go somewhere else.
21:11:54 <fizzie> Discworld didn't actually work as badly as (or at least any worse than) Darwin, but it still didn't sound like conversation.
21:12:08 <fizzie> I wonder if I should feed it some telephone conversations.
21:13:23 <fizzie> I seem to have 86 megabytes of transcribed telephone conversations here.
21:13:40 <fizzie> I'm not quite sure what our license allows us to do with it, though.
21:15:41 <fizzie> A couple of times, actually.
21:15:54 <fizzie> Some twenty or so books of his.
21:15:56 <AnMaster> fizzie, got some quotes of it?
21:16:07 <fizzie> Well, it was full of :)s and /s and biology. :p
21:16:11 <AnMaster> fizzie, Charles Darwin produced that many?
21:16:32 <AnMaster> fizzie, and an archaic language I guess
21:16:42 <fizzie> http://zem.fi/~fis/darwinbooks.txt is the list of books I used.
21:21:56 <ehird> did i tell you about how he's a pope?
21:22:07 <fizzie> Whirrrr, there go the telephone conversations.
21:22:47 <fizzie> 5849 separate ten-minute phonecalls.
21:23:45 <fizzie> That's something like a thousand hours of speech.
21:24:09 <ehird> what are you doing
21:24:35 <fizzie> Running out of memory, it seems. :p
21:24:45 <ehird> what is the goooooal
21:24:53 <ais523> ehird: fizzie's planning to feed them to fungot
21:24:53 <fungot> ais523: how dare you steal that version of hato, it's buggy
21:25:06 <ais523> fizzie: also: did you invent BrainfuckNomic
21:25:13 <ais523> someone in ##nomic thought you did, but wasn't sure
21:25:16 <oerjan> ehird: it's FOR SCIENCE
21:25:18 <fizzie> No, I don't think I did.
21:25:34 <fizzie> Two gigabytes of memory and two gigabytes of swap in use, I'm not sure my script can handle all that.
21:25:34 <ab5tract> fizzie: how about the funge spec?
21:25:45 <fungot> ab5tract: you still need something to pay the coders to fix it
21:26:34 <ehird> Hey! Who wants to roll a securely random number????
21:27:23 <oerjan> Slereah_: randomest number there is
21:27:41 <oerjan> in fact i was thinking of exactly that
21:27:55 <fizzie> Someone in the theoretical computer science lab has that Dilbert strip about RNGs on their door.
21:28:33 <fizzie> "And here we have our random number generator..." (troll saying:) "Nine, nine, nine, nine, nine, nine..." "Are you sure that's random?" "That's the problem with randomness, you can never be sure."
21:28:42 <fizzie> Maybe that sort of transcription would be enough to find it.
21:28:50 <ais523> yes, it's quite a clever joke
21:29:07 <fizzie> My browser seems to have hung up thanks to that Perl script eating all the memory.
21:29:22 <Slereah_> Although usually, random numbers generator aren't made to do real randomness
21:29:26 <ais523> fizzie: maybe you should feed it less input?
21:29:29 <Slereah_> Well, at least not with the things I use 'em for
21:29:38 <Slereah_> They just need to fit a distribution
21:29:50 <fizzie> ais523: That's a good idea, but I don't want to interrupt it now, in the hopes that it will be done real-soon-now.
21:30:18 <fizzie> It's less raw data than the IRC logs, but apparently somewhat different, since the irc-log-model-building didn't take quite this long.
21:30:57 <fizzie> Ooh, it got past stage 2 (selecting the tokens) and is now converting all the conversations to a single string of tokens.
21:33:21 <fizzie> I'm sure that it will finish soon and then I'll notice that the script was somehow borken and the output is unusable.
21:34:57 <fizzie> Actually, now that I think of it, I think I ran the IRC logs thing on one of the computing cluster machines with heaps of memory, and not on my own puny computar. (Since no-one seemed to be using them right then.)
21:37:32 <fizzie> Seems pretty busy, actually. Node 13 only has a load of 1, though.
21:37:34 <AnMaster> fizzie, and couldn't you do like processing it in chunks and then merging those chunks later?
21:37:52 <fizzie> Possibly, but I haven't spent much time tweaking this thing.
21:38:46 <Deewiant> fizzie: which cluster is that?
21:39:23 <fizzie> Deewiant: The HUT CIS one. Well, I guess we're now called ICS, having merged with the TCS people, and I think they're in the process of merging our computing systems.
21:41:40 <fizzie> HUT is Helsinki University of Technology (although they're in the process of changing the name and merging with two other universities; one for arts and one for CAPITALISM, I mean, commerce and all that stuff); CIS was Center for Information Science (maybe?), ICS is Information and Computer Science, and TCS is Theoretical Computer Science.
21:42:04 <fizzie> It's all very confusing; I'm not quite sure where I work.
21:42:32 <oerjan> you don't have to answer that
21:42:34 <fizzie> I should be writing my master's thesis around now.
21:42:38 <Deewiant> fizzie: yeah, I just checked the TCS one and it wasn't that one so I was wondering ;-)
21:42:48 <Deewiant> there's a bunch of room there if you have access to it.
21:43:33 <fizzie> Deewiant: There was some talk about getting the computing clusters set up so that all now-ICS-people can access both ones by October, but I haven't heard any news and/or instructions yet.
21:43:43 <fizzie> They did change my numerical UID to avoid conflicts, though.
21:45:01 <fizzie> Some three of the ten "newer nodes" in the CIS cluster only have two of the four cores in use, so I guess there would technically speaking be some room there too.
21:45:15 -!- kar8nga has quit (Read error: 110 (Connection timed out)).
21:45:18 <Deewiant> so what, you're part-timing at CIS?
21:45:29 <fizzie> Full-timing nowadays, doing that master's thesis thing.
21:46:10 <fizzie> I was at ICS for the last summer (2007) and got stuck there.
21:46:11 <Deewiant> would have probably continued if I hadn't started at HSE
21:46:29 <fizzie> I think the script has actually finished, since the data file has stopped growing, but it's not stopping. Maybe Perl is doing that full garbage-collection trip it does when quitting.
21:46:30 <Deewiant> might be back next summer, though.
21:47:14 <fizzie> Okay, it finished; now it's anyone's guess if my C++ code can handle building 4-grams out of that mess.
21:48:07 <fizzie> I don't think I quite got the script to clean up the conversations right.
21:48:58 <fizzie> 91328 unigrams, 2200072 bigrams, and now it's computing 3-gram counts.
21:49:12 <fizzie> 5851827 3-grams; 4-grams next.
21:49:39 <fizzie> I really should've done something more clever here, but I was in a hurry to get some sort of babbling out of fungot.
21:49:39 <fungot> fizzie: sounds challenging. :) i just remembered
21:50:05 <fizzie> optbot was chattering all the time, I didn't want my bot to be so quiet.
21:50:14 <fizzie> optbot: Well, you were!
21:50:15 <optbot> fizzie: there should be more of a market for esolang programmers
21:50:32 <fizzie> I think we all agree on that one, at least.
21:51:44 <Deewiant> Nah; I'd be worried if companies actually /wanted/ you to use esolangs
21:52:15 <ais523> Deewiant: if VHDL is an esolang, lots do
21:52:23 -!- slereah has joined.
21:52:51 <fizzie> Deewiant: Nokia gave me a summer job in 2006 for knowing Befunge. (Okay, so the chain of causality is maybe not exactly clear, but I'm sure that was the main reason they had.)
21:53:11 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
21:53:25 <ehird> ais523: they were interested in that he had esolangs in his hobbies section on his cv
21:53:27 <fizzie> I talked about this just yesterday or so, I'm not sure I want to bore people again with it.
21:53:33 <Deewiant> fizzie: sure, I'm sure it helped for my TCS summer job as well. Hell, CCBI and Mycology were pretty much the only things on my CV.
21:53:34 <fizzie> That's a reasonable summary.
21:53:46 <ais523> fizzie: ah, I wasn't here yesterday
21:54:04 <Deewiant> fizzie: but, nobody's wanted me to actually /use/ Funge for something :-)
21:54:19 <ehird> i totally hope i can get a job with such achievements as "wrote a program to roll a dice between two people, cheat-proof'
21:54:21 <fizzie> Deewiant: Well, no, it was just Perl. :p
21:55:43 -!- slereah has quit (Read error: 104 (Connection reset by peer)).
21:56:41 -!- Fourchan_Partyva has joined.
21:57:28 <fizzie> Finish, you silly little piece of code!
21:57:44 -!- Fourchan_Partyva has changed nick to Slereah.
21:59:09 <fizzie> I would endure this better if I wasn't so sure that it's going to just start generating messy and uninteresting jumble of words as output.
22:00:14 -!- Corun has joined.
22:07:01 <fizzie> It's only 350 lines of C++, how can it take so long to execute it!
22:12:39 <Deewiant> I can give you 11 chars of bash which will take a while
22:12:55 <ais523> Deewiant: the standard obfuscated fork bomb?
22:13:21 <ais523> :(){:};: is shorter, and an infiniloop I think
22:13:36 <ais523> although really we need AnMaster to check that, e's the resident Bash expert
22:13:58 <Deewiant> can't beat Windows batch, though :-P
22:13:58 <ais523> only esoprogrammers write like that
22:14:03 <ais523> even Perl has more letters usually
22:14:13 <ais523> AnMaster: is :(){:};: an infiniloop in bash?
22:14:20 <fizzie> I'm just being impatient because I'd like to see fungot talk like an American telephone conversationalist.
22:14:20 <fungot> fizzie: on my end, that's solved, i think
22:14:22 -!- kar8nga has joined.
22:14:25 <ais523> and does bash optimise tail-recursion, for that matter?
22:14:27 <AnMaster> ais523, well I usually don't do recursion in bash
22:14:50 <AnMaster> it is not the language I would write functional style in
22:15:06 <Deewiant> isn't that a better fork bomb?
22:15:06 <Slereah> Did you just divide by zero?
22:15:15 <AnMaster> Deewiant, well piping bash to bash
22:15:30 <AnMaster> Deewiant, but should be better since it only start one bash in each
22:16:17 <Deewiant> AnMaster: evidently it doesn't bomb
22:16:38 -!- Corun has quit ("This computer has gone to sleep").
22:16:44 <AnMaster> ** exception exit: {noproc,{gen_server,call,[efunge_input,stop]}}
22:17:04 <ais523> Slereah: the standard obfuscated bash fork bomb has a pipe in
22:17:05 <AnMaster> the standard bash forkbomb have a pipe
22:17:13 <ais523> but I suspect Slereah was trying to make a pun
22:19:08 <Deewiant> Slereah: $0|$0 could be a fork bomb because it starts itself twice
22:20:01 <Slereah> I don't know what all that means, Deewiant
22:20:39 <ais523> Deewiant: I'm loading up a VM to test it in
22:20:41 <Slereah> Yeah, I suck pretty hard in CS
22:20:51 <Deewiant> ais523: I tried it, but I'm not sure what happened
22:21:02 <ais523> Deewiant: what did top say?
22:21:05 <Deewiant> spawned a few shells but didn't bomb
22:21:20 <Deewiant> I seemed to have two shells running on top of each other though: every keypress was echoed twice
22:22:01 * ais523 waits for Knoppix to detect all the fake devices on the VM
22:23:17 <fizzie> Deewiant: So did you run it in a file or just on the command line?
22:23:39 <Deewiant> command line, then file, to be exact
22:23:46 <Deewiant> didn't notice anything happening from the cmdline though
22:24:18 <fizzie> Simple $0 on command line here is just "-bash: -bash: command not found" thanks to that '-' in the name.
22:24:56 <AnMaster> I think I got input server working
22:24:57 <fizzie> Would think it might work in a file, though.
22:25:46 <ais523> Deewiant: I just tried in a VM
22:25:50 <ais523> and every window in the VM disappeared
22:26:10 <ais523> apart from the KDE toolbar along the bottom
22:26:16 <ais523> the desktop background went too...
22:26:23 <Deewiant> Well, I'm going to bed. Good luck hosing your systems!
22:26:40 <ais523> it seems to have crashed
22:26:45 <ais523> so quite possibly a fork-bomb then
22:31:08 <ais523> +ul (^bf ,[.,]!Hi optbot!)S
22:31:08 <optbot> ais523: oh... yeah I forgot to get rid of the newline.
22:31:09 <optbot> thutubot: i guess mapcar is more descriptive
22:31:09 <optbot> fungot: cool I think your notation makes sense then
22:31:09 <fungot> optbot: my hypothesis has to do
22:31:10 <fungot> optbot: i've already been using a manually downloaded eclipse so far, effectively, that it has became like ie was
22:31:10 <optbot> fungot: it can type higher order functions and all
22:31:11 <fungot> optbot: objc and smaltalk does... in a filter... fnord
22:31:11 <optbot> fungot: Is that valid Malbolge, Gregor?
22:31:12 <fungot> optbot: ams isn't in gnu anymore? :) renaming whenever there's a conflict?
22:32:04 <oerjan> optbot: you can say that again
22:32:44 <fizzie> Hmm, according to a (standard outdoor-type, because we only have one fridge/freezer-specific one) thermometer our freezer is -38 degrees Celsius. I find that hard to believe.
22:40:26 <fizzie> Should've just told that thing to use up to 3-grams.
22:43:17 <AnMaster> http://paste.lisp.org/display/68711
22:43:56 <AnMaster> that is how simple making a server is in erlang
22:44:03 <AnMaster> could be shortened down a lot too
22:44:04 <ais523> AnMaster: it's even simpler in INTERCACL
22:44:16 <ais523> Claudio has a 2-line pastebin server somewhere
22:44:22 <ais523> and the client isn't much more complicated
22:44:29 <ais523> well, not pastebin, global clipboard
22:44:45 <ais523> AnMaster: well, everything's client-driven in CLC-INTERCAL
22:44:49 <ais523> you steal data from the server
22:44:53 <ais523> and two short simple lines
22:44:59 <AnMaster> ais523, and how long is the client?
22:45:05 <ais523> all a server has to do is go into an infiniloop
22:45:06 <AnMaster> ais523, since the same module includes the client
22:45:10 <ais523> as for the client, probably 4 or 5
22:45:16 <ais523> let me try to find the source
22:45:18 <AnMaster> gen_server:call({global, ?SERVER}, read_char, infinity).
22:45:22 <AnMaster> gen_server:call({global, ?SERVER}, read_integer, infinity).
22:45:25 <fizzie> I'd try looking but my browser is again swapped out. :p
22:45:53 <AnMaster> ? indicates "treat this as a macro"
22:46:00 <AnMaster> means erlang macros very clean
22:46:03 <ais523> ah, here's the server:
22:46:06 <ais523> (1) PLEASE COME FROM (1)
22:46:11 -!- kar8nga has left (?).
22:46:12 <ais523> simple enough to paste into a channel
22:46:43 <AnMaster> ais523, well... strip all comment -spec and -type from my paste and you get the bare minimal one
22:47:39 <AnMaster> ais523, still this was easy, I just selected gen_server template in erlange-mode in emacs. then filled it in
22:48:04 <AnMaster> ais523, gen_server is a design pattern
22:48:12 <AnMaster> the main one for erlang I guess
22:48:12 <fizzie> Them conversations, they're so awkward. They're all like "uh so according to this we should be talking about where we get our news" "oh uh well I just watch TV" "so.. what do we do now for the next nine-and-a-half minutes?"
22:48:20 -!- Mony has quit ("Ne regrettons pas le passé, ne nous préoccupons pas de l'avenir : le sage vit dans le présent.").
22:48:26 <AnMaster> ais523, all the servery details is handled elsewhere, all you write is a callback module
22:48:33 <AnMaster> + some API functions for clients
22:49:05 <AnMaster> fizzie, what is the data source?
22:49:55 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
22:50:00 <fizzie> It's the Fisher English Corpus (part 2) from LDC. "Conversational telephone speech". I don't know (read: haven't bothered to check) the details on how they collected that stuff.
22:50:13 <fizzie> I'm just feeding fungot the transcriptions.
22:50:14 <fungot> fizzie: where c iz a character for schwa. nothing
22:51:03 <fizzie> Ten-minute conversations between parties "A" and "B"; they have been anonymized.
22:51:45 <fizzie> I think it works so that there's just two people who don't know each other, and they give them a topic to talk about and then they have to spend at least ten minutes having a conversation.
22:51:56 -!- Slereah has joined.
22:52:21 <fizzie> I'll have to thank the US Department of Defence (and DARPA) for sponsoring the data collection so that I can put it to good use like this.
22:52:57 <fizzie> (Assuming my model-building task ever finishes.)
22:53:10 <ais523> it's a testsuite for your model-builder, obviously
22:55:11 <fizzie> Well, our department paid for that stuff, I'm sure they wouldn't like it to go to waste.
22:55:41 <AnMaster> ais523, fizzie: http://paste.lisp.org/display/68711#1
22:55:51 <AnMaster> I rewrote comments to edoc style
22:56:00 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
22:56:01 <ais523> well, relatively short
22:56:04 <AnMaster> which also can be used to auto-generate html docs from
22:56:06 <ais523> but CLC-INTERCAL still wins
22:56:06 -!- Fourchan_Partyva has joined.
22:56:10 <ehird> AnMaster: Documentation overload, man. Let the code speak for itself.
22:56:20 <ehird> ais523: == Slereah
22:56:25 <AnMaster> ehird, as I said it was generated from a template
22:57:43 <fizzie> "i guess our topic is the movies whether you like to go to the theater or rent them and stay home" -- hah, I wouldn't know how to talk 10 minutes about that.
22:57:57 <AnMaster> ais523, as for clc... It is just harder to use still :P
22:58:11 <ais523> fizzie: I generally don't watch films at all
22:58:16 <ais523> so the answer is "neither"
22:58:36 <ehird> i have nowhere near the attention span neccessary for a film
22:58:48 <AnMaster> ehird, as if we didn't know tht
22:59:09 <AnMaster> ehird, not even long enough for Star Trek?
22:59:26 <ehird> star trek is pretty boring most of the time
22:59:37 <fizzie> They all start with "it's my first time doing this" or "have you done this before?" or things like that; it's like reading a transcription of a telephone dating thing.
22:59:49 -!- Fourchan_Partyva has changed nick to Slereah_.
23:00:07 <ehird> fizzie: Is this freely available?
23:00:15 <Slereah_> Here's the plot : a bunch of characters are turned into children!
23:00:22 <fizzie> ehird: No, it's $7000 for non-LDC members. :p
23:00:28 <ehird> fizzie: What the fuck. :D
23:00:36 <ehird> I could just torrent it, I'm sure it's somewhere.
23:00:49 <fizzie> Linguistic Data Consortium, University of Pennsylvania.
23:00:52 <ehird> And I will feel absolutely no guilt for downloading the extremely precious HUGE-ASS ARCHIVE OF AWKWARD CONVERSATIONS
23:00:53 <AnMaster> fizzie, also why would anyone pay for that stuff...
23:00:55 <fizzie> They collect all kinds of speech corpuses.
23:01:10 <fizzie> Well, it's quite a challenging test for a speech recognizer.
23:01:32 <fizzie> It's not really recreational reading it's for.
23:01:38 <AnMaster> fizzie, they fail even on easy stuff... there is no point in trying it on that hard stuff
23:02:01 <AnMaster> even the OS X one is hilariously bad
23:02:13 <AnMaster> and it is actually one of the better ones I seen so far
23:02:16 <ais523> so is the default Windows one
23:02:26 <AnMaster> ais523, well the windows one is worse
23:02:27 <ais523> I used to have fun playing Chinese Whispers with it
23:03:23 <fizzie> For clean speech, I don't think they've got a word error rate percentage of more than a low-single-digit number. And besides, the hard stuff is what's interesting.
23:03:47 <fizzie> "Failure" is what you want out of it.
23:03:50 <AnMaster> ais523, still what is that game?
23:04:02 <fizzie> "They" here refer to state-of-the-art stuff. I don't know anything about the bundled ones.
23:04:05 <ais523> AnMaster: basically, it requires a very large number of people
23:04:11 <ais523> the first one thinks up a phrase and whispers it to the second
23:04:16 <ais523> the second whispers it to the third
23:04:22 <ais523> then the last person says it out loud
23:04:25 <ehird> and at the end, you compare the two phrases
23:04:31 <ais523> and everyone laughs at how different it is from the original
23:04:32 <ehird> and see how much got lost in the bad whispering
23:04:45 <AnMaster> ais523, it will actually be much different?
23:04:50 <ais523> if you have enough people, yes
23:05:00 <ais523> it doesn't work with only a few as they remember what it's supposed to be
23:05:15 <ais523> but speech recognisers never catch on, so you can play two-player with them
23:05:18 <AnMaster> ais523, well if they don't know what it is supposed to be?
23:05:24 <ehird> AnMaster: that's the whole point
23:05:31 <ehird> you don't know what it's supposed to be, but you hear something
23:05:34 <AnMaster> "<ais523> it doesn't work with only a few as they remember what it's supposed to be"
23:05:36 <ehird> so you try and pass on what you think you heard
23:05:44 <ais523> AnMaster: I mean, if you try to go round more than once
23:05:52 <ais523> then people remember what they heard the firs time
23:05:55 <fizzie> It's called "rikkinäinen puhelin" (lit: broken phone) in Finland.
23:06:10 <ais523> most successful games are played with about 100 people or so, and yes I have been in a Chinese Whispers game that big
23:06:11 <AnMaster> I have never been much for such games
23:06:30 <ehird> when I was young[er] i used to pass on a completely different phrase.
23:06:37 <ehird> so that at the end everyone asks who the hell messed it up :D
23:06:50 <ais523> ehird: that's generally considered cheating
23:06:58 <ais523> but in any set of 100 you get a few like that
23:07:02 <AnMaster> ais523, it is impossible to prove who did it
23:07:09 <ehird> it's quite EASY to
23:07:21 <ais523> AnMaster: not the way we played it, people often asked 2 people back rather than 1 if they suspected the previous person was cheating
23:07:33 <ais523> not that that's legal either, but you can't really stop it
23:07:39 <ehird> same way "psychics" can communicate with people back from the dead
23:07:55 <ehird> the people who did it will be easy to spot after you do it enough times, i imagine
23:08:26 <AnMaster> also what do "psychics" have to do with it?
23:08:31 <AnMaster> they are just making it up after all
23:09:03 <ehird> http://en.wikipedia.org/wiki/Cold_reading
23:09:06 <ehird> http://en.wikipedia.org/wiki/Hot_reading
23:09:21 <AnMaster> you seriously don't believe in such para-normal stuff?
23:09:21 <ehird> even the ones who truly believe they are doing it do that
23:09:24 <ehird> they just dont' realise it
23:09:31 <ehird> AnMaster: please click links before saying anything
23:09:39 <ehird> you just made yourself look like a fool...
23:17:59 <fizzie> I hope the C++ code doesn't have any same sort of bugs that cause fungot to occasionally go to an infinite loop when generating babble. It's computated that thing for a suspiciously long time, compared to how fast it did the first stages.
23:17:59 <fungot> fizzie: http://pastebin.ca/ 397959 mathematica is a kickass piece of software
23:18:51 <AnMaster> fizzie, attach gdb to it, add some trace points?
23:19:01 <fizzie> Uh.. what's that paste?
23:19:13 <Slereah_> But sometimes, it's hard to handle
23:19:16 <fizzie> I rather like Mathematica, even though the language is a bit funky.
23:19:28 <fizzie> I don't think I've compiled that thing with debugging symbols, and my gdb-fu is weak.
23:19:30 <AnMaster> fizzie, H and lots of question marks
23:19:37 <AnMaster> H???????????????????????????????????????????????????????????????????????????????
23:19:37 <AnMaster> ??????????????????????????????????e?????????????????????????????????????????????
23:19:37 <AnMaster> ????????????????????????????????????????????????????????????????????????????????
23:19:45 -!- Corun has joined.
23:19:45 <fizzie> Yes, but what's the point of it.
23:19:55 <AnMaster> fizzie, no clue, check origin?
23:20:12 <fizzie> Looks somewhat hello-worldy.
23:20:32 <AnMaster> fizzie, well where did it get that quote from?
23:20:57 <fizzie> Checking, but it seems sort-of cheating not to try figuring it out.
23:21:55 <oerjan> hm i vaguely recall that
23:22:32 <oerjan> was it the dupdog hello world maybe
23:23:06 <fizzie> The program is in the esolang wiki.
23:24:47 <AnMaster> and doesn't fit the desc for the language above
23:26:13 <AnMaster> that should not be tc as far as I can tell?
23:26:24 <AnMaster> since how do you do even a trivial infinite loop?
23:27:40 <oerjan> i don't think we ever found out
23:27:46 -!- Corun has quit ("Leaving").
23:28:51 <fizzie> (Must sleep now, hopefully fungot'll be ready to speak all "um uh [noise] umm" telephone conversation by tomorrow.)
23:28:52 <fungot> fizzie: i'm religious!! i wanta tell you you're a great comedian sgeo
23:29:41 <fizzie> Sometimes I have a feeling fungot's a few bits short of a full byte.
23:29:41 <fungot> fizzie: in scheme it is executed
23:33:35 -!- Sgeo has joined.
23:33:40 <AnMaster> <fungot> fizzie: i'm religious!! i wanta tell you you're a great comedian sgeo
23:33:40 <fungot> AnMaster: because they can feel they're on the left margin.
23:34:14 <AnMaster> Sgeo, what a coincidence you joined just after
23:35:47 <ehird> fun fact - the eso pastebin is about to be up
23:35:50 <ehird> putting the final touches on it
23:41:37 -!- oerjan has quit ("Good night").