00:08:30 GUYS 00:11:36 Guys and gays 00:11:45 (The 21st century remake of guys and dolls) 00:16:26 gays... like the COMMUNISTS 00:20:02 Gays... Like ALAN TURING 00:22:21 Gays... like that COMMUNIST ALAN TURING 00:24:27 Hahah. 00:32:52 hello GregorR-L, yeah i did 00:41:13 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 00:43:16 -!- slereah has joined. 00:44:32 poiuy_qwert: I didn't realize it had been reimplemented :P 00:44:42 poiuy_qwert: You realize I wrote my own Hello, world when I wrote the language, right? 00:46:00 http://davelargo.blogspot.com/2008/10/evolution-canvas-love.html You have to laugh at this - "Here is how our product looks, here is how the Apple version looks, let's make our product look identical to the Apple version" 00:47:29 - Glass like event UI makes it appear modern and infuriatingly difficult to work with 00:49:15 Yeah that shit is fugl 00:49:15 y 00:49:20 Anyway I am out. seeya 00:52:59 -!- Dewi has joined. 01:00:13 I did not notice when I wrote my version, but I did find it after 01:06:22 -!- slereah has quit (Read error: 113 (No route to host)). 01:34:06 what's the opinion on py3k 01:34:31 -!- Sgeo has joined. 01:45:01 bsmntbombdood: python 3000? is that like python with slightly less bloat? 01:55:09 that's the idea 01:57:49 Almost debate time! 02:18:03 -!- GregorR-L has quit (Remote closed the connection). 02:34:04 MOXIE > * 03:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | interesting. is the transformation function turing-complex?. 04:00:10 -!- GregorR-L has joined. 04:00:17 http://codu.org/oou.pdf 04:00:30 I wurve needless formalization. 04:18:11 right 04:36:45 -!- ab5tract has joined. 04:55:19 Oh come on, people in this channel should love needless formalization at least a third as much as I do. 05:02:35 -!- Sgeo has quit (Remote closed the connection). 05:07:20 -!- poiuy_qwert has quit. 05:11:07 define needless. define formalization. 05:26:29 http://codu.org/oou.pdf // needless formalization. 05:41:53 -!- ab5tract has quit. 05:50:14 -!- Dewio has joined. 06:02:48 GregorR: is that an order of urinals computational model? 06:02:54 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 06:03:02 Well, it's not a computation model, but yes, it is the order of urinals :P 06:03:11 -!- Dewio has changed nick to Dewi. 06:03:22 i have no idea what the content means 06:03:48 oh 06:03:58 the first line is the type? 06:04:18 hmmhmm 06:06:11 it's the definition of a function 06:06:15 that's all i can glean 06:07:29 ya, but i have no idea what the body does, i'm hoping it doesn't run oou, because it's kinda short. 06:07:39 hmm 06:09:15 d()... distances are quite crucial in oou, when approaching a urinal, you need to take steps that takes you closer to it, and when choosing a urinal, you have to take the one that's the farthest from yours peer peers 06:09:24 *that take 06:09:32 *your peer 06:09:48 my s key is antibroken 06:17:08 errr 06:19:58 * GregorR reappears :P 06:20:15 That's the idea, yes. 06:20:24 The first two cases are trivial cases (all empty, all in use) 06:20:36 The third case chooses the urinal which is most distant from any in use urinals. 06:21:46 why doesn't the definition take any arguments? 06:22:21 It's the definition of a transform, not a function in the functional-language sense. 06:22:31 hmm 06:22:37 -!- Dewio has joined. 06:23:23 That is, it's a state transition. 06:23:51 What are U, U_E and U_I? 06:24:04 U is the set of all urinals, U_E are those that are not in use, U_I are those that are in use. 06:25:09 why do you need all three then? 06:25:14 you should just use U_E and U_I 06:25:28 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 06:25:41 Strictly I don't, but it allows some convenient definitions regarding their unions and disjunctions *shrugs*. 06:27:54 if U = U_E then U_I = {} 06:28:01 Yes. 06:28:16 so the first case should have U'_I = {x} 06:28:23 don't need the redundancy 06:28:35 Eh, 'struth. 06:28:54 Believe it or not, getting the most efficient writeup was not one of my goals :P 06:29:24 (Otherwise the first case would be removed entirely) 06:29:50 (With some minor adjustments to the last part, that is) 06:30:24 -!- Dewio has changed nick to Dewi. 06:31:00 http://www.codu.org/pics/albums/userpics/normal_Trombute_Complete_Taped.jpg 06:31:01 sexy beast 06:37:56 * GregorR eats a peanutbutter-and-banana sandwich. 06:40:21 mmmm 06:40:56 -!- ab5tract has joined. 06:54:06 DIS LINK NOT WORK 07:04:39 -!- GregorR-L has quit ("Leaving"). 07:22:07 -!- Dewio has joined. 07:35:02 -!- kar8nga has joined. 07:35:21 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 07:52:36 -!- kar8nga has quit ("Leaving."). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:42 -!- immibis has joined. 08:04:40 -!- Ps2jak2 has joined. 08:04:45 hi 08:05:25 -!- Ps2jak2 has set topic: Um. 08:05:40 fungot! 08:05:40 immibis: eval ( expt fnord 2) 08:05:43 er 08:05:46 wrong bot 08:05:47 optbot! 08:05:47 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | my friend just glanced at it and got it :|. 08:06:07 * Ps2jak2 shoots optbot with rocketlauncher 08:06:07 Ps2jak2: but what we need to do is anticipate that anywhere we could use the resulting monad we could also get 'Ok' 08:06:29 wtf!? 08:06:34 -!- oerjan has joined. 08:06:46 i know lets kick the bot!!! 08:06:51 jokes lol 08:07:17 ^echo optbot 08:07:17 immibis: the full title is "Anything (we can fix)" 08:07:18 optbot optbot 08:07:18 fungot: plus I've been composing for a long time 08:07:18 optbot: i almost understood that _; my self fnord my out " " fnord 08:07:19 fungot: as the case may be. 08:07:19 optbot: also, i'm norwegian. not sure if i like 08:07:19 fungot: you might want to change your nickserv password. 08:07:20 optbot: c99 seems to bascially fnord)" 08:07:20 fungot: Yeah... Perl doesn't design for readability... so it's sort of expect anyways. ^_^ 08:07:20 optbot: i have to think 08:07:20 fungot: sweet 08:08:18 optbot: c99 seems to bascially fnord)" 08:08:18 oerjan: in oklotalk, i had that problem 08:08:18 oerjan: average lifespan divided by world population... the file i'm writing which is still useless. 08:08:23 the truth is revealed! 08:08:29 im getting a 360 08:08:32 wii can fuck a cow 08:08:51 great news for the insemination industry 08:15:07 fungot: Hey, you're not Norwegian! 08:15:07 fizzie: you don't know emacs 08:15:27 i think those cancel out 08:15:36 What a strange counter-argument. 08:15:57 fungot: what is 2 + 2? 08:15:58 immibis: for now, but i'm not connecting the dots to how a program handles fnord errors. 08:15:58 "You don't know emacs, therefore you can't say anything about my nationality." 08:16:11 wtf is a fnord? 08:16:16 hahaha 08:16:29 "you don't know emacs" 08:16:34 "Fnord is the typographic representation of disinformation or irrelevant information intending to misdirect, with the implication of a conspiracy." 08:16:44 I just use it as a placeholder for rare words. 08:16:54 see Truthiness 08:19:29 -!- Dewi has joined. 08:23:19 -!- Ps2jak2 has quit (Read error: 104 (Connection reset by peer)). 08:23:20 -!- Ps2jak2_ has joined. 08:24:31 ok 08:24:39 fungot: what is is 08:24:39 ab5tract: actually i like " facilitate", because it expects pure functions. the guy who can 08:24:43 i thought it actually meant something, maybe function ordinal whatever that is 08:25:05 immibis: a fnord is like a fjord of lies 08:25:33 fizzie: is fungot you're doing? 08:25:34 ab5tract: we all get bored and quit" is done the same with h in that same place would have had that first, and then 08:26:04 s/you're/your 08:26:13 ab5tract: Yes. In case anyone didn't mention it yet, it's written in Befunge (Funge-98, actually), therefore the name. 08:26:16 ga i should go to bed 08:26:25 fizzie: i figured :) 08:26:45 i've only begun to funge 08:27:30 i've played with befunge-93 but i haven't read through the 98 spec yet 08:27:39 Well, fungot's not overly complicated, some 300 lines: http://zem.fi/~fis/fungot.b98.txt 08:27:40 fizzie: then you want a regular tuning 08:27:47 haha 08:28:05 fungot: You mean I should tune you, or I should self be somehow "tuned"? 08:28:05 fizzie: it's quite easy 08:28:22 That's somewhat disturbing. The bot is going to "tune" me. 08:28:35 lol 08:28:56 fungot: are you omniscient? 08:28:57 immibis: but it was fixed in subsequent versions of gcc, i have 08:29:07 omg you made fungot omniscient!? 08:29:08 immibis: when all booleans are true, but we don't have hierarchical namespace and it's hard to read 08:29:50 fungot knows all. but he is a little vague on which parts are true and which are false. 08:29:50 oerjan: now that's cool. it's not specifically fast, and even though we aren't/ haven't been married in over six years, but want to program recursively, can 08:30:12 you haven't been married in over six years.... 08:30:20 W T F 08:30:42 I'm not sure the Finnish jurisdiction will even let snippets of code to marry. 08:30:45 so you and fungot were married six years ago? 08:30:46 immibis: i don't follow feeds that closely... 08:32:07 -!- Dewio_ has joined. 08:32:19 -!- Dewio has quit (Read error: 101 (Network is unreachable)). 08:32:22 I don't think fungot even existed six years ago. There's something fishy going on. 08:32:22 fizzie: sleep calls... night all. i just now realized that sentence made no sense 08:32:30 only in befunge could an oracle be written in ~300 lines 08:33:23 -!- mellifluidicpuls has joined. 08:33:28 fizzie: cool of you to comment that code 08:33:48 fungot: nly systms wrth knwng gt knwn 08:33:49 ab5tract: next challenge is to golf that js down to 510 characters, plus the 1000 books released early which have confirmed the leak to be genuine. 08:33:52 There's actually 350 lines of C++ and 175 lines of Perl (curiously coincidental numbers) involved in creating the language model used for the oracular predictions. 08:34:29 fungot: 4 + 4 08:34:30 ab5tract: 14 nonterminals left) instead of 08:34:58 I'd like to comment the code better, but I lack a suitable editor that can comment arbitrarily shaped regions of text and handle moving of comments when editing. 08:35:02 fizzie: i see. i didnt realize befunge interfaced with other languages so handily 08:35:10 fungot: are you related to any of the pacific northwest species of fungi perfecti? 08:35:10 mellifluidicpuls: you're that guy 08:35:15 -!- Ps2jak2_ has quit ("Some folks are wise, and some otherwise."). 08:35:21 omg 08:35:27 hilarious 08:35:47 lol 08:35:52 roflolmao 08:35:53 fizzie: yes befunge needs its own ide 08:35:56 The other languages are just used to create a data file; Funge-98 FILE fingerprint is used to read 'em. 08:36:09 ahhh 08:36:12 fizzie: i think that somehow ties into your not knowing emacs 08:36:21 roflolmao 08:37:25 fungot: 5 == 5 08:37:25 ab5tract: can you give me an assortion of mind virii to choose from. 08:37:46 fungot: only in special instances 08:37:46 fungot: i suggest the Borg 08:37:47 ab5tract: the gui doesn't seem useful for what? 08:37:47 oerjan: the one one one-shot continuations, yome. 08:38:08 fungot: what sort of bedfellow are you? 08:38:09 mellifluidicpuls: rather, even takes n, 08:38:34 fungot: that don't make no sense! 08:38:35 mellifluidicpuls: error in make-vector: exact integer required for operation. 08:39:13 now i understand why i was so confused when i was reading through the logs when i first found the channel 08:39:16 fungot: Stop pretending you're written in Scheme. 08:39:17 fizzie: ( mu ( lambda ( x) 08:39:19 fungot: -1351356 08:39:19 immibis: that's cool. it's not a bad plan.) when it suffices that fnord) 08:39:20 mellifluidicpuls: i think fungot is schemeing against you 08:39:21 oerjan: oh. misunderstood. it's late) re: srfis. the scheme language is to an assembly language 08:39:41 does it look for keywords or something 08:40:05 It doesn't look at the input text at all. At least it shouldn't. (Just checks if the string "fungot" is a substring of it.) 08:40:06 fizzie: actually i am 08:40:17 lol 08:40:24 fudge bars 08:40:29 i need to sleep 08:40:42 fungot dont haunt my dreams 08:40:42 ab5tract: ( for those not reading comp.lang.scheme: http://www.schemers.org/ documents/ standards/ r5rs/ html/ fnord 08:40:42 ok 08:40:43 Well, in any case, the code I wrote doesn't look at the input. Who knows what that bot actually does. 08:40:54 seriously 08:40:57 i just noticed that you mentioned scheme and it said ( mu ( lambda ( x) 08:41:02 fungot: are you an.... anarchist??? 08:41:02 ab5tract: maybe tomorrow? the day after tomorrow 08:41:07 lol 08:41:14 it seems to give surprisingly relevant answers 08:41:17 lol 08:41:20 fungot good to hear. fight the man! 08:41:20 ab5tract: or... should it skip over next instruction or next char always? 08:41:32 fungot: fuck no and dont you forget it 08:41:33 ab5tract: each successive number means that you're unlikely to use some sort of 08:41:48 fungot: 1 2 3 4 5 6 7 8 9 10 08:41:48 immibis: is this channel for night and then go to fnord 08:41:56 fungot: clarify. 08:41:57 immibis: wouldn't work for heterogeneous arrays, twb`. nice 08:42:13 fungot: maybe you're right, i shouldn't be clarifying heterogeneous arrays. 08:42:14 immibis: what's that game evoli mentioned the other day 08:42:14 you are a riot fungot 08:42:14 mellifluidicpuls: are you reading through sicp? 08:42:37 fungot seems scheme obsessed 08:42:37 oerjan: x86 only at the signatures of a project's modules good documentation for the whole thing 08:42:44 -!- CoffeeBot has joined. 08:42:45 * CoffeeBot is making a coffee in an office mug with cold milk for this channel 08:42:46 * CoffeeBot gives everyone in this channel a coffee in an office mug with cold milk 08:42:48 -!- CoffeeBot has left (?). 08:42:55 sorry i was demonstrating it to ps2jak2 08:43:12 oerjan: Might be because I fed my #scheme logs (in addition to #esoteric) to the language model builder to get a bit more data. 08:43:59 That's 72 megs of #scheme, 40 megs of #esoteric. 08:44:06 ouch 08:44:10 get logs of #defocus 08:44:31 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 08:44:39 or #boingboing 08:44:43 I did at some point feed it some selected books from Project Gutenberg to make it talk like Charles Darwin. 08:44:48 But it was just freaky. 08:44:52 oh goodness 08:44:55 lol 08:44:58 fizzie: it started evolving? 08:45:07 can we have a book of revelations mode? 08:45:20 oerjan: There was a lot of talk about various species of animals, at the very least. 08:45:46 how bout some shakesear fungot 08:45:46 or a nostradamus mode 08:45:46 mellifluidicpuls: i didn't need to 08:46:03 bastard fungot, you don't know whats good for oyu 08:46:03 ab5tract: you mean structs? 08:47:06 -!- CoffeeBot has joined. 08:47:06 fungot: hi 08:47:07 CoffeeBot: but a far more likely outcome." http://en.wikipedia.org/ wiki/ exe 08:47:11 okay im out now. i could do this all not 08:47:13 Let's see.. I used the books at http://zem.fi/~fis/darwinbooks.txt for the Charles Darwin mode. 08:47:17 s/not/night/ 08:47:25 !r quit 08:47:26 -!- CoffeeBot has quit. 08:47:40 fungot its been real 08:47:40 ab5tract: ( the lexical environment is the key to these things 08:47:49 i couldn't agree more 08:48:00 is the source available? 08:48:17 fizzie: mo' modes plz 08:48:26 immibis: http://zem.fi/~fis/fungot.b98.txt 08:48:27 ab5tract: imagine a beowulf array of sarahbots 08:48:41 what's a sarahbot? 08:48:46 I love sarahbots! 08:49:06 Maybe fungot could include the source link in its irc name? 08:49:06 oerjan: int main(int argc, char **argv 08:49:10 There was a sarahbot on #scheme, I think. 08:49:40 imagine a beowulf array of fungots 08:49:40 oerjan: seen ig? it's a beloved movie. cyberpunk keanu techno-spiritual black dudes. 08:49:56 lol 08:49:57 wtf 08:50:14 goddamn you fungot you are funging my brainstemspace 08:50:14 ab5tract: it's what it is? 08:50:25 say it with conviction damn you 08:50:26 wow fungot, sounds like matrix 08:50:26 mellifluidicpuls: let me do that actually works correctly btw, do you mind if 08:50:36 fungot: that doesn't make sense 08:50:37 immibis: maybe s48 does work on this 08:50:43 it is slowly reprogramming us 08:50:49 lol 08:50:54 seriously 08:50:55 fuckin eh it is 08:50:56 how does the phrase generator program work 08:51:40 -!- ab5tract has quit. 08:52:01 Do you want the short or the long description? 08:52:08 short 08:52:59 It collects all n-grams (up to n=4, I think) and counts the frequencies... then it uses the previously generated context of n-1 and the frequencies of the n-grams with matching first n-1 words to determine the next word. 08:53:11 Also, I think I found the Darwin model I built earlier. 08:53:19 fungot: Can you speak like Darwin for us? 08:53:19 fizzie: letter 765. to j.d. hooker. down 1857?. 139.), whilst still kept in/ greenhouse, produced capsules in/ ratio :) fnord to/ taste or/ odour :) cervus fnord on/ toucans; protective colouring :) shells. 08:53:41 Oh, right, Darwin had this problem about using :) all the time. 08:53:48 and / 08:53:53 lol 08:53:57 me too 08:54:40 I think my script just picks up some ascii-formatting from the Gutenbergized version of the books, but not sure what. 08:55:08 what genus of fungot are you? 08:55:08 mellifluidicpuls:/ storage :) a supply :) organised matter, not containing any organic matter; and here/ evidence is plain in/ valle del yeso. it was different with/ quadrifids; for/ lining :) protoplasm was a little cliff similarly composed, but including many nodular and stalactiform concretions: i found " 640? 1. 08:55:20 lol "not containing any organic matter" 08:55:25 quite accurate don't you think 08:55:39 Yes, "organised matter, not containing any organic matter" is a good description. 08:55:45 fungot: what kingdom are you in? 08:55:45 immibis: seedlings were raised from/ same plant, but can seldom gain access into its cavity, to/ same side; and these turn by well-adapted movements to any object with its extremity considerably upturned, but to a different climate. 08:55:54 fungot: how does evolution work? 08:55:54 immibis: embryology, 218 08:55:59 fungot: how does evolution work? 08:55:59 immibis: new guinea " e. columbi, fnord.) 08:56:03 fungot: clarify 08:56:03 immibis: if any domestic race had descended from/ jagged summit :)/ plant, any more than why unnatural conditions :) life. 08:56:06 fungot: clarify 08:56:12 fungot: you are an idiot 08:56:16 deflol 08:56:18 "unnatural conditions :)" 08:56:38 It went to the "ignoring this person" mode it uses to avoid optbot loops. 08:56:38 fizzie: if ((ptr + sizeof(type)) < comp->mem->size) { \ 08:57:03 you made it do that specifically to avoid optbot loops? 08:57:04 immibis: And now, the conspiracy theory. 08:57:19 you made fungot do that specifically to avoid optbot loops? 08:57:20 immibis: http://pastebin.ca/963248 08:57:39 Yes. It will again start responding to you when someone else speaks to it. 08:57:42 fungot: Hey there. 08:57:43 fizzie: printed by william clowes and sons, stamford street, and afterwards to visit/ flower, as i saw when i hastened/ fall :) fnord and this is/ chief object; and strongly contracted facial muscles destroy fnord/ story :)/ composition is generally told with wonderful force. your discussion on/ australian musk-duck; on/ relative proportions :)/ limbs :) rabbits, muscles wither, arteries grow up. on great droughts. on hydrophob 08:57:43 ok 08:58:02 btw did you know http://qdb.us/ has an orange colour scheme while http://www.qdb.us/ is blue? 08:58:06 In any case, IRC logs seem to generate better IRC chatter than Darwin's books. 08:58:29 this is a gas folks (and bots) - but I gotta turn in 08:58:38 i still say you should add #defocus logs 08:58:46 nite fungot and optbot 08:58:46 mellifluidicpuls: >>> numbda "/"*5 08:58:46 mellifluidicpuls: macacus nemestrinus. lastly, dr. f. smith informs me that this is/ case with/ females :) certain flies " culicidae and fnord) or two species only, appears to range continuously from/ cordillera to/ highlands :) southern brazil " in/ :( expression :)/ emotions,' page 220, in which/ water has been seen to fructify in france. 08:58:59 lol 08:59:01 -!- mellifluidicpuls has left (?). 08:59:28 fungot: Do you work with symlinks correctly? 08:59:28 fizzie: which is interesting but not turing-complete, is unknown, you will have to 08:59:36 Seems to. Back to irclogs. 08:59:59 What's #defocus all about? 09:00:01 fungot: you are an idiot in this mode? 09:00:02 immibis: " language" 09:00:08 #defocus is off-topic 09:00:15 fungot: why are you an idiot in this mode? 09:00:15 immibis: that's just bad style html. i don't 09:00:39 i have to go now. 09:00:42 i leave you with two words. 09:00:45 ^echo optbot 09:00:45 immibis: with different intervals corresponding to different instructions 09:00:45 optbot optbot 09:00:45 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to). 09:00:46 fungot: I just spent a longish time completely filling a Sodaplay thingy with dots and springs. 09:00:47 optbot: trust me, the entertainment in doylestown is the people who run joy now expect to run joy programs that access it on any other platform i am aware 09:00:47 fungot: He doesn't understand "no flooding" too well. 09:00:47 optbot: what do you mean? you asked me to call for something more useful 09:00:47 fungot: online church fete store? ;d 09:00:48 optbot: oh yes, all of those before. 09:00:48 fungot: oops 09:00:48 optbot: rather than having arbitrary x-, y- and z-axis, you have 09:00:49 fungot: oh 09:01:32 I feel a bit bad for the log-readers who now have to wade through all that nonsense. 09:02:09 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 09:03:00 -!- puzzlet has joined. 09:05:03 hah 09:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | the only things are += -= ^=, if_then_else_fi_, from_do_loop_until, call_, uncall_ and skip, and the only data is numbers. 09:07:31 is that a riddle optbot? 09:07:31 AnMaster: same 09:07:37 I guess that means yes 09:07:44 so what language is it 09:07:48 some imperative one I guess 09:07:59 looks like a reversible one 09:08:19 oerjan, because of uncall? 09:08:27 that was the first hint 09:08:33 but also the assignments 09:08:48 ^= would be bitwise xor? 09:08:52 yeah 09:09:01 hm 09:09:54 fizzie, btw it should be possible for fungot to get in a loop with two other bots, say optbot and some other similar bot 09:09:55 AnMaster: try xmodmap -e " alt_l meta_l alt_l". it doesn't 09:09:55 AnMaster: mostly due to the expression syntax 09:10:03 I hope we don't get that many bots though 09:11:31 It is. And it's already possible (and trivial) to make it loop with thutubot alone since the "ignore after four times" still applies only to babbling, not ^commands. 09:11:51 hm 09:11:59 fizzie, you could ignore the other bots 09:12:29 I should write a generic "ignore list" support, in fact. Probably too busy to do it very soon, though. 09:12:35 ok 09:13:39 We already saw a fungot-optbot-thutubot triple-loop, in fact. (Simply including the 'optbot' string in the fungot-thutubot loop made optbot generate so much chatter that it would've prevented the single-person-ignore from kicking in.) 09:13:39 fizzie: so, you've already asked, but then we wouldn't have the slightest clue what you are 09:13:40 fizzie: yes 09:13:57 fizzie, ah 09:14:01 yeah I can see the issue 09:14:27 but you want to keep the current "more than 4" limit to provide some protection against new bots 09:14:39 hopefully we won't get too many more 09:14:59 Everyone wants in on this lucrative bot business. :p 09:15:34 fizzie, I was actually thinking about some multi-eso bot, somewhat like the old egobot 09:15:39 I have plans in that area 09:16:01 it wouldn't itself be coded in an esolang 09:16:06 but rather in erlang 09:19:52 fizzie, If you saw a fingerprint named ATHR what would you think it was? 09:20:12 asynchronous threads 09:20:13 Somethinf related to asynchronous threading. 09:20:20 good name then :) 09:20:57 My plan is that it should work like t in normal befunge-98 mostly, except not synchronised 09:21:12 however to make it still possible to code stuff in it there are two things: 09:21:51 a read or write from funge space is atomic, even though the value may change after the read and the g, p, ' or s returns 09:22:00 so you won't get corruption 09:22:01 and 09:22:14 some synchronization primitives 09:22:24 to make it possible to still write programs using it 09:22:42 however any comments on this area would be very useful! 09:23:01 what types of sync primitives should exist for example? 09:23:09 fizzie, oerjan ^ 09:23:30 something like pause/resume threads would be one of them I think. 09:23:58 also some for of mutexes 09:24:14 and is it a good idea at all? 09:25:30 behaviour would be that blocking IO only blocks the relevant ATHR thread, and other ones may continue 09:25:52 (that would affect SOCK for example) 09:26:48 so 09:26:50 good or bad idea? 09:27:29 * AnMaster pokes fizzie and oerjan 09:28:52 i hear transactional memory is cool 09:29:08 * AnMaster googles 09:29:28 as for the atomic funge space I already know how to do that in the interpreter I plan to implement it in 09:29:31 which would be efunge 09:30:02 ets can be shared (they are private by default), and any writes/reads on single entries are atomic. 09:30:15 and since I use a private ets table for funge-space the change would be trivial 09:30:41 but "only if value is the same" 09:30:56 you mean like compare-and-exchange 09:30:59 interesting idea 09:32:06 Note: "i hear" carries a connotation that practical threading is not one of my fields of expertise 09:32:24 ah 09:32:36 oerjan, did you say befunge and practical? 09:32:57 i'm not quite sure whether or not i have _ever_ written a concurrent program, in fact :D 09:33:38 i did not say befunge, so no 09:43:34 afk 09:44:54 Well, I think I would like that. Simple atomic funge-space access sounds like it's enough -- no-one's writing Funge code because it's easy. As for synchronization, a semaphore is a very classical choice. 09:45:55 thus it would be better to use something else, like morse code 09:58:30 -!- oklopol has joined. 09:58:33 Well, a semaphore is pretty primitive as far as primitives go -- though I guess a single atomic compare-and-swap instruction would be even more primitive -- and would work nicely as a Funge instruction, unlike some stranges concurrency thingies. 10:01:38 -!- oklocod has quit (Read error: 60 (Operation timed out)). 10:03:41 You could even call the semaphore operations P and V like Dijkstra did. :p 10:08:02 -!- Jiminy_Cricket has quit (Read error: 104 (Connection reset by peer)). 10:29:01 fizzie, semaphore or mutex? 10:29:34 fizzie, also compare-and-swap in funge space would be harder for my implementation 10:29:45 and a huge performance hit 10:30:14 fizzie, remember I plan to implement it in efunge, not in cfunge 10:30:24 in fact efunge probably won't have the classical t at all 10:31:07 Well, a mutex is a special case of a semaphore (using only values 0, 1) so I'd go with a semaphore. 10:31:19 what about a futex? 10:31:35 (see man futex on linux) 10:31:48 (it is the thing the kernel use for both mutexes and semaphores iirc) 10:32:59 NOTES 10:32:59 To reiterate, bare futexes are not intended as an easy to use abstraction for end-users. Implementors are expected to be assembly 10:32:59 literate and to have read the sources of the futex userspace library referenced below. 10:33:00 heh 10:33:35 nah futex wouldn't work I think 10:33:36 I know them. Well, I guess it's just a bit more primitivey and less abstract than a semaphore. 10:33:52 fizzie, actually I think this could work: 10:33:58 S - Suspend current process 10:34:07 R - Resume another (suspended process) 10:34:12 R is async too ;P 10:34:20 s/process/thread/ 10:34:36 fizzie, it would allow syncing, but it would be hard to use 10:35:30 fizzie, or what do you think? 10:35:49 remember I plan to implement it in a language where the concurrency is based on message passing 10:36:09 + atomic read/write of a shared table (funge-space) as a special case 10:36:16 but no compare-and-exchange for said table 10:36:26 I'm not sure you can do a completely race-condition-free mutual execution with just atomic reads, writes and suspend/resume... well, maybe, but there's a bit too many hoops to jump through in order for it to be comfortable to use. Of course if you're not aiming for "comfortable"... 10:36:51 well my aims are: 10:37:10 1) t doesn't allow taking advantage of multi-core computers, I want my ATHR to be able to do that 10:37:42 2) it should be implementable in erlang in a reasonably simple way with reasonable performance 10:38:58 actually semaphores may still be possible 10:39:04 mutexes will definitely 10:40:01 Well, you can "easily" make a semaphore out of mutexes in the Funge code, so I guess it doesn't much matter. 10:42:43 fizzie, ok. :) 10:43:15 fizzie, erlang got something like mutexes (called global locks) 10:43:35 now the second question: How will this interact with existing fingerprints 10:43:41 and existing instructions 10:43:47 IO could be problematic 10:44:12 actually output will work just fine, input won't 10:44:29 due to the needed buffer stuff for input 10:45:15 so input only works for the first ATHR thread I guess 10:45:21 fizzie, does that make sense? 10:47:52 oh and I could allow compare and exchange, but only in respect other calls to the same compare-and-exchange fingerprint function, g and p could still clobber 10:49:58 If you have a synchronized queue, you could stick all your input characters in it in one thread, and your ~ could simply dequeue from there. Since & needs multiple characters and can't return until the whole number is read, it would mean that a thread in & would cause other threads doing ~ to block. Maybe not a bad thing. Your input queue would just need a "unget"-style 'put that thing back' function. 10:50:08 true 10:50:30 Sensible Funge programs will probably only do IO in one thread anyway, I guess. 10:50:32 fizzie, basically sync rpc 10:50:50 on a come-first-serve-first basis 10:51:02 makes perfect sense 10:51:09 (for erlang) 10:51:43 in fact erlang already have a module for something like that so you just write a callback module that fits into it 10:52:02 called gen_server (generic server) 10:53:38 Hm is it is a coincidence that "lock" is a subset of the word "block" 10:54:17 As for block-read/block-write operations (i, o, and various fingerprints like STRN's G, P) it would probably be enough to say that those are not atomic and the calling Funge code needs to explicitly synchronize them if necessary. 10:54:27 yes 10:55:05 fizzie, do you think anyone else will implement this fingerprint if I do it? 10:55:20 or is it too insane and hard to do in most languages? 10:55:53 (it would certainly be a pain in for example C) 10:56:01 Well, it doesn't sound _that_ difficult, at least if you don't think about implementing the atomic read/writes too efficiently. 10:57:33 as long as it isn't running on distributed nodes it should actually work fairly well and be quite efficient, even with smp erlang I think 10:58:08 as for instruction that could collide, consider SOCK and FILE 10:58:16 especially the blocking operations in SOCK 10:58:38 actually sockets and files would not be shared between ATHR threads 10:58:43 at least in my case 11:01:00 Deewiant, got any comments on this ATHR idea? 11:01:45 I'll think about implementing ATHR if I ever make that "FungeFriend" IDE. Although I think (if I feel like it and have some free time) I'll just start with a Befunge-friendly text editor that can do the "comment this strangely shaped region and make sure the comments follow when editing" thing. 11:02:01 FungeFriend? 11:02:03 wtf? 11:02:32 fizzie, what about making sure it realign <>^v as needed too? 11:02:39 and allow writing in the different directions 11:02:53 may not be possible to auto-realign always 11:02:57 but at least sometimes 11:03:48 There's a lot of helpful things it could do. Thank oklo.* for the name: [2008-10-13 14:02:13] < oklopol> more like a friend than an editor really. 11:05:32 I just have a feeling that if I really manage to make a befunge-friendly editor (with a large probability I won't even start) the temptation will be too great not to include a built-in interpreter/debugger in it. 11:13:05 fizzie, there was a debugging protocol plan 11:13:34 however since I didn't have time to work on it more I gave the maintainership of the idea to Deewiant, he was interested 11:13:39 no idea what happened with that since then 11:13:58 it would allow any interpreter and any frontend to interact via a socket, either tcp or unix ones 11:17:20 not much has happened :-/ 11:17:50 mostly because CCBI work is still blocked on a compiler bug, and I've been doing other stuff 11:18:41 aquire, spelling? 11:18:43 hm? 11:19:07 is it acquire? or is that something else? 11:19:23 acquire is something, what do you think it means :-P 11:19:33 Deewiant, "get" basically 11:19:37 that's acquire 11:19:41 right 11:21:08 acquire a squire 11:22:05 oerjan, "squire" and "acquire" were both suggested by aspell on "aquire" 11:22:06 hm 11:22:21 whatever "squire" means 11:22:47 have no quarrel with a squirrel 11:23:14 fizzie: well i would've suggested BeFriend, actually :) 11:23:35 Deewiant, fizzie: http://rafb.net/p/lZ9yn918.html 11:23:37 any comments? 11:23:40 it is a draft 11:24:11 both &~ are still missing 11:24:16 will add that shortly 11:24:44 basically they will be served on a first-come first-serve basis from the same buffer 11:24:55 Deewiant, is this something you may even consider implementing? 11:25:59 maybe 11:26:21 DEATH TO ALL PROCESSES 11:27:03 oklopol: WE WILL PROCESS YOUR DEATH SHORTLY 11:27:09 oklopol, K only kills the current one 11:27:14 I guess Q quit would be better 11:27:21 or E exit 11:27:35 A armageddon 11:27:37 Q so that it matches q, maybe. 11:27:55 fizzie, it is more like @ for the current process, rather than q for the whole interpreter 11:28:03 and @ is exit iirc 11:28:09 the name in the standard I mean 11:28:28 but q could maybe be easier to remember 11:28:30 err 11:28:30 Q 11:28:42 Yes, but you can't do capitalized @. And Q is like "@ for multiple threads", much like q is "@ for multiple threads" too. 11:29:04 fizzie, I always considered q like "@ for the whole interpreter" 11:29:17 Well, then, you can consider Q like "@ for the whole process". 11:29:24 ok you win 11:29:41 Or maybe you could use "@, only really big", and then accept some rich text format input. :p 11:32:26 :D 11:34:05 fizzie, no! 11:34:44 don't be so negative, that would be awesome 11:35:36

@

11:35:49 ! 11:36:04 fizzie: you're quite an xml enthusiast 11:36:07 why is this? 11:36:58 hm 11:37:02 what about REFC and ATHR 11:37:03 fizzie, ^ 11:37:18 REFCount? 11:37:26 oklopol, global references 11:37:32 to a cell 11:37:37 a catseye fingerprint 11:37:58 http://catseye.tc/projects/funge98/library/REFC.html 11:38:06 okily foggily. 11:38:15 oklopol, see link then :) 11:38:51 yes much less foggy now 11:39:04 glad you got my new saying :) 11:39:45 Hmm. Well, the closest match to the spec would probably mean the references list is still completely global. 11:39:52 higgely piggely 11:40:04 fizzie, yes I guess so 11:40:15 so a process serving those 11:40:43 Yes, I think it would be good manners to automagically synchronize it so that people can just use D/R with impunity. 11:41:14 fizzie, so like input then 11:41:14 impunity? 11:41:30 oklopol: 1. (1) impunity -- (exemption from punishment or loss) 11:41:38 fizzie, TRDS and ATHR? I plan to define it to be undefined 11:41:47 oklopol: Used in the "without fear of bad things happening" sense. 11:41:52 hmm right i've heard "impune" 11:42:16 oklopol: Not any sort of "imp-unity" a worker's union of imps thing. 11:42:24 :) 11:42:25 -!- Slereah_ has joined. 11:42:29 fizzie, that would be awesome! 11:42:46 obviously they are related to the "demons flying out of the nose" stuff 11:43:17 Incidentally, do your S-spawned processes start with a copy of the spawning thread's stack, like t does? 11:43:39 obviously they are related to the "demons flying out of the nose" stuff < wat 11:43:52 Slereah_: The imp unity movement. 11:44:06 wat 11:44:07 fizzie, I think that would make sense 11:44:19 fizzie, still there are some issues with regards to t to fix 11:44:24 AnMaster: I guess it would, since it's what I was expecting. And everyone knows I make sense. 11:44:27 1) thread ids as returned by y 11:44:41 2) are all threads in a ATHR duplicated when using S? 11:44:45 (Zounds, sometimes I make almost as much sense as fungot.) 11:44:45 fizzie: how's it going?) reply " en oo mikään mies" or something 11:44:45 I'd say no for 2 11:44:53 and for 1 that they should be unique 11:45:00 Hah, fungot's speaking Finnish. 11:45:01 fizzie: can you explain what purpose display serves other than for. 11:45:16 fizzie, what did that Finnish mean? 11:45:55 i ain't no man 11:45:57 "I'm not a man" is the meaning, although it has a distinct style that I can't really translate right now. 11:46:01 Oh, there it is. 11:46:04 ah 11:46:06 heh 11:46:26 fizzie, anyway what about the two issues I mentioned? 11:46:38 they aren't men either 11:46:50 sigh 11:46:58 1) Unique is good, although probably doesn't matter much; 2) I personally would expect it to start only the single thread doing S. 11:47:18 right 11:47:57 fizzie, what about TRDS? 11:48:00 how would it interact 11:48:15 I wouldn't worry about TRDS at all, it's such a mess. 11:48:41 it's a heap of TRDS 11:48:50 fizzie, so I might safely define it as "trying to use TRDS and ATHR at the same time SHALL cause demons to fly out of the Funge programmers nose"? 11:48:53 :D 11:49:33 or maybe just saying undefined is better 11:49:34 I wouldn't have a problem with that. How does the TRDS time travel interact with Funge-space modifications and input/output, anyway? 11:49:45 I don't think I've ever really read the spec. 11:50:11 fizzie, I think it replays everything since tick 0 11:50:19 for the funge-space modification bit 11:50:26 for io I think it may be undefined 11:51:02 i'm pretty sure it should retract all io that's been done. 11:51:20 because i recall lolling about that when reading the spec 11:51:23 but quite vaguely 11:51:40 Maybe it prints out "hey, please ignore the last characters I wrote, and also when I next ask for input, retype whatever you wrote for the last characters, okay?" 11:52:02 :D 11:52:05 yeah most likely 11:52:21 or perhaps backspaces 11:57:19 fizzie, Deewiant: http://rafb.net/p/XItxWi85.html 11:57:22 any comments? 11:58:16 any other fingerprints that may interact badly with ATHR? 12:00:06 why not "several universes in an ATHR"? 12:00:36 Deewiant, I consider that for ordering purposes MVRS is the top layer, ATHR comes next, and lowest is t 12:01:06 or maybe I just don't get what that's saying 12:01:11 what do you prevent, exactly? 12:01:36 Deewiant, "madness of funge-implementation maintainers"? 12:01:55 AnMaster: I honestly don't get what that whole thing is saying 12:02:17 so, if you're running in MVRS, and you have two ATHRs running... what? 12:02:21 Deewiant, well you agree that MVRS ATHR and t needs to have a well defined order with respect to each other 12:02:28 right? 12:02:39 what do you mean by order 12:03:00 Deewiant, consider MVRS a sack that can contains thread and ATHRs. 12:03:13 consider ATHR a stack that can contains threads 12:03:23 is that clearer? 12:03:36 right, but what would ATHRs containing MVRSs even be? 12:03:52 multiple independent funge interpreters that can't talk to each other? 12:04:03 Deewiant, exactly the issue 12:05:28 -!- slereah has joined. 12:05:28 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 12:05:50 AnMaster: are mutexes shared across universes? 12:06:23 Deewiant, good question 12:06:28 I suspect they aren't 12:06:31 Deewiant: How does this MVRS thing work? How can the universes communicate? 12:06:41 Deewiant, actually they might be 12:06:54 really truly global would be easier for me to code 12:06:56 fizzie: RTFM, I don't know: http://www.rcfunge98.com/rcfunge2_manual.html#MVRS 12:07:12 AnMaster: what happened to the stuff we were discussing about threading MVRS universes anyway? 12:07:20 can all that be implemented with ATHR and the current MVRS? 12:07:35 Deewiant, isn't the current MVRS already async? 12:07:50 AnMaster: I don't know 12:07:53 anyway ATHR is a different approach to async threads than MVRS 12:08:07 AnMaster: but we wanted the option of sync vs. async 12:08:13 and I suspect Mike's impl is sync 12:08:45 The FM is not very verbose again. What does "go to another universe" mean, does it migrate the current 't'-style IP there or what? 12:08:49 Deewiant, ATHR won't allow sync 12:08:59 in fact I will write that it is bad style to implement it as sync 12:09:09 AnMaster: sure 12:09:17 Deewiant, ATHR may even be distributed across computers if you want 12:09:24 AnMaster: but for multiple MVRS universes, we want the option of running them in or out of sync 12:09:50 Deewiant, well true. But MVRSes in an ATHR wouldn't make sense 12:10:07 If each MVRS universe has its own set of ATHR processes, what would MVRS's "go to another universe" operation do? 12:10:39 well if each ATHR had it's own set of MVRS universes, how the heck would anything work at all! 12:11:21 Obviously it won't work at all; I'm just wondering how MVRS/ATHR play together in the "sensible" ordering. 12:11:53 fizzie, in fact what does G do at all really? 12:12:00 I have no idea. 12:12:05 "Goes to another universe". 12:12:20 as far as I remember it was moving the current ip to another universe, keeping it's current stack 12:12:21 -!- Slereah_ has joined. 12:12:23 or something like that 12:12:28 Yes, that's what I'd expect. 12:12:31 -!- slereah has quit (Read error: 104 (Connection reset by peer)). 12:12:33 what about storage offset? 12:12:36 fizzie, that may have been J though 12:12:39 There's G which takes pos/delta and J which keeps it. 12:12:41 Deewiant, what about it? 12:12:48 kept or not? 12:12:55 Deewiant, in MVRS or ATHR? 12:13:01 G, MVRS 12:13:12 Deewiant, well no idea, ask Mike Riley 12:13:15 for ATHR, N/A I guess :-P 12:13:25 Deewiant, for ATHR it would be same as for t really 12:14:44 Anyway, if you have an IP in a ATHR process which suddenly decides to jump to another universe (and you really wish to specify the ATHR/MVRS interaction) you probably need to say something about in which process in the new universe the thread will appear, and what will happen to mutexes held and so on. Unless it takes the whole ATHR process with it, but that doesn't really make too much sense either. 12:15:28 fizzie, mutexes should be truly global 12:15:32 across everything 12:15:42 that is my conclusion 12:16:47 AnMaster: might be a good idea to take the MVRS ideas we had way back when and look over them, possibly mail Mike and somehow fit them and ATHR together 12:17:15 Deewiant, hm 12:19:14 ATHR sounds a lot simpler than the MVRS thing, though. It's just pthreads in funge form, with shared memory and all. (And with little synchronized 't'-threads inside them, but that's just a detail.) 12:19:59 fizzie, yes basically, and ATHR should allow different processes on different computers 12:20:05 in a distributed fashion 12:20:09 it may be insanely slow however 12:20:22 unless you locally cache funge space or something 12:20:48 with messages for when it is updated by someone else 12:21:12 but that would be blocking until all are updated 12:21:16 oh well 12:24:24 Since the ATHR processes are asynchronous, I'm not sure you really need to care precisely about when the funge-space modifications of other processes are visible. Explicit synchronization primitives like those mutexes would need some communication, though. 12:28:39 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 12:29:55 fizzie, hm good idea 12:31:03 Deewiant, what do you think about that ^ 12:31:17 what? 12:31:22 Since the ATHR processes are asynchronous, I'm not sure you really need to care precisely about when the funge-space modifications of other processes are visible. Explicit synchronization primitives like those mutexes would need some communication, though. 12:31:36 Deewiant, should the change to funge space be visible in all processes once g or p returns 12:31:41 or may it be async update 12:32:08 I think it should be 12:32:10 fizzie, anyway that means you need a sync all of funge-space instruction 12:32:31 Deewiant, hm that would make distributed ATHR slow 12:32:46 since otherwise you might just send a message to each node to update the local funge-space copy 12:33:06 -!- oerjan has quit ("leaving"). 12:33:10 (since not having a local copy would be insanely slow there) 12:33:12 well, since the environment is fundamentally global... 12:33:45 oh well 12:33:50 AnMaster: this is why I think fixing MVRS is a better idea 12:33:58 because then each process can have truly its own environment 12:34:20 Deewiant, well this doesn't aim to replace MVRS, it aims to do something different. 12:34:35 yes, and I don't think this is very useful :-) 12:34:43 Deewiant, so CCBI won't implement it? 12:34:43 even on a Funge scale ;-) 12:34:48 I didn't say that 12:34:51 TRDS is useless 12:34:51 haha 12:35:08 Deewiant, well rest assured that TRDS is undefined with respect to ATHR 12:36:40 Deewiant, however I think this can still work distributed and multi-core 12:36:47 consider a befunge-cluster :) 12:36:50 sure it can work 12:36:53 but it won't be very useful 12:36:58 I don't think, anyway 12:37:09 Deewiant, what is it missing that would make it useful? 12:37:16 I don't think it can be made useful 12:37:26 like said, funge is just fundamentally a global world 12:37:39 distributing it over multiple machines will only bog things down with communication 12:38:04 unless you split the world into bits somehow... but that's just going into MVRS territory 12:38:33 Deewiant, you could locally cache Funge-Space of course 12:38:42 and use message passing for sending updates to funge space 12:38:50 making that async would be better than sync imo 12:38:52 -!- ENKI-][ has quit (Read error: 104 (Connection reset by peer)). 12:38:53 oh well 12:38:54 yes, and it's still going to be too much overhead for no gain IMO 12:39:09 Deewiant, ATHR will work well running on multiple cores of a single CPU however 12:39:22 even if not as distributed 12:39:45 will it? you still need to sync funge-space accesses - of which there are at least n, where n is the number of threads, /every tick/ 12:39:51 unless you make it async 12:40:00 in which case I'm not sure if it's useful for anything at all ;-) 12:40:06 Deewiant, well that is easy in my case 12:40:17 Erlang got atomic updates to so called ETS tables 12:40:22 easy to code, whatever, but slow as heck 12:40:27 which are the sort of hash tables I already use 12:40:33 Deewiant, actually not 12:40:39 they are used for db backend too 12:41:13 an additional two CAS instructions every tick will hurt a lot, I think 12:41:45 CAS Compare and Search? 12:41:47 err? 12:41:47 try it and see 12:41:51 no, compare and swap 12:42:04 CMPXCHG on the x86 12:42:09 Deewiant, so async updates to funge space then as I suggested but you didn't like 12:42:25 seems to me that pretty much everything is undefined with async 12:42:43 Deewiant, not really, still well defined as one of the changes will win 12:42:52 yes, but it's undefined which 12:42:56 in the end you won't end up with desynced funge-space 12:43:07 Deewiant, agreed, why did you think I provided mutexes? 12:43:30 -!- Dewio_ has changed nick to Dewi. 12:43:37 I think it'll just serve to make the code full of explicit syncing 12:43:41 without much benefit 12:43:52 Deewiant, Avoid side effects then ;P 12:43:53 but do give it a try, if you can find a use case that works then good :-P 12:43:59 Single Assignment Fungespace! 12:44:00 AnMaster: kinda hard in a language without local state 12:44:08 Deewiant, stack stacks? 12:44:26 AnMaster: every instruction executed comes from the global state 12:44:38 so there's a side effect /always/ 12:44:50 Deewiant, very true, but if you never modify funge space and use stack-stack instead to store data? 12:45:11 -!- ENKI-][ has joined. 12:45:11 the interpreter can't know whether you modify funge space or not 12:45:26 so, again, "without much benefit" :-P 12:45:31 Deewiant, indeed it can't unless I actually implement that NX fingerprint I was thinking about 12:45:56 no-execute/no-write/no-read as flags for blocks of funge-space 12:46:08 would be silly yes 12:46:18 but that only makes it a better idea for funge 12:52:53 Deewiant, it seems that shared ets tables actually got good performance even when multiple threads update them, I asked in #erlang. ets tables can't be directly distributed however, so that would need some more work 12:52:54 Personally I think I could just fine use asynchronously running threads (with explicit synchronization primitives provided) in fungot; to run the brainfuck interpreter, for example. It just needs to allocate few rows of funge-space for each concurrently running brainfuck program to use as local state. 12:52:54 fizzie: i like cows 12:53:13 but they work across SMP erlang 12:53:16 and are fast 12:54:30 fizzie, hm 12:54:49 G and P for sync set? 12:54:54 set/get* 12:55:03 actually would just need P 12:55:20 fizzie: mind if I have a go at befungefriend sometime? 12:55:23 or G could mean it requested that other parts would sync any g/p 12:55:26 it sounds like a worthy project, i'd like to have a bash at it 12:55:44 ehird: Feel free to. 12:56:17 I'd have to do it in Qt or wxWidgets or something, though, for the "works on something other than my machine" factor. Blergh. Hmm... wait... I could just use one of the countless interfaces to Swing. 12:56:23 That'd be less suicidal-tendencies. 12:56:28 (Note: Swing can be set to use native widgets) 12:56:53 [Less talking, more coding.] 13:00:15 ehird, would that imply Java? 13:00:16 :( 13:00:23 AnMaster: No, not really - 13:00:31 also Swing doesn't use native here as far as I seen 13:00:35 You'd need Java, obviously, but I'd just use a Java bridge to use Swing 13:00:36 maybe it does on OS X 13:00:39 and write the rest in something else 13:00:40 AnMaster: it's a setting 13:00:43 up to the app for some reason 13:00:46 (Probably legacy...) 13:00:49 ok, odd 13:01:11 ehird, anyway, I suggest using GTK+, QT, or wxWidgets 13:01:15 they are rather portable 13:01:24 even GTK+ got native OS X support these days 13:01:28 AnMaster: No it doesn't. 13:01:34 It can draw on Quartz, yes - but that's in a beta stage 13:01:35 ehird, yes it is beta though 13:01:37 and it still doesn't look native. 13:01:46 ah QT or wxWidgets then? 13:01:49 And it never will, because a Cocoa-using theme engine would not work very well. 13:01:57 AnMaster: Yes, I've used QT before and dabbed in wxWidgets. 13:02:03 I'll use what seems to be the nicest API, really. 13:02:10 well QT is C++.. so that is a downside 13:02:15 not sure about wxWidgets 13:02:19 AnMaster: Language bindings, man. :-P 13:02:24 I'm not writing a funge IDE in C 13:02:31 ehird, yeah ok, python I guess 13:02:36 most likely 13:02:39 and pyqt exists at least 13:02:43 not sure for wx 13:02:56 wxPython. 13:03:00 worth noting - the Terminator terminal software uses the native Swing stuff: http://software.jessies.org/terminator/ - and does quite a good job at it, I used it on this machine for a while, it's pretty nice 13:03:14 The font rendering is a bit kooky on the Linux screenshot, but I imagine that could be fixed. 13:03:16 It's _Python_, of course it's got bindings to just about anythg. PyGTK and all. 13:03:26 (That screenshot seems to be from Ubuntu 5.something. Wowzers.) 13:03:42 fizzie: I tried to use SWIG to bind the Python C api to Python 13:03:44 It didn't work 13:06:21 Oh, worth noting about that Terminator software - 13:06:26 the guy's useraccount is "elliotth"! 13:06:36 fizzie: I tried to use SWIG to bind the Python C api to Python <-- heh... 13:06:46 How many people have Elliott as a first name with the same spelling and also a surname starting in h? 13:06:49 Not many. :-P 13:07:33 ehird, and yes font looks bad I agree 13:07:53 QT gets the font "correct" here and same on any other OS I seen 13:09:09 AnMaster: my point was that even if you get the most optimal performance possible it's a waste of time 13:09:18 Deewiant, not really 13:09:56 AnMaster: Yes, I have used Qt. But it is subtly nonnative on OS X. 13:10:07 It doesn't actually use native widgets... it just draws its lookalikes. 13:10:12 It's especially noticable in right-click menus. 13:10:28 (Before you say anything: shut up, this is #esoteric, I can be pednatic) 13:10:30 *pedantic 13:11:12 ehird, hm wxwidgets then? 13:12:07 wxwidgets has a nicer api than qt, but it does the same thing as Qt (just pretends), except whereas you wouldn't really notice with Qt, wxwidgets looks like someone put one of those OS X imitation skins on to windows 13:12:22 ehird, so QT then! 13:12:51 But Swing has a semi-nice API and is properly native (or at least a damn good imitation) on everything. :-P 13:12:58 ehird, really swing doesn't look good at all on linux, since even when set to look like native, it looks like a bad copy of GTK 13:12:59 Also Java _is_ open source. 13:13:04 it doesn't even look like good GTK 13:13:13 AnMaster: Um, a minute ago you were saying you didn't know it could go native. 13:13:15 and I don't consider GTK very native 13:13:49 ehird, a minute ago I hadn't checked out an example in jdk that allows changing the theme for swign 13:13:51 swing* 13:14:29 afk for a bit 13:14:42 I could just leave Swing at its default, non-native theme on X11 then. As X11 has absolutely no "native" widgets, that would be valid. 13:15:11 ehird, oh it have natives ones 13:15:15 as used in some X tools 13:15:28 AnMaster: No, those are Athena, I think. 13:15:29 Or Xt. 13:15:32 either way, not actually native x11. 13:15:42 Xt is bundled with x11, yes, but xlib does not have any widgets 13:15:51 xfontsel 13:15:53 for example 13:15:55 yes 13:15:57 that's xt 13:16:08 xterm too, btw. 13:16:13 indeed 13:16:16 and xclock 13:16:19 maybe 13:16:55 yes it links libxt 13:18:12 ehird, also xlib is kind of outdated, it is to be replaced with xcb 13:18:18 yes 13:18:26 in fact in last X release xlib is a wrapper for xcb iirc 13:18:36 i wanna make an app that directly talks to the x server 13:18:37 >:D 13:18:54 ehird, not after you read the protocol... 13:18:59 I promise you that 13:18:59 :D 13:19:06 AnMaster: one thing with xcb is it's reaaaaaaaaaally low level 13:19:17 a basic xlib program is like 30 lines and pretty readable 13:19:19 ehird, yes, so is xlib 13:19:27 xcb is a mess of stuff 13:19:32 but i guess that's ok 13:19:38 if you want highlevel, why aren't you using a toolkit 13:19:39 I thought it was xlib that was the mess? 13:19:43 ehird, indeed 13:19:55 AnMaster: http://en.wikipedia.org/wiki/XCB#Example vs http://en.wikipedia.org/wiki/Xlib#Example 13:19:59 to me the later is more understandable 13:20:06 * AnMaster checks 13:20:51 A friend wrote "directly to a socket with linux syscalls" X11 thing to open a suitable OpenGL surface, because he didn't like the overhead of xlib. 13:20:51 you are correct 13:21:01 fizzie: overhead? 13:21:04 crazy guy. 13:21:05 haha 13:21:10 * AnMaster agrees with ehird 13:21:19 I'm so glad I have a computer that is less than 20 years old : 13:21:20 :D 13:21:22 "because I can" would be the only valid reason for that 13:21:28 IMO 13:21:43 AnMaster: ... 13:21:46 [[* AnMaster agrees with ehird]] 13:21:51 ehird, yes? 13:21:53 stop exploding the universe, ok? 13:21:57 you did that a week or so ago 13:21:58 on that specific point 13:21:59 really, be more thoughtful 13:22:14 ehird, well you have a paradox here 13:22:18 " really, be more thoughtful" 13:22:23 should I agree or disagree with that? 13:22:36 um 13:22:36 either way will be a paradox according to you 13:22:42 AnMaster: do both 13:22:45 "maybe" 13:23:01 ehird, if I did that I would agree with your suggestion to do both 13:23:07 ... 13:23:09 i retract that suggestion 13:23:19 I agree that was a good action 13:23:21 ;P 13:23:27 * ehird kills AnMaster 13:23:31 die :| 13:23:35 mr PARADOX 13:23:43 * AnMaster disagrees and does not die 13:24:11 ehird, anyway it was you that caused the paradox 13:24:23 by saying something that made sense, for once 13:24:41 ;P 13:25:56 turtle moron avocado 13:26:19 ehird, no idea what you meant with that 13:26:23 good 13:26:33 ehird, care to explain it 13:26:34 ? 13:26:44 no 13:26:48 ehird, why not? 13:26:56 because you suck! ;d 13:26:57 *:D 13:27:26 ehird, you forgot the ~ at the end 13:27:33 that was sarcasm? :| 13:27:47 ehird, well I guess so, since it wasn't truth 13:33:20 MEANWHILE 13:33:21 rss sucks 13:33:26 atom sucks slightly less 13:33:47 Well. 13:33:52 RSS doesn't even mean anything. 13:33:53 http://diveintomark.org/archives/2004/02/04/incompatible-rss 13:34:05 9 incompatible versions of RSS, some even sharing versions! 13:34:06 WOOOOOO! 13:43:39 -!- jix has joined. 13:53:46 http://www.newyorker.com/online/blogs/cartoonlounge/2008/10/cartoonoff-xkcd.html The New Yorker challenges xkcd to a comic-off. 13:57:02 -!- jix has quit ("This computer has gone to sleep"). 13:57:43 Deewiant, fizzie, new draft: http://rafb.net/p/hTJxdL27.html 13:58:16 [[In this specification the word process is used to indicate an "async thread", 13:58:16 unlike a normal Funge thread created by t (called thread in this specification). 13:58:16 ]] 13:58:18 that is confusing 13:58:19 call them threads. 13:58:31 ehird, that would confuse with t-style threads 13:58:42 since we need to discuss interaction with those threads 13:59:02 AnMaster: So call them what they are 13:59:04 "native threads" 13:59:08 or 'green threads' 13:59:14 t-style threads can be referred to as "IPs", though. 13:59:16 ehird, that is implementation defined 13:59:20 fizzie, ah true 13:59:40 Are you sure you didn't just inherit the "process" word from Erlang? :p 13:59:40 AnMaster: call them bogonomons then 13:59:52 fizzie: he has erlang on the brain. so probaly 13:59:54 *probably 14:00:12 fizzie, I agree it affected my thinking of course, such as I got the name mutex from pthreads 14:00:17 they are called "locks" in erlang 14:00:49 i am a delicious bogomips 14:00:58 in flight 14:01:57 Bogomips-737? 14:02:19 sssssssss 14:02:23 delicious 14:02:24 For some reason that reminded me about the "I am an atomic playboy" line of second reality, even though there's not much in common with them except the "I am a" prefix. 14:02:27 ^_^ 14:02:51 fizzie, err "second reality"? 14:02:57 http://en.wikipedia.org/wiki/Second_Reality 14:02:58 google lol 14:03:07 That, yes. 14:03:22 Oh, it was "I am _not_ an". 14:03:28 Even worse, I misremembered it. 14:03:49 It's there in the "Magnifying and rotating head" section. (Didn't know wikipedia had a _that_ through article about it.) 14:04:16 http://www.youtube.com/watch?v=8G_aUxbbqWU Jewtube of it 14:04:19 I wonder if there's been notability debates. 14:04:27 also, yes. 14:04:32 for all X, there has been notability debates about X 14:04:37 unless X is hitler or churchill 14:04:39 or dubya 14:07:07 is that chur-chill or chruch-ill, or even churc-hill? 14:07:17 I mean the etymology 14:07:38 church-hill... i think... 14:07:45 well there is a h missing then 14:07:45 if you're talking about prononuciation 14:07:46 :P 14:07:55 and no, well, you pronounce it churchill 14:07:56 :P 14:08:38 Sad fact: 14:08:48 Churchill insurance comes before Churchill's WP article on google for "churchill" 14:09:14 yeah sad... 14:09:56 (iirc, a survey of kids recently showed that kids knew "churchill" as the talking dog plush thing from the churchill adverts, not even thinking about the prime minister) 14:10:13 lol@culture 14:10:39 I never heard of that insurance company before now... 14:10:50 As far as I know it's a UK thing. 14:11:26 i don't believe in churches 14:11:33 oklopol: as in, they don't exist? 14:11:38 yes 14:11:43 oklopol: i agree 14:11:56 i mean, i've been to one, but it didn't seem too real imo 14:12:04 probably one of those fake churches 14:12:09 yes most likely 14:12:09 did the bishop move diagonally? 14:12:10 bet not 14:12:19 i didn't even see a bishop 14:13:17 http://arstechnica.com/news.ars/post/20081015-opera-study-only-4-13-of-the-web-is-standards-compliant.html <-- ...but if you ask idiots, they'll tell you "browsers should just reject invalid pages and the pressure would make all the web become compliant overnight"! 14:13:21 #math is pretty helpful, "can you give me a hint on X?" "what about it?" "well how to *do* it" "it can be done." 14:13:36 lol@interweb 14:14:06 oklopol: hate places like that, i asked a q the other day and I ask "i can't use X because of why what should I do?" and i got the reply "don't use X" 14:14:26 For some reason I begin to feel slightly nauseous whenever I'm in an Orthodox Christian church. Doesn't happen in other places; might be all that incence. 14:14:53 fizzie: or it might be the LIES AND DECEIT FOR THE PURPOSE OF CONTROL BEHIND THE MYTHS THEY TEACH YOU 14:14:56 ... probably not :D 14:15:05 Probably not, as it doesn't happen in other churches. 14:15:07 "Uh, I mean..." 14:15:40 fizzie: Perhaps it's to do with the percentage of priests raping little boys at the time. Pick a better time to go in those churches. 14:15:40 :-| 14:16:15 I thought that was mostly a Catholic thing. Don't know. 14:16:34 "You know, that religion with the raping priests." 14:16:44 Heh, that might be offensive. 14:16:50 fizzie: They're modernizing, trying to bring in new ideas and such. 14:16:52 Tolerance and all htat. 14:16:53 *that 14:21:33 I think I'll have to go and fetch our new bathroom faucet now. (They sent us a wrong kind of one.) 14:32:52 http://www.theregister.co.uk/2008/10/16/android_kill_switch/ 14:32:53 !! 14:33:02 There goes the thinking that Android would be a nicer, more open platform than iPhone. 14:33:07 Unless the dear reg is hyperboling again. 14:34:54 I saw a funny add last year for a protestant church in the newspaper 14:35:27 oh? 14:36:06 it was in Swedish, but basically it looked like an ISP ad. The text said something like: "Wireless - Free connection to god all the time" "Unlimited transfer rate for prayer" and "Free support at your local church." 14:36:19 heh 14:36:24 that's factually incorrect 14:36:27 humans can only pray so fast... 14:37:56 ehird, well, I said "said something like", I don't remember the exact wording. So it *may* be a misquotation. But it was similar to that 14:38:10 :-D 14:38:16 ehird, also computers can only handle data so fast too 14:38:31 Well yeah... that's why there aren't any ISPs offering unlimited transfer rate 14:38:40 Seriously, you'd get like...500 TB/sec 14:38:59 (Unmetered bandwidth, sure. I have that.) 14:39:17 ehird, indeed, it may have been unlimited transfer quota or such 14:39:43 If I was god I'd kick the ass of some whiny guy who prayed whenever he tripped and fell :D 14:40:21 (And it looks like an isp ad by having a bunch of cables in the ad.) 14:40:26 (and the wording of course) 14:40:45 ehird, anyway the point was that it was rather funny 14:41:15 Well, a bunch of cables is just incorrect (things are generally funnier when they are misleading but correct). 14:41:32 Unless this church was a weird cult that made you swallow an ethernet cable plugged into god, I guess. 14:41:36 ehird, however consider may ISP ads have a bunch of cable in it 14:41:53 also it was the protestant church 14:48:06 ehird, actually the exact wording seems to have been "Wireless\nPrayer is free\nUnmetered bandwidth\nAlways conencted\nPray when you want, where you want and how you want\n\nFree support in all churches\nThe Swedish church\nStockholms stift" (stift is the name for the area that one bishop handles or something like that iirc) 14:48:16 Also \n indicates newline 14:48:24 orly :P 14:48:30 AnMaster: gee really 14:48:33 i thought it meant nostril 14:48:33 oh and "unmetered bandwidth" would actually translate to "unlimited bandwith" 14:48:43 ehird, I just didn't know how to translate it 14:48:46 to English 14:48:54 What, newline? :-P 14:49:00 ehird, the "stift" 14:49:21 ehird, anyway if I hadn't said that you would have said "really did the ad use \n literally?" or something 14:49:21 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 14:49:41 That would be awesome 14:49:50 ehird, well it didn't 14:51:03 "The preliminary data published today by Opera provides some intriguing statistics about the use of specific HTML elements. Among the pages analyzed by MAMA, the most popular HTML tags were HEAD, TITLE, HTML, BODY, A, META, IMG, AND TABLE. The list of least popular tags includes VAR, DEL, AND BDO." 14:51:04 hm 14:51:13 someone linked that page above 14:51:22 anyway this makes me wonder what is wrong with

14:51:42 I linked it. 14:51:46 ehird, ah yes 14:51:47 And nothing, but people don't care about it. 14:52:00 ehird, err? How else to separate paragraphs? 14:52:05 AnMaster:

14:52:15 ugh 14:52:18 It's silly, it's unsemantic, but nobody cares. 14:52:26 well I care ;P 14:52:35 -!- puzzlet has joined. 14:52:45 i care a negative amount, you should use

*because* it's worse for that purpose. 14:52:52 oklopol: but you're oklopol 14:53:02 oklopol, hey, this is #esoteric, but the whole world isn't #esoteric 14:53:07 yes it is 14:53:12 haha, i just checked the vjn homepage 14:53:13
14:53:15 seriously? 14:53:15 :D 14:53:23 what :D 14:53:29 oklopol: vjn.fi uses
14:53:32 ehird, and this indicates that because the whole world does it the incorrect way we should all write strictly correct html 14:53:35 that's neither html nor xhtml XD 14:53:36 because no one else does 14:53:37 :P 14:53:43 :D 14:53:44 AnMaster: i do :\ 14:53:46 yeah that's kinda cool 14:53:50 ehird, so do I 14:53:55 ehird, but we are all #esoteric 14:54:01 zomg rly 14:54:05 and I said we should, since nobody else does 14:54:08 a guy in our group used that for a while, until i told them it means nothing 14:54:17 haha 14:54:19 seems it's on the front page now, i find that a good thing 14:54:21 :D 14:54:27 maybe it's reverse-self-closing 14:54:31 it sort of... self-opens 14:55:06 strangely, vjn.fi actually uses p and css 14:55:40 A US judge has thrown out a case against God, ruling that because the defendant has no address, legal papers cannot be served. 14:55:40 -- http://news.bbc.co.uk/1/hi/world/americas/7673591.stm 14:56:15 ehird: the guy who used
is more the big picture type, the css is pretty good 14:56:39 oklopol: do you have committees working on that site 14:56:45 :D 14:57:00 no, we don't 14:58:32 ehird, about that link... 14:58:35 "Only in US" 14:58:41 what? 14:58:43 the bbc link? 14:58:54 ehird, only an American would be that mad yeah 14:58:57 oh 14:59:00 i thought you meant 14:59:06 the link didn't let you in XD 14:59:07 the country of the suing! 14:59:17 AnMaster: it wasn't a sueing 14:59:21 *suing 14:59:27 also i think it was to make a point, you know 14:59:27 what was it then? 14:59:31 http://en.wikipedia.org/wiki/Ernie_Chambers 14:59:34 AnMaster: it was a lawsuit 14:59:45 ehird, ah right, does "suing" mean something else? 14:59:58 AnMaster: yeah 15:00:02 meaning? 15:00:11 this is where i link you to the wikipedia page 15:00:16 wait 15:00:18 i read what you said wrong 15:00:18 :D 15:00:31 ehird, um? 15:00:43 There is no page titled "suing". 15:00:54 i read what you said wrong <- dis 15:00:56 ah 15:01:14 There is no page titled "i read what you said wrong". 15:01:18 ;P 15:01:33 ååååååååååååååååååååååååå 15:02:01 ehird, if you meant it as aaaaaaaaaaaaaaaa.... with some extra effect then it doesn't work 15:02:13 å is ppronouncedvery differently 15:02:15 err 15:02:15 wtf 15:02:21 ispell went mad 15:02:22 no i was just having fun 15:02:35 å is pronounced very differently 15:02:38 was what I menat 15:02:41 meanwhile i'm trying to make the most minimal feed reader ever and now I want to kill myself :D 15:02:50 however the spelling correction breaks after an unicode char 15:02:51 it seems 15:02:51 stupid ffffffffffffffffffffffffffffff rss atom fsfsfsfsdjfkdsf 15:02:55 which plain sucks 15:03:05 ehird, I just use akregator 15:03:38 AnMaster: yeah, but i don't think this'll be too hard from where i am now, also i used netnewswire but i want something way more minimal 15:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | BABABABDBDBABABBDBBABBDBABDDD. 15:07:44 ehird, care to look up context for the topic optbot just set? 15:07:44 AnMaster: more like german 15:08:05 Sure. 15:08:15 ehird, thanks 15:08:54 08.03.15:14:47:21 BABABABDBDBABABBDBBABBDBABDDD 15:08:56 How predictable. 15:09:07 ehird, heh, and in what context whas that? 15:09:20 14:44:38 Deewiant, wow, this is pretty 15:09:20 14:44:52 Assuming that instructions without any particular concurrency-related behaviour, such as ^>v<#, take one tick. 15:09:21 14:44:52 Will continue to produce textual output, so strings must work correctly where concurrency is concerned: "a b" should take 5 ticks, 'a should take 1. 15:09:21 14:44:52 GGGGGGOGOGOGOGOGOGOOGOOGOOGOOGOOGOODGOODGOODGOODGOODGOODGO:ODGO:ODGO:ODGO:ODGO 15:09:23 14:45:01 Deewiant, that's good I assume? :D 15:09:24 I mean was it ah 15:09:25 14:45:02 ;) 15:09:27 ah 15:09:27 14:47:21 BABABABDBDBABABBDBBABBDBABDDD 15:09:28 ok 15:09:31 14:49:03 ehird, found it, ip didn't move correctly after split 15:09:31 right 15:10:08 well that makes sense 15:23:38 http://inamidst.com/stuff/2008/thing.pl 15:23:41 perython! 15:33:04 ehird, is it a polygot? or? 15:33:12 nope 15:33:13 it's just python 15:33:20 but it looks like perl 15:33:30 yeah 15:33:37 :-12 is crazy 15:33:55 wait, no 15:33:57 ehird, and what does that mean? 15:34:00 thought that was ::-12 15:34:09 AnMaster: [:-12] is a slice with an implicit first 0, that is 15:34:11 [0 : -12] 15:34:16 and with ::? 15:34:16 so you get all but the last 12 chars 15:34:29 well, ::-1 reverses 15:34:34 :: is a bit complex... 15:34:39 and ::-12? 15:34:45 >>> 'abcdefghijklmnopqrstuvwxyz'[::-12] 15:34:45 'znb' 15:34:45 :D 15:34:54 i don't know how that works either 15:34:57 ah 15:35:02 http://www.python.org/doc/2.3/whatsnew/section-slices.html 15:35:04 there 15:35:10 ehird, you should ask #python? 15:35:21 http://www.python.org/doc/2.3/whatsnew/section-slices.html 15:35:31 ehird, it only mentions ::-1 15:35:35 not any other level 15:35:36 no it does not. 15:35:40 please actually read it 15:35:41 :| 15:35:52 ehird, so searching for ::- using browser doesn't work? 15:36:03 sometimes there is a thing called english 15:36:05 formatted into prose 15:36:07 sometimes you read it 15:36:09 with your eyes and your brain. 15:36:16 ehird, ah so stride of -12 15:36:19 or 12 from end 15:36:22 yes 15:36:23 well that makes sense 15:36:34 though I agree syntax is slightly mad for that 15:36:58 ehird, btw would a perl/python polygot be possible? 15:37:13 AnMaster: No. 15:37:16 Well, possibly. 15:37:19 But most likely not. 15:37:26 without considering the #! line I mean 15:37:38 oh well 15:54:24 -!- Sgeo has joined. 16:04:13 fizzie and Deewiant are you there? 16:20:38 -!- Slereah_ has joined. 16:22:21 ehird, there? 16:22:27 yes. 16:22:35 remember that MKRY fingerprint you made? 16:22:43 or was it MKRL 16:22:44 anyway 16:22:47 it was too well defined 16:22:53 so it doesn't work as a parody ;P 16:23:10 * oklopol didn't get it 16:23:13 how was it too well defined 16:23:25 http://tusho.net/mkry/ is as vague as you can get 16:24:04 ehird, it is actually implementable from that spec 16:24:20 I can't see how to make it more vague, but really it is easy to implement from that 16:24:20 mmmmm... not really 16:24:29 AnMaster: only because i clarified it to you 16:24:32 in here 16:24:44 ehird, no I can easily see how it would work from that spec 16:24:53 AnMaster: how do you know E doesn't push like 'eeeee' or 'hhhhhh' 16:24:58 nothing to say that it's random per character 16:25:14 ehird, well apart from that it is clear 16:25:23 its tiny, "that" is a big part 16:25:24 :-) 16:47:59 ehird, is "implementors" the right word for "a person making an implementation of something"? 16:48:21 Implementor, yes. 16:48:28 and in plural? 16:48:36 just aspell doesn't like it 16:48:45 nor implementor 16:48:55 shrug 16:48:55 :P 16:49:01 hm en.wikipedia.org/wiki/Implementer 16:49:23 Oh. 16:49:27 kay then... 16:49:29 that is what a google gives 16:49:33 hm 16:49:41 AnMaster: i'd just say "implementors" 16:50:09 both are acceptable, according to dictonary.com 16:51:16 i wouldn't trust dictonary.com on this matter 16:51:37 i would 16:52:32 oklopol, why not? 16:52:34 ehird, why? 16:52:37 http://www.dictonary.com/ well, glasses are a sign of intelligence, i guess 16:52:56 ah, you're picking on a typo 16:52:57 ha ha ha. 16:52:58 oklopol, yes of course I always knew that. Thanks 16:53:07 asztal dictionary.com 16:53:10 ^ meant 16:53:15 i know 16:53:28 oklopol, also do you have glasses? 16:53:49 it's just dictonary could be a dyslexic dictionary, o and e could easily have swapped there 16:54:03 it was a *relevant* joke based on the typo 16:54:10 hehe 16:54:12 oklopol, yep 16:54:17 but still 16:54:23 do you have glasses? 16:54:38 umm no, glasses and allergies are for lesser people 16:54:48 you know, i'm a pol 16:54:49 err 16:54:50 i mean 16:54:53 -!- oklopol has changed nick to oklogod. 16:55:15 my eyes are both perfect and reaaaally sucky 16:55:39 occasionally, they simply lose the ability to ...sharpen? whazzz the term now 16:55:56 but, usually i see like a bear with large glasses 16:55:59 really well that is 16:56:39 why do you ask? 17:00:13 oklogod, as you didn 17:00:21 well 17:00:23 basically 17:00:41 you wouldn't actually consider glasses a sign of intelligence then? 17:00:46 Since you don't wear them yourself 17:00:47 ;P 17:00:50 i wouldn't? 17:01:13 oklogod, obviously you only would if you needed them yourself 17:01:30 uhhuh? 17:01:36 are you confusing implication and equivalence? 17:01:54 oklogod, aren't you? 17:02:04 also I suggest you clarify that. 17:02:15 However there is no connection I think. 17:02:29 why would i only consider glasses a sign of intelligence if i had ones myself? 17:02:33 and I *do* wear glasses 17:02:42 oklogod, isn't that pretty clear? 17:02:54 nope 17:03:16 as a god you would be omniscient (or whatever it is called, omnipotent?) so I wouldn't need explaining 17:03:50 umm, so they can't be a sign of intelligence, because if they were, i couldn't be intelligent without them? 17:04:11 oklogod, No... now you are just confusing the issue even more 17:04:20 glasses => intelligence doesn't rule out !glasses ^ intelligence 17:04:42 (not glasses) bitwise_xor intelligence 17:04:44 huh? 17:04:51 oh sorry, ^ as in and 17:04:54 & 17:05:08 (logical_not glasses) bitwise_and intelligence 17:05:11 still not very clear 17:05:41 it's not? "not to have glasses and still be intelligent" 17:05:52 AnMaster is wrong 17:05:55 oklogod is right 17:06:01 oklogod, I suggest they are two uncorrelated variables. 17:06:19 oklogod is saying: 17:06:23 AnMaster: i suggest you learn the difference between implication and equivalence 17:06:36 (glasses => intelligence) & !(!glasses => !intelligence) 17:06:37 and also i suggest you learn to ski and buy a boat 17:06:40 and i agree with oklogod 17:06:45 he needs to learn thus 17:06:58 ehird, well what you just said was pretty clear 17:07:23 glasses implies intelligence, but lack of them doesn't implies lack intelligence 17:07:31 well, to be more precise, !((glasses => intelligence) => !(!glasses => !intelligence)) 17:07:33 just his use of bitwise operations in that were confusing 17:07:43 oklogod, also clear 17:07:44 ... 17:07:47 he never used bitwise operators 17:07:53 some things are less clear than others 17:07:55 ehird, yes ^ is bitwise xor 17:07:58 just because all you can fucking think in is C does not mean ^ = xor and & = bitwise and 17:08:03 ^ is AND in logic 17:08:17 ehird, well he didn't state what language he used 17:08:29 AnMaster: so make a reasonable fucking assumption and see it's logic from the context 17:08:31 i apologized for ^, that could've meant xor, because had i had xors, i would probably have used ^ for them. 17:08:38 glasses => intelligence doesn't rule out !glasses ^ intelligence 17:08:39 well 17:08:39 => 17:08:47 doesn't make sense as equal to or greater than in that context 17:08:51 nor does a bitwise operator 17:08:59 you can pretty damn reasonably conclude it's using the language of logic 17:09:15 ehird, this is #esoteric, stuff doesn't always make sense 17:09:29 -!- oklogod has changed nick to oklopol. 17:09:33 that's always your excuse for being unreasonable 17:09:41 #esoteric isn't about being intentionally annoying 17:09:53 i should be more careful, i'm beginning to show classic signs of narcism 17:10:05 oklopol: but you are god. 17:10:11 the god ofo ko. 17:10:27 ofo oko otototo 17:10:52 *of oko 17:11:46 heh, seems the universe likes boosting my ego, ex is asking for sex :D 17:12:57 oklopol, should have decided not to become ex then maybe? 17:14:53 why? 17:14:59 oh well 17:15:40 thought so. 17:26:02 i want to code :| 17:26:16 Does pthreads allow any form of message passing? 17:26:21 why is there no time for codes anymore 17:26:23 As in not shared memory. 17:30:46 -!- ab5tract has joined. 17:35:38 -!- Corun has joined. 17:45:29 I think there's just mutexes, condition variables and the shared memory; but you can easily build message queues out of those. 17:50:51 -!- slereah has joined. 17:50:52 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 17:57:46 -!- slereah has quit (Read error: 113 (No route to host)). 17:58:53 -!- Slereah_ has joined. 18:06:40 Remind me sometime to write the 'u' program. 18:06:50 (Lets you use URIs with regular utilities, like:) 18:07:05 $ u cp http://google.com/ googles-index-page.html 18:07:19 $ u echo "hi" > http://google.com/ # uses PUT or whatever 18:07:22 hmm 18:07:25 that last one would be hard 18:07:31 guess i'd need to modify zsh 18:07:32 humbug 18:08:29 -!- Slereah_ has quit (Read error: 113 (No route to host)). 18:08:46 You could use some sort of indication in the "file" name to indicate what you want to do with the file (like "cp data PUT:http://google.com") but it's not nearly as pretty then. 18:08:57 Well yeah... 18:09:01 -!- Sgeo has quit ("Ex-Chat"). 18:09:09 But then I could just write a funky FS-like thing called /u/ 18:09:21 cat /u/http:/google.com 18:12:38 Fuse seems to have a 'httpfs' but it's sadly just "mount a single http:// URL somewhere". 18:12:59 And of course smbsh does that "hook to open and friends" trickery to provide their /smb magic-directory. 18:15:28 -!- Corun_ has joined. 18:16:01 fizzie: /u/ is a bit of an ugly solution, though. 18:16:17 really, all tools should just accept URIs as well as files :P 18:16:26 Just treat filepaths as file:// 18:19:48 -!- Jiminy_Cricket has joined. 18:29:45 -!- Corun has quit (Read error: 110 (Connection timed out)). 18:44:01 -!- kar8nga has joined. 18:45:17 -!- Slereah_ has joined. 18:45:20 -!- olsner has joined. 18:46:52 fizzie, still there? 18:48:15 guess i'd need to modify zsh 18:48:15 humbug 18:48:16 um 18:48:19 you use zsh? 18:48:22 yes? 18:48:37 and? 18:48:39 would you prefer emacs or vi if those where the only existing editors? 18:48:47 ed 18:48:51 or emacs vs. vim 18:48:51 rather 18:48:56 Still here. 18:49:02 ehird, as I said "if those were the only existing editors" 18:49:21 fizzie, http://rafb.net/p/h4khwC72.html 18:49:32 AnMaster: well, those are written in C, so I guess there's a c compiler too... i'd write my own 18:49:35 fizzie, comments on this last version? Any fingerprints need to be listed as well? 18:50:06 -!- kar8nga has left (?). 18:50:07 ehird, really? But what if the system lacked a C compiler, maybe it was a binary distro with no toolchain installed, nor any internet connection 18:50:18 AnMaster: I'd throw the computer out of the window. 18:50:24 :-P 18:50:32 Not of any use to me/ 18:50:34 ehird: If you really prefer ed, I'd recommend you to choose vim out of those two, since it has an 'ex' mode, and 'ex' is somewhat like 'ed'. 18:50:42 ehird, ok then, which editor is best of emacs and vim if you have to choose? 18:50:43 fizzie: No, I don't really 18:50:52 AnMaster: depends on the usecase. 18:51:05 ehird, text editor, programming and so on 18:51:10 i use vi no matter what editor i use, for quickly tweaking config files 18:51:19 and when i'm at the console and similar 18:51:28 other than that, for actual coding, i'd go for emacs 18:51:33 interesting 18:51:34 vi is a sysadmins tool, emacs is a coders tool 18:51:47 and that sentence needs some apostrophes 18:51:48 ehird, sh would you go for bash for quick tasks and zsh for more complex ones? 18:51:50 so* 18:51:53 not sh 18:51:53 AnMaster: no 18:51:55 though... 18:51:57 because zsh scales 18:52:03 from trivial stuff to complex stuff 18:52:12 ehird, well zsh is rather large 18:52:17 I'd even call it bloated sometimes 18:52:20 I don't notice the largeness. 18:52:23 for some tasks 18:52:24 I do when using, e.g. emacs. 18:52:37 ehird, it got a built in ftp client even... 18:52:43 zsh that is 18:52:57 No, it's got a builtin * client. 18:52:59 Where * = everything. 18:53:02 built in as a loadable module 18:53:02 Except it's modular. 18:53:07 yes 18:53:08 zshzftpsys Zsh built-in FTP client 18:53:15 from man zsh 18:53:17 AnMaster: I can autocomplete remote paths with scp. 18:53:24 ehird, so can I under bash 18:53:25 Of course it has tons of features, but they're modular. 18:53:27 your point? 18:53:36 AnMaster: I'm just saying that of course it has a ton of stuff like that. 18:53:38 That's what zsh is about. 18:53:47 But it's not like they're cluttering up the codebase, they're modular. 18:53:52 And they don't interfere with anything else. 18:53:54 What is the problem? 18:54:19 ehird, and so does bash, bash-completion is a flexible and fairly simple framework, that allow bash functions that generate possible completions for specific commands 18:54:28 Yes. That's completion. 18:54:43 and you can do everything you can do in zsh in bash 18:54:50 both are in theory tc 18:54:53 afaik 18:55:04 The day you show me a bash installation that can do everything zsh does without resorting to the absurd TC argument is the day I don't switch because zsh has done it all for years already and bash doesn't offer any further advantages. 18:55:05 or rather BSMs in reality 18:55:35 ehird, well tc argument is used a lot in this channel 18:55:37 by everyone 18:55:45 mmnope 18:55:53 ehird, mostly for esolangs 18:55:54 just you use it in a non-joke discussion 18:55:59 that is not the TC argument 18:56:10 the tc argument is "well, that's irrelevant, they are both TC, therefore they are equally as good" 18:56:11 = bullshit 18:56:30 ehird, where did I say that exact quote? 18:56:42 You didn't. 18:56:58 ehird, I never claimed it was as easy to do it in both those languages 18:56:58 Humans do this thing called "interpretation" whereby we change english text into semantic graphs in our head. 18:57:32 ehird, idea how to solve: Talk in semantic graphs, somewhat like scheme is written in a parsing tree more or less 18:58:16 it should be a fairly interesting constructed language, if it hasn't already been done 18:58:39 AnMaster: If you feel like it, I'd add something like the pthreads condition variables. I'm sure you can build those already with the tools you have, but it's nontrivial. (The constructions I can immediately think of need to atomically unlock one mutex and try to lock another one.) Can't think of any other-fingerprint issues right now. 18:58:55 how does those variables work fizzie? 19:00:05 fizzie, since erlang mostly use message passing, only global variable is funge-space really 19:00:30 fizzie, but couldn't P be used to sync set a variable to act as a conditional? 19:00:43 in combination with C possibly 19:01:07 Yes, but you can't atomically unlock a mutex and then wait on it. Probably solvable by busy-loop-polling instead of waiting, but that's just nasty. 19:01:52 fizzie, well can you tell me how those condition variables really work then? I can't find any man page for them here, plenty for mutexes and semaphores, but nothing for such variables 19:02:06 Condition variables just give you an object you can wait on, and other threads can then "signal/broadcast" on that object so that the waiting thread (or threads) is started. 19:02:26 fizzie, and what are the relevant pthread functions for that? 19:02:56 pthread_cond_wait/timedwait for waiting, signal/broadcast for releasing waiting threads (signal == one, broadcast == all), and of course the usual _init for creating one. 19:03:23 The sleep/resume functions seem to have gone? 19:04:02 If you made sleep release all held locks, and to automatically reacquire them when the thread is resumed, you'd basically have given a single condition variable per thread. 19:07:54 fizzie, well sleep/resume could be added, but I was unsure if it was needed 19:08:42 fizzie, also just sleep, with optional release, and allow another thread to resume it, would be easy 19:08:54 harder to reacquire all locks 19:09:02 easy to cause dead-lock 19:09:29 It's always easy to cause deadlocks with explicit synchronization code, that's pretty much a given. 19:09:40 true 19:10:42 Some form of waiting (other than simply waiting for a locked mutex to become true -- for one thing, that sort of wait can only be ended by the thread owning the lock, and there's no atomic "release this controlling mutex before waiting" thing) could be helpful, anyway. 19:11:10 hm yeah 19:11:15 fizzie, maybe also wait with timeout? 19:11:29 Maybe. 19:11:44 that would be trivial in erlang 19:11:45 Of course just aping the pthreads API is not inherently very esoteric. OTOH, I'd at least almost know how to use it. :p 19:11:49 not sure about pthreads 19:12:05 fizzie, does pthreads mutexes have timeout? 19:12:33 seems they don't? 19:12:41 oh timedlock 19:12:42 duh 19:12:45 :-) 19:12:48 Also cond_timedwait. 19:13:02 damn :P 19:13:56 fizzie, anyway using G P and C should allow building almost any form of syncing I think? 19:14:06 compare-and-exchange is quite powerful I read somewhere 19:14:37 Powerful, yes, but a lot of the constructions involve busy-waiting for something to happen in the shared memory. 19:14:47 (it was some scientific article comparing what sort of lockless atomic operations could be used to simulate other lockless atomic operations) 19:14:55 (and compare and exchange was the most powerful iirc) 19:15:07 fizzie, I could provide inc/dec easily too 19:15:12 on a funge-space cell 19:15:30 that would return the new value due to erlang's api 19:15:33 not the old one 19:15:43 of course old one would be easy too 19:15:49 It's still nice to have something that can be used to tell the scheduler "hey, don't bother waking me up until ". 19:16:12 fizzie, yes I agree, but it should be original, not just ape pthreads 19:16:15 got any good idea? 19:16:18 -!- Corun_ has quit (Remote closed the connection). 19:16:33 -!- Corun has joined. 19:16:37 fizzie, erlang got waiting for message of course 19:16:57 so maybe allow waiting for another thread to send a specific global number? 19:17:45 You could add built-in message queues (with a "wait for a message" thing) that can deliver one funge cell to the named (ID) thread. 19:17:47 fizzie, like W (n) - block until another thread signals the number n is received 19:18:00 and I for sigNal 19:18:28 Well, that's maybe stranger, so just use that. 19:19:43 err 19:19:46 sIgnal 19:19:49 of course 19:19:55 Although I'm not sure if it would be nice to have something that can really do that atomic "unlock this mutex before waiting, reacquire it afterwards" operation. 19:20:09 fizzie, well reaquire could just block. 19:20:20 That's what it usually does. 19:20:23 maybe 19:20:34 wait with Unlock 19:20:37 ? 19:20:55 like the one given above 19:21:02 but that allows locking/unlocking 19:21:20 I can see myself using it. :p 19:21:40 fizzie, I think possibly mutexes should be renamed too 19:21:50 got any good idea for a name? 19:22:14 You can use the "lock" terminology if you like. Or something original and punny inspired from that sort of thing. 19:22:25 fizzie, bolt? 19:22:39 'hasp' 19:22:41 from bolting the door 19:22:44 ab5tract, good idea 19:22:54 :) 19:22:55 LOCK for locking a mutex, PICK for releasing it. :p 19:23:03 fizzie, well hm 19:23:14 thats pretty good too :) 19:23:14 fizzie, what about sync put then? 19:23:32 it already uses P 19:23:33 :/ 19:23:48 and set is used for spawn 19:23:54 t for try lock 19:23:56 err 19:23:57 T 19:23:58 Okay, I'd probably keep the G/P pair for operations that are like g/p; it's what FILE and STRN and probably others do. 19:24:07 fizzie, indeed 19:24:21 so calling it hasp would work 19:25:37 "Nail" for locking a mutex, "Crowbar" for releasing it. Except that you already use C for CMPXCHG. And maybe it's a bit too "sounds like illegal activities". :p 19:25:50 fizzie, heh 19:26:07 fizzie, they shouldn't be called mutexes I think 19:26:20 If you end up picking some unstandard nomenclature, by all means completely avoid the word mutex in the spec. 19:26:27 but nail with the operations hammer and crowbar would work 19:26:32 for hasp it would be? 19:27:04 but C is already used too really :/ 19:27:37 oh btw: 19:27:37 Note that an implementation _may_ make g, p and other such instructions 19:27:38 synchronous as well, but it is not guaranteed. Block access should never be 19:27:38 synchronous. 19:27:43 Although nail/hammer/crowbar has pretty strange real-world implications. "This instruction hammers in a nail; only the same thread can then use crowbar for releasing it. If some other thread wants to hammer the nail in, it must wait for the original thread to crowbar it out." 19:27:48 that thing indicates that I would do so to begin with 19:28:04 fizzie, ok that doesn't work 19:28:09 what do you do with a hasp? 19:28:16 lift to open it? 19:28:18 or? 19:28:23 and for locking it? 19:28:45 You can try thinking of something lock-unrelated that's simply mutually exclusive in the real world. 19:29:06 fizzie, also that above works easily too, since there is only one hammer and one crowbar, per nail 19:29:21 and regulations forbid using the hammer or crowbar from the wrong nail 19:29:44 * AnMaster considers that 19:30:27 Maybe you could use "a person" as a mutex, then "Kidnap" would be the operation to acquire that particular person, and then "Ransom" would be needed to get the person available again. :p 19:31:01 I need to awayize now for a while (an hour or so), have fun inventing names. 19:31:36 well going to eat soon 19:31:43 What's your mutex-creation operation anyway? I don't think I saw one in the draft. 19:31:51 also ransom would be a different one 19:31:55 fizzie, there is no need to create it? 19:32:06 it is just locking on an arbitrary erlang term 19:32:11 Okay, so you can just use any ID you want? M'k. 19:32:20 fizzie, in this case any number 19:32:25 Maybe cleaner that way. 19:32:27 in valid range for the implementation 19:32:31 Idea: 19:32:32 fizzie, which is BIGNUM for efunge 19:32:34 Plaintext fingerprint. 19:32:35 brb 19:32:47 All letters apart from X push a special value for themselves on the stack. 19:32:49 X executes it. 19:32:52 HELLOX might print hello world 19:34:13 HULOXXX 19:36:00 -!- atrapado has joined. 19:40:43 ehird, hehe 19:41:03 ehird, you need to properly define it though 19:41:06 Maybe. 19:41:18 ehird, or no one could implement it 19:41:28 that doesn't imply that I will implement it even if you define it 19:41:30 (http://www.aaronsw.com/2002/feedfinder/feedfinder.py Face the horror of the multi-step magical feed finder that takes up to 5 seconds to find most feeds because the web is horribly broken and nobody complies to anything!) 19:41:44 ehird, btw have you showed MKRY to Mike Riley? 19:41:48 no 19:41:58 he'll go wtf, or ehehehhehhehehhehe, i imagine 19:42:13 -!- oerjan has joined. 19:42:17 ehird, yeah it might be worse than me agreeing with you 19:42:26 indeed 19:42:30 he'll probably implement it 19:42:30 :P 19:42:34 not to the spec, ofc 19:42:39 hah 19:43:05 ehird, also did you look at this ATHR I'm working on? 19:43:13 nope 19:43:14 well 19:43:15 yes 19:43:15 a bit 19:43:15 the spec is about the opposite of that 19:43:26 >_< feedfinder.py can't find wikipedia's rss feed 19:43:31 despite being the most comprehensive code i've found 19:43:32 ehird, it even have "consideration of impacts on other fingerprints" and such 19:43:53 since it is about 2/3 as feral as MVRS, and TRDS 19:43:56 or even more 19:44:04 not as feral as TRDS though 19:44:26 ehird, current local copy is 280 lines 19:44:52 the actual instructions spec cover just about 60 of those 19:44:59 or a bit more 19:45:22 77 actually, 19:45:27 miscalculated 19:46:05 fizzie, the wait with atomic unlock/lock would be hard since it wouldn't actually be atomic on lower level :/ 19:46:18 fizzie, unable to do that without holding another lock! 19:46:58 * oerjan read that as wait with atomic clock 19:47:16 oerjan, atomic *lock* 19:47:24 and those are not wildcards 19:47:29 *whoosh* 19:47:36 those are not wildcards either 19:47:47 oerjan, or, as it may turn out, atomic hasp 19:47:47 :P 19:48:10 since words such as "mutex" and "lock" are too common 19:48:15 I need something original 19:48:30 so I think hasp will be best 19:49:24 i can read that as wasp if you want 19:49:32 oerjan, no thanks 19:51:08 oerjan, anyway if you are interested here is the current spec: http://rafb.net/p/ivz6AN26.html 19:51:54 oerjan, it is still under development 19:52:13 ehird, do you agree it is about as far from Riley's specs as it is possible to get? 19:52:23 not erally 19:52:31 ehird, oh? 19:52:40 ehird, what is unclear in it? 19:52:42 Waits are so rare that I'm not sure you'd get any performance problems even if you serialized that somehow. It doesn't even need to be a very global locking-thing probably. I don't know anything about Erlang concurrency (except that it's mostly passing messages around) so I won't comment about implementation-level things, though. 19:53:12 AnMaster: nothing 19:53:17 fizzie, well the module that allows creating locks is called "global" 19:53:51 -!- Sgeo has joined. 19:53:57 Yeeees, but I guess not everyone needs to actually care about the lock? I mean "global" here in the sense of "blocking everyone who wants to initiate a wait operation and/or signal someone". 19:54:15 fizzie, also the lock would need to be held when unlocking and then suspending, after which you can't unlock it any more since you are suspended 19:54:50 logically 20:01:37 Depends on how the suspend/resume works, I guess. You'd need to keep that lock held until it's clear that the thread can manage to get suspended without any other thread having a chance of acquiring that hasp that was flubbrigated (ATHR-"mutex" "released") and resuming that thread before it actually managed to suspend. 20:02:16 "You'd need to keep that lock held until it's clear that the thread can manage to get suspended without any other thread having a chance of acquiring that hasp that was flubbrigated" <-- never clear 20:02:35 fizzie, erlang use a round robin scheduling that may change to another thread at any one time 20:02:40 and consider SMP too... 20:03:02 fizzie, anyway I could easily wait for the message anyway 20:03:07 Yes, but it's not like your Funge-interpreting thread would actually have to start interpreting things immediately after resuming. 20:03:09 that is, get it directly 20:03:37 the receive statement would just return right away 20:03:59 fizzie, so I guess it if doesn't have to be actually atomic 20:04:01 then fine 20:04:17 fizzie, and what if it is woken up, just to end up waiting on a lock that is already held again? 20:04:56 fizzie, also, suspending and waiting for a lock to become free is basically what L does 20:04:56 Yes, if you have "wait for messages" that won't actually lose messages (so it's not condition-variable-like waiting) I guess you don't need the controlling mutex there. 20:05:35 fizzie, indeed, messages don't get lost, however the thread will probably have to clean out it's mail box at some point 20:05:44 That's probably not a problem. 20:05:52 fizzie, in the main loop? 20:06:04 fizzie, erlang mailboxes may have some size limit, not sure 20:06:11 that is what the message queues are called 20:06:13 in erlang 20:06:29 Well, it's not hard for the Funge programmer to organize his/her threads so that it won't end up filling those. 20:06:49 fizzie, the issue is that the signal would be broadcast to all threads 20:07:04 Haha, wow. I sent an email to Aaron Swartz telling him his feed finder thing was broken an hour or so ago, and I get a response right now telling me why (their robots.txt forbids accessing it) and linking to a bug he just filed for it. 20:07:15 That's some quick response time. 20:07:39 fizzie, if I can't do that then it may actually end up loosing messages as you suggested 20:07:45 AnMaster: lose 20:07:49 losing* 20:07:59 wait I know 20:08:05 lo{1,2}sing 20:08:09 that is what I will use ;P 20:08:15 Oh, right. Well, it's still possible to organize threads so that they check all messages, although it might get to be complicated unless you happen to have a non-blocking "get my mail" thing. 20:08:35 fizzie, yes maybe directed signal or something 20:08:41 but that would need IDs for threads 20:08:48 and so on 20:09:09 * AnMaster considers 20:09:25 Huh, it wasn't an hour ago. 20:09:33 It was *10 minutes ago*. 20:09:35 The mind boggles. 20:10:05 ehird, he might have been checking his email once a day and happened to check it just after you mailed 20:10:06 or such 20:10:18 True, but that would be some coincidence. :-P 20:10:18 it can be a coincidence 20:10:34 AnMaster: He could just have a push-updates email client, you know. I do. 20:10:40 ehird, well you don't have enough data points to prove it wasn't due to that 20:10:59 Still, it's odd sending an email, promptly forgetting about it, then 10 minutes noticing you have new email and seeing there's a reply already. 20:11:04 ehird, well, even so I don't always actually check the client 20:11:10 In any case, I think the controlling mutex used for pthread condition variables (that is atomically unlocked by pthread_cond_wait and then reacquired when woken up) is there pretty much because of that otherwise complicated race condition where you check whether you need to wait something, start the wait, and then it just happens that the thing-you-were-waiting-for finished and the signal was sent (and lost) before the waiting thread managed to get suspended. 20:11:19 So if your signals don't get lost, that problem isn't there. 20:12:06 fizzie, the problem is that unless you use W in a thread existing signals will just queue up and waste memory 20:12:33 how much wasted memory are you prepared to accept in a program that might run without a reboot for a decade? 20:12:47 (that is a common erlang question, like "how many runaway threads...") 20:13:00 (since erlang is often used for extremely long running applications like that) 20:13:01 Bah. Why isn't there a Python library to canonicalize URLs? 20:13:12 I don't really care if it can be avoided by actually using W from time to time. 20:13:14 AnMaster: A befunge program will not run without a reboot for a decade. 20:13:20 cannonicalize URLs would be funnier 20:13:20 :D 20:13:26 heh. 20:13:37 ehird, sure? code upgrades are easy, self modifying 20:13:37 * ehird writes his own 20:13:43 fizzie, maybe a F to flush? 20:13:52 I'll call it canonurl, because I am boring. 20:13:55 ehird, for 1 or 2 n- cases? 20:14:07 s/-// 20:14:07 AnMaster: Can o' N 20:14:08 canonize URLs would also be good 20:14:09 URL 20:14:15 cannon! 20:14:20 that is much more fun 20:14:36 lethal urls 20:15:23 AnMaster: You can "flush" it by doing something like 8y:IW pretty easily, although it's a bit wasteful. 20:15:48 ("8y" just to get a thread-unique number, and maybe you'd need something to avoid conflicts with "real" wait numbers, but anyway...) 20:15:59 yeah 20:16:21 fizzie, except that signal would go to every process 20:16:37 fungot: signal / noise 20:16:38 ab5tract: let's see your code. and larceny's twobit compiler has an excuse to quit my job, and release my system too. 20:16:48 fizzie, "Any other queued signals before the matching one are discarded by W." 20:16:59 fizzie, that makes it slightly more complex ;P 20:17:06 Yes, that's what I was almost expecting. 20:17:15 ehird: Fungot's been running without a reboot for almost a week now. That's pretty close to a decade! 20:17:21 fizzie, so maybe a true F to flush anyway 20:17:24 fizzie: *nod* 20:17:39 Okay, maybe it's only four days. It's closer to 1 week than 0 weeks, anyway! 20:17:51 (And it would be longer unless it had the habit of crashing all the time.) 20:17:55 AnMaster: have you named your mutex stuff yet? 20:18:04 Okay, now I really must go away. 20:18:16 ab5tract, no, hasp is a good idea, but what would the operations lock/release/try-lock be called for it? 20:18:33 open/close/inspect 20:18:59 unless you are using those for io already... 20:19:10 C is used 20:19:15 latch/unlatch/inspect ? 20:19:38 L would work so would U, the current I make as much sense as N anyway so that would work fine 20:19:38 sorta a stretchy metapohor at that point i guess 20:20:07 what is the overall theme of the language? 20:20:18 ab5tract, befunge-98, this is a fingerprint for it 20:20:23 ahhhh 20:20:32 awesome 20:20:46 ab5tract, and I think Befunge-98 today is a general-purpose esolang 20:20:47 i'm all about the funge 20:20:56 considering all the fingerprints for it 20:21:05 for everything from sockets to files 20:21:07 i thought maybe you were creating a new language 20:21:27 yeah, my .sig is in befunge-93 20:21:52 i haven't learned the -98 but i have the specification 20:21:59 ab5tract, ah no, I just think t in befunge isn't very useful. Befunge needs a way to take advantage of the multi-core cpus today to be a viable language in the future enterprise world! 20:22:03 or something 20:22:21 definitely 20:22:22 since t is synced so each instruction takes one tick 20:22:52 so you are replacing it with a mutex? 20:23:00 ab5tract, with async threads 20:23:02 to be exact 20:23:06 awesome 20:23:12 asynch asynch asynch 20:23:16 ab5tract, and it will be implemented in erlang 20:23:21 thats what i chant at political rallies 20:23:25 a message-passing concurrent erlang 20:23:29 asynch? 20:23:40 ab5tract, and I didn't get that joke 20:23:44 i like the trailing h, so sue me 20:23:57 ab5tract, my spec use the full word 20:23:59 http://rafb.net/p/OINz1N69.html 20:24:07 is the current draft 20:24:55 So... Do you guys think it's reasonable to assume people don't serve different content on http://foo.com/ to http://www.foo.com/? 20:24:56 :| 20:25:13 ehird, yes, but the www one shouldn't resolve 20:25:17 i like the idea of funge with erlang 20:25:27 AnMaster: Yes, it should, but it should redirect to the former. 20:25:28 ehird, also the non-www seem to redirect to the www one 20:25:31 which is horrible 20:25:32 However, I'm not asking for your idealism. 20:25:54 ehird, well yeah I usually redirect www to non-www, so that would put be in B class of no-www iirc? 20:25:54 I'm asking people who actually have a grasp on reality and pragmatism whether they think there are any examples of foo.com differing from www.foo.com. 20:26:14 grasp on reality and pragmatism? 20:26:15 ehird, I know one 20:26:18 it's my time to shine! 20:26:19 the local municpality 20:26:21 err spelling 20:26:24 AnMaster: link? 20:26:28 oklopol: yep... 20:26:30 www.foo.com and foo.com should actually just redirect to each other 20:26:36 ehird, http://www.kumla.se/ 20:26:40 the non-www returns an error 20:26:43 oto.foo.com is where the actual content should be 20:26:54 except all the letters f, j and k should be in oko.foo.com 20:26:55 ehird, 403 Forbidden to be exact 20:26:57 AnMaster: Ah. 20:27:00 except for one, that's simply removed. 20:27:04 glad i could help 20:27:05 ehird, which is pretty wtfish :P 20:27:39 is this excluding the cases where www. doesn't even exist? 20:27:53 Asztal, I think so 20:28:02 I seen a few sites like that 20:28:23 no-www.org says 38,000 domains 20:28:31 no-www doesn't load here 20:28:36 just a white page 20:28:37 wtf 20:28:42 nor here, I checked google's cache :) 20:29:30 extra-www loads though 20:29:36 iirc someone from this channel made it 20:29:42 GregorR maybe? Not sure 20:30:53 ehird: I can't recall any case where both exist but have different content 20:31:34 reminds me of news.com.com 20:31:37 ehird, you don't count the example I gave? 20:32:11 AnMaster: it's common for one or the other to give an error 20:32:28 Deewiant, 403 forbidden too? 20:32:52 AnMaster: many sites give 403 when they mean 404 20:33:02 for security reasons, I suspect 20:33:03 Deewiant, that makes no sense 20:33:16 Deewiant, wouldn't it be more secure to give 404 for all instead? 20:33:39 hmm, good point 20:33:47 anyway, I don't know why 20:33:54 but for instance http://users.tkk.fi/mniemenm/foo is a 403 20:34:05 Deewiant, and it is a 404 really? 20:34:17 and I can assure you my public_html directory doesn't contain a file called foo which you're not allowed to read :-P 20:34:23 Deewiant, maybe it is 403 as in "directory listing forbidden"? 20:34:45 AnMaster: why would that make sense 20:34:45 ah no 20:34:59 Deewiant, it would only make sense for a directory indeed 20:42:42 -!- bsmntbombdood has quit (Read error: 113 (No route to host)). 20:43:18 -!- bsmntbombdood has joined. 20:46:15 There are many sites where the non-www. one is broken. 20:46:57 I think I ran across one today too. 20:46:59 fizzie, my sites always redirect www one to non-www 20:47:32 first redirect in lighttpd.conf 20:47:46 globally, for all vhosts 20:48:37 fizzie, http://rafb.net/p/ZtV0Tn90.html 20:48:41 that is the current version 20:48:55 ah wait 20:49:00 should say no parameters for F 20:49:35 -!- sebbu2 has joined. 20:49:55 Actually both the www and non-www ones for the site I ran across now say "We are making big updates on the server Web services will be up and running later today." -- maybe they'll get that fixed too. 20:51:42 gee, your draft warning was nice 20:51:42 here I was 20:51:45 IMPLEMENTING it 20:51:51 but its only a draft?! 20:51:52 omgwtfbbq! 20:52:42 * oerjan brings sausages 20:53:00 ehird, hah hah 20:53:49 ehird, also writing specs for funge have taught me one thing: Better try to state things you think everyone would understand 20:53:53 since everyone won't 20:53:55 ever 20:54:11 so state things explicitly 20:54:17 The C instruction should indicate what happened somehow. I think usually (at least CMPXCHG) it just returns the current value that was there in the cell, so you can just use a "C-|" sequence (if you had the "value to compare to" under the params in the stack) to see whether it did the swap or not. 20:54:27 fizzie, thanks, I forgot that 20:55:06 fizzie, why -? 20:55:16 rather just using a w there 20:55:19 AnMaster: equality comparison... 20:55:19 would be better 20:55:27 w might go up or down. 20:55:28 w's are annoying because you need to handle 3 cases 20:55:36 with -| or -_ it's 2 20:56:01 Of course it could indicate by reflecting too if you're more into that; a boolean yes/no is strictly speaking enough. Although then it's not actually compare-and-*swap*. 20:56:02 Deewiant, well yeah, but | or _ checks for "equal to zero/different from zero" 20:56:21 ah wait 20:56:23 right 20:56:25 that would work 20:56:28 AnMaster: yes, so with - you get "top two are equal" 20:56:32 and yeah updated spec have it 20:57:30 Deewiant, what about C reflecting if current cell isn't equal? 20:57:47 as in C failed 20:57:53 ask fizzie, I don't even know what you're talking about :-P 20:58:04 You should call it "compare and set" then, but other than that it should be fine. 20:58:16 fizzie: Reflects if replace failed, pushing the existing (unchanged value on stack). 20:58:19 Since it's not "exchange" if you don't get the old value back. 20:58:25 fizzie, it also pushes the old value 20:58:29 if it is successful 20:59:01 http://www.www.extra-www.org/ is my site. 20:59:01 Well, you can do that too, but then most people will probably just follow it with $ since the reflection is what interests people. Usually. I guess in some cases the old value is interesting too. 20:59:21 fizzie, you should probably know it 20:59:23 and hm 20:59:30 -!- sebbu has quit (Read error: 113 (No route to host)). 20:59:31 -!- sebbu2 has changed nick to sebbu. 20:59:31 fizzie, so that is a bad idea then? 20:59:49 so no reflect? 21:00:04 I don't have a real opinion; it's just a matter of a couple of characters, anyway. As long as it indicates at least somehow whether it failed or not. 21:00:12 GregorR: That arson news site, why does it actually use it? 21:00:21 I can't think why you'd be crazy enough to, you know, actually do it. 21:00:23 Uppercased instructions seem to reflect a whole lot, though. 21:00:23 fizzie, also what sould it push if it fails then? 21:00:50 If it's called "exchange", it should probably in all cases push the value that was there, even if it did not actually set it to whatever you wanted. 21:01:06 fizzie: yes, lowercased instructions just invoke undefined behaviour ;-) 21:01:07 fizzie, hm 21:01:07 ok 21:01:33 Deewiant, true, and so does Riley's upper case ones too 21:02:21 Personally I'd probably just make it either always push the old value and not reflect (so that people will do -| after it) or simply reflect without pushing the old value (but call it compare-and-set, then, it should be just as powerful, though maybe not quite as convenient -- can't think of use cases right now). 21:02:39 fizzie, ok 21:02:48 Convenience has never been very high on funge-people's priorities, though. 21:02:49 wtf 21:02:50 lag 21:03:09 better now 21:03:38 fizzie, I go for the exchange one 21:03:56 since I think reflect is more convenient ;P 21:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Do you know, pikhq?. 21:07:33 has anyone ever made a programming language based on text formatting? Well apart from ColourForth but that doesn't really count since it is just colours, not full formatting, like text size 21:07:40 it should probably use odf format 21:08:18 Text formatting? 21:08:28 AnMaster: TeX? 21:08:42 Deewiant, no as in the formatting affected what the code meant 21:08:52 somewhat like colours do in ColorForth 21:08:58 colourforth. 21:08:59 :p 21:09:08 ehird, "Well apart from ColourForth but that doesn't really count since it is just colours, not full formatting, like text size" 21:09:13 Yes. You're wrong. :) 21:09:18 after fizzie's idea 21:09:23 "like @, only really big" 21:09:24 ColourForth can be presented in non-colour version. 21:09:35 e.g. Chuck wrote a paper about it using italics/underline/bold. 21:09:38 So you could do text size too. 21:09:42 ehird, hm ok 21:11:58 Another style thing: in the "ATHR vs. REFC" the wording, while technically speaking correct, maybe a bit needlessly complicated. The REFC reference numbers don't really matter, so it probably doesn't matter if they're given out first-come-first-served or something stranger, you could just say they're global and need to work without explicit synchronization of requests. 21:12:09 Although it could be just me nitpicking here. 21:12:37 fizzie, good idea 21:12:45 and thanks for the comments 21:14:29 fizzie, should I attribute you with your real name or your nick in "thanks to"? 21:14:57 same question goes to Deewiant 21:15:36 previously you've used my name, I guess; I typically use both 21:15:38 I'm never good in deciding that. Maybe real name, so prospective employers will know I do all kinds of sensible and profitable things with my time. 21:15:53 Deewiant, I used your name after asking you iirc 21:15:54 Already got one summer job because of my Befunge skills. 21:16:04 fizzie, what? huh? 21:16:12 what sort of summer job? 21:16:18 AnMaster: Perl-writing. :p 21:16:30 fizzie, oh well I can see the logic in that yeah 21:16:50 Okay, so I'm not entirely sure the Befunge thing had anything to do with it, but the subject came up in the interview and the people seemed at least curious about it, if not outright interested. 21:17:25 (I had "esoteric programming languages" listed as a hobby in my CV since the template had a section titled like that.) 21:18:03 (The company was Nokia; you may have heard of it.) 21:18:27 (It's that mobile phone maker everyone thinks is Japanese. :p) 21:18:33 Nokia? Huh? 21:18:35 Who are they? 21:19:36 fizzie, I know it is Finnish 21:19:38 of course 21:19:44 I got a nokia phone even 21:19:53 says 2600 21:19:54 on i 21:19:55 Huh? 21:19:55 it* 21:20:02 What's a mobile phone? 21:20:14 ah no 21:20:16 2100 21:20:29 Okay, I guess most people know that, but it's an old joke that Finland's most successful company has a faux-Japanese-sounding name.) 21:20:31 ehird, tried google? 21:20:33 to quote you 21:20:43 ah no 21:20:46 AnMaster: ... uh, what's google? 21:21:00 sorry i must look like an idiot 21:21:00 :\ 21:21:15 fizzie, Don't they make wheels too iirc? 21:21:49 fizzie, also how comes you didn't get that summer job? 21:21:52 ehird: no no, just an amnesiac 21:21:58 oh wait 21:22:03 AnMaster: Huh? I did get it. 21:22:20 fizzie, sorry, read it as "almost" 21:22:24 not "already" 21:22:59 AnMaster: that's Nokian. _entirely_ different. 21:23:30 oerjan, oh ok 21:23:41 they got very similar names 21:23:49 The tires and boots were part of the same Nokia company back then in the 1960s. 21:23:51 -!- Corun_ has joined. 21:24:02 fizzie, but they split up after? 21:24:04 also boots? 21:24:07 didn't know that 21:24:11 just the tires bit 21:24:12 Rubber boots. 21:24:16 You know, for rainy days. 21:24:27 fizzie, yeah, but I use a Swedish brand 21:24:49 Ericsso boots 21:24:58 no wait may be Danish 21:25:01 HH is what it says 21:25:05 that's Danish isn't it? 21:25:51 * oerjan swats AnMaster ----### 21:25:52 Apparently the tire-manufacturing part was split from the telecommunications part in 1988. 21:26:00 norwegian, in fact 21:26:17 Helly Hansen, is it? 21:26:22 oerjan, oh ok 21:26:23 sorry 21:26:25 http://en.wikipedia.org/wiki/Helly_Hansen 21:26:27 fizzie, yeah 21:26:44 mind you i wasn't sure myself until i googled 21:26:46 I think I have something of theirs to wear on the sailboat; good for that sort of thing. 21:26:53 hah 21:27:01 * AnMaster swats oerjan for swatting then 21:27:32 fizzie, Nokian or HH? 21:28:02 HH. And not boots; some sort of jacket. 21:28:12 I don't think Nokia has done rubber boots for ages now. 21:28:24 Although I'm not really sure. 21:28:41 I guess they still do. 21:29:03 nokianfootwear.fi/eng 21:29:04 HH does "flytväst" too 21:29:12 no idea what the name is for that in English 21:29:15 floating suite? 21:29:22 floating jacket 21:29:23 probably 21:29:25 or whatever 21:29:43 Life-vest if you mean the safety gear. 21:30:30 yes that 21:30:48 except it is less than that and more like light weight, meant for sailing 21:30:59 which is actually called a "seglarväst" 21:31:36 Ah, then it's more like fi:kelluntaliivi (floatation vest), distinct from fi:pelastusliivi (rescue vest) which is the more heavy-duty thing. 21:31:52 fizzie, exactly 21:31:56 I'm not sure how the official definitions go. 21:32:03 the "flytväst" is the heavy duty ones 21:32:14 but the thing I was thinking about was the lightweight ones 21:32:18 Ah, okay. 21:32:32 fizzie, I got one of those lightweight ones somewhere 21:32:40 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 21:32:45 -!- Slereah_ has joined. 21:33:40 The CE authorization thing defines the life-vest one to be something that turns you on your back and keeps the head above the water even if you're completely unconscious, while the lightweight one just helps you float if you're still operational and know how to swim. 21:36:31 fizzie, well I know how to swim well, during the summer I often swim 2 km every other day for exercise 21:36:36 (spelling of last word?) 21:36:57 exercise is fine. 21:37:04 k 21:37:09 The spelling, I mean. I think the practice sounds somewhat unhealthy. 21:37:22 All that fresh air. 21:37:25 Can't be good for you. 21:37:38 * oerjan seconds that 21:38:38 -!- Corun has quit (Read error: 110 (Connection timed out)). 21:38:58 well. I think it is better for me than being indoors all the time 21:39:00 really 21:39:13 had health problems from that before, so I decided to avoid that 21:41:25 fizzie, Deewiant : http://rafb.net/p/2zsIOB88.html 21:41:27 comments? 21:41:29 anyone else too? 21:41:57 -!- Corun_ has changed nick to Corun. 21:42:04 oerjan, you got comments? 21:43:25 too much draft. fresh air, remember? 21:43:38 oerjan, gah 21:44:56 fizzie, oh btw I pondered adding a section near the end called "ATHR and the effects on modern society" with the text "Not a lot." 21:45:18 I like the systematic "parameters, return value, reflection info" format, it's very fastidious. 21:45:29 * AnMaster googles fastidious 21:45:38 1. (2) fastidious -- (giving careful attention to detail; hard to please; excessively concerned with cleanliness; "a fastidious and incisive intellect"; "fastidious about personal cleanliness") 21:45:42 First sense. 21:46:01 Not "excessively concerned with cleanliness"; if you are, I don't know about it. 21:46:03 also I missed it for the two last instructions 21:46:06 * AnMaster reads 21:46:21 fizzie, also what about "incisive"? 21:46:32 * oerjan fits all three, he thinks 21:46:43 well at one time or another 21:46:47 AnMaster: That's pretty much the same thing as "keen". 21:46:54 ah 21:46:58 then that is me 21:47:01 "a fastidious and incisive intellect" 21:48:04 AnMaster: You're so humble. 21:48:22 Although it does have a secondary meaning of "suitable for cutting"; incision is, after all, a cut. 21:48:26 ehird, it was a joke 21:48:31 AnMaster: So was mine. 21:48:47 ehird, I thought it was sarcasm? 21:48:54 oh wait no ~, sorry 21:49:11 No, it was sarcasm, which was a joke. 21:49:12 also is it "signaled" or "signalled"? 21:49:19 different spelling programs want different there 21:49:21 !??????? 21:49:44 "signaled" is the US spelling, I think. 21:49:45 signalled 21:49:50 ehird, ah thanks 21:50:02 yeah I use UK spelling when possible 21:50:23 UK spelling tends to be the one with more letters. :p 21:50:35 (I'm sure there are exceptions, though.) 21:52:13 And at least center/centre has the same length. But it works for aluminum/aluminium and all kinds of .*or/.*our things. 21:52:38 ize/ise? 21:52:46 Okay, those have the same length. 21:52:48 that is .* of course in front 21:53:02 and yse/yze 21:53:06 yeah 21:53:27 also is center or centre UK? 21:53:38 Centre. 21:53:39 there are three standards: ise/yse, ize/yze, ize/yse 21:54:25 Wasn't aluminum/aluminium on that "lamest wikipedia edit wars" page? At least I remember looking at the article talk page one day and marvelling (again also US marveling) at the amount of talk about the name. 21:55:10 Seems they moved it to a separate page at http://en.wikipedia.org/wiki/Talk:Aluminium/Spelling 21:55:43 That's a 116-kilobyte page. Of course some HTML overhead, but still. 21:56:26 fizzie, you really want en-us and en-uk wikipedias 21:56:34 and maybe en-au and so on too 21:56:35 s/uk/gb/ 21:56:45 Deewiant, right 21:57:05 Deewiant, how do they differ though? 21:57:41 great britain is the island 21:57:51 Deewiant, and UK? 21:58:00 the country 21:58:03 also I probably meant UK then 21:58:18 "UK of GB and Northern Ireland" 21:58:25 Deewiant, yes exactly 21:59:17 Deewiant, fizzie: so any comments on this version: http://rafb.net/p/tUcpyC58.html 21:59:20 there are two things left: 21:59:28 rename mutexes to maybe hasps 21:59:31 or something even better 21:59:43 and the second issue: 21:59:52 clear up the [TODO: ...] comment 21:59:56 needs some thinking about 22:00:16 Deewiant, and would this be something you would ever consider implementing? 22:00:21 If not: why not? 22:00:50 Maybe. If not: because it'd require too many changes all over the place 22:01:02 concurrency in imperative languages is a bit of a pain 22:01:08 Mediawiki is complicated; I had to use http://en.wikipedia.org/w/index.php?title=Talk:Aluminium/Spelling&action=raw to fetch the raw page source (265040 bytes) because just adding ?action=raw to the end of the URL gave me a "Raw pages must be accessed through the primary script entry point." error. 22:01:21 I don't think I have any comments left, but I'll take a peek. 22:02:02 I'd rather go the async-MVRS route for concurrency as I'm still not sure whether ATHR is actually useful at all. 22:02:09 but anyhoo 22:02:12 * Deewiant <*> bed 22:02:16 Deewiant, ok 22:02:34 fizzie, as for that error, how comes they detected the ?action bit at all 22:02:41 if they did they could just have served that 22:02:53 so that makes no sense 22:02:59 Deewiant: I'd probably have used ATHR if I were writing fungot now, but I don't think I'd have gone the MVRS route. Although I guess I could have. 22:02:59 fizzie: in that sentence 22:03:10 Guys. #notes-to-ehird. In which I am going to let you make my computer say things 22:03:12 With amazing text to speech technology 22:03:14 It will be amazing. Probably 22:03:31 ehird, hm 22:03:55 I ran all my IRC though the "amazing" OS 7.5.5 text-to-speech facility once for some.. hmm, maybe dozen hours. 22:04:02 Had to turn it off after that. 22:04:22 fizzie, haha 22:04:26 Maybe it wasn't 7.5.5; really don't remember. 22:05:10 I think it was 7.5.5; isn't that the latest version Apple is giving out? At least at some point there was 7.5.3 plus the 7.5.5 update available for downloading. 22:05:14 fizzie, I think OS 8 had it at least 22:05:18 so quite possible 22:05:25 It was pre-8, though. 22:05:47 7.5 had text2speech 22:05:50 ok 22:06:00 ab5tract, any comments on http://rafb.net/p/tUcpyC58.html ? 22:06:12 concurrency in imperative languages is a bit of a pain <-- well, not my problem 22:06:26 it was there before the beveled progress bars 22:06:29 I liked the "the light that you see at the end of the tunnel is the headlights of a fast approaching train" test phrase the 'bad news' voice spoke. :p 22:06:51 Or something like that, anyway. 22:06:55 fizzie, hehe 22:07:03 AnMaster: it looks pretty good, i'm going to take a better look in a sec 22:07:06 fizzie, most of those voices were horrible 22:07:14 ab5tract, in a sec I may be asleep 22:07:28 then i'll have to comment another time :) 22:07:38 ab5tract, I do read scrollback 22:07:46 im new to the channel but im already a big fan 22:07:54 glad to see befunge gets so much love 22:08:14 anyone know how finished the befunge implementation on parrot is? 22:08:21 I did Befunge before I ran across Brainfuck; it holds a special place in my heart. 22:08:23 ab5tract, it is actually one of the more easy-to-use languages 22:08:28 for esoteric ones 22:08:29 that is 22:08:39 yeah definitely 22:08:55 plus its just such a damn cool concept 22:09:04 ab5tract, what about trefunge then? 22:09:07 or 6-funge 22:09:11 haven't tried em 22:09:17 like i said, im new 22:09:18 unefunge maybe? 22:09:28 that is one-dimensional 22:09:32 and trefunge is 3D 22:09:39 the idea of topogrphical programming is awesome 22:09:43 6-funge would be 6-dimensional 22:09:56 yeah i've heard about them but i havent tried them 22:10:09 i haven't been able to get cfunge to compile on this os x box 22:10:09 ah so is it equal to a donut or a coffee cup? 22:10:09 ;P 22:10:22 ab5tract, oh? what error? 22:10:27 I compiled cfunge on OS X some time ago. 22:10:30 linking error is fixed in current bzr 22:10:38 don't remember if it is in last release 22:10:46 ab5tract, anyway I suspect fizzie is better at helping there 22:10:47 ah 22:10:49 since I use Linux 22:10:50 it was the link error 22:10:57 ab5tract, about bad flags? 22:11:01 yup 22:11:17 i'll check that out 22:11:24 ab5tract, look for 22:11:25 #SET_TARGET_PROPERTIES(cfunge PROPERTIES 22:11:25 #LINK_FLAGS "-Wl,-O1,--as-needed,--warn-common" 22:11:25 #) 22:11:35 except there won't be # in front 22:11:41 adding # will fix it for now 22:11:47 and what current bzr head looks like 22:12:03 ab5tract, that would be in CMakeLists.txt 22:12:20 also I got it to compile myself recently when I had access to a mac for a bit 22:12:25 that was bzr version too 22:12:46 ab5tract, normally I just work on Linux and FreeBSD 22:13:08 i prefer nixen as well 22:13:16 um 22:13:20 Mac OS X is *nix 22:13:24 sad but true 22:13:29 sorry, yes i know 22:13:43 * ab5tract meant foss nixen 22:13:46 Actually my OS X laptop is not online right now and I can't be bothered to start it up to test things; but the issues were pretty simple ones. 22:13:49 give or take the f 22:14:58 nice that worked like a charm 22:15:06 off to work folks, i will ttyl 22:15:35 Oh, incidentally... does the 's' instruction also then skip the character it wrote, like ' skips the character it read? 22:15:46 fizzie, yes afaik 22:16:02 I guess it has to, since the spec says it's "mirror image of the ' instruction". 22:16:50 I just thought it'd be more useful as a "execute from stack" instruction and not a "stick a character right here" one, although obviously you can then just route the code flow through it 22:17:24 fizzie, I suggest RC/Funge EXEC then 22:17:52 iirc it executes from stack 22:18:03 I really haven't had use for execute-from-stack yet, just wondering. 22:18:05 -!- ab5tract has quit. 22:18:24 Actually I don't thing fungot does any self-modification whatsoever, which is pretty bad style in a Funge program I guess. 22:18:24 fizzie: depends on how much faster but any reasonable amount wouldn't help much 22:18:51 Of course it makes it easier to generate those messy graphs. :p 22:19:20 fizzie, is that a good thing? 22:20:19 Well, I think the graph looked nice. I still want to give it to someone asking for office supplies or something and say "here's our process for doing that". 22:20:32 It looks very enterprisey. 22:21:47 fizzie: make it compile the funge in the brackets to Java 22:21:47 or UML 22:21:53 brackets=bubbles 22:24:22 fizzie, is it possible to print it out? 22:28:38 You can print it scaled to fit on an A4 paper on a 600dpi laser printer so that you can _almost_ make out the labels; even read quite a large part of them if you squint real hard. 22:28:48 On an A3-sized paper it should be reasonably legible. 22:29:09 Maybe on A4 too with enough tweaking of Graphviz font parameters. There's quite a lot of empty space in them bubbles. 22:31:57 how is http://www.websiteoptimization.com/about/ so faaaaaast 22:34:49 -!- Corun has quit ("Leaving"). 22:37:00 -!- atrapado has quit ("Abandonando"). 22:37:47 Re MVRS, I assume the "Big-Bang" instruction won't create any IPs in it? Since it's still empty and everything. So if MVRS's G/J are not well defined when ATHR is in use, a ATHR/MVRS combination will be pretty hard to use. (Not that interpreting current G/J is much more than guesswork right now.) 22:46:24 hmm 22:46:43 someone invent a pgp-based method to roll an N-sided dice between two people over irc :3 22:47:04 i.e. you can just run it and paste the resulting string to roll 22:47:15 and the other person can verify the number you say was made properly randomly 22:47:17 or...something 22:47:18 i don't know 22:48:39 fizzie: you do it 22:48:57 you could just write a spec i guess. i can write code. but if you do not do it i will rip your eyeballs out 22:49:35 ehird is so good at motivation 22:50:01 Hmm. In principle you don't really need much for that: just require some suitable amount of input data from both participants, then compute a suitable SHA-512 hash (or some such) of the concatenation and take the result modulo N. Neither participant can then force the result to be what they want, as long as (key point) they both commit to their strings in advance before seeing the other one. 22:50:29 And you can do the commit-to-one-string by requiring both participants to publish the hash of their piece of input in advance. 22:50:47 fizzie: suitable input data = /dev/random? 22:50:49 Would that work? 22:51:21 ideally it'd be something like "pgproll 10", paste the output (which I guess would be "rolled number (magic key thing)") 22:51:21 It's probably as good as you can get. Or "openssl rand". 22:51:29 or something 22:51:30 maybe: 22:51:42 alice rolling, bob verifying: 22:51:51 well 22:51:58 fizzie: does yours support the model i'm thinking of? 22:52:09 i'm thinking of 2 people playing a dice-based game over irc 22:52:15 and person A being the dice roller 22:52:31 both need to do some part of the rolling to prevent cheating 22:52:36 but they want person B to be able to verify that the dice rolls aren't being forged 22:52:36 i think 22:52:45 Maybe not directly; there's the need for both participants to publish the input hashes first, and then their input strings. After that both participants can verify the result, which will be random. 22:52:51 oerjan: yes... that's the problem :-P 22:53:17 fizzie: how does that verify that you didn't just modify the program to pick the number you tell it to? 22:54:01 ehird: the point with both choosing part of the number is that then neither than cheat successfully without the cooperation of the other 22:54:11 oerjan: ah, right 22:54:18 Well, anyone can just compute the hash of those two concatenated inputs and check what the result of the roll is. 22:54:30 wait 22:54:32 Obviously nothing's preventing you from lying and saying "I got a natural 20". 22:54:33 you could just do that by: 22:54:41 person A says 0-6 22:54:42 er 22:54:44 0-5 22:54:45 person B says 0-5 22:54:49 add them together, there's your roll 22:54:50 :-P 22:54:55 No, then person B can decide. 22:55:01 oh, right 22:55:04 You need both A and B to commit on their number before revealing it. 22:55:17 Therefore they need to publish the hashes of their selections first. 22:55:18 but the commit has to happen simultaneously too, to avoid cheating 22:55:29 (its not hard to bruteforce 6 possibilities) 22:55:43 so you might as well just figure out a way to do that, then just apply it to the number 0-5 22:55:47 But it's hard to bruteforce what the input will be, if it's something like a kilobyte. 22:56:13 Ah, true. 22:56:24 Still...Currently this requires _five irc messages_ 22:56:26 hash 22:56:29 hash 22:56:31 number 22:56:33 number 22:56:37 (a checks both numbers, sums them) 22:56:39 result 22:56:45 that's...hideously unwieldy 22:56:48 Well, A doesn't really need to announce the number. 22:56:56 Both participants know it already after four messages. 22:57:03 (But that's still four messages.) 22:57:39 oh actually doesn't need to reveal the hash. he can do the number first 22:57:42 Yes, but the point of having one person doing a dice roll is that they do all the work :-P 22:57:53 oerjan: oh, true 22:57:54 but 22:57:56 hash 22:57:57 number 22:57:58 sum 22:57:59 is 22:58:03 1. still quite unwieldy 22:58:06 2. harder to check for b 22:58:16 (he has to subtract number from sum, then check it matches hash, etc) 22:58:27 hmm 22:58:30 this could be automated with a webservice 22:58:35 i..think 22:58:38 no wait 22:58:43 you'd need pgp in your browser 22:58:46 -!- olsner has quit ("Leaving"). 22:59:06 You could just use a trusted third party to do all the work. That's what normal people would do. :p 22:59:22 "There's a dice-rolling bot by that one unrelated guy, let's just use that." 23:00:56 I'm not sure you'll get to less than those three messages there with only the two people who don't trust each other. 23:01:46 With a bit of scripting three would not be too bad. 23:02:00 fizzie: There is no such thing as a trusted third party. 23:02:01 :-P 23:02:19 'trusted third party' is exactly the problem with security today. 23:03:12 It's a "/roll 20" command which will do I want to roll a d20, my hash is <...>; then a "/answer" command from b which will do " okay, my [1, 20] random number is "; and finally a "/foo" command for a which will do " the dice roll result was ". 23:03:31 And b's script will add a "[verified]" message after that last line if it is okay. 23:03:45 And I couldn't think of reasonable command names, sorry. :p 23:04:16 needs to include salt, doesn't it 23:04:39 fizzie: Yes, but the point is if you can modify clients its a solved problem 23:04:40 er 's last one 23:04:46 oerjan: no 23:04:54 fizzie: The challenge is making it work over basic protocols we already have. 23:05:10 Ooh. 23:05:13 i think i found a program to do it 23:05:46 Okay, you can't just hash A's number. But it's easy to hash that and a bit of randomness, and include the randomness in the last message. 23:06:02 that's what i meant 23:06:10 You don't have to, just check A's first message 23:06:29 No, I mean, A can't hash just the number: there's too few alternatives. 23:07:01 ah 23:07:01 yes 23:07:10 I thought http://www.aaronsw.com/2002/secroll.py did this, but it appears to be totally broken. 23:07:13 Let me write a program that works. 23:07:13 Sec. 23:07:18 fizzie: WE CAN TEST IT TOGETHER 23:07:19 OMG 23:07:33 No, we can't: I'm going to sleep in 5 minutes. 23:08:00 me too 23:08:04 It's not going to take me 5 minutes to write it. :-P 23:09:29 It's not going to take me 5 minutes to get to sleep, either. 23:09:55 There's a hairy man going to come here tomorrow at 08 (in 7 hours) to install a faucet, I need to be mentally prepared for it. 23:10:01 (Okay, the hairiness is still speculation.) 23:12:34 Hm. 23:12:36 I think 10 bits of randomness is reasonable 23:13:45 But that's just n*1024 numbers to hash before finding out what A's number was, for a n-sided dice. 23:13:57 Oh. True. 23:14:11 fizzie: Well, how many would you suggest? 1000? :P 23:14:50 Hm. 23:14:56 It has to be a small amount, since it will be revealed over irc. 23:18:36 The problem there is that you can just precompute all the possible hash values; so it should be sufficiently large that 256*2^n bits is too much to store. 23:19:20 fizzie: Um, 10^25 megabytes is too much to store. 23:19:30 Wait, even more than that. 23:19:41 3.86856262 * 10^25, even, sez google. 23:19:59 Yes, I mean, 1000 is more than enough. But 10 is not. 23:20:26 I just meant that it's not only the speed-to-bruteforce (after all, _that_ just needs to be a minute or so) since it can be precomputed. 23:20:45 Maybe 50 bits would suffice; that's 10 base64-encoded characters, not a long string. Or 60, two more characters doesn't make a difference. 23:21:32 I was talking about 100, btw. 23:21:42 Oh. Well, didn't bother to check. 23:22:27 50 bits of randomness already means 64k terabytes of hashes even for a two-sided "die". 23:22:32 I sleep now, anyway. 23:22:49 Bye. 23:22:55 Bye. Have fun rolling dice. 23:23:19 I shall. 23:23:19 :D 23:33:14 -!- oerjan has quit ("Good night"). 23:39:34 AnMaster: openssl question 23:39:40 ehird, ? 23:39:45 how would you use "openssl rand" to generate a random number from 0 to N? 23:39:53 I'm not great expert but I'll try 23:39:56 the minimum you can get is one byte, i.e. 0-255 23:40:05 and just moduloing that or something seems...stupid 23:40:32 it seems indeed to generate random bytes 23:40:39 ehird, so I got no idea if it is possible 23:41:14 :p 23:41:24 using modulo should work if you make sure that (255 * number of bytes) % the max number you want == 0 23:41:29 then it should still be uniform 23:41:35 ehird, oh btw night 23:41:36 Er, number of bytes = 1. 23:41:37 Presumably. 23:41:40 also night. 23:42:25 Re MVRS, I assume the "Big-Bang" instruction won't create any IPs in it? Since it's still empty and everything. So if MVRS's G/J are not well defined when ATHR is in use, a ATHR/MVRS combination will be pretty hard to use. (Not that interpreting current G/J is much more than guesswork right now.) 23:42:32 exactly for the latter point 23:42:37 I just defined what I could 23:56:21 AnMaster: yay, roll.py is almost done 23:57:18 night 23:57:19 really