00:00:10 <Arc_Koen> what has the biggest number to do with that, though? 
00:00:23 <oerjan> the biggest number is needed for $'s 
00:05:10 -!- Dovregubben has quit (Read error: Connection reset by peer). 
00:06:39 <oerjan> (m-1) is enough for the $'s 
00:07:04 <oerjan> (m-1)*n_$ + 2*n_: + n_rest 
00:09:09 * Arc_Koen begins to understand why Ftack is so useless 
00:09:55 <oerjan> it probably should be max(m-1, 1) 
00:12:20 <Arc_Koen> let me just check that it is really a counterexample 
00:13:36 -!- monqy has joined. 
00:14:17 <Arc_Koen> we have to define "(m-1)*n_$" to be 0 if there are no numbers though, I think 
00:14:49 <oerjan> i guess if there are no numbers you are catting the moment you hit a $, so yeah 
00:14:58 <Arc_Koen> otherwise we could include a $ as the last element 
00:15:36 <Arc_Koen> +1 symbol, +1 step, -1 in the bound 
00:17:22 <oerjan> actually you can also have $0whatever 
00:17:55 <Arc_Koen> yes but that's +3 symbols, +1 step 
00:18:35 <oerjan> so max(m-1, 0) with 0 even if m doesn't exist 
00:18:52 -!- Dovregubben has joined. 
00:19:17 -!- Nisstyre_ has quit (Read error: Connection reset by peer). 
00:19:59 <oerjan> well this is close to correct anyway, i think 
00:21:04 -!- Nisstyre_ has joined. 
00:21:14 <oerjan> yes, but we need the max 
00:22:49 <Arc_Koen> note that only :~!( can be applied to themselves 
00:23:19 <oerjan> and of those, : and ( give end states 
00:23:20 <Arc_Koen> I'm feeling so helpful right now 
00:23:34 <oerjan> while ~ and ! keep shrinking 
00:24:08 <Arc_Koen> ~ +1 step +1 symbol +1 to the bound 
00:25:37 <Arc_Koen> !x   + 1 step   either + 2 or +m to the bound 
00:30:55 <Arc_Koen> btw, ./fueuec thuemorse still ends up on a segfault, even with catching empty queues 
00:32:00 <oerjan> and the suggestion to not use recursion? 
00:33:37 <oerjan> fizzie seemed to have debugger proof that it overflowed the stack 
00:34:26 <Arc_Koen> I guess I should learn to use debuggers 
00:35:12 <Arc_Koen> TextEdit does have limitations 
00:35:43 <Arc_Koen> well, at least vim is related to programming 
00:36:03 <oerjan> but i don't even have any of the advanced vim setup some people do 
00:39:44 <Phantom_Hoover> ISTR it only writing RTFs, but I was young and stupid back then. 
00:41:04 <Arc_Koen> maybe sliiiightly more advanced as it can do some basic text formatting 
00:41:16 <Arc_Koen> but I'm definitely not using that 
00:41:46 <Arc_Koen> fun fact: it has an auto-spell check 
00:41:59 <Arc_Koen> if you don't disable it, it will correct what you're typing without asking 
00:42:12 <Arc_Koen> I wasn't aware of that, it messed with a lot of ocaml programs 
00:42:47 <Arc_Koen> like 'rec' which was systematically turned into 'ref', or the opposite 
00:45:31 <Arc_Koen> ok, this is a bug that should be corrected easily 
00:49:42 -!- subleq has joined. 
00:50:58 <Arc_Koen> empty program + ^D successfully prints an infinite amount of ? 
00:51:01 <HackEgo> subleq: 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.) 
00:51:17 -!- copumpkin has changed nick to ChuckPonzi. 
00:51:30 <itidus21> For the other kind of esoterica, try #esoteric on irc.dal.net, just incase 
00:52:08 <monqy> as if someone named subleq 
00:54:20 <Arc_Koen> oerjan: funny bug...        ./fueuec '--65' works as it should, but ./fueuec --print '--65' reveals it doesn't    -- 65      65 0      A 0     (waits for input) 
00:57:39 <Arc_Koen> so there's one (or more) function I've messed with which somehow prevents stuff to be sent back to queue 
00:57:41 -!- nys has joined. 
00:57:44 -!- monqy has quit (Quit: hello). 
00:58:42 <Arc_Koen> and that makes both ) and - destroy the next element 
01:01:59 <Arc_Koen> ok, now - and + interpret anything that's not a number as if it were a 0 
01:05:42 <subleq> ah, i see all the old folks are here 
01:07:09 <oerjan> Arc_Koen: something wrong with the use of matchwhat? 
01:07:40 <oerjan> if you assume that is true you might get such an effect. 
01:08:14 <Arc_Koen> things would have gotten serious if I had used an union 
01:09:41 <Arc_Koen> I used !*s as meaning "s is not empty" 
01:10:38 <oerjan> Arc_Koen: i suppose s[0] != '\0' is more readable, and probably compiles down to the same thing. 
01:11:03 <oerjan> oh so matchwhat _always_ returned true? :P 
01:11:36 <oerjan> well i guess unless the queue is empty 
01:12:29 <Arc_Koen> matchwhat is structured as "if (neither string nor queue are empty) {...} else if (string not empty) { false} else true" 
01:12:55 <oerjan> i have a hunch that the entirety of matchwhat could be rewritten as a single expression 
01:13:00 <Arc_Koen> so, thinking all strings were empty, he always returned true 
01:13:12 <Arc_Koen> in ocaml I wrote it another way 
01:13:52 <Arc_Koen> and could have wrote it many different other ways but heh one is enough 
01:15:27 -!- impomatic has left. 
01:16:41 <Arc_Koen> +HH still transforms into 0 though 
01:18:21 <Arc_Koen> http://sprunge.us/XfgY?c actually 
01:23:27 -!- DHeadshot has quit (Read error: Connection reset by peer). 
01:26:19 <Arc_Koen> oerjan: adding   printf("matchwhat: %s\n", (itsok?"TRUE":"FALSE"));   in matchwhat shows matchwhat isn't even called 
01:27:28 <Arc_Koen> so it's like I made a fancy error with !*s which wasn't given an occasion to mess around 
01:27:30 <zzo38> If you make (s != "") in C it makes if the address does not match the address of "" so it is different. 
01:29:29 <zzo38> But !*s means if s points to a value zero so for string meaning, empty string. 
01:29:38 <oerjan> Arc_Koen: does it get to if (op == '+') 
01:30:08 <Arc_Koen> I'll add a printf but I guess it does, since + 3 4 gives 7 
01:30:50 <Arc_Koen> ok, uh, I agree this doesn't make any sense 
01:31:31 -!- ChuckPonzi has changed nick to copumpkin. 
01:32:01 <shachaf> I value hours not spent on a plane much more than hours spent on a plane being able to watch movies. 
01:32:02 <Arc_Koen> was using a different name for exec file when compiling and executing 
01:33:04 <Arc_Koen> so basically I was using the last version which used that name, which probably was right after switching to !*s 
01:33:31 <shachaf> With that said, Virgin America's was probably the nicest domestic flight I've been on. 
01:35:55 <Arc_Koen> ok, it works with the wiki page's sample programs 
01:37:27 <Arc_Koen> if you have any other remarks on the code... :-) 
01:38:20 <oerjan> not haskelly enough ;P 
01:39:06 <Arc_Koen> so hum, you have proven fueue was turing-complete? 
01:39:48 <itidus21> oerjan has even proven that norway is turing complete 
01:40:15 -!- pikhq_ has joined. 
01:41:20 <Arc_Koen> okay so up to now I was think those 46 46 46 111 117 116 32 111 102 32 115 116 97 99 107 33 10 things were supposed to be used by underload 
01:41:40 -!- pikhq has quit (Ping timeout: 248 seconds). 
01:41:52 <oerjan> i just copied it from fungot's underload 
01:41:52 <fungot> oerjan: i already have 
01:42:50 <Arc_Koen> for a second I thought "^ul !" meant "find the last ascii-looking sequence of numbers written on this channel and translate it" 
01:43:36 <oerjan> i then had to add the initial [] when i realized that the translation of : would gobble up the first 46 before it could get printed. 
01:44:02 <oerjan> since things happen slightly in parallel, more or less 
01:45:24 <Arc_Koen> what if they are two : in the underload program? 
01:45:36 <Arc_Koen> won't the first eat [] and the second 46? 
01:46:10 <kmc> shachaf: well, HEL-JFK and JFK-SFO are of comparable length 
01:46:29 <oerjan> two consecutive underload functions aren't translated to two consecutive fueue subprograms.  you need to use the AB translation to concatenate underload programs. 
01:46:54 <kmc> i'm not sure about the subjective difference between 6h and 8h flights 
01:46:59 <kmc> they both just register as "a long time" 
01:47:04 <oerjan> so only one of the :'s will be running at a time. 
01:47:18 <kmc> shachaf: did you see http://www.ethanzuckerman.com/blog/2012/08/30/long-flights-a-somewhat-serious-business-idea/ 
01:47:54 <oerjan> the ! translation also would gobble up the [], in a very literal fashion since it happens precisely at the spot where i use a fueue ! to remove the popped element 
01:48:18 <shachaf> kmc: Hmm, I suppose that's true. 
01:48:41 * shachaf is used to 10-12-hour international flights and 4-5 hours domestic flights. 
01:48:57 <Arc_Koen> well, I'm not sure that's explicit on the wiki page, but I don't speak underload so i trust you 
01:49:26 <oerjan> i didn't explain it much i guess :P 
01:50:03 <shachaf> kmc: I find myself unable to concentrate on anything in flights. 
01:50:06 <oerjan> i suppose i should add something about A and B representing nested underload programs 
01:50:36 <kmc> shachaf: why? 
01:51:57 <shachaf> I don't know. I wish it wasn't the case. 
01:52:12 <shachaf> I'm also rarely able to sleep. 
01:53:34 <shachaf> "Conversation will be discouraged by a loud white noise machine that permeates the space, encouraging you to put on headphones and listen to whatever music you’ve brought with you." 
01:53:43 <shachaf> I can also usually not get anything done while listening to music. 
01:53:53 <kmc> yeah, that's one of the dumber parts of this proposal 
01:54:00 <kmc> one of the commenters suggests that you rely on social norms to shut people up 
01:54:07 <kmc> like the library 
01:54:42 <shachaf> Oh, and one of the most important of long flights is the loud baby in the row behind you. 
01:54:54 * shachaf accidentally a lot of words these days. 
01:56:40 <oerjan> Arc_Koen: i mean, to translate the underload program (:^):^ say, you translate A = (:^) B = :^ recursively and use the AB rule to combine them. 
01:57:09 <oerjan> or you can split it as A = (:^): B = ^ , doesn't matter much 
01:57:39 <Arc_Koen> what if you split it as A = (:^):^ B = empty ? 
01:58:16 <Arc_Koen> oh, wait, you must continue splitting until you have only one-symbol programs? 
01:58:46 <oerjan> but you made me realize i actually forgot to represent the empty program in my translation 
01:59:06 <oerjan> which is important, since you can have use for () which uses it recursively 
01:59:28 <kmc> shachaf: what about music without words 
02:00:09 <shachaf> Sometimes it's OK... Sometimes it still doesn't work. 
02:00:40 <shachaf> I should probably figure it out and collect some non-disruptive music. 
02:04:52 <oerjan> Arc_Koen: expanded the wiki table 
02:07:44 <oerjan> Arc_Koen: oh and btw the subprograms must have matching parentheses, as always in underload, which is why the (A) rule is separate. 
02:08:38 <Arc_Koen> okay, but ( and ) are underload commands that are quite unrelated, are they? 
02:08:53 <Arc_Koen> I mean, the correct parenthesing is only an arbitrary rule, right? 
02:09:10 <oerjan> no, they always match.  (A) is more or less similar to fueue (A 
02:10:53 <oerjan> except that fueue [A] does nothing, while underload [A] moves itself from the running program to the stack 
02:14:22 <Arc_Koen> zzo38: I think I corrected all bugs and memory leaks from fueue.c so i'd be thankful if you could replace it http://sprunge.us/iEAW 
02:14:39 -!- Arc_Koen has left. 
02:20:00 -!- monqy has joined. 
02:32:47 <zzo38> Review what I have written more of RogueVM; I have written a lot more by now. 
02:43:28 <shachaf> kmc: "ANSI Windows code pages, and especially the code page 1252, were called that way since they were purportedly based on drafts submitted or intended for ANSI. However, ANSI and ISO have not standardized any of these code pages." 
02:44:58 <pikhq_> 1252 at least is *compatible with* the ISO charset it gets confused with. 
02:47:32 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 
03:02:42 <kmc> i'm using gitit 
03:02:49 <kmc> i like that i can export any dumb page on my wiki as LaTeX or man page 
03:06:53 <kmc> or a S5 slideshow 
03:16:48 -!- pikhq has joined. 
03:16:53 -!- pikhq_ has quit (Ping timeout: 246 seconds). 
03:34:04 -!- ogrom has joined. 
03:46:48 -!- pikhq_ has joined. 
03:47:09 -!- pikhq has quit (Ping timeout: 255 seconds). 
03:51:47 -!- pikhq has joined. 
03:52:13 -!- pikhq_ has quit (Ping timeout: 246 seconds). 
04:11:07 -!- oerjan has quit (Quit: leaving). 
04:32:34 -!- Concreto has joined. 
04:57:23 <zzo38> OK, I wrote a lot more of RogueVM now:   http://zzo38computer.cjb.net/roguevm/roguevm.tex    http://zzo38computer.cjb.net/roguevm/roguevm.dvi    Now I have many more instructions, more about the display, a complex numeric print mode, and various other things added or modified in case they were wrong or missing before. 
05:05:08 <shachaf> Is there a simple way to make CTR mode suitable for disk encryption? 
05:06:04 <kmc> shachaf: I am going to sleep, but remind me about that question tomorrow. 
05:06:20 <kmc> @ask kmc Is there a simple way to make CTR mode suitable for disk encryption? 
05:06:23 <shachaf> @tell kmc  <kmc> shachaf: I am going to sleep, but remind me about that question tomorrow. 
05:06:30 <lambdabot> kmc: You have 1 new message. '/msg lambdabot @messages' to read it. 
05:06:50 <shachaf> kmc: Back to normal-people sleep schedule, are you? 
05:07:00 <shachaf> @tell kmc 22:06 <kmc> @ask kmc Is there a simple way to make CTR mode suitable for disk encryption? 
05:12:02 -!- nys has quit (Ping timeout: 246 seconds). 
05:13:30 -!- Vorpal has joined. 
05:25:24 -!- Vorpal has quit (Ping timeout: 276 seconds). 
05:29:35 -!- Concreto has quit (Quit: who gives a shit?). 
05:53:09 -!- impomatic has joined. 
06:22:31 -!- Lumpio- has quit (Ping timeout: 245 seconds). 
06:32:01 -!- zzo38 has quit (Remote host closed the connection). 
06:33:26 -!- ogrom has quit (Quit: Left). 
06:48:46 -!- asiekierka has joined. 
06:49:54 -!- Lumpio- has joined. 
07:12:17 -!- derdon has joined. 
07:16:22 <shachaf> @tell kmc Also, can you easily turn a stream cipher into a block cipher? (Also, some other things.) 
07:16:52 * shachaf will save conversation for tomorrow. 
07:27:59 <impomatic> Has anyone used Joy? What do you think of it? 
07:48:27 -!- nooga has joined. 
07:48:54 -!- AnotherTest has joined. 
08:03:10 -!- Vorpal has joined. 
08:38:53 -!- nooga has quit (Ping timeout: 260 seconds). 
09:22:38 -!- atriq has joined. 
09:25:32 <lambdabot> Source not found. Maybe if you used more than just two fingers... 
09:26:19 <fizzie> @tell Arc_Koen Remarks: You have another memory leak: consider ![...] or $n[...] -- in both, you throw away the block Token with deletetop(), but it doesn't free the Queue data in it; yet the only pointer to that data is lost. See http://sprunge.us/WiHK 
09:28:03 <fizzie> "Two Fingers" is a brand of tequila. I don't know where the name comes from. 
09:29:10 <atriq> I ought to upload my Fueue interpreter somewhere 
09:31:23 <atriq> Is there a way I can pipe something directly to the clipboard? 
09:31:40 <atriq> foo > /dev/clipboard or something like that 
09:32:16 <fizzie> atriq: Depends on which clipboard you're talking about. For the X clipboards, there are several command-line tools. 
09:32:30 <fizzie> 'xclip' is one, if you happen to have it installed. 
09:32:59 <fizzie> It uses the primary selection by default, and the CLIPBOARD selection if you ask it to. 
09:33:38 <fizzie> "foo | xclip" will let the middle-mouse-paste paste the output of foo, for example. 
09:33:57 <shachaf> ...Because it usually seems to be installed. 
09:34:12 <fizzie> Though neither is xclip. 
09:34:47 <fizzie> It looks very similar, except with slightly more bells on it. 
09:41:47 <fizzie> @tell Arc_Koen Remarks: I'm still a bit confused by is_empty not taking a Queue*; the "const Queue q" parameter declaration is especially confusing, since the 'const' can't really do anything too meaningful; it's passed a new Queue by value, so from the viewpoint of the caller, it couldn't modify it anyway. 
09:42:30 <fizzie> @tell Arc_Koen Remarks: In main, printf("Too many arguments.\n", argc); should either lose the "argc", or add a corresponding "%d" in the format. (The '-Wall' gcc flag would've noticed this.) 
09:43:20 <atriq> Why is getting syntax highlighting for Haskell on Tumblr so hard 
09:46:41 -!- MoALTz has joined. 
09:47:56 <fizzie> atriq: Perhaps you should start a more Haskell-friendly competitor, called Humblr?  
09:53:46 <itidus21> I don't think anyone questions that some of us have or haven't done that. 
10:17:37 <itidus21> there is no integer between 1 and 2! 
10:23:53 <fizzie> AnotherTest: Can you do that nowadays? I remember a common complaint about std::vector and such that you can't use the {a,b,c} initializers with them. 
10:24:16 <AnotherTest> fizzie: yes, that's C++11's initialize list feature 
10:29:33 <itidus21> i always admired the DATA statement in basic 
10:31:14 <AnotherTest> mroman: is the source code of stlisp available somewhere? 
10:55:04 -!- kinoSi has quit (Read error: Connection reset by peer). 
10:55:31 -!- kinoSi has joined. 
11:06:50 <mroman> The source code has gone missing. 
11:10:25 <mroman> As I'm not a person who uses backups. 
11:18:50 -!- Phantom_Hoover has joined. 
11:35:03 <fizzie> "You need me on your staff, because I'm a man who thinks." 
11:35:58 -!- nooga has joined. 
11:40:15 -!- atriq has quit (Quit: Leaving). 
11:42:34 -!- Arc_Koen has joined. 
11:43:23 <lambdabot> Arc_Koen: You have 3 new messages. '/msg lambdabot @messages' to read them. 
11:43:28 <lambdabot> fizzie said 2h 17m 9s ago: Remarks: You have another memory leak: consider ![...] or $n[...] -- in both, you throw away the block Token with deletetop(), but it doesn't free the Queue data in it; 
11:43:28 <lambdabot> yet the only pointer to that data is lost. See http://sprunge.us/WiHK 
11:43:28 <lambdabot> fizzie said 2h 1m 41s ago: Remarks: I'm still a bit confused by is_empty not taking a Queue*; the "const Queue q" parameter declaration is especially confusing, since the 'const' can't really do 
11:43:28 <lambdabot> anything too meaningful; it's passed a new Queue by value, so from the viewpoint of the caller, it couldn't modify it anyway. 
11:43:28 <lambdabot> fizzie said 2h 58s ago: Remarks: In main, printf("Too many arguments.\n", argc); should either lose the "argc", or add a corresponding "%d" in the format. (The '-Wall' gcc flag would've noticed this. 
11:44:02 <Phantom_Hoover> http://www.reddit.com/r/guns/comments/z55a3/has_there_been_more_highprofile_gun_crime_lately/c61pen4 
11:48:31 <fizzie> I didn't say those things with that many newlines in the middle. 
11:53:24 <mroman> So handing out a gun to everyone doesn't work out quite as expected? 
11:57:22 <Arc_Koen> fizzie: do you think I should change is_empty(Queue q) to is_empty(const Queue *q)? 
11:58:26 <Arc_Koen> I mean, there is not really any argument why to use a pointer here; it would be like having something like is_empty(const char **s) to test emptiness of a string 
11:59:10 <itidus21> "and how soon before they have a drug where side effects may include rectal ventriliquism. if your asshole starts talking call a doctor.. or get friends over cos it's gonna be a fun night" 
12:24:32 <kmc> hi shachaf  
12:24:32 <lambdabot> kmc: You have 3 new messages. '/msg lambdabot @messages' to read them. 
12:24:39 <kmc> against my better judgement, i am awake 
12:24:43 <shachaf> kmc: Just as I was about to go to sleep. :-( 
12:24:50 <Arc_Koen> @tell oerjan ./fueuec '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]'      11010011001011010010110011010011001011001...  '110' seems a weird start for the thue morse sequence... 
12:24:53 <shachaf> Did you sleep tonight yet? 
12:25:07 <shachaf> Oh. You just woke up early? 
12:25:10 <kmc> but my alarm went off by accident at 08:00 
12:25:16 <shachaf> Doing better than I am, then. 
12:25:22 <kmc> and i haven't been able to get back to sleep 
12:25:27 <shachaf> I wish my alarm could just wake me up. That would be great. 
12:26:44 <kmc> what does it do instead? 
12:29:23 <kmc> shachaf: can you use an ESSIV for the nonce part of the counter 
12:29:26 <kmc> isn't that enough? 
12:30:06 <shachaf> ESSIV is "generate an IV based on the sector number"? 
12:30:29 <kmc> based on the sector number and the hash of the key 
12:30:54 <kmc> i guess this is not secure though 
12:30:57 <shachaf> That's very broken since you can overwrite old blocks. 
12:31:13 <shachaf> x ^ y will give you the xor of the plaintexts. 
12:31:15 <kmc> you end up reusing the keystream otput from CTR 
12:31:17 <itidus21> maybe the internet should shut down overnight 
12:31:58 <kmc> whereas reusing the IV for CBC is not as much of a problem 
12:32:03 <kmc> but still bad 
12:32:23 <shachaf> You get the property that "someone can see if what you wrote to a block has ever been there before". 
12:32:35 <shachaf> Which is undesirable in normal uses of CBC but maybe doesn't matter in disk encryption. 
12:32:56 <shachaf> (By the way, I don't see the advantage of thinking of the "nonce part" and the "counter part" of the CTR input, rather than just a "counter that starts at a random value".) 
12:33:22 <shachaf> (Alternatively, ciphertext_i = ENC(key, iv + i) ^ plaintext_i) 
12:33:51 <kmc> did i tell you i saw a cold boot attack on a spy show on TV? :) 
12:35:01 <shachaf> I didn't know that was called a cold boot attack. 
12:40:30 <kmc> i guess it's a pun 
12:40:47 <shachaf> 05:40 puns aren't worth much. 
12:41:08 <kmc> i meant "cold boot" 
12:41:42 <shachaf> Is that a fictional spy show or a nonfictional spy show? 
12:41:43 <kmc> should i give an informal talk at MIT (a "SIPB cluedump") on how to screw up using cryptography? 
12:41:56 <kmc> the show is real; it is a work of fiction 
12:42:02 <kmc> the show is Burn Notice 
12:42:15 <kmc> it is a fairly ridiculous show but lots of fun to watch 
12:42:27 <shachaf> Also you should come up with a bunch of CTF challenges that get cryptography wrong. 
12:42:33 <shachaf> And then we can make a #esoteric CTF out of it. 
12:42:38 <kmc> wish i could make nelhage and gdb do that 
12:42:39 <shachaf> Since Stripe probably won't do it. 
12:42:42 <kmc> i think i won't have time 
12:43:00 -!- Phantom__Hoover has joined. 
12:43:14 <shachaf> I'll do some if you do some! 
12:43:24 <kmc> also it's annoying to run a CTF 
12:43:26 * shachaf wonders whether making good CTF problems is really hard. 
12:43:29 <kmc> because people try to hack your shit 
12:44:01 <kmc> did you see https://blog.gregbrockman.com/2012/08/system-design-stripe-capture-the-flag/ 
12:44:06 <kmc> i don't know why this wasn't on the stripe blog 
12:44:32 <shachaf> He talked about it at the CTF event. 
12:44:50 <fizzie> Arc_Koen: Sure there is: large structs are conventionally passed as pointers in C, to cut down the amount of necessary copying. (Admittedly a compiler can sometimes optimize. But not without inlining, while still following ABI rules.) 
12:44:56 <shachaf> Apparently several of the levels had alternate solutions that they didn't think of. 
12:45:16 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 
12:45:23 <Arc_Koen> fizzie: a queue is a struct made of one int and two pointers 
12:45:24 <shachaf> For example level 5 was solved by nearly everyone using an unintentional bug, it seems? 
12:46:45 <kmc> which bug? 
12:46:47 <fizzie> Arc_Koen: Yeah; anything larger than a pointer quite often counts as large. Anyway, it's a convention, doesn't need to make all that much sense. 
12:47:03 <shachaf> Apparently you were supposed to make a response which consisted entirely of a string matching the regexp 
12:47:13 <shachaf> /somethingAUTHORIZEDsomething$/ 
12:47:15 <kmc> you ought to benchmark to figure out whether a pointer or a struct copy would be faster 
12:47:41 <shachaf> Anyway there was an alternate way involving exceptions raise by certain HTTP responses which was actually what they intended. 
12:47:47 <shachaf> Also a bunch of other things that I don't remember. 
12:47:47 <kmc> i just put a file with the contents " AUTHORIZED" on a level2 server, and then had the level5 server talk to itself, talking to the level2 server 
12:48:04 <shachaf> Right, I did something similar. 
12:48:41 <shachaf> Do you have your email of level ideas? You should @paste it or something and get people to come up with more concrete levels. 
12:49:09 <Arc_Koen> fizzie: ok, I guess I will change it then 
12:49:40 -!- Nisstyre_ has quit (Quit: Leaving). 
12:49:51 <shachaf> kmc: Any idea what "nm" stands for on http://nacl.cr.yp.to/box.html ? 
12:50:13 <kmc> it's pretty remarkable that stripe was willing to spend several developer-weeks on this 
12:50:45 <shachaf> Also, of how you might do disk encryption with a stream cipher? 
12:53:21 <kmc> i don't know about that either 
12:55:12 <fizzie> I did level5 with a pingback URI of  https://level05-2.stripe-ctf.com/user-wiosmyvnoi/?pingback=http://level02-2.stripe-ctf.com:54123  and  echo AUTHORIZED | nc -l 54123  so that the error response of [[An unknown error occurred while requesting http://level02-2.stripe-ctf.com:54123/: wrong status line: "AUTHENTICATED"]] from the pingback attempt worked as an acceptable reply. 
12:55:58 <shachaf> fizzie: Oh, that's the way you were supposed to solve it, I think. 
12:56:03 <fizzie> s/AUTHORIZED/AUTHENTICATED/ but anyhow. 
12:56:28 <fizzie> (I stumbled over the error message completely accidentally, though.) 
12:58:44 -!- monqy has quit (Quit: hello). 
13:04:09 <kmc> http://phantomjs.org/ looks useful 
13:04:19 <kmc> for testing websites and the like 
13:10:41 <kmc> it's quite an interesting idea that the right way to do scraping these days is to instantiate a full headless browser and interrogate it with jQuery 
13:12:26 <Gregor> The modern browser is a VM, not a markup engine. 
13:12:36 <kmc> well it's both and a lot more 
13:13:11 <kmc> i mean, i am not surprised by this fact 
13:13:31 <kmc> but i am wondering if in particular i should do more scraping this way 
13:14:10 <kmc> there are some definite disadvantages as well 
13:15:55 <kmc> not that much 
13:16:39 <kmc> when i worked in finance we had a whole team doing scraping :/ 
13:17:31 <kmc> because they wanted to get all the information out of all the different brokerage accounts daily, if not in real-time 
13:17:36 <kmc> and integrate it into a master risk-management thingy 
13:18:37 <kmc> and different brokers provide a variably terrible experience in getting this data programmatically 
13:18:57 <kmc> many of them would at least let you download a .csv or .xls file 
13:19:46 <AnotherTest> does a programming language with the name "MIX" exist? 
13:20:09 <AnotherTest> (MIX standing for Modular, Interpreted, eXtensible language) 
13:20:10 <shachaf> I think it's more of a CPU architecture. 
13:20:11 <kmc> it's the fictional CPU architecture invented by Knuth in TAoCP 
13:20:22 <shachaf> It certainly doesn't stand for that. 
13:20:35 <kmc> labeling your language as "interpreted" is stupid 
13:20:39 <kmc> what if someone writes a compiler for it? 
13:21:02 <kmc> what if someone does it anyway 
13:21:21 <kmc> Phantom__Hoover: that's the new version 
13:21:25 <shachaf> Phantom__Hoover: MMIX is the 2009 version of MIX. 
13:21:32 <shachaf> (Actually it's 1992 or something.) 
13:21:50 <kmc> suckless MIX, reinvented, done right, for the modern era 
13:22:08 <kmc> you should look up the etymology of MIX, it's amusing 
13:22:36 <shachaf> MIX is a funny architecture in a lot of ways. 
13:22:46 <shachaf> ...I know very little about it, but most of what I know is strange. 
13:22:53 <kmc> but learning it will make you a REAL MASTER HACKER 
13:23:24 <AnotherTest> unless of course someone decides to port it to windows 
13:23:48 <Phantom__Hoover> "MIX is a hybrid binarydecimal computer. When programmed in binary, each byte has 6 bits (values range from 0 to 63). In decimal, each byte has 2 decimal digits (values range from 0 to 99). Bytes are grouped into words of five bytes plus a sign. Most programs written for MIX will work in either binary or decimal, so long as they do not try to store a value greater than 63 in a single byte." O.o 
13:23:49 <shachaf> That's "Standard Oil", right? 
13:24:32 <kmc> at the time TAoCP was written, decimal computers were still popular 
13:24:58 <kmc> this is one of the reasons why i question the idea that TAoCP will make you a master hacker 
13:25:13 <kmc> as opposed to just being an extremely hard and pointless exercise that only master hackers can pass 
13:25:20 <kmc> but i'm just bitter because i gave up on reading it 
13:26:30 <Phantom__Hoover> I tried a while back and elliott said he would but I think he gave up after I said it was too maths to understand 
13:28:25 <kmc> pineapples profile 
13:31:26 <Phantom__Hoover> it's important to obtain a pineapple profile before working on pineapple optimisation 
13:31:54 -!- asiekierka has quit (Remote host closed the connection). 
13:38:50 -!- asiekierka has joined. 
13:42:32 <fizzie> The assembly language for it is commonly called "MIX" too, in case that wasn't mentioned. 
13:42:49 <fizzie> Even though I suppose it's not pedantically correct. 
13:48:17 -!- Eladith has quit (Quit: leaving). 
13:51:12 -!- pikhq_ has joined. 
13:51:23 -!- pikhq has quit (Ping timeout: 244 seconds). 
13:56:58 -!- ais523 has joined. 
14:24:34 <shachaf> @ask elliott Write a web scraping bot for me that visits stack overflow com dot every day so I am get gold star. 
14:24:56 <shachaf> @ask elliott I mean gold badge. GOLD BADGE = MEANING OF LIFE 
14:25:23 <oklo> i'm pretty sure even i could write that bot with ease, why don't you do it yourself 
14:26:30 <shachaf> echo 'something something cron syntax curl -b ~/shachaf/cookie-file http://stackoverflow.com/' > something something crontab 
14:27:12 <shachaf> I'm even getting my mock command line syntax wrong. :-( 
14:37:00 <kmc> you can get frequent flyer points that way, too 
14:37:17 <kmc> some airlines give you points for checking in at the airport on foursquare or whatever 
14:46:03 <oklo> so do you actually have to show your mileage card or how does it work? i never do but i have like a gazillion points 
14:46:19 <oklo> i don't really even know what those look like. 
14:46:30 <kmc> for foursquare hax or in general? 
14:46:38 <oklo> in general if applicable 
14:46:40 <kmc> in general you can put in your mileage number when you book flights online 
14:46:45 <oklo> and if you don't? 
14:46:48 <oklo> i've never done that 
14:47:03 <kmc> then you can sometimes claim the points after the flight 
14:47:12 <oklo> but i don't! why do i have points :D 
14:47:16 <kmc> yeah, i don't know 
14:47:22 <kmc> are you logged into the website when you book 
14:47:40 <oklo> i don't book myself, the university travel agency does 
14:47:48 <kmc> well they probably set up an account for you 
14:47:49 <oklo> maybe they do it 
14:47:59 <fizzie> I don't get any points for conference trips; the university has a rule that all the points go to the university. :/ 
14:48:12 <oklo> what's the use of the points? 
14:48:24 <oklo> or should i say... point 
14:48:33 <oklo> ...instead of use 
14:48:34 <kmc> you can use them to book free travel and other free things 
14:48:45 <fizzie> Or discounts for things. 
14:49:23 <fizzie> Finnair has discount deals with at least some restaurants, we've eaten our points from regular vacationing. 
14:49:30 <oklo> well i do like free points 
14:49:35 <oklo> free things i mean 
14:50:24 <oklo> maybe i should check how this works, i do like food so wouldn't want to waste. 
14:50:50 <oklo> just sounds so incredibly complicated 
14:50:55 <fizzie> The points do evaporate (in something like three years or so) if not used. 
14:51:10 <oklo> everything does 
14:51:30 <oklo> they all evaporate at once right? 
14:51:48 <fizzie> No, just the ones that are old enough. 
14:51:58 <fizzie> Well, one trip's points all go at once. 
14:52:45 <oklo> okay i guess that makes sense when the points come in a bunch when you take a trip. the idea of a thousand points with individual ages just seemed a bit silly. 
14:53:14 <kmc> sometimes there are ways to keep them alive 
14:53:21 <oklo> like proper nutrition 
14:53:54 <oklo> i need to go make sure some stuff doesn't get stolen tonight. 
14:54:03 <kmc> in the US if you buy one share of stock every day, each share has an individual age and you need to keep track of this for tax purposes 
14:54:08 <oklo> me neither, or they won't pay me. 
14:54:12 <fizzie> They could have a point half-life and a random process, though, I'm sure physicists would be more interested in the system that way. 
14:54:58 <shachaf> I like JetBlue's advertisements. 
14:55:16 <shachaf> * Unless you don't use any points for a while. Then they expire. 
14:55:17 <oklo> perhaps when wormhole travel is invented, points become quantum. 
14:55:20 <fizzie> Hey, I've seen one of those. 
14:56:04 <kmc> jetblue points are kind of boring and useless, iirc 
14:56:05 <fizzie> Finnair has this PlusShop where you can buy all this completely random stuff with points. Lamps, bicycles, frying pans. That kind of stuff. 
14:56:19 <kmc> the traditional airline rewards in the USA are based on miles flown 
14:56:22 <fizzie> Or maybe it's just money+points. 
14:56:28 <kmc> which is strange, because pricing is not particularly well correlated to miles flown 
14:56:33 <kmc> and this enables all kinds of hax 
14:56:47 <kmc> such as "mileage runs" which are flights abnormally cheap for how far they go 
14:56:52 <kmc> which are actually worth taking for this purpose 
14:57:09 <fizzie> Yeah, I think Finnair points are just a fixed amount, depending on flight type (domestic, in Europe, intercontinental). 
14:57:21 <shachaf> Mileage runs are only free if your time is worthless. 
14:57:36 <shachaf> And also not a lot like Linux. 
14:57:59 <kmc> i mean, i know someone who has a high paying job in NYC and does mileage runs all the time 
14:58:00 <fizzie> Hrm, apparently there's a bit more variation there than that. But it's not strictly distance, it's some kind of an arbitrary assignment. 
14:58:22 <shachaf> How worthwhile do they end up being? 
14:58:28 <kmc> if you like flying, and visiting randomly chosen places for brief periods of time 
14:58:37 <kmc> and if you're able to do useful things on a plane, like work or sleep 
14:58:47 <kmc> then it is more worthwhile 
14:59:08 <shachaf> Though "abnormally cheap given their distance" is a bit of a strange criterion. 
15:01:21 <fizzie> I don't think Delta is one of the oneworld alliance members, anyway, so I wouldn't be getting points from the next trip. 
15:01:24 <fizzie> Incidentally, is there something I should know about Delta? Are they considered some kind of a bad thing or something? 
15:01:52 <shachaf> I think they're considered a typical mediocre airline? 
15:02:08 <kmc> i've heard that delta miles are unusually worthless 
15:02:18 <kmc> which doesn't mean you shouldn't fly on delta 
15:02:50 <kmc> if you want to know way too much about all of this, http://www.flyertalk.com 
15:03:37 <fizzie> I don't know what it is, really, since one of the confirmation mails says Delta, and the other refers to KLM Royal Dutch airlines, pretty much randomly. And one of then even includes Alaska Airlines for a single hop. I suppose they're all kinds of joint-service deals. 
15:03:41 * shachaf 's ~/.../travel/* directory has a lot of <kmc> in it by now. 
15:04:01 <kmc> lexande knows a lot about this stuff 
15:04:25 <shachaf> Most of it is about flights, Boston, NYC, NYC<->BOS, etc. 
15:04:40 <shachaf> lexande isn't here, though. 
15:04:55 <shachaf> You seem to end up in actual conversations about these things in channels I'm in. 
15:31:25 -!- Phantom__Hoover has quit (Remote host closed the connection). 
15:31:33 -!- zzo38 has joined. 
15:39:32 -!- ogrom has joined. 
15:43:07 -!- Phantom_Hoover has joined. 
15:43:25 <ais523> basketball tactics are ridiculous 
15:43:49 <ais523> just observed: a player managing to gain a large advantage by managing to avoid being fouled for 7 seconds, while the other team were trying to commit a foul against them 
15:45:53 <ais523> (the tactic used was basically to run away) 
15:49:17 -!- sirdancealot7 has joined. 
15:50:14 -!- Braber01 has joined. 
15:51:40 <Braber01> PATH, Brainfuck and deritivies of brainfuck all use ascii values to print letters correct? 
15:56:04 <ais523> Braber01: ASCII is the most common interpretation 
15:56:16 <ais523> and not matching ASCII for the range 0-127 would be incompatible with pretty much everything 
15:56:24 <Braber01> Thanks, Just wanted to make sure 
15:56:27 <ais523> beyond that, it's unclear whether programs are meant to print single bytes or Unicode 
15:56:34 <ais523> (single bytes is a lot more common) 
15:59:23 <Phantom_Hoover> ais523, well, it's a bit of a toss-up between 1 and 31. 
16:00:04 <Phantom_Hoover> Nobody ever uses any of those characters except for 10 and 04. 
16:01:57 <fizzie> That's a vertical tab. 
16:02:05 <fizzie> *Those* aren't used much. 
16:02:14 <fizzie> The horizontal one is 9. 
16:02:42 <fizzie> 13s are around on other systems. 
16:02:58 <fizzie> And in HTTP, and around. 
16:04:33 <fizzie> And I guess a few 7s to annoy people, and Usenet has a kinda-convention to put 12s before spoilers, though I suppose that might be prety dead at this point. 
16:06:08 <zzo38> Not only HTTP; many internet protocols use CRLF line endings (HTTP, IRC, SMTP, gopher, etc) 
16:07:05 <zzo38> CRLF is also use as line endings on DOS and on Windows, and CRLF is the printable line endings 
16:08:04 <fizzie> It has the drawback that people who don't want to see the spoiler have to stop reading, since there's no "end spoler" convention. ROT-13 works better in that regard. 
16:08:58 <zzo38> Actually there is another way: Post the spoiler in another message with "SPOILER" title. 
16:11:45 -!- Braber01 has quit (Quit: Page closed). 
16:21:49 -!- derdon has quit (Ping timeout: 260 seconds). 
16:44:13 -!- impomatic has quit (Ping timeout: 252 seconds). 
16:49:29 <kmc> shachaf: do you know about HTTP Strict Transport Security? 
16:49:32 <kmc> i learned about this yesterday 
17:11:56 -!- ais523_ has joined. 
17:12:14 -!- ais523 has quit (Disconnected by services). 
17:12:16 -!- ais523_ has changed nick to ais523. 
17:14:51 -!- atriq has joined. 
17:16:54 -!- tswett_ has joined. 
17:17:40 -!- atriq has changed nick to 14WAACEG2. 
17:17:40 -!- atriq has joined. 
17:17:40 -!- atriq has quit (Client Quit). 
17:17:40 -!- tswett has quit (Ping timeout: 246 seconds). 
17:23:51 <zzo38> Can you please review the RogueVM document again? Since, I added a lot of things. Please tell me if I missed anything important. 
17:24:05 <zzo38> or if anything is unclear. 
17:24:11 -!- 14WAACEG2 has changed nick to atriq. 
17:24:22 <zzo38> Did you change your nick? I don't know why. 
17:24:46 <atriq> I wasn't paying attention 
17:24:54 <atriq> I don't think I did 
17:25:36 <fizzie> Doesn't that on freenode change to GuestNNNNN or something. 
17:25:52 <itidus21> sometimes in old abandoned theatres when people login to IRC their nicks change 
17:26:49 <fizzie> That looks more like the server-imposed nick-collision avoidance thing that is sometimes done. Isn't 14WAACEG2 an otherwise illegal nick?  
17:27:25 <fizzie> You can't self change nick to something that starts with a number. 
17:27:26 <zzo38> Yes it does look like otherwise illegal if it start with a digit. 
17:27:34 <fizzie> atriq: From here, it looked like: 
17:27:34 <fizzie> 20:17 -!- atriq is now known as 14WAACEG2 
17:27:34 <fizzie> 20:17 -!- atriq [~Taneb@78.146.170.75] has joined #esoteric 
17:27:34 <fizzie> 20:17 -!- atriq [~Taneb@78.146.170.75] has quit [Client Quit] 
17:28:21 <zzo38> I am trying to play a BBS door game "Franchise Basketball" but there are no free agents! 
17:29:49 <fizzie> I suppose some kind of a freenode hiccup, two servers both accepting a connection (perhaps your client reconnecting or something) and then getting confuzzled when they both had a user with the same nickname. That kind of thing used to happen a whole lot in IRCnet during netsplits; it was a common way of "taking over" a channel, by killing everyone on it with an intentional nick collision. 
17:30:13 <fizzie> (Old IRCnet rule for nick collisions was to drop both users; and there are no services like ChanServ there.) 
17:31:00 <zzo38> One thing that could do to avoid taking over a channel would be to use channel types which cannot be taken over in this way: !&+ (anything other than # type) 
17:31:35 <Arc_Koen> atriq: I think there are no more problems with my C interpreter 
17:32:50 <fizzie> Well, !channels weren't available at that time, &channels are local, and +channels don't support operators at all. (The latter could be considered an advantage by some, of course.) 
17:33:22 <atriq> Pretty much working 
17:33:33 <atriq> A bit slow, but I think that's a problem with Fueue 
17:34:36 <zzo38> fizzie: Yes. Since & are local they cannot be overtaken by other servers, and since + are no operators they also cannot be overtaken. 
17:35:02 <Arc_Koen> hmm, my ocaml interpreter appears to be much slower than the C one 
17:35:09 <Arc_Koen> maybe that's because of using recursivity 
17:36:39 <atriq> How quick is your C one, running oerjan's Thue-Morse sequence program? 
17:39:06 <Arc_Koen> weeeeeeell okay maybe not so fast 
17:39:35 <Arc_Koen> it takes about five seconds to cover my entire screen with 0s and 1s 
17:39:48 <Arc_Koen> however, I'm not sure it's the correct thue-morse sequence 
17:40:01 <atriq> Okay, that's quicker than my Haskell program 
17:43:31 -!- AnotherTest has quit (Quit: Leaving.). 
17:45:31 <kmc> it's so stupid that desktop mice are wireless by default 
17:46:01 <zzo38> My computer is wired. 
17:46:21 <kmc> my mouse never leaves my desk; why should I deal with batteries, wireless interference, multiple parts i can lose, etc. 
17:46:40 <zzo38> You should buy the wired one instead, then! 
17:49:11 <kmc> but selection is limited 
17:49:41 <kmc> wired mice are mostly either very cheap and crappy, or are expensive, designed for gamers, and completely ridiculous 
17:50:17 <zzo38> I would prefer a three button wired mouse without wheel 
17:51:08 <kmc> why no wheel? 
17:51:55 <zzo38> So that the wheel will not turn and make it difficult to use the mouse. 
17:54:07 -!- atriq has quit (Remote host closed the connection). 
18:02:19 -!- asiekierka has quit (Remote host closed the connection). 
18:02:25 <kmc> i've not had that problem 
18:03:09 <Arc_Koen> I'm surprised not to find a functional version of brainfuck on the wiki 
18:03:17 <Arc_Koen> with all the derivatives it has 
18:03:23 -!- augur has quit (Remote host closed the connection). 
18:06:06 -!- ogrom has quit (Quit: Left). 
18:12:20 -!- nortti_ has quit (Ping timeout: 252 seconds). 
18:28:38 <zzo38> I think the backgammon on X-BIT is computer player is not very good, because they are in jail a lot. 
18:31:19 <zzo38> I have won 24 out of 33. The system operator has played 6 times and lost all of them. 
18:31:40 <zzo38> Nobody else has played this game. 
18:33:08 <zzo38> Yes, basically it means they are placed off the board at your home and must re-enter the board before making any other moves. 
18:34:07 <zzo38> This backgammon game does not implement doubling cube, but the person who showed me how to play backgammon didn't know how to use it either (I later read a book and learned how it is used). 
18:36:53 -!- FreeFull_ has joined. 
18:37:11 -!- FreeFull has quit (Disconnected by services). 
18:37:16 -!- FreeFull_ has changed nick to FreeFull. 
18:42:38 <zzo38> What is this?   Please select Your Language:  [  0] LANGUAGE   [No Description Available]  [  1] LARGE      [No Description Available] 
18:49:52 -!- oerjan has joined. 
18:50:46 <itidus21> seems like it presents two options [0] language [1] large 
18:51:01 <zzo38> Yes but I don't know what those options mean. 
18:51:09 <zzo38> I tried both and neither of them seem to work. 
18:52:03 <Sgeo> Maybe I should try playing Backgammon 
18:52:15 <itidus21> i would have expected [ 0] Australian English [ 1] British English [ 2] American English [ 3] Italian [ 4] French [ 5] Chiense 
18:52:46 <oerjan> dammit my sandal broke 
18:52:47 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 
18:52:51 <lambdabot> Arc_Koen said 6h 28m 1s ago: ./fueuec '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]' 11010011001011010010110011010011001011001... '110' seems a weird start for the thue morse sequence... 
18:53:11 <oerjan> Arc_Koen: um you forgot the initial 48 
18:53:49 <Arc_Koen> I just copied the code from the wiki page :) 
18:54:44 <Sgeo> http://upload.wikimedia.org/wikipedia/commons/3/30/Backgammon_lg.jpg 
18:54:48 <oerjan> I HAVE NO IDEA WHAT YOU ARE TALKING ABOUT *COUGH* 
18:54:50 <Sgeo> I have no idea what's going on 
18:55:14 <itidus21> probably this code '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]'  
18:55:37 <oerjan> yes but there's a 48 at the beginning *cough* 
18:55:58 <Arc_Koen> Sgeo: nothing's going on, it's the start position 
18:56:27 <zzo38> Yes, it is the start position. Sometimes both players share the same dice but in this set the player have their own dice. 
18:56:34 <Arc_Koen> blacks move counterclockwise, while whites move clockwise 
18:57:04 <itidus21> having your own dice probably makes cheating easier 
18:57:06 <Arc_Koen> zzo38: players almost always have their own dice, except in travel sets or sets that are smaller for whatever reason 
18:58:11 <itidus21> but i'll try to be less cynical 
18:58:20 <Arc_Koen> Sgeo: so for instance, if you roll a 5 and a 1, you can move one pawn by 5; then one by 1 (or the opposite) 
18:58:26 <zzo38> The pieces could be black and red, or other colors, instead of black and white. 
18:58:45 <itidus21> except they can't be the same color 
18:58:49 <zzo38> Yes, whatever number you roll you move a piece that many spaces. It must land on your own pieces, an empty space, or a space containing exactly one opponent's piece. 
18:59:01 <zzo38> You can play in either order. If you roll double, you make four moves instead of two. 
18:59:08 <Sgeo> I'm reading the Wikipedia page 
18:59:23 <Arc_Koen> a month ago I learned a russian variant 
18:59:36 <Arc_Koen> it's basically the same except you start with ALL your pawns on the same file 
18:59:43 <zzo38> If you land on an opponent's piece then the opponent's piece goes to jail; it is usually placed on the bar in between the half of the board in order to indicate this. 
19:00:12 <zzo38> If all of your pieces are in your home, then you can move pieces off of the board. You still need the number to move off of the board, though. 
19:00:26 <zzo38> If all of your pieces are off the board and not in jail, you win. 
19:01:02 <itidus21> i think it would be interesting to have a dice with a "roll twice" face 
19:01:27 <zzo38> If you are in jail, then you must move from the opponent's off the board into your opponent's home and cannot make any other moves until you are not in jail. 
19:01:34 <zzo38> You can pass if you have no legal moves; otherwise you must move. 
19:01:59 -!- david_werecat has joined. 
19:03:20 <zzo38> Another feature of the game (not always used) is doubling cube. You can offer to double the bet and if your opponent accepts, the game continues and however wins earns double points. If your opponent declines, then he loses the game instantly. 
19:03:32 <Arc_Koen> what do you mean "not always used"? :( 
19:04:21 <zzo38> I mean sometimes backgammon is played without the doubling cube rule, such as if you are not counting the score. Usually doubling cube rule is used, though. 
19:04:39 <Sgeo> "Backgammon has an established opening theory, although it is less detailed than that of games like chess." 
19:04:50 <Sgeo> That kind of annoys me 
19:04:57 <Sgeo> Maybe I don't like opening theory 
19:06:02 <itidus21> one way to think about games is to see them as falling into 2 categories, win or not-win 
19:06:52 <Arc_Koen> Sgeo: you really don't need to study opening theory to start playing backgammon 
19:07:12 <Arc_Koen> even if you want to progress, i don't think the opening is the best thing to study 
19:08:12 <itidus21> one thing games have in common is that after the player-decisions and rules and random elements have all been processed, the final result is win, lose, or draw 
19:08:50 <itidus21> i am interested in games where the final resuilt isn't win, lose or draw 
19:08:55 <zzo38> Sometimes there is also the score. 
19:09:01 -!- asiekierka has joined. 
19:09:15 <zzo38> Other times both players can win, or both lose, or something else, too. 
19:09:24 <zzo38> Depending on the game. 
19:09:52 <itidus21> zzo38: yeah i am new to the reality of it 
19:11:22 <Arc_Koen> well in go tournaments in europe, if there is a dispute and both players are showing bad faith, the referee can decide to have them both loose 
19:11:53 <zzo38> In any tournament it is possible for both sides to be disqualified, I think. 
19:12:06 <itidus21> i think it is rare that the outcome of a game actually affects someones life 
19:12:49 <zzo38> If it is Washizu Mahjong then you will win/lose millions of yen and also your blood. 
19:13:14 <Arc_Koen> zzo38: they are not disqualified, they just lose one game 
19:13:39 <itidus21> zzo38: ok so i am wrong 2 out of 2 of my claims so far! 
19:14:04 -!- augur has joined. 
19:14:13 <zzo38> Arc_Koen: O, they are not disqualified. I thought it was. 
19:14:39 <itidus21> but, that being said, in real casinos if you will millions can you just walk out unhassled? 
19:15:21 <itidus21> or do you need some kind of threat if they don't pay up? 
19:16:19 <itidus21> i can sort of imagine that its a bit like insurance companies which make their money by not paying out 
19:16:38 <Arc_Koen> zzo38: well, I think you can be disqualified for a few other reasons, such as making a deal with your opponent or stuff like that 
19:17:25 <Arc_Koen> those kind of things happen a lot more with chess tournaments 
19:17:52 <itidus21> zzo38: i have no idea since i have never gambled > $100 :P 
19:18:33 <zzo38> I have never gambled > $100 either. Nor have I ever gambled at all in a casino, and I do not intend to. 
19:19:08 <itidus21> well i only played blackjack a few times in melbourne 
19:19:23 <zzo38> Did they tell you to go away? 
19:19:31 <zzo38> The casino owners are always allowed to tell you to go away. 
19:19:50 <Arc_Koen> "then I was thrown out because I knew how to play" 
19:19:51 <itidus21> no i guess i was looking sober at that time 
19:20:17 <itidus21> no no i wasnt thrown out... it was more because my friend was a gambler type who loved to throw his money away 
19:20:35 -!- ais523_ has joined. 
19:20:37 <itidus21> somehow some people get satisfied by emptying their pockets 
19:20:50 <itidus21> like it makes them feel sick to save money 
19:21:05 <kmc> "i don't think that's quite right" 
19:21:15 <Arc_Koen> well, if you save money up and you still have some at the moment you die, then you could say it's wasted 
19:21:28 <kmc> perhaps some of these people exist, but i don't think it describes the typical non-pathological gambler 
19:21:57 -!- ais523 has quit (Ping timeout: 276 seconds). 
19:22:01 <itidus21> kmc: well.. its not really casino gambling, more the poker machines 
19:22:15 <kmc> "poker" machines are basically slots right? 
19:22:30 <zzo38> Poker machines are like slot machines except you can select which cards to discard. 
19:22:50 <itidus21> hmm well... in australia for some reaosn they call slot machines poies 
19:23:08 <kmc> 'That's an odd name. I'd have called them "chazzwazzers".' 
19:23:57 <itidus21> you can play slot machines more or less anywhere in australia 
19:25:23 <kmc> in some parts of the USA they have slot machines in gas stations and airports and such 
19:25:28 <kmc> nevada, and indian reservations 
19:25:37 <Phantom_Hoover> So can you max out your luck stat and make a killing on the slot machines like in New Vegas. 
19:25:40 <itidus21> well.. they have them everywhere here... and also brothels 
19:26:06 <itidus21> what else can you expect from convicts 
19:26:40 <itidus21> well when i say everywhere i don't mean literally everywhere 
19:27:00 <itidus21> but mostly if you can go there to drink 
19:27:39 <fizzie> We "always" have slot machines in gas stations, it's kind of a staple. Those, and quite a few bars. 
19:27:52 <fizzie> There's also the Pajatso thing. 
19:27:57 -!- ais523_ has changed nick to ais523. 
19:28:08 <fizzie> "Payazzo (or pajatso) is a traditional Finnish gambling arcade game, dating back to the 1920s, when it was introduced into Finland from Germany. The object of payazzo is to flick a coin into one of the winning slots. When the attempt is successful, the machine rewards the player with a couple of coins. If the attempt is unsuccessful, the player loses the flicked coin." 
19:28:20 <zzo38> Yes I have read about that on Wikipedia. 
19:28:33 <zzo38> There are some similarity to pachinko. 
19:29:08 <fizzie> http://www.suomenpeliautomaattihistoriallinenseura.fi/pics/timo/50pjasso.jpg -- that's the one from the 70s, I've seen those. 
19:29:34 <fizzie> There's also very little similarity to a pinball machine. 
19:29:58 <zzo38> Pachinko is more similarity to pinball than pajatso is, though. 
19:30:00 -!- tswett_ has changed nick to tswett. 
19:30:07 <fizzie> Yes, I think there's a ball?  
19:30:12 -!- asiekierka has quit (Remote host closed the connection). 
19:30:13 <zzo38> Yes, there is a ball. 
19:30:29 <fizzie> The Finnish gambling monopoly company has a web version of the game; you drag a finger, and then release, and it flicks the coin and animates something that looks a bit like physics. 
19:30:36 <fizzie> I'm reasonably sure the output is randomized, though. 
19:30:51 <fizzie> Since it would be pretty trivial to move mouse in an exactly identical way. 
19:31:12 <Arc_Koen> ok, I'm very sad to declare this but I just created a brainfuck derivative (on the plus side, it's functional instead of imperative) 
19:31:26 <kmc> it's probably pretty different from brainfuck then 
19:31:30 <fizzie> Arc_Koen: Duck, I'm sure there's a brick coming. 
19:31:36 <itidus21> you mean that you're reasonably sure that an online gambling system does not allow the client software to control the outcome? :P :P 
19:32:48 <itidus21> i wonder how they pull that off 
19:33:28 <zzo38> Shuffle a standard deck of cards and deal thirty cards in six rows of five, the first row face up and the rest face down. You can turn over a face-down card from any row or leave all the cards alone. If you turn over a card, you can look at it and must continue so that the total number of cards turned is the number of the row (1 for the first face-down row, 2 for the second face-down row, all 5 for the last row). 
19:34:07 <zzo38> You may turn cards from only one row; not from multiple rows. After doing so, cards from the initially face-up row in the same column as turned cards are turned face-down. Scoring is then as in video poker. 
19:34:55 <fizzie> Arc_Koen: Is there some kind of a theoretical reason why not just assign individual numbers in the order of the (s that start the particular function. 
19:35:00 <zzo38> Assume that the player has X-ray vision and can see all the cards even before they are turned. Further assume that there are no taxes, service charges, or comp bonuses. What is the probability of winning? 
19:35:22 <zzo38> How much money can the player expect to win or lose on average? 
19:35:51 <Arc_Koen> fizzie: well I don't like the idea that a function's number depends on the numbers of functions which it cannot call 
19:36:23 <Arc_Koen> hmmm ok I think I have an idea 
19:36:35 <zzo38> What would it be if the player did not have X-ray vision? 
19:37:23 <Arc_Koen> fizzie: what about (1) (2) ((6)(7)3) (4) (((8)6)(7)5) main 
19:37:39 <Arc_Koen> so a function number is "the smallest available number" 
19:39:26 <fizzie> I'm personally okay with that, but then again I would've been okay with just consecutive unique numbers too. 
19:39:34 <oerjan> @tell atriq <atriq> A bit slow, but I think that's a problem with Fueue <-- I think programs like my thue-morse program could be sped up a lot if you kept track of long subsequences of non-triggering elements (e.g. blocks) 
19:40:03 <oerjan> @tell atriq So that you could skip around the parts of the queue that are presently doing nothing 
19:40:05 <fizzie> Arc_Koen: Not related, but was your latest fueue.c around?  
19:43:33 <Arc_Koen> oh, I did not fix the too many arguments thing 
19:47:04 <fizzie> Oh, one other remark I was thinking about were the // comments. They're legal C99 (and GNU Canything), but many folks still advocate being compatible with C90/C89, at least if not making use of any of the more substantial C99 features. 
19:47:43 <kmc> i think they're legal in MSVC too, even though they refuse to implement all of C99 
19:47:46 <kmc> not sure though 
19:47:54 <kmc> you should just write C code which can also be compiled as C++ ;) 
19:48:10 <pikhq_> I have a nicer policy. 
19:48:15 <pikhq_> Don't support broken C compilers. 
19:48:18 <Arc_Koen> the // comments are not legal in C89?? 
19:48:26 <kmc> FreeFull: correct 
19:48:27 <fizzie> Arc_Koen: No, only /* comments */ are. 
19:48:36 <pikhq_> FreeFull: Much valid C code is not valid C++ code. 
19:49:41 <pikhq_> No implicit casts from void* basically jacks up idiomatic C. 
19:49:47 <kmc> almost all compilers support // comments, though 
19:49:53 <fizzie> The fueue.c code seems to be mostly valid C++, except for four instances of relying on the implicit conversion of void* to Token*. 
19:51:12 <Arc_Koen> wow, and /* */ comments cannot be nested 
19:51:21 <FreeFull> Also, C code that uses new or delete as a name for something won't be valid C++ 
19:51:31 <kmc> people aren't always clear when talking about "what's in C" versus "what's supported by my C compiler" 
19:51:34 <kmc> Arc_Koen: yeah 
19:51:46 <FreeFull> Arc_Koen: You didn't know that? 
19:51:48 <kmc> nestable multi-line comments are somewhat rare 
19:51:59 -!- hagb4rd has joined. 
19:52:04 <kmc> i don't think any of the languages which use /* comments */ support nesting 
19:52:07 <kmc> (correct me if wrong) 
19:52:17 <kmc> haskell, ocaml, and lua do 
19:52:28 <Arc_Koen> FreeFull: I may have known it a few years ago but somehow it wasn't flag as "relevant" by my brain 
19:52:33 <kmc> wait, lua doesn't 
19:53:07 <Arc_Koen> however I certainly did not know that // was not C89 
19:53:10 <fizzie> Arc_Koen: clang from llvm 3.0 with -Weverything has four things to say (ignoring the printf argument thing), and they're all fairly minor: 1) the 'break;' after 'return;' for H is unreachable; 2) and 3) it's going to add padding to your structures; 4) 'error_empty' could be declared with 'noreturn'. 
19:53:10 <kmc> there is a subtle difference between the way comments work in haskell and ocaml 
19:53:25 <kmc> {- " -} is a valid Haskell comment but (* " *) is not a valid ocaml comment 
19:53:47 <kmc> (* "*)" *) is a valid ocaml comment but {- "-}" -} is not a valid Haskell comment 
19:54:29 <lambdabot>      lexical error in string/character literal at end o... 
19:54:47 <Arc_Koen> kmc: and the reference manual lists (*) as the multiplication function, but (*) actually starts a comment 
19:54:58 <kmc> Arc_Koen: it does? 
19:55:45 <lambdabot>   <no location info>: unterminated `{-' 
19:55:51 <lambdabot>   <no location info>: parse error on input `-' 
19:56:15 <oerjan> hm i guess record notation cannot start with - inside 
19:56:27 <lambdabot>   <no location info>: parse error on input `3' 
19:56:37 <Arc_Koen> kmc: well apparently http://caml.inria.fr/pub/docs/manual-ocaml-4.00/libref/Pervasives.html lists it as ( * ), but my pdf version lists it as (*) 
19:56:37 <kmc> > do {-3 <- return -3; return True} 
19:56:38 <lambdabot>   <no location info>: unterminated `{-' 
19:56:41 <kmc> > do { -3 <- return -3; return True} 
19:56:43 <lambdabot>   Overlapping instances for GHC.Show.Show (a -> GHC.Bool.Bool) 
19:57:10 <kmc> fuck you lambdabot, die in a hole 
19:57:29 <oerjan> i'd imagine you don't actually want return -3 
19:57:32 <Arc_Koen> fizzie: I will remove the useless break; (which is a remainder of the halts variable), but I'm not sure what you mean with 2) and 3) 
19:57:35 <kmc> the whole "haha j/k not actually standard haskell" thing has gone from amusing to fucking obnoxious 
19:58:15 <kmc> lambdabot is doing irreparable harm to people attempting to learn Haskell 
19:58:18 <lambdabot>   No instance for (GHC.Num.Num GHC.Types.Char) 
19:58:34 <kmc> it's as if the experts are playing an inside joke on the beginners 
19:58:37 <fizzie> Arc_Koen: Well, it means just what it says: the compiler is going to add some padding there. Such is life. 
19:58:44 <kmc> making lambdabot confusing for their own idle amusement 
19:59:15 <FreeFull> > takeWhile (<3) $ read "I love you" :: Integer 
19:59:16 <lambdabot>   Couldn't match expected type `GHC.Integer.Type.Integer' 
19:59:39 <fizzie> Arc_Koen: Technically, you can rearrange members to make it more unlikely, but all the padding is platform-specific. And of course the padding doesn't hurt, except for possibly (probably not, in this case) making the structure objects slightly bigger than they could be. 
19:59:43 <Arc_Koen> fizzie: as in "(pad something out) lengthen a speech or piece of writing with unnecessary material."? 
19:59:57 <fizzie> Arc_Koen: As in, put some empty space in-between the members. 
20:00:13 <fizzie> Arc_Koen: "padding struct 'struct Queue' with 4 bytes to align 'top'" and "padding struct 'struct Token' with 7 bytes to align 'block'". 
20:00:18 <oerjan> Arc_Koen: you're not using unions, so all discussion of optimal padding is moot :) 
20:00:26 <fizzie> Yes, that is also true. 
20:00:29 <Arc_Koen> yes that's what I was thinking oerjan 
20:00:48 <fizzie> It would be a reasonable thing to do. 
20:00:52 <FreeFull> > takeWhile (<3) $ [ read "I love you" :: Integer ] 
20:00:53 <lambdabot>   *Exception: Prelude.read: no parse 
20:01:07 <FreeFull> > takeWhile (<3) $ [ read "123" :: Integer ] 
20:01:17 <kmc> int x[] = {-1}; int main() { printf("Hello, C!\n"); } /* -}(); main = putStrLn "Hello, Haskell!" -- */ 
20:01:44 -!- Ngevd has joined. 
20:01:44 <FreeFull> Code that's both valid C and Haskell 
20:01:57 <kmc> not just now, a while ago 
20:02:05 <FreeFull> Wait, the main() doesn't have a return statement! 
20:02:09 -!- Ngevd has changed nick to atriq. 
20:02:17 <kmc> yeah it's not quite "valid C" in this condensed one-line form 
20:02:20 <pikhq_> FreeFull: Not mandatory. 
20:02:29 <kmc> of course you can make it into a totally valid C program that does anything you want 
20:02:30 <pikhq_> FreeFull: In C99, there's an implicit return 0; at the end of main. 
20:02:36 <kmc> pikhq_: really? huh. 
20:02:50 <fizzie> Arc_Koen: C11 (and, again, GNU C earlier) adds the "anonymous union" feature, which would let you put in union { int val; char fun; Queue block; }; -- without a name -- as a member of struct Token, and then in Token t refer to the field as simply t.val, t.fun or t.block. But I wouldn't really recommend that. 
20:03:02 <kmc> FreeFull: I wrote one that's C, Haskell, Python, POSIX shell, Brainfuck, and DOS .COM program 
20:03:06 <kmc> others here have done even more 
20:03:50 <atriq> In K&R C, I have no idea what's going on 
20:03:50 <lambdabot> atriq: You have 2 new messages. '/msg lambdabot @messages' to read them. 
20:03:54 <lambdabot> oerjan said 24m 20s ago: <atriq> A bit slow, but I think that's a problem with Fueue <-- I think programs like my thue-morse program could be sped up a lot if you kept track of long subsequences of 
20:03:54 <lambdabot> non-triggering elements (e.g. blocks) 
20:03:54 <lambdabot> oerjan said 23m 51s ago: So that you could skip around the parts of the queue that are presently doing nothing 
20:04:09 -!- atriq has changed nick to Taneb. 
20:04:15 <fizzie> kmc: On the other hand, C99 also makes all those "main() { blah; }" programs, that used to be invalid due to missing return, instead invalid due to deprecating the "implicit int" feature. 
20:04:17 -!- Taneb has changed nick to Ngevd. 
20:04:27 -!- Ngevd has changed nick to atriq. 
20:04:41 <FreeFull> Implicit int made for some interesting stuff 
20:06:03 <kmc> ghc will also warn that the function 'int' has non-exhaustive patterns and isn't used 
20:06:07 <kmc> but you can fix these things as well 
20:06:08 <fizzie> "auto mobile;" is no longer a valid int variable. :/ 
20:06:22 <kmc> "auto fellatio;" 
20:07:18 <FreeFull> auto mobile = 0; would be valid C++11 
20:07:38 <FreeFull> Maybe make it auto mobile =0; and pretend =0 is a duck 
20:10:01 <oerjan> if it walks like a duck it might be an automobile 
20:10:23 -!- augur_ has joined. 
20:10:27 <Arc_Koen> oerjan: so now it's all gonna be q->top->val->fun? 
20:11:05 <Arc_Koen> that sounds unreasonably too much arrow populated (uh, maybe the last arrow was supposed to be a dot, but still) 
20:13:07 -!- augur has quit (Ping timeout: 240 seconds). 
20:13:29 * oerjan has no idea whether that's good practice 
20:14:27 <fizzie> oerjan: I've seen one-letter union names in that context. 
20:14:38 <fizzie> Though I would've put in "d" as in data. 
20:14:39 <Arc_Koen> I just used search and replace to correct everything and I'm pretty sure that's a very bad thing to do 
20:15:23 <Arc_Koen> gcc doesn't seem to mind, though 
20:15:54 <oerjan> on the bright side, it'll still be much less verbose than java. 
20:16:15 <fizzie> Arc_Koen: Did you notice my anonymous-union comment? It's meant exactly to reduce the dottiness. 
20:16:26 <kmc> unions considered harmful 
20:16:36 <oerjan> kmc: FILTHY CAPITALIST 
20:17:04 <fizzie> Whoops, missing a name there. 
20:17:06 <Arc_Koen> fizzie: I did, but you also said you would perhaps not recommand it 
20:17:06 <kmc> yeah the united states of america would never stand for that 
20:17:19 <fizzie> Arc_Koen: Right, just checking. 
20:18:18 <Arc_Koen> aaaaaaaaaaaand )$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65] is a cat 
20:18:35 <oerjan> ...that may not be entirely correct. 
20:19:53 <fizzie> Arc_Koen: You can add macros, but that's probably even worse. There's quite a few headers that do stuff like http://sprunge.us/FRJL 
20:20:33 <Arc_Koen> oerjan: what, you don't believe me? http://pastebin.com/0UGHnVdY 
20:21:08 <fizzie> (The macro is there so that you can have  struct in6_addr x; f(x.s6_addr);  and have that expand to  struct in6_addr x; f(x.__in6_u.__u6_addr8);  but of course the macro will expand the token "s6_addr" absolutely anywhere, not just when it's being used to access a member. 
20:21:20 <fizzie> They're counting on nobody having any other 's6_addr's except as a member. 
20:21:37 <fizzie> But a  #define val u.val  is kind of horreeble. 
20:22:01 <Arc_Koen> oh right korea has a k in english 
20:22:15 <oerjan> those darn core people 
20:22:31 <atriq> Arc_Koen, what's your native language? 
20:22:43 <oerjan> lifthrasiir: LEARN TO SPELL YOUR COUNTRY CONSISTENTLY 
20:22:54 <oerjan> I'M SURE IT'S YOUR FAULT 
20:23:25 <oerjan> oklo: ALSO WHY THE SHORT NICK IT'S AGAINST NATURE I TELL YA 
20:23:29 <kmc> isn't it called 한국 
20:24:07 <Arc_Koen> see, the lower part of 한 looks way more like a C than a K 
20:25:41 <oerjan> although istr the korean alphabet puts the letters top down in the characters 
20:26:31 <fizzie> 한 is a dude in a hat using a computer with a wall-mounted monitor, right?  
20:26:58 <atriq> Korea. Only culture that would have a letter for that. 
20:27:23 <fizzie> And then use it in their own name. 
20:28:02 <oerjan> just to clarify what i meant, iiuc  한 is three letters. 
20:29:38 <kmc> yep http://upload.wikimedia.org/wikipedia/commons/6/69/Hangeul.svg 
20:29:46 <Arc_Koen> reading them counterclockwise sounds like koc 
20:29:59 <Arc_Koen> so that would be kocea afterall 
20:30:12 -!- Vorpal has quit (Ping timeout: 276 seconds). 
20:30:20 <fizzie> oerjan: Yes, the letters being "dude in a hat", "using a keyboard/mouse", and "wall-mounted monitor". It's nice that they can combine them like that. 
20:31:03 * oerjan swatteth fizzie -----### 
20:37:21 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds). 
20:42:42 <oerjan> Arc_Koen: oh did you fix the bugs with introducing union?  i think i realized what happened at that 2-3 line change 
20:43:10 <Arc_Koen> apparently there's something wrong with : and $ 
20:43:26 <oerjan> could you paste the current code? 
20:43:37 <Arc_Koen> I thought it was pushfun and pushnum which had a problem, but they work fine when parsing the program at the beginning 
20:46:04 <Arc_Koen> :[+ 2 3]))    gives    ))[ 0 0][+ 2 3] 
20:46:12 -!- Phantom_Hoover has joined. 
20:47:46 <atriq> The "dude in a hat" symbol looks like Terezi's symbol upside-down 
20:48:09 <atriq> After a while, everything is Homestuck. 
20:48:38 <Arc_Koen> well, now that i'm using unions the "initToken" function doesn't make any sense any longer 
20:48:53 <Arc_Koen> but it shouldn't be harmful either anyway 
20:49:12 <oerjan> which i think may be the main culprit 
20:49:35 <oerjan> delete lines 483-484,  replace 492-494 with something branching on the what 
20:50:05 -!- impomatic has joined. 
20:52:27 <oerjan> yeah the rest of the places with val in look ok 
20:52:28 <fizzie> oerjan: It's legal to just assign the union. 
20:52:54 <oerjan> fizzie: yes.  but you need to do the special copying for blocks 
20:53:16 <fizzie> oerjan: Disclaimer: didn't look at code. 
20:53:28 <oerjan> Arc_Koen: so you could just have one case for blocks and another for the rest (which can just copy the whole union) 
20:57:39 <Arc_Koen> well at least it prints the alphabet 
20:58:11 <Arc_Koen> the international whaling commission? 
20:58:19 <oerjan> http://www.irregularwebcomic.net/ 
20:59:22 <fizzie> The irregular whaling commission sounds alarming. 
21:00:29 <oerjan> i suggest you bring it up with the international webcomic 
21:02:07 <atriq> I need to abscond and... 
21:02:14 <atriq> What's the opposite of absconding? 
21:02:20 <lambdabot> *** "abscond" wn "WordNet (r) 3.0 (2006)" 
21:02:21 <lambdabot>     v 1: run away; usually includes taking something or somebody 
21:02:21 <lambdabot>          along; "The thief made off with our silver"; "the 
21:02:21 <lambdabot>          accountant absconded with the cash from the safe" [syn: 
21:02:22 <lambdabot>          {abscond}, {bolt}, {absquatulate}, {decamp}, {run off}, {go 
21:03:51 <fizzie> Antonyms of verb abscond 
21:04:06 <oerjan> we shall absquatulate forthwith 
21:04:26 <atriq> I think it'd be incond 
21:04:41 <Sgeo> I have decided to play Backgammon 
21:05:01 <oerjan> pretty sure the s isn't part of the preposition 
21:05:46 <fizzie> oerjan: "Etymology: < Middle French, French abscondre to hide oneself (1180 in Old French, used reflexively), to hide, conceal (a thing) (1308) or its etymon classical Latin abscondere to hide, conceal, to bury, immerse, to engulf, to keep secret < abs- (see ab- prefix) + condere to put together, to stow (see condite adj.2)." 
21:06:01 <fizzie> In particular, < abs- (see ab- prefix) + condere. 
21:07:24 <fizzie> They say it's not from "sconding" anything. 
21:07:45 <oerjan> i guess ab- is just weird. :( 
21:07:55 <oerjan> (sometimes it turns into just a-) 
21:08:26 <oerjan> http://en.wiktionary.org/wiki/ab-#Latin indeed 
21:08:41 <fizzie> "In classical Latin, ab- became ā- before p- , b- , m- , and v- (compare e.g. āvertere to turn away: see avert v.), and alternated with au- before f- (compare e.g. auferre to carry away: see ablate v.; compare aufer v.), and with abs- before c- , q- , and t- (compare e.g. abscondere to put away, conceal: see abscond v.)." (OED) 
21:09:23 <fizzie> (Then it continues quite a lot.) 
21:10:53 <atriq> Right, to make my Fueue implementation more speedy 
21:11:07 <atriq> I have added another constructor to the FueueItem datatype 
21:11:22 <atriq> FCache :: Seq FueueItem -> FueueItem 
21:11:33 <atriq> I'm really just groping in the dark. 
21:11:52 <atriq> Also, I'm not using that format for defining constructors 
21:12:00 <atriq> It's just FCache (Seq FueueItem) 
21:12:45 <atriq> The idea is that when an FCache is encountered by the execution processes, it can be ignored with the exception of the very end of it, examined using viewr. 
21:13:07 <atriq> Actually, not true. 
21:13:15 <atriq> I think the beginning needs to be examined sometimes too 
21:13:50 <atriq> Man, this is going to make run double in size 
21:13:59 <oerjan> the beginning needs to be examined only by the previous functions 
21:14:13 <oerjan> yes, it will probably slow down stuff when it's not needed 
21:14:26 <oerjan> you also need to look at the _two_ last elements. 
21:14:35 <atriq> I'm really just groping in the dark here 
21:15:20 <oerjan> and you need to pack things into those Caches 
21:15:32 <atriq> Yes, I was getting to thet 
21:16:33 <atriq> Actually, this is an awful idea. 
21:17:45 -!- nooga has quit (Ping timeout: 244 seconds). 
21:17:56 <pikhq_> Hmm. With the LuaJIT FFI, Lua becomes a decent language for interacting with C libraries. 
21:21:53 <oerjan> oh wait i think you actually _do_ need to look only at the last element 
21:22:47 <oerjan> because every case where a function might take two arguments it either does not depend on the type of the second, or the first required type is unstable 
21:24:34 <oerjan> (the former: ~ < the latter: + * / $) 
21:24:52 <atriq> $ is in both categories 
21:31:03 <atriq> I don't need to check for numbers in a cache either 
21:35:37 <kmc> pikhq_: how does that compare to Python ctypes? 
21:36:26 <oerjan> whenever a value doesn't get executed, it can be added to a following cache. 
21:36:54 <oerjan> or become a single-value cache, if there isn't one 
21:37:17 <atriq> I was thinking a preceeding cache 
21:37:37 <fizzie> kmc: Or JAVA JNA! I'm sure that'd make a decent language too! 
21:37:43 <atriq> They could even be merged? 
21:37:52 <kmc> "java isn't an acronym" 
21:38:09 <atriq> Java Ain't Very Acronym-y 
21:38:16 <fizzie> At least JNA is. I got maybe too excited!  
21:38:16 <oerjan> except a preceding cache has just been executed so it is possible that it no longer stable. 
21:38:55 -!- atriq has changed nick to atrir. 
21:39:00 <oerjan> so i think merging with a following cache is more sound. 
21:39:02 <kmc> hm, i have used JNI  but not JNA 
21:39:13 <atrir> I'm going to go to sleep now, I think. 
21:39:15 <oerjan> and of course a cache can be merged with a following one. 
21:39:17 <fizzie> To give credit where it's due, JNA looked like a more reasonable FFI approach than JNI, especially considering the use-case of interfacing to existing libraries. 
21:39:17 <atrir> That would be a good idea. 
21:39:28 -!- atrir has quit (Quit: Goodbye). 
21:40:09 <kmc> "you can't use Java, you can only leverage it" 
21:40:58 <fizzie> 3. leverage, leveraging -- (investing with borrowed money as a way to amplify potential gains (at the risk of greater losses)) 
21:41:19 <kmc> but it's also a synonym for "use" in US business-speak 
21:42:13 <kmc> ("atrir"+4)-- 
21:43:25 <kmc> mprotect("atrir" & ~0xfff, 4096, 0777); 
21:44:04 * oerjan wonders if that even makes sense 
21:44:24 <kmc> mprotect(0, ~0, 0777); 
21:44:48 <kmc> oerjan: well POSIX only guarantees mprotect() on pages obtained from mmap() 
21:44:58 <kmc> and it has a hardcoded page size of 4kB 
21:45:04 <kmc> but it will probably work on Linux on most platforms :3 
21:45:19 <fizzie> I was about to ask "what, POSIX has a hardcoded page size?" 
21:45:25 <oerjan> today's yafgc spoiler: so the devils need to save the zombies which are currently attacking them and apparently winning... 
21:46:14 <fizzie> I think Linux/SPARC does 8k pages. 
21:47:13 <fizzie> include/asm/elf_64.h:#define ELF_EXEC_PAGESIZE  PAGE_SIZE 
21:47:13 <fizzie> include/asm/elf_32.h:#define ELF_EXEC_PAGESIZE  4096 
21:47:13 <fizzie> include/asm/param.h:#define EXEC_PAGESIZE       8192    /* Thanks for sun4's we carry baggage... */ 
21:47:32 <fizzie> Well, there are at least some 8ks somewhere in it. 
21:47:45 <fizzie> Kconfig:        default SPARC64_PAGE_SIZE_8KB 
21:47:45 <fizzie> Kconfig:config SPARC64_PAGE_SIZE_8KB 
21:47:45 <fizzie> Kconfig:config SPARC64_PAGE_SIZE_64KB 
21:47:52 <fizzie> Forgot the _ in the middle. 
21:48:31 <kmc> er, and 0777 is  wrong 
21:50:42 <fizzie> Heh, that became PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | a couple other bits. (At least it didn't have both PROT_GROWSDOWN and PROT_GROWSUP as well.) 
21:53:16 -!- augur_ has quit (Remote host closed the connection). 
21:54:36 <fizzie> kmc:  "atrir" & ~0xfff  is also a constraint violation. 
21:54:39 * oerjan "fixes" his sandal with tape 
21:55:11 <kmc> GROWSBOTHWAYS 
21:55:44 -!- augur has joined. 
21:55:55 <fizzie> But I do wonder if there's a piece of code with the line  int strings = "dummy"; strings &= ~0xfff; mprotect(strings, 4096, 7); /* make all string literals writable */  in it. 
21:56:56 <fizzie> Perhaps running a nuclear reactor somewhere. 
22:05:36 -!- nortti has joined. 
22:09:18 -!- inago has joined. 
22:10:06 -!- inago has left. 
22:11:23 -!- Braber01 has joined. 
22:12:03 <Braber01> How would I convert a bf [ ] into path /\ 
22:19:26 <oerjan> no such esolang on the wiki 
22:19:37 <Braber01> Yeah the wiki isn't it's called PATH 
22:21:08 <Braber01> yeah the wiki doesn't exactly explain how to convert [ and ] into path 
22:21:52 <Braber01> It confuses the fuck out of me. 
22:24:42 <oerjan> bloody irssi autoconnecting lines 
22:25:52 <Braber01> yeah that didn't quite make sense to me. esp when I need something like a value of 57. and don't want to put 57 +'s in a row. 
22:25:58 <oerjan> oh wait that method isn't composable 
22:26:19 <oerjan> erm that's a problem for brainfuck as well... 
22:26:25 <zzo38> What is the "atrir" & ~0xfff consrtaint violation? 
22:31:58 <Braber01> I'm going to be right back I'm going to hand trace this program to see If I can make sense of it. 
22:33:55 <fizzie> I had a PATH something, I think. 
22:34:01 <fizzie> Some conversion or another. 
22:34:08 <oerjan> Braber01: i can see that the example on the wiki is confusing because it doesn't exit the loop going rightwards, which means it's hard to nest them... 
22:34:49 <oerjan> in fact it doesn't exit the loop the same way when exiting on the first iteration as on a later one 
22:35:03 <fizzie> (Maybe it wasn't PATH.) 
22:35:16 -!- augur has quit (Remote host closed the connection). 
22:35:49 <kmc> Port Authority Trans-Hudson 
22:35:56 -!- Braber01 has quit (Quit: Page closed). 
22:36:41 <fizzie> Oh, right, it was that Beam thing instead. 
22:37:57 <shachaf> I don't explicitly know of anyone using it, but then I suppose the point of it is that I wouldn't. 
22:38:26 <fizzie> I thought PATH was some kind of a system of trains. Is that what that is?  
22:39:01 <shachaf> This is probably one of the ways that I make myself less secure by doing everything in "Incognito Mode". 
22:39:37 <kmc> it's a rapid transit system which runs between Manhattan and the close parts of New Jersey 
22:40:26 <kmc> it goes through a not-quite-tunnel under the Hudson River 
22:40:42 <kmc> more like a cast iron tube that they shoved through the silt on the river bottom 
22:41:05 <kmc> well, four of them 
22:43:45 <kmc> in 2001 one of the stations was destroyed when two large buildings fell on it 
22:43:59 <fizzie> I think I've heard of that. 
22:44:02 <shachaf> kmc: I've noticed the following phenomenon: If I open a fresh Firefox Private Browsing window and go to some non-SSL websites -- say http://www.facebook.com/ -- at home, it'll redirect to the HTTPS version. 
22:44:15 <shachaf> In several non-home public-WiFi places, it doesn't do that. 
22:44:27 <kmc> that's awkward 
22:44:32 <shachaf> Are there reasonable explanations other than "someone tampering with my traffic"? 
22:44:44 <kmc> i will try to think of one 
22:44:49 <kmc> this is the problem which HSTS is supposed to solve 
22:44:55 <kmc> i only learned about HSTS yesterday, so good timing :) 
22:45:12 <shachaf> Well, your question reminded me of it. 
22:45:14 <oerjan> @tell Braber01 i edited the PATH example, the new method should be more consistent 
22:45:49 <shachaf> Maybe they're ABC-testing their HTTPS thing and my home IP happens to fall in one group while some other IPs happen to fall in the other. 
22:46:00 <kmc> hm, "SandForce SSDs heavily rely on compression for faster speeds and less write amplification" 
22:46:08 <kmc> that's unfortunate with full disk encryption 
22:47:59 <shachaf> I wonder whther the property that "you can tell if sector A = sector B" is important. 
22:48:15 <shachaf> And how much performance it's worth, if it comes to that. 
22:48:21 <kmc> you mean using ECB essentially? 
22:48:39 <shachaf> Well, on the sector level. 
22:48:50 <kmc> well the performance on random data is still good 
22:48:54 <shachaf> Or maybe something bigger than a sector. 
22:49:10 <kmc> you take like a 2x hit to sequential write performance 
22:49:14 <shachaf> TRIM is another thing that presumably leaks information which you do want. 
22:49:42 <kmc> but the Intel 520 still beats the fastest comparable non-SandForge SSD at random writes 
22:49:51 <kmc> and isn't much slower on sequential writes 
22:50:13 <kmc> and read performance isn't affected 
22:51:29 -!- MoALTz has quit (Ping timeout: 260 seconds). 
22:51:50 <shachaf> kmc: "For example, an attacker can abort an SSH connection or an HTTPS connection by forging a single TCP Reset packet." 
22:52:05 <shachaf> This seems like another property Mosh wouldn't have. 
22:52:15 <kmc> isn't there a sequence number issue there? 
22:52:29 <shachaf> Presumably a MITM could do it. 
22:52:42 <pikhq_> Comcast did that to Bittorrent once upon a time. 
22:52:42 <shachaf> Or someone on a public WiFi network. 
22:52:56 <kmc> the MITM can also just decide to stop relaying your packets 
22:53:20 <shachaf> Someone who can read your packets can do it. 
22:53:27 <kmc> and yeah, you can't MITM Mosh at the transport layer, because the transport is encrypted 
22:53:33 <kmc> probably IPSec also solves this problem 
22:53:48 <kmc> and UDP-based VPNs 
22:54:02 <kmc> (encrypted and authenticated, i should say) 
22:54:08 <shachaf> And CurveCP (whose web page that quote comes from). 
22:55:44 -!- kinoSi has quit (Read error: Connection reset by peer). 
22:56:12 -!- kinoSi has joined. 
23:00:41 -!- nortti has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )). 
23:07:19 <kmc> if mosh supported roaming on both ends, you could kill a connection by sending two packets 
23:07:23 <kmc> i think i have explained this attack 
23:08:11 <kmc> you could also insert yourself into an existing connection as a network layer MITM 
23:08:43 <kmc> which could be useful for some esoteric attacks 
23:12:00 <shachaf> Hey, GHC supports interruptible foreign calls? 
23:12:24 <kmc> oh yeah, that's newish 
23:12:27 <kmc> i don't remember t he details 
23:14:08 <ion> How are they interrupted? 
23:18:01 -!- mjrosenb has quit (Ping timeout: 252 seconds). 
23:18:48 -!- mjrosenb has joined. 
23:33:28 -!- augur has joined. 
23:38:30 -!- sirdancealot7 has quit (Ping timeout: 264 seconds). 
23:44:03 <zzo38> I have added commands PRINTM, INPUTM, MESGM which is like PRINT, INPUT, MESG but is using C-style strings; this can be used if you are compiling a C code or LLVM code into RogueVM. 
23:44:33 <ion> Wow. /usr/share/zsh-beta/functions/Completion/Unix/_make is insane. It parses Makefiles and expands variables and includes. 
23:45:26 <zzo38> Is that for tab-completion or what? 
23:49:04 <itidus21> zzo38: yay for 10 PRINT "Hello" 20 GOTO 10 
23:50:02 <itidus21> ^HelloHelloHelloHelloHelloHello[...] 
23:50:47 <zzo38> I know it is a BASIC program that will write Hello forever (with line breaks) but I don't know why you write this to me at now 
23:51:05 <ion> > (unlines . repeat) "Hello" 
23:51:07 <lambdabot>   "Hello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHell... 
23:51:13 <itidus21> i think it is a special program in basic 
23:52:54 <itidus21> it does nothing of value. while also being an infinite loop 
23:54:04 <zzo38> If it is paper then it will instead waste all of the paper. 
23:56:26 <itidus21> its much more fun than "Enter distance: " "Enter speed: " ... "The car travelled an average speed of no-fucking-idea" 
23:56:59 -!- ogrom has joined. 
23:57:01 <itidus21> or even worse, a program which lets you enter student grades