00:07:15 YESS 00:07:18 YEEEEEEEES 00:07:49 Taneb: are you able to predict questions before they're asked of you? 00:08:08 Also, I have a brainfuck program that generates ASCII art banners! 00:08:24 -!- boily has joined. 00:08:39 `? weather 00:08:48 b_jonas, thanks! :D 00:08:49 lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK 00:08:51 CYUL 020000Z 03010KT 10SM -SN OVC052 M10/M13 A3006 RMK SC8 SLP183 \ ENVA 012350Z 17020G34KT CAVOK 01/M07 Q0994 RMK WIND AT 670FT 17035G47KT \ ESSB 012350Z AUTO 12006KT 9999 OVC021/// M01/M05 Q1009 \ KOAK 012353Z 27010KT 10SM FEW100 FEW180 20/10 A3013 RMK AO2 SLP202 T02000100 10217 20167 56006 00:09:10 @massages-loud 00:09:12 shachaf said 3h 36m 23s ago: do not @messages-loud this message twh 00:09:27 hellochaf. too late. 00:09:29 -!- Phantom_Hoover has joined. 00:09:42 izabera, would you mind terribly if I use arin.ga to paste a rather large amount of brainfuck? 00:12:11 Screw it, it's better to ask forgiveness than permission 00:12:54 Taneb: Yeah, but it's only easier if you don't explicitly say that to the person you would be getting permission (and will be asking for forgiveness) from 00:13:02 So here's a project to recruit more people to the #esoteric empire 00:14:26 * hppavilion[1] waits patiently for someone to respond so he knows that he's talking to something other than an empty room 00:16:24 why, are you afraid of echoes? 00:17:47 hppavellon[1]. there's tofu in my mouth; I can't answer readily. 00:17:55 echoes? 00:18:00 int-e: Yes. 00:18:18 int-e: I'd rather not talk at all that talk and have it get buried and ignored 00:18:20 choes? 00:18:28 That's what usually happens. 00:18:30 * hppavilion[1] claps for shachaf and Taneb 00:18:34 ...oes... 00:18:42 * hppavilion[1] adds boily 00:18:58 oerjan: Oh, I got some intuition for par the other day. 00:19:08 but it turned out to be kind of scow tdnh 00:19:19 * boily does not mapole shachaf 00:19:25 So the idea is to create some simple (not 100% insane, but strange enough to be intriguing) esolangs that are practical to use 00:19:30 brainfuck program I "wrote": https://arin.ga/FQLSPy/ 00:19:38 ...lap ...ap 00:20:01 And publish them together with some project revolving around tehm 00:20:09 And watch what people do 00:21:00 They would be published on some blog (as opposed to esolangs.org, which defeats the purpose) with hopes of attracting new people, eventually to the point that we can do esolangs4charity or something like that 00:21:26 Also, because that way we get MOAR BRAINS. 00:21:32 To make MOAR ESOLANGS 00:22:04 . o O ( moaronic spelling ) 00:22:17 An example of a language is a declarative language/machine called TurMinsFuck, which is exactly what it sounds like 00:22:58 we will Conquer the World, one Eggplant at a Time! 00:23:06 yum. 00:23:08 A side effect is that esolangs will show people how to implement languages, so we'll get MOAR non-esoteric languages too 00:23:16 boily: That's the plan 00:24:00 The aforementioned language is JSON-based, to ease implementation. The goal of users is to write a simple pseudo-OS in it 00:24:27 Or something, not sure yet 00:25:13 so how many of hppavilion[1]'s ideas have materialized so far? 00:25:21 int-e: Thoof. 00:25:25 int-e: That's about it. 00:25:35 int-e: And it's unpublished as of yet 00:31:36 -!- tromp has joined. 00:31:52 I'm really proud I got his program working 00:33:14 Taneb: that looks horrible :) 00:33:41 also... <> ... doesn't look so useful :) 00:33:49 It's generated 00:34:00 I've been focusing on getting it working, not getting it looking nice 00:34:08 There's a whole bunch of <> and I think some +- 00:34:21 -!- lambda-11235 has joined. 00:34:33 what does it do? 00:34:42 Generates ASCII art banners 00:35:48 It takes a string in input and prints a rendering of that string using just space and # 00:35:52 I see. 00:36:50 Using the font b_jonas is designing 00:39:31 One type of brainfuck derivative I could never hate is one that uses novel data structures or types as its primitive- either instead of the tape or instead of the integers 00:42:42 -!- idyllei has joined. 00:47:35 What's the font? 00:47:54 prooftechnique, one b_jonas designed and shared with me 00:48:04 Taneb: At least run bf.replace('<>', '') on the program... 00:48:05 I'm afraid I've lost the appropriate links 00:48:21 Aww. Is it as nice as \oren\'s? :D 00:48:40 At the very least, it was more immediately available 00:49:27 prooftechnique: What do you think would be good for an esolang practical enough that people can use it, but esoteric enough to be interesting? 00:49:27 I really hope I win this competition 00:49:40 Taneb: Competition? 00:49:48 Taneb: Sounds like you have a good shot :) 00:50:06 hppavilion[1]: Humo sounds neat. 00:50:12 hppavilion[1], my uni's electronics society is running a brainfuck programming competition 00:50:21 prooftechnique: Humo? 00:50:23 My ego demanded I demonstrate I'm the best in my uni at brainfuck 00:50:27 Taneb: Awesome xD 00:50:35 https://github.com/fpetrola/humo 00:50:39 Taneb: I don't see how you could lose 00:50:48 Also https://esolangs.org/wiki/Humo 00:50:53 prooftechnique: I made a proof assistant based on s/// notation already :) 00:51:11 hppavilion[1], well, the deadline is just listed as "the 2nd of March", and I submitted this at 00:15 00:51:22 Taneb: Ah 00:51:38 I've submitted solutions for all the easier challenges, though 00:51:51 Taneb: Wait, but does that mean at the beginning or end of march 2? 00:51:58 I've got no idea 00:52:01 Taneb: Oh, this wasn't your own project? 00:52:14 Taneb: As in, your own idea for a freestyle competition 00:52:15 I presume not the latter as the winner is announced at 2 00:52:22 Ah 00:52:36 tsk, the program overflows when given a 0xFF character as input 00:52:49 DISQUALIFIED 00:52:51 It wasn't my idea, but I think I'm the only person who attempted it 00:53:00 Ah 00:53:06 Taneb: How'd you generate it? 00:53:16 hppavilion[1], Haskell script 00:53:22 Ah 00:53:42 It's got a fairly regular structure, it's just really tedious and finicky 00:53:55 There's a whole load of improvements I can make 00:53:58 Taneb: Did the competition include specifications about the particular bf dialect? 00:54:23 Taneb: I recommend you start maintaining it as FOSS and get it included in some distribution of Linux as a standard command xD 00:54:27 32 bit word size, EOF is no change, 30000-length tape aborting on memory error 00:54:40 Ah 00:54:40 characters 3,4,5,6 look so asymmetric 00:54:54 -!- idyllei has quit (Quit: Leaving). 00:55:09 I'm tempted to feed it to tryitonline 00:56:02 I now must wait a year for it to output 00:56:31 (I did this: for i in $(seq 255); do echo $i; echo ${i}P | dc | ./a.out banner.bf; done ... where a.out is a brainfuck interpreter) 00:56:42 hppavilion[1], for the purpose of this competition the reference interpreter is https://copy.sh/brainfuck/ 00:56:43 I should use printf. 00:57:21 (but it's an 8 bit version) 00:57:35 int-e, it should work fine on an 8-bit interpreter 00:58:02 Taneb: it does, except for character 255 00:58:19 Ah, shit, I can see why that would happen 00:58:21 Taneb: Do I pass it input with ! or what? 00:58:33 hppavilion[1], depends on your brainfuck implementation 00:58:45 Give it input as normal for your implementation 00:58:48 Taneb: With the reference 00:59:12 There's a little input box under the output box 00:59:34 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 00:59:35 Oh! 01:00:01 That's amazing 01:00:20 Taneb: Bookmarked the paste 01:00:37 :) 01:00:44 prooftechnique: An example of a language of that form is a TM+MM+BF description language 01:00:47 It's for now All Rights Reserved probably 01:00:53 Taneb: xD 01:01:17 Please don't redistribute it without asking me 01:01:21 OK 01:01:32 Taneb: You should FOSS it when the competition ends and start actively maintaining it as a joke. 01:01:54 Taneb: What strategies are used to generate BF as such? Is there something I could read on this? 01:02:17 -!- Opodeldoc has joined. 01:02:31 hppavilion[1], I'm using a couple things from around the internet and a lot of things on the inside of my head 01:02:42 OK 01:03:08 bf program is not very hard to write (assuming you know some essential tricks like [-]) as long as you don't need arrays 01:03:10 I linked something this afternoon about brainfuck control structures 01:03:22 lifthrasiir, this... this uses arrays 01:04:02 Taneb: to be exact, free-form arrays? I guess you store your text up somewhere and seek to the beginning or end by [<] or [>] 01:04:12 Was it oerjan who determined that 3-cell BF is Turing complete? 01:04:14 lifthrasiir, sort of ish 01:04:18 prooftechnique, yeah 01:04:23 That was a fun day :) 01:04:30 Taneb: If one were to make a brainfuck that was made for much easier development (while still remaining esoteric), what instructions and changes do you think would be crucial? 01:04:33 explicit arrays are harder, and multiple arrays at once are much harder 01:04:36 lifthrasiir, I'm actually storing 20 copies of each character, with a bunch of cells of working space 01:04:37 (This is turning into an interview xD) 01:04:54 Taneb: is your banner 20 lines high? :p 01:04:57 lifthrasiir, yeah 01:05:00 great 01:05:21 hppavilion[1], I think it would require enough changes to be not brainfuck at all any more before it's easy to use 01:05:31 I guess I would have used a pair of cells instead, but yeah, that shouldn't really matter 01:05:34 I don't program in brainfuck because it's easy 01:05:40 I program in it because it's hard 01:05:52 Taneb: Not "easy", but "easier" 01:06:00 lifthrasiir, and then I'm doing [<<...<<] with 200 or so Taneb: For example, a language for OS development based on BF 01:06:25 Taneb: yeah that becomes a problem when you have 20 copies of them 01:06:37 copying on demand seems better 01:06:48 `coins 01:07:12 is that the backquotecoin? 01:07:33 No output. 01:07:34 Sump'm like that. 01:07:34 hppavilion[1], an easier way to do conditionals 01:07:50 The [-[-[-[-[-[-[-[-[-[-[-[-[-s in my program are setting up for a form of case statement 01:08:04 Taneb: Ooh, yeah. 01:09:21 I think a "brainfuck assembly language" would be nice. Some language whose purpose is to specify exact brainfuck programs. 01:09:42 Taneb: Perhaps something a bit JSONy? {case: code; case: code; case: code...} 01:09:54 tswett: I think someone did that already 01:09:59 That doesn't seem to me to be in the spirit of brainfuck 01:10:07 hppavilion[1]: then I want to see it. 01:10:08 Taneb: I agree, but it was the best I could think of 01:10:18 tswett: Search the wiki 01:10:31 "Brainfuck assembly" or something like that 01:12:00 tswett, what I'd like is some sort of specification and verification system for brainfuck 01:12:11 Say, does anyone know about that "fantasy game console"? It's like an emulator of an old video game console, except it was designed from scratch instead of actually emulating any particular console. 01:12:41 I'd like an IRC client with repetition protection 01:12:42 I'd like an IRC client with repetition protection 01:14:05 Do what the cool kids do—say three lines just milliseconds apart. 01:14:05 Like this. 01:14:05 See? 01:14:07 Taneb: Perhaps just {...} instructions that are like [] but } doesn't jump back (essentially, a NOP that other instructions move based on) 01:14:07 -!- deltab has quit (Ping timeout: 260 seconds). 01:14:19 tswett: xD 01:14:34 Anyway... 01:14:35 tswett: I see it took you a while to copy the newline character 01:14:38 -!- deltab has joined. 01:14:49 hppavilion[1]: come up with a nonsense word please. 01:15:05 lakalrocious 01:15:17 Great, thanks. 01:15:22 tswett: Why? 01:15:49 So that I can use it to name my software project. 01:15:52 Ah 01:16:02 tswett: What does the project do? 01:16:24 It's a bunch of mathematics written in Coq. 01:17:15 The feeling where you've been trying hard for a while to get something to work 01:17:17 And then it works 01:17:19 Ah 01:17:23 And you don't know what to do next 01:17:27 Is kind of frustrating 01:17:29 Taneb: I wish I knew that feeling... 01:17:57 xD 01:19:00 tswett: You should prove something in Thoof when it's ready 01:20:20 Are any of the trig functions functionally complete for the trig functions? 01:21:16 Well, it's pretty easy to write all of them in terms of the sine function. 01:21:31 tswett: In a way a computer can efficiently calculate? 01:21:35 cos(x) = sin(pi/2 - x), I think it is. 01:22:04 hppavilion[1], is division availabe 01:22:09 Then tan(x), sec(x), csc(x), and cot(x) can all be written as ratios of sin(x) and cos(x). 01:22:12 Taneb: Maybe 01:22:22 I just broke a glass with my teeth, somehow... 01:22:31 Then sin, cos, sec, csc 01:23:07 tswett: Would a BF-inspired proof assistant be at all a good idea? 01:23:20 For the #esoteric-standard value of good idea 01:23:21 Probably not. 01:23:33 tswett: Factor in that message and re-answer 01:23:40 First, do one inspired by C. 01:23:46 tswett: Pfffft 01:23:55 If that turns out to have been a good idea, go and do it for BF. 01:23:58 tswett: I did one inspired by Thue and it works pretty well 01:24:07 Oh? 01:24:12 How's it work? 01:24:29 tswett: Well, it wouldn't be much like BF; it'd have the tape and such, but not the imperative structure 01:24:36 tswett: Well, it's based on s/// 01:24:47 tswett: And, to a lesser extent, y/// 01:25:16 I'm heading to bed now 01:25:17 Goodnight! 01:25:21 Basically, you create a series of axioms- known strings and substitutions- then you apply the known axioms to known strings until you get a goal string 01:25:24 Taneb: 'night 01:25:39 tswett: It's PCRE more so than Thue 01:26:25 You can also do things like @ to apply an axiom/theorem/lemma as a fixpoint, which applies it to the string until it stops changing 01:27:16 And there's ?, which yields the set of the current string AND the current string when you apply thelemax 01:27:32 (thelemax is short for theorem/lemma/axiom, and is used a lot in the docs) 01:27:55 tswett: So you prove things by substituting using PCRE regexes on a known string, and you get new strings that represent your proof 01:28:29 tswett: Though future versions will support regex styles other than PCRE- e.g. Pure Kleene Regexes and standard regexes 01:28:35 And, of course, raw strings 01:29:28 tswett? 01:29:37 Lemme see. 01:29:44 tswett: Best of all, I even have a Thoof interpreter working, partially 01:29:49 OK, one sec, let me publish it 01:30:14 All right, I see what you're doing here. 01:30:21 Do you know what a formal system is? 01:30:37 tswett: I think someone did that already <-- pikhq's bfm which was renamed to something else - pickle? 01:32:25 tswett: https://github.com/ZodiacWorkingGroup/Thoof 01:32:49 tswett: Yes, yes I do 01:32:51 I think 01:33:02 tswett: Note that y/// and ? don't yet work; I just added them today 01:33:11 (well, y/// might not have been today, but I think it was) 01:33:22 (To the docs, that is, not to the code) 01:33:57 tswett: construct.thoof is the file with the working, tested code in it 01:34:33 Now, Thue is already a language for specifying formal systems. 01:34:46 tswett: Yes, yes it is 01:35:06 Semi-thue systems 01:35:31 tswett: Did I do something wrong? xD 01:35:41 Nah, lemme keep typing. 01:35:46 OK 01:35:55 You've taken Thue, extended it, and also built a system for specifying specific Thue derivations. 01:36:13 So if you want to do the analogous thing for brainfuck, you'll build a system for specifying specific brainfuck derivations. 01:36:14 (One problem with IRC: None of the "x is typing" stuff fancy new chat things have) 01:36:22 tswett: Oh no... 01:36:27 (thelemax is short for theorem/lemma/axiom, and is used a lot in the docs) <-- i'm pretty sure that word belongs in the other #esoterics hth 01:36:27 And that raises a question: what is a brainfuck derivation? 01:37:01 tswett: So "specific Thue derivations" means what exactly? 01:37:17 Specific ways of following the rules with a given start string in order to end with a given end string. 01:37:18 tswett: Also, note that you have to call substitution rules manually; they aren't automated 01:37:30 Ah 01:37:30 Right. The derivation is the sequence of calls. 01:37:48 There are two "problems" with the idea of a brainfuck derivation. 01:37:56 You can still call them in Thue-like fashion, by putting the desired ruleset in a theorem and fixpointing it (@) 01:38:07 tswett: I'm sure one is that BF is imperative 01:38:13 One is that brainfuck, unlike Thue, is deterministic. Given a starting state and a program, there's only one way that you can proceed. 01:38:24 Ah, yes 01:38:36 tswett: I think there's another word for that 01:38:56 Unless you mean Thue is probabilistic, which is implementation-defined 01:39:55 And the other "problem" is that brainfuck code works by taking a starting tape state (or tape segment state) and ending with another tape (segment) state. 01:40:26 Now, resolving the first "problem" seems easy, I think. Just add more instructions, which are nondeterministic. 01:40:48 tswett: I can't tell what you mean by "deterministic" and "nondeterministic" here, based on what I assume they mean 01:40:56 As for the second "problem"... I'll tell you what I can tell you and I'll let you run with it. 01:41:34 "Deterministic" means "given the state for a time step, there is at most one possible state for the following time step". 01:41:55 Ah 01:42:18 tswett: I was thinking deterministic was non-probabilistic, but a search tells me probabilistic is a subset of nondeterministic 01:42:55 Yeah. A nondeterministic system simply says something like "proceed to either A or B". A probabilistic system, on the other hand, says something like "proceed to A with probability 0.5, B otherwise". 01:42:59 tswett: So in this case, nondeterministic is like Algebra where you can rewrite in multiple different ways? 01:43:18 Yeah, I'd say algebra is an example of a nondeterministic system. 01:43:23 OK 01:44:01 Thue and brainfuck both involve a concept which is ubiquitous in programming, and also elsewhere in mathematics. They both involve specifying ways of going from one state to another state. 01:44:19 tswett: So can you clarify the second problem? I don't quite get it 01:44:50 In Thue, what the "states" are and what the "ways of going" are are pretty straightforward. The "states" are the various strings that you can have as... y'know, the program state. 01:44:55 And the "ways of going" are the individual rules. 01:45:30 OK 01:45:33 In brainfuck, it's a little more subtle. The "states" are states of the tape... but are they states of the entire tape, or states of just pieces of the tape? 01:45:46 Ah... 01:45:58 The easiest answer is "they're states of the entire tape". And that's a totally valid answer. 01:46:07 So it's like how different code will use different areas of the tape? 01:46:19 Something like that... probably. 01:46:45 But the problem with "they're states of the entire tape" is that... well, it's that every single piece of code has to be seen as affecting the entire tape. 01:46:52 Which might be a little inflexible. 01:47:00 tswett: I mean the fact that, without running code, you can't determine what cells will and will not be used 01:47:08 (Even if we exclude ,) 01:47:25 tswett: Perhaps I could do something with a 2-tape 01:47:26 That is true... 01:47:28 Well. 01:47:35 Lemme work with an example. 01:47:41 Consider the following piece of brainfuck code: + 01:48:02 Where you have 8 cells that each rule can use, and at the end (and only at the end) of a rule, you transition to another group of 8 cells 01:48:13 Here's what that code does, under the "states of the entire tape" choice: 01:48:54 That way, you can guarantee that the code will only use those 8 cells 01:48:56 It takes a tape, and returns a tape where the active cell is the same cell as in the original tape, and all of the cells have the same value, except that the active cell contains a value equal to one plus its prior value. 01:49:06 Here's what that code does, under the "states of just pieces of the tape" choice: 01:49:15 It's not just brainfuck that lets you do math, the idea is it's something novel that is vaguely inspired by brainfuck 01:49:20 It takes a tape cell, and returns a cell containing a value equal to one plus the prior value. 01:49:38 tswett: Yes, I get it. I think that's what I said earlier 01:49:52 The latter style is easier to talk about because it just doesn't mention the rest of the tape at all. 01:50:53 So, here's how I think it's going to look. 01:50:54 With BF\IO, you pretty much can't determine what cells a fragment of code will modify (given the current active cell number and the fragment) short of running the code 01:51:10 And especially if the area of the tape has potentially been modified before 01:51:10 [wiki] [[Dis]] https://esolangs.org/w/index.php?diff=46482&oldid=30820 * 94.12.170.129 * (-2) fixed the wayback link 01:51:13 Axioms are pieces of extended-brainfuck code. 01:51:18 OK 01:51:23 That's what I was thinking 01:51:25 Theorems have three pieces. 01:51:31 Listening 01:51:59 First, the starting state of the tape segment. Second, the ending state of the tape segment. Third, a way of using axioms to get from the starting state to the ending state. 01:52:12 Yep? 01:52:27 And that's pretty much that. 01:52:30 Starting state and ending state? 01:52:38 What about them? 01:52:40 One sec 01:52:56 Let me read back, I may have accidentally expunged crucial information from my short-term memory 01:53:12 Now, there are two ways of taking theorems and getting new theorems. First, you can take a theorem with a given ending state, and another theorem whose starting state is the same, and string those two theorems together. 01:53:34 tswett: The "state" is the values on a tape fragment, correct? 01:53:39 Second, you can take a theorem and add additional cells to the beginning and/or end of the starting and ending states. 01:53:40 Right. 01:53:56 So if (0) -> (3) is a theorem, then (0,42) -> (3,42) is also a theorem. 01:53:57 Interesting... 01:54:29 tswett: So the start -> end part isn't stored, because of the large number of possible transitions? 01:54:59 -!- FreeFull has quit (Remote host closed the connection). 01:55:15 Well, like I said, a theorem has those three pieces: starting state, ending state, and sequence of... steps. Storing the theorem means storing all three of those pieces. 01:55:26 Oh 01:56:09 tswett: So a theorem stores a relation between two values and a list of thelemax references? 01:56:21 Sounds right. 01:56:32 Basically, a constrained in value and an equation that you run on that value to calculate the out value 01:57:06 Right, except I don't think the word "equation" is the right word there. 01:57:12 tswett: Formula? 01:57:29 It'll be a program, or a sequence of programs, where you specify choices for all of the nondeterministic bits of the program. 01:57:32 tswett: That message just referred to the relation 01:57:49 Ah. 01:57:57 Not to the list of axioms 01:58:00 In that case, yeah, exactly. 01:58:13 You're actually getting ahead of what I was saying—which is good. 01:58:26 Yay! 01:58:37 tswett: Also, do you have any suggestions for things to make Thoof better (based on what you've heard), or any other languages that could be made into proof assistants after I do this? 01:58:39 So far I'd only mentioned theorems with one specific in value and one specific out value. But it makes sense to extend that as much as you like. 01:58:52 Thoof is the proof system inspired by Thue? 01:59:01 tswett: Yes, forgot to mention that 01:59:26 Hmm. Not sure about Thoof, but let me think about other languages to make into proof assistants. 01:59:36 If you're insane, try ///. 01:59:53 Whose wiki page is, of course: http://esolangs.org/wiki//// 02:00:18 -!- AlexR42 has joined. 02:00:24 tswett: Isn't that what I did? Or is /// self-modifying? 02:00:27 Consider doing it for Unlambda. 02:00:32 /// is self-modifying. 02:00:58 Unlambda and /// are both deterministic. But, as always, it's easy to make a deterministic language non-deterministic: just add additional instructions. 02:01:22 Or, here's how I'd suggest making /// nondeterministic. 02:01:32 tswett: I'm definitely making an Unlambda one xD 02:01:46 Currently, the specification says that when you're performing a substitution, you find the first instance of the pattern string and replace it with the replacement string. 02:01:46 Then again, unlambda practically already /is/ a proof assistant 02:02:05 Here's the nondeterministic version: find *any* instance of the pattern string and replace it with the replacement string. 02:02:16 Oooh... 02:02:30 And let the mathgrammer choose which instance it is? 02:02:38 So the program "/***/zebra/*****" could output "zebra**", "*zebra*", or "**zebra". 02:02:40 Exactly. 02:02:57 In /// as it is, there's only one possible output: "zebra**". 02:03:01 tswett: Perhaps I should just put that in Thoof? For simplicity? 02:03:11 tswett: I mean, thoof isn't meant to be uber-minimal 02:03:20 It's meant to be usable, but non-conventional 02:03:24 Put what in Thoof? 02:03:33 tswett: The ability to choose which is replace 02:03:34 d 02:03:47 I assumed that you already had that as a feature, actually. 02:03:59 tswett: As it is, thoof just replaces the first instance of the regex with its substitution when it's called 02:04:02 Ah 02:04:12 Well, when an axiom is called/applied 02:04:31 So what do you do if you want to replace a different instance instead? 02:04:48 tswett: You make sure the regexes and strings are set up so that you don't xD 02:04:55 tswett: But that's a good point that I didn't think of 02:05:03 tswett: I was already considering a {} notation 02:05:15 Yeah, I'd definitely put that in Thoof for simplicity. 02:05:20 OK 02:05:33 Unless, of course, you like the complications produced by not having that in Thoof. 02:05:40 I don't xD 02:05:42 Not completely 02:06:07 thelemax{n} replaces the nth instance, thelemax{:n} replaces all up to the nth instance, thelemax{n:} replaces all starting with the nth instance, and thelemax{n} replaces the nth instance, thelemax{:n} replaces all up to the nth instance, thelemax{n:m} replaces all starting at n and ending at m? 02:06:22 All :x are not inclusive, and x: are inclusive 02:07:11 tswett: That syntax look good? 02:07:45 I think I like that. Also allow the user to specify multiple non-contiguous instances: {1,6,7,10000} 02:07:50 tswett: Ah, yes 02:07:56 tswett: And, of course, specify from the end 02:08:00 Here's a question: how many instances of "***" are there in "******"? 02:08:04 In my opinion, there are four. 02:08:11 tswett: 4 02:08:38 Likewise, three instances of "abba" in "abbabbabba". 02:08:43 tswett: The thing will go with overlapping matches, for generality 02:09:08 If the user tries to replace two overlapping instances simultaneously, that's probably an error. 02:09:21 tswett: I thought of letting Thoof use a small unix-like filesystem to store data too xD 02:09:33 (And, while we're at it, possibly thelemaxes) 02:09:44 tswett: Yeah, probably 02:10:09 Now, what happens if, in the string "abbabbabbabbabbabbabbabbabbabbabbabbabbabbabbabba", I use thelemax{3:5}, where my thelemax turns "abba" into "jonsi"? 02:10:17 replace what thou wilt shall be the whole of the instance 02:10:32 Is that an error, since instances 3 and 4, and likewise 4 and 5, are overlapping? 02:11:27 tswett: The third and fourth instances of abba are replaced with jonsi. What else would happen? 02:11:37 Oh, right 02:11:39 Overlap 02:11:56 tswett: Note that it terminates one instance early, like in Python 02:11:58 Actually, no 02:12:09 I should make it index from 1 for logic's sake 02:12:22 You could say it's an error. You could also say that, going from left to right, it chooses all of the instances that don't overlap with a previously chosen instance. 02:12:35 In which case you could have syntax for deciding whether you want to go from left to right, or from right to left. 02:12:56 tswett: negative numbers work from the right, like in Python 02:13:07 Because it makes sense and there's no reason not to 02:13:44 (There's no confusion because you can't use a variable or anything in {}, as the only variables are theorems/lemmas/axioms, which can't be numbers) 02:14:17 tswett: That idea's good too... 02:14:23 I guess it could just be a matter of {3:5} versus {5:3}. 02:14:35 Perhaps [] should be non-overlapping, while- oh, yeah, good point 02:14:56 Wait, no, that was unrelated, wasn't it 02:15:04 [] will not overlap, but {} will 02:15:14 {} will raise an error on overlaps 02:22:08 . o O ( banananananananana... ) 02:22:29 boily: I once wrote a program with the express purpose of doing that 02:27:31 Mr. Hppavilion[1]'s Patented Banana Proliferaton Programme, Enhanced With the Purest of Potassiums. Guaranteed to Cure your Personal Ailments! 02:28:05 -!- andrew_ has joined. 02:28:35 surely that should be Dr. Hppavilion[1] 02:28:53 hppavilion[1]: are you a doctor? are you even a mister? 02:29:10 he does look misterious 02:29:18 * boily lightly prods hppavilion[1] with his mapole, just to make sure 02:29:33 * boily thwacks oerjan 02:30:18 how brutal 02:30:58 that pun registered at least 0.8 shachafs. 02:36:47 I think hppavilion[1]'s secret is now uncovered. he isn't human, or at least appröximatively human. 02:37:25 -!- boily has quit (Quit: CYCLOPEAN CHICKEN). 02:48:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 02:50:38 -!- andrew_ has quit (Ping timeout: 248 seconds). 03:00:36 -!- bender|_ has joined. 03:04:07 -!- andrew_ has joined. 03:14:01 -!- hppavilion[1] has joined. 03:14:48 tswett: I'm back 03:17:34 `unidecode ḧ 03:17:45 ​[U+1E27 LATIN SMALL LETTER H WITH DIAERESIS] 03:18:35 Ḧëllö, ḧppävïlïön[1]. 03:18:55 -!- AlexR42 has quit (Ping timeout: 252 seconds). 03:23:58 -!- FreeFull has joined. 03:33:19 tswett: Hi 03:33:24 tswett: Forgot to respond xD 03:47:52 -!- augur has quit (Remote host closed the connection). 04:08:00 -!- oerjan has quit (Quit: leaving). 04:12:33 helloerjan, helloily, tswello, heppavellolion[1] :) 04:41:38 -!- augur has joined. 04:49:24 -!- bender|_ has changed nick to bender. 04:49:33 -!- bender has quit (Changing host). 04:49:33 -!- bender has joined. 04:50:44 It's been a long time since I did esoteric stuff 04:51:08 `welcome bender 04:51:13 bender: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 04:56:49 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 04:58:40 Which one did you do in past (if any)? 04:59:09 zzhello38 04:59:36 Do you have any tricks for linear logic? 05:01:35 I don't think so 05:04:40 I would want to add into JavaScript a goto command which can implement a kind of "evasive exception", for example: function test() { again: xyzzy(()=>{goto again;}); return 1; } It cannot be caught by "catch" blocks, but "finally" can still partially catch it. What is your opinion of this? 05:05:27 Seems dubious to me. 05:05:31 (Of course it won't work if the that function that does goto again is called after test function returns; it such case it is error and is caught by a catch block.) 05:05:54 Why not make it work the second time, so you get a continuation thing? 05:07:28 I think JavaScript does not use continuations? But if it can be made to do so, then it might. However, then there is the case if a different part of the program does not want it to work a second time. 05:09:27 For generator functions it is a bit more easily though 05:12:44 (Jumping into any block is also going to be error, but depending how it is written it may be a syntax error which is seen before the program is executed.) 05:15:13 Anyways, "return" means the function is finished and is not allowed to continue, isn't it? 05:18:33 Note that in the example given, the "again" is local to the instance of the function call, as if it was "var x" and it passed a function that mentions "x", it is the "x" of this function call, too (but that is a variable and doesn't need the function to continue after it returns in order to use that variable) 05:19:28 If you would write "goto again;" outside of the function definition then the label called "again" is not in scope so it is an error. 05:19:36 -!- impomatic has quit (Ping timeout: 246 seconds). 05:20:39 Having "goto" would also make it easier for a JavaScript program to compile other stuff into a JavaScript program (such as with "new Function"). 05:21:34 -!- impomatic_ has quit (Ping timeout: 248 seconds). 05:22:09 How else would you do it? One idea would be to first convert the other code into basic blocks, but and then what? 05:25:37 -!- augur has quit (Remote host closed the connection). 05:30:42 -!- augur has joined. 05:35:31 -!- hppavilion[1] has joined. 05:37:11 oerjan: whoa whoa whoa, the whole !A -o B and !A -o ?B thing makes perfect sense 05:37:23 and also presumably A -o ?B for dual intuitionistic logic 05:38:12 I want to start implementing software in abstract machines... 05:45:53 What kind of abstract machines? 05:49:08 -!- andrew__ has joined. 05:50:51 zzo38: Tag systems, for example 05:51:11 Perhaps in some way augmented, but it's doubtful 05:52:09 -!- andrew_ has quit (Ping timeout: 246 seconds). 05:58:31 Perhaps a programming language for constructing pseudo-operating systems where various components are first-class objects? 05:58:39 Nah, that's stupid and I don't understand OSes 06:12:34 -!- pdxleif has joined. 06:20:19 -!- MoALTz has joined. 06:21:39 tswett: You're still online. Is this because you never log off but are currently sleeping, or are you actually on? 06:34:31 -!- AnotherTest has joined. 06:34:50 Ugh, with my current setup it'll be a huge pain in the ass to properly make Thoof work 06:41:45 -!- AnotherTest has quit (Ping timeout: 276 seconds). 06:50:50 -!- augur has quit (Remote host closed the connection). 06:53:33 Taneb: do you properly do unicode CNF normalization on the string before you get the glyphs from the font? 06:55:44 -!- heroux has quit (Ping timeout: 260 seconds). 06:57:50 -!- heroux has joined. 06:58:54 -!- lambda-11235 has quit (Quit: Bye). 07:05:59 zzo38: re evasive exceptions: perl has exactly that. there are some compications if you want to exit through xs functions (depending on how exactly they call back to perl), sort blocks, regex code blocks, and other strange constructs. You may be able to leave with an exception, a goto, both, or neither, depending on the construct and the version of perl. 07:06:49 zzo38: ruby also sort of has something like this, in that there are more things than exceptions that you can throw, and a catch catches only exceptions, but I'm not sure there's a finally construct that catches all the others. There's no full-powered goto though. 07:10:26 zzo38: specifically, things you can throw are exceptions, four loop control statements which act on the function that got passed the lexically curretn ruby-like yield callback block as a yield argument (break (=perl's last), next, redo, retry (jumps to before the function call)), function return, plus internal fatal error thingies like out of memory that you can't catch. 07:11:15 -!- lynn has joined. 07:13:05 zzo38: there's also a callcc, which is nastier. I think it makes a copy of the C stack or something. I think it still tries to run some finalize blocks, but I'm not sure if there's a corresponding scheme-like on-enter block too. 07:13:20 For search, finally is called ensure in ruby. 07:14:07 Ruby's non-exact gc (at least in ruby 1.8, I don't know if they replaced it) helps this sort of thing of course. 07:40:23 b_jonas: Taneb mentioned your font, and I was curious to see it 07:40:40 If you don't mind :) 07:44:49 -!- earendel has quit (Ping timeout: 248 seconds). 07:44:49 -!- staffehn has quit (Ping timeout: 248 seconds). 07:45:43 -!- staffehn has joined. 07:47:21 -!- tromp has quit (Remote host closed the connection). 07:51:46 -!- earendel has joined. 07:53:22 OK 07:54:01 -!- bender has quit (Ping timeout: 250 seconds). 07:54:28 -!- mroman has joined. 07:57:52 prooftechnique: It's jsut the font in the program 08:10:13 -!- bender has joined. 08:10:23 -!- bender has quit (Changing host). 08:10:23 -!- bender has joined. 08:11:07 -!- lynn has quit (Read error: Connection reset by peer). 08:15:36 prooftechnique: Do you do a lot of stuff with Proof Assistants? Your name implies you might 08:16:42 prooftechnique: I wouldn't say a lot. I do like to play with them, though. 08:17:18 I actually work at a design firm, right now, so the use case for proof assistants rarely comes up. :| 08:31:31 Though if GSS were a little more ready, I could conceivably make use of a constraint solver :D 08:33:38 prooftechnique: GSS? 08:33:56 Sorry, you didn't ping me so I missed the messages xD 08:43:51 hppavilion[1]: http://gridstylesheets.org/ 08:44:02 Oooh 08:44:04 Sounds fancy 08:45:08 b_jonas, hell no, I just take the first 256 glyphs in the font and hope they're in the right order 08:46:16 prooftechnique: I'm looking for something novel to prove with, I was just seeing if you could help xD 08:47:49 -!- tromp has joined. 08:52:34 hppavilion[1]: I'm still kind of fascinated by Lemuridae, to be honest. 08:53:03 -!- tromp has quit (Ping timeout: 276 seconds). 08:56:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 09:16:27 -!- FreeFull has quit (Ping timeout: 276 seconds). 09:46:49 -!- AnotherTest has joined. 09:59:20 -!- jaboja64 has joined. 10:15:11 -!- hppavilion[1] has joined. 10:22:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 10:41:46 -!- primo has joined. 10:48:33 -!- tromp has joined. 10:52:51 -!- tromp has quit (Ping timeout: 248 seconds). 10:57:35 -!- lynn has joined. 11:25:07 -!- J_Arcane has quit (Ping timeout: 252 seconds). 11:25:23 -!- boily has joined. 11:39:02 @massages-loud 11:39:02 You don't have any messages 11:39:33 question of the day: if I don't have any massages, did shachaf write anything? 11:41:11 @tell boily yes 11:41:11 Consider it noted. 11:41:19 Tanelle 11:41:26 @massages-quiet 11:41:26 Unknown command, try @list 11:41:29 @massages 11:44:31 -!- primo has left ("Leaving"). 11:49:21 -!- tromp has joined. 11:53:43 -!- tromp has quit (Ping timeout: 252 seconds). 11:54:41 -!- mtve has joined. 11:56:41 -!- bender has quit (Ping timeout: 250 seconds). 11:59:01 -!- ais523 has joined. 12:02:50 -!- jaboja has joined. 12:05:18 -!- jaboja64 has quit (Ping timeout: 248 seconds). 12:14:14 -!- jaboja has quit (Ping timeout: 260 seconds). 12:22:01 -!- boily has quit (Quit: PACKET CHICKEN). 12:28:31 -!- bender has joined. 12:46:28 -!- jaboja has joined. 12:47:26 -!- andrew__ has quit (Remote host closed the connection). 12:51:28 -!- AnotherTest has quit (Ping timeout: 252 seconds). 13:02:46 -!- ais523 has quit (Ping timeout: 244 seconds). 13:19:37 -!- bender has quit (Ping timeout: 240 seconds). 13:20:32 -!- bender has joined. 13:45:13 -!- tromp has joined. 13:57:22 -!- tromp has quit (Remote host closed the connection). 14:00:05 [wiki] [[Special:Log/newusers]] create * RaHorakhti * New user account 14:10:47 -!- p34k has joined. 14:13:53 -!- FreeFull has joined. 14:17:41 -!- jaboja has quit (Ping timeout: 244 seconds). 14:35:05 I think that brainfuck program I shared in the early hours of this morning may be one of the longest ones in existence 14:47:56 Taneb: Was it generated? 14:49:15 -!- `^_^v has joined. 14:56:05 -!- bender has quit (Ping timeout: 250 seconds). 14:57:51 -!- tromp has joined. 15:02:22 -!- tromp has quit (Ping timeout: 252 seconds). 15:03:31 -!- oerjan has joined. 15:08:33 Taneb: what did it do? 15:13:42 -!- MaskedFox has joined. 15:21:07 -!- spiette has joined. 15:27:00 -!- MaskedFox has quit (Ping timeout: 252 seconds). 15:27:06 Taneb: https://arin.ga/FQLSPy/ ? it is just over 200K, which is not really the biggest 15:27:24 Lost Kingdom BF edition is about 2MB 15:28:03 oerjan: whoa whoa whoa, the whole !A -o B and !A -o ?B thing makes perfect sense <-- i fear that we have lost shachaf 15:28:27 [wiki] [[Q]] N https://esolangs.org/w/index.php?oldid=46483 * RaHorakhti * (+2813) Created page with "The Qabalah language ('''Q''') is not only an esoteric programming language, but it is also an [[Category:Occult languages|occult programming language]]. The first version of..." 15:29:19 oooh, an esoteric esoteric programming language 15:30:34 ...which only looks esoteric, not esoteric esoteric 15:31:30 what is esoteric esoteric? 15:31:34 [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46484&oldid=46483 * RaHorakhti * (+1) 15:32:26 like, esoteric in both senses 15:33:07 [wiki] [[Category:Occult languages]] N https://esolangs.org/w/index.php?oldid=46485 * RaHorakhti * (+83) Created page with "Occult languages are esoteric languages that also has an occult focus of some kind." 15:33:51 -!- idris-bot has joined. 15:34:52 [wiki] [[Special:Log/delete]] delete * Oerjan * deleted "[[Category:Occult languages]]": Creating category without discussion against [[Esolang:Policy]] 15:35:02 the foot, it came down hth 15:35:39 [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=46486&oldid=46472 * RaHorakhti * (+8) 15:42:00 [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46487&oldid=46484 * RaHorakhti * (-1) 15:44:59 @tell hppavilion[1] I never log off (if I can help it). 15:45:00 Consider it noted. 15:45:42 [wiki] [[User:RaHorakhti]] N https://esolangs.org/w/index.php?oldid=46488 * RaHorakhti * (+135) Created page with "My name is Per Löwgren, you can find some of my work at [https://bitbucket.org/perlowgren BitBucket]. I've created the language [[Q]]." 15:46:27 -!- earendel has quit (Ping timeout: 246 seconds). 15:50:57 -!- lambda-11235 has joined. 16:06:54 -!- mroman has quit (Quit: Lost terminal). 16:07:16 -!- spiette_ has joined. 16:07:55 -!- p34k has quit. 16:08:03 [wiki] [[Q]] https://esolangs.org/w/index.php?diff=46489&oldid=46487 * RaHorakhti * (-62) 16:08:04 -!- spiette has quit (Disconnected by services). 16:08:12 -!- spiette_ has changed nick to spiette. 16:11:55 -!- p34k has joined. 16:12:50 -!- haavardp has joined. 16:14:06 -!- shikhin_ has joined. 16:14:28 -!- sewilton_ has joined. 16:15:32 -!- sewilton has quit (Ping timeout: 264 seconds). 16:15:33 -!- lambdabot has quit (Read error: Connection reset by peer). 16:15:33 -!- zgrep has quit (Ping timeout: 264 seconds). 16:15:34 -!- shikhin has quit (Read error: Connection reset by peer). 16:15:34 -!- Elronnd has quit (Ping timeout: 264 seconds). 16:15:34 -!- haavard has quit (Ping timeout: 264 seconds). 16:15:34 -!- zgrep has joined. 16:15:43 -!- zgrep has quit (Changing host). 16:15:43 -!- zgrep has joined. 16:17:19 -!- sewilton_ has changed nick to sewilton. 16:17:54 -!- Elronnd has joined. 16:18:40 -!- lambdabot has joined. 16:33:33 [wiki] [[Esolang:Policy]] https://esolangs.org/w/index.php?diff=46490&oldid=43620 * Oerjan * (+8) Make it clearer this points to where discussions should happen 16:34:34 -!- augur has joined. 16:47:30 -!- oerjan has quit (Quit: Later). 16:55:25 -!- augur has quit (Remote host closed the connection). 16:56:00 -!- augur has joined. 16:57:40 -!- augur has quit (Read error: Connection reset by peer). 16:58:01 -!- tromp has joined. 16:58:15 -!- augur has joined. 16:58:25 -!- augur has quit (Remote host closed the connection). 17:02:24 -!- tromp has quit (Ping timeout: 246 seconds). 17:25:50 -!- AnotherTest has joined. 17:29:00 -!- Sprocklem has quit (Ping timeout: 246 seconds). 17:40:45 -!- Opodeldoc has quit (Ping timeout: 250 seconds). 17:43:34 -!- jaboja has joined. 18:02:36 -!- hppavilion[1] has joined. 18:11:04 -!- earendel has joined. 18:20:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 18:22:47 -!- spiette has quit (Ping timeout: 250 seconds). 18:23:25 -!- spiette has joined. 18:24:11 -!- Opodeldoc has joined. 18:50:34 -!- zadock has joined. 19:05:26 -!- hppavilion[1] has joined. 19:10:23 tswett: Greetings 19:10:30 @messages-lud 19:10:30 tswett said 3h 25m 30s ago: I never log off (if I can help it). 19:12:56 -!- augur has joined. 19:18:40 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 19:30:31 -!- hppavilion[1] has joined. 19:33:44 Are there any x/// expressions other than s and y? 19:35:02 tswett? 19:37:51 -!- augur has quit (Ping timeout: 276 seconds). 19:38:49 -!- augur has joined. 19:41:18 -!- Sprocklem has joined. 20:04:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 20:11:28 -!- Nithogg has joined. 20:11:33 -!- shikhin_ has changed nick to shikhin. 20:11:59 -!- jaboja has quit (Ping timeout: 250 seconds). 20:16:04 -!- jaboja has joined. 20:20:21 -!- Sprocklem has quit (Ping timeout: 244 seconds). 20:22:27 -!- jaboja has quit (Ping timeout: 248 seconds). 20:27:06 Did anyone else just have the whole ban list dumped to channel? 20:27:14 And by just, I mean two hours ago? 20:27:33 Maybe irssi's just being weird 20:30:22 -!- lambda-11235 has quit (Quit: Bye). 20:30:56 prooftechnique: you probably sent /mode #esoteric +b 20:31:45 I wonder why I'd have done that :| 20:32:00 My whole status buffer was full of /who lists at that time, too 20:32:21 I hope my poor ZNC didn't have a seizure 20:35:11 -!- jaboja has joined. 20:36:39 -!- hppavilion[1] has joined. 20:39:29 -!- jaboja has quit (Ping timeout: 244 seconds). 20:39:58 Now what else I should need to add into my JavaScript Xlib? 20:40:44 zzo38: What does it do? 20:40:50 zzo38: Is Xlib for X? 20:40:54 Would it need a command to draw a stack of pictures? 20:40:56 (The windowing system)? 20:41:00 Yes Xlib for X window system 20:41:11 Meh I HATE pulseaudio. 20:41:22 zzo38: Is this on the desktop for JS, or is it an emulator that runs in-browser? 20:41:37 It is a JavaScript program to access Xlib (and also the C program) 20:41:42 hppavilion[1]: It is for use with Node.js 20:41:45 zzo38: OK 20:41:54 zzo38: What do you mean by "A stack of pictures"? 20:42:01 zzo38: Do you mean like save() and restore()? 20:42:45 There is a function X.Drawable.prototype.drawPicture but I would mean, a command to draw multiple pictures in the same place all at once (if it doesn't have it you can still just use drawPicture multiple times, but as a single command might be more efficient?) 20:43:01 Just wasted 3 hours of my life on figuring out a) that I need it b) how to start it (it was stumbling over a leftover socket file in /var/run... but of course I got a descriptive error message: bind(): socket already in use) and c) why I need it... to play videos with sound in Firefox. 20:43:51 (the answer to c) is that the HTML5 stuff uses libpulse to play audio, which will only talk to a pulseaudio server) 20:44:17 (but apparently isn't smart enough to start one when none is running) 20:44:52 I do not really like pulseaudio either, although it is already set up in my computer anyways so I do not need to do anything. 20:45:15 to me it's cruft that solves a non-problem 20:45:25 int-e: I agree 20:45:26 (playing sound from different sources simultaneously) 20:45:42 Other commands I would be planning to add are X.Drawable.prototype.pushGC, X.Drawable.prototype.popGC, and X.Drawable.prototype.drawMacro 20:56:13 ARGH! In HTML webpages, why don't people use images with alt text versus images with empty alt text versus background images the semantically right way? 20:56:21 It's just so stupid. 20:57:16 `wisdom 20:57:21 ​ /The final frontier. 20:58:05 wisdom 20:58:07 scow 20:58:13 `wisdom 20:58:13 `wisdom 20:58:14 `wisdom 20:58:40 irc/IRC is short for "Internet Relay Chat". It is named so because all the servers are constructed from relays. 20:58:40 btw/btw is short for "bury the weasel" 20:58:41 cpressey/cpressey invented the esolang, the pipe cleaner and the electrical mousse. 20:59:13 would mousse be a sharp rodent? 21:00:57 `? mousse 21:00:59 mousse? ¯\(°​_o)/¯ 21:02:40 And ratatouille could be a stuttering rodent. 21:07:57 -!- augur has quit (Remote host closed the connection). 21:09:12 They say dash (in Magic: the Gathering) can only go on creatures, but it is untrue; cards could be made that are not creatures and have dash (as long as it is not an instant, sorcery, or land). The haste is mostly meaningless in such case but still has it and in some cases can be used. 21:11:56 (The same is true of megamorph, although the +1/+1 counter in such case would ordinarily do nothing, when combined with undying, graft, and/or modular, it can do such thing even though it is not a creature.) 21:13:57 Exploit also does not have to go only on creatures 21:15:37 zzo38: Is that also true of super haste? 21:18:28 I suppose so, although it is irrelevant since super haste is not a standard rule for the normal game and is only for Un-cards. 21:19:44 If a card isn't a creature can you still put it on the battlefield with super haste? 21:20:48 There is no such rule as super haste. 21:22:23 http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=74324 has it. 21:22:41 Do you refuse to play with Un-cards? 21:24:49 Not necessarily, although people would need to agree a different kind of game, sometimes it is necessary to argue about the rules, etc. 21:25:26 Necessary to argue about the rules? 21:25:38 That makes it completely different from a regular Magic: The Gathering game. 21:25:43 Consider a card such as: {3} Artifact ;; Undying ;; Megamorph {1} ;; {T}, Sacrifice ~: Target player gains 2 life. 21:25:50 shachaf: I know! 21:25:59 But I said "sometimes"! 21:28:58 -!- zadock has quit (Quit: Leaving). 21:29:09 For example, my own ideas about how R&D's Secret Lair is working is different than what other people say (and they are also different from each other), but there is no rule to make such an effect work, so you have to argue about it. 21:30:58 (My own opinion that the old Lightning Bolt with R&D's Secret Lair allows you to target any player, object, or zone; if the object is not a permanent, or is a permanent that isn't a creature or planeswalker, or is a zone other than the battlefield, nothing happens; if the target is the battlefield, each non-token creature and non-token planeswalker (including ones with shroud/hexproof, but not if it has protection from red) takes 3 points of damag 21:33:58 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 21:34:43 -!- Sprocklem has joined. 21:35:34 -!- zzo38 has quit (Remote host closed the connection). 21:36:06 -!- hppavilion[1] has joined. 21:37:22 relation 21:37:26 Whoops 21:37:29 Meant to ctrl+f 21:42:39 *reads about the ending phase* ... could there be an infinite loop of cleanup steps... 21:44:40 -!- J_Arcane has joined. 21:47:50 -!- ais523 has joined. 21:48:51 tswett: Ugh, trying to figure out BrainProof 21:58:36 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 22:16:16 -!- `^_^v has quit (Quit: This computer has gone to sleep). 22:20:44 -!- spiette has quit (Ping timeout: 244 seconds). 22:25:48 -!- jaboja has joined. 22:26:19 -!- Sprocklem has quit (Quit: [). 22:30:27 -!- jaboja has quit (Ping timeout: 248 seconds). 22:36:55 -!- spiette has joined. 22:45:42 -!- Opodeldoc has quit (Quit: Leaving). 22:53:03 -!- oerjan has joined. 22:59:36 -!- spiette has quit (Quit: :qa!). 23:00:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 23:02:42 -!- lambda-11235 has joined. 23:07:44 `? mousse 23:07:50 mousse? ¯\(°​_o)/¯ 23:08:32 would mousse be a sharp rodent? <-- i'm not quite sure where you get "sharp" twh 23:09:23 oh hm 23:09:50 -!- boily has joined. 23:10:21 I guess you got it, but anyway: a mousssse would be super extra sharp. 23:10:43 int-ello. sharp mousse? 23:11:08 check the logss 23:12:40 `learn A mousse is a sharp rodent. "A mousse once bit my sister." 23:12:49 I logsschecked. I still don't grok it. 23:12:49 Learned 'mousse': A mousse is a sharp rodent. "A mousse once bit my sister." 23:12:56 i hope the quote is accurate twh 23:13:05 hellørjan. you seem to be having understood it. 23:13:24 it's a pun on ß, often written "ss". 23:14:05 it's really just an s with a scarf 23:14:23 I'll readily admit that it wasn't very inspired 23:14:34 * boily lightly thwacks int-e 23:14:38 0.3 shachafs. 23:14:48 `? ß 23:14:50 ​ß? ¯\(°​_o)/¯ 23:14:59 `learn ß is not a beta. 23:15:02 Learned 'ß': ß is not a beta. 23:15:08 darn 23:16:16 `learn_append ß It's a "scharfes S", aka s with a scarf. 23:16:21 Learned 'ß': ß is not a beta. It's a "scharfes S", aka s with a scarf. 23:16:49 Err... with a scharf. 23:17:06 with a schacharf. 23:17:14 int-e: also, i didn't actually get it, i just got a different idea. 23:17:16 Would omegpsi be a co-alphabet? 23:17:34 int-e: i got it hth 23:17:58 shachaf: thanks, always a pleasure to drag people down to my level 23:18:10 zgrep: no, we have to consider the sk -> sch sound change in german hth 23:18:21 Ah. 23:18:43 schlerosis? 23:19:17 int-e: what's an omegpsi? 23:19:26 I do not Deutsch sprechen. 23:20:15 boily: just musing about the etymology of "alphabet" 23:20:32 boily: I mean I don't even know what a co-alphabet would be. 23:20:44 coal phab et al. 23:21:12 shachaf: it may be a little older than the borrowing of that medical term hth 23:21:34 int-e: oh. makes sense. tdh 23:22:11 moi neither, je speake not le Deutsch. 23:22:12 boily: hoily 23:22:17 shachaf: hellochaf. 23:22:23 `? ratatouille 23:22:26 ratatouille? ¯\(°​_o)/¯ 23:22:30 eye of newt and toe of frog / wing of bat and pooch of dog 23:22:33 hmm 23:22:36 eye of newt and toe of frog / wool of bat and pooch of dog 23:23:01 `learn A ratatouille is a stuttering rodent. 23:23:05 Learned 'ratatouille': A ratatouille is a stuttering rodent. 23:23:34 int-e: you can add your own wisdom you know hth 23:24:04 In the game Lost Vikings 2, you collect a wing of bat to give to the witch to bring you home. 23:24:29 `? til 23:24:32 TIL that TIL means Today I Learned 23:24:35 wait. you give a wing to bring back a bat??? 23:25:01 til is also the most confusingest Norwegian word. 23:25:24 it's cognate to german "Ziel", which means goal, iirc 23:25:43 but somehow it got press ganged into a preposition. 23:26:17 `translatefromto en no wisdom/til | sponge wisdom/til 23:26:23 that doesn't even make sense 23:26:31 (for a while it thus governed the genitive case, while our prepositions still did that sort of thing.) 23:26:55 and a few stock phrases still do that. "til sjøs" = at sea 23:27:13 «tille cheusse». 23:27:15 or to the sea 23:27:24 it can mean both, i think. 23:27:28 or wait 23:27:35 `? norwegian 23:27:37 norwegian? ¯\(°​_o)/¯ 23:29:13 i may be confusing it with "til lands og til vanns" (a stock phrased used about a magical boat in a fairy tale that could sail on the ground or on the water, or even fly) 23:29:17 *phrase 23:29:43 `? shachaf 23:29:44 shachaf sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. 23:29:57 spr/o som selleri 23:30:07 spr(/) 23:30:08 oh and "til fots", by foot 23:30:28 oerjan: have you considered that english is simpler than norwegian 23:30:29 shachaf: your wisdom lacks pooches hth 23:30:46 boily; then it reflects me 23:31:07 : 23:33:00 «tille cheusse». <-- that's pretty accurate pronunciationwise, i think 23:33:44 -!- Lord_of_Life has quit (Excess Flood). 23:33:52 shachaf: i think that's debatable. 23:34:32 the spelling isn't quite as insane as english, anyway 23:34:49 although still not exactly a bijection 23:35:24 the genders don't help, i guess. otoh we have less verb inflection. 23:35:37 -!- Lord_of_Life has joined. 23:36:10 (no pesky progressive, and no person/number suffixes) 23:36:29 oh my god, your language suck so hard! 23:36:32 it's not even useful 23:36:37 delete irc please 23:36:51 `welcome nzt-fish 23:36:52 nzt-fish: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 23:37:15 oerjan: I'm homosexual. Is that okay? 23:37:28 nzt-fish: you seem confused. and yes, that's okay. 23:37:45 I suck a lot of dicks. If you ban me, you're a homophobe 23:38:03 but trolling is not okay. 23:38:16 indeed. 23:38:27 oerjan: What about when you do it? 23:38:41 shachaf: i mean boring trolling of course, duh 23:38:45 Oh. 23:38:50 Sure, no one wants that. 23:40:13 -!- hppavilion[1] has joined. 23:40:54 hppavellon[1]. 23:40:58 @metar LOWI 23:40:58 LOWI 022320Z AUTO VRB02KT 9999 FEW007 BKN010 02/01 Q1003 23:41:11 @@ @@ (@where weather) LOWI 23:41:12 LOWI 022320Z AUTO VRB02KT 9999 FEW007 BKN010 02/01 Q1003 23:41:15 much better tdh 23:41:27 `learn_append shachaf The unit of bad punnery is named after him. 23:41:31 Learned 'shachaf': shachaf sprø som selleri and cosplays Nepeta Leijon on weekends. He hates bell peppers with a passion. The unit of bad punnery is named after him. 23:41:38 ahoily, boily 23:41:46 oerjan: Is there a wisdom entry for the unit of bad punnery? 23:42:02 oerjan: Hey, you never made the temperature thing for lambdabot work. 23:42:17 -!- Phantom_Hoover has joined. 23:42:22 shachaf: well given that the unit is named "shachaf"... 23:42:38 `? schaf 23:42:40 schaf? ¯\(°​_o)/¯ 23:42:51 Oh, I thought it was "shachafs". 23:43:28 `` cd wisdom; for f in *; do [ -e "$f"s ] && echo "$f"; done 23:43:29 log \ math \ monad \ monoid \ the u 23:43:32 `? log 23:43:34 I think you might mean !logs 23:43:35 `? logs 23:43:37 ​I think you might mean !logs 23:43:40 `? math 23:43:42 Math class is tough! 23:43:43 `? maths 23:43:44 Maths stands for Mathematical Anti-Telharsic Harfatum Septomin. 23:43:46 shachaf: hm maybe 23:43:49 `? monad 23:43:50 Monads are just monoids in the category of endofunctors. 23:43:53 `? monads 23:43:54 Monads are just free monad monad monad algebras. 23:43:58 `? the u 23:44:00 The U are a very mad people. 23:44:01 `? the us 23:44:03 The US is the country opposed to the THEM. 23:44:22 that's way too accurate 23:44:31 oerjan: it's shachafs hth 23:44:37 shachaf: well it would 1 shachaf, anyway. 23:44:55 oerjan: no, it's like flops 23:44:57 1 flops 23:45:00 10 flops 23:45:05 boily: that doesn't sound like a proper SI unit 23:45:12 you don't pluralize those 23:45:16 shachaf isn't very standard hth 23:45:44 or wait, maybe english does 23:45:56 is it 2.3 newton or newtons 23:45:58 `le/rn schaf/"Schaf" is german for "sheep". There is absolutely no relation to shachaf. 23:46:03 Learned «schaf» 23:46:13 int-e: why didn't you use `learn tdnh hth 23:46:22 shachaf: because of the quotes 23:47:02 `learn " is a double quote, added to wisdom as a test. 23:47:08 Learned '"': " is a double quote, added to wisdom as a test. 23:47:12 `revert 23:47:13 Oh, I thought `learn handled those. 23:47:18 I guess not. 23:47:20 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 23:47:27 oerjan: See, that's why no one trusts `learn. 23:47:50 In the category of numbers, what are the morphisms? Does such a category even make sense (I have a feeling it might not)? 23:48:07 That's up to you. 23:48:16 shachaf: Me? 23:48:27 There are lots of categories where the objects are numbers, but you don't specify a category by specifying the objects. 23:48:31 int-e: you cannot use `revert to remove files hth 23:48:37 There are also categories where the arrows are numbers. 23:48:39 `? " 23:48:40 ​"? ¯\(°​_o)/¯ 23:48:45 numbers are scalars, AKA 1×1 matrices, so you're in the Mat category. 23:48:47 shachaf: Thought that might be the case 23:48:51 `touch test2 23:48:53 No output. 23:48:54 boily: Good point 23:48:55 `cat test2 23:48:56 No output. 23:48:57 But you need to talk about which one you're talking about. 23:49:00 `? " 23:49:02 ​" is a double quote, added to wisdom as a test. 23:49:06 shachaf: hth 23:49:15 `rm wisdom/" 23:49:15 no op in here? 23:49:16 shachaf: What are some examples of common morphisms in categories with numbers as the elements? 23:49:17 pah 23:49:18 No output. 23:49:25 hppavilion[1]: That's up to you. 23:49:31 nzt-fish: it's up to you to guess who's a chanop. 23:49:36 And while we're at it, what about where the arrows are numbers 23:49:38 int-e: it's particularly insidious in that it seems to work until the next repository change (iiuc) 23:49:38 hppavilion[1]: I'll give you three examples and then you go figure them out and tell me things about them. 23:49:53 All of these categories have natural numbers as objects. 23:49:54 `rm test2 23:49:55 nzt-fish: We have ops, but they have to make ChanServ op themselves to be ops 23:49:56 No output. 23:50:00 nzt-fish: THen they deop 23:50:03 i'm a chanop and so is my wife 23:50:09 or wait, was that spartacus 23:50:13 A: There's an arrow between X and Y iff X <= Y 23:50:15 okay, how about this 23:50:28 * nzt-fish pulls out his huge donger and dicks every single one of you, you and you and you. 23:50:31 B: An arrow between N and M is an NxM matrix. Composition is matrix multiplcation. 23:50:45 nzt-fish: surely you can be more creative than that 23:50:50 oerjan: can I be op momentarily and mapole the fish into oblivion? pretty please? 23:50:57 oerjan: See, that's why no one trusts `learn. <-- well i added documentation. 23:50:58 C: An arrow : N -> M is an M-tuple of numbers smaller than N. Composition is pointwise indexing. 23:51:01 int-e: yes, but it's enough to get banned. now where are the ops 23:51:06 `learn 23:51:07 ​/hackenv/bin/learn: line 3: wisdom/: Is a directory \ Learned '': 23:51:16 shachaf: heh, nice one :D 23:51:31 boily: ? 23:51:50 did you just `learn the empty file with an empty name? 23:51:53 hppavilion[1]: Now go figure out what those categories are and tell oerjan when you're done. 23:51:56 or am I grossly mistaken... 23:51:59 I was trying to see oerjan's documentation. 23:52:12 shachaf: Yep, working on that 23:52:13 `le/rn /foo 23:52:14 No output. 23:52:32 `` le/rn '/foo'; echo $? 23:52:32 1 23:52:38 I guess it checks that. 23:53:09 * boily rolls a d20 for a charm/diplomacy check against oerjan 23:53:30 I got 18. 23:53:54 @dice d20 23:53:54 int-e: 1 23:53:57 hah! 23:54:03 shachaf: What kind of matrix is the NxM matrix? 23:54:23 shachaf: As in, is it N^nxm? 23:54:26 Or R^nxm 23:54:31 Or I^nxm 23:54:36 so what would a critical charm/diplomacy failure look like... 23:54:43 int-e fumbles, grips hppavilion[1] by the arm and they both tumble down a sudden cliff that materialized out of nowhere 23:55:00 a, straight to hell? convenient... 23:55:17 hppavilion[1]: Let's say reals. 23:55:24 shachaf: OK 23:55:37 boily: personally I was thinking of bursting mirrors 23:55:42 -!- ChanServ has set channel mode: +o boily. 23:55:52 thoerjan ^^ 23:55:57 got to respect the dice 23:56:20 d20 23:56:21 shachaf: 18 23:56:25 oh man 23:56:37 damn, that contextual match is still there? 23:56:42 -!- boily has set channel mode: +b *!~nzt@unaffiliated/nzt. 23:56:44 -!- boily has kicked nzt-fish *THWACK* too doo doo doo doo doooo ♪ IT'S A HOMERUN!. 23:56:50 -!- boily has set channel mode: -o boily. 23:57:51 hppavilion[1]: The real point of this exercise is to realize that the objects of a category are pretty irrelevant. 23:58:08 shachaf: Yes, but now I'm invested 23:58:32 That third category is a very obscure one you've probably never heard of. 23:58:38 so you can have completely pointless categories and the theory will still work just as well as before 23:58:52 It has the property that products are products and sums are sums. 23:59:08 You can probably figure out some more properties. 23:59:11 `? learn 23:59:13 ​`learn creates a wisdom entry and tries to guess which word is the key. Syntax (case insensitive): `learn [a|an|the] [s][punctuation] [...]