00:02:50 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:03:09 -!- tromp has joined. 00:28:31 -!- Essadon has quit (Quit: Qutting). 00:34:54 -!- Lord_of_Life_ has joined. 00:37:57 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 00:37:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 00:42:38 -!- tromp has quit (Remote host closed the connection). 01:12:29 argh i hate web pages that steal clicks such that you accidentally follow a link when trying to do something else 01:14:03 a lot of porn sites do that 01:14:53 this time it was SE's chat archive, of all things 01:15:00 I generally disable scripts and alter CSS if necessary, so mostly is avoiding that; maybe there are other ways to make up the setting for events to control that 01:15:42 it is possible i actually accidentally clicked twice. 01:16:11 (One feature I would like is the ability to replace individual scripts on a webpage with my own versions.) 01:16:14 (i was selecting a link with the right button to copy it, and ended up following it.) 01:16:41 I was reading a site that used hot pink text on white background :( 01:16:47 (Including such things as replacing jQuery with my own version on any webpages that use that) 01:16:52 and there are other times i _do_ want the script there, when following quoting links 01:16:53 the content was actually quite good and important 01:17:02 I fixed it with element inspector 01:17:10 but I wonder the best way to link it to other people 01:17:27 kmc: i use that a lot to get rid of annoyingly large horizontal bars 01:17:34 I don't know of a way to construct a link with a custom style sheet 01:18:03 other than a javascript: url that you have to visit after 01:18:13 I don't know of any way either, but I do often customize CSS of other webpages (although this is usually not needed if the webpage has no CSS at all) 01:18:16 -!- tromp has joined. 01:18:19 perhaps I could host a page which shows it in an iframe 01:18:42 or just mirror the content and hope to not get in copyright trouble 01:18:56 or copy the entire text into my Facebook post when I share it 01:19:08 another solution to bad color choices is print to pdf 01:19:44 (I prefer to not set any colours in making webpages, instead using the user settings; unless it needs to have some colours to indicate different kind of stuff) 01:22:52 -!- tromp has quit (Ping timeout: 250 seconds). 01:31:00 hm ais523 has on some occasions on ppcg pointed out that (hindley-milner) typed SKI calculus isn't TC, and you need Y too. but i also seem to recall something about Y _not_ being enough if you don't have arithmetic... 01:31:14 (Y=fix) 01:32:03 vaguely recalling something about decidable halting problem... 01:35:07 also i cannot seem to google this. 01:48:50 * oerjan should get something to eat before he starts banning people for not answering. 03:06:07 -!- tromp has joined. 03:10:55 -!- tromp has quit (Ping timeout: 246 seconds). 03:20:01 never mind, the thing i was trying to use it for won't work anyway 03:22:02 -!- ATMunn has quit (Quit: lol rip). 04:12:04 -!- oerjan has quit (Quit: Nite). 04:27:17 -!- FreeFull has quit. 05:21:06 I partially implemented a NNTP server software, mainly, because I could not find another one that seemed suitable to my use 05:59:56 [[Ragaraja]] https://esolangs.org/w/index.php?diff=60653&oldid=60587 * Mauriceling * (+307) /* Description of Commands / Instructions */ 06:45:00 [[Ragaraja]] https://esolangs.org/w/index.php?diff=60654&oldid=60653 * Mauriceling * (+9077) Added implementation flag 07:44:56 -!- tromp has joined. 07:50:48 -!- S_Gautam has joined. 08:44:32 -!- AnotherTest has joined. 09:42:12 -!- tromp has quit (Remote host closed the connection). 10:12:07 -!- tromp has joined. 10:27:02 [[Ragaraja]] https://esolangs.org/w/index.php?diff=60655&oldid=60654 * Mauriceling * (+160) /* References to Biology */ 11:13:21 [[Powder]] https://esolangs.org/w/index.php?diff=60656&oldid=60638 * A * (+219) Add purpose 11:14:15 [[Powder]] https://esolangs.org/w/index.php?diff=60657&oldid=60656 * A * (+3) And sorry for making a small edit 11:26:56 [[Brainfuck implementations]] https://esolangs.org/w/index.php?diff=60658&oldid=59708 * Tromp * (+106) add interpreter written in lambda calculus 11:44:25 -!- ocharles has quit (Ping timeout: 258 seconds). 11:45:25 -!- ocharles has joined. 12:35:29 -!- Lord_of_Life_ has joined. 12:38:34 -!- Lord_of_Life has quit (Ping timeout: 250 seconds). 12:38:34 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:19:43 [[A]] N https://esolangs.org/w/index.php?oldid=60659 * Arcorann * (+1749) Created page with "'''A''' is a programming language that uses only the letter A in its source code. Its creation year is uncertain but no later than 2008. == Description == A program with les..." 13:23:04 [[A]] M https://esolangs.org/w/index.php?diff=60660&oldid=60659 * Arcorann * (+11) /* See also */ 13:26:48 [[A]] M https://esolangs.org/w/index.php?diff=60661&oldid=60660 * Arcorann * (+28) 13:40:25 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 15:01:13 -!- S_Gautam has joined. 15:01:53 -!- sebbu has quit (Ping timeout: 268 seconds). 15:04:05 -!- AnotherTest has quit (Ping timeout: 250 seconds). 15:08:06 -!- sebbu has joined. 15:33:29 -!- oerjan has joined. 15:37:24 i realized an intuitive argument for why (simply/hindley-milner) typed SKIY isn't TC without infinite "basis" types: without them, the number of functions of every type you can construct is finite, so you can solve the halting problem by explicitly evaluating their CPO denotations. 15:38:20 i still would like to remember the reference someone gave to this before, though. 15:38:58 s/every/each/ 15:40:59 interesting, it's not turing complete but it has programs that diverge? 15:42:04 yep, e.g. YI 15:42:17 (which is just f x=f x) 15:42:23 -!- arseniiv has joined. 15:42:58 :t let f x=f x in f 15:43:00 t1 -> t2 15:43:04 oerjan: R. Statman, "The λY calculus" shows that the word problem is decidable for that calculus. 15:43:42 argh 15:43:58 well that does seem like the same thing. 15:44:10 or well no 15:44:26 what i am looking for sounds wearker than that 15:44:43 huh, wait, I'm misrepresenting this 15:45:09 the halting problem is decidable; the word problem is decidable if Y is restricted to a single type (o -> o) -> o. 15:45:14 but not in general. 15:45:54 right 15:46:03 I'm not sure I get the finiteness angle though; even the simply typed lamda calculus has infinitely many inhabitants of (o -> o) -> o -> o. 15:46:26 int-e: it doesn't for a specific o of finite size 15:47:08 Taneb: yes it does: all church numerals have that type. 15:47:16 hmm 15:47:22 Oh I see. 15:47:32 oerjan's talking about models. 15:47:34 the church numerals collapse 15:47:45 (the "CPO" didn't fully register) 15:48:00 There's, like, three or four functions of type (() -> ()) -> () -> () 15:48:07 for a particular set, only finitely many of them are unequal. 15:48:12 *finite set 15:48:58 But I'm not sure whether this helps; the calculus operates on terms, and the main problem is distinguishing terms representing _|_ from everything else. 15:49:18 (id, const id, const (const _|_)) 15:49:49 int-e: for solving the halting problem, though, all you need is to evaluate with all the free variables = () 15:49:55 *type variables 15:50:02 or Bool if you like that better 15:50:30 Hmm I need to think about this... it sounds too good to be true. 15:53:08 oerjan: is your "basis type" terminology standard? 15:56:32 (Of course my reference has the annoying problem that SKI and lambda calculus are not perfectly aligned.) 16:02:26 Taneb: not that i know of 16:03:24 int-e: denotationally they are, i should think 16:04:06 also i got to thinking about because i had doubts about a proof on PPCG that haskell is TC with just ()=; 16:04:10 *about this 16:04:41 i think that fails for this reason 16:05:20 *just the characters 16:08:20 How does that work at all? 16:10:02 you use (======) as identifiers 16:10:10 Oh, I see 16:11:49 that's cute 16:16:34 -!- b_jonas has joined. 16:23:47 (======)? nice! 16:24:10 good day everyone 16:24:33 hello 16:24:39 oerjan: could polymorphic recursion help out the proof in this case? And the fact that some terms have more than one type 16:31:35 on an unrelated subject: I have an idea to make something akin to Metamath but with more structured approach: there would still be metavariables of user-declared sorts, but formulas would be no simple strings, but terms of these sorts, and there would be language support for bound variables. Term constructors would be user-declared, and to declare binders, the language basically contains lambda-calculus, but terms of arbitrary sorts aren’t allowed, 16:31:35 so I hope their unification will be decidable 16:33:03 Taneb: you need a type signature for polymorphic recursion, although i'm not sure if that's enough for TC-ness 16:34:03 Taneb: i don't think more than one type helps, because you can always duplicated definition to avoid using that. 16:34:36 oerjan: but eg. (===)(====)=(====) has an infinite number of types 16:35:12 yes, but you'll only ever use a finite number when running a program 16:35:38 (ghc defaults types to Any as i recall) 16:35:57 (without polymorphic recursion) 16:37:16 *unrestricted types 16:37:24 Right 16:37:34 hmm 16:38:31 It should be possible to make it TC by adding a few specific primitives, such as three list primitives and while 16:38:59 yes, probably even arithmetic and while is enough, as you say 16:39:41 although while has a generic type 16:40:28 b_jonas: oh hi, that reminds me, you remember the PPCG challenge for making several quines with no characters in common, and how you suggested 3 might be possible in perl? Jo King made such an answer in perl 6 https://codegolf.stackexchange.com/a/181246/ 16:40:39 oerjan: whoa 16:40:42 SIX? 16:40:49 no, "perl 6" 16:40:52 oh 16:40:54 that's better 16:40:54 sheesh 16:41:15 good 16:41:23 b_jonas: i believe ():;1- is TC 16:41:32 (for the haskell) 16:41:50 oerjan: how does that work? how do you make functions? 16:41:57 oops 16:42:06 typo, ()=;1- 16:42:11 oh ok 16:42:23 I don't see how that works, but that's at least more believable 16:42:48 oh right 16:42:50 > 1-(-1) 16:42:52 2 16:42:55 right 16:42:57 you can just make recursive function definitions 16:43:12 named functions, refering to themselves by name 16:43:17 like you said above with (===) 16:43:23 Best thing is, you can now comment your code 16:43:28 i've been trying to think of a version with 5 chars but i cannot make it work 16:43:31 only now you can use - too, so you get a slightly more conveient character set 16:43:31 Taneb: yeay 16:44:41 oerjan: could you use ()=;: and use lists terminated by some special value consed with undef? 16:44:46 instead of arithmetic that is 16:45:07 like, lists of true and false, with the tail being undef 16:46:20 b_jonas: yes, ()=;:' should work 16:46:30 oerjan: apostrophe? 16:46:35 for char literals 16:46:45 why would you need char literals? 16:47:06 I mean, just use two different well-typed functions to represent true and false 16:47:13 shortest way to get something to put in the lists that you can distinguish two values of 16:47:21 mytrue x y = x; myfalse x y = y; 16:47:23 hm... 16:47:30 then just call them to distinguish them 16:47:33 b_jonas: oh maybe that does work 16:47:43 haskell rules again, so those will be polymorphic functions 16:48:08 but that may give trouble with the original obstruction... 16:48:14 -!- LKoen has joined. 16:48:28 because they won't be polymorphic in a particular list 16:49:10 but maybe it's close enough... 16:49:17 oerjan: hmm 16:49:34 yeah ... 16:49:51 -!- ais523 has joined. 16:49:58 hi ais523 16:51:00 hi 16:51:19 ais523: I think you may be able to help with this discussion 16:52:00 oerjan was thinking of how he could choose a small set of characters so that Haskell with the source code containing just those characters is a turing-complete language 16:52:26 b_jonas: see the top answer on the PPCG question about Turing-complete subsets of languages' character sets 16:52:27 he threw in the idea that the four characters ()=; lets you define functions with names like (=====) and arguments with such names too 16:52:38 I believe (=); is the character set chosen, yes 16:52:39 ais523: yes, I think that's what spawned this 16:52:46 but oerjan says that it's not clear if that works 16:52:49 and I agree with him 16:52:51 however, I'm starting to have doubts about whether SKI+fix is enough 16:53:05 in a strongly typed language 16:53:07 ais523: oerjan is convinced that it isn't 16:53:34 ofc, we have more than SKI+fix here; we have the entirety of typed lambda calculus + recursion 16:55:43 ais523: but that's just really syntactic sugar over SKIY 16:56:13 oerjan: I guess you're right and ()=;:' or ()=;:1 should be enough 16:57:15 typed church lists are a bit complicated aren't they 16:57:20 a weirder idea i had was x"|>=; 16:57:21 the type of the list encodes the types of its elements? 16:57:36 originally without the |, so it was my best idea for getting 5 16:57:38 I probably can't make a homogeneously-typed list without some kind of injection type :/ 16:57:55 oerjan: how does that work? 16:58:13 > "xxx">"xxxx" 16:58:15 False 16:58:40 well i'm not entirely sure it works, but you have monadic operations >>= and >> and comparisons == > >= 16:58:55 I tried to write fib with (=); for a while and gave up, but it's probably doable 16:58:59 oerjan: but how do you define functions or call functions or something? you have no space or parens 16:59:02 got into some occurs check hell 16:59:24 b_jonas: x""xx=xxx>>=xxxx 16:59:30 things like that 16:59:32 oh 16:59:36 adding type signatures to figure it out is tricky because a church numeral should be type Church = forall a. (a -> a) -> a -> a, but that doesn't fly in vanilla Haskell 16:59:37 dummy string argument 16:59:39 interesting 16:59:54 i haven't thought that one all through though 16:59:59 how about ()\-> 17:00:12 write lambda calculus, with names like (>>>>) 17:00:14 b_jonas: no recursion 17:00:20 because types 17:00:21 because of the types again? 17:00:22 hmm 17:00:39 that was the original version of another PPCG answer 17:02:09 ais523: on a previous occasion someone, i think here, said that fix without something like integers is not enough in a typed LC (simply or hindley/milner, i'm not sure) although i've forgot the reference. int-e gave another above. 17:02:32 I wonder if we could use square brackets instead of parenthesis 17:02:51 define functions that take each argument in a single-element list 17:03:01 oerjan: I'm wondering if you can do it using the (a->a)->(a->a) type for Church numerals 17:03:11 b_jonas: that doesn't let you create identifiers 17:03:16 then we get empty lists and one element lists "for free" 17:03:26 ais523: yeah, that is a problem 17:03:44 yeah, that would need 5 chars 17:03:49 or 6 or what 17:03:50 hmm 17:03:54 []=;x 17:04:19 woyld that work? 17:04:21 maybe you could use : rather than []? 17:04:35 although that might run into type issues 17:04:48 it'd definitely be enough in an untyped language, given that you have structure, destructure, recursion 17:05:04 ais523: you need an argument separator then 17:05:11 unless you mean ()=;: 17:05:35 I think ()=;:1 works, oerjan's suggestion was ()=;:' which should work too 17:06:15 What about x=;:' 17:07:15 []=;x <-- i considered that one and the problem was no way to construct larger values 17:08:02 Taneb: you can't pattern match with : then 17:08:28 or apply functions 17:08:33 oerjan: what do you mean by "larger values"? 17:08:59 you can construct [[[[[[[]]]]]]] 17:09:14 yes, but that has no fixed type 17:09:18 oh 17:09:21 right 17:09:25 so you can't have numbers 17:09:30 ok, then that won't work 17:10:46 it's really quite awkward how 5 just seems to slip away for several different reasons 17:11:21 > let x'x'xx=xx; xxx='x' in x'x'xxx 17:11:23 error: 17:11:23 • Variable not in scope: xx 17:11:23 • Perhaps you meant one of these: 17:11:29 are there language options you can give to infer the type of Church numerals correctly? 17:11:44 Huh 17:11:45 Taneb: alas ' is an identifier char too 17:11:46 what's PPCG? 17:11:50 :t \f x->f (f (f (f x))) 17:11:51 (t -> t) -> t -> t 17:11:56 kmc: codegolf.stackexchange.com 17:12:07 Taneb: isn'tr x'x'xx a single variable? 17:12:08 wheres pp from 17:12:12 oerjan: ...so why not x=;:" 17:12:13 possibly the world's largest users of esolangs? 17:12:22 kmc: ppcg = programming puzzles and code golf 17:12:22 :i x'x'xx 17:12:33 @type x'x'xx 17:12:33 although they basically gave up on the programming puzzles quite early on, the name didn't change 17:12:34 error: Variable not in scope: x'x'xx 17:12:49 (oddly, puzzling.stackexchange.com are typically quite willing to do programming puzzles) 17:13:42 ais523: inferring the type of Church numerals would be ImpredicativeTypes, a ghc extension which probably never quite worked for that and has languished so long it's now essentially unsupported and broken for nearly everything. 17:14:00 ais523: and puzzling.stackexchange.com has very few questions about creating puzzles, it's almost all questions that are puzzle 17:14:19 b_jonas: questions about creating and solving puzzles are ontopic but rarely asked 17:14:26 ais523: yep 17:14:44 > let add a b f x = a f (b f x); zero f x = x; one f x = f x; fibs n a b = n b (add a b); fibz a b = a; fib n = n fibs fibz zero one in let church n f x = iterate f x !! n; int n = n succ 0 in map (int . fib . church) [0..10] 17:14:46 [0,1,1,2,3,5,8,13,21,34,55] 17:14:52 oerjan: ...so why not x=;:" <-- no pattern matching of : in function arguments 17:15:01 as I discovered recently, even Stack Overflow has a similar issue; it was intended to be a collaborative build-an-FAQ site for programming but turned into a help-me-debug-this site 17:15:32 ais523: doesn't it still have lots of FAQ though? 17:15:42 let me check 17:15:45 b_jonas: nah, they just get closed for duplicaiton ;P 17:15:51 oerjan: aargh 17:15:54 I don't visit SO much, it's just too large for me 17:15:54 b_jonas: yes, there are still plenty of those around, mostly from earlier in the site's history 17:16:47 they added a new ask-a-question wizard recently which insists that you post code samples 17:16:56 it's optional, but it excludes basically any FAQ from being asked when used 17:17:28 ais523: yeah, you seem to be right 17:18:21 such a nice type: fib::(((((a->a)->a->a)->((a->a)->a->a)->(a->a)->a->a)->((a->a)->a->a)->((a->a)->a->a)->(a->a)->a->a)->(((a->a)->a->a)->((a->a)->a->a)->(a->a)->a->a)->((a->a)->a->a)->((a->a)->a->a)->(a->a)->a->a)->(a->a)->a->a 17:20:04 wow 17:20:16 ah so fib exists. 17:20:20 int-e: does that example show that SKIY is in fact TC in a typed lazy language? 17:20:29 i suppose primitive recursion is probably possible, then. 17:21:26 ais523: if a is a finite type, you can only distinguish finitely many fib types. 17:21:29 ais523: no. fib is primitive recursive. note that Y is not even used. 17:21:29 int-e: um, but can you get rid of the iterate and (!!) things? 17:21:37 b_jonas: they're just for testing 17:21:42 er, values 17:22:19 oh, so you're saying that even without them you can at least get primitive recursion, even deeper than the single exponential that fib does? 17:22:29 b_jonas: The first let defines a fibonacci function (of sorts); The second let defines conversions between Church numerals and Int. 17:23:08 b_jonas: yes, if you're willing to use sufficiently big types for the church numerals. 17:23:23 hmm 17:23:52 aren’t Church numerals basically unfolders? (so, primitive recursion) 17:23:53 OK, so the technique int-e used above is limited to primitive recursion, because its only control flow structure is the while loop 17:24:03 err, the for loop 17:24:21 (or I remember it wrong, and some other numerals are unfolders) 17:24:40 (maybe Church—Scott if it means a different thing) 17:25:09 There is a result that Church numerals at type (o -> o) -> o -> o gives you something called extended polynomials only (in simply typed lambda calculus; no Y). 17:25:36 -!- AnotherTest has joined. 17:25:39 also, EU copyright thing thing, just have to mention it on the channel, would be strange if nobody did 17:26:27 b_jonas: the article 11 / article 13 thing? 17:26:40 ais523: yeah, or the whole vote and stuff 17:26:52 the article 13 thing that got renumbered 17:26:56 I'm not 100% convinced those are bad ideas; at least, most of the examples that people have brought up as to why they're bad, I disagree with, however they may be bad for other reasons 17:27:28 I'd prefer a comprehensive reform to copyright law rather than just enforcing it 17:27:32 b_jonas: the renumbering was a normal part of the process. 17:27:46 int-e: sure 17:28:27 int-e: the renumbering is so they can publish the text of the law without the content filters kicking them off because it mentions "article 13" 17:28:40 what content filters? 17:29:17 ais523: the ones that people say article 13 requires in the sense that it makes content hosters more responsible for the content of third-party materials that they host 17:29:49 which hosters can only enforce by automatic real-time content filters to accept or reject third-party content 17:30:24 ais523: I don't like article 13 mainly because I expect that youtubers will regularly run into their own videos being blocked by an automatic filter, without any reasonable course of remedy... those videos cost time and effort, and often money, to produce, so it will discourage that particular way of producing content. It may not actually happen but I believe that's a true risk. 17:30:40 int-e: this is already the case on YouTube nowadays 17:30:49 it has an automatic filter, and it does cause problems 17:31:01 ais523: I don't think it's relevant for youtube, because youtube is the site that already wants automated content filters, and would do it anyway regardless of that law 17:31:17 Yes and that will become worse. So this is another step in the wrong direction. 17:31:18 it's more relevant for other sites 17:32:01 And yeah, other sites will be forced to implement filters at the "industry standard" which will be defined by the likes of Google and Facebook. Yay. 17:32:21 (((( 17:32:29 actually, one of the main problems with YouTube's filters at the moment is people falsely claiming to have copyright on things and fooling the input to the filter 17:32:42 I hope it will turn someday 17:32:42 so that the people making the false claims end up getting all the ad revenue 17:33:06 if a reform made that sort of claim illegal, then it would improve the current situation for youtube-like sites 17:33:28 -!- oerjan has quit (Quit: Later). 17:34:11 (btw someone interested in that Metamath-like thing?) 17:34:13 ais523: ok, but what happens to sites that aren't as large as youtube, but also aren't too tiny, and have third-party content? 17:34:32 -!- Essadon has joined. 17:34:59 ais523: also, isn't that sort of claim already illegal? 17:35:17 The main beneficiants of the directive will be publishers and right holder's organization; to some extend Google and Facebook... creators will largely lose out slightly (more if the optional Article 16 (previously 12) is implemented), and creators who currently rely on youtube and other content sharing platforms to distribute their material. 17:35:19 b_jonas: no, it would be if it were a DMCA claim, but YouTube's filters allow non-DMCA claim 17:35:27 even then, DMCA claims have huge loopholes in them 17:35:58 ais523: hmm 17:36:26 We'll see in a couple of years how bad it'll actually be. 17:37:51 from my point of view, there surely has to be a better situation then a) ridiculously strict copyright rules existing and b) those same rules rarely being enforced 17:38:01 because that leaves law-abiding people at a major disadvantage 17:38:03 What really irks me is that instead of a healthy debate we got stuck on the level of name-calling... both sides accusing the other of having no clue (which, to some extent, is true, because this is a clash of different cultures.) 17:38:26 the EU's sugested fix probably isn't a very good one, but the situation needs fixing, so I'm at least happy that it's being discussed 17:38:29 as for finding a small set of characters that induce a TC subset of a language, that's somewhat similar to finding the smallest set of controller buttons with which you can complete a video game, as in, super mario speedwalks and the like 17:38:34 what's the right word actually... "beneficiaries"? 17:39:05 ais523: I agree... and in fact it was quite funny how the #Yes2Copyright hashtag was adopted by both sides of this campaign. 17:39:21 int-e: it seems the latter, yes 17:39:31 (beneficiaries) 17:39:41 ais523: that's not really a good enough argument for any particular new law though 17:40:48 laws seem to look as a sort of code, usually of very bad maintainability, suspicious correctness and the like 17:41:00 b_jonas: well, any potential change in the law, other than outright removing copyright (which seems very unlikely to help), will have to come with better enforcement 17:41:14 so this may be a first step that leads to wider reform 17:42:24 so if “better code is less code”, yeah, one shouldn’t make new laws on every occasion, even if there’s some demand for a code solving/enabling a particular thing (because rarely there are no demand) 17:44:35 ais523: I still don't think that really addresses the debate. sure something has to be done, but nobody really said that nothing should be done, they just had complaints about the specific law 17:45:58 b_jonas: most of the attacks I've seen have been against the basic idea of the articles in question; it is entirely possible that the idea is good but the details are bad 17:46:36 ais523: But look at how people dealt with the advent of photocopiers, floppies, recordable CDs, big USB devices... AFAIK there's no enforcement there. In Germany, instead a part of the sales price goes to right holders' organizations. It's not ideal (in particular those organizations hold quite a lot of power as a result) but it's *very* unintrusive. Content sharing platforms are a different... 17:46:42 ...beast, of course, but some trade-off between enforcement and a collective pool of money (with various options for sources... consumer end (ISPs) or content sharing provider end...) should be possible. 17:47:24 int-e: sending part of a sales price to right holders' organizations should imply that copying data owned by those right holders is not copyright infringement 17:47:42 if so, then it makes sense 17:48:03 Also I'd like to see data. How much of the content on Youtube is there illegally? I would like to know that from both sides... uploads and views. 17:48:51 int-e: that would be hard to tell, because the content that is known to be illegal is taken down so wouldn't be in the statistics, and the ones that aren't known to be illegal are hard to count 17:50:22 And I can also imagine tweaks to Article 17 (13) that would make it much nicer to youtubers: rather than blocking an upload directly, what if the platform has the option to tell the user why it would be blocked, and let them override that decision, in which case liability reverts back to the user? This probably requires that the user be properly identified, but anyone who monetizes their channel... 17:50:25 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 17:50:28 ...probably has shared their address with the provider anyway. 17:51:55 (The directive has provisions for disputing infringement claims; it even mandates that a human be involved in that process. I don't see how platforms can implement this in an affordable way so I expect those processes to be very slow and convoluted.) 17:52:38 (So the point of my idea above is that it can easily be fully automated.) 17:59:25 int-e: "what proportion of YouTube" is a hard question, because there are probably huge numbers of videos that are hardly ever viewed 17:59:33 people using it as a backup for family photos, or whatever 17:59:59 ais523: yes, that's why I want the statistics for views as well 18:00:05 maybe asking about the proportion of YouTube /views/ is more interesting, in which case I expect the vast majority to be of copyrighted content, but often with the implicit permission of the content's owner 18:00:29 (those are probably the more relevant ones anyway, but both uploads and views are interesting) 18:00:37 a lot of record labels post their music officially 18:00:45 or even explicit-but-global permission (e.g. many computer games give permission to upload videos of the game on YouTube) 18:00:49 they get royalties 18:01:07 yes, views are the more relevant, because the uploads just scale with how quickly youtube recognizes and removes the illegal content, at which point the uploader reuploads a modified version of it 18:01:16 kmc: yes. and it's also good advertisement, especially for lesser known artists. 18:01:30 yah 18:01:38 I've found quite a bit of music there that I listen to all the time now 18:02:25 on a tangential note, this is some amazing guitar work https://www.youtube.com/watch?v=ISS2SrHxKI4 18:02:39 I wouldn't have thought it possible to do an acoustic guitar cover of a drum&bass song, but not only is it possible it's amazing 18:03:19 * kmc listens again 18:20:03 [[Category theory]] https://esolangs.org/w/index.php?diff=60662&oldid=46854 * Koyodyne * (+25) Fixed some information about identity morphisms 18:20:41 [[Category theory]] M https://esolangs.org/w/index.php?diff=60663&oldid=60662 * Koyodyne * (+0) replaced a typo 18:22:06 [[Category theory]] M https://esolangs.org/w/index.php?diff=60664&oldid=60663 * Koyodyne * (+2) replaced auspicious "set" with "class" 18:23:43 -!- ZM has joined. 18:24:39 -!- ZM has quit (Client Quit). 19:09:23 -!- Sgeo__ has joined. 19:12:14 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 20:10:20 [[Category theory]] https://esolangs.org/w/index.php?diff=60665&oldid=60664 * Koyodyne * (+534) Added a section on higher categories 20:12:04 [[Category theory]] https://esolangs.org/w/index.php?diff=60666&oldid=60665 * Koyodyne * (+20) Added a section on higher categories 20:28:33 [[Category theory]] M https://esolangs.org/w/index.php?diff=60667&oldid=60666 * Salpynx * (+23) Add category so this is linked from somewhere 20:31:41 -!- FreeFull has joined. 20:32:52 -!- Phantom_Hoover has joined. 20:33:43 oh this is actually very nice. If I’d known that article needs some attention… 20:34:23 everyone be prepared, this weekend we'll have the timezone offset change in most of Europe, then on Monday we'll have SIGBOVIK 20:34:37 (should I add about semicategories, the ones without identity morphisms?) 20:36:14 nah, a link to nLab should be really sufficient 20:46:24 arseniiv: categories are general enough as it is, why would you need to make them more general? :-D 20:46:53 anyway, I'm not convinced category theory is an esolang; it's fairly eso but not very lang 20:49:25 yeah, it’s a bit hard to use them for me because of that. Though there are so-called internal languages, but e. g. for arbitrary category there isn’t really anything interesting to have in that language, and I even don’t know if it’s a thing 20:54:05 ais523: ^ and also about the first I’d say “because of Haskell”, but there seemed to be a more specific answer I’ve forgot 20:54:30 and Haskell is in no relation to that AFAIR 20:54:46 well, Haskell is fairly close to category theory as a programming language 20:54:48 but it’s a universal argument, I should admit 20:54:53 it's not at all the same thing, but the same ideas get used in both 20:54:53 yeah 20:55:00 agree 20:56:48 if only I’d get more of Edward Kmett’s packages... hm no forget it 21:51:24 isn't the point of category that the same ideas get used in /everything/ 21:59:49 yes, it lets you translate theorems from one context to another 22:00:47 my PhD used a categorical result to prove that the compiler I'd defined from the syntax of a language to its semantics was consistent, in the sense that sometimes it would match the same program in multiple different ways, but it'd produce the same result in each case 22:01:00 (this is known as a "coherence" result, in category theory) 22:01:17 -!- fractal has quit (Ping timeout: 245 seconds). 22:11:25 !card-by-name Soulcatchers' Aerie 22:11:39 `card-by-name Soulcatchers' Aerie 22:11:40 Soulcatchers' Aerie \ 1W \ Enchantment \ Whenever a Bird is put into your graveyard from the battlefield, put a feather counter on Soulcatchers' Aerie. \ Bird creatures get +1/+1 for each feather counter on Soulcatchers' Aerie. \ JUD-U 22:16:30 ais523: ^ could that work instead of Noxious Ghoul in an M:tG implementation of Waterfall Model? 22:16:45 -!- fractal has joined. 22:17:10 b_jonas: you need a -/- effect somewhere; Noxious Ghoul is only used as an easily triggerable -/- effect in the The Waterfall Model impl 22:17:15 `card-by-name Noxious Ghoul 22:17:16 Noxious Ghoul \ 3BB \ Creature -- Zombie \ 3/3 \ Whenever Noxious Ghoul or another Zombie enters the battlefield, all non-Zombie creatures get -1/-1 until end of turn. \ LGN-U, HOP-U 22:17:28 I guess you could use a damage effect instead 22:17:48 oh, what's that effect which pings everything when a creature ETBs called? 22:17:52 `card-by-name pandemonium 22:17:52 Pandemonium \ 3R \ Enchantment \ Whenever a creature enters the battlefield, that creature's controller may have it deal damage equal to its power to any target of their choice. \ EX-R, TSP-S 22:18:05 oh, would need to be global, so not that 22:19:32 Forerunner of the Empire almost works but it's a "may" ability 22:19:39 `card-by-name forerunner of the empire 22:19:39 Forerunner of the Empire \ 3R \ Creature -- Human Soldier \ 1/3 \ When Forerunner of the Empire enters the battlefield, you may search your library for a Dinosaur card, reveal it, then shuffle your library and put that card on top of it. \ Whenever a Dinosaur enters the battlefield under your control, you may have Forerunner of the Empire deal 1 damage to each creature. \ RIX-U 22:19:51 (you can use a protection-from-color effect to make it selective) 22:19:57 is there a reason you wanted to replace noxious ghoul, anyway? 22:21:03 ais523: no reason really. I was looking for cards for a different construction, but found this one and got curious 22:21:45 soulcatcher's aerie seems like the sort of building block that might be helpful for a TCness construction, but it doesn't fit into the TWM construction directly 22:22:35 you could almost use it to replace Hungry Lynx but the two creature types are the same 22:23:11 (also, because it affects newly created tokens proactively, it'd do weird things to the language semantics, it might still be TC but it wouldn't be TWM) 22:23:38 I was wondering on a construction where you have just one creature for each Waterfall counter; you somehow decrease the toughness of each creature by a constant each turn, I don't know how to do that; the opponent has a Fleet-Footed Monk with Lure to deal damage to the creature with 1 toughness each turn; 22:23:52 and somehow you trigger off blocking or damage, but I also don't see how to do that 22:24:41 the advantage would be that since your creatures never die or get born, they can be complicated enchanted creatures 22:24:56 they can have rules text on them, or on enchantments on them 22:25:13 which allows a larger selection of cards, but I don't find the right card needed here 22:25:24 the existing construction has one creature per counter, though 22:25:45 it uses a lot of other creatures for triggered abilities but the fact that they're creatures is irrelevant, it'd work almost as well with them as enchantments 22:25:56 (not quite as well because the existing setup has no way to wish for enchantments, so they'd have to be maindecked) 22:25:59 ais523: yes, but don't those creatures die and get recreated as tokens? 22:26:07 I mean, what I'd like here is that those creatures never die 22:26:11 oh, I see 22:26:13 instead they linger at toughness 1 or 3 22:26:18 you'd want to use tokens anyway because of deck size limits 22:26:28 above that, and get triggered when they are lowered to toughness 1 or toughness 3 22:26:56 triggering on a specific toughness is hard 22:26:58 ais523: well, they could be token copies, but you copy and enchant them once at the start 22:27:16 ais523: that's what the Fleet-Footed Monk is for, and there's another card that works for toughness 3 22:27:42 `card-by-name fleet-footed monk 22:27:43 Fleet-Footed Monk \ 1W \ Creature -- Human Monk \ 1/1 \ Fleet-Footed Monk can't be blocked by creatures with power 2 or greater. \ P1-C 22:27:51 that checks power 22:27:57 `card-by-name Goldmeadow Dodger 22:27:58 Goldmeadow Dodger \ W \ Creature -- Kithkin Rogue \ 1/1 \ Goldmeadow Dodger can't be blocked by creatures with power 4 or greater. \ LRW-C 22:28:19 there are lots of creatures that trigger on dealing combat damage 22:28:36 ais523: yes, but we're using -1/-1 or +1/+1 effects anyway, either counters or something crazy like that Soulcatcher's Aerie, because it has to survive turn changes 22:28:44 maybe we could trigger on that, rather than on /not/ dealing combat damage 22:29:01 ais523: yes, that could work. is there an enchantment that gives a creature protection versus a creature type? 22:29:17 we have to give the opponent's Goldmeadow Dodger protection against everything but the one creature type 22:29:23 and have one Dodger per counter 22:29:57 would be easier with colors, but there's only 5 and that's not known to be enough with Waterfall 22:30:43 all the tunable protection cards I can see are color-based, not creature-type-based; runed halo is an exception, triggering on name, but it enchants players, not creatures 22:30:52 there's also true-name nemesis but it's hard to count that 22:31:41 oh, there may be specific creature type protections, rather than tunable, that we can hack 22:31:47 they don't need tunable, they can be Evolvable 22:32:03 oh I'm stupid [3~ 22:32:08 the Coward thing 22:32:22 `card-by-name Boldwyr Imitator 22:32:23 No output. 22:32:32 `card-by-name Boldwyr I 22:32:33 Boldwyr Intimidator \ 5RR \ Creature -- Giant Warrior \ 5/5 \ Cowards can't block Warriors. \ {R}: Target creature becomes a Coward until end of turn. \ {2}{R}: Target creature becomes a Warrior until end of turn. \ FUT-U, MOR-U, CNS-U, DDS-U 22:32:48 that, and a large amount of Evolution 22:32:51 I was going to say, boldwyr intimidator has a different effect, but does it work for what you're looking for? 22:33:04 yeah, that should work 22:33:08 but there's still at least two problems 22:33:34 I kind-of like the way my existing setup works at split-second speed; something that involves combat can't 22:33:39 one is what exactly to trigger from it attacking 22:33:49 ais523: yes, that certainly makes it easier 22:34:20 oh, I know the other one. the other problem is how to damage the creatures every turn, but that's easy. there's a blue aura for it 22:34:33 `card-by-name Unstable Mutation 22:34:34 Unstable Mutation \ U \ Enchantment -- Aura \ Enchant creature \ Enchanted creature gets +3/+3. \ At the beginning of the upkeep of enchanted creature's controller, put a -1/-1 counter on that creature. \ AN-C, RV-C, 4E-C, 5E-C, TSP-S 22:34:46 ok, so now what to trigger from the Dodgers dealing damage? 22:34:54 `card-by-name crackling perimeter 22:34:55 Crackling Perimeter \ 1R \ Enchantment \ Tap an untapped Gate you control: Crackling Perimeter deals 1 damage to each opponent. \ GTC-U 22:35:00 or combat damage 22:35:03 I couldn't remember the trigger on that one 22:35:06 and I thought it hit creatures 22:35:16 I think there's a card that hits every creature once-per-turn, but I guess copied auras could also work? 22:36:19 ais523: I expect most of those would deal damage, not -1/-1, although you could perhaps animate something and give it infest 22:36:22 infect 22:36:24 in... 22:36:26 wait, which one is it? 22:36:36 infect 22:36:48 wither also works 22:36:50 Infest is an instant 22:37:18 but yes, I'm used to toughness being the only relevant stat, but your construction triggers on power 22:37:39 they will probably go hand in hand 22:38:33 I was also wondering if we can somehow make our creatures actually die from dropped toughness, but respawn 22:39:08 but it doesn't seem easy to make that scale 22:39:18 that's basically what the existing construction does 22:40:09 yes, but it recreates a token 22:40:19 whereas I wanted to reanimate the same creature 22:40:22 but that doesn't work 22:40:26 it's a bad idea 22:40:39 it can't work with many creatures, it needs actual cards, and possibly even then it won't work 22:41:38 objects lose their identity when changing zones, that's one of the most fundamental rules of magic 22:41:49 there's one creature which keeps counters when changing zones, I think, but it's definitely a special case 22:41:56 `card-by-name skullbriar 22:41:57 Skullbriar, the Walking Grave \ BG \ Legendary Creature -- Zombie Elemental \ 1/1 \ Haste \ Whenever Skullbriar, the Walking Grave deals combat damage to a player, put a +1/+1 counter on it. \ Counters remain on Skullbriar as it moves to any zone other than a player's hand or library. \ CMD-R 22:42:12 oh wow, I didn't expect to successfully remember which one it was first try 22:42:36 -!- LKoen_ has joined. 22:43:05 ais523: yes, but there are ways to make a card respawn 22:43:39 they don't have to keep their identity if they're printed with the right creature type and the opponent has all the Evolved stuff 22:43:55 then you still need as many creature cards in your deck as there are Waterfall counters, which isn't too good 22:44:03 yeah, doesn't work well 22:44:26 if it's not keeping its identity, why do you care about whether it's a token respawning or a token being created? is the difference even observable? 22:44:39 no it's not 22:44:47 or at least, I shouldn't care about it 22:44:56 well 22:45:03 the problem with tokens is that you can't bring them back from the gy 22:45:06 which is why I need cards 22:45:10 if I respawn from the gy 22:45:40 -!- LKoen has quit (Ping timeout: 250 seconds). 22:45:52 but yes, this doesn't work well 22:46:55 another thing I was wondering about is 22:46:59 `card-by-name Ensnaring Bridge 22:47:00 Ensnaring Bridge \ 3 \ Artifact \ Creatures with power greater than the number of cards in your hand can't attack. \ ST-R, 7E-R, 8ED-R, MPS_KLD-S, A25-M 22:47:06 `card-by-name gift of immortality 22:47:07 Gift of Immortality \ 2W \ Enchantment -- Aura \ Enchant creature \ When enchanted creature dies, return that card to the battlefield under its owner's control. Return Gift of Immortality to the battlefield attached to that creature at the beginning of the next end step. \ THS-R 22:47:10 plus a luring creature by the opponent 22:47:22 so that it's your creature that attacks, but only if it has low toughness 22:47:24 I don't think Gift of Immortality works on tokens? but it probably works for anything else you might be doing with this 22:47:26 the opponent has the Bridge 22:47:51 ais523: I don't think that works. once the token goes to the gy, it can't move to a new zone from there 22:48:39 yes, doesn't work on tokens, but would work on creature cards 22:48:44 then we'd need something like Edgar Markov, but that has an attack trigger that puts a +1/+1 counter on each creature of some _other_ type than itself 22:49:01 apparently the playtest version just said "enchanted creature can't die", but it got altered for rules and balance reasons 22:50:30 `card-by-name Rage Forger 22:50:31 Rage Forger \ 2R \ Creature -- Elemental Shaman \ 2/2 \ When Rage Forger enters the battlefield, put a +1/+1 counter on each other Shaman creature you control. \ Whenever a creature you control with a +1/+1 counter on it attacks, you may have that creature deal 1 damage to target player or planeswalker. \ MOR-U 22:50:39 nope, not that either 22:52:50 ok, my ideas don't seem to work 22:55:15 the game designers aren't stupid, they don't make too many cards that form easy infinite loops 22:56:19 especially not mandatory ones 22:58:02 and yes, I do have a playset of Faceless Butchers in my box of blacks 22:59:21 LSV (a famous magic player) once pulled off the oblivion ring infinite loop on MTGO on stream, against a real opponent, on a spur-of-the-moment decision to set it up 22:59:31 because he was curious as to what would happen (the deck wasn't built around setting it up) 23:00:17 I see 23:01:55 MTGO didn't handle it well, it replayed the entire game to try to figure out what had gone wrong, and then restarted it when it couldn't figure it out 23:02:57 did it call a judge then? 23:03:02 or did the players call one? 23:04:08 MTGO doesn't have judges 23:04:15 when it breaks you can apply for a refund, but that's abotu it 23:04:30 not even for tournaments with rewards? 23:06:24 -!- LKoen has joined. 23:06:42 nope; quite a few people are upset about this 23:06:49 oh, also, is it possible to golf this to one IRC line? 23:06:50
colspan=3>
23:07:19 because if they reach the late stages of tournament and lose out to an MTGO malfunction, getting the entry fee refunded isn't really what they were looking for 23:07:52 how repeated are the colors? I was wondering if a