00:00:01 I oh 00:00:11 joke guide: A: did oerjan say it 00:00:13 er 00:00:15 that was meant to be Q: 00:00:29 Fiora: I do thank you though I wouldn't have got it 00:00:43 Arc_Koen: Careful with logreading if you intend to puzzle it out, there's a solution in there. 00:01:20 the solution is AAAAAAAAAAAAAAAA 00:01:23 hth 00:01:36 fizzie: well I skimlogread 00:01:51 I noticed a few occurrences of weird sequences of symbols 00:02:19 Did someone say AAAAAAAAAAAAAAAA? 00:02:21 truth is I'm not fluent with regexes 00:02:22 http://images.uncyclomedia.co/uncyclopedia/en/7/7d/Win98-minesweeper-lose.PNG 00:02:36 for instance what is (.) 00:02:45 "one or zero anything" 00:02:46 -!- nooodl^ has joined. 00:02:54 or "one or more anythings" 00:03:13 if the latter, does it have to be the same anything or can they be different anythings? 00:03:41 also what would be the difference between (.) and .+ or .* then 00:04:09 One anything. 00:04:12 (.) is the thing \1 refers to in this case. 00:04:13 or does (.) just mean "one anything" and the brackets were just there to prevent the . from meaning something else 00:04:22 \1 ?? 00:04:23 But it's a capturing thing. 00:04:44 so for instance, A+.* 00:04:44 \1 means the contents of the first (). 00:04:49 -!- nooodl has quit (Ping timeout: 258 seconds). 00:05:00 does it mean "zero or one A, followed by any sequence 00:05:04 A+.* is equivalent to A.* :p 00:05:19 oh, A+ means one or more A? 00:05:27 yeah 00:05:32 It means "one or more A, followed by zero or more anything". 00:05:35 and A* zero or more ? 00:05:39 Yes. 00:05:42 riiiight ok 00:05:59 so you're saying there is an A in the first box 00:06:03 s/box/cell 00:06:22 (is "cell" what you would call one thingy on a chessboard?) 00:06:41 "square" 00:06:43 No, you're saying that. 00:06:46 But you're right. 00:06:56 iirc from last it came up 00:06:57 On chessboard, I think... right, what oerjan saidl 00:07:39 thanks 00:07:52 also I assume | has lower precedence that everything else 00:07:56 But in a crossword, cell isn't a bad word. 00:08:24 in french we say "case" for *everything* 00:08:30 That is true too. 00:08:56 even chessboard squares? 00:10:27 Arc_Koen: The most unusual feature is that 1 down, where A(?!B)C means "AC, except after A, attempting to match B there must fail". 00:10:43 what 00:11:02 It's a zero-width negative lookahead assertion. 00:11:03 "AC, except after A, attempting to match B there must fail"? or did I miss a special character 00:11:29 "hang on, that sentence is difficult to process" 00:12:14 ok no I have no idea what you meant 00:12:46 Well, "match A, then fail to match B, then do match C", if you like; but failing B has no effect on the position. 00:13:01 hmmm 00:13:14 right 00:13:18 so it's redundant? 00:13:25 because we know that C doesn't match B 00:13:53 That was meant with any pattern in place of A, B and C. 00:14:01 In that literal case, sure. 00:14:05 oh, ok 00:14:20 well truth is I really don't know enough about regexes 00:14:30 Perhaps I should've used something else than exacty those letters of the alphabet. 00:14:31 (.)(?!.+\1)[^B]+.* 00:15:05 so (?xxx) means "not xxx" right? 00:15:24 ill ruin it by writing it in English maybe... 00:15:52 and you told me \1 is refering to . 00:16:27 Arc_Koen: It would match XYZ and XXZ but not XYX. 00:16:31 so "fail to match two or more anythings"? 00:16:47 It's referring to what the . matched. 00:16:53 oh wait, \1 isn't the same thing as ., it is the same thing as the pattern matched by the first . 00:16:54 ok 00:17:32 so what does (?!xxx) means? 00:17:39 its equivalent to .[^B]+.* but the last two chars are different from the first 00:17:41 "After the first letter, there must not be a copy of it with one or more any character between; and what follows the first character is not B." 00:18:04 uh 00:18:06 (?!xxx) means "not followed by xxx" 00:18:20 so it's equivalent to (^xxx) 00:18:21 It means that at that position, attempting to match xxx must fail. 00:18:21 it's a zero-width assertion, which means it doesn't "eat" the characters it matches 00:18:32 hmmm 00:18:33 Arc_Koen: It most definitely is not. 00:18:36 so for example 00:18:39 ok 00:18:44 I *think* I understand 00:18:54 Arc_Koen: (^xxx) means "^ followed by xxx", FWIW. 00:19:14 ^ only has special meanings inside character classes. 00:19:15 what? I though (^xxx) meant "something not xxx" 00:19:16 (?!xxx)[xy]{3} would match xxy xyx yxx yyx xyy but not xxx 00:19:24 ohhhh () and [] are not the same 00:19:25 ^ means not inside a character class 00:19:33 outside that it means beginning of line 00:19:43 Oh, yes. 00:19:44 right 00:20:25 myndzi: what is {3}? 00:20:35 match exactly 3 times 00:20:36 "a repetition of the third character"? 00:20:37 oh 00:20:43 ok 00:20:51 so [xy]{3} means "any of: x, y; three times in a row" 00:20:57 yeah ok 00:21:01 and the (?!xxx) makes it fail on xxx 00:21:20 yup 00:21:25 it's not really very useful to use a negative lookahead on static text ;) 00:21:28 is that a special meaning of ?! 00:21:28 Anyhow, what's kind of also important about (?!xxx) is that it doesn't actually match anything, so it doesn't "move" the "current position". 00:21:41 yup I finally got that 00:21:48 yeah, i was trying to come up with an example to demonstrate that but i realized it was hard 00:21:48 lol 00:22:06 but in my example, the (!?xxx) is examining the same characters as the [xy]{3} 00:22:09 It's a special meaning of (?! -- the parentheses are mandatory. 00:22:28 in fact (?stuff) is a general special context for () 00:22:33 In general, (?xxx) is used for all kinds of extensions. 00:22:42 (?:text) is non-capturing, (?<=text) is positive lookbehind, etc. 00:23:00 haha now i'm just redundant 00:23:02 :) 00:23:53 so (.)(?!.+\1)[^B]+.* is "anything (call it X), then don't be followed by several anythings followed by X, then (anything but B, one or more times), then (anything, zero or more times)" 00:24:17 there are some caveats to using zero width assertions 00:24:22 Yes, though the "or more" for B is redundant again. 00:24:25 what's zero-width? 00:24:26 backwards assertions must be a static width 00:24:30 (?!foo) 00:24:35 Arc_Koen: consume no input 00:24:39 "zero width" because it doesn't consume characters 00:24:41 oh ok 00:24:46 then what's lookahead? 00:24:51 it's also zero width 00:24:54 zero width is a characteristic 00:24:55 just a distinction from lookbehind? 00:24:58 yeah 00:25:04 lookahead matches on following characters 00:25:08 lookbehind matches on previous characters 00:25:18 ok, I was confused because I thought lookahead meant no consumption 00:25:20 anyway, things like .+ are generally not a good idea in lookahead/lookbehind 00:25:25 ah 00:25:30 lookahead "doesn't consume" 00:25:34 lookbehind "doesn't consume" 00:25:38 "zero width" means "doesn't consume" 00:25:41 if that helps :) 00:25:44 yeah ok :) 00:25:59 The "doesn't have a width" is perhaps more confusing for positive lookahead, where aa(?=..c)bb. matches "aabbc". 00:26:07 I thought maybe "lookahead" meant "look into the future but stay into the present" or something 00:26:16 instead of actually going to the future 00:26:24 it doesn't "go" anywhere 00:26:24 It's kind of natural for the negative case, which doesn't after all match anything. 00:26:32 it basically does mean "look ahead but stay here" 00:26:50 the way it "goes" into the future is by consuming input 00:26:51 wait, I thought "but stay here" was the meaning of zero-width 00:27:05 ok yeah we may be saying the same things with different words 00:27:05 let me try it another way 00:27:07 zero-width is a category 00:27:13 lookahead and lookbehind are members of that category 00:27:16 neither of them consume input 00:27:24 wow we'r estill on regexcchat 00:27:26 not consuming input is a characteristic of 'zero-width assertions' 00:27:39 lookahead/lookbehind inherit that characteristic but are more specific 00:27:42 yes, but I mean we could have "one-width lookahead" for instance 00:27:50 no 00:28:00 then saying "zero-width lookahead" is redundant 00:28:01 zero-width refers to the expression not consuming characters 00:28:06 so it's not saying "look zero ahead" 00:28:15 yes ok 00:28:21 it's saying "look ahead for something that matches this, but don't do anything other than succeed or fail" 00:28:30 imagine it like the I-cursor 00:28:32 in between letters 00:28:37 that's what zero-width is referring to 00:28:38 myndzi: I was trying to invent my own regex-like esolang 00:28:47 it had negative-width assertions, that actually added characters to the input 00:28:51 among other things 00:28:52 lmfao 00:28:56 -!- Bike has quit (Quit: leaving). 00:28:58 sounds like fun 00:29:12 oh! 00:29:16 i was watching some show the other day 00:29:20 and it actually referenced malbolge 00:29:23 i was fuckin' impressed 00:29:40 of course, then they ruined it by doing the typical tv/movie nonsense 00:29:40 I think that was mentioned in-channel at the time 00:30:05 i guess i could have expected that haha 00:30:08 i just don't remember where i saw it 00:30:34 so in proper english (.)(?!.+\1)[^B]+.* is "none of the last three characters match the first character and the second character is not B 00:30:39 -!- Bike has joined. 00:30:40 -!- Bike_ has joined. 00:30:43 -!- Bike_ has quit (Client Quit). 00:30:55 Arc_Koen: The second character can match the first. 00:30:56 -!- Bike has quit (Client Quit). 00:31:00 er, not really 00:31:04 you ended it with .* 00:31:06 hmm 00:31:10 so you can't say anything about the "last characters" 00:31:25 i know you're trying to come up with an example of how to use (?!text) 00:31:26 yeah but the (?! ) thingy dealt with that already 00:31:31 myndzi: These are all four-character strings. 00:31:35 but most of the time it's better to construct it in another way 00:31:35 no it's the example from the puzzle 00:31:38 ah, i didn't see the beginning 00:31:51 -!- Bike has joined. 00:31:54 for what you said 00:31:56 i would probably write 00:31:57 so i already know it's four characters and only A, B, C and D 00:32:11 (.)(?!B)[^\1]{3} 00:32:12 and the restriction for that one is (.)(?!.+\1)[^B]+.* 00:32:43 -!- Bike has quit (Client Quit). 00:32:57 that will: capture the first character assigning it to \1, test that the second character is not B, then match three more characters that are not \1 00:33:07 so unless I really don't understand (?!xxx), I read the (?!.+\1) part as meaning "the last two characters cannot match the first one" 00:33:25 Arc_Koen: Anyway, in "XXYZ" you match X with the (.), then in the assertion you have essentially .+X against XYZ, and since the .+ always consumes the first and only X, that doesn't match, and the assertion doesn't fire. 00:33:27 yeah ok 00:33:29 yeah, i have no idea why you put .+ in there 00:33:38 but it's usually a sign that you shouldn't be using lookahead 00:34:03 well he's definitely trying to be confusing 00:34:25 i just don't remember where i saw it <-- wikipedia's Malbolge article mentions it. (i helped with the edits.) 00:35:08 sounds too obvious 00:35:08 :P 00:35:12 what's this regex puzzle? 00:35:22 https://dl.dropbox.com/u/15495351/regex.html 00:35:23 i remember making a series of "encryption" challenges once 00:35:26 -!- Bike has joined. 00:35:32 i imagine you guys would own them fairly quickly 00:35:41 but the mirc scripters in the channel had a hard time with stuff i thought would be cake 00:35:42 :\ 00:35:51 myndzi: How would you write it without .+ in the lookahead? 00:35:55 you input text and it outputs encoded text, and you have to describe what to do 00:36:22 fizzie: i didn't know what he was trying to match, i was only looking at what he wrote and what he said 00:36:42 "none of the last three characters match the first character" doesn't need a lookahead 00:36:51 [^AC] eats two characters right? 00:36:54 no 00:36:59 [] is always one character 00:37:02 or however many you modify it to be 00:37:03 oh right 00:37:10 WHICH characters are acceptable are specified inside 00:37:18 so [^AC] is the same as (B|D) 00:37:29 in the case of only ABCD in the input, yeah 00:37:31 or [BD], that is 00:38:33 btw anyone interested in the encryption things just for fun? 00:38:41 pretty sure i still have em 00:39:48 Arc_Koen: I take it all those regexes are anchored? 00:39:56 hmm 00:40:00 I guess so 00:40:04 haha 00:40:07 i assumed it was the case 00:40:10 but that's a good point 00:40:13 not sure what anchored means but that sounds right 00:40:24 Arc_Koen: implied ^ at the start and $ at the end 00:40:31 does it mean there's an implicit "beginning of line" at the beginning, and implicit "end of line" at the end 00:40:33 yes ok 00:40:44 well I most certainly assumed so 00:41:07 ah, i wasn't assuming the $ 00:41:11 good to know 00:41:38 actually that makes it impossible 00:41:45 or, no 00:41:46 misread 1 down 00:48:24 i see. so that regex, Arc_Koen, i believe means: "anything, followed by 1 or more not-Bs followed by anything" 00:48:31 where whatever the first character is cannot be used in the rest 00:48:44 1) third and fourth both different from first, and second is not B 00:49:07 er, yeah, because of .+ 00:49:25 but there can be 1 or more not-bs too 00:49:38 yup, but "one or more" is the same as "one" here 00:49:46 because it's followed by anything anyway 00:49:51 not necessarily 00:50:00 oh, i suppose you can look at it that way 00:50:10 good point 00:50:21 that's definitely the confusing one, so the puzzle probably hinges on it :P 00:53:40 ok so I've already found 11, 13, 54 and 74 00:54:11 uh 00:54:22 * Arc_Koen is stuck in a dead-end 00:54:27 apparently I did something wrong 00:54:42 5) looks like this so far: 5 ( CD) (ABCD) (AB D) ( C ) 00:54:53 and restriction is "5) in alphabetical order" 00:55:39 oh the first cell from that row can be an A 00:56:02 asdfjaskdfsakldf I thought I had a build for a good PC at around $1000, but I forgot the PSU 00:56:04 and thus it must be 00:57:25 i'm not sure that $ is implied 00:57:39 i seem to have hit an impossibility by that rule 00:57:51 myndzi: well if it isn't, clues like A*B*C*D* are pointless 00:57:53 nooodl: are your regexes anchored? 00:57:58 because a zero-length string matches that 00:58:19 ah, i think i see my mistake 00:58:31 Arc_Koen: they are 00:59:45 oh, more regex puzzles? 01:00:34 I liked the hexagonal one that was around teh internets a while ago 01:03:49 errr 01:03:54 reached an impossibility :( 01:04:04 down 3) first and second are not C; fourth is equal to first 01:04:35 and so far that column looks like (D) (AB) (BC) (AB) 01:05:03 think i have it ;) 01:05:05 is there an answer key? 01:05:49 oh hmm 01:05:50 [^C]*(.)\1 01:06:00 does the \1 matchs the thing that's matched by (.) ? 01:06:05 yes 01:06:08 I thought it matched the thing matched by [^C] 01:06:16 gaaaaaaaah have to do it all over again 01:06:21 no, it's the last group, and groups are spelled with (). 01:06:27 okay 01:06:34 starting all over 01:06:40 damn nope, missed one thing 01:08:13 ah i see 01:08:25 i goofed aligning a diagonal 01:11:29 well I've got everything except 12, 52 and 53 01:12:59 nooodl: is the solution unique? 01:13:41 I think I've got a total of six possible solutions 01:14:06 iirc yes 01:14:34 elliott: can I show you my english interpretations of the regexes and you would be so kind as to tell me if one is wrong? 01:14:58 by "iirc" I mean I am just parroting what I remember nooodl saying about it, I don't even know the regexps involved :) 01:16:45 (spoilers) http://pastebin.com/pyaiJuM8 01:17:05 i'm coming to agreement, i think there may be multiples 01:17:14 ha, i should make a script to test solutions 01:17:55 myndzi: do you agree that cells 12, 52 and 53 are the ones that have multiple answers? 01:18:23 what do you mean 53? 01:18:30 are we looking at the same puzzle? 01:18:35 second row, third column 01:19:13 well yes; rows are numbered 1 5 6 7 and columns 1 2 3 4 01:19:18 i have an answer for 5/3 01:19:21 oh 01:19:29 I say it can be either A or B 01:19:37 doesn't mean it's right 01:19:46 do you even want me to say? :P 01:19:48 with the restriction that 52 can be either A or B, but if 52 is B then 53 is B 01:20:09 (because line 5 is alphabetical) 01:20:49 myndzi: well if you can tell me where I'm wrong without telling me the solution I'd be glad yes 01:21:04 i have no idea where you're wrong lol 01:21:12 i'm not going to follow your work it may pollute my mind :V 01:21:14 -!- carado has quit (Ping timeout: 246 seconds). 01:21:15 i'm writing a script to test 01:21:18 then you can test all you like 01:21:22 what do you have in cell 53? 01:21:34 D 01:22:17 oh 01:22:25 then we have very different grids 01:23:40 * Arc_Koen myndzi: so here is why I stroke D out in 53. 01:23:59 diagonal 3) is "CD or DC" 01:24:20 vertical 3) is "first and second are not C; fourth is equal to third" 01:24:32 therefore diagonal 3) is DC 01:24:39 so 54 is C 01:25:00 and horizontal 5) is "in alphabetical order" so if fourth is C, then third cannot be D 01:25:05 ^list 01:25:05 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 01:27:51 since there are four characters, [^C]*(.)\1 is equivalent to [^C]{2}(.)\1 right? 01:28:05 yes 01:29:00 which means "first and second are not C, and third = fourth" 01:30:23 btw i got a unique solution once i stopped making a stupid error. 01:31:20 they're always stupid errors ;) 01:31:46 well the stupid was i made it again at least twice on retrying 01:32:02 !repuzzle ABCD ABCD ABCD ABCD 01:32:02 Fail 6a: /^.*(BB|BC|CA)$/ - ABCD 01:32:21 i hope that's right, hehe 01:32:25 now to go back to trying to solve 01:34:14 lmao 01:34:21 so yeah. i was interpreting diagonal 3 as diagonal 6 01:36:06 I really don't see any way to cross out any of the six solutions I've got 01:36:26 which probably means I have a mistake somewhere and all six are wrong 01:37:21 well they cannot be wrong unless there is a regex they violate, hth 01:37:29 true 01:37:33 let's check 01:37:33 try running one through !repuzzle? 01:37:37 in PM if you don't want to spoil it? 01:37:43 join #repuzzle 01:37:46 i've got it minimized 01:37:48 it's a channel trigger 01:37:48 oh, not in this channel :) 01:37:55 works in here too :P 01:38:03 it's spammy to trigger my own pm triggers 01:38:04 hehe 01:38:06 thus channel 01:38:19 note: the script may not be correct, so lemme know if it reports something wrong 01:38:32 !show repuzzle 01:38:34 That is not a user interpreter! 01:38:35 also case sensitive, one sec 01:38:47 oh it's not EgoBot 01:39:17 nah i just scripted it up real quick 01:39:37 http://pastebin.com/YgTUy34B 01:41:37 ah, found my mistake too 01:41:48 oh right 01:41:50 2) first is B or D; if there's a C then all that follows is C as well 01:41:53 that's the error 01:41:58 treating [^C]* as (.\1*)? 01:42:01 2. [^AC]*C* 01:42:22 actually is "cut the line in two; first part is Bs and Ds and second part is Cs" 01:42:41 I must have read it as [^AC].*C* 01:46:26 Success! 01:46:42 thank you everyone for your help :) 01:47:29 so now I know regexes? if someone has a similar puzzle that'll teach me chinese in a few minutes... :p 01:48:03 now read the email regex 01:48:21 what is that? 01:48:25 lol 01:48:44 Bike: it doesn't handle nested comments 01:48:50 (also IIRC it's automatically generated) 01:48:53 Arc_Koen: http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html 01:50:06 Bike: (the correct followup to this is "why do email addresses allow nested comments anyway?") 01:50:13 that looks like something I don't wanna try to read 01:50:27 More languages should allow nested comments 01:51:00 ais523: I thought about it, but I've learned that learning more about old protocols implies SAN loss. 01:51:33 do you mean if I try to use thunderbird to send an email to oer/*com/*ment*/*/jan/*hello*/@nu.nvg is will work? 01:51:45 Arc_Koen: () is used for comments in email 01:51:51 not /* */ 01:51:54 thanks 01:52:09 also you can escape the ( and ) as \( and \) to stop them matching 01:52:24 moreover, my email domain isn't nu.nvg hth 01:52:28 I do this in my email on Slashdot, it does great against spambots 01:52:30 assuming my email address contains a ( or ) character? 01:52:45 (there are several alternative forms, but that isn't one of them) 01:52:47 Arc_Koen: or if you want to put ( or ) inside the comment 01:52:53 right 01:52:57 many email clients can't handle comments, even fewer handle nested comments 01:53:03 there are clients that follow the spec properly, though 01:53:31 "but they have only 3.5 users, all living in the same building" 01:54:47 i assume you mean that the half user has integrated their other half into sendmail 01:55:01 -!- heroux_ has changed nick to heroux. 01:55:20 when i first saw this I thought you were talking about some esolang named "email" 01:55:23 but oh god 01:56:19 -!- sebbu has quit (Ping timeout: 264 seconds). 01:56:24 so on a related note, does anybody know float contagion rules in some real language stupidly well, because now i'm curious 01:56:33 what's that 01:56:38 kmc: you are right 01:56:54 like what's 4 :: Int + 7 :: Floating do i guess 01:57:01 -!- azaq23 has joined. 01:57:05 sometimes you convert one into the other, or it's specified that the result is of so and so type 01:57:14 ugh 01:57:32 okay I know the JavaScript rule well: "all numbers are doubles" hth 01:57:35 Bike: Floating isn't a type.................................. 01:57:37 if this is about haskell 01:57:41 it's not 01:57:43 and haskell has no implicit conversions 01:57:45 Bike: OCaml's rule is really straightforward 01:57:50 i know the haskell rule well: it doesn't convert anything 01:57:52 it has an integer + and a floating-point +. 01:58:00 giving an integer to +. or a float to + causes a compile-time error 01:58:01 so you can't add ints to floats 01:58:02 right. 01:58:10 not without converting by hand, in OCaml or Haskell 01:58:10 But, but these aren't REAL LANGUAGES 01:58:38 It's not a real language unless you can gouge out your left kidney with it 01:58:48 OK; in asm, it has separate integer add and floating-point add 01:58:50 well a REAL LANGUAGE would surely use REAL NUMBERS 01:58:53 Bike: I assume most languages would have some rule along the lines of "types are ordered something like float > int > whatever, and the type of an expression is the maximum of the types of its subexpressions" 01:58:55 forget i asked 01:58:59 i can never quite remember C's rules... cases like uint8_t x = ...; uint32_t y = (x * 20) + 15; 01:59:03 and if you use the wrong one, it'll either complain that you're using the wrong registers, or misinterpret the bit pattern 01:59:05 (that's kind of a crappy order, though, i will say) 01:59:06 of the value it finds there 01:59:08 not those fishy computable things 01:59:11 oerjan: only imaginary languages use real numbers hth 01:59:12 is that multiplication / addition done on uint8 or uint32 01:59:22 kmc: either uint8 or plain int, I forget which 02:00:16 -!- sebbu has joined. 02:00:29 https://www.securecoding.cert.org/confluence/display/seccode/INT02-C.+Understand+integer+conversion+rules 02:00:29 uint8_t is secretly a typedef for unsigned char so the value of x becomes an int (not unsigned int!!) when used in any kind of arithmetic 02:00:37 Bike: so for instance (int 3) * (int 4) + (float 5) would evaluate to (int 12) + (float 5) then to (float 17) 02:00:38 yeah i see 02:00:45 -!- sebbu has quit (Changing host). 02:00:45 -!- sebbu has joined. 02:00:49 Also x + x :: int 02:00:50 even adding two chars is done on ints, then truncated 02:00:57 semantically 02:01:03 interesting 02:01:28 -!- WeThePeople has quit (Ping timeout: 252 seconds). 02:01:29 -!- oerjan has quit (Quit: leaving). 02:01:29 I wonder if you can make security holes with this 02:01:36 i cannot fathom why uint8_t is not separate 02:01:50 Because WE ALREADY HAVE A TYPE FOR THAT 02:01:54 And Moses said unto them that day, "The rank of long long int shall be greater than the rank of long int, which shall be greater than the rank of int, which shall be greater than the rank of short int, which shall be greater than the rank of signed char." 02:02:06 Jafet: always 02:02:59 kmc: what happens if int and char are the same width? 02:03:12 beats me 02:03:19 there are other rank rules though 02:03:25 although that wouldn't happen with uint8_t, it could happen with unsigned plain char 02:04:22 No one is going to make that platform, because C code will break on it 02:04:58 Jafet: such platforms exist already 02:05:04 digital signal processors, mostly 02:05:16 they're heavily specialized for 32-bit processing and don't have anything smaller 02:05:57 They also generally have very, very dedicated environments and it's not worth thinking about. 02:05:58 so what's sizeof(char) on such platform 02:06:03 doesn't that have to be 1? 02:06:07 kmc: Necessarily 1. 02:06:19 ais523: also crays 02:06:23 cray cray 02:07:10 okay so "promotion" and "conversion" are different 02:07:12 * kmc learning 02:08:13 Jafet: you can get great security holes from the fact that 'char' can be signed 02:08:52 -!- ais523_ has joined. 02:08:57 signed char is like my main reason for not understanding what the fuck C is 02:09:13 yay 02:09:19 i win :P 02:09:26 hello 02:09:50 kmc: yeah but everyone knows that one already 02:10:01 (that was a figure of speech obviously) 02:10:09 int count[256]; void f(char *str) { while (*str) count[*(str++)]++; } 02:10:16 Jafet: well i didn't know it until i did 02:10:39 writing an exploit for that was pretty fun 02:10:50 -!- ais523 has quit (Ping timeout: 245 seconds). 02:11:14 -!- ais523_ has changed nick to ais523. 02:11:29 One thing I didn't know 02:11:31 kmc: gcc complains about any use of plain char to index arrays 02:11:34 probably because of that 02:11:37 is that the PLT contains executable code 02:11:45 and that this is By Design 02:11:47 ais523: good 02:12:03 not just executable code but self-modifying code :< 02:12:14 best kind of code 02:12:19 yeah, executable code is kind-of common 02:12:23 and more useful than nonexecutable code 02:12:39 for better security one should link with ld -z relro -z now 02:12:42 reminds me i just read that apparently PDP had some really weird idioms due to the XEC instruction 02:12:54 which let you execute a register as an instruction, i guess? 02:12:56 which will cause the GOT and PLT to be read-only after startup 02:13:02 Bike: hot 02:13:29 so you'd have routines that dispatched behavior on the value of a register, since you'd set that register to be some specific instruction 02:14:33 -!- madbr has joined. 02:14:40 wow 02:14:46 LLVM's assembler has bugs 02:14:59 (when assembling for ARM) 02:15:37 software has bugs 02:15:42 always and everywhere 02:15:55 it's a bug's life 02:16:03 so presumably it's a notable bug if it's being mentioned. 02:16:30 yeah i'm just being a smartass 02:16:47 the great thing about ARM instruction sets is that there are so many to choose from 02:17:11 and i'm just being bitter about having it assumed that i meant "real language" as some kind of haskell-related insult instead of just disambiguation from an email esolang. bitter bitter bitter 02:17:16 yeah that seems to be the current design trend in cpu design 02:17:22 You can even choose at runtime 02:18:20 oh cool we're talking about instruction sets so I can post this thing 02:18:21 http://i.imgur.com/fjMhj0u.png 02:18:23 Bike: i interpreted it like that bc yr code looked like hs 02:18:26 * Fiora is reading the xeon phi manual for fun 02:18:29 base risc set then fpu then vector then vector fpu then stange corner cases like popcnt then another vector set then... 02:18:45 elliott: yes that's because you corrupted me THANKS 02:18:56 hows lyah goin 02:19:21 it's talking about implementing RPN with bla bla functions bla bla so i just started reading the haskell report. 02:19:28 ok 02:19:47 thats not going to pay off wrt whsat later chapters cover at all tho 02:19:56 oh wow this thing is crazy. every single memory operation has a "write-mask" 02:19:58 whsat 02:20:02 Bike: we can be bitter together 02:20:06 maybe we can get elliott in on it too 02:20:07 whsat 02:20:07 where it can say which of the 16 elements of the destination register are modified 02:20:20 er, not memory operation, every single register operation 02:20:23 fiora : wow, what architecture is this on 02:20:27 what's a phi manual 02:20:32 or is phi a type of xeon 02:20:35 um, the phi is like, the successor to larrabee 02:20:35 -!- DHeadshot has quit (Read error: Connection reset by peer). 02:20:38 the intel many core architecture 02:20:40 with 512-bit zmm registers 02:20:46 oh the next chapter is about applicative functors i.e. something i actually don't know, maybe i should pay attention except ???????? 02:20:47 ha what 02:20:52 -!- DHeadshot has joined. 02:20:55 oh god 02:21:00 I thought larrabee died horribly 02:21:06 yeah, they made it into this instead I think 02:21:12 it is like a super float simd machine designed to make scientific computing people fangirl 02:21:28 with like all of the transcendental functions super fast and designed to be easy to autovectorize with and stuff 02:21:29 kinda like the cell? 02:21:39 I guess a bit? no DMA thing though 02:21:42 can't they just buy GPUs 02:21:53 GPUs can't really do feedback 02:22:00 I think the idea is intel realized the larrabee was a really bad gpu but it was pretty good at raw compute so they did that instead? 02:22:11 they're not very good for, say, sound calculation 02:22:21 fiora: hah just like the cell 02:22:22 i see 02:22:22 http://sprunge.us/DGNF C has some weird little-used features. 02:22:29 madbr: wait, the cell had that too? 02:22:45 pikhq: uhhhhh trigrams? 02:22:51 that's just digraphs and trigraphs 02:22:51 nah 02:22:58 ais523: Not entirely. 02:23:01 oh graphs 02:23:02 Oh god digraphs lol 02:23:03 Check out iso646.h 02:23:06 wait so is this "xeon phi" a core CPU that you would boot, or a peripheral thing, or like a functional unit on a Xeon 02:23:10 I was referring to the cell being sony's plan for the ps3 gpu then they had to backtrack 02:23:11 oh and iso646.h 02:23:18 C++ is crazier. 02:23:24 pikhq: I know iso646.h, it's the only standard header that's provided by gcc not glibc, for instance 02:23:26 tbh this thing would be awesome for sound processing too 02:23:35 Apparently the iso646.h defines are *in the syntax* of C++. 02:23:44 madbr: ooooh 02:23:45 ok it's a PCIe card that looks like a GPU 02:23:50 which is also a whole bunch of roughly vectorizable fpu math 02:23:52 except without an elf dragon robot painted on 02:23:58 == Epoch 1 == 02:23:58 Evaluating population... 02:23:58 java.lang.UnsupportedOperationException: empty.reduceLeft 02:23:58 fail 02:24:04 except with feedback loops so that totally rules out GPUs 02:24:17 Why the crap is it starting with an empty population o-o 02:24:37 it also apparentyl has 320GB/s of memory bandwidth O_O 02:24:56 designing for throughput is cool 02:25:12 it's not like designing for general purpose code 02:25:17 i think what we all want to know is, how quickly will it make me rich in bitcoins 02:25:44 general purpose code is horrible, horrible... lots of stores/loads to all sorts of random addresses and unpredictable jumps 02:25:57 if you design for that you end up with the pentium2 02:26:04 what would a core designed for bitcoin mining look like? let's take a moment to think about this 02:26:10 and all its descendents 02:26:11 but just, wow. pow() in 4-cycles, with full accuracy 02:26:22 that's insane 02:26:58 what kind of code wants that, i'm curious 02:27:00 P2's have that crazy ultra complicated out of order engine but can only do 4 operations per cycle :( :( :( 02:27:15 maybe it would be nice for a shitload of sigmoids or something 02:27:16 (3 on the ones before sandy bridge) 02:27:29 Bike: I'm guessing scientific computing stuff loves transcendental functions almost as much as I love sushi? 02:27:31 the PENTIUM did 2 and came out in like 1994 02:27:43 Fiora: i need specifics man. specifics 02:28:13 i guess it would be kind of cool to read nnet source code that doesn't do some ridiculous integer operation instead of transcendentals 02:28:28 O_O it does a thing with a loop that does progressive approximation of a square root (as an example) 02:28:32 except what it does is 02:28:36 what, newton? 02:28:40 on each iteration, it checks to see the accuracy so far 02:28:45 and sets the "write mask" accordingly 02:28:52 "his use of the write mask may also be used as 02:28:52 a mechanism for reducing 02:28:53 total power consumption, as those elements which are masked off are (in general) not computed. I" 02:28:56 *This use 02:29:00 kinda wonder why that kind of architecture sucks at being a GPU 02:29:02 what, how 02:29:19 wow, the wiki spamthing is kinda scary 02:29:22 aren't modern GPUs pretty much large VLIW DSP's now? 02:29:24 wait, wait, so you can just mask arbitrary math, and that actually helps? 02:29:30 Bike: it would look like some SHA256 fixed function pipelines ;P 02:29:30 I think so? I have no idea @_@ 02:29:31 and exists 02:29:40 now we have automated defenses against robots 02:29:47 think of the consequences 02:29:56 dayum 02:29:59 madbr: the thing I remember reading said that part of the problem was that gpus also have a bunch of fixed function hardware, and intel thought that enough shader power could avoid needing that, but it didn't 02:30:14 mhm 02:30:23 that they kind of didn't have much experience making fast gpus which is, well. it makes sense given the speed of the integrated gpu on this laptop <.< 02:30:25 hey if spambots start being very very smart and we start being very very smart against them this could actually be entertaining 02:30:37 I haven't done gfx rendering in a while but some standard parts were horrible I think yeah 02:30:43 bilinear is horrible 02:30:48 kmc: imo it's not a good currency if it doesn't lead tofucking weird computer architectures and things 02:30:55 oh wow. it can swizzle each 128-bit lane arbitrarily on every op 02:30:56 Bike: the funny thing about Bitcoin mining is that you need zero memory bandwidth, zero anything except SHA256... 02:31:03 HFT led to a new transatlantic line! where's the beef bitcoin 02:31:13 like I've heard of people cutting off bits of a video card to fit it in an x1 slot 02:31:15 this is like the ps2 emotion engine, duplicated 4x, on acid 02:31:21 kmc: hahaha 02:31:25 bitcoin rig: six top end graphics cards, $10 CPU, $10 of RAM 02:31:44 who cares about bitcoins, I wanna crunch sound data 02:31:53 maybe i should look up neuromorphic architectures again 02:32:05 next time i feel like taking words like "neuromorphic" seriously 02:32:05 Bike: and yeah, I think there's a bitcoin variant which uses scrypt or bcrypt instead of SHA256 × 2 02:32:18 fiora: does it have multiply-accumulate too? 02:32:20 huh. wow, it even supports "unorm" types... is "unorm8" like, an 8-bit fixed point? 02:32:30 unicorn8 02:32:32 yeah, it has the same FMA as haswell and bulldozer I think 02:32:42 but it also has a special mode that does multiply+bias which is weird too 02:32:49 ha what 02:33:01 it's weird enough to explain that they had to like, lay it out as a series of formulas 02:33:10 what's the data latency on the multiply accumulate 02:33:31 also what's the clock rate of this thing 02:33:39 1ghz, I think 02:33:45 and like, 60 cores? 02:34:11 like, the data latency on multiply on standard cpus just sucks 02:34:12 it says most vector instructions are 4/1 latency/throughput, so I guess that applies to FMA? 02:34:16 it's like 5 cycles 02:34:31 Weren't we supposed to have 256-core computers in 2013? 02:34:33 what's 'bias' in this context 02:34:46 fiora: wait, so that's 4 cycle latency? 02:34:49 I think so? 02:34:56 I think everything is built around 4 cycle latency 02:35:04 I see 02:35:10 shachaf: and don't we? 02:35:18 it's in-order too, it seems kinda similar to the atom? 02:35:18 I don't. 02:35:30 but recip/rsqrt/exp2/log2 have a latency of 1/2??? 02:35:38 "TheL1 cache has an address generation interlockwith at least a 3-clock cycle latency. AGPR register must be produced three or more clocks prior to being used as a base or index register in an address computation." 02:35:52 I don't know @_@ maybe they mean throughput... 02:35:55 that seemed weird to me too 02:36:28 oh wow. it has scatter stores and gather loads 02:36:30 it's in-order... they're counting on compilers to do good instruction scheduling for scientific codes? 02:36:38 I think they're assuming everyone will use theirs <.< 02:36:45 why doesn't x86 have this stuff 02:36:47 well ok 02:37:02 probably you don't need fast transcendentals for crysis (do you) 02:37:19 bessel functions of the third kind 02:37:25 x86 does have fast reciprocal and square root approximations, think? 02:37:26 *I think 02:37:31 bike: that's because transcendentals have sucked ass for so long that people have gotten used to live without them 02:37:33 nothing fast for log or exp though... 02:37:42 madbr: ok, fair 02:38:18 wow, these. these floating point instructions 02:38:26 madbr: that doesn't necessarily matter though - they might not include it on the x86 because most general clients don't need it. if they don't need it because most programs aren't written like that then that doesn't matter to them 02:38:27 also I'm sure they can use scatter stores/loads in crysis 02:38:28 vclamppzpd, vgetmantpd o_O 02:38:30 you know this i guess 02:38:34 * shachaf tries to figure out what's being discussed. 02:38:46 I think scatter/gather stuff is super expensive to implement in hardware? 02:38:48 I'm not sure.. 02:38:49 Fiora: pff names 02:39:03 bike : "most general clients" run store/load/branch code that will never get faster no matter how you design the CPU 02:39:09 madbr: yes. 02:39:10 AVX2 actually has instructions for it but I don't know how fast it'll be... 02:39:23 madbr: so, why bother putting this in x86 if they're just going to do that. 02:39:26 only large throughput processsing like GFX or sound matters 02:39:35 everything else is data-IO bound anyways 02:39:57 Population(2,ArrayBuffer(),179) 02:40:03 every species just died out... great more bugs 02:40:19 * Fiora should probably go look at those things again. they looked cool. 02:40:42 bike: it's like optimizing for the 95% of the code that doesn't loop 02:40:43 * Bike should go back to reading OoS instead of this because he doesn't know shit. 02:40:51 and that's never going to make a difference 02:40:52 madbr: if it's economically sound... 02:41:38 no it's just that most other architectures have died by now 02:41:48 and they only have to be better than ARM 02:42:46 wow, the fault behavior descriptions on the gather instruction 02:42:52 also because C++ compilers can't vectorize your code if it aliases 02:43:15 and thanks to C++'s "do everything with pointers" philosophy, your pointers alias way too easily 02:44:09 oh gosh the fault behavior is crazy. it can actuall stop execution mid load because one of the gathers is in a page that isn't loaded or something 02:44:59 how does it save that kind of state? 02:45:23 wait, I guess it can replay the first loads 02:45:24 um. I don't think it does 02:45:28 never mind 02:45:29 nonono, it can't, that's not legal 02:45:33 it says that it can't do that 02:45:37 because it can't re-trigger faults 02:45:50 I think I'd actually have to set up a loop to use one of these... oh gosh <_> 02:45:51 how do you recover from a page fault then 02:46:09 like, a page fault due to disk access 02:46:27 wildly guessing: 02:46:28 pcmpeqb ymm3, ymm3 02:46:28 .load 02:46:28 vgatherdd ymm1, [rax+ymm2*2], ymm3 02:46:28 ptest ymm3, ymm3 02:46:30 jnz .load 02:46:37 maybe the OS is expected to parse the instruction and finish it for you 02:46:51 kmc: yeah I think that's actually possible 02:47:08 that would actually be incredibly cool 02:47:30 it says it sets the "RF" flag in "EFLAGS" if it resumes from a fault...? 02:47:38 but how do I even test that, what even is that 02:47:53 can't you push the flags register? 02:48:49 that seems crazy @_@ 02:49:23 "16 RF Resume Flag: Used by the debug registers DR6 and DR7. It enables you to turn off certain exceptions while debugging code. " 02:49:30 wow I am in over my head 02:50:05 it's absolutely amazing that anyone manages to implement modern x86 remotely correctly 02:50:35 intel and amd seem like pretty amazing companies. 02:50:52 AMD has made some questionable business decisions 02:51:08 well intel did that whole compiler thing. 02:51:11 what did amd do? 02:51:11 also Intel has failed at nearly every CPU architecture they've tried since x86 02:51:25 except 960 but yeah 02:51:39 and I guess itanium could've bombed more 02:51:41 AMD spun off their fab business and fucked it up businesswise somehow 02:51:43 i forgot 02:52:01 on the other hand they somehow managed to be the manufacturer for all three of the gen 8 consoles 02:52:16 madbr: architecture bombs by turning out to be a literal bomb, which explodes killing clients 02:52:24 HCF: Halt and Catch Fire 02:52:43 like, the first generation IA64 sucked afaik 02:52:53 anyway it's not just AMD and Intel that implement x86, but also VMWare, Xen, QEmu, Linux (KVM), ... 02:53:01 gah. the instruction reference doesn't say anything about when the gather is fast 02:53:06 and yeah they do get a lot of subtle details wrong 02:53:08 like I'm guessing that maybe crossing page boundaries is bad? I have no idea @_@ 02:53:12 but it's amazing that it works at all 02:53:27 fiora : really wondering about what cache architecture it has 02:53:46 fiora : normally these days L1 cache only has 2 read ports 02:53:52 Yeah, that was what I was thinking too 02:53:58 the "life on the edge of the double fault" game of life demo supposedly crashes most emulators 02:54:10 and the author started researching those topics in search of a Xen breakout exploit 02:54:10 so if it all falls on 2 cache lines I guess it can work 02:54:15 part of me feels like it'll probably just not be any faster but let you do simd address calculations? @_@ 02:54:19 but noooo idea 02:54:27 though if this thing only runs at 1ghz maybe they could add more ports 02:54:32 this is on the haswell though :< 02:54:43 AVX2 has scatter/gather stuff, not just the phi 02:54:59 the phi is a weird cool thing but the haswell I actually have to write code for <.< 02:55:16 fiora: well, not having to break out all you data from your XMM registers is already pretty bonus 02:55:19 I want to write code for Haswell. :-( 02:55:28 like, when writing code for the ARM 02:55:29 Well, I did at one point. AVX2 would've really helped me. 02:55:40 at one point one of my algos needed a LUT 02:55:44 * Fiora giggles as she sshs into her haswell box 02:55:59 (91 x 16bit for ADPCM volume table) 02:55:59 ?! 02:55:59 Maybe you meant: . ? @ v 02:56:05 How does that work? 02:56:09 and there was only one way to do that LUT fast 02:56:22 do all the algo up to the address generation on standard ARM 02:56:37 then the rest of the algo in NEON 02:56:52 and try to schedule the rest of the code so that both units stay busy 02:56:56 ? 02:57:01 (um, to shachaf ) 02:57:16 so essentially all the LUT index generation has zero vectorizing 02:57:20 Fiora: How do you have a Haswell box to SSH into? 02:57:41 "Let's just say I know a guy, who knows a guy... who knows another guy." 02:57:49 um, I have one for work 02:58:07 so I kind of have to be mum about things that I don't want to be mum about 02:58:28 What is work? 02:58:52 you still have the coolest job. 02:58:55 I do noot 02:59:01 there are way cooler things 02:59:08 like people who program for video game consoles 02:59:10 What is it? 02:59:29 Beats me, but she gets a Haswell, so it must be cool. 02:59:30 like that guy in that channel who was like "lol I wrote PS2 code and PS3 code" 03:00:11 Oh, you have a secret job? 03:00:29 evidently she doesn't like talking about what she actually does 03:00:45 my working theory is she works on russian sound weapons 03:01:06 v.v; 03:01:13 Good to hear that Russian weapons are sound, I guess. 03:01:19 The first version of the evolver that runs is clearly fatally flawed. 03:01:24 Some Russian weapons, anyway. 03:01:28 giving specifics would be about enough to find my identity pretty quickly <.< 03:01:31 The "best" in generation 10 has exactly 0 live opcodes. 03:01:41 Oh, you're one of those pseudonymous people, too? 03:01:55 how could we find your identity if you work for a russian intelligence agency? think this through, fiora 03:02:24 um, I guess? 03:02:51 Do you work at Intel or a non-Intell Haswellian place? 03:03:15 i read today that you can uniquely identify someone from their gait as measured by the 3-axis accelerometer in their smartphone 03:03:37 nice! 03:03:42 Horses have smartphones now? 03:04:04 dude even i have a smartphone, and i'm not even alive. 03:04:06 s/ll/l/ 03:04:11 no I don't work at intel <_> 03:05:40 OK then. 03:05:56 Can I try to figure out your identity or should I not? 03:06:04 you probably shouldnt because i dont think it'll work 03:06:22 also it's kind of, um, unnerving when people do that 03:06:26 shachaf: startup idea: smartphones for horses 03:06:28 I meant whether you have any objections. 03:06:34 I guess that's a yes. 03:06:54 Fiora: i think you're cool even if you are an identity-less phantom inside my computer 03:07:08 * shachaf likes to play the "figure out pseudonymous people's identity" game, but generally only when they don't object. 03:07:20 i hope when you get to play with time machine or omnipotent AI hardware before everyone else, you'll at least give #esoteric a heads-up 03:07:22 kmc: that's Phantom_Hoover. 03:07:33 always fun to find someone's four year old deviantart ccount 03:07:41 shachaf: "generally" 03:08:04 monqy: I can't think of any exceptions off-hand. 03:08:31 kmc: I only wish I could work with things that cool <.< 03:08:50 Haswell is basically a time machine. 03:08:59 Or evidence of one. 03:09:05 I mean, it only comes out this summer, right? 03:09:09 some kind of... hot tub time machine 03:09:16 good film 03:09:37 it took me two tries to watch it 03:09:46 because the first time I got falling down drunk by about the 20 min mark 03:10:04 That sounds like a successful watch as far as I'm concerned. 03:10:22 I haven't even *tried* to watch it. 03:10:27 How drunk does that make me? 03:10:35 Dully sober. 03:11:12 shachaf: Do me, do me! 03:11:27 (it'll be boring. :P) 03:11:27 `? pikhq 03:11:30 pikhq? ¯\(°_o)/¯ 03:11:34 i got nothing. 03:11:45 do you really count as pseudonymous 03:11:52 Probably not. 03:11:54 pikhq: You're not Josiah Worcester of Colorado? 03:11:59 shachaf: That's me. 03:12:03 Birthday this Saturday. 03:12:15 Precisely. 03:12:15 You'll turn 23? 03:12:18 Yup. 03:12:32 I'm, like, anti-anonymous online. 03:12:50 nonymous 03:12:59 kmc: also I kind of like being an identityless phantom, it's kinda fun (and a bit comforting, in a way) 03:13:57 kmc: You should probably use a hash function designed to work this way. 03:14:00 Like Salsa20! 03:14:25 [Average fitness: -7569.4, Max fitness: -950.0] 03:14:30 Holy crap, it's kinda working o~o 03:14:42 That's pretty unfit. 03:14:56 0 is "wins and loses equally" :p 03:15:12 Sounds like thermonuclear war. 03:15:33 maybe i should code up an evo thing to see how red queen works out. 03:15:35 pikhq: How about me? 03:15:38 Do me, do me! 03:15:50 i've been wondering what evolution would turn up if the actors can modify each other, like modern medicine. 03:16:34 -!- impomatic has left. 03:17:22 Shachaf Ben-Kiki? 03:17:43 That's, uh, elliott's name. 03:17:43 !bfjoust this-will-lose-badly http://files.lymiahugs.com/best-4-341.bfjoust 03:17:57 ​Score for Lymia_this-will-lose-badly: 10.0 03:18:25 evolved by joust evo eh 03:18:29 Yeah, almost certainly. 03:18:44 I'm not good with names 03:18:47 Nice work on the 0x$0.20. 03:23:04 Curse you and your otherwise privateness. 03:23:11 I'd have to care more to find further details. 03:23:50 I have otherwise privateness? 03:23:59 "account : Madoka-Kaname" snort 03:24:17 Researching everyone? 03:24:18 How rude 03:24:30 shachaf: Namely, I'm not finding a wide-open Facebook account. :P 03:24:58 time to /whois everybody 03:25:00 Lymia: Meh, you'll find a giant chunk of personal details on me within 5 results on Google. 03:30:22 Bike: the singularitarians spend a lot of time thinking about that 03:30:41 OK, but I don't want to pay attention to them. 03:30:53 Apparently there are only slightly radical theories of recent human evolution that involve drugs. 03:31:16 Bike: I'm actually an AI running on an AWS micro instance 03:31:28 Efficient. 03:32:50 stoned ape hypothesis 03:32:59 i'm not sure about 'only slightly radical' 03:33:37 It doesn't involve McKenna. 03:33:56 that guy 03:34:02 ugh, i didn't bookmark the book... 03:34:12 it was by an actual anthropologist, not like... you know. McKenna. 03:34:59 recent human evolution is just cool in general. I mean have you ever really thought about lactase persistance 03:35:57 Yes, actually. 03:36:08 good. keep that up. 03:37:09 yeah lactase persistence is a neat trick 03:37:28 +2 racial bonus to Drink Milk checks 03:38:14 i was going to say soemthing but ive totally forgotten what 03:38:28 Was it about milk? 03:38:28 good story 03:39:22 Oh... 03:39:44 I found what caused the speciation to go crazy, and spew out 1000 species at random. 03:39:57 It considers empty individuals to be infinitely unrelated to everything... >_< 03:41:56 dammit, now i want to know the book again. the only anthro books i have bookmarked aren't about evolution. 03:41:56 * Fiora thanks her dad for lactase persistence genes? 03:42:12 oh god mckenna actually called it "stoned ape", i thought that was a joke 03:50:12 ... wow whoops 03:50:13 I wasn't running 03:50:16 Half my mutations. 03:50:17 As in. 03:50:23 Anything that operated on the contents of genes. 03:50:38 this evolver sounds somewhat suboptimal 03:51:02 obviously lymia needs to get closer to the optimum 03:51:14 maybe use some kind of gradient descent, or evolutionary algorithm, to design the algorithm 03:52:40 :p 04:06:02 -!- azaq23 has quit (Quit: Leaving.). 04:06:53 .[.[.[.[.[.:....]....]....]....]....].... 04:06:56 Interesting individual there 04:08:32 : 04:10:40 : means "recursion limit reached" >_> 04:14:25 -!- Phantom_Hoover has quit (Remote host closed the connection). 04:23:43 -!- TeruFSX has joined. 04:27:55 Lymia: isn't that basically the ()% construction, just expanded by hand? 04:28:19 Something like that. 04:28:26 The ()% construction is... a bit syntatically difficult >_< 04:29:57 what you wrote is (.[{:}....])%5 04:30:05 Yeah. 04:30:15 I might try generating ({})% later 04:30:37 it shouldn't be hard if you already have code for expanding it 04:30:40 I couldn't think of a good encoding for that, so, I settled for that. 04:30:43 just don't expand it and output the unexpanded for instead 04:30:44 ais523, well... 04:30:53 The encoding is vastly different from the ({}) encoding 04:31:21 that would surprise me 04:31:32 what do you have in the current encoding? 04:32:34 Well... A gene is a linear sequence of instructions and activations. Activations try to trigger other genes, using some rules. 04:32:53 It could encode, like,, [[][]][[][]]... too. 04:33:00 Or more complicated stuff. 04:33:25 oh, I see, you don't have a special case for nesting/recursion? 04:33:43 Nope. 04:36:16 * Lymia sets population size to 200 04:36:25 Let's see if the system works then. Goodbye all 4 cores of CPU time :p 04:36:40 (Luckily, it's O(n) without inner-population evaluations... >_<) 04:40:13 -rw-r--r-- 1 lymia lymia 11M Mar 20 23:39 temp/evo-477-885.bfjoust 04:40:18 I really need a protection against this. 04:43:12 java.lang.OutOfMemoryError: Java heap space 04:43:15 wow totally killing these 04:45:25 http://paste.strictfp.com/37065/8950fa75a836a5606ffc61cfcb1be3e1 04:45:26 Fixed 04:53:02 -!- Jafet has quit (Quit: Leaving.). 05:13:20 -!- TeruFSX has quit (Ping timeout: 260 seconds). 05:15:24 ais523, does gearlance care about the order of its arguments? 05:15:33 Lymia: I don't know, I didn't write it 05:15:47 my BF Joust impl is juiced, which fell off the internet 05:15:50 that reminds me, I should put it back 05:18:18 and fixed 05:18:20 http://nethack4.org/esolangs/juiced.c 05:18:21 is my interp 05:19:57 [Average fitness: -7653.368350168351, Max fitness: -7120.0] 05:19:57 [Average fitness: -7921.638165859564, Max fitness: -4205.0] 05:19:58 ._. 05:20:00 In one generation? 05:20:37 you can expect huge improvements at the start 05:20:41 e.g. < is a lot worse than . 05:20:41 Oh. It learned how to do the flag dance. 05:20:50 ais523, I'm starting with all nops. 05:20:54 (+-)*-1, that sort of thing? 05:20:57 Yeah. 05:21:05 !bfjoust stupid_vibration (+-)*-1 05:21:09 ​Score for ais523_stupid_vibration: 5.8 05:21:18 yeah, that seems about right 05:21:22 !bfjoust stupidish_vibration -+.+-[-+.+-[-+.+-[-+.+-[-+.+-[-+.+-:]].-<<<].-<<<].-<<<].-<<< 05:21:27 ​Score for Lymia_stupidish_vibration: 10.0 05:22:25 if it ever reaches the -<<< bit, it suicides 05:22:37 yep 05:22:57 !bfjoust lymiastupidish_vibration_golfed (-+.+-.)*-1 05:23:01 ​Score for ais523_lymiastupidish_vibration_golfed: 13.3 05:23:09 !bfjoust lymiastupidish_vibration_golfed < 05:23:12 ​Score for ais523_lymiastupidish_vibration_golfed: 0.0 05:23:24 13.3 is actually very good for a vibration program that doesn't set decoys 05:23:33 like, unprecedented I've-never-seen-this-before good 05:24:05 perhaps evolving programs can be useful after all 05:24:29 It's probs just because it can figure out a vibration pattern that targets as many programs on the hill as possible 05:25:27 yeah 05:25:55 it's got to be able to lock two-cycles, or it wouldn't do as well 05:26:09 perhaps it locks both two-cycle and three-cycle clears? 05:26:16 or is particularly immune to direction change, or something 05:26:19 let me try it locally 05:26:48 !bfjoust less_stupid_vibration -[-[-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....]-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....].....]-[-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....]-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....].....].....]-[-[-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....]-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....].....]-[-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....]-[-[-[-:-:]-[-:-:]]-[-[-:-:]-[-:-:]].....].....].....]..... 05:26:53 ​Score for Lymia_less_stupid_vibration: 14.9 05:27:07 err, what? :) 05:28:46 aha, I see: the (-+.+-.) pattern has a 2 in 3 chance of securing a detectable lock 05:29:00 and several programs (especially david_werecat's) have no counermeasures in place for that 05:29:19 .bfjoust less_stupid_vibration_golfed -.-.-.(-[-[--]-[--]]-[-[--]-[--]].....)%-1 05:29:34 Lymia: you mean *-1 05:29:36 and !bfjoust 05:29:44 .. :p 05:29:49 !bfjoust less_stupid_vibration_golfed -.-.-.(-[-[--]-[--]]-[-[--]-[--]].....)*-1 05:29:54 ​Score for Lymia_less_stupid_vibration_golfed: 14.9 05:30:00 Is % only for finite repeats? 05:30:08 % is for nesting repeats 05:30:10 Ah 05:30:19 (So... %0 isn't an acceptable comment? >_<) 05:30:37 basically, a(b)*9c is equivalent to a(b{})%9c 05:30:44 the {} tells you where to self-embed 05:30:55 and what's inside the {} tells you what to do when you hit the recursion limit 05:35:29 -!- pikhq_ has joined. 05:35:35 -!- pikhq has quit (Ping timeout: 255 seconds). 05:41:24 !bfjoust foo ([-{<}+])%-1 05:41:29 ​Score for Lymia_foo: 7.8 05:46:19 Giant code sizes still out of control... 05:46:25 * Lymia sets limit to 32K opcodes 05:47:31 Lymia: that's just a 2-cycle clear on your own flag 05:47:49 I know :p 05:47:54 only reason that potentially does well at all is if it hits an opponent's 2-cycle clear with the opposite polarity 05:47:58 and they end up getting stuck on each other 05:57:26 Let's see if it can hope hit 0 fitness. 05:57:34 Which would be "wins and loses equally" 05:57:39 if it can hope to* 05:58:34 ... 05:58:36 Ah, wait. 05:58:39 I should count ties as loses 05:59:53 line.split(" ").last.toInt - line.count(_ == 'X') 05:59:56 yay for terse languages 06:04:05 ^list 06:04:05 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 06:04:53 another? :o 06:05:44 What's ^list for 06:05:51 It appears to be to highlight people. But for what purpose. 06:06:07 Lymia: some webcomic updating 06:06:10 homestuck~ 06:06:14 Oh. 06:06:16 * Lymia loses interest :< 06:06:58 don't we have a lot of lists now, maybe lymia could fit on one of them. 06:07:10 `run ls bin/ | grep list 06:07:12 list \ listen 06:07:17 welp. 06:07:34 ???????????????????????????? 06:07:47 `smlist 06:07:47 * Lymia counts question marks 06:07:48 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: smlist: not found 06:07:49 That'sa lot 06:07:54 ??????????????????????????????????????????????????????????????????????? 06:08:04 elliott: What did you do? 06:08:09 `cat bin/list 06:08:10 ​#!/bin/sh \ grep '^..:..:..: <[^>]*> `list' /var/irclogs/_esoteric/201[3-9]-??-??.txt | sed 's/^.*.*//;s/_*$//' | sort -u | tr '\n' ' ' 06:08:17 oh so that's still working 06:08:25 "great" 06:08:28 Somebody seriously way reverted things or something. 06:08:30 That's a scary program. 06:08:40 It pings people :( 06:08:42 `help 06:08:43 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 06:08:55 `welcome bike 06:08:57 bike: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 06:09:02 -!- pikhq has joined. 06:09:03 `relcome bike 06:09:05 ​/hackenv/bin/relcome: 2: colourise: not found 06:09:10 -!- pikhq_ has quit (Ping timeout: 245 seconds). 06:09:12 Oh god, we're doomed. 06:09:12 So HackEgo, like... 06:09:24 Pings everybody who has ever used the `list command? 06:09:29 yes. 06:09:32 yes 06:09:49 since january, anyway. 06:09:57 it's an important command because it shames me forever. 06:10:15 rm bin/?*list 06:10:29 oerjan: Please see above. 06:10:34 I like the new version, it seems to be free from race conditions 06:10:47 Wait... 06:10:47 `undo 2432 06:10:50 `quine hello?? 06:10:52 patching file emptylist \ patching file instalist \ patching file makelist \ patching file mlist \ patching file olist \ patching file pbflist \ patching file slist \ patching file smlist \ patching file testlist 06:10:53 shachaf i have a feeling nobody but you cares about the billion different lists 06:10:55 ​`quine hello?? 06:11:04 `quine hello?? 06:11:04 a 06:11:07 ​`quine hello?? 06:11:08 monqy: There's been a supermegacomics update. 06:11:10 oh god no 06:11:10 monqy: Do you care? 06:11:12 shachaf: i saw 06:11:12 NO 06:11:23 I normally find out about comic updates from sources other than the `lists 06:11:25 i check supermega every day and sometimes more than every day because im fidgety 06:12:21 ais523, bleh. The system is seriously biased towards making highly recursive structures-- biasing it greatly towards vibration stuff. 06:12:35 * Lymia puts that on her "important observations" list 06:12:42 monqy: this update is p.good 06:12:48 Lymia: vibration is the easiest program to construct for an evolver by far 06:13:12 structures++ 06:13:30 Well. The current evolver, quite clearly has a problem with going, like, AAAACBBBB 06:13:35 especially because the vast majority of the hill has resistance against rushes 06:13:55 ais523, I might, just as an experiment, run it in against-itself mode. 06:14:07 Then against the hill after. 06:14:11 To see how that works out 06:15:02 !bfjoust some-weird-vibrator --.+--.+.+[-.+]-.+--.+--.+.+[-.+].+[-.+--.+.+[]-.+].+[]--.+--.+.+[-.+].+[]--.+.+[]-.+ 06:15:07 ​Score for Lymia_some-weird-vibrator: 9.6 06:15:22 -!- madbr has quit (Quit: Radiateur). 06:15:27 Let's see if it can do better with it counting ties as losses-- as EgoBot does 06:15:28 >_< 06:15:46 There's been improvement every generation so far. 06:15:55 ties aren't counted as losses, but they also don't get you points 06:16:04 I forget exactly how it works 06:16:39 I'm doing 06:16:41 wins - losses - ties 06:16:49 And just summing that for the fitness. 06:16:57 Well. 06:16:59 Not quite. 06:17:07 I multiply it by 5 after. 06:17:24 `ls bin/*list 06:17:25 ​/bin/ls: cannot access bin/*list: No such file or directory \ /bin/ls: cannot access bin/*list: No such file or directory 06:17:28 `run ls bin/*list 06:17:30 bin/list 06:17:30 The full function is 5*hill + 1*population 06:17:36 `run ls *list 06:17:37 But, I disabled the latter part because that causes O(n^2) 06:17:38 emptylist \ instalist \ makelist \ mlist \ olist \ pbflist \ slist \ smlist \ testlist 06:17:46 `run cat olist | rot13 06:17:48 No output. 06:17:49 `run cat olist | r13 06:17:51 rpub -a "$(onfranzr "$0"): "; gnvy -a+2 "$0" | knetf; rkvg \ funpuns \ brewna \ Ftrb 06:17:58 Who r13 it 06:18:00 `run mv *list bin/ 06:18:04 No output. 06:18:33 Why* 06:18:37 well now Sgeo does have to fungot 06:18:37 Bike: if it's weird. i never hear talk about stk, especially not not me :) lemme check 06:18:39 doesn't 06:21:19 When I get a new computer I'm not going to be able to play with it while lying down on the couch :( 06:21:58 Lymia: because people aren't normally pinged by the rot13 of their own nick 06:22:38 I am, though. 06:22:46 But it doesn't matter with me because I was running it. 06:23:03 -!- DHeadshot has quit (Read error: Connection reset by peer). 06:23:26 -!- DHeadshot has joined. 06:23:30 hmm… what nick came first, "shachaf" or "funpuns"? 06:23:55 The actual hill scoring considers wins against better programs more important; it's described at http://codu.org/eso/bfjoust/SCORES -- not that raw duel points (which are 1 point for win, 0 for tie, -1 for loss) or anything else similar would necessarily be bad for fitness. 06:24:09 -!- pikhq_ has joined. 06:24:10 fizzie, yeah. 06:24:14 I used to do wins - loses 06:24:23 Which is quite clearly grossly inaccurate 06:24:39 -!- pikhq has quit (Ping timeout: 256 seconds). 06:24:42 Well... wait. 06:24:45 "The actual hill scoring considers wins against better programs more important" 06:25:05 For an evolutionary algorithm, that might mean a lot. Since, it could potentially find weakness targeted at the top of the hill. 06:25:09 weaknesses* 06:25:35 ais523: It is a mystery. 06:26:01 Lymia: there are definitely serious weaknesses in some of the high-up programs 06:26:26 Losses also sorta-don't count in the score as much, since it clamps the points-against-X to 0 for the score calculation. 06:26:26 e.g. omnipotence can be defeated simply via timer clears that set a lot of decoys 06:27:04 but the problem is, those known weaknesses are unlikely to be found by an evolutionary algorithm 06:27:08 it might find different weaknesses, though 06:27:23 (Of course they count in the sense that win-win-win-loss is 2 while win-win-win-tie is 3.) 06:29:00 ais523, I really want to see if I can get more interesting behavior if I run it without touching the hill first. 06:29:11 Lymia: yes, that sounds like a good test 06:29:21 it's at least likely to produce rush programs, eventually 06:29:54 i.e. let it run on its own for 100 or so generations, then see how it works on the hill 06:29:55 Might not work so well though. My speciation algorithm is, er...scizophranic. 06:30:24 For it to actually work well though, I have to fix my speciation code. 06:30:36 So it stops deciding there's 10 species one generation, and 4 the next 06:30:38 !bfjoust boobnipples (++++++--..--[++++-]...--[+])*-1 06:30:42 ​Score for oklopol_boobnipples: 9.7 06:31:06 is that a good score or a bad score 06:31:22 Bad 06:31:23 Very bad 06:31:34 Imagine 9.7 as an IQ 06:31:43 Or a test grade 06:31:54 9.7/10? 06:32:06 That's not such a bad test grade. 06:32:21 :p 06:32:31 (9.7/100 is a F though) 06:32:48 (And likely to drag your grade for the entire class down to at least a C) 06:33:11 Maybe Americlasses. 06:33:17 -!- Nisstyre-laptop has joined. 06:34:21 ais523, please exorcise my speciation code :( 06:34:25 ArraySeq(64, 68, 68) < one generation 06:34:33 ArraySeq(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3) 06:34:33 < the next 06:34:38 haha :) 06:34:38 good array 06:34:42 ArraySeq(21, 22, 22, 22, 22, 22, 22, 22, 22) < the one after that 06:35:17 The target is an average of 20 individuals per species. 06:35:37 oklopol: 20 or so means "the idea behind this program might potentially work"; 40-50 means "this program will survive on the hill for a while", 60+ is what you'd expect from a top program 06:35:38 But the variable speciation constant is basically overpowered by whatever feedback loop is causing this... 06:43:22 I thought maximum was 42 06:44:31 ais523: isn't it currently 6h45 in the morning in your country? 06:44:40 Arc_Koen: yes 06:44:44 well, 6:44 06:45:10 so you were up all night talking about brainfuck joust in the middle of the week 06:46:06 !bfjoust waywardventriculation (,.>,.>,.>,.>,.>,.[[>>+-]....],,,>>,,.<<,,,[+-.-+.+-.]-)*-1 06:46:08 that makes it pretty hard for me to mentally place everyone in their respective timezone 06:46:09 ​Score for oklopol_waywardventriculation: 0.0 06:46:11 >D 06:46:24 some day i'll learn how this game words 06:46:26 works 06:47:04 !bfjoust generation-34 http://files.lymiahugs.com/best-6834-6785.bfjoust 06:47:12 ​Score for Lymia_generation-34: 17.2 06:47:32 !bfjoust naive_1 (->+>)*5([-]>)*-1 06:47:36 ​Score for Arc_Koen_naive_1: 15.4 06:47:49 hehehe 06:47:51 first try 06:47:53 -!- copumpkin has quit (Ping timeout: 256 seconds). 06:48:21 Arc_Koen: that's not an awful program 06:48:23 -!- copumpkin has joined. 06:48:31 (technically I tried others before but I hadn't understood the rules) 06:48:34 it is, however, the sort of thing many of the older programs are specialized to beat 06:48:35 (well misread) 06:48:48 yes I hope so 06:48:50 the newer programs are mostly trying to beat the older programs and each other, though 06:48:59 haha 06:49:03 My program is currently crunching numbers, apparently with the goal of making the best possible vibrator... with no decoys. 06:49:08 you might want to read up about offset clears 06:49:18 will do 06:49:26 they completely revolutionised BF Joust when they were invented 06:49:29 it blew my mind, at least 06:49:34 What are offset clears? 06:49:34 -!- pikhq has joined. 06:49:43 -!- pikhq_ has quit (Ping timeout: 264 seconds). 06:49:45 Do some check, >*x and [-]? 06:49:48 Or something like that? 06:49:58 Lymia: basically you do ++[-] or the like, so that instead of being very fast at 0, 1, 2, 3 but very slow at -1, you're very fast at -2, -1, 0, 1, 2 but slow at -3 06:50:23 although arguably they aren't so useful any more because they made decoys very close to 1 useless at actually slowing programs down 06:50:31 and so they aren't used for that purpose very often 06:51:02 -!- hagb4rd has quit (Quit: hagb4rd). 06:51:29 did you just say "offset clears are so efficient at defeating decoys that decoys are no longer used and thus offset clears are useless nowadays"? 06:52:05 Offset clears sounds like the kind of thing you actually expect an evolutionary algorithm to learn. 06:53:06 Arc_Koen: pretty much, BF Joust works like that 06:53:15 but they're still useful because programs use size-1 decoys for other purposes 06:53:26 assuming that they won't be much good at slowing the enemy, but if they do it's a bonus 06:53:35 x-x 06:53:38 I effectively have 06:53:45 No speciation 06:54:53 so what's the score given by egobot? the number of programs I defeated? 06:55:15 Arc_Koen: it's calculated based on how many programs it beats, how convincingly it beats them, and how good the programs it beats are 06:55:30 oh, alright 06:56:19 if only we had quintopia's scoring 06:56:50 !bfjoust generation-40 http://files.lymiahugs.com/best-6010-7971.bfjoust 06:56:55 ​Score for Lymia_generation-40: 17.2 06:57:07 Hun? 06:57:17 There's a fitness change by my algorithm, and no change by EgoBot's? 06:57:24 Does it, like, not count certain wins? 06:58:48 -!- nooodl^ has quit (Ping timeout: 258 seconds). 07:01:51 "how convincingly it beats them"? 07:02:42 oklopol: I think a "match" between two programs is made of 21 battles 07:03:05 oklopol: yeah, if you win on more tape lengths 07:03:10 it counts as better 07:09:21 -!- Bike has quit (Quit: ie). 07:09:28 -!- Lymia has quit (Ping timeout: 256 seconds). 07:10:51 -!- pikhq_ has joined. 07:10:59 -!- pikhq has quit (Ping timeout: 255 seconds). 07:15:54 -!- epicmonkey has joined. 07:19:21 -!- Jafet has joined. 07:19:57 -!- pikhq has joined. 07:20:11 -!- pikhq_ has quit (Ping timeout: 256 seconds). 07:20:58 -!- Lymia has joined. 07:20:58 -!- Lymia has quit (Changing host). 07:20:58 -!- Lymia has joined. 07:23:26 -!- FreeFull has quit. 07:23:58 !bfjoust stupid-vibrator (++-)*-1 07:24:18 ​Score for Lymia_stupid-vibrator: 14.5 07:25:03 I'm simultaneously surprised at the variety of code structures the algorithm manages to generate-- and, unfortunately, how little it uses it... 07:25:31 !bfjoust empty . 07:25:35 ​Score for Arc_Koen_empty: 3.6 07:26:19 ais523, you have a hill of "easier" programs somewhere? 07:26:37 Lymia: I don't, but taking a hill from 2009 or so would be good to test against 07:26:54 !bfjoust notsolucky (>)*20[-] 07:26:59 ​Score for Arc_Koen_notsolucky: 0.0 07:27:03 oh 07:27:21 I'm not sure how to use hg like that 07:27:23 I used the set of sample programs at http://esolangs.org/wiki/BF_Joust_strategies for some stuff. 07:27:35 !bfjoust lucky >*10[-]>[-] 07:27:39 ​Score for Lymia_lucky: 3.6 07:27:43 ha~ 07:28:04 well 3.6 you get for not committing suicide 07:28:14 !bfjoust luckier >*10[-]>[-]>[-] 07:28:18 ​Score for Lymia_luckier: 3.6 07:28:27 !bfjoust luckiest >*10[--]>[--]>[--] 07:28:31 ​Score for Lymia_luckiest: 3.6 07:28:32 crap 07:28:44 !bfjoust straightforward (>)*9([-])*-1 07:28:48 ​Score for Arc_Koen_straightforward: 4.3 07:28:50 !bfjoust [->+<] 07:28:51 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 07:28:56 !bfjoust this-isnt-bf! [->+<] 07:28:59 ​Score for Lymia_this-isnt-bf_: 5.1 07:29:12 ._. 07:29:16 MOV 0, 1 beats stuff? 07:30:17 -!- pikhq has quit (Ping timeout: 240 seconds). 07:30:18 that's weird 07:30:30 -!- pikhq has joined. 07:30:30 Lymia: "hg update -d Er, with < escaped. 07:31:02 !bfjoust traitor (-)*-1 07:31:09 ​Score for Arc_Koen_traitor: 7.3 07:31:12 WHAT 07:31:29 !bfjoust actual-traitor [-]. 07:31:37 oh right 07:31:49 ​Score for Lymia_actual-traitor: 7.8 07:31:52 ... 07:31:55 haha 07:32:53 !bfjoust faster-traitor (-)*128 07:32:58 ​Score for Arc_Koen_faster-traitor: 5.8 07:33:21 [-] has a chance of locking itself on the opponent 07:33:46 (I don't know what that means) 07:33:52 !bfjoust i-hate-decoys >*8>([-[-[-[-[-]]]]]>)*-1 07:33:55 ​Score for Lymia_i-hate-decoys: 11.5 07:34:07 !bfjoust i-hate-decoys >*8([-[-[-[-]]]]>)*-1 07:34:10 ​Score for Lymia_i-hate-decoys: 10.2 07:34:22 !bfjoust i-hate-decoys >*8([-[-[-[--]]]]>)*-1 07:34:26 ​Score for Lymia_i-hate-decoys: 9.7 07:35:41 holy crap 07:35:43 * Lymia \o/ 07:35:46 My speciation code is fixed! 07:35:46 :D 07:35:47 -!- Nisstyre-laptop has quit (Quit: Leaving). 07:36:40 !bfjoust weird-vibrator (+.-.)*-1 07:36:45 Lymia: [-[-[-[-[-[-]]]]] is mostly the same as [-[-]] but more vulnerable to triplocks 07:36:48 ​Score for Lymia_weird-vibrator: 6.0 07:37:00 and with unbalanced brackets because I failed to copy it correctly 07:37:17 Here's an interesting challenge. 07:37:26 Write a bfjoust program that fits on an IRC line and gets a good score :p 07:37:33 fwiw, [-[-]][-[-]] is the gold standard pattern for immunity to both triplocks and vibration programs, although you want a clear that's more reliable against locks than [-] 07:37:40 Lymia: quite a few high-up programs would fit on a line 07:37:44 or could be modified to do so 07:37:46 Ah. 07:37:58 They appear to be mostly in the 20KB range 07:37:59 the main problem is with defense programs, and programs that need to write out a lot of near-identical cases 07:38:09 most of my programs fit in one of those categories or the other… 07:38:40 -!- DHeadshot has quit (Ping timeout: 258 seconds). 07:41:06 !bfjoust i-have-no-idea-what-im-doing ((-->+>)*20(--<+<)*20)*-1 07:41:09 ​Score for Fiora_i-have-no-idea-what-im-doing: 0.0 07:41:52 Fiora: the first loop moves 40 cells 07:41:57 the tape has a maximum length of 30 07:42:08 as such, the only way that doesn't suicide is if the opponent suicides faster :) 07:42:13 ooh. 07:42:27 !bfjoust i-have-no-idea-what-im-doing ((-->+>)*15(--<+<)*15)*-1 07:42:28 in general, the difficulty in BF Joust is trying to stop at your opponent's flag, if you go even one cell beyond you lose 07:42:30 ​Score for Fiora_i-have-no-idea-what-im-doing: 0.0 07:42:34 and your opponent isn't going to make it easy to find the flag 07:42:44 *14 would make it actually possible for the program to not lose, btw 07:42:48 ah 07:42:53 !bfjoust i-have-no-idea-what-im-doing ((-->+>)*10(--<+<)*10)*-1 07:42:54 But only on long tapes. 07:42:58 ​Score for Fiora_i-have-no-idea-what-im-doing: 0.0 07:43:01 yay? XD 07:43:02 but it'd still probably lose due to requiring the tape length to be exactly 29 to have a chance 07:43:09 * ais523 checks breakdown 07:43:10 val fightHill = false 07:43:10 val fightPopulation = true 07:43:11 Let's go! 07:43:17 80^2 evaluations yay 07:43:26 Start your engines. 07:43:37 Fiora: there are a few programs that wins against on a few tape lengths 07:43:47 so its problem is that it just hasn't scored even one decimal place of score :) 07:44:11 !bfjoust i-have-no-idea-what-im-doing (-[-[-[-]]]]>)*-1 07:44:14 ​Score for Fiora_i-have-no-idea-what-im-doing: 0.0 07:44:22 clearing your own flag is also inadvisable 07:44:23 That clears yourself :p 07:44:29 !bfjoust i-have-no-idea-what-im-doing (>-[-[-[-]]]])*-1 07:44:30 try starting with a > or nine 07:44:32 ​Score for Fiora_i-have-no-idea-what-im-doing: 0.0 07:44:40 okay that didn't work <.< 07:44:41 hmm 07:44:43 that should do better 07:44:59 !bfjoust i-have-no-idea-what-im-doing (>-[-[-[-]]])*-1 07:45:00 Fiora: "parse error: terminating ] without a matching [" 07:45:04 ​Score for Fiora_i-have-no-idea-what-im-doing: 6.2 07:45:12 that would explain that XD 07:45:12 there, now you're actually scoring points :) 07:46:10 !bfjoust this-is-weird-and-stuff >>>+*10>>+*10->+>-->++>(>-[-])*-1 07:46:17 ​Score for Lymia_this-is-weird-and-stuff: 5.5 07:46:23 !bfjoust this-is-also-entirely-random >>>+*10>>+*10->+>-->++>(>[-[-]])*-1 07:46:28 ​Score for Lymia_this-is-also-entirely-random: 11.7 07:46:40 Does * without () work? 07:46:48 no, but EgoBot's interp might understand it anyway 07:46:56 either that or it treats it as a comment 07:46:56 do the two programs start at opposite ends of the take? 07:46:58 or like, is it random? 07:46:59 -!- Nisstyre-laptop has joined. 07:47:02 Fiora: opposite ends 07:47:06 and > is towards the opponent 07:47:08 okay so they start maximum distance from each other 07:47:10 err, the opponent's flag 07:47:10 !bfjoust - 07:47:11 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 07:47:12 yeah 07:47:16 !bfjoust experiment - 07:47:24 wait, but if the tape is an even number long, aren't both directions equally close? 07:47:26 ​Score for Lymia_experiment: 3.6 07:47:26 ais523: "no, but maybe yes"? Does that mean "it's not supposed to, but maybe yes" 07:47:29 !bfjoust experiment -*100 07:47:33 ​Score for Lymia_experiment: 3.6 07:47:36 !bfjoust experiment -*128 07:47:37 Deewiant: yes 07:47:39 ​Score for Lymia_experiment: 3.6 07:47:41 !bfjoust experiment -*-1 07:47:46 ​Score for Lymia_experiment: 3.6 07:47:46 ais523: Alright 07:47:48 !bfjoust experiment (-)*-1 07:47:51 looks like it just treats the * as a comment 07:48:00 There's the answer, I guess. 07:48:05 so -*-1 is equivalent to -- 07:48:06 ​Score for Lymia_experiment: 7.3 07:48:09 also, you just posted increase 07:48:20 which is quite good at getting draws, but not very good at winning 07:48:23 o_O how does (-)*-1 get 7.3? 07:48:25 we try it every now and then 07:48:25 You need to have positive duel points against at least one program in order to get a nonzero score. 07:48:39 !bfjoust this-is-also-entirely-random >>>(+)*10>>(+)*10->+>-->++>(>[-[-]])*-1 07:48:39 Fiora: because your flag needs to be zero for two cycles to win 07:48:42 that changes it every cycle 07:48:44 ahhhhhhhhhh 07:48:45 ​Score for Lymia_this-is-also-entirely-random: 13.1 07:48:54 so the opponent's only way to win is to let you zero it, then change it in the opposite direction to hold it in place 07:49:09 most programs are capable of doing that on at least one polarity, though (even the simple [-] does that) 07:49:21 [-.+] 07:49:22 :p 07:49:30 Though that's not effective at clearing... 07:49:34 yeah 07:49:36 [--.+] 07:49:38 :p 07:49:47 quite often, people suggest modified clear loops that actually are incapable of just clearing :) 07:49:55 I saw someone try ++ once, I think 07:50:05 -!- pikhq_ has joined. 07:50:20 -!- pikhq has quit (Ping timeout: 260 seconds). 07:50:28 -!- ais523 has quit. 07:50:46 !bfjoust silly ((<-[-[-[++++]]])(>>>-[-[-[++++]]]))*-1 07:50:51 ​Score for Fiora_silly: 3.6 07:50:56 That'll die in one tick. 07:51:04 wait, really? :O 07:51:09 !bfjoust suicide < 07:51:13 ​Score for Lymia_suicide: 0.0 07:51:16 ? 07:51:17 ...? 07:51:21 !bfjoust (<) 07:51:22 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 07:51:28 !bfjoust maybe_suicide (<) 07:51:31 ​Score for Lymia_maybe_suicide: 3.6 07:51:34 Ah 07:51:40 Missing repeat count is taken as zero. 07:51:44 So that's just "". 07:51:47 how is < suicide? 07:51:56 Running off the tape? 07:52:02 oh. I thought it wrapped? 07:52:05 Much like (>)*30 is a suicide, except slower. 07:52:09 Because the only thing in the < direction is death 07:52:11 ohhhh 07:52:31 It's an instant lose, too, not a two-cycle thing like the flag-at-zero. 07:52:43 (Well, or instant die if the opponent suicides on the same cycle.) 07:52:46 s/die/tie/ 07:52:52 ((>>-[-[-[-]+]++])(<-[-[-[-]+]++]))*-1 07:53:00 That's just . 07:53:38 er 07:53:42 * Lymia is running her evolver in "closed loop" mode. 07:53:43 !bfjoust test ((>>-[-[-[-]+]++])(<-[-[-[-]+]++]))*-1 07:53:47 No external hill :p 07:53:53 how... how is that . O_O 07:53:55 ​Score for Fiora_test: 3.6 07:53:59 Let's see what it produces in, like, 30 hours 07:54:05 Fiora: Because a missing repeat count for () is taken as zero, as said. 07:54:09 ohhhhhhh 07:54:17 (>>-[-[-[-]+]++]<-[-[-[-]+]++])*-1 07:54:24 I am bad at this, sorry 07:54:42 erm aksjdlfkl forgot to put bfjous 07:54:51 !bfjoust test (>>-[-[-[-]+]++]<-[-[-[-]+]++])*-1 07:54:58 ​Score for Fiora_test: 1.0 07:55:06 wow, even worse? <_> 07:55:08 That is the lowest non-zero score I've ever seen 07:55:24 am I so bad that I like, transcend awfulness 07:55:28 Once again you're likely to run off the tape with that blind >> 07:55:35 I'm pretty sure I've seen 0.6 or something 07:55:42 ((.)*4>)*-1 07:55:46 !bfjoust slow-death ((.)*4>)*-1 07:55:50 ​Score for Lymia_slow-death: 2.0 07:55:54 !bfjoust slow-death ((.)*5>)*-1 07:55:57 ​Score for Lymia_slow-death: 2.4 07:55:58 how can it run off the tape if I'm always heading towards my opponent? 07:55:59 !bfjoust slow-death ((.)*6>)*-1 07:56:03 !bfjoust slow-death ((.)*2>)*-1 07:56:03 ​Score for Lymia_slow-death: 2.4 07:56:06 ​Score for Lymia_slow-death: 1.1 07:56:07 Deewiant: Score for ehird_shade_needs_to_get_laid: 0.1 07:56:08 Fiora: You can run off the opponent's edge 07:56:12 !bfjoust slow-death (.>)*-1 07:56:16 ​Score for Lymia_slow-death: 1.1 07:56:18 fizzie: Excellent 07:56:19 but... that means the opponent is already off the edge... right? 07:56:20 fizzie, what's the code for that? 07:56:27 if I'm heading towards them... 07:56:35 Fiora, the heads don't interact 07:56:37 Fiora: No? You have a tape like A.........B with A being where you start and B where the opponent starts 07:56:38 Except via values on the tape 07:56:46 oh.... so > is towards the opponent's flag. not towards the opponent (?) 07:56:51 Fiora: Yes 07:56:53 ohhhhhhhhhhhh 07:56:55 Lymia: Actually... it was a "<". 07:56:58 Fiora: You don't know where the opponent is 07:57:00 fizzie, ... 07:57:04 that makes more sense 07:57:06 I have no idea how < got 0.1 there. 07:57:11 !bfjoust slow-death ()*300(>)*-1 07:57:14 But this was in 2009, things were different then. 07:57:17 !bfjoust slow-death (.)*300(>)*-1 07:57:17 ​Score for Lymia_slow-death: 0.0 07:57:20 ​Score for Lymia_slow-death: 2.4 07:57:21 fizzie: With more than one < on the hill? 07:57:26 !bfjoust slow-death (.)*200(>)*-1 07:57:29 ​Score for Lymia_slow-death: 2.4 07:57:33 !bfjoust slow-death (.)*100(>)*-1 07:57:37 ​Score for Lymia_slow-death: 2.4 07:57:42 !bfjoust slow-death (.)*130(>)*-1 07:57:45 ​Score for Lymia_slow-death: 2.4 07:57:50 :( 07:57:53 Deewiant: It would tie against all the other <'s, and get 0 points from them, I'd think. 07:57:57 !bfjoust slow-death >+>+(.)*130(>)*-1 07:58:00 ​Score for Lymia_slow-death: 0.0 07:58:05 !bfjoust slow-death >+>+(.)*50(>)*-1 07:58:08 ​Score for Lymia_slow-death: 0.0 07:58:12 !bfjoust test (>-[-[-[-]+]++])*-1 07:58:16 !bfjoust slow-death >+>+(.)*200(>)*-1 07:58:21 ​Score for Lymia_slow-death: 0.0 07:58:21 ​Score for Fiora_test: 3.2 07:58:31 !bfjoust mroman_decoy_got_zero_point_one_in_july_2012 [>->+>->+<<<<] 07:58:32 !bfjoust slow-death >+>+(.)*50(>[-])*-1 07:58:36 ​Score for fizzie_mroman_decoy_got_zero_point_one_in_july_2012: 0.1 07:58:36 ​Score for Lymia_slow-death: 9.1 07:58:41 Ha, and still does. 07:58:52 fizzie wins :p 07:59:01 Well, mroman wins. 07:59:09 !bfjoust test (>-[-[-[-]-]-])*-1 07:59:15 Also, he produced six consecutive 0.1's there. 07:59:23 ​Score for Fiora_test: 4.0 07:59:44 !bfjoust test (>-[-[-[-]]-]-)*-1 07:59:46 !bfjoust lets-not-suck-/as/-badly? [>->+>->+<<<<[+]+] 07:59:52 ​Score for Fiora_test: 3.9 07:59:55 ​Score for Lymia_lets-not-suck-_as_-badly_: 3.5 08:00:08 -!- epicmonkey has quit (Ping timeout: 258 seconds). 08:01:59 !bfjoust test (>-----)*9(>[-[-[-]])*-1 08:02:03 ​Score for Fiora_test: 0.0 08:02:12 !bfjoust test (>-----)*9(>[-[-[-]]])*-1 08:02:15 ​Score for Fiora_test: 15.1 08:02:19 wow 08:02:22 !bfjoust self-evolving :->.>-+<-->->.>-+<-->->.>-+<-->->.>-+<-->->.>-+<-->->.>-+<--> 08:02:28 ​Score for Lymia_self-evolving: 0.0 08:02:30 is 15.1 good 08:02:35 I'm not sure what it actually does. 08:02:43 But it's the best in generation 6 08:02:45 With no hill input 08:02:52 Fiora: http://codu.org/eso/bfjoust/report.txt 08:02:55 I hope it learns to rush soon 08:03:18 -!- pikhq has joined. 08:03:20 what's the difference between score and points? 08:03:23 Gregor: Could we get a "program size" column there 08:03:26 and um, why the dropoff between 17.45 and0.00? 08:03:35 Fiora: Because the hill has a maximum size 08:03:42 hill? 08:03:49 -!- pikhq_ has quit (Ping timeout: 256 seconds). 08:03:53 Fiora: The set of programs 08:03:56 ohh 08:03:59 Fiora: And their scores, and the whole thing. 08:04:12 what's the reason the 0.00 program is included? 08:04:36 !bfjoust test (>-----)*9(>[-[-[-]]]--)*-1 08:04:40 ​Score for Fiora_test: 15.8 08:04:53 !bfjoust test (>-----)*9(>[-[-[-]]]-----)*-1 08:04:53 Fiora: The latest run is always included as the last one 08:04:56 ahhhh 08:04:57 ​Score for Fiora_test: 14.0 08:05:18 Fiora: See also http://codu.org/eso/bfjoust/breakdown.txt 08:05:28 that is really cool 08:05:38 -!- ThatOtherPerson has joined. 08:05:45 !bfjoust test (>----->+++++)*4(>[-[-[-]]]--)*-1 08:05:53 -!- aloril has joined. 08:05:54 ​Score for Fiora_test: 17.2 08:06:02 I'm on the liiist!! 08:06:08 Fiora: There was also some javascript thing with more accurate comparison but I can't find the URL in my browser history, it's probably in the wiki 08:06:11 !bfjoust test (>---->++++)*4(>[-[-[-]]]--)*-1 08:06:17 ​Score for Fiora_test: 16.4 08:06:20 !bfjoust test (>------>++++++)*4(>[-[-[-]]]--)*-1 08:06:25 !bfjoust test (>------->+++++++)*4(>[-[-[-]]]--)*-1 08:06:25 Fitness hovering around -2200 08:06:28 Still no rushes, I presume 08:06:28 ​Score for Fiora_test: 16.7 08:06:29 ​Score for Fiora_test: 16.7 08:06:41 !bfjoust test (>------->+++++++)*4(>[-[-[-]]]--)*-1 08:06:42 The best does nothing again. 08:06:43 Great 08:06:46 ​Score for Fiora_test: 16.7 08:07:06 It'll be a while before an effective rush... v.v; 08:08:08 Fiora: Re. "is 15.1 good", this is why I asked for a program size column: I think the point where most programs start to be machine-generated is currently around score 37 and up 08:08:30 so they're like made via a search algorithm? 08:08:35 Deewiant, does evolutionary algorithm'd count as "machine generated"? :p 08:08:35 !bfjoust test (>----->+++++)*4(>[-[-[-]]]-->[-[-[-]]]++)*-1 08:08:40 Lymia: Yes 08:08:40 ​Score for Fiora_test: 16.2 08:09:02 Fiora: I'm not sure, ask quintopia and ais523 about this stuff 08:09:05 * Lymia had a weird idea 08:09:08 Fiora: And/or see the wiki 08:09:16 the autogenerated ones are basically repeating simple patterns 08:09:20 i.e., the work is still mostly human 08:09:28 except for some of them i guess (gregor's?) 08:09:45 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-]]]]]--)*-1 08:09:49 ​Score for Fiora_test: 19.2 08:09:50 My stuff is all super-simple IMO and their highest is up at 28, you should be able to get thereabouts without having to think too much 08:10:27 * Lymia goes evolve an ais523_omnipotence killer 08:10:40 37 just basically seems like the current cutoff point past where you can't send it as a !bfjoust one-liner :-P 08:10:43 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+[+[--------[-[-[-[-]]]]]]]]]]]]--)*-1 08:10:47 ​Score for Fiora_test: 0.0 08:10:49 Although there might be some smaller ones up above, I didn't check them all. 08:10:58 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+[+[--------[-[-[-[-]]]]]]]]]]]--)*-1 08:11:02 ​Score for Fiora_test: 18.0 08:11:12 !bfjoust evolved_anti_omnipotence http://files.lymiahugs.com/best-3495-1964.bfjoust 08:11:17 i'd like to see a Deewiant program at #1 08:11:18 ​Score for Lymia_evolved_anti_omnipotence: 17.5 08:11:40 behemoth is only 199 bytes and has 50 score, so I guess getting high with something small is still doable 08:11:43 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+[-]]]]]]--)*-1 08:11:45 elliott: Allegro was #1 at some point 08:11:48 ​Score for Fiora_test: 17.3 08:11:52 Lymia_evolved_anti_omnipotence.bfjoust vs ais523_omnipotence.bfjoust 08:11:52 >>>><><>>><><><><<>>< ><>><>>><>>><<>>>>>>< -14 08:11:52 Lymia_evolved_anti_omnipotence.bfjoust wins. 08:11:52 :p 08:12:03 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-]]]]].--)*-1 08:12:06 ​Score for Fiora_test: 18.6 08:12:07 elliott: And maybe Pendolino before that? Or maybe only Pendolino ever was. 08:12:11 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-].]]]]--)*-1 08:12:12 I mean on a current hill 08:12:15 ​Score for Fiora_test: 18.7 08:12:18 since that was before space_elevator I think 08:12:23 which started the huge program craze 08:12:25 Yeah it was. 08:12:40 -!- ThatOtherPerson has quit (Quit: Leaving). 08:12:47 elliott: I think quintopia_poke was #1 at some point, and it's not very different from my stuff IIRC. 08:12:59 I'm a little confused, without that ".", wouldn't my program run off the end the turn after zeroing the flag? 08:13:28 This poke is bigger than I remember, though... oh well. 08:13:38 Fiora, ] takes up a cycle 08:13:57 oooh 08:13:59 ISTR some pretty small and simple program being on top post-space_elevator. 08:14:22 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-][--]]]]]--)*-1 08:14:27 ​Score for Fiora_test: 19.2 08:14:34 lymia@infel:~/programming/bfjoust-evo$ ls hill 08:14:34 ais523_anticipation2.bfjoust ais523_omnipotence.bfjoust quintopia_space_hotel.bfjoust 08:14:37 Let's see if this works :p 08:15:23 ... wait 08:15:24 Did it just 08:15:26 Learn to set decoys 08:15:29 -!- pikhq_ has joined. 08:15:36 This is the first time I've seen a best program involving pointer movement 08:15:41 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:15:42 -!- pikhq has quit (Ping timeout: 264 seconds). 08:15:43 Lymia: Your "anti_omnipotence" loses against omnipotence :-P 08:15:44 ​Score for Fiora_test: 30.2 08:15:47 @_______@ 08:15:48 Unknown command, try @list 08:15:49 How 08:15:52 19.2 to 30.2 08:15:52 Fiora: There ya go 08:16:03 okay I should give this a name then 08:16:05 Deewiant, no, no. 08:16:07 The point is. 08:16:12 To evolve it with only the targets on the hill 08:16:18 To try and beat only them :p 08:16:22 !bfjoust timestopping-mahou-shoujo (>----->+++++)*4(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:16:26 ​Score for Fiora_timestopping-mahou-shoujo: 29.0 08:16:38 oh, it played against my old one, how do I remove my old one? 08:16:39 Fiora: Replace test with < to get it off the hill 08:16:44 ah! 08:16:49 !bfjoust test < 08:16:52 ​Score for Fiora_test: 0.0 08:16:52 Fiora: Or your crappy program of choice 08:17:14 Lymia: I just figured that if it's been evolved against omnipotence it'd at least beat it before you submit it :-P 08:17:18 !bfjoust crappy >+<(.)*10 08:17:22 ​Score for Lymia_crappy: 1.1 08:17:28 !bfjoust timestopping-mahou-shoujo (>----->+++++)*4(>[-[-[+++[+[--.-.-.]]]]]--)*-1 08:17:32 ​Score for Fiora_timestopping-mahou-shoujo: 12.6 08:17:36 !bfjoust crappy >+>+<<(.)*10 08:17:37 !bfjoust timestopping-mahou-shoujo (>----->+++++)*4(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:17:39 ​Score for Lymia_crappy: 0.1 08:17:41 ​Score for Fiora_timestopping-mahou-shoujo: 29.2 08:17:42 Ha! 08:17:43 I got 0.1 08:18:15 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[(-.)*-1]]]]]--)*-1 08:18:18 ​Score for Fiora_test: 12.0 08:18:24 Deewiant, I gave up making it better. 08:18:30 oh that doesn't work no wonder <.< 08:18:33 Since it was a vibrator 08:18:35 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-.-.]]]]]--)*-1 08:18:39 ​Score for Fiora_test: 23.0 08:18:39 It didn't learn anything interesting 08:18:45 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[-.-.-.-.]]]]]--)*-1 08:18:48 ​Score for Fiora_test: 20.7 08:18:58 o_O exactly 3 repetitions of that works well...? 08:19:24 !bfjoust test (>----->+++++)*4(>[-[-[-.-.-.]]]--)*-1 08:19:27 ​Score for Fiora_test: 24.0 08:19:37 Fiora: This is called fine-tuning to beat the current hill 08:19:47 ah 08:19:48 Fiora: As programs change, other constants might work better 08:19:48 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+.+.+.+.]]]]]--)*-1 08:19:52 ​Score for Fiora_test: 20.7 08:19:56 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+.+.+.]]]]]--)*-1 08:19:59 ​Score for Fiora_test: 25.2 08:20:15 !bfjoust test (>----->+++++)*4(>[-[-[+++[+[+.]]]]]--)*-1 08:20:18 ​Score for Fiora_test: 22.7 08:20:34 Maybe there's some "overall optimal" choice but with the relatively small hill I don't think you can make any deep inferences from seeing that some number is better than another 08:21:39 there should just be syntax for optimising constants 08:21:53 like you put (+.)*? and the hill picks the best value of ? 08:22:01 and whenever new programs come in that ? gets recalculated 08:22:41 That's a lot of work for 48 programs probably with an average of at least 5 ?'s 08:22:58 Plus there's probably not a stable solution 08:23:03 well I know ais has an optimiser thingy that does this 08:23:10 it'd either have to be heuristic or very cleve 08:23:10 r 08:23:16 very clever = avoids actually trying ?s somehow 08:23:17 You optimize program 1 then program 2, then you need to optimize 1 again etc 08:23:25 and instead works out the execution path of what the optimal choice would be 08:23:28 "somehow" 08:23:37 Deewiant: um sounds like you're not being smart enough 08:23:52 Run an evolutionary algorithm for a few cycles? 08:23:54 Start with random values. 08:24:04 Do itertations where you make, like, 20 mutated copies with different ? values. 08:24:13 Then, just take the best of each program and post those as the scores. 08:24:16 !bfjoust timestopping-mahou-shoujo !bfjoust test >------>++++++>---->++++>--->+++>--->+++(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:24:19 er askjdfl 08:24:20 ​Score for Fiora_timestopping-mahou-shoujo: 32.6 08:24:22 elliott: Well if you really want "optimal" I don't see another option 08:24:28 It's not optimal, but. 08:24:34 Of course you can use heuristics like Lymia suggested 08:24:46 And it'd probably be better than the current manual guessing 08:24:47 Deewiant: maybe you don't see it because you don't have a phd in bf joust??????? 08:24:48 Or, if you want to be sophistcated. 08:24:57 elliott: Maybe 08:25:03 Run it "until the hill is stable" 08:25:16 Lymia: Which can mean "forever" 08:25:26 Deewiant: I am thinking you could avoid the no-stable-solutiont hing with something like quintopia's scoring system 08:25:32 ^^ HIGHLY SPECIFIC INFO 08:25:39 elliott: What's quintopia's scoring system 08:25:51 o.O http://www.killtheapostrophe.com/ 08:25:52 Deewiant: well you know the current scoring system 08:25:58 elliott: Not really but go on 08:26:09 Deewiant: where you get assigned weighted score based on how you beat programs based on their points 08:26:13 as in, more score for beating a program with high points 08:26:16 points = just standard wins - losses 08:26:26 so beating a better program (in terms of wins - losses) is more valuable 08:26:30 elliott: Yes OK I figured it was something like that 08:26:35 quintopia's scoring system just takes the fixed point of that 08:26:57 Hmm 08:26:58 is the wiki down ors omething i was trying to find his explanation of it 08:27:08 can anyone access http://esolangs.org/ 08:27:14 I can access it fine 08:27:20 okay well it is on the talk page of the brainfuck joust article 08:27:21 hope this helps 08:27:28 oh suddenly it works for me 08:27:32 http://esolangs.org/wiki/Talk:BF_Joust#Scoring 08:28:04 Hmm, sprunge links are broken 08:28:11 I didn't know that was possible 08:29:11 yeah they expire 08:29:13 but that section is irrelevant 08:29:15 the last one I mean 08:29:40 Yeah I was just interested 08:30:09 anyway I could imagine some sufficiently smart algorithm that takes a heap with these ? holes and calculates what the results are assuming everyone got "optimal ?s" 08:30:16 without actually figuring out values for them 08:30:27 though maybe that algorithm would be uncomputable 08:30:30 :-D 08:30:36 !bfjoust timestopping-mahou-shoujo >---->++++++>---->++++>--->+++>--->+++(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:30:39 ​Score for Fiora_timestopping-mahou-shoujo: 31.8 08:30:52 I believe the term "algorithm" implies computability 08:31:23 And if not then I take it to anyway when I say that I can't imagine such a thing, or at least have no idea how it could work 08:31:52 Deewiant: anything you can write steps for is an algorithm, even if one of those steps is "figure out if the program halts" or "decide if these two functions are equal" 08:32:18 qed™ 08:32:33 !bfjoust timestopping-mahou-shoujo >---->++++++>---->++++>--->+++>--->+++>---(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:32:37 ​Score for Fiora_timestopping-mahou-shoujo: 32.1 08:32:38 it's even more fun if you imagine allowing people to do (a{b}c)%? 08:32:53 I imagined that we would be allowing that 08:42:05 -!- Deewiant has quit (Quit: Viivan loppu.). 08:42:38 -!- Deewiant has joined. 08:48:58 ... classy 08:49:01 My evolver just generated 08:49:04 (-)*3907 08:49:27 good program 08:49:41 Deewiant: does viivan loppu mean goodbye in finnish 08:49:59 !bfjoust timestopping-mahou-shoujo >---->++++++>---->---->+++>--->--->+++>---(>[-[-[+++[+[-.-.-.]]]]]++>[-[-[+++[+[-.-.-.]]]]]--)*2(>[-[-[+++[+[-.-.-.]]]]]--)*-1 08:50:02 ​Score for Fiora_timestopping-mahou-shoujo: 34.2 08:50:15 I'm number... 16, yay 08:50:42 wow nice 08:50:42 elliott: It's a literal translation of "end of line" 08:51:05 Interesting that I did a proper quit, what I actually did was send SIGKILL... 08:51:13 my program is a total jerk with its alternating decoys 08:51:19 Maybe the sigterm went through and did something 08:51:33 if that's what they're called 08:52:01 I wonder if I can translate that program into a form my evolver understands 08:52:07 To find the true optimum ;P 08:52:33 I was kinda doing a greedy search with jumping 08:52:36 ... by hand I guess <.< 08:53:09 I can't figure out why the "-.-.-." sequence is so critical 08:53:17 if I touch that, even dropping the last ., it massively drops in score 08:53:36 Fiora: have you seen egojsout? 08:53:40 it is very useful for "debugging" this kind of stuff 08:53:44 This is interesting 08:53:48 Ah right, that's what I was looking for 08:53:48 egojsout? @_@ 08:54:01 Fiora: http://codu.org/eso/bfjoust/egojsout/index.php 08:54:03 A few programs in my population retain the gene responsible for >stuff< patterns 08:54:16 If I got speciation actually /working right/ 08:54:18 This might be useful >_< 08:54:24 Fiora: Also, compare the breakdown.txts from with the . and without 08:54:38 ooh 08:54:47 Fiora: It might just be a subtle timing thing that happens to work well against some high-score programs 08:55:31 what does the output of that thing mean? 08:55:36 I see a bunch of <>>>>>>>>>>> 08:56:23 ohhh it's the different tests 08:56:26 <> tells you which program won, I'm not sure which is which 08:56:32 !bfjoust combination http://files.lymiahugs.com/best-7980-9368.bfjoust 08:56:35 ​Score for Lymia_combination: 6.9 08:56:36 There's many of them because it's for each polarity and tape length 08:56:49 Polarity = swapping + and - or not 08:57:04 huh, mine beats space hotel on a few smaller tape sizes 08:57:24 I think that's typical with the big lock-type programs (not that I know whether space_hotel is such) 08:57:44 PSA: the polarity where + adds is sieve. the polarity where - adds is kettle. 08:57:45 They take some time to set up their stuff so they lose to fast rushers 08:58:03 elliott: I was going to say "I think elliott made up some stupid names for them" but I figured you'd just tell them anyway 08:58:07 elliott: oooh it reverses those 08:58:25 Deewiant: you're saying you have better names????? 08:59:26 elliott: ISTR "positive" and "negative" even having been in use for some time before you decided to push through this INTERCAL-esque naming scheme 08:59:26 positive and negative 08:59:48 We're in agreement then~ 09:00:13 I don't really care since one doesn't usually talk about them 09:00:58 Deewiant: IIRC I invented the names right as the polarity thing was first mentioned 09:01:04 possibly I even first mentionedi t? 09:01:27 Could be, maybe I just heard about them later 09:01:44 Possibly because everyone was using positive/negative despite your protests 09:01:49 ..... wow, space hotel is a jerk 09:01:55 it runs back to defend its flag 09:02:06 what a meaniepants, actually trying to stop me :< 09:02:07 Fiora: You can see everybody's source at http://codu.org/eso/bfjoust/in_egobot/ btw 09:02:20 space_hotel seems to be the biggest 09:02:37 .>+<[activation = 0.0000 + 1.0000*a = 0.0000 + 1.0000*b = 0.0000 + 1.0000*c]--..>+ 09:02:54 Why hasn't anybody made a proper front page for this that links to everything useful :-P 09:02:59 I guess this means it's chosen to make a rush? 09:04:14 -!- epicmonkey has joined. 09:04:21 Speciation went crazy again 09:04:22 Great 09:04:29 I wish I knew how to fix it.. 09:06:57 !bfjoust its-not-a-vibrator!!! .>+<[.>+<[.>+<[.>+<[.>+<[]--..>+]--..>+].>+<[]--..>+--..>+].>+<[.>+<[]--..>+]--..>+--..>+].>+<[.>+<[.>+<[]--..>+]--..>+].>+<[]--..>+--..>+--..>+ 09:07:01 ​Score for Lymia_its-not-a-vibrator___: 5.6 09:07:53 That's a funny, in X you can XStoreName (set the window title) someone else's window. 09:08:52 fizzie: well you can also just log every key right 09:08:53 what's security 09:10:08 is -*3 not the same as (-)*3? 09:10:55 -*3 isn't valid, I don't think 09:10:59 ah 09:12:49 * needs the parentheses. 09:12:55 (As does %, for that matter.) 09:12:59 what does % do? 09:13:10 (a{b}c)%n is like (a)*nb(c)*n 09:13:12 but with nesting 09:13:25 (a[b{c}d]e)%3 = a[ba[ba[bcd]ed]ed]e 09:13:28 Welp. 09:13:33 oooh, that's really nice 09:13:36 My evolutionary algorithm is smarter than me... 09:13:43 Empty genes caused 1.0/0.0 09:13:45 Which is NaN... 09:13:53 Which caused an explosion of species and exponential empty genes 09:13:54 urgh 09:14:41 And (a[b)*3c(d]e)*3 isn't legal, IIRC, even though it technically could be. 09:17:14 OK. 09:17:25 The "-.+" motif is appearing way too commonly to be a coincidence 09:17:45 !bfjoust vibrator (-.+.)*-1 09:18:05 ​Score for Lymia_vibrator: 6.3 09:18:23 fizzie: people did that originally which was why % was added 09:19:49 -!- monqy has quit (Quit: hello). 09:29:12 What's the maximum possible score for a bot? 09:29:20 program* 09:29:22 whatever 09:32:19 100, theoretically 09:34:00 The technical term is "enemy combatant", I think. 09:44:36 !bfjoust timestopping-mahou-shoujo >---->++++++>---->---->+++>--->--->+++>-[-[-(<)*9(+)*50(>)*9(>[-[-[+++[+[---[-.-.-.]]]]]]--)*-1]](>[-[-[+++[+[---[-.-.-.]]]]]]--)*-1 09:44:40 the best I found :< 09:44:41 ​Score for Fiora_timestopping-mahou-shoujo: 34.9 09:45:51 I can see why space hotel is so good, there's a lot of control flow things that it feels like I could only do with massive crazy manual code duplication 09:47:07 !bfjoust only-loses-5-cases-versus-omnipotence http://files.lymiahugs.com/best-23235-29652.bfjoust 09:47:16 ​Score for Lymia_only-loses-5-cases-versus-omnipotence: 17.4 09:47:26 o_O 09:47:49 that is, wow :o 09:47:54 that's so cool. 09:48:12 * Fiora tries it against hers. 09:48:35 :p 09:48:48 Targeted "beat this program" works well >_> 09:49:26 ... mine got a lot better when I fixed my off by one error ~_~ 09:49:32 it was always losing on tape length 10 09:49:35 !bfjoust timestopping-mahou-shoujo >---->++++++>---->---->+++>--->--->-[-[-(<)*8(+)*50(>)*8(>[-[-[+++[+[---[-.-.-.]]]]]]--)*-1]](>[-[-[+++[+[---[-.-.-.]]]]]]--)*-1 09:49:38 ​Score for Fiora_timestopping-mahou-shoujo: 37.6 09:49:55 I'm number 10~~~ 09:49:59 Hmm... 09:50:46 but wow. to beat the top one with a generated program O_O 09:51:20 I think for any BF Joust program p you can compute ~p that always wins against p 09:51:24 though of course I have no idea how to construct it 09:52:46 If you can actually compute ~p 09:52:55 With something other than an exaustive search 09:53:05 I'd be shocked 09:53:46 You can compute it with the same "graduate student algorithm" that's used for fractal compression. 09:53:52 wow. mine beats omnipotence every time (?????) 09:54:18 does omnipotence suffer the problem of being tuned entirely to beat other ones on the list? <.< 09:54:29 Maybe. 09:55:34 um. what's the difference between points and score? 09:56:06 Points are wins - losses. 09:56:07 I wouldn't be shocked... mumble mumble symmetry 09:56:11 Score is the weighted sum. 09:56:17 of course ~p will be highly specialised. 09:56:27 i.e. it'll probably suck against all things that aren't p, and even slightly-modified ~p 09:56:30 Fiora: Do see http://codu.org/eso/bfjoust/SCORES for details, it's not terribly complicated. 09:56:34 but in a sense you just have to mimic the opposite of what p is doing. 09:56:42 Well... 09:56:43 I suppose 09:56:56 Since programs tend to be deterministic... 09:57:15 You might be able to do a backtracking search of the action pattern you "want" to beat the other bot, or something. 09:57:33 ahhhh. so mine has a high score because it beats some relatively good programs, like omnipotence 09:57:38 But, if you can do that accounting for all tape lengths. 09:57:39 but it has low points because it doesn't really win that often overall 09:58:04 You can do that accounting for two different program's actions, right? 09:58:22 So, if you can compute ~p reasonably, you should be able to compute ~(p|q) just as well? 09:58:46 that sounds harder. 09:58:53 since ~(p|q) doesn't know whether it's competing against p or q 09:58:57 probably at least you could start by just having the heuristic being to beat both instead of one? I mean it's harder, but 09:59:11 with ~p, the trick is that it always knows what it's going to happen (for a given tape length/polarity) 09:59:19 Thing is 09:59:20 With ~p 09:59:27 You still have all tape lengths and polarities to deal with 09:59:27 I guess if you were truly terrible you could have a crazy program that knew exactly how the other programs would work and narrowed it down bit by bit as it gained information 09:59:32 If you can beat all of them for an arbitary program 09:59:36 ... but I'd imagine that being. like. megabytes long <.< 09:59:40 it's very easy if you restrict it to one tape length/polarity, I think 09:59:44 since you know the exact steps p is going to take 09:59:49 Right 09:59:59 If you can solve it for all tape lengths and priorities 10:00:04 the way that adds uncertainty is pretty cool 10:00:05 You can solve it for an arbitary number of programs, I think 10:00:33 actually, even the algorithm for a single tape length/polarity would be interesting 10:00:46 you can't just rush to it and decrease the flag, because what if it defends the flag? 10:00:52 if you counter that, what if it clears yours first? etc. 10:01:04 I think you only need two modes 10:01:17 "Touches their flag" and "Touches your flag" 10:02:13 A program can also go blind if it touches its own flag too much. 10:02:35 with a fixed length and polarity it almost feels like a game of chicken 10:02:49 "who will stop defending their flag first" or so on 10:03:57 perhaps you can do some sort of diagonalisation argument that you can't even do ~p for a given tape length or polarity, because there will always be a program that its strategy cannot counter 10:05:27 I think that feels right... from like, an information argument if you know your opponent's program, you know a lot more than it does about yours 10:05:31 What with all this activity, updated http://zem.fi/egostats/ too. 10:05:39 so if you know some program p you should always be able to design something that beats that one program 10:05:44 since that program doesn't know yours 10:06:02 hmm, that's actually the opposite of what I just said :P 10:06:06 but I agree the information argument is compelling 10:06:11 oh geez, then I totally misunderstood >_< 10:06:38 I think that you can construct this ~p for a single tape length/polarity; my previous line was doubting that 10:06:50 ooooh. the statistics are really cool. 10:07:14 The heatmap clustering plot puts only-loses-5-cases-versus-omnipotence really close to ais523_vibration. 10:07:31 as in, that you might be able to show for any negating-machine p -> ~p that there is some q such that the ~q its rules produce cannot possibly beat q (because of the nature of its rules), hence contradiction the machine doesn't exist 10:07:39 but I don't know at this point. someone should try and write it. 10:08:00 the color bar scale is logarithmic...? but 10^64 cycles kind of sounds like a lot 10:08:21 Fiora: "Red indicates a win, blue a loss"? What nonsense colouring logic is this 10:08:25 fizzie: Dammit ^ 10:08:27 Fiora: Ignore 10:08:36 Namespace collision XD 10:08:52 oh nevermind, wrong chart >_< 10:08:59 ... 10:09:15 that someone should be Fiora. or Deewiant. 10:09:27 or, um. EgoBot. 10:09:31 fizzie, it's an evolved program. 10:09:36 And, at a glance, it's very obviously a vibrator itself 10:09:44 what's a vibrator? 10:09:50 Fiora: Where's 10^64? The general duel length plot's colorbar goes up to 10^6.6 or so. 10:09:55 http://files.lymiahugs.com/best-23235-29652.bfjoust 10:10:11 Deewiant: RED is POWERFUL. 10:10:18 * elliott finds it very hard not to make stupid jokes with the "vibrator" terminology and also kind of hates himself for this 10:10:26 Deewiant: (I don't know.) 10:10:42 Fiora: vibrator is http://esolangs.org/wiki/BF_Joust_strategies#Vibrator 10:10:46 fizzie: sorry, I misread the chart >_< 10:11:06 elliott: For the hardness, the joke, or the terminology's origin or something 10:11:21 ooooh. vibrators try to make the opponent commit suicide 10:11:23 that is evil 10:12:04 It's a hard joke to make 10:12:20 elliott: sorry, I couldn't really think of a better way to say it <_> 10:12:45 Deewiant: is "all of the above" an option. 10:12:50 hm, (>++>-->-->++)*2((+)*6<(-)*6<(-)*5<(+)*5<)*2--(>(+)*50>(-)*42>(-)*46>(+)*48)*2>>>(([----[+[+[+[+[+[+[+[+[(+)*38[-][+][+--]]>{}]>]]]]]]]]>)%21)*21 was champion in 2013? 10:12:51 elliott: Sure 10:12:52 er, 2012 10:12:54 that's refreshingly simple 10:13:02 !bfjoust (>++>-->-->++)*2((+)*6<(-)*6<(-)*5<(+)*5<)*2--(>(+)*50>(-)*42>(-)*46>(+)*48)*2>>>(([----[+[+[+[+[+[+[+[+[(+)*38[-][+][+--]]>{}]>]]]]]]]]>)%21)*21 10:13:03 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 10:13:06 The tape heatmap stuff is perhaps most discriminative of them statistics. Like in the top-7 plot there's some real differences there. 10:13:10 Is that still in the hill? 10:13:14 I suspect so 10:13:16 it is leviathan 10:14:25 -!- hagb4rd has joined. 10:15:40 Lymia: Your evolved program seems to be particularly sensitive to tape lengths, at least based on http://zem.fi/egostats/plot_p8_pscores.png -- normally it's not quite that... patterned. (Though sometimes it is.) 10:15:56 wait, no. fizzie should figure out the ~p for a single tape length & polarity thing. 10:16:18 Nooooo. 10:16:19 fizzie, that's not unexpected. 10:16:24 It's primary motif seems to be 10:16:25 +.-. 10:16:29 hm, I guess the question is just "is there an execution trail that beats a given execution trail" 10:16:40 you will never need to use control structures or anything 10:16:46 and I think the answer to that question is yes obviously 10:16:49 elliott, you will need a potentially exponential search 10:16:53 so it's trivial. so fizzie should do it. 10:17:19 elliott, programs can only switch on zero/non-zero, right? 10:17:22 This should be abusable 10:17:31 right 10:17:45 Hmm.. 10:17:49 I guess "execution trail" doesn't quite catch it because you can cause the program to change its control flow as you point out 10:17:52 hmmm 10:17:52 There is a tape length where one cannot possibly place decoys, right? 10:18:14 ┌─┐ 10:18:14 ┴─┴ 10:18:14 ಠ_ರೃ 10:18:18 elliott. 10:18:25 At tape length, uh, 10, you cannot possibly place decoys, right? 10:18:29 Or is there a shorter one like that 10:18:35 well, you can do decoys if you want 10:18:42 though I doubt they'll be super effective 10:18:50 Possibly place decoys that the enemy can't just skip over :p 10:18:51 I wonder if 10:18:53 well I guess a few helps still 10:18:57 elliot used decoy 10:19:01 it's super effective! 10:19:07 lymia's algorithm fainted 10:19:22 (<)*8-[-[(>*8)decoy algorithm](>*8)non-decoy algorithm] 10:19:27 I wonder if that would work well 10:19:31 Erm. 10:19:35 Switch decoy and non-decoy 10:19:48 Anything starting with (<)*8 doesn't sound super effective. 10:19:59 It might be (<)*9 instead? 10:20:12 Anything starting with an unconditional < doesn't sound super effective at all, I mean. 10:20:26 The opponent is > that way. 10:20:31 Ah... 10:20:36 My bad :p 10:20:41 should have wrapping tapes 10:20:43 what could go wrong?? 10:20:51 (>)*8-[-[(<*8)non-decoy algorithm](<*8)decoy algorithm] 10:20:58 Fiora: ps here's a supply of ts to write my name with: tttttttt :( 10:21:01 the way I originally (wrongly) interpreted the rules was you started halfway apart 10:21:05 and it wrapped 10:21:09 Current hill on a wrapping tape might be an interesting curiosity. 10:21:11 sorrryyyyy ._. 10:21:12 Eh, not that... 10:21:21 I keep forgetting the Ts and they're only one point anyways 10:21:40 (>)*8[-[(<*8)algorithm]]-(<*8)algorithm 10:21:59 i's ok. bu now i have o live wihou ha leer for a week 10:22:20 If it's the shortest tape length, it'll find the flag, and possibly be able to respond to that. 10:22:24 Otherwise, it leaves a small decoy and.. hmm... 10:22:31 Let's try it, I guess! 10:23:13 !bfjoust experiment (>)*8[-[(<)*8[+-.-+]]](-)*4(<)*8[+-.-+>>+<-<] 10:23:19 ​Score for Lymia_experiment: 1.2 10:23:30 !bfjoust experiment (>)*9[-[(<)*9[+-.-+]]](-)*4(<)*9[+-.-+>>+<-<] 10:23:36 ​Score for Lymia_experiment: 1.4 10:23:50 well that result seems unambiguous 10:23:55 !bfjoust experiment (>)*9[-[(<)*9[[+-.-+]+-.-+]]](-)*4(<)*9[[+-.-+>>+<-<]+] 10:24:00 ​Score for Lymia_experiment: 0.8 10:24:04 OK, "no" :p 10:24:31 !bfjoust experiment (>)*8[-[(<)*8(+-.-+.)*-1]](-)*8(<)*8(+-.-+.>+<)*-1 10:24:37 ​Score for Lymia_experiment: 2.7 10:24:54 !bfjoust experiment (>)*8[-[(<)*8(+--+)*-1]](-)*8(<)*8(+--+)*-1 10:24:59 ​Score for Lymia_experiment: 3.1 10:25:01 Complete inviable. Right. 10:25:52 * Fiora gives elliott back his extra Ts 10:26:07 I don't need them, my name doesn't have a T! 10:26:19 gotttta make tthe mostt of tthese 10:26:27 !bfjoust experiment2 (>)* 8(-)*20(<)* 8(+)*20 (>)* 9(-)*20(<)* 9(+)*20 (>)*10(-)*20(<)*10(+)*20 (>)*11(-)*20(<)*11(+)*20 (>)*12(-)*20(<)*12(+)*20 (>)*13(-)*20(<)*13(+)*20 (>)*14(-)*20(<)*14(+)*20 (>)*15(-)*20(<)*15(+)*20 (>)*16(-)*20(<)*16(+)*20 (>)*17(-)*20(<)*17(+)*20 (>)*18(-)*20(<)*18(+)*20 (>)*19(-)*20(<)*19(+)*20 (>)*20(-)*20(<)*20(+)*20 10:26:31 ​Score for Lymia_experiment2: 5.4 10:26:37 Er, wait 10:26:39 fiorat 10:27:27 t has this sharp hard sound, it doesn't fit well :< 10:27:57 !bfjoust experiment2 (>)* 8(-)*20(<)* 8[(.+)*2[(.+)*128]] (>)* 9(-)*20(<)* 9[(.+)*2[(.+)*128]] (>)*10(-)*20(<)*10[(.+)*2[(.+)*128]] (>)*11(-)*20(<)*11[(.+)*2[(.+)*128]] (>)*12(-)*20(<)*12[(.+)*2[(.+)*128]] (>)*13(-)*20(<)*13[(.+)*2[(.+)*128]] (>)*14(-)*20(<)*14[(.+)*2[(.+)*128]] (>)*15(-)*20(<)*15[(.+)*2[(.+)*128]] (>)*16(-)*20(<)*16[(.+)*2[(.+)*128]] (>)*17(-)*20(<)*17[(.+)*2[(.+)*128]] (>)*18(-)*20(<)*18[(.+)*2[(.+)*128]] (>)*19(-)*20(<)*19[(.+)*2 10:27:57 [(.+)*128]] (>)*20(-)*20(<)*20[(.+)*2[(.+)*128]] 10:27:58 ack 10:28:00 ​Score for Lymia_experiment2: 0.0 10:28:19 !bfjoust experiment2 http://files.lymiahugs.com/experiment2.bfjoust 10:28:26 ​Score for Lymia_experiment2: 9.2 10:32:28 wow it's like 3 AM 10:32:39 bf jousting is kind of fun 10:33:18 !bfjoust reachbehind (>)*4(+)*10>(-)*10(>)*3(-[-[++>>--<<+>>>--<<<+++++>--<]])*-1 10:33:27 ​Score for Lymia_reachbehind: 1.0 10:34:19 !bfjoust reachbehind (>)*4(+)*10>(-)*10(>)*3(-[-[+++++[>--<+]++>[>++<-]<+>>[>--<+]<<]])*-1 10:34:30 ​Score for Lymia_reachbehind: 2.1 10:34:56 fizzie, do you have source and/or binary available for that thing? 10:35:17 Which thing? 10:35:21 The stats thing 10:35:53 It's the "vis" subdirectory in http://git.zem.fi/chainlance/tree but it can be kind of messy to run. 10:36:01 Ah 10:36:09 Also I might not have pushed the very latest, incl. that heatmap stuff 10:36:26 Fiora: I think you'll find it's actually 10 am :( 10:37:02 Yes, that is a true, it's not quite currant. And it lacks documentation. 10:37:43 Could you push the heatmaps? :p 10:38:58 I'm sorry for being in california :< 10:38:59 I guess I could see if I fail at git again, yes. 10:39:37 Fiora: I agree, everyone whose timezone means they are up at a less ridiculous hour than me must apologise 10:39:46 it is only polite. 10:40:25 10 AM isn't ridiculous is it? 10:41:13 Lymia: I think I did it right. 10:41:32 Fiora: it is if you woke up the previous day 10:41:40 It's also incredibly slow. 10:41:46 I don't think I can actually say something negative about that 10:41:57 because like, the few times in my life I've been totally free of day obligations like work and school and things 10:42:02 my sleep schedule naturally reverted to basically that 10:42:15 probably out of instinctual fear of the sun 10:42:16 well I should have gone to bed hours ago. 10:42:21 but I am terrible. 10:42:21 me too <.< 10:42:25 * Fiora also terrible 10:42:59 it's super great how I can only get anything done when it's dark and quiet at night but I feel like crap if I wake up in the dark 10:44:13 I kind of feel the same way, I wish I could spend all day alone and quiet in the dark 10:47:13 I wish it was quiet in the day 10:48:08 I use big dorky-looking closed ear headphones at work but it's still not perfect 10:48:15 and they kind of mess up my hair <.< 10:49:09 If you get two eyepatches and use them at work too, maybe it'll be dark. 10:49:25 the height of fashion. 10:50:36 hmm, something tells me systemd-journal is not supposed to be taking 99% of my CPU. 10:50:41 make that 101.2% 10:51:22 but I need to be able to see a screen 10:51:29 and inside it's not too bad ,I mean, at least there isn't any sun 10:51:39 put a screen on your eyepatches. 10:51:47 it will be like virtual reality. the future 10:52:51 pfff 10:55:10 on that note a warm blanket sounds good right now... I think it's sleep time 10:56:01 damn you americans and your still having nighttime to sleep in. 10:57:24 fizzie: help I thought I knew git. if git diff --cached foo gives me changes and I don't want them how do I stop that happening. 10:57:29 I tried git checkout foo and then git add foo but nothing. 10:57:32 Deewiant may also reply. 10:57:37 everyone else is forbidden. 10:58:03 * Fiora wanders over to a warm fluffy spot filled with plushies and pillows and dreams 10:58:22 elliott: git reset 10:58:30 Fiora: one day I will sit on my throne of discontent and outlaw sleep. 10:58:37 :< 10:58:43 elliott: E.g. git reset -p is the opposite of git add -p 10:58:45 only if you make it so I'm never tired okay 10:58:54 cure my constant sleepiness 10:59:02 oh, git reset works. but then i need to git checkout . 11:00:18 elliott: If you want to revert the file contents as well, git reset --hard. 11:00:23 oh. 11:00:26 that is obvious in retrospect. 11:00:40 -!- oerjan has joined. 11:02:45 hi oerjan. you have a fun mathematical puzzle in the logs that is now assigned to you. 11:03:06 AAAAAAAAAA 11:03:18 Deewiant: fatal: Cannot do hard reset with paths. 11:03:21 Deewiant: i would like a refund 11:03:34 `relcome 11:03:42 elliott: Dang 11:03:49 ​/hackenv/bin/relcome: 2: colourise: not found 11:04:04 `run ls bin/col* 11:04:07 ​/bin/ls: cannot access bin/col*: No such file or directory \ /bin/ls: cannot access bin/col*: No such file or directory 11:04:23 HackEgo: Spelling issues made it into "rainbow", I think. 11:04:28 Er, I mean, oerjan^ 11:04:35 oh right 11:04:40 `run echo does it exist | rainbow 11:04:45 ​does it exist 11:04:52 `run ls bin/rain* 11:04:54 bin/rainbow \ bin/rainwords 11:05:14 `run grep colo bin/* 11:05:21 elliott: Doesn't checkout also touch the index? 11:05:21 Binary file bin/lua matches \ Binary file bin/luac matches \ bin/relcome:welcome "$@" | colourise \ Binary file bin/tclkit matches \ Binary file bin/units matches 11:05:27 Deewiant: it didn't seem to 11:05:28 elliott: I.e. just do git checkout, possibly with --force if it complains 11:05:40 it just "worked" and git diff --cached still the thing. 11:05:42 still a thing. 11:05:59 `run sed -i 's/colo.?ri.e/rainbow/' bin/relcome 11:06:02 No output. 11:06:05 `relcome 11:06:08 ​/hackenv/bin/relcome: 2: colourise: not found 11:06:13 wat 11:06:21 elliott: Then you have to run two commands I guess :-P 11:06:32 `cat bin/relcome 11:06:33 oerjan: /g 11:06:35 ​#!/bin/sh \ welcome "$@" | colourise 11:06:53 /g is irrelevant... 11:07:12 oh probably the ? 11:07:14 because sed. 11:07:21 `run sed -i 's/colo.?rise/rainbow/' bin/relcome 11:07:24 No output. 11:07:25 `relcome 11:07:30 ​/hackenv/bin/relcome: 2: colourise: not found 11:07:33 i said the ?. 11:07:41 wat 11:07:47 You do need to escape the ? in order for it to be special. 11:07:49 `run sed -i 's/colo.rise/rainbow/' bin/relcome 11:07:54 No output. 11:07:57 stupid fingers 11:07:59 `relcome 11:08:03 ​Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 11:08:07 My eyes 11:08:36 all is well with the #esoteric world again, although someone _still_ needs a couple dozen swats 11:10:43 also, we need to adapt wikipedia's "no more than 3 reverts rule" hth 11:11:19 possibly also adopt 11:11:34 Adapt to something to adopt. 11:13:10 `run yes colourise | sed '1s/colo.?ri.e/rainbow/;2{s/colo.\?ri.e/rainbow/;q}' # I made the example all up, I'll be gosh-darned if I'm going to waste it. 11:13:11 colourise \ rainbow 11:20:38 oerjan: i just had a fantastic evil idea. imagine extending haskell patterns like so (to define fromJust): 11:20:43 Just (fromJust x) = x 11:21:07 (hence, fromJust x = let Just y = x in y) 11:21:43 (fst p, snd p) = p 11:22:54 ok maybe that one is too far, since you get the multiple occurrences of a single variable thing that patterns otherwise avoid. 11:23:39 it's not a pattern variable of the outer pattern though... 11:24:08 which is part of _why_ it is evil. 11:24:15 you're /defending/ my notation? 11:24:30 calling it evil is defending it? 11:24:33 Left (fromLeft x) = x, of course. 11:24:48 hm, what if you define two? 11:24:53 Left (monoEither x) = x 11:24:56 Right (monoEither x) = x 11:25:00 then monoEither :: Either a a -> a 11:25:08 does that... make sense? 11:25:18 too much. 11:25:23 I guess then Left (monoEither (Right 123)) = Right 123 doesn't hold. 11:25:27 so it doesn't quite work. 11:25:59 O KAY 11:26:21 oerjan: have you heard ski's wacky lambda patterns? 11:26:25 (\exp -> pat) 11:26:38 f (\42 -> Just x) = x 11:26:41 f _ = "abc" 11:26:42 --> 11:26:49 f g = case g 42 of Just x -> x; _ -> "abc" 11:28:25 O KAY 11:28:46 \42 -> f x = x 11:28:50 I wonder what that means. 11:29:17 f x = let \42 -> y = x in y 11:29:29 f x = let y = x 42 in y 11:29:31 f x = x 42 11:29:37 so um 11:29:39 \42 -> x 42 = x 11:29:44 ok sure that makes sense. of a kind. 11:29:55 I guess: 11:30:01 \x -> f g x = x 11:30:03 even makes sense. 11:30:04 or even 11:30:07 \x -> f $ x = x 11:30:17 which defines 11:30:22 i think you need to check that those things are confluent. 11:30:40 ($) f = let \x -> g x = f in g 11:30:44 ($) f = let \x -> g x = f in g 11:30:45 er 11:30:46 um. 11:30:48 or something. 11:30:54 look it should make some kind of sense. 11:30:55 oh i actually meant 11:30:59 \x -> f $ x = f 11:31:02 and that would define ($). 11:31:48 CONFLUENCE I SAY 11:31:59 oerjan: more like conphooeyence. 11:32:06 how goes the BF Joust problem :P 11:32:13 (that is, that you cannot end up with something different by applying your rewritings in a different order) 11:32:28 um, i've not got to it... the logs are bloody long, you know? 11:32:47 yes I was kidding. 11:32:49 we love you oerjan. 11:32:53 aww 11:33:17 that so sweet, maybe i won't kill you all when i become world dictator 11:33:21 *that's 11:34:49 fizzie: what is http://users.ics.aalto.fi/htkallas/egojsout.js.patch.txt. 11:35:00 is that the PLT contains executable code <-- the patent law treaty? wow. 11:37:04 elliott: I have absolutely no idea at all. 11:37:13 elliott: I'm sure it has nothing to do with me, despite being in my public_hmtl. 11:37:24 fizzie: I found your telephone number by removing some of the letters in the link! 11:37:52 Fortunately it's just my work phone. 11:37:59 it's just egojsout becoming self-aware and attempting to break its chains. i can confidently say this even without visiting the link. 11:38:04 Which I forget everywhere and it never rings. 11:38:36 then I cliked on the "Speech Group" link and saw your 2012 group photo. it's weird, you all look really convinced that you're actually people & speech recognition isn't a massive waste of everybody's time. what a life it must be, to be finnish. 11:38:39 elliott: so exciting! you can get to talk to whoever found fizzie's work phone! 11:38:50 oerjan: oh boy, a real life random finn! 11:38:55 I'll ask them what they think of speech recognition. 11:39:37 Hey, right, there's the group photo. 11:39:44 elliott: but will google be able to turn that back into understandable english? 11:39:53 So there is a reasonably recent photo of me. 11:40:19 I like how your picture on the actual speech group page is just a 404. 11:40:35 Yes, I never got around to getting anything there. 11:40:40 I was hoping to play "guess the fizzie" but it was too obvious. :( 11:40:54 You can use a process of elimination by removing the people who do have photos. 11:41:09 The page is outdated anyway, we're in the process of moving to a different department. 11:41:09 I cheated by already knowing what you look like. 11:41:40 oerjan: wait, they speak finnish in finland? 11:41:47 that... explains a lot of things, actually. 11:42:45 now we just have to find out which one in the picture is fizzie. we can probably eliminate the women and those who have pictures on the previous page. 11:42:50 Regarding the original topic, maybe I was adding some statistics? 11:43:08 oerjan: That will eliminate Ulpu twice. 11:43:49 Andre is not in the group photo, so it's somewhat hard to eliminate him from it. 11:43:56 i shall carefully use a set rather than bag operation, then. 11:44:50 they have gender in finland? 11:45:05 "If you can call it that." 11:45:44 I was hoping to play "guess the fizzie" but it was too obvious. :( <-- wait, obvious? 11:46:05 oerjan: yes. it's the one that looks like fizzie. 11:46:38 ah. 11:47:11 "Shock the fizzie and win." 11:47:25 i think i can also eliminate that guy in the lower left, he looks too young. 11:47:51 (that probably means, with my luck, that is him) 11:48:24 That's not me, I'm never that happy. 11:48:33 also that guy in the middle, he looks too scary. 11:48:55 and that no. 2 from upper right doesn't look finnish. 11:49:31 oerjan: By the "too scary" guy, did you mean http://users.ics.aalto.fi/svirpioj/ ? 11:49:56 fizzie: hey, you omitted the space after that ? 11:49:59 I am proud of you. 11:50:02 He's sort of shared by our group and the cog group, so he's not in the list; but he's got a picture. 11:50:02 that may be him. 11:50:06 unfortunately it crept to the left of it. 11:50:26 fizzie: I like Email: 11:50:26 firstname.lastname@aalto.fi 11:50:37 * elliott changes name to Firstname Lastname 11:51:11 -!- Taneb has joined. 11:51:15 They'll never see that coming. 11:51:20 Number two from the left has left the group. 11:51:35 fizzie: oh wait, by your "never that happy" comment you must be the farthest right one 11:51:56 I'm wondering how to write a good BF Joust implementation in Haskell 11:52:30 To me, it seems sensible to expand braces et al. at the last moment 11:52:31 oerjan: Congratulations! 11:52:37 yay! 11:52:43 Taneb: you don't want to expand them at _all_ 11:52:46 (Also by "number two from left" I mean right.) 11:52:49 that will cause massive blowup for modern programs 11:53:27 You'll want to create threaded code using tail calls 11:55:36 You can expand them into a list 11:55:44 And this expands them across time 11:55:52 because haskell is alien technology 11:55:54 They'll never see that coming. <-- you just _know_ that somewhere there's a guy (other than elliott) named Firstname. 11:57:33 I wonder how many websites he won't be able to sign up at with his name 11:58:37 I guess the moral is, if you're Taneb, don't bother writing BF Joust implementations 11:59:09 also, i think on principle a speech recognition group should be more careful with the spelling on their english web pages. 11:59:15 He might be better off getting his name changed to Admin. 11:59:35 They might be trying to thwart competition from the text processing group 11:59:40 -!- Nisstyre-laptop has quit (Quit: Leaving). 12:00:15 Taneb: we (well, maybe i) extensively discussed how to implement the current BF Joust brackets effectively before 12:01:07 i had to do this to explain how ({}) with nesting between ( and { could possibly work 12:01:08 -!- boily has joined. 12:01:19 oerjan: Perhaps we've dictated them. 12:01:34 oerjan: I'll try to find that tonight 12:01:41 Can you remember roughly when it was? 12:01:47 (i'm not sure that that feature is used much though) 12:02:07 Taneb: not really 12:02:43 oerjan: "New web pages" are on the to-do list, I think. 12:03:19 On a completely different note 12:03:26 !bfjoust overthinking ([)*-1(])*-1 12:03:30 ​Score for Jafet_overthinking: 3.7 12:03:30 I've been reading a book about web standards from 2002 12:03:57 !bfjoust - 12:03:58 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 12:04:04 !bfjoust wha - 12:04:12 ​Score for Taneb_wha: 3.7 12:04:25 I would've expected a zero for overthinking. 12:04:43 It's got a bit describing the internet of the 90's I've heard about 12:04:54 And a bit predicting the internet of the late 00's 12:05:10 But it's all "XHTML 1.0 Transitional is the way to go!" 12:05:15 "Or maybe Flash!" 12:05:32 !bfjoust nonsense ([)*1000(])*1001 12:05:39 ​Score for fizzie_nonsense: 3.7 12:05:44 Huh. 12:06:11 Weren't parsing problems automatic zeros? 12:06:56 !bfjoust nonsense ([{}])%1000 12:07:00 ​Score for fizzie_nonsense: 3.7 12:07:16 !bfjoust who [ 12:07:20 ​Score for Taneb_who: 0.0 12:07:24 !bfjoust lostinthought ([ { (>)*9 ([-.]>)*21 } ])%-1 12:07:28 ​Score for Jafet_lostinthought: 3.7 12:07:41 !bfjoust nonsense [[[]]]] 12:07:44 ​Score for fizzie_nonsense: 0.0 12:07:51 !bfjoust nonsense ([)*3(])*4 12:07:55 ​Score for fizzie_nonsense: 3.7 12:08:03 !bfjoust lostinthought2 ([ { (>)*9 ([-.]>)*21 } ])%100 12:08:03 That's kind of strange. 12:08:07 ​Score for Jafet_lostinthought2: 13.0 12:08:45 Whatever happened to XHTML 2.0 12:08:47 !bfjoust moresense ([)*4(])*3 12:08:53 I wonder how it parses that ([)*3(])*4: have to check at home. 12:08:54 ​Score for oerjan_moresense: 3.7 12:10:01 I though it would've been illegal for any [] mismatch within a (), no matter whether it makes sense "globally" or not. 12:10:12 yes, that was the idea 12:10:31 to get efficient implementation. 12:11:00 -!- c00kiemon5ter has left. 12:11:19 It probably parses it as something else. 12:11:26 but you can always just expand it textually, just not efficiently 12:11:35 !bfjoust lessense ()*4()*3 12:11:37 ​Score for elliott_lessense: 3.7 12:11:41 going to guess: that. 12:12:01 !bfjoust evenmore [ 12:12:05 ​Score for oerjan_evenmore: 0.0 12:12:11 !bfjoust evenmore ([)*1 12:12:15 ​Score for oerjan_evenmore: 0.0 12:12:23 huh 12:12:25 !bfjoust dont_rush_to_conclusions ([)*4 (>)*9 ([-]>)*21 (])*4 12:12:29 ​Score for Jafet_dont_rush_to_conclusions: 14.7 12:12:33 !bfjoust who_knows ([)*0 12:12:35 !bfjoust empty 12:12:36 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 12:12:39 !bfjoust empty . 12:12:39 It does do some "static" matching. 12:12:45 ​Score for Taneb_who_knows: 3.7 12:12:47 ^ that is my hypothesis as to the parsing. note 3.7 12:12:51 ​Score for elliott_empty: 3.5 12:12:56 :O 12:13:04 Yes, well, you get 3.7 out of many things. 12:13:27 "Essentially empty" things. 12:13:28 fizzie I think you will find that there are only 3.7 things in the universe. 12:13:47 holy trinity and a bit, elliott! 12:14:10 !bfjoust dont_jump_to_conclusions ([)*4 (>)*9 (>[>[-].])*21 ]]]] 12:14:13 ​Score for Jafet_dont_jump_to_conclusions: 0.0 12:14:18 Oerdick Grayhansson 12:14:45 -!- fftw has quit (Ping timeout: 248 seconds). 12:15:09 !bfjoust dont_jump_to_conclusions ([)*4 (>)*9 (>[>[-].])*21 (])*4 12:15:12 ​Score for Jafet_dont_jump_to_conclusions: 5.3 12:15:33 It'd be hilarious if we, doing this, ended up at the top of the hill 12:15:56 I think it's hard to be at the top of the hill if you don't get any points. 12:18:06 !bfjoust dont_jump_to_conclusions ([)*4 (>)*9 (>[(>[-].)*20])*21 (])*4 12:18:09 ​Score for Jafet_dont_jump_to_conclusions: 5.2 12:19:22 !bfjoust dont_jump_to_conclusions ([)*4 (>)*8 (>[(>[-].)*20])*21 (])*2 (])*2 12:19:26 ​Score for Jafet_dont_jump_to_conclusions: 0.0 12:19:46 !bfjoust yaaaaaaaa (>)*9([-]>)*30 12:19:53 ​Score for boily_yaaaaaaaa: 14.6 12:20:34 wow, good score 12:21:31 it's early in the morning, haven't finished my first coffee yet, and the only strategy I can think of right now is a kamikaze attack. 12:21:58 !bfjoust feeling_lucky (>)*9((-)*128[-].>)*21 12:22:02 ​Score for Jafet_feeling_lucky: 8.3 12:22:09 -!- fftw has joined. 12:22:12 i just realised i visualise boily as looking identical to fizzie 12:22:31 !bfjoust feeling_lucky (>)*9(>(-)*128[-].)*21 12:22:41 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>(-)*37>([-.]>)*30 12:22:46 ​Score for Jafet_feeling_lucky: 7.0 12:22:48 ​Score for Taneb_magic: 18.8 12:22:53 -!- metasepia has joined. 12:23:01 I think that's my best BF Joust program ever 12:23:15 !bfjoust feeling_lucky (>)*9(>[-])*21 12:23:19 ​Score for Jafet_feeling_lucky: 12.8 12:23:33 !bfjoust feeling_lucky (>)*10([-]>)*20 12:23:36 ​Score for Jafet_feeling_lucky: 12.8 12:23:41 !bfjoust feeling_lucky (>)*11([-]>)*19 12:23:52 ​Score for Jafet_feeling_lucky: 11.1 12:23:56 !bfjoust feeling_lucky (>)*12([-]>)*18 12:24:01 ​Score for Jafet_feeling_lucky: 9.7 12:24:01 fizzie: do you have black hair, and a tendency to wear orange t-shirts on fridays? 12:24:02 Ok, that doesn't work 12:24:17 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>([-.]>)*30 12:24:26 ​Score for Taneb_magic: 18.5 12:25:27 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>([-].>)*30 12:25:30 ​Score for Taneb_magic: 15.9 12:27:16 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(-)*19>(-)*23>(+)*29>(+)*31>(+)*37>([-.]>)*30 12:27:19 ​Score for Taneb_magic: 17.7 12:27:28 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>(+)*37>([-.]>)*30 12:27:31 ​Score for Taneb_magic: 17.2 12:27:43 I shouldn't have changed it 12:27:53 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>(-)*37>([-.]>)*30 12:27:57 ​Score for Taneb_magic: 17.4 12:39:17 -!- impomatic has joined. 12:40:50 -!- oonbotti has joined. 12:42:06 !bfjoust pokémon (>[-])*-1 12:42:10 ​Score for Jafet_pok__mon: 13.3 12:42:43 pok__mon 12:42:59 UTF-8 is hard, let's go shopping 12:43:14 pockymon 12:49:15 Well, this serves my right for messing on EgoJScout with a slow computer 12:49:25 The page has frozen 12:49:26 cout 12:54:24 !bfjoust magic >(-)*7>(+)*11>(+)*13>(-)*17>(+)*19>(-)*23>(+)*29>(-)*31>[-](<)*8(-)*30(>)*9[-](<)*9(-)*30(>)*10[-](<)*9(+)*30(>)*10[-](<)*10(+)*30(>)*11[-](<)*12(-)*30(>)*13[-](<)*13(-)*30(>)*14([-]>)*15 12:54:28 ​Score for Taneb_magic: 14.9 12:54:34 :( 12:54:43 -!- Taneb has quit (Quit: Page closed). 13:00:06 -!- ogrom has joined. 13:06:42 -!- carado has joined. 13:13:29 -!- TeruFSX has joined. 13:14:53 -!- carado has quit (Ping timeout: 246 seconds). 13:15:27 -!- Phantom_Hoover has joined. 13:24:47 boily: I don't believe so. 13:25:18 (I was listening to a visiting Google guy.) 13:26:14 -!- carado has joined. 13:27:00 elliott: I am not identical to fizzie, it seems. 13:33:04 -!- carado has quit (Ping timeout: 246 seconds). 13:51:13 so, puzzle... 13:51:24 Google's voice search experiment dataset is a hundred times larger than our standard Finnish training set. 13:51:29 (It's also in English.) 13:52:29 argh brain 13:53:09 oerjan: I simplified it later! 13:53:15 if you were looking at the first version. 13:53:23 I suppose possibly it's part of their terms and conditions that anything you speak to the search engine may by used agains... I mean, in research. 13:53:24 what's the simplification 13:54:07 oerjan: considering only the case where you get a program, a tape length and a polarity, and have to make a program that beats it under those conditions 13:54:12 i.e., not for all lengths and polarities 13:54:22 right 13:54:24 which makes things _significantly_ simpler, yet I still cannot see an obvious way to construct such a program generically 13:54:30 even though it seems obviously possible 13:55:33 well i think there may be essentially 2 cases (1) your opponent starts by doing something equivalent to (>)*N(-)*128 or (>)*N(+)*128 (2) your opponent wastes their time doing something else 13:56:07 in case (2), i think you can simply go to their flag immediately and clear it as fast as possible. 13:56:53 no defense they make can be effective, since they cannot detect what you do until you reach 0, by which time it's too late. 13:57:00 right. 13:57:21 deciding whether an opponent does something equivalent to (1) sounds a little tricky though :P 13:57:28 well, I suppose that structure rules out control flow 13:57:38 so you can check it independent of what your program does (= what effects on the tape you have) 13:57:46 i was assuming you knew your opponents code... am i misunderstanding? 13:57:51 oh, yes, you do 13:58:04 but the point is to construct an /algorithm/ which figures out an opponent 13:58:09 so just run what your opponent is doing if you do _nothing_ 13:58:13 right 13:58:32 the problem is countering (1) then. 13:58:37 since by the time it gets to your flag, your decisions matter 13:58:42 because it could be doing control flow after the *128 13:58:51 yeah 13:59:18 I think it's funny that the resulting warrior will never use control flow 13:59:20 and offsetting your own flag will delay your clearing of the other end. hm. 14:00:16 oh hm 14:01:12 it's not just (>)*N(-)*128, but (>)*N(-)*128 + something that doesn't change the flag the next step 14:01:49 otherwise you outrun them, i think 14:03:59 right 14:09:27 elliott: would that be a nethack-like-cell-based game? and if so.. are you making it from scratch? or are you just considering how you`d manage things if you make it so far 14:09:46 it is a brainfuck-like cell-based game 14:09:49 ^wiki BF_Joust 14:09:49 http://esolangs.org/wiki/BF_Joust 14:10:03 aw that one 14:10:09 kay 14:11:51 There are only effectively a finite number of bfjoust programs for any size 14:12:01 in case (1), if you do a + or - before rushing, then you ensure the opponent won't win in those N+129 steps _and_ your flag isn't 0 afterwards. so he cannot win in less than N+131 steps. and even with that +, you still have 129 steps to clear his flag and wait another round. 14:12:03 So yes, it is possible 14:14:04 oerjan: hmm. it can't be that easy, surely :P 14:14:11 elliott: i think it is 14:14:57 * elliott was hoping it would at least involve knowledge of the source code beyond "run it once vs. nop" :( 14:15:09 sad trombone :P 14:15:15 now there's no insight for the real problem (i.e., given a program p compute ~p that beats it on all tape lengths and polarities) 14:15:27 indeed 14:15:41 i say we outsource it to... hm. 14:15:43 hagb4rd. 14:15:47 OKAY 14:15:55 oh, you don't like that. 14:15:57 ok, you can do it then 14:16:09 wat 14:16:29 there was no space between the O and K, i think you are misinterpreting 14:16:46 or possibly my syntax is slipping 14:17:42 no no. i am sure there is no misinterpretation. have a lot of fun & report back with your findings! 14:17:48 at least we have proved than there can be no program that _always_ wins or ties at every tape and polarity. 14:17:53 *that 14:18:02 right. 14:18:16 which is something. 14:19:54 oerjan: on the downside, we don't want this technology to go too far, lest we invent an algorithm that takes *multiple* programs and beats them all. 14:20:00 in which case the game would become quite boring. 14:20:01 :> 14:20:04 horrors! 14:20:16 thankfully I have a hunch that that is impossible. 14:20:25 (i.e., there are P and Q such that no R can beat both P and Q.) 14:20:32 (or something.) 14:21:18 okay 14:21:24 -!- oerjan has quit (Quit: Later). 14:22:40 So, does P beat Q? 14:24:35 If P beats Q and Q beats R, why doesn't P always beat R? Why? Why? Why?! 14:25:00 Everything should be transitive. 14:25:11 @tell ais523 second day in a row of french spam... 14:25:11 Consider it noted. 14:25:50 fizzie: http://phpsadness.com/static/pages/sad/52/order-full-noeq-tred.png 14:26:46 Jafet: Is that the order defined by PHP's relational operators? 14:27:16 fizzie: embrace the full universe in its whole flavour! let intrasivity imbibe your soul to its core essence! 14:27:25 Apparently 14:27:28 I love the cycle. 14:28:20 (this means that sorted(sort($a)) may not always be true) 14:28:43 That's is_sorted, not sorted. 14:28:49 (I found http://phpsadness.com/sad/52 already.) 14:45:04 -!- sirdancealo2 has quit (Ping timeout: 256 seconds). 15:02:39 -!- sirdancealo2 has joined. 15:03:11 -!- ogrom has quit (Ping timeout: 256 seconds). 15:05:25 -!- ogrom has joined. 15:42:00 -!- elliott has quit (Read error: Connection reset by peer). 15:42:19 -!- elliott_ has joined. 15:43:55 -!- elliott_ has changed nick to elliott. 15:50:19 -!- Lymia has quit (Ping timeout: 264 seconds). 16:05:26 -!- Taneb has joined. 16:17:31 -!- nooodl has joined. 16:25:13 -!- Lymia has joined. 16:25:13 -!- Lymia has quit (Changing host). 16:25:13 -!- Lymia has joined. 16:37:16 -!- ogrom has quit (Quit: Left). 16:38:30 Okay, it looks like I'm not cosplaying SatW!Finland 16:52:24 :( 16:52:42 I couldn't acquire a hat 16:52:55 Unless a suspiciously floral Finland is acceptable 16:56:36 Jafet: wow those graphs 17:00:42 -!- Lymia has quit (Ping timeout: 264 seconds). 17:03:15 Hey, some people here know how to do social things, right? 17:04:58 Arguably. 17:04:59 GLARBLEFLOBB GLARBLEFLOBB WOO WOO WOOOOO 17:05:18 What is the right thing to do when you see two people, both of whom you like, really hating eachother? 17:06:16 -!- Lymia has joined. 17:10:09 Taneb: Reverse the polarity of one. 17:10:44 depends on circumstances 17:10:49 do you understand why they hate each other? 17:11:13 It's one of those hates that comes out of nothing and becomes everything 17:11:45 :/ 17:12:12 how much have you talked to them about it? 17:12:31 Both of them are being kinda scary about it 17:12:41 One of them has bitched at me about the other 17:12:57 is this a recent development? you might want to let them cool down a bit first 17:13:15 like, plant the seed of "I really like both of you and I wish you could get along", then back off for a few weeks 17:13:42 Few months old 17:13:46 hm :/ 17:13:49 And I'd really like it fixed before Saturday 17:13:54 heh 17:16:18 my girlfriend and her other boyfriend (who I was also close to) broke up a few months back 17:16:25 and i wish they could even stand to be in the same room together 17:16:29 but no luck so far :( 17:16:35 don't know what to do about it 17:17:02 Taneb: If you make them both really really angry at you, maybe they'll realize they have something in common, namely hating you. 17:17:12 fizzie, I was thinking that 17:17:13 (Not such a practical solution.) 17:17:18 haha 17:17:24 They have both hated me in the past, sort of 17:18:55 Eh? Harem? o-o 17:19:39 People have all kinds of non-binary relationships these days, I understand. 17:19:49 indeed 17:20:01 (and not-these-days, but less talked about perhaps) 17:20:33 Triangles and squares and bipartite graphs and elder signs. 17:20:35 and binary relationships that aren't sexually exclusive 17:20:50 and emotional relationships that don't involve sex 17:20:52 and lots of other things 17:20:55 Elder signs, ne. 17:20:57 turns out people are complicated 17:21:14 ITYM overly complicated and could stand to be simplified a bit HTH HAND 17:21:21 haha yup 17:21:33 well I think poly is a simplification of sorts 17:21:49 you remove drama that comes from following arbitrary rules and replace it with drama that arises from how people actually feel about each other 17:22:15 ~duck itym 17:22:15 --- No relevant information 17:22:24 "i think you mean" 17:22:59 * Lymia sets bozo bit on kmc 17:23:06 oh noe 17:23:30 And HAND is the thing you GRAB with. (Apologies for being inconsiderate towards people with no HANDS.) 17:23:41 It turns out, condescension isn't a good way to earn friends~ 17:23:56 i'm being condescending? 17:24:03 i'm sorry 17:24:03 I thought that was me. 17:24:10 well i'm the one with this "bozo bit" 17:24:30 I meant to direct my condescension at society in general (for pretending people aren't complicated) and not you specifically Lymia 17:24:32 sorry :( 17:24:38 There's probably a RFC about it. 17:24:57 IDK 17:25:01 ~duck bozo 17:25:01 bozo definition: a foolish or incompetent person. 17:25:08 bozo bits seem to be typically implemented with a list of regexes now. 17:26:14 * boily twiddles random frobs on kmc 17:26:51 You have to be careful when POKEing people, you never know which register you hit. 17:27:06 yolo 17:27:27 yopo 17:27:32 yoplait. 17:27:41 Froyo. 17:27:49 fizzie: that's the point. I'm hoping to see if kmc has any undocumented instructions. 17:28:05 * kmc WRMSRs boily 17:28:25 weapons of remote mass subtle reification? 17:28:29 yes 17:28:35 but also, write model-specific register 17:28:36 (on x86) 17:28:52 There's a frozen-yogurt place in Helsinki that has opened recently, it's kind of a new thing around here, there certainly weren't many (if any) a decade or two ago. 17:28:55 which is where a lot of obscure creatures dwell 17:29:08 I'm told that AMD has some MSRs that don't appear until you load magic values into ECX and EDX and whatever 17:29:28 There are some debugging features that need a "key" like that. 17:29:33 fizzie: we have «yeh!» here (the ! is part of the name). it's self-serve, and you pay by weight. 17:29:48 those are kinda cool 17:29:56 kmc: that's obscure, nasty, and fascinating. 17:30:25 boily: This one is just like that, there's a couple of machines with different flavours for the "base" (plus each machine of two flavours has a third lever that can make a combination of the two), and then you add candy and nuts and whatnot by yourself, and weigh the end result. 17:31:16 boily: It's called JOGO. (People who name these places aren't always terribly imaginative.) 17:32:20 in the US they are named Pinkberry and Red Mango and along these lines 17:32:21 Apparently JOGO is a Finnish franchise. Well, with one location maybe they can't really be called a franchise yet, but that's how they describe themselves. 17:32:34 it could be structured as a franchise still 17:32:54 meaning that one company licenses its IP and business model to another company which runs the store 17:33:29 Pinkberry isn't self-serve though. I've seen a self-serve one in the US (in the mall in SF that has the curved escalators) but not many 17:34:06 "Joko" is a Finnish adverb meaning yet/already, so they can make punny advertisements, like "Jogo olet maistanut?", as in "Have you already tasted?" except with some spurious consonant gradation. 17:35:36 I guess you could make the same kind of pun in French: «Yeh-vez vous déjà goûté?» 17:35:45 it's kind of crazy that Starbucks has grown the way they have without franchising 17:37:12 I always thought that "there's so many Starbucksen" thing was a kind of a joke, but then in Portland there were so many of them. 17:39:00 There's a single Starbucks in Finland, and that's at the Helsinki-Vantaa airport, and nobody goes to the airport except for reasons related to flights (the public transportation to there kind of sucks), so you only really get to experience the 'bucks here when coming/going somewhere. 17:39:27 it is a joke, but it's funny because it's true 17:39:55 hm how did i get to the airport 17:39:58 We also don't have a single Burger Kings; the closest is probably in Stockholm. 17:40:10 There's buses, but there's nothing going on tracks. 17:40:11 Hexham has no Starbucks 17:40:19 Or MacDonald's-s 17:40:24 Or Burger Kings 17:40:24 i think the bus from the central railway station 17:40:28 Or Pizza Huts 17:40:31 Or KFCs 17:40:44 no combination pizza hut and taco bell? 17:40:55 kmc: Did you take the cheap regular-number-615-or-720-or-whatever bus, or the slightly more expensive direct Finnair bus? 17:40:59 Indeed, no combination Pizza Hut and Taco Bell 17:41:03 I think the cheap one 17:41:19 It's the one that also has stops on the way. 17:41:51 They're building the "raindrop" railway line now that's going to connect two railway branches leaving Helsinki, and do it so that it goes under the airport, so in a few years one should be able to take a local train there. 17:42:04 we have a special bus/shuttle to get to the airport. it is route 747. (7xx buses are special routes, like the 777 for the casino) 17:42:17 Wait, no, it's not the "raindrop" one, it's the other, I forget what it's called. 17:42:58 "Raindrop" is the thing they're going to make for the local traffic in the Helsinki city centre, so that it no longer goes to the central railway station but instead into an underground loop with three other stops or so. 17:43:56 Also apparently it's called Helsinki City Rail Loop in English, it's just the Finnish name that's silly. 17:44:16 boily: cute 17:44:17 (It allegedly resembles a raindrop in the map if you squint just right.) 17:44:30 the JetBlue flight from Boston to Las Vegas is flight number 777 17:45:12 Finland has its very own rail gauge right? 17:45:35 that is 4 mm off from the Russian one 17:45:41 which is considered "close enough" 17:46:09 Yes, I think that's right. 17:46:11 train might make more noise on one side or the other 17:46:34 They have that new (i.e. not many years old) high-speed (FSVO) link to St. Petersburg now. 17:47:04 that's cool 17:47:18 220 km/h max 17:47:22 Trivia: George Stephenson, railway pioneer, was from near Hexham 17:47:46 my favourite network is hong kong's mtr. still have my octopus card with me :D 17:47:51 Cuts two hours (from five and a half to three and a half) off the travel time. 17:48:04 Taneb: on the very first run of his railway (the first public inter-city passenger line ever), a Member of Parliament was struck and killed 17:48:16 it's kind of amazing that they didn't scrap the idea of railways entirely 17:48:23 but it was actually pretty good publicity for them 17:50:24 Helsinki Region Transport has one- and two-digit numbers for within-muncipality bus lines, and three-digit numbers for those that cross borders, numbered approximately so that 1xx go east, 7xx go west, and the ones that go more north are numbered "clockwise". (The ones that go south drive into the sea.) 17:50:30 also they were going to have a party on arriving in Manchester but they arrived to find that there was more of a riot already in progress 17:50:32 I don't think there's a line 777, though. 17:50:38 so they turned around 17:51:08 There's a 776, but that's the highest-numbered 7xx line. 17:51:26 amphibious bus! 17:51:36 we have those in Boston, a little bit 17:51:53 there's a tourist attraction where you ride around in a WW2-era amphibious vehicle 17:51:56 on the street and then down the river 17:52:17 oh. I thought that you needed amphibious buses for when it rains really hard. 17:52:33 (we really should have some of those here. it gets dangerous sometimes.) 17:52:35 There was those in London for a bit, I hear 17:52:54 The ferry to Suomenlinna is part of HSL's traffic network, but I don't think it has a number. (It's also not amphibious, it's just a boat.) 17:53:14 Apparently it's number is "lautta" (Finnish for "ferry") in the timetable system. All lowercase and all. 17:54:06 -!- sebbu has quit (Read error: Connection reset by peer). 17:54:24 -!- sebbu has joined. 17:54:53 -!- sebbu has quit (Changing host). 17:54:53 -!- sebbu has joined. 17:57:39 10:05 < Taneb> What is the right thing to do when you see two people, both of whom you like, really hating eachother? 17:57:46 if you feel it's a problem maybe try auspisticizing? 17:58:21 @wn auspisticizing 17:58:22 No match for "auspisticizing". 17:58:31 (homestuck joke <.<) 17:58:41 ~duck auspisticizing 17:58:41 --- No relevant information 17:59:05 Fiora.............................. 18:00:18 ~duck fiora 18:00:18 The Fiora is a river in northern Lazio and southern Tuscany, which springs from the southern flank of the Monte Amiata, near Santa Fiora. 18:00:30 -!- Taneb has quit (Ping timeout: 276 seconds). 18:00:52 what does ~duck do o_O 18:01:15 and awwww. my program fell like 6spots on the list 18:01:20 If you're not careful, it'll ~goose you. 18:01:27 duckduckgo? 18:01:31 Which list? 18:01:36 You're playing bfjoust now? 18:02:27 Fiora: ~duck is arguably the less useless command from my bot. 18:02:34 ohhh. search engine 18:02:40 (that and ~metar. I can't decide which one.) 18:02:41 shachaf: I kind of um. lost 4 hours last night playing 18:02:44 I got up to 37.6 18:03:10 it's really addictive >_< 18:05:26 You mean you gained 4 hours of playing it last night. 18:05:44 -!- FreeFull has joined. 18:10:33 not loss, not gain; the joust is moving. 18:17:42 -!- carado has joined. 18:18:11 ~metar 18:18:11 --- ~metar station 18:18:26 ~metar CYUL 18:18:26 CYUL 211800Z 22015G21KT 15SM FEW020 BKN032 BKN090 00/M07 A2965 RMK SC1SC5AC1 SLP043 18:19:18 ~metar KBOS 18:19:18 KBOS 211754Z 00000KT 10SM FEW030 BKN047 OVC060 01/M06 A2969 RMK AO2 SNB06E41 SLP055 P0000 60000 T00061056 10011 21006 58025 18:19:52 ~metar EBAW 18:19:52 EBAW 211750Z 10004KT 9999 FEW042 02/M03 Q1019 NOSIG 18:22:38 ~metar EFHK 18:22:39 EFHK 211750Z 34004KT 9999 FEW043 M07/M18 Q1027 NOSIG 18:22:43 -!- Taneb has joined. 18:23:02 Kind of chilly still. 18:23:38 mwah ah ah! at last somewhere chillier than here! 18:24:04 -!- oonbotti has quit (Ping timeout: 260 seconds). 18:24:42 I wonder how different BfJoust would be with one additional instruction 18:24:46 Foreca predicts that Espoo's nightly low for the Thu-Fri night is -18°C. 18:24:47 Namely, [] except with an inverted condition 18:25:35 boily: At least it's not supernovaing. 18:27:01 fizzie: the supernova had to take its mandatory break, then it's going to resume operations tonight. 18:29:00 why is bfjoust being talked about 18:29:49 um, I think because I was playing it last night 18:29:56 it's more interesting than bfchess 18:29:57 among other things my program beats omnipotence every time. yay! 18:30:19 And that got me thinking about it, and mentioned it around lunchtime? 18:31:36 lymia was too, doing this super cool program evolving thing 18:33:19 -!- heroux has quit (Read error: Operation timed out). 18:33:20 Regarding the ([)*3(])*4 thing, it seems that I simply have managed to get gearlance and cranklance parsers out of sync: http://sprunge.us/MEeZ -- I'll refactor it out into a separate file, that'll sort it out. 18:33:22 -!- oonbotti has joined. 18:33:28 if the <> are the inverted ones you mentioned, is AC is equivalent to A([C]B)*-1? 18:36:46 Oh 18:36:49 I guess %-1 can do it 18:37:46 that's what %-1 does? 18:37:47 [if]else, inverted: ([else{}]if-not)%-1 18:37:48 I think 18:38:05 ah 18:38:07 -!- heroux has joined. 18:38:08 Uuu,,, not quite... 18:38:30 [if]else, inverted: ([else]if-not)*-1 18:38:38 I think that emulates an if-not loop. 18:39:12 My BF Joust program seems to be super effective against Deewiant 18:39:12 -!- epicmonkey has quit (Ping timeout: 264 seconds). 18:39:45 and now I'm looking at the matchup chart and mentally imagining the sides as pokemon types <_> 18:42:26 -!- Bike has joined. 18:42:55 -!- AnotherTest has joined. 18:44:30 Fiora: how do you achieve a <_> face? 18:44:48 strabismus? 18:47:39 it's kind of like >_< except viewed from a different coordinate system 18:56:15 -!- Bike has quit (Quit: gotta restart). 18:58:42 -!- Taneb has quit (Quit: Leaving). 18:59:53 -!- Bike has joined. 19:12:31 -!- hagb4rd has quit (Ping timeout: 264 seconds). 19:15:35 !bfjoust walpurgus >-[+[(>)*5[>------]>>--((-)*16.)*-1]-](>)*5[>++++++]>>++((+)*16.)*-1 19:15:39 ​Score for Lymia_walpurgus: 2.4 19:15:40 targeted bot killing yay 19:15:54 hi lymia 19:18:05 -!- Lymia has quit (Read error: Connection reset by peer). 19:21:52 quintopia: you hello-killed Lymia! 19:28:35 i'm strong like that 19:30:08 btw, for purely statistical purposes and the greater good of humanity, what are your approximate coordinates and body weigh? 19:40:57 You should make up one of those Google Maps powered things where you can put your own pin on the map, to collect this data? 19:41:35 Actually, come to think of it, was there an #esoteric map like that already? 19:43:19 hmm, there might have been yes 19:43:34 heuristically you could just say everyone lives in hexham, it'd be pretty accurate 19:43:53 -!- oerjan has joined. 19:44:08 -!- epicmonkey has joined. 19:48:11 according to my list, I'm the fattest esolanger. 19:48:36 ooh 19:48:37 oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 19:48:40 @messages 19:48:41 elliott said 5h 25m 2s ago: sorry. 19:48:48 ...wat. 19:49:30 -!- ogrom has joined. 19:50:05 oerjan: gréétings 19:50:33 hëllô 19:51:55 elliott: ok i think i've found the relevant time period in the logs, and i still have no idea why you are saying sorry. 19:52:53 (2 minutes after i quit last time, iicc) 19:53:04 boily: fat and boily? 19:53:19 oily and boily 19:53:23 boily: you could calculate the average BMI of an esolanger 19:54:53 @tell elliott Did I miss a private message from you? I have no idea why you said "sorry." 19:54:53 Consider it noted. 19:54:56 ~eval (150 / 2.2) / ((70 * 2.54) ** 2) 19:54:57 2.1567761131811684e-3 19:55:11 ~eval (150 / 2.2) / ((70 * 2.54 / 100) ** 2) 19:55:11 21.567761131811686 19:55:21 Fiora: I'm at 21.6. 19:55:23 (I guess you'd need heights for that) 19:55:39 are these SI units? 19:55:48 olsner, oerjan: I still need your own coordinates :D 19:56:04 (I already put Trondheim for oerjan, as an educated guess.) 19:56:10 yes i'm in trondheim 19:56:28 oerjan: yes, I converted from lbs to kg, and from inches to meters. 19:56:53 wait what 19:57:00 seems my router is broken again ... it refuses to create new connections, but this already-established irc connection is apparently fine 19:57:04 what units are 150 and 70 in 19:57:15 150 lbs, and I'm 5'10" tall. 19:57:19 ah 19:57:21 70 * 2.54 sounds like inches. 19:57:54 > 180/0.82^2 19:57:56 267.69779892920883 19:58:06 ... 19:58:07 um that doesn't seem right 19:58:12 0.82??? 19:58:20 oh duh 19:58:27 oerjan: 180 kilograms and 82 centimetres? 19:58:28 boily: I thought you were french, why do you know your height and weight in inches and pounds? 19:58:36 > 0.82/1.81^2 19:58:38 0.2502976099630658 19:58:39 canada 19:58:43 wait what 19:58:55 oerjan: You weigh 0.82 kg? 19:59:04 fizzie: that 100 is confusing me 19:59:06 olsner: I'm from Québec. body weights are in pounds, heights in feet, pool temperatures in fahrenheit. 19:59:19 oerjan: The / 100 was to convert from cm to m. 19:59:21 > 82/1.81^2 19:59:23 25.029760996306585 19:59:24 I think the formula is (kg / m^2) 19:59:27 OKAY 19:59:31 oerjan: (After the 2.54 cm/in multiplication.) 19:59:37 _now_ it seems right 19:59:49 or close to it 19:59:59 > 53/1.70^2 20:00:00 18.339100346020764 20:00:01 i might have lost even more weight 20:00:02 hmm, is quebec that place that we agreed actually exists or some hypothetical part of "canada"? 20:00:04 yikes 20:00:15 * Fiora 's is about 18.3 too 20:00:18 i hear bmi is stupid about age though 20:00:23 olsner: I think you stopped at ottawa. nothing was existentially decided after that. 20:00:24 I think I pretty much match oerjan's measurements. Though I haven't weighted myself in the last five years, so it's probably anywhere in the [70, 90] range. 20:00:50 fizzie: I'll put 80kg for you, if that's okay. 20:01:05 boily: It's the right order of magnitude. 20:01:29 The battery has run out in our scale, and anyway it'd be in a different room. 20:01:42 I've thought my weight was about 80kg for the last 10 years or so, it's not too bad (iirc) but I think it's also completely wrong 20:01:44 It's one of those electro-nicks ones. 20:04:10 hm there's an electro on freenode 20:04:23 he has great opportunity for a cheesy pun 20:04:46 > 67/1.81^2 -- I was this ten years ago, but then again I wasn't really all that interested in eating anything back then. 20:04:48 20.45114617990904 20:09:39 150 lbs, and I'm 5'10" tall. // you lose the fatness war, I'm fatter than you, nurr nurr nurr 20:09:53 We also don't have a single Burger Kings; the closest is probably in Stockholm. <-- huh trondheim alone has several 20:11:22 pff, fatness war 20:11:37 -!- AnotherTest has quit (Quit: Leaving.). 20:12:13 Fiora: 'murica 20:12:42 whats a lb 20:12:51 I don't know, it's this weird measurement some people use 20:12:51 is it like a stone 20:12:55 I think it's related to a sto-- 20:13:02 <.< thinking exactly the same thing 20:13:02 sto++ 20:13:04 It's a large boulder. 20:13:12 So it's kinda like quite a few stones. 20:13:51 -!- AnotherTest has joined. 20:13:51 is burger king the same thing as burgeranch 20:14:01 apparently it is nowadays but wasn't at the time 20:14:07 wow, the average BMI in america is 27 now 20:15:30 I'm at 28! Woooh, beatin' the average! 20:16:12 > 0/0^2 20:16:14 NaN 20:16:16 I win! 20:17:33 BMI is pretty bullshit anyway 20:17:35 but yes 20:17:39 we are a country of lardasses 20:17:50 * kmc is trying to lose weight 20:18:01 yesterday I tried to run a mile and only made it 0.46 miles but my time was pretty good I think? 20:18:04 Actually, come to think of it, was there an #esoteric map like that already? <-- there used to be, yes 20:18:20 fizzie: wat, no burger king anywhere in finland? 20:18:25 i tried to run a mile but i only made 100m 20:18:25 What was your time? 20:18:45 but by my calculations i'm basically set to win all the marathons 20:18:49 I think 100-150m is about where my asthma kicks in and tells me to go back to the computer 20:19:03 Bike: 3m 44s 20:19:26 ...wow for a second i thought it was 0.46 out of of .60 and was ._. 20:19:35 obv. i couldn't do another 0.46 miles at the same time right after 20:19:50 yeah, it's probably better to pace yourself too 20:19:51 olsner: None. AFAIK, they've said (to reporters) that there's too much competition (and probably too small markets), what with two reasonably entrenched burger chains already. 20:20:05 i've been trying to be able to do a nine minute mile without being exhausted afterwards. progress is slow 20:20:28 yeah i was pretty beat right after 20:20:34 fizzie: oh, what's the other entrenched burger chain? 20:20:47 kmc: I am still kind of shocked looking at the distribution and being like "what I have lower bmi than 95% -- how is that even possible" 20:20:51 "I've run the Cooper test in 12 minutes." 20:21:01 i can do it and lift weights and stuff after, but it's the most exhausting part of the workout. 20:21:21 * Phantom_Hoover fucks around on google maps for a bit, realises a mile is far shorter than he'd thought 20:21:27 olsner: The (mostly; they have some places abroad) national one, Hesburger. (The other being McD.) 20:21:41 hmm, hesburger? never heard of it 20:21:51 Well, it is pretty Finnish. 20:22:00 There's at least one in Tallinn. 20:22:12 And I think maybe some in Latvia/Lithuania. 20:22:42 And one was somewhere in middle east for some reason, I think. 20:22:49 Far away, anyway. 20:24:08 There are probably more Hesburgers in Finland than McD's; a majority of big shoppint centres has one. (Whereas McD's are all "standalone" locations, not integrated with anything else. I understand it's some kind of a policy they have here.) 20:24:45 there was a hesburger in syria between 2004-2006, apparently 20:25:05 bet they're kicking themselves now 20:25:20 nothing works up a craving for finnish burgers than a civil war 20:25:27 *more than 20:25:27 olsner: I think that's what I was thinking of. 20:25:48 But they still have some in as far as Germany, if Wikipedia is to be believed. 20:25:50 "Hesburger also have pasta restaurants (which offer a pasta menu in addition to the normal one), [...] and restaurants which also offer carwash services to their customers." 20:26:14 There's very few of HesePasta's around. 20:26:24 They also have a HeseKebab now. 20:27:04 Also, it used to be so that the two burger places were McD (the leader) and Carrols (the competitor), but Hesburger ate up Carrols a while ago. 20:27:06 how much do they charge for a kebab? 20:27:38 I haven't been in the HeseKebab, there's just one I've seen from the bus window. 20:27:54 HesePasta comes in this cardboard box. 20:28:19 judging by this picture on the web, the kebab also comes in a cardboard box ... with no sauce? 20:28:23 There's a HesePasta in Hartwall Areena, so I've visited it once every Assembly the last few years. 20:28:44 "Did you mean: cheese kebab" well not quite. 20:28:58 http://www.hesekebab.fi/files/images/hesekebab_aloituskuva2.jpg there's some kind of sauce there. 20:29:47 Seems they have only one in Helsinki, but a large number in the Turku corner of Finland. Curious. 20:29:55 Perhaps they started by testing the concept there. 20:29:59 http://www.hesekebab.fi/tuotteet/kebablautanen was the one on the front page 20:30:33 (is that sugar listed as some sort of allergy information?) 20:31:11 Uh... yes. 20:31:16 I don't know why. 20:32:14 Anyway, what you have there is the "Kebablautanen", i.e. "kebab plate". What I linked to was the plain "Kebab". 20:32:24 It does seem kind of dry. 20:32:32 more like kebabcardboardbox 20:32:35 There's no sauce listed in the ingredients list either. 20:32:46 Oh, that's just because it's a different product. 20:32:47 -!- ogrom has quit (Quit: Left). 20:33:00 It says you can choose a mayonnaise or a sauce from their usual list of ones, in the text. 20:33:06 maybe it's to make it officially healthier by making the sauce "optional" 20:33:13 an allergy to sugar. 20:33:21 Fiora: That would suck. 20:33:37 (that sounds like the most oversimplified description of diabetes ever?) 20:34:37 the old name for diabetes here is sugar sickness 20:34:47 Anyhow, there's 270 Hesburger restaurants in Finland, but only 83 McD's. 20:35:25 Also a local business magazine article from the 2008 said that McD has been unprofitable (with a couple of exceptions) in Finland for almost its whole existence here. 20:35:39 Fiora, also you're just courting the people who get pedantic about the use of the word allergy 20:35:52 I wonder if they've checked for horse meat yet ... they're only one letter away from Hestburger 20:36:25 olsner: I think they had a note about how they are very careful about their meat in the Hesburger in our local shopping mall. 20:37:16 Phantom_Hoover: people with an allergy to the word allergy? 20:37:24 olsner: Also, there *were* two Burger Kings in finland, back in the early 1980s; but they quit in 1984 and 1985, respectively; and the planned third one turned into a McD instead. 20:37:32 an allergy to its inaccurate use, yes 20:37:51 olsner: And they announced a comeback to Finland in September 2010, but then canceled it. 20:38:56 Because they "don't see enough opportunities" here. 20:39:32 they must be doing it wrong, people always want more junk food 20:40:13 It's kind of annoying, because they have that cheeseless-by-default Whopper; we've visited some BK's on holiday trips, and it's a novelty to be able to order something in a burger place without having to customize. (My wife doesn't do cheese.) 20:40:27 But maybe it wouldn't feel that special if we had a BK in Finland. 20:42:21 We're kind of lacking in these franchisey places. Though we've got a reasonable number of Subways these days. 20:42:39 Almost all the Pizza Huts have closed, though, there's just a few left. 20:42:56 pizza huts are few and far apart here in sweden 20:43:39 They have 7 locations left, of which 6 are in Helsinki and one is in Tampere; and of those six some are not "full" restaurants. 20:44:13 we recently got a pizza hut "near" my town, but they placed it so far out in the middle of nowhere that I will most likely never visit it 20:45:30 There's 105 Subways in Finland, apparently. That's more than there are McD's. 20:45:57 Then again, Subways don't seem to have any sort of problems being integrated into shopping malls here. 20:47:06 Oh, and we don't have a single KFC, as far as I know. 20:47:51 There's a clone called "Southern Fried Chicken" in a prominent location in the city centre, though. I think that's a UK chain? 20:48:24 (At least I've always assumed it's a clone, I've never been in there.) 20:49:26 http://en.wikipedia.org/wiki/Southern_Fried_Chicken_(franchise) is the best article. "In the 1970s Withers travelled to America -- Withers made a visit to Greenville, South Carolina, where he learned about fried chicken." 20:49:46 He LEARNED about FRIED CHICKEN there. I'm sure it was a MINDBLOWING experience. 20:49:49 we probably don't have a KFC either, the fried chicken thing is fairly alien to us as well 20:50:03 (Also the picture in the article is from Helsinki.) 20:50:19 Well, but, I mean, what's there to learn? It's chicken, and it's fried. 20:51:15 There's KFC's in Europe, I know that much. There was one in... Prague? Or maybe it was Florence. 20:52:02 you can't just fry some chicken, you have to serve it somehow, and teach people how to eat it, and so on 20:52:20 http://en.wikipedia.org/wiki/File:KFC_world_map1.png Finland/Sweden/Norway indeed seem to be (one of) the odd ones left out. 20:52:25 Even Denmark is blue. 20:53:11 no kfc in north korea either 20:54:22 -!- AnotherTest has quit (Quit: Leaving.). 20:54:48 "List of countries with KFC franchises -- Currently abandoned markets -- Sweden -- Present in the 1980s, but since closed." 20:54:53 You've at least had some. 20:55:21 -!- AnotherTest has joined. 20:57:11 Taco Bell is another thing we don't have. As is Wendy's. (I don't know how widespread those two are.) 20:57:32 we have something called "taco bar" 20:57:41 http://en.wikipedia.org/wiki/File:Wendy%27s_world_locations.svg seems they've kind of pulled out from Europe. 20:57:42 -!- zzo38 has joined. 20:58:02 (Who keeps making all these maps about fast food chain global penetration?) 20:58:05 hi zzo38 20:58:49 Hello 20:59:18 I don't think there's a chain-style "Mexican" place in Finland. 20:59:27 zzo38: Any exciting insights? 21:00:22 rumor has it that actual mexican food is almost completely different from that kind of "mexican" food 21:00:33 We have plenty of "tex-mex" though 21:00:41 amerimex 21:00:46 Which is probably nothing like what they would eat in either Texas or Mexico. 21:00:49 s/probably// 21:00:50 shachaf: Let me to think of it; I forgot temporarily. 21:01:02 zzo38: OK. 21:01:08 Lumpio-: There's plenty of it, but I can't think of a chain of it, at least immediately. 21:01:14 mm 21:01:26 I can only think of Amarillo which claims to be sort of a tex-mex kinda place at times 21:01:43 Okay, that might count. 21:01:59 There's not all that many of them, though? Like, less than a dozen? 21:02:45 Gregor: Oh, I fixed a parser issue that was in gearlance that I had already fixed in chainlance; you might want to consider updating. (Shouldn't affect any valid programs, but some invalid ones were being accepted and did... something I can't be bothered to find out.) 21:03:08 Oh my, there is in fact quite a few. 21:03:24 Two dozen. Well, how about that. 21:05:09 I guess Chico's also has a bit of the "tex-mex" stuff, though it's more branding itself as generally American. 21:05:19 fizzie, how dare you invalidate previously accepted programs! Do you know how much time and effort was spent that you invalidated and needs to be repaired?!?!? 21:05:32 (What's gearlance/chainlance?) 21:05:38 Sgeo: None of the current hill changed, FWIW. :p 21:05:48 Sgeo: The implementation !bfjoust runs on. 21:05:51 Ah 21:06:02 -!- augur has quit (Remote host closed the connection). 21:06:16 Also I said it wrong. 21:06:18 * Sgeo was thinking of that PHP change that someone was complaining about 21:06:26 Where I said "chainlance" I meant "cranklance". 21:06:29 -!- augur has joined. 21:08:55 -!- AnotherTest has quit (Quit: Leaving.). 21:09:51 It went approximately so that I first wrote chainlance, which compiled to... something, I forget what exactly; then based on that wrote cranklance, which is a "compile to threaded-ish code, dispatch with GCC computed goto" kind of an implementation, which does the statistics; and then based on that I made a trimmed-down version (dropped out the statistics collection, basically) called ... 21:09:57 ... gearlance which Gregor put in the bot, I think because it was a bit speedier than egojoust. 21:10:37 -!- augur has quit (Ping timeout: 252 seconds). 21:11:47 The etymology of the nomenclature is something like that lances are a thing which are used for jousting, and chainlance is kind of like chainsaw in that it's really fast (it isn't all that fast), and cranklance is like a hand-cranked version of it in that it's slower but you can see what happens (it isn't all that slower), and gearlance is [something something faster than cranklance something ... 21:11:53 ... something]. 21:12:03 I guess there are, like, gears and stuff? 21:16:48 -!- Taneb has joined. 21:24:14 Ahahaha 21:24:16 Ahahaha 21:24:29 Haskell has just became slightly more ridiculous for me 21:25:18 (I've unlocked the power of newtype Mu a = Mu {getMu :: Mu a -> a} 21:25:53 fix = \f -> f (\x -> getMu x x) (Mu $ \x -> getMu x x) 21:26:21 useful 21:26:31 what the hell 21:26:35 Taneb: Curry's Paradox! 21:27:12 does that relate at all to the other thing data Fix f = In (f (Fix f)) 21:27:14 obv. not a good system if it can prove santa claus to exist 21:27:17 also sometimes called Mu 21:27:25 Taneb: oleg has an article on interesting ways to write fix in haskell 21:27:46 I don't believe Oleg exists 21:28:26 people say that Oleg is working on a weather predicting computer for the navy 21:28:33 but maybe... he is a weather predicting computer 21:29:25 @src Mu 21:29:25 newtype Mu f = In { out :: f (Mu f) } 21:29:40 data Mu f = Mu (forall a. (f a -> a) -> a) 21:29:40 data Nu f = forall a. Nu a (a -> f a) 21:29:41 data Fix f = Fix (f (Fix f)) 21:29:47 I think that Mu is the real Mu. 21:29:55 But it's equivalent to Fix in Haskell? 21:29:57 Oleg reorganized his site 21:29:59 @src Rec 21:29:59 newtype Rec a = InR { outR :: Rec a -> a } 21:30:08 there's a lot of ways to do this huh 21:30:29 kmc: Not much of a relation between Rec and Fix, I think. 21:31:12 @ty let k = In (go 0) where go n = print n >> return (In (go (n+1))) in k 21:31:13 Mu IO 21:31:29 :t \f -> f (\x -> outR x x) (InR $ \x -> f (outR x x) 21:31:30 parse error (possibly incorrect indentation) 21:31:31 :t \f -> f (\x -> outR x x) (InR $ \x -> f (outR x x)) 21:31:32 Occurs check: cannot construct the infinite type: a0 = Rec a0 -> a0 21:31:32 Expected type: Rec a0 21:31:32 Actual type: Rec (Rec a0 -> a0) 21:31:44 rotting 21:31:52 :t \f -> (\x -> f $ outR x x) (InR $ \x -> f (outR x x)) 21:31:53 (a -> a) -> a 21:31:58 :t \f -> (\x -> f $ outR x x) (InR $ \x -> f $ outR x x) 21:32:00 (a -> a) -> a 21:32:06 What is it called if you make the product of all the exponents of a polynomial (reduced to terms with the coefficient always being 1)? 21:32:45 What's the point of that? 21:33:07 Bike: lern2zzo38 21:40:47 Is there a way to parse the text of Magic: the Gathering cards by computer to make it into a computer program with the same meaning? 21:41:04 I'd imagine not 21:42:23 Probably it won't work with the Alpha cards anyways; I don't know how well it would work with the new cards, though. 21:46:04 -!- atriq has joined. 21:46:08 -!- Taneb has quit (Ping timeout: 260 seconds). 21:48:01 -!- sivoais has quit (Ping timeout: 252 seconds). 21:48:55 -!- sivoais has joined. 21:50:08 :t ap id InR <$> fmap `flip` join outR 21:50:10 (a -> a) -> a 21:51:44 fixed point combinator without explicit recursion or brackets 21:52:55 @ty id <*> InR <$> fmap `flip` join outR 21:52:57 (a -> a) -> a 21:53:25 That works also 21:55:34 -!- DHeadshot has joined. 21:56:38 :t fmap `flip` join outR 21:56:40 (a -> b) -> Rec a -> b 21:57:25 :t \f -> f . join outR 21:57:27 (a -> b) -> Rec a -> b 21:57:50 :t outR 21:57:51 Rec a -> Rec a -> a 21:58:04 -!- atriq has changed nick to Taneb. 22:01:37 :t inR 22:01:39 Not in scope: `inR' 22:01:39 Perhaps you meant one of these: 22:01:39 `int' (imported from Text.PrettyPrint.HughesPJ), 22:01:44 :t InR 22:01:45 (Rec a -> a) -> Rec a 22:02:52 :t ap id InR 22:02:53 (Rec b -> b) -> b 22:04:03 :t ap id 22:04:05 ((a -> b) -> a) -> (a -> b) -> b 22:15:24 Erm, isn't ap more generic than that? 22:15:25 :t ap 22:15:27 Monad m => m (a -> b) -> m a -> m b 22:15:27 oh, duh 22:19:54 -!- Taneb has quit (Quit: Leaving). 22:20:14 -!- augur has joined. 22:20:45 -!- DHeadshot has quit (Ping timeout: 260 seconds). 22:24:30 :t join outR 22:24:32 Rec a -> a 22:24:41 Rec? 22:25:06 see backscroll. 22:25:06 ^list 22:25:07 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 22:25:53 :t join outR . InR 22:25:55 (Rec b -> b) -> b 22:26:04 @hoogle InR 22:26:04 Data.Ix inRange :: Ix a => (a, a) -> a -> Bool 22:26:04 Text.ParserCombinators.ReadP chainr :: ReadP a -> ReadP (a -> a -> a) -> a -> ReadP a 22:26:04 Text.ParserCombinators.ReadP chainr1 :: ReadP a -> ReadP (a -> a -> a) -> ReadP a 22:26:11 ? 22:26:15 :t InR 22:26:16 (Rec a -> a) -> Rec a 22:26:55 :t ourR 22:26:56 Not in scope: `ourR' 22:26:56 Perhaps you meant `outR' (line 144) 22:26:57 :t ouTR 22:26:58 Not in scope: `ouTR' 22:26:59 Perhaps you meant `outR' (line 144) 22:27:00 :t outR 22:27:01 Rec a -> Rec a -> a 22:27:08 > (0$0 `outR`) 22:27:11 The operator `L.outR' [infixl 9] of a section 22:27:11 must have lower preceden... 22:27:27 seems to be directly in lambdabot's L module 22:28:46 :t InR . const 22:28:48 a -> Rec a 22:33:08 :t join outR . InR . join outR 22:33:10 Rec (Rec b -> b) -> b 22:33:25 :t join outR . InR $ join outR 22:33:27 b 22:33:37 ! 22:34:43 @unpl join outR . InR 22:34:43 (\ c -> (outR >>= \ d -> d) ((InR) c)) 22:35:43 :t \x -> outR (InR x) (InR x) 22:35:44 (Rec a -> a) -> a 22:36:44 :t ap id OutR 22:36:45 Not in scope: data constructor `OutR' 22:36:53 :t ap id InR 22:36:55 (Rec b -> b) -> b 22:37:26 -!- DHeadshot has joined. 22:38:29 ok it's just fix id 22:40:52 -!- jokarkka has joined. 22:41:38 -!- jokarkka has changed nick to kyyni. 22:41:54 `welcome kyyni 22:42:07 kyyni: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:48:14 -!- kyyni has quit (Quit: leaving). 22:48:16 -!- augur has quit (Remote host closed the connection). 22:49:12 -!- azaq23 has joined. 22:50:36 -!- kyyni has joined. 22:51:02 `relcome kyyni 22:51:06 ​kyyni: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:51:41 Oh no, more .fi. 22:52:06 -!- oerjan has set topic: The harmonic mean welcoming channel on Freenode. You have been warned. | #esoteric is supposed to be about esoteric programming languages, but is really a couple of dozen people being weird | Newsflash: fungot has been writing spam for money. | Logs: http://codu.org/logs/_esoteric/. 22:55:08 that's the state of affairs 22:56:26 how kyynical 22:56:46 If arithmetic mean is (a1+a2+...+an)/n and geometric mean is (a1*a2*...*an)^(1/n), can you go one step further still, and get some kind of f(a1^a2^...^an) mean? (I guess that's a bit unlikely, what with ^ not being commutative or anything...) 22:57:10 huh i don't know 22:57:47 LoseThos is now known as TempleOS 22:57:53 http://www.reddit.com/r/programming/comments/1aqdxn/temple_operating_system_v100_released/ 22:59:15 i kind of had it in my head that that guy died 22:59:36 fizzie: well you could select a subset such that ^ would be commutative 22:59:58 like {x} or {2, 4} 23:00:06 hmmm it still wouldn't be associative 23:00:32 The trimean is the average of the median and the midhinge. 23:00:38 that's a shame because defining means on sets like {x} is pretty easy 23:00:41 i think there's a generalized mean 23:00:47 I have also read of "ZungJung" average 23:00:56 fizzie, well you need some concept of right-inverse tetration 23:01:24 (Midhinge is the average of the first and third quartile.) 23:02:01 There seem to be several generalized means. 23:02:49 -!- variable has changed nick to function. 23:03:01 Another thing I want to know is, anyone who is artist are you able to make the METAFONT files for the mana and tap symbols of Magic: the Gathering cards? 23:03:35 zzo38: are you artist? 23:03:42 No. Not very good. 23:03:52 I mean someone who know how to make this specifically. 23:04:03 A constructive artist, also called a con artist. 23:05:57 Constructivartist 23:06:08 -!- jiella has joined. 23:06:28 I think reading that thread makes me feel more empathy 23:06:41 Can schizophrenia cause racism in people who wouldn't otherwise be racist? 23:07:30 mental disorders aren't quite like that. 23:08:05 -!- fungot has quit (Ping timeout: 248 seconds). 23:08:19 yeah, 'racism' isn't some discrete personality trait 23:24:59 Sgeo, it would be nice if people would dissociate his shitty os design from the fact that he's scary mad, though 23:34:49 * Sgeo wonders if he should play a tale in the desert 23:34:58 Tried it once, it seemed boring, but I didn't get very far 23:35:39 why are you not watching farscape 23:36:01 it will enrich your life and make you physiologically potent 23:40:37 Why are you not watching PMMM? 23:40:58 -!- Bike_ has joined. 23:41:59 -!- Bike has quit (Ping timeout: 252 seconds). 23:42:53 because it will make me the opposite of that 23:43:22 It will only cost you 6 hours to watch the whole thing 23:44:19 and what else 23:45:41 -!- jiella1 has joined. 23:46:31 you will long have memories of a wonderful, heart-touching experience that will forever shape your psyche? 23:47:34 -!- Lymia has joined. 23:47:34 -!- Lymia has quit (Changing host). 23:47:34 -!- Lymia has joined. 23:47:40 -!- jiella has quit (Ping timeout: 260 seconds). 23:48:09 truly horrible 23:48:11 -!- Bike_ has changed nick to Bike. 23:49:16 -!- nooodl has quit (Ping timeout: 272 seconds). 23:49:58 * Lymia nyan 23:50:02 * Lymia sits on Fiora's lap ^_^ 23:50:15 oh dear 23:50:25 are we reaching critical weeaboo 23:50:34 Nah 23:50:45 You need stupider people for that. 23:50:46 eeep that's not a very big lap 23:50:49 Or sillier people. 23:50:57 Sillier works better. 23:51:05 it works better for small things like plushies and cats not people 23:51:20 phantom-kun, control rod denwa 23:51:40 !bfjoust bike < 23:51:51 ​Score for Lymia_bike: 0.0 23:52:00 :< 23:53:36 * Fiora tries to squirm out and offers Lymia a spot on the couch 23:54:14 why is it always a couch 23:54:19 why not, say, a trampoline 23:54:30 too expensive 23:54:33 trampolines aren't very comfy 23:54:38 they don't have like, comfy pillows and things 23:54:46 but you can bounce 23:54:59 yeah 23:55:06 it's active comfort 23:55:24 remember back when we didn't have colours on? 23:55:39 nope 23:56:10 it was horrible 23:56:37 i can imagine 23:56:44 -!- jiella1 has quit (Quit: Leaving.). 23:57:08 I should try this 23:57:14 This is a nice color, really. 23:57:20 homutext 23:57:27 i will actually stab you both 23:57:27 ... Homura? 23:57:40 -!- boily has quit (Quit: Poulet!). 23:57:46 uh phantom don't you need to be corporeal for that 23:57:59 i'll attach fins to a knife or something and put it into the suborbital brick delivery system 23:58:11 -!- metasepia has quit (Remote host closed the connection). 23:58:15 Just drop giant chunks of rock. 23:58:18 that sounds pretty hard to aim. 23:58:28 Lymia, that's what the bricks are fall