00:00:10 what has the biggest number to do with that, though? 00:00:23 the biggest number is needed for $'s 00:00:30 oh, right 00:01:32 well, we can try with (m+1)n 00:03:41 actually hm 00:05:10 -!- Dovregubben has quit (Read error: Connection reset by peer). 00:06:39 (m-1) is enough for the $'s 00:07:04 (m-1)*n_$ + 2*n_: + n_rest 00:07:36 uh 00:07:47 I'm pretty sure that's wrong 00:08:00 simpel counter example: 00:08:08 oh hm 00:08:42 hum 00:09:09 * Arc_Koen begins to understand why Ftack is so useless 00:09:16 heh 00:09:55 it probably should be max(m-1, 1) 00:10:37 ahah 00:12:02 ok I have an idea 00:12:20 let me just check that it is really a counterexample 00:12:46 ok it's most definitely not 00:12:48 but it's fun 00:12:57 ~H~~~~~~~~~~~~~~~~~~~ 00:13:05 heh 00:13:36 -!- monqy has joined. 00:14:17 we have to define "(m-1)*n_$" to be 0 if there are no numbers though, I think 00:14:33 hm... 00:14:49 i guess if there are no numbers you are catting the moment you hit a $, so yeah 00:14:58 otherwise we could include a $ as the last element 00:15:36 +1 symbol, +1 step, -1 in the bound 00:16:45 hmm 00:16:54 (I'm not sure) 00:17:22 actually you can also have $0whatever 00:17:55 yes but that's +3 symbols, +1 step 00:18:01 oh 00:18:07 yeah, ok 00:18:35 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:49 argh 00:19:59 well this is close to correct anyway, i think 00:20:08 hmm? 00:20:36 oh $0$ 00:20:45 haha 00:20:51 it works though 00:21:04 -!- Nisstyre_ has joined. 00:21:11 bound is 1, step is 1 00:21:14 yes, but we need the max 00:21:59 $1$ 00:22:27 i guess it works 00:22:49 note that only :~!( can be applied to themselves 00:22:58 yes i already did 00:23:19 and of those, : and ( give end states 00:23:20 I'm feeling so helpful right now 00:23:28 yup 00:23:34 while ~ and ! keep shrinking 00:24:08 ~ +1 step +1 symbol +1 to the bound 00:25:37 !x + 1 step either + 2 or +m to the bound 00:26:13 err, with a minimum of +1 00:26:19 ok, both are useless 00:30:55 btw, ./fueuec thuemorse still ends up on a segfault, even with catching empty queues 00:32:00 (and being a while loop) 00:32:00 and the suggestion to not use recursion? 00:32:45 oh, wait 00:33:37 fizzie seemed to have debugger proof that it overflowed the stack 00:34:19 yes 00:34:26 I guess I should learn to use debuggers 00:34:47 hey me too! 00:34:49 or maybe use an actual ide 00:35:12 TextEdit does have limitations 00:35:21 * oerjan is a vim guy 00:35:43 well, at least vim is related to programming 00:36:03 but i don't even have any of the advanced vim setup some people do 00:39:20 Arc_Koen, you can use TextEdit? 00:39:34 yes 00:39:39 why could I not? 00:39:43 * Arc_Koen is a mac user 00:39:44 ISTR it only writing RTFs, but I was young and stupid back then. 00:40:39 well, it's a text editor 00:40:45 like windows's blocnote 00:41:04 maybe sliiiightly more advanced as it can do some basic text formatting 00:41:16 but I'm definitely not using that 00:41:46 fun fact: it has an auto-spell check 00:41:59 if you don't disable it, it will correct what you're typing without asking 00:42:12 I wasn't aware of that, it messed with a lot of ocaml programs 00:42:47 like 'rec' which was systematically turned into 'ref', or the opposite 00:45:15 urrh 00:45:23 segfaulted on the alphabet 00:45:31 ok, this is a bug that should be corrected easily 00:49:42 -!- subleq has joined. 00:49:45 hello 00:50:32 haha 00:50:57 `welcome subleq 00:50:58 empty program + ^D successfully prints an infinite amount of ? 00:51:01 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:02 hello subleq 00:51:17 -!- copumpkin has changed nick to ChuckPonzi. 00:51:30 For the other kind of esoterica, try #esoteric on irc.dal.net, just incase 00:51:43 Or try Wikipedia. 00:52:08 as if someone named subleq 00:52:26 Just in csae. 00:52:27 monqy: i was being ironic 00:52:54 ^just in case 00:54:20 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:56:52 wut 00:56:59 fancy, uh? 00:57:39 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 and that makes both ) and - destroy the next element 01:01:59 ok, now - and + interpret anything that's not a number as if it were a 0 01:05:42 ah, i see all the old folks are here 01:05:43 hi oerjan 01:06:06 hi subleq 01:07:09 Arc_Koen: something wrong with the use of matchwhat? 01:07:40 if you assume that is true you might get such an effect. 01:07:42 I guess 01:07:55 oh, of course 01:08:14 things would have gotten serious if I had used an union 01:08:40 s/serious/fancy 01:08:56 hi oklopol 01:09:30 urrrrh 01:09:32 haha 01:09:41 I used !*s as meaning "s is not empty" 01:09:56 OKAY 01:10:37 see, s != "" worked just fine 01:10:38 Arc_Koen: i suppose s[0] != '\0' is more readable, and probably compiles down to the same thing. 01:10:39 :p 01:10:43 heh 01:11:03 oh so matchwhat _always_ returned true? :P 01:11:30 yep 01:11:36 well i guess unless the queue is empty 01:11:47 no no, always 01:12:29 matchwhat is structured as "if (neither string nor queue are empty) {...} else if (string not empty) { false} else true" 01:12:55 i have a hunch that the entirety of matchwhat could be rewritten as a single expression 01:13:00 so, thinking all strings were empty, he always returned true 01:13:05 yes 01:13:12 in ocaml I wrote it another way 01:13:52 and could have wrote it many different other ways but heh one is enough 01:15:27 -!- impomatic has left. 01:16:41 +HH still transforms into 0 though 01:16:51 eek 01:16:59 paste the code? 01:18:09 http://sprunge.us/XfgY 01:18:21 http://sprunge.us/XfgY?c actually 01:23:27 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:26:19 oerjan: adding printf("matchwhat: %s\n", (itsok?"TRUE":"FALSE")); in matchwhat shows matchwhat isn't even called 01:26:32 huh 01:27:28 so it's like I made a fancy error with !*s which wasn't given an occasion to mess around 01:27:30 If you make (s != "") in C it makes if the address does not match the address of "" so it is different. 01:28:09 haha 01:29:29 But !*s means if s points to a value zero so for string meaning, empty string. 01:29:38 Arc_Koen: does it get to if (op == '+') 01:29:44 ? 01:30:08 I'll add a printf but I guess it does, since + 3 4 gives 7 01:30:50 ok, uh, I agree this doesn't make any sense 01:31:31 -!- ChuckPonzi has changed nick to copumpkin. 01:31:37 kmc: FSVO "nicer" 01:31:41 ARRRH STUPID ME 01:32:01 I value hours not spent on a plane much more than hours spent on a plane being able to watch movies. 01:32:02 was using a different name for exec file when compiling and executing 01:32:15 ooooo 01:33:04 so basically I was using the last version which used that name, which probably was right after switching to !*s 01:33:31 With that said, Virgin America's was probably the nicest domestic flight I've been on. 01:35:28 Arc_Koen: fancy 01:35:55 ok, it works with the wiki page's sample programs 01:36:08 yay 01:37:27 if you have any other remarks on the code... :-) 01:38:20 not haskelly enough ;P 01:38:37 haha 01:39:06 so hum, you have proven fueue was turing-complete? 01:39:15 essentially. 01:39:48 oerjan has even proven that norway is turing complete 01:39:59 erm 01:40:15 -!- pikhq_ has joined. 01:41:20 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:31 :P 01:41:40 -!- pikhq has quit (Ping timeout: 248 seconds). 01:41:42 ^ul ! 01:41:43 ...out of stack! 01:41:51 yeah, I just had the idea to 01:41:52 wait 01:41:52 i just copied it from fungot's underload 01:41:52 oerjan: i already have 01:42:00 ok, ok 01:42:50 for a second I thought "^ul !" meant "find the last ascii-looking sequence of numbers written on this channel and translate it" 01:42:59 XD 01:43:36 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 since things happen slightly in parallel, more or less 01:45:24 what if they are two : in the underload program? 01:45:36 won't the first eat [] and the second 46? 01:46:10 shachaf: well, HEL-JFK and JFK-SFO are of comparable length 01:46:29 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 i'm not sure about the subjective difference between 6h and 8h flights 01:46:59 they both just register as "a long time" 01:47:04 so only one of the :'s will be running at a time. 01:47:18 shachaf: did you see http://www.ethanzuckerman.com/blog/2012/08/30/long-flights-a-somewhat-serious-business-idea/ 01:47:54 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:12 oh, ok 01:48:18 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:51 Nope. 01:48:57 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 i didn't explain it much i guess :P 01:50:03 kmc: I find myself unable to concentrate on anything in flights. 01:50:06 i suppose i should add something about A and B representing nested underload programs 01:50:36 shachaf: why? 01:51:57 I don't know. I wish it wasn't the case. 01:52:12 I'm also rarely able to sleep. 01:53:28 nested? 01:53:34 "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 I can also usually not get anything done while listening to music. 01:53:53 yeah, that's one of the dumber parts of this proposal 01:54:00 one of the commenters suggests that you rely on social norms to shut people up 01:54:07 like the library 01:54:42 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 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 or you can split it as A = (:^): B = ^ , doesn't matter much 01:57:39 what if you split it as A = (:^):^ B = empty ? 01:58:16 oh, wait, you must continue splitting until you have only one-symbol programs? 01:58:24 Yep. 01:58:31 ok :) 01:58:46 but you made me realize i actually forgot to represent the empty program in my translation 01:59:06 which is important, since you can have use for () which uses it recursively 01:59:28 shachaf: what about music without words 02:00:09 Sometimes it's OK... Sometimes it still doesn't work. 02:00:40 I should probably figure it out and collect some non-disruptive music. 02:04:52 Arc_Koen: expanded the wiki table 02:06:36 * oerjan OCD's on periods 02:07:44 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 okay, but ( and ) are underload commands that are quite unrelated, are they? 02:08:53 I mean, the correct parenthesing is only an arbitrary rule, right? 02:09:10 no, they always match. (A) is more or less similar to fueue (A 02:09:20 or wait hm 02:09:25 fueue [A] 02:10:53 except that fueue [A] does nothing, while underload [A] moves itself from the running program to the stack 02:11:00 er 02:11:04 *underload (A) 02:11:56 did I mention it was 4am? 02:12:05 ...not that i recall. 02:12:40 well, it is, so i'll take off 02:12:45 good night then 02:12:53 thank you 02:14:22 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:32 bye 02:14:39 -!- Arc_Koen has left. 02:20:00 -!- monqy has joined. 02:32:47 Review what I have written more of RogueVM; I have written a lot more by now. 02:43:28 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 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). 02:47:58 of course 03:02:42 i'm using gitit 03:02:49 i like that i can export any dumb page on my wiki as LaTeX or man page 03:06:53 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 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 Is there a simple way to make CTR mode suitable for disk encryption? 05:06:04 shachaf: I am going to sleep, but remind me about that question tomorrow. 05:06:20 @ask kmc Is there a simple way to make CTR mode suitable for disk encryption? 05:06:21 You can tell yourself! 05:06:23 @tell kmc shachaf: I am going to sleep, but remind me about that question tomorrow. 05:06:23 Consider it noted. 05:06:30 thachaf 05:06:30 kmc: You have 1 new message. '/msg lambdabot @messages' to read it. 05:06:36 bah 05:06:39 * kmc -> 05:06:40 "whoopse" -- kmc 05:06:50 kmc: Back to normal-people sleep schedule, are you? 05:07:00 @tell kmc 22:06 @ask kmc Is there a simple way to make CTR mode suitable for disk encryption? 05:07:01 Consider it noted. 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 @tell kmc Also, can you easily turn a stream cipher into a block cipher? (Also, some other things.) 07:16:22 Consider it noted. 07:16:52 * shachaf will save conversation for tomorrow. 07:27:59 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:15 @messages? 09:25:15 Sorry, no messages today. 09:25:26 > hi "atriq" 09:25:28 hi atriq 09:25:32 @src hi 09:25:32 Source not found. Maybe if you used more than just two fingers... 09:26:19 @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:26:19 Consider it noted. 09:28:03 "Two Fingers" is a brand of tequila. I don't know where the name comes from. 09:29:10 I ought to upload my Fueue interpreter somewhere 09:31:23 Is there a way I can pipe something directly to the clipboard? 09:31:40 foo > /dev/clipboard or something like that 09:31:58 > hi "atriq" 09:32:00 hatriq 09:32:01 > hi "elliott" 09:32:03 helliott 09:32:04 > hi "oerjan" 09:32:06 hoerjan 09:32:07 > hi "kmc" 09:32:08 h 09:32:10 Whoops. 09:32:11 Oh no! 09:32:14 > hi "keegan" 09:32:16 heegan 09:32:16 atriq: Depends on which clipboard you're talking about. For the X clipboards, there are several command-line tools. 09:32:30 'xclip' is one, if you happen to have it installed. 09:32:59 It uses the primary selection by default, and the CLIPBOARD selection if you ask it to. 09:33:38 "foo | xclip" will let the middle-mouse-paste paste the output of foo, for example. 09:33:49 * shachaf uses xsel 09:33:57 ...Because it usually seems to be installed. 09:34:08 It's not, here. 09:34:12 Though neither is xclip. 09:34:47 It looks very similar, except with slightly more bells on it. 09:41:47 @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:41:47 Consider it noted. 09:42:30 @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:42:30 Consider it noted. 09:43:07 Aaargh 09:43:20 Why is getting syntax highlighting for Haskell on Tumblr so hard 09:46:41 -!- MoALTz has joined. 09:47:56 atriq: Perhaps you should start a more Haskell-friendly competitor, called Humblr? 09:53:46 I don't think anyone questions that some of us have or haven't done that. 10:17:37 there is no integer between 1 and 2! 10:22:05 std::vector { 1, 3, 2} 10:22:14 itidus21: now there is 10:22:29 gasp 10:22:29 * insert = between > and { 10:23:02 (and a name of choice of course) 10:23:53 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 fizzie: yes, that's C++11's initialize list feature 10:24:21 Funky. 10:24:24 *initializer 10:24:53 std::initializer_list I think 10:24:58 Yes, I see. 10:25:02 and yes, that was very very annoying 10:29:33 i always admired the DATA statement in basic 10:31:14 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:45 AnotherTest: No. 11:06:50 The source code has gone missing. 11:10:25 As I'm not a person who uses backups. 11:18:50 -!- Phantom_Hoover has joined. 11:35:03 "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 hello 11:43:23 Arc_Koen: You have 3 new messages. '/msg lambdabot @messages' to read them. 11:43:28 @messages 11:43:28 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 yet the only pointer to that data is lost. See http://sprunge.us/WiHK 11:43:28 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 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 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:43:30 ) 11:44:02 http://www.reddit.com/r/guns/comments/z55a3/has_there_been_more_highprofile_gun_crime_lately/c61pen4 11:44:08 Ladies and gentlemen, /r/guns. 11:48:31 I didn't say those things with that many newlines in the middle. 11:53:24 So handing out a gun to everyone doesn't work out quite as expected? 11:57:22 fizzie: do you think I should change is_empty(Queue q) to is_empty(const Queue *q)? 11:58:26 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:58:43 or is_zero(const int *n) 11:59:10 "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 hi shachaf 12:24:32 kmc: You have 3 new messages. '/msg lambdabot @messages' to read them. 12:24:39 against my better judgement, i am awake 12:24:43 kmc: Just as I was about to go to sleep. :-( 12:24:50 @tell oerjan ./fueuec '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]' 11010011001011010010110011010011001011001... '110' seems a weird start for the thue morse sequence... 12:24:50 Consider it noted. 12:24:53 Did you sleep tonight yet? 12:24:58 yes 12:25:07 Oh. You just woke up early? 12:25:10 but my alarm went off by accident at 08:00 12:25:16 Doing better than I am, then. 12:25:22 and i haven't been able to get back to sleep 12:25:27 I wish my alarm could just wake me up. That would be great. 12:26:44 what does it do instead? 12:27:15 Well, it beeps. 12:27:21 Occasionally I wake up. 12:29:23 shachaf: can you use an ESSIV for the nonce part of the counter 12:29:26 isn't that enough? 12:30:06 ESSIV is "generate an IV based on the sector number"? 12:30:29 based on the sector number and the hash of the key 12:30:30 yeah 12:30:54 i guess this is not secure though 12:30:57 That's very broken since you can overwrite old blocks. 12:31:00 yeah 12:31:13 x ^ y will give you the xor of the plaintexts. 12:31:15 you end up reusing the keystream otput from CTR 12:31:17 maybe the internet should shut down overnight 12:31:58 whereas reusing the IV for CBC is not as much of a problem 12:32:03 but still bad 12:32:23 You get the property that "someone can see if what you wrote to a block has ever been there before". 12:32:35 Which is undesirable in normal uses of CBC but maybe doesn't matter in disk encryption. 12:32:56 (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:16 right 12:33:22 (Alternatively, ciphertext_i = ENC(key, iv + i) ^ plaintext_i) 12:33:51 did i tell you i saw a cold boot attack on a spy show on TV? :) 12:34:53 No. 12:35:01 I didn't know that was called a cold boot attack. 12:36:02 I,I called boot attack 12:40:30 i guess it's a pun 12:40:47 05:40 puns aren't worth much. 12:41:08 i meant "cold boot" 12:41:23 I know. 12:41:26 ok 12:41:42 Is that a fictional spy show or a nonfictional spy show? 12:41:43 should i give an informal talk at MIT (a "SIPB cluedump") on how to screw up using cryptography? 12:41:56 the show is real; it is a work of fiction 12:41:57 Yes! 12:41:57 ;P 12:42:02 the show is Burn Notice 12:42:15 it is a fairly ridiculous show but lots of fun to watch 12:42:27 Also you should come up with a bunch of CTF challenges that get cryptography wrong. 12:42:33 And then we can make a #esoteric CTF out of it. 12:42:38 wish i could make nelhage and gdb do that 12:42:39 Since Stripe probably won't do it. 12:42:42 i think i won't have time 12:43:00 -!- Phantom__Hoover has joined. 12:43:06 Hmph. 12:43:14 I'll do some if you do some! 12:43:24 also it's annoying to run a CTF 12:43:26 * shachaf wonders whether making good CTF problems is really hard. 12:43:29 because people try to hack your shit 12:44:01 did you see https://blog.gregbrockman.com/2012/08/system-design-stripe-capture-the-flag/ 12:44:06 i don't know why this wasn't on the stripe blog 12:44:24 Yes. 12:44:32 He talked about it at the CTF event. 12:44:50 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 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 fizzie: a queue is a struct made of one int and two pointers 12:45:24 For example level 5 was solved by nearly everyone using an unintentional bug, it seems? 12:46:45 which bug? 12:46:47 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 Apparently you were supposed to make a response which consisted entirely of a string matching the regexp 12:47:13 /somethingAUTHORIZEDsomething$/ 12:47:15 you ought to benchmark to figure out whether a pointer or a struct copy would be faster 12:47:18 But $ matches newlines. 12:47:25 Or something like that. 12:47:41 Anyway there was an alternate way involving exceptions raise by certain HTTP responses which was actually what they intended. 12:47:47 Also a bunch of other things that I don't remember. 12:47:47 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:47:53 huh 12:48:04 Right, I did something similar. 12:48:41 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:48:52 maybe 12:49:09 fizzie: ok, I guess I will change it then 12:49:40 -!- Nisstyre_ has quit (Quit: Leaving). 12:49:51 kmc: Any idea what "nm" stands for on http://nacl.cr.yp.to/box.html ? 12:50:13 it's pretty remarkable that stripe was willing to spend several developer-weeks on this 12:50:34 no 12:50:45 Also, of how you might do disk encryption with a stream cipher? 12:50:51 * shachaf .zzo38.moed 12:53:21 i don't know about that either 12:55:12 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:24 ah, cool 12:55:58 fizzie: Oh, that's the way you were supposed to solve it, I think. 12:56:03 s/AUTHORIZED/AUTHENTICATED/ but anyhow. 12:56:28 (I stumbled over the error message completely accidentally, though.) 12:58:44 -!- monqy has quit (Quit: hello). 13:04:09 http://phantomjs.org/ looks useful 13:04:19 for testing websites and the like 13:04:27 I feel I should make some sort of remark. 13:05:20 heh 13:10:41 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:17 *shrugs* 13:12:26 The modern browser is a VM, not a markup engine. 13:12:36 well it's both and a lot more 13:13:11 i mean, i am not surprised by this fact 13:13:31 but i am wondering if in particular i should do more scraping this way 13:14:10 there are some definite disadvantages as well 13:15:50 Do you do much scraping? 13:15:55 not that much 13:16:39 when i worked in finance we had a whole team doing scraping :/ 13:17:31 because they wanted to get all the information out of all the different brokerage accounts daily, if not in real-time 13:17:36 and integrate it into a master risk-management thingy 13:18:37 and different brokers provide a variably terrible experience in getting this data programmatically 13:18:57 many of them would at least let you download a .csv or .xls file 13:19:46 does a programming language with the name "MIX" exist? 13:20:00 sort of 13:20:09 (MIX standing for Modular, Interpreted, eXtensible language) 13:20:10 I think it's more of a CPU architecture. 13:20:11 it's the fictional CPU architecture invented by Knuth in TAoCP 13:20:22 It certainly doesn't stand for that. 13:20:35 labeling your language as "interpreted" is stupid 13:20:39 what if someone writes a compiler for it? 13:20:53 What if that's not a good idea? 13:21:02 what if someone does it anyway 13:21:08 They can't. 13:21:10 It's in the spec. 13:21:14 ^ 13:21:16 That's MMIX you're thinking of, no? 13:21:21 Phantom__Hoover: that's the new version 13:21:25 Phantom__Hoover: MMIX is the 2009 version of MIX. 13:21:32 (Actually it's 1992 or something.) 13:21:40 Ah. 13:21:47 Is the next version MMMIX. 13:21:50 suckless MIX, reinvented, done right, for the modern era 13:22:02 MMIX 3000 13:22:08 you should look up the etymology of MIX, it's amusing 13:22:36 MIX is a funny architecture in a lot of ways. 13:22:46 ...I know very little about it, but most of what I know is strange. 13:22:49 okay I need to come up with a better name 13:22:53 but learning it will make you a REAL MASTER HACKER 13:22:58 AnotherTest, XIM 13:23:02 X.so seems applicable 13:23:24 unless of course someone decides to port it to windows 13:23:29 then it should be called X.dll 13:23:36 ex-S.O. 13:23:48 "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 That's "Standard Oil", right? 13:24:07 yeah... 13:24:12 XIM probably already exists 13:24:21 exxon = ex-S.O.N.J 13:24:24 whoa, dude 13:24:26 Yes it does 13:24:32 at the time TAoCP was written, decimal computers were still popular 13:24:35 Yeah, but not as a language. 13:24:43 XIM = X Input Method 13:24:58 this is one of the reasons why i question the idea that TAoCP will make you a master hacker 13:25:13 as opposed to just being an extremely hard and pointless exercise that only master hackers can pass 13:25:20 but i'm just bitter because i gave up on reading it 13:25:34 there is a XIM library 13:25:37 a XIM company 13:25:55 a XIM interpal penapls profile(?) 13:25:55 kmc, have you tried reading Mac Lane BtW. 13:25:58 no 13:26:06 *penpals 13:26:30 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 pineapples profile 13:31:26 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 The assembly language for it is commonly called "MIX" too, in case that wasn't mentioned. 13:42:49 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 @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:34 Consider it noted. 14:24:56 @ask elliott I mean gold badge. GOLD BADGE = MEANING OF LIFE 14:24:56 Consider it noted. 14:25:23 i'm pretty sure even i could write that bot with ease, why don't you do it yourself 14:26:30 echo 'something something cron syntax curl -b ~/shachaf/cookie-file http://stackoverflow.com/' > something something crontab 14:27:12 I'm even getting my mock command line syntax wrong. :-( 14:27:16 * shachaf should go to sleep. 14:37:00 you can get frequent flyer points that way, too 14:37:17 some airlines give you points for checking in at the airport on foursquare or whatever 14:46:03 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 i don't really even know what those look like. 14:46:30 for foursquare hax or in general? 14:46:38 in general if applicable 14:46:40 in general you can put in your mileage number when you book flights online 14:46:45 and if you don't? 14:46:48 i've never done that 14:47:03 then you can sometimes claim the points after the flight 14:47:12 but i don't! why do i have points :D 14:47:16 yeah, i don't know 14:47:21 alright 14:47:22 are you logged into the website when you book 14:47:40 i don't book myself, the university travel agency does 14:47:43 oh 14:47:48 well they probably set up an account for you 14:47:49 maybe they do it 14:47:52 yeah perhaps 14:47:59 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 what's the use of the points? 14:48:24 or should i say... point 14:48:33 ...instead of use 14:48:34 you can use them to book free travel and other free things 14:48:45 Or discounts for things. 14:49:23 Finnair has discount deals with at least some restaurants, we've eaten our points from regular vacationing. 14:49:30 well i do like free points 14:49:31 erm 14:49:35 free things i mean 14:50:24 maybe i should check how this works, i do like food so wouldn't want to waste. 14:50:50 just sounds so incredibly complicated 14:50:55 The points do evaporate (in something like three years or so) if not used. 14:51:00 Physical fact. 14:51:10 everything does 14:51:30 they all evaporate at once right? 14:51:48 No, just the ones that are old enough. 14:51:58 Well, one trip's points all go at once. 14:52:04 oh right 14:52:45 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 sometimes there are ways to keep them alive 14:53:21 like proper nutrition 14:53:54 i need to go make sure some stuff doesn't get stolen tonight. 14:54:00 wish me luck 14:54:00 Blugh. Can't sleep. 14:54:03 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 me neither, or they won't pay me. 14:54:12 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 I like JetBlue's advertisements. 14:55:03 Points Don't Expire*! 14:55:16 * Unless you don't use any points for a while. Then they expire. 14:55:17 perhaps when wormhole travel is invented, points become quantum. 14:55:20 Hey, I've seen one of those. 14:56:04 jetblue points are kind of boring and useless, iirc 14:56:05 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 the traditional airline rewards in the USA are based on miles flown 14:56:22 Or maybe it's just money+points. 14:56:28 which is strange, because pricing is not particularly well correlated to miles flown 14:56:33 and this enables all kinds of hax 14:56:47 such as "mileage runs" which are flights abnormally cheap for how far they go 14:56:52 which are actually worth taking for this purpose 14:57:09 Yeah, I think Finnair points are just a fixed amount, depending on flight type (domestic, in Europe, intercontinental). 14:57:21 Mileage runs are only free if your time is worthless. 14:57:25 Like Linux. 14:57:30 Except they're not free. 14:57:36 And also not a lot like Linux. 14:57:42 Why are JetBlue useless? 14:57:52 Points. 14:57:59 i mean, i know someone who has a high paying job in NYC and does mileage runs all the time 14:58:00 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 How worthwhile do they end up being? 14:58:28 if you like flying, and visiting randomly chosen places for brief periods of time 14:58:37 and if you're able to do useful things on a plane, like work or sleep 14:58:47 then it is more worthwhile 14:58:51 That's true. 14:59:08 Though "abnormally cheap given their distance" is a bit of a strange criterion. 15:01:21 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 Incidentally, is there something I should know about Delta? Are they considered some kind of a bad thing or something? 15:01:52 I think they're considered a typical mediocre airline? 15:02:00 Suits me. 15:02:08 i've heard that delta miles are unusually worthless 15:02:18 which doesn't mean you shouldn't fly on delta 15:02:50 if you want to know way too much about all of this, http://www.flyertalk.com 15:03:37 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 in it by now. 15:03:46 heh 15:04:01 lexande knows a lot about this stuff 15:04:25 Most of it is about flights, Boston, NYC, NYC<->BOS, etc. 15:04:40 lexande isn't here, though. 15:04:55 You seem to end up in actual conversations about these things in channels I'm in. 15:04:58 That I notice. 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 basketball tactics are ridiculous 15:43:49 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 (the tactic used was basically to run away) 15:49:17 -!- sirdancealot7 has joined. 15:50:14 -!- Braber01 has joined. 15:51:40 PATH, Brainfuck and deritivies of brainfuck all use ascii values to print letters correct? 15:56:04 Braber01: ASCII is the most common interpretation 15:56:16 and not matching ASCII for the range 0-127 would be incompatible with pretty much everything 15:56:24 Thanks, Just wanted to make sure 15:56:27 beyond that, it's unclear whether programs are meant to print single bytes or Unicode 15:56:34 (single bytes is a lot more common) 15:59:23 ais523, well, it's a bit of a toss-up between 1 and 31. 16:00:04 Nobody ever uses any of those characters except for 10 and 04. 16:00:41 And 11 and 27 I guess. 16:01:13 Tabs do get some use. 16:01:45 Yes fizzie hence the 11. 16:01:57 That's a vertical tab. 16:02:05 *Those* aren't used much. 16:02:13 09, ops 16:02:14 The horizontal one is 9. 16:02:42 13s are around on other systems. 16:02:58 And in HTTP, and around. 16:04:33 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 Not only HTTP; many internet protocols use CRLF line endings (HTTP, IRC, SMTP, gopher, etc) 16:06:24 I think I prefer that to the modern spoiler formats. 16:07:05 CRLF is also use as line endings on DOS and on Windows, and CRLF is the printable line endings 16:08:04 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 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 shachaf: do you know about HTTP Strict Transport Security? 16:49:32 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:15:42 @messages? 17:15:42 Sorry, no messages today. 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 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 or if anything is unclear. 17:24:05 <14WAACEG2> Why did my nick change? 17:24:07 <14WAACEG2> Aaaa 17:24:11 -!- 14WAACEG2 has changed nick to atriq. 17:24:22 Did you change your nick? I don't know why. 17:24:46 I wasn't paying attention 17:24:48 I didn't try to 17:24:54 I don't think I did 17:25:18 atriq, nick-changing ghost. 17:25:31 i've heard of that. 17:25:36 Doesn't that on freenode change to GuestNNNNN or something. 17:25:52 sometimes in old abandoned theatres when people login to IRC their nicks change 17:26:49 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 You can't self change nick to something that starts with a number. 17:27:26 Yes it does look like otherwise illegal if it start with a digit. 17:27:34 atriq: From here, it looked like: 17:27:34 20:17 -!- atriq is now known as 14WAACEG2 17:27:34 20:17 -!- atriq [~Taneb@78.146.170.75] has joined #esoteric 17:27:34 20:17 -!- atriq [~Taneb@78.146.170.75] has quit [Client Quit] 17:27:43 How odd 17:27:50 but thats an l not a 1 17:28:01 It's not an l. 17:28:21 I am trying to play a BBS door game "Franchise Basketball" but there are no free agents! 17:28:21 oh i see 17:29:49 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:12 hey atriq 17:30:13 (Old IRCnet rule for nick collisions was to drop both users; and there are no services like ChanServ there.) 17:30:17 Hey 17:31:00 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 atriq: I think there are no more problems with my C interpreter 17:32:19 Brillian! 17:32:20 t 17:32:50 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:15 what about your haskell one? 17:33:22 Pretty much working 17:33:33 A bit slow, but I think that's a problem with Fueue 17:34:36 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 hmm, my ocaml interpreter appears to be much slower than the C one 17:35:09 maybe that's because of using recursivity 17:36:39 How quick is your C one, running oerjan's Thue-Morse sequence program? 17:39:06 weeeeeeell okay maybe not so fast 17:39:35 it takes about five seconds to cover my entire screen with 0s and 1s 17:39:48 however, I'm not sure it's the correct thue-morse sequence 17:40:01 Okay, that's quicker than my Haskell program 17:40:38 (maybe 7 seconds actually) 17:43:31 -!- AnotherTest has quit (Quit: Leaving.). 17:45:31 it's so stupid that desktop mice are wireless by default 17:46:01 My computer is wired. 17:46:21 my mouse never leaves my desk; why should I deal with batteries, wireless interference, multiple parts i can lose, etc. 17:46:40 You should buy the wired one instead, then! 17:46:52 i did :) 17:47:00 OK 17:49:11 but selection is limited 17:49:41 wired mice are mostly either very cheap and crappy, or are expensive, designed for gamers, and completely ridiculous 17:50:17 I would prefer a three button wired mouse without wheel 17:51:08 why no wheel? 17:51:55 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 i've not had that problem 18:03:09 I'm surprised not to find a functional version of brainfuck on the wiki 18:03:17 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 I think the backgammon on X-BIT is computer player is not very good, because they are in jail a lot. 18:31:19 I have won 24 out of 33. The system operator has played 6 times and lost all of them. 18:31:40 Nobody else has played this game. 18:32:18 is jail a backgammon term? 18:33:08 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 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 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:18 its a menu 18:50:46 seems like it presents two options [0] language [1] large 18:51:01 Yes but I don't know what those options mean. 18:51:09 I tried both and neither of them seem to work. 18:52:03 Maybe I should try playing Backgammon 18:52:15 i would have expected [ 0] Australian English [ 1] British English [ 2] American English [ 3] Italian [ 4] French [ 5] Chiense 18:52:38 ^[ 5] Chinese 18:52:46 dammit my sandal broke 18:52:47 oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 18:52:51 @messages 18:52:51 Arc_Koen said 6h 28m 1s ago: ./fueuec '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]' 11010011001011010010110011010011001011001... '110' seems a weird start for the thue morse sequence... 18:53:11 Arc_Koen: um you forgot the initial 48 18:53:21 oh 18:53:41 what initial 48? 18:53:49 I just copied the code from the wiki page :) 18:53:53 wat 18:54:44 http://upload.wikimedia.org/wikipedia/commons/3/30/Backgammon_lg.jpg 18:54:48 I HAVE NO IDEA WHAT YOU ARE TALKING ABOUT *COUGH* 18:54:50 I have no idea what's going on 18:55:14 probably this code '~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]' 18:55:37 yes but there's a 48 at the beginning *cough* 18:55:58 Sgeo: nothing's going on, it's the start position 18:56:27 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 blacks move counterclockwise, while whites move clockwise 18:57:04 having your own dice probably makes cheating easier 18:57:06 zzo38: players almost always have their own dice, except in travel sets or sets that are smaller for whatever reason 18:58:11 but i'll try to be less cynical 18:58:20 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 The pieces could be black and red, or other colors, instead of black and white. 18:58:45 except they can't be the same color 18:58:49 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 You can play in either order. If you roll double, you make four moves instead of two. 18:59:08 I'm reading the Wikipedia page 18:59:23 a month ago I learned a russian variant 18:59:36 it's basically the same except you start with ALL your pawns on the same file 18:59:40 and you cannot capture 18:59:43 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 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 If all of your pieces are off the board and not in jail, you win. 19:00:49 well, you win first leg 19:01:02 i think it would be interesting to have a dice with a "roll twice" face 19:01:27 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 You can pass if you have no legal moves; otherwise you must move. 19:01:59 -!- david_werecat has joined. 19:03:20 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 what do you mean "not always used"? :( 19:04:21 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 "Backgammon has an established opening theory, although it is less detailed than that of games like chess." 19:04:50 That kind of annoys me 19:04:57 Maybe I don't like opening theory 19:06:02 one way to think about games is to see them as falling into 2 categories, win or not-win 19:06:27 really horrible choice there 19:06:52 Sgeo: you really don't need to study opening theory to start playing backgammon 19:06:52 but 19:07:12 even if you want to progress, i don't think the opening is the best thing to study 19:08:12 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:31 except not all games 19:08:50 i am interested in games where the final resuilt isn't win, lose or draw 19:08:55 Sometimes there is also the score. 19:09:01 -!- asiekierka has joined. 19:09:15 Other times both players can win, or both lose, or something else, too. 19:09:24 Depending on the game. 19:09:52 zzo38: yeah i am new to the reality of it 19:11:22 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 In any tournament it is possible for both sides to be disqualified, I think. 19:12:06 i think it is rare that the outcome of a game actually affects someones life 19:12:49 If it is Washizu Mahjong then you will win/lose millions of yen and also your blood. 19:13:12 humm 19:13:14 zzo38: they are not disqualified, they just lose one game 19:13:39 zzo38: ok so i am wrong 2 out of 2 of my claims so far! 19:14:04 -!- augur has joined. 19:14:13 Arc_Koen: O, they are not disqualified. I thought it was. 19:14:39 but, that being said, in real casinos if you will millions can you just walk out unhassled? 19:15:21 or do you need some kind of threat if they don't pay up? 19:16:19 i can sort of imagine that its a bit like insurance companies which make their money by not paying out 19:16:38 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 those kind of things happen a lot more with chess tournaments 19:17:52 zzo38: i have no idea since i have never gambled > $100 :P 19:18:33 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 well i only played blackjack a few times in melbourne 19:19:23 Did they tell you to go away? 19:19:31 The casino owners are always allowed to tell you to go away. 19:19:37 hmmm 19:19:50 "then I was thrown out because I knew how to play" 19:19:51 no i guess i was looking sober at that time 19:20:17 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 somehow some people get satisfied by emptying their pockets 19:20:50 like it makes them feel sick to save money 19:21:05 "i don't think that's quite right" 19:21:15 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 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 kmc: well.. its not really casino gambling, more the poker machines 19:22:15 "poker" machines are basically slots right? 19:22:21 ya 19:22:27 pokies or slot machines 19:22:30 Poker machines are like slot machines except you can select which cards to discard. 19:22:50 hmm well... in australia for some reaosn they call slot machines poies 19:22:53 pokies 19:23:08 'That's an odd name. I'd have called them "chazzwazzers".' 19:23:57 you can play slot machines more or less anywhere in australia 19:24:19 Because you poke coins into them, duh 19:24:49 i dont know if thats typical 19:25:02 I've... never seen a slot machine. 19:25:23 in some parts of the USA they have slot machines in gas stations and airports and such 19:25:28 nevada, and indian reservations 19:25:37 So can you max out your luck stat and make a killing on the slot machines like in New Vegas. 19:25:40 well.. they have them everywhere here... and also brothels 19:26:06 what else can you expect from convicts 19:26:40 well when i say everywhere i don't mean literally everywhere 19:27:00 but mostly if you can go there to drink 19:27:39 We "always" have slot machines in gas stations, it's kind of a staple. Those, and quite a few bars. 19:27:52 There's also the Pajatso thing. 19:27:57 -!- ais523_ has changed nick to ais523. 19:28:08 "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 Yes I have read about that on Wikipedia. 19:28:33 There are some similarity to pachinko. 19:29:08 http://www.suomenpeliautomaattihistoriallinenseura.fi/pics/timo/50pjasso.jpg -- that's the one from the 70s, I've seen those. 19:29:34 There's also very little similarity to a pinball machine. 19:29:39 i guess they're everywhere 19:29:58 Pachinko is more similarity to pinball than pajatso is, though. 19:30:00 -!- tswett_ has changed nick to tswett. 19:30:07 Yes, I think there's a ball? 19:30:12 -!- asiekierka has quit (Remote host closed the connection). 19:30:13 Yes, there is a ball. 19:30:29 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 I'm reasonably sure the output is randomized, though. 19:30:44 lol 19:30:51 Since it would be pretty trivial to move mouse in an exactly identical way. 19:31:12 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 it's probably pretty different from brainfuck then 19:31:30 Arc_Koen: Duck, I'm sure there's a brick coming. 19:31:36 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:41 http://sprunge.us/jEhM 19:32:48 i wonder how they pull that off 19:33:28 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 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 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 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 How much money can the player expect to win or lose on average? 19:35:51 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 hmmm ok I think I have an idea 19:36:35 What would it be if the player did not have X-ray vision? 19:37:23 fizzie: what about (1) (2) ((6)(7)3) (4) (((8)6)(7)5) main 19:37:39 so a function number is "the smallest available number" 19:39:26 I'm personally okay with that, but then again I would've been okay with just consecutive unique numbers too. 19:39:34 @tell 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:39:34 Consider it noted. 19:40:03 @tell atriq So that you could skip around the parts of the queue that are presently doing nothing 19:40:03 Consider it noted. 19:40:05 Arc_Koen: Not related, but was your latest fueue.c around? 19:40:21 probably not 19:41:14 http://sprunge.us/ENEA 19:43:33 oh, I did not fix the too many arguments thing 19:47:04 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 i think they're legal in MSVC too, even though they refuse to implement all of C99 19:47:46 not sure though 19:47:54 you should just write C code which can also be compiled as C++ ;) 19:48:10 I have a nicer policy. 19:48:15 Don't support broken C compilers. 19:48:15 Not all C code is valid C 19:48:17 MSVC is broken. 19:48:18 the // comments are not legal in C89?? 19:48:19 Not all C code is valid C++* 19:48:23 Arc_Koen: Nope. 19:48:26 FreeFull: correct 19:48:27 Arc_Koen: No, only /* comments */ are. 19:48:36 FreeFull: Much valid C code is not valid C++ code. 19:48:36 wow, I wasn't aware of that 19:49:05 * Arc_Koen 's been lied to once more! 19:49:41 No implicit casts from void* basically jacks up idiomatic C. 19:49:47 almost all compilers support // comments, though 19:49:53 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:49:55 ime 19:51:12 wow, and /* */ comments cannot be nested 19:51:21 Also, C code that uses new or delete as a name for something won't be valid C++ 19:51:31 people aren't always clear when talking about "what's in C" versus "what's supported by my C compiler" 19:51:34 Arc_Koen: yeah 19:51:46 Arc_Koen: You didn't know that? 19:51:48 nestable multi-line comments are somewhat rare 19:51:59 -!- hagb4rd has joined. 19:52:04 i don't think any of the languages which use /* comments */ support nesting 19:52:07 (correct me if wrong) 19:52:17 haskell, ocaml, and lua do 19:52:28 FreeFull: I may have known it a few years ago but somehow it wasn't flag as "relevant" by my brain 19:52:33 wait, lua doesn't 19:53:07 however I certainly did not know that // was not C89 19:53:10 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 there is a subtle difference between the way comments work in haskell and ocaml 19:53:25 {- " -} is a valid Haskell comment but (* " *) is not a valid ocaml comment 19:53:47 (* "*)" *) is a valid ocaml comment but {- "-}" -} is not a valid Haskell comment 19:54:14 > {- "-"} -} "ok" 19:54:15 "ok" 19:54:22 oops 19:54:28 > {- "-}" -} "ok" 19:54:29 : 19:54:29 lexical error in string/character literal at end o... 19:54:40 > {- " -} "ok" 19:54:41 "ok" 19:54:47 kmc: and the reference manual lists (*) as the multiplication function, but (*) actually starts a comment 19:54:50 > "{- Test -}" 19:54:51 "{- Test -}" 19:54:58 Arc_Koen: it does? 19:55:03 yup 19:55:07 link? 19:55:15 > (*) 2 3 19:55:17 6 19:55:28 FreeFull: in ocaml 19:55:33 IAh 19:55:44 > Just {-3} 19:55:45 : unterminated `{-' 19:55:50 > Just { -3 } 19:55:51 : parse error on input `-' 19:55:53 oops 19:56:15 hm i guess record notation cannot start with - inside 19:56:26 > Just { (-3) } 19:56:27 : parse error on input `3' 19:56:37 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 > do {-3 <- return -3; return True} 19:56:38 : unterminated `{-' 19:56:41 > do { -3 <- return -3; return True} 19:56:43 Overlapping instances for GHC.Show.Show (a -> GHC.Bool.Bool) 19:56:43 arising fro... 19:57:10 fuck you lambdabot, die in a hole 19:57:25 > takeWhere (< 3) [1..] 19:57:26 Not in scope: `takeWhere' 19:57:29 i'd imagine you don't actually want return -3 19:57:32 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:33 > takeWhile (< 3) [1..] 19:57:34 [1,2] 19:57:35 the whole "haha j/k not actually standard haskell" thing has gone from amusing to fucking obnoxious 19:58:15 lambdabot is doing irreparable harm to people attempting to learn Haskell 19:58:17 > takeWhile (<3) "I love you" 19:58:18 No instance for (GHC.Num.Num GHC.Types.Char) 19:58:18 arising from the literal `3... 19:58:34 it's as if the experts are playing an inside joke on the beginners 19:58:37 Arc_Koen: Well, it means just what it says: the compiler is going to add some padding there. Such is life. 19:58:44 making lambdabot confusing for their own idle amusement 19:58:46 19:59:15 > takeWhile (<3) $ read "I love you" :: Integer 19:59:16 Couldn't match expected type `GHC.Integer.Type.Integer' 19:59:16 against inf... 19:59:39 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 fizzie: as in "(pad something out) lengthen a speech or piece of writing with unnecessary material."? 19:59:57 Arc_Koen: As in, put some empty space in-between the members. 20:00:13 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 Arc_Koen: you're not using unions, so all discussion of optimal padding is moot :) 20:00:26 Yes, that is also true. 20:00:29 yes that's what I was thinking oerjan 20:00:34 should I use unions? 20:00:48 It would be a reasonable thing to do. 20:00:51 ok 20:00:52 > takeWhile (<3) $ [ read "I love you" :: Integer ] 20:00:53 *Exception: Prelude.read: no parse 20:01:07 > takeWhile (<3) $ [ read "123" :: Integer ] 20:01:08 [] 20:01:17 int x[] = {-1}; int main() { printf("Hello, C!\n"); } /* -}(); main = putStrLn "Hello, Haskell!" -- */ 20:01:36 Is that 20:01:44 -!- Ngevd has joined. 20:01:44 Code that's both valid C and Haskell 20:01:46 yes 20:01:47 Did you just write that 20:01:57 not just now, a while ago 20:02:05 Wait, the main() doesn't have a return statement! 20:02:09 -!- Ngevd has changed nick to atriq. 20:02:17 yeah it's not quite "valid C" in this condensed one-line form 20:02:20 FreeFull: Not mandatory. 20:02:29 of course you can make it into a totally valid C program that does anything you want 20:02:30 FreeFull: In C99, there's an implicit return 0; at the end of main. 20:02:36 pikhq_: really? huh. 20:02:50 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 FreeFull: I wrote one that's C, Haskell, Python, POSIX shell, Brainfuck, and DOS .COM program 20:03:06 others here have done even more 20:03:50 In K&R C, I have no idea what's going on 20:03:50 atriq: You have 2 new messages. '/msg lambdabot @messages' to read them. 20:03:54 @messages 20:03:54 oerjan said 24m 20s ago: 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 non-triggering elements (e.g. blocks) 20:03:54 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:14 @messages 20:04:14 You don't have any new messages. 20:04:15 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:24 @messages 20:04:24 You don't have any new messages. 20:04:27 -!- Ngevd has changed nick to atriq. 20:04:41 Implicit int made for some interesting stuff 20:06:03 ghc will also warn that the function 'int' has non-exhaustive patterns and isn't used 20:06:07 but you can fix these things as well 20:06:08 "auto mobile;" is no longer a valid int variable. :/ 20:06:22 "auto fellatio;" 20:07:18 auto mobile = 0; would be valid C++11 20:07:38 Maybe make it auto mobile =0; and pretend =0 is a duck 20:07:56 haha 20:10:01 if it walks like a duck it might be an automobile 20:10:23 -!- augur_ has joined. 20:10:27 oerjan: so now it's all gonna be q->top->val->fun? 20:11:05 that sounds unreasonably too much arrow populated (uh, maybe the last arrow was supposed to be a dot, but still) 20:11:42 sad trombone 20:13:07 -!- augur has quit (Ping timeout: 240 seconds). 20:13:15 q->top->u.fun 20:13:29 * oerjan has no idea whether that's good practice 20:14:27 oerjan: I've seen one-letter union names in that context. 20:14:38 Though I would've put in "d" as in data. 20:14:39 I just used search and replace to correct everything and I'm pretty sure that's a very bad thing to do 20:15:01 Arc_Koen: TSK TSK TSK 20:15:23 gcc doesn't seem to mind, though 20:15:54 on the bright side, it'll still be much less verbose than java. 20:16:15 Arc_Koen: Did you notice my anonymous-union comment? It's meant exactly to reduce the dottiness. 20:16:26 unions considered harmful 20:16:36 kmc: FILTHY CAPITALIST 20:16:46 union jack; 20:17:04 Whoops, missing a name there. 20:17:06 fizzie: I did, but you also said you would perhaps not recommand it 20:17:06 yeah the united states of america would never stand for that 20:17:19 Arc_Koen: Right, just checking. 20:17:31 (it was tempting though) 20:18:18 aaaaaaaaaaaand )$2[)$--------2~)~~[)[)~(~[~[$~H~]~)%+~91-):]~1+:])]]~[$~H~])%+-91)[65][65] is a cat 20:18:35 ...that may not be entirely correct. 20:19:53 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 oerjan: what, you don't believe me? http://pastebin.com/0UGHnVdY 20:20:56 fizzie: is that corean C? 20:21:08 (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 They're counting on nobody having any other 's6_addr's except as a member. 20:21:23 Arc_Koen: shocking 20:21:37 But a #define val u.val is kind of horreeble. 20:21:39 korean C? 20:22:01 oh right korea has a k in english 20:22:15 those darn core people 20:22:31 Arc_Koen, what's your native language? 20:22:36 french 20:22:43 lifthrasiir: LEARN TO SPELL YOUR COUNTRY CONSISTENTLY 20:22:54 I'M SURE IT'S YOUR FAULT 20:23:25 oklo: ALSO WHY THE SHORT NICK IT'S AGAINST NATURE I TELL YA 20:23:29 isn't it called 한국 20:24:07 see, the lower part of 한 looks way more like a C than a K 20:25:08 clearly that is why. 20:25:41 although istr the korean alphabet puts the letters top down in the characters 20:26:31 한 is a dude in a hat using a computer with a wall-mounted monitor, right? 20:26:58 Korea. Only culture that would have a letter for that. 20:27:23 And then use it in their own name. 20:28:02 just to clarify what i meant, iiuc 한 is three letters. 20:29:38 yep http://upload.wikimedia.org/wikipedia/commons/6/69/Hangeul.svg 20:29:46 reading them counterclockwise sounds like koc 20:29:59 so that would be kocea afterall 20:30:12 -!- Vorpal has quit (Ping timeout: 276 seconds). 20:30:20 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 Arc_Koen: oh did you fix the bugs with introducing union? i think i realized what happened at that 2-3 line change 20:42:56 I don't 20:43:10 apparently there's something wrong with : and $ 20:43:26 could you paste the current code? 20:43:37 I thought it was pushfun and pushnum which had a problem, but they work fine when parsing the program at the beginning 20:43:38 yes 20:44:50 http://sprunge.us/SdeJ?c 20:46:04 :[+ 2 3])) gives ))[ 0 0][+ 2 3] 20:46:12 -!- Phantom_Hoover has joined. 20:47:46 The "dude in a hat" symbol looks like Terezi's symbol upside-down 20:48:09 After a while, everything is Homestuck. 20:48:14 Help me. 20:48:38 well, now that i'm using unions the "initToken" function doesn't make any sense any longer 20:48:53 but it shouldn't be harmful either anyway 20:48:55 nor copyToken 20:49:12 which i think may be the main culprit 20:49:30 oh, of course 20:49:35 delete lines 483-484, replace 492-494 with something branching on the what 20:50:05 -!- impomatic has joined. 20:52:27 yeah the rest of the places with val in look ok 20:52:28 oerjan: It's legal to just assign the union. 20:52:54 fizzie: yes. but you need to do the special copying for blocks 20:53:16 oerjan: Disclaimer: didn't look at code. 20:53:28 Arc_Koen: so you could just have one case for blocks and another for the rest (which can just copy the whole union) 20:53:59 oh, right 20:56:29 and it works 20:56:34 yay! 20:57:39 * oerjan returns to iwc 20:57:39 well at least it prints the alphabet 20:58:11 the international whaling commission? 20:58:19 http://www.irregularwebcomic.net/ 20:59:22 The irregular whaling commission sounds alarming. 21:00:29 i suggest you bring it up with the international webcomic 21:02:07 I need to abscond and... 21:02:14 What's the opposite of absconding? 21:02:16 Insconding? 21:02:20 @wn abscond 21:02:20 *** "abscond" wn "WordNet (r) 3.0 (2006)" 21:02:21 abscond 21:02:21 v 1: run away; usually includes taking something or somebody 21:02:21 along; "The thief made off with our silver"; "the 21:02:21 accountant absconded with the cash from the safe" [syn: 21:02:22 {abscond}, {bolt}, {absquatulate}, {decamp}, {run off}, {go 21:02:24 off}, {make off}] 21:02:29 intrude? 21:02:51 hm... 21:03:21 runinto 21:03:36 no antonyms 21:03:51 $ wn abscond -antsv 21:03:51 Antonyms of verb abscond 21:03:56 [emptiness] 21:04:00 How rude. 21:04:06 we shall absquatulate forthwith 21:04:26 I think it'd be incond 21:04:41 I have decided to play Backgammon 21:04:59 Good luck! 21:05:01 pretty sure the s isn't part of the preposition 21:05:27 endocond 21:05:27 adscond maybe 21:05:46 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 In particular, < abs- (see ab- prefix) + condere. 21:07:01 wat 21:07:24 They say it's not from "sconding" anything. 21:07:45 i guess ab- is just weird. :( 21:07:55 (sometimes it turns into just a-) 21:08:26 http://en.wiktionary.org/wiki/ab-#Latin indeed 21:08:41 "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 (Then it continues quite a lot.) 21:10:53 Right, to make my Fueue implementation more speedy 21:11:07 I have added another constructor to the FueueItem datatype 21:11:17 yay 21:11:22 FCache :: Seq FueueItem -> FueueItem 21:11:33 I'm really just groping in the dark. 21:11:52 Also, I'm not using that format for defining constructors 21:12:00 It's just FCache (Seq FueueItem) 21:12:07 right 21:12:45 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:06 hm... 21:13:07 Actually, not true. 21:13:15 I think the beginning needs to be examined sometimes too 21:13:50 Man, this is going to make run double in size 21:13:59 the beginning needs to be examined only by the previous functions 21:14:02 Yeah 21:14:13 yes, it will probably slow down stuff when it's not needed 21:14:26 you also need to look at the _two_ last elements. 21:14:35 I'm really just groping in the dark here 21:15:20 and you need to pack things into those Caches 21:15:32 Yes, I was getting to thet 21:15:34 *that 21:16:33 Actually, this is an awful idea. 21:16:52 heh 21:17:45 -!- nooga has quit (Ping timeout: 244 seconds). 21:17:56 Hmm. With the LuaJIT FFI, Lua becomes a decent language for interacting with C libraries. 21:21:53 oh wait i think you actually _do_ need to look only at the last element 21:22:47 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:31 Good point 21:24:34 (the former: ~ < the latter: + * / $) 21:24:52 $ is in both categories 21:25:04 right 21:25:10 Even better 21:31:03 I don't need to check for numbers in a cache either 21:35:37 pikhq_: how does that compare to Python ctypes? 21:36:26 whenever a value doesn't get executed, it can be added to a following cache. 21:36:54 or become a single-value cache, if there isn't one 21:37:17 I was thinking a preceeding cache 21:37:31 yes both can be used 21:37:37 kmc: Or JAVA JNA! I'm sure that'd make a decent language too! 21:37:43 They could even be merged? 21:37:45 -_- 21:37:47 yes 21:37:52 "java isn't an acronym" 21:37:59 Whoops. 21:38:09 Java Ain't Very Acronym-y 21:38:16 At least JNA is. I got maybe too excited! 21:38:16 except a preceding cache has just been executed so it is possible that it no longer stable. 21:38:30 *is* 21:38:39 atriq++ 21:38:55 -!- atriq has changed nick to atrir. 21:39:00 so i think merging with a following cache is more sound. 21:39:02 hm, i have used JNI but not JNA 21:39:13 I'm going to go to sleep now, I think. 21:39:15 and of course a cache can be merged with a following one. 21:39:17 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 That would be a good idea. 21:39:26 Goodnight 21:39:28 -!- atrir has quit (Quit: Goodbye). 21:40:09 "you can't use Java, you can only leverage it" 21:40:58 3. leverage, leveraging -- (investing with borrowed money as a way to amplify potential gains (at the risk of greater losses)) 21:41:13 yeah 21:41:19 but it's also a synonym for "use" in US business-speak 21:41:38 atrir-- 21:42:13 ("atrir"+4)-- 21:42:39 @karma ("atrir"+4) 21:42:39 ("atrir"+4) has a karma of -1 21:42:43 fancy 21:43:25 mprotect("atrir" & ~0xfff, 4096, 0777); 21:43:50 argh 21:44:04 * oerjan wonders if that even makes sense 21:44:24 mprotect(0, ~0, 0777); 21:44:48 oerjan: well POSIX only guarantees mprotect() on pages obtained from mmap() 21:44:58 and it has a hardcoded page size of 4kB 21:45:04 but it will probably work on Linux on most platforms :3 21:45:19 I was about to ask "what, POSIX has a hardcoded page size?" 21:45:25 today's yafgc spoiler: so the devils need to save the zombies which are currently attacking them and apparently winning... 21:46:14 I think Linux/SPARC does 8k pages. 21:47:13 $ grep -R PAGESIZE * 21:47:13 include/asm/elf_64.h:#define ELF_EXEC_PAGESIZE PAGE_SIZE 21:47:13 include/asm/elf_32.h:#define ELF_EXEC_PAGESIZE 4096 21:47:13 include/asm/param.h:#define EXEC_PAGESIZE 8192 /* Thanks for sun4's we carry baggage... */ 21:47:32 Well, there are at least some 8ks somewhere in it. 21:47:45 Kconfig: default SPARC64_PAGE_SIZE_8KB 21:47:45 Kconfig:config SPARC64_PAGE_SIZE_8KB 21:47:45 Kconfig:config SPARC64_PAGE_SIZE_64KB 21:47:52 Forgot the _ in the middle. 21:48:04 sorry, *demons 21:48:31 er, and 0777 is wrong 21:50:42 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 kmc: "atrir" & ~0xfff is also a constraint violation. 21:54:39 * oerjan "fixes" his sandal with tape 21:55:11 GROWSBOTHWAYS 21:55:44 -!- augur has joined. 21:55:55 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 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 How would I convert a bf [ ] into path /\ 22:12:08 \/ ? 22:19:11 Braber01: path? hm 22:19:26 no such esolang on the wiki 22:19:37 Yeah the wiki isn't it's called PATH 22:19:46 http://esolangs.org/wiki/PATH 22:20:33 hm i see 22:21:08 yeah the wiki doesn't exactly explain how to convert [ and ] into path 22:21:28 doesn't look too hard 22:21:52 It confuses the fuck out of me. 22:22:15 !bf_text gen 22:24:17 / \ 22:24:17 + ^/v!\ }-{- \ \ / 22:24:21 wat 22:24:42 bloody irssi autoconnecting lines 22:24:54 / \ 22:24:54 + ^/v!\ }-{- \ 22:25:00 \ / 22:25:52 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 oh wait that method isn't composable 22:26:19 erm that's a problem for brainfuck as well... 22:26:25 What is the "atrir" & ~0xfff consrtaint violation? 22:27:22 * Braber01 examines the code for hello. 22:31:58 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 I had a PATH something, I think. 22:34:01 Some conversion or another. 22:34:08 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 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 (Maybe it wasn't PATH.) 22:35:16 -!- augur has quit (Remote host closed the connection). 22:35:49 Port Authority Trans-Hudson 22:35:56 -!- Braber01 has quit (Quit: Page closed). 22:36:41 Oh, right, it was that Beam thing instead. 22:36:57 kmc: Yep! 22:37:57 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 I thought PATH was some kind of a system of trains. Is that what that is? 22:39:01 This is probably one of the ways that I make myself less secure by doing everything in "Incognito Mode". 22:39:08 yes 22:39:37 it's a rapid transit system which runs between Manhattan and the close parts of New Jersey 22:40:26 it goes through a not-quite-tunnel under the Hudson River 22:40:42 more like a cast iron tube that they shoved through the silt on the river bottom 22:41:05 well, four of them 22:43:45 in 2001 one of the stations was destroyed when two large buildings fell on it 22:43:59 I think I've heard of that. 22:44:02 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 In several non-home public-WiFi places, it doesn't do that. 22:44:27 that's awkward 22:44:32 Are there reasonable explanations other than "someone tampering with my traffic"? 22:44:44 i will try to think of one 22:44:49 this is the problem which HSTS is supposed to solve 22:44:54 Yep. 22:44:55 i only learned about HSTS yesterday, so good timing :) 22:45:12 Well, your question reminded me of it. 22:45:14 @tell Braber01 i edited the PATH example, the new method should be more consistent 22:45:14 Consider it noted. 22:45:49 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 hm, "SandForce SSDs heavily rely on compression for faster speeds and less write amplification" 22:46:08 that's unfortunate with full disk encryption 22:47:59 I wonder whther the property that "you can tell if sector A = sector B" is important. 22:48:15 And how much performance it's worth, if it comes to that. 22:48:21 you mean using ECB essentially? 22:48:39 Well, on the sector level. 22:48:50 well the performance on random data is still good 22:48:54 Or maybe something bigger than a sector. 22:49:10 you take like a 2x hit to sequential write performance 22:49:14 TRIM is another thing that presumably leaks information which you do want. 22:49:42 but the Intel 520 still beats the fastest comparable non-SandForge SSD at random writes 22:49:51 and isn't much slower on sequential writes 22:50:13 and read performance isn't affected 22:51:29 -!- MoALTz has quit (Ping timeout: 260 seconds). 22:51:50 kmc: "For example, an attacker can abort an SSH connection or an HTTPS connection by forging a single TCP Reset packet." 22:51:56 * shachaf didn't know that. 22:52:05 This seems like another property Mosh wouldn't have. 22:52:15 isn't there a sequence number issue there? 22:52:29 Presumably a MITM could do it. 22:52:41 oh, sure 22:52:42 Comcast did that to Bittorrent once upon a time. 22:52:42 Or someone on a public WiFi network. 22:52:56 the MITM can also just decide to stop relaying your packets 22:53:20 Someone who can read your packets can do it. 22:53:27 and yeah, you can't MITM Mosh at the transport layer, because the transport is encrypted 22:53:33 probably IPSec also solves this problem 22:53:48 and UDP-based VPNs 22:54:02 (encrypted and authenticated, i should say) 22:54:08 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 if mosh supported roaming on both ends, you could kill a connection by sending two packets 23:07:23 i think i have explained this attack 23:07:39 Yes. 23:08:11 you could also insert yourself into an existing connection as a network layer MITM 23:08:43 which could be useful for some esoteric attacks 23:12:00 Hey, GHC supports interruptible foreign calls? 23:12:24 oh yeah, that's newish 23:12:27 i don't remember t he details 23:14:08 How are they interrupted? 23:14:25 SIGPIPE, it looks like? 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 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 Wow. /usr/share/zsh-beta/functions/Completion/Unix/_make is insane. It parses Makefiles and expands variables and includes. 23:45:26 Is that for tab-completion or what? 23:46:00 yeah 23:49:04 zzo38: yay for 10 PRINT "Hello" 20 GOTO 10 23:49:29 itidus21: ? 23:50:02 ^HelloHelloHelloHelloHelloHello[...] 23:50:47 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 > (unlines . repeat) "Hello" 23:51:07 "Hello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHello\nHell... 23:51:13 i think it is a special program in basic 23:51:25 Why? 23:52:26 it's sort of anarchistic 23:52:54 it does nothing of value. while also being an infinite loop 23:53:34 OK 23:53:35 and scrolls the screen away 23:54:04 If it is paper then it will instead waste all of the paper. 23:56:26 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 or even worse, a program which lets you enter student grades 23:57:09 and calculates averages etc