00:15:45 -!- hppavilion[1] has joined.
00:19:25 -!- Elronnd\StD has changed nick to Elronnd.
00:21:20 -!- copumpkin has joined.
00:28:33 -!- oerjan has joined.
00:36:15 -!- spiette has quit (Quit: .).
00:48:19 <oerjan> @let class Typeable a => T a
00:49:11 <oerjan> @let newtype W = W Int deriving T
00:49:12 <lambdabot> Can't make a derived instance of ‘T W’:
00:50:25 <oerjan> @tell int-e lambdabot still lacks enabled extensions (like GeneralizedNewtypeDeriving) for enterprise exploit searching tdnh
00:50:33 -!- AstroMoon has joined.
00:52:22 <oerjan> shachaf: argh i need GHC again :(
00:52:42 <oerjan> to check if that's an exploit
00:53:06 <oerjan> you cannot newtype derive Typeable, but can you newtype derive a _subclass_ of it?
00:53:48 <oerjan> but i'm not going to install an older version, anyway.
00:54:05 <shachaf> when you get ghc 8 you'll have to answer all my questions hth
00:54:52 -!- AstroMoon has quit (Quit: Got to keep moving!!).
00:56:29 <shachaf> oerjan: Isn't Typeable autoderived these days?
00:56:53 <oerjan> shachaf: yes. the point here is whether you can break it.
00:57:08 <oerjan> by indirectly deriving a wrong instance.
00:59:46 <oerjan> huh the new haskell platform installer requires manual config editing in windows.
01:00:31 <shachaf> Hmm, I think your idea might work...
01:07:14 <\oren\> oerjan: is this a security exploit?
01:07:15 * oerjan downloads minimal version
01:08:00 <oerjan> \oren\: well it's a type safety breach, and some security depends on type safety
01:08:19 <shachaf> not if it takes itself seriously hth
01:08:22 <oerjan> but after all the exploits we've found, you'd be foolish to depend _justs_ on that.
01:09:01 <oerjan> but still, it'll probbly be enough to increase spj's pulse a bit.
01:09:35 <oerjan> stupid lag ruins my typing concentration :(
01:10:23 <oerjan> i think the lag might be due to downloading the Platform
01:11:37 <shachaf> oerjan: just download it onto your cloud server hth
01:11:45 <shachaf> the cloud is all about bandwidth
01:12:17 -!- ais523 has joined.
01:12:21 <\oren\> ERROR: Rainbow does not implement interface Icloud
01:13:43 <shachaf> oerjan: Oh, maybe it doesn't work.
01:13:48 <shachaf> I'll just let you figure it out.
01:15:37 -!- rntz has quit (Ping timeout: 244 seconds).
01:16:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
01:16:39 -!- rntz has joined.
01:22:50 -!- copumpkin has quit (Ping timeout: 258 seconds).
01:23:36 -!- copumpkin has joined.
01:24:25 -!- ybden has quit (Quit: dut).
01:28:15 <oerjan> shachaf: yeah. stupid download.
01:28:40 <oerjan> oh well, 3 mins left it says.
01:30:25 <oerjan> shachaf: i expect that even if it works it'll need some fiddling to get ghc to _not_ ues the autoderived instance.
01:30:56 * oerjan really cannot type when the letters don't show up at the same speed... :(
01:36:40 -!- heroux has quit (Ping timeout: 260 seconds).
01:40:10 -!- hppavilion[1] has joined.
01:57:33 <boily> exploding sheep are fun. mwah ah ah ah ah.
01:59:40 <oerjan> shachaf: i'm also finally restoring backup to my laptop, so now i actually have the origin of sp^wpcs on it.
02:01:03 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:02:42 <shachaf> oerjan: whoa, i forgot that pun
02:04:30 * oerjan deletes them from the backup directory on nvg, because they took up like half his quota.
02:04:47 <oerjan> the OOTS book (two versions), that is.
02:06:05 -!- Koen_ has quit (Quit: Leaving...).
02:06:30 <oerjan> this backup solution might not scale into the next time...
02:08:25 <shachaf> you can back up 250MB very cheaply on the internet hth
02:11:09 <oerjan> i guess. i probably even have something from microsoft included with the laptop.
02:11:26 <oerjan> (although i might have to register more "properly")
02:12:08 <shachaf> You can use Google Drive or Dropbox or something for free for that little space, I'm sure.
02:12:39 <shachaf> Of course, why would you want to store your data in the US?
02:13:06 <oerjan> so the NSA can back it up properly, duh
02:13:36 <oerjan> i have so far avoided getting any kind of account with either google or microsoft.
02:15:08 <shachaf> that would have made more sense if you were talking about the nsa
02:16:08 <oerjan> i'm sure the nsa know all my crimes but consider me too small a fish to fry hth
02:16:27 <shachaf> oerjan: tarsnap will back up your data securely for 250 picodollars / byte-month hth
02:16:43 <shachaf> I have $50 of Tarsnap bounty credit but I've never used it.
02:22:59 <hppavilion[1]> Hi! I just flew in here from https://youtu.be/wfYbgdo8e-8, and boy is my FREAKTHEFUCKOUT cortex tired!
02:30:45 -!- MoALTz has quit (Quit: Leaving).
02:31:20 -!- boily has quit (Quit: PREMATURE CHICKEN).
02:34:50 <shachaf> oerjan: did you find a bug that lets you unsafeCoerce between a value and its newtype
02:35:09 <oerjan> that's a little unsatisfactory.
02:35:26 <shachaf> Actually I think you can do more.
02:35:40 <oerjan> i'm not sure. i just had a mysterious failure.
02:37:01 <oerjan> somehow it uses the autoderived Typeable when newtype deriving. or so it seems.
02:39:12 <oerjan> class Typeable a => S a
02:39:12 <oerjan> newtype W = W Int deriving S
02:39:12 <oerjan> f :: S a => a -> TypeRep
02:39:32 <shachaf> clas Typeable a => T a where { foo :: a -> TypeRep }; instance T Int where { foo = typeOf }; newtype W = W Int deriving T; typeOf (W 5) -- Int
02:40:24 <shachaf> Aren't methods the issue with GND?
02:41:28 <oerjan> ok, let me try building on that.
02:43:36 <oerjan> shachaf: hm the problem is that a TypeRep doesn't give you enough to break things
02:43:47 <oerjan> and using a :~: fails due to roles, i think.
02:43:54 -!- augur_ has joined.
02:43:56 <shachaf> Using :~: in the method does, yes.
02:43:57 <oerjan> so maybe it really is safe, due to roles
02:44:06 <shachaf> The method type has to be representational or something.
02:44:30 <shachaf> But it doesn't seem correct that you can have x :: W such that typeOf x is Int
02:45:44 <shachaf> You effectively do inside the method.
02:47:33 -!- augur has quit (Ping timeout: 258 seconds).
02:47:40 <shachaf> But roles restrict you from doing much.
02:54:09 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
02:54:30 -!- Kaynato has joined.
02:55:46 <shachaf> oerjan: so <shachaf> oerjan: did you find a bug that lets you unsafeCoerce between a value and its newtype
02:56:38 <oerjan> what, do you want a swat or something
02:57:13 -!- copumpkin has joined.
02:58:54 <oerjan> confirmed with a GADT that even if you wrap the class existentially, you still get the automatic Typeable.
03:09:16 <shachaf> oerjan: can you do anything with other fancy types
03:09:22 <shachaf> like Vault or StableName or something
03:09:38 <oerjan> well the question is whether you can get something that doesn't force the role
03:16:57 <shachaf> oerjan: Oh, there's nothing special about Typeable here.
03:24:57 <zzo38> Could a microcode execution to work in this way: First all register reads and memory reads and calculations are performed simultaneously, and then the jumping and register writes and memory writes are all performed simultaneously; if a register write affects the operation, jumps will be affected for the current cycle but any other affects occur for the next instruction instead.
03:26:16 <oerjan> shachaf: indeed, my error was assuming that superclass dictionaries somehow got wrapped into subclass ones, and went through newtype deriving with them. but any wrapping doesn't happen until afterwards.
03:26:29 <oerjan> at least that's what i now think.
03:27:28 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:42:01 <tswett> Long ago (in this exact galaxy), I learned something in a job interview.
03:42:25 <tswett> They asked me to explain the "public", "protected", and "private" access modifiers in OO programming.
03:42:47 <tswett> And in the course of doing so, I realized I didn't quite know how they work.
03:43:47 <tswett> I said that I'm not sure if, in a non-static method belonging to a class, I can access private members of other instances of the class, besides self.
03:43:50 <tswett> Turns out that yeah, you can.
03:43:57 <tswett> And I have no idea why I bring this up.
03:44:12 <tswett> It's kind of a pointless story. Like that one Mitch Hedberg joke.
03:45:34 <zzo38> In what programming language? In some you cannot access private members of other instances of the class
03:45:58 <tswett> I think they were talking about C#. Or... maybe Java?
03:46:09 <tswett> Here we go, it's the Hedberg joke about the locksmith.
03:46:26 <tswett> https://en.wikiquote.org/wiki/Mitch_Hedberg - 'If I was a locksmith I'd be fuckin' pimpin' that shit out. "Say, what's goin' on, man? Tell you what. I'll trade you a free key duplication (laughs)." That joke made me laugh before I could finish it. Which is good 'cause there's no ending.'
03:47:29 <shachaf> One time in a job interview they kept trying to get me to say the word "singleton".
03:47:57 <ais523> shachaf: because they wanted to know you were aware of the concept? or did they just think it was a fun word to say?
03:48:08 <shachaf> I kept avoiding it, and saying things like "global variable" because that's what it really amounted to.
03:49:28 <zzo38> JavaScript has no classes or public/protected/private, but you can implement a lot of stuff that acts like it. One thing that can be done is to put the private variables and methods that access them in the constructor; in this way it won't have access to privates of other objects. Another thing can be done is you can make up a WeakMap to assign your own private values to any object.
03:50:05 <zzo38> (Actually JavaScript does now have a "class" command, although I do not use it.)
03:51:13 <shachaf> zzo38: What do you use JavaScript for?
03:52:05 -!- hppavilion[1] has joined.
03:52:10 <zzo38> GreaseMonkey, Node.js, userChrome.js
03:52:57 <HackEgo> There are 3.99 usual suspects, but they're usually rounded up.
03:53:35 <shachaf> `sled wisdom/usual suspect//s3933
03:53:51 <shachaf> oops, squandered opportunity there
03:54:18 <zzo38> What does "sled" mean here?
03:54:39 <tswett> I did a phone interview once. They asked me: if I had to make some classes to represent square tables, rectangular tables, and circular tables, how would I do it?
03:54:51 <shachaf> You give it an argument consisting of a file name, and then two slashes, and then a sed script.
03:55:12 <tswett> I felt like they were obviously expecting a specific answer.
03:55:16 <shachaf> tswett: Was this an innovative database company?
03:55:28 <shachaf> I've never heard of circular tables but it sounds exciting.
03:55:37 <tswett> Have a Table class, then RectangularTable inheriting from Table, SquareTable inheriting from RectangularTable, CircularTable inheriting from Table.
03:55:43 <tswett> That, of course, is not the answer I gave them.
03:57:54 <zzo38> If they ask me such question then I would just ask them more questions.
03:58:53 <shachaf> zzo38: How would you conduct a job interview?
03:59:02 <shachaf> Or, more generally, how would you decide whether to hire someone for a job?
03:59:45 <zzo38> I don't know, but I suppose it can depend what job.
04:03:38 <tswett> Hmmmmm. I'm getting an idea. A terrible idea.
04:03:41 <tswett> Maybe an esolang idea.
04:04:18 <tswett> Interfaces in C# have limitations. For example, there's no way to define this interface:
04:05:14 <tswett> interface ICloneable { T Clone(); /* where T is the class implementing this interface */ }
04:06:05 <tswett> It's also impossible for an interface to contain any method implementations.
04:06:50 <tswett> Interfaces can't contain static members, either.
04:07:02 <tswett> Now, in my opinion, it would make perfect sense for an interface to contain static members.
04:07:32 <shachaf> Sometimes you remind me of Java Update.
04:08:31 <zzo38> That isn't so good that it can't be where T is the class implementing this interface. Even Haskell can do that.
04:08:57 <tswett> zzo38: "even Haskell"? That's sort of a core feature of Haskell.
04:09:14 <zzo38> tswett: Yes I know that
04:09:24 <shachaf> Haskell is an advanced purely-functional programming language.
04:09:51 <tswett> I'm thinkin', could you just have the one concept, called a "trait" or something, that can have abstract members, non-abstract members, static, non-static...
04:10:12 <tswett> And then... implementing an interface is very similar to inheriting from a class.
04:10:44 <tswett> I think I know where this is going.
04:11:01 <tswett> So, there are things called "traits". Traits replace classes and interfaces.
04:12:34 <tswett> A trait can inherit from any number of other traits. Members of traits can be abstract, virtual, or final.
04:14:09 <tswett> Unlike with class inheritance, if a trait B inherits from a trait A, and the trait A has a member called "foo", then the trait B does not automatically have a corresponding member also called "foo".
04:14:43 <tswett> With trait inheritance, members *are* inherited from one trait into its children; but when a member is inherited, it doesn't necessarily keep its name.
04:15:40 <coppro> tswett: this sounds a lot like C++...
04:15:50 <tswett> I don't really know C++.
04:16:04 <coppro> C++ doesn't separate interfaces from classes
04:16:21 <coppro> a class can have any number of bases, be entirely abstract, concrete, entirely virtual, entirely not
04:16:36 <coppro> final was added later as a compiler check
04:17:24 <coppro> C++ allows you to hide inheritance behind access control, so that inheritance is, say, private, in which case consumers can't access base members or convert to the base class. It's rarely used though
04:17:42 <coppro> it supports your ICloneable interface, too, via the CRTP
04:17:48 <coppro> (curiously recursive template pattern)
04:19:30 <tswett> You can make upcasting private? Interesante.
04:19:53 <coppro> multiple inheritance gets a little weird though
04:20:07 <coppro> suppose you have classes B and C inheriting from A, and D inheriting from B and C
04:20:14 <coppro> then by default, D actually has two copies of A
04:20:36 <coppro> you have to mark the base class A virtual in each case to make it collapse into one (at the cost of a lot of extra runtime thunks)
04:26:59 <tswett> One of these days I'll have to work out category theory.
04:27:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
04:30:06 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
04:38:13 -!- hppavilion[1] has joined.
04:38:54 <hppavilion[1]> After watching that video I posted earlier (https://youtu.be/wfYbgdo8e-8 if you forgot), I wrote a program to test communication
04:39:45 <hppavilion[1]> I made a 5-bit character set and a program that would accept input and convert strings of "a"s and "s"s into 0s and 1s then into that character set
04:39:57 <tswett> hppavilion[1]: remind me... what country are you in, if I may ask?
04:40:31 <hppavilion[1]> You would put your left hand (controlled by the right brain) onto the a and s keys and let it go wild, then it would make a result
04:40:53 <hppavilion[1]> [R] assaassaassaassaassasasassaassaasasasassasassaaassaassaaasassassaasaassa
04:42:33 <shachaf> Well, it's hardly among the 48 original states.
04:43:00 <tswett> The 40 original states that the US had back when it was founded, in 1946.
04:43:34 <coppro> USA stands for United State Automaton, right?
04:43:52 <hppavilion[1]> coppro: We're hardly an automaton; at best, we're a decision tree
04:44:04 <hppavilion[1]> Not even a decision tree really; more of a stall-instead-of-making-a-decision tree
04:44:57 <tswett> I'm kind of interested.
04:44:58 <hppavilion[1]> (Well, I suppose experiments can't fail if done correctly; they can just give uninteresting results)
04:45:05 <tswett> I've tried to do that sort of thing before.
04:45:15 <hppavilion[1]> I just realized how many times my right brain said "ass"
04:45:44 <hppavilion[1]> I mean, to be fair, there's a 1/8 chance of it saying that for any 3 "a"s and "s"s
04:45:52 <tswett> hppavilion[1]: you ever hear of tulpas? http://www.tulpa.info/what-is-a-tulpa/
04:45:56 <oerjan> `learn Histograms are diagrams showing histamine levels. Taneb invented them.
04:45:57 <hppavilion[1]> And the chance probably goes up when you allow overlapping chains
04:46:02 <HackEgo> Learned 'histogram': Histograms are diagrams showing histamine levels. Taneb invented them.
04:46:16 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?USA: not found
04:46:28 <HackEgo> This wisdom entry had to be removed due to a DMCA takedown notice.
04:46:42 <tswett> hppavilion[1]: so, I can try to find you an internship in Michigan if you're ever interested.
04:46:46 <coppro> `learn USA apparently doesn't stand for United State Automaton
04:46:49 <HackEgo> Relearned 'usa': USA apparently doesn't stand for United State Automaton
04:47:45 <shachaf> i'm not the logreader here
04:48:07 <tswett> hppavilion[1]: oh god what?
04:48:10 <hppavilion[1]> shachaf: I don't think tilting your eyes by about a half a radian counts as logreading
04:49:50 <hppavilion[1]> tswett: But then again, quantum physics is pretty damn crazy, and brains are a lot bigger than quantum stuff
04:50:18 <hppavilion[1]> tswett: I have a feeling this /might/ be one of those things that is really crazy- crazier than things that are wrong- but also plausible
04:50:59 <shachaf> If oerjan was here he would fix that wisdom entry.
04:51:03 <shachaf> Since he's not retired anymore.
04:51:11 <shachaf> Maybe he'd even fix it with sedlast or sled.
04:52:06 <oerjan> `sled wisdom/usa/s,$,.,
04:52:17 <oerjan> `sled wisdom/usa//s,$,.,
04:52:20 <HackEgo> wisdom/usa//USA apparently doesn't stand for United State Automaton.
04:52:27 <oerjan> shachaf: i don't trust sedlast
04:52:49 <shachaf> oerjan: it works fine if you're not racist hth
04:54:00 <hppavilion[1]> tswett: It at least seems like an interesting thing to experiment with over the summer
04:54:14 <oerjan> shachaf: since when am i not retired
04:54:46 <shachaf> oerjan: since you started editing wisdom entries again hth
04:55:02 <oerjan> i think you are just confused about what i retired from hth
04:55:18 <oerjan> . o O ( or perhaps i am )
04:55:52 <oerjan> anyway, in norway retired people are now officially encouraged to keep working.
04:57:24 <oerjan> shachaf: fixing stupid bugs from people who cannot remember how HackEgo works even after the fifth time
04:57:40 <shachaf> why did you ever take that job in the first place
04:58:51 <oerjan> also, i retired from actually checking the repository browser page.
04:59:25 <oerjan> those two things are not unconnected.
04:59:55 <tswett> hppavilion[1]: oh yeah, are you starting summer vacation right around now?
05:00:41 <hppavilion[1]> tswett: I've been on summer vacation for... maybe 2 weeks?
05:00:44 <HackEgo> 5000000000 288 0.0 0.2 4180 620 ? S 04:00 0:00 sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' 'LANG=en_NZ.UTF-8' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' '`' 'ps aux | grep grep' | cat \ 500000000 290 0.0 0.6 19140 1600 ?
05:00:51 <HackEgo> Your retired mysterious adjectival cackling overlord oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who mildly dislikes Roald Dahl with a passion. Lately when he tries to remember a word, "amortized" pops up instead. His arch-nemesis is Betty Crocker.
05:01:03 <tswett> My summer vacation was yesterday. :D
05:01:36 <oerjan> i knew americans had it bad, but...
05:02:05 <tswett> I have an office job. I get 25 vacation days a year.
05:02:05 <shachaf> `sled wisdom/oerjan//s-retired --;s(rd(rd emeritus(
05:02:10 <HackEgo> wisdom/oerjan//Your mysterious adjectival cackling overlord emeritus oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who mildly dislikes Roald Dahl with a passion. Lately when he tries to remember a word, "amortized" pops up instead. His arch-nemesis is Betty Crocker.
05:02:51 <shachaf> pikhq: You get that at Google after 5 years, right?
05:02:57 <shachaf> Except in Europe where you get it right away, or something.
05:03:09 <tswett> Which... I understand that Europe generally has better vacation time than the US.
05:03:38 <oerjan> `sedlast s/antediluvian/precambrian/
05:03:45 <HackEgo> wisdom/oerjan//Your mysterious adjectival cackling overlord emeritus oerjan is a lazy expert in future computation. Also an precambrian Norwegian who mildly dislikes Roald Dahl with a passion. Lately when he tries to remember a word, "amortized" pops up instead. His arch-nemesis is Betty Crocker.
05:03:49 <tswett> Man, y'know, I think I've been a regular in this channel for about 11 years now.
05:04:02 <shachaf> oerjan: suddenly you're sedlasting?
05:04:13 <shachaf> tswett: 11 years a regular and still not a member?
05:04:24 <HackEgo> wisdom/oerjan//Your mysterious adjectival cackling overlord emeritus oerjan is a lazy expert in future computation. Also a precambrian Norwegian who mildly dislikes Roald Dahl with a passion. Lately when he tries to remember a word, "amortized" pops up instead. His arch-nemesis is Betty Crocker.
05:04:33 <pikhq> How long have I been here?
05:04:38 <pikhq> I honestly don't know.
05:04:59 <shachaf> I've been using Freenode for over 12 years, I think.
05:05:10 <shachaf> Though my nick was registered a little under 12.
05:05:31 -!- Elronnd has changed nick to Elronnd\StD.
05:06:18 <shachaf> ...12 years ago, not age 12
05:06:45 <shachaf> Though those aren't all that far apart.
05:07:10 <shachaf> Maybe I should stay away from that topic.
05:07:20 <HackEgo> wisdom/oerjan//Your mysterious adjectival cackling overlord emeritus oerjan is a lazy expert in future computation. Also a Precambrian Norwegian who mildly dislikes Roald Dahl with a passion. Lately when he tries to remember a word, "amortized" pops up instead. His arch-nemesis is Betty Crocker.
05:08:41 <oerjan> i've been here for 10 years now. plus/minus a few days.
05:09:48 <oerjan> maybe i was on the wiki first.
05:11:04 <shachaf> `le/rn chaf/Any word ending in "chac" can notify shachaf.
05:11:21 <HackEgo> wisdom/chaf//Any word ending in "chaf" can notify shachaf.
05:18:35 <tswett> I wonder when my first wiki edit was.
05:22:46 <tswett> So yeah. About 11 years.
05:24:36 -!- Sgeo has quit (Read error: Connection reset by peer).
05:55:05 -!- Kaynato has quit (Ping timeout: 260 seconds).
05:57:15 -!- Sgeo has joined.
06:09:40 <Sgeo> My expensive toys aren't working :(
06:14:54 <pikhq> And your cheap toys?
06:21:29 <Sgeo> This ring is still holding together
06:34:01 -!- ais523 has quit (Ping timeout: 240 seconds).
06:39:40 -!- ais523 has joined.
06:54:11 <hppavilion[1]> I don't see why people use 4-part versioning schemes when we can use the more modern, more expressive 18446744073709551616-part schemes
06:54:42 <hppavilion[1]> And even then, we should avoid those for major software and use the G64-part scheme
07:05:42 <hppavilion[1]> http://www.qwantz.com/index.php?comic=2985 is actually an awesome idea
07:06:50 -!- lambda-11235 has quit (Quit: Bye).
07:06:56 <oerjan> `learn Tetris is where Soviet Russia was invented. Taneb was not present although Triangle and Robert were.
07:06:59 <HackEgo> Learned 'tetri': Tetris is where Soviet Russia was invented. Taneb was not present although Triangle and Robert were.
07:07:31 <oerjan> `` mv wisdom/tetri{,s}
07:08:26 -!- heroux has joined.
07:19:58 <oerjan> <shachaf> What happened there? <-- a timeout, probably.
07:20:33 <shachaf> oerjan: I guess if it prints text and then times out some text still gets printed.
07:20:54 <shachaf> you have an odd logreading order
07:21:53 <oerjan> <gamemanj> ...or at least one of them, at any rate! <-- hi
07:22:07 <oerjan> shachaf: no, i've just not got any further?
07:22:26 <shachaf> I guess you don't count reading your IRC client as logreading.
07:24:16 <shachaf> I guess you could de-s it.
07:24:25 <HackEgo> wisdom/the usual suspect \ wisdom/usual suspects
07:24:38 <oerjan> `cat wisdom/the usual suspect
07:24:39 <HackEgo> cat: wisdom/the usual suspect: No such file or directory
07:24:59 <myname> how the fuck did this tetri learning happen?
07:25:22 <oerjan> myname: it strips off s
07:25:56 <shachaf> `` ls wisdom/the\ usual\ suspect
07:26:00 <shachaf> `` ls -l wisdom/the\ usual\ suspect
07:26:02 <HackEgo> lrwxrwxrwx 1 5000000 0 13 May 31 19:43 wisdom/the usual suspect -> usual suspect
07:26:11 <shachaf> `` mv wisdom/usual\ suspect{s,}
07:26:19 <HackEgo> There are 3.99 usual suspects, but they're usually rounded up.
07:26:48 <shachaf> `sled wisdom/usual suspect//s;,; in #esoteric,;
07:26:52 <HackEgo> wisdom/usual suspect//There are 3.99 usual suspects in #esoteric, but they're usually rounded up.
07:28:25 <shachaf> I was pretty pleased with that pun.
07:28:42 <shachaf> @tell boily if only you were here to measure my funpun tdnh
07:29:37 -!- augur_ has quit (Remote host closed the connection).
07:30:17 <oerjan> myname: John, Ahmed, Jens, Fiona and Balthasar hth
07:30:23 -!- augur has joined.
07:30:57 <shachaf> oerjan is good at rounding
07:31:36 <shachaf> i,i But the Judge said he never had summed up before; / So the Snark undertook it instead, / And summed it so well that it came to far more / Than the Witnesses ever had said!
07:33:15 <HackEgo> [[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || exit 1; sed -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:34:42 -!- augur has quit (Ping timeout: 250 seconds).
07:34:46 <shachaf> Maybe a sledpreview would be useful.
07:35:05 <shachaf> So you can test in /msg and then sled in produ^W#esoteric.
07:35:34 <oerjan> `sled bin/sled/s/exit 1; sed/{ echo 'Rosebud!'; exit 1 }/
07:35:36 <shachaf> `sled bin/sled//s#\|\| exit 1#|| { echo 'no such file'; exit 1; }#
07:35:39 <HackEgo> bin/sled//|| { echo 'no such file'; exit 1; }[[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || exit 1; sed -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:36:06 <hppavilion[1]> I just discovered Dinosaur Comics 'butiwouldratherbereading'
07:36:23 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
07:36:25 <oerjan> `sled bin/sled//s/exit 1; sed/{ echo 'Rosebud!'; exit 1 }/
07:36:32 <HackEgo> bin/sled//[[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || { echo 'Rosebud!'; exit 1 } -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:36:46 <HackEgo> /hackenv/bin/sled: line 2: syntax error: unexpected end of file
07:36:54 <hppavilion[1]> Which suggests that Dinosaur Comics is generated by an algorithm; the individual pages might even just be text on the server
07:37:15 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
07:37:26 <hppavilion[1]> http://www.qwantz.com/index.php?comic=2968&butiwouldratherbereading=somethingmorehistoricallyaccurate IS THE BEST THING EVER
07:37:37 <oerjan> `sled bin/sled//s/exit 1; sed/{ echo 'Rosebud!'; exit 1 }; sed/
07:37:41 <HackEgo> bin/sled//[[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || { echo 'Rosebud!'; exit 1 }; sed -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:37:47 <hppavilion[1]> (Am I late to the party? Did everybody already know about this?)
07:37:48 <HackEgo> /hackenv/bin/sled: line 2: syntax error: unexpected end of file
07:38:08 <oerjan> hppavilion[1]: i am not even reading what you're saying.
07:38:23 <oerjan> hppavilion[1]: still not reading.
07:39:02 <shachaf> I only read the good ones.
07:39:20 <hppavilion[1]> shachaf: Were you aware of butiwouldratherbereading?
07:39:28 <hppavilion[1]> shachaf: Because http://www.qwantz.com/index.php?comic=2968&butiwouldratherbereading=somethingmorehistoricallyaccurate is amazing
07:39:50 <shachaf> oerjan: whoa whoa whoa, that's quite an oath
07:39:57 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
07:40:06 <HackEgo> [[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || exit 1; sed -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:40:24 <hppavilion[1]> shachaf: Wait, how do you know which ones are good in advance?
07:40:51 <shachaf> oerjan: i can't believe you would use a big big D
07:41:24 <oerjan> i have no idea why this isn't working.
07:44:30 <oerjan> `sled bin/sled//s/exit 1; sed/{ echo 'Rosebud!'; exit 1; }; sed/
07:44:36 <HackEgo> bin/sled//[[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || { echo 'Rosebud!'; exit 1; }; sed -i "$value" "$key" && { echo -n "$key//"; cat "$key"; }
07:45:17 <shachaf> That took a little too long.
07:46:10 <b_jonas> ais523: do you happen to know why the templating of Confound and Intervene differs?
07:46:15 <HackEgo> Confound \ 1U \ Instant \ Counter target spell that targets one or more creatures. \ Draw a card. \ PS-C
07:46:18 <HackEgo> Intervene \ U \ Instant \ Counter target spell that targets a creature. \ UL-C
07:46:40 <b_jonas> ais523: as far as I know, the first abilities function exactly the same, and there's no reason why they should be phrased differently
08:01:06 -!- AnotherTest has joined.
08:44:54 -!- oerjan has quit (Quit: Nite).
09:04:12 -!- AnotherTest has quit (Ping timeout: 246 seconds).
09:05:44 -!- xkapastel has quit (Quit: Connection closed for inactivity).
09:14:29 -!- ais523 has quit (Ping timeout: 260 seconds).
09:37:22 -!- Koen_ has joined.
09:48:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
09:56:29 -!- augur has joined.
10:01:06 -!- augur has quit (Ping timeout: 258 seconds).
10:09:21 -!- gamemanj has joined.
10:14:07 <b_jonas> What's the current best way to report templating problems (indirectly) to the M:tG rules team then? The wizards forum worked for me once, but that forum is shut down now, so I'm not sure what to do .
10:15:04 <gamemanj> start new forums, let them get popular, then report them there?
10:15:13 <shachaf> b_jonas: I think you can send them mail.
10:15:33 <gamemanj> shachaf: I think the "indirectly" means it has to be publically visible
10:15:36 <b_jonas> shachaf: send who email? I don't think you could ever send email directly to wizards. Even on the forum, you didn't talk directly to wizards.
10:15:45 <shachaf> I meant physical mail, not email.
10:15:53 <b_jonas> shachaf: ah... that might work
10:15:56 <shachaf> At least I think I read an article where they talked about receiving mail.
10:16:29 <b_jonas> Wizards used to have some forms on their website, but I don't think they worked well. Or at least, the bug reports I sent about the Gatherer interface with that form never got into their public list of bugs about Gatherer.
10:16:45 <b_jonas> Let me try to find a snail mail address.
10:17:05 <b_jonas> shachaf: how old an article? this may have changed in the last few years.
10:17:15 <shachaf> I'm not even sure if I actually read it.
10:20:19 <b_jonas> alternately, I can try the "customer service" emails or phones they give
10:20:50 <b_jonas> and maybe I should also try to report the Gatherer issues that Gatherer still has
10:20:56 <shachaf> "We at Wizards of the Coast recognize that no matter how detailed the rules, situations will arise in which the interaction of specific cards requires a precise answer. If you have questions, you can get the answers from us at Wizards.com/CustomerService. Additional contact information is on the last page of these rules."
10:21:07 <shachaf> I think they're probably aware of some of the Gatherer issues.
10:21:20 <shachaf> Like how comments have been broken for 2 years or something, haven't they?
10:22:11 <b_jonas> shachaf: yes, but they used to have a list of bugs (for the old Gatherer), and also had a submission form for new bugs, but even after some time, the bug I reported through the form didn't get to the list or get fixed. that might hvae been something I did wrong though. mind you, the new gatherer fixed some of the old bugs (and introduced new bugs) so it's partly moot.
10:22:25 <shachaf> "However, if you have rules questions that aren't answered by the basic or comprehensive rules or the release notes, feel free to contact customer service."
10:22:28 <shachaf> http://wizards.custhelp.com/app/answers/detail/a_id/2339
10:23:10 <b_jonas> Gatherer used to have a lot of bugs about split and flip cards. I think they fixed those now, but now they have at least one bug about double-faced card.s
10:25:43 <gamemanj> ...I wonder how a card game could have bugs, but yet, the rules of a card game are a program the players follow.
10:26:05 <shachaf> Well, Magic: The Gathering isn't even decidable.
10:26:28 <gamemanj> That could make things difficult.
10:27:26 <b_jonas> gamemanj: I said _Gatherer_ had bugs. it's a software.
10:27:39 <b_jonas> but yes, the card game also has bugs
10:28:00 <gamemanj> Ah. (I have no idea what's what, so I'm just being very general about what I say)
10:28:28 <b_jonas> this templating inconsistency with Intervene I was talking about is a bug in the card game, although it's a very minor doc bug, not an important bug. there are bigger bugs that pop up occasionally.
10:29:17 <b_jonas> (I'm still annoyed by Hollow Dogs being a Zombie instead of a Skeleton, but that's not definitely a bug)
10:32:26 -!- Reece` has joined.
10:39:09 <gamemanj> hmm, how many nodes do I need to put in a graph before it annoys people who try to understand it?
10:40:40 <b_jonas> I'll probably try the customer service
10:44:46 <gamemanj> Taneb: Ok, so a graph of the Audio Test it is - that only has 2 nodes.
10:45:52 <gamemanj> Also note that zzo38's program would be a better fit if it wasn't somehow able to change it's own jump value...
10:46:22 <gamemanj> or, at least, that's what the analyzer's saying
10:50:03 <gamemanj> Oh, it's the second segment generalization pass that's doing it... it runs the pass twice so that it won't have to recompile segments as much, but somehow zzo38's program is theoretically capable of self-modification. It's probably not, but it's convinced the analyzer.
10:50:27 -!- ais523 has joined.
10:53:32 -!- ais523 has quit (Client Quit).
10:53:49 -!- ais523 has joined.
10:53:58 -!- ais523 has quit (Changing host).
10:53:58 -!- ais523 has joined.
10:55:13 -!- Koen__ has joined.
10:57:36 -!- Koen_ has quit (Ping timeout: 246 seconds).
11:03:36 -!- gremlins has joined.
11:03:48 -!- gremlins has quit (Remote host closed the connection).
11:04:11 -!- gremlins has joined.
11:06:07 -!- Reece` has quit (Ping timeout: 260 seconds).
11:27:52 -!- ais523 has quit (Remote host closed the connection).
11:28:13 -!- ais523 has joined.
11:28:45 <gamemanj> If I can recognize the structure of my font renderer in a directed graph of control flow... am I crazy?
11:32:39 <int-e> gamemanj: I see no causal relationship between the two.
11:33:25 <ais523> that said you might be crazy for other reasons
11:33:35 * int-e absent-mindedly mapoles oerjan before he realizes that he's not even there.
11:34:12 <int-e> which is why I didn't just reply with a simple "no".
11:34:49 -!- boily has joined.
11:35:26 <int-e> gamemanj: I'll be more blunt: Be careful or the bytes will push you over the edge ;-)
11:35:46 <int-e> (hurray for weak puns)
11:36:01 <gamemanj> int-e: stare into the heart of the bytes https://dl.dropboxusercontent.com/u/21184720/project-i.svg
11:36:57 <int-e> gamemanj: you'll have to forgive me, I find that graph confusing :P
11:37:27 <gamemanj> Like, I know what code it's from, but I don't have a symbol table
11:37:54 <int-e> why is there a red edge
11:38:05 <gamemanj> red means the virtual machine was interrupted
11:38:17 <int-e> and is graphviz really still the most usable graph renderer around?
11:38:30 <gamemanj> Well, it was a bit slow, but then again the input .dot was REALLY BIG
11:39:02 <gamemanj> Reminder: At some point this had to be generated
11:39:16 <int-e> and what are the labels on the edges?
11:39:35 <int-e> number of instructions?
11:40:05 <gamemanj> Basically this graph doesn't show every instruction, it instead condenses it into "segments"
11:40:16 <gamemanj> This is more or less an offshoot of a test to see how JITable BytePusher could be
11:40:44 <int-e> oh there's a 520 instructions edge... neat
11:40:49 <gamemanj> Each square or circle represents a segment. Not shown are the "alternate" versions of segments which are generated to handle parallel universes
11:41:00 <lambdabot> shachaf said 4h 12m 17s ago: if only you were here to measure my funpun tdnh
11:41:15 <gamemanj> (If the compilation of the segment made assumptions which turned out to be wrong, a parallel version is made to handle the new condition)
11:41:25 <boily> @ask shachaf hellochaf. you punned?
11:41:33 <int-e> for the record, the mapole is for <lambdabot> oerjan said 10h 42m 18s ago: lambdabot still lacks enabled extensions (like GeneralizedNewtypeDeriving) for enterprise exploit searching tdnh
11:41:36 <gamemanj> (All versions of all segments are cached, but they are not generated until needed)
11:42:06 <int-e> I think GND is still not considered to be SafeHaskell anyway.
11:43:03 <int-e> hmm, there's a rectangle...
11:43:16 <gamemanj> Rectangle means that there has been at least one initialization at that point
11:43:23 <int-e> (actually, a few of them)
11:43:37 <gamemanj> That is, the 2/3/4 address was set there on at least one frame
11:43:41 <gamemanj> Usually you will find that only red lines lead to these, but that may not always be the case
11:43:58 <int-e> so self-modifying code?
11:44:12 <gamemanj> No, just changing the per-frame address
11:44:19 <gamemanj> The self-modification is more or less obscured by this graph.
11:44:39 <gamemanj> Mind, the reason this graph is more than just 2 nodes is because it does self-modify jump addresses and such
11:44:42 <gamemanj> To actually perform calculations
11:44:53 <gamemanj> Things like the Audio Test are 2 nodes
11:44:53 <int-e> I don't know what per-frame address means, and I don't want to know right now :P
11:45:13 <gamemanj> Well, it's the same thing as the red lines, really
11:45:54 <gamemanj> If you don't find any red lines going to a rectangle,
11:45:54 <fizzie> "This train is experiencing difficulties, which are being dealt with." First time I've heard that one.
11:46:09 <gamemanj> that's probably the initialization node - the first code the VM executes.
11:47:37 <gamemanj> Aha. Initialization is at 47e.
11:47:55 <ais523> fizzie: is this train in the UK? or was that translated? it sounds strangely nonidiomatic
11:48:12 <gamemanj> From that, I can infer that fc2ef7 is the Internal Keyboard Test part of the system.
11:49:22 <fizzie> ais523: South West Trains, so UK.
11:49:39 <shachaf> https://twitter.com/suzytimms/status/615391949701423104
11:50:04 <gamemanj> int-e: For future reference, if an address ends in f4, it usually means "false", if it ends in f7, it usually means "true".
11:50:20 <ais523> I learned a ton about health and safety from reading train accident reports
11:50:20 <ais523> also learned quite a bit about how trains fail in the process
11:50:42 <ais523> (they fail pretty safe; there are reports where things went catastrophically wrong and still nobody was hurt)
11:50:44 <fizzie> It did continue: "Please listen for further announcements from [unintelligible]."
11:51:10 -!- Koen__ has quit (Quit: Leaving...).
11:51:13 <gamemanj> fizzie: Are you actually in this train?
11:51:25 <fizzie> I didn't notice any difficulties, and there were no further announcements, so possibly it was played back by mistake.
11:51:55 <fizzie> I was on that train a few minutes ago, now I'm in a different one already.
11:52:15 <fizzie> I keep forgetting about #trains.
11:52:19 <ais523> there was this report that came out recently, and actually lead to the train company responsible being /banned/ from the railways, but nobody was hurt: https://www.gov.uk/raib-reports/dangerous-occurrence-at-wootton-bassett-junction-wiltshire
11:53:00 <ais523> (I suspect that the reason for the ban was related to the whole thing about intentionally disabling safety systems that would have prevented the accident)
11:56:26 <fizzie> "RAIB has identified one key learning point. This is that allowing safety critical systems such as AWS and TPWS to function without improper interference is vital to the safe operation of the railway."
11:57:39 -!- augur has joined.
12:00:26 -!- ais523 has quit.
12:02:28 -!- augur has quit (Ping timeout: 244 seconds).
12:04:43 -!- Phantom_Hoover has joined.
12:19:18 <b_jonas> `learn bézout/Bézout's theorem says that if a system of polynomial equations over the complexes has as many variables as equations, then in the general case the number of solutions it has is equal to the product of one less than the degrees of the polynomials.
12:19:43 <HackEgo> /hackenv/bin/learn: line 4: wisdom/bézout/bézout': No such file or directory \ Learned 'bézout/bézout'': bézout/Bézout's theorem says that if a system of polynomial equations over the complexes has as many variables as equations, then in the general case the number of solutions it has is equal to the product of one less than the degrees of
12:19:51 <b_jonas> `slashlearn bézout/Bézout's theorem says that if a system of polynomial equations over the complexes has as many variables as equations, then in the general case the number of solutions it has is equal to the product of one less than the degrees of the polynomials.
12:20:17 <b_jonas> ``` cp -i wisdom/{bézout,bézout's}
12:20:20 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
12:20:30 <b_jonas> ``` cp -i "wisdom/{bézout,bézout's}"
12:20:32 <HackEgo> cp: missing destination file operand after `wisdom/{b\303\251zout,b\303\251zout\'s}' \ Try `cp --help' for more information.
12:20:42 <b_jonas> ``` cp -i wisdom/{bézout,bézout\'s}
12:20:53 <b_jonas> ``` cp -i wisdom/{bézout,bezout}
12:20:59 <b_jonas> ``` cp -i wisdom/{bézout,bezout\'s}
12:21:02 <b_jonas> ``` cp -i wisdom/{bézout,bezout\'s theorem}
12:21:06 <HackEgo> cp: cannot stat `wisdom/{b\303\251zout,bezout\'s': No such file or directory
12:21:25 <b_jonas> ``` cp -vi wisdom/{bézout,bezout"'s theorem"}
12:21:30 <HackEgo> `wisdom/b\303\251zout' -> `wisdom/bezout\'s theorem'
12:21:33 <b_jonas> ``` cp -vi wisdom/{bézout,bézout"'s theorem"}
12:21:37 <HackEgo> `wisdom/b\303\251zout' -> `wisdom/b\303\251zout\'s theorem'
12:27:11 <HackEgo> itidus21//itidus21 just made some instant coffee, and did it again an instant later, and then again and again. where is all this coffee coming from? it has buried itidus21! where is itidus21?
12:27:28 <boily> @ask itidus21 where are you?
12:27:35 -!- boily has quit (Quit: BALCONY CHICKEN).
12:32:43 <gamemanj> boily: probably under a lot of instant coffee
12:34:30 -!- ybden has joined.
12:45:07 -!- hppavilion[1] has joined.
12:49:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
13:06:47 -!- Elronnd\StD has quit (Quit: Let's jump!).
13:07:10 <int-e> hmm, any connection? ... boily has quit [Quit: BALCONY CHICKEN] Elronnd\StD has quit [Quit: Let's jump!]
13:11:41 -!- Elronnd has joined.
13:15:35 <gamemanj> ...jumping off of the Balcony is a bad idea before defeating <data removed>. After defeating <data removed>, it is still a bad idea, unless you wish to receive the "bad" ending...
13:18:04 <b_jonas> what if, instead of jumping off the Balcony, you drop that huge beam on him by shooting the supporting chains?
13:18:39 <gamemanj> ...I have no idea what we're talking about.
13:20:44 <int-e> "Madotsuki climbs the stairs, jumps off the side of the balcony and plummets downward, then everything becomes dark." ?!
13:21:24 <gamemanj> Oh. I thought we were talking about something entirely different.
13:21:51 <int-e> I guess there must be many games with balconies :P
13:22:00 <int-e> that's the first one google found for me
13:22:10 <gamemanj> Now, why someone would waste their time climbing up stairs only to jump off a balcony...
13:22:31 <gamemanj> They could just, you know, walk to the area under the balcony.
13:23:37 <int-e> since I've read about the game for all of 5 minutes I can tell you that you can't... because your room door is impassable (locked? apparently the heroine doesn't even bother trying the door, and just shakes her head)
13:47:01 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:47:11 <quintopia> so super mario bros is PSPACE-complete, eh
13:47:52 <int-e> `learn PK is short for Phil Katz, an infamous player killer of the 1990s whose favorite method of attack was to deflate his enemies.
13:48:03 <HackEgo> Learned 'pk': PK is short for Phil Katz, an infamous player killer of the 1990s whose favorite method of attack was to deflate his enemies.
13:49:02 <int-e> super mario bros has crazy game mechanics... knocking monsters up through bricks?
13:50:23 <izabera> http://news.mit.edu/2016/mario-brothers-hard-complexity-class-pspace-0601 heh nice
13:50:59 <HackEgo> Mario is a classic NP-hard problem invented by Nintendo.
13:51:13 <b_jonas> ``` echo wisdom/*[mM]ario*
13:51:15 <HackEgo> wisdom/mario wisdom/supermarionation wisdom/supermarioperator
13:51:30 <HackEgo> supermarionation is another name for the mushroom kingdom.
13:51:47 <HackEgo> supermarioperator is one of many confusing operators as defined in Control.Plumbers.Monad. Your sanity is in another castle.
13:53:39 <gamemanj> Is there a class between "finite state machine" and "turing-complete" for things that would be turing-complete if their environment gave them access to an external infinite memory?
13:54:25 <b_jonas> izabera: I don't understand why that's somehow news today. is there a paper that proves something more than the original paper from 2009?
13:54:58 <b_jonas> I mean, wasn't it already turing complete back then? or am I confusing mario games or something?
13:55:36 <int-e> gamemanj: that seems a bit pointless; after all, Turing machines are finite automata with access to an infinite memory
13:57:01 <b_jonas> hmm, maybe the original super mario paper is form 2012
13:57:28 <int-e> b_jonas: http://erikdemaine.org/papers/Mario_FUN2016/paper.pdf
13:57:33 <b_jonas> http://arxiv.org/abs/1203.1895 by Greg Aloupis, Erik D. Demaine, Alan Guo, Giovanni Viglietta is I think the famous paper, althoguh the research does go back by years
13:57:45 <gamemanj> It's just that how finite the finite state machine is defines if it could implement something.
13:57:57 <b_jonas> do we have wisdom entries about this? I thoguht `? mario or something would tell
13:59:35 <b_jonas> int-e: ok, that's REALLY interesting
13:59:44 <b_jonas> int-e: thanks for nudging, I'll have to look at that article in detail
14:00:50 <int-e> essentially they have a new door device that looks embarassingly simple, but is based on a game mechanic that I didn't expect.
14:00:55 <int-e> (I've never played those games)
14:01:26 <b_jonas> int-e: it doesn't matter much, the original result is quite general and applies to lots of games, so I expect this one would as well
14:01:35 <b_jonas> a specific game or two doesn't matter
14:01:52 <b_jonas> you've probably played at least one 2d scroller game where it applies
14:02:00 <b_jonas> where some of the results apply that is
14:10:35 <int-e> There isn't much new from the general framework perspective, I think; they just instantiate their existing PSPACE framework.
14:12:36 <int-e> well, there's an interesting idea of exploiting timers for NP-hardness proofs.
14:13:49 -!- Akaibu has joined.
14:17:11 <b_jonas> int-e: ok, I will still read later
14:23:44 -!- gremlins has quit (Quit: Alsithyafturttararfunar).
14:44:03 -!- AnotherTest has joined.
14:51:24 -!- AnotherTest has quit (Ping timeout: 272 seconds).
14:53:43 -!- `^_^v has joined.
15:10:45 -!- Kaynato has joined.
15:22:10 -!- spiette has joined.
15:24:09 -!- hwpplayer1 has joined.
15:24:14 -!- hwpplayer1 has left.
15:32:12 <b_jonas> Git question. How do I list all tags together with the commits they point to? (git branch -l -a -v) lists all branches together with the commit id they point to (plus two other columns that are irrelevant here), but (git tag -l) which lists tags doesn't have the relevant fields. Do I have to invoke (git rev-parse) for each tag or something?
15:39:58 <int-e> git tag --format '%(refname:short) %(objectname)'
15:40:27 <int-e> (hmm, better swap those two fields to get a readable output)
15:46:37 -!- lambda-11235 has joined.
15:50:40 <b_jonas> and apparently --format is an argument that doesn't work for the (git branch) command, so I can't just do almost the same thing for tags and branches
15:50:49 <b_jonas> this will help, I'll add it to my script
15:53:49 <int-e> git for-each-ref --format '%(objectname) %(refname)' refs/heads refs/tags
15:54:17 <int-e> (there's a reference to git-for-each-ref in the documentation for git-tag's --format flag)
15:56:22 <int-e> it's just getting more low-level that way... but you can treat tags and branches and remote branches in a fairly uniform way
16:10:54 <b_jonas> I'm already treating remote branches too (well, fetched snapshots of remote branhces), because git branch -a does that
16:14:07 <b_jonas> but it's good to know about for-each-ref , I'll use that next time I want this
16:19:45 <quintopia> `learn Mario is a classic PSPACE-complete problem invented by Nintendo.
16:20:15 <HackEgo> Relearned 'mario': Mario is a classic PSPACE-complete problem invented by Nintendo.
16:20:15 -!- spiette has quit (Ping timeout: 264 seconds).
16:58:22 -!- izabera has quit (Ping timeout: 244 seconds).
17:08:39 -!- augur has joined.
17:10:02 -!- augur has quit (Remote host closed the connection).
17:10:26 -!- izabera1 has joined.
17:11:33 <HackEgo> [wiki] [[A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer.]] https://esolangs.org/w/index.php?diff=47097&oldid=46134 * M654 * (+86)
17:16:11 -!- ybden_ has joined.
17:18:27 -!- spiette has joined.
17:18:54 -!- ybden_ has quit (Client Quit).
17:19:06 -!- ybden_ has joined.
17:19:56 -!- izabera1 has changed nick to izabera.
17:26:43 -!- ybden_ has quit (Quit: ZNC - http://znc.in).
17:26:53 -!- ybden_ has joined.
17:28:21 -!- ybden_ has quit (Client Quit).
17:28:37 -!- ybden_ has joined.
18:40:23 -!- ybden_ has quit (Quit: ZNC - http://znc.in).
18:40:35 -!- ybden_ has joined.
18:41:31 -!- ybden has quit (Quit: leaving).
18:42:29 -!- ybden_ has changed nick to ybden.
18:47:29 -!- ybden has quit (Quit: ZNC - http://znc.in).
18:47:39 -!- ybden has joined.
18:50:10 -!- xkapastel has joined.
19:09:56 -!- idris-bot has quit (Quit: Terminated).
19:10:12 -!- Melvar has quit (Quit: thunderstorms).
19:33:00 <zgrep> Does it /have/ to be formal?
19:46:31 <int-e> I'm inclined to say yes, with the justification that any implementation of the programming language can serve as a formal specification... but you can take a more strict view on what "formal" means...
19:46:32 -!- Vorpal has quit (Ping timeout: 272 seconds).
19:47:54 <int-e> and there's a large grey area anyway... if you tell Siri to add two and three, and multiply the result by five... and assuming it does so... does that constitute an act of programming?
19:48:58 <int-e> why doesn't the google assistant have a name
19:49:05 -!- Melvar has joined.
19:49:40 <int-e> even microsoft gave their Siri a name... Cortana.
19:49:57 <int-e> but Google calls theirs "Assistant".
19:50:17 <int-e> (as far as I can see, please tell me if I'm wrong)
19:50:39 -!- Vorpal has joined.
19:50:57 <\oren\> hmm i shpuod probably know more about those than i do
19:51:17 <\oren\> theyre our competitors after all
19:52:16 <\oren\> its officially called the google now app
19:54:19 <int-e> "Hey, now, what's the time?" ... mmm, no that doesn't sound right.
19:56:35 -!- idris-bot has joined.
19:58:04 <\oren\> with most of tjese you can customize the actovation phrase
20:00:20 <int-e> hmm, another memory lapse... I read some scifi story where the hero (who is with the military), together with some hundred other people, gets an assistant implanted... and he decides to call it "asshole"... and gets warned that this is a very popular choice.
20:01:16 <\oren\> this will be important when you have a voice activated car and phone. "hey Civic" to talk to your car. "hey galaxy" to talk to your phone
20:01:53 <\oren\> the defaults are important for product branding
20:02:07 -!- nycs has joined.
20:04:41 -!- `^_^v has quit (Ping timeout: 240 seconds).
20:06:09 <\oren\> argh speaking of google some sort of recruiter from them called me just now.
20:07:08 <gamemanj> On the one hand, you could say "what, they just... called you???"... on the other hand, what's the chance it's really a google recruiter?
20:07:56 <\oren\> well the same person had emailed me and is pestering me on linkedin
20:08:01 <gamemanj> I theorize that it is actually Vermicious Knid.
20:08:17 <shachaf> Did the recruiter tell you to scram?
20:08:21 <int-e> are you at work where you can forward them to the legal department :P
20:09:57 <gamemanj> ...did you double check the authenticity of the sender?
20:10:34 <shachaf> Why are you expecting the email to be illegitimate?
20:11:05 <gamemanj> shachaf: Not expecting, but it's a possibility that should be kept in mind
20:11:33 <\oren\> it looks legit. seems sleazy for them to be nagging a competirors employees
20:11:50 <shachaf> Sleazy would be the opposite.
20:11:59 <shachaf> In fact they got sued for it.
20:12:20 <shachaf> Anyway, that's a legitimate @google.com email address, it's easy to look it up.
20:12:55 <shachaf> So you can just send email to it.
20:13:56 <\oren\> i just dumped her over the phone
20:14:12 <gamemanj> ...That phrasing has fun implications.
20:14:38 <int-e> good idea, I don't like phones either?
20:14:55 <pikhq> https://www.linkedin.com/in/gabbyzarnegar appears to be the person in question
20:15:16 <shachaf> You work at SoundHound, don't you?
20:15:20 <shachaf> Is that even a competitor?
20:15:54 <\oren\> yes. i work on our voice assisyant, Hound
20:16:09 <fizzie> And Google does have a sound search feature as well.
20:16:15 <fizzie> Though I'd guess most people don't even know it exists.
20:16:26 <shachaf> Google's search feature is pretty sound.
20:16:30 <\oren\> and the Houndify platform
20:16:47 <fizzie> A (sound search) feature, not a sound (search feature).
20:17:22 <shachaf> Or are you talking about Google Maps?
20:17:29 <shachaf> I guess it can search bays too.
20:18:09 <shachaf> "I have experience using both the Waterfall methodology and Agile/XP methodologies"
20:18:57 <gamemanj> did someone post oren's job history into a side-channel or something?
20:19:07 <shachaf> Is there anyone who says that they "use Waterfall"?
20:19:12 <shachaf> I thought it was mostly a straw man.
20:19:23 <\oren\> nah hes probably reading my linkedin
20:19:37 -!- hppavilion[1] has joined.
20:19:55 <int-e> straw men should easily keep afloat ...
20:20:09 <shachaf> Now I'm reading https://www.quora.com/How-can-the-sequence-3-7-15-31-63-etc-be-continued/answer/Oren-Watson
20:20:21 <shachaf> But I think you got that one wrong.
20:20:37 <shachaf> http://slbkbs.org/math-diff-2-4.txt explains the correct method.
20:22:27 <fizzie> Puget Sound is the only sound I know of.
20:24:19 <int-e> > let ex [x] = repeat x; ex xs = scanl (+) (head xs) (ex (zipWith (-) (tail xs) xs)) in ex [0,1,3,7,15,31,63]
20:24:21 <lambdabot> [0,1,3,7,15,31,63,126,246,465,847,1485,2509,4095,6475,9948,14892,21777,31179...
20:24:23 <shachaf> fizzie: That's a sound sound, though.
20:25:26 <shachaf> int-e: I think I'd continue it as 3, 7, 15, 31, 17, 17, 17, 17, 17, 17, ...
20:25:32 <int-e> ("ex" stands for "extrapolate", of course)
20:26:25 <int-e> shachaf: hmm, 17 would come after 42 for me, in the list of most plausible answers
20:26:45 <shachaf> int-e: Well, did you read the link I posted?
20:28:06 <int-e> shachaf: not in full detail. but according to that link you should continue with 19 :-P
20:30:40 <int-e> I'd also bet that the answer is yes.
20:30:48 <int-e> I just don't know any.
20:31:17 <int-e> and I'm too lazy to construct a lmgtfy link.
20:32:39 -!- Nithogg_ has quit (Ping timeout: 246 seconds).
20:32:39 <HackEgo> int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv.
20:32:45 <int-e> ... it should probably say something about being obnoxious there.
20:34:08 <gamemanj> int-e attempts to use certain spräk deriviations to confuse gamemanj.
20:34:19 -!- Nithogg_ has joined.
20:34:36 <int-e> `culprits wisdom/int-e
20:34:49 <HackEgo> oerjan boily boily oerjan oerjan
20:34:53 <int-e> (though the former question is also valid... but hackego isn't the authority on that matter)
20:35:27 <gamemanj> so, if you're too lazy to construct a lmgtfy link...
20:35:43 <gamemanj> does that mean you need a lmlmgtfyfy link?
20:35:52 <int-e> gamemanj: basically "inte" is a swedish word, meaning "not"... so that gave rise to the first sentence, and I pretty much gave you all information that is required to guess its meaning...
20:36:41 <int-e> Phantom_Hoover: ...
20:36:56 <gamemanj> (for future reference, I do not know Swedish, but I know Swedish text when I see it, and I also know that spräk means language.)
20:37:23 <gamemanj> why would that be a bad thing?
20:37:25 <int-e> I don't know the language either.
20:37:56 <gamemanj> hppavilion[1]: I already commented on that.
20:38:13 <gamemanj> hppavilion[1]: The solution is a lmlmgtfyfy link.
20:38:31 <int-e> it's funny because it's meta
20:38:42 <int-e> or, meta-meta, really.
20:39:23 <int-e> @google twitter command line client linux
20:39:24 <lambdabot> http://www.tecmint.com/rainbow-stream-command-line-twitter-client-linux/
20:39:24 <lambdabot> Title: Rainbow Stream - An Advanced Command-line Twitter Client for Linux
20:40:06 <int-e> clearly there's room for improvement there
20:40:15 <\oren\> i always[assumed int-e was a variable declaration
20:40:27 <shachaf> \oren\: I tried to use SoundHound but it didn't work.
20:40:47 <shachaf> You're supposed to be able to hum into it to find a name for a melody, right?
20:41:26 <\oren\> yes. although it only works if youre good at humming i find
20:42:45 <gamemanj> "[translation] both our infinite dreams and our sketched out future..."
20:42:55 <HackEgo> http://lmgtfy.com/?q=shell-based+twitter+client
20:43:03 <hppavilion[1]> Probably not perfect, but it works at least a little
20:43:29 <hppavilion[1]> (It won't substitute special characters with %-codes, but it will at least deal with spaces)
20:43:44 <int-e> ludicrous mind games
20:44:06 <gamemanj> ...soundhound wants access to: Location, Files, Microphone, Wi-Fi connection information, Device ID and call information...
20:44:14 <gamemanj> there are 4 of those which should not be in that list
20:44:22 <gamemanj> Location, Files, Device ID and call information
20:44:33 <quintopia> i use bitlbee. does this qualify as a shell-based twitter client?
20:44:51 <hppavilion[1]> gamemanj: I've always hated apps that request permissions they should not want. I never give them permission to, in most cases
20:45:16 <\oren\> hmmm not sure why it wants those
20:45:19 <gamemanj> Location it just shouldn't have, end of. Files it could possibly have a reason to access if you told it to.
20:45:26 <gamemanj> Microphone it obviously needs.
20:45:40 <gamemanj> Wi-Fi connection information is fine because you don't want it to eat data costs.
20:45:46 <hppavilion[1]> For example, no game should want any permissions. /Maybe/ pictures if it has a built-in screencap capability
20:45:52 <\oren\> location is so it can tell you what oeople near you are listenibg to
20:45:53 <shachaf> Doesn't lmgtfy.com have a "slightly less rude" mode?
20:45:56 <int-e> actually location seems to be the most useful of the four... popular songs vary wildly by country
20:46:10 <gamemanj> Wrong - moddable games need some way to give them the Lua files. But it shouldn't have anything else.
20:46:35 <gamemanj> int-e: That's even worse, since it means it won't find my really obscure song of choice.
20:46:48 <int-e> device id makes no sense at all to me (except for tracking, obviously), and neither do contacts (but I bet there's a "share this find with..." feature)
20:46:58 <int-e> gamemanj: the other 99% of users won't care!
20:47:16 <\oren\> there is sociak media integration yeah
20:47:24 <quintopia> i dont mind games wanting internetty permissions, for scoreboards and the like
20:47:29 <int-e> files... no clue why it wants that
20:47:47 <hppavilion[1]> shachaf: Can't find anything labeled "less rude" or the like
20:47:53 <fizzie> Just about everything seems to want the USB storage permission.
20:47:56 <shachaf> Oh, you add &n=1 to the URL.
20:47:56 <\oren\> it can save songs tpfrom itunes etc
20:48:01 <shachaf> It's slightly less rude that way.
20:48:10 <int-e> big data idea: get a taste for music preferences :P
20:48:16 <gamemanj> There is a theoretical reason that it would want files, so that you can give it music
20:48:29 <gamemanj> without having to play it back into the phone
20:48:45 <gamemanj> Really it's location and device ID that it has no reason for
20:48:53 <\oren\> and you can use it as a music plqyer app
20:49:13 <fizzie> At least in M and later you can just turn off those permissions you don't want to give.
20:49:53 <fizzie> SoundHound seems to work (or at least run) with location, storage and telephone ("phone status and identity") disabled.
20:50:04 <shachaf> Mascarpone isn't even a dessert.
20:51:36 <shachaf> int-e: Well, according to that link, I should use my favourite number + 1.
20:51:38 <int-e> what's wrong is that there's essentially no penalty for apps that ask for excessive permissions.
20:51:42 <\oren\> i only work on Hound though not soundhound, and only the backend
20:51:44 * gamemanj hums "SoundHound Did Not Hear Any Music"
20:51:44 <shachaf> So as to avoid revealing any character defects.
20:52:29 <fizzie> Oh, the most annoying SoundHound feature I know of: it pops up notifications about songs apparently at random.
20:52:37 <int-e> so whenever a feature is added that might, in some obscure case, use a certain feature...
20:52:46 -!- AnotherTest has joined.
20:53:58 <int-e> so... why doesn't it have accelerometer access... surely that must be useful to compensate for the doppler effect when you drop the phone while humming a song...
20:53:58 <zzo38> But can you set permissions in smaller pieces than that (such as to specify which directories it can see and which one it sees as root of the storage, and which internet services it can access and what proxies to use, and to fake device ID and so on)?
20:54:28 <gamemanj> zzo38: At some point it would become "too difficult for users to use"
20:54:44 <zzo38> Put it into the "Advanced" menu then.
20:54:44 <int-e> (but perhaps you don't have to ask permission for those?)
20:55:02 <\oren\> to difficult for[users to bother doing
20:55:04 <zzo38> Also recalibration of accelerometer per program
20:55:55 <int-e> > [2^n | n <- [0..]] :: [Int8]
20:55:57 <lambdabot> [1,2,4,8,16,32,64,-128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
20:56:15 <fungot> hppavilion[1]: look at the chicago kent symposium which deals with narrow scope of the " round body mustang" and the beatles' " all you need is love" are both in use. fnord ( user fnord)
20:56:22 <shachaf> What if my favourite number is -1?
20:56:31 <shachaf> I've asked zzo38 what my favourite number is but he won't tell me.
20:56:46 <hppavilion[1]> shachaf: Wait, you use your favorite number + 1 where? According to what link?
20:57:00 <shachaf> The http link I posted above.
20:57:42 <fizzie> int-e: You don't need special permissions for the accelerometer. You do need the BODY_SENSORS permission "to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate."
20:59:42 <fizzie> Of course in certain situations the accelerometer...
21:02:32 -!- AnotherTest has quit (Ping timeout: 272 seconds).
21:06:13 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:17:24 <gamemanj> fizzie: eh, there are all sorts of permissions which could be evil in "certain situations"
21:19:10 <zzo38> That is why to add the ability to configure proxies and so on
21:20:05 <gamemanj> If the phone's accelerometer detects a certain special sequence of movements, then it should log this information for future use.
21:20:24 <int-e> "Android keylogger app – powered by accelerometer/gyroscope movements – revealed"
21:20:38 <int-e> 2011.. has it been that long
21:21:32 <olsner> nice, I was thinking about building one of those, glad it's already done so I don't have to
21:25:35 -!- nycs has quit (Read error: Connection reset by peer).
21:27:43 -!- hppavilion[1] has joined.
21:28:34 <hppavilion[1]> The inverse (or something) of the pigeonhole principle is something I haven't heard talked about
21:28:54 <hppavilion[1]> If you have n pigeons in n+1 holes, then there is at least one empty hole
21:28:58 <\oren\> can i use kinect to set a password consisting of poses?
21:29:29 <hppavilion[1]> \oren\: If you're willing to root the system, then yes.
21:31:00 <hppavilion[1]> Honestly, I wonder why there isn't legislation requiring legitimate owners of a computer system to be able to legally and easily (like, easy-to-find-guide-on-the-website easy) root the system.
21:31:41 <hppavilion[1]> Like, I don't see how it can be legal to prevent the legitimate owner of a system from doing whatever the hell they want with that system, as long as they aren't violating other laws in the process
21:34:01 <int-e> hollywood is too strong for that to happen in the US
21:34:21 <int-e> how will you protect movies on hardware that's actually run by its owners?
21:34:43 <int-e> oversimplifying, of course, but DRM is a driving factor behind all this
21:35:16 <zzo38> I was designing the computer machine and had the idea to use a combination of copyright and trademark laws to ensure that anyone who has such a computer (regardless of if it is a clone from another manufacturer or whatever) can legally and easily root the system (although you are unliekly to need to root it to do nearly all things, and to alter ROMs and so on requires a standard screwdriver)
21:35:38 <int-e> and vendors aren't too unhappy about the resulting customer lockin either
21:43:29 <pikhq> It's kinda bizarre how much clout Hollywood has relative to their actual wealth.
21:46:35 <Phantom_Hoover> hppavilion[1], the phrasing of that makes it sound like a tautology
21:47:41 -!- gamemanj has quit (Ping timeout: 240 seconds).
21:51:51 -!- `^_^v has joined.
21:59:09 -!- jaboja has joined.
22:14:03 -!- idris-bot has quit (Ping timeout: 276 seconds).
22:22:44 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:41:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:48:19 -!- idris-bot has joined.
22:49:04 -!- boily has joined.
23:03:12 -!- PinealGlandOptic has joined.
23:07:31 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:07:47 <b_jonas> Is there a low-level git command that prints the .git directory for the current repository, and one that prints the directory associated with the current worktree?
23:08:13 <b_jonas> And I guess one that prints the root directory of the checkout also helps.
23:08:42 <b_jonas> Also, is there a website where I can see the full manual pages of git online, always for a recent version of git (more fresh than what I have installed)? I'm trying to look at https://git-scm.com/docs/git but that seems to be missing some generated part of the git(1) manpage where it lists commands.
23:09:53 -!- Phantom_Hoover has joined.
23:11:12 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:11:33 -!- Phantom_Hoover has joined.
23:14:12 -!- hppavilion[1] has joined.
23:15:10 -!- Sgeo has joined.
23:29:24 -!- Nithogg_ has quit (Ping timeout: 246 seconds).
23:31:53 -!- Elronnd has changed nick to Elronnd\StD.
23:34:04 -!- Nithogg_ has joined.
23:40:26 <fizzie> b_jonas: git rev-parse --show-toplevel
23:41:30 <fizzie> b_jonas: I meant: git rev-parse --git-dir
23:41:38 <fizzie> For the .git directory.
23:44:17 <fizzie> A bit curiously there seems to be no corresponding rev-parse option to show the GIT_WORK_TREE.
23:45:40 <fizzie> Maybe that's what the "top-level directory" means in this context.
23:56:56 <HackEgo> lystrosaur//The lystrosaurs were an ancient genus of evil reptiles who successfully took over the world in the early Triassic.