00:04:33 -!- sprocklem has quit (Ping timeout: 264 seconds). 00:05:09 I need to say something with all kinds of formatting, to test a thing. It should even have background colors. 00:09:33 mysterious V format. 00:09:46 oh, reverse! 00:09:52 The reverse video I didn't do. 00:10:09 fizziello. will you put the logs in the /topic? 00:10:13 Because https://modern.ircdocs.horse/formatting.html said it's a little unclear. 00:10:18 As soon as they're ready. 00:10:59 `? #esteric 00:11:00 ​#esteric? ¯\(°​_o)/¯ 00:11:06 `? #esoteric 00:11:07 ​#esoteric is the only channel that exists. After monqy left it became slightly off-centër. It's a 7-codimensional hyperenchilada about 30 m (100 ft) across. oerjan seems to be making a lawn in the northern part, but it keeps getting dug up by free ranging moons. Currently located in the Atlantis Exclusion Zone. 00:12:33 There's about five TODOs to address before I think the logs would be ready enough to publicize. 00:14:33 (1) Add a blurb (probably at the bottom of the index page) with explanations and links to other logs; (2) start the log-server as a service rather than just running it in a screen manually; (3) read the config from a file instead of it being hardcoded; (4) publish the source code; and (5) make the CSS not *horribly* broken on mobile. 00:14:33 have you heard of our lord and saviour Cucumber, of the Holy Acceptance Test-Driven Development? 00:16:12 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:21:06 Oh, tests would be nice too. 00:22:52 -!- LKoen has joined. 00:27:37 -!- LKoen has quit (Ping timeout: 256 seconds). 00:34:09 2 & 3 done. 00:54:31 fungot: are your nostrils dæmoniac? 00:57:32 -!- sprocklem has joined. 01:02:25 -!- jaboja has joined. 01:09:27 5 done-ish. It's not *good* by any means, but I added extra line spacing in the index for @media (pointer:coarse), and then added a @media (max-width: 640px) breakpoint on the logs page to switch to a "time \nmessage\n\n"-style layout instead. 01:09:43 There's still one CSS trick I've not managed, and that is to have in the desktop experience, simultaneously, (a) the message body section take up any extra space without scripting, (b) the messages to line-wrap aligned to where they start, and (c) the end result be copy-pasteable without horrible extra newlines. 01:09:48 I ended up doing (a) & (b) by "display: flex", but now there's newlines everywhere. When I tried non-flexboxy ways which did (c) well, either I had to specify a width or the lines would wrap to the left edge. 01:09:58 Webdev is hard and unpleasant. :/ 01:12:27 fizzie: The one-page version is much more convenient. 01:12:37 Why paginate it by year? 01:14:19 It was behaving real sluggishly for me. I can add an "all" view, but I think I'll still keep the default as the most recent year. 01:15:09 sgtm 01:15:49 Is it going to have codu.org's stalker mode? 01:18:49 That's a v2 thing. Maybe? I didn't check yet how that's implemented, though I think I saw some XHR being involved. 01:19:49 Guess it should be websockets these days. 01:24:05 -!- jaboja has quit (Ping timeout: 240 seconds). 01:26:22 -!- hppavilion[1] has joined. 01:41:51 -!- UnB_Z has joined. 01:44:30 -!- FreeFull has quit (Quit: Lost terminal). 01:47:04 -!- Guest6549 has joined. 01:48:07 -!- Slereah_ has quit (Ping timeout: 268 seconds). 02:07:59 -!- hppavilion[1] has quit (Ping timeout: 248 seconds). 02:11:03 -!- UnB_Z has left. 02:12:04 -!- doesthiswork has joined. 02:19:49 -!- sleffy has quit (Ping timeout: 256 seconds). 02:28:11 -!- boily has quit (Quit: DUTCH CHICKEN). 02:30:01 -!- Soni has quit (Ping timeout: 250 seconds). 02:58:26 -!- sleffy has joined. 03:08:51 -!- sleffy has quit (Quit: Leaving). 03:09:09 -!- sleffy has joined. 03:12:01 -!- hppavilion[1] has joined. 03:19:07 -!- hppavilion[1] has quit (Read error: Connection reset by peer). 03:19:30 -!- hppavilion[1] has joined. 03:20:56 -!- doesthiswork1 has joined. 03:21:14 -!- doesthiswork has quit (Read error: Connection timed out). 03:31:00 -!- variable has joined. 03:45:02 -!- FreeFull has joined. 03:51:38 -!- hppavilion[1] has quit (Quit: HRII'FHALMA MNAHN'K'YARNAK NGAH NILGH'RI'BTHNKNYTH). 03:52:26 -!- hppavilion[1] has joined. 03:59:24 -!- variable has changed nick to constant. 04:37:41 -!- doesthiswork has joined. 04:37:41 -!- doesthiswork1 has quit (Read error: Connection reset by peer). 04:42:50 -!- xkapastel has joined. 05:05:01 -!- doesthiswork1 has joined. 05:05:01 -!- doesthiswork has quit (Read error: Connection reset by peer). 05:06:05 -!- doesthiswork has joined. 05:06:05 -!- doesthiswork1 has quit (Read error: Connection reset by peer). 05:08:24 -!- doesthiswork1 has joined. 05:08:24 -!- doesthiswork has quit (Read error: Connection reset by peer). 05:10:00 -!- doesthiswork has joined. 05:10:00 -!- doesthiswork has quit (Client Quit). 05:10:00 -!- doesthiswork1 has quit (Read error: Connection reset by peer). 05:30:16 -!- doesthiswork has joined. 05:49:29 -!- hppavilion[1] has quit (Ping timeout: 256 seconds). 05:58:35 -!- ais523 has quit (Quit: quit). 06:17:20 -!- augur_ has joined. 06:20:45 -!- augur has quit (Ping timeout: 264 seconds). 06:57:57 -!- augur_ has quit (Remote host closed the connection). 07:03:09 -!- doesthiswork has quit (Quit: Leaving.). 07:05:00 -!- FreeFull has quit. 07:06:56 -!- joast has quit (Ping timeout: 268 seconds). 07:08:50 -!- MDead has joined. 07:08:50 -!- MDead has changed nick to MDude. 07:08:51 -!- MDude has quit (Excess Flood). 07:09:10 -!- MDude has joined. 07:11:29 -!- AnotherTest has joined. 07:27:11 -!- AnotherTest has quit (Ping timeout: 240 seconds). 07:43:43 -!- AnotherTest has joined. 08:04:58 -!- hppavilion[1] has joined. 08:12:34 [[Purple]] https://esolangs.org/w/index.php?diff=53574&oldid=53520 * Quintopia * (-25) golf python interpreter 08:13:28 -!- constant has quit (Quit: Found 1 in /dev/zero). 08:15:37 [[Purple]] M https://esolangs.org/w/index.php?diff=53575&oldid=53574 * Quintopia * (-1) just one more byte, i promise 08:23:20 [[Purple]] https://esolangs.org/w/index.php?diff=53576&oldid=53575 * Quintopia * (-20) okay a few more bytes off python interpreter 08:25:29 [[Purple]] https://esolangs.org/w/index.php?diff=53577&oldid=53576 * Quintopia * (-3) okay i swear these are the last two bytes for the night 08:49:36 -!- sleffy has quit (Ping timeout: 272 seconds). 09:21:59 -!- hppavilion[1] has quit (Ping timeout: 256 seconds). 09:25:25 -!- Soni has joined. 09:32:57 -!- AnotherTest has quit (Ping timeout: 240 seconds). 09:45:32 -!- AnotherTest has joined. 10:22:40 Whoa #esoteric is 15? 10:23:40 It's 11 for me. 10:24:40 shachaf: the topic disagrees it would seem 10:25:04 Nope, definite window 11. 10:42:16 -!- xkapastel has quit (Quit: Connection closed for inactivity). 11:17:07 fizzie: "how are you supposed to remember the difference between learn_append and learn_append2?" => you just have to remember that wisdoms are stored as plain text files in the wisdom directory, lowercased and with a trailing s stripped from their name, and the `? rules of wisdom 11:17:13 `? rules of wisdom 11:17:14 unless essential for the entry‘s humor, should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation 11:17:42 then you can manipulate them with ordinary unix tools. this is the whole point of using plain text for all sort of source files and configuration files, that we can use the same tools for each of them 11:18:04 you can make custom tools if you prefer, but you're not required to use other people's custom tools 11:18:49 -!- jaboja has joined. 11:26:40 b_jonas: Manipulating them with standard tools is exactly what I do, but people complain I don't use the tools. 11:26:40 -!- jaboja has quit (Remote host closed the connection). 11:28:07 fizzie: hmm. 11:28:13 `slwd rules of wisdom//s/should/they &/ 11:28:15 rules of wisdom//unless essential for the entry‘s humor, they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation 11:29:15 `cat bin/learn_append 11:29:16 ​#!/bin/bash \ topic="$(echo "$1" | lowercase | sed 's/s\? .*//')" \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/\n/ /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo -n "Learned '$topic': " \ cat "wisdom/$topic" 11:29:17 `cat bin/learn_append2 11:29:18 cat: bin/learn_append2: No such file or directory 11:29:30 fizzie: seems p. easy to remember to me hth 11:36:05 -!- boily has joined. 11:38:18 do we have a command for (1) looking up a wisdom from name and returning its filename, or (2) doing normalization on the name of a new wisdom and returning the filename you should create it as? 11:42:23 -!- h0rsep0wer has joined. 11:57:37 -!- sebbu has quit (Quit: reboot (update)). 11:59:42 b_jellonas. I think we settled on normalization hth 12:01:31 boily: we didn't settle. someone changed the handling of leading backtick just half a year ago or something. 12:02:52 oh. 12:08:10 or maybe not? hmm 12:08:15 `? `rules of wisdom 12:08:16 unless essential for the entry‘s humor, they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation 12:08:22 yeah, it was changed 12:10:38 `? hand 12:10:39 A hand in the bush is better than a stoned bird. 12:10:46 that applies to case (1) only I think 12:10:49 but still 12:11:07 who knows, maybe next time we'll install a stemmer or something 12:11:20 that would make hand-normalization pretty much impossible 12:14:51 oh, a tutorial for making up misattributed quotes: http://www.qwantz.com/index.php?comic=3225 12:22:17 -!- boily has quit (Quit: AIR CHICKEN). 12:39:07 [[WLoop]] https://esolangs.org/w/index.php?diff=53578&oldid=53572 * Sacchan * (+135) 12:39:27 [[User:Sacchan]] https://esolangs.org/w/index.php?diff=53579&oldid=43739 * Sacchan * (+12) 13:05:20 -!- h0rsep0wer has quit (Quit: Leaving). 13:43:07 -!- joast has joined. 13:49:04 -!- doesthiswork has joined. 14:49:36 -!- `^_^v has joined. 15:03:23 -!- doesthiswork has quit (Quit: Leaving.). 15:08:23 -!- sebbu has joined. 15:19:32 -!- ski_ has changed nick to ski. 15:22:33 -!- fizzie has set topic: Welcome to the international hub for esoteric programming language discussion, design, development and deployment! | http://esolangs.org | logs: http://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf. 15:22:39 Might as well have it there. 15:23:13 Oooh, nice 15:23:51 Not sure if the canonical links in the topic should be https://. 15:24:46 It is set up like that in the wiki configuration, but AFAIK that only affects two things: the links in the recent changes posted by the bot, and the links included in any automated emails. 15:27:47 -!- LKoen has joined. 15:31:49 `? no reason 15:31:50 no reason? ¯\(°​_o)/¯ 15:32:01 `? any reason 15:32:02 `? reason 15:32:02 any reason? ¯\(°​_o)/¯ 15:32:03 reason? ¯\(°​_o)/¯ 15:34:22 b_jonas: HackEgo is completely unreasonable 15:38:13 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=53580&oldid=49124 * Fizzie * (+42) /* #Esoteric */ Add local logs link. 16:07:37 -!- jaboja has joined. 16:08:19 So in github, to create a pull request, I still have to clone the repository to a github account, right? 16:08:58 -!- zseri has joined. 16:15:09 b_jonas: if you don't have write permission to the repo, according to Github's help doc 16:21:47 hm 16:23:01 -!- jaboja has quit (Ping timeout: 256 seconds). 16:25:50 Taneb: ok 16:36:24 -!- ais523 has joined. 16:51:52 -!- LKoen has quit (Remote host closed the connection). 17:05:16 -!- FreeFull has joined. 17:07:10 -!- ais523 has quit (Quit: sorry for my connection). 17:07:23 -!- ais523 has joined. 17:57:41 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=53581&oldid=53580 * Ais523 * (-236) /* Information */ rm section; not much point in supporting an esolang section on Stack Overflow Documentation when the entire site has shut down 18:08:45 <\oren\_> how to delete all files in /tmp/ belonging to me? 18:09:40 rm -rf /tmp/ as you? 18:10:00 <\oren\_> zseri: that will also delete files that I have write access to 18:10:06 oh 18:10:07 <\oren\_> but don't belong to me 18:10:28 find /tmp/ -user ... -rm ? 18:10:51 <\oren\_> hmmm find... yeah I'll look at teh manpage 18:11:45 <\oren\_> find -maxdepth 1 -user oren -delete 18:16:45 -!- CoffeeCatt_ has joined. 18:17:46 -!- CoffeeCatt_ has left. 18:18:38 I should introduce a cursor class into zsdatab for context browsing, e.g. access of fields by name in each row 18:19:03 fizzie: hmm, dead link? 18:20:14 (the logs one) 18:22:40 never mind. 18:23:12 * int-e was bitten by an outdated entry in /etc/hosts ... 18:23:17 -!- sleffy has joined. 18:29:53 -!- xkapastel has joined. 18:33:48 -!- Phantom_Hoover has joined. 18:42:25 -!- oerjan has joined. 18:46:37 -!- Phantom__Hoover has joined. 18:47:47 -!- Phantom__Hoover has quit (Client Quit). 18:48:49 hoerjelloan 18:52:50 `quote chicken 18:52:52 303) my most fresh dream is one where I'm at a soup contest and a chicken really wants to participate but he's disqualified so he becomes the judge. when all the soups are done and he's ready to taste them he just stares at the soup and then I become the chicken and I really want to make soup \ 601) There's British KFC? Kent 18:55:34 hint-e 18:55:42 hm still no xkcd 18:57:28 Monday's Freefall was nice. 18:58:58 (I liked the twist on "we're the worst people to do it") 19:15:41 [[CJam]] M https://esolangs.org/w/index.php?diff=53582&oldid=53021 * Nooodl * (-2) fix attribution 19:27:09 fizzie: looked at the new logs index, somehow all the months show as overlapping each other. 19:27:30 (probably can blame IE somehow.) 19:28:33 * oerjan falls back to address bar editing, which is how he usually accesses the logs anyway 19:28:43 oerjan: CSS is hard. :/ I probably shouldn't have even attempted to make it use several columns, I was just annoyed at the lots of wasted screen real estate. 19:29:04 oh columns... 19:29:24 Well, it's not really columns. It's a flexbox. 19:29:42 https://caniuse.com/#search=flexbox says IE 11 but "Partial support is due to large amount of bugs present (see known issues)". 19:29:52 OKAY 19:30:23 Which version of IE are you interested in? 19:31:03 well i'm using 11, which is the final one. 19:36:10 Looking at those known issues, maybe I can make some tweaks. Wonder if there's good free ways to test with IE. 19:45:57 it's not that big of a deal for me, anyway 19:49:08 <\oren\_> fizzie: you can get a free windows 10 virtual box on microsoft website 19:53:27 -!- augur has joined. 19:53:39 b_jonas: Manipulating them with standard tools is exactly what I do, but people complain I don't use the tools. <-- to be more precise, what i complain about is any kind of edit where i cannot see from what happens in the channel whether you messed something up. which is why the HackEgo tools all display the resulting file. 19:57:07 (and for wisdoms, whether there was one previously.) 19:57:30 -!- augur_ has joined. 19:57:51 -!- augur has quit (Ping timeout: 248 seconds). 20:22:34 -!- wob_jonas has joined. 20:23:21 fizzie: a next/previous link in the HTML version of the new logs might make sense 20:26:35 hmm, today gog speaks russian with me 20:31:16 [[Special:Log/newusers]] create * Minin * New user account 20:34:49 int-e: who is gog 20:35:28 a drm free game shop 20:39:41 it seems that their front page is served from a cache which isn't good at guessing languages. it's amusing. 20:42:44 youtube is sometimes stupid at finding musical numbers from phrases in their lyrics. you have to use the title. 20:43:30 if I search for 'oda is eljőnek szüzek szép leányok' directly in youtube, it finds random nonsense, even though if I search for that in the main google search, it knows which song that is from 20:43:36 -!- Warrigal has quit (*.net *.split). 20:43:37 -!- izabera has quit (*.net *.split). 20:43:45 -!- Warrigal has joined. 20:44:19 -!- izabera has joined. 20:52:47 -!- LKoen has joined. 20:57:31 -!- LKoen has quit (Ping timeout: 255 seconds). 21:01:55 wob_jonas: Agreed, was going to add one. 21:03:47 -!- `^_^v has quit (Quit: This computer has gone to sleep). 21:06:07 thanks 21:14:59 -!- Slereah_ has joined. 21:15:43 -!- Guest6549 has quit (Ping timeout: 248 seconds). 21:21:35 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=53583&oldid=53560 * Minin * (+262) /* Introductions */ 21:22:05 [[User:Minin]] N https://esolangs.org/w/index.php?oldid=53584 * Minin * (+13) Created page with "me me big boy" 21:22:26 [[User talk:Minin]] N https://esolangs.org/w/index.php?oldid=53585 * Minin * (+3) Created page with "no." 21:23:51 also, I wonder if it would be worth splitting to fewer pages, not one per day, but like one per week or one per two weeks 21:25:48 `relcome esowiki 21:25:49 ​esowiki: 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.) 21:32:46 fizzie: fwiw, I like the 1 day granularity. 21:36:06 hmm, today gog speaks russian with me <-- * briefly reads that as "dog" 21:36:23 Days are sort of the convention. That's not to say I couldn't offer other granularities as well, e.g. as /weeks.html for the index and /YYYY-wNN.{html,txt} for the logs. 21:39:10 They're actually saved as logs/Y/M/D.pb(.br) with no padding of dates, which I kind of regret, because ls sorts the months "1 10 11 12 2 3 ..." and so on. (There's probably an option.) 21:40:16 -!- `^_^v has joined. 21:45:44 bye 21:45:45 -!- zseri has quit (Quit: Leaving). 21:46:50 fizzie: I'm kind of tempted to suggest marking the days of the week, thus: http://int-e.eu/~bf3/tmp/e.html 21:47:53 (I did that manually so I stopped after 1 1/2 months) 21:51:27 fizzie: longer files would help searches 21:52:22 [[User:Minin]] https://esolangs.org/w/index.php?diff=53586&oldid=53584 * Minin * (+42) 21:52:54 [[Kappa]] N https://esolangs.org/w/index.php?oldid=53587 * Minin * (+57) Created page with "kappa is a language coded by humans, this page is a w.i.p" 21:58:15 [[Special:Log/newusers]] create * K1nzy * New user account 21:59:55 * ais523 vaguely wonders why IRC documentation would use a .horse domain name 22:01:03 * int-e wonders whether ais523 has looked at Countercall in the past month. 22:01:27 `? countercall 22:01:28 countercall? ¯\(°​_o)/¯ 22:02:11 int-e: I look at recent changes sometimes but can easily miss changes to my watchlist as a result 22:02:12 http://esolangs.org/wiki/Countercall 22:02:23 (I'm still annoyed by how difficult it is to reason about, despite being obviously non-TC ;-) ) 22:02:27 nope, nobody's changed it 22:02:32 also I'm not convinced it's non-TC 22:02:42 I know, hence the smiley. 22:02:45 if it is non-TC, it's for a bizarre reason that isn't shared with most other languages 22:02:51 In fact you state the opposite on the wiki page. 22:02:54 as opposed to one of the usual ones 22:03:16 like, some sort of chicken-and-egg style problem where to do anything in the language you need to do something else first 22:03:48 ais523: ah yes, that crazy language 22:03:52 Anyway, the thing still bugs me. 22:04:09 int-e: what? how is it "obviously non-TC"? 22:04:15 ah, smiley 22:04:41 ais523: I really can't make up my mind on whether it's TC 22:05:03 sometimes I think it's non-TC and there's probably an easy proof for that but it's hard to find 22:05:12 and sometimes I think it's TC 22:06:05 int-e: I thought about countercall a bit because of the interview 22:06:11 but haven't come to conclusions 22:06:20 I don't think this is something I could do a TCness proof for in my head 22:06:24 (which is my preferred way to do them) 22:07:06 yeah. I did a proof that dofuck is TC in my head, and only has the very minimal limitations with IO that are obvious, but never written them down 22:07:22 also some proofs about my messed up Amycus with certain primitives removed 22:07:26 [[Kappa]] https://esolangs.org/w/index.php?diff=53588&oldid=53587 * Minin * (+436) 22:08:01 but in the case of Amycus, finding out that the originally intended language is much less of an esolang made me abandon that 22:08:43 I also know that the language I want to create is TC, and more, it can simulate a pointer machine "efficiently", with only polylog factor of time slowdown 22:08:48 ais523: did you know that the typed lambda calculus is not TC even if you add a family of fixed point combinators? (a family, because you may need one for every type.) 22:09:28 but that one is easier, because I'm deliberately creating that language to be expressive, unlike Countercall which you deliberately define to be hard to use 22:09:41 int-e: no, in fact that would greatly surprise me 22:09:54 is the problem that there are only finitely many functions of any given type? 22:10:08 wob_jonas: countercall was aiming for the edge between TC and not 22:10:13 ais523: as in the typed lambda calculus with no algebraic data type? 22:10:14 but I think it hit it more precisely than I was expecting 22:10:40 (Richard Statman proved that the halting problem is still, somehow, decidable in that calculus. (The paper is called "On The Lambda Y Calculus")) 22:11:07 wob_jonas: yes, no algebraic datatypes 22:11:08 wob_jonas: you can simulate sum and product types in typed lambda calculus 22:11:19 ais523: yeah, but I want recursive types too 22:11:32 as in, lists 22:11:32 ah right, recursive types are more power than typed lambda calculus has 22:11:38 infinite ones, anyway 22:11:50 Adding any non-empty recursive type (and fixed point combinators) will make it TC. 22:12:09 int-e: yes, I know, I wrote a loop combinator that way 22:12:23 implemented in olvasható 22:13:17 web.forward: points -44.00, score 0.00, rank 46/47 22:13:20 web.forward: points -44.00, score 0.00, rank 46/47 (--) 22:13:23 hmm wait, maybe that's not just one type 22:13:29 web.forward: points -44.00, score 0.00, rank 46/47 (--) 22:13:34 maybe it's one type constructor 22:14:32 but I guess you could just use one recursive type that's a union of everything, simulate a weakly typed language, and then, if you prefer, simulate a strongly typed language in that weakly typed language 22:14:37 natural numbers (ala data Nat = Z | S Nat) suffice 22:15:11 http://math.bme.hu/~ambrus/pu/olvashato/t2n.olv -- yeah, that's not one type, that's in fact two type constructors with two type parameters each. sorry. 22:15:27 huh, someone's playing BF Joust 22:16:43 and yeah, I also use the built-in integer number types to do useful things with that loop 22:16:52 and the built-in list type too 22:17:03 although lists aren't technically necessary 22:17:06 whatever 22:19:52 I wish rust had an attribute to tell that a given type parameter in a generic fn definition is a phantom parameter, as in that changing it won't change the generated code. the compiler could check this and allow it only if it can prove that it's indeed phantom in that sense. 22:20:11 of course this is hard to define precisely without knowing how rust represents certain types. 22:20:42 !zjoust hmmm < 22:20:42 oerjan.hmmm: points -46.00, score 0.00, rank 47/47 22:20:45 wob_jonas: does PhantomData do what you want? 22:20:52 ais523: no 22:21:03 ais523: PhantomData does something else 22:21:08 right 22:21:20 I know what PhantomData does but not really what you want 22:21:25 -!- moony has joined. 22:21:29 do you mean "uninspected", as in the code just copies around the value without looking at it? 22:21:38 oerjan: this reminds me, has there been a new hilltopper in 2017 at all? 22:21:42 I used to do one a year 22:21:46 i don't remember 22:21:51 but I'm out of ideas and am worried that BF Joust has been solved 22:21:55 http://esolangs.org/wiki/BF_Joust_strategy 22:22:00 err 22:22:02 http://esolangs.org/wiki/BF_Joust_strategies 22:22:09 [[Kappa]] https://esolangs.org/w/index.php?diff=53589&oldid=53588 * Minin * (+549) 22:22:11 nope, 2016 22:22:33 i think things got haywire after that beat-everything-on-the-hill program someone wrote 22:22:54 right, there was some sort of automatic winning program generator, wasn't there? 22:22:58 i'm so gld they did because if they didn't i was going to 22:23:00 which means you'd have to keep source secret in the future 22:23:04 ais523: no, it can't even copy around such values, because it would have to know at least the size of that type for that, and we can't express a constraint that implies the size of a type, except possibly in a degenerate way that only zero or one types satisfy 22:23:32 wob_jonas: it can copy around pointers to them though 22:23:37 ais523: actually, you wouldn't need secret source if you either a) added some source of randomness or b) made the hill infinite 22:23:43 like, with a Box you don't care what the T is 22:23:53 ais523: it could copy pointers, yes, but it's also possible that it doesn't do even that 22:23:58 quintopia: I think a) would ruin the game 22:24:08 and b) doesn't really work because it'd still only have finitely many programs at any given point 22:24:47 ais523: b) works because you could submit a family of programs, all similar, such that it was impossible for the same strategy to beat all of them (i think) 22:25:16 well we already constructed one such family 22:25:18 quintopia: yes but you need a huge number of them 22:25:22 yes 22:25:24 several hundred 22:25:30 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=53590&oldid=53583 * K1nzy * (+193) /* Introductions */ 22:25:30 but you could generate them automatically 22:25:30 I constructed them a while back, I think 22:25:38 it's a different game, but it isn't broken 22:25:38 also it's only to avoid being beaten on all tape lengths and polarities 22:25:39 oerjan: a finite family? 22:25:49 specifically they win on tape length 10 22:25:58 ais523: ah 22:26:22 and several hundred programs is not a problem for an infinite hill, is it? 22:26:27 ais523: wait, so what does it guarantee exactly? 22:26:39 [[Kappa]] https://esolangs.org/w/index.php?diff=53591&oldid=53589 * K1nzy * (-654) 22:27:07 ais523: does it guarantee that against any fixed program, at least one of your family on at least one polarity will not lose on tape length 10? 22:27:12 or does it guarantee more? 22:27:25 several hundred doesn't sound too bad 22:27:29 wob_jonas: that in the group of 768 programs, against any fixed program, at least one of those 768 programs will beat it on tape length 10 for any specific polarity 22:27:41 ais523: ok 22:27:48 768 is not too much 22:28:17 ais523: why would a source of randomness ruin the game? for instance, why wouldn't "bf joust except every tape cell starts with value x, with x chosen uniformly at random from 0 to 255" be a bad game? 22:29:29 quintopia: that proposal might not ruin things (apart from the small random chance every program would have of dying if the same rule applied to the flags), but in general randomness allows you to set decoys much more easily than you can deal with them 22:29:39 I mean, you might try to start such a construction by taking all possible strategies a program can do in the first 100000 steps, which would be like 5**2**100001 distinguishable strategies, and then construct a program against each 22:29:46 then you'd have a rather large infinite family 22:29:51 BF Jousting? Why not. *begins research* 22:30:33 wob_jonas: there's a time limit 22:30:40 so there are only finitely many possible BF Joust programs in theory 22:30:41 and since you keep writing proofs about two-counter machines, which have a double-exponential slowdown from sane computing models, I don't think it's strange that I think of that when you mention a finite family 22:30:42 ais523: re: the flags, just make it so that winning/dying involves having the flag set to x+128 instead of zero 22:30:44 (the space is very large tohugh) 22:30:58 ais523: yes, exactly, the time limit is 100000 turns. that's what I said. 22:31:20 quintopia: so what you have now is equivalent to BF Joust where [ and ] test for a random (but consistent) number rather than 0 22:31:24 writing a program for that seems painful 22:31:34 yes exactly 22:31:37 why painful? 22:31:52 like, even if you know where the enemy flag is, zeroing it would require quite a lot of code 22:32:14 and there probably aren't much less than 2**c**100001 different strategies for some not too small constant c if you allow exponentially large program source codes 22:32:23 !zjoust runner (>)*8(>[-])*21 22:32:23 ais523.runner: points -12.48, score 10.90, rank 44/47 22:32:26 This is a nice idea for a self-modifying game: https://www.youtube.com/watch?v=Ca5BYKRVXHM 22:32:28 would you rather the initial tape value just didn't apply to the flags? 22:32:34 whereas a simple attack is trivial to write 22:32:46 quintopia: still doesn't help much 22:33:00 wait, why is it a good thing that a simple attack is trivial to write? 22:33:03 the fact is that [-] is much simpler and shorter than any routine for setting a cell to some fixed value for which you don't even know what it is 22:33:06 isn't it supposed to be hard to win? 22:33:18 and I imagine that in practice every program would have 256 different variants, copy-and-pasted 22:33:21 -!- sprocklem has quit (Ping timeout: 264 seconds). 22:33:28 also, the skill of BF Joust is about exploiting patterns in what your opponents do 22:33:39 just look at growth2, for example 22:33:40 [[Kappa]] https://esolangs.org/w/index.php?diff=53592&oldid=53591 * K1nzy * (+441) 22:33:59 wait wait...why would it not help if we had "bf joust except that every tape value /except the flags/ is uniformly random x"? 22:34:02 if very basic things require very complex code, the patterns will be hard to exploit because they'll be complex in your own right 22:34:12 you can still [-] 22:34:12 quintopia: eww no 22:34:32 that would ruin the beauty and simplicity of bfjoust 22:34:50 * int-e eyes wob_jonas suspiciously. 22:34:52 quintopia: because in that case, decoys don't really work because most code won't be able to distinguish them from the original value anyway 22:34:54 wob_jonas: beauty+simplicity=solved. the whole goal here is to ruin it in some small way 22:35:11 ais523: decoys wouldn't be an important strategy in this new game 22:35:40 well, what /would/ be an important strategy? 22:35:55 nearly all the attack innovations are designed to deal with decoys 22:36:03 So what would be a strategy? Go forward 10 steps, and start clearing? 22:36:31 also that's a search space of like 257**28 different starting patterns, although the server would probably only do a statistical test on a set of starting patterns chosen crypto randomly, but still, there might be a lot of pairs of programs that beat each other very close to 1/2 the time, and that would be hard to judge 22:36:33 [[Language list]] https://esolangs.org/w/index.php?diff=53593&oldid=53550 * K1nzy * (+12) /* Non-alphabetic */ 22:36:34 turtle would still be viable. defense would still be viable. a lot of other things would require innovation from scratch. 22:36:51 Basically the whole art of defense would probably be lost... and there's no reasonable way of guessing the tape length anymore. 22:37:21 * int-e shrugs. 22:38:25 well if everyone abandons decoys...it would be possible to check tape length by looking at tape cells and seeing if they have the same value. it's slower, but maybe that's a good thing. 22:38:54 then it becomes useful to modify the tape cells to be slightly different from their sstarting values, and decoys come back 22:40:00 -!- LKoen has joined. 22:40:05 quintopia: well what probably happens is that people write 256 different versions of their code and just change between them based on the second tape element 22:40:25 you can't practically interfere with that; a fast rush program could do so in current BF Joust but you can't write fast rush programs in this variant because they can't safely move fast enough 22:41:06 okay here's a weird idea for a game-that-totally-isn't-bf-joust: the jousters start with opposite values of zero and opposite flag heights. what A thinks is zero, B thinks is 128, and while A thinks its flag is zeroed, B thinks A's flag is 128. And vice versa. 22:41:42 what are the values in between? 22:42:01 quintopia: is that just L:TG? 22:42:27 ais523: idunno. maybe they alternate between 64 and -64 22:42:39 or between 128 and 0 22:42:54 I think a key strategic point of BF Joust is the fact that a cell without a decoy is very easy to skip past 22:42:56 quintopia: in L:TG, the players number slots from the opposite direction, so when you can reference slot 0 the easiest and slot 1 the next easiest, those are harder for your opponent to reference 22:43:15 what is L:TG? 22:43:42 quintopia: https://esolangs.org/wiki/Lambda:_the_Gathering 22:45:45 -!- `^_^v has quit (Quit: This computer has gone to sleep). 22:45:52 oh yeah that is a similar idea 22:47:20 -!- Phantom__Hoover has joined. 22:48:29 ais523: so what if all the cells between are set to 64 or -64 (alternating) but there is a new conditional {} that detects either of those values specifically. 22:49:13 it's getting more complex but starting to be maybe viable 22:49:17 I still prefer the original game I think though 22:50:05 come to think of it, you can just make the in-between cells 64 for both programs, making - for one program the same as + for the other 22:51:16 but then you want to think of that as renormalized by shifting all values with -64 and modifying the loop statements 22:51:18 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 22:52:14 wob_jonas: it's basically BF Joust except that the flags start at 64 and you win by changing them to -64 22:52:26 actually, come to think of it 22:52:34 stealth programs do way too well in this variant 22:52:38 ais523: sort of. you also have two extra statements 22:52:48 you just set your own flag to look the same as the filler on the tape 22:53:27 and the only way the opponent can stop that is by either a fast rush (those things are typically easy to stop), or by adjusting every filler element by 64 to see if it's actually a flag in disguise 22:53:40 whereas stealth programs in regular BF Joust have to constantly stay on their flag to avoid losing 22:53:44 ais523: no 22:53:50 ais523: you still have another statement, don't you? 22:54:02 one that tests for exactly the value you have to attain in the goal square 22:54:18 wob_jonas: yes 22:54:25 ais523: yeah i was thinking the same about making them all 64, except i would allow both the sieve and kettle polarities. there shouldn't be a way to tell the difference between polarity and flag height by testing 22:54:31 but that still takes 128 cycles 22:54:59 quintopia: the only reason sieve and kettle exist is so that players don't have to write their programs both ways round to see which is better 22:55:12 in retrospect, it'd have worked better to start flags at 100 or so and break the symmetry that way 22:55:19 oh by the way 22:56:16 ais523: oh but they do so much more than that. it makes it so you have to optimize your program to work best on the sum of both polarities rather than just one of the two 22:56:27 I was thinking about games that are both multiplayer classic german-style board games, but at the same time their visible state can be written in a small enough space that you could play them easily in IRC with an IRC bot handling the game rules but only ordinary IRC clients on the player's side 22:56:34 some classical card games are technically like that 22:56:50 wob_jonas: also, their hidden state needs to be player-specific 22:56:55 i have played such games 22:56:55 whereas games with rectangular boards typically aren't like that 22:57:06 IRC board games 22:57:08 because you need to draw a large rectangular board that's hard to put in one irc line 22:57:08 like, it's hard to do something like poker over IRC if you only have one deck 22:57:20 because how do you stop people drawing the same cards as each other? 22:57:59 ais523: the irc bot can handle the hidden state, but it's even better to have games where there's no state hidden from just one player, only randomness that's hidden equally from all players 22:57:59 okay not eurogames. i've played apples to apples cards against humanity and seen mafia played with a bot. there's no reason that basically any game that doesn't require complicated art work couldn't work the same 22:58:42 a game that I think would work well is Niagara, which has a really small state and no hidden state at all 22:58:56 but requires at least three players, at least four preferred, which is sort of a drawback 22:59:29 i can think of a few games that have those properties 22:59:41 but i don't see what's wrong with player-specific hidden state? 23:00:03 quintopia: player-specific hidden state can work too, sure, like in poker 23:00:07 or many other card games 23:00:24 player-specific hidden state is fine, you just need it to be independent really 23:00:24 so what doesn't work exactly? 23:00:32 i.e. correlations between the hidden states are hard to set up without a bot 23:00:41 ais523: but I did say there'd be a bot 23:00:56 I think it's more interesting to have games you could play without 23:01:03 ais523: the bot can be fancy, only the UI the players have to install can't be, it must work with any plain IRC client on their side 23:01:03 there are some zero-hidden-state games like chess 23:01:18 ais523: yes, or Niagara 23:01:41 and yes, chess definitely works, people have been playing correspondence chat way before irc existed 23:01:47 s/chat/chess/ 23:02:04 there is a framework for them: https://github.com/Zarthus/irc-games-bot 23:02:14 well, in your defense, people have been playing correspondence chat way before chess existed 23:02:24 quintopia: I hate frameworks 23:02:37 LKoen: lol 23:03:50 most hidden state issues can be solved with hash functions, but it can make the game tedious 23:04:06 LKoen: yes, but you need either a trusted bot or a special client for that 23:04:07 why the frameworks hate? it seems awfully useful to be able to add a new game by just adding a small amount of code to an existing bot designed for the purpose 23:04:21 you can't expect people to compute cryptographically safe functions in their head 23:04:31 oh, yes, but the bot can be offline 23:04:56 and unless there is money involve in the game, you're probably fine with something as unsafe as md5 23:04:58 quintopia: because the irc protocol is so simple that you can do that without a framework, a framework usually just makes it harder in the "now I have two problems" way 23:05:16 LKoen: doesn't matter, people don't complain md5 in their head either 23:05:23 wob_jonas: sounds like you've used some bad frameworks :) 23:05:29 you need a real computer, and these days a very cheap real computer can compute secure hashes too 23:06:09 quintopia: yes, my work involves computer stuff, including trying to work with programs co-workers write 23:07:15 oerjan: I think I fixed the IE11 thing. At least this IE11 screenshotting website (which originally showed them overlapping, like you said) now renders right. 23:07:55 ais523: by the way, about that cryptographical stuff I was asking about, I understand now that people use spihash when a birthday attack isn't a problem, because then you can get away with half as long a hash then normally, and the 64 bits of hash tables seems enough at least to avoid hash table performance degradation attacks, but 23:08:21 wob_jonas: "attacks, but" 23:08:23 you got cut off 23:08:40 (1) I think people are also abusing siphash for things where, although you can indeed get away with a half-sized hash because birthday attacks aren't a problem, 64 bits seems suspiciously slow, and 23:09:02 that's not enough text to have been cut off :-P 23:10:04 "slow, and" 23:10:24 but either something very weird is going on or you're just screwing me 23:10:33 or one of us got disconnected when you were using newline as punctuation 23:10:36 (2) I still don't understand why a 64 bit long hash would allow a different construction and be fundamentally cheaper than any ordinary 256 bit hmac 23:10:51 ais523: I'm just delibeartely breaking text to multiple lines so that I don't get cut off 23:10:59 and I'm typing slowly and thinking in between what to say 23:11:04 and not adding sentence boundaries 23:11:14 right 23:11:23 I use newline as punctuation sometimes but normally I think of the rest of the sentence first 23:11:39 Also I write sentences ending with a conjunction to make it clear that I have more to add. 23:11:41 or press it by accident trying to hit backspace, that happens too 23:12:09 Yes, I should probably try to add sentence breaks instead. 23:12:31 So anyway, I still only get part of what this whole siphash thing is about. 23:13:10 Even if there are valid uses, it still seems to me like it's overhyped and overused and will bite some careless people in the back. 23:13:43 But then, crypto is always like that. Careless people will write bad code,. 23:13:55 Happened to me too once. 23:15:56 wob_jonas: The 64-bit hash thing in SipHash is actually not what buys them *radically* better performance. 23:16:18 pikhq: yes, that's what point (b) is about. 23:16:45 Rather, what buys them better performance is they're trying to get properties out of the function that are much cheaper. 23:16:46 How can it have radically better performance if it's just a hmac that's a quarter as long as sha256-hmac, unless it is actually broken, 23:17:07 or has some sort of weaker guarantee besides being one quarter the size that I really don't understand. 23:17:31 They try to guarantee that, given hash(x, k), where x is the message and k is the key, you don't know anything about k, or anything about hash(y, k). 23:17:38 -!- boily has joined. 23:17:39 pikhq: that's exactly my problem. I can't believe you can get free lunch by that. Something must be wrong about what they think. 23:18:03 SHA, and by extension HMAC-SHA, tries to guarantee that you cannot find x, y such that hash(x) == hash(y). 23:19:24 SipHash does not guarantee no collisions, it only guarantees you cannot discover the hash of something without knowing the key, and that you can't find the key. 23:19:51 But given the key, it seems it'd actually be rather easy to produce collisions. 23:19:59 pikhq: they try to guarantee a bit more about siphash. they try to guarantee that even if you can send x to query hash(x,k) from an adversary with a hidden k, you can know nothing about hash(y,k) for any y that you haven't sent in a query yet 23:20:17 That's what I said. 23:20:25 If you know hash(x, k) you can't know hash(y, k). 23:20:39 pikhq: and I think if you guarantee that AND the hash is 256-bit long, not just 64 bits, then that implies that you can't find a collision 23:20:54 I'm unclear on that. 23:21:00 hmm 23:21:10 ok, maybe it only guarantees that you can't find a collision if you don't know k 23:21:12 maybe that's weaker 23:21:54 It's also really worth knowing the particular context that SipHash is intended for. 23:22:09 can we have something in between the two, for signing messages with a hidden key where a birthday attack isn't a problem, but with a 128 bit hash? 23:22:28 pikhq: what is the context? is it only to avoid hash table performance degradation? 23:22:46 The main one is to avoid hash table performance degradation from active attackers. 23:22:52 ok 23:23:20 Which explains its small output: larger output would buy you nothing, and cost you more to compute. 23:23:24 yeah 23:24:15 fizzie: thanks 23:24:26 So is the speed gain because of this weakened guarantee, where if you knew k you could break the hash, or is it not because of that, but only from the quarter size output? 23:24:46 It's because of both of those. 23:24:49 ok 23:25:37 I'll probably just be cautious because I don't understand the crypto enough, and just not use siphash directly , except possibly through the ready-made hash table libraries or programs. 23:25:58 As long as I don't need much performance, I can get away with using a slower hash function, like sha256 or sha3-256. 23:26:06 (And a fast computer.) 23:26:08 The weaker guarantee lets them use a much simpler compression function, but the smaller output and smaller state lets them have to work on less memory (which is faster) 23:26:29 And the HMAC construction based on those two of course. 23:26:46 That's probably wise. When choosing any algorithms, you really, really should know what you do and do not get from the algorithm. 23:26:59 Especially with ones that are somewhat new with less established wisdom on how to use them. 23:27:14 This difference between the guarantees, it's similar to what ais was explaining about crypto random sources, right? 23:27:23 I think so, yes. 23:27:47 pikhq: yes, I know what I want to do, although there are several different things I want to do with different requirements. 23:27:49 helloily 23:28:46 wob_jonas: wait, I thought I explained that several years ago and in #nethack4 23:29:04 "was explaining" seems like an understatement 23:29:14 ais523: possible, but you also explained that a few weeks ago here when I asked about them 23:29:16 Some of the biggest screwups in crypto I've seen are from people not knowing WTF crypto algorithms do and do not buy them. 23:29:45 And, unsurprisingly, when you assume a function guarantees something it doesn't, you have a bad time. 23:29:54 wob_jonas: hmm, clearly my memory's getting less good 23:30:00 ais523: I think back with nh4, I was only listening to the part where you replaced a clearly non-crypto rng with something that does some sort of crypto, but didn't look at the details 23:30:15 ais523: it's possible that you explained more about it, but I forgot or wasn't listening 23:30:20 NH4's RNG isn't cryptosecure in the normal sense (unlike AdeonRNG, which is) 23:30:28 it's missing one of the requirements, the other ones are the ones I cared about 23:30:42 ais523: yes, that's what you explained here a few weeks ago 23:30:47 OK 23:30:55 maybe I just explain it in a couple of sentences each time the topic comes up 23:31:04 rather than as a fully detailed discussion 23:31:22 Namely that for nh4, you don't need the requirement that if someone finds out about the current state of the rng, they can't guess anything about the previous values. 23:31:27 The previous outputs. 23:32:04 But maybe that wasn't it exactly. 23:32:09 I know it was something about finding out the hidden key. 23:33:23 right, in NH4 knowledge of the internal state lets you predict previous outputs 23:33:35 with any RNG, it allows you to predict future outputs, which is typically more useful 23:33:46 *PRNG 23:33:48 This came up in #esoteric when I asked about why there seem to be different sort of crypto random generators, and why some of them need a repeated source of outside entropy (I'm still not sure which ones do), 23:34:31 and I also told about a specific requirement I wanted to solve and could solve with a crypto-RNG but wondered if there was a cheaper solution. 23:38:43 And it seems an RNG with nethack's crypto requirements solves that, but nothing cheaper than that that we know of. 23:41:24 Btw, the new version of libtomcrypt has an SHA-2 implementation, which shows that the maintainer who took over actually does work on it more than just bugfixes. 23:41:48 That is always encouraging when you consider which library you want to use. 23:41:59 Even if libtom might not be the best performance-wise. 23:42:44 With its decent documentation it might be a good choice when I don't need very high performance. 23:43:22 There's also this https://tls.mbed.org/ library recommended to me, which exports both crypto primitives, and an interface for ssl/tls. 23:43:25 Seems useful. 23:45:09 Good night soon. 23:47:17 -!- AnotherTest has quit (Ping timeout: 255 seconds). 23:47:31 s/SHA-2/SHA-3/ 23:51:32 -!- augur_ has quit (Remote host closed the connection). 23:55:26 <\oren\_> https://www.youtube.com/watch?v=QIFGWe3KHXA google translate is my favorite vocaloid 23:57:26 -!- hppavilion[1] has joined.