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