00:00:11 <zemhill__> david_werecat.MV: points 15.33, score 38.90, rank 3/47 (--)
00:00:59 <zemhill__> david_werecat.MV: points 15.02, score 38.30, rank 3/47 (--)
00:04:05 -!- Melvar has quit (Ping timeout: 240 seconds).
00:04:31 -!- Melvar has joined.
00:34:44 -!- augur has joined.
01:16:14 -!- augur has quit (Remote host closed the connection).
01:20:16 -!- augur has joined.
01:22:41 -!- MDead has joined.
01:23:25 -!- HackEso has quit (Remote host closed the connection).
01:24:28 -!- HackEso has joined.
01:24:59 <esowiki> [[Mep]] N https://esolangs.org/w/index.php?oldid=54872 * BradensEsolangs * (+3619) Added more
01:25:11 -!- MDude has quit (Ping timeout: 256 seconds).
01:25:17 -!- MDead has changed nick to MDude.
01:25:53 <esowiki> [[Mep]] https://esolangs.org/w/index.php?diff=54873&oldid=54872 * BradensEsolangs * (-4) Fixed headings
01:26:44 <esowiki> [[Mep]] M https://esolangs.org/w/index.php?diff=54874&oldid=54873 * BradensEsolangs * (+7) Fixed that <pre> thing
01:27:20 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=54875&oldid=54857 * BradensEsolangs * (+10) Added mep
01:28:14 -!- sprocklem has quit (Ping timeout: 260 seconds).
01:28:33 -!- oerjan has joined.
01:29:02 -!- augur has quit (Ping timeout: 256 seconds).
01:30:55 <shachaf> So the derivative of f at x is the "best affine approximation" of f around x. Is there some way to make that precise without resorting to the usual definition of derivatives?
01:32:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
01:38:28 -!- augur has joined.
01:46:27 <esowiki> [[List of ideas]] https://esolangs.org/w/index.php?diff=54876&oldid=54652 * BradensEsolangs * (+189) Vogon Poetry
01:47:27 -!- augur has quit (Ping timeout: 240 seconds).
02:06:40 <oerjan> . o O ( put it's affine definition )
02:07:45 -!- xkapastel has joined.
02:08:07 <shachaf> Someone gave me a good perspective which is that continuous functions are ones that can be approximated locally by a constant function (degree 0 polynomial)
02:08:47 -!- ais523 has quit (Remote host closed the connection).
02:09:51 <shachaf> And differentiable functions can be approximated locally by a degree-1 polynomial and so on.
02:10:01 -!- ais523 has joined.
02:10:05 <shachaf> I don't quite know how to make that precise.
02:11:47 <esowiki> [[User:BradensEsolangs]] N https://esolangs.org/w/index.php?oldid=54877 * BradensEsolangs * (+97) Created page with "Braden (or Ikura) is a user who made these languages: * [[mep]] (note: Pongo the penguin made it)"
02:13:54 -!- sprocklem has joined.
02:19:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
02:22:16 -!- sprocklem has joined.
02:29:42 <esowiki> [[Talk:Lost]] https://esolangs.org/w/index.php?diff=54878&oldid=54865 * Oerjan * (+402) Strings are fine but the programs *are* broken
02:42:13 <esowiki> [[Talk:Lost]] https://esolangs.org/w/index.php?diff=54879&oldid=54878 * Oerjan * (+158) /* Stringmode */ Maybe not the quine
02:43:43 -!- ais523 has quit (Remote host closed the connection).
02:44:55 -!- ais523 has joined.
02:51:07 <oerjan> ais523: oh wait he's edited the HW as well, i'd better check if i checked the right versions...
02:53:36 <ais523> what does "HW" stand for?
02:53:44 <oerjan> ok the version _commented_ on is wrong, but the one in the example section was fine before e changed it
02:58:58 <esowiki> [[Lost]] https://esolangs.org/w/index.php?diff=54880&oldid=54843 * Oerjan * (-1054) Revert, because it was based on a faulty assumption, although the version in that section indeed doesn't work, so add a comment on that.
03:01:23 <esowiki> [[Talk:Lost]] https://esolangs.org/w/index.php?diff=54881&oldid=54879 * Oerjan * (+165) Hello, World! too, partly
03:05:12 <oerjan> ais523: there's this meta-PPCG question that keeps coming up that's obviously inspired by you disappearing :P
03:05:33 <oerjan> oh wait that wasn't it now
03:08:14 <oerjan> https://codegolf.meta.stackexchange.com/questions/16137/how-to-request-clarifications-when-the-challenge-poster-has-left-the-site
03:08:57 <oerjan> although to be fair, you had explicitly referred to the standard rules
03:09:30 <oerjan> i suppose it has quieted down (and the only answer was deleted).
03:09:50 <ais523> I'm a believer that the OP shouldn't be in charge of challenge rules anyway
03:10:07 <ais523> making them be in charge even if they've deleted the account to say "really, honestly, this content belongs to the community" makes no sense at all
03:12:09 <ais523> even in https://codegolf.meta.stackexchange.com/questions/13067/who-has-the-final-say-on-a-challenge?noredirect=1 which decides that the author doesn't get the final say full stop, the people arguing for the author to have the final say were arguing that it was based on the author's name being linked to the post
03:14:21 <ais523> fwiw, I /also/ think PPCG should have standard rules for input encoding that should be set in advance per-language
03:14:27 <ais523> which would have solved this problem
03:21:43 <zemhill__> oerjan: I do !zjoust; see http://zem.fi/bfjoust/ for more information.
03:22:11 <shachaf> The derivative clearly *is* the best linear approximation around a point. So what makes one linear approximation (or another class of approximation) better than another?
03:27:44 -!- augur has joined.
03:27:55 -!- augur has quit (Remote host closed the connection).
03:28:02 -!- augur has joined.
03:42:46 -!- augur_ has joined.
03:45:56 <oerjan> shachaf: |a1(x)-f(x)| <= |a2(x)-f(x)| in some neighboorhood?
03:45:57 -!- augur has quit (Ping timeout: 240 seconds).
03:46:26 <shachaf> Well, sure. But not in any specific neighborhood.
03:46:43 <oerjan> no, but neighboorhoods are a filter.
03:46:57 <oerjan> so all sufficiently close ones.
03:50:54 -!- variable has quit (Quit: /dev/null is full).
03:52:48 <shachaf> Maybe I should just be happy with "a C^k function is a function that can be locally approximated by a degree-k polynomial"
03:52:51 <shachaf> But I'm not sure I know what that means other than in terms of repeated derivatives.
03:54:47 <oerjan> it may very well be equivalent to there being a unique degree-k polynomial that is "best" in the sense above.
03:56:41 <oerjan> although there might be some technical obstacle i haven't thought of.
03:59:29 -!- variable has joined.
04:01:05 <shachaf> Can you define this without a metric?
04:02:15 -!- ais523 has quit (Quit: quit).
04:14:07 <shachaf> oerjan: So how are you expressing "all sufficiently close ones"?
04:21:43 <oerjan> all contained in a given one.
04:21:55 <oerjan> that's the usual limit of filters.
04:22:15 -!- variable has quit (Quit: /dev/null is full).
04:22:56 <shachaf> So for a function f : X -> Y and a point x : X, and a class of functions G : X -> Y
04:23:26 <shachaf> A candidate approximation of f at x is a function g : G such that g(x) = f(x)
04:23:47 <shachaf> And the best candidate is...
04:23:58 <oerjan> you don't even need g(x)=f(x) to start with
04:25:03 <shachaf> OK, so a candidate is a function g : G
04:25:13 <oerjan> the best candidate is a g0 such that for all g, there exists a neighboorhood O of x such that |g0(y)-f(y)| <= |g(y)-f(y)| for y in O.
04:27:16 <shachaf> Ah, you don't need to say for all neighborhoods of f(x)
04:29:01 <shachaf> I'll go home and think about it then.
04:29:43 <oerjan> as i said, there might be a technical complication i haven't thought of
04:30:04 <oerjan> that might make this not always equivalent to the definition using derivatives.
04:33:18 -!- variable has joined.
04:37:07 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
04:43:16 <shachaf> Well, do you get the usual definition of continuity from making g a constant functioon?
04:44:01 <shachaf> I mean from making G be constant functions.
04:44:59 <oerjan> hm that may be a problem.
04:45:26 <shachaf> a value g0 : Y such that forall g : Y exists neighborhood A of x, forall x' : A, d(g0, f(x')) <= d(g, f(x'))
04:45:44 <shachaf> I guess that's not unreasonable.
04:46:16 <oerjan> ok it doesn't work for continuity.
04:46:26 <shachaf> But it's not the standard definition.
04:48:44 <oerjan> except maybe not in reverse...
04:49:23 <oerjan> if it's continuous then clearly the constant is best.
04:50:25 <shachaf> I'd expect a definition to say something about "forall neighborhoods of f(x)"
04:51:13 <oerjan> hm and if it's not continuous then you can find an arbitrary close point that's, say, > e above
04:51:23 <oerjan> and then e/2 beats it.
04:52:53 <oerjan> this might be dependent on the range being R, though.
04:53:22 <oerjan> locally compact might work.
04:54:27 <oerjan> well that's an unnecessary complication at this stage.
04:55:23 <oerjan> it will work for R^n, i think.
05:06:10 -!- tromp has quit.
05:46:40 -!- Naergon has quit (Ping timeout: 268 seconds).
06:00:18 -!- doesthiswork has quit (Quit: Leaving.).
06:28:44 -!- variable has quit (Quit: /dev/null is full).
06:50:54 -!- sleffy has quit (Ping timeout: 256 seconds).
06:51:35 -!- augur_ has quit (Remote host closed the connection).
06:52:16 -!- augur has joined.
06:52:20 -!- augur has quit (Remote host closed the connection).
07:08:56 -!- oerjan has quit (Quit: Nite).
07:11:34 -!- LKoen has joined.
07:13:43 -!- augur has joined.
07:40:42 -!- AnotherTest has joined.
07:42:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
08:24:58 -!- imode has quit (Ping timeout: 256 seconds).
08:32:54 -!- AnotherTest has quit (Ping timeout: 256 seconds).
08:41:08 <esowiki> [[Special:Log/newusers]] create * BoutonIA * New user account
09:04:26 -!- Naergon has joined.
09:13:50 <Taneb> Felt like screaming, here felt more or less appropriate place to do it
09:15:35 <sebbu2> were you just forced to write in brainfuck ?
09:15:38 <int-e> (find the missing vowel)
09:16:30 <sebbu2> you forget an S, there was 2
09:16:34 <int-e> right... let's have ä ö ü as well to start a flood.
09:20:09 -!- Storkman has quit (Ping timeout: 260 seconds).
09:25:56 -!- Storkman has joined.
09:36:24 -!- augur has quit (Read error: Connection reset by peer).
09:37:27 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=54882&oldid=54834 * BoutonIA * (+300) /* Introductions */
09:40:07 -!- augur has joined.
09:49:33 -!- augur has quit (Ping timeout: 264 seconds).
10:40:10 -!- LKoen has quit (Remote host closed the connection).
10:48:25 <esowiki> [[CopyPasta Language]] N https://esolangs.org/w/index.php?oldid=54883 * BoutonIA * (+963) Created page with "'''CopyPasta Language''' is an esoteric programming language created by [[User:BoutonIA]] on 19 April [[:Category:2018|2018]]. This programming language refers to the CopyPast..."
10:48:44 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=54884&oldid=53666 * BoutonIA * (+64) /* General languages */
10:50:58 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=54885&oldid=54875 * BoutonIA * (+25) /* C */
10:51:51 -!- AnotherTest has joined.
10:55:16 <esowiki> [[User:BoutonIA]] N https://esolangs.org/w/index.php?oldid=54886 * BoutonIA * (+223) Created page with "Hi ! I'm BoutonIA , a random idiot on Internet ! === My Languages === [[CopyPasta Language]] === My Projects === Programming : The Musical<br><br> If you have a question about..."
11:33:57 -!- jix has quit (Remote host closed the connection).
11:47:07 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: meta: not found
11:47:19 <lambdabot> EGSC 191120Z 17004KT CAVOK 25/10 Q1023
11:47:38 <Taneb> Get there eventually to get the weather string I don't know how to read
11:50:37 -!- LKoen has joined.
12:09:57 -!- wob_jonas has joined.
12:12:24 * wob_jonas looks at the backlog, sees ais523 and PPCG and some calculus stuff
12:14:04 -!- jix has joined.
12:22:50 <HackEso> Titles J. K. Rowling had specifically denied on her webpage would be the titles of the sixth or seventh Harry Potter book are: Harry Potter and the{ Green Flame Torch, Mountain of Fantasy, Fortress of Shadows, Forest of Shadows, Graveyard of Memories, Pyramids of Furmat, Pillar of Storgé, Toenail of Icklibõgg}.
12:23:25 <HackEso> bottom//Bottom is where you might end up with a catamorphism, if not careful. There be balrogs.
12:24:05 <lambdabot> EGLL 191150Z AUTO 16004KT 090V240 9999 NCD 26/10 Q1023 NOSIG
12:24:17 <fizzie> That's just ridiculous.
12:31:00 -!- SopaXorzTaker has joined.
12:41:24 <lambdabot> LOWI 191220Z 20003KT 150V290 CAVOK 23/08 Q1027 NOSIG
13:00:30 -!- doesthiswork has joined.
14:41:26 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
14:44:02 -!- contrapumpkin has joined.
14:46:02 -!- wob_jonas has joined.
15:11:23 -!- sleffy has joined.
15:14:30 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:52:00 -!- xkapastel has joined.
16:13:09 -!- sprocklem has quit (Ping timeout: 260 seconds).
16:14:45 -!- sprocklem has joined.
16:27:25 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=54887&oldid=54884 * BoutonIA * (-4) /* General languages */
16:28:30 -!- BoutonIA has joined.
16:28:41 <esowiki> [[User:Kamish]] https://esolangs.org/w/index.php?diff=54888&oldid=54814 * Kamish * (-8)
16:28:53 <esowiki> [[User:Kamish]] https://esolangs.org/w/index.php?diff=54889&oldid=54888 * Kamish * (+8)
16:29:02 <esowiki> [[User:Kamish]] https://esolangs.org/w/index.php?diff=54890&oldid=54889 * Kamish * (+4)
16:30:03 -!- imode has joined.
16:36:23 <esowiki> [[Special:Log/newusers]] create * Umnikos * New user account
16:45:33 <esowiki> [[Mep]] M https://esolangs.org/w/index.php?diff=54891&oldid=54874 * BradensEsolangs * (+152) Negative numbers!
16:48:06 <esowiki> [[Mep]] https://esolangs.org/w/index.php?diff=54892&oldid=54891 * BradensEsolangs * (+48) A little more.
16:50:41 -!- erkin has joined.
16:56:15 <esowiki> [[User talk:Oerjan]] https://esolangs.org/w/index.php?diff=54893&oldid=53526 * BradensEsolangs * (+137) /* Question */ new section
16:59:03 <esowiki> [[CopyPasta Language]] https://esolangs.org/w/index.php?diff=54894&oldid=54883 * BoutonIA * (+9)
17:03:12 <esowiki> [[CopyPasta Language]] https://esolangs.org/w/index.php?diff=54895&oldid=54894 * BoutonIA * (+73) /* Commands */
17:07:45 <esowiki> [[User:BoutonIA]] https://esolangs.org/w/index.php?diff=54896&oldid=54886 * BoutonIA * (+22)
17:16:30 <esowiki> [[CopyPasta Language]] M https://esolangs.org/w/index.php?diff=54897&oldid=54895 * BoutonIA * (+14) /* Commands */
17:54:29 -!- BoutonIA has quit (Ping timeout: 260 seconds).
18:06:51 <lambdabot> EGLL 191750Z AUTO 23009KT 9999 NCD 26/09 Q1022 NOSIG
18:06:58 <fizzie> Aw. My phone was claiming 28.
18:07:16 <Taneb> Might be warmer city-centre
18:12:05 -!- Naergon has quit (Ping timeout: 240 seconds).
18:19:02 -!- LKoen has quit (Remote host closed the connection).
18:42:11 -!- danil has joined.
18:42:38 -!- sftp has joined.
18:43:12 <danil> ^ul (Underload!):::SSS
18:43:12 <fungot> Underload!Underload!Underload!
18:43:26 -!- danil has quit (Client Quit).
19:18:13 -!- danil has joined.
19:23:27 -!- danil has quit (Quit: danil).
19:28:04 -!- augur has joined.
19:34:11 -!- ais523 has joined.
19:34:13 -!- danil has joined.
19:35:24 -!- SopaXorzTaker has quit (Remote host closed the connection).
19:38:27 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
19:44:02 -!- danil has quit (Quit: danil).
19:52:02 -!- rodgort has quit (Quit: Leaving).
19:52:20 -!- int-e has quit (Remote host closed the connection).
19:54:39 <esowiki> [[User:BoutonIA]] https://esolangs.org/w/index.php?diff=54898&oldid=54896 * BoutonIA * (-22) /* My Projects */
19:56:24 -!- rodgort has joined.
20:15:56 <zzo38> Even if JavaScript had a goto command, they wouldn't use it as much as it is used in C, because it isn't needed as much. You can do all of it without goto, but a few things are more clearly when you do have goto, even though mostly you can do better without.
20:18:08 <FreeFull> A language without goto should at least have RAII
20:19:18 <zzo38> Some programming language it make sense to don't have a goto command, such as Haskell and Verilog, but most programming languages they should include a goto command even though you may have enough other flow controls that goto is rarely needed.
20:19:42 <FreeFull> Besically destructors that automatically run when the object goes out of scope
20:19:48 -!- int-e has joined.
20:22:08 <zzo38> There is a try...finally... block in JavaScript
20:23:53 -!- LKoen has joined.
20:28:47 -!- augur_ has joined.
20:30:12 -!- LKoen has quit (Remote host closed the connection).
20:31:18 -!- augur has quit (Ping timeout: 256 seconds).
20:39:04 <int-e> Hehe, jquery.com let their SSL certificate expire?
20:39:47 <int-e> (But I guess it's too much to hope that this will teach people to host their javascript themselves.)
20:41:20 -!- sebbu2 has changed nick to sebbu.
20:41:59 <int-e> Especially when you can make a technical argument in favor of using a central location like this (as long as it's reliable)... user agents are more likely to have the code already cached. :-(
20:48:23 <zzo38> The other consideration is if the user wants to override the code.
20:48:58 <FreeFull> int-e: Seems they already renewed their certificate
20:49:15 -!- erkin has quit (Quit: Ouch! Got SIGIRL, dying...).
20:49:17 <zzo38> There could be adding in a HTML attribute to control automatic caching and user overriding of common files such as jquery and so on
20:51:55 <int-e> zzo38: pretty sure that's not a concern that web developers have
20:53:33 <int-e> FreeFull: hmm it /may/ be a CDN issue? "code.jquery.com uses an invalid security certificate. The certificate is only valid for the following names: *.ssl.hwcdn.net, ssl.hwcdn.net"
20:53:55 <int-e> (is what I get for https://code.jquery.com/jquery-3.2.1.min.js)
20:53:57 <ais523> zzo38: RAII is a programminng technique for ensuring that allocated resources are deallocated; the way it works is that whenever you allocate a resource (e.g. taking a lock), you do so in the constructor of an auto/stack-allocated object, and then you have that object's destructor deallocate it
20:54:13 <ais523> this way, it's impossible for the resource to remain allocated outside of the scope it was allocated in
20:54:46 <ais523> the technique is most famous in C++, but you can do it in more or less any object-oriented language (and Rust also uses it despite not really being object-oriented)
20:54:56 <ais523> I use it at work, in Java, to make sure that locks are released
20:55:06 <int-e> (unless you use some smart pointer and explicitly transfer ownership)
20:55:28 <FreeFull> int-e: Oh, they might have a different certificate for code.
20:55:37 <ais523> (Java finalizers work differently from C++ destructors, but Java has a try () {…} statement intended for RAII that calls close() when the object goes out of scope)
20:55:58 <int-e> FreeFull: true, and I didn't think of that
20:56:15 <int-e> FreeFull: indeed the website is fine for me
20:56:19 <FreeFull> int-e: Seems it's the same certificate
20:57:22 <FreeFull> Yeah, must be a caching issue if it's still failing for you
20:59:36 <int-e> yeah it works fine now
21:00:27 <int-e> I guess we'll see later whether it was a bigger issue :)
21:02:34 <int-e> (and the error message I got did not really indicate an expired certificate so that diagnosis (which I saw somewhere else and didn't verify, not that this excuses anything) may have been wrong as well)
21:23:08 -!- wob_jonas has joined.
21:24:51 <wob_jonas> ais523: sort of. it's also a technique to ensure that the constructor has run on your objects. that's what the second I means.
21:25:21 <ais523> wob_jonas: I don't think the term means that outside C++
21:25:38 <ais523> maybe the C++ version is a combination of two techniques
21:25:47 <ais523> (this is partly because most languages don't even support partially-constructed objects)
21:26:39 <wob_jonas> And the rustc devs are reimplementing the borrow checker, and I think after that we might be able to get a true goto statement. For now we've just got a lot of reasonably powerful structured control statements with syntax that's slightly less messed up than in ghc.
21:28:26 <wob_jonas> In particular, soon rust will even have breaks out of labeled bare blocks (within the same function body) with values.
21:29:44 <wob_jonas> And it already has breaks out of labeled forever blocks (within same function body) with values.
21:30:52 <wob_jonas> And I don't think we can ever get breaks through function bodies (like perl and ruby have) in rust, because that would break invariants.
21:32:20 <moony1339> wait, reimplementing the borrow checker
21:32:53 <moony1339> because maybe i'll try rust again. (There were a few situations i found where it said "no" when the code was perfectly fine)
21:33:18 <wob_jonas> moony1339: slightly, but part of that is available before the reimplementation
21:44:32 -!- AnotherTest has quit (Ping timeout: 256 seconds).
21:51:24 <ais523> oh right, this reminds me: apparently Java doesn't have a write barrier when a constructor finishes running
21:51:40 <ais523> meaning that if you construct an object and send it to another thread via shared memory fast enough, the other thread can see it nonconstructed
21:51:53 <ais523> this struck me as very weird for an allegedly memory-safe language
21:56:44 -!- ais523 has quit (Read error: Connection reset by peer).
21:57:43 <wob_jonas> um what? isn't it most forms of sending to another thread where you're supposed to have a synchronization? that is, there's a mutex or something involved when you pass the object to the other thread. or do you mean the constructor of a thread itself?
21:57:57 -!- ais523 has joined.
21:58:07 <wob_jonas> um what? isn't it most forms of sending to another thread where you're supposed to have a synchronization? that is, there's a mutex or something involved when you pass the object to the other thread. or do you mean the constructor of a thread itself?
21:58:25 <wob_jonas> ais523: and is that across java threads?
21:58:38 <ais523> wob_jonas: no, I mean something like construct an object and store it in a global variable, a different Java thread reads the variable
21:59:03 <ais523> and it can see it nonconstructed because there's no write barrier between the writes inside the constructor and the write outside the construcotr
21:59:05 <ais523> Java's threading rules are weird
21:59:52 <wob_jonas> um. but is java supposed to be memory safe across multiple threads in that way? because there are languages that are memory-safe in one thread but not memory safe if you access objects shared between threads without locking, namely at least golang and perl5.005 Thread
22:00:05 <wob_jonas> C++ could count too if you keep some rules about memory safety
22:00:29 <wob_jonas> (i.e. basically no pointers or iterators)
22:02:31 <wob_jonas> ais523: is that only for constructing an object? that is, could it also be memory unsafe if you just access the same object from two threads so one thread observes it in an inconsistent state, without constructing anything?
22:03:41 <ais523> wob_jonas: the last suggestion is also unsafe but it's less surprising
22:04:41 -!- Phantom_Hoover has joined.
22:04:41 -!- Phantom_Hoover has quit (Changing host).
22:04:41 -!- Phantom_Hoover has joined.
22:07:09 <wob_jonas> ais523: ok, I guess that makes a bit of sense
22:16:56 -!- ais523 has quit (Remote host closed the connection).
22:17:58 -!- MDude has joined.
22:18:08 -!- ais523 has joined.
22:19:57 -!- Storkman has quit (Ping timeout: 240 seconds).
22:44:34 -!- imode has quit (Ping timeout: 260 seconds).
22:48:27 <zzo38> I wanted to make up a Magic: the Gathering card having "protection from cards" (it is not protected from tokens, emblems, copied spells, etc). I thought, if it is a creature card then it could have something like how Hunted Horror forces opponent to create creature tokens, now they can block this one; but unlike Hunted Horror those tokens are not protected from this card
22:56:02 <ais523> hmm, that'd normally be written as "protection from nontokens" but that would work against spell copies too, which isn't what you want
22:56:18 <ais523> although, hmm, would it work against abilities? if so, would it work against ability copies?
22:56:51 <wob_jonas> ais523: that depends on where the ability comes from
22:56:54 <zzo38> Abilities have a source which may be a card
22:57:08 <wob_jonas> ais523: the protection rules says that for an activated ability or triggered ability, you check the properties of the object the ability was on
22:57:08 <ais523> and the copy has the same source?
22:57:12 <ais523> whereas a spell copy doesn't have one
22:57:15 <ais523> that's really unintuitive
22:57:48 <wob_jonas> like, with those resonator things?
22:57:50 <zzo38> Some things do copy abilities
22:58:04 <ais523> both activated and triggered abilities can be copied
22:58:44 <wob_jonas> `card-by-name Illusionist's Bracers
22:58:45 <HackEso> Illusionist's Bracers \ 2 \ Artifact -- Equipment \ Whenever an ability of equipped creature is activated, if it isn't a mana ability, copy that ability. You may choose new targets for the copy. \ Equip {3} \ GTC-R
22:58:51 <HackEso> Rings of Brighthearth \ 3 \ Artifact \ Whenever you activate an ability, if it isn't a mana ability, you may pay {2}. If you do, copy that ability. You may choose new targets for the copy. \ LRW-R, MPS_KLD-S
22:59:15 <zzo38> Yes, those are some things which copy abilities
23:00:24 <wob_jonas> there's more. Kurkesh, Onakke Ancient; Strionic Resonator. but there isn't much more than those.
23:00:45 <wob_jonas> they can get into somewhat strange rules situations occasionally.
23:01:10 -!- imode has joined.
23:07:42 -!- sleffy has quit (Ping timeout: 256 seconds).
23:08:04 <wob_jonas> M:tG now has thirteen card types. I remember back when I joined, before time spiral, there were only seven.
23:08:35 <shachaf> What are the new card types?
23:08:57 <zzo38> Only some of the types are traditional types, of those some are playable types, of those some are castable types.
23:09:13 <zzo38> 300.1. The card types are artifact, conspiracy, creature, enchantment, instant, land, phenomenon, plane, planeswalker, scheme, sorcery, tribal, and vanguard.
23:09:53 <wob_jonas> shachaf: Planeswalker became a permanent addition since Lorwyn, Tribal temporarily used in the Lorwyn block, Plane and Phenomenon for an older casual multiplayer game mode, Scheme for a newer multiplayer casual game mode.
23:11:01 <wob_jonas> oh, and conspiracy, an even newer game mode used in drafts only
23:12:15 <zzo38> Do you have any copy of the entire history of Magic: the Gathering rules? I want to generate diffblames of them
23:12:34 <wob_jonas> those casual card types are well separated from everything so they don't unexpectedly affect things, in particular, cards of those types don't enter the normal zones (library, hand, stack, bf, gy)
23:12:47 <wob_jonas> zzo38: no, but I have a copy of many older comp rules versions
23:13:04 <wob_jonas> not the entire history, some versions are skipped, and they don't go back forever of course
23:13:16 <shachaf> They don't publish all historical versions of the rules?
23:13:42 <wob_jonas> you can also look at yawgatog, which has some diffs, but last I've seen the old versions of the rules aren't downloadable
23:13:55 <zzo38> Yes I saw Yawgatog but they don't have all of them
23:14:01 <wob_jonas> shachaf: yeah, typical modern web, everything they publish quickly disappears and you can't find information about old sets
23:14:11 <wob_jonas> zzo38: do you want a copy of the ones I have?
23:14:53 <zzo38> wob_jonas: Yes, and then I will look to see who has others, to make a complete collection
23:15:23 <wob_jonas> zzo38: you can try to ask yawgatog directly, he might have it
23:15:32 <wob_jonas> zzo38: what was your email address?
23:16:18 <zzo38> wob_jonas: I have no "main" email address, only aliases; I can define a new alias if I need to do so.
23:17:02 <zzo38> Are they plain text files?
23:17:21 <zzo38> That is what I am looking for. (If they contain non-ASCII characters I can fix that myself to contain only ASCII)
23:17:54 <ais523> wob_jonas: I guess a better question would be "zzo38: what email address should I use to send you emails?"
23:18:10 <ais523> although I normally mentally translate the former question into the latter anyway
23:18:32 <ais523> I currently have five email mailboxes, which are collectively the targets of more than five email addresses
23:19:51 <wob_jonas> zzo38: some are plain text, one is in pdf format, plus I have some setFAQs which are in word doc or rtf, but those are easier to find elsewhere
23:20:44 <wob_jonas> I also have some older snapshots of oracle, although reformatted with a script I created, plus a few of yawgatog's older oracle dumps
23:20:46 <zzo38> I only need the plain text ones since those are the only ones which will be useful to me
23:21:02 <zzo38> Oracle dumps will also be helpful if they are also plain text
23:21:12 -!- augur_ has quit (Remote host closed the connection).
23:21:17 <wob_jonas> the oracle dumps are the large ones really
23:21:50 <wob_jonas> oh right, the one that's in pdf is unnecessary, I have the same version as plain text
23:21:55 <zzo38> I could do without Oracle dumps though; I would be fine to keep track of only functional changes of cards anyways, and don't need Un-cards
23:22:35 -!- imode has quit (Ping timeout: 240 seconds).
23:23:14 <wob_jonas> zzo38: I don't think it's enough to keep track of only functional changes if you want to know the full history of the rules. some changes may not have been functional back then, but are functional if you use different comp rules.
23:27:01 <zzo38> ASCII versions of the Oracle text for Magic: the Gathering cards in a SQLite database is also something that I would want to have possibly, and it can include a table for history too. If a server would provide such thing, a virtual table module could be made which would access them, and you can give a WHERE clause giving the date, which is automatically consumed, in order to retrieve updates.
23:27:53 <zzo38> (However, there are a few things missing from the virtual table mechanism that would be useful to have when doing network access, such as a xInterrupt method, and a way to consume LIMIT/OFFSET clauses.)
23:28:13 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:30:14 -!- augur has joined.
23:32:02 <wob_jonas> zzo38: I recommend trying to download scryfall's database. it's not sqlite, but I think they have the data properly structured, and they even documented their api and formats somewhat. I will try to download it later.
23:33:41 <zzo38> I will look, perhaps. If the API is documented enough possibly it can be interfaced with SQLite (by the virtual table mechanism, although as I said, some things that would be useful for modules that do network access are currently missing).
23:34:44 -!- augur has quit (Ping timeout: 260 seconds).
23:34:48 -!- ais523 has quit (Quit: quit).
23:35:05 <wob_jonas> zzo38: I don't see why you need a virtual table, since you want to cache the data locally anyway, so you'd just download the whole database every few month (they explicitly ask for that too to conserve load on their servers or bandwidth),
23:35:19 <wob_jonas> unless you want a virtual table to store the history efficiently, such as backed by an svn repository.
23:35:28 <wob_jonas> as in, store the history compactly.
23:36:13 <zzo38> wob_jonas: OK then, if you can just download it, then you can just do that. Still, if it isn't SQLite, then a virtual table module can be used to convert the format (an alternative way would be to use CSV or whatever, that would work too).
23:36:26 <zzo38> Thank you I received the file you sent to me.
23:37:14 <wob_jonas> zzo38: I don't know if you can download it all in one go. you will probably need multiple queries. but I don't think you'll need to do like 13000 queries for the 13000 cards, they offer batching.
23:37:48 <zzo38> Can you query by modification date though?
23:37:50 <wob_jonas> it might not be trivial to download, but it's still better than to dynamically look up each card, at least if you don't want the images
23:38:03 <wob_jonas> I don't know, I haven't really looked at the details yet
23:38:30 <wob_jonas> the promising part is the documentation, their interactive website ui, and that they fixed a doc bug I reported
23:40:15 -!- augur has joined.
23:41:59 -!- oerjan has joined.
23:44:20 <shachaf> Cale: Maybe you have an idea about this "universal property" for continuous funtions/derivatives/etc.
23:45:13 -!- augur has quit (Ping timeout: 268 seconds).
23:45:18 <zzo38> The thing is that if it is a virtual table, then you can write: insert into "a" select * from "b"; in order to automatically download everything. (You also have to define the schema, but you only have to do that once. You also need to use .load to load the implementation of the virtual table, of course.)
23:48:24 <wob_jonas> zzo38: yes, but why not just download everything anyway and put it in a real table? I mean, for a snapshot. I don't think you can download full history from them.
23:49:20 <wob_jonas> This is if you don't include the card images in the "everything". They have card images in multiple resolutions, and all the card images at large res would be a really large amount of data, you probably don't want that.
23:49:21 <zzo38> It is; "a" is a real table and "b" is a virtual table in the example that I gave. Of course depending on the mechanism, there may be better ways than virtual tables anyways, such as CSV, like I mentioned.
23:50:04 <wob_jonas> If you experiment with their api and find something useful, please let me know though. I'm interestd.
23:50:06 -!- augur has joined.
23:51:18 <wob_jonas> You might also be able to download data from the Oracle, but then you have to do fixups for all the bugs they have with transform cards and flip cards, which magiccards.info and scryfalls and yawgatog all individually fix.
23:51:46 <wob_jonas> Also, the new Oracle doesn't let you download large batches at once, unlike the old one, so you have to do a lot of queries.
23:52:01 <wob_jonas> I think it's better to get the data from yawgatog and scryfall.
23:52:26 <wob_jonas> For the cards that is. Getting the comp rules from wizards' webpage directly works fine.
23:53:00 <wob_jonas> I should check if wizards actually has some of the older comp rules downloadable from their server, even if it's not linked from http://magic.wizards.com/en/gameinfo/gameplay/formats/comprehensiverules
23:54:41 -!- augur has quit (Ping timeout: 248 seconds).
23:56:09 <wob_jonas> ``` ls share/mtg/Magic* # zzo38: there's actually one more in the HackEso home
23:56:10 <HackEso> share/mtg/MagicCompRules-20170925.txt \ share/mtg/MagicCompRules.txt \ share/mtg/MagicCompRules_20160408.txt
23:56:22 <wob_jonas> ``` ls share/mtg/allsets* # zzo38: there's actually one more in the HackEso home
23:56:23 <HackEso> share/mtg/allsets-2016-04-08.txt \ share/mtg/allsets-2016-07-23.zip \ share/mtg/allsets-2017-09-20.txt \ share/mtg/allsets.txt
23:56:30 <wob_jonas> but I assume you're more likely to have the newer versions anyway
23:57:11 <wob_jonas> this older one is still on Wizards' website: http://media.wizards.com/2017/downloads/MagicCompRules%2020170925.txt
23:57:24 <wob_jonas> older ones might be too, but they keep changing their websites so it's hard to guess the correct URL for them
23:58:12 <zzo38> Ah, thank you I will download that one
23:59:17 <zzo38> They put spaces in the filename which they shouldn't do, but it isn't a problem downloading it. The problem is when the filenames inside of a ZIP archive or whatever have spaces