←2021-08 2021-09 2021-10→ ↑2021 ↑all
2021-09-01
00:08:15 <oerjan> hm i forgot to log out yesterday
00:14:30 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87876&oldid=87871 * PixelatedStarfish * (+169) /* Meta-program Examples */
00:18:11 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87877&oldid=87876 * PixelatedStarfish * (-2) /* Hello World */
00:18:28 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87878&oldid=87877 * PixelatedStarfish * (-1) /* File Name Generator */
00:20:05 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87879&oldid=87878 * PixelatedStarfish * (-20) /* Random Number (1-10) */
00:29:21 <nakilon> is there a way to see all the Templates of the wiki?
00:30:48 <nakilon> for example I wanted to use this one but could not https://en.wikipedia.org/wiki/Template:Empty_section
00:31:57 <nakilon> ah I guess this https://esolangs.org/w/index.php?search=template&title=Special%3ASearch&profile=advanced&fulltext=1&ns10=1
00:32:27 <fizzie> https://esolangs.org/wiki/Special:PrefixIndex?prefix=&namespace=10
00:33:01 <fizzie> Ends up at the same place, I'm guessing.
00:33:12 <fizzie> More or less, anyway.
00:43:40 <esolangs> [[Quipu]] M https://esolangs.org/w/index.php?diff=87880&oldid=49825 * Dlosc * (+0) Fixed typo in lyrics
00:46:20 <esolangs> [[RASEL]] https://esolangs.org/w/index.php?diff=87881&oldid=87604 * Nakilon * (+314) added an example of how .rasela json file looks
00:47:36 <nakilon> still amazes me how I get the highlight sound from this bot even before the wiki page load after the save button press
00:48:20 <nakilon> even via the bnc web interface
00:48:21 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87882&oldid=87879 * PixelatedStarfish * (+23) /* Random Number (1-10) */
00:49:30 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87883&oldid=87882 * PixelatedStarfish * (+45) /* Quine */
00:55:43 -!- src has quit (Ping timeout: 252 seconds).
01:02:36 * oerjan 's mind boggles at someone wanting sound highlighting of esolangs announcements
01:04:18 <nakilon> I mean there is my nickname in that message
01:04:29 <nakilon> so I hear it
01:04:32 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=87884&oldid=87349 * Spargle * (-188) /* Ark: The esolang that is actually kind of useful. */
01:04:38 <oerjan> oh
01:04:54 <oerjan> that would do it. i doun
01:05:19 <oerjan> don't have sound for highlighting my own name either
01:09:18 <nakilon> wow, truffleruby works exactly how people describe it
01:11:03 <nakilon> the first second is slow but then it runs faster and after 6 seconds of running the examples/prime.rasel it reaches the usual ruby
01:27:36 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87885&oldid=87883 * PixelatedStarfish * (+9)
01:28:14 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87886&oldid=87885 * PixelatedStarfish * (+0)
01:28:55 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87887&oldid=87886 * PixelatedStarfish * (+4)
01:44:55 -!- earendel has quit (Quit: Connection closed for inactivity).
02:09:18 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87888&oldid=87887 * PixelatedStarfish * (+65) /* Syntax */
02:09:45 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87889&oldid=87888 * PixelatedStarfish * (+19) /* Quine */
02:10:07 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87890&oldid=87889 * PixelatedStarfish * (+9) /* Quine */
02:18:27 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87891&oldid=87890 * PixelatedStarfish * (-51) /* Quine */
02:53:17 -!- Corbin has joined.
03:08:25 <nakilon> heh 1998 http://www.cs.cmu.edu/~infobot/purl/ in that year in my town people saw computers only in western movies; maybe this IRC bot is still alive
03:11:55 <nakilon> last commit is 2 years ago on sourceforge
04:09:55 <nakilon> oh seriously?
04:11:05 <nakilon> https://i.imgur.com/1XCeZm4.png
04:11:42 <nakilon> and I'm still not there lol https://www.janestreet.com/puzzles/it-s-symmetric-2-solution/
05:10:44 -!- Sgeo_ has joined.
05:12:57 -!- Sgeo has quit (Ping timeout: 245 seconds).
05:51:22 -!- imode has quit (Ping timeout: 244 seconds).
06:42:52 -!- Sgeo_ has quit (Read error: Connection reset by peer).
07:46:35 -!- Koen_ has joined.
08:05:21 -!- hendursaga has joined.
08:06:28 -!- tech_exorcist has joined.
08:06:59 -!- tech_exorcist has quit (Remote host closed the connection).
08:07:29 -!- tech_exorcist has joined.
08:09:24 -!- hendursa1 has quit (Ping timeout: 276 seconds).
08:23:56 -!- oerjan has quit (Quit: Nite).
11:30:06 -!- arseniiv has joined.
13:00:35 <esolangs> [[User talk:Fmbalbuena]] https://esolangs.org/w/index.php?diff=87892&oldid=87729 * Fmbalbuena * (+32)
13:12:32 -!- hendursaga has quit (Quit: hendursaga).
13:12:58 -!- hendursaga has joined.
13:15:24 -!- earendel has joined.
13:39:37 -!- tech_exorcist_ has joined.
13:41:01 -!- tech_exorcist has quit (Ping timeout: 244 seconds).
13:58:20 -!- Sgeo has joined.
13:58:29 -!- tech_exorcist_ has quit (Quit: Goodbye).
13:58:42 -!- vyv has joined.
13:58:52 -!- tech_exorcist has joined.
13:59:16 -!- tech_exorcist has quit (Remote host closed the connection).
14:14:35 -!- Everything has joined.
14:28:37 -!- Koen_ has quit (Remote host closed the connection).
14:39:05 -!- Koen_ has joined.
14:47:55 -!- wib_jonas has joined.
15:12:28 -!- imode has joined.
15:23:21 -!- wib_jonas has quit (Ping timeout: 256 seconds).
15:32:45 <nakilon> funny how they call the company "Equal Opportunity"
16:44:30 -!- earendel has quit (Quit: Connection closed for inactivity).
16:45:40 -!- SystemFFan has joined.
17:00:26 <esolangs> [[Talk:Unary]] https://esolangs.org/w/index.php?diff=87893&oldid=87874 * Ithkuil * (+0) /* Inefficient conversion to number */
17:26:10 -!- arseniiv has quit (Ping timeout: 240 seconds).
17:26:33 <int-e> `` echo x > a; ln a b; xz a
17:26:35 <HackEso> xz: a: Input file has more than one hard link, skipping
17:26:59 <int-e> I wonder what the rationale behind that is
17:27:20 <int-e> "compressing this won't save you any disk space... let's not do it", maybe
17:27:52 <fizzie> `` rm a b # it's not versioned, but it's still persistent
17:27:53 <HackEso> No output.
17:28:23 <int-e> `` ls
17:28:24 <HackEso> ​:#,_@ \ 🌱 \ a.o \ a.out \ asmbf-1.2.7 \ banana.txt \ bef2 \ bfi \ bin \ compiled_brachylog.pl \ egel-master \ egel-scripts \ egel.zip \ eGtbSgN68aHU \ just \ karma \ le \ olist.new \ output.b \ paste \ pd \ pd.c \ pikhqbow_tst \ program \ -.s \ spline \ spout \ stall \ test \ test.sh \ this.py \ tmp \ wisdomls.txt \ xaa
17:29:46 <fizzie> -.s comes out of some GCC misuse, I think. Something like `... | gcc -x c - -S`, forgetting the `-o -` bit. I've seen it before. In my own ~/tmp, probably.
17:30:32 <fizzie> There's also an empty file literally called '*.spp' in my ~/tmp, not sure what's up with that.
17:30:49 <int-e> maybe you should have a cron job that cleans up everything that is older than, say, a day
17:31:18 <nakilon> and file named as befunge code
17:31:18 <int-e> ls bin
17:31:24 <int-e> `` ls bin
17:31:25 <HackEso> rasel
17:32:13 <nakilon> I guess that is CAT program but with lost '>'
17:32:41 <fizzie> Yeah, it says "olleh" in it.
17:33:35 <fizzie> So it was probably from `echo "olleh">:#,_@ | ...` without considering that > will be interpreted as a shell redirection.
17:33:47 <nakilon> \rasel A"!dlrow ,olleH">:?@,Hj
17:33:59 <velik> output: Hello, world![LF], exit code: 0
17:34:00 <nakilon> ping
17:34:05 <velik> pong
17:34:30 <nakilon> `` wc -c bin/*
17:34:31 <HackEso> 34 bin/rasel
17:34:46 <nakilon> `` cat bin/rasel
17:34:47 <HackEso> echo "$@" | ​/hackenv/tmp/rasel
17:34:58 <nakilon> `` wc -c ​/hackenv/tmp/rasel
17:34:59 <HackEso> wc: ​/hackenv/tmp/rasel: No such file or directory
17:35:18 <nakilon> meh
17:35:43 <nakilon> there was some another bin I guess
17:35:44 -!- arseniiv has joined.
17:36:04 <nakilon> `` rm bin/rasel
17:36:06 <HackEso> No output.
17:36:37 <nakilon> `` which rasel
17:36:39 <HackEso> ​/hackenv/bin/rasel
17:36:52 <nakilon> `` wc -c ​/hackenv/bin/rasel
17:36:53 <HackEso> wc: ​/hackenv/bin/rasel: No such file or directory
17:37:02 <nakilon> woah
17:37:14 <nakilon> `` ls ​/hackenv/lib
17:37:16 <HackEso> ls: cannot access '​/hackenv/lib': No such file or directory
17:37:54 <nakilon> how is that possible that which points to unexisting file?
17:38:54 <fizzie> You *might* get that from a broken symlink, but it's not that.
17:39:07 <fizzie> https://hack.esolangs.org/repo/file/tip/bin/rasel does exist.
17:40:21 <nakilon> `` file ​/hackenv/bin/rasel
17:40:22 <HackEso> ​​/hackenv/bin/rasel: cannot open `​/hackenv/bin/rasel' (No such file or directory)
17:41:14 <int-e> `` wc -c /hackenv/bin/rasel
17:41:15 <HackEso> 45 /hackenv/bin/rasel
17:41:35 <nakilon> `` wc -c ​/hackenv/bin/rasel
17:41:36 <int-e> nakilon: you had some unicode garbage before the initial /
17:41:36 <HackEso> wc: ​/hackenv/bin/rasel: No such file or directory
17:41:45 <nakilon> _Oo
17:41:57 <fizzie> `unidecode c ​/h
17:41:59 <HackEso> ​[U+0063 LATIN SMALL LETTER C] [U+0020 SPACE] [U+200B ZERO WIDTH SPACE] [U+002F SOLIDUS] [U+0068 LATIN SMALL LETTER H]
17:42:04 <fizzie> Oh, a zero-width space.
17:42:19 <fizzie> Probably copy-pasted from HackEso output.
17:42:34 <fizzie> It adds one when the output line starts with a non-letter, as a botloop avoidance mechanism.
17:43:02 <nakilon> I guess I copypasted it from 20:36:39 <HackEso> ​/hackenv/bin/rasel
17:43:06 <int-e> the good old ^O might work better? Ah I don't know.
17:43:07 <nakilon> yeah
17:43:27 <int-e> It's Hack-Eso, not Production-Eso
17:43:40 <nakilon> hackesaw
17:44:21 <nakilon> `` ls /hackenv/lib
17:44:22 <HackEso> c++decl \ cdecl \ frink \ frink.jar \ interp \ karma \ kps \ morse-decode \ p7zip-16.02 \ rasel_gem
17:44:36 <nakilon> `` rm -rf /hackenv/lib/rasel_gem
17:44:40 <HackEso> No output.
17:44:55 <nakilon> `` rm /hackenv/bin/rasel
17:44:58 <HackEso> No output.
17:49:09 <nakilon> funny how it's hard to find where the code starts in befunge
17:49:31 <nakilon> I suppose this is some sort of switch-case but... https://github.com/fis/fungot/blob/47a5050c2541d8b23af4970e786449164708b328/fungot.b98#L181-L195
17:49:31 <fungot> nakilon: mathematical, huh?
17:49:40 <nakilon> fungot esoterical
17:49:41 <fungot> nakilon: also it has a white plastic ping-pong ball." works.)) be done in scheme that's dynamically adjustable
17:51:15 <nakilon> how do you reach the start of line 182?
17:51:45 <fizzie> From line 120 or thereabouts.
17:52:52 <fizzie> The `v_v#` at the start of line 120 (entered from the right) is I think the bit that branches based on whether the incoming line starts with the command prefix ^ or not.
17:53:31 <fizzie> Or if you meant the word "reload" literally, that's just a comment.
17:53:36 <int-e> "reload" is just a comment, I think. Line 182 is entered from line 183, with the |
17:53:50 <fizzie> Yeah, "daoler"Q is the *actual* executed code.
17:53:55 <int-e> which I vaguely recall to be a conditional
17:54:33 <nakilon> oh
17:54:37 <int-e> I really haven't touched Befunge at all, beyond skimming the list of opcodes once or twice.
17:54:41 <fizzie> Yep, ..."daoler"Q!| uses the Q instruction from STRN to do a string comparison, and then branches up if it matches, down if not.
17:55:48 <nakilon> would be less misleading if those comments were not in "" but in something else, anyway
17:56:15 <nakilon> (just thinking about some compact switch-case for [],.-=<>)
17:56:59 -!- tech_exorcist has joined.
17:57:19 <fizzie> Except for [], the rest are close enough in ASCII terms that they might even be worth a jvvvv... jump table.
17:57:50 <fizzie> Well, maybe not.
17:58:33 <int-e> line 202 is funny... "ignor" because the "e" didn't fit :P
17:59:42 <fizzie> Yeah... I think the reason why they're quoted is, other comments are just... regular comments *about* the code, but these are specifically mentioning strings the input is compared to.
17:59:48 <nakilon> there is no copypaste functionality in my IDE so to make this https://i.imgur.com/XPhcPaA.png I converted it to rasel, edited in sublime and converted back to rasela, lol
18:02:19 -!- vyv has quit (Quit: Konversation terminated!).
18:04:06 -!- src has joined.
18:15:55 -!- Koen_ has quit (Quit: Leaving...).
19:03:48 <nakilon> probably since I preload all the bf code into the stack I might better store the bf tape right after the code rather than doing even/odd addressing thing; just need one more cell to store the length of code permanently as a shift
19:50:34 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87894&oldid=87891 * PixelatedStarfish * (+750) /* Quine */
19:53:47 <nakilon> just found that Moscow subway has already implemented a "FacePay" on 4 stations -- system that when you enter the subway it recognizes your face to take the payment
19:55:01 <nakilon> now I wonder when will they cancel the usual way to pay for using metro
20:36:59 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87895&oldid=87894 * PixelatedStarfish * (+69) /* Interpreter */
20:37:44 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87896&oldid=87895 * PixelatedStarfish * (-5) /* Interpreter */
20:40:08 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87897&oldid=87896 * PixelatedStarfish * (-1) /* Hello World */
20:40:25 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87898&oldid=87897 * PixelatedStarfish * (-18) /* Quine */
20:40:52 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87899&oldid=87898 * PixelatedStarfish * (+4) /* Hello World (Quine) */
20:49:55 -!- Lord_of_Life_ has joined.
20:51:17 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
20:51:17 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:57:21 -!- SystemFFan has quit (Remote host closed the connection).
20:58:10 -!- SystemFFan has joined.
21:00:48 -!- tech_exorcist has quit (Remote host closed the connection).
21:03:22 -!- Oshawott has quit (Ping timeout: 245 seconds).
21:03:28 -!- tech_exorcist has joined.
21:55:42 -!- Everything has quit (Quit: leaving).
22:23:22 <nakilon> https://i.imgur.com/MHx5rSB.png -- 6 of 8 are done
22:34:51 <nakilon> is there any standard on documenting addresses/registers in very low level languages?
22:36:14 <nakilon> for example when I look at this https://i.imgur.com/Sw0ZqPK.png I get a picture of what are the meanings of each stack position, but I get the correct picture only if the program is correct
22:36:41 <nakilon> and only when I run it
22:37:55 <nakilon> would be nice to have the "stack structure in the given moment in the program" documented in the source code
22:38:57 <nakilon> so then when I run it and I could compare pictures to find where the things went wrong
22:42:12 -!- tech_exorcist has quit (Quit: Goodbye).
22:42:29 <fizzie> There's the Forth convention on documenting the stack effect of individual words, but that's more about transitions, not about snapshots.
22:46:09 <fizzie> : swap ( a b -- b a ) ... ; for example, where the ( a b -- b a ) is a stack effect comment, with the initial stack (shown up to the depth affected) on the left side of the --, and the stack after the word on the right.
22:47:07 <nakilon> reminds haskell function type signatures
22:48:20 <nakilon> don't you have some stack description in fungot? I feel like I saw somthing
22:48:21 <fungot> nakilon: oh my fnord on top of the simple levels, but advanced student will probably run out of mem or something even more mindless. :p i guess it's gotten more orthodox now. they certainly are easy to implement
22:49:25 <fizzie> I think not, I just have comments on all the important Fungespace locations. During development of individual "basic blocks" I definitely tend to write notes with stack annotations though.
22:49:31 <nakilon> oh I see starting here https://github.com/fis/fungot/blob/master/fungot.b98#L389
22:49:31 <fungot> nakilon: how nasty is this as a " highly interested" in your fnord library and much of my last two hours chasing a *feature* with what implementation?
22:49:52 <nakilon> ah, those are locations in instructions space
22:50:34 <fizzie> Yeah. Well, the section on brainfuck exec does document the that top of stack is mostly the instruction pointer, and second on stack the data pointer. Most of the time, anyway.
22:52:36 <fizzie> Would've been nice to have an editor that could have retained those actual stack notes, for future editability. I usually write them by just lining out the instruction sequence vertically (one command per line in the first column, as if execution was proceeding downwards) and then rest of the line indicating the stack on that line (I don't remember whether I usually make that before or after the
22:52:38 <fizzie> instruction).
23:22:15 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87900&oldid=87899 * PixelatedStarfish * (+51) /* Hello World (Quine) */
23:23:56 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87901&oldid=87900 * PixelatedStarfish * (-66) /* Interpreter */
23:24:06 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87902&oldid=87901 * PixelatedStarfish * (-54) /* Hello World (Cheating Quine) */
23:26:11 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87903&oldid=87902 * PixelatedStarfish * (+114) /* Interpreter */
23:26:30 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87904&oldid=87903 * PixelatedStarfish * (+0) /* Interpreter */
23:26:43 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87905&oldid=87904 * PixelatedStarfish * (-1) /* Interpreter */
23:44:07 -!- arseniiv has quit (Ping timeout: 252 seconds).
23:55:31 -!- oerjan has joined.
2021-09-02
00:01:10 -!- SystemFFan has quit (Ping timeout: 240 seconds).
01:30:16 -!- src has quit (Ping timeout: 252 seconds).
01:51:32 <nakilon> hm
01:51:34 <nakilon> [Jump past the matching ] if the cell at the pointer is 0
01:51:34 <nakilon> ]Jump back to the matching [ if the cell at the pointer is nonzero
01:51:34 <j-bot> nakilon: |value error: is
01:51:34 <j-bot> nakilon: | Jump past the matching]if the cell at the pointer is 0
01:52:10 <nakilon> I wonder if ] has to do any check actually or just go back to the [ and [ will do the check
01:52:49 <nakilon> probably only [ has to have a condition
02:00:41 <oerjan> nakilon: yeah you can choose to put the check on only one
02:01:37 <oerjan> if you do check, you should jump to after [ for the second case too
02:02:23 <oerjan> well, can.
02:03:27 <oerjan> reversible brainfuck is similar, except you _must_ check on both and jump past, since the tests are reversed from each other
02:21:42 -!- simcop2387 has quit (Ping timeout: 245 seconds).
02:21:42 -!- perlbot has quit (Ping timeout: 245 seconds).
02:36:48 -!- perlbot has joined.
02:38:47 -!- simcop2387 has joined.
04:26:10 <nakilon> hopefully this is it https://i.imgur.com/tEdX7dL.png at least it passes these tests https://dpaste.org/73HP/slim
05:07:40 -!- imode has quit (Ping timeout: 240 seconds).
05:12:45 <nakilon> $ printf "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++." | ./bin/rasel examples/bf_interpreter.rasel | hexdump -C
05:12:45 <nakilon> 00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 0a |Hello World!.|
05:12:46 <nakilon> hooray
06:03:28 <zzo38> I have a book called "Concrete Mathematics". They mention the operation "mod", and also "mumble" which is the other one (x mumble y = y ceiling(x/y) - x). Should they be called "punk" (according to another suggestion in this book), or do you like mumble? Or is there another name for this?
06:10:39 <esolangs> [[RASEL]] https://esolangs.org/w/index.php?diff=87906&oldid=87881 * Nakilon * (+202) /* Computational class */ added link to bf interpreter
06:14:08 <oerjan> @check \x y -> y==0%1 || y * ceiling(x/y) - x == x `rem` y
06:14:10 <lambdabot> error:
06:14:10 <lambdabot> • No instance for (Integral (Ratio Integer)) arising from a use of ‘ceiling’...
06:14:15 <oerjan> oops
06:14:33 <oerjan> @check \x y -> y==0 || y * ceiling(x%y) - x == x `rem` y
06:14:35 <lambdabot> *** Failed! Falsifiable (after 9 tests and 3 shrinks):
06:14:35 <lambdabot> 7 3
06:15:12 <oerjan> i guess it's not that.
06:16:16 <oerjan> oh right
06:17:20 <nakilon> what is this @check thing?
06:18:01 <shachaf> It checks whether a proposition is true or false.
06:18:04 <shachaf> v. convenient
06:18:25 -!- Sgeo has quit (Read error: Connection reset by peer).
06:18:30 <nakilon> is it a built in haskell tool?
06:19:50 <nakilon> must be something similar in mathematica; but it's cool how it says "after 9 tests..."
06:42:30 <esolangs> [[EsoInterpreters]] https://esolangs.org/w/index.php?diff=87907&oldid=87648 * Nakilon * (+466) /* Main table */ added RASEL/Brainfuck
07:08:29 <oerjan> nakilon: https://hackage.haskell.org/package/QuickCheck
07:10:18 <esolangs> [[GG]] N https://esolangs.org/w/index.php?oldid=87908 * Hyperdawg * (+74) Created page with "'''GG''' is an esoteric programming language created by [[User:Hyperdawg]]"
07:11:01 <oerjan> nakilon: it's not a theorem prover, but a generator of random test cases
07:11:19 <nakilon> like fuzz testing?
07:11:34 <oerjan> perhaps? i don't know that.
07:12:18 <oerjan> although it also some mechanism for reducing the size of test cases, that's what the "3 shrinks" is about.
07:12:22 <oerjan> *also has
07:13:39 <oerjan> @check \x y z -> x + (y + z) == (x + y) + z
07:13:41 <lambdabot> +++ OK, passed 100 tests.
07:13:54 <oerjan> @check \x y z -> x + (y + z) == (x + y) + (z :: Double)
07:13:56 <lambdabot> *** Failed! Falsifiable (after 2 tests and 7 shrinks):
07:13:56 <lambdabot> 0.6571961060614686 -0.45461759492755616 -0.11907641039759291
07:14:16 <oerjan> that's IEEE floating point for you :)
07:14:42 <oerjan> (without the :: Double it uses Integer)
07:28:22 <int-e> > let x = 1; y = 2^^(-53); z = y in (x+y)+z == x+(y+z)
07:28:24 <lambdabot> False
07:29:06 <int-e> > let x = 2; y = 1; z = 1/3 in (x+y)+z == x+(y+z)
07:29:07 <lambdabot> False
07:29:39 <int-e> > let x = 1; y = 1; z = 1/3 in (x+y)+z == x+(y+z)
07:29:40 <lambdabot> False
07:30:06 <int-e> > let x = 1; y = 1; z = 1/3 in (x+y)+z == x+(y+z :: Float)
07:30:08 <lambdabot> False
07:32:24 <int-e> So, we learned that associativity is a lie. ;-)
07:32:41 <shachaf> I think we learned that floating-point values are lies.
07:32:42 <int-e> A crude approximation of the real world (tm)
07:33:26 <shachaf> Fuzz testing is a useful tool when you need to check the correctness of a kitten.
07:35:22 <int-e> fungot: what does a smiley have to look like in order to be taken seriuosly? apparently ;-) isn't enough
07:35:23 <fungot> int-e: a module or anything like that) was discussed in this records thread on cll about it
07:36:10 <shachaf> I mean, I don't think there's any doubt that you know what associativity is, and how Float works.
07:44:26 -!- Koen_ has joined.
07:47:16 <int-e> Hmm, do I know that though... addition and multiplication, yes. Division, not so much. I mean I've seen long division and that cute Newton iteration x |-> x(2-ax) for 1/a, and that's about it. Inverse square root... again not so much. Transcendental functions... there's cordic but I'm not convinced it's actually used. No clue what other things there are.
07:50:53 <int-e> > iterate (\x -> x*(2-5*x)) 0.3
07:50:55 <lambdabot> [0.3,0.15,0.1875,0.19921875,0.1999969482421875,0.19999999995343387,0.2,0.2,0...
07:54:12 -!- riv has quit (Quit: Leaving).
07:54:46 <shachaf> Well, I hope you can know how a type works without knowing all the algorithms on that type.
07:55:26 <shachaf> The real test is what you call the bits of the float that aren't the sign bit or the exponent.
07:55:27 <int-e> Sure, I can enjoy a sausage without knowing how it's made.
07:56:44 <int-e> As with many things, there's many levels of understanding here.
07:59:41 <shachaf> I should know how these things are computed.
07:59:54 <shachaf> Man, I don't even know how integer multiplication works, really.
08:00:05 <int-e> I realized I couldn't expand "ulp".
08:00:30 <shachaf> I think I have an OK understanding of carry-lookahead adders now. I could at least think about it and come up with a reasonable one.
08:01:54 -!- V has quit (Ping timeout: 250 seconds).
08:04:26 <shachaf> I read a short post that instantly answered all my questions about carry-lookahead adders and so on. It was great.
08:04:56 -!- hendursa1 has joined.
08:07:51 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:08:13 <int-e> I'm happy with my fancy monoid
08:09:35 <shachaf> Which one is that, the propagate-generate monoid?
08:14:30 <int-e> it starts with the silly number-appending monoid, (d1,l1) <> (d2,l2) = (d1*b^l2,l1+l2), then integrates addition and carries into it and that'll give you something that computes 2 results (which boil down to either clearing the carry, propagating the carry, or setting a carry, if you focus on the carries alone)
08:15:29 <int-e> (two results: one with incoming carry, and one without)
08:16:07 <int-e> it's really overcomplicated, but it makes sense to me, and as far as me understanding something goes... that's all that matters :P
08:17:47 <int-e> I suppose "generate" corresponds to two possible cases.
08:21:01 <shachaf> "clearing the carry" never happens, I guess.
08:21:56 <int-e> 0+0+c never generates a carry
08:22:09 <shachaf> Oh, uh, right.
08:22:58 <shachaf> The thing that never happens is complement.
08:23:07 <int-e> right, it's monotonic
08:24:28 <shachaf> But nowadays I'm all about consensus things.
08:41:25 <int-e> . o O ( int-e's consensus algorithm: agree to disagree. )
08:44:03 -!- wib_jonas has joined.
08:45:03 <wib_jonas> fizzie: just use a 3-D befunge, lay out your code in 2 dimensions (since that already allows arbitrary control flow), and have comments go next to the instructions in the third dimension's direction
08:47:01 <wib_jonas> trefunge it's called
08:48:07 <shachaf> Hmm, I often use this style of comment: "code; // short comment"
08:48:11 <wib_jonas> of course you might want a 3D code editor for that that can view your code in any of the 48 rotated orientations, including rotating the directional instructions appropriately
08:48:21 <shachaf> But then if the comment is longer, I move it to its own line before the code, which feels oddly discontinuous.
08:48:24 <shachaf> What can I do about that?
08:49:53 <int-e> shachaf: use a 21:9 monitor? ;-)
08:50:13 <int-e> (does anyone else miss the 4:3 ones...)
08:50:48 <wib_jonas> int-e: not particularly, but I'd prefer to have 16:10 ones more available
08:52:26 <wib_jonas> they let me put four 30 row terminals in a 2x2 arrangement, or two 35 and two 25 row terminals etc
08:53:43 <wib_jonas> (actually only a 30 and a 29 row one, because I reserve one row for a thin taskbar at the bottom plus the border between the two terminals, and even so I have one pixel of overlap
08:53:45 <wib_jonas> )
08:55:45 <int-e> ooph, there's at least one 32:9 monitor on the market.
08:56:01 <wib_jonas> int-e: with or without touchscreen?
08:57:31 <int-e> without, I think. https://www.amazon.com/dp/B07L9HCJ2V/
08:58:12 <esolangs> [[GG]] https://esolangs.org/w/index.php?diff=87909&oldid=87908 * Hyperdawg * (+87)
08:58:56 <esolangs> [[GG]] https://esolangs.org/w/index.php?diff=87910&oldid=87909 * Hyperdawg * (+11)
08:59:28 <int-e> I don't get the whole touch screen monitor thing either, not for PCs nor home entertainment.
09:01:37 <oerjan> <int-e> Sure, I can enjoy a sausage without knowing how it's made. <-- i think it's generally acknowledged that it's even easier that way hth
09:02:17 <int-e> oerjan: I thought it was better without spelling that part out
09:03:28 <wib_jonas> int-e: sure, without touchscreen it's better, it's just that the extreme ratio made me question that.
09:05:35 <esolangs> [[GG]] https://esolangs.org/w/index.php?diff=87911&oldid=87910 * Hyperdawg * (+4)
09:09:00 <oerjan> my joke detection ability is going, i can feel it
09:10:37 <int-e> oerjan: Different topic, does the Geisterdamen language have a name?
09:11:38 <oerjan> hm not that i remember
09:12:20 <Hooloovoo> ghost damn
09:12:27 <int-e> okay
09:13:01 <oerjan> Hooloovoo: ghost dames is a more direct translation
09:13:34 <oerjan> oh wait
09:13:36 <oerjan> ladies
09:13:58 <int-e> Hooloovoo: It's "ladies". (Oh and "dame" actually exists in english, as a counterpart to "knight" in the UK)
09:14:01 <Hooloovoo> yeah, that sounds closer
09:14:26 * Hooloovoo was looking up "damen"
09:14:28 <int-e> Ah, took too long cross-checking things.
09:15:21 <oerjan> although "ghost dames" is a _cognate_ translation, i presume.
09:15:22 <int-e> (I knew that "dame" is one of those honorary titles in the UK, but I didn't know what exactly it corresponds to)
09:16:13 <int-e> ghost damsels <- let's make it worse, shall we
09:16:24 <Hooloovoo> ghost dammit
09:16:26 <oerjan> itym distressful
09:17:02 <int-e> hmmm. They *are* distressed a lot of times, aren't they.
09:17:22 <oerjan> it's the tight corsets, i think
09:18:37 <int-e> ...which ones...
09:20:06 <oerjan> the ones they have to wear to be properly dressed
09:20:25 <Hooloovoo> could you do something with geist as spirit?
09:21:20 <int-e> oerjan: aren't they usually naked in the lower torso area, which is what corsets tend to be made to shape?
09:21:29 <oerjan> Hooloovoo: perhaps, although these ladies happen to be grey in color
09:21:50 <oerjan> int-e: oh. i had somehow forgotten which damsels we were speaking about.
09:21:56 <int-e> Hooloovoo: there's also "geist" as "intellect"
09:21:59 <oerjan> in a compartmented way
09:22:19 <int-e> oerjan: I see
09:22:49 <int-e> Yeah, corsets have been blamed for all the fainting in romance novels.
09:23:05 <int-e> By all accounts they're truly breath-taking.
09:48:04 <fizzie> There was someone with a 32:9 monitor on the XMonad channel asking for advice on how to make it behave like two 16:9 monitors, which makes sense.
10:01:40 -!- tech_exorcist has joined.
10:19:09 <oerjan> . o O ( did anyone recommend a saw )
10:21:01 <int-e> hey they should support this on the monitor side. give the thing two inputs
10:22:15 <wib_jonas> int-e: the description that you linked to https://www.amazon.com/dp/B07L9HCJ2V/ explicitly says that they support two inputs
10:22:26 <wib_jonas> "Super ultra-wide 49 inch monitor provides the enhanced productivity thru split screen functions like Picture-by-Picture (PBP), letting you connect to two devices while maintaining their original quality "
10:23:17 <int-e> wib_jonas: oh, do they? sounds interesting (I didn't read)
10:32:21 <fizzie> Yeah, I've heard ultrawides do that. Hmm, I wonder if any support acting as two inputs over a single cable with DisplayPort MST. Because if the motivation is "two devices", that's not exactly needed.
10:33:36 <fizzie> Incidentally, XRandR 1.5 introduced a "monitor" concept that decouples "rectangular regions shown to the user" from "outputs of a GPU", so the client can now define those arbitrarily even if it's "physically" just one output.
10:34:29 <nakilon> would be cool if those monitors could take inputs from two machines
10:35:01 <nakilon> so I could see macos and windows at the same time
10:35:05 <fizzie> They can, that's what wob_jonas was describing.
10:36:36 <wib_jonas> fizzie: did XRandR have to do that to support DRM that sends TV series as encrypted video to the monitor?
10:37:06 -!- arseniiv has joined.
10:38:05 <wib_jonas> also I used my home monitor with inputs from two separate computer, but not displayed at the same time, but switching with a button on the front of the monitor
10:40:25 <fizzie> I don't know what the XRandR monitor motivation was. I think there's been a few monitors where it's "necessary" to merge two physical outputs to a single monitor, for link bandwidth reasons, before things like HDMI 2.1 and DP 1.4 added higher-bandwidth modes, it could have been that.
10:40:40 <fizzie> I do the input-swapping regularly now that WFH is a thing.
10:41:12 <wib_jonas> fizzie: hmm. I thought DVI already solved the bandwidth problem by having a more expensive variant with more pins in the cable
10:41:49 <int-e> people have come up with higher resolutions
10:41:54 <fizzie> If you're referring to single-link vs. dual-link, yes, but then people just kept on increasing both the resolution and the refresh rate.
10:42:04 <fizzie> People want 144 Hz now.
10:42:07 <wib_jonas> fizzie: that's what made me do it, yes.
10:42:19 <fizzie> Because it's apparently necessary for gaming.
10:42:46 <int-e> fizzie: I believe that actually
10:43:12 <fizzie> Well, I believe it depends on the game. ;)
10:43:37 <int-e> shooter stuff... you have up to about two frames of latency (start drawing frame, wait for vsync, wait for it to actually be displayed)
10:44:02 <int-e> assuming the GPU can keep up
10:44:09 <nakilon> https://www.reddit.com/r/Sino/comments/pg9x4b/fake_3d_billboards/
10:44:10 <fizzie> AIUI, 60, 120, 144 and 240 are the "standard" framerates now. Also, there's those "dynamic framerate" standards.
10:45:44 <fizzie> Regarding swapping inputs, quite handily both of my monitors have four buttons, two of which can be programmed to do a specific action. So I've got them set up so that button 1 on both selects the personal desktop input, and button 2 on both selects the work laptop input.
10:45:45 <int-e> there's also the less significant effect that 120Hz is a nice fit for 24fps movies
10:45:54 <int-e> much better than 60Hz
10:46:11 <nakilon> high fps in shooters isn't this much about latency than about the smoothness
10:46:45 <nakilon> there is no profit from seeing something 5 msec faster if your ping is 50 and human reaction limit around 150
10:46:47 <wib_jonas> fizzie: true,
10:47:28 <nakilon> but high fps helps your brain to understand what's going on and where things are moving and with which speed
10:47:42 <nakilon> instead of being a high framerate slideshow
10:48:21 <wib_jonas> fizzie: that's nice. on my monitor (which I'm going to replace soon), it's press the second button from the right to go from home to work computer, three times to go from work computer to home computer. (it cycles through the four inputs, in the order composite, VGA, DVI, HDMI)
10:49:45 <nakilon> wib_jonas and it takes monitor 2 seconds of black screen to finally switch, I hate it
10:50:02 <fizzie> Actually, there's a slightly curious effect from the work laptop using USB-C DP Alt Mode MST to drive both monitors over a single cable: when the directly connected monitor is switched to some other input, the indirectly connected monitor is not visible to it. So if I want to have both the work and home computers visible simultaneously (not common), I can only do that one way around.
10:51:37 <wib_jonas> the hard part is switching the keyboard actually, not the monitor
10:55:07 <fizzie> Oh, and when I switch from work mode to home mode, if I want to optimize it for speed, I must always switch the "second" monitor first. If I do the "first" monitor first, the second one loses signal and immediately goes to a special no-signal mode, and then those quick-access buttons don't work, but instead all buttons bring up the input selector menu, meaning the switch takes three button
10:55:09 <fizzie> presses (bring up menu, press up/down, press select).
11:11:41 <nakilon> rasel translator translates the helloworld in 80msec and then runs it in 100msec
11:11:57 <nakilon> rasel interpreter interprets in 400msec
11:26:17 <nakilon> btw, noticed it again, on https://esolangs.org/wiki/Brainfuck it says "Short program printing Hello, World! by primo" and states that its start is shifted by 4 positions
11:26:50 <nakilon> then it says "Currently, the shortest known program printing Hello, World! is written by KSab" but does not say that it needs shifted start too
11:27:04 <nakilon> both translator and interpreter throw the error
11:29:02 <fizzie> ^bf --<-<<+[+[<+>--->->->-<<<]>]<<--.<++++++.<<-..<<.<+.>>.>>.<<<.+++.>>.>>-.<<<+.
11:29:03 <fungot> Hello, World!
11:29:05 <fizzie> ^bf +[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.
11:29:05 <fungot> Hello, World!
11:29:12 <nakilon> his codegolf stackexchnage post also doesn't mention it
11:29:53 <fizzie> (FTR, fungot's tape is a loop.)
11:29:53 <fungot> fizzie: i mean,
11:30:13 <fizzie> fungot: ...you mean what?
11:30:13 <fungot> fizzie: and i don't care about the result.
11:30:21 <fizzie> Such a grumpy bot.
11:34:46 <wib_jonas> typical. measuring speed without caring about whether the code they're timing actualy does the correct result.
11:42:40 -!- hanif has joined.
12:40:57 -!- src has joined.
12:55:48 -!- hanif has quit (Ping timeout: 276 seconds).
13:11:26 <wib_jonas> oerjan re `@check \x y z -> x + (y + z) == (x + y) + (z :: Double)`, I suggest 0.6+0.3!=0.9 as the staple example because that's true for both 32-bit and 64-bit floats, but we should probably search for an example that's false in even more common floating point types
13:12:05 <wib_jonas> one that doesn't just use loss of precision by adding two numbers of opposite sign or similar tricks
13:15:42 -!- hendursa1 has quit (Quit: hendursa1).
13:16:18 -!- hendursaga has joined.
13:19:35 <oerjan> wib_jonas: ok, although the main purpose of my command was to demonstrate @check, and only secondarily to demonstrate floats.
13:21:17 <wib_jonas> sure, but this is a question that I'll have to look for a good answer for anyway
13:21:18 -!- hanif has joined.
14:02:19 -!- Sgeo has joined.
14:05:31 -!- oerjan has quit (Quit: Nite).
14:06:28 <wib_jonas> apparently 1 + 2/3 != 5/3 is another example that works with float32 or float64
14:15:44 -!- delta23 has joined.
14:32:21 -!- src_ has joined.
14:34:34 -!- src has quit (Ping timeout: 252 seconds).
14:36:46 -!- src_ has quit (Ping timeout: 252 seconds).
14:40:59 -!- integral has quit.
14:41:17 -!- integral has joined.
14:41:36 -!- delta23 has quit (Quit: Leaving).
14:50:12 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87912&oldid=87905 * PixelatedStarfish * (+42) /* Syntax */
14:58:02 -!- riv has joined.
15:15:28 -!- wib_jonas has quit (Quit: Client closed).
15:34:24 -!- chiselfuse has quit (Ping timeout: 276 seconds).
15:34:54 -!- chiselfuse has joined.
15:58:27 -!- hanif has quit (Ping timeout: 276 seconds).
16:21:57 -!- dnm has quit.
16:22:12 -!- dnm has joined.
16:22:21 -!- archenoth has joined.
16:31:39 -!- chiselfuse has quit (Remote host closed the connection).
16:31:51 -!- chiselfuse has joined.
16:43:13 -!- monoxane has quit (Ping timeout: 252 seconds).
16:51:27 -!- imode has joined.
17:51:33 -!- hanif has joined.
18:05:22 -!- Koen_ has quit (Remote host closed the connection).
18:11:09 <fizzie> Hmm, spam email with "Subject: esolangs". That's not too common.
18:11:46 <fizzie> Apparently it's meant for "the CEO", however.
18:11:55 <b_jonas> fizzie: did you receive it at an email address at the domain esolangs.org ?
18:12:06 <fizzie> Yep. But there's not too much of those.
18:12:13 <fizzie> It was sent to webmaster@ on that domain.
18:12:52 <b_jonas> yeah, I've sent emails that start with "Dear $websitename,"
18:15:04 <fizzie> Allegedly an "Hongwei Ltd" is attempting to register "esolangs" as their .cn domain name and "internet keyword", but the diligent research of the guy who sent the email (a Service & Operations Manager at "China Registry (Head Office)") has revealed our "company name or trademark" is in conflict, and they want to confirm whether that's our business partner in China.
18:15:16 <fizzie> I think I got an identical one few months back as well.
18:16:25 <fizzie> The most prominent "Hongwei Ltd" would appear to be Hongwei Technologies Limited, which "manufactures and sells polyester differential fibers primarily to the yarn and textile manufacturers located in the southern People's Republic of China". But perhaps they're branching to the lucrative esoteric programming language business.
18:18:47 <b_jonas> fizzie: oh, and among the most common types of spam I receive to my main email address are the ones that try to claim that the mail server has stopped receiving (or will stop receiving) email to my mailbox and I have to confirm my personal data and/or password to make sure I receive further emails, and those emails often mention the domain name of the email address in the subject. plus of course I get
18:18:53 <b_jonas> spam about "Google lottery" to my gmail.com address, but that latter probably only counts for half credit.
18:20:07 <fizzie> I sometimes report the "Google lottery" ones through some internal channels, just for the sake of form. I get them on my non-Gmail address though.
18:20:24 <fizzie> Not very recently, I think.
18:22:19 <fizzie> I think the most common broad category of spam I get are (at least superficially) suppliers of various kinds of things for manufacturing. Like, just looking at the last few subject lines, there's "Re: Mould supplier", "Re: Both Liquid Crystal and Vacuum glass Technology", "Re: Leather products Supplies good quotation", "Re: Cooper wire mesh" and "Re: Stainless steel sintered explosion-proof net".
18:22:42 <fizzie> ("Cooper" was my own typo, it was in fact "Copper" in the email.)
18:24:33 <b_jonas> fizzie: I think the only ones I've reported are (1) spam in the name of Paypal, (2) bots in twitch chat that try to sell twitch subs, and (3) the paper spam that threatens to cut some utility (electricity maybe) if you don't pay some money with the deadline being the day it was taped to the entrance
18:24:37 <fizzie> And "hair bundles", whatever that is.
18:25:26 <b_jonas> fizzie: "esolang" isn't such a bad brand name for a new synthetic textile material though
18:25:41 <b_jonas> it sort of sounds chemical and synthetic, so I think it might work
18:27:52 <b_jonas> wait, "mould supplier"? but isn't "mould" an alternate spelling for the other meaning of "mold", the that you don't want to supply as a product because it's a generally harmful fungus, as opposed to a shaped template for materials that you shape by melting?
18:28:39 <b_jonas> (well, not necessarily melting, it can also harden chemically a bit of time after you mix it from its components, that's how you shape silicones because they don't melt)
18:31:43 <b_jonas> you're supposed to use the hair bundlesare for hair lengthening in your Real Fast Hair Salon I think
18:33:38 <fizzie> Apparently "mould" *can* be used for the other meaning of mold as well, as in the thing used for casting.
18:35:08 <b_jonas> can it? let me check my Oxford
18:36:15 <b_jonas> yes it can
18:36:27 <b_jonas> that's even the first meaning of "mould" in the order the Oxford gives them
18:36:47 <b_jonas> the second is the fungi, the third (and last) is "soft loose earth"
18:38:35 <keegan> did someone say fungi
18:38:57 <b_jonas> yes
18:39:07 <b_jonas> befungi
18:39:39 <fizzie> Have I ranted about my electricity supplier yet? I feel like ranting about my electricity supplier.
18:39:54 <fizzie> They have a "smart" meter they can read remotely, and it came supplied with an IHD (in-home display) with CAD (consumer access device) facilities, meaning it can do wifi and talk MQTT to a broker for pseudo-real-time electricity usage data. Which is all well and good.
18:40:15 <fizzie> But, the endpoint it deigns to talk MQTT to is hardcoded in the device, and requires a (valid, signed-by-a-trusted-CA) TLS server certificate, so the only way to actually make *use* of that feature is to register for the Samsung SmartThings cloud service, which it will then upload usage data to, from which you're then supposed to consume it with an app.
18:41:49 <keegan> blah
18:42:50 <fizzie> I think I read from somewhere that the regulations say the supplier must help the customer in pairing any device into the HAN (the Zigbee thing the actual meter uses to talk to the IHD) as long as it's a certified device, but from some forum conversations (a) they don't actually do that, and anyway (b) nobody seems to be making reasonably "open" yet certified devices. And anyway, I *have* a
18:42:52 <fizzie> device, which even knows how to export the data. It just doesn't want to export it to its nominal owner.
18:43:28 <fizzie> (Another thing I read is that I technically own the IHD, it's not one of those cases where I'm just renting it.)
18:49:10 -!- APic has quit (Ping timeout: 240 seconds).
19:01:09 <b_jonas> fizzie: a lot of us have the power meters outside the home, so much more people can gain physical access to it than me or the owners. anyone in the house, and anyone who can get in the house door, which is much less well guarded than the apartment doors. as of now, people can read the total consumption from an LCD on it only when they are physically present (or if they leave a hidden camera somewhere in
19:01:15 <b_jonas> the cupboard I guess). that's much less of a security risk. if this was a smart device and anyone who physically walks up to it could download data to it, that would be much worse.
19:01:57 -!- hanif has quit (Quit: quit).
19:02:21 <b_jonas> fizzie: and yes, that means people can turn off electricity in my apartment by flipping a switch if they walk up there, but that's a feature for safety in case of fire or gas leaks. otherwise they'd have to cut a wire or something.
19:03:16 <b_jonas> the actual downside is that people who walk there can vandalize the tamper seal, but then people can vandalize a lot of things everywhere and in general it's hard to protect from that
19:04:08 <b_jonas> so I wonder how you'd imagine that only the owner can pair their device to the power meter and download the data
19:12:43 <fizzie> You need (cryptographic) keys from the supplier to pair a device with the meter, or something along those lines.
19:13:59 <fizzie> The meter is in fact not inside the flat here, it's out there in a cupboard in the corridor. Anyone living in the building can go and borrow the key, if for example they need to read it.
19:14:15 <fizzie> I mean, the physical key to the cupboard.
19:14:54 <fizzie> Which has the meters for everyone on this floor, and I think it's the same key for at least a group of floors, based on how it's marked.
19:15:04 <b_jonas> fizzie: also isn't it like, the meter already must communicate with the provider, that's why they're installing it; and the provider must already communicate with you because they're sending you bills; so why set up a third connection when these two must already work and they can just forward you the data at not much extra cost
19:15:40 <fizzie> They download the data at a much lower resolution than what the meter can provide to the IHD.
19:16:17 <b_jonas> fizzie: I've seen such physical keys. the locks often go wrong, or just nobody bothers to lock the cupboard, plus they're the numbered kind of key that anyone can buy if they just know a small integer, or buy the whole set and try each of them, or open the cupboard without the key. for this apartment, I haven't ever seen this cupboard locked.
19:16:23 <int-e> fungot: do you like augmenting paths?
19:16:24 <fungot> int-e: don't you mean the spec bloats the grammar, whereas the normal windows mzscheme uses normal windows libraries. what it seems like
19:17:05 <fizzie> I do in fact collect daily usage data from the supplier, by crawling it from their entirely undocumented GraphQL endpoint that their fancy client-side web app uses to render a chart.
19:17:14 <b_jonas> hehe
19:17:51 <b_jonas> do you also have a cheap camera and led light in front of the display, light it up once an hour, take a photo, and read the number automatically?
19:18:11 <fizzie> I have thought about doing that, yes.
19:18:47 <b_jonas> hehe
19:19:20 <b_jonas> and you also thought of just installing your own meter, one per every inner circuit breaker, inside the house, but found that they're horribly expensive because they're priced for industrial applications
19:20:10 <fizzie> It's not that I'd really *need* the high-resolution data, I'm mostly just curious about the bottom-line power usage of some devices and I feel like it'd be a fun way to measure that, to just collect samples of the "instant" energy use (which has a resolution in the order of some seconds) with and without the device plugged in / turned on, and then do some statistics.
19:21:03 <b_jonas> yeah
19:21:26 <b_jonas> except of course that's hard because some of your other devices, especially the fridge, can just start consuming more or less power at any time
19:22:05 <fizzie> Yes, that's the "statistics" part, I think if I did collect enough samples it should be possible to cluster the numbers and see how the "baseline" power usage changes.
19:22:23 <b_jonas> yeah
19:22:31 <b_jonas> the computers can also vary their power usage a lot
19:26:18 <fizzie> Incidentally, I have the IHD unit plugged to a computer, because it's powered via USB, and there was already a computer next to it anyway, so plugging the USB cable to one of the computer's otherwise unused USB ports avoids having one less AC/DC adapter.
19:27:19 <fizzie> Someone had opened one up and said the data lines of the USB port are not connected to anything, but that there's some places on the PCB that *could* be populated, so potentially it could act as a USB device during development or something.
19:28:27 <fizzie> Hmm, "avoids having one less" is probably not right.
19:29:01 <fizzie> I think I meant either "avoids needing one more" or "allows having one less", but mixed them up wrong.
19:32:22 <b_jonas> "avoids having one less AC/DC adapter." => yeah, but some computers are willing to supply only much less power on their USB ports than designated fast mobile phone chargers.
19:33:11 <b_jonas> re "meant either", or "avoids having one less AC/DC adapter remaining"
19:33:28 <b_jonas> :-)
20:36:50 -!- delta23 has joined.
20:46:48 <nakilon> speaking about chinese and esoteric, just found this page https://github.com/yunwan1x/awesome-cn/blob/ee7b919f7c7ff1559a70de35f0582a199dd526b5/docs/awesome/awesome-esolangs.md#L56
20:48:35 <nakilon> though it feels like this guy translates all kinds of the "awesome lists" to chinese to then serve on a website
20:48:41 -!- Everything has joined.
20:50:10 <b_jonas> nakilon: that would be a useful service
20:50:13 <nakilon> yeah, direct replica of https://github.com/angrykoala/awesome-esolangs
20:50:51 <b_jonas> especially if they attribute the original somewhere
20:51:00 <nakilon> I don't see the original
20:51:08 <nakilon> I mean the attribution
20:51:42 -!- Lord_of_Life_ has joined.
20:52:10 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
20:52:47 <nakilon> especially funny to see "Logo used with permission of David Morgan-Mar"
20:52:56 <nakilon> translated
20:54:07 <b_jonas> nakilon: it does say '<div class="github-widget" data-repo="angrykoala/awesome-esolangs"></div>' which points to the original source
20:54:24 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:54:35 <b_jonas> that sounds like some github feature\
20:54:42 <b_jonas> I mean it has github in its name
20:55:12 <nakilon> where do you this div?
20:55:16 <nakilon> &do you see
20:55:32 <b_jonas> in the raw content of the file https://raw.githubusercontent.com/yunwan1x/awesome-cn/ee7b919f7c7ff1559a70de35f0582a199dd526b5/docs/awesome/awesome-esolangs.md
20:55:46 <b_jonas> that's the raw of https://github.com/yunwan1x/awesome-cn/blob/ee7b919f7c7ff1559a70de35f0582a199dd526b5/docs/awesome/awesome-esolangs.md#L56
20:56:58 <b_jonas> but with all the client-time scripting that goes on here, I'm not sure if that results in some link or something in the rendered interface
20:58:24 -!- immibis has joined.
20:58:40 <nakilon> I guess it's left in the source code by a mistake or a note for the future content update, but it does not render
20:59:41 <nakilon> oh, no, it actually renders here https://asmcn.icopy.site/awesome/awesome-esolangs/
21:00:17 <b_jonas> where in that?
21:01:19 <nakilon> https://i.imgur.com/F5nlROo.png
21:02:08 <b_jonas> nakilon: I see, thanks
21:02:17 <b_jonas> great
21:02:25 <b_jonas> then I approve of this translation thing
21:02:45 <nakilon> gotta check what other embedding formats github provides -- might be useful
21:09:01 <nakilon> got no response from shinh about rasel (
21:21:34 -!- arseniiv has quit (Ping timeout: 252 seconds).
21:35:17 -!- tech_exorcist has quit (Quit: Goodbye).
21:35:42 <b_jonas> wow, the libretto of Zauberflöte has a lot of different translations to hungarian, and they all render Sarastro's aria "O Isis und Osiris" quite differently
21:36:49 <b_jonas> (for search purposes: the libretto was written by Emanuel Shikaneder)
21:40:04 <b_jonas> the one I've hear dthe most is https://www.youtube.com/watch?v=cbJPqMwMIbc “Ó, Isis és Osiris, járjon bölcs szellemed e pár előtt! Hogy a veszéllyel szembeszálljon, adjatok nékik rá erőt! Sikerrel járjon majd a próba – ám ha az út halálos volna, bátrak jutalma nékik jár, fogadd be őket, égi pár!”
21:42:09 <b_jonas> https://hu.wikipedia.org/wiki/Osiris,_Isis,_itt_e_p%C3%A1rnak says “Osiris, Isis, itt e párnak ó égi lelket adjatok! Ti álltok őrt a vándor útján, melletük is ti álljatok! Amerre vándorútjuk elmegy, nyíljanak égi rózsakelyhek, s ha életük útja véget ér, fonjatok nékik szent babért!”
21:43:42 <b_jonas> https://mek.oszk.hu/14500/14584/14584.htm says the same
21:44:16 <b_jonas> but there's even a translation that doesn't even mention Isis and Osiris
21:45:24 <b_jonas> and no, it's not a socialist system censure either that doesn't mention any religion
21:45:35 <b_jonas> it just says something like "o gods in heaven" or something
21:46:49 <b_jonas> https://www.youtube.com/watch?v=tUZ0tfG7tNo has Székely Mihály singing that second translation by the way
21:49:21 <b_jonas> or maybe that third one is just confusion, translating a different part of the lyrics? I'm trying to find out
21:50:35 <b_jonas> maybe these are the only two translations?
21:51:13 <b_jonas> the second one seems to have been translated by Harsányi Zsolt a long time ago
21:52:26 -!- orichalcumcosmon has joined.
21:54:46 <b_jonas> https://www.youtube.com/watch?v=7qE88dtLHPQ is Kovács Kolos singing the first translation (“Ó, Isis és Osiris, járjon bölcs szellemed”), which is thus probably actually historically a later translation then the second one
21:55:01 <b_jonas> s/Kovács Kolos/Kováts Kolos/
22:01:02 <b_jonas> that seems more reasonable than what it seemed at first. just two translations, an old one and a modern one
22:01:29 <b_jonas> it's a typical pattern for works this famous. what do you think, fungot?
22:01:29 <fungot> b_jonas: what a strange way :p). can i just use texinfo. does anyone here have a link please? :)
22:02:28 <b_jonas> fungot: yes, the link is https://sourceware.org/bugzilla/show_bug.cgi?id=21383
22:02:28 <fungot> b_jonas: if it doesn't, since i am dealing with squares anyways, it would be a
22:10:47 -!- Lord_of_Life has quit (Excess Flood).
22:11:39 -!- Lord_of_Life has joined.
22:12:07 -!- Koen_ has joined.
22:20:08 <esolangs> [[Mandelbrot set]] https://esolangs.org/w/index.php?diff=87913&oldid=68888 * Nakilon * (+97) /* External links */ In Brainfuck written by Erik Bosman.
22:35:02 <nakilon> remember I converted fungot code to png via direct translating to netpbm? I think it might be used as a weird version of QR codes
22:35:02 <fungot> nakilon: strictly business. open source too.
22:36:25 <nakilon> but while QR codes are recovering via error correction to read the photo of text rendered in such way you have to adjust color curves
22:37:18 <nakilon> you can adjust curves automatically until text starts having enough many statistically valid n-grams of the known context
22:40:00 <FireFly> ^style
22:40:00 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube
22:46:49 <nakilon> the idea is that while barcode readers are used to black and white images in the era of smartphones with full color cameras it's a waste of data
22:48:10 <nakilon> yes, it may be post-compressed with some universal compression algorithms but why? if you could just use the full color range
22:49:47 <nakilon> each such pixel is depicted with thousands of pixels on the photo that might be convertable to a 2 bytes deep color channel
22:50:00 <nakilon> or even deeper
22:50:34 <nakilon> so instead of 0, 1 and error correction sums you can adjust some "floats"
22:52:00 <nakilon> omg, thinking about https://en.wikipedia.org/wiki/QR_code#JAB_code
22:52:31 <nakilon> actual light sensors don't have to be used exactly on human visible spectre
22:53:09 <nakilon> the whole world can be marked in some not visible color range
22:54:08 <nakilon> damn https://www.cognex.com/blogs/industrial-barcode-reader/invisible-barcodes-help-prevent-counterfeit-products
22:58:20 <nakilon> a form of steganography
23:06:21 <nakilon> imagine fungot sending important messages here every day we just don't know how to decypher
23:06:22 <fungot> nakilon: i'm also applying to be haskell apprentice from xerox parc, and vanished. kranz went to curl, rak philbin went on to become a famous phrase.
23:18:16 -!- Koen_ has quit (Quit: Leaving...).
23:25:25 <nakilon> also while or worse cameras you had to adjust each channel curve separately today's camera are enough good to only adjust the lightness
23:45:18 <nakilon> ok these guys implemented something like what I said about full color range encoding https://en.wikipedia.org/wiki/Boxing_barcode - https://github.com/piql/boxing
23:46:02 <nakilon> why don't I invent things before others do it...
23:47:03 <nakilon> https://en.wikipedia.org/wiki/Barcode
23:48:58 <zzo38> Because of the Bob Profit principle, is someone who think of something probably someone else has already done, too
2021-09-03
00:28:34 -!- chiselfuse has quit (Quit: leaving).
00:29:04 -!- chiselfuse has joined.
00:52:20 -!- chiselfuse has quit (Quit: leaving).
00:52:53 -!- chiselfuse has joined.
00:55:14 -!- chiselfuse has quit (Remote host closed the connection).
00:55:47 -!- chiselfuse has joined.
00:56:05 -!- chiselfuse has quit (Client Quit).
01:09:02 -!- chiselfuse has joined.
01:17:25 -!- chiselfuse has quit (Quit: leaving).
01:18:29 -!- chiselfuse has joined.
01:21:57 -!- oerjan has joined.
01:22:52 -!- chiselfuse has quit (Client Quit).
01:45:54 -!- chiselfuse has joined.
01:46:03 -!- chiselfuse has quit (Client Quit).
01:55:15 <esolangs> [[Quipu]] https://esolangs.org/w/index.php?diff=87914&oldid=87880 * Jo King * (-35) updated factorial example to simpler program
02:03:10 -!- Everything has quit (Ping timeout: 240 seconds).
02:14:59 <esolangs> [[User:Jo King]] N https://esolangs.org/w/index.php?oldid=87915 * Jo King * (+840) created my user page, hooray
02:18:18 <esolangs> [[User:Jo King]] https://esolangs.org/w/index.php?diff=87916&oldid=87915 * Jo King * (+0) fixed link
02:22:05 <esolangs> [[User:Jo King]] M https://esolangs.org/w/index.php?diff=87917&oldid=87916 * Jo King * (-1)
02:31:45 -!- chiselfuse has joined.
02:31:45 -!- chiselfuse has quit (Client Quit).
02:38:55 -!- archenoth has quit (Ping timeout: 252 seconds).
02:47:37 -!- archenoth has joined.
02:49:21 -!- Oshawott has joined.
02:52:40 -!- archenoth has quit (Ping timeout: 240 seconds).
03:36:36 <esolangs> [[Special:Log/newusers]] create * MishaKlopukh * New user account
03:41:41 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=87918&oldid=87872 * MishaKlopukh * (+191) /* Introductions */
04:46:25 -!- delta23 has changed nick to [a]delta23.
05:10:29 <esolangs> [[RarVM]] M https://esolangs.org/w/index.php?diff=87919&oldid=78815 * Void * (+49) /* Hierarchical resource models: intent vs transfer */
05:49:50 -!- orichalcumcosmon has quit (Quit: Leaving).
05:54:26 -!- monoxane has joined.
06:02:44 -!- [a]delta23 has quit (Quit: Leaving).
06:34:20 <citrons> esolamg
07:51:47 -!- imode has quit (Ping timeout: 245 seconds).
08:04:07 -!- joast has quit (Ping timeout: 240 seconds).
08:04:12 -!- hendursa1 has joined.
08:06:57 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:07:39 -!- Sgeo has quit (Read error: Connection reset by peer).
08:17:58 -!- joast has joined.
08:19:42 -!- xylochoron[m] has quit (Ping timeout: 245 seconds).
08:21:50 -!- xylochoron[m] has joined.
08:22:44 -!- phdu[m] has quit (Ping timeout: 252 seconds).
08:22:44 -!- Deewiant has quit (Ping timeout: 256 seconds).
08:24:26 -!- wib_jonas has joined.
08:29:21 -!- Koen_ has joined.
08:31:33 -!- Deewiant has joined.
08:33:41 -!- phdu[m] has joined.
08:35:49 <esolangs> [[Transfinite program]] https://esolangs.org/w/index.php?diff=87920&oldid=79792 * Glubs9 * (+228) /* Collections of real numbers as programs */
09:13:44 -!- oerjan has quit (Quit: Later).
09:30:12 -!- Taneb has quit (Ping timeout: 272 seconds).
09:30:30 -!- Taneb has joined.
09:35:27 -!- craigoverend[m] has quit (Ping timeout: 245 seconds).
09:35:51 <wib_jonas> wow. the weather forecast says no rain for a week. I don't think I've ever seen such a flat precipitation graph yet.
09:38:32 -!- craigoverend[m] has joined.
09:45:46 -!- ProofTechnique has quit.
09:46:01 -!- ProofTechnique has joined.
09:57:42 -!- hanif has joined.
10:14:52 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
10:23:38 -!- yuu_ has quit.
10:23:53 -!- yuu_ has joined.
10:26:14 -!- tech_exorcist has joined.
10:27:42 -!- Lord_of_Life has joined.
10:53:16 -!- APic has joined.
11:11:58 -!- arseniiv has joined.
11:14:41 -!- hanif has quit (Remote host closed the connection).
11:15:01 -!- hanif has joined.
12:00:18 -!- hanif has quit (Ping timeout: 276 seconds).
13:05:52 -!- hendursa1 has quit (Quit: hendursa1).
13:06:21 -!- hendursaga has joined.
13:16:41 -!- delta23 has joined.
13:19:47 -!- fungot has quit (Ping timeout: 240 seconds).
13:35:22 -!- wib_jonas has quit (Quit: Client closed).
13:52:14 -!- hanif has joined.
14:06:10 -!- delta23 has quit (Ping timeout: 240 seconds).
14:08:37 -!- Sgeo has joined.
15:19:51 -!- hanif has quit (Ping timeout: 276 seconds).
16:32:54 -!- imode has joined.
17:04:50 -!- earendel has joined.
17:15:54 -!- hanif has joined.
17:20:45 -!- hanif has quit (Ping timeout: 276 seconds).
17:34:20 -!- Koen_ has quit (Quit: Leaving...).
17:43:10 -!- hanif has joined.
18:18:05 -!- tech_exorcist has quit (Remote host closed the connection).
18:19:42 -!- tech_exorcist has joined.
18:22:30 -!- hanif has quit (Ping timeout: 276 seconds).
18:22:30 -!- hendursaga has quit (Ping timeout: 276 seconds).
18:29:02 -!- hendursaga has joined.
18:30:02 -!- hanif has joined.
18:30:08 -!- Koen_ has joined.
18:32:31 -!- tech_exorcist has quit (Remote host closed the connection).
18:32:56 -!- tech_exorcist has joined.
18:39:24 -!- Everything has joined.
18:49:42 -!- hanif has quit (Quit: quit).
20:50:46 <zzo38> I think some of the block cipher modes can be used with hashes as well as block ciphers, since they do not use the decryption function of the block cipher. There are other variations that can be done too, including another way to verify the data
20:52:15 -!- Lord_of_Life_ has joined.
20:52:16 -!- Everything has quit (Quit: leaving).
20:53:25 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
20:54:55 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
22:19:02 <nakilon> b_jonas do you mean where you live you get rain at least once a week?!
23:07:31 -!- Koen_ has quit (Quit: Leaving...).
23:33:49 -!- tech_exorcist has quit (Quit: Goodbye).
23:45:56 -!- riv has quit (Remote host closed the connection).
23:46:15 -!- riv has joined.
2021-09-04
00:00:03 -!- joast has quit (*.net *.split).
00:00:04 -!- Corbin has quit (*.net *.split).
00:00:04 -!- Noisytoot has quit (*.net *.split).
00:02:12 -!- Corbin has joined.
00:03:01 -!- joast has joined.
00:03:40 -!- Noisytoot has joined.
00:18:09 -!- Pyautogui has joined.
00:20:40 -!- Corbin has quit (Ping timeout: 240 seconds).
00:22:25 -!- arseniiv has quit (Ping timeout: 252 seconds).
00:53:27 -!- Pyautogui has quit (Ping timeout: 245 seconds).
00:56:20 -!- Pyautogui has joined.
00:58:53 -!- Pyautogui has left.
01:14:20 -!- Everything has joined.
01:14:21 -!- earendel has quit (Quit: Connection closed for inactivity).
01:33:06 -!- oerjan has joined.
02:12:27 -!- chiselfuse has joined.
02:12:41 -!- chiselfuse has quit (Client Quit).
02:19:06 -!- chiselfuse has joined.
02:49:05 -!- sebbu has quit (Ping timeout: 250 seconds).
02:54:15 -!- sebbu has joined.
03:01:53 -!- earendel has joined.
03:20:54 -!- orichalcumcosmon has joined.
03:22:02 -!- chiselfuse has quit (Quit: leaving).
03:24:17 -!- orichalcumcosmon has quit (Client Quit).
03:26:08 -!- orichalcumcosmon has joined.
03:35:12 -!- chiselfuse has joined.
04:42:13 -!- chiselfuse has quit (Remote host closed the connection).
05:25:28 -!- Corbin has joined.
05:39:10 -!- orichalcumcosmon has quit (Quit: Leaving).
05:41:06 -!- hendursaga has quit (Ping timeout: 276 seconds).
05:43:54 -!- hendursaga has joined.
06:19:54 <zzo38> Specifically, the CFB, OFB, and CTR modes do not require the block cipher to be able to decrypt anything. I think ChaCha20 is like CTR mode, anyways. Maybe any mode could also be combined with XEX mode, too.
06:21:00 <keegan> ChaCha20 is a stream cipher, not a block cipher
06:21:10 <keegan> and CTR mode is a construction for turning a block cipher into a stream cipher
06:23:02 <keegan> I think you are right that you could use something like hash(key ++ counter) in place of encrypt(key, counter) in a CTR construction
06:23:38 <keegan> but i'd have to think about the formal guarantees of such a construction
06:25:11 <keegan> whether it's actually secure given the usual assumptions of a cryptographic hash function
06:26:24 <keegan> it's easy to come up with (contrived) examples of hashes which are resistant to collision and pre-image attacks and yet do not produce a secure stream cipher this way
06:26:46 <keegan> for example pad the output of a standard cryptographic hash with zeroes
06:27:34 <keegan> however a lot of the time cryptographic systems are proven secure within the "random oracle model", where hashes are replaced with an idealized randomly-chosen mapping from the input space to the output space
06:27:46 <keegan> and that should suffice for a stream cipher, i think
06:35:37 <zzo38> Although they call ChaCha20 a stream cipher, it looks to me like a block cipher with CTR mode.
06:36:16 <nakilon> TIL: computers have mastered Gomoku in 2017 https://en.wikipedia.org/wiki/Gomoku#Computers_and_Gomoku
06:39:21 <keegan> I once looked into Salsa20/ChaCha as an example of a modern secure cipher that might be feasible (if annoying) to work by hand
06:39:30 <keegan> it's fairly simple as these things go
06:40:03 <nakilon> https://en.wikipedia.org/wiki/Computer_Olympiad
06:49:11 <zzo38> Yes, it will still be slow to work by hand for long messages, but it is still possible, I think
07:26:25 <zzo38> Why don't you like Free Hero Mesh? (It is similar to some (not all) of the kind of puzzle games sometimes mentioned by other people on here, and can also be considered as a alternative of Xsok and PuzzleScript (some of the features of Free Hero Mesh were designed to be similar to some of the features of those other programs, too).) Currently nobody else is on the Free Hero Mesh. If there is other IRC to suggest to try, you can suggest t
07:32:41 <zzo38> I suppose that the reversible ChaCha20 could be used (with key whitening) with other block cipher modes too, although I don't know if it is secure.
08:06:48 -!- hendursa1 has joined.
08:10:36 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:22:51 -!- Koen_ has joined.
08:27:17 -!- Sgeo has quit (Read error: Connection reset by peer).
08:45:18 -!- imode has quit (Ping timeout: 256 seconds).
09:19:30 -!- earendel has quit (Quit: Connection closed for inactivity).
09:35:10 <b_jonas> nakilon: in the autumn at least, sure
09:35:17 <b_jonas> I'm not in Australia
09:37:36 <b_jonas> and even if there's no rain for a week, the week long forecast isn't so confident in it
09:43:36 -!- tech_exorcist has joined.
09:50:43 -!- Melvar has quit (Ping timeout: 250 seconds).
09:55:22 -!- Melvar has joined.
09:57:36 -!- Melvar` has joined.
09:59:42 -!- Melvar has quit (Ping timeout: 245 seconds).
10:02:44 -!- Melvar` has quit (Ping timeout: 252 seconds).
10:13:32 -!- tech_exorcist has quit (Remote host closed the connection).
10:14:09 -!- tech_exorcist has joined.
10:15:48 -!- Melvar` has joined.
10:33:57 -!- Everything has quit (Quit: leaving).
11:56:26 -!- earendel has joined.
12:15:15 -!- chiselfuse has joined.
12:48:35 -!- Koen_ has quit (Remote host closed the connection).
12:51:08 -!- V has joined.
13:02:37 <int-e> `learn The password of the month is Waiwhakaiho
13:02:40 <HackEso> Relearned 'password': The password of the month is Waiwhakaiho
13:04:04 <oerjan> oops
13:04:28 <oerjan> i distinctly recall having thought of a password well in advance, then forgotten about it,
13:04:31 <oerjan> .
13:05:00 <oerjan> (and of course i distinctly don't recall what it was.)
13:05:11 <int-e> There'll be another month.
13:05:18 <int-e> I think.
13:05:21 <oerjan> MAYBE
13:07:09 <int-e> oerjan: That anecdote is proving a point made previously: The password of the month is most forgettable.
13:07:38 <int-e> (This is a problem. I really like these kind of descriptions, but it's hard to come up with new ones.)
13:08:24 <oerjan> at least this month's is mysterious.
13:15:23 -!- Koen_ has joined.
13:17:25 -!- arseniiv has joined.
13:28:05 -!- hendursa1 has quit (Quit: hendursa1).
13:28:47 -!- hendursaga has joined.
13:47:01 -!- oerjan has quit (Quit: Nite).
14:13:15 -!- Koen_ has quit (Remote host closed the connection).
14:13:37 <fizzie> I had a pending password of the month too, maybe around May, and I remembered it for a while, but by now I've forgotten it.
14:15:55 -!- Trieste has quit (Ping timeout: 250 seconds).
14:59:33 -!- chiselfuse has quit (Remote host closed the connection).
15:00:17 -!- zegalch has quit (Remote host closed the connection).
15:00:42 -!- zegalch has joined.
15:02:59 -!- riv has quit (Quit: Leaving).
15:03:39 -!- chiselfuse has joined.
15:04:06 -!- chiselfuse has quit (Remote host closed the connection).
15:53:54 -!- earendel has quit (Quit: Connection closed for inactivity).
16:04:49 <arseniiv> `? password
16:04:51 <HackEso> The password of the month is Waiwhakaiho
16:05:02 <arseniiv> whm
16:19:30 -!- spruit11_ has joined.
16:22:27 -!- spruit11 has quit (Ping timeout: 250 seconds).
16:51:13 -!- Melvar` has changed nick to Melvar.
16:51:28 <Melvar> I have a number type here where (0.1 + 0.1) - 0.2 is 0.00390625 . I wonder how quickly someone will guess what number format this is.
16:53:19 <int-e> > log(0.00390625)/log(2)
16:53:21 <lambdabot> -8.0
16:54:18 -!- chiselfuse has joined.
17:00:53 -!- imode has joined.
17:06:52 <int-e> Melvar: overly specific link: https://gitlab.freedesktop.org/cairo/cairo/-/blob/master/src/cairo-fixed-type-private.h#L62
17:08:47 <int-e> (And no, I didn't take 15 minutes to think of a format, I just decided to act on the impulse to check whether cairo is still doing that
17:08:50 <int-e> )
17:10:12 <int-e> (I thought it uses double instead these days, but that code is still there. So I don't know.)
17:14:54 <Melvar> While you are correct that it is a 24.8 fixed point number, the reason I have it is that the Wayland protocol includes these.
17:17:43 <int-e> does wayland use pixman in any shape or fashion?
17:19:14 <Melvar> Supposedly wayland is a protocol, even though everyone’s *supposed* to just use the one implementation. But I don’t know if that one implementation uses pixman.
17:21:22 <int-e> it's probably irrelevant anyway... it should be using 16.16 fixed point (48.16 on 64 bit platforms)
17:21:24 <Melvar> (One implementation *for the protocol-speaking itself*, that is. Of course, I wrote my own anyway because I felt like it, that’s why the number discussion of the past couple of days had me bring this up.)
17:22:04 <int-e> As did cairo, initially... but people ran into problems with large geometries and they decided to compromise on 24.8 instead.
17:22:06 <Melvar> All the things in the wayland protocol are 32-bit words in host byte order, except byte arrays.
17:24:36 <int-e> But the reason I was asking was that IIRC, pixman is somewhat present in the X11 protocol's Render extension, so it might have crept into wayland that way. https://github.com/D-Programming-Deimos/libX11/blob/master/c/X11/extensions/Xrender.h#L129-L130 (And yes, there's some confusion about cause and effect here :-) )
17:24:53 <int-e> ...D-Programming-Deimos... search engines are so random
17:25:11 <Melvar> This is especially fun because one part of the message metadata is a 32-bit word with the message length in the high half and the opcode in the low half, but you can’t (at least not fully portably in principle) read this as two 16-bit words because the order of the 16-bit words switches between little-endian and big-endian systems.
17:26:46 <int-e> these days... leave it up to the compiler to figure that out
17:27:16 -!- Sgeo has joined.
17:27:42 <Melvar> Wayland’s thing is not actually having anything about client rendering in it, except for “how do you make the right kind of buffer” because in-GPU-memory buffers obviously need to be set up by different mechanisms than in-main-memory buffers.
17:28:04 <int-e> fizzie: ENOFUNGOT
17:28:55 <int-e> Melvar: then why do they have subpixel coordinates at all?
17:30:06 <int-e> Oh, I'm making an assumption there.
17:30:38 <Melvar> Because you may render your content at a higher resolution if wayland tells you it’s being shown on a hidpi display, it seems, mainly.
17:33:28 -!- riv has joined.
17:33:32 <Melvar> In the core protocol, it seems that mouse, touch, and scroll events use these fixnums for their coordinates, plus for the shape properties of touch points if those are supported by your input device.
17:34:43 -!- spruit11_ has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
17:34:59 -!- spruit11 has joined.
17:35:14 -!- fractal42 has joined.
17:36:46 <Melvar> So the mouse/pointer can probably only be at locations corresponding to real pixels, but with the scaling you can have multiple real pixels per unit of surface coordinates.
17:39:31 <int-e> Hmm. I guess that makes sense.
17:39:48 <Melvar> The scaling stuff is such that the default is just that the compositor scales up your pixel data itself if you don’t say you’re rendering at the increased resolution it told you about.
17:40:49 * int-e is living a compositer-free life :P
17:40:58 <Melvar> Like, it tells you about the scale of any output you’re being shown on, and you tell it about the scale you’re rendering at (default 1), and the compositor has to make up the difference.
17:41:13 <int-e> which I guess is borderline insane these days
17:42:04 <Melvar> I’m not actually using wayland either because there’s still not a functional WayMonad yet.
17:44:26 <fizzie> Oh, right.
17:44:37 <fizzie> Our interweb at home went down yesterday.
17:44:56 <fizzie> I even said out loud "hmm, fungot has probably dropped off", but then did nothing about it.
17:44:59 <Melvar> And an actual XMonad developer noted that having garbage collection in the rendering path is a problem, so a new protocol to replicate the X setup of window manager as a separate process may need to be invented before a WayMonad becomes really usable.
17:45:34 -!- fungot has joined.
17:46:36 <Melvar> Good thing the wayland protocol is pretty extensible.
17:49:14 <fizzie> I imagine pen input can have subpixel accuracy even in terms of physical pixels. At least I remember pen displays quoting ridiculous numbers for that.
17:50:19 <Melvar> Possibly.
17:53:21 -!- fractal42 has left.
17:53:31 <fizzie> Wacom's almost-entry-level Cintiq 16 (I've been thinking about getting one, purely because I have an inexplicable attraction for things with pens) has a ~142dpi 1920x1080 display, but a "5080 lpi" "pen resolution".
17:53:33 <fizzie> Though I feel like that's the same sort of number as printer resolutions.
17:54:44 <b_jonas> I have certainly thought of passwords, including "DVD demagnetizer", but I don't find it important enough to set them, and it would feel dirty to automatically set them, and it's not clear where the ethics boundary is between running a script that automatically grabs the password at midnight (which timezone?) and just setting up a calendar reminder to grab the password, so I just don't do anything.
17:58:29 <shachaf> If I want a tablety thing I can draw on, which also has a screen so I can look at it while I'm drawing, what's the best option?
17:58:51 <shachaf> I mean for things like interactive online things where other people can see it.
18:00:11 <fizzie> Should it be a self-contained computing device, or just a peripheral to an existing computer?
18:01:25 <fizzie> I've been informed that the iPad Pro + Apple Pencil combination is up there, I've just personally ruled that out for software-related reasons.
18:03:01 <shachaf> My vague impression was that the iPad Pro Pencil thing was very good.
18:03:26 <shachaf> But I'm similarly not that into using an Apple thing.
18:05:03 <fizzie> There's also the Surface Pro and the Surface Pen, which I think wasn't bad either, but I've *also* ruled that out for software reasons.
18:05:13 <fizzie> HP's just introduced a "Chromebook x2 11" that supports the USI stylus standard, I've been hoping someone would review it for that sort of a use case.
18:07:48 <int-e> Hmm, peripherals. Apparently there's non-Wacom stuff in this area which is not completely unaffordable. https://www.amazon.com/dp/B07SR4615F/
18:07:54 <fizzie> And PINE64 recently announced they're going to produce an e-ink thing called a PineNote that's something along the lines of the Remarkable, but that's quite a different thing, what with having a monochrome and inherently-slow-refresh-rate e-ink screen.
18:08:11 <fizzie> I don't think the Wacom stuff qualifies as "completely unaffordable" any more.
18:08:23 <fizzie> It used to be a thing that Cintiq displays cost a whole lot of money, but now those really expensive ones have been rebranded "Cintiq Pro" and they've added two reasonably priced "basic" models, plus the Wacom One.
18:10:12 <int-e> Hmm so they have.
18:10:16 <fizzie> (The 16" Cintiq 16 costs $649.95, and the 13" Wacom One costs $399.95, in terms of the Wacom store list prices.)
18:10:54 <int-e> cintiq pro seems to start at $2k on Amazon
18:11:32 <b_jonas> shachaf: hmm, my coworker recommended something that they were taking notes on, but becuse I don't want one, I don't remember what it was
18:11:37 <b_jonas> plus it was partly software recommendation
18:18:36 <int-e> wth is Windows S-mode... oh... full vendor lockin mode.
18:24:38 <fizzie> I think I heard something about that.
18:26:23 <int-e> (my browsing drifted to cheap laptops)
18:27:16 <int-e> Of course "S" officially stands for "secure" but it's really the walled garden kind of "security".
18:28:11 <int-e> Not that I care all that much... as long as I can wipe it and install Linux. Which... well I guess I have to figure out for each model separately since we can no longer trust CPUs nor BIOSes to be open?
18:29:27 <int-e> (CPU: https://www.servethehome.com/amd-psb-vendor-locks-epyc-cpus-for-enhanced-security-at-a-cost/ ...not sure whether this crap has made its way to non-server x86 hardware by now.)
18:55:16 -!- kronk has joined.
19:58:03 -!- Everything has joined.
20:27:38 -!- tech_exorcist has quit (Remote host closed the connection).
20:52:45 -!- Lord_of_Life_ has joined.
20:53:52 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
20:54:01 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:05:22 <zzo38> There are many things that I don't like about Wayland, so I won't use it. I think instead a improved version of X could be made (mostly the core X11 stuff but with some differences), and then using proxying for security.
21:10:28 -!- tech_exorcist has joined.
21:40:42 <fizzie> Hmm, 2160x1440, that's an interesting resolution. (My browsing drifted to looking at first-impression comments on the HP x2 11, but nobody's been talking about the pen at all.)
21:41:28 <int-e> > 2160/1440 :: Rational
21:41:29 <lambdabot> 3 % 2
21:41:57 <fizzie> 3:2 is a nice aspect ratio though. My camera takes 3:2 pictures.
21:42:25 <nakilon> lol
21:42:26 <nakilon> $ rg "-V" ~/.rbenv/versions/2.3.8/
21:42:26 <nakilon> ripgrep 12.1.1
21:42:31 <int-e> I'm not judging (I think 16:9 is too wide, personally); I was just too lazy to do the math
21:42:41 <nakilon> can't grep for "-V" because it's a flag of a grep utility
21:42:42 <fizzie> Also, I'm a little worried about it being a ChromeOS device. I tried out a ChromeOS tablet with a pen once, and just couldn't figure out a way to make it do palm rejection at all, so it was really frustrating. That's why I've been thinking about the Wacom display: it doesn't do capacitive touch at all, so there's no need to worry about unintentional inputs.
21:43:07 <fizzie> Usually you pass arguments starting with a dash by doing -- before the arguments.
21:43:14 <fizzie> As in, `rg -- -V ...`.
21:43:46 <nakilon> worked, thanks
21:49:51 -!- ais523 has joined.
21:50:23 <ais523> I sort-of want to rant about system programming languages and general-purpose pointers/references
21:50:54 -!- hendursaga has quit (Ping timeout: 276 seconds).
21:50:58 <ais523> there are two things you can do with a pointer: a) pointer arithmetic operations like offset, compare, etc.; and b) dereferencing it to get at the value you're pointing to
21:51:17 -!- hendursaga has joined.
21:51:19 <ais523> operations in group a) are occasionally useful, but operations in group b) are much, much more common
21:51:33 <ais523> however, system programming languages seem to optimise for a) in practice
21:51:59 <ais523> for example, Rust has a way to cast an &T into a *const T, and you can do this with any &T, with no restrictions
21:52:56 <ais523> this means that any code that produces an &T needs to have an actual concrete memory location, with an address, for the thing that it points to, even though 99.9% of the time that's useless and the code you pass the &T to will only care about the thing it points to, not the location of the thing it points to
21:54:05 <ais523> and this seems like it could make optimisation much more difficult, e.g. you can *almost* optimize an &u32 into a u32 (i.e. replacing pass-by-reference with pass-by-value in a situation where the rules of the language prevent the reference target changing), but you can't, due to the off-chance that the program you pass the reference to cares about the address
21:54:50 <ais523> so I'm wondering how difficult it would be to make an optimiser that applies this optimisation anyway, and I'm wondering that it's likely to be too difficult in practice, and also suspect it may have a substantial performance impact
21:55:18 <ais523> (even if not at runtime, the compiler is going to need to do a lot of inlining, etc., to spot that the address isn't being used)
21:57:22 <ais523> something similar happens to constants; often you care about their value but not their address, but the compiler can't safely merge two constants with the same value if their address might be relevant
21:57:36 <ais523> (incidentally, NetHack contains at least one constant with an irrelevant value, which is used only for its address)
21:57:38 <zzo38> I know there is X on Wayland, but is there Wayland on X?
21:58:23 <shachaf> Go has b-type pointers only. Which seems very reasonable to me, I don't know why more high-level languages don't have b-type pointers.
21:58:35 <zzo38> C has a "register" command to indicate that taking the address is not possible.
21:58:39 <shachaf> Zig has distinct pointer types for a and b, I believe.
21:59:10 <shachaf> Not that this really addresses the thing you were saying.
22:00:13 -!- tech_exorcist has quit (Quit: see you tomorrow).
22:00:23 <shachaf> I think languages that have some sort of escape anaysis might be able to do this sort of thing? I vaguely remember that maybe Go does something like that to know whether it can stack-allocate pointers?
22:00:23 <ais523> I think that having them separate is one of the better solutions
22:00:38 <shachaf> Uh, stack-allocate values that it passes pointers to to things.
22:00:41 <ais523> it strikes me that Rust lifetimes might be abusable to track a-ness versus b-ness of a reference
22:01:05 <ais523> but, it wouldn't nest in the same way as other lifetimes
22:01:13 <ais523> would be nice for making code generic over pointer types though
22:01:33 <ais523> zzo38: I think it would make sense to reuse the "register" keyword as "you can't take the address of this"
22:01:41 <ais523> but it would be quite a big change to the language
22:02:48 <shachaf> Isn't it already how the language works?
22:02:54 <shachaf> I thought that was the entire meaning of "register".
22:03:13 <ais523> yes but it's only usable in one context
22:03:20 <ais523> which is defining local variables (including function parameters)
22:03:27 <shachaf> Oh, I see.
22:03:41 <ais523> you can't write int register* x
22:04:00 <shachaf> Right.
22:04:01 <ais523> err, int *register x
22:04:09 <ais523> (whereas int *const x says that x is const)
22:04:17 <ais523> err, that *x is const
22:04:30 <ais523> x is const would be int const * x or const int* x
22:04:58 <ais523> C type syntax is a good example of how something can have a very simple specification but be utterly unintuitive in practice, and I'm out of practice with it
22:05:14 <b_jonas> oh hi ais523
22:05:21 <b_jonas> I knew you'd be summoned eventually
22:05:22 <zzo38> I think that the confusing syntax for types is the worst feature of C.
22:05:36 <riv> yes
22:05:40 <shachaf> Should I switch to writing const after the type, for consistency?
22:05:52 <shachaf> int const x; instead of const int x; and so on.
22:05:58 <shachaf> I think maybe I should.
22:06:14 <ais523> shachaf: I've been wondering about that
22:06:33 <ais523> int const x; is more consistent, and makes the rules easier to remember; but const int x; is much harder to misinterpret
22:06:49 <ais523> I have gotten into the habit of writing *const rather than * const
22:06:52 <shachaf> The thing that made me remember how to make constant pointers and so on was when someone told me to think of it as a subscript.
22:06:58 <shachaf> As in "int *_{const} x;"
22:07:02 <ais523> (I got taught that by a syntax reformatter, I forget which one)
22:07:37 -!- arseniiv has quit (Ping timeout: 245 seconds).
22:07:41 <ais523> hmm, I wonder whether C's type syntax would be more readable if you just swapped the value and type
22:07:58 <ais523> x: *const int versus x: const *int
22:08:23 <ais523> that looks fairly intuitive?
22:08:31 <shachaf> I'm not so sure const is even a good idea in C.
22:08:45 <shachaf> Which is a separate matter from the syntax, of course.
22:08:48 <ais523> x: (*int)(int, int) maybe less so
22:09:14 <ais523> actually, that one's badly misleading, probably even ambiguous
22:09:26 <shachaf> This argument was sort of convincing: https://gist.github.com/pervognsen/a99c9b2e2712deeb5f174553b4dc0c88
22:09:51 <ais523> you'd want to write the function pointer as *(int)(int, int) but that's not a simple swap of type and value
22:10:26 <b_jonas> ais523: "you can *almost* optimize an &u32 into a u32" => in rust, the solution to that is to always just pass the value in your code, like the u32 in this case, if it works, because if it's too large, the ABI will pass it as a pointer if it's large anyway. this doesn't work if you want the called function to mutate the value, or if the value isn't movable, but both of those invalidate that
22:10:26 <ais523> I think my opinion of const in C is that it's badly designed, but still helps to catch enough errors that it's worth putting up with the design flaws and false positives
22:10:32 <b_jonas> optimization; and also if the value is not compile time fixed length, but then passing it as a function argument is a hard problem in general.
22:11:08 <ais523> b_jonas: it doesn't work well with generic code, or with non-Copy things
22:11:13 <ais523> a good example is Rc
22:11:31 <b_jonas> ais523: in C++, the solution to that is this newfangled | qualifier, which I'm not sure if it actually got into C++ yet or is in proposal stage, which you use in a function argument, and means that the compiler can either write const & or nothing there, as in, pass the value either by const reference or by value
22:11:31 <ais523> an Rc is 8 bytes long, and not Copy, but cloning it doesn't mutate the Rc itself (just the RcBox it points to)
22:12:01 <shachaf> Hmm, I still haven't figured out what Cell and RefCell in Rust are.
22:12:05 <ais523> so you'd want to optimise &Rc into &RcBox to avoid the double indirection, but it's hard to see that that optimisation is valid (because someone might take the address of the Rc itself)
22:12:12 <shachaf> The documentation doesn't seem to answer that question.
22:12:25 <ais523> shachaf: I figured it out when I wrote code that needed a custom RefCell-like thing
22:12:50 <ais523> the basic idea is, a Cell is something that can be mutated through a shared (&) pointer (whereas most things need an &mut pointer to be mutated)
22:12:56 <b_jonas> there is a reason why the actual thing you write differs in C++ vs rust, but it's irrelevant now, the main point is that both are trying to solve this and rust has solved it already
22:13:02 <shachaf> The memory layout of Cell<T> is the same as T, right?
22:13:05 <ais523> so, you can have a Cell<u32>, for example, and write a new u32 to it
22:13:27 <ais523> and yes, memory layout is identical to T, you're just marking it as being mutatable even if there are references to it
22:13:40 <shachaf> Is Cell something you need unsafe-or-similar to implement?
22:13:55 <ais523> it's implemented in terms of UnsafeCell, which is a compiler primitive
22:14:04 <shachaf> Why doesn't being able to mutate it through & cause problems?
22:14:17 <ais523> there are limits on the sort of mutations you can do
22:14:40 <shachaf> I see, you can only write an entire new value in, or something?
22:14:46 <ais523> the main rule is that you can `Copy` the value out of the cell, or overwrite a value into the cell, or swap the value in the cell with another, as long as it's only accessible from one thread
22:14:51 <shachaf> Rather than getting a pointer to the thing?
22:14:52 <ais523> but, you can never get a reference to the value inside
22:14:57 <shachaf> Right.
22:15:15 <ais523> `RefCell` is like `Cell` but does runtime checks rather than compile-time checks
22:15:16 <HackEso> RefCell`? No such file or directory
22:15:33 <b_jonas> I think people exaggerate how bad the C pointer/array/function thing is. it's something you have to learn once, but it's not something that will cause lots of hard to debug bugs in your program or anything. as problems with function languages go, it's mild. it's something only people who want to hate C will say.
22:15:48 <shachaf> So you can have fn f(a: &Cell<u32>, b: &Cell<u32>); let x: Cell<u32>; { f(&x, &x); }, and f doesn't care that the values alias.
22:15:55 <ais523> you can get a reference to the value inside, but only if there are no conflicting references, you get an error if you try to create a unique reference to it at the same time as any other sort of reference
22:16:01 <riv> another bad thing about C is the build system stuff
22:16:06 <ais523> shachaf: right
22:16:13 <shachaf> And it behaves sort of like "void f(u32 *a, u32 *b);" in C, where the compiler can't assume anything.
22:16:13 <riv> C should be designed so that it can be compiled easier
22:16:23 <ais523> shachaf: exactly
22:16:28 <shachaf> OK, got it, that makes sense.
22:16:46 <shachaf> Why does RefCell need runtime checks? What does it let you do?
22:16:51 <b_jonas> ais523: also you didn't react to what I wrote about Infinite Vector, so now I have to ask you
22:17:00 <b_jonas> ais523: does what I wrote about Infinite Vector sound right?
22:17:06 <ais523> it lets you take a reference to the inside of the cell, but the runtime checks make sure that there aren't too many
22:17:13 <ais523> b_jonas: it looked plausible but I didn't want to think about it too deeply
22:17:17 <ais523> I'm not surprised it's TC
22:17:18 <b_jonas> ok
22:17:34 <shachaf> Aha. RefCell lets you borrow the inside of the cell.
22:17:37 <ais523> right
22:17:48 <shachaf> In particular it lets you take any number of const references or at most one mut reference?
22:17:53 <ais523> yes
22:18:00 <shachaf> Makes sense!
22:18:05 <ais523> but the type system doesn't prevent you doing both at once, which is why the runtime checks are needed
22:18:10 <shachaf> Right.
22:18:12 <shachaf> I don't know why they don't say that in the documentation.
22:18:33 <shachaf> I asked someone about it, and they gave an explanation that would have required Cell<T> to have a different memory layout from T.
22:18:48 <ais523> that's technically correct but misses the point
22:18:59 <b_jonas> stuff about Infinite Vector at https://logs.esolangs.org/libera-esolangs/2021-08-31.html#lrc for future reference
22:19:36 <ais523> RefCell<T> needs a reference count to count the borrows, which does give a different memory layout, but the point is more that you need runtime checks to count the borrows
22:19:44 <shachaf> Yes, but Cell<T> doesn't.
22:19:52 <ais523> yep, because it can't be borrowed at all
22:19:55 <shachaf> So then we were both confused.
22:20:11 <shachaf> Anyway this makes sense, thanks for clarifying.
22:20:42 <shachaf> Maybe one day I'll understand Pin.
22:20:44 <ais523> in practice Cell<T> works best on things that are `Copy` and fairly small, so that you'd have little reason to borrow it (and don't need to swap a placeholder value in when you take the old value out)
22:20:46 -!- Koen_ has joined.
22:21:15 <fizzie> If "swap the value and type" means "pull out the identifier from the declarator, and then write the type name after it", I don't know how much that would help, since simple things are already simple, and complex declarators are probably even worse to read when the identifier isn't in there to show where to start from.
22:21:18 <fizzie> Go does the "strictly separate the identifier and type name" thing, but it *also* moves the [] syntax to be prefix to match *, and uses a keyword to introduce function types, which does a lot of the heavy lifting of making type names more "linear".
22:21:31 <b_jonas> ais523: I think that's deliberately hard. you have three options: move the Rc if you no longer need it, in which case you just pass by value; or if you do need it but the called function doesn't need to keep a reference but only look at the pointed value now, then pass a reference to the pointed value, it will be valid because you're the caller and you're keeping the copy of the Rc; or if both of you
22:21:37 <b_jonas> need it, then clone the Rc explicitly, but that's something Rust doesn't want to do implicitly without you actually writing .clone()
22:21:46 <shachaf> The Go syntax for types seems mostly better than the C syntax.
22:21:51 <shachaf> Some of it is a little odd but it's fine.
22:22:07 <b_jonas> but that third thing is rare
22:22:09 <ais523> b_jonas: this mostly comes up with generic code
22:22:09 <shachaf> Presumably you should have a really good reason not to make your programming language syntax LL(1).
22:22:14 <shachaf> Is the Go syntax LL(1)?
22:22:27 <ais523> almost all generic code assumes that the receiver for methods that don't need to mutate self is &self
22:22:46 <riv> mostly people just code without thinking or caring about theory
22:22:49 <shachaf> Oh, not quite apparently.
22:22:51 <riv> so things end up not being LL(1)
22:23:07 <fizzie> I remember there's an annoying syntax quirk in Go where you sometimes need to add ()s around the controlling expression of an `if` statement, when there's {}s involved in the expression as well.
22:23:16 <ais523> my opinion on this is that you normally have a separate parser and lexer anyway, so few languages are LL(1) at the byte level
22:23:20 <b_jonas> ais523: really? aren't you confusing that with C++ or with run-time dynamic type dispatch code?
22:23:29 <riv> yes LL(1) in terms of tokens
22:23:35 <riv> and the token language should be regular
22:23:52 <b_jonas> shachaf: no, I think that's only true for LR(1), not for LL(1)
22:23:56 <ais523> riv: my opinion on this is that it'd be great if the parser and lexer could be combined
22:24:08 <riv> i suppose they can be combined
22:24:22 <b_jonas> sure, simpler languages will be LL(1)
22:24:25 <riv> but it's good if they can be separated in terms of specification
22:24:30 <ais523> b_jonas: something that always amazes me is that the syntax of yacc (after tokenisation) is LR(2) but not LR(1)
22:24:45 <b_jonas> ais523: heh
22:24:46 <ais523> some yacc implementations work around this by getting the lexer to do an extra token of lookahead
22:24:51 <shachaf> Hmm, I should learn how LR parsers work.
22:24:53 <ais523> but it's crazy that it technically can't parse itself
22:25:06 <b_jonas> ais523: is that because there's no separator (semicolon) between the rules?
22:25:09 <ais523> and even more crazy that it's LR with a finite number that isn't 1
22:25:28 <riv> that is so funny
22:25:31 <ais523> b_jonas: right, semicolons are optional, and to parse the case where they're missing you need two tokens of lookahead
22:25:48 <b_jonas> odd
22:25:59 <b_jonas> I wonder why they defined yacc syntax like that
22:26:14 <b_jonas> is there some history behind it?
22:26:14 <ais523> it was probably some sort of historical accident?
22:26:25 <ais523> yacc probably wasn't originally programmed in itself, as it'd have been a pain to bootstrap
22:26:28 <b_jonas> like trying to unify the syntax of two incompatible parser generator syntaxes?
22:26:34 <ais523> so probably there was a hand-rolled parser, which wasn't necessarily going to be LR
22:26:48 <ais523> given that the name starts "ya", though, there must have been a number of parser generators before it
22:26:49 <riv> they could have still designed it to be LR(1) :P
22:26:52 <riv> i really love this fact
22:27:09 <b_jonas> sure, but whoever thought, let's write an LR(1) parser generator, they probably understood what makes a language LR(1), and automatically used such a syntax
22:27:30 <int-e> Do you have a shift/reduce parser in your brain? I'm pretty sure I don't.
22:27:33 <b_jonas> it's not like back when nobody knew how parsing is supposed to work, so they just wrote up syntax and figured out afterwards how to parse it, which is supposedly how fortran was born
22:27:49 <int-e> Also pretty sure that while the brain has limited lookahead, the limit isn't 1.
22:28:04 <ais523> I have been wondering about extensions to shift/reduce automata
22:28:24 <ais523> shift/reduce/rewind seems to have a lot of power, whilst still being efficient if you put appropriate limitations on it (it's probably TC if you don't put limitations on it)
22:28:34 <ais523> err, maybe LBA rather than TC
22:29:11 <b_jonas> what is "LBA"?
22:29:25 <int-e> linearly bounded automaton
22:29:39 <b_jonas> memory bound to O(n) where n is input size?
22:29:44 <int-e> logical block addressing
22:29:47 <int-e> little big adventure
22:29:59 <b_jonas> fungot, what does LBA stand for
22:29:59 <fungot> b_jonas: you should avoid using it for is to eliminate the usage of funky python.
22:30:00 <ais523> b_jonas: right
22:30:14 <ais523> you get O(n) memory where n is the number of bits in the input
22:30:19 <b_jonas> `? lba
22:30:21 <HackEso> This channel is having a Little Big Adventure(tm) with Linear Bounded Automata in devices using Logical Block Addressing.
22:30:45 <int-e> I may be responsible for that one
22:30:49 <int-e> `cwlprits lba
22:30:52 <HackEso> int-̈e
22:31:03 <shachaf> Man, LBA was such a big upgrade over Illogical Block Addressing.
22:31:13 <shachaf> Why did they even start with that scheme?
22:31:47 <int-e> physical addressing by head, cylinder, sector?
22:32:02 <int-e> I imagine it matched the hardware better at the time
22:32:21 <b_jonas> shachaf: because they designed the PC before DOS brought in the unix heritage of linearly addressed block devices
22:32:53 <int-e> also before HDDs made tracks have different numbers of sectors depending on how long they are
22:33:22 <int-e> and automatically remap bad sectors and all that
22:33:48 <b_jonas> you don't want to put too much complicated logic in the disk contorller, and especially not in the disk, because electronics was expensive, and there's already a CPU that can compute everything for you, so the CPU computes the cylinder, head, sector addresses and tells that to the disk controller
22:34:00 -!- delta23 has joined.
22:34:15 <ais523> nowadays, disk controllers run pretty powerful processors
22:34:31 <shachaf> SSD controllers are presumably just ridiculous.
22:34:33 <ais523> I've seen blog posts where people reprogrammed them to do interesting tihngs
22:34:46 <shachaf> And they should stop presenting a block device interface.
22:34:54 <ais523> and communicated with their software by writing files with particular text in
22:35:04 <b_jonas> yes, and funnily the C64's disk drive also runs a CPU about as powerful as the computer, but note that the disk drive is optional and also can be shared between multiple computers
22:35:14 <shachaf> What would a good interface for SSD controllers be like?
22:35:46 <ais523> one complication is working out who's responsible for the filesystem, the SSD controller or the operating system
22:35:51 <int-e> hrm which computer had a full CPU as floppy disk controller?
22:35:53 <shachaf> Another thing I was wondering about was whether desktop computers should have some amount of NVRAM that's exposed directly to applications.
22:36:12 <b_jonas> ais523: what we want more these days is reprogramming them to *not* do interesting things, in particular, not handle shingled storage, so that the OS can handle it itself and as such better optimize it together with the file system
22:36:25 <ais523> shachaf: they do, but you have to jump through lots of hoops to get at it
22:36:38 <shachaf> You mean in an SSD?
22:36:38 <int-e> Oh b_jonas answered that
22:36:43 <ais523> and also it normally belongs to the BIOS/UEFI so you can damage your bootloader if you mess with it
22:37:21 <b_jonas> rather than, as the current state is, the hard disk manufacturer is in a war with the OS, it tries to pretend very hard that it's not a shingled drive, until one day you write too many things to it too fast, at which point it freezes for half an hour to rewrite all the data on it, the OS decides that your drive is dead and removes it from the RAID array, and you can no longer make cheap RAID setups from
22:37:24 <ais523> b_jonas: apparently a major problem in practice is that they often lie about what they're doing to get beterr performance metrics
22:37:26 <shachaf> I just mean a region of RAM that's guaranteed to be dumped to disk on power loss.
22:37:27 <b_jonas> cheap drives
22:37:54 <b_jonas> yes, this is for hard disks specifically, not for SSDs
22:37:56 <ais523> shachaf: ah, I see
22:38:26 <b_jonas> int-2: the Commodore 64 had a full CPU in the floppy disk controller. just not too much RAM.
22:38:30 <b_jonas> int-e: ^
22:38:36 <ais523> apparently even getting journalled filesystems to work correctly on power loss is difficult, because there are all sorts of error conditions like "the CPU browned out and gave bad data to the disk controller"
22:39:11 <b_jonas> but still enough RAM to load enough code to it to completely upgrade how it reads and writes disks, rather than using its original ROM code, and still have enough buffers for that read/write thing
22:39:11 <ais523> you'd need the motherboard to carefully orchestrate the order in which various components lost power when the power was cut, probably with a number of capacitors to provide emergency powre for a clean shutdown
22:40:50 <b_jonas> ais523: I think the journaled thing came up more with old SSDs, because they were small and mostly intended as removable storage (pendrives), while I think (hope) it's mostly solved now with modern SSDs that are originally intended to be used as the main storage in computers
22:40:51 <shachaf> One thing that briefly surprised me is that my SSD has done a lot more writes than reads.
22:40:59 <shachaf> 18.1 TB read, 31.6 TB written.
22:41:08 <fizzie> There's a nice demo for the 1541 disk drive.
22:41:18 <shachaf> But it makes sense because in steady state everything I use fits in the page cache, so there's no reason to ever read.
22:41:20 <fizzie> https://cdm.link/2021/07/freespin-is-a-demo-made-for-the-commodore-1541-no-not-the-computer-just-the-floppy-drive/
22:41:38 <shachaf> But you always need to write for durability. My browser writes its state every time I open a new tab or even scroll, I think.
22:41:40 <fizzie> It bit-bangs a composite video signal out of the serial port.
22:41:44 <nakilon> how do I see my read/write stats?
22:41:56 <fizzie> IIRC, you need to use a computer to load it, but can disconnect the computer once it's up and running.
22:41:57 <shachaf> So having a region of memory you can write things to that's durable but will almost certainly be overwritten right away seems like it could be very useful.
22:43:03 <int-e> I tweaked my browser.sessionstore.interval to be 3 minutes.
22:43:06 <fizzie> http://www.quiss.org/freespin/ would've been a better link I think.
22:43:30 <int-e> Default is 15 seconds.
22:43:36 <int-e> (Firefox)
22:43:54 <fizzie> shachaf: Mine's even more unbalanced: 535 GB read, 6.86 TB written.
22:44:13 <ais523> shachaf: so basically a write-behind cache which you have little intention of ever flushing early but will get flushed on power failure, that does seem useful
22:44:22 <ais523> but it's the opposite safety characteristics to a typical write-behind cache
22:44:25 <shachaf> When I first saw these numbers, I did a read of the entire SSD, which added 1TB, to see how long it'd take.
22:44:57 <shachaf> ais523: Right.
22:45:22 <shachaf> Maybe the OS interface can just be a regular file with a hint that you want it in this region, or something.
22:45:45 <shachaf> For all I know SSD controllers already do a good job at this.
22:45:52 <shachaf> Though I kind of doubt it, they just don't have enough information.
22:46:26 <int-e> Oh my SSD doesn't report blocks read... odd?
22:47:07 <nakilon> got this https://dpaste.org/3ZTZ/slim
22:47:25 <fizzie> Hmm. The spinning disk is the exact opposite, at 37B units written and 476B units read. I don't know what the units are for "Total_LBAs_Written" and "Total_LBAs_Read". For the (NVMe) SSD, smartctl reported them in a human-readable form.
22:47:35 <nakilon> I'm using this machine for 2 years now
22:47:51 <nakilon> compared to your stats I guess it's a lot ( maybe damn google chrome?
22:49:23 <shachaf> SSD NAND flash is getting worse and worse to increase density, which makes these things more important.
22:50:34 <nakilon> as I understand the disk is dead when Available Spare goes down to Available Spare Threshold
22:51:15 <fizzie> int-e: I've got a (someone else's spare) SATA SSD that I use as a dual-boot (more like a never-boot) Windows drive, and I can't find any read/write stats for it either from smartctl -a output.
22:51:37 <shachaf> fizzie: The Internet is saying you should multiply by the "Sector Size" field, if you have one.
22:52:14 <fizzie> "Sector Sizes: 512 bytes logical, 4096 bytes physical"
22:53:12 <int-e> fizzie: this one reports lbas written, but not lbas read.
22:53:13 <shachaf> OK, so you've written 19 logical TB and 152 physical TB.
22:53:16 <shachaf> Simple enough.
22:53:23 <shachaf> What an amplification factor!
22:53:29 <int-e> which I guess makes some sense for NAND storage
22:54:07 <fizzie> This one doesn't report either. It reports a number of "Unknown_JMF_Attribute"s, but they're all 0s.
22:54:28 <shachaf> I've moved this SSD across several laptops by now.
22:54:42 <shachaf> I wonder how old it is.
22:55:11 <fizzie> I wonder if there would be any sort of benefit to trying to figure out some way of telling Linux that it should keep that particular SATA device just permanently powered down, since it's never going to be intentionally used.
22:55:23 <int-e> the spinning rust reports a higher Head_Flying_Hours value than Power_On_Hours ...I guess it's sleepflying
22:55:34 <shachaf> "Date first available" for this model is apparently 2016.
22:55:48 <int-e> (it's not a huge difference, about 2%)
22:55:54 <nakilon> oh, it's Terminal I suppose https://i.imgur.com/ggTnoDB.png I noticed before, probably because I set the buffer limit to infinity and if something prints a lot it goes to the disk; I wonder if swap usage is added as a specific app stat
22:56:31 <b_jonas> fizzie: wait, I think there's interface for that in /proc or /sys or something
22:56:50 <b_jonas> fizzie: I mean it's something you have to rerun after every boot, and the BIOS might power it on first
22:56:56 <b_jonas> but after that it keeps it powered down
22:57:12 <fizzie> Well, I don't boot that often. I just wonder if it would be a noticeable benefit in terms of... something.
22:58:54 <b_jonas> no idea
22:59:47 <b_jonas> I don't really trust SSDs too much yet
23:00:04 <b_jonas> I mean they're great for caching, but save everything to a hard disk too
23:00:21 <fizzie> There's also this other SATA SSD (the one I used to have in my desktop before), and that one reports via SMART counters called Read_Sectors_Tot_Ct and Write_Sectors_Tot_Ct; that one's saying 1.74 TiB read and 5.52 TiB written.
23:01:05 <nakilon> b_jonas lol you've hightlighted someone
23:01:38 <b_jonas> quite possible, some people have nicks that are common words
23:04:34 <shachaf> Maybe I should get a new SSD.
23:06:04 <b_jonas> I have a new SSD. I bought it with the new computer in 2020-10. I'm not using it yet, but I have it.
23:06:30 <shachaf> I wonder, maybe typical modern SSDs are actually slower than what I have, because they use TLC (or even QLC?).
23:07:05 <b_jonas> I had the intent to mostly use it as read cache (no writeback cache) for the hard disk file systems, for which there are like two different mechanisms in Linux already,
23:07:38 <b_jonas> but then I got distracted by the shingled hard disk RAID thing, and I definitely don't want to set up the read cache before I set up the RAID, because the cache has to go *over* the RAID layer
23:07:52 <b_jonas> or at least I should understand how the whole thing works before I set it up
23:08:51 <nakilon> the funny thing is that only those people who bother with RAID get their data lost
23:08:57 <nakilon> I never bothered and never lost anything
23:09:10 <b_jonas> also I deliberately bought a better computer than I need right now, so I don't have to get back to the hard process of selecting and buying computer parts, and wanted a configuration that can fit together
23:10:00 <shachaf> I wonder. RAID doesn't make sense for large distributed systems, and consumers don't use it, so the range of applications seems very limited.
23:10:12 <nakilon> it's like RAID -- is a technology to lose data, not preserve
23:10:17 <b_jonas> of course that never works out, because (1) I need a new monitor now, and (2) I deliberately didn't buy a video card, only a motherboard with a free slot for video card, thinking that when I need a video card, I just buy one, but BANG advanced electronics shortage, prices shooting up, nope, you can't just buy a video card when you need it
23:11:02 <shachaf> What multiplier does the shortage increase price by?
23:11:09 <shachaf> Is it ~2x or ~10x or what?
23:11:25 <b_jonas> shachaf: no clue
23:11:29 <ais523> there are two relevant shortages I think
23:11:43 <b_jonas> ais523: sure, the other is building supplies, especially steel
23:11:51 <ais523> one of them hit high-end GPUs in particular, the prices of those went up by a lot, but lower-end GPUs were mostly unaffected
23:11:54 <b_jonas> but that one doesn't affect me so directly
23:11:57 <ais523> the other one is more general-purpose
23:12:22 <ais523> I'm in the UK, which currently has shortages of pretty much everything due to a lack of transport
23:12:43 <b_jonas> I didn't say that I won't build a house now because I can just have it built later when I need it, unlike the video card thing
23:12:48 <ais523> (after brexit the amount of paperwork involved in international trade has gone way up, and scared a lot of people out of the field, so there's a shortage of employees)
23:13:19 <shachaf> How much does it cost to build a house normally?
23:13:31 <b_jonas> ais523: yes, and even in the EU, trade from outside the EU (as in, importing the cheap electronics from East Asia) got somewhat harder
23:13:47 <fizzie> I looked at bcache a little. It feels like it would be nice to have some sort of automation as to what to put on the SSD and what to keep on the spinning disks, rather than having to manually make that decision by choosing a location in the filesystem.
23:13:55 <b_jonas> shachaf: no idea, I don't want to have one built ever in my life
23:14:05 <b_jonas> if I have to build one, then free market economy failed me
23:14:16 <b_jonas> I want to rent apartments forever, and if I can't, the market sucks
23:14:26 <b_jonas> but even then I'll probably just buy a (used) house, I won't have one built
23:15:06 <b_jonas> so I never researched it
23:15:27 <b_jonas> but I won't have to, because building houses is mostly for people who want to live in the suburbs or agglomeration
23:15:46 <b_jonas> I want to live in a city, which is already densely packed with houses, and every free space immediately has a house built
23:16:10 <b_jonas> I knew a few people who do the suburb or agglomeration thing
23:16:22 <b_jonas> but that's definitely not the kind of life that I want
23:17:00 <ais523> I wonder why people don't normally talk about used / second-hand houses
23:17:07 <ais523> probably because that's the norm in many countries
23:17:18 <shachaf> I've heard people use that term.
23:17:27 -!- Hooloovoo has quit (Read error: Connection reset by peer).
23:18:05 <b_jonas> ais523: probably because nobody buys a whole new house. people either buy an apartment in a house that may be new, or have a custom house built
23:18:16 <b_jonas> if you want a whole house, and new, you want to customize it
23:19:12 <b_jonas> the second apartment that I lived in (moved there when I was about 10 years old) was in a new house, as in, my parents reserved it and partly payed it when the house wasn't even yet built
23:19:12 <ais523> not necessarily
23:19:39 <ais523> near here there are lots of new houses being built to standard designs, and then people buy them new, but with no input into the design
23:19:39 <fizzie> I'm weirded out by the "house" thing, and the UK notion of a "housing ladder", which you're supposed to use to climb up to a house, since I've exclusively lived in apartments that are units of much larger buildings, and don't find that odd. (That's at least partially orthogonal to the question about the ownership model though.)
23:19:42 -!- Hooloovoo has joined.
23:19:50 <ais523> (I have relatives who were considering buying one, but didn't like the design so chose not to)
23:20:38 <ais523> fizzie: the housing ladder exists, but choosing to participate in it is optional, and seems to be mostly due to people who have an idealistic idea of what people's lives should be like
23:20:59 <fizzie> Well, it is talked about a whole lot, it feels like.
23:21:01 <b_jonas> ais523: there are a few places where that happens, yes. my brother lives in a house that was probably originally built that way, because it's in a neighborhood with like a hundred family-sized houses built to the same template
23:21:12 <ais523> b_jonas: right
23:21:26 <ais523> that seems very common here (Birmingham specifically, I don't know whether it applies to the UK in general but it may do)
23:22:29 <b_jonas> I don't think it's too common here in Hungary
23:22:32 <b_jonas> it exists, but rare
23:22:42 <fizzie> Another thing that seems very UK-specific is this whole leasehold thing.
23:22:45 <nakilon> I guess people who can spend their money less practically have to be fooled, they have to be tricked to participate in the game of who will be the first buyer of a house and who'll be a "loser" to be the second buyer of it -- it just helps the builders to sell the stuff faster for their business
23:24:43 <ais523> I don't think being the first occupant of a house is considered a huge advantage here
23:25:03 <ais523> people care more about the location and size of the house than the number of previous owners
23:31:15 <nakilon> I knew a guy who was renting a 1 room flat in a very cool place in the city, it costed him 6 times more than my place, there was almost no profit in living there other than a bit smaller commute time, but mostly it was just about to be proud of where he lives
23:31:18 <b_jonas> I guess I'll have to edit the Infinity Vector page to give at least a summary of the Turing-completeness proof
23:32:50 <ais523> places like Cambridge and London seem to cause a vortex of price equalisation which caps the price of accommodation from below at the price in the centre minus the price to commute there
23:33:04 <ais523> and this can extend out hundreds of miles in some cases
23:33:46 <ais523> like, you can get the train from Norwich to London, so prices to live near a train station in Norwich are pretty high, taking only the cost of the train journey (which is not cheap!) into account
23:36:45 <fizzie> I feel like that's not quite true. Or at least that there's a pretty big variation in prices *within* London, bigger than could be explained by any transportation differences.
23:36:48 <fizzie> A little hard to say though. All I've seen are those "average property price" maps, and they're presumably quite a lot affected by what kind of properties there *are* in a region.
23:38:18 <ais523> well, transportation within London is actually fairly difficult, to the extent that it can be a significant portion of the travel time when taking journeys where London is one endpoint
23:38:38 <ais523> it has a good public transport network (although pretty bad roads), but not enough transport capacity
23:39:49 <ais523> I guess the problem is basically just that the population density is too high and the workplace density is also too high
23:40:06 <ais523> if businesses spread out more over the country rather than all grouping in one place, there'd be less of an issue
23:40:34 <nakilon> I hate that they group
23:42:39 <nakilon> even in the industrial age the factories were all spread, why the hell not IT companies all get crowded in centers?
23:42:47 <nakilon> *now
23:43:14 <nakilon> they don't have metal to be moved, they can work remotely, etc.
23:44:36 -!- Koen__ has joined.
23:45:33 <nakilon> I fucked up my health on one job with boss with a mania of having everyone being at their desks, not even spend 5 extra minutes on a dinner break; he could even come in and verbally shame someone in openspace in front of coworkers for "eating too slow" and such
23:47:07 -!- Koen_ has quit (Ping timeout: 252 seconds).
23:47:20 <nakilon> this was making people so stressed to be in place no matter what, for some even if their flat gets water flooded by a neighbor, for me it was ignoring the hurt it my back that I never had to ignore...
23:47:58 <nakilon> *in
23:48:51 <nakilon> fungot are you a remote worker?
23:48:52 <fungot> nakilon: do you know that in knuth's volume 1 a different formula is used, ( k val...) returns as if it were, would be possible
23:50:17 <fizzie> A "remote worker" in fungot context would probably be some sort of a Befunge-as-a-service cloud thing.
23:50:17 <fungot> fizzie: i would probably make more sense. or use lambdas. they might handle them with pieces tables ( make sense if hash maps wouldn't be better to have a coral reef.
23:51:32 <nakilon> he knows about AWS lambdas
23:55:13 -!- src has joined.
2021-09-05
00:04:59 <nakilon> there should be a fungeoid with subroutines defined as rectangles anywhere so to call them you reach them from any of 4 sides and any row and column within their size; they take the arg and start their work internally from the local (0,0); not sure about the exit
00:05:15 <nakilon> oh maybe you should exit from the directly the other side of where you came from
00:07:33 <nakilon> the difference from the befunge is that there is a toroidal wrapping inside the subroutine so you can't exit its bounds unless using a special "return" instruction
00:08:06 <nakilon> so you are free to wrap around without worrying about where exactly you place the subroutine within the whole program
00:08:18 <nakilon> just connect them with "wires" of <>v^
00:09:06 <fizzie> Heh, that's novel. I think there's some "Befunge with functions" variants, but they have "non-physical" function calls, instead of having to route the execution into the function (and handle returns as well).
00:09:50 <fizzie> At least with the "exit from the opposite side" approach you wouldn't need the usual "push a 'return address' and switch on exit" kind of thing to make a subroutine you can use from more than one place.
00:10:25 <fizzie> As long as you route each call in from a different direction, anyway.
00:13:23 <nakilon> you can call some small rect subroutine from thousand of places probably if you attach a "bus" to it
00:13:42 -!- Koen__ has quit (Quit: Leaving...).
00:14:10 <nakilon> some another block with a plenty of inputs and outputs but calling the "small subroutine" in one place
00:16:09 <nakilon> and then such embedding subroutines into rects allows you to create a address-agnostic drag-n-drop IDE with autotracing
00:18:40 <fizzie> Yes, but then you need a return switch.
00:19:31 <fizzie> If you have a "bus", you lose information where it was called from, meaning you'll have to push something on the stack and then branch on that something on the way back.
00:19:48 <nakilon> maybe I used wrong word
00:20:49 <nakilon> or not
00:20:55 <nakilon> ah I understand
00:21:32 <nakilon> yeah one single output pin address
00:23:37 <nakilon> you can create/resize such buses automatically, while the subroutine knows nothing about it
00:26:37 <fizzie> There's a few "subroutine"-like sections in fungot, like the brainfuck-to-bytecode translation, which is used by both `^def foo bf ...` and `^bf ...`, and those are done using that mechanism. The vertical sequences on the rightmost edge of lines 229-231, 235-240 and 262-267 are the three different destinations a program preparation subroutine can return to (the ^bf, ^ul and ^def handlers).
00:26:48 <fungot> fizzie: or was it netscape?) was beaten up in otaniemi by fellow students.
00:28:24 <fizzie> Huh, I wonder what the context for that second part is.
00:28:55 <nakilon> is that DEFine and UnLearn or something?
00:29:29 <fizzie> That's ^def for define, and ^bf + ^ul for straight-up immediate execution of brainfuck and Underload, respectively.
00:29:44 <nakilon> ah
00:30:49 <fizzie> Have to say, for large Befunge programs some sort of auto-routing tool would probably be useful.
00:31:33 <shachaf> ais523: Do you think a modern instruction set would actually have Checkout-style instructions?
00:32:07 <shachaf> It's not clear to me whether "the things a CPU actually does" make for the best encoding to give a program to a CPU.
00:32:12 <ais523> shachaf: I think Checkout is too extreme, and probably a bad idea because letting the processor infer things saves bandwidth
00:32:18 <shachaf> Compared to out-of-order execution and register renaming and so on.
00:32:35 <ais523> modern instruction sets do have a few Checkout-style instructions; some of them aren't widely used because actually decoding the instruction costs more than the hint saves
00:32:52 <shachaf> Register renaming is a good example, I guess. A CPU has hundreds of registers, but you want instructions to be compact, so you may not actually want instructions to be able to address all of them.
00:33:16 <ais523> there are a few instructions for manual cache control that do genuinely seem to help in practice, though, and that nonetheless aren't widely used
00:33:17 <shachaf> I mean, a good example of the general thing I'm getting at, not something Checkout-specific.
00:33:46 <ais523> in particular, nontemporal read-write is easily worth the cost of decoding if you have an algorithm where it's useful
00:33:52 <ais523> * non-temporal read/write
00:34:48 <ais523> I have test programs which read and write memory in lots of different ways, and nontemporal memory access is the only thing that makes a real difference, due to where the bottlenecks are
00:36:04 <ais523> (non-temporal memory operations say "I want to read/write this memory now, but don't subsequently plan to read/write the memory again until after it's fallen out of cache"; in theory they work at cache line granularity, but the API for them reads in smaller chunks and you write several instructions in a row to cover the whole cache line or the part you care about)
00:36:26 <nakilon> "some sort of auto-routing" this all will break if there are are g and p
00:36:48 <ais523> and this is a pretty common performance pattern to have, whereas if you just use the default caching rules, you have all this data that's crowding things out of the cache and is completely useless
00:37:23 <ais523> also, even without the extra cache pressure, non-temporal is a little faster at writing to / reading from main memory (but slower for writes/reads that would go to/come from cache, for obvious reasons)
00:37:53 <ais523> it's a hint rather than a promise, too, so there's no undefined behaviour if you actually do need the value earlier than you said you would, just the processor has to slow down a little to find it
00:38:48 <shachaf> Man, modern CPUs are so complicated.
00:39:26 <shachaf> One thing I learned that was sort of surprising is that the common case (?) for instructions that have a register input isn't to read from the register file.
00:39:44 <ais523> right, the permanent register file hardly ever gets used in practice
00:39:49 <shachaf> At least for out-of-order processors, where the input for the instruction was likely just made available.
00:39:57 <shachaf> So instead most things go through the bypass network, or something.
00:39:59 <fizzie> Hmm, well. In fungot's case, almost all g/p are to the first few rows (because the addresses are shorter), plus the "negative space", so as long as that's kept clear, it'd be fine.
00:40:05 <ais523> only when you haven't touched a register for so long that the reorder buffer has forgotten the value, but you surprisingly actually still care about the value
00:40:07 <fungot> fizzie: or actually, don't. but if you don't use empty in production code
00:40:24 <fizzie> Also in Funge-98 g/p are local to the storage offset, so subroutines that need "local" fungespace storage *could* be position-independent.
00:40:34 <ais523> (the permanent register file normally isn't actually any slower to read than the reorder buffer, though, although a few processors can't read it twice in the same cycle)
00:40:37 <fizzie> (You'd just need to reset and restore the storage offset properly.)
00:42:38 <ais523> out-of-order execution bothers me a little because it's mostly just working around bad compilers; the only times it gives an advantage over putting the instructions in the correct order to start with are a) when you want to perform some instructions from inside a loop after it's ended / before it's started (so you'd need to peel a few iterations to reorder manually), or b) when instructions take varying times to execute due to caching effects
00:42:49 <ais523> b) is a pretty big reason, though
00:43:19 <shachaf> b seems like most of the point, doesn't it?
00:43:32 <ais523> yes
00:43:43 <shachaf> Good compilers can't do much about that.
00:43:48 <ais523> although, I'm not sure it actually speeds things up that much in practice
00:44:13 <shachaf> The Mill people claim it doesn't, and you can get away with static scheduling if you're clever.
00:44:16 <shachaf> I'm not sure.
00:44:31 <ais523> if your data is in main memory the reorder buffer won't help because it'll fill up before you get the data you need
00:44:46 <fizzie> The sequence 0{2u<y><x>02-u2} sets an arbitrary storage offset (<x>, <y>), and leaves the previous storage offset on the stack.
00:44:58 <ais523> if it's something like L1 versus L2 cache then it might help, though, the difference between those is only a few cycles
00:46:19 <shachaf> The Apple M1 has a 600-entry reorder buffer or something like that, people say.
00:46:29 <ais523> but, only when the dependency chains were short enough that you're bound on L2 latency
00:46:30 <shachaf> But helping with L2/L3 is surely still a big deal.
00:47:20 <shachaf> Someone gave this example: "x = *p; y = *q; [process x]; [process y]; result = x + y;"
00:47:27 <ais523> I'm finding it hard to think of an application where a) data is frequently in L2 or L3, but b) you can't just move the read of it earlier, and c) all this somehow forms a dependency chain so that you end up with a loop-carried dependency
00:47:43 <ais523> shachaf: what are you doing with result?
00:48:01 <ais523> in order to get a meaningful slowdown this needs to be in a loop and result needs to influence p or q somehow
00:48:28 <ais523> and, *p and/or *q need to be in unpredictable cache hierarchy levels
00:48:41 <ais523> it certainly seems possible, but this doesn't seem like a common case
00:49:02 <ais523> some sort of linked list traversal, perhaps? but why would the list be in varying cache levels?
00:49:53 <nakilon> didn't work with local offsets
00:50:00 <nakilon> I just made RASEL to not bother ..D
00:50:30 <fizzie> I don't think I've ever actually used the storage offset, I think it's mostly a bother in at least small-to-medium sized programs like fungot.
00:50:38 <fungot> fizzie: his syntax is a non-standard extension to receive, though, the empty
00:50:41 <nakilon> I guess I even have implemented them in my half-done funge-98 interpreter but didn't test it
00:51:31 <b_jonas> wait, non-temporal read? I haven't considered that for cpu caching, probably because neither x86 nor MMIX seems to have it. is it actually worth? for reading files non-temporary it exists (posix_fadvise and madvise), but that's different
00:52:03 <b_jonas> whereas SSE2 (or SSE1, I don't know which) has a non-temporal write instruction or two
00:52:48 <fizzie> I feel like I more often want to refer to "absolute" addresses from all around the program (as the equivalent of "global variables"), or just very temporary scratch space (which can be anywhere) as opposed to needing "scoped" local storage. Though it might be useful for position-independent self-modifying code too.
00:53:16 <b_jonas> I don't think non-temporal read is even reasonably possible, as in, just supporting it would require too much cost for programs that never use it
00:53:21 <ais523> MOVNTDQA is the non-temporal read
00:53:25 <ais523> SSE4.1, apparently
00:53:42 <ais523> although AVX/AVX2 also implement it
00:53:52 <shachaf> Hmm, I was just imagining for (i = 0; i < n; i++) { x = a[i]; y = b[i]; ... }
00:54:34 <ais523> shachaf: you can prefetch x and y in that example
00:54:52 <b_jonas> "the permanent register file" => there is a permanent register file? I thought registers always lived on the one temporary register file, and that one is huge because it has to save enough register values to roll back to several different points before instructions that are not yet finalized
00:54:53 <ais523> modern processors have prefetch hints for this, but don't actually need them; they'll notice you're accessing incrementing addresses and pull the next few elements into cache just in case
00:55:07 <ais523> so it's faster to not give the prefetch hints because they're effectively no-ops and tkae some time to decode
00:55:11 <b_jonas> why would there be a separate permanent register file?
00:55:27 <b_jonas> I mean maybe for special registers that never go to the normal register file
00:55:39 <ais523> b_jonas: in case you haven't used a register for so long that it isn't in the register renamer
00:55:55 <b_jonas> but those wouldn't be in a file I think, unless they're so useless they're basically never used for anything on a fast path
00:56:01 <ais523> I think the renamer works by changing instructions from "eax" to "internal register 54" or whatever
00:56:21 <ais523> but, if you don't use eax at all for a while, there'll be no instructions to rename, so it needs a permanent file to say "this register is rax"
00:56:42 <ais523> you could just have a permanent place to store "rax is register 54" but you may as well store the value of rax there, rather than a reference to it, and save one register
00:57:10 <b_jonas> out of order execution => hmm, that's an interesting point. I never thought of it like that, because pentiums were already out when I started to try to understand what x86 even does, so I took out of order execution for granted
00:57:54 <nakilon> in rasel there is a "problem" about the stack addressing such that the address often has to be adjust by 1, 2, 3 depending on in which place and which "routine" you use it
00:58:03 <nakilon> because the stack size is always different
00:58:41 <nakilon> once you add something somewhere in the middle of the routine all the following usings of that stack address should know it's not 1 off
00:58:45 <nakilon> *now
00:58:48 <b_jonas> although I'm still quite sure I don't understand cpus enough to be able to figure out what would make their design better or worse, I'm still at the stage where I mostly try to understand how to use the existing (future high-end x86) cpus well, and a very little of understanding why some of the apparently very odd designs in the cpu may potentially be worth even though it doesn't seem like they can ever
00:58:54 <b_jonas> be
01:00:45 <b_jonas> ais523: doesn't out of order execution also help because it allows for more compact code, as in more instructions that can only be coded in-place, or fewer registers that you can name?
01:00:51 <nakilon> so it would be a "common operation" to 1. take the stack address at N and then 2. add N to it before using it in swapn
01:02:20 <ais523> b_jonas: oh right, yes, I knew that once but I'd forgotten about it
01:02:31 <ais523> one big benefit of out-of-order execution is saving on register names in the machine code
01:02:55 <ais523> because it lets you place instructions in the order that uses the fewest register names, rather than needing to look for the most efficient order (which generally involves spreading dependency chains out through the code)
01:03:07 <ais523> thanks for reminding me of this, that's a very big reason to have out of order execution
01:04:11 <b_jonas> MOVNTDQA => you're right. I'm just stupid then. that is a genuine useful non-temporal read that I absolutely should have known about.
01:04:53 <b_jonas> ais523: oh, and more importantly denser code because you can have instructions that reference memory directly; without instruction reordering you'd need a separate load (or prefetch) and arithmetic instruction
01:04:57 <ais523> it's confusing because the difference between -A and regular instructions is normally alignment
01:05:12 <ais523> but, MOVNTDQ and MOVNTDQA are both aligned-only, the difference is write versus read
01:05:15 <b_jonas> that's probably even more important than the register count and stuff
01:05:21 <ais523> I had to read the documentation about three times to figure out what the difference was
01:06:04 <b_jonas> (and then I guess you'd also need more register names for those reads)
01:06:21 <b_jonas> basically any time you load from outside L2 cache, you couldn't combine it with the instruction that uses that load
01:06:32 <b_jonas> because the CPU couldn't reorder anything between
01:06:45 <b_jonas> but a real pentium (or other reordering cpu) will reorder instructions between those
01:07:21 <nakilon> is there any online dictionary that would immediately give a meaning of MOVNTDQA? because I thought it's some chat abbreviation and when pasting to google I hoped for Ubran Dictionary article but nope )
01:07:44 <ais523> it's an x86_64 instruction, most of the newer ones have really weird names
01:08:12 <b_jonas> nakilon: the "Intel 64 and IA-32 Architectures Software Developer's Manual" which you can download from somewhere on intel.com,
01:08:13 <ais523> to the extent that you can often figure out how new an instruction is by counting how many letters are in its name and how unpronounceable it is
01:08:18 <b_jonas> nakilon: as well as the equivalent AMD manual
01:08:28 <ais523> I normally use the AMD manual but I have both
01:08:29 <nakilon> I would make a universal definition lookup IRC bot command that would try to ask other channel bots and then if failed go to online dictionaries but this one is an example that I won't know where to lookup at
01:08:42 <b_jonas> I used to use the AMD manual, but now prefer the Intel
01:08:54 <b_jonas> nakilon: we could add the instructions to our whatisdb I guess
01:09:33 <nakilon> how large is whatisdb? where is it?
01:09:35 <ais523> the problem here is that it's a proper noun – the name of an instruction – which makes it hard to look up unless you know where it comes from
01:09:37 <b_jonas> "figure out how new an instruction is" => lol
01:09:51 <ais523> `whatis grep
01:09:53 <HackEso> grep(1) - print lines that match patterns \ grep(1p) - search a file for a pattern
01:10:03 <ais523> `whatis wisdom
01:10:07 <HackEso> wisdom(1hackeso) - print random wisdom matching a string \ wisdom(5hackeso) - no description
01:10:18 <b_jonas> ``` wc /hackenv/share/whatis # nakilon:
01:10:19 <HackEso> ​ 14662 97242 753236 /hackenv/share/whatis
01:11:56 <nakilon> holy shit, 14k definitions?
01:12:05 <b_jonas> nakilon: a lot of that is stub entries
01:12:08 <nakilon> it's like some little country language
01:12:14 <nakilon> ah ok
01:12:22 <ais523> the last time I downloaded the instruction list, the newest instructions were along the lines of VFNMSUB231PS
01:12:39 <b_jonas> there are of course counterexamples like ADCX and ANDN and CMPXCHG8B
01:13:06 <ais523> we're onto the AVX-512 era now, rather than the FMA wars era, but I still don't use AVX-512 because few people have a processor that handles it
01:13:10 <b_jonas> ais523: I think those are just the highly advertised ones, the ones you need for matrix product benchmarks and occasionally for actual matrix products
01:13:39 <ais523> b_jonas: well it does solve an actual problem that's hard to solve without processor help
01:14:06 <b_jonas> oh, and CVTTPS2DQ which is from SSE2 but looks newer
01:14:08 <ais523> although, it introduces yet more floating point inconsistency between processors, because you have an instruction for an accurate floating-point a * b + c
01:14:12 <nakilon> lol https://i.imgur.com/rc9wr9F.png
01:14:30 <ais523> but, you need a pretty new FPU to use it
01:14:41 <b_jonas> CMPXCHG8B is from pentium
01:14:46 <ais523> so, do you use the instruction, in the knowledge that older processors won't be able to do the same thing and thus will produce a different result?
01:15:13 <ais523> CMPXCHG8B is still only four words, though
01:15:41 <b_jonas> ais523: yes, because it only comes up in code that will give different results depending on how the optimizer chooses to optimize it, and to some extent even to how the low-level numeric library chooses to optimize it
01:15:48 <ais523> whereas, say, VPCLMULQDQ is an abbreviation of an eight-word prhase
01:15:48 <b_jonas> well, s/only/mostly/
01:16:27 <ais523> (great instruction, though, I actually spent some time trying to find it recently because I needed it and it would have been a pain to implement without processor support)
01:17:46 <b_jonas> wait... VPCLMULQDQ? is that a real instruction? how new is it?
01:18:23 <b_jonas> ah, here it is, PCLMULQDQ
01:18:26 <ais523> AVX (the original PCLMULQDQ was in a little feature set all of its own)
01:18:26 <b_jonas> so it can't be that new
01:18:29 <b_jonas> yeah
01:18:43 <b_jonas> ok, this one I'm fine with not remembering the mnemonic
01:18:57 <nakilon> the https://stackexchange.com/search?q=what+is+MOVNTDQA is a little bit helpful but still no direct link to the definition
01:19:02 <b_jonas> or anything specific about the instruction besides knowing there were a few carry-less multiply instructions
01:19:16 <b_jonas> but yes, that can be useful
01:19:50 <nakilon> (and 0 results for "what is VPCLMULQDQ")
01:19:57 <b_jonas> unlike the non-temporal loads, which I should have remembered (even if I don't know the mnemonic by heart)
01:20:35 <ais523> b_jonas: I think there's only one carry-less multiply instruction (two if you count the V- version differently, but the only difference is top-half-unchanged versus zero-extension)
01:20:44 <b_jonas> nakilon: carry-less multiply, like you need for polynomials over GF(2)
01:21:15 <b_jonas> ais523: that is possible, though isn't there one for a specific GF(2^n) representation too?
01:21:23 <nakilon> looks like stackexchange failed to index own entry: https://i.imgur.com/ulTX078.png
01:21:36 <b_jonas> yep: CRC2
01:21:40 <b_jonas> no
01:21:42 <b_jonas> CRC32
01:22:32 <b_jonas> oh, and apparently the AES instructions
01:23:00 <b_jonas> but you're probably right that PCLMULQDQ is the most general
01:23:22 <b_jonas> oh, there's also GF2P8AFFINEINVQB
01:23:36 <b_jonas> did you ask for eight words?
01:23:56 <nakilon> ah, stackexcahnge search can't automatically ignore the "what is"
01:23:58 <b_jonas> and GF2P8MULB
01:23:59 <b_jonas> wow
01:24:08 <b_jonas> so many instructions
01:25:41 <ais523> I've never heard of GF2P8AFFINEINVQB
01:25:44 <ais523> where does that one come from?
01:25:56 <b_jonas> same intel manual
01:26:05 <ais523> I mean, which instruciton set?
01:26:10 <b_jonas> let me check
01:26:13 <nakilon> I guess the universal searcher should have a huge list of dictionaries and automatically understand that "VPCLMULQDQ" should be searched in some "dictionary about CPUs"
01:26:47 <b_jonas> "CPUID feature falg: GFNI"... I don't know then
01:26:51 <ais523> it must be very new, my Intel manual from 2016 doesn't list any instructions starting with G
01:27:04 <ais523> which is a bit surprising, really
01:27:23 <b_jonas> there's also a third one that starts with GF2P8
01:27:55 <ais523> nakilon: Wikipedia's search box seems to do a pretty good job of recognising CPU instructions
01:28:00 <b_jonas> ais523: it's not surprising, most new instructions like VGATHERDPD go under V
01:28:02 <nakilon> while it can be understood from the 3-gram "MUL" that it's about CPU the GF2P8AFFINEINVQB is really a mess
01:28:11 <b_jonas> there are several instructions under VG
01:28:14 <ais523> although it can't find GF2P8AFFINEINVQB
01:28:31 <ais523> b_jonas: Intel have moved on from V, they're onto E now I think
01:28:50 <ais523> or, maybe not
01:28:53 <nakilon> ais523 indeed
01:28:54 <ais523> maybe they still start with V?
01:29:32 <b_jonas> including I haven't heard of this starting with E thing, but I admit I'm not following all the new instructions with a short lag
01:29:47 <ais523> ah, GF2P8 means "GF(2⁸)"
01:30:05 <b_jonas> like, I'm not familiar with all the AVX512 instructions
01:30:10 <ais523> b_jonas: I think starting with E is actually the encoding summaries rather than the instruction names, thinking about it
01:30:25 <b_jonas> ais523: yes, a particular representation of GF(2**8)
01:32:15 <ais523> appears to be the representation that chooses α such that α⁸+α⁴+α³+α+1=0
01:32:30 <ais523> and stores field elements as the coefficient of a polynomial in α
01:32:33 <ais523> is that the usual one? I have a list somewhere
01:32:37 <b_jonas> no idea
01:32:45 <b_jonas> I don't even know if it's the IOCCC one
01:33:02 <ais523> the problem is I can't remember where
01:33:07 <b_jonas> well, it's in an intel instruction so it can't be a terribly unusual representation
01:33:21 <b_jonas> presumably they wouldn't add something that nobody would use
01:33:39 <b_jonas> CRC32 and AES certainly use existing ones
01:34:07 <ais523> found it
01:34:10 <b_jonas> I mean those instructions implement crypto primitives that were used already before they got x86 instructions
01:34:24 <ais523> [2,8,[1,0,1,1,1,0,0,0,1]],
01:34:42 <ais523> unfortunately I also can't remember what format this file is in, but that doesn't look like α⁸+α⁴+α³+α+1=0
01:36:09 <b_jonas> if there is such a list, it might be somewhere in https://www.jjj.de/fxt/
01:36:15 <ais523> looks like that's ordered with the α⁰ coefficient at the start, and α⁸ a the end, so it's α⁸+α⁴+α³+α²+1=0, not quite the same
01:36:31 <ais523> http://www.math.rwth-aachen.de/~Frank.Luebeck/data/ConwayPol/index.html
01:36:44 <ais523> (luckily I'd recorded the place I got the file from next to the file itself)
01:39:22 <ais523> wow the definition of "smallest polynomial" here is weird, it looks for the highest coefficient that differs, then decides which is larger or smaller based on the value of that coefficient xor whether the difference between its exponent and the polynomial's degree is odd or even
01:39:40 <ais523> I assume there's a reason for that, because I can't imagine this would be a standard definition for no reason
01:40:59 <b_jonas> https://www.jjj.de/mathdata/all-primpoly.txt lists all polynomials used to compute GF(2**n) for n<=11
01:41:53 <b_jonas> the one you mention α⁸+α⁴+α³+α²+1 is apparently the first in the order used in that list
01:42:23 <ais523> and α⁸+α⁴+α³+α+1=0, mentioned on the website you linked, doesn't give a finite field
01:42:23 <b_jonas> that page is linked from https://www.jjj.de/mathdata/
01:42:34 <ais523> so probably there's a typo on either the website, or in the intel documentation it draws its information form
01:42:43 <b_jonas> huh...
01:43:00 <b_jonas> ais523: no, it's 8,4,3,2,0
01:43:31 <b_jonas> α⁸+α⁴+α³+α+1=0 is only in the intel manual
01:44:13 <ais523> b_jonas: sorry, by "the website you linked" I meant the older link
01:44:30 <b_jonas> what odler link?
01:44:31 <ais523> to the Intel instruction, not to the finite field polynomials
01:44:41 <ais523> you didn't
01:44:42 <b_jonas> I linked to a website with the intel instruction?
01:44:44 <b_jonas> ah ok
01:44:49 <ais523> I found it by a web search and assumed you'd linked it to me
01:45:13 <ais523> https://www.felixcloutier.com/x86/gf2p8mulb
01:45:19 <b_jonas> oh...
01:45:29 <b_jonas> I assumed you'd just download a later intel or amd manual for it
01:45:32 <ais523> it could possibly be a PDF extraction error?
01:45:43 <ais523> I don't want to have to keep downloading manuals for this
01:45:46 <ais523> I have two of them already
01:45:55 <b_jonas> no, it's the intel manual that says x**8+x**4+x**3+x+1
01:45:55 <ais523> admittedly the bandwidth doesn't cost much nowadays
01:46:02 <b_jonas> um...
01:46:08 <b_jonas> "I have two of them already" ... but
01:46:13 <b_jonas> if they're obsolete
01:47:26 <ais523> I'm assuming the old instructions don't change very much
01:47:43 <ais523> so an old manual will still be good for anything other than newly invented instructions
01:48:02 <b_jonas> https://xkcd.com/345/ "Hush, I'm coding. You ate yesterday."
01:48:14 <b_jonas> I don't need to buy food, I already bought food twice
01:48:25 <b_jonas> ais523: yes, the old instructions rarely change,
01:48:46 <b_jonas> but if the newly invented one for the GF(2**8) interests you
01:49:12 <ais523> I guess
01:49:13 <b_jonas> anyway, the intel manual says the polynomial is "x**8 + x**4 + x**3 + x + 1" (the powers set with superscripts)
01:49:29 <ais523> it's wrong, surely, that wasn't on the list of valid polynomials you linked
01:50:19 <b_jonas> yeah, that's odd
01:50:59 <nakilon> speaking about figuring out which dictionaries to look up, I guess [tags] here do the job https://i.imgur.com/FfAxjZC.png
01:51:14 <b_jonas> I don't have a recent AMD manual
01:51:44 <nakilon> but hm, only 12 results and tags don't intersect much so it would need to prebuild some tag topic clouds
01:51:47 <ais523> ooh, Intel now has a combined PDF that does all the instructions in one PDF, that's a good enough reason to download a new one
01:52:26 <nakilon> three results for G... https://stackexchange.com/search?q=GF2P8AFFINEINVQB
01:52:50 <b_jonas> ais523: yes, it has all in one PDF. it still has the separate volumes for printing, but who prints a full Intel manual?
01:53:03 <nakilon> that's weird that not all search results display tqgs
01:53:13 <ais523> b_jonas: it was split last time I looked
01:53:16 <ais523> I guess it's been five years
01:53:46 <b_jonas> ais523: it exists as split pdfs too. and you still need to download the optimization manual in two separate pdfs (one general and one specific for your microarchitecture) besides the combined volume, and sometimes there's a supplement for planned future instructions
01:53:55 <ais523> oddly, it still has separate chapters for A-L, M-U, V-Z
01:54:11 <b_jonas> ais523: yes, it's literally "combined volumes" as in all "printed" volumes in one PDF
01:54:20 <b_jonas> with the covers changed, but not much else
01:54:29 <ais523> for optimization, I normally look at Agner Fog's manuals rather than the official ones, they're generally more accurate and also make it easier to work out what would run well on multiple architectures
01:54:43 <b_jonas> ais523: sure, but I want to have both
01:55:06 <b_jonas> I mean ideally I should have up to date AMD manuals too, but I don't
01:55:18 <b_jonas> (I have rather old ones)
01:56:20 <ais523> I tend to treat AMD's as the "official" ones as they invented x86_64
01:56:40 <ais523> although, in practice, whatever Intel does tends to become standard because they have such market dominance
01:57:32 <nakilon> so two of 3 search results have the tag "assembly" and the top google result is the page with a nice list of them https://www.felixcloutier.com/x86/
01:58:03 <b_jonas> ais523: I think they're both official only for the CPUs that they each sell, but in practice those are very close and have almost no incompatibilities so you can use the other manual
01:58:30 <Melvar> <ais523> there are two things you can do with a pointer: a) pointer arithmetic operations like offset, compare, etc.; and b) dereferencing it to get at the value you're pointing to – Of course, the latter is very much not specific to pointers.
01:59:25 <ais523> Melvar: definitely; the problem is that many systems programming languages don't have anything efficient that does just b), if you want b) from a primitive then you get a) too
01:59:33 <ais523> which rather hinders optimisation opportunities
02:00:58 <Melvar> Also the support for “peek but no poke” is limited apparently?
02:02:25 <ais523> truly read-only pointers are rare, although most languages have something comparable but with weird edge cases
02:02:35 <ais523> at the language level, that is
02:02:46 <ais523> it's quite easy to get modern CPUs to not let a program write to particular areas of memory at all
02:05:02 <nakilon> wow rubygems have webhooks https://guides.rubygems.org/rubygems-org-api/#webhook-methods so I can make a \rasel remote executor to redeploy the function if I update the gem; that's not something to do often (or even ever) but it also makes me thinj of using github webhooks in a similar way to automatically update the IRC bot handlers
02:05:59 <nakilon> of course it can also pull the master HEAD every time but it would make the command work one second longer and the handler will break if something happens to the repo
02:06:04 <Melvar> . o O (Haskell has three different representations that correspond to pointers)
02:06:40 <nakilon> though the "something happends to the repo" isn't much more possible thing to happen than to "happen with the GCP Functions" since the github repo isn't billed
02:07:16 <Melvar> (Well, GHC.)
02:21:37 -!- oerjan has joined.
02:37:59 <esolangs> [[Talk:OISC]] M https://esolangs.org/w/index.php?diff=87921&oldid=86793 * VitalMixofNutrients * (+2804) I want to dispute the claim that FlipJump is the simplest OISC, by proving that Bit-Bit-Jump is actually the simplest and can evaluate conditional statements unlike FlipJump.
02:46:45 <b_jonas> a few days ago I dreamed that I was joined on an IRC channel, and since waking, I'm wondering if that was trying to reference a specific real channel that I once joined, presumably on freenode, or if it was completely invented
02:47:56 <nakilon> what was the Nitter analogue for Instagram?
02:50:34 <ais523> "simplest OISC" seems like an interesting argument to get into
02:52:01 <ais523> although, the argument on that page doesn't seem to help much
02:54:05 <esolangs> [[ID machine]] N https://esolangs.org/w/index.php?oldid=87922 * B jonas * (+25) redirect because that's where I looked and the search results didn't help
02:54:06 <Corbin> Yeah. Turing-completeness is like an overly-full grilled sandwich; it doesn't matter whether it's panini or cubano, it is going to leak.
02:54:46 <Corbin> OISC systems have to have some essential complexity somewhere. If it's squeezed out of the instruction count, then it'll show up again in the instruction definition.
02:57:30 <ais523> the discussion didn't mention TCness, so I guess an OISC with a nop instruction is the simplest
02:57:35 <b_jonas> does 1.1 count as a OISC?
02:58:06 <ais523> pretty much anything can be interpreted as an OISC if you try hard enough
02:58:22 <ais523> I'm not sure it's something that can be objectively defined
02:58:32 <b_jonas> heck, does slashes or Thue count as an OISC?
02:59:03 <ais523> The Waterfall Model is arguably a ZISC (I actually found the ZISC formulation first, and it wasn't until I discovered the language a second time that I realised how easy it was to implement)
02:59:07 <Corbin> I think that OISC and ZISC are perspectives.
02:59:19 <ais523> yes, that's a good way to put it
02:59:39 <nakilon> now I want sandwich (
02:59:40 <ais523> although, I do have the (possibly incorrect) view that an OISC/ZISC has to be imperative
03:00:24 <ais523> the nondeterministic-as-in-declarative version of Thue, therefore, probably isn't (I still think this is the intended definition, as opposed to "replace a random substring")
03:00:30 <Corbin> It's fine for a ZISC machine to have computable (say, poly-time) small-step behavior, but be Turing-complete under iteration. That's how I think of The Waterfall Model, at least.
03:00:47 <ais523> yes
03:00:47 <b_jonas> there are languages where I don't even know how to count how many instructions they have
03:00:59 <ais523> actually it's very common for TC languages to have simple small-step behaviour
03:01:45 <nakilon> are there languages without instructions?
03:01:51 <ais523> oh, any 2-instruction no-argument language (e.g. Brainpocalypse or the I/D machine) can be made into an OISC by run-length encoding it
03:02:02 <ais523> nakilon: that depends on your point of view
03:02:09 <b_jonas> ais523: would you count a one-combinator basis of combinatorial calculus an OISC? and is it imperative?
03:02:45 <ais523> b_jonas: only if it somehow worked without a precedence override, which is probably impossible (if you want to stay TC)
03:02:54 <b_jonas> ais523: isn't that only if at most one of the two instructions have operand fields?
03:03:13 <ais523> b_jonas: I guess, if you want to let the combined instruction take multiple arguments
03:03:31 <nakilon> ais523 people build everything with blocks, write music with notes, even that esolang where you put things on the table has things as instructions
03:03:47 <nakilon> I wonder if there is anything that can't be broken into discrete parts
03:04:05 <ais523> nakilon: I have been looking for a language like that but failed to find one
03:04:18 <b_jonas> I'm not sure what counts as instructions in Consumer society, even though it is imperative and programs have a source code
03:04:26 <ais523> But Is It Art? is a good counterexample to a lot of statements about languages, it arguably doesn't have instructions
03:04:55 <ais523> or the Post correspondence problem, that's like a 1D version of BIIA?
03:05:06 <nakilon> [wiki But Is It Art?] [wiki Consumer society]
03:05:07 <ais523> but, they both still have composability in a sense
03:05:12 <velik> thread error
03:05:17 <ais523> https://esolangs.org/wiki/But_Is_It_Art?
03:05:25 <ais523> I'm not sure if Consumer Society has one
03:05:26 <b_jonas> does Conway's Game of Life have instructions?
03:05:31 <ais523> https://esolangs.org/wiki/But_Is_It_ArtF
03:05:34 <ais523> https://esolangs.org/wiki/But_Is_It_Art%F
03:05:49 <ais523> gah, what is up with the escaping here
03:05:51 <ais523> https://esolangs.org/wiki/But_Is_It_Art%%F
03:05:54 <b_jonas> Consumer Society doesn't have a wiki page because I haven't published its definition yet and I didn't want to create a completely useless stub
03:05:56 <ais523> https://esolangs.org/wiki/But_Is_It_Art%3F
03:06:00 <nakilon> [wiki But Is It Art?]
03:06:01 <velik> https://esolangs.org/wiki/But%20Is%20It%20Art%3F
03:06:08 <ais523> there we go
03:06:21 <nakilon> idk why it timed out on the first try
03:06:21 <ais523> I needed to type two percent signs and two 3s for some reason
03:06:30 <nakilon> either google or wiki were cold I guess
03:06:30 <oerjan> `addquote <Corbin> Yeah. Turing-completeness is like an overly-full grilled sandwich; it doesn't matter whether it's panini or cubano, it is going to leak.
03:06:34 <HackEso> 1334) <Corbin> Yeah. Turing-completeness is like an overly-full grilled sandwich; it doesn't matter whether it's panini or cubano, it is going to leak.
03:07:49 <b_jonas> does C have instructions?
03:08:11 <ais523> it has statements, those are a decent analogue for instructions
03:08:17 <b_jonas> or Algol might be a better question
03:08:40 <b_jonas> ais523: ok, if statements matter then how about just lambda calculus?
03:08:40 <ais523> something like Diophantine equations are a good example of something that doesn't clearly have separate statements
03:09:10 <ais523> b_jonas: I think the best way to think about lambda calculus imperatively is that apply is the statement
03:09:16 <ais523> or the instruction
03:09:28 <b_jonas> might be
03:09:36 <nakilon> heh https://esolangs.org/wiki/Matrioshka_language -- the "matrIOshka" is a word with Ё
03:09:46 <ais523> this is very clear in unlambda, the only thing that actually does anything is the backquote
03:10:21 <ais523> nakilon: I think "matrioshka" is an English word which was borrowed from Russian, but often those words change in the borrowing
03:10:56 <nakilon> I had matrioshka
03:11:06 <nakilon> when I was like 5
03:11:33 <ais523> e.g. "babushka" is an English word by now but the vowels are all different compared to the Russian original
03:11:44 <b_jonas> I have a small matrioshka
03:11:56 <b_jonas> I certainly didn't have one when I was 5
03:12:13 <ais523> (the English version of the pronunciation is inherently funny to say which is why it caught on, but would be annoying to use on a regular basis)
03:13:42 <ais523> Wiktionary says it's pronounced bəˈbuːʃ.kə in English, the Russian version is ˈbabʊʂkə which is quite different
03:14:18 <ais523> English is really weird sometimes
03:14:21 <nakilon> yeah, I heard that the accent is in different place
03:15:13 <Corbin> My favorite example of English inability to pronounce things right is French "marche" vs. English "mush".
03:15:25 <shachaf> By the way, the Russian system of indicating the stressed syllable with a mark *over* the vowel rather than next to it is so much better.
03:15:25 <zzo38> Words often change in borrowing between different language
03:16:53 <shachaf> Sometimes even in borrowing within the same language.
03:17:55 <zzo38> Yes, even same language too sometimes
03:20:21 <ais523> IIRC there are some cases where English borrowed the same word twice, with two different meanings, but can't think of any offhand
03:21:36 <nakilon> in modern Russian the lack of a culture of education (in Soviet time it was cool to know things, read a lot, etc.) and internet with all its memes and hypes makes young people often learn anglicisms instead of using the Russian word that always existed but teachers didn't bother to teach kid it
03:22:05 <b_jonas> ais523: I'm not sure if "proof" vs "probe" counts
03:22:14 <b_jonas> for what you're looking for
03:22:51 <ais523> huh, that's interesting, "prove" once used to mean "test" (i.e. an effective synonym of "probe") but the meaning changed over time
03:23:10 <oerjan> shachaf: that's also the Greek and Spanish system, but unlike the russians those actually use it
03:23:10 <ais523> so maybe we borrowed it twice, with the same meaning, but the meaning diverged in between?
03:23:34 <b_jonas> ais523: I think it's actually borrowed as "proof" and "probe", and "prove" was derived from "proof" in English, but I'm not sure
03:24:12 <b_jonas> as for meaning change, that's why "proof of the pudding" makes no sense
03:24:36 <ais523> looks like "prove" in French was the borrowed word
03:25:03 <ais523> for "prove"/"proof"
03:25:08 <nakilon> for example, people installing and using software with a messaging functionality and lacking the Russian localisation learn the word "message" and don't use the word "сообщение"
03:25:13 <ais523> whereas "probe" was the same word but borrowed from Latin
03:25:22 <nakilon> they say месседж or мэсседж
03:26:43 <ais523> in 5 or 6 years time, probably the loanword will be a real word with the meaning of "a message sent over the Internet in particular", the way these things normally go
03:27:17 <Corbin> ais523: "governor" and "cybernetics" are two borrowings of https://en.wiktionary.org/wiki/%CE%BA%CF%85%CE%B2%CE%B5%CF%81%CE%BD%CE%AE%CF%84%CE%B7%CF%82#Ancient_Greek
03:27:18 <b_jonas> ais523: isn't that "email"?
03:27:26 <Corbin> You may recognize a third recent borrowing, "kubernetes"
03:27:34 <zzo38> Email is not the only message send over internet
03:27:39 <ais523> b_jonas: "email" is more specific
03:29:07 <oerjan> nakilon: i suspect internet slang is a mess of borrowings in all languages other than english, not just russian.
03:29:08 <ais523> Corbin: that's amazing, that there's such a difference in meaning
03:29:25 <oerjan> (and english is a mess too)
03:29:26 <ais523> oerjan: in English, too
03:29:44 <ais523> e.g. "kek" is a borrowing from an invented language made for World of Warcraft…
03:29:53 <b_jonas> what? are you sure?
03:30:25 <ais523> b_jonas: is that directed at me? yes, this one's pretty well documented
03:30:26 <b_jonas> I thought "kek" was an alternate spelling for an onomatopoeia that may or may not have been borrowed form jaapenese
03:30:33 <b_jonas> ais523: yes, about "kek"
03:30:52 <ais523> it's "lol" passed through a character filter designed to prevent the players of the two opposing factions understanding each other
03:31:01 <b_jonas> no, apparently from korean
03:31:11 <ais523> this makes just as much sense as most Internet slang…
03:31:29 <ais523> although, this is disputed, the Korean borrowing is also mentioned
03:32:07 <b_jonas> I mean it's an obvious onomatopoeia, it can appear in multiple languages and be impossible to figure out where it's copied from
03:32:13 <nakilon> oerjan I won't mind it if internet messaging was something very new thing but those were "сообщения" for many years, until the internet got to the youngest people who lack the vocabulary
03:32:45 <ais523> Wiktionary (which is not a reliable source for this sort of dispute) says that the World of Warcraft thing was *intentionally* added by Blizzard to perpetuate a Korean Starcraft meme, which i think is more or less impossible
03:32:55 <b_jonas> heck, in general I don't understand how linguists can so often give such certain statements about etimology when there's more than one possibility.
03:33:41 <zzo38> Sometimes the statements aren't so certain
03:33:42 <ais523> fwiw, this may be a weird case in which the supposed etymology is the reason the word is used, even if it isn't correct…
03:34:27 <nakilon> ahah, it says in French it's Французский Кек — Queque
03:34:32 <ais523> "quiz" is a good one; there's a widespread belief that the word was invented for a bet, but apparently there's no evidence about this
03:35:06 <Corbin> b_jonas: Until relatively recently, words had to arise in geographic locations. We know e.g. where "marche" became "mush" because we know where French and English occupied territory during the start of dog-sledding in North America. (And TBH I think that "like, Alaska" is the best answer we currently have?)
03:35:23 <ais523> heh, Russian for France is almost identical to the English (and of course to the French), but the spelling is so different it's hard to recognise
03:38:04 <ais523> looking up "the proof of the pudding", apparently it's mutated into "the proof is in the pudding" in some areas
03:38:12 <ais523> which makes even less sense
03:38:18 <nakilon> russian article http://wikireality.ru/wiki/%D0%9A%D0%B5%D0%BA says kekeke originated in starcraft as an automated transliteration from horean hehehe but I agree it's not clear that kek is the same as kekeke
03:38:56 <nakilon> *korean
03:38:58 <nakilon> _<>
03:39:32 <ais523> so the debate is primarily about which Blizzard-created automatic character filter is responsible?
03:39:51 <b_jonas> lol
03:41:31 <ais523> hmm, "pwn" is another good one, especially as it likely had no defined pronunciation for a while
03:44:28 <shachaf> oerjan: Does Russian not use it?
03:44:36 <b_jonas> yeah, that's one that appeared in written chat like "glod" and "teh urn"
03:44:48 <b_jonas> but those have obvious pronunciations
03:44:49 <shachaf> Or do you mean that Greek or Spanish use it all the time, and not just when indicating how to pronounce a word? I haven't seen that.
03:44:52 <oerjan> shachaf: only in dictionaries and language textbooks for learners afaiu
03:44:59 <oerjan> yes
03:45:05 <nakilon> use what?
03:45:20 <oerjan> nakilon: ´ above a vowel to indicate stress
03:45:25 <nakilon> ah
03:45:26 <shachaf> Is there any language where the spelling indicates where the stress goes all the time, and not just in special cases?
03:45:29 <shachaf> Finnish, I suppose.
03:45:36 <shachaf> Sort of.
03:46:07 <nakilon> actually in books the thing is printed right above the letter
03:46:14 <ais523> huh, neither Wiktionary nor Urban Dictionary has "teh urn", but it was definitely widespread in the speedrunning community for a while
03:46:16 <oerjan> greek uses it in all multisyllable words, while spanish has a default stress rule that allows leaving it out in many words, but it's mandatory for all others
03:46:16 <shachaf> Most languages already use very redundant spelling compared to e.g. Hebrew.
03:46:23 <ais523> I think it might be more of a meme than an actual word, though
03:46:24 <nakilon> I guess it's just an internet thing that people have to put the ' somewhere
03:46:37 <b_jonas> ais523: do they have "urn" and "teh" separately?
03:46:41 <nakilon> we don't have a functionality to put the thing directly above an arbitrary letter at least in russian layout
03:46:54 <nakilon> oh wait
03:47:05 <ais523> b_jonas: well, "urn" is a real but unrelated word, and I'd expect "teh" to be there because it's older
03:47:12 <b_jonas> I know unicode doesn't have precomposed characters for russian vowels with an acute accent,
03:47:13 <nakilon> if you mean the rules of transcription in nelgih dictionaries -- yet, it's older than internet
03:47:18 -!- earendel has joined.
03:47:27 <nakilon> *english
03:47:28 <nakilon> _OO
03:47:44 <nakilon> the September is cold, my fingers to typos
03:47:49 <nakilon> *do
03:47:57 <b_jonas> while it does have precomposed characters for vowels with acute or grave (both acute and grave are used to mark stress, but in different European languages, by the way), because all of them clearly exist in at least some language like Welsh
03:48:48 <b_jonas> huh, urban dictionary has "urn" in an entirely different sense
03:48:58 <b_jonas> a sense I never heard of
03:49:07 <ais523> knowyourmeme doesn't have "teh urn" either (although it appears in one of the references)
03:49:16 <ais523> b_jonas: that doesn't surprise me, lots of slang is regional
03:49:16 <b_jonas> fun
03:49:36 <b_jonas> ais523: sure, not the part where I don't know the slang
03:49:46 <b_jonas> I don't know most of the entires in urbandictionary
03:50:05 <b_jonas> just that there is a third sense that happens to collide with that existing word
03:50:15 <b_jonas> with apparently three different etimologies
03:50:35 <nakilon> "Язы́к программи́рования" -- here is copypasta from wikipedia; in the article the tick is right above the letter but while I'm typing this message I see it's after the letter
03:50:36 <ais523> I think "teh urn" is probably best considered to be a Twitch meme, which was fairly long-running for Twitch memes but short-lived in terms of the language generally
03:50:50 <nakilon> heh, when I've pressed Enter it's now rendering above the letter again
03:50:56 <oerjan> nakilon: the russian and greek ´ are unicode modifier characters (not sure if they're the same character), so you _can_ put it anywhere in unicode as long as you have a way of typing it
03:51:30 <ais523> text entry boxes often treat combining characters in dubious ways
03:51:35 -!- Sgeo_ has joined.
03:51:45 <ais523> I'm not sure if there is a non-dubious way to treat them for editing purposes (as opposed to display purposes)
03:51:54 <nakilon> when I'm editing this copypasta in the text input I can't select it and move elsewhere, it's like bound to the vowel already
03:52:10 <zzo38> As far as I know, mostly it is the Romantic languages that have acute and grave accents, and other languages work differently. Is that right?
03:54:04 -!- Sgeo has quit (Ping timeout: 252 seconds).
03:54:48 <ais523> zzo38: I think that mostly depends on where the language got its alphabet from
03:54:52 <oerjan> b_jonas: btw italian uses _both_ acute and grave to mark stress on the last syllable (and in some dictionaries, elsewhere) with a close/open distinction of pronunciation when the vowel is e (or o, except then it's always ò at the end), but only there unless it's in a dictionary.
03:55:37 <ais523> in theory, a language could have multiple different writing systems, but that doesn't seem to happen that often in practice
03:56:47 <shachaf> Man, consensus is just the best. How come hardly anyone's into it?
03:57:08 <b_jonas> ais523: it does happen, just usually not simultaneously. serbian might be the only one that can keep two for decades.
03:57:17 <b_jonas> ah no
03:57:24 <b_jonas> obviously Norwegian will keep them longer
03:57:26 <zzo38> Well, other languages even with Latin alphabets work differently as far as I know, at least Germanic languages that use Latin alphabets, as far as I have seen they are differently, but I don't really know all of these thing if it is. I know that English writing does not normally use the accent marks, at least.
03:57:59 <b_jonas> there are much more that had different writing systems with different scripts at different times
03:58:00 <ais523> technology seems to drive elimination of letters from English
03:58:09 <ais523> þ started dying out when printing came about
03:58:30 <ais523> and it was typewriters and then computers that have mostly driven out the diaresis
03:58:52 <b_jonas> oh, as for the diarrhea, I wanted to ask
03:59:04 <nakilon> what
03:59:07 <b_jonas> how do you spell Bo-otes the constellation in English ais523
03:59:12 <ais523> (I'm just about old enough to remember the time when diareses were seen frequently enough to not look odd)
03:59:28 <ais523> b_jonas: I don't know the constellation in question
03:59:39 <b_jonas> ``` \? diarrhea # nakilon
03:59:40 <HackEso> Diarrhea is the most sickening accent, although some others are more grave.
03:59:50 <Corbin> I know that one; it's spelled "bootes" and you're just supposed to know that it's boötes.
04:00:21 <ais523> Wikipedia suggests https://en.wikipedia.org/wiki/Bo%C3%B6tes
04:00:35 <ais523> so it's using the diaresis for its intended purpose
04:01:04 <b_jonas> ais523: yes, so I was wondering if you use the diar... trema there
04:01:31 <ais523> I use the diaresis everywhere I can get away with it, which is very few places
04:01:40 <ais523> nowadays, few people know it exists
04:01:54 <ais523> a lot can change in a few decades
04:02:07 <b_jonas> the context is https://logs.esolangs.org/freenode-esoteric/2021-05.html#lqp
04:02:37 <b_jonas> ais523: yes, but isn't it one of those things that you can still use if most people don't know it because they can pick it up by example?
04:02:52 <zzo38> Yes, I have heard that a thorn is not used in English due to printing, but I think some languages still use
04:03:00 <ais523> there's a difference between what's understandable and what's socially acceptable
04:03:24 <ais523> people will laugh at you for writing "coöperative", even though it's normal-ish in old books
04:03:56 <oerjan> b_jonas: nynorsk vs. bokmål aren't just about spelling, there are also different word choices at least traditionally. and even phrasing: nynorsk frowns more upon using convoluted syntax with verbs being nouned (but _both_ frown upon it compared to german or even english)
04:04:00 <ais523> Wiktionary calls it a "rare spelling"
04:04:50 <nakilon> lol HTML https://web.archive.org/web/20120204065251/http://people.ku.edu/~nkinners/LangList/Extras/famous.htm
04:04:58 <b_jonas> oerjan: ok. and it's not clear if serbian is a good example, or if in the future we'll just see it as a short period when two systems coexisted
04:05:28 <b_jonas> (I do hope it's the serbian latin that dies out by the way)
04:05:48 <b_jonas> (but one of them will die out for sure)
04:06:45 <ais523> b_jonas: apparently they've survived in parallel since 1830
04:06:54 <b_jonas> what? really that old?
04:06:58 <b_jonas> I thought it was much newer
04:06:58 <ais523> which is longer than I expected
04:07:32 <ais523> this may end up in a situation like Japanese, where hiragana and katakana are used for different purposes (katakana's almost like italics)
04:07:51 <ais523> but have a 1-to-1 correspondence
04:09:03 <b_jonas> I don't really see how it could end up that way
04:09:30 <b_jonas> well maybe
04:10:00 <b_jonas> I can more easily imagine them being used in different kinds of text, but not generally mixed in one book
04:10:29 <b_jonas> but the problem is
04:11:01 <b_jonas> both latin and cyrillic already has lower case, upper case, and italic forms, so you don't need an extra doubling to use different letters for different occasions
04:13:59 <b_jonas> you can have three cases, but six is entirely too many
04:15:42 <oerjan> s/cases/genders/ * runs hastily away from both woke and bantu people
04:17:04 <nakilon> https://en.wikipedia.org/wiki/Plankalk%C3%BCl
04:17:11 <b_jonas> so didn't serbian cyrillic only get popular in the 1980s or 1990s, even if it was invented earlier?
04:17:14 <nakilon> > While working on his doctoral dissertation, Zuse developed the first known formal system of algorithm notation[7] capable of handling branches and loops.[8][9] In 1942 he began writing a chess program in Plankalkül
04:17:21 <b_jonas> sorry sorry
04:17:23 <b_jonas> I mean
04:17:26 <b_jonas> so didn't serbian latin only get popular in the 1980s or 1990s, even if it was invented earlier?
04:17:47 <b_jonas> serbian cyrillic was popular before that obviously
04:18:08 <nakilon> dude didn't even yet have a programming language but started coding chess -- how monay today's "programmers" would try to code chess at least once in their life?
04:18:19 <nakilon> *how many
04:18:57 <oerjan> b_jonas: for a time until about 1990 a lot of people tried hard to claim serbian and croatian were the same language hth
04:20:49 <oerjan> (based on politics and the silly argument that there was hardly any difference to speak of)
04:21:19 <oerjan> (then the politics changed and they quickly started making sure there _was_ a difference)
04:21:54 <oerjan> (but i think they're still closer than say bokmål and nynorsk?)
04:22:12 <b_jonas> oerjan: yep
04:22:38 <b_jonas> so maybe serbian latin was popular before the 50s, that's just too old for me to have noticed?
04:22:52 <b_jonas> I don't see books that old often
04:23:09 <b_jonas> or, you know, posts on the internet that old
04:23:18 <keegan> zzo38: Icelandic still has thorn
04:23:27 <oerjan> shocking
04:24:09 <ais523> I think Icelandic's use of þ is the reason it has a default keybinding on this layout
04:24:17 <keegan> and eth (ð) which is like the voiced version i think
04:25:38 <ais523> voiced th bothers me so much, because my brain tries hard to refuse to hear it as distinct from the unvoiced version
04:25:42 <oerjan> nakilon: istr ada lovelace similarly coded tic-tac-toe
04:26:06 <oerjan> which is a bit easier
04:26:11 <ais523> it took me a while to figure out whether the "th" in "thorn" is voiced or unvoiced, I had to say it over and over again and compare with reference words
04:26:16 <ais523> and the sounds aren't even that close
04:26:54 <b_jonas> ah, so IOCCC had a chess engine before 2005/toledo: 1992/vern. I thought it only had toledo's chess engine, his X11 chess program, and suicide chess.
04:27:02 <ais523> I've been wondering if there's a way to spell either of the sounds to make their pronuncuation unambiguous to a typical English speaker
04:27:12 <nakilon> oerjan funny but it's just exactly 1-2 days ago that I during having fun on lichess started thinking about making chess and then switched to idea to start with tic-tac-toe to avoid spending time on coding the rules -- this is why yesterday I threw some links about Gomoku
04:27:31 <ais523> I guess "vh" for voiced "th" isn't massively far off
04:27:41 <nakilon> (because the tic-tac-toe would be too fast to calculate fully)
04:27:41 <ais523> and "fh" for unvoiced?
04:28:09 <ais523> it helps that "v" is the voiced version of "f"
04:28:35 <ais523> (oerjan-style thought bubble: does that mean that the opposite of "voiced" should be "foiced"?)
04:28:51 <b_jonas> ais523: oh, so that's how you're supposed to pronounce fhtagn?
04:29:04 <ais523> or even "foist", I guess
04:29:16 <oerjan> <ais523> voiced th bothers me so much, because my brain tries hard to refuse to hear it as distinct from the unvoiced version <-- huh are there no minimal pairs in english? i don't know a rule to know which one is correct where
04:29:22 <nakilon> and also I wanted to ask you guys if there is something between Tic-tac-toe and Nim that would be easy to implement the rules machine and yet hard to calculate, but then I discovered the https://en.wikipedia.org/wiki/M,n,k-game that allows me to just take different n,m,k
04:29:40 <ais523> oerjan: "the"/"this" is not a pair but make for good reference words
04:29:52 <b_jonas> now you just have to explain all the other consonant combinations that appear at the start of a word only in incantations to summon Cthulhu
04:30:07 <ais523> I guess "this" (voiced) / "thistle" (unvoiced) have a paired syllable
04:30:31 <oerjan> ais523: on the other hand as a norwegian i have similar problems with voiced and unvoiced s (the latter doesn't exist in norwegian, which has no voiced sibilants)
04:30:32 <ais523> (the second "t" in "thistle" is silent, fortunately, or it wouldn't work)
04:31:34 <ais523> I don't know a rule for which th to use either, but I assume one exists, because I've never had trouble pronouncing an unknown English word with a th in it
04:32:00 <oerjan> ais523: it seems to me that dh would be a reasonable spelling of the voiced version
04:32:15 <nakilon> actually I've implemented the Gomoku in around 2007 in C++Builder -- it was thinking for few seconds and wasn't easy to beat, at least for me; the whole 3 (or 4?) deep loop was hardcoded with no recursion
04:32:23 <b_jonas> ais523: what? there's no way the "t" is always silent. isn't it's just one of those "t"s that are sometimes silent, like the one in "often"?
04:32:24 <ais523> the problem is that dh is a real digraph which has its own pronunciation
04:32:51 <ais523> Wiktionary says always silent
04:33:00 <nakilon> or maybe earlier than 2007 because it feels like I didn't have internet yet to know for sure how ti should be done
04:33:07 <ais523> and pronouncing it would be really weird, it'd end up rhyming with "pistol"
04:33:38 <b_jonas> so does my Longman. funny.
04:33:45 <ais523> in "often" the 't' is sometimes pronounced but it's rare
04:33:56 <oerjan> . o O ( it's not oerjan-style without the prefix hth )
04:34:38 <ais523> https://en.wikipedia.org/wiki/Pronunciation_of_English_%E2%9F%A8th%E2%9F%A9 seems useful
04:35:10 <nakilon> lol I remember how in school every teacher of English was reteaching us the pronounciation
04:35:16 <oerjan> ais523: um "the"/"this" are both voiced unless i am far more gravely mistaken about them than i thought
04:35:16 <nakilon> they all said "your previous teacher is dumb"
04:35:50 <ais523> oerjan: I was about to say that
04:35:57 <ais523> I /just/ realised that "the" is voiced
04:36:05 <ais523> even though I was sure it was unvoiced earlier
04:36:14 <ais523> I came here to say that, and then noticed your ping
04:36:26 <ais523> this is how hard it is for an English speaker to tell them apart
04:36:37 <ais523> "this"/"thistle" helped, though
04:36:51 <nakilon> we were officially taught british english and when there was a teacher of english literature that "lived in USA for several years" we could not understand her at all
04:37:48 <zzo38> (One thing that I do think can be good to continue using thorn letter in English is when you want to abbreviate "Thursday" as one letter, so that is difference from "Tuesday". And then, write "L" for "Lyeday" (as another name for Saturday); I have seen suggestion Lyeday for Saturday too (and it look like it is another name for that day in Proto-Germanic), and I like this because it is not "S" like "Sunday")
04:37:50 <b_jonas> huh
04:37:57 <ais523> American English and British English are mutually intelligible but the differences are actually quite large
04:38:27 <zzo38> I had also heard someone who speak English could understand well enough in most countries (even those who are not English) except in England
04:38:35 <ais523> and I could see how it would be difficult as a second language
04:39:34 <nakilon> I mean like those youtube videos of "speaking with scottish accent" or something -- the same much inunderstandable
04:39:48 <b_jonas> zzo38: shouldn't we just abbreviate them as the alchemical symbols for the Moon, Mars, Mercury, Jupiter, Venus, Saturn, Sun?
04:39:53 <b_jonas> the days of the week that is
04:39:55 <ais523> ah, here we go, the rules for telling the "th"s apart: https://en.wikipedia.org/wiki/Pronunciation_of_English_%E2%9F%A8th%E2%9F%A9#Phonology_and_distribution
04:40:08 <nakilon> she was dictating things and we were just pretending we understand, but mostly asked each other "what did she just say?" ..D
04:40:17 <b_jonas> or W-1, W-2, W-3, W-4, W-5, W-6, W-7 if you prefer
04:40:30 <ais523> nakilon: a sufficiently strong accent can be hard to understand even for native speakers
04:41:21 <zzo38> Yes, abbreviating them as the the symbols for the planets is another way, maybe is better
04:41:40 <ais523> heh, I love the way that Wikipedia points out that "lighthouse" is an exception, the t and h are in different syllables
04:42:14 <nakilon> I remember how I asked: "road or wrote?" and in Russian it actually sounds like "в рот" meaning "into a mouth" -- the class went laughing and she asked me to leave and after that or another lesson she just refused to do lessons with me, lol
04:42:36 <nakilon> I don't remember how I was rated in the end of the year
04:43:33 <nakilon> probably now I could understand from the context if it's road or wrote but not when you are 16 or so
04:45:41 <b_jonas> nakilon: write/right/rite/wright is one of the worse homophones in English
04:45:51 <ais523> "cloth"/"clothe" aren't a pair because the vowel is different, but I can pronounce "clothe" with either th easily
04:46:13 <b_jonas> ais523: can you pronounce it with either th as either a noun or verb?
04:46:15 <zzo38> (I think in alchemy they are just used as the sign for different metals and chemical elements; in astrology/astronomy they are used to represent the planets, Sun, and Moon.)
04:46:48 <ais523> b_jonas: the verb can only use the voiced version, if I pronounce it unvoiced it sounds like a nonexistent noun (an irregular singular of "clothes")
04:46:54 <b_jonas> zzo38: yeah, astrological symbols might make more sense
04:47:02 <ais523> which is weird because the th in "clothes" is voiced too
04:47:30 <b_jonas> how do you pronounce "clothing"?
04:47:53 <b_jonas> `? hth
04:47:55 <HackEso> hth ([ʰtʰh̩]) is help received from a hairy toe. It is not at all hambiguitous.
04:48:19 <ais523> b_jonas: voiced
04:48:34 <ais523> I'm getting better at telling them apart but it takes so much concentration
04:48:47 <nakilon> in the first class we were taught to spell "can't" with "a", and in the second class we've got another teacher and she said "omg, don't say like that", you should use "e" sound otherwise it sounds bad -- only after school I've learned what word she meant
04:48:49 <b_jonas> huh... now I'll have to look that up in the Longman too
04:48:57 <ais523> I guess that's another pair – the second syllable of "clothing", against "thing"
04:49:16 <nakilon> but then in movies I hear "can't" exactly like we were taught in the first class so we were not fully wrong, it was just an accent
04:49:43 <b_jonas> longman says "clothing" is voiced too
04:50:10 <ais523> apparently "th" in the middle of a word is nearly always voiced, and "th" at the start of a word is nearly always unvoiced – Wikipedia claims that there are exactly 14 base words whose derivatives start with voiced "th", and all other words are unvoiced
04:50:25 <ais523> that would explain why I rarely have much trouble getting it correct
04:50:48 <ais523> "th" at the end of the word varies by both the word and by the accent of the speaker, according to Wikipedia, and when I think about it I think that's right
04:50:58 <nakilon> heh, TIL this longman thing https://www.ldoceonline.com/dictionary/can-t what does red and blue mean? they are exactly what you meant
04:51:01 <nakilon> *what I
04:51:15 <ais523> basically, the less voiced your final ths are, the further north you live
04:51:19 <ais523> if you're in the UK
04:51:35 -!- Everything has quit (Quit: leaving).
04:52:07 <b_jonas> nakilon: no
04:52:37 <b_jonas> my longman is a printed dictionary from the same publisher (Langenscheidt-Longman)
04:52:49 <b_jonas> called "Dictionary of Contemporary English"
04:53:08 <nakilon> though the definition in that page is confusing
04:53:23 <nakilon> " something is impossible or unlikely" is exactly the "Sorry, I can’t help you."
04:53:38 <ais523> huh, I missed definition 2 there
04:53:47 <b_jonas> a very good dictionary in the sense that its definitions are easier to understand than the ones in Oxfords, and much easier than the ones in Websters
04:53:51 <ais523> if you write it as "cannot" it sounds more like an order, rather than a state of fact
04:54:42 <ais523> I hadn't noticed that rule before, and was vaguely surprised that a dictionary picked up on it
04:55:01 <ais523> however, this seems to be a meaning that's missing from "cannot" rather than an extra meaning of "can't"
04:55:04 <nakilon> b_jonas <title>can’t | meaning of can’t in Longman Dictionary of Contemporary English | LDOCE</title>
04:55:04 <b_jonas> I highly recommend using Longmans as the first one-language English dictionary for foreign language learners
04:55:39 <b_jonas> nakilon: ok, but this one doesn't have red and blue stuff, except the blue L on the cover, and definitely doesn't have sound recordings
04:56:01 <nakilon> ..D
04:56:23 <b_jonas> so I don't know what red and blue means
04:56:28 <nakilon> yout typography had only black ink
04:57:17 <nakilon> oh when you hover the mouse it says red british blue american
04:57:50 <nakilon> haha, so the teacher from 2 to 9 classes was wrong
04:59:05 <ais523> now I'm trying to imagine what American English "can't" sounds like (without cheating by playing a recording)
04:59:44 <ais523> oh, Wiktionary says /kænt/, and æ is easy, that'd basically be British English "cant"
05:00:17 <nakilon> I guess the transcription on that page means the same: /kɑːnt $ kænt/
05:00:23 <nakilon> it's just not colored
05:00:36 <ais523> …it crosses my mind that I've partially learnt quite a few alphabets
05:01:15 <ais523> I know more than half of Cyrillic but not all of it, I struggle with many of the vowels, and also the consonants that are written as digraphs in English (I have trouble remembering which is which)
05:02:07 <ais523> and I know some of IPA but not all of it (that's especially hard for sounds that aren't in English, although I can normally get there by reading the Wikipedia article and following its instructions about where to put the various parts of my mouth to pronounce them)
05:04:25 <ais523> hmm, I wonder whether the "th" in words like "lighthouse" should be technically written as "tḧ"? although the diaresis is only supposed to be used on vowels, I guess now that it isn't used anywhere any more I can put it where I like
05:04:52 <oerjan> brilliant
05:04:54 <nakilon> b_jonas does your book longman have one or two transcriptions?
05:07:58 <ais523> oerjan: anyway, now that I've read the rules, I can understand why þ/ð pairs are so hard to find in English – the rules pretty much eliminate them
05:08:09 <nakilon> ahaha, another example https://www.ldoceonline.com/dictionary/homework
05:08:23 <ais523> you would probably need to find a loanword with a th in the middle, that happened to otherwise be the same as a native word
05:08:40 <nakilon> in 1st class we were taught to say hAm, and the next teacher said it's stupid, say hOm
05:08:47 <ais523> oʊ? wow
05:08:50 <nakilon> "because otherwise it sounds like harm work"
05:09:16 <ais523> American English sounds ridiculous to Brits sometimes
05:09:45 <nakilon> this is so weird to finally know why other teachers said we've got not the best teacher during 2-9
05:10:13 <ais523> I don't think I could teach American English
05:10:18 <nakilon> she was kind of right to say cEn't and hAm but not while saying that "we are learning british one" at the same time
05:10:26 <ais523> the vowels are so different
05:11:49 <nakilon> I think this was all wrong to decide that "we teach this one" because in the end today I have no idea which one is which
05:12:05 <nakilon> is it ...tize os ...tise, color or colour beughbor or neighbour, etc.
05:12:45 <nakilon> it would be nice if instead of "we learn british, that's it" we were "learning both, here remember the difference..."
05:12:51 <ais523> …ise vs. …ize, nobody has any idea any more
05:13:01 <nakilon> so we would pay attention
05:13:04 <ais523> both are used interchangeably in both Britain and the US any more, probably because they're pronounced the same way
05:13:12 <ais523> s/any more/nowadays/
05:13:22 <nakilon> "beughbor" oh god today's typos
05:13:24 <ais523> some people try to insist on a rule to distinguish them but nobody can remember which is which
05:13:44 <ais523> and I have spellcheckers on my computer with strong opinions about -ise versus -ize but they disagree with each other
05:13:58 <nakilon> ahah, I always ignore those red lines
05:14:03 <nakilon> *underlines
05:14:04 <ais523> however, in most of the cases where the words are a different length, the British spelling has more letters than the American
05:14:27 <ais523> so "neighbor", "color" are US, "neighbour", "colour" are UK
05:14:49 <nakilon> also I guess it was less practical to learn british one
05:14:52 <ais523> despite being British, I will often use the American spellings in technical contexts, sometimes intentionally, sometimes not
05:15:02 <nakilon> they could not predict that though, we are the Europe
05:15:03 <ais523> American is more widely used, I think, because they outnumber us
05:23:07 <imode> do we?
05:24:36 <ais523> by a factor of about 5, it seems
05:25:28 <imode> damn, sorry.
05:25:30 <imode> we'll try harder.
05:28:40 <ais523> I guess I look down on anyone teaching English as a second language who doesn't realise that British and American English both exist, though (and it's confusing to change from one to the other mid-course)
05:33:06 <ais523> oerjan: OK, I finally found a þ|ð pair: "loath" / "loathe"
05:33:33 <ais523> although it's not great because "loath" is pretty obscure as words go
05:34:23 <ais523> oddly, Google Ngrams has "loath" as more common than "loathe", but derived forms of "loathe" (such as "loathing") beat both
05:34:39 * ais523 quickly looks up how to pronouce "Lothian"
05:34:53 <ais523> ð it seems
05:36:11 <ais523> the pair only works because the "e" is supposed to lengthen the preceding vowel but it's long anyway, so it has no effect other than moving the "th" away from the end of the word
05:36:28 <ais523> the funny thing is, to an English speaker's ear, "loathe" sounds like it has a longer vowel than "loath"!
05:37:36 <ais523> (it doesn't, it's just perceived like it does)
05:38:46 -!- delta23 has quit (Ping timeout: 256 seconds).
05:41:24 <ais523> …it strikes me that English is arguably an esolang
05:41:52 <ais523> maybe that's why we discuss it so much here
05:42:16 <nakilon> ais523 we were taught that there are two englishes but we didn't bother to learn both
05:42:32 <nakilon> I guess the books were specializing on one of them
05:42:54 <nakilon> and teachers could believe or speculate which pronounciation is correct
05:43:27 <ais523> there's more than two, but, e.g., Indian and Australian English aren't heard much outside their native countries
05:44:11 <nakilon> we had only one tape recorder in school to bring fro class to class to play some english recordings on rare occasions, usually a special kind of exams -- "an audition"
05:44:15 <zzo38> There are more than two kind of English; there is also Canadian English too. One thing on the CBC they said, should you use American or British spelling in Canada? I say, you use Canadian spellings in Canada (except computer commands, which will be American).
05:44:32 <nakilon> yeah I know australian english from youtube
05:45:11 <ais523> zzo38: I think Canadian English is a good compromise between British and American
05:45:21 <nakilon> most of people at least in my age didn't even have the full school course of english, usually only 6 years, not 10, or even german instead
05:45:53 <nakilon> so people just didn't give a damn, and again there was no internet, only tape recordings
05:47:59 <ais523> I guess the Internet would be one of the main reasons to learn English
05:48:40 <ais523> it's the main use I've made of my foreign language knowledge – I rarely have a reason to use languages other than English when communicating with other UK residents, and rarely go abroad, but the Internet makes it easy to communicate with people all over the world
05:48:49 <zzo38> Yes, I also think the Canadian English is good compromise between British and American, too.
05:48:55 <nakilon> "reasons to learn English" -- meh, most of people won't believe in that even today
05:50:01 <nakilon> there is a huge imaginary world in which Russians are living where "we don't need anything from outside, it's enough in here" while english memes are leaking but learning things from the source is considered a wrong and shameful
05:50:30 <imode> a lot of americans have that view too.
05:51:19 <ais523> lots of Brits as well
05:51:20 <nakilon> I worked in many companies and in none of them had even one coworker who would speak with anyone abroad at all; people have learned English only to understand posts on stackoverflow
05:52:38 <ais523> I'm considerably better at understanding foreign languages than typing/speaking them; I wonder if the easiest way to speak with people when there's no fluent common language is for everyone to speak their own language
05:52:47 <zzo38> I think that there are reasonable reasons today to learn English writing even if not English speech
05:53:00 <ais523> that said, I hardly know any Russian, apart from the occasional loanword
05:53:59 <ais523> French and German come up much more often, probably just based on geographical proximity
05:54:19 <ais523> and Dutch for some reason, but if you know both English and German, you can often guess at what a Dutch sentence means
05:54:55 <ais523> the funny thing is, at school, I chose Latin as my foreign language primarily because it was taught a lot better than French and German were
05:55:29 <nakilon> maybe that's a good reason
05:56:13 <nakilon> we had a lecturer of programming who was showing slides with just pseudolanguage that maybe even was his own one
05:56:54 <nakilon> but at least he taught us programming and then we could learn the lagnauges specifically
05:57:11 <ais523> pseudocode doesn't normally follow actual rules
05:57:18 <ais523> it's just "whatever I expect the audience to understand"
05:58:13 <ais523> I guess it's the natural-language version of programming, you can be a lot more flexible because you don't need to let a computer understand what you're saying, just a human, and humans can fill in missing parts more easily
06:27:58 <nakilon> I don't want to change rasel specification, I don't want to bloat it, and I don't want to make too many derivatives of the same thing; but I still keep thinking about threading and other 2d-related additions, can't decide where to put them; maybe later
06:29:52 <nakilon> maybe I need a language with support of adding powerful extensions
06:30:27 <nakilon> not that I saw anything like that
06:31:04 <nakilon> to be able to have such extensions that would change the runtime so much like adding the subroutines I imagines few hours ago
06:31:50 <nakilon> *imagined
06:37:29 <ais523> Funge-98 has some pretty powerful extensions
06:37:53 <ais523> I think that's the only example of something like that I've seen in an esolang (not counting esolangs where the entire language can be redefined at runtime, as that isn't really the same thing)
06:40:10 -!- src has quit (Ping timeout: 240 seconds).
07:36:05 -!- earendel has quit.
07:36:20 -!- earendel has joined.
07:56:40 -!- ais523 has quit (Quit: quit).
08:06:36 -!- hendursa1 has joined.
08:10:21 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:22:17 -!- earendel has quit.
08:22:38 -!- earendel has joined.
08:49:12 -!- Sgeo_ has quit (Read error: Connection reset by peer).
09:22:58 -!- Koen_ has joined.
09:25:07 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
09:51:34 -!- oerjan has quit (Quit: Later).
10:17:31 -!- Robdgreat_ has joined.
10:18:26 -!- Robdgreat has quit (Remote host closed the connection).
10:19:32 -!- Robdgreat_ has changed hostmask to ~rob@user/robdgreat.
10:19:38 -!- Robdgreat_ has changed nick to Robdgreat.
10:53:52 -!- arseniiv has joined.
11:03:02 -!- imode has quit (Ping timeout: 245 seconds).
11:12:06 <b_jonas> ais523: yes, American "can't" is pronounced as /kænt/ which means that before a verb that starts with a "t" or "d" it sounds exactly the same as "can". some say the American solution to this is that "can" is always pronounce weak with a schwa, but I find that sort of hard to believe.
11:13:49 <b_jonas> ais523: re `whether […] "lighthouse" should be technically written as "tḧ"?' => no, just use a hyphen, as in "light-house" if you think without it it's hard to read
11:13:59 <b_jonas> though I think in the case of lighthouse there's not much need for it
11:14:14 <b_jonas> maybe for hot-headed or pot-hole
11:15:58 <b_jonas> "…ise vs. …ize, nobody has any idea any more" I always try to use ize.
11:16:37 <b_jonas> "I have spellcheckers on my computer with strong opinions" => many spellcheckers have strong opinions about words where there are two variant spellings/pronunciations used.
11:18:51 <b_jonas> like try to look at any Hungarian spellchecker, if you take any word where different people use different form of the conjugation or declination for the same thing, it's very likely that the spellchecker only accepts one of them, except when the alternative coincides with what it thinks is either a different form of the word (can happen for a few verb forms) or used with a different meaning of the same
11:18:57 <b_jonas> root word in the same form (usually for nouns)
11:20:19 <b_jonas> as for color, neighbor, and all the other -ours that don't come up in mathematics that much (honor, flavor, odor, favor, valor, candor etc), I now try to consistently use the -or spelling, but sometimes I still typo into the -our version that I used to be using
11:21:30 <b_jonas> `ais523: oerjan: OK, I finally found a þ|ð pair: "loath" / "loathe"' => wait, what was the problem with cloth/clothe and bath/bathe?
11:21:32 <HackEso> ais523:? No such file or directory
11:22:02 <b_jonas> (the latter possibly only in some dialects)
11:22:28 -!- Koen_ has quit (Remote host closed the connection).
11:23:04 <b_jonas> `<nakilon> b_jonas does your book longman have one or two transcriptions?' => usually one; two if the most common American pronunciation can't be derived from the british pronunciation that they list
11:23:05 <HackEso> ​<nakilon>? No such file or directory
11:24:44 <nakilon> really
11:24:54 <nakilon> no such file or directory
11:25:18 <nakilon> I had to name my language nakilon
11:25:30 <b_jonas> `<ais523> I wonder if the easiest way to speak with people when there's no fluent common language is for everyone to speak their own language' => it can occasionally happen, but rare, mostly because switching languages quickly can be mentally taxing too
11:25:31 <HackEso> ​<ais523>? No such file or directory
12:25:04 -!- Koen_ has joined.
12:26:11 -!- earendel has quit (Quit: Connection closed for inactivity).
12:42:46 -!- Lord_of_Life has joined.
12:57:02 -!- hanif has joined.
12:58:18 -!- hendursa1 has quit (Quit: hendursa1).
12:58:46 -!- hendursaga has joined.
13:01:30 -!- src has joined.
13:45:58 -!- mla has joined.
13:49:09 <tromp> please upvote https://news.ycombinator.com/item?id=28423029 if you like chess and Haskell :-)
13:59:20 -!- riv has quit (Quit: Leaving).
14:03:24 -!- ais523 has joined.
14:04:23 <ais523> b_jonas: "cloth/clothe" and "bath/bathe" have different vowels, so they aren't exact matches
14:04:37 <ais523> the reason "loath/loathe" works is that the vowel is long already, so the e doesn't lengthen it
14:05:27 <ais523> meanwhile, multiple sources I've checked suggest that α⁸+α⁴+α³+α+1=0 produces the finite field that's used in AES encryption, which confuses me because multiple *other* sources say it doesn't produce a finite field at all
14:13:34 <b_jonas> do bath/bathe have different vowels in all dialects?
14:14:11 <b_jonas> cloth/clothe ... I never understand how "o" vowels work in English. let me look these up in a dictionary
14:14:16 <ais523> I think so, at least in British English; the "a" of "bath" varies but it never matches the "a…e" of "bathe", which doen't
14:15:06 <b_jonas> yeah, you're right, "bathe" has a long vowel
14:15:16 <int-e> ...dearest creature in creation...
14:16:28 <b_jonas> and yes, dictionary agrees you for "cloth/clothe"
14:16:51 <int-e> . o O ( Any clothing thoughts? )
14:16:57 <ais523> something I've been trying to do in my head is to work out, for each phoneme used by English, a way to unambiguously represent it so that it can't be misread as being some other phoneme (potentially context-dependent)
14:17:45 <ais523> I'm not sure it's possible; I haven't found any letter sequence that unambiguously encodes the vowel in bye, pie, sigh, etc., when it appears at the end of a word
14:18:08 <ais523> ("i…e" encodes it unambiguously when separated by a consonant other than "g")
14:18:16 <int-e> phoneme != phone me
14:19:23 <b_jonas> hmm... if there's not enough good pairs, then we should invent a sci-fi word "theron", with fake greek etymology, that is pronounced like "thereon" but with an unvoiced "th"
14:19:38 <Corbin> English orthography reforms are usually doomed. I think both Jan Misali and Conlang Critic have videos about this.
14:20:11 <ais523> Corbin: this isn't intended as an orthography reform, so much as a way to unambiguously communciate pronunciation of a word to someone who speaks the same dialect of English as you
14:20:45 <b_jonas> ais523: as for unambiguously representing each phoneme, usually you just give an example word that is common enough and has that vowel unambiguously enough. there are even lists of such example words for each phonemes, usually to explan what phonemes they're talking about or a specific phonetic notation.
14:21:08 <ais523> b_jonas: yes, but they struggle sometimes
14:21:08 <b_jonas> and I think there was something more like you want, but not that unambiguous
14:21:55 <b_jonas> both my Longman and my Oxfor has such example words
14:22:38 <b_jonas> https://en.wikipedia.org/wiki/SAMPA_chart_for_English has a list too but possibly not as good
14:22:46 <ais523> /ɨ/ is a good example of a phoneme it's hard to find good example words for
14:23:08 <Corbin> ais523: Many English words have multiple legal pronounciations depending on position and emphasis. First one that comes to mind is "the", which can start either voiced or unvoiced and use either a stressed vowel or schwa.
14:23:21 <b_jonas> ais523: is that a phoneme that appears in an English dialect?
14:23:31 <b_jonas> as opposed to non-English languages
14:23:43 <ais523> because some people pronounce it identically to ɪ and others don't use it at all
14:24:00 <Corbin> If we ignore that topological obstacle, then maybe examine Lojban's inventory of vowels; it has nearly everything an English-speaker could want. (Many other folks are grumpy about the lack of -eu-; nothing's perfect.)
14:24:01 <ais523> b_jonas: I think the standard example is the second vowel in "minute" (= 60 seconds), when it isn't a schwa
14:24:49 <ais523> but I pronounce that in a way that I perceive as identical to ɪ
14:25:10 <b_jonas> Alan's pronunciation dictionary defines more phonetic symbols than there are phonemes in any dialect, because each symbol can represent a combinations of possibly phonemes depending on the speaker
14:25:53 <b_jonas> https://en.wikipedia.org/wiki/SAMPA_chart_for_English has a list of that kind of set of combo-phonemes, sourced from the Wells books
14:26:18 <ais523> apparently some dictionaries have taken to using ᵻ as something that's somewhere along the ə-ɪ scale
14:28:41 <ais523> fwiw, I can get a phoneme that I don't normally use by putting my mouth into the position for /i/ ("ee") and then trying to say /ʊ/ (short "oo") without moving it; based on the definitions of Wikipedia that *should* be /ɨ/ but I'm not sure i believe it, as it seems inconsistent with definitions elsewhere
14:31:48 <b_jonas> Alan's pron has such a specific combo symbol ê for the second wowel of "minute" the noun in the American pronunciation, and explains that this is sometimes pronounced as the "ship" vowel and sometimes as a schwa
14:32:00 <b_jonas> (and possibly sometimes as some other vowel)
14:32:20 <b_jonas> though apparently that other vowel is supposed to be /ɨ/
14:33:51 <ais523> this finite field thing is bothering me, though
14:34:23 <b_jonas> I can understand. I decided to stop trying to figure it out yesterday, but should continue at some point
14:34:24 <ais523> I think most consistent with the sources is that α⁸+α⁴+α³+α+1=0 *does* produce a valid finite field, but it isn't the one that most people use for GF(2⁸)
14:35:30 <b_jonas> it should be possible to figure that out by making a multiplication table and checking if you can find no zero divsors and an order 128 element
14:38:35 <b_jonas> that or ask Sage
14:38:56 <ais523> I'm trying to ask Sage but I can't figure out how to formulate the question, I'm not even sure which field to ask in
14:39:48 <b_jonas> the polynomial ring GF(2)[x] factored by that specific polynomial x**8+...+1 (not typing here because I'd typo it)
14:40:44 <b_jonas> did you try to check a recent AMD manual?
14:41:25 <b_jonas> if all else fails, we can ask on Cryptography SE, but I should make an effort trying to figure this out first
14:41:32 <ais523> OK, both the standard version (with α²) and the AES version (with α) are irreducible according to Sage
14:42:13 <ais523> I guess the next interesting question is what value each ring's α has in the other ring
14:42:18 <ais523> err, each field's
14:42:28 <b_jonas> ais523: but does irreducible mean the factor gives the finite field?
14:42:59 <b_jonas> because that's what wasn't clear to me, that's why I didn't know which of the fxt tables to look at
14:43:15 <ais523> yes, if you have any irreducible polynomial, its root gives a valid α to generate a finite field
14:43:29 <ais523> (whose elements are 0 and the powers of α)
14:43:56 <b_jonas> ok
14:44:00 <ais523> err, assuming that the original polynomial was over a finite field
14:45:30 <b_jonas> but in that case, https://www.jjj.de/mathdata/all-irredpoly.txt shoudl be the table to look at, and that table doesn't list 8,4,3,1,0
14:46:11 <ais523> b_jonas: it does
14:46:19 <ais523> beneath the "non-primitive" comment
14:46:24 <ais523> so now all the sources are in agreement
14:46:27 <b_jonas> oh
14:46:30 <b_jonas> indeed
14:46:42 <ais523> OK, mystery solved
14:47:29 <ais523> aha, I see
14:47:46 <ais523> it seems that a primitive polynomial gives you a root α that generates the entire field
14:48:04 <b_jonas> and that's the representation that the x86 GF2P8MULB and other GF2P8* instructions use
14:48:10 <ais523> and for a non-primtiive polynomial, its root is not a valid α because it only generates a subset of the field, but you can take a polynomial in its root to get the whole field
14:49:17 <b_jonas> ok
14:49:29 <ais523> for the AES field, you have to add 1 to the root of its polynomial to get the typical α (thus α is 3 in the usual encoding, rather than 2 like it is for most binary finite fields)
14:50:32 <b_jonas> so is either x or x+1 an order 128 element in all the representations that you get from irreducible polynomials?
14:50:42 <ais523> sage: y.<x> = GF(256)
14:50:44 <ais523> sage: a = x+1
14:50:45 <ais523> sage: a**8 + a**4 + a**3 + a**1 + 1
14:50:47 <ais523> 0
14:50:57 <ais523> err, I named a and x the wrong way round, but you get the idea
14:51:14 <ais523> b_jonas: I'm not sure, my guess is no but it's just a guess, not even an educated guess
14:53:57 <b_jonas> ok
14:54:14 <b_jonas> but what does this have to do with AES?
14:55:11 <ais523> so the reason Intel picked that particular finite field representation is that AES
14:55:20 <ais523> 's S-box is based on it
14:55:20 <b_jonas> hmm, apparently AES includes calculations in GF(2) in that representation
14:55:52 <b_jonas> ais523: but the AESNI extension with the AES* instructions is older than the GF2P8* instructions
14:56:12 <ais523> b_jonas: the common theory is that because the AES instructions existed already, the processor had circuitry for handling one specific finite field already
14:56:20 <ais523> so it was easy to expose it in a way that wasn't tied to AES
14:56:40 <b_jonas> or perhaps it's used in other crypto primitives too, and the AESNI instructions can't help with those
14:57:15 <ais523> and one of the GF2P8 instructions can apparently be used to convert between finite field representations, so you can have any GF(256) representation you like (as long as it's polynomial-based rather than logarithm-based)
15:00:04 -!- APic has quit (Read error: Connection reset by peer).
15:00:39 -!- APic has joined.
15:01:16 <b_jonas> while PCLMULQDQ multiplies two GF(2) polynomials, from two 64 bit long polynomials to a 128 bit long result, and doesn't try to do the reduction
15:02:03 <ais523> right
15:02:15 <b_jonas> let me check the CRC32 instruction too
15:04:06 <b_jonas> I think that one does a GF(2)[x] multiplication by x**32 then a reduction using a specific 32-bit polynomial
15:04:16 <b_jonas> for computing CRC32 checksum
15:04:49 <ais523> it's just so weird seeing a finite field representation where the generating element and the root of the polynomial are different, it becomes non-obvious which one gets to be called α
15:04:50 <b_jonas> but I'm not sure
15:05:06 <ais523> no wonder the AES field isn't the one that all the finite field software standardised on for GF(256)
15:05:39 <b_jonas> or maybe not, I'm not sure
15:06:21 <b_jonas> ais523: is the representation that they standardized the same as the representation in the IOCCC entry?
15:06:32 <ais523> which IOCCC entry?
15:06:53 <ais523> the answer may well be "I can't tell" unless the hint file is good, though, given that the question may require me to understand obfuscated C
15:07:42 <b_jonas> http://www.madore.org/~david/weblog/d.2012-10-14.2083.html#d.2012-10-14.2083
15:08:01 <b_jonas> the description of how it works is in a comment of David's non-obfuscated program
15:08:16 <b_jonas> that program is at ftp://ftp.madore.org/pub/madore/misc/shsecret.c
15:12:21 <ais523> this multiplication table has 2×2=3 (where the numbers refer to the internal representations of the finite field elements, not the regular 2 or 3)
15:12:31 <b_jonas> I also don't remember what representation my https://www.perlmonks.com/?node_id=863110 or the inspiration https://www.perlmonks.com/?node_id=862789 uses, I'll have to re-read those
15:12:41 <ais523> so I think it's using a very unusual representation of GF(256)
15:12:55 <ais523> (there's only one GF(256), the interesting part is how you order the elements)
15:12:56 <Corbin> Hm. I wonder if this is an NSA/CIA situation, where the AES field's primitive operations can be used for something other than typical encryption or decryption of AES.
15:13:41 <Corbin> Somebody must have had a use for these instructions. It's curious that Intel doesn't explain how to use them for arbitrary work.
15:13:50 <b_jonas> oh, those both represent GF(2**7), not GF(2**8)
15:14:35 <ais523> even so, every binary field larger than GF(4) (which doesn't have an element numbered "4") has 2×2=4 in the most common representation, also the second-most common representation
15:14:36 <b_jonas> Corbin: it's not the Intel manual's goal to explain math or cryptography
15:15:19 <Corbin> Fair.
15:15:23 <b_jonas> Corbin: they also don't teach you all about how to multiply matrices or complex numbers or quaternions with their mul-add and add-subtract instructions
15:15:43 <b_jonas> and especially not teach how to use matrix multiplication or complex numbers for anything useful
15:15:59 <ais523> Corbin: all representations of GF(256) are equivalent and fairly easy to interconvert (you just need to know which element in one field is the α of the other), so circuitry implementing AES isn't going to be inherently AES-specific, you could use it for anything based on GF(256)
15:16:15 <ais523> and that's the functionality that Intel's exposing now
15:17:19 <Corbin> ais523: That makes sense, I guess. What are you stuck on?
15:17:28 <ais523> we aren't any more
15:17:42 <ais523> we were stuck on some apparent inconsistencies between sources but they've all been resolved now
15:17:45 <b_jonas> ok, now I'm trying to imagine the Intel manuals with three extra volumes for numerical methods of partial differencial equations in the middle
15:18:15 <ais523> the representation AES uses for GF(256) is mildly weird, but not ridiculously so
15:18:20 <b_jonas> ais523: I don't think that's necessarily right, doesn't AES mix those field operations with other things, or at least map the input to it somehow?
15:19:19 <ais523> b_jonas: yes, but the circuits for the field operations apparently existed already, there was just no way to use them in isolation
15:19:38 <b_jonas> I remember that https://www.perlmonks.com/?node_id=862789 switches between two representations of GF(128): a sane linear one, and a logarithmic one where you add the representatives mod 127 to do a multiplications
15:20:04 <b_jonas> and I think it computes the logarithm table for that by repeatedly multiplying with a specific field element, because that's easier to code than a general multiplication
15:20:09 <ais523> those are both sane, and fairly natural
15:20:16 <ais523> the polynomial representation is more commonly used though
15:20:32 <b_jonas> just like multiplying fixed integers by a constant integer is easier than multiplying two arbitrary integers
15:21:11 <b_jonas> ais523: possible, the logarithmic one certainly wasn't natural, I remember the idea was new and very odd to me when I decoded how that obfuscation works
15:21:31 <b_jonas> I do admit that it's a good representation in the sense that it did allow martin to golf their code
15:21:42 <ais523> b_jonas: it's something I thought up independently after learning about finite fields (although I thought of the polynomial representation first)
15:21:46 <ais523> so it was natural to me
15:21:49 <b_jonas> ok
15:21:57 <b_jonas> my program, which I wrote later, only uses a linear representation
15:22:29 <b_jonas> but I don't know how it works
15:22:51 <b_jonas> now I have to try to understand my own obfuscated code\
15:23:21 -!- riv has joined.
15:25:01 -!- APic has quit (Read error: Connection reset by peer).
15:25:40 <b_jonas> but... that code makes no sense! why does it shift one bit left then extract the high bit?
15:25:50 -!- APic has joined.
15:25:54 <b_jonas> why doesn't it just extract the sixth bit instead of shifting and extracting the seventh?
15:27:22 <ais523> is it an in-place shift, that leaves its input shifted?
15:27:49 <b_jonas> oh yes, it shifts the input in place, and also outputs its high bit
15:27:51 <b_jonas> that makes more sense
15:30:10 <b_jonas> $v must be the value substituted in the polynomial
15:32:25 <ais523> my interest in finite fields is mostly related to error-correction algorithms
15:33:10 <b_jonas> so h($r) shifts $r in place, returns the carry, and so $r ^= h($r) & "\x217" multiplies the polynomial by x then propagates the carry back so that, I think, x**8 = x**7+x**3+x**2+x+1
15:34:32 <ais523> «& "\x217"» looks wrong, you'd want the \x217 to be a single character but I think it parses as \x21 followed by 7, and even if it doesn't, the value is too large
15:34:51 <b_jonas> yes, sorry, it's "\217"
15:35:01 <b_jonas> I just typed it to IRC wrong
15:40:01 -!- APic has quit (Read error: Connection reset by peer).
15:45:26 -!- APic has joined.
15:50:04 -!- tech_exorcist has joined.
15:51:51 -!- hanif has quit (Ping timeout: 276 seconds).
15:54:28 <Koen_> hi
15:54:49 <Koen_> does someone has some good argument to defend the choice of calling python's functools.reduce reduce and not fold?
15:54:57 <Koen_> does someone have*
15:55:45 <Koen_> as far as I understand, functools.reduce really behaves like haskell's foldl or ocaml's fold_left, and really doesn't behave like pyspark.reduce
16:00:53 <Corbin> I don't have a good argument. I wonder why MLs used "fold" and not "kata", though? Since foldl really behaves like a katamorphism.
16:01:33 <Corbin> I figure that Python and PySpark both use "reduce" for the same reason as MapReduce.
16:02:02 <Koen_> yes, but that's my point
16:02:08 <Koen_> pyspark's reduce is exactly mapreduce's reduce
16:02:17 <Koen_> but python's reduce is not
16:03:01 <Koen_> if python was statically typed, it'd be obvious from the type signature - python's functools.reduce would have the same signature as a fold_left
16:03:49 <Koen_> whereas pyspark.reduce is much more constraining - the function must be (a, a) -> a, where a is the type of the elements in the list
16:04:30 <Koen_> pyspark.reduce is basically "pop two elements at random; apply the function to those two elements; push the two elements back into the list; repeat until the list has only one element"
16:04:32 <Corbin> Python also has sum(), which can be made to behave like a fold on lists.
16:05:21 <Corbin> Hm. So, on one hand, yes, it looks like one of those is a commutative operation and the other is not.
16:05:28 <b_jonas> Koen: I think the name "reduce" comes from smalltalk
16:05:38 <b_jonas> no wait
16:05:43 <b_jonas> in smalltalk it's called inject?
16:05:45 <b_jonas> I don't know
16:06:08 <b_jonas> fold, reduce, inject, any of those is fine. insert is a bit too much.
16:06:15 <Corbin> But OTOH we could find the data structure at fault; if we take a fold on a list, but change the list to a set, then the fold automatically has to commute, or else definitionally it's not folding a set.
16:06:59 <b_jonas> Corbin: don't you mean associate instead of commute?
16:08:15 <keegan> i think reduce is perhaps a more intuitive name to someone who isn't steeped in fp
16:09:17 <ais523> fwiw, I use the term "associative fold" for (a, a) → a style folds where the order of folding doesn't matter
16:09:46 <Corbin> b_jonas: I think that a fold on lists has to already be associative? I mean that the order of values within the container has been forgotten.
16:09:47 <ais523> does Perl have a fold as a builtin? I know it has a map and a filter
16:10:16 <b_jonas> ais523: no, not as a builtin. I think there's one in a module packed with it.
16:10:16 <ais523> Corbin: it doesn't, left-fold and right-fold exist as defined evaluation orders for folding and many practical folds care about the difference
16:10:27 <Koen_> Corbin: if it was associative, we wouldn't distinguish between fold_left and fold_right except for performance issues
16:10:33 <b_jonas> but it has a for loop and mutable lexical variables as builtins
16:10:44 <b_jonas> List::Util::reduce is the one from a module
16:11:00 <shachaf> Perl 6 has a strange fold builtin.
16:11:18 <shachaf> It takes an operator and uses the associativity of the operator (left or right) to decide the associativity of the fold.
16:11:26 <shachaf> I guess it's not called Perl 6 anymore.
16:11:29 <Corbin> ais523: Yes, but I'm talking about the underlying recursion scheme. Like, a list is a free monoid, which means that list concatenation is associative. Similarly, there's free rules for list folds when we are folding over a concatenation.
16:11:38 <b_jonas> I'm an imperative person, I just use for loops
16:12:08 <Corbin> Koen_: We *do* only care for performance reasons! Any "right" fold can be turned into a "left" fold by composing with a list reversal.
16:12:22 <Koen_> fair enough
16:12:43 <shachaf> Hmm, in Haskell list is not a free monoid.
16:13:01 -!- imode has joined.
16:13:02 <b_jonas> Corbin: I don't think folds on a list have to use an associative operator. we do fold lists with subtraction to get an alternating sum.
16:13:25 <ais523> Corbin: even if the list itself is associative, the operation you're folding over it might not be
16:13:26 <riv> why not ? :(
16:13:26 <b_jonas> but sure, most of the operators you fold with will be associative
16:14:01 <ais523> b_jonas: in my experience, the operators I fold with are often *not* associative
16:14:07 <b_jonas> oh, and we fold with floating point addition too
16:14:10 <ais523> in particular, the type of the left argument and right argument often differs
16:14:11 <shachaf> I think the thing Corbin is getting at is that a set isn't supposed to expose the order it stores elements in.
16:14:20 <b_jonas> ais523: aren't those reduces instead of folds?
16:14:22 <shachaf> An unordered pair is similar.
16:14:25 <ais523> so, if you fold with the wrong associativity you get type errors
16:14:27 <b_jonas> you could call them folds of course
16:14:36 <ais523> b_jonas: it's basically an iteration that gets to modify a mutable variable as it goes
16:14:44 <b_jonas> ais523: yep, a for loop
16:14:48 <ais523> except functional
16:14:52 <shachaf> If you have a canonical order on a type, you can just expose the elements in that order, but if you don't, you still want fold {a,b} = fold {b,a}
16:15:10 <Corbin> ais523, b_jonas: This is a good point. I'm curious whether those are genuine katamorphisms. This is a good example of when engineering and theory are using the same jargon for different purposes.
16:16:03 <shachaf> Sure.
16:16:09 <b_jonas> I guess evaluating a polynomial, with its coeffs in a list, is also a non-associative fold
16:16:16 <shachaf> Well, presumably you want "katamorphism" to mean an initial F-algebra's unique thingy.
16:16:32 <Corbin> Yeah. To distinguish from paramorphisms, at a minimum.
16:16:36 <b_jonas> `? catamorphism
16:16:38 <HackEso> A catamorphism is when you recurse too greedily and too deep.
16:16:45 <shachaf> Those names are all silly in my opinion.
16:16:53 <b_jonas> no, a catamorphism is when a cat becomes amorphous to flow throuhg a small gap
16:16:58 <ais523> shachaf: hmm… suppose you have a set of strings representing integers, and you want to calculate their sum
16:17:11 <ais523> you can map a parseInt function over the set, then associative-fold over it with addition
16:17:23 <ais523> or, you can left-fold a "parseInt then add" function over the set, starting at 0
16:18:00 <ais523> this produces the same result regardless of the order the set is read in, *but* the fold operation isn't associative, which is why you have to left-fold (you would get a type error instead with any other ordering)
16:18:18 <b_jonas> nah, the sum is already printed at the bottom of the recipt, you don't have to add themup
16:18:53 <shachaf> Hmm, there are multiple things people mean by "fold", even in a concrete setting like Haskell.
16:19:23 <ais523> b_jonas: not even if you're implementing the receipt printer?
16:19:24 <shachaf> In Haskell it either means the structural thing for a type, like foldr for a list, or the thing from Data.Foldable, which is always about "sequence"-style folding.
16:19:48 <b_jonas> shachaf: yes, there's the non-associative folds for lists, and there's a typeclass for trees that you can fold over in a way that had better been associative
16:19:56 <b_jonas> yes, those
16:20:02 <b_jonas> ais523: then you don't have strings
16:20:12 <ais523> <b_jonas> no, a catamorphism is when a cat becomes amorphous to flow throuhg a small gap ← https://nhqdb.alt.org/?1404
16:20:37 <shachaf> I like kittens.
16:20:38 <b_jonas> ais523: besides, the sum is more authoritive then the details above, because the total is required to be printed there for tax purposes, the itemized bill is an optional bonus
16:20:55 <ais523> b_jonas: I don't think you can necessarily assume that the receipt printer isn't storing the prices as strings
16:21:02 <b_jonas> lol
16:21:14 <ais523> this sort of software is famous for being badly programmed
16:21:27 <shachaf> Most software is famous for being badly programmed these days.
16:21:29 <b_jonas> ais523: strings? those recipt printers existed way before strings
16:21:52 <ais523> that said, in one supermarket near me, the software automatically regroups the items you've purchased in order to take the least possible advantage from special offers
16:22:00 <ais523> (which is the reverse of what the customer would want, but useful for the store)
16:22:27 -!- oerjan has joined.
16:22:27 <keegan> damn
16:22:40 <b_jonas> the first ones I saw could only print numerals and a few symbols from their type loop, and then for the header you'd insert a separate stamp template that it stamps on
16:22:55 <b_jonas> ais523: hehe, that's odd
16:23:01 -!- Trieste has joined.
16:23:20 <b_jonas> the ones I see here usually preserve the order that the items were entered
16:23:23 <ais523> this means that sometimes I would put a purchase through as two separate transactions
16:23:35 <b_jonas> even the all-digital ones that print a whole page together at the end of the transaction
16:23:36 <ais523> in order to get a lower price
16:24:09 <shachaf> ais523: This reminds me of banks reordering transactions from largest to smallest to maximize overdraft fees.
16:24:12 <ais523> (I explained to the cashier that the tills were adding up the bills incorrectly unless I did that)
16:24:15 <shachaf> Which I think US banks sometimes do, at least.
16:24:30 <b_jonas> shachaf: wow
16:24:53 <ais523> shachaf: I've been told (but don't know from personal experience) that some credit cards charge interest based on the maximum amount of debt you've been in since the last time you weren't in debt
16:25:00 -!- APic has quit (Read error: Connection reset by peer).
16:25:04 <ais523> so that partially paying off a debt does nothing and you have to clear it to avoid paying interest
16:25:09 <Corbin> Big USA banks are terrible; use credit unions when possible.
16:25:11 <ais523> I'm not sure whether to believe this or not
16:25:31 -!- APic has joined.
16:25:59 <b_jonas> ais523: yes, I think mine does that, but not quite phrased that way: it collects all the payments for a month, and you can only clear the debt off after the month ends, even if you actually transfer the money in advance
16:26:25 <b_jonas> (the offset of when each month ends depends on the type of the card)
16:26:31 <ais523> at least in the UK, I think credit card companies aren't allowed to charge you interest if you clear the debt immediately
16:26:52 <b_jonas> ais523: yes, they don't charge me interest if I pay within a given period after the month ends
16:27:15 <shachaf> Hmm, I think the methods US credit cards can use to calculate interest are very regulated now.
16:27:21 <b_jonas> they do still charge a fixed yearly fee for having a card
16:28:02 <ais523> oh, here they mostly don't charge fees for having a card, basically because their competitors don't
16:28:25 <ais523> and they can't do it stealthily because one of them got sued really hard for not making the existence of a charge clear
16:28:30 <b_jonas> ais523: I think there exist credit cards here that don't charge a fixed fee
16:29:07 <shachaf> One thing that I think is true is, if you have no credit card balance, you get about a month of no interest to pay a balance before it starts accruing interest. But once you're in the interest state, new purchases start accruing interest immediately, until you back down to $0 for a while.
16:29:12 <shachaf> I don't know the details.
16:30:12 <shachaf> In the US credit card companies compete for customers by paying them all sorts of money in various forms. I think that's much less true elsewhere.
16:30:37 <shachaf> It must be a very profitable business, presumably partly at the cost of merchant fees and partly at the cost of people paying a lot of interest.
16:31:36 <b_jonas> shachaf: they advertise that they pay you money, but in many of the cases there's small print that means they pay very little money or only in very specific conditions
16:32:22 <b_jonas> or they're credit cards rebranded by a particular airline or supermarket chain, in which case they pay you money if you buy in their brand of supermarket
16:32:39 <b_jonas> or something like this, I haven't delved much in the details
16:33:05 <b_jonas> they also spend a lot on marketing, they send agents everywhere who try to sign you up for free credit cards
16:33:55 <b_jonas> the ones that ask "excuse me Sir, do you work in Hungary?" in supermarket are generally trying to sell one of those, but there are also other opening lines
16:35:35 <b_jonas> I admit it's a good opening question, it distinguishes students with no income from people who probably qualify for a credit card
16:37:03 <ais523> b_jonas: is the "in Hungary" to make the question less rude by making it ostensibly about something else?
16:38:39 <b_jonas> ais523: I'm not sure. I thought it's because it's more complicated for people to apply for those credit cards if they have an income abroad. Yes, I know there are supposed to be EU laws about this sort of thing, but EU principles and practice often doesn't seem to match
16:39:04 <b_jonas> but yes, it might also be because it sounds less rude
16:39:35 <b_jonas> or more easy to understand that they're not trying to hire you for a seasonal job or something
16:40:20 <ais523> I assume that there are few people shopping in Hungary who actually work outside Hungary, so it probably wouldn't be worth asking about unless you want to reassure people about the intentions behind your question
16:40:43 <b_jonas> probably not many who live in Budapest, yes
16:41:08 <b_jonas> (there would be more close to the Austrian border)
16:43:20 -!- tech_exorcist_ has joined.
16:43:24 <shachaf> When people ask me questions about being local, it's usually related to voting for things.
16:43:44 -!- tech_exorcist has quit (Quit: Goodbye).
16:43:49 -!- tech_exorcist_ has quit (Remote host closed the connection).
16:43:55 <b_jonas> hmm, I don't remember what opening questions those people have, they usually have party color decorations
16:43:57 <ais523> I'm not sure I've ever been asked a question about being local, in contexts where people knew my physical location
16:44:05 -!- tech_exorcist has joined.
16:44:14 <b_jonas> oh, I have been asked if I'm local
16:44:19 <b_jonas> people ask that when they try to ask for directions
16:44:33 <ais523> such questions are sometimes perceived as racist, because they tend to be disproportionately asked to ethnic minorities (for an ethnic majority people just assume they're local, generally)
16:45:09 -!- chiselfuse has quit (Ping timeout: 276 seconds).
16:45:43 <b_jonas> no, backwards because they don't even ask people who they don't think are local, because there's usually a choice of other people to try to ask directions from
16:46:01 <b_jonas> mind you, you can still count that as racist if you want
16:46:22 <b_jonas> but they don't need to ask that question for that
16:46:29 -!- chiselfuse has joined.
16:46:54 <shachaf> They often ask "are you a California voter?". I think the goal is to get signatures from voters in order to get things like ballot proposals, which require some number of signatures.
16:47:06 <shachaf> I mean propositions.
16:47:15 <b_jonas> possible
16:47:50 -!- immibis has quit (Remote host closed the connection).
16:48:02 <b_jonas> the questions I remember having been asked are "have you voted yet?" (on the day of the election), and "have you heard of <such and such> yet?"
16:49:21 -!- immibis has joined.
16:49:48 <ais523> the UK has really strict rules about campaigning
16:50:38 <ais523> in the run-up to the election you have to give a platform to every party if you give a platform to one (with various rules about weighting major versus minor parties), and as voting opens you can't publicly do anything related to campaigning at all
16:51:01 <ais523> (you can still talk to friends privately about the election, but can't, e.g., talk to random people on the street about your party preferences)
16:51:30 <ais523> news reports on the day of an election, while voting is open, can be pretty funny because it's obviously a major story that they need to cover, and yet they aren't allowed to say anything substantive at all
16:51:37 <keegan> lol
16:51:50 <ais523> so the stories are along the lines of "here's the most interesting dog we saw outside a polling station"
16:52:02 <ais523> even from normally serious news organisations
16:52:26 <keegan> we're having a recall election for governor
16:52:35 <keegan> it's structured in a strange way
16:53:10 <b_jonas> ais523: I think when voting starts (and shortly before) they are no longer allowed to solicit strangers to vote on a specific party, but they can still solicit people to go voting if they don't specify who for
16:53:11 <fizzie> ais523: At least the HMRC self assessment system optimizes the foreign tax credit relief deduction order in the way that maximizes the benefit from it. (Then it allows you to reorder if you wish.)
16:53:34 <keegan> question 1 is whether to get rid of the current governor (yes/no); question 2 is who the replacement should be (from a list of 46 candidates, not including the current governor)
16:53:41 <fizzie> They also round to integer £s always in the direction that's more advantageous to the taxpayer.
16:53:57 <keegan> so it's quite possible that the current governor will be replaced by someone who got far fewer votes than he did
16:54:34 <keegan> and the governor says we should leave question 2 blank
16:54:41 <b_jonas> as for news stories, they usually say things like "in <this small village>, an old <lady/man> got sick in the voting room so voting was suspended for 5 minutes. in <this small village> the seal of the voting box got damaged, so voting got suspended for 20 minutes until they bought a new certified sealed box."
16:54:53 <keegan> even though you are allowed to vote "no" and still vote question 2
16:54:59 <ais523> keegan: that is a bad idea if you like the current governor, it'll just guarantee that you'll get someone who his supporters dislike
16:55:30 <b_jonas> also news about how big queues are in certain polling stations, usually the stations where people who vote from a town far from their home (but still within Hungary) are sent to vote
16:56:23 <keegan> the last time we had one of these, the lieutenant governor ran as a replacement and got second place, and i guess they think that having him on the ballot boosted support for "yes"
16:56:47 <keegan> so this time there are no credible replacements from the governor's own party and they are not endorsing anyone for question 2
16:56:55 <ais523> keegan: it may be a good idea for the governor himself, but not for the voters
16:57:22 <keegan> also there's an interpretation of the state constitution where we shouldn't even have question 2 and the lt gov should automatically become governor if the governor is recalled
16:57:47 <keegan> (since that's what happens if the governor dies or resigns, and the constitution says that a recall should include an election for a replacement only "if appropriate")
16:57:59 <keegan> so maybe if he loses they'll challenge the vote
16:58:03 <keegan> it's all very strange and californian
16:58:09 <keegan> this state really suffers from an excess of democracy
17:00:05 <oerjan> <b_jonas> people ask that when they try to ask for directions <-- hm, in norwegian there's a different idiom for pre-asking that, "er du kjent her", which means more or less "to you know this place" with no necessary implication of whether you live there
17:00:26 <b_jonas> ais523: re "sometimes I would put a purchase through as two separate transactions" => are the rules such that you have to solve hard computational problems to optimize it?
17:00:53 <ais523> b_jonas: fortunately no, I think this is O(n log n) with the sort of special offers that were available
17:01:33 <keegan> also if replaced the replacement will serve for only one year because we are due for a normal gubernatorial election next year
17:02:35 <keegan> and the likely replacement is a far right talk radio guy who has no chance in a normal election
17:04:35 <keegan> since it is a very left leaning state
17:06:31 <b_jonas> hmm, I could try to make a third dairy-themed programming task from that. you want to follow your grandmother's recipe to the letter, and it calls for $n grams of kefir. the supermarket sells cups of kefir in several different sizes, with weights @a gram each. how much of each type do you buy?
17:07:04 -!- hanif has joined.
17:14:59 <oerjan> keegan: i saw scott alexander write about that mess, supposedly all the democratic candidates were quite terrible because of that strategy of no one important running. this sounds to me like it would really have benefitted from transferrable votes
17:15:31 <oerjan> at least they could then maybe get one of the less horrible republicans
17:16:46 <int-e> like biden? oh wait, he's horrible
17:16:57 <oerjan> int-e: he's not republican hth
17:17:02 <int-e> ...
17:19:44 <oerjan> also according to scott aaronson, he's better than a rutabaga, so still beats trump
17:20:34 <oerjan> but that was a different election and you'll just have to watch the mess
17:20:54 <int-e> He's still somebody who would fit right into the Republican party.
17:21:02 <int-e> Which was the point.
17:21:40 <oerjan> int-e: i didn't know that. but i haven't really paid attention to him.
17:23:03 <oerjan> (also technically i still don't know that)
17:23:08 <int-e> He may have some radical ideas regarding gun control that would feel out of place. That's the only thing I can currently think of... eh I'm no expert either.
17:23:18 <keegan> trump passed more gun control than obama
17:23:25 <int-e> I should probably figure out the least evil for Germany.
17:23:37 <keegan> "I like to take the guns early. Take the guns first, go through due process second." -- Donald Trump
17:23:54 <keegan> of course don't mention that quote to any of the trump worshipping gun nuts
17:24:10 <oerjan> int-e: i have this thought lately - whenever you choose the lesser evil, someone has just played good cop/bad cop on you
17:25:02 <keegan> indeed
17:25:25 <keegan> the ruling class are all friends behind the scenes, regardless of party
17:25:28 <int-e> Oh sure, elections are a carefully managed illusion of having /some/ impact on the political process.
17:25:30 <keegan> and big corporations donate to both
17:25:42 <int-e> It's hard not to be cynical about it.
17:25:59 <keegan> meanwhile the most destructive and evil parts of american society (the military-industrial complex, mass incarceration, the drug war) have essentially bipartisan agreement
17:26:13 <keegan> although the last one is falling apart a bit. but our prez still thinks legalizing weed is too dangerous
17:27:37 <keegan> both parties kept us in afghanistan for 20 years just like both parties kept us in vietnam for about as long (if you count various covert and "assistance" operations going right back to the fall of the french colonial government)
17:28:04 <keegan> i think people pay way too much attention to elections
17:28:33 <keegan> like, you might as well vote because it's easy and gives you a little influence for free. but if you consider yourself "politically engaged" and yet most of that energy goes into arguing about who to vote for, then you're doing it wrong
17:28:49 <keegan> especially arguing about who to vote for at the national level
17:29:09 <keegan> local politics has so much more direct impact on people's lives, and is also a lot easier for an individual to influence
17:33:05 <keegan> i'm so exhausted from electoral politics and being told that every election is an existential battle for the future and yet no matter who wins nothing really changes
17:34:24 <keegan> even right now with democrats in "control" of the white house, the senate and the house, they can't really get anything done
17:34:48 <keegan> and so if climate change or the rise of fascism really is an exstiential risk then the solution to that problem must lie outside electoral politics
17:35:22 <keegan> but people shy away from this because their existential risk rhetoric is only intended to scare you into voting blue no matter who
17:35:51 <int-e> "i'm so exhausted" -- this means it's working as designed :P
17:39:48 <keegan> yeah
17:40:00 -!- APic has quit (Read error: Connection reset by peer).
17:40:24 -!- hanif has quit (Ping timeout: 276 seconds).
17:49:30 -!- hanif has joined.
17:56:39 <hanif> oerjan: '"er du kjent her"' > curious what does this mean literally? 'are you known here' doesn't make sense
17:57:07 -!- APic has joined.
18:12:07 -!- Sgeo has joined.
18:12:42 <oerjan> hanif: that is the literal word-for-word translation, but "kjent" works weirdly, as if it's ambiguous whether it's active or passive
18:13:56 <oerjan> "kjent mann" - a man who is known, "kjentmann" - a man who knows (the area)
18:15:21 <hanif> hm
18:16:11 <int-e> Hmm, english doesn't have a "know"-derived word for someone knowledgable, does it...
18:16:44 <int-e> . o O ( A knowledger. <-- well we can always try to make something up )
18:16:54 <oerjan> https://en.wiktionary.org/wiki/kjent#Norwegian_Bokmål has both meanings
18:17:05 <int-e> "knowledge" is already a crutch though.
18:17:19 <imode> int-e: knower.
18:17:24 <imode> I guess.
18:17:44 <int-e> German has "bekannt" for "known", "Kenner" for someone who knows.
18:18:00 <imode> it doesn't speak to the quantity of knowledge but knower is pretty close.
18:18:13 <int-e> imode: Yes, that makes more sense grammatically. It's still not a word, unfortunately.
18:18:22 <oerjan> "kjenner" is also norwegian, but it's a noun while "kjent" is an adjective (or participle)
18:18:25 <int-e> (At least not one I'm aware of.)
18:18:34 <imode> huh?
18:18:36 <imode> knower is a word.
18:18:57 <oerjan> "bekjent" exists and means "acquaintance" :P
18:18:59 <int-e> Never heard it.
18:19:19 <int-e> oerjan: Oh we have that too, "Bekannter".
18:19:21 <imode> considering you were asking for it, I'm not surprised. :P
18:19:32 <int-e> oerjan: Just with a bit more grammar, I guess.
18:19:35 <imode> if you didn't know it, you wouldn't ask the question!
18:20:40 <oerjan> also in other cases en:know = no:vite (~de:wissen)
18:20:49 <imode> it's apparently an agent noun of `know`. interesting, I wonder what other kinds of agent nouns exist for common verbs that don't "point" trivially to them.
18:20:59 <int-e> imode: I've found this, https://www.urbandictionary.com/define.php?term=knower ...no dictionary entries.
18:21:04 <imode> huh?
18:21:15 <imode> https://www.thefreedictionary.com/knower
18:21:25 <imode> collins english dictionary.
18:21:40 <imode> it's also apparently a music duo.
18:22:20 <hanif> and in wiktionary https://en.wiktionary.org/wiki/knower
18:22:44 <imode> does an agent noun exist for every verb, then?
18:22:57 <imode> seems grammatically correct to just add "er" to every verb.
18:23:07 <imode> or "or".
18:23:15 <oerjan> <int-e> Never heard it. <-- it's weird how in english words that make perfect sense can sometimes not exist for no good reason.
18:23:19 <hanif> mayve just transitive verbs?
18:23:29 <imode> having trouble coming up with a counterexample.
18:24:15 <imode> huh.
18:24:26 <imode> yeah you could form an agent noun out of any verb.
18:24:30 <imode> that's neat.
18:26:41 <hanif> snow?
18:26:56 <int-e> 'snow business of yours
18:27:05 <oerjan> rain too
18:27:08 <imode> snower. rainer.
18:27:12 <hanif> although wiktionary has an entry for snower, apparently it's for another verb sense i wasn't familiar with
18:27:29 <imode> apparently snower is a DBZ character so I defer to toriyama.
18:27:49 <imode> https://en.wiktionary.org/wiki/snower
18:28:10 <imode> https://en.wiktionary.org/wiki/rainer <-- oh this one actually makes sense but I've never used it.. I think I might.
18:28:19 <imode> a showerhead is technically a rainer!
18:28:43 <hanif> a cloud is technically a rainer
18:28:55 <imode> they do a damn good job.
18:29:43 <int-e> anyway, know-it-all or expert are more common terms :P
18:30:42 <imode> those kind of denote the quantity of knowledge/status of the user more than "this dude knows, he is a knower".
18:30:42 <oerjan> curiously, i learned that in ancient greek, the verb for snow (χιονίζω) could be used actively - referring to a god
18:32:51 <int-e> snow is rather powerful
18:34:02 <int-e> Have I ever mentioned http://www.snowbynight.com/pages/ch1/pg1.php I wonder... (it's a story comic, more romantic than funny)
18:34:43 <oerjan> int-e: the snow wasn't the god, the god was throwing the snow
18:35:49 <int-e> avalanches are pretty impressive too
18:35:56 <hanif> i too have thrown snow :P
18:36:34 <int-e> don't get me wrong, it's cool
18:36:56 <int-e> it's just pretty common to associate forces of nature with gods :)
18:40:22 <oerjan> `learn hanif may be a god, or maybe they're just snowing us.
18:40:26 <HackEso> Learned 'hanif': hanif may be a god, or maybe they're just snowing us.
18:41:01 <oerjan> i got a pun for the wisdom, it's all good.
18:42:43 <hanif> ironic also because 'ḥanif' (in arabic) means one inclined to monotheism
18:43:12 <oerjan> tricky.
18:45:25 -!- ais523 has quit (Quit: quit).
18:50:05 -!- APic has quit (Read error: Connection reset by peer).
18:52:17 <shachaf> `? oerjan
18:52:18 <HackEso> Your omnidryad saddle principal ideal "Darth Ook" oerjan the shifty eldrazi grinch is a punctual expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never remember the word "amortized" so he put it here for convenience. His arkup-nemesis is mediawiki's default diff. He twice punned without noticing it.
18:52:25 <shachaf> That is way too many modifiers.
18:53:04 <oerjan> istr you added most of them hth
18:53:44 <oerjan> then again, i'm perpetually confused.
18:55:56 -!- APic has joined.
18:55:57 <int-e> . o O ( `slwd oerjan//s/ / highly adjectivated/ )
18:56:56 -!- Koen_ has quit (Remote host closed the connection).
18:58:55 <int-e> is there a know-worthy non-default diff in wikipedia?
18:59:42 -!- Koen_ has joined.
19:07:00 <oerjan> int-e: i use wikEdDiff
19:09:27 <oerjan> which is the only one i know that is listed in preferences
19:10:08 <oerjan> and is usually far clearer than the default, but sometimes locks up on big changes
19:11:46 <oerjan> (i mean, the default cannot even handle insertion of a blank line before a paragraph with a few changes sensibly...)
19:15:00 -!- APic has quit (Read error: Connection reset by peer).
19:15:18 -!- hanif has quit (Ping timeout: 276 seconds).
19:15:19 <oerjan> hm, i vaguely recall wikEdDiff or something similar _is_ the default if you use the visual editor rather than editing markup
19:21:40 -!- hanif has joined.
19:26:15 -!- hanif has quit (Client Quit).
19:32:13 -!- APic has joined.
19:49:36 <arseniiv> so visual editor has some worth after all
19:53:55 <arseniiv> int-e: oerjan: I’m still confused why there isn’t a blame feature (like in “git blame”) for at least MediaWiki (but I think many other popular wiki engines lack that too?)
19:54:48 <int-e> arseniiv: it may actually have to do with the sheer amount of processing that would require; it is a website after all
19:55:14 <int-e> but it's probably also very messy... because edits are often very small
19:55:33 <arseniiv> searching for who made something foolish in an article is usually a no go for me. I tried it several times and I think every time I confused the author of the change with someone right behind or after
19:55:47 <int-e> ('blame' needs diffs through thew entire history at once)
19:56:12 <int-e> arseniiv: bisection works well enough, it's just tedious
19:56:24 <arseniiv> very tedious!
19:56:42 <arseniiv> like, it still could be automated to some degree
19:57:04 <int-e> I wouldn't be surprised if there were browser add-ons for that
19:57:32 <int-e> but I'm a very casual wiki history investigator
19:57:42 <int-e> I do it maybe once every two months
19:58:32 <arseniiv> though couldn’t a source be tagged with which segment is by whom (predicated on that the diff used is a wise one)
19:59:20 <arseniiv> I almost never do that at all, but each time curiosity wins… ugh
20:02:30 <arseniiv> there could be an option to erase all tags when an article gets a stable version checked by someone omnireadent
20:02:59 <arseniiv> so there wouldn’t be too much garbage because of blame-tagging
20:07:47 -!- Everything has joined.
20:09:01 -!- arseniiv has quit (Quit: gone too far).
20:16:42 <oerjan> <arseniiv> so visual editor has some worth after all <-- you can enable wikEdDiff separately in the preferences
20:17:09 -!- riv has quit (Quit: Leaving).
20:20:05 -!- oerjan has quit (Quit: Nite).
20:38:10 -!- arseniiv has joined.
20:39:37 -!- Koen_ has quit (Quit: Leaving...).
20:41:48 <int-e> fungot: what's a good chunbk size for file transfers these days?
20:41:49 <fungot> int-e: but you get what i was worrying whether or not that qualifies as " invent"
20:52:44 -!- Lord_of_Life_ has joined.
20:54:40 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
20:55:20 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:58:23 <fizzie> fungot: Can't you just once answer a question?
20:58:24 <fungot> fizzie: ( a b)) work and i'm not particularly keen on.
21:01:28 <int-e> fungot: Please respond with gibberish. TIA.
21:01:28 <fungot> int-e: no amount of my expenditure... being a pita. i need to beat fnord 3. i just am pulling an fnord
21:01:53 <int-e> <3 lowering standards
21:04:07 <fizzie> I wonder if fnord 3 is a game.
21:05:13 <fizzie> It would seem to have been Onimusha 3.
21:05:25 <int-e> . o O ( It's the first in a series. The title was chosen in anticipation of the eventual prequels. )
21:05:48 <fizzie> From #scheme, which is usually the most on-topic of the three channels the `irc` style is composed of.
21:05:59 <int-e> Let's pretend I wrote that before you matched it with the logs.
22:46:40 -!- arseniiv has quit (Ping timeout: 240 seconds).
23:10:36 -!- tech_exorcist has quit (Quit: Goodbye).
23:17:49 <b_jonas> int-e: can you be more specific? what chunk? chunk in an IP packet? chunk in a TCP stream or HTTP query? file on a removable storage device?
23:18:04 <shachaf> Man, the Glushkov construction for NFAs is so good.
23:18:50 -!- src has quit (Quit: Leaving).
23:19:03 -!- src has joined.
23:22:43 <int-e> b_jonas: it's not really interesting
23:26:59 <b_jonas> tbf I'm asking fungot just as stupid questions sometimes
23:26:59 <fungot> b_jonas: so i have to make the sexpr encoder might have been voodoo code for protecting the software you've written? i don't know; i've never thought about how to make an image set... doing it manually but that doesn't necessarily minimize operations though
23:28:29 <fizzie> If a bot does something "manually", isn't it still automated in a sense?
23:31:41 <b_jonas> fizzie: https://xkcd.com/2173/
2021-09-06
00:03:41 <esolangs> [[User:Xorol]] https://esolangs.org/w/index.php?diff=87923&oldid=86296 * Xorol * (+210) Added some info
01:26:43 <nakilon> maybe then he'e not automated but manned
02:46:57 <esolangs> [[Grue]] https://esolangs.org/w/index.php?diff=87924&oldid=87912 * PixelatedStarfish * (+28) /* Interpreter */
02:47:07 -!- Guest65 has joined.
02:47:13 -!- Guest65 has left.
02:48:48 <esolangs> [[Trivial brainfuck substitution]] https://esolangs.org/w/index.php?diff=87925&oldid=83915 * PixelatedStarfish * (-53) /* Syntax */
03:01:24 <nakilon> hah, few months ago I said "I should made a universal translator between all those brainfuck substitutions"
03:01:36 <nakilon> and someone already made it in that wiki page
03:02:26 <nakilon> oh wait, nope, it's just plain bf interpreter
03:02:55 <nakilon> I imagine a translator could go fetch the wiki pate,
03:03:13 <nakilon> *... page, find the instructions table and replace them automatically
04:10:05 -!- chiselfuse has quit (Remote host closed the connection).
04:10:23 -!- chiselfuse has joined.
04:11:01 -!- src has quit (Ping timeout: 252 seconds).
04:14:57 -!- APic has quit (Read error: Connection reset by peer).
04:15:23 -!- APic has joined.
04:16:07 -!- velik has quit (Ping timeout: 240 seconds).
04:54:57 -!- APic has quit (Read error: Connection reset by peer).
05:00:16 -!- APic has joined.
05:59:57 -!- APic has quit (Read error: Connection reset by peer).
06:00:14 -!- APic has joined.
06:04:45 -!- velik has joined.
06:09:57 -!- APic has quit (Read error: Connection reset by peer).
06:10:15 -!- APic has joined.
06:49:29 <b_jonas> nakilon: but nobody uses the substitutions other than brainfuck, Ook!, and the two or three that encode brainfuck with repetitions of one byte
06:52:39 <nakilon> I thought Chromium OS is something good, because there is no way to install anything in it, you only use docker, so it's so safe...
06:53:47 <nakilon> until I launched a container from another container mounting the docker socket in both, and server just stopped responding, disks were spinning like mad and even serial console didn't work
06:54:32 <nakilon> this stupid container overrated container thing
06:55:42 <nakilon> yeah I know that thing that I'm trying to build are not what people are supposed to try to build but I was told it's all so reliable...
06:55:52 <nakilon> *things
07:31:44 -!- ais523 has joined.
08:05:49 <nakilon> ok docker sockets were not a reason of hanging; it hanged again _-- maybe it's what happens to Chromium OS when it's out of RAM or idk, it just dies
08:06:37 -!- hendursa1 has joined.
08:09:27 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:10:48 -!- ais523 has quit (Remote host closed the connection).
08:18:35 -!- velik has quit (Ping timeout: 252 seconds).
08:38:41 <nakilon> looks like the linux thing called "oom killer" kills a process but the system goes insane anyway and does not recover
08:39:13 -!- Sgeo has quit (Read error: Connection reset by peer).
08:43:27 -!- wib_jonas has joined.
08:44:10 -!- imode has quit (Ping timeout: 240 seconds).
08:44:12 <wib_jonas> does anyone happen to know where I can find human-readable info on how to interpret a robots.txt file?
08:49:00 <nakilon> IIRC it's barely standardized
08:50:07 <wib_jonas> yeah, https://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1 has some info but not muc
08:56:39 -!- velik has joined.
09:01:01 <nakilon> lol I did "echo 2 > /proc/sys/vm/overcommit_memory" like this guy proposed https://serverfault.com/a/142003/67097 and now I can't spawn any process even while it's 500 mb of free ram
09:03:28 <nakilon> and now I can't even revert it because sudo sh -c "echo 1 >..." emits -bash: fork: Cannot allocate memory
09:04:10 <wib_jonas> nakilon: so use the kill builtin
09:04:17 <wib_jonas> that is why kill is a builtin command in bash
09:04:24 <nakilon> kill what?
09:05:15 <wib_jonas> yeah, that's the hard part
09:05:28 <nakilon> $ ps
09:05:28 <nakilon> -bash: fork: Cannot allocate memory
09:05:33 <wib_jonas> yeah
09:05:40 <wib_jonas> might be easier to reboot in practice
09:05:43 <nakilon> and this was just before that
09:05:44 <nakilon> $ free -h
09:05:44 <nakilon> total used free shared buff/cache available
09:05:44 <nakilon> Mem: 982Mi 290Mi 382Mi 1.0Mi 308Mi 544Mi
09:07:02 <nakilon> Chromium OS is just broken crap; I guess Google does not care about the scenarios when somethings runs out of memory -- they just stop the machine and spin up a bigger one, and probably expect me to do the same
09:07:11 <nakilon> on every single task
09:08:02 <nakilon> gotta switch to ubuntu
09:17:19 <fizzie> Does bash have a `readlink`-capable builtin? I imagine you could make a poor man's ps out of looking at /proc/pid/exe that way. Hmm, apparently not.
09:18:10 -!- velik has quit (Ping timeout: 240 seconds).
09:21:43 <fizzie> `` for p in /proc/[0-9]*/stat; do read -d'\t' pid prog rest <$p; echo $pid $prog; done
09:21:44 <HackEso> 10 (writeback) \ 11 (kcompactd0) \ 12 (crypto) \ 13 (kintegrityd) \ 14 (bioset) \ 15 (kblockd) \ 16 (kworker/0:1) \ 18 (kswapd0) \ 1 (init) \ 2 (kthreadd) \ 3 (ksoftirqd/0) \ 44 (bioset) \ 45 (kworker/0:1H) \ 48 (cat) \ 49 (`) \ 4 (kworker/0:0) \ 50 (`) \ 51 (`) \ 5 (kworker/0:0H) \ 6 (kworker/u2:0) \ 7 (lru-add-drain) \ 8 (kdevtmpfs) \ 9 (oom_reaper)
09:21:55 <fizzie> I feel like that probably maybe needs no processes.
09:23:22 -!- velik has joined.
09:24:52 -!- velik has quit (Remote host closed the connection).
09:26:31 <wib_jonas> fizzie: I think that will still fork, even if not exec
09:26:33 <wib_jonas> but I'm not sure
09:42:39 <fizzie> Hmm, well, from https://0x0.st/-wu8.txt I think not.
09:44:53 <fizzie> Interestingly, repeating `readlink /proc/self` on my work laptop increments the resulting number by pretty much exactly 13 for each iteration, which makes me think there's some sort of an extra per-command or per-prompt hook set up somewhere.
09:47:34 -!- ais523 has joined.
09:47:36 <wib_jonas> fizzie: cat /proc/*/forks gives the number of processes/threads created total on the system since boot, I think
09:47:44 <wib_jonas> or at least the user-space ones\
09:48:20 <wib_jonas> you can use taht to detect if anything has forked, which is useful to iterate through all processes eg. in /proc and be sure that you haven't missed any, eg. to kill all processes by a user
09:48:25 <ais523> hmm, does that count both fork and clone? there are two ways to create processes nowadays
09:48:31 <ais523> (I think Linux doesn't have a spawn in kernel-space)
09:48:32 <wib_jonas> ais523: yes, it counts clone
09:48:39 <wib_jonas> I checked that once in the kernel source code
09:48:45 <wib_jonas> of course things may have changed since\
09:48:51 <wib_jonas> let me look up the exact name of the file
09:51:20 <fizzie> There's a "processes N" field in /proc/stat at least.
09:54:06 <wib_jonas> yes, the filename is /proc/stat
09:54:09 <fizzie> So I guess https://0x0.st/-wuT.txt is more direct evidence of not creating new processes.
09:54:13 <wib_jonas> you were faster than it took me to look it up
09:54:36 <wib_jonas> (it was among my emails, but was spoilered so a plain text search didn't find it easily)
09:54:48 <wib_jonas> it's not "forks"
09:55:02 <wib_jonas> yep
09:55:13 <wib_jonas> and it's a 64-bit counter, so it can't overflow either
09:56:28 <wib_jonas> mostly though I think if my computer hangs swapping and can't start a new process, I just reboot it
09:56:28 <fizzie> For some reason PIDs that are >= 2^16 just feel weird.
09:57:01 <wib_jonas> (possibly reboot with more and more rescue options if it happens right after boot with no chance to interrupt)
09:58:26 <wib_jonas> fizzie: it feels good, it means we finally managed to shed another piece of historical accident that held us back. there's still a control somewhere in /sys or /proc to limit pids if you don't like it though.
10:14:36 -!- wib_jonas has quit (Quit: Client closed).
10:20:56 -!- wib_jonas has joined.
10:41:24 -!- riv has joined.
10:45:01 -!- APic has quit (Read error: Connection reset by peer).
10:45:20 -!- APic has joined.
10:58:50 -!- tech_exorcist has joined.
11:15:37 -!- wib_jonas has quit (Quit: Client closed).
11:26:51 -!- dyeplexer has joined.
11:29:42 -!- tech_exorcist has quit (Remote host closed the connection).
11:32:01 -!- tech_exorcist has joined.
12:04:23 <nakilon> interesting, 2FA not via SMS but via phone call that you don't need to accept
12:04:33 <nakilon> you just type the last 4 digits of the number
12:04:53 <nakilon> so they own 10000 phone numbers just for that
12:09:37 -!- arseniiv has joined.
12:40:36 <ais523> maybe they're just spoofing the number?
12:42:35 -!- dyeplexer has quit (Ping timeout: 252 seconds).
12:44:57 -!- dyeplexer has joined.
13:41:59 -!- arseniiv has quit (Ping timeout: 252 seconds).
13:53:19 -!- arseniiv has joined.
14:00:04 -!- Everything has quit (Ping timeout: 252 seconds).
14:02:02 -!- Everything has joined.
14:40:30 <fizzie> "DPI SET to 67 x 34 (wanted 96 x 96)" is what I get when attaching to an xpra session, wonder what's up with that.
14:41:51 <fizzie> Tried to do `--dpi=96` on both `xpra start` on the remote side and `xpra attach` on the local side, but still.
14:55:09 -!- riv has quit (Quit: Leaving).
15:01:14 -!- wib_jonas has joined.
15:01:39 <wib_jonas> nakilon: well duh, it's easy to own a lot of phone numbers if you release a popular app that people will install on their smartphones
15:02:02 <wib_jonas> especially since many of those people will have their phones always on and will install just about anything
15:02:27 -!- riv has joined.
15:03:29 <wib_jonas> of course any other app on the same smartphone that has access to your call logs could spoof that part of the authentication as well
15:03:42 -!- src has joined.
15:04:05 -!- riv has quit (Client Quit).
15:05:15 <wib_jonas> it doesn't even have to be that same app, it could be another app that's a game with shiny colored balls and fewer ads than usual that they control that gives them the phone numbers
15:05:20 -!- riv has joined.
15:05:36 -!- riv has quit (Remote host closed the connection).
15:05:53 -!- riv has joined.
15:13:53 -!- imode has joined.
15:17:34 -!- hendursa1 has quit (Quit: hendursa1).
15:18:16 -!- hendursaga has joined.
15:26:34 -!- chiselfuse has quit (Remote host closed the connection).
15:27:40 -!- callforjudgement has joined.
15:27:40 -!- ais523 has quit (Ping timeout: 250 seconds).
15:27:57 -!- callforjudgement has quit (Client Quit).
15:28:24 -!- chiselfuse has joined.
15:56:44 -!- wib_jonas has quit (Quit: Client closed).
16:17:40 -!- chiselfuse has quit (Remote host closed the connection).
16:17:51 -!- chiselfu1e has joined.
16:31:39 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87926&oldid=85635 * AceKiron * (+82)
16:42:47 <esolangs> [[User talk:Heavpoot]] https://esolangs.org/w/index.php?diff=87927&oldid=85250 * Martsadas * (+111)
17:04:29 <arseniiv> fungot being a pita is no news
17:04:30 <fungot> arseniiv: and china could not copy usa technology and flaunt it just keeps on growing. am a bit puzzled about why you asked
17:05:04 <arseniiv> fungot: why, I didn’t ask anything (yet?)
17:05:04 <fungot> arseniiv: what is remarkable, i think. mostly common lisp and scheme implementations ( tm))
17:05:38 <arseniiv> I need to write some lispy language sometime, yeah
17:05:55 <int-e> that sounded like pure propaganda
17:06:11 <int-e> (fungot, I mean)
17:06:11 <fungot> int-e: you're suggesting cluttering the namespace with names like fnord and fnord
17:06:31 <int-e> fungot: okay, no need to get insulting
17:06:31 <fungot> int-e: just seems silly to construct a list; it does whatever the code surrounding the ( x y) x y
17:07:09 <arseniiv> something far from CL and Scheme, just using S-expressions for its syntax and maybe using symbols, though good symbols might ask their full CL treatment which isn’t easy for a language developer
17:07:32 <arseniiv> you're suggesting cluttering the namespace with names like fnord and fnord => lol
17:09:31 <arseniiv> I agree it’s silly to construct a list; either it’s already there in platonic sense, or it’s nowhere at all, in which case trying to construct it would be in vain
17:11:31 <arseniiv> if it’s already there, one needs to just fetch it with (get-list-from-outer-planes <name of the list>)
17:12:15 <arseniiv> if it doesn’t have any names, then I guess we’re broke
17:13:03 <arseniiv> either it’s already there in platonic sense, or it’s nowhere at all => though I’m unnecessarily classical here. Maybe there is a third option
17:19:04 <int-e> arseniiv: "what is a list" has the potential to unfold into all philosophy ever conceived and some new one
17:19:49 <arseniiv> int-e: it better do!
17:20:14 <arseniiv> or did
17:20:22 <int-e> at some point you'll have to make a list of possible interpretations
17:20:28 <int-e> just to keep track of it all
17:21:08 <int-e> (not circular; you can make a list without fully understanding what it is)
17:21:39 <Corbin> Lists usually require infinity; they don't trivially always exist. https://ncatlab.org/nlab/show/free%20monoid explains the details.
17:22:52 <shachaf> Saying "lists require infinity" sounds like saying "natural numbers require infinity".
17:23:09 <shachaf> Where I think it's maybe more like, the style you use to talk about natural numbers requires infinity, or something.
17:24:01 <shachaf> In Haskell lists are certainly not free monoids (either in the standard sense or in the Haskell sense, where those are also distinct).
17:24:07 <Corbin> Maybe there's a more grammatical way to put it. FinSet is a topos, so it's not possible to constructively tell whether or not infinite objects really exist; we have to assume them.
17:24:17 <int-e> shachaf: fortunately we can justify this claim on a ridiculously informal level: Have you ever looked at the number 8 from the side? ;-)
17:26:05 <shachaf> It's well-established that the Peano naturals stop at 88.
17:26:17 <arseniiv> I think something like shachaf too. For example, though I don’t know ultrafinitist constructions, we could imagine lists of length more than N fail to exist, so cons or ++ are partial but for some reason we can’t stumble on that fact
17:26:24 <arseniiv> oh, 88
17:27:13 <shachaf> Man, "what if sufficiently big numbers don't exist? we'd never know it" is a funny take on ultrafinitism.
17:27:36 -!- Koen_ has joined.
17:28:28 <int-e> you'll need imaginary numbers then
17:28:38 <int-e> that you imagine to exist
17:29:05 <shachaf> The thing that makes it funny is that it still takes some platonic notion of existence, and imagines that it applies to some numbers, and not others. I hadn't really thought of that perspective.
17:30:10 <Corbin> I'm not even being finitist here. It's a variation on Skolem's paradox. In order to talk about existence of objects, we need a formal mathematical logic for those objects. For questions of size/cardinality/measurement, set theory is traditional. But constructive set theory is confined within the rules of topoi, so if a topos lacks some classical property, then the property didn't exist universally in the first place.
17:30:40 <Corbin> Just like with Skolem's paradox, we might have taken some property of Set (say, that there's natural numbers or free monoids) and imagined that it must be universal, even though some topoi like FinSet refute it.
17:30:50 -!- src has quit (Quit: Leaving).
17:30:58 <arseniiv> <int-e> that you imagine to exist => hm then we may end up with an existence hierarchy
17:31:04 <shachaf> I was talking about arseniiv's thing.
17:31:16 <shachaf> But, hmm, I can talk about the existence of objects without a formal mathematical logic for those objects.
17:31:56 <Corbin> I guess. Maths just makes it easy: Every describable object exists, except for those which would contradict themselves if they existed.
17:32:21 <shachaf> Would you say that existence is a property that some things have and some things don't, or that everything exists?
17:32:55 <Corbin> I'd say that "existence" is a linguistic meme, a language-game which has a faulty assumption about the nature of reality.
17:33:51 <arseniiv> there were some logics with two sets of quantifiers, the usual ∀ and ∃ and then “outer” ones which have strange semantics
17:34:20 <shachaf> Hmm, Internal Set Theory?
17:34:55 <arseniiv> a quantified variable in those runs over inexisting things. Don’t remember if it’s connected to IST
17:35:07 <arseniiv> ow, not inexisting things, but all things
17:35:34 <arseniiv> I think that was for modal logics or free logics, hm
17:36:38 -!- riv has quit (Quit: Leaving).
17:37:25 <int-e> "real thought" is a nice oxymoron
17:37:25 <arseniiv> I guess I saw that here: https://plato.stanford.edu/entries/logic-free/#Meinong
17:37:37 -!- riv has joined.
17:39:44 <arseniiv> once I thought some kind of free logic would be what I wanted an ideal classical logic to be, yet it failed when I read this article: all kinds seem to have their flaws
17:40:52 <arseniiv> hopefully a type-theoretical framework is good. At least I haven’t seen someone discussing flaws like those for it to have
17:41:54 <Koen_> it's one of those "there are 15 types of logic, but they all have their flaws. i'm going to develop a new logic that unifies them all" -> "there are 16 types of logic, but they all have their flaws"
17:42:44 <int-e> But it makes for a great story. https://en.wikipedia.org/wiki/Homo_narrans
17:43:20 <Corbin> arseniiv: The "field with one element" doesn't exist, because of the definition of fields. Nonetheless it has pages on WP and nLab, because there is a field-with-one-element-shaped-hole in projective geometry.
17:43:38 <b_jonas> "It's well-established that the Peano naturals stop at 88." => I don't think that can satisfy the axioms
17:44:09 <Corbin> When combined with the fact that the category of fields is disconnected (fields of different characteristic aren't related to each other), it suggests that fields are an incomplete notion; we have the wrong definition!
17:44:17 <int-e> b_jonas: that just means that the theory is flawed model of reality
17:44:23 <arseniiv> Corbin: yeah I agree it should exist in some fashion
17:44:33 <arseniiv> the field F₁, I mean
17:45:37 <b_jonas> "a quantified variable in those runs over inexisting things" => is that second order logic?
17:46:08 <int-e> arseniiv: oh, third possibility: does Schrödinger's cat exist?
17:46:47 <int-e> Hypothetically speaking, of course ;)
17:46:51 <arseniiv> b_jonas: no, that one is one-sorted
17:47:53 <b_jonas> int-e: unlikely. Schrödinger died in 1961, his cat would have died and decomposed by now unless he got it mummified or put it on a relativistic speed rocket or something
17:48:18 <int-e> b_jonas: seems fair
17:48:48 <arseniiv> int-e: it, I mean the paradox itself, does in global culture, but as of the cat itself, I’d think decoherence theory gives us a very tight estimate on the time the cat’s still in superposition, like attoseconds I think
17:49:11 <arseniiv> oh my poor grammar
17:51:54 <b_jonas> what I wodner is, if the poison gas is released in the box to kill Schrödinger's cat, wouldn't it also kill whoever opens the box when they open it?
17:51:57 -!- delta23 has joined.
17:52:39 <b_jonas> I guess they could be careful and use a chemistry lab smoke hood or something
17:52:46 -!- Sgeo has joined.
17:53:30 <arseniiv> hm what if we call a Schrödinger’s cat any cat which lives in Schrödinger’s children’s homes as an unbreaking line, or a tree. Then this kind of a collective cat is probably still alive
17:54:29 <arseniiv> or if his children all disliked cats, then not
18:17:19 -!- dyeplexer has quit (Remote host closed the connection).
18:18:58 -!- Everything has quit (Quit: leaving).
18:42:28 <b_jonas> I'm not sure if any cat would be willing to own the family that deliberately killed with 50% probability a previous cat just for a tought experiment
18:42:50 <b_jonas> they would certainly just pick a better choice of servent
18:49:42 -!- tech_exorcist_ has joined.
18:51:05 -!- tech_exorcist has quit (Ping timeout: 252 seconds).
19:33:18 -!- Koen_ has quit (Quit: Leaving...).
20:16:16 <arseniiv> are there good aperiodic 1d tilesets?
20:17:27 <arseniiv> if so, either the matching rules should be quirky, or tiles should at least be nonconnected
20:18:14 <arseniiv> I feel it might end up not that hard to enforce for example 0 → 01, 1 → 10 blow-up rules
20:30:26 <b_jonas> arseniiv: I don't think aperiodic 1d tilesets are possible
20:30:55 <b_jonas> 1d tiles just behave like regular languages
20:31:27 <riv> yes
20:31:31 <b_jonas> unless perhaps it's some weird non-measurable ones, but even so I doubt they can force aperiodic
20:31:52 <riv> you can do an aperiodic 1d tiling, but there's no tile set that forces aperiodicity
20:32:07 <arseniiv> :(
20:32:44 <int-e> +finite
20:32:46 <arseniiv> how to make a connection with regular languages clearer?
20:33:01 <riv> each tile is a transition from one state to another
20:33:03 <arseniiv> finite, yeah, I wouldn’t want an infinite tileset
20:33:03 <int-e> arseniiv: it's quite literally an NFA
20:33:15 <arseniiv> hmmmhmhmhm
20:34:42 <arseniiv> I see, even if a tile has many holes and connects with many previous and following tiles, it still would be a finite number of neighborhoods allowed for all of them
20:34:54 <arseniiv> that’s sad
20:36:08 <riv> it's interesting
20:36:25 <riv> so for wang tiles to work, the pattern needs height
20:36:32 <riv> that increases without bound
20:36:44 <riv> any finite height strip would just be equivalent to a 1d tileset
20:37:05 <b_jonas> um wait
20:37:26 <arseniiv> ah at least this 1d thing gives an insight (if it does)
20:38:32 <b_jonas> what if you have two tiles, one is the set of rationals between 0 and sqrt(3), the other the set of all irrationals between 0 and 1?
20:38:42 <b_jonas> one is the set of rationals between 0 and sqrt(3), the other the set of all rationals between 0 and 1?
20:38:46 <b_jonas> no
20:38:49 <b_jonas> argh
20:38:55 <b_jonas> one is the set of rationals between 0 and sqrt(3), the other the set of all irrationals between 0 and 1?
20:39:26 <b_jonas> then you'll have to overlay the two tiles such that the first kind repeats with period sqrt(3), the second with period 1
20:39:30 <b_jonas> of course it's cheating
20:39:45 <b_jonas> but you should try to explain why that problem can't happen without cheating
20:39:56 <b_jonas> wait that doesn't work
20:40:02 <b_jonas> you have to be more evil than that
20:41:08 <b_jonas> it has to be the set of rational linear combinations of 1 and sqrt(3) between 0 and sqrt(3) half-inclusive, and the set of numbers between 0 and 1 that are linear independent from {1,sqrt(3)}
20:41:34 -!- Corbin has quit (Ping timeout: 252 seconds).
20:41:41 <riv> well there is the projection trick
20:42:20 <riv> http://sig3.ecanews.org/isac2010/lectures/06a_fujita_tilings_a.pdf slide 13 14
20:42:50 <riv> you start with a slope of irrational gradiant and project it down
20:43:58 <b_jonas> riv: sure, but in 1D that'll just lead to an aperiodic tiling
20:44:06 <b_jonas> not a tileset that forces it
20:55:44 -!- Lord_of_Life_ has joined.
20:55:52 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
20:58:21 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:00:09 <riv> can a PDA output an aperiodic string?
21:01:22 <keegan> PDA doesn't output a string, it only accepts or rejects a string
21:01:38 <riv> i seee...
21:01:41 <keegan> but I suppose you could easily define an output version (pushdown transducer?)
21:02:06 <riv> maybe it has to be context sensitive
21:02:49 <int-e> b_jonas: You can stick to natural numbers or integers; for example, if you let X = { n | n >= 0 such that n can be written in base 4 using only digits 0 and 1}, then {X u X+2} = 4X+{0,1,2,3}, so you can tile N, and {X u X-2} = 4X+{-2,-1,0,1} so you can tile Z. Obviously those are aperiodic
21:03:00 <keegan> anyway i think it could output a nonperiodic string
21:03:19 <keegan> you can use the stack to count so you could do like ABBAAABBBBAAAAABBBBBB
21:03:40 <keegan> and there is no bound to the stack depth
21:04:34 <int-e> (so infinite tiles are a problem)
21:05:29 <riv> keegan, oh good point! i was overlooking that completely
21:05:55 <keegan> i'd have to formalize it to be sure though
21:06:04 <keegan> maybe it's not so easy to count because you lose the count as you consume it
21:07:38 <int-e> the pumping lemma for PDAs means you can always have long stretches of periodic substrings...
21:07:42 <keegan> remember also there is a difference in power between deterministic and nondeterministic PDA (unlike for finite automata or for turing machines)
21:07:55 <int-e> (assuming it accepts strings of arbitrary length)
21:08:23 <arseniiv> int-e: infinite tiles are a problem for sure, I think using disconnected tiles we could force using them like keegan’s ABBAAABBBB: 1 2 3 4 etc., something like making them each 0, 1, 2, 3, … holes and carefully assigning distances
21:08:55 <keegan> (fwiw i wasn't paying attention to the earlier tiling discussion)
21:09:17 <arseniiv> it was about if I can make a finite 1d nonperiodic tileset
21:09:24 <int-e> arseniiv: what I have is similar in spirit, really; I just find it cute to make it work with a single tile (though that means you have to keep track of the positioning of the tile for "aperiodicity")
21:10:17 <int-e> (but to my mind that makes sense: there's no placement of tiles that is repeated periodically)
21:10:17 <arseniiv> int-e: I think I saw that tile somewhere, even, if I infer its construction right (I skimmed what you wrote)
21:10:35 <int-e> arseniiv: it's reminiscent of the cantor set
21:13:03 <arseniiv> int-e: something like p-adically? Oh I guess I should just read in
21:15:39 <int-e> > fix (\x -> 'X':tail (x >>= \c -> [c,c,'.','.']))
21:15:41 <lambdabot> "XX..XX..........XX..XX..........................................XX..XX........
21:16:17 <arseniiv> hm wait why use 4 but not 3?
21:18:01 <int-e> with digits 0 and 1? that would leave a gap of size 1 near the beginning: XX.XX.... etc.
21:18:06 <int-e> and nothing to fill it
21:18:30 <arseniiv> ah, I see, we can’t use just 1
21:18:46 <int-e> and using digits 0 and 2 confuses me, but I imagine it still doesn't work
21:20:19 <int-e> I mean we can take X.X...X.X.........X.X...X.X[...] and shift it by one, and that will result in XXXX..XXXX........XXXX..XXXX[...] and now we have chunks of length 4 and some gaps of length 2
21:20:31 <int-e> in contrast, base 4 just works
21:21:05 <arseniiv> -X- -X- --- --- -X- --- --- --- --- --- --- --- --- -X- --- --- --- --- --- --- --- --- --- --- --- --- --- <- with 1 in ternary
21:21:34 <arseniiv> yeah 4 with 0 and 1 looks more comfortable
21:21:39 <int-e> basically by virtue of {0,1,2,3} = {0,1}+{0,2}, where {0,1} are used as digits for the tiles and {0,2} as offsets for shifting the tiles
21:22:31 <int-e> Or, for covering the integers, {-2,-1,0,1} = {0,1}+{-2,0}
21:23:33 <arseniiv> how I like simple solutions
21:27:36 <int-e> Hah, how about this abstraction as an exercise: "Find a subset X of N={0,1,...} such that the map (x,y) |-> x+2y is a bijection between XxX and N."
21:29:45 <int-e> (The X from above is the only solution.)
21:32:07 <riv> would that just be the odd numbers?
21:32:29 -!- olsner has joined.
21:32:58 <b_jonas> int-e: sure, with infinite tiles it's easy. you can make one huge infinite tile with tiny holes far from each other, where the holes are randomly 2 or 3 long, plus small 2 and 3 long tiles to fill one of those holes, and that's aperiodic too.
21:33:16 <int-e> riv: no, then you don't get any even numbers as results... but also plenty of duplicates
21:33:49 <b_jonas> you can make that work with just two tiles in fact, no need for different sizes of holes, just place the holes randomly
21:33:53 <int-e> b_jonas: your tiles are effectively infinite too, by virtue of incommunserability
21:34:42 <int-e> b_jonas: right. but as I said, I found the task of making a single tile work interesting
21:34:59 -!- APic has quit (Read error: Connection reset by peer).
21:35:00 <riv> difficult problem :O
21:35:41 -!- APic has joined.
21:36:45 <int-e> riv: well, 0 needs to be in X (otherwise you don't get 0 as a sum)... 1 needs to be in X (otherwise you don't get 1). 2 can't be in the set (because otherwise we'd get 2+2*0 = 0+2*1... and it basically continues like that.
21:37:26 <int-e> riv: at some point you'll switch to binary representation.... and look at every second digit... and that's how you get to base 4.
21:37:49 <riv> that is so cool, it's like a sudoku or something
21:38:17 <int-e> I think it's doable, but it does require some technique and persistence.
21:45:56 -!- Corbin has joined.
22:02:48 -!- tech_exorcist_ has quit (Quit: see you tomorrow).
22:24:53 -!- APic has quit (Read error: Connection reset by peer).
22:25:32 -!- arseniiv has quit (Ping timeout: 245 seconds).
22:42:13 -!- APic has joined.
23:08:55 -!- sprock has quit (Read error: Connection reset by peer).
23:09:28 -!- sprock has joined.
2021-09-07
00:07:12 -!- delta23 has quit (Quit: Leaving).
01:27:14 -!- zgrep has left (I'm in too many channels.).
02:49:05 <xylochoron[m]> Hi there
02:49:17 <Corbin> Evening.
02:50:07 <xylochoron[m]> How's it going
02:50:09 <xylochoron[m]> So I recently wrote some code that compiles a Turing machine to cyclic tag https://github.com/esopsis/Turing-Machine-to-Cyclic-Tag
02:50:19 <xylochoron[m]> I put a link to it on the cyclic tag esolang page also
02:50:29 <xylochoron[m]> Just thought this might be a place to share that :-)
02:52:54 <xylochoron[m]> By the way I also found a powerpoint presentation online about a person compiling lambda calculus to a Turing machine. I contacted the researcher and he says he's working on a paper to publish about that www.macs.hw.ac.uk/~greg/limits%20to%20computability/SKI%20combinators%20(really)%20are%20%20Turing%20complete.pptx
02:53:16 <xylochoron[m]> s/lambda/combinators/, s/calculus//
03:22:19 <Corbin> Good times.
03:29:29 <nakilon> are you also already building some machine here with these series of substitutions lol 05:53:16 <xylochoron[m]> s/lambda/combinators/, s/calculus//
03:31:38 <nakilon> can't see pptx, he might want to convert it to pdf for sharing
03:32:20 <nakilon> I mean I probably can open pptx with Keynote but it would be handier to read in browser
03:39:39 -!- oerjan has joined.
03:43:18 <Corbin> Ben Lynn's notes might be interesting: https://crypto.stanford.edu/~blynn/compiler/lambda.html
04:00:20 <nakilon> I miss Google Codesearch -- github can't regexes (
04:17:20 <oerjan> <arseniiv> oh my poor grammar <-- that grammar looked fine to me hth
04:36:48 -!- shachaf has quit (*.net *.split).
04:36:56 -!- shachaf has joined.
04:41:15 -!- keegan has quit (*.net *.split).
04:41:15 -!- mcfrdy has quit (*.net *.split).
04:41:28 -!- keegan has joined.
04:41:55 -!- mcfrdy has joined.
04:52:51 -!- velik has joined.
04:57:14 -!- Bowserinator has quit (*.net *.split).
04:57:14 -!- citrons has quit (*.net *.split).
04:57:14 -!- rodgort has quit (*.net *.split).
04:57:14 -!- faxlore has quit (*.net *.split).
04:57:14 -!- lambdabot has quit (*.net *.split).
04:57:14 -!- slavfox has quit (*.net *.split).
04:57:22 -!- citrons has joined.
04:57:28 -!- faxlore has joined.
04:58:23 -!- lambdabot has joined.
04:58:40 -!- Bowserinator has joined.
05:00:30 -!- rodgort has joined.
05:01:08 -!- slavfox has joined.
05:04:51 -!- APic has quit (Read error: Connection reset by peer).
05:27:15 -!- APic has joined.
05:27:42 -!- APic has quit (Read error: Connection reset by peer).
05:28:49 -!- Sgeo has quit (Read error: Connection reset by peer).
05:37:17 -!- APic has joined.
05:37:20 -!- APic has quit (Read error: Connection reset by peer).
05:44:10 -!- chiselfu1e has quit (Remote host closed the connection).
05:54:46 -!- phdu[m] has changed nick to phdu.
06:02:17 -!- APic has joined.
06:03:16 -!- APic has quit (Read error: Connection reset by peer).
06:07:17 -!- APic has joined.
06:07:52 -!- APic has quit (Read error: Connection reset by peer).
06:22:56 -!- hanif has joined.
06:23:41 <hanif> int-e: nice problem
06:39:21 -!- APic has joined.
06:39:26 -!- APic has quit (Read error: Connection reset by peer).
06:44:21 -!- APic has joined.
06:44:22 -!- APic has quit (Read error: Connection reset by peer).
06:49:21 -!- APic has joined.
06:49:28 -!- APic has quit (Read error: Connection reset by peer).
07:08:56 <nakilon> "Google Cloud does not believe in swap" confirmed: https://stackoverflow.com/q/58210222/322020
07:10:57 <int-e> . o O ( vm.swappiness = 0 )
07:11:09 <shachaf> Good, swap is mostly a bad idea for a server.
07:11:36 <nakilon> much better when he just hangs until reboot
07:12:34 <int-e> VMs doing their own swapping is a bit insane, when there's more swapping happening at the hypervisor level
07:13:29 <nakilon> I'm not sure we know how Google Cloud hypervisor works
07:14:31 <int-e> Even on my PC I'd like to fully disable swap. But I've learned that Linux effectively swaps anyway, because it will release unmodified mmap-ed regions to satisfy requests for fresh memory. So... without swap... rather than being able to swap out more or less everything, you end up swapping out code pages. This is *worse* than actually having a bit of swap space.
07:14:57 <nakilon> I suppose your PC has more RAM than a Free Tier server
07:15:13 <int-e> So I compromised on 8G swap for 32G swap.
07:15:22 <int-e> for 32G main memory.
07:15:24 <int-e> Yes, yes it does.
07:16:21 <nakilon> ping
07:16:21 <velik> pong
07:17:08 <int-e> I understand the desire for enabling swap on small VMs. I was arguing from a perspective of performance.
07:20:24 -!- APic has joined.
07:20:27 -!- APic has quit (Read error: Connection reset by peer).
07:21:01 <int-e> I actually have a hack somewhere that hooks into mmap and replaces anonymous mappings by file-based mappings.
07:21:07 <int-e> So yes, I can definitely relate.
07:25:24 -!- APic has joined.
07:30:51 -!- hanif has quit (Ping timeout: 276 seconds).
07:34:15 <shachaf> You can mlock memory that you care about, I suppose.
07:34:32 <shachaf> It's a good point about Linux releasing code pages, though, hmm.
07:35:22 <shachaf> It just treats it as ordinary page cache memory, even when you fully disable overcommit and swap? That seems bad.
07:35:37 <shachaf> I guess it's hard for it to do anything else.
07:37:57 <int-e> I've never done the experiment of disabling overcommit as well. For a long time I couldn't because of Haskell's RTS, but it may work these days? It still allocates a huge address space...
07:45:29 <shachaf> It's possible to reserve address space without committing it in Linux, but hardly anyone does it.
07:45:48 <shachaf> And it's pretty unusual so I don't think you can e.g. ask how much memory a process has committed.
07:46:30 <int-e> rts/posix/OSMem.c:# define RESERVE_FLAGS MAP_NORESERVE | MAP_ANON | MAP_PRIVATE;
07:46:41 <nakilon> google indexes esolang wiki by ip for some reason https://www.google.com/search?q=site%3A46.43.2.108
07:49:54 -!- tech_exorcist has joined.
07:51:16 -!- tech_exorcist has quit (Remote host closed the connection).
07:51:34 <int-e> So ghc has been doing that since ghc-8.0... patch is from 2015. Still fairly recent.
07:51:56 -!- tech_exorcist has joined.
07:52:54 <int-e> nakilon: yes, and also site:techne.zem.fi
07:53:43 <nakilon> Techne (Greek: τέχνη, tékhnē, 'craft, art'; Ancient Greek: [tékʰnɛː], Modern Greek: [ˈtexni] (About this soundlisten)) is a term in philosophy that refers to making or doing.
07:54:53 <int-e> one way google might discover such links is via the channel logs... we had trouble updating the esolangs.org domain at some point so more direct methods to access the wiki were mentioned.
07:56:19 <nakilon> I suppose you can disable this index either via robots.txt or via google web search panel when you own the domain
07:56:24 <int-e> I don't know whether google actively scans the IPv4 space for webservers... they definitely have the resources to do it; the question is whether they see any value in doing so.
07:56:37 <nakilon> I don't remember the exact name of those services
08:01:18 <nakilon> is there any wiki bot here?
08:01:22 <nakilon> I mean wikipedia
08:01:58 <nakilon> (though there may be an option to query any wiki)
08:05:58 -!- hendursa1 has joined.
08:09:12 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:16:13 -!- spruit11 has quit (Ping timeout: 252 seconds).
08:23:23 <shachaf> Usually you need a host header anyway to access a website, even if you have an IP address.
08:27:45 <nakilon> are there any bots here who remember the context? so you could issue a command to process some previous message
08:27:54 -!- spruit11 has joined.
08:30:18 -!- tech_exorcist has quit (Read error: Connection reset by peer).
08:32:25 -!- spruit11 has quit (Ping timeout: 260 seconds).
08:41:27 -!- APic has quit (Quit: [TLS] Client upgrade).
08:41:44 -!- APic has joined.
08:50:33 -!- APic has quit (Quit: Boot tut gut™).
09:01:37 -!- spruit11 has joined.
09:06:55 -!- spruit11 has quit (Ping timeout: 252 seconds).
09:09:01 -!- imode has quit (Ping timeout: 252 seconds).
09:09:23 -!- arseniiv has joined.
09:19:08 -!- spruit11 has joined.
09:50:09 -!- hanif has joined.
09:55:09 -!- hanif has quit (Ping timeout: 276 seconds).
10:12:54 <fizzie> HackEso (well, HackEgo) used to have access to channel logs, so you could do that sort of thing through there, but it got lost during some reshuffling (they're not logically same systems any more). Sort of a shame; some of the things you could do were clever enough. Though it also encouraged "brute-force" solutions that just run a grep over the last two decades of history, which was always pretty
10:12:56 <fizzie> slow.
10:15:29 <oerjan> `seen logs
10:15:31 <HackEso> ls: cannot access '/var/irclogs/_esoteric/????-??-??.txt': No such file or directory \ not lately; try `seen logs ever
10:16:36 <fizzie> Right, that one does (did?) a "most recent 30 files" by default to be a little faster about it.
10:19:08 <fizzie> I was planning to "fix" the logs access thing by just having some sort of an API at logs.esolangs.org and poking a hole for that for HackEso, but haven't gotten around to. Maybe I should as a first step do something smaller. The logs server's already got an in-memory queue of the last 1000 events for stalker mode purposes, it could just expose that as a "recent context" endpoint.
10:19:54 <int-e> . o O ( touch /var/irclogs/_esoteric/0000-00-00.txt )
10:20:17 <int-e> probably a bad idea; the error message is a reminder that it's not working :)
10:20:17 <oerjan> `touch /var/irclogs/_esoteric/0000-00-00.txt
10:20:19 <HackEso> touch: cannot touch '/var/irclogs/_esoteric/0000-00-00.txt': No such file or directory
10:22:30 <nakilon> not necessary all the logs, but bot could remember just last 100/1000 messages rotated
10:23:09 <nakilon> in ram
10:23:33 <fizzie> Granted, doing it through logs.esolangs.org would still have a bit of a race-condition-y feel since they'd be channel logs as seen by different IRC clients. But I think multibot won't make it particularly easy to do that "locally".
10:27:27 <oerjan> they were different clients last time too, i think
10:27:57 <oerjan> at least, different nicks
10:28:05 <fizzie> Probably, yeah.
10:35:30 <fizzie> I think I don't even have the umlbox-mudem thing wired up for the weird custom multiplexing of TCP and Unix domain sockets over a "serial port" it does.
10:37:38 -!- wib_jonas has joined.
10:59:27 -!- oerjan has quit (Quit: Later).
11:28:00 <esolangs> [[ight]] M https://esolangs.org/w/index.php?diff=87928&oldid=86667 * PythonshellDebugwindow * (+185) Light interpreters
11:29:17 <esolangs> [[User:PythonshellDebugwindow/Vandevelo]] M https://esolangs.org/w/index.php?diff=87929&oldid=73972 * PythonshellDebugwindow * (+123) !
11:41:52 -!- hanif has joined.
12:09:42 -!- hanif has quit (Ping timeout: 276 seconds).
12:54:16 <nakilon> btw here https://help.ubuntu.com/community/SwapFaq it chapter "What is swappiness and how do I change it?" it says that servers have this option set higher meaning to push memory to swap more
13:15:48 <fizzie> On the topic of esolangs.org appearing under other names, yeah, I've configured the server to "default" to the site with the wiki on it for any host header it doesn't recognize, and never looked into search consequences. Wonder if I could convince MediaWiki to do rel=canonical or a sitemap. Wikipedia does that as a <link> tag on the page, so.
13:16:19 <fizzie> Turning on $wgEnableCanonicalServerLink should do it.
13:16:49 <wib_jonas> that's probably a good idea
13:18:23 -!- hanif has joined.
13:20:38 <fizzie> $ curl -s http://techne.zem.fi/wiki/Befunge | grep 'rel="canonical"'
13:20:40 <fizzie> <link rel="canonical" href="https://esolangs.org/wiki/Befunge"/>
13:20:42 <fizzie> Maybe that'll help.
13:22:42 <wib_jonas> yeah. although for pages with long names, I'll still keep using the article number like https://esolangs.org/wiki/Main_Page?curid=13784 , who cares what the canonical says\
13:22:44 <nakilon> ``` curl -s http://techne.zem.fi/wiki/Befunge | grep 'rel="canonical"'
13:22:48 <HackEso> Sorry, HackEgo's sandbox currently has no web access. However, see `? `fetch
13:27:04 -!- Sgeo has joined.
13:28:54 <Sgeo> `olist 1243
13:28:55 <HackEso> olist https://www.giantitp.com/comics/oots1243.html: shachaf oerjan Sgeo FireFly boily nortti b_jonas
13:36:08 <wib_jonas> perlbot get https://esolangs.org/wiki/Main_Page?curid=13784 //link[@rel="canonical"]/@href
13:36:08 <perlbot> wib_jonas: https://esolangs.org/wiki/A_programming_language_is_a_formal_language,_which_comprises_a_set_of_instructions_that_produce_various_kinds_of_output.
13:36:14 <wib_jonas> nakilon: ^
13:37:14 <wib_jonas> perlbot get http://techne.zem.fi/wiki/Befunge //link[@rel="canonical"]/@href
13:37:15 <perlbot> wib_jonas: https://esolangs.org/wiki/Befunge
13:47:27 -!- hendursa1 has quit (Quit: hendursa1).
13:47:53 -!- hendursaga has joined.
14:22:34 <Sgeo> Is it just me or does this website have property 3 wrong? https://www.web-formulas.com/Math_Formulas/Linear_Algebra_Properties_of_Inverse_Matrices.aspx
14:25:46 <wib_jonas> Sgeo: um, what are the assumptions here? are the matrix elements from a field? property 3 says "If A has an inverse matrix, then there is only one inverse matrix." which sounds right to me, at least over a field
14:26:12 <fizzie> wib_jonas: That's the seventh longest page title we have. The longest is: Unary_Except_Every_Zero_Is_Replaced_with_the_Title_of_This_Programming_Language_or,_Alternately,_Is_Replaced_with_the_Smallest_Counter-Example_to_the_Goldbach_Conjecture._Compilers_and_Interpreters_Only_Have_to_Implement_the_Former_Option
14:26:13 <wib_jonas> (probably still true without, but I can't swear on it)
14:26:36 <wib_jonas> fizzie: yeah, but that one also keeps changing. I know there are redirects, but still.
14:28:08 <wib_jonas> and it's longer than Real Fast Nora at least
14:28:20 <Sgeo> Oh I miscounted
14:28:32 <Sgeo> I meant this line, which is step 3 (not property 3): "3. If A1 and A2 have inverses, then A1 A2 has an inverse and (A1 A2)-1 = A1-1 A2-1
14:28:33 <Sgeo> "
14:28:41 <Sgeo> *statement 3
14:29:56 <fizzie> Yes, pretty sure that should be (A1 A2)^-1 = A2^-1 A1^-1.
14:30:03 <wib_jonas> Sgeo: yes, that sounds wrong. it even says the right statement earlier: "If A and B are nonsingular matrices, then AB is nonsingular and (AB)^(-1) = B^(-1) A^(-1)"
14:33:40 <Sgeo> Trying to leave feedback
14:33:41 <Sgeo> Value cannot be null. Parameter name: Challenge
14:33:44 <Sgeo> I don't see a captcha
14:35:00 <Sgeo> They're using Recaptcha, but the URL for it is 404ing
14:35:57 <Sgeo> I... could hack the correct Recaptcha URL in place
14:36:20 <wib_jonas> Sgeo: nah, they're probably using a library for Recaptcha that Google has obsoleted twice since
14:41:21 -!- delta23 has joined.
15:12:04 -!- wib_jonas has quit (Quit: Client closed).
15:13:44 -!- arseniiv has quit (Ping timeout: 252 seconds).
15:29:29 -!- arseniiv has joined.
15:44:35 -!- riv has quit (Remote host closed the connection).
15:45:01 -!- riv has joined.
16:30:17 <Sgeo> If I have a translation-rotation matrix that needs to be multiplied on the right, is there a way to turn it into a matrix that can be multiplied on the left?
16:56:42 <nakilon> b_jonas can you ddos with perlbot?
16:57:22 <nakilon> or is that a special command? I see it also apploes xpath
17:12:54 <b_jonas> nakilon: it's not special, you can call it multiple times together, but only in series
17:13:18 <b_jonas> and there's a time limit for how long each of your commands will execute
17:13:36 <b_jonas> so it's probably not a very efficient way to DDOS anything
17:14:24 <b_jonas> I guess you could try to loop it by calling a command on its own web interface, in a quine way
17:15:27 <b_jonas> but that probably requires POST, which this doesn't do
17:15:43 <b_jonas> so it would be more efficient if you just make a webpage that people load and some javascript or frames on it send requests
17:15:49 <b_jonas> or even images, fewer people block those
17:17:50 -!- APic has joined.
17:24:27 -!- imode has joined.
17:51:31 -!- sprock has quit (Ping timeout: 252 seconds).
18:37:41 -!- sprock has joined.
18:52:45 -!- hanif has quit (Quit: quit).
18:53:29 -!- riv has quit (Quit: Leaving).
18:54:31 -!- chiselfuse has joined.
18:54:32 -!- chiselfuse has quit (Remote host closed the connection).
18:54:47 -!- chiselfuse has joined.
18:54:52 -!- chiselfuse has quit (Remote host closed the connection).
18:55:36 -!- chiselfuse has joined.
18:56:14 -!- chiselfuse has quit (Remote host closed the connection).
18:57:33 -!- chiselfuse has joined.
19:00:31 -!- chiselfuse has quit (Remote host closed the connection).
19:15:44 <fizzie> Bit of a random question, but does anyone have a gut feeling as to what sort of indoors range you should expect from a BLE device? Like that nRF52840 SoC or something? I've been speculating about a wireless doohickey, and wondering if it should be that, or wifi, or some other kind of radio.
19:26:35 -!- sprock has quit (Ping timeout: 265 seconds).
19:33:07 <b_jonas> I don't know, but indoor range for microwave stuff might depend on what your walls are made of
19:34:05 <b_jonas> my bluetooth headphones could communicate from the living room to the work room, but I'v no idea if that involves BLE or just other Bluetooth
19:34:48 <fizzie> Yeah. The interior walls are just drywall-style materials, but there's also a bunch of kitchen appliances between where I'd most logically put two endpoints of a connection.
19:35:03 -!- chiselfuse has joined.
19:35:43 <fizzie> I think I read somewhere that BLE doesn't include audio... although a quick search suggests there's now an announced "Bluetooth LE Audio" standard as well.
19:35:45 <b_jonas> here in this apartment the walls are real reinforced concrete, but the waves might have chosen to go through the walls
19:36:07 <b_jonas> s/through the walls/through the doors/
19:36:30 <b_jonas> probably not BLE in that case
19:37:29 <fizzie> There's apparently some sort of a long-range mode in Bluetooth 5 that does forward error correction and trades some power use (in the sense of lower data rate -> longer transmissions) to better range.
19:38:32 <b_jonas> what does forward error connection mean? don't all these wireless protocols use some error connection? but I don't know what "forward" means here
19:40:38 <fizzie> If I got it right, all flavours of Bluetooth except this new-in-5 "LE Coded" encoding only do error *detection* (and retransmissions), not error *correction*.
19:40:50 <fizzie> https://www.bluetooth.com/blog/exploring-bluetooth-5-going-the-distance/ "Bluetooth low energy at version 4 does not perform error correction, only error detection. Bluetooth 5 introduces an error correction capability."
19:48:08 -!- sprock has joined.
19:51:38 <keegan> apparently "forward" error correction refers to the fact that it only uses the forward channel and not a reverse channel (requesting resends)
20:00:17 -!- sprock has quit (Ping timeout: 252 seconds).
20:05:07 -!- b_jonas has quit (Ping timeout: 252 seconds).
20:06:47 -!- sprock has joined.
20:11:43 -!- riv has joined.
20:11:50 -!- sprock has quit (Ping timeout: 252 seconds).
20:21:44 -!- b_jonas has joined.
20:25:02 -!- sprock has joined.
20:54:09 -!- Lord_of_Life_ has joined.
20:56:10 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
20:56:10 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:16:47 -!- sprock has quit (Ping timeout: 265 seconds).
21:31:38 -!- sprock has joined.
21:38:01 -!- riv has quit (Quit: Leaving).
21:57:13 -!- hendursaga has quit (Ping timeout: 276 seconds).
21:57:13 -!- chiselfuse has quit (Ping timeout: 276 seconds).
21:57:13 -!- hendursaga has joined.
21:57:20 -!- chiselfuse has joined.
22:13:10 -!- sprock has quit (Ping timeout: 260 seconds).
22:37:59 -!- arseniiv has quit (Ping timeout: 265 seconds).
23:05:57 -!- ais523 has joined.
23:13:00 -!- ais523 has quit (Remote host closed the connection).
23:19:51 -!- chiselfuse has quit (Ping timeout: 276 seconds).
23:20:53 -!- chiselfuse has joined.
23:26:03 -!- ais523 has joined.
23:40:37 -!- ais523 has quit (Quit: sorry about my connection).
23:40:52 -!- ais523 has joined.
23:42:17 -!- ais523 has quit (Client Quit).
23:42:32 -!- ais523 has joined.
2021-09-08
00:03:06 -!- delta23 has quit (Quit: Leaving).
00:05:04 <esolangs> [[Mogus]] M https://esolangs.org/w/index.php?diff=87930&oldid=87578 * Oshaboy * (+27) Added Unimplemented Tag
00:39:28 -!- sprock has joined.
01:02:09 <nakilon> this 2015 article https://esolangs.org/wiki/Fungeoid says that it's kind of fungeoid's goal to have side-effects
01:05:04 <nakilon> isn't funge-98 stack of stacks going the opposite direction?
01:05:42 <nakilon> also threading with a separate stack
01:06:25 <nakilon> and my idea of having nested isolated funge spaces
01:07:17 <nakilon> also I don't agree with the "Goal" section
01:07:25 <nakilon> unless I'm missing something
01:14:08 <ais523> one (maybe the only/) motivating idea of the original Befunge was to be as difficult as possible to compile
01:14:44 <nakilon> with having a runtime allowing to split code into isolated toroids and giving them own stack (for example, it pops the N number of items to take from the top of the stack into a new zeroed one and then returns M from the new one to the parent)
01:14:52 <ais523> things like the stack stack (which was added later) seem like they would make the code easier to analyse, and thus maybe to compile, but you can use it for obfuscation in addition to using it for purity
01:15:31 <nakilon> it would be possible to build a repository of common functions that won't have stack collisions with each other and would be used as building blocks easily
01:15:58 <ais523> I guess there's two points of view, the point of view of a programmer who is trying to make their code easy to understand and is using the language features for that purpose
01:16:25 <ais523> and the point of view of a compiler, or a programmer who is intentionally making their code hard to compile, where the features might be used in unusual ways to make the code hard to understand
01:16:45 <nakilon> to necessary easy to understand but easy to build
01:17:06 <nakilon> I'm ok with write-only code as long as it does what it have to
01:17:45 <ais523> I think write-only code only really works in environments where you know you'll never have to read it again
01:18:22 <ais523> one-off scripts, for example (and even then I try to do things like use meaningful variable names, just in case they somehow end up not being one-off after all)
01:26:56 <nakilon> "I disagreed, saying that there are some languages out there where and interpreter is easier to write than a compiler."
01:27:04 <nakilon> https://github.com/catseye/Befunge-93/blob/master/historic/bef-1.0rc1/bef.doc
01:28:37 <nakilon> I guess it was a random fact about befunge -- that it had features hard to compile, but it wasn't the goal; the goal was: "It may go forward, or backward, or even LEFT OR RIGHT. : for fun
01:29:25 <ais523> hmm, so it looks like the motivating feature was to be harder to compile than interpret, not necessarily to be impossible to compile
01:29:32 <nakilon> also this https://github.com/catseye/Befunge-93/blob/8fe4065c0415b6f6fa6f699798fa9b64737aadc1/historic/bef-1.0rc1/bef.doc#L27 tells that the self-modification was much earlier than the debate about compilers with his friend
01:29:44 <ais523> there are some programming languages which fulfil this requirement by being trivially easy to interpret
01:30:06 <ais523> but there were other motivations too
01:31:55 <nakilon> I would call the complexity to compile befunge a goal if there was that debate and then he comes up with things made on purpose to prove his debate point; but it was the opposite -- he already had an idea of self-modification and then the debate just motivated him to release something
01:34:24 <Corbin> Interestingly, Futamura conclusively showed that compilers arise from specialized interpreters, and their work implies that an interpreter is always easier than a compiler.
01:34:58 <ais523> I do think that interpreters are generally easier, except in the case where a naive transpilation works
01:35:21 <ais523> (e.g. compiling BF by string replacement of "+" into "(*ptr)++", ">" into "++ptr", etc.)
01:35:45 <ais523> err, I'm using my post- and pre-increments inconsistently, I guess it doesn't matter in this situation but it still looks bad
01:35:46 <nakilon> btw I don't see a problem compiling befunge if you create a 80x25 of pointers to void functions that would occasionally overwrite other pointers to point at the "library of function" that is a list of possible instructions
01:36:44 <ais523> this depends on what you consider a compiler to be
01:36:55 <ais523> you can compile any code by hardcoding the program into an interpreter
01:37:04 <Corbin> ais523: But note that, in that case, we can kind of reverse-engineer ourselves a corresponding interpreter which is even "easier" in the sense that it can delegate even more work to the C compiler.
01:37:06 <ais523> but some people consider that cheating and not really a compiler
01:37:48 <ais523> Corbin: well, running gcc is probably harder than writing the code you want it to compile into a file
01:37:52 <ais523> but, both are pretty easy
01:38:26 <Corbin> ais523: I'm thinking specifically of what's delegated to the toolchain, because Futamura's point was that a good specializer can turn any interpreter into a good compiler.
01:38:46 <Corbin> Hm, not the best way to put it. The specializer and interpreter both contribute to the quality of the compiler?
01:38:57 <ais523> the specializer would have to be /incredibly/ good
01:39:21 <ais523> given that there are optimizations that interpreters can't really do without getting halfway to being a compiler anyway, so given a naive interpreter, those optimizations would have to be done in the specializer
01:39:33 <ais523> and, I know that's the point of specializers, but it's hard to imagine one that's *that* good
01:39:51 <Corbin> Yeah. I use RPython, for example, and there's a lot of work put into making those interpreters "easy" to write.
01:41:33 <ais523> I guess you can apply the same argument to a specializer-virtual machine combination
01:41:39 <ais523> which should in theory give you an optimizing VM
01:41:44 <Corbin> (RPython automatically generates a JIT compiler for a given interpreter. Backend configuration, instruction selection, memory management, etc. are all done with automatic codegen. It takes like 20min to generate a JIT but it's worth the wait.)
01:42:35 <Corbin> Yeah. I think that this is an interesting antipattern in language design: We often pair a low-level intermediate language with a high-level user-friendly language, and require interpreters to compile from the latter to the former.
01:42:37 <ais523> that's interesting
01:42:44 <ais523> how are the interpreters specified?
01:43:29 <ais523> also, I'm not sure that's an antipattern, unless you're suggesting that the interpreters should work with high-level code more directly
01:43:40 <Corbin> RPython interpreters are given in plain Python 2.7, using their support library for libc calls and FFI. The translator interprets the Python and then disassembles it in-memory, so codegen can be done in Python.
01:44:07 <ais523> I was wondering about that (although being locked to Python 2 is something of a problem nowadays)
01:44:40 <Corbin> I just think that it's signing folks up for extra work. Extra context, usually. Desugaring is simpler than an intermediate language.
01:44:48 <nakilon> I think the measure of cheating can be calculated; my compiler idea above results in that the compiled programs would be different only in a place where the starting befunge code was injected as a 80x25 table, and the rest would be the same "interpreter"; while the "true compiler" that you might want to imagine is something that produces absolutely
01:44:48 <nakilon> different program for every different input source code; so the amount of "variation" can be benchmarked on compiling different inputs and measuring the diff
01:46:09 <ais523> Corbin: I agree with making the low-level intermediate language a subset of the high-level language, rather than necessarily a separate language
01:46:32 <ais523> but there are some cases where you want to relax restrictions in the downcompile
01:47:03 <nakilon> but then, there are compilers that produce 1mb binary even for hello world -- all the hello worlds will have the same 99% of "interpreter" that is some static library
01:47:07 <ais523> a common example is when the IR has goto statements, but the high-level language you're compiling from doesn't
01:47:34 <Corbin> ais523: Sure. I guess I'm saying that, in those situations, the IR should be explicit and narrow-waisted, rather than a required glue language. Like, Smalltalks put a tiny but real burden on implementations when they require bytecode compilers, e.g. in Python.
01:47:39 <ais523> nakilon: right
01:47:55 <ais523> in fact, ld-linux.so is even described as an "interpreter" in its documentation, and that of the Linux executable format
01:48:11 <Corbin> LLVM IR, GCC's GIMPLE, QBE, and libfirm's IR; they should all really commit to text formats and narrow-waist tools. This is one area where WebAssembly has done well.
01:48:33 <ais523> so pretty much all binaries on Linux are being run through an interpreter (although what it actually does is just interpret the code for loading, load the code, then jump to it and run it directly)
01:50:47 <keegan> what is a "narrow-waist tool"
01:52:04 <keegan> (I spent so many years being confused about what "waist" means before I realized the garment waist and the anatomical waist can be totally different!)
01:52:12 <zzo38> I want to ask the same question, too
01:52:19 -!- ais523 has quit (Quit: sorry about my connection).
01:52:27 <Corbin> keegan: A narrow-waisted design is a pattern which is meant to counter the Expression Problem by requiring either the input or output of every tool in a toolchain to be a single unified format.
01:52:34 -!- ais523 has joined.
01:52:52 <ais523> one thing that I do think is an antipattern is where important metadata, that the compiler knows, gets removed when going down to lower levels of abstraction
01:53:20 <keegan> Corbin: oh, like netpnm?
01:53:27 <ais523> one example is that it would be very useful to have a way to say "the value in this register isn't needed any more" right down to at least the asm level
01:53:27 <Corbin> e.g. pandoc can handle many different documentation formats. Normally this would evoke the Expression Problem and require a quadratic amount of code, but instead it's a linear amount of code because pandoc's IR acts as a narrow waist.
01:53:35 * keegan nods
01:53:46 <keegan> where you convert anything-to-pnm or pnm-to-anything or manipulate pnm's
01:53:51 <ais523> it even sometimes helps performance at the *machine code* level, despite taking up bytes, because this is information that the processor cares about too
01:53:59 <Corbin> keegan: Yeah. Uncompressed containers are good candidates for narrow waists.
01:54:12 <keegan> or how many programming languages adopt UTF-8 as the one true internal string representation
01:54:18 <keegan> with other encodings handled at the edges
01:54:24 <Corbin> ais523: Yes. I'm sure you've heard me rant about The Mill before; their "belt" concept would be great for that.
01:54:35 <keegan> (Unicode was designed with this use case in mind, and would be substantially simpler without it)
01:54:50 <ais523> which is why we have assembly language commands like VZEROUPPER, and certain special cases of XOR
01:55:17 <ais523> Corbin: I do like The Mill's approach, although it got me thinking about how I would do things and I came to different conclusions on some things
01:55:30 <Corbin> (The Mill's belt is just the most recent eight results from the ALU. By default, values are usable for a few operations and then disappear forever.)
01:55:34 <ais523> e.g. I think it would be more useful to flip the belt the other way round: commands say when their output is going to be used, not when it was generated
01:55:52 <ais523> also I didn't realise it was as short as 8, I was assuming it would be much longer
01:56:27 <zzo38> I think farbfeld is better than pnm, although it is the same kind of idea it is a good one. Fortunately, ImageMagick now supports both formats (and my own Farbfeld Utilities also has encoders/decoders for netpnm formats, too).
01:57:31 <ais523> Corbin: widely-applicable intermediate representations are something we could do with having in a range of fields (and if they're easily interconvertible it probably also doesn't matter if we have too many)
01:57:40 <Corbin> Oh, I think it's eight minimum? ISTR Ivan saying that belt space is very expensive because it's interconnected to so many functional units, so maybe sixteen-ish on high-end chips.
01:58:36 <ais523> Corbin: so the great thing about a "when it's going to be used"-style belt is that the interconnect isn't too bad, because you can safely use a slow path if the value you see there is some high number of instructions
01:58:38 <Corbin> ais523: Yes, although there's still a linear cost to maintaining each representation. I know that I will have to compile a few simple languages into Cammy for demonstration purposes, but I won't maintain optimizing compilers because there's usually no interesting source programs to optimize.
01:58:50 <ais523> and only need to fast-path the low-numbered choices
01:59:00 <ais523> it's information you get to know whether you need a fast algorithm or can do with a slow one
01:59:16 <ais523> what is Cammy?
01:59:22 <zzo38> I dislike UTF-8 (or any Unicode format, or any other encoding) as the one true internal string representation. I think having byte strings is better, and you can still have functions that treat them as UTF-8 if wanted, as well as ones dealing with byte strings. (Converting between text encodings perfectly isn't possible, even though they try to say otherwise.) I dislike many modern programming languages that use Unicode.
01:59:38 <Corbin> Aha, that's clever. Makes sense. Strange how time reversal sometimes dramatically changes what needs to be tracked.
02:00:17 <Corbin> ais523: Oh, [[Cammy]] on the wiki, just my current pet project. It's not yet Turing-complete, because I'm lazy and also Turing categories are hard.
02:00:27 <ais523> zzo38: I believe that it's normally correct to have "bytestring" and "character string" as the two main string types internally
02:00:49 <ais523> and that with a character string, it's generally preferable for the internal encoding to not be user-visible, although UTF-8 makes for a good choice
02:01:07 <nakilon> zzo38 I'll take you to my team of creators of a "cleaner unicode"
02:01:53 <ais523> one thing I dislike about UTF-8 is that it spends a lot of encoding space to get some fairly minor advantages
02:01:54 <zzo38> ais523: Having separate types is better, yes, although there are often the deficiencies that many things will not work properly with byte strings, I find
02:02:07 <ais523> IIRC there are six byte values that can't legally appear in UTF-8 at all
02:03:02 <ais523> actually, I think even better would be to have typed byte streams that were parameterised by encoding, and probably the ability to parameterise character strings by encoding too
02:03:33 <ais523> (where "encoding" here would handle things like the form of escaping that had been used, what metadata beyond normal characters it could contain, etc.)
02:03:57 <zzo38> Actually, yes, I suppose that can be helpful.
02:05:15 <zzo38> (Although, it will not always be relevant, sometimes it is helpful to be able to use such a feature (as an option, perhaps).)
02:05:23 <ais523> one thing I would like to see more languages provide is a standardised type for formatted text
02:05:26 <nakilon> $ irb
02:05:26 <nakilon> irb(main):001:0> "лол".encoding
02:05:26 <nakilon> => #<Encoding:UTF-8>
02:05:26 <nakilon> irb(main):002:0> "лол".b.encoding
02:05:26 <nakilon> => #<Encoding:ASCII-8BIT>
02:05:46 <ais523> that seems wrong?
02:06:35 <ais523> I would say that the /first/ one is a character string, and the /second/ one is the UTF-8 encoding of a character string
02:06:47 <nakilon> String instances in Ruby are a struct of byte sequence on an encoding info to help other functions preprocess the sequence when needed
02:07:10 <nakilon> *and an
02:07:31 <ais523> or if it genuinely is an 8-bit extended ASCII, perhaps ISO 8859-5, but that seems unlikely
02:07:49 <zzo38> Even when it is UTF-8, there are considerations what will be wanted. Sometimes you will want to store unpaired surrogates (which is WTF-8), sometimes you might want characters beyond Unicode range (UTF-8-E, etc), sometimes you might want null characters, and sometimes you might not want these things, depending on the application.
02:07:53 <ais523> nakilon: in that case I think it's wrong
02:08:10 <ais523> if you hand a function a string, it shouldn't have to decode it itself whenever it wants to do anything with it
02:08:50 <nakilon> > "лол".b
02:08:50 <nakilon> => "\xD0\xBB\xD0\xBE\xD0\xBB"
02:08:52 <lambdabot> error:
02:08:52 <lambdabot> • Couldn't match expected type ‘b0 -> c’ with actual type ‘[Char]’
02:08:52 <lambdabot> • In the first argument of ‘(.)’, namely ‘"лол"’
02:08:53 <ais523> zzo38: it'd be nice to have a standardised name for "UTF-8 except NUL is encoded as C0 A0"
02:09:22 <nakilon> String#b here is a method that just changes the encoding attribute, it does not change the data
02:09:33 <zzo38> ais523: Yes, I agree
02:09:52 <nakilon> so this string for example becomes printed in wrong way because ascii can't do that
02:10:24 <ais523> I guess what Ruby's doing is a leaky abstraction
02:10:46 <nakilon> what's wrong with it?
02:11:15 <nakilon> those japanese folks defeated unicode problems 15 years before python
02:11:50 <zzo38> Another encoding is TRON, although it is uncommon and has a different set of problems
02:12:25 <zzo38> What I think is that no character encoding will be good for all purposes, although they can be good for some things (although still, improvements can be possible, sometimes)
02:12:27 <ais523> I guess the problem is that it's using the same type for bytestring and character string, *and* has a way to look at the internal representation of a character string when that shouldn't matter
02:12:48 <ais523> and it wouldn't surprise me if it doesn't enforce that the bytes stored in a string actually match the given encoding
02:13:11 <nakilon> all data are 0 and 1
02:13:12 <ais523> Perl also solved this problem substantially before Python did, and I don't think its solution is perfect, but I prefer it to Ruby's
02:13:21 <nakilon> it does not matter how many types you declare
02:13:26 <ais523> yes, but that doesn't mean you have to present it to the user as 0 and 1
02:13:59 <ais523> and sometimes, semantically there will be a requirement not to have 0s and 1s in particular places, and it's an advantage if the language can enforce that rather than making the user do it
02:14:21 <nakilon> Ruby has only a String and you are free to change the encoding at any moment, just know what you are doing or you'll get an exception unless you pass the flags of ignore/replace explicitely
02:14:49 <ais523> fwiw, Perl's solution is that a string is conceptually an array of numbers, which could represent either codepoints or raw bytes, and for string-related functions you can specify what interpretation to use
02:15:06 <nakilon> when you get the data from network for example it's ASCII by default and the internet really has no idea what encoding is -- it's your application job to say "here we expect this encoding" so you apply it
02:15:22 <ais523> internally, strings that contain values above 255 are stored in a slightly extended UTF-8, and strings that don't are sometimes stored just as raw bytes, but you're not supposed to know or care about that detail
02:15:45 <ais523> nakilon: and if the string isn't valid for its claimed encoding?
02:16:50 <ais523> in Rust, there's &[u8] (byte slice) and &str (string slice – internally UTF-8 encoded); there's a fast-path function to reinterpret a &[u8] as a &str, but it still checks to make sure that the string is valid UTF-8 and refuses to produce output if it isn't (producing an error you have to handle, instead)
02:17:21 <ais523> and of course, if the byte slice isn't supposed to be UTF-8 you can still translate it to a string but there isn't a fast-path for that, as it'd need to be re-encoded into the internal UTF-8 representaiton
02:18:03 <ais523> &str does leak its UTF-8-ness in a few other ways, though, such as measuring length in bytes of UTF-8 for the purpose of taking substrings (I think this is a concession to performance)
02:18:14 <nakilon> ais523 the invalidity is a thing that exists only when you are doing some final rendering, like printing or converting between the passed enc_a and enc_b; in those cases you use flags to ignore the encodnig and there are also some methods to clean up the mess prematurely like https://ruby-doc.org/core-2.4.0/String.html#method-i-scrub
02:19:38 <nakilon> there are separate methods .size and .bytesize
02:19:47 <zzo38> Does Rust have all of the string dealing functions can work with byte strings too, in case you do not want to use Unicode strings (either sometimes or all the time, depending on the program)? Not all text is Unicode text (and not all can be converted to/from Unicode properly either; sometimes it is useful to try anyways, but sometimes it is better not to)
02:20:07 <nakilon> and the fixing flags are here: https://ruby-doc.org/core-2.4.0/String.html#method-i-encode
02:20:08 <ais523> zzo38: sort-of; they aren't polymorphic but they're duplicated between the string and bytestring cases
02:20:15 <ais523> except in cases which don't make sense
02:20:25 <zzo38> One thing I like about C and PostScript is that it doesn't use Unicode.
02:21:12 <ais523> e.g. strings have both to_uppercase and to_ascii_uppercase, wheres bytestrings only have the ASCII version
02:21:22 <zzo38> Yes, sometimes some functions won't make sense for both, is reasonable. That is one example, yes
02:22:35 <ais523> it's surprising how useful the ASCII-specific functions are, actually, they're good for things like handling programming languages with case-insensitive keywords (because the keywords are generally recognised only if written with ASCII characters)
02:22:48 <zzo38> (Although if they are stored internally as UTF-8 and known to be valid UTF-8, then it seems that some of them could be polymorphic, including to_ascii_uppercase since it is doing the same thing whether it is UTF-8 or ASCII presumably)
02:23:04 <ais523> hmm… now I'm wondering if there's a programming language with case-insensitive keywords and one of them contains the substring "ss"
02:23:21 <ais523> it'd be interesting to throw a ß at them to see if it would be recognised, I bet it wouldn't be
02:25:07 <ais523> zzo38: it'd be hard to make to_ascii_uppercase polymorphic in Rust without a special safety override – the compiler would see bytes internally within a string being mutated directly by to_ascii_uppercase, which isn't allowed by default in case you change the internal representation in a way that makes it invalid UTF-8
02:25:16 <ais523> so it's easier to just duplicate the code rather than using unsafe code
02:25:47 <ais523> you definitely *could* write a function to handle both but I don't think the compiler developers would want to
02:25:59 <zzo38> Maybe some might do that with "ss" depending on the implementation, in which case some implementations might be incorrect.
02:26:36 <nakilon> > "лол".b.reverse.force_encoding("utf-8")
02:26:36 <nakilon> => "\xBBол\xD0"
02:26:37 <lambdabot> error:
02:26:37 <lambdabot> Variable not in scope: force_encoding :: [Char] -> a -> [a0]
02:26:47 <nakilon> reversing the bytes broke it )
02:27:17 <ais523> hmm, at least that function has a sufficiently scary name
02:27:36 <ais523> Haskell would probably call it UnsafeForceEncoding or something like that
02:27:38 <zzo38> (Also, maybe the language might need to be specified for Unicode case functions, since e.g. some languages will have dot and dotless "I"/"i" being separately, etc)
02:28:24 <ais523> Rust's super-scary functions generally have very normal/unassuming-looking names, but you need to use a special keyword for calling them to say that you're recognising the danger
02:29:01 <ais523> zzo38: I actually think Turkic case-folding might be the *only* case in which you can't infer the case-folding rules from the codepoints being used, but I'm not sure
02:29:14 <keegan> only for a particular definition of super-scary (might cause undefined behavior)
02:29:27 <nakilon> I suppose there is a segfault thing in rust
02:29:32 <keegan> using 'unsafe' to encode other properties of reasonable API usage is frowned upon
02:29:37 <ais523> it would have simplified things if "Turkic dotless ı" and "Turkic dotted i" were different codepoints from "non-Turkic lowercase i"
02:30:18 <ais523> keegan: I guess, although undefined behaviour is by definition worse than anything else that might go wrong with a program
02:30:22 <keegan> but constructing a &str that points to invalid UTF8 can cause undefined behavior
02:30:36 <keegan> because other 'safe' &str APIs are free to assume that it is valid UTF-8
02:31:11 <keegan> so any function which converts &[u8] to &str (or Vec<u8> to String, etc.) needs to either check that it's valid UTF-8, or be 'unsafe' to leave that up to the programmer
02:31:13 <ais523> yes, e.g. seeing an FD byte means it's safe to read three more bytes
02:31:58 <ais523> which it might not be, if the internal format isn't being statically analysed to be correct
02:32:38 <ais523> something that many UB models do, but Rust doesn't, is distinguish between values that are UB to use and values that are UB to even construct
02:33:07 <ais523> Rust currently has a misencoded &str as something that's UB to even construct, like it does with its other UB values, although It seems unlikely that it would be a problem in practice (still, there's no reason to actually do that)
02:33:54 <ais523> I guess the advantage for the "UB to even construct" model is that it makes it easier to reason about things like signal handlers causing unwinds at unexpected points in the code
02:34:26 <ais523> (although, I believe Rust's model for panics is that it's safe to create regions of code in which a panic would be undefined behaviour as long as you can prove that there can't actually be a panic there)
02:34:35 <zzo38> One thing that Unicode is especially bad for, I think, is arranging text on a grid-based text display. (This doesn't mean it is bad for everything. For some things, Unicode is OK, but could be better for those things.)
02:35:22 <ais523> zzo38: I was writing a program to do that, but didn't get very far
02:35:39 <ais523> the furthest I got was working out how wide each character should be, and even then it isn't really specified in detail in Unicode
02:35:58 <nakilon> in Ruby raw socket data encoding is ASCII while the built-in http retrievers are utf-8 by default; let me check... open("https://www.google.com/", &:read).encoding => #<Encoding:ISO-8859-1> -- oh I'm not sure what it is
02:36:18 <zzo38> Yes, that is the greatest (but not only) problem with using Unicode for arranging text on a grid-based text display. Other encodings will be better.
02:36:33 <ais523> in HTTP, also in HTML, the convention is that the producer of the data (typically the server) states what encoding it is in
02:36:50 <ais523> although the recommendation is always to send UTF-8 with a label stating that it's UTF-8
02:37:17 <nakilon> hm, Chrome says www.google.com responds with content-type: text/html; charset=UTF-8 actually
02:37:25 <ais523> both HTTP and HTML provide separate mechanisms for stating what the encoding is; I think HTML's wins if there's a contradiction
02:37:30 <zzo38> If I was designing to include the encoding with the string, I might use the 16-bit code page numbers, such as: 0 means no encoding, 367 means ASCII only, 1209 means UTF-8, etc. I also made a list of some of things that as far as I know don't have existing code page numbers, so I made up my own for them, e.g. TRON, CLC-INTERCAL EBCDIC, Powerline UTF-8, etc.
02:37:59 <ais523> nakilon: they may both be right, nothing forces Google to respond in the same encoding every time
02:38:25 <nakilon> yeah, ruby sens ruby's user-agent
02:38:28 <nakilon> so idk
02:38:31 <nakilon> *sends
02:38:46 <zzo38> (I might also, in a terminal emulator, use one escape code to select the code page. If Unicode is implemented at all, the standard sequence to select UTF-8 might select the "Powerline UTF-8" code page, although I would think it better to use an encoding that doesn't confuse character widths and that stuff like Unicode does, instead.)
02:39:30 <ais523> huh, I just accessed google.com manually via telnet, asking for its homepage
02:39:49 <ais523> <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML>
02:40:13 <ais523> I was shocked to see a "Google has moved" message, but I guess this what their webserver does for the human-readable part of a 301
02:40:21 <nakilon> it added www. to your request
02:40:31 <ais523> no, it told me to retry with a www.
02:40:32 <ais523> (I sent without)
02:40:53 <nakilon> yeah I mean that, just said it wrong
02:41:14 <ais523> this is some weird HTML, though
02:41:41 <ais523> upper-case tags, apart from one very old-fashioned character set tag (which duplicates an HTTP header)
02:41:48 <ais523> no doctype, so it's quirks mode
02:41:58 <nakilon> this reminds me the crazy guy back in 2006 who wanted to make his own instant messaging application that would send screenshots of text instead of the text
02:42:08 <nakilon> he would defeat the encoding problem
02:42:53 <ais523> either this is a page that hardly ever gets looked at (which wouldn't surprise me – it does its job and is rarely seen by a human), or there's some advantage to writing it in that style (which wouldn't surprise me)
02:43:32 <zzo38> It would, although that approach has different problems (such as taking up more space, and being unable to change the fonts). DVD subtitles work similarly; they store the text as pictures.
02:43:33 <ais523> It looks automatically generated, especially given that this is going to only be seen by the most primitive of Web user agents, and people who access websites without a browser for some reason
02:44:11 <ais523> nakilon: maybe an interesting middle-ground would be to have a library of images of characters, and then encode the image by referencing them
02:44:25 <ais523> this would also solve the encoding problem for human-readability purposes
02:44:36 <ais523> but would be very bad for software accessibility, you're basically sending a CAPTCHA
02:45:01 <ais523> people often want to copy-and-paste out of messages into text fields, for example (and blind people may rely on a screen reader)
02:45:53 <ais523> hmm, I don't think the user agent has the ability to tell the server what character encoding it wants the server to send
02:46:21 <nakilon> "a library of images of characters, and then encode the image by referencing them" -- isn't it a font file? ..D
02:46:23 <ais523> so you'd therefore expect Google to send the same character encoding to both Ruby and Chrome
02:46:50 <ais523> nakilon: almost – font files are supposed to specify which codepoint is used for which of the images they contain
02:46:55 <zzo38> Character names is another thing that may be useful for some purposes and worse for others, such as how PostScript does when rendering fonts.
02:47:04 <ais523> whereas this would just be specifying the image to use by index into the file, which might have nothing to do with codepoints
02:47:24 <nakilon> "people often want to copy-and-paste out of messages" -- now this is about my idea of the universally accepted "chat copypasta" format
02:47:40 <ais523> incidentally, some LaTeX renderers appear to render via using fonts that specify codepoints unrelated to the actual characters being used, which can create weird results if you copy-and-paste from the resulting PDF
02:48:16 <ais523> nakilon: or visit a link in a message, which might not always (or usually) be done by copy-and-pasting but it's essentially the same problem
02:48:38 <nakilon> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
02:49:21 <fizzie> ais523: The user agent doesn't *directly* indicate which character encoding the client expects, but empirical tests show that copying my Chrome UA into curl -A (but changing nothing else) does make a difference in the encoding of the result.
02:49:21 <ais523> nakilon: that's the first one I tried
02:49:26 <ais523> but it's about gzip and the like
02:49:41 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87931&oldid=87614 * Corbin * (+53) The reference implementation now has its own typechecker, rather than calling OCaml and parsing the type.
02:49:50 <ais523> fizzie: that's interesting, I wonder what its criterion is
02:49:51 <zzo38> Even if it is just a index into the file, supporting code page conversion with it can still be helpful. (Also, some glyphs might correspond to a sequence of code points instead of a single one, depending on the font and on the encoding; this is even true of Unicode, and in the case of Unicode at least it can even be ambiguous. So, even then the index into the file is insufficient even if you do have conversion.)
02:50:05 <nakilon> wait I'm wrong that's wrong header
02:50:09 <nakilon> I think I saw one
02:50:57 <fizzie> Apparently there *was* an Accept-Charset, but it is no more.
02:51:22 <ais523> zzo38: what criteria do you think that programs should use to decide what encodings their inputs are in, and what encodings to produce outputs in?
02:52:06 <ais523> I think the main options are "look at the locale environment variables (or OS equivalent)", "always use/assume UTF-8", and intermediate combinations of those
02:52:08 <zzo38> ais523: Depends on the program. It may be one or more of: the file itself, the file format it deals with, command-line arguments, environment variables (such as LANG), etc.
02:52:15 <nakilon> "specifying the image to use by index" -- reminds me inserting icons via CSS by addressing a shift and crop on a single png asset
02:52:45 <nakilon> so the character addresses don't have to be a natural number but can be even an overlapping region
02:53:17 <ais523> <HTML standard> The Encoding standard requires use of the UTF-8 character encoding and requires use of the "utf-8" encoding label to identify it. Those requirements necessitate that the document's character encoding declaration, if it exists, specifies an encoding label using an ASCII case-insensitive match for "utf-8". Regardless of whether a character encoding declaration is present or not, the actual character encoding used to encode the document must
02:53:18 <ais523> be UTF-8.
02:54:12 <ais523> knowing HTML, it wouldn't surprise me if it discusses what to do if it isn't, regardless
02:55:05 <zzo38> For example, a program that deals with JSON can assume UTF-8 for input, and using a switch to switch the output between UTF-8 and ASCII. Programs that just write descriptive text (such as status messages, error messages) should either assume ASCII or use the environment variables (and should never just assume UTF-8). For other things, other encodings are useful, or sometimes just ignoring encodings entirely and copying text as-is.
02:55:06 <nakilon> "link in a message" -- maybe this is a thing to be changed in future; we are used to copypaste texts, then lazyness made us want to just click, maybe there are new ways to make a buddy visit your page, like forcing his software doing it without showing you the URL; also deeplinks
02:55:20 <ais523> interestingly, it also states that the encoding needs to be specified via one of a number of ways, but accepts BOM as one of those ways
02:55:41 <ais523> so it's standards-compliant to send an HTML page with just a UTF-8 BOM as the only thing saying it's UTF-8, but it wouldn't surprise me if browsers missed that case
02:56:24 <ais523> nakilon: I guess if you're sending images, you could send a QR code (although that just gets back into encoding issues again)
02:56:58 <fizzie> ais523: FWIW, supplying a Chrome-like user agent changes a lot of other things too. For example, using plain HTTP will serve a redirect to HTTPS to Chrome, but not to an arbitrary user agent. And of course the content of the page will be entirely different too. (All that from external observations. I don't think I can comment on the actual criteria.)
02:57:04 <ais523> zzo38: I was mostly thinking about text intended for humans; if the file format specifies an encoding, then obviously you need to use that one
02:58:21 <zzo38> ais523: For status messages, either assuming ASCII or using the environment variables is the way to do it, I think.
02:58:30 <ais523> yes
02:58:40 <ais523> I don't think I can assume ASCII because that makes my programs impossible to internationalize
02:58:58 <nakilon> qr code is like an analogue radio
02:59:16 <ais523> even in Canada, many users will want non-ASCII characters like œ and á in their output because many Canadians primarily speak French
02:59:19 <nakilon> you send the data all over the place via light rays depicting a black-white thingy
03:00:01 <ais523> that said, I think that if the environment variables ask for ISO-8859-1, the program should output that, at least for stderr output
03:00:51 <nakilon> hm, I now wonder if you can measure a "power of signal" of the qr code as the distance from which the image is readable
03:00:52 <ais523> I know I implemented locale-specific encoding code in ayacc, because I was trying to match the POSIX specification for yacc; although, I think most of the characters that yacc cares about are primarily stable between most commonly used encodings
03:00:58 <zzo38> If you want international status messages, the file with the international text can be for a specific encoding, and if the environment variable specifies that language but with a different encoding than any of the files, it can convert it, I suppose. However, I don't internationalize command-line status messages in my programs (although I will accept documentation and GUI in other languages)
03:01:03 <nakilon> so you could measure qr code in watts _<>
03:01:19 <zzo38> When just copying the input to output though, you could just pass the text "as-is" without worrying about the encoding.
03:01:33 <ais523> right
03:01:55 <ais523> my experience with programs like xterm (which originally used that method) is that it's probably better to have the program do encoding conversion on output, though
03:02:19 <ais523> you shouldn't need separate translation databases for FR_ca.UTF-8 and FR_ca.ISO-8859-1
03:03:20 <ais523> ugh, have my French locale files got uninstalled somehow? :-(
03:03:35 <ais523> apparently not
03:03:43 <zzo38> That helps when you don't have the data in the proper encoding, but when you do, you should just use them, to avoid problems with conversion.
03:04:13 <fizzie> I always generate the fi_FI locale on my systems, even though I never use it.
03:04:30 <ais523> I like to have a non-English locale around for testing locale issues, and partly just for fun
03:05:00 <ais523> zzo38: ah right, so the point is that you don't want to decode into codepoints and back into bytes if the data's in the correct encoding already
03:05:05 <nakilon> wikipedia: "ISO-8859-1 was (according to the standard, at least) the default encoding of documents delivered via HTTP with a MIME type beginning with "text/""
03:06:08 <ais523> aren't web browsers supposed to interpret "ISO-8859-1" as actually meaning Windows-1252, though?
03:06:41 <nakilon> it says websites then switched to 1252 slowly
03:06:46 <nakilon> as I understood
03:06:49 <ais523> ah, here we go: https://html.spec.whatwg.org/#determining-the-character-encoding
03:07:48 <ais523> the HTML spec actually says that the default encoding for unmarked webpages should be assumed based on the locale within which their web browser is running
03:09:01 <fizzie> MediaWiki has a special language code "qqx" that shows the message name as the translated message content, learned of that recently.
03:09:14 <nakilon> btw
03:09:37 <ais523> fizzie: oh wow, that would be so useful to have known about earlier (assuming it worked back then)
03:09:49 <nakilon> attaching encoding as an attribute to byte sequence is like a header in image formats -- it has orientation, alpha correction, etc.
03:09:55 <fizzie> From 1.18 onwards apparently.
03:10:06 <nakilon> and there are plenty of bugs when software fucks up those headers
03:10:17 <nakilon> *metadata
03:10:21 <ais523> for ages I resorted to (web-browser-equivalent-of) grepping Special:AllMessages, which became a lot more frustrating when it stopped fitting on a page, and would have false positives due to text duplicated between messages
03:10:55 <ais523> although, is "qqx" in the right namespace for private-use language codes?
03:12:26 <ais523> RFC 5646 implies the name should start "x-", but maybe MediaWiki doesn't like the hyphen
03:12:45 <ais523> (amazingly, I actually guessed that the private use prefix was "x-", but wanted to look it up to be sure)
03:35:25 -!- dbohdan has quit (Read error: Connection reset by peer).
03:36:12 -!- dbohdan has joined.
03:36:38 -!- ais523 has quit (Quit: quit).
03:43:33 -!- chiselfuse has quit (Remote host closed the connection).
03:58:13 <zzo38> Do you know which (if any) games other than Escape (by Tom7) can have bizarro world (like Escape does), and what its features are? I wanted to implement bizarro world in Free Hero Mesh, and should have the idea about its design.
04:38:10 -!- Everything has joined.
05:06:05 -!- oerjan has joined.
05:20:55 <shachaf> What is a bizarro world?
05:22:44 <zzo38> When using any cipher in CTR mode (including ChaCha20), does the nonce and counter have to be separate? If it is long enough, then you can do both?
05:24:30 <keegan> I think you can combine them
05:24:46 <keegan> that is, start the counter at a random value and include that with the message
05:25:10 <keegan> assuming that your block size is big enough that you are unlikely to ever use the same keystream block twice in two different messages
05:25:50 <zzo38> Yes, it is how I mean
05:42:23 <zzo38> Does any cipher use CFB or OFB with a counter added?
05:45:53 <keegan> how would you add it
05:47:07 <zzo38> Probably XOR or addition with the input of input of each step
05:59:24 <zzo38> I suppose there is three kind of functions that would be used: fixed->fixed (e.g. ChaCha20), (fixed,key)->fixed (e.g. most block ciphers), variable->fixed (e.g. most hash functions). There is also key whitening (XEX mode), and there is adding input to output like ChaCha20 does to make it difficult to reverse.
06:00:06 <zzo38> It is easy to see with ChaCha20 that if the input is zero, then the output will also be zero. But, even if only one bit is set of the input (I tried this), then the output will be all mixed up.
06:00:35 <nakilon> turns out it was GRPC compilation what was eating all the RAM
06:00:53 <nakilon> it takes like 5 minutes and almost 500mb
06:46:45 <nakilon> or rather 40 minutes already and does not finish, lol
06:49:27 <nakilon> oh specifically it's a Google's OpenSSL: https://github.com/google/boringssl
07:01:30 -!- Sgeo has quit (Read error: Connection reset by peer).
07:01:45 <b_jonas> "<ais523> one (maybe the only/) motivating idea of the original Befunge was to be as difficult as possible to compile" => I'd like to preemptively state that that wasn't my goal when designing Consumer Society, it's just a necessary side effect
07:16:50 <b_jonas> the interesting part is that it also seems hard to translate Consumer Society to the existing high-level non-eso programming languages, even though many of them seem to have all the features necessary. this part is more an accidental side effect than necessary.
07:17:05 <oerjan> ah, spam in finnish. (Although there seems to be an english version at the end.) it's been a while since the last one.
07:22:59 -!- riv has joined.
07:29:51 <nakilon> ok I think the compilation will just never end
07:30:19 <nakilon> because they assign this issue https://github.com/grpc/grpc/issues/26655 to pythonist who commit 3 days a week and already have 60 issues assigned
07:38:52 -!- Corbin has quit (Ping timeout: 245 seconds).
07:39:17 <nakilon> oh looks like he supports all the languages at the same time, and they've already increased CI build timeouts from 60 minutes to 90 https://github.com/grpc/grpc/pull/27230/files
07:58:57 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87932&oldid=86861 * YamTokTpaFa * (-2) /* Definition of Perl keywords */ '''I AM SORRY I FORGOT x'''
08:06:09 -!- hendursa1 has joined.
08:06:41 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87933&oldid=87932 * YamTokTpaFa * (+96)
08:09:36 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:14:54 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87934&oldid=87933 * YamTokTpaFa * (+84) /* Definition of Perl keywords */
08:22:07 -!- Koen_ has joined.
08:24:04 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87935&oldid=87934 * YamTokTpaFa * (+222) /* Definition of Perl keywords */ WTF new news
08:38:10 -!- joast has quit (Ping timeout: 240 seconds).
08:44:05 -!- wib_jonas has joined.
08:45:27 -!- joast has joined.
08:51:24 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87936&oldid=87935 * YamTokTpaFa * (+118) /* Definition of Perl keywords */
08:55:14 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87937&oldid=87936 * YamTokTpaFa * (+132) /* Definition of Perl keywords */
08:56:20 -!- imode has quit (Ping timeout: 252 seconds).
08:56:36 <esolangs> [[Ppencode]] https://esolangs.org/w/index.php?diff=87938&oldid=87937 * YamTokTpaFa * (+20) /* Definition of Perl keywords */
09:00:08 -!- daggy1234[m] has quit (Quit: You have been kicked for being idle).
09:05:15 <wib_jonas> I mostly agree with ais523 here. Python 3 does the string stuff right for a high-level language: there are separate types for byte string and unicode string, and you generally don't need to know how the unicode strings are represented. It's not perfect, ideally you'd want unicode strings to have an internal form where they store utf-8 and decode
09:05:15 <wib_jonas> that only when necessary, since we do a lot of utf-8 IO, but it's still very good. Rust kind of has the approach right for a low-level language where you want to control the representation explicitly in the type system, but the standard library is somewhat lacking in string operations, so you might sometimes want to use extra libraries. But since
09:05:16 <wib_jonas> it's a low-level language, it does expose enough API that you can do this and can still convert to the standard library APIs and call the standard library functions when they make sense.
09:09:07 <wib_jonas> `<ais523> hmm… now I'm wondering if there's a programming language with case-insensitive keywords and one of them contains the substring "ss"' => is "keyword" relevant here? those languages usually also have c-i user-defined identifiers.
09:09:09 <HackEso> ​<ais523>? No such file or directory
09:10:54 <nakilon> there is no need in another class if all strings are just strings
09:12:51 <nakilon> you think about them like about a sequence of codepoints and you don't care about the internal presentation
09:13:07 <wib_jonas> ‘<ais523> zzo38: I actually think Turkic case-folding might be the *only* case in which you can't infer the case-folding rules from the codepoints being used, but I'm not sure’ => that is the only case I know of too, but we'll have to check the sources of libICU to be sure.
09:14:39 <wib_jonas> ‘<ais523> it would have simplified things if "Turkic dotless ı" and "Turkic dotted i" were different codepoints from "non-Turkic lowercase i"’ => I don't think so. The turkish i is one of those cases where there's no good solution, it's all tradeoffs. In particular if you did that, then you'd have problems when you copy a latin script proper
09:14:39 <wib_jonas> name into a turkish text and later try to uppercase it.
09:16:04 <wib_jonas> The only solution that might work is to go back in time and convince/bribe/force Kemal Atatürk to not start that convention, but this might be dangerous or impossible for time-travel-related reasons
09:20:36 <wib_jonas> ‘hmm, I don't think the user agent has the ability to tell the server what character encoding it wants the server to send’ => there's an Accept-Charset request header in HTTP/1.1, but I doubt it does much in practice
09:24:53 <wib_jonas> ‘I think the main options are "look at the locale environment variables (or OS equivalent)", "always use/assume UTF-8", and intermediate combinations of those’ => there's also automatically guessing from the (beginning of) input, and of course explicit command-line options or environment variables, with intermediate stuff between the four.
09:27:01 <wib_jonas> for example, I might write a script with a command-line option to set encoding of the input, a default that's either utf-8 or utf-16-le, and a warning if you keep the default utf-8 but the input is guessed to be utf-16 or vice versa, with the explicit input encoding command-line option silencing that warning.
09:32:06 <wib_jonas> ‘<ais523> I guess if you're sending images, you could send a QR code’ => I recently saw a large size ad poster where most of the poster was printed in high resolution, presmuably from a vector image, but it also contained a QR code that was blown up from a too small resolution bitmap that has antialiasing, and blowing it up to the huge size and
09:32:07 <wib_jonas> high resolution printing of the poster made those artifacts show up as various 0.005 m sized gray squares on most of the borders of a 0.03 m sized QR code grid
09:33:41 <wib_jonas> ‘<fizzie> ais523: FWIW, supplying a Chrome-like user agent changes a lot of other things too.’ => does that depend on just the user-agent, rather than other HTTP stuff such as other request headers?
09:33:53 <wib_jonas> and eg. whether you send a HTTP/2 request
09:37:18 <wib_jonas> "<ais523> the HTML spec actually says that the default encoding for unmarked webpages should be assumed based on the locale within which their web browser is running" => that was the state of art, yes, but with an encoding setting in the menu of the browser client
09:40:16 <wib_jonas> ‘<ais523> although, is "qqx" in the right namespace for private-use language codes?’ => yes, https://en.wikipedia.org/wiki/ISO_639-2#Reserved_for_local_use
09:43:52 <wib_jonas> oerjan: I regularly get a significant part of the spam in hungarian. Some of them in broken badly auto-translated hungarian, some in well-phrased hungarian. I don't find that too surprising.
09:44:18 <oerjan> wib_jonas: the surprise is that i'm not finnish or in finland hth
09:44:57 <wib_jonas> oerjan: yeah. I occasionally get spam in all sorts of random common languages. those are easier to discard because they're obviously spam.
09:45:53 <oerjan> also, that i used to receive finnish spam ridiculously often some years ago.
10:00:08 -!- oerjan has quit (Quit: Later).
11:01:03 -!- arseniiv has joined.
11:26:28 <nakilon> omg future is today
11:26:51 <nakilon> self-driving taxi in Moscow starts operating this autumn
11:27:38 <nakilon> (maybe correct idiom is "future is now")
11:33:07 <int-e> . o O ( yay, killer drones )
12:20:53 -!- Koen__ has joined.
12:23:40 -!- Koen_ has quit (Ping timeout: 260 seconds).
12:27:30 <nakilon> `prefix
12:27:31 <HackEso> prefix? No such file or directory
12:27:54 <nakilon> ?prefix
12:27:54 <lambdabot> Unknown command, try @list
12:36:46 <nakilon> `help
12:36:46 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
12:37:24 <nakilon> is `run the same as ```?
12:37:37 <nakilon> ^help
12:37:37 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
12:38:58 <nakilon> ?wiki wiki
12:38:59 <lambdabot> https://wiki.haskell.org/wiki
12:39:03 <wib_jonas> nakilon: not quite. `run is a builtin that's hard or impossible to override by messing up commands in /hackenv/bin . it's probably redundant given that you can also do `/bin/bash -c but it can't hurt and will have to stay for compatibility.
12:39:03 <nakilon> ?gwiki wiki
12:39:04 <lambdabot> No Result Found.
12:39:35 <wib_jonas> nakilon: also ``` pipes the output through a stupid meme filter that we should somehow get rid of but I don't dare to just remove it from the command
12:39:49 <nakilon> meme filter?
12:40:02 <wib_jonas> nakilon: yes. it's called rnooodl or something.
12:40:11 <wib_jonas> check the source codes if you want to know
12:40:36 <wib_jonas> it annoys me because it means any lines that aren't terminated by a newline byte are eaten if the command times out:
12:40:40 <nakilon> `cbt ```
12:40:40 <HackEso> cat: '/hackenv/bin/```': No such file or directory
12:40:52 <wib_jonas> ``` echo foo; echo -n bar; sleep 9999
12:41:08 <wib_jonas> nakilon: try with one less backtick
12:41:15 <nakilon> `cbt ``
12:41:16 <HackEso> ​#!/bin/sh \ export LANG=C; exec bash -O extglob -c "$@" | rnooodl
12:41:21 <wib_jonas> the first one is just the invocation character for HackEso\
12:41:24 <nakilon> oh, sure
12:41:27 <nakilon> one is prepended
12:41:27 <HackEso> No output.
12:41:38 <wib_jonas> um
12:41:48 <wib_jonas> why doesn't that show foo?
12:41:56 <wib_jonas> maybe it's even more buffered than I thought?
12:41:58 <nakilon> `cbt rnooodl
12:42:00 <HackEso> perl -pe 's/([Nn])ooodl/"$1@{[o x(3+rand 7)]}dl"/ge'
12:42:09 <wib_jonas> `/bin/sh -cecho foo; echo -n bar; sleep 9999
12:42:10 <HackEso> ​/bin/sh: 0: Illegal option -h
12:42:22 <wib_jonas> oh yeah, that's why you can't do that
12:42:26 <wib_jonas> `run echo foo; echo -n bar; sleep 9999
12:43:02 <HackEso> foo \ bar
12:43:02 <wib_jonas> `perl -eprint("one\ntwo");sleep 9999
12:43:19 <nakilon> can't set no buffer for perl cmd?
12:43:33 <HackEso> No output.
12:43:52 <wib_jonas> nakilon: that wouldn't be enough. you'd have to implement it properly to only buffer one character, and even that only if it's the "d" at the right context
12:44:59 <wib_jonas> that would be possible but so far I was lazy to do it
12:45:08 <wib_jonas> mostly because I hate rnooodl even besides the buffering
12:46:33 <nakilon> compoundng commands here is a cool feature https://esolangs.org/wiki/Bfbot
12:47:28 <nakilon> not sure why this bot is in [People]
12:47:42 <nakilon> oh fungot too
12:47:42 <fungot> nakilon: also how can i know what you come up with to justify rolling my own... php witch i don't use it
12:48:19 <nakilon> fungot I thought you are b_jonas until I reached the php
12:48:19 <fungot> nakilon: is he a total fnord versions.
12:48:40 <wib_jonas> oh good
12:49:07 <wib_jonas> although "PHP! Witch! I don't use that" does sound kind of like me
12:51:29 <nakilon> why there is no php bot
12:52:31 <nakilon> I remember on Rusnet the main bot on #programming and all related channels was one written in Delphi
13:11:13 -!- oerjan has joined.
13:14:23 <oerjan> <nakilon> (maybe correct idiom is "future is now") <-- needs a "the" in front
13:16:43 <nakilon> thanks
13:17:31 <oerjan> `prefixes (i think you may have been looking for this)
13:17:33 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ? or > , thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =, velik \.
13:17:50 <nakilon> exactly
13:17:55 <fizzie> There's also an implicit cat in all the commands, if memory serves as a way to ensure the standard output stream does not look like a terminal. (Some programs adapt their output format, and the argument was, output suitable for pipes is more likely to be output suitable for IRC.)
13:17:58 <nakilon> instead I went through wiki article
13:18:54 <nakilon> lambdabot is prefix squatter
13:19:47 <oerjan> technically it also squats :k and :t
13:20:27 <oerjan> as well as its own name in some cases
13:20:32 <oerjan> lambdabot, @run 2
13:20:33 <lambdabot> 2
13:21:05 <oerjan> but those are hard to do by accident and the list was getting too long
13:21:40 <oerjan> :k hm
13:21:41 <lambdabot> error: Not in scope: type variable ‘hm’
13:22:25 <oerjan> :k Monad
13:22:26 <lambdabot> (* -> *) -> Constraint
13:22:37 <fizzie> Full disclosure: I've not removed EgoBot's ! from that list as a sneaky plan to squat ! for "official" commands handled by the `esolangs` bot, in case such commands ever start to exist.
13:23:51 <oerjan> the bfjoust bots also use ! but only with specific commands following.
13:24:38 <oerjan> and it worked because all the bots using ! were silent if there's not a command match
13:24:45 <oerjan> oh and fungot too
13:24:46 <fungot> oerjan: i think that i aren t sarahbot are me? hm.
13:24:56 <oerjan> !bf ,[.,]!Hi
13:25:01 <oerjan> no wait
13:25:14 <oerjan> ^bf ,[.,]!Hi
13:25:15 <fungot> Hi
13:25:24 <oerjan> !logs
13:25:34 <oerjan> that one used to respond in private
13:25:40 <fizzie> fungot: Yeah, sarahbot isn't even a bot on this channel.
13:25:40 <fungot> fizzie: imagine this, means? completely just 1
13:25:42 <oerjan> by ... glogbot, i think
13:26:00 <fizzie> (I think sarahbot was from #scheme.)
13:26:42 <oerjan> well fungot is also silent on non-matching commands, that part was right
13:26:43 <fungot> oerjan: the chan serv answers to all comers at apple stores. :o fnord hours left before the next statement and write a bytechanger interpreter in asm, c, pascal, perl, pntr, refc, roma, and the
13:26:50 <oerjan> ^nosuchcommand
13:28:19 <nakilon> fungot how much is fnord hours?
13:28:20 <fungot> nakilon: anyone knows where i can find out what extras those contain.
13:29:39 <fizzie> Heh, I wasn't aware Apple stores have ChanServ in (on?) them.
13:36:25 -!- hendursa1 has quit (Quit: hendursa1).
13:38:29 -!- hendursaga has joined.
13:43:20 -!- wib_jonas has quit (Quit: Client closed).
13:52:12 -!- Koen__ has quit (Remote host closed the connection).
13:56:27 -!- Sgeo has joined.
13:58:57 -!- wib_jonas has joined.
13:59:24 <wib_jonas> perlbot prefixes
13:59:25 <perlbot> wib_jonas: Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ? or > , thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =, velik \.
14:34:01 <wib_jonas> `` TZ=Pacific/Auckland python3 -c '"Getting the current wallclock time in the local timezone and UTC."; import datetime as g; n = g.datetime.now; [print(t.strftime("%Y-%m-%dT%H:%M:%S%z %Z")) for t in [n().astimezone(), n(tz = g.timezone.utc)]];'
14:34:04 <HackEso> 2021-09-09T02:34:03+1200 NZST \ 2021-09-08T14:34:03+0000 UTC
14:34:19 <wib_jonas> ^ Python's datetime module is so nontrivial to use that I want to get these magic incantations to the channel log
14:35:04 <wib_jonas> the TZ override is there only to make this a better test, since otherwise HackEso default to UTC timezone
14:35:57 -!- sprock has quit (Ping timeout: 265 seconds).
14:41:59 <wib_jonas> by the way,
14:42:01 <wib_jonas> `` TZ=uWIw/Dtca/FlSM date +%Z # esoteric way to strip the part of a filename after the first slash
14:42:03 <HackEso> uWIw
14:43:00 <APic> Cool ☺
14:43:11 <wib_jonas> it doesn't quite work for all filenames
14:45:28 -!- dyeplexer has joined.
15:12:23 <nakilon> $ ruby -e '[Time.now, Time.now.getutc].each{ |n| puts n.strftime "%FT%T%z %Z" }'
15:12:23 <nakilon> 2021-09-08T18:11:32+0300 MSK / 2021-09-08T15:11:32+0000 UTC
15:13:06 <wib_jonas> `` ruby -e '[Time.now, Time.now.getutc].each{ |n| puts n.strftime "%FT%T%z %Z" }' # does that work in this version of ruby?
15:13:08 <HackEso> 2021-09-08T15:13:08+0000 UTC \ 2021-09-08T15:13:08+0000 UTC
15:13:20 <wib_jonas> `` TZ=Pacific/Auckland ruby -e '[Time.now, Time.now.getutc].each{ |n| puts n.strftime "%FT%T%z %Z" }' # does that work in this version of ruby?
15:13:21 <HackEso> 2021-09-09T03:13:21+1200 NZST \ 2021-09-08T15:13:21+0000 UTC
15:13:22 <nakilon> oh I forgot it's installed
15:14:31 <wib_jonas> `` TZ=Pacific/Auckland; for r in "" -u; do date $r +"%Y-%m-%dT%H:%M:%S%z %Z"; done
15:14:32 <HackEso> 2021-09-08T15:14:32+0000 UTC \ 2021-09-08T15:14:32+0000 UTC
15:14:42 <wib_jonas> `` export TZ=Pacific/Auckland; for r in "" -u; do date $r +"%Y-%m-%dT%H:%M:%S%z %Z"; done
15:14:43 <HackEso> 2021-09-09T03:14:42+1200 NZST \ 2021-09-08T15:14:43+0000 UTC
15:14:54 <wib_jonas> looks good
15:17:33 <nakilon> `` ruby -rtzinfo -e 't = TZInfo::Timezone.get("Pacific/Auckland").to_local Time.now; [t, t.getutc].each{ |n| puts n.strftime "%FT%T%z %Z" }'
15:17:34 <HackEso> ​/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- tzinfo (LoadError) \ from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
15:18:07 <nakilon> this is the same just extracting timezone via standard gem tzinfo (that isn't installed))
15:18:47 <nakilon> so you could adjust timezone by a runtime var
15:30:01 <wib_jonas> `` TZ=Pacific/Auckland perl -e'use Date::Manip::Date; $b = Date::Manip::Date->new(); for $r ([],["setdate","now,UTC"]) { print $b->new("now",$r)->printf("%Y-%m-%dT%H:%M:%D%z %Z\n"); }'
15:30:08 <HackEso> 2021-09-09T03:30:09/09/21+1200 NZST \ 2021-09-09T03:30:09/09/21+0000 UTC
15:30:26 <wib_jonas> `` TZ=Pacific/Auckland perl -e'use Date::Manip::Date; $d = Date::Manip::Date->new("now"); for $_r (0,1) { print $d->printf("%Y-%m-%dT%H:%M:%D%z %Z\n"); $d->convert("UTC"); }'
15:30:28 <HackEso> 2021-09-09T03:30:09/09/21+1200 NZST \ 2021-09-08T15:30:09/08/21+0000 UTC
15:30:37 <wib_jonas> either of these work with the Date::Manip module
15:36:52 <nakilon> weird that perl is this longer here
15:37:39 <nakilon> `` TZ=Pacific/Auckland perl -e'use Date::Manip::Date; $d = Date::Manip::Date->new("now"); for $_r (0,1) { print $d->printf("%FT%T%z %Z\n"); $d->convert("UTC"); }'
15:37:41 <HackEso> Thursday, September 9, 2021T03:37:40+1200 NZST \ Wednesday, September 8, 2021T15:37:40+0000 UTC
15:37:48 <nakilon> oops
15:40:43 <wib_jonas> nakilon: more like it's not golfed. there were shorter ways to print these in perl if I wanted.
15:41:16 <wib_jonas> plus that's just one of the datetime modules available in perl
15:41:41 <wib_jonas> incidentally you can use the format "%O%z %Z" with Date::Manip.
15:42:12 <wib_jonas> but my goal here isn't to print the date in this one format, but to show how to get a date object (with which I could do arithmetic) and then print it in any format I choose
15:42:19 <nakilon> yeah I don't know how much space perl takes when it's not golfed
15:42:34 <wib_jonas> the python statement does that too, if I just wanted to print the current time in that format it could be shorter
15:43:48 <nakilon> `` TZ=Pacific/Auckland ruby -e 't = Time.now; p [t, t.class, t.zone]'
15:43:49 <HackEso> ​[2021-09-09 03:43:48 +1200, Time, "NZST"]
15:45:58 <nakilon> there are so many methods in classes Time, Date and DateTime -- impossible to remember them ..D
15:46:36 <nakilon> not even saying about all the trash that is added by Rails
15:47:43 -!- hendursaga has quit (Remote host closed the connection).
15:47:56 <nakilon> most of it is just the same under another name -- people invent some fancy methods, shortcuts, implement them in Rails, and then when it gets implemented in pure Ruby they don't throw it away from Rails, and it's just like a tumour
15:48:07 -!- hendursaga has joined.
15:48:19 <wib_jonas> if you want something short, then try one of
15:48:26 <wib_jonas> ``` date +%FT%T%z\ %Z; date --rfc-3=s
15:48:27 <HackEso> 2021-09-08T15:48:26+0000 UTC \ 2021-09-08 15:48:26+00:00
15:49:07 <wib_jonas> throw in a -u switch for UTC
15:49:16 -!- oerjan has quit (Quit: leaving).
15:49:20 <wib_jonas> ``` export TZ=Pacific/Auckland; date +%FT%T%z\ %Z; date --rfc-3=s
15:49:21 <HackEso> 2021-09-09T03:49:20+1200 NZST \ 2021-09-09 03:49:20+12:00
15:49:31 <wib_jonas> ``` export TZ=Pacific/Auckland; date -u +%FT%T%z\ %Z; date -u --rfc-3=s
15:49:32 <HackEso> 2021-09-08T15:49:32+0000 UTC \ 2021-09-08 15:49:32+00:00
15:50:39 -!- wib_jonas has quit (Quit: Client closed).
15:50:42 <nakilon> ``` ruby -e '$><<`date +%FT%T%z\\ %Z`<<`date --rfc-3=s`'
15:50:44 <HackEso> 2021-09-08T15:50:43+0000 UTC \ 2021-09-08 15:50:43+00:00
15:50:52 <nakilon> the latter does not work on macos
15:51:02 <nakilon> date: illegal option -- -
15:51:20 <nakilon> i.e. on BSD I assume
16:31:12 -!- Koen_ has joined.
16:55:56 -!- sprock has joined.
17:06:07 <b_jonas> nakilon: ... ok. you might need to install GNU coreutils for that. I don't use an OS X so I can't really help in that. (I could tell for Windows.)
17:37:20 -!- scjosh has joined.
17:38:43 -!- VilgotanL has joined.
17:38:45 <VilgotanL> h
17:45:39 <b_jonas> ais523: re https://logs.esolangs.org/libera-esolangs/2021-09-08.html#l2c ‘I actually think Turkic case-folding might be the *only* case in which you can't infer the case-folding rules from the codepoints being used’, I'm looking at the ICU sources right now.
17:45:46 <b_jonas> there's a enum in ucase.h that defines the constants UCASE_LOC_UNKNOWN UCASE_LOC_ROOT UCASE_LOC_TURKISH UCASE_LOC_LITHUANIAN UCASE_LOC_GREEK UCASE_LOC_DUTCH UCASE_LOC_ARMENIAN which ICU uses internally to know what casefolding rules to apply. I believe this isn't an exposed API. the correct constant is computed from the locale by ucase.cpp:ucase_getCaseLocale
17:45:55 <b_jonas> ucase.cpp also handles (at least some of the) actual locale-dependent case-conversion rules. there are comments like ‘// և ligature ech-yiwn uppercases to ԵՒ=ech+yiwn by default and in Western Armenian, but to ԵՎ=ech+vew in Eastern Armenian.’
17:46:06 <keegan> oh my
17:46:18 <b_jonas> UCASE_LOC_LITHUANIAN has to do something with dots on i and j with accents but I don't quite understand what; UCASE_LOC_DUTCH something with "IJ", and UCASE_LOC_GREEK does some magic with ancient greek accented characters.
17:47:20 <b_jonas> so, at least as libicu is concerned, turkish case folding isn't the only locale-dependent one, but some of this might be an artifact of ICU wanting to implement both practical casefolding and strict conformance to unicode casefolding
17:48:03 <b_jonas> this is from ICU4C version 69.1
17:48:06 -!- VilgotanL has quit (Remote host closed the connection).
17:48:18 <b_jonas> I don't think I want to delve into this deeper than that
17:48:26 <b_jonas> to delve into the source code that is
18:10:46 -!- Koen_ has quit (Quit: Leaving...).
18:16:42 -!- imode has joined.
18:16:52 -!- dyeplexer has quit (Remote host closed the connection).
18:17:48 -!- delta23 has joined.
19:28:20 -!- sprock has quit (Ping timeout: 260 seconds).
20:04:14 -!- sprock has joined.
20:15:11 <zzo38> I don't know how (or if) TRON handles case folding. I also think someone else on the esoteric programming IRC mentioned idea to have split codes with the language and glyph, that way you could also handle case folding properly, too
20:17:52 <zzo38> Also, you can implement Turkish case folding with Turkish character encoding.
20:51:51 <esolangs> [[Talk:Mogus]] N https://esolangs.org/w/index.php?oldid=87939 * ArthroStar11 * (+1621) Created page with "== Attempt at an interpreter == Hi, I attempted to make an interpreter for this language [https://drive.google.com/file/d/1RotVm5i9xgDN94vK47tBUwHFiOGVAmLv/view?usp=sharing li..."
20:53:01 -!- sprock has quit (Ping timeout: 252 seconds).
20:56:20 -!- Lord_of_Life_ has joined.
20:57:23 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
20:59:00 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
20:59:28 -!- Everything has quit (Quit: leaving).
21:30:02 <fizzie> Bleh. I use this one place's free secondary DNS service, and they've been pretty laggy in the past in terms of responding to notifys to refresh the zone, so I've had to bump up the ACME dns-01 verification delay all the way to 300 seconds. But now they've gone and started to take like half an hour. So the certbot update of esolangs.org fails. :/
21:30:13 <fizzie> Maybe I need to do that thing where I delegate the `_acme-challenge` names as a subdomain that's only hosted by the primary nameserver. Since if it's down, it's not like the dynamic update would work anyway.
21:30:24 <fizzie> Or else I should've just used the HTTP-based challenge like normal people.
21:39:40 -!- sprock has joined.
21:45:01 -!- riv has quit (Quit: Leaving).
22:17:13 -!- chiselfuse has joined.
22:18:47 -!- arseniiv has quit (Ping timeout: 252 seconds).
22:19:43 -!- lambdabot has quit (Remote host closed the connection).
22:20:39 -!- lambdabot has joined.
2021-09-09
01:26:36 <fizzie> Bah. I think there's no way to tell the certbot-dns-rfc2136 plugin that it should attempt to do an RFC 2136 update to some *other* domain name, under the assumption it's been CNAME'd to a different domain. :/ I could probably script it on top of a manual auth hook and nsupdate, but :effort:
01:43:46 -!- delta23 has quit (Quit: Leaving).
02:14:15 <nakilon> "I don't use an OS X so I can't really help in that" -- I just inform that that command isn't compatible
02:16:56 -!- Sgeo_ has joined.
02:17:21 -!- Sgeo has quit (Read error: Connection reset by peer).
04:04:30 -!- dyeplexer has joined.
04:20:10 -!- chiselfuse has quit (Remote host closed the connection).
04:35:15 -!- Corbin has joined.
05:21:51 -!- Sgeo_ has quit (Read error: Connection reset by peer).
05:22:36 -!- velik has quit (Remote host closed the connection).
05:49:29 -!- velik has joined.
05:50:32 <nakilon> \wiki Linux
05:50:33 <velik> (alt: 'Linux kernel') Family of Unix-like operating systems
05:50:39 <nakilon> \wiki Linux kernel
05:50:40 <velik> Free and open-source Unix-like operating system kernel
05:51:53 <nakilon> \wiki VPCLMULQDQ
05:51:54 <velik> AVX-512 are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture (ISA) proposed by Intel in July 2013, and implemented in Intel's Xeon Phi x200 (Knights Landing) and Skylake-X CPUs; this includes the Core-X series (excluding the Core i5-7640X and Core i7-7740X), as well as the new Xeon Scalable Processor Family and Xeon D-2100 Embedded Series.[LF]
05:52:11 <nakilon> \wiki lasjdkjhasdjasbd
05:52:11 <velik> nothing was found
05:52:31 <nakilon> oh I'll append the ' ' to output
05:52:33 <nakilon> *prepend
06:00:38 -!- velik has quit (Remote host closed the connection).
06:00:57 -!- velik has joined.
06:06:53 -!- velik has quit (Remote host closed the connection).
06:07:12 -!- velik has joined.
06:12:54 -!- velik has quit (Remote host closed the connection).
06:13:11 -!- velik has joined.
06:25:32 -!- velik has quit (Remote host closed the connection).
06:25:58 -!- velik has joined.
06:29:24 <esolangs> [[Velik]] https://esolangs.org/w/index.php?diff=87940&oldid=87683 * Nakilon * (+472) added examples of \wiki command
06:32:16 <nakilon> \wiki befunge
06:32:17 <velik> Chris Pressey[LF]
06:32:21 <nakilon> damn
06:32:29 <nakilon> badly formatted one I guess
06:43:39 <nakilon> \wiki befunge
06:43:40 <velik> Befunge is a two-dimensional stack-based, reflective, esoteric programming language. It differs from conventional languages in that programs are arranged on a two-dimensional grid. "Arrow" instructions direct the control flow to the left, right, up or down, and loops are constructed by sending the control flow in a cycle. It has been described as "a cross between Forth and Lemmings".[LF]
06:44:19 <nakilon> fixed the page, "programming language" Infobox was broken
06:49:37 -!- velik has quit (Remote host closed the connection).
06:50:04 -!- velik has joined.
07:14:17 -!- oerjan has joined.
07:15:39 -!- benji has quit (Quit: ZNC - https://znc.in).
07:16:10 -!- benji has joined.
07:17:33 -!- benji has quit (Client Quit).
07:18:03 -!- benji has joined.
07:20:55 -!- benji has quit (Client Quit).
07:21:27 -!- benji has joined.
07:21:46 -!- benji has quit (Client Quit).
07:22:16 -!- benji has joined.
08:06:53 -!- hendursa1 has joined.
08:09:21 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:21:55 -!- arseniiv has joined.
09:02:05 -!- joast has quit (Ping timeout: 260 seconds).
09:16:22 -!- joast has joined.
09:32:40 -!- oerjan has quit (Quit: Later).
09:33:05 -!- imode has quit (Ping timeout: 252 seconds).
09:46:28 -!- velik has quit (Remote host closed the connection).
09:46:59 -!- velik has joined.
10:44:59 <esolangs> [[HeLiiLii]] N https://esolangs.org/w/index.php?oldid=87941 * Magnogen * (+2431) Created page with "==About HeLiiLii== [['''HeLiiLii''']] (pronounced heh-lee-lee) is an [[esoteric programming language]] designed by [[User:Magnogen]] in 2021, although the idea behind it was..."
11:20:58 <esolangs> [[HeLiiLii]] https://esolangs.org/w/index.php?diff=87942&oldid=87941 * Magnogen * (+1438)
11:27:48 <esolangs> [[HeLiiLii]] M https://esolangs.org/w/index.php?diff=87943&oldid=87942 * Magnogen * (+25) full name pog
11:30:12 <esolangs> [[HeLiiLii]] https://esolangs.org/w/index.php?diff=87944&oldid=87943 * Magnogen * (+14) heliilii
12:40:29 -!- velik has quit (Remote host closed the connection).
12:41:01 -!- velik has joined.
12:44:00 <nakilon> found that Wikidata has better summaries; code even became shorter
12:48:17 -!- oerjan has joined.
12:48:26 <nakilon> \wiki VPCLMULQDQ
12:48:27 <velik> AVX-512 -- Instruction set extension developed by Intel https://en.wikipedia.org/wiki/AVX-512
12:50:59 -!- delta23 has joined.
12:51:26 <nakilon> \wiki befunge
12:51:27 <velik> Befunge -- esoteric, 2-dimensional programming language https://en.wikipedia.org/wiki/Befunge
12:51:41 <oerjan> i seem to have read that wikipedia used the wikidata summaries at one point but then changed their policy not to
13:07:23 <nakilon> unfortunately such articles like befunge and avx don't have {short description} so those large outputs were the results of the whole first paragraph text parsing; switching to wikidata avoids these spontaneous big replies; I hope wikidata has summary for everything, we'll see
13:08:05 <nakilon> if not, I'll reattach the first paragraph parsing as a fallback
13:19:22 -!- hendursa1 has quit (Quit: hendursa1).
13:20:55 -!- hendursaga has joined.
13:26:00 <nakilon> though I can adapt that parsing to a... \esowiki
13:33:56 -!- velik has quit (Remote host closed the connection).
13:34:23 -!- velik has joined.
13:39:32 <esolangs> [[Velik]] https://esolangs.org/w/index.php?diff=87945&oldid=87940 * Nakilon * (+434) added \esowiki
13:40:31 <nakilon> b_jonas I just spotted you wrote "commands starting with a backspace..." https://esolangs.org/w/index.php?title=Velik&diff=prev&oldid=85671
13:40:37 <nakilon> lol
13:40:47 <nakilon> \esowiki befunge
13:40:48 <velik> Befunge is a two-dimensional esoteric programming language invented in 1993 by Chris Pressey with the goal of being as difficult to compile as possible. Code is laid out on a two-dimensional grid of instructions, and execution can proceed in any direction of that grid. https://esolangs.org/wiki/Befunge
13:43:20 <nakilon> I suppose weird "Note" at the top of [wiki brainfuck] isn't a usual wikimedia Template that the parsing gem is used to, so it thinks it's the actual first paragraph (
13:43:23 <velik> https://esolangs.org/wiki/Brainfuck/w/index.php%3Ftitle=Talk:Brainfuck/index.php
13:43:48 <nakilon> woah, this url is weird
13:45:38 <nakilon> this is weird: 1. https://i.imgur.com/zLkVuWF.png 2. https://i.imgur.com/X0poLvz.png
13:51:16 -!- hanif has joined.
13:53:40 -!- velik has quit (Remote host closed the connection).
13:54:07 -!- velik has joined.
13:55:13 -!- Sgeo has joined.
13:55:54 <esolangs> [[User:Nakilon]] M https://esolangs.org/w/index.php?diff=87946&oldid=83634 * Nakilon * (-25) can't be found on freenode
13:59:53 <esolangs> [[JSInstruction]] N https://esolangs.org/w/index.php?oldid=87947 * Dominicentek * (+3102) Created page with "JSInstruction is an esoteric programming language written by [User:Dominicentek]. The language has only one built in instruction and you can add more by including JavaScript c..."
14:01:10 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87948&oldid=87947 * Dominicentek * (-5)
14:02:24 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87949&oldid=87948 * Dominicentek * (+42)
14:02:42 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87950&oldid=87949 * Dominicentek * (+4)
14:03:12 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=87951&oldid=87865 * Dominicentek * (+20) /* J */
14:03:20 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
14:03:30 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87952&oldid=87950 * Dominicentek * (+2)
14:03:45 <fizzie> TBH I think unqualified "wiki" on this channel should mean our own one, not WikiPedia.
14:04:19 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87953&oldid=87952 * Dominicentek * (-1)
14:05:09 <nakilon> fair point
14:05:22 <nakilon> what would be the command for wikipedia then? \wikipedia? \wp?
14:07:27 <hanif> why don't you use [[...]] for inline links instead of [wiki ...]? i guess you can then make your bot ignore the esolangs bot
14:07:55 <hanif> nakilon: "wp"'s pretty unambigious imo, so both'd work
14:09:31 <fizzie> I use "wp" as my personal search keyword, but that's just me.
14:11:04 <hanif> or even just 'w' which i think is how other wikimedia sites link to wikipedia (also ddg uses the !w bang for searching wikipedia)
14:11:26 <nakilon> what is ddg
14:11:36 <fizzie> And yeah, "Brainfuck/w/index.php?title=Talk:Brainfuck/index.php" is a different language than "Brainfuck", but it's unfortunate if that comes up as the best match there.
14:11:40 <Corbin> duckduckgo.com/
14:12:11 <esolangs> [[User:Dominicentek]] https://esolangs.org/w/index.php?diff=87954&oldid=87179 * Dominicentek * (+39)
14:12:22 <esolangs> [[User:Dominicentek]] https://esolangs.org/w/index.php?diff=87955&oldid=87954 * Dominicentek * (+4)
14:12:42 <nakilon> oh I didn't even realise that's a language
14:16:07 <fizzie> I feel like it's in the same category of silly names as "Real Fast Nora's Hair Salon 3: Shear Disaster Download" and "Esolang talk:Klat gnalosE".
14:19:22 -!- chiselfuse has joined.
14:22:25 <Sgeo> If I have a matrix multiplication A*B, I know I can interpret that as A transforming B. Is there any way to interpret it as B taking some action of rotation + translation on A? Maybe in a different order? (If it's a translate-rotate matrix)
14:24:15 <oerjan> Sgeo: transposition reverses multiplication
14:24:32 <Sgeo> But then the resulting matrix is transposed
14:25:40 <Corbin> Then transpose again. Another way to put this is that the category of matrices is self-dual.
14:26:20 <Corbin> (That's the category whose objects are the natural numbers and arrows are matrices; composition is matrix multiplication, and the opposite category just transposes everything.)
14:28:31 <oerjan> you can think of applying (A*B)^t to a vector as applying the _transpose_ of that vector on the left of A*B
14:28:54 <oerjan> (a vector being seen as an n by 1 matrix)
14:29:49 <oerjan> that is, ((A*B)^t*v) = (v^t*A*B)^t
14:31:18 <Sgeo> glh::matrix4f newCameraMatrix = slCameraMatrix * m_mat4HMDPose * eyeLocation;
14:31:51 <Sgeo> Are there translations/rotations that could be done to slCameraMatrix that would be equivalent to that? (knowing m_mat4HMDPose and eyeLocation are translation/rotation matrices)
14:32:35 -!- spruit11 has joined.
14:32:39 <esolangs> [[Meow]] N https://esolangs.org/w/index.php?oldid=87956 * Martsadas * (+1603) Created page with "[[Meow]] is a joke esolang created by [[User:Martsadas]] that has 2 registers that can store integers<br> <br> === Instructions: === {| class="wikitable" ! Instruction !! What..."
14:33:00 <esolangs> [[User:Martsadas]] M https://esolangs.org/w/index.php?diff=87957&oldid=87787 * Martsadas * (+11) Meow
14:35:47 <oerjan> Sgeo: if all the matrices are invertible, A*B=C*A implies C=A*B*A^-1. that is going to depend on A.
14:36:14 <oerjan> if not all of the matrices are invertible, there might not be solution, or it might not be unique.
14:36:21 <oerjan> *a solution
14:38:16 <oerjan> s/all the matrices/A and B/, you get C for free.
14:38:44 <Corbin> The notes at https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluLookAt.xml might be helpful in this particular case, too.
14:38:54 <Sgeo> Hmm. A*B*C = D*E*A
14:38:55 <Sgeo> would let some of the operations occur in a different order
14:40:30 <oerjan> Sgeo: that's not really going to help because what i said about C before now applies to M=D*E
14:46:49 <hanif> http://golf.shinh.org/p.rb?Evil+Numbers some familiar names
14:49:36 <oerjan> yeah we played around with that here back in ... 2015, according to the date beside my name
14:50:28 <oerjan> i see henkma is no longer the unbeaten haskell champion
14:51:27 <oerjan> well seems lynn is now. she used to be a regular here.
14:53:20 <oerjan> (or well, "here" that used to be on freenode)
14:53:39 -!- chiselfuse has quit (Remote host closed the connection).
14:53:50 -!- chiselfuse has joined.
14:55:40 -!- velik has quit (Remote host closed the connection).
14:55:53 -!- chiselfuse has quit (Client Quit).
14:56:10 -!- velik has joined.
14:58:19 -!- chiselfuse has joined.
14:58:22 <nakilon> [[velik]]
14:58:23 <velik> https://esolangs.org/wiki/Velik
14:58:27 <nakilon> \wiki velik
14:58:29 <velik> velik is an IRC bot maintained by User:Nakilon. It was created in 2021-05. It is resident on the libera/#esolangs channel. It can execute RASEL language code and also responds to some other commands (use \help to see all of them). https://esolangs.org/wiki/Velik
14:58:31 -!- arseniiv has quit (Ping timeout: 265 seconds).
15:00:03 -!- velik has quit (Remote host closed the connection).
15:00:23 -!- velik has joined.
15:03:49 <nakilon> how do I escape [ and ] in code block?
15:04:55 <nakilon> I mean [[ and ]]
15:04:56 <velik> https://esolangs.org/wiki/Foobar%20and%20Foobaz%20and%20Barbaz,%20oh%20my!
15:05:01 <nakilon> they become bold
15:05:04 <nakilon> lol
15:08:58 <nakilon> weird this issue does not happen on pages with bf code with double brackets
15:13:31 <esolangs> [[Velik]] https://esolangs.org/w/index.php?diff=87958&oldid=87945 * Nakilon * (+1) \wiki -> \wp, \esowiki -> \wiki, [wiki ...] -> [[...]]]
15:13:55 <nakilon> <nowiki> worked
15:15:42 <Corbin> \wiki Jelly
15:15:43 <velik> Jelly is a golfing language by Dennis Mitchell inspired by the J programming language. It has a free online compiler on Try It Online. It comes with its own character set (of 256 characters) and character encoding, apparently unrelated to any previous encodings. https://esolangs.org/wiki/Jelly
15:15:52 <Corbin> Cool.
15:17:36 <nakilon> I'm not really sure why it ignores esolangs, I didn't implemented it yet
15:17:53 <nakilon> velik you are too smart
15:22:15 -!- hanif has quit (Ping timeout: 276 seconds).
15:23:09 <nakilon> it had to be triggered twice here :esolangs!~esolangs@techne.zem.fi PRIVMSG #esolangs :\u000314[[\u000307Velik\u000314]]\u00034 \u000310 \u000302https://esolangs.org/w/index.php?diff=87958&oldid=87945\u0003 \u00035*\u0003 \u000303Nakilon\u0003 \u00035*\u0003 (+1) \u000310\\wiki -> \\wp, \\esowiki -> \\wiki, [wiki ...] -> [[...]]]\u0003
15:25:21 <nakilon> ok, I guess the gem that is used here just can't handle ... nor those characters
15:28:39 -!- arseniiv has joined.
15:34:58 <nakilon> or rather those queries just return nothing in wiki search
15:36:12 <Sgeo> I... think I got confused because applying rotation B after A should be.... A*B? To get a model matrix?
15:36:28 <Sgeo> I was thinking it would be B*A, but... ugh
15:46:28 <esolangs> [[Meow]] https://esolangs.org/w/index.php?diff=87959&oldid=87956 * Martsadas * (+867) fixed 99 bottles of beer and added fizzbuzz and factorial and cat program
15:58:37 -!- hanif has joined.
16:06:00 <hanif> oerjan | well seems lynn is now. she used to be a regular here. => ah didn't know that
16:07:10 <hanif> oerjan: i don't know if you already know, but henkma released their golfs recently https://github.com/henkma/HaskellGolfSpoiler
16:30:56 -!- imode has joined.
16:32:53 -!- riv has joined.
16:39:38 <Corbin> Is there a way to indicate that a language should have an article, besides redlinking? In particular, is there a page of desired articles?
16:40:31 <oerjan> hanif: aha!
16:42:51 <nakilon> I like redlinking
16:42:59 <nakilon> I miss the times when wikipedia was all red
16:48:24 <oerjan> there is the automatic https://esolangs.org/wiki/Special:WantedPages
16:48:33 <oerjan> (based on number of red links)
16:49:23 <oerjan> [wiki List of ideas]
16:49:34 <oerjan> hm
16:50:24 -!- Melvar has quit (Quit: WeeChat 3.2).
16:51:43 <nakilon> [[list of ideas]]
16:51:44 <velik> https://esolangs.org/wiki/List%20of%20ideas
16:52:11 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87960&oldid=87953 * Dominicentek * (+4)
16:52:19 <oerjan> ah you changed that
16:52:26 <nakilon> no one used this command, two people said to change the syntax to [[]], so I changed and now you used the old one ..D
16:52:52 <oerjan> ...update in progress...
16:55:15 <hanif> nakilon: what does '..D' mean? i've only ever seen it used by you
16:55:28 <hanif> perhaps equivalent to ':D'?
16:55:48 <Corbin> What do we call classical computers on the wiki? I'm talking about machines whose complexity class is P.
16:56:25 <nakilon> hanif yes, those are my smiles
16:56:34 <keegan> that statement doesn't quite make sense
16:56:44 <keegan> P is the class of problems decidable by a deterministic Turing machine in polynomial time
16:56:58 <keegan> it's not really a class of machines
16:57:06 <nakilon> ..P ..) ,.) you see, it's handy since I also can do with another eye .,) or both ,,)
16:57:21 <keegan> it's a class of decision problems
16:57:22 <hanif> ah cool
16:59:41 <b_jonas> Corbin: for indicating that the language should have an article: sometimes I just make a stub article; sometimes I mention the language on my user talk page under "TODO"
17:03:11 <Corbin> keegan: Do you get what I mean, though?
17:03:20 <keegan> not really
17:03:38 <keegan> "deterministic Turing machine" is a class of machines
17:03:58 <keegan> so is "nondeterministic Turing machine"
17:04:09 <Corbin> Okay, lemme try again. What do we call the computers that aren't quantum computers, aren't time-travelling computers, aren't magically able to index exponential amounts of memory with constant-time access, don't have a way to talk to Merlin, etc.
17:04:32 <keegan> probably "classical computers" or "deterministic Turing machines" or just "Turing machines"
17:04:36 <Corbin> (Sorry, I would *love* to have an argument about complexity classes and jargon, but I feel like I'm being BS'd here.)
17:04:52 <keegan> but i'm not a wiki editor
17:05:00 <Corbin> Turing machines have non-trivial differences in behavior depending on the number of tapes. That's why I'm looking for a better term.
17:05:03 <keegan> i mean... I have edited the wiki
17:05:16 <keegan> really? I thought you could simulate any number of tapes on one tape
17:05:43 <keegan> any fixed number that is
17:06:13 <Corbin> But how long does it take to run the simulaton?
17:06:43 <Corbin> P is self-low, which means that a P machine can run a P machine as an oracle-like subroutine without leaving P. That's the sense in which a machine-oriented definition makes sense.
17:07:22 <Corbin> As a concrete demonstration, the redlinked language Pola is complete for P, which means that its abstract machine and type theory are also complete: https://www.researchgate.net/publication/266217730_Pola_a_language_for_PTIME_programming
17:08:14 <Corbin> Folklore is that simulating two tapes on one tape breaks this self-low property.
17:10:16 <Corbin> keegan: A more pressing concern is that Turing machines don't distinguish P and NP easily, which makes cryptography analytically invisible. Aaronson has a paper demolishing the viewpoint: https://arxiv.org/abs/quant-ph/0502072
17:10:48 <Corbin> (This paper's mostly meant to dispel the hope that NP-complete machines are trivially physical, but in the process, it establishes a sense of classical computing so that P, BQP, and NP are contrasted.)
17:13:59 -!- sprock has quit (Ping timeout: 252 seconds).
17:16:09 -!- chiselfuse has quit (Remote host closed the connection).
17:26:04 <oerjan> . o O ( NP /\ coNP is also self-low, i think )
17:27:21 <Corbin> oerjan: Yeah. Indeed I think AP is self-low? Having trouble imagining an AP program which would refute that.
17:27:35 <oerjan> . o O ( why did i add "i think" inside a thought bubble )
17:27:42 <Corbin> *AP problem, even~ I'll try to be more precise, sorry.
17:27:59 <int-e> . o O ( at least you didn't . o O ( think ) )
17:28:36 <oerjan> . o O ( -----### )
17:29:09 <int-e> . o O ( ouch ) O o . hmm.
17:29:17 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87961&oldid=87960 * Dominicentek * (-26)
17:35:02 <oerjan> oh hm apparently AP = PSPACE which i am pretty sure is self-low.
17:36:13 <oerjan> although is self-lowness automatically preserved by such equations...
17:37:56 <hanif> [[w:Low (complexity)]]
17:37:56 <hanif> oh well
17:37:57 <velik> https://esolangs.org/wiki/1+
17:38:20 <int-e> mmmm 1+
17:38:24 <Corbin> In the non-relativizing world, yes. Self-lowness doesn't relativize, which is kind of weird but also very nice because it gives us extreme confidence that e.g. P != PSPACE. (Also note that Time Hierarchy says that P != EXP, so this is expected.)
17:38:24 <oerjan> i smell a bug
17:39:34 -!- chiselfuse has joined.
17:40:16 -!- chiselfuse has quit (Client Quit).
17:40:35 -!- chiselfuse has joined.
17:43:44 -!- chiselfuse has quit (Remote host closed the connection).
17:44:41 -!- chiselfuse has joined.
17:56:01 -!- Oshawott has quit (Read error: Connection reset by peer).
17:58:34 <spruit11> way cool. have to show. dynamic dispatch in my language: https://github.com/egel-lang/egel/blob/master/examples/dispatch.eg
18:00:07 <esolangs> [[Swapfuck]] M https://esolangs.org/w/index.php?diff=87962&oldid=86645 * Rdococ * (-121) /* Computational class */
18:00:59 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=87963&oldid=87266 * Corbin * (+2775) /* Abstract algebraic languages */ new section
18:05:25 -!- riv has quit (Read error: Connection reset by peer).
18:09:09 -!- riv has joined.
18:13:24 -!- oerjan has quit (Quit: Nite).
18:16:11 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87964&oldid=87961 * Dominicentek * (+8)
18:17:51 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87965&oldid=87964 * Dominicentek * (+6)
18:26:00 <b_jonas> `fromroman CI
18:26:01 <HackEso> 101
18:26:02 <b_jonas> `fromroman ci
18:26:04 <HackEso> No output.
18:26:49 <b_jonas> my stupid script only accepts lower case roman numerals. maybe I should fix that
18:26:59 <b_jonas> perlbot fromroman CI
18:27:00 <perlbot> b_jonas: No factoid found. Did you mean one of these: [frameworks] [french] [freenode] [frinkbot] [framesready] [freenode ops] [form] [fireme] [format] [forums]
18:28:21 -!- Melvar has joined.
18:39:25 -!- dyeplexer has quit (Remote host closed the connection).
18:40:38 -!- hanif has quit (Quit: quit).
18:56:08 <fizzie> `fromroman ⅭⅠ
18:56:09 <HackEso> No output.
18:56:16 <fizzie> `unidecode ⅭⅠ
18:56:17 <HackEso> ​[U+216D ROMAN NUMERAL ONE HUNDRED] [U+2160 ROMAN NUMERAL ONE]
18:58:03 <fizzie> Heh, there are dedicated combinations for each integer up to Ⅻ, presumably due to the clock thing.
18:58:22 <fizzie> `unidecode ↈ
18:58:23 <HackEso> ​[U+2188 ROMAN NUMERAL ONE HUNDRED THOUSAND]
18:58:23 <int-e> IIII or IV?
18:58:44 <fizzie> It's Ⅳ here, but maybe there's a quadruple-Ⅰ somewhere too.
18:58:52 <fizzie> Not in the same block though.
18:59:34 <b_jonas> fizzie: fromroman won't decode those because it originates form a golf I wrote for a golf competitions
19:00:15 <fizzie> `unidecode ↅↆ
19:00:16 <HackEso> ​[U+2185 ROMAN NUMERAL SIX LATE FORM] [U+2186 ROMAN NUMERAL FIFTY EARLY FORM]
19:04:54 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87966&oldid=87965 * Dominicentek * (-26)
19:07:02 <arseniiv> do you like an abbreviation TLWTNT (this is a legit word, totally not a typo)?
19:09:58 <arseniiv> canonically (as decided by me while no others yet have adopted) this is used to mark a typo that you’ve just got an insight should be treated as is for greater good
19:09:58 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87967&oldid=87966 * Dominicentek * (+47)
19:11:18 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87968&oldid=87967 * Dominicentek * (+0)
19:13:29 -!- Koen_ has joined.
19:54:09 -!- sprock has joined.
20:48:17 -!- delta23 has quit (Quit: Leaving).
20:56:44 -!- sprock has quit (Ping timeout: 252 seconds).
20:56:54 -!- Lord_of_Life_ has joined.
20:57:15 -!- sprock has joined.
20:58:07 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
20:59:31 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:13:42 -!- Koen_ has quit (Quit: Leaving...).
21:15:49 -!- sprock has quit (Ping timeout: 260 seconds).
21:17:05 -!- delta23 has joined.
22:27:09 <int-e> fungot: what's the analogue of hill-climbing for minimization?
22:27:10 <fungot> int-e: ( 0,0,0) (3)+ ( 0,0,1) fnord ( x 3) worked the same way?
22:27:37 <int-e> fungot: "I don't know" was an acceptable answer.
22:27:37 <fungot> int-e: it has a line length limit, became regular, right? not a good definition
22:29:42 <fizzie> int-e: Valley-tumbling hth.
22:30:29 <fizzie> Funny how for that one specific method, you can do gradient ascent and descent both, but in the general case you're always climbing up that hill.
22:31:24 <keegan> downhill skiing
22:31:37 <b_jonas> int-e: gradient descent
22:31:46 <fizzie> That's not the same though.
22:32:03 <int-e> I used "hill-climbing", trusting the reader to take the dual view.
22:32:16 <b_jonas> yeah, it's more special
22:32:16 <int-e> b_jonas: Not applicable, I have a discrete problem.
22:32:18 <b_jonas> more specific
22:32:40 <b_jonas> how about just local minimization?
22:32:42 <fizzie> If you want the serious answer, I think "climbing" is used for optimization in general, yes.
22:32:47 <b_jonas> yeah, I know it's not the same
22:32:53 <b_jonas> "valley dumbling" is nice
22:33:06 <int-e> yeah, valley tumbling is cute :)
22:34:29 <fizzie> When hill-climbing for minimization, I think you're just supposed to think of the height as measuring general solution gooditude, not specifically the value of it.
22:35:01 <b_jonas> "gooditude" hehe
22:36:30 <int-e> fizzie: I have no real qualms about using the term
22:37:07 <int-e> But I was curious whether there was an established term for it that I had somehow missed.
22:37:10 <b_jonas> so how about "valley climbing"?
22:37:38 <int-e> that... sounds wrong, somehow
22:37:52 <int-e> (down into the abysss?)
22:38:53 <b_jonas> abyss climbing? ravine climbing? canyon climbing?
22:39:08 <b_jonas> nah, I think just valley climbing
22:39:20 <b_jonas> trench diving
22:47:14 <fizzie> There was an absurdist joke in a Finnish radio program once about Veikko Gustafsson, the lesser-known brother of https://en.wikipedia.org/wiki/Veikka_Gustafsson , a "flat land climber". But I don't remember the details well enough to do justice to it. Something about having a base camp in a ditch next to a field.
22:55:43 <int-e> I'm reminded of this https://fr-fr.topographic-map.com/maps/zi6c/Volkspark-Prenzlauer-Berg/ ("Berg" = "mountain")
23:05:14 -!- arseniiv has quit (Ping timeout: 265 seconds).
23:07:08 <fizzie> int-e: Well, you know, "vuori" = "mountain" too, and we've got https://zem.fi/tmp/monk-mountain.png
23:07:59 <int-e> fizzie: nice :)
23:12:13 <fizzie> There's also a "red mountain" in the city centre that I think might be even a little flatter, that's where I grew up.
23:13:30 -!- hendursaga has quit (Ping timeout: 276 seconds).
23:15:04 -!- hendursaga has joined.
2021-09-10
00:00:40 -!- hendursaga has quit (Quit: hendursaga).
00:01:06 -!- hendursaga has joined.
00:37:10 -!- delta23 has quit (Remote host closed the connection).
00:37:35 -!- delta23 has joined.
00:56:40 -!- delta23 has quit (Remote host closed the connection).
00:57:05 -!- delta23 has joined.
01:06:36 -!- sprock has joined.
01:08:36 -!- earendel has joined.
01:13:25 <spruit11> man page: https://egel.tiiny.site/
01:24:50 <zzo38> Can it be downloaded in the man page format instead of HTML?
01:25:00 -!- Melvar has quit (Ping timeout: 260 seconds).
01:28:55 <fizzie> I'm guessing it would be the file at https://raw.githubusercontent.com/egel-lang/egel/master/man/egel.1
01:39:07 <spruit11> yah, it's generated from markdown. took a while to get accustomed to this syntax again though. page has quirks but ah well
01:39:07 -!- Melvar has joined.
02:28:53 <esolangs> [[Special:Log/newusers]] create * Shift-eleven * New user account
02:31:56 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=87969&oldid=87918 * Shift-eleven * (+188)
02:32:27 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87970&oldid=87969 * Shift-eleven * (+0)
03:08:40 -!- delta23 has quit (Remote host closed the connection).
03:09:05 -!- delta23 has joined.
03:09:07 -!- delta23 has quit (Remote host closed the connection).
03:56:40 -!- spruit11 has quit (Ping timeout: 260 seconds).
04:21:20 -!- spruit11 has joined.
04:24:01 <nakilon> 20:37:56 <hanif> [[w:Low (complexity)]]
04:24:03 <velik> https://esolangs.org/wiki/1+
04:24:07 <nakilon> [[Low (complexity)]]
04:24:08 <velik> https://esolangs.org/wiki/List%20of%20complexity%20classes
04:24:25 * Corbin should do more work on that page
04:26:10 -!- spruit11 has quit (Ping timeout: 260 seconds).
04:26:35 <nakilon> those roman letters will have no place in my charset; the one he included them was probably not told that there are fonts
04:32:52 <keegan> 11:58 < HackEso> ​[U+2188 ROMAN NUMERAL ONE HUNDRED THOUSAND]
04:32:55 <keegan> wow never saw this one before
04:32:56 <keegan> it looks cool
04:33:42 <keegan> almost as cool as Multiocular O
04:33:49 <keegan> of which I am an official sponsor
04:35:57 <nakilon> it's just square
04:38:47 <zzo38> I had tried to write to promote my project (perhaps one thing is I don't know what to write). Sometimes I did but not much happened. Sometimes I could not find it. Sometimes other things fail. In one case, I got a message about being banned due to my IP address, but the IP address they mentioned is not the correct address that I connected from, and there was a broken link to ask the administrator.
04:39:18 <nakilon> I just had a dream about being physically hacked
04:40:55 <nakilon> I was playing in some shooter video game and you know video games in dreams are always mixing with "reality", so we were shooting each other, getting loot, trying different weapons, and when you change or upgrade or idk, doing something with it there is a wall with a hole
04:42:25 <nakilon> where you insert something and get ammo in return, and instead of ammo something long starting coming out, some copper ribbon that never ends, and the game provides nothing to cut it so I was effectively stuck taking out that bought infinite ribbon
04:43:45 <zzo38> Now I don't know what to do.
04:44:46 <nakilon> zzo38 where is that?
04:50:24 -!- spruit11 has joined.
05:05:43 -!- spruit11 has quit (Ping timeout: 252 seconds).
05:14:10 -!- feoh has joined.
05:35:18 <nakilon> I don't like this OEIS https://en.wikipedia.org/wiki/Sierpi%C5%84ski_number
05:36:03 <nakilon> for years looking at those sequences I never suspected there might be numbers added in between of already computated lists
05:37:21 <keegan> numbers are whack
05:37:45 <nakilon> for example I could somehow find a yet unknown number in the list, so I put it in a search and it says no results
05:38:52 <Corbin> https://en.wikipedia.org/wiki/Seventeen_or_Bust is a nice way to look at that particular situation; there are six "Colbert numbers" left, and that should slowly decrease to zero.
05:38:53 <nakilon> I mean the sequence should not be there or should be somehow marked that it contains gaps
05:39:31 <nakilon> that progress might never end
05:40:47 <Corbin> Sure, OEIS should probably indicate this somewhere. But I think it's fine for folks who are implementing sequences from OEIS to realize for themselves when a function is recursive or otherwise definitely gap-free.
05:41:39 <nakilon> so for any time you put some search sequence and find no results (or even if you find some!) there might be an unknown number of other OEIS sequences added like this one that won't show up in results
05:42:11 <nakilon> so there is no point to hold it there if it does not show up by searching even such small numbers as 5 digits long or even shorter
05:44:07 <nakilon> I think it should have additional list of "proven to not be there" attached
05:44:31 <nakilon> so the search results could say "maybe it is this OEIS, but definitely not this one"
05:45:54 <nakilon> or listing the yet unproved candidates, does not matter
05:59:45 <nakilon> https://programming.guide/worlds-most-copied-so-snippet.html
06:18:27 -!- dyeplexer has joined.
06:35:18 -!- Sgeo has quit (Read error: Connection reset by peer).
06:53:40 <nakilon> how do you automatically decide what looks better? "1 mon 3 weeks" or "7 weeks 2 days" or "51 days"
07:15:39 -!- earendel has quit (Quit: Connection closed for inactivity).
07:38:14 -!- sprock has quit (Quit: brb).
07:39:13 -!- sprock has joined.
08:06:08 -!- hendursa1 has joined.
08:09:45 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:15:33 -!- tromp has quit (Quit: Textual IRC Client: www.textualapp.com).
08:27:32 <b_jonas> I's like to complain about the touchscreen UI of the self-service checkout machine in a supermarket. the problematic case is when I buy a few, say 5, normal items, plus 12 cheap candy bars. I want to be able to check on on the touchscreen interface if it counted the right number of candy bars. the touchscreen displays the last 9 items that you scanned, which in this case will be "candy bar 33g 89 /
08:27:38 <b_jonas> candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89". there's a touchable pair of arrows that scroll the list up. if you press the up arrow, it tries to scroll up one full screen (9 lines), but doesn't scroll further than the top of the list. so you see "bread 1kg 360 / milk 1.4 1l 260 / garbage bag 35l 850
08:27:44 <b_jonas> / fruit-flavored juice 470 / sausage 1120 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89 / candy bar 33g 89". if you scroll down again, it just goes to the previous state. VERY USEFUL, darned interface.
08:28:16 <b_jonas> a cashier did show me the workaround though: hold the feed button on the recipt printer, check how many candy bar lines are on the paper recipt so far
08:33:57 <nakilon> this is one of the best things about touchpad vs desktop with mouse
08:34:28 <nakilon> you can't count or even follow things that you scroll in chunks
08:39:26 -!- spruit11 has joined.
09:14:09 <Hooloovoo> well, I mean, some things have smooth scrolling
09:15:22 <Hooloovoo> at least where I live though, all the supermarket checkout things are touchscreens - I don't think I've ever really bought a lot of a single item like that though. seems like they could do it well with a scrollbar, but it might "clutter the interface" or something
09:18:46 -!- dyeplexer has quit (Ping timeout: 260 seconds).
09:21:22 -!- dyeplexer has joined.
09:24:26 <nakilon> they just have to print "x6"
09:45:18 <fizzie> The Sainsbury's machines do group identical items together. Or at least the handheld scanner you grab to scan items as you go, I don't remember if the traditional self-checkout machines do.
09:47:46 -!- wib_jonas has joined.
10:09:38 -!- imode has quit (Ping timeout: 260 seconds).
10:09:46 -!- spruit11_ has joined.
10:13:30 -!- spruit11 has quit (Ping timeout: 260 seconds).
10:38:25 * int-e growls
10:38:47 <wib_jonas> `python3 -cn="/hackenv/bin/fromroman";s=open(n).read();o=s.replace('{(sh','{uc((sh').replace('0]}','0])}');print(o);open(n,"w").write(o);print("write successful");
10:38:50 <HackEso> ​#!/usr/bin/perl \ sub k{my$t;$t=~y/IVXLC/XLCDM/,$t.=("",I,II,III,IV,V,VI,VII,VIII,IX)[$_]for/./g;$r{$t}=$_;$t}k for s""\$"..4e3;print $r{uc((shift=~/(\w+)/)[0])},$/ \ \ write successful
10:39:01 <wib_jonas> `fromroman LVII
10:39:02 <HackEso> 57
10:39:05 <wib_jonas> `fromroman lvii
10:39:06 <HackEso> 57
10:40:01 <int-e> https://numpy.org/doc/stable/reference/generated/numpy.matrix.html "It is no longer recommended to use this class, even for linear algebra. Instead use regular arrays." would be *far* more helpful with a transition guide that explains how to do matrix operations the new way
10:40:34 <int-e> Since, apparently, A*B on arrays is pointwise, leading to *huge* confusion.
10:41:12 <wib_jonas> int-e: try either the .dot() method or, with new enough python, the @ infix operator
10:42:04 <int-e> wib_jonas: Oh now that I knew what I'm looking for that information was easy to find.
10:42:47 <int-e> Well, still missing one piece of the puzzle... but I guess that will fall into place momentarily
10:45:06 <wib_jonas> also, since this may not be easy to find, if you want matrix computations in C++, I recommend http://eigen.tuxfamily.org/
10:45:37 <int-e> I have used that one, maybe on your recommendation; I forgot.
10:46:53 <int-e> regardless, my complaint is that "use arrays instead" doesn't give any hint as to changed operator semantics
10:47:38 -!- arseniiv has joined.
10:47:39 <int-e> I guess you're supposed to infer that from "It has certain special operators, such as * (matrix multiplication) and ** (matrix power)."
10:47:42 <int-e> But I didn't.
10:51:27 <esolangs> [[Talk:Mogus]] M https://esolangs.org/w/index.php?diff=87971&oldid=87939 * VilgotanL * (+222)
10:52:52 <int-e> I may have come across this issue before and forgotten about it.
10:53:33 <esolangs> [[Talk:Mogus]] M https://esolangs.org/w/index.php?diff=87972&oldid=87971 * VilgotanL * (+12)
10:55:36 <int-e> actually this whole experience would've been a lot better if numpy didn't allow me to write matrix * array expressions.
10:56:55 <int-e> Because for the first half hour of debugging this I was quite unaware that I was juggling with two different types and getting into a huge mess because of that
10:57:47 <esolangs> [[Mogus]] M https://esolangs.org/w/index.php?diff=87973&oldid=87930 * VilgotanL * (+51)
11:02:20 <nakilon> "would be *far* more helpful" was never a consideration in pithon docs
11:09:11 <wib_jonas> int-e: I wasn't even aware that there was a "matrix" class in numpy
11:09:32 <wib_jonas> I don't think I ever constructed one; but then I haven't written my numpy code
11:09:42 <wib_jonas> I sort of have a love-hate relationship with numpy
11:10:06 <wib_jonas> it's well-written and well-known enough, but has too many odd quirks and irregularities\
11:10:34 <wib_jonas> but at least it has a nice python interface, also a C API, and its indexes are 0-based. those alone make it better than most array libraries.
11:11:49 <wib_jonas> and designing a good easily usable numerical array library without odd quirks is a very hard problem, possibly impossible, possibly just not yet solved
11:29:28 <esolangs> [[Mogus]] M https://esolangs.org/w/index.php?diff=87974&oldid=87973 * VilgotanL * (+176) fix truth-machine
11:48:02 <esolangs> [[Mogus]] M https://esolangs.org/w/index.php?diff=87975&oldid=87974 * VilgotanL * (+123) add implementation
11:49:55 <esolangs> [[Talk:Mogus]] M https://esolangs.org/w/index.php?diff=87976&oldid=87972 * VilgotanL * (+203) update
11:52:50 <esolangs> [[Mogus]] M https://esolangs.org/w/index.php?diff=87977&oldid=87975 * VilgotanL * (+2507) add hello world
12:08:52 <esolangs> [[User:VilgotanL]] M https://esolangs.org/w/index.php?diff=87978&oldid=85328 * VilgotanL * (+12) add mogus to language list
12:33:12 <nakilon> [[🐢]]
12:33:13 <velik> https://esolangs.org/wiki/%F0%9F%90%A2
12:33:25 <nakilon> \wiki 🐢
12:33:26 <velik> 🐢 is an esolang by VilgotanL created for an esojam in Truttle1's discord server, it uses an accumulator and a cell tape that can both hold unbounded integers. https://esolangs.org/wiki/%F0%9F%90%A2
12:41:47 <esolangs> [[Suscript]] N https://esolangs.org/w/index.php?oldid=87979 * VilgotanL * (+1383) Created page with "Suscript is a cell-based esolang by people in the amogus esolang crew, this page is a WIP. == Instructions == {| class="wikitable" |- | <code>eject ''"string"''</code> || Pri..."
12:43:31 <nakilon> amogus esolang crew?
12:46:56 <nakilon> there is some alternative reality with Not applicable and other guys who make languages every week
12:56:52 <esolangs> [[Suscript]] M https://esolangs.org/w/index.php?diff=87980&oldid=87979 * VilgotanL * (+179) add computational class
13:03:20 -!- arseniiv has quit (Ping timeout: 265 seconds).
13:18:55 -!- velik has quit (Remote host closed the connection).
13:19:26 -!- velik has joined.
13:45:07 -!- hendursa1 has quit (Quit: hendursa1).
13:45:37 -!- hendursaga has joined.
13:50:31 -!- archenoth has joined.
13:51:58 -!- earendel has joined.
13:52:02 -!- sprock has quit (Ping timeout: 252 seconds).
13:54:00 <nakilon> wow this was long ago https://i.imgur.com/fTVRjAl.png
13:54:22 <nakilon> gonna reincarnate
14:12:54 -!- riv has quit (Quit: Leaving).
14:19:42 -!- riv has joined.
14:24:33 -!- Sgeo has joined.
14:41:19 -!- imode has joined.
15:01:35 -!- wib_jonas has quit (Quit: Client closed).
15:09:29 -!- riv has quit (Quit: Leaving).
15:43:43 <esolangs> [[List of complexity classes]] M https://esolangs.org/w/index.php?diff=87981&oldid=87267 * Corbin * (+1644) Add a section on L.
15:44:14 <Corbin> keegan: ^^^ Please LMK if this is headed in the right direction. I'm trying to be precise while not wasting words.
15:53:31 <esolangs> [[Special:Log/newusers]] create * G cat101 * New user account
15:56:48 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87982&oldid=87970 * G cat101 * (+154)
15:56:53 <zzo38> I also want to complain about touch screens; I don't like touch screen, and I think using a keyboard would be better
15:57:09 <esolangs> [[BuxRo]] M https://esolangs.org/w/index.php?diff=87983&oldid=58964 * G cat101 * (+0) fixed the typo
15:58:39 <nakilon> touchscreen keyboard? ..D
15:59:46 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87984&oldid=87926 * AceKiron * (-8818) Replaced content with "'''School''' is an [[esoteric programming language]] developed by [[User:AceKiron]], it originally started development on June 15th 2021, but has been deprecated. Later it..."
15:59:48 <velik> https://esolangs.org/wiki/An%20esoteric%20programming%20language%20(ess-oh-terr-ick),%20or%20esolang,%20is%20a%20computer%20programming%20language%20designed%20to%20experiment%20with%20weird%20ideas,%20to%20be%20hard%20to%20program%20in,%20or%20as%20a%20joke,%20rather%20than%20for%20practical%20use. https://esolangs.org/wiki/User:AceKiron
15:59:55 <nakilon> oops
16:00:04 <nakilon> time to implement the ignore
16:03:59 -!- arseniiv has joined.
16:06:11 -!- hanif has joined.
16:09:12 <hanif> Corbin: looks like there's already a channel for esolangs https://www.youtube.com/playlist?list=PLO-PlVJRfGIVZuzu6e_0qOvqRnM_TdNye
16:10:32 <Corbin> hanif: Delightful!
16:24:01 <arseniiv> <wib_jonas> int-e: I wasn't even aware that there was a "matrix" class in numpy => b_jonas: AFAIK today that class is just for backward compatibility, it’s suggested to use ndarrays all the way
16:24:55 <arseniiv> <nakilon> there is some alternative reality with Not applicable and other guys who make languages every week => there is a discord server somewhere, there was a ton of people when I once checked what that was
16:25:06 <arseniiv> @messages?
16:25:06 <lambdabot> Sorry, no messages today.
16:25:09 -!- sprock has joined.
16:30:34 -!- Koen_ has joined.
16:46:45 -!- velik has quit (Remote host closed the connection).
16:47:16 -!- velik has joined.
16:48:54 <esolangs> [[Velik]] M https://esolangs.org/w/index.php?diff=87985&oldid=87958 * Nakilon * (-2) test [[the]] ignore
16:49:06 -!- hanif has quit (Ping timeout: 276 seconds).
16:52:09 <nakilon> the thumbnail for Whitespace video on that channel
16:53:28 -!- hanif has joined.
16:54:56 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87986&oldid=87984 * AceKiron * (+458)
17:12:23 -!- riv has joined.
17:29:07 -!- riv has quit (Quit: Leaving).
17:30:16 -!- riv has joined.
17:34:46 <int-e> wtf *is* velik doing there... turn [[link]] into URL, fetch that URL, then turn that into an URL again?
17:38:35 <nakilon> [[]] isn't fetching
17:39:59 <nakilon> only searches to make full url
17:40:11 <nakilon> the \wiki is fetching
17:40:46 <nakilon> and makes url too because why not, the response already has text and you might want to read more
17:44:52 -!- benji has quit (Quit: ZNC - https://znc.in).
17:45:23 -!- benji has joined.
17:46:59 -!- benji has quit (Client Quit).
17:48:34 -!- benji has joined.
17:48:56 -!- pikhq has quit (Read error: Connection reset by peer).
17:48:56 -!- aarchi has quit (Read error: Connection reset by peer).
17:49:07 -!- faxlore has quit (Ping timeout: 252 seconds).
17:50:01 -!- benji has quit (Client Quit).
17:50:33 -!- faxlore has joined.
17:51:30 -!- pikhq has joined.
17:52:01 -!- benji has joined.
17:52:09 -!- hanif has quit (Ping timeout: 276 seconds).
17:52:29 -!- aarchi has joined.
17:55:33 <int-e> nakilon: so how did that <esolangs> message trigger that particular result which evidently includes contents of [[esoteric programming language]]?
17:56:18 -!- sprock has quit (Ping timeout: 260 seconds).
17:58:42 <nakilon> that's not contents, that's URL of the article ..D
17:58:44 <nakilon> it's that long
17:59:35 <nakilon> because long name
18:00:49 <nakilon> probably needs category Unusable for programming btw
18:01:20 <int-e> Huh. So that is a valid link... but why didn't it end up on the more obvious https://esolangs.org/wiki/Esoteric_programming_language?
18:02:28 <nakilon> hm, my IRC client does not include the trailing "." so if you click you don't hit the correct address
18:03:12 <nakilon> /shrug https://i.imgur.com/Wyye3Id.png
18:03:53 <nakilon> same with brainfuck -- wiki seems to dislike exact title match
18:09:50 -!- sprock has joined.
18:14:14 -!- hanif has joined.
18:19:32 <hanif> i've had to resort to my search engine to search wikipedia several times
18:27:55 <nakilon> your search engine?
18:28:27 <hanif> to find me the matching wikipedia article
18:28:45 -!- sprock has quit (Ping timeout: 260 seconds).
18:29:25 <hanif> (mostly when i'm not bothered to spend effort in spelling correctly)
18:31:37 -!- sprock has joined.
18:31:52 <int-e> "my search engine" is usually similar to "my car"
18:32:07 <int-e> It's the one I use, it doesn't mean I built it.
18:32:18 -!- dyeplexer has quit (Remote host closed the connection).
18:33:25 -!- arseniiv has quit (Ping timeout: 260 seconds).
18:34:51 -!- arseniiv has joined.
18:43:57 <fizzie> Yeah, there was a similar thing where the first hit for https://esolangs.org/w/index.php?search=Brainfuck&title=Special%3ASearch&fulltext=1 is "Brainfuck/w/index.php?title=Talk:Brainfuck/index.php" (which again is a silly title rather than a piece of a URL).
18:44:22 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87987&oldid=87968 * Dominicentek * (-55)
18:44:51 <fizzie> I think it might dislike exact matches in the results list because it has a separate dedicated message ("there is a page named X on this wiki") for those.
18:45:11 <esolangs> [[JSInstruction]] https://esolangs.org/w/index.php?diff=87988&oldid=87987 * Dominicentek * (-2)
18:45:31 <fizzie> I've no idea how it does ranking though.
18:54:32 <nakilon> I can make it select the one closest by levenshtein if this will happen a lot
18:55:43 <nakilon> the one of top 5
19:06:42 -!- hanif has quit (Remote host closed the connection).
19:10:30 -!- oerjan has joined.
19:29:53 -!- Koen_ has quit (Remote host closed the connection).
19:33:02 -!- Koen_ has joined.
19:40:37 -!- earendel has quit (Quit: Connection closed for inactivity).
19:46:04 -!- Koen_ has quit (Quit: Leaving...).
19:58:00 -!- sprock has quit (Ping timeout: 260 seconds).
20:05:18 <oerjan> Corbin: i suspect your definition of s,t-forest accessibility is wrong, because it looks like just s,t-connectivity, which is NL-complete.
20:05:48 <oerjan> (i don't know what the former _should_ be, unless it's just that the graph must be a forest.)
20:08:43 -!- sprock has joined.
20:11:09 <oerjan> hm, "The same problem for undirected graphs is called undirected s-t connectivity and was shown to be L-complete by Omer Reingold."
20:12:58 <oerjan> i may have known that already but almost forgotten
20:13:27 * oerjan never actually took a class on complexity theory, just picked up some here and there
20:17:46 <oerjan> Corbin: btw L and NL are also self-low.
20:20:36 <oerjan> also, one of my favorite facts about L is that showing arithmetic is in it has some surprisingly deep parts (division, base conversion, and multiplying lists of numbers)
20:21:09 <oerjan> (it's easy to show multiplying just two numbers is in L, or adding a list)
20:22:28 <oerjan> i think perhaps once you have those deep parts you can also do power series
20:22:50 <oerjan> so you should get trigonometry etc. as well
20:23:12 <b_jonas> multiplying a list of numbers is in L?
20:23:13 <b_jonas> wow
20:25:08 <Melvar> <int-e> "my search engine" is usually similar to "my car" – Or, as some languages would have it, “my<alienable> search engine”, not “my<inalienable> search engine”.
20:29:48 <oerjan> b_jonas: well, integers at least. i haven't thought carefully about floating point.
20:30:45 <oerjan> all of these deep things work via doing arithmetic modulo a heap of small primes... the hard part is converting that back to a number in normal format
20:31:34 <oerjan> easy in P (use chinese remainder theorem)
20:35:11 <oerjan> and the clue if i recall correct is to find out just how to _compare_ numbers in chinese remainder format. which i've forgotten the details of.
20:35:16 <oerjan> *correctly
20:36:33 <oerjan> also, much of this, perhaps all, works in the even lower complexity class TC^0.
20:36:58 <oerjan> (but i found it mindblowing enough to get L)
20:50:50 <b_jonas> oerjan: sure, in P I can do it too, because you can multiply two numbers in linear time, so multiply a list of numbers in quadratic time
20:51:09 <b_jonas> and you don't even need to know that youc an multiply two numbers in linear time for that
20:51:12 <b_jonas> quadratic is enough
20:52:05 <oerjan> mhm
20:53:21 -!- src has joined.
20:53:28 <oerjan> hm a corollary of this is that you can do factorial in linear working space
20:53:47 <oerjan> (with write-only output not counted)
20:56:31 -!- sprock has quit (Ping timeout: 265 seconds).
20:58:21 -!- Lord_of_Life_ has joined.
20:58:50 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
20:59:37 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:08:17 <Corbin> oerjan: I may have misread the 1986 paper I linked, but it showed s,t-connectivity for "forests", which includes both directed and undirected graphs. I am happy to learn that I've misunderstood.
21:36:10 <b_jonas> `? zoo
21:36:12 <HackEso> zoo? ¯\(°​_o)/¯
21:36:14 <b_jonas> `? complexity zoo
21:36:16 <HackEso> complexity zoo? ¯\(°​_o)/¯
21:36:21 <b_jonas> fungot, what's the new link to it?
21:36:21 <fungot> b_jonas: que se fnord!!" at http://paste.lisp.org/ display/ fnord
21:36:34 <b_jonas> http://paste.lisp.org/display/fnord ?
21:38:36 <oerjan> Corbin: forests are by definition acyclic, unlike general graphs. also the directed version has an additional stipulation "outdegree zero or one".
21:39:36 <oerjan> (under "Given:")
21:43:42 <oerjan> also the cycle detection listed seems to be undirected
21:48:32 <oerjan> Corbin: however, it is a famous theorem (the one i quoted above) that general undirected graph connectivity is L-complete, which was not known yet at the time of that paper (UCONN in FL is listed as an open problem).
21:49:57 <oerjan> (by Omer Reingold)
21:57:19 <Corbin> oerjan: Hm, okay, thanks.
22:07:28 -!- oerjan has quit (Quit: Nite).
22:20:51 -!- sprock has joined.
22:28:22 -!- arseniiv has quit (Ping timeout: 252 seconds).
22:29:59 <nakilon> should I visit a fest tomorrow to take a selfie with 1 mln subs youtuber or should I stay at home keeping distancing
2021-09-11
00:45:50 <fizzie> WDYT, if an IRC client send a periodic PING to avoid the dreaded "TCP connection was lost but the client has nothing to write" issue, should it bother to try to also verify the server responds with a corresponding PONG, or is that superfluous? It's definitely not necessary for the TCP thing, but hypothetically there might be a server that continues to speak TCP but not respond to commands. And
00:45:52 <fizzie> often it's used to estimate latency, but that's a different feature.
00:48:44 <zzo38> I check manually. I have the F2 key bound to PING and then I can see if PONG is received or not. (For automated IRC clients, it could check automatically)
00:50:21 <fizzie> Yes, this would be for an automaton. Just wondering if it's a failure mode that really needs worrying about, assuming I don't care about estimating the latency to try to jump servers if it's too high or w/e.
00:55:00 <zzo38> At least in my experience, if I try to PING and it isn't working, there will eventually be a connection error anyways. However, it might be worth checking after some (configurable) timeout anyways.
00:56:09 <zzo38> It has also happened to me that I was able to receive but not send. In this case, eventually the server will disconnect me due to a ping timeout.
00:56:16 <shachaf> What if it continues to speak TCP and respond to pings, but not to other commands?
00:57:09 <zzo38> Then I would think that the server is defective, probably.
00:57:47 <fizzie> I guess I could have it privmsg me to solve a CAPTCHA. But then what if the server sends that message to some other human who responds to it?
00:58:11 -!- chiselfuse has quit (Remote host closed the connection).
00:58:25 -!- chiselfuse has joined.
00:58:46 <zzo38> You can write a question that you do not expect anyone else to know the answer
01:31:14 -!- earendel has joined.
01:53:17 -!- dutch has joined.
05:27:01 <nakilon> fizzie I always thought client is exactly supposed to respond to PING with PONG, not just send periodic PING on their own
05:31:28 <nakilon> also if believe this line https://github.com/Nakilon/nakiircbot/blob/43bf3dfa932e78f19b656520d29629c9bf94c5bc/lib/nakiircbot.rb#L99 Quakenet used this command for measuring the latency too
05:33:34 <nakilon> I mean when I was making this comment I was reusing some old Quakenet bot that IIRC it had the timestamp parsing in it
05:33:57 <nakilon> but as it says in case of Libera there is just server name there
06:08:49 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87989&oldid=87986 * AceKiron * (+391) Added the PUSH and POP memory operants
07:54:15 <esolangs> [[Matrix (data structure)]] N https://esolangs.org/w/index.php?oldid=87990 * AceKiron * (+174) Created page with "A **matrix** is a data structure that can serve as an programming language's memory. The number of stacks may vary. Many languages have other methods of data storing as well."
07:54:27 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87991&oldid=87990 * AceKiron * (+3)
07:55:43 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87992&oldid=87991 * AceKiron * (+105)
07:56:17 <b_jonas> fizzie: I check PONG replies anyway to know when the server has processed my previous commands, which I need to know to not send more commands to the server that fit in its buffer, or else it would quit me.
07:56:29 <b_jonas> and at that point you probably want a timeout too
07:58:22 <esolangs> [[Category:Matrix-based]] N https://esolangs.org/w/index.php?oldid=87993 * AceKiron * (+181) Created page with "Languages primarily using one or more [[Matrix_(data_structure)|matrix]]s for storage. ==See also== * [[:Category:Queue-based]] * [[:Category:Stack-based]] Category:Langu..."
07:59:15 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87994&oldid=87989 * AceKiron * (+225)
07:59:58 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87995&oldid=87992 * AceKiron * (+10)
08:01:00 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87996&oldid=87995 * AceKiron * (+46)
08:06:20 -!- hendursa1 has joined.
08:08:51 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:21:22 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87997&oldid=87996 * AceKiron * (+1)
08:47:39 <esolangs> [[Matrix (data structure)]] https://esolangs.org/w/index.php?diff=87998&oldid=87997 * AceKiron * (+64)
08:51:10 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=87999&oldid=87994 * AceKiron * (-2)
09:05:37 -!- spruit11_ has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
09:05:59 -!- spruit11 has joined.
09:31:40 -!- Koen_ has joined.
09:32:53 -!- Sgeo has quit (Read error: Connection reset by peer).
09:48:52 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88000&oldid=87999 * AceKiron * (+15) /* Memory operants */
09:51:30 -!- Trieste_ has joined.
09:51:46 -!- Trieste has quit (Ping timeout: 240 seconds).
09:58:02 -!- Oshawott has joined.
10:01:31 -!- archenoth has quit (Ping timeout: 252 seconds).
11:04:25 <esolangs> [[Special:Log/newusers]] create * Bsoelch * New user account
11:20:40 -!- hanif has joined.
11:26:01 <fizzie> Yes, I mean, the client does need to respond to PING with a PONG, but that's a different thing.
11:30:30 <riv> does IRC need ping and pong? doesn't TCP already have this basically
11:34:04 <fizzie> TCP has an *optional* keepalive option. But I don't think it's very popular compared to application protocol heartbeats.
11:38:24 <fizzie> As for not sending too many things, I'm using a credit-based system (each byte costs so and so, some commands have an extra surcharge, the client gets credit at a fixed rate capped to some maximum value) to approximate that. That's what ircd (at least the real one, the one used at IRCnet) does on the server side. Of course it's not exactly exact due to network latency and so on, but it's been
11:38:26 <fizzie> working just fine.
11:40:23 <fizzie> On keepalive, IIRC the default timeouts tend to be huge (hours), and configurable only system-wide.
11:48:12 <esolangs> [[Meow]] https://esolangs.org/w/index.php?diff=88001&oldid=87959 * Martsadas * (+20) /* fixed mistakes*/
11:49:14 <esolangs> [[Meow]] M https://esolangs.org/w/index.php?diff=88002&oldid=88001 * Martsadas * (+27)
12:15:51 -!- hanif has quit (Ping timeout: 276 seconds).
12:50:37 -!- earendel has quit (Quit: Connection closed for inactivity).
12:52:38 <esolangs> [[Matrix]] M https://esolangs.org/w/index.php?diff=88003&oldid=42721 * PythonshellDebugwindow * (+50) Confusion
12:52:48 <esolangs> [[Matrix (data structure)]] M https://esolangs.org/w/index.php?diff=88004&oldid=87998 * PythonshellDebugwindow * (+50) Confusion
12:52:57 <esolangs> [[Matrix (data structure)]] M https://esolangs.org/w/index.php?diff=88005&oldid=88004 * PythonshellDebugwindow * (-17) m
12:58:01 -!- hanif has joined.
13:12:27 -!- hendursa1 has quit (Quit: hendursa1).
13:12:53 -!- hendursaga has joined.
13:40:19 <esolangs> [[Special:Log/newusers]] create * 4gboframram * New user account
13:47:28 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88006&oldid=87982 * 4gboframram * (+184) /* Introductions */
14:17:17 -!- delta23 has joined.
14:32:41 -!- Koen_ has quit (Remote host closed the connection).
14:33:22 -!- velik has quit (Remote host closed the connection).
14:34:00 -!- velik has joined.
14:40:11 -!- velik has quit (Remote host closed the connection).
14:40:29 -!- velik has joined.
14:41:55 -!- velik has quit (Remote host closed the connection).
14:42:13 -!- velik has joined.
14:45:28 -!- velik has quit (Remote host closed the connection).
14:47:31 -!- velik has joined.
15:03:05 -!- normsaa has joined.
15:03:22 <normsaa> https://pastebin.com/px6HUCLV how can this binary be decoded?
15:03:28 <normsaa> In any esoteric lang?
15:06:38 <Corbin> normsaa: Where did it come from?
15:07:14 <normsaa> Corbin A friend
15:07:30 <normsaa> He wrote it
15:09:46 <normsaa> Any ideas?
15:23:26 <int-e> . o O ( it's too bad that the flag doesn't identify the CTF this is from )
15:23:39 <int-e> normsaa: tell your "friend" to solve the problem properly, by themselves.
15:39:04 <Corbin> Also tell your friend to fix the overlapping assignment, which probably breaks the script.
15:51:39 -!- hanif has quit (Ping timeout: 276 seconds).
15:56:32 -!- hanif has joined.
16:03:37 -!- Koen_ has joined.
16:11:38 <b_jonas> riv: yes, IRC sort of requires PING and PONG for at least three reasons. some servers (not freenode, I haven't looked at libera yet) require that you send *one* pong after connecting, copying an unpredictable code from the PING that the server sends, as a sort of anti-spam measure. second, some servers, including freenode (again, haven't looked at libera yet) require that the client sends something
16:11:44 <b_jonas> every five minutes, to ensure that it can drop clients that are disconnected. it ensures that clients do this by sending pings, you don't need to reply to those technically, but replying to pings is an easy way to satisfy this requirement.
16:14:38 <b_jonas> thirdly, you can use pings for flow control. the way IRC works is that the server has a very small input buffer for each client, and if the client sends more than that input buffer over what the server has handled locally, it disconnects the client. the server handles commands for one client in series, so if you pay attention to local replies (replies from that server, not other servers), you can
16:14:44 <b_jonas> sometimes tell how much the server handled, and so how full the queue is. but not all commands have local replies, or the local reply isn't always easy to identify, so sometimes you want to send a command just to force a local reply. the best command for that is a local PING (as opposed to a PING to a different server), since that does nothing but send you a reply.
16:20:54 -!- velik has quit (Remote host closed the connection).
16:21:23 -!- velik has joined.
16:22:00 -!- velik has quit (Remote host closed the connection).
16:22:17 -!- velik has joined.
16:23:59 <b_jonas> int-e: wait, do you actually recognize what that is, or do you just know it's homework from what it looks like and how they simultaneously cross-post on multiple channels?
16:30:29 <fizzie> int-e: I was half-expecting doing a web search for the flag value would tell you where it's from (surely all of those have answers posted online?), but apparently it doesn't.
16:31:05 <int-e> fizzie: yeah. which /could/ indicate that it's an ongoing one, or just that it's very obscure
16:31:27 <fizzie> "It looks like there aren't many great matches for your search. Tip: Try using words that might appear on the page that you’re looking for. For example, 'cake recipes' instead of 'how to make a cake'."
16:31:40 <fizzie> Mmm, cake.
16:32:57 <int-e> . o ( glados instead of cake )
16:38:06 <hanif> google gave me this video https://www.youtube.com/watch?v=JMrd8PoxvPc, but the author doesn't do this challenge in the video
16:38:06 <keegan> it's a piece of cake to bake a pretty cake
16:38:36 <hanif> and the ctf site linked is dead and unarchived
16:44:25 <riv> normsaa
16:46:43 <b_jonas> fizzie: there's technically a third, most unlikely case: that it's from a site like Advent of Code that gives every logged in user a different test input
16:59:58 -!- Koen_ has quit (Remote host closed the connection).
17:00:26 -!- j-bot has quit (Remote host closed the connection).
17:00:40 -!- j-bot has joined.
17:07:26 -!- oerjan has joined.
17:21:23 -!- arseniiv has joined.
17:30:35 -!- normsaa90 has joined.
17:33:15 -!- normsaa has quit (Ping timeout: 256 seconds).
17:36:23 -!- normsaa has joined.
17:39:29 -!- normsaa90 has quit (Ping timeout: 256 seconds).
17:40:12 -!- hanif has quit (Ping timeout: 276 seconds).
17:41:39 -!- normsaa91 has joined.
17:41:45 -!- normsaa has quit (Ping timeout: 256 seconds).
18:02:07 -!- immibis has quit (Remote host closed the connection).
18:05:43 -!- immibis has joined.
18:05:47 -!- Sgeo has joined.
18:12:21 -!- normsaa91 has quit (Ping timeout: 256 seconds).
18:14:59 -!- Guest81 has joined.
18:14:59 <Guest81> h
18:15:41 -!- Guest81 has quit (Client Quit).
18:16:02 -!- normsaa has joined.
18:31:02 <fizzie> "Site compatible with IE 10 or above, Mozila [sic], ..." is probably not a good sign.
18:33:30 <arseniiv> ow
18:34:14 <arseniiv> `? tlwtnt
18:34:17 <HackEso> tlwtnt? ¯\(°​_o)/¯
18:34:30 <arseniiv> ow!
18:37:04 <nakilon> \wp ow
18:37:06 <velik> OW -- Wikimedia disambiguation page https://en.wikipedia.org/wiki/OW
18:38:23 <nakilon> looks like sometimes there is a default page and sometimes not
18:38:53 <b_jonas> fizzie: does it also have a link to where you can download Acrobat Reader to view their PDFs and the Java and Adobe Flash plugins, without mentioning Oracle for Java?
18:39:31 <b_jonas> also do they recommend at an least 256 color and at least 1024x768 pixel resolution display for best view?
18:40:54 <b_jonas> very long ago I made a script to say "best viewed with Mozilla" or "best viewed with Internet Explorer", always the other one than the viewer is using
18:41:19 <nakilon> lol
18:41:49 <nakilon> b_jonas do you know who chukchas are?
18:41:59 <b_jonas> no
18:42:22 <nakilon> ethnic Siberians who live deep in tundra with deers
18:42:27 <nakilon> there is a joke
18:43:02 <zzo38> b_jonas: What will do if neither is use?
18:43:22 <nakilon> smth like: "to keep chukcha busy give him a paper with 'read on the other side' written on both sides"
18:43:31 <keegan> b_jonas: lol, evil
18:44:40 <nakilon> \wp chukcha
18:44:42 <velik> Chukchi people -- ethnic group https://en.wikipedia.org/wiki/Chukchi_people
18:45:21 <nakilon> oh, even not Siberia
18:51:00 <b_jonas> zzo38: one of them was the default. I don't remember which.
18:52:19 <fizzie> It didn't have those other things. Maybe it would have elsewhere on the site.
18:57:13 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88007&oldid=88000 * AceKiron * (-80)
19:00:25 -!- ais523 has joined.
19:01:08 <ais523> I think the reason why some servers ping during connection, and don't connect until they receive a matching pong, is to prevent non-IRC-related programs being tricked into connecting to IRC
19:01:33 <ais523> if your ircd ignores invalid commands (and many do), it isn't hard to put a segment of valid IRC commands in the middle of, say, an HTTP POST request
19:01:39 <riv> that is a good reason but only requires one PING right at the start
19:01:55 <keegan> I remember a spam attack on Freenode that worked by exactly that mechanism
19:02:01 <ais523> so you can create a web page with a script that causes the viewers to spam IRC, and this has been used to create IRC worms in the past
19:02:21 <keegan> it would POST a set of IRC commands that cause the user to join a bunch of channels and spam them with the URL of the page
19:02:24 <keegan> right
19:02:25 <keegan> pretty funny really
19:02:43 <nakilon> HAMRADIO
19:02:50 <keegan> Postel's Law sounds good but is absolutely terrible for security
19:03:05 <riv> Postel's Law is bad
19:03:14 <keegan> also bad for long term maintainability
19:03:22 <riv> i remember that spam attack, that was funny
19:03:34 <nakilon> \wp Postel's Law
19:03:35 <velik> robustness principle -- design guideline for software that states: "be conservative in what you do, be liberal in what you accept from others" https://en.wikipedia.org/wiki/Robustness_principle
19:05:54 <keegan> as users expect the "best guess" behavior of implementations will continue working forever
19:06:11 <keegan> leading to the codification of insanely complex behavior as exemplified by the WHATWG HTML spec
19:06:48 <ais523> I do actually like what that HTML spec has done, though
19:07:06 <ais523> because it means that there are now set boundaries for exactly what you are and aren't allowed to do in HTML
19:07:13 <keegan> right
19:07:29 <keegan> it's a regrettable necessity based on the early days of the web being dominated by ad hoc systems and postel's law
19:07:34 <ais523> it is Postellish in some respects, too, e.g. saying that web pages must be in UTF-8 but giving long complicated instructions for what to do if they aren't
19:08:46 -!- arseniiv has quit (Ping timeout: 260 seconds).
19:09:45 <ais523> actually, one related problem I've been having recently, which may be unsolvably difficult, and Stack Overflow has not been helpful:
19:10:06 <ais523> given a URL, which characters in it can be safely percent-decoded without changing the meaning of the URL
19:10:10 <ais523> ?
19:11:42 <ais523> I'm trying to write an HTML sanitizer and would prefer to avoid allowing people to put obfuscated URLs through it, but it's so hard to figure out the rules for what will and what won't work
19:12:28 <nakilon> generate string of all chars and escape it with some very common library used for that need
19:12:35 <nakilon> to see what chars it will process
19:14:10 <ais523> nakilon: that basically means assuming that the library is correct, which it probably won't be
19:14:15 <nakilon> pretty sure all libraries will process different set of chars )
19:14:28 <nakilon> there is probably no correct library
19:14:32 <ais523> that said, I have been trying various test strings on various browsers and one httpd, to see what happens
19:14:46 <nakilon> maybe some Chrome is implemented "correctly" but it won't provide a library
19:14:50 <ais523> (testing a wide range of httpds would be frustrating)
19:15:22 <ais523> one thing I did learn throughout all this is that the URL path component %2e%2e is in fact equivalent to .. and will cancel out the previous component
19:15:38 <ais523> which seems like an unwise decision from a security point of view, that's just asking for path traversal vulnerabilities
19:15:43 <nakilon> also the possible achievable "correctness" of your tool is limited by how correct the servers are
19:16:01 <nakilon> many of them work differently about URL escaping
19:16:13 <ais523> right
19:16:30 <ais523> I think the only real option here is to have a parameter for what sort of dubious-looking escapings the user wants to exclude
19:16:37 <nakilon> also additional rules and bugs in redirects
19:22:08 <nakilon> teaching velik wolfram alpha, somehow it took the whole day to make 10 tests, and it's only a piece of Math examples; there are three other topics, maybe I'll make most of them tomorrow
19:32:17 <b_jonas> ais523: "prevent non-IRC-related programs being tricked into connecting to IRC" => yes, that might be part of the reason.
19:33:46 <b_jonas> "avoid allowing people to put obfuscated URLs through it" => yeah, that's probably impossible
20:13:55 <fizzie> Normally I don't pay *that* much attention to update sizes, but now updating blender wants to install "libembree3-3" that will take half a gigabyte of disk.
20:15:45 <ais523> that's a pretty big library!
20:16:18 <ais523> b_jonas: it just seems so wrong to let people post arbitrary URLs on, say, forums or the like, when you're supposed to be sanitising the content
20:16:40 <fizzie> "Intel® Embree is a collection of high performance ray tracing kernels that helps graphics application engineers to improve the performance of their photorealistic rendering application." I feel like they've probably got versions specifically tuned for a bazillion different (Intel) CPU models.
20:18:21 <fizzie> Heh, it's a single 485223648-byte .so file.
20:18:47 <b_jonas> ais523: I'm not sure I see why, except for the part where you might sanitize the protocol part (the part before the first colon) and add a max length
20:19:43 <ais523> fizzie: I suspect that you only need around eight different versions of your code to get peak performance on all 64-bit Intel CPUs
20:19:49 <b_jonas> ais523: though most of the time you'd probably throw in that HTML attribute that hints to search engines that this is a link by a third party submission and the search engine shouldn't think your site is deliberately linking to kiddy porn
20:20:02 <ais523> and maybe another four or five more for AMD
20:20:22 <ais523> b_jonas: I've already been looking through the list of rel= attributes
20:20:27 <b_jonas> it won't take away all the responsibility about what links you host, but you can't generally fix that by just looking at the URL
20:20:42 <ais523> I think probably at least nofollow and noreferrer should be in there for external links by default
20:21:17 <b_jonas> you absolutely want to whitelist protocols though because of javascript: links though
20:21:21 <ais523> although noreferrer is interesting because you can also set an HTTP header that tells the browser to noreferrer everything
20:21:40 <ais523> I explicitly turned it off on my website (as in, I outright said in the headers that I know this header exists and I'm choosing not to use it), which makes some security checkers really annoyed
20:22:00 <b_jonas> lol "only need around eight different versions of your code to get peak performance on all 64-bit Intel CPUs"
20:22:13 <ais523> b_jonas: I mean that there isn't a combinatorial explosion
20:22:32 <b_jonas> and then you want AMD and code running on GPU and a port for ARM64 etc
20:22:56 <b_jonas> ais523: yes, that's because it's really hard to make CPUs so there are only two or three companies making x86 cpus at a time
20:23:07 <oerjan> . o O ( rel=dontclickfortheloveofgod )
20:23:08 <ais523> although, in practice nowadays, I think you can get decent performance for CPU-bound code by writing a post-AVX2 version for most people, and a pre-AVX2 version (aiming for maximum compatibility) for people who are running on really old computers
20:23:22 <b_jonas> and they mostly develop at most three lines of them in parallel each
20:23:33 <b_jonas> one expensive, one home, and one low-power laptop one
20:23:34 <ais523> optimising for AMD does seem to be significantly different from optimising for Intel, though
20:24:01 <ais523> in particular, if the program isn't memory-bound, the next most relevant bottleneck on Intel is normally instruction dispatch, whereas on AMD it's usually something else
20:24:07 <b_jonas> ais523: and more importantly, you only need to make different versions of a few performance-critical functions, not everything in your code
20:25:01 <b_jonas> there might still be a combinatorial explosion if you want versions of your code that differ in ways other than the CPU hardware
20:25:09 <ais523> I came up against this in the fizzbuzz I've been writing over the last year or so
20:25:40 <ais523> I want to read a vector from memory, then do two instructions with that vector as one argument and a vector in a register as a second argument
20:25:52 <riv> how is the fizzbuzz coming??
20:25:54 <ais523> on Intel, it's optimal to read the vector from memory twice
20:26:08 <ais523> on AMD, you want to read it into a register and then use it from there
20:26:33 <ais523> this is because Intel is bottlenecked on instruction decode so simply using fewer instructions is a gain, the L1 cache can handle the second read
20:26:53 <fizzie> Well, yes. It is a C++ project. It's possible there's a combinatorial explosion of templates instead. There isn't that much code in terms of source code lexically.
20:27:00 <ais523> on AMD the instruction decode is faster but the L1 cache has less bandwidth, so you can spare an extra instruction to read into a register to spare the cache bandwidth
20:27:10 <b_jonas> ais523: that might change for future AMD cpus...
20:27:16 <ais523> riv: I think I have a plan, the issue is just finding the time to write this code
20:27:46 <ais523> b_jonas: it's possible, but AMD seem to have been going down the path of using hyperthreading to make use of the extra instruction dispatch capability
20:28:05 <ais523> (sorry, I meant dispatch not decode, AMD is bottlenecked on decode too but that only matters if you aren't in a loop because of the µop cache)
20:28:22 <b_jonas> that said, I agree that bottlenecking on either memory access or instruction dispatch is typical these days, the execution times don't matter as much, unless you are specifically writing matrix multiplication inner loops or things like that
20:29:08 <ais523> even matrix multiplication is bottlenecked on memory access, most of the fast techniques for it are based on trying to avoid cache spills
20:30:05 <b_jonas> ais523: yes, so it's only the inner loops where you actually have to care about the execution times of these floating point multiplication-add instructions.
20:30:22 <ais523> it's hard to think of something that wouldn't bottleneck on memory access – maybe things like prime factorization, or pathfinding
20:31:00 <ais523> b_jonas: oh, fused multiply-adds are fast, but that doesn't really matter, they're more beneficial in terms of accuracy than they are in terms of speed
20:31:35 <ais523> multiply then add is 2 cycles latency, fused multiply-add is 1 cycle latency, and they both have enormous throughput (values correct for recent Intel and also recent AMD)
20:33:55 <b_jonas> ais523: yes, the current CPUs are so optimized for that that you basically can't run out of multiplication units. I remember there was a time when the CPU was better at fused multiply-add than additions
20:34:25 <ais523> integer additions do actually beat all the floating-point stuff on most modern CPUs, though
20:35:02 <ais523> on Intel, this is primarily because the execution unit that handles jumps and branches can be used to do integer additions/subtractions if it isn't needed for the jump
20:35:13 <b_jonas> ais523: while floating point multiplications beat integer multiplications, yes
20:35:19 <ais523> (because it can handle fused compare-jump, fused subtract-jump, and friends)
20:35:38 <ais523> and yes, floating point multiplication performance is better than integer multiplication (although normally not that much better)
20:35:45 <b_jonas> only 64-bit ones though, because the mantissa is bigger
20:35:54 <ais523> Intel actually has two different floating point multipliers with different performance characterstics
20:36:04 <ais523> one has higher throughput, the other lower latency
20:36:36 <b_jonas> ais523: used for the same instructions? I didn't know that
20:36:38 <ais523> actually, the main throughput bottleneck I tend to hit is vector shuffles
20:36:49 <ais523> b_jonas: I think they're mostly used for different instructions
20:37:05 <ais523> Intel normally has only one vector shuffler, it's fast but you can only use it once per cycle
20:37:14 <ais523> and lots of useful instructions fall into the "vector shuffle" group
20:37:43 <b_jonas> yeah
20:38:30 <ais523> there's also the infamous lane-crossing penalty (especially on AMD, but I think it affects Intel too)
20:39:15 <ais523> where it costs something like 3 cycles to do anything that combines the top half of a register and the bottom half of the register, when the register is "sufficiently large" (normally a recently introduced vector size)
20:39:58 <ais523> this is why lots of vector instructions are incapable of mixing the top and bottom half of a YMM register, they're instead basically designed as two XMM instructions in SIMD (even if they aren't normally SIMD instrucitons)
20:40:24 <b_jonas> ais523: yeah
20:41:35 -!- arseniiv has joined.
20:42:04 <b_jonas> VPSHUFB for ymm registers specifically
20:42:50 <ais523> that was the example I was going to use
20:43:17 <b_jonas> I am following this because AVX2 is now available on lots of CPUs
20:43:38 <ais523> and there's an annoying lack of backwards compatibility, too – even if Intel or AMD figure out how to make five bits of the index useful, they won't be able to make their VPSHUFB instructions actually handle them
20:43:41 <b_jonas> (including my new home computer)
20:43:43 <ais523> because it would break backwards compatibility
20:43:53 <ais523> I've had an AVX2-capable computer for a few years now
20:44:56 <b_jonas> ais523: they just add a new instruction for that. they're adding lots of new vector instructions all the time anyway.
20:45:30 <ais523> but what do they even name it?
20:45:33 <ais523> VPSHUFB5?
20:45:41 <b_jonas> no, I think it's VPERMsomething
20:45:44 <b_jonas> rather than SHUF
20:45:46 <ais523> (with a VPSHUFB6 coming in a few years after AVX-512 is more mature?)
20:45:49 <b_jonas> it already exists
20:45:53 <b_jonas> or so I think
20:46:00 <b_jonas> let me look it up, I think it's later than AVX2
20:46:00 <ais523> oh, the PERM stuff normally has worse granularity than SHUF, this will be confusing
20:46:38 <b_jonas> no, there is now a VPERMB that is a full byte level shuffle even on a zmm register
20:46:47 <b_jonas> the lower granularity was a thing of the past
20:47:08 <ais523> knowing how AVX-512 is going, this is likely to have been specified by Intel but not actually implemented by anything
20:47:08 <b_jonas> well, thing of the past that's still in many CPUs that we're using now
20:47:10 <b_jonas> but you know
20:47:15 <arseniiv> <b_jonas> very long ago I made a script to say "best viewed with Mozilla" or "best viewed with Internet Explorer", always the other one than the viewer is using => rofl oh my
20:47:24 <ais523> there's a lot of AVX-512 which was specified but with no implementations
20:47:34 <b_jonas> ais523: quite possible.
20:48:28 <ais523> this may end up leading to another FMA3/FMA4 debacle some time in the future
20:48:52 <b_jonas> ais523: there's even a VPERMI2B instruction to byte level permute *two* zmm registers
20:48:59 <ais523> (FMA got specified prior to being implemented, with Intel and AMD proposing different plans; each then implemented the *other's* specification, leaving them incompatible)
20:49:00 <b_jonas> which means 128 slots
20:49:08 <b_jonas> wait what?
20:49:14 <b_jonas> each implemented only the other's specification?
20:49:15 <ais523> I think AMD implemented Intel's specification because they wanted to be compatible
20:49:18 <b_jonas> I didn't follow that
20:49:26 <b_jonas> I know they implemented incompatible stuff
20:49:30 <b_jonas> but I didn't know they swapped
20:49:32 <ais523> and Intel implemented AMD's specification because they couldn't get their own to work, it needed too much internal rearchitecturing
20:49:34 <b_jonas> that is odd
20:49:44 <b_jonas> wow
20:49:49 <ais523> (presumably this is why AMD came up with their version in the first place, it would be easier to implement)
20:49:57 <b_jonas> but 3DNow was AMD's specification that was never in Intel, right?
20:50:08 <ais523> b_jonas: yes, although a couple of 3DNow commands survived
20:50:34 <ais523> admittedly, SSE is much better-designed than 3DNow was, although both are dubious in terms of encoding
20:51:07 <b_jonas> I never really looked into the details of what 3DNow does. it was obsolete by the time I could have cared.
20:51:31 <b_jonas> we already had SSE4.1 by the time I started to care about SIMD instruction stuff
20:52:00 <ais523> b_jonas: think SSE with 64-bit-wide vectors
20:52:17 <b_jonas> no, that's MMX
20:52:24 <b_jonas> well, not quite
20:52:27 <ais523> I thought MMX wasn't vectorised at all
20:52:37 <ais523> 3DNow is, as long as you want a pair of single-precision floats
20:53:17 <ais523> it was the first vector unit; it simply just wasn't a very good one
20:53:25 <b_jonas> MMX has the drawback that it shares state with the FPU, and you have to do a slow switch of the FPU between MMX and traditional mode each time you want to use it, since the existing ABI expects the FPU to be in non-MMX mode
20:53:50 <b_jonas> MMX is "vectorized" in that it can handle two 32-bit floats in a 64-bit register
20:54:11 <ais523> hmm, maybe I got them muddled then
20:54:20 <b_jonas> but two floats per register is still a big help
20:54:21 <ais523> or maybe 3DNow uses the MMX registers for its vectors
20:54:39 <b_jonas> it also handles packed integers
20:54:52 <ais523> https://en.wikipedia.org/wiki/3DNow!
20:55:02 <b_jonas> no, I'm wrong
20:55:03 <ais523> right, 3DNow! seems to be an extension to use the MMX registers as vector registers
20:55:14 <b_jonas> apparently MMX *only* handles integers
20:55:31 <b_jonas> that's even more useful
20:56:23 <ais523> oh, so MMX does int vectorisation and 3DNow! does float vectorisation?
20:56:25 <b_jonas> I know these days MMX is only useful to get a few extra registers that you can sometimes access with shorter encodings than anything in the later instruction sets, and basically never worth to use
20:56:49 <b_jonas> I have no idea what 3DNow does
20:56:55 <ais523> I'm actually vaguely surprised that MMX didn't become the standard for non-vectorised floating point
20:57:15 <b_jonas> ais523: what do you mean "the standard"?
20:57:23 <ais523> it is saner than x87, and supported by all 64-bit CPUs
20:57:27 <ais523> b_jonas: in the ABI
20:57:54 <ais523> like, the ABI passes floats in MMX registers, assumes MMX mode at call boundaries, and the like
20:58:05 <b_jonas> ais523: which ABI? we can't change the x86_32 ABI, it's too late for that, and x86_64 comes with always SSE2 so by that time the point is moot
20:58:17 <ais523> b_jonas: x86_64
20:58:19 <b_jonas> also if MMX only handles integers then that can't work
20:58:34 <ais523> no, MMX definitely does floats
20:58:55 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
20:58:59 <ais523> no, I'm wrong
20:59:01 <ais523> it doesn't do floats, only ints
20:59:07 <ais523> that's why people don't use it for float maths :-)
20:59:19 -!- Lord_of_Life has joined.
20:59:39 <b_jonas> ais523: also SSE2 is the standard for passing floats in the x86_64 ABI, and that's a good thing
21:00:02 <b_jonas> because with SSE2 there, MMX is almost never useful
21:00:21 <b_jonas> and SSE2 adds advantages, both wider vectors and a better instruction set
21:00:23 <ais523> so it looks like we have three sets of registers: integer; x87/MMX/3DNow!; and XMM/YMM/ZMM
21:00:35 <b_jonas> oh, 3DNow also uses the x87 registers?
21:00:43 <ais523> (also random special-purpose stuff like flags, but I'm not counting those)
21:00:45 <ais523> b_jonas: right
21:00:56 <b_jonas> also (sigh) we also have AVX512 mask registers.
21:01:21 <b_jonas> on AVX512-capable CPUs that is
21:01:29 <ais523> x87 interprets the registers as one of three float formats (long double, plus formats which are almost but not quite the same as float and double); MMX as 64-bit integer vectors; and 3DNow! always as two floats
21:01:43 <ais523> b_jonas: to be fair those are really helpful for some applications
21:02:42 <b_jonas> ais523: no, x87 specifically stores 80-bit floats, not long doubles. there's a difference because long double is 64-bit floats in the MSVC ABI
21:03:08 <ais523> well, yes, but they're what has been known as "long double" for ages on Intellish processors
21:03:23 <ais523> but they got deprecated with the change to 64-bit
21:03:40 <b_jonas> because SSE2 handles 64-bit floats, yes
21:05:43 <esolangs> [[Cabra]] M https://esolangs.org/w/index.php?diff=88008&oldid=81202 * PythonshellDebugwindow * (+0) /* Language Definition */ Fix typo
21:05:46 <ais523> Wikipedia says that 3DNow! invented SFENCE
21:05:47 <b_jonas> wtf there's a KADDBB/KADDW/KADDD/KADDQ AVX512 instruction? I never noticed that
21:06:30 <b_jonas> ais523: I admit I don't follow how the fence instructions work. I leave them to slightly higher level libraries.
21:06:31 <ais523> but that seems unlikely to me, because my understanding of the x86 memory model is that an SFENCE is only useful with non-temporal writes or write-combining memory, and I didn't think those were implemented at that point
21:07:00 <ais523> b_jonas: I can describe the general (non-x86-specific) implementation fairly easily
21:07:15 <ais523> imagine loads and stores as not happening instantly, but being spread out over time
21:07:46 <ais523> an lfence stops a load crossing it (it has to happen entirely before if it's before the lfence, or entirely after if it's after the lfence)
21:07:51 <ais523> likewise, an sfence stops a store crossing it
21:08:13 <fizzie> I think PPC conventionally has a double-double as its `long double` type.
21:08:44 <ais523> if one thread is storing two pieces of data, and another thread is loading them, then you need to sfence between the stores and lfence between the loads if you want to prevent the loading thread seeing the new value of the second store, but the old value of the first store
21:09:45 <b_jonas> spread out over time how? you mean they happen at different times to different layers of the cache hierarchy, going down the hierarchy if either the smaller caches need to free up space or to make the value known to other CPUs?
21:10:14 <ais523> b_jonas: imagine that you send a "request to write memory" but then continue executing before the request has been handled
21:10:20 <ais523> and let the motherboard respond to the request at some later time
21:10:21 <b_jonas> ais523: "stops a load crossing it" at what levels of the hierarchy?
21:11:01 <ais523> it's a logical rather than physical barrier, it's not bound to a specific level of hierarchy
21:11:08 <ais523> so you have to match an lfence on one thread with an sfence on another
21:11:11 <b_jonas> ok
21:11:32 <b_jonas> I still think I don't need to know the details of this, what I do need to know is the atomic and mutex abstractions over them that libraries provide me
21:11:50 <ais523> on x86-64 specifically I think it's handled as part of the cache coherency mechanism
21:11:56 <b_jonas> because I don't think I write inter-thread (or inter-process) communication code that is at a lower level than those
21:12:09 <ais523> right
21:12:34 <b_jonas> nor CPU-level code that handles memory mapped to the video card or other memory-mapped IO
21:12:43 <ais523> one way to think about it is that sfence is one of the two main mechanisms for implementing the "release" atomic ordering, and lfence is one of the two main mechanisms for implementing the "acquire" atomic ordering
21:13:20 <ais523> atomic release is sfence then write; atomic acquire is read then lfence
21:14:03 <ais523> only, x86 has extra guarantees that most processors don't, so sfence is usually a no-op and I think many atomic libraries leave it out there on x86-64 (even though they would use it on other processors)
21:14:18 <ais523> (lfence is not a no-op, though, and is important in atomic code)
21:15:19 <b_jonas> and as far as I understand, the compilers need to know about both fences and atomics, because they have a meaning not only on the CPU level, but for what the optimizer isn't allowed to do, and current compilers indeed do this. (in contrast, I think the compiler needn't know about mutexes directly.)
21:16:22 <ais523> the compiler does need to know about the acquire/release rules on mutexes, but either it can see the atomic read/write in the function, or else it can't see anything at all and thus has to assume the worst
21:16:51 <ais523> oh, this reminded me of a weird case of wanting a compiler barrier specifically
21:17:13 <b_jonas> yes, the fast (non-contented) cases mutex functions must be fast so the optimizer will see into the functions when necessary
21:17:19 <b_jonas> s/cases/cases of/
21:17:21 <ais523> the idea would be in functions that undropped permissions, did a system call with checks, then dropped them again
21:17:43 <ais523> to do the checks with permissions raised, and to compiler-barrier to ensure that the undropping is done before the checks
21:18:01 <ais523> this sounds like it violates the least-permissions principle, but the point is to protect the checks from return-oriented programming
21:18:11 <ais523> in order to get permission to do the system call, the code would need to run through the checks too
21:18:46 <b_jonas> ais523: what kind of permission checks? aren't those undropping, permission checking, and dropping three system calls, and the compiler already mustn't reorder system calls?
21:19:01 <b_jonas> it also reminds me of something similar by the way
21:19:29 <ais523> b_jonas: say, you want an mprotect() wrapper that checks that you aren't making anything executable if it was previously nonexecutable
21:19:55 <b_jonas> ais523: ah, so by permission checking you just mean accessing memory that may or may not have read/write/execute permissions?
21:20:07 <b_jonas> hmm, that might be difficult
21:20:18 <ais523> I didn't mean permission checking, just checking in general
21:20:42 <b_jonas> but even so, can't a system call basically write anything to anywhere in your user memory, so you usually can't reorder memory accesses around them anyway?
21:21:11 <ais523> oh, that's interesting – the point being that compilers wouldn't optimise system calls anyway due to not knowing what they do?
21:21:30 <b_jonas> ais523: yes, except maybe a few specific system calls of which they know the meaning
21:21:51 <b_jonas> there are system calls like pread that can write even to memory that you didn't pass a pointer to to the system call
21:21:58 <ais523> I know there are some functions that can system call, and that the compiler treats specially
21:22:01 <ais523> malloc, for example
21:22:30 -!- delta23 has quit (Quit: Leaving).
21:23:07 <b_jonas> no, not pread, sorry.
21:23:15 <b_jonas> preadv
21:24:35 <b_jonas> preadv can write anywhere, and a compiler has to assume that an unknown system call can do things worse than that
21:24:53 <ais523> preadv seems so specific
21:25:18 <ais523> I can see why it could be useful – it saves the overhead of making multiple system calls when you want to do that operation specifically – but I'm unclear on how common that particular operation would be
21:25:25 <b_jonas> it's specific in that it's a particularly badly behaving system call, that's why I'm giving it here as an example
21:25:37 <b_jonas> most system calls are tamer than that, but the compiler can't easily rely on that
21:26:14 <ais523> I meant, I was thinking on a different line of thought when you mentioned preadv
21:26:25 <ais523> like, what was the motivation behind adding that to the kernel? who needed it, and what do they do with it?
21:26:52 <b_jonas> I don't really know.
21:27:21 <ais523> 99% of programs would just read into a large buffer and then copy the data into the appropriate final locations, rather than spending time coming up with a big description for preadv
21:27:29 <ais523> although, preadv is faster because it reduces cache pressure
21:28:21 <b_jonas> I think it might be there because they wanted to get asynchronious regular file reading to work, which turned out quite hard and they're still struggling with it, but anyway the interface of the async reading allows similar scatter-gather read because it has to allow multiple reads at the same time, so they added a normal non-async interface at that point
21:29:03 <b_jonas> but maybe someone just used a cyclical buffer and wanted to micro-optimize the number of system calls, since the context change for system calls used to be slower than now
21:29:19 <b_jonas> preadv is very old, you have to remember that
21:29:25 <b_jonas> so it can have some odd historical reason
21:29:33 <ais523> …now I'm wondering if preadv is faster than mmap + memcpy
21:29:47 <ais523> it could be, I guess? because the physical memory you mmap into has to be cached
21:31:24 <b_jonas> ais523: yeah, look, the manpage says "these system calls first appeared in 4.2BSD"
21:31:34 <b_jonas> so old it's hard to speculate about it
21:32:55 <b_jonas> ais523: readv is older than pread if the system call numbering can be believed
21:33:25 <ais523> b_jonas: while searching about uses of preadv, I found some mailing list archive mentions which implied that readv was newer
21:33:31 -!- oerjan has quit (Quit: Nite).
21:37:26 <b_jonas> ais523: anyway, what this reminded me of is the SSE floating point control word. these control the rounding mode, the exception mask, and two bits to change denormal inputs and results to zero in floating point instructions because those denormals would cause a big slowdown on certain CPUs. anyway, the compiler *should* know about the semantics of the SSE floating point control word to the extent that
21:37:32 <b_jonas> it's not allowed to reorder floating point arithmetic around changing the control word, but current compilers don't yet know this, so it's not quite clear how you can write to the floating point control in a useful way without potential undefined behavior.
21:37:46 <b_jonas> the situation is similar to the atomic operations back when multithreading was new and compilers didn't yet know much about it
21:38:02 <b_jonas> or when SMP was new.
21:39:49 <ais523> what's the performance of changing the floating-point control word like?
21:39:57 <ais523> I can easily imagine algorithms which want to change it a lot
21:40:20 <b_jonas> and no, you can't just change the floating point control word in a non-inlinable function, partly because the ABI says that the rounding mode etc has to be in its default state between function calls, and more importantly because the compiler is normally allowed to reorder a floating point operation around an unknown function call.
21:40:34 <ais523> IIRC AVX-512 dedicates a couple of bits of the instruction to override parts of the FPU control word
21:41:17 <ais523> fwiw, on gcc you could probably get away with an asm voltatile that takes the results of previous FPU instructions and inputs of subsequent FPU instructions as read-write parameters and then doesn't change them
21:41:38 <ais523> would be annoying to write, but gcc would be forced to put the control-word-changing operation in the right place
21:41:49 <b_jonas> ais523: there are two cases when you want to change the floating point control word a lot. one is if you want to use a non-default floating point control word, but also do function calls or returns to code that you don't control since technically you have to restore the default control word because any library function is allowed to do floating instructions; the other is interval arithmetic which can
21:41:55 <b_jonas> change the rounding mode a lot
21:42:09 <b_jonas> ais523: but more likely you just want to change the control word once, then do a lot of float operations
21:43:35 <b_jonas> well, admittedly there's a third case, if you want to read the exception flags and have to reset them for that reason
21:43:45 <ais523> I was thinking of interval arithmetic
21:43:52 <ais523> exception flags might also be relevant in some algorithms
21:44:13 <b_jonas> and I don't know about what performance writing the control word has, I'm mostly concerned about cases when that doesn't matter
21:50:07 <b_jonas> apparently you can get slowdowns for denormal results in both Intel and AMD, and the optimization manuals for the two brands detail when these can and can't happen and what you should do about them
21:50:35 <b_jonas> the actual rules do differ between Intel and AMD, at least for some of their CPUs
21:52:15 <ais523> I think for many float operations, denormals are emulated in firmware rather than having dedicated hardware
21:52:19 <ais523> so the performance is terrible
21:52:58 <b_jonas> ais523: that's the gist of it, but the details are complicated. not all instructions with a denormal input or output give a slowdown.
21:53:24 <b_jonas> that's why there's an optimization manual
21:53:30 <b_jonas> I don't claim to really understand the rules
21:53:55 -!- normsaa has quit (Ping timeout: 256 seconds).
21:53:57 <b_jonas> I just have to know where to look if this becomes important
21:54:27 <b_jonas> fungot, does a circle have no end?
21:54:28 <fungot> b_jonas: yeah you said that geographic location has to do with the code than by using only the functional aspects of scheme systems support arbitrary-size vectors...
22:16:19 <arseniiv> fungot: alright, but at least it should have a coend, does it? (I don’t know what a coend is, that’s something from category theory)
22:16:20 <fungot> arseniiv: for example because it pollutes the default namespace
22:17:31 <arseniiv> hm that’s a bit too philosophical
22:18:55 <Corbin> fungot: What is a coend but a colimit over a bifunctor?
22:18:56 <fungot> Corbin: i suppose fnord is the original?
22:19:21 <Corbin> fungot: Bi-fnord-tor?
22:19:21 <fungot> Corbin: no, he refuses to give me access to your harddrive.)
22:20:36 <arseniiv> fungot always tries to fool you with words when you ask significant questions
22:20:36 <fungot> arseniiv: even the ' web-sivu' in the xvid format... would it be for me making return values in your helper function seem to always be using fd3 itself, though
22:21:31 <arseniiv> fungot: at least tell me this: xvid or divx?
22:21:31 <fungot> arseniiv: what, thin and unnecessarily bendy? and!... but is that what you recorded was to later evaluate ( quux zot)
22:21:54 <arseniiv> exactly as I said, no definite answer :′(
22:23:54 <arseniiv> > fix fungot
22:23:54 <fungot> arseniiv: what with my poor grammar and ' be's all over the state. so you can do
22:23:55 <lambdabot> *Exception: Can't be done
22:36:08 -!- Cale has quit (Remote host closed the connection).
22:38:37 -!- Cale has joined.
22:39:16 -!- chiselfuse has quit (Write error: Connection reset by peer).
22:39:16 -!- hendursaga has quit (Write error: Connection reset by peer).
23:46:08 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=88009&oldid=87590 * PythonshellDebugwindow * (+18) rd
23:46:38 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=88010&oldid=88009 * PythonshellDebugwindow * (+1) Rd
23:46:51 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=88011&oldid=88010 * PythonshellDebugwindow * (+1) :
2021-09-12
00:10:15 -!- arseniiv has quit (Ping timeout: 260 seconds).
00:22:49 -!- normsaa has joined.
00:35:55 -!- src has quit (Ping timeout: 260 seconds).
01:00:18 <zzo38> Is Tom7 interested in Free Hero Mesh now that bizarro is implemented? Someone told me that it is, but I don't really know. (Maybe, should also be implemented changing execution order of objects (like, I think, Tom7 did), but that might be difficult to know how to do it properly)
01:03:03 <keegan> what is bizarro
01:03:54 <zzo38> The bizarro world is another grid of objects which is normally invisible and intangible, but is still affected by most turn-based actions
01:07:35 <b_jonas> dunno, you'll have to ask him. he has an email.
01:07:47 <b_jonas> and a blog with comment forms.
01:07:59 <zzo38> OK. I looked and I found two different email addresses.
01:10:32 <zzo38> But, I will try.
02:04:35 <b_jonas> in git, how do you list the refs of a remote repo?
02:06:07 <ais523> b_jonas: does "git branch -v --remote" do what you want?
02:17:31 <b_jonas> ais523: no, that only shows the local tags created that follow the remote tags. but (git ls-remote) does work.
02:18:58 <b_jonas> ais523: the context is that I was trying to pull from a git repo that renamed its master branch to main, and didn't leave master even as a synonym, but I still have a local remotes/origin/main reference. so I wanted git to list remote refs to make sure that indeed, master doesn't exist on the remote.
02:19:11 <b_jonas> *sigh*
02:23:12 <b_jonas> the "master" nonsense started out sanely, with only the fancy web interface on github localizing "master" to "main", and using "main" as the branch name in repos if you create one with their fancy GUI tool. they don't need to touch actual branch names, because that would break compatibility, and the kind of people who don't understand that won't see the real branch names because they don't type (git
02:23:18 <b_jonas> lsref) or anything in the command-line, they just look at the github frontpage or something.
02:23:36 <b_jonas> but no, at least one repository actually has the existing branch name deleted now. how did we get to this?
02:24:54 <b_jonas> immibis: ok, you were right
02:24:56 <b_jonas> um
02:24:58 <b_jonas> int-e: you were right
02:25:20 <b_jonas> and it sounds like it's from one of those puzzle/contest sites, not from coursework homework
02:25:36 <ais523> fwiw, I think it makes the most sense to name the primary branch after the project
02:26:37 <b_jonas> I don't care what you name the branch, I only care when it's renamed in an existing public repo with no synonym left
02:30:01 <b_jonas> (I also found another repo that did a non-fastforward change to their master
02:32:36 <zzo38> What I read is that git doesn't care about the branch name (except that it creates the "master" branch by default). But, you might want to use other branch names in any system, one reason being due to converting it, e.g. fossil<->git, since fossil uses name "trunk" by default, but again it doesn't care the branch name you can use other names.
02:34:00 <zzo38> (Fossil also has propagating tags too, so you can reference a range of commits using a name of any tag and you can have more than one. The branch name is also a tag, so that can also be used.)
02:35:33 <b_jonas> what I don't know is how git knows which branch is the default? when I clone a repo, I don't explicitly tell it to check out the master branch, it decides that on its own.
02:35:41 <b_jonas> is there something in the config that tells that?
02:37:41 <fizzie> Does anything but Subversion use that model where you just have one big tree, and it's just a convention that you create top-level directories "trunk", "tags" and "branches" under the root, and make copies of all your code in them?
02:38:07 <b_jonas> hmm... I think git checks out the HEAD of the remote
02:39:00 <b_jonas> fizzie: no idea, ask someone who uses mercurial, they have like three or four different branch mechanisms so perhaps one of them is that
02:39:11 <b_jonas> :-/
02:39:19 <fizzie> git clone "-- creates and checks out an initial branch that is forked from the cloned repository’s currently active branch."
02:40:10 <fizzie> I guess a bare repository has an active branch as well?
02:40:49 <b_jonas> fizzie: apparently
02:40:55 <fizzie> And we use Mercurial at work, though weirdly.
02:42:02 <b_jonas> fizzie: aren't you using git at work?
02:42:54 <fizzie> No. Well, except for a lot of open-source things of course.
02:43:22 <fizzie> Chromium and Android and such.
02:43:59 <b_jonas> well yeah, everyone has a lot of version control systems installed on their machine these days just to be able to check out third party repositories
02:44:37 <b_jonas> that's why I have cvs, mercurial, darcs, fossil, bazaar installed
02:44:58 <b_jonas> (svn and git I have used for actual work or hobby)
02:48:00 <fizzie> I think we moved from Subversion to git for the "big" (not that big) shared ASR codebase at the university when I was there doing research.
02:49:36 <fizzie> Hey, that fox is back.
02:50:14 <fizzie> Well, okay, it might be an entirely different fox, I think there's many of them.
02:51:37 <fizzie> Hadn't seen any for a while, but before that I frequently saw one of two at night out there crossing the (pretty quiet) side street or just walking on the sidewalk.
02:52:37 -!- earendel has joined.
03:05:32 <earendel> new connection would also mean new secure socket layer handshake roundtrips overhead..no? this sucks hard on gprs connections, when scripts demand preflight check for modifications before it serves from cache. a page like irccloud easily make 30-40 https requests. it is a pain. not sure what keepAlive even does. probably additional overhead ping pongs. it in some ways stays open. via stream end
03:12:11 <earendel> a better protocol would put all requests in a single one. and fetch the whole package deflated, encypted.. vice versa.. and then evaluated "in time". and the user/webdeveloper would only notice when inspecting the network tab. good software never jumps in your way demanding your attention.
03:13:41 <Corbin> Sure, computers suck.
03:14:04 <b_jonas> earendel: what is the context for this? and yes, we've been doing multiple HTTP requests per TCP connection long ago, regardless of SSL or not
03:14:18 <earendel> yes, but not pleasently
03:14:47 <b_jonas> well yes, HTTP 2 is trying to improve on that a bit I think
03:15:07 <b_jonas> in that it allows you to abort a request without breaking the TCP stream
03:15:21 <b_jonas> but the basics work well enough, and routinely used for downloading several small files
03:15:26 <earendel> [ardon.. a few thoughts. context is my mobile connecion here :/
03:16:07 <fizzie> HTTP/3 uses UDP and has a 0-RTT encrypted handshake to known servers. Or at least QUIC did.
03:16:34 <b_jonas> I mean I have an old custom HTTP downloader program (I really should make a new one soon because it sucks), it has a delay mode where it downloads things slowly, and in that delay more I batch multiple requests together and longer delays between just so that I can take advantage of HTTP keepalive connections
03:16:59 <b_jonas> and indeed I've done a debug output to verify that that works, it does not start a new TCP connection within the batches usually
03:17:09 <fizzie> (And TCP keepalive is pretty much just redundant 0-size frames + their acks.)
03:17:27 <b_jonas> fizzie: this is a different keepalive
03:17:30 <b_jonas> not TCP keepalive
03:18:16 <fizzie> Oh, I got confused, because that was talked about earlier.
03:18:27 <earendel> i am afraid all of this is crappy om plicated and just doesn't work. or solve the problem it was invented for. obviously. so http is ok. one as well use bundlers. and just.. test a webapp in low bandwith.
03:18:43 <earendel> right keepalive we were.
03:18:59 <fizzie> Yeah, the HTTP "keepalive" is almost a different meaning of the word.
03:19:14 <b_jonas> it's just some stuff in the request and response headers where the server and client negotiate that you can reuse the TCP connection for another request, for which both parties have to make sure that if a request/response has a body, it uses either Content-Length or chunked encoding so the other party can tell where the body ends
03:19:45 <b_jonas> but earendel might have asked about something else and I jumped to a conclusion
03:19:46 <ais523> it has crossed my mind recently that many web pages have heavy JavaScript for doing things like replacing small portions of the page so that there's no need to redownload the whole thing
03:19:56 <b_jonas> I don't know the context that earendel was trying to ask about
03:19:59 <earendel> i was a bit off as i said. 1st sgt logbook entry. i understand we talked about tcp.
03:19:59 <ais523> when in fact, you could just do it all as plain HTML and it'd be faster due to the smaller download sizes
03:20:41 <ais523> there are complicated javascript-based web forums which have things like fake scrollbars because the real one wouldn't work properly, because the page isn't loaded all at once
03:20:51 <earendel> yup.
03:20:55 <ais523> but, if it weren't for images (which you may be able to use placeholders for), you probably *could* just load the page all at once
03:21:07 <ais523> and it might well be lighter
03:21:28 <b_jonas> ais523: and websites that put on a blur filter and an overlay popup that says you have to buy a payed subscription to view the article, on client side
03:21:52 <b_jonas> or similarly a blur filter and an overlay popup saying that you have to claim to be at least 18 years old to view the content
03:22:00 <b_jonas> usually also disabling the scrolling behind it
03:22:12 <ais523> b_jonas: I've discovered that surprisingly many of those, the filter, overlay, etc. just don't load if you have JavaScript off
03:22:34 <b_jonas> ais523: nah, on some sites nothing loads if you have Javascript off
03:22:37 <ais523> my "default" for browsing the web is JS-off (I have ways to turn it on if I need to), and it's actually much more usable that way, surprisingly
03:22:47 <earendel> yes. images can, and were put into sprite bitmaps to keep conn low.
03:23:00 <earendel> but images are not used much as back then.
03:23:15 <b_jonas> ais523: but sure that happens too
03:23:37 <earendel> usully u can do a lot with that minimal symbols that are fashinable and minimal (which i like too)
03:24:10 <earendel> it helps indeed sometimes.
03:24:30 <b_jonas> ais523: there's at least one site where I enable javascript just to download the content, AND have a client-side CSS rule to remove the overlay and reenable scrolling
03:24:41 <earendel> btw. gitter is lynx compatible.
03:25:39 <b_jonas> ais523: oh, and you need to accept at least some cookies for it to load too
03:25:53 <earendel> i think most websites are mining coins when i use their interface in the background. and keeps machine learning my type style. and metriics more terrifying. :>
03:30:05 <b_jonas> earendel: probably not very fast, because I'd hear the fan spinning
03:31:11 <earendel> or contribute to SETI
03:31:37 <earendel> which i would cancel severly.
03:31:40 <zzo38> ais523: I agree; it does usually work better.
03:32:06 <zzo38> Sometimes, even though nothing is displayed if JS is disabled, you can disable CSS as well and then it will be displayed. However, sometimes this does not work.
03:33:15 <zzo38> (Sometimes by viewing the source you can still find a link to the data, though.)
03:33:36 <ais523> I discovered recently that Firefox has a built-in way to disable CSS on the page you're viewing
03:33:53 <ais523> alt-v, y, n
03:34:04 <ais523> this also lets you change between stylesheets, if the site defined more than one
03:34:07 <earendel> about:config?
03:34:17 <ais523> no, in the menus for one page, rather than globally
03:34:27 <ais523> it's probably got a global CSS disable too, but I doubt it's a good idea to use it
03:35:59 <zzo38> I use that command a lot actually
03:37:15 <b_jonas> ais523: yes, that's very old. the alternate stylesheets too, though mostly your readers won't guess they exist unless you include a built-in interface, whether client-side script to change which stylesheets are active
03:37:45 <earendel> that matrix addon was quite powerful. usually its a bit too much work, but it could pay on 56KBit ~
03:37:50 <ais523> b_jonas: still, it means that you could combine the JS stylesheet change, with the browser stylesheet change
03:37:55 <ais523> and have a page that works for non-JS viewers
03:37:59 <b_jonas> also I think different browsers implement the alternate stylesheets a bit differently so you have to be careful, to tell if they're disabled when loading the page, some look at one attribute, some look at another
03:38:31 <b_jonas> one attribute tells if it's a normal or alternate stylesheet; the other gives the name of the alternat stylesheet that the menu or scripts can reference to enable/disable it
03:38:59 <earendel> aaand. markdown would be totally sufficient for informational pages. articles.
03:39:44 <ais523> I wouldn't like Markdown specifically for that because it has a few annoying corner cases
03:39:48 <ais523> like in the escaping rules
03:39:57 <zzo38> Another alternative is the simpler gemini format
03:39:58 <ais523> but, the sort of page that can be generated from a markdown-ish input, yes
03:40:04 <ais523> or even POD
03:40:46 <zzo38> (Although gemini doesn't have inline formatting; there is no emphasis, strong, fixpitch (except for blocks), or inline links (links on lines by themself are possible).)
03:40:56 <earendel> there can still be app vr world integrated within toaster and fridge. also rss has to somehow be spun together. then we can drop social media tech monopolies if we want. (we could keep the, if they behave nicely :)
03:41:06 <ais523> I actually really like POD's feature set, except for the non-semantic I<> and B<>
03:41:31 <b_jonas> ais523: yes. but the menu only allows the reader to enable one alt stylesheet and disable all others, or enable no alt stylesheet. if you want multiple orthogonal axis by stylesheet, such as colors and font sizes, you need more than the menu.
03:41:48 <b_jonas> I also don't like markdown. it's harder to use than HTML.
03:41:53 <ais523> well, browsers have a built-in for variable font sizes nowadays too, but yes
03:42:11 <ais523> I was working on my own markdown-alike, but never finished, there were some things I couldn't decide how they should work
03:42:15 <earendel> some p2p indexing distributed queryable node mastermind
03:42:21 <b_jonas> you'd THINK it's hard to make a markup language that's worse than HTML with all its historical baggage, yet a lot of wiki or forum sites manage exactly that
03:42:25 <ais523> I /did/ decide that <details> was worthy of having a tag-equivalent, though
03:42:38 <ais523> and find an escaping syntax I was happy with
03:42:39 <earendel> so. i hope u have noted this. :p
03:42:40 <b_jonas> it'd be quite marvelous if I didn't want to post on some of those sites
03:42:46 <zzo38> I think plain HTML without CSS or scripts, and with some commands omitted and also some more things such as footnotes, can be good, perhaps.
03:43:04 <ais523> I think there are three goals for a markdown-alike, in some amount of competition: a) be readable as plaintext, b) be easy to write, c) round-trip well with HTML-alikes
03:43:13 <ais523> I was primarily focusing on a) and c), but other combinations also make sense
03:43:25 <ais523> Markdown is moderately bad in all three areas
03:43:45 <b_jonas> ais523: yeah, if I make a custom markup language, it will be HTML plus a lot of custom pseudo-tags that are rewritten on the server
03:43:50 <earendel> hihi
03:43:52 <ais523> MediaWiki markup is good at c) and moderately good at b), less good at a)
03:43:59 <zzo38> I also had idea of markdown-alike too, with goals a) and b), and without the ability to embed HTML. Also some other differences, such as <...@...> for message IDs, and using ^H and ^W to represent strike-out
03:45:23 <zzo38> But regardless, I should think that a) is important
03:47:13 <zzo38> When writing a web page, ensure working without scripts if possible. Include a proper <noscript> block, with whatever is necessary, e.g. the text itself, links to the data, links to API documentation, alternative protocols (e.g. NNTP, IRC), etc
03:51:01 -!- chiselfuse has joined.
03:53:24 <earendel> b-jonas. ah. thx. that's keep alive. well explained. i love you all. *whipcrack
03:57:16 <ais523> zzo38: I think it would be even better if the <noscript> block wasn't even required
03:57:28 -!- hendursaga has joined.
03:58:05 <zzo38> ais523: Yes, although that is not applicable to all web pages. For ordinary documents, neither scripts nor <noscript> will be required, but some do something else.
03:59:34 <zzo38> Another feature of Firefox I sometimes use is the jar: URI scheme. However, there seems to be a bug; if the file is replaced while Firefox is running, it gets confused and won't load it until Firefox is restarted (maybe it caches the index?)
04:00:06 <ais523> anyway, I'm a huge fan of <details> because there are many pages that use JavaScript (or more recently, CSS) to do the equivalent of a <details> and don't use it for anything else
04:00:33 <ais523> and yet, nobody uses it, they use the JS or CSS versions anyway :-(
04:00:57 <zzo38> What does the <details> command do? I think I saw it once but now I forgot.
04:01:37 <b_jonas> ais523: I've seen at least one site that uses details, but most sites don't use it because it's new. the annoying part of details is that you can't easily force them open with user-style CSS
04:02:19 <b_jonas> ais523: and that one site is (drumroll) … https://www.darthsanddroids.net/
04:02:25 <zzo38> You could include a script that checks if <details> is implemented and if not, provides it own, maybe. I also had idea of a "feature" attribute
04:03:06 <ais523> zzo38: it has a title and a body, the body is hidden by default until you click on the title
04:03:31 <ais523> so it's useful either for spoilers, or for things that are long and will only interest some people and you don't want them to take up space on the page by default
04:04:00 <b_jonas> I think I might need to install greasemonkey or something just to open them on user side
04:04:16 <b_jonas> is greasemonkey still a thing? or should I use something else when just CSS rules aren't enough?
04:04:51 <zzo38> Yes, that is better than what other thing are doing. Also it mean that depending on the implementation, the user might be able to configure the default state (visible or hidden)
04:05:29 <zzo38> Is it possible for JavaScripts detecting which HTML commands are implemented and which ones aren't?
04:05:54 <ais523> b_jonas: I think there are greasemonkey-alikes around but something happened to the original; but I don't know the details
04:06:13 <b_jonas> hmm. maybe someone else here knows.
04:06:23 <b_jonas> if not, I have other guesses of where to ask geeks.
04:08:00 <b_jonas> it turns out, the internet is full of people who use browsers
04:09:44 <ais523> you'll probably find fewer browser-users on IRC than other parts of the Internet
04:09:53 <ais523> this is one of the very few parts that you don't have to use browsers to participate in
04:10:24 <b_jonas> ais523: but more of those browser users are the kind who do custom stuff in their clients
04:10:54 <b_jonas> I mean there are several people here who made IRC bots
04:11:45 <ais523> there are even people here who made IRC bots in esolangs :-)
04:12:00 <ais523> although, I don't know how transferrable those skills are
04:12:37 <b_jonas> ais523: hmm... like three of those bots have web interfaces, but that's server-side web stuff, not client-side
04:15:14 <ais523> and user scripts aren't even client-side web, really, they're something else
04:15:15 <ais523> user-side?
04:15:25 <b_jonas> yeah
04:15:27 <ais523> client-side is normally used for the parts that the site writes but that run on the user's browser
04:15:46 <b_jonas> correct
04:18:23 <b_jonas> I mean it's a bit of an orthogonal thing, you can have scripts or style or templates or other content originating from at least three places (the forum website, the third-party poster, the reading user), and any of the three could run on either the server or in your browser
04:18:57 <ais523> well, some combinations *shouldn't* be used (e.g. third-party scripts running on the user's browser)
04:19:06 <ais523> but I agree that every combinatino is technically possible
04:19:17 <b_jonas> ais523: sure, it shouldn't just be arbitrary scripts,
04:20:18 <b_jonas> but it can be other third-party content, including id or class names within a namespace, or sanitized css rules, or technically even sandboxed scripts, though that's quite hard
04:21:14 <b_jonas> and some websites allow the third-party poster to upload images; some even go so far as allowing to include images by url from external sites, which is one of the main reasons why I'm now using the Umatrix plugin to disable those
04:23:24 <ais523> this is very common, sadly (the including images from external sites by URL)
04:23:49 <ais523> I'm generally of the opinion that webforums should ban images altogether, apart from images that they naturally host themself (which they may not have any of)
04:24:09 <zzo38> I am of the opinion that NNTP is better
04:24:15 <ais523> maybe if the forum has an attached wiki, it could allow embedding of an image from their wiki
04:24:37 <ais523> but, most of the uses of images that people want on web forums are copyright violations
04:25:40 <zzo38> (I also prefer that if you include a picture, should include a link that does not automatically display the picture, but you can still select to view if you want to)
04:26:01 <b_jonas> oh, I actually have a question about this
04:26:48 <b_jonas> suppose I want to make a mirror for a forum that allows embedding images. on the mirror, I turn embedded images to links. but I want to indicate which of those links were embedded images, eg. by putting some symbol before the link. what symbol should I use?
04:27:11 <b_jonas> or what other markup to distinguish what was originally embedded image from plain links
04:27:43 <ais523> I think that in order to avoid information loss, you should at least add a CSS class to the links that were converted from images (maybe also to the links that weren't convered from images)
04:28:05 <ais523> you could use the object placeholder character, I guess
04:28:08 <b_jonas> ais523: yes, that's probably a good idea
04:28:09 <zzo38> Perhaps use class="imagelink"; that way user CSS can override whatever style you decide to use. I don't know what style should be used, though.
04:28:27 <ais523> this one: 
04:28:31 <ais523> although it doesn't render at all for me
04:28:33 <ais523> `unidecode 
04:28:38 <HackEso> ​[U+FFFC OBJECT REPLACEMENT CHARACTER]
04:28:42 <b_jonas> but I still want some default formatting rule for this
04:28:49 <ais523> that's strange, it used to
04:29:08 <ais523> (it looked like "OBJ" in a dotted rectangle)
04:29:17 <ais523> maybe just draw a border around the link?
04:29:25 <ais523> to simulate the shape of an image
04:29:32 <zzo38> Yes, you should still have a default formatting rule so that it will work even if the user did not define such a rule on their own computer, too
04:29:33 <b_jonas> a border... hmm, that might work
04:29:56 <ais523> or even, draw a border, and then put that "missing image" symbol that Internet Explorer uses at the start (I think that's the one that people are most familiar with, not sure what the copyright status of it is)
04:31:30 <b_jonas> ais523: I think the torn photo image could be misinterpreted as implying that the image link was broken which is why I'm not displaying the image. broken image links are pretty common on those boards, with the messages staying longer than the externally hosted image.
04:32:21 <ais523> b_jonas: well, it is broken, isn't it? because you broke it
04:32:26 <ais523> although it'll still work when clicked on
04:32:43 <ais523> maybe this is just a quirk of me, I have my browser set to block images more than a certain number of kilobytes
04:32:50 <ais523> so I'm used to images looking broken but still working when clicked on
04:33:04 <b_jonas> I could try to use a Mona Lisa icon maybe
04:33:40 <b_jonas> or a wooden picture frame hung on the wall with fishing strings and a single nail visible above icon
04:34:06 <ais523> now I'm bothered by the object replacement character not showing up
04:34:16 <ais523> it used to be quite frequent to see it in the middle of copy-pasted text
04:34:23 <ais523> what if it still is, and I simply can't see it?
04:47:01 <keegan> fnord
04:54:41 -!- ais523 has quit (Quit: quit).
06:53:25 -!- velik has quit (Remote host closed the connection).
06:53:59 -!- velik has joined.
07:38:13 -!- earendel has quit (Quit: Connection closed for inactivity).
07:48:33 <normsaa> for ((i = -25680; i < +22000; i++)) do TZ=Z printf '%s%(%Y%m%d)T' Aaron $((i*86400)) | md5sum ; done > term.txt ; grep -n 7f4986da7d7b52fa81f98278e6ec9dcb
07:48:57 <normsaa> Is there a way to port this bash to an esoteruic language and make it more efficient and faster ?
07:49:08 <normsaa> Can someone show me please?
07:49:27 <normsaa> This has been going for over 40 minutes already
07:49:31 <normsaa> No result
08:00:03 <nakilon> non normsaa answer where was that previous thing from?
08:00:18 <normsaa> What?
08:01:23 -!- hanif has joined.
08:02:33 <nakilon> the 0101010
08:03:11 <nakilon> I mean where did your friend take it from
08:06:10 -!- hendursa1 has joined.
08:09:15 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:10:55 -!- velik has quit (Remote host closed the connection).
08:11:28 -!- velik has joined.
08:12:56 <nakilon> \wa x^3 - 4x^2 + 6x - 24 = 0
08:12:58 <velik> Real solution: x = 4 | Complex solutions: x = -i sqrt(6), x = i sqrt(6) | Alternate forms: (x - 4) (x^2 + 6) = 0, (x - 4/3)^3 + 2/3 (x - 4/3) - 560/27 = 0
08:13:11 <nakilon> \wa seconds since 1 Jan 1970
08:13:13 <velik> Result: 1.631×10^9 seconds | Time span: 51 years 8 months 11 days, 2697 weeks 3 days, 18882 days, 51.7 years
08:14:58 -!- oerjan has joined.
08:18:42 -!- Everything has joined.
08:20:54 <normsaa> nakilon he made it
08:21:01 <normsaa> himself
08:21:17 <normsaa> this one is different
08:21:34 <normsaa> mines still runnning its so slow
08:21:42 <normsaa> my bash
08:22:24 <normsaa> velik how much can you cut it down to?
08:22:27 <normsaa> the speed
08:22:45 <normsaa> to find the passwrd that matches the hash
08:22:53 <normsaa> and nakilon
08:28:11 <nakilon> I suppose int-e was right
08:28:44 <int-e> . o O ( Please tell us more about this "efficiency" idea... it sounds like a fascinating concept. )
08:28:45 -!- hanif has quit (Ping timeout: 276 seconds).
08:28:57 <nakilon> it's a shame to pass off someone else's for your own
08:39:33 <normsaa> int-e well mines forking a new md5sum process each iteration
08:40:11 <normsaa> so it'll be spending all it's time creating a new process and then tearing it down again
08:41:13 <normsaa> So it is not efficient at all
08:41:35 <normsaa> Mine has been running for over 1hour~
08:41:43 <normsaa> on a standard laptop
08:42:47 <normsaa> nakilon not sure what you're on about
08:43:32 -!- hanif has joined.
08:57:21 -!- hanif has quit (Ping timeout: 276 seconds).
08:59:34 -!- hanif has joined.
09:06:12 -!- velik has quit (Remote host closed the connection).
09:06:30 -!- hanif_ has joined.
09:06:40 -!- velik has joined.
09:07:59 -!- velik has quit (Remote host closed the connection).
09:08:19 -!- velik has joined.
09:10:03 -!- velik has quit (Remote host closed the connection).
09:10:21 -!- hanif has quit (Ping timeout: 276 seconds).
09:10:21 -!- velik has joined.
09:19:37 -!- Sgeo has quit (Read error: Connection reset by peer).
09:20:03 -!- velik has quit (Remote host closed the connection).
09:20:26 -!- velik has joined.
09:26:50 <immibis> fizzie: seems like an outdated model. In Git your history is one big tree and so are your files. In Subversion I understand that your files are a tree but your history is not, and if you want tree history then you have to simulate it poorly with the file tree?
09:27:12 <immibis> (git history is more accurately a DAG not a tree)
09:44:18 -!- velik has quit (Remote host closed the connection).
09:44:46 -!- velik has joined.
09:53:00 -!- oerjan has quit (Quit: Later).
10:00:24 -!- hanif_ has quit (Ping timeout: 276 seconds).
10:54:12 -!- hanif_ has joined.
11:20:21 -!- hanif_ has quit (Ping timeout: 276 seconds).
11:35:18 -!- Everything has quit (Quit: leaving).
11:39:06 -!- velik has quit (Remote host closed the connection).
11:39:37 -!- velik has joined.
11:40:01 <b_jonas> normsaa: have you checked what those printfs actually print? because you're iterating one second increments rather than one day increments, which is why it's so slow.
11:40:35 <b_jonas> print some intermediate results, like those printfs, to see if they're right, before writing the whole program
11:41:03 <b_jonas> because the statement you gave literally will only check two days, each 20000 times
11:41:23 <b_jonas> but at least now you tried to implement something, so that's a plus
11:42:22 <int-e> b_jonas: hmm? they multiply by 86400 in the middle.
11:42:32 <b_jonas> oh, is there?
11:42:37 <b_jonas> darn, I didn't notice that
11:42:52 <b_jonas> I wonder if they actually wrote that, or got that from a third channel
11:43:03 <int-e> the code is fine. wouldn't even take hours on a linux system I think (didn't for me)
11:43:27 <int-e> yeah, I don't know what to think about that
11:43:36 <nakilon> "my friend made it"
11:44:01 <b_jonas> yes, so got it from a third channel. I'm only seeing their question in two channels.
11:44:15 <b_jonas> oh hey
11:44:47 <b_jonas> they are joined to #bash too, what a surprise
11:45:17 <int-e> I still find it funny to try to hook #esolangs into it by asking for a fast program
11:45:38 <b_jonas> int-e: nah, they are asking for "an efficient solution" everywhere
11:46:17 <nakilon> probably /msg alis list *langu*
11:46:39 <b_jonas> I told them to forget the dates and to just append every decimal number from 19000000 to 23000000 to "Aaron" and it's still fast enough
11:46:41 <nakilon> or *progra*
11:46:49 <nakilon> -topic
11:47:01 <b_jonas> but it's not clear if they even managed to write a single loop
11:47:32 <b_jonas> I think they mentioned a range() for loop in python, that might be one original attempt, but I haven't seen an actual code line on how they'd use it
11:47:37 <nakilon> heh, there is a service to search for exact answer on SO
11:47:55 <nakilon> I imagine similar bot that joins relevant channels in IRC and asks
11:48:07 <int-e> it could also be troll fodder from ##?python
11:48:12 <nakilon> just needs some AI to select the channels
11:48:25 <int-e> it's the kind of helpful advice I'd give that totally evades the meat of the question :P
11:49:18 <int-e> possibly along with advice to look at hashlib and datetime
11:49:57 <nakilon> IRC is a network of clusters of AI processes
11:50:12 <nakilon> this cluster has 86 processes, some of them are emitting STDOUT
11:50:40 <b_jonas> nakilon: no, we would tell them to look at the hashlib module
11:50:44 <nakilon> some implement IPC
11:51:27 <b_jonas> oh, they are in #python . darn it. I wasn't joined there for some reason, that's why I didn't see
11:52:47 <b_jonas> no wait, they aren't
11:52:50 <b_jonas> I'm stupid
11:52:54 <b_jonas> they didn't get past the nickserv barrier
11:53:58 <b_jonas> well, the "no, it's not homework" thing is funny for a few days, and then they'll get bored
11:54:01 <b_jonas> so no harm done
11:54:24 <b_jonas> it's at least a refreshingly novel kind of user
11:54:29 <nakilon> I wonder if there really were any IPC systems based on IRC
11:54:47 <b_jonas> nakilon: there are, for controlling botnets
11:55:00 <b_jonas> malware ones
11:55:25 <nakilon> I mean not some real chat channels with multiple bots built through years but some approach to solve problems by spawning a server in your network and proccesses around
11:55:29 -!- src has joined.
11:55:30 <nakilon> hm
11:56:28 <b_jonas> I wonder if we should explain them what we mean by "homework" in this case
11:57:00 <nakilon> I doubt he needs any explanation
11:57:44 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=88012&oldid=86767 * Martsadas * (+59)
11:58:03 <int-e> nakilon: IRC used to be popular for controlling botnets for a while
11:58:16 <int-e> which comes pretty close to IPC
12:07:40 <nakilon> imagine esolang that can transfer values only between clients/machines
12:08:02 <nakilon> and can't transfer values between registers/memory_addresses within one client/machine
12:08:31 <esolangs> [[Talk:ight]] https://esolangs.org/w/index.php?diff=88013&oldid=86756 * Martsadas * (+164) !@#$%^&*()_+
12:08:31 <nakilon> so to run a program you have to have multiple machines
12:09:45 <normsaa> Your conversations are hilarious to read
12:09:59 <normsaa> Love a good whinge
12:10:09 <nakilon> so it's like some form of life that stops working when there are no other creatures of your kind
12:10:55 <normsaa> And your assumptions are totoally wrong too.
12:11:09 <normsaa> Which makes it even more hilarious
12:11:13 <b_jonas> google finds disappointingly few results for 7f4986da7d7b52fa81f98278e6ec9dcb right now. only two.
12:11:48 <normsaa> Yes which I already showed in the jsoftware channel
12:11:57 <normsaa> And I pasted it here too
12:12:03 <normsaa> I said someone else did that
12:12:13 <normsaa> That gist
12:12:34 <normsaa> So whats your point?
12:13:12 <normsaa> Your OSINT isnt very good.
12:13:55 <normsaa> I did the bash script though.
12:14:00 <normsaa> Not the J script.
12:14:16 <normsaa> I finished a working version of the bash script first though
12:14:41 <nakilon> it makes no sense
12:16:00 <normsaa> What makes no sense?
12:16:14 <normsaa> Please clarify when you say "makes no sense"
12:16:26 <normsaa> Does the ground make no sense?
12:16:37 <normsaa> Does the sky make no sense?
12:16:50 <nakilon> you make no sense
12:16:56 <normsaa> Please clarify what you mean, dont give a general statement.
12:17:04 <normsaa> Of nothing.
12:17:31 <normsaa> In what way?
12:17:39 <normsaa> Please clarify how I am make no sense.
12:17:52 <nakilon> I'm not here to clarify things for one with such attitude that asks others to solve his contests lieing on both sides
12:17:52 <int-e> fungot: seems like you have some serious competition now
12:17:53 <fungot> int-e: right now, i'm heading for home.
12:17:53 <normsaa> Give me a reason
12:18:23 <nakilon> sounds like he gave up
12:18:48 <normsaa> I asked for help.
12:18:56 <normsaa> I did not ask for anyone to do it for me.
12:19:11 <normsaa> Gave up?
12:19:22 <normsaa> I wrote a bash script that solved it.,
12:19:27 <normsaa> So I didnt give up.
12:19:58 <normsaa> And I did not do it with anyones help from here.
12:20:24 <int-e> re-mark-ab-le
12:20:47 <normsaa> It is, I dn't have an ego though.
12:21:04 <normsaa> As i am still learnng and accept my failings.
12:21:25 <normsaa> Like most nerds who have egos.
12:21:43 <esolangs> [[Subreal]] M https://esolangs.org/w/index.php?diff=88014&oldid=82311 * RocketRace * (+73) add resource
12:21:45 <normsaa> And are just condescending to people learning.
12:21:59 <normsaa> I.e int-e
12:22:28 <nakilon> fungot do you have ego?
12:22:28 <fungot> nakilon: i know. i use it for. fnord hand*' he means what he had for arch's config language, i didn't hear it
12:22:28 <int-e> Sure. Are you done?
12:22:34 <normsaa> Humble yourself.
12:22:38 <normsaa> Sure. Are you?
12:23:00 <normsaa> As you had a whole conversation just about me earlier in here.
12:23:00 <esolangs> [[Subreal]] M https://esolangs.org/w/index.php?diff=88015&oldid=88014 * RocketRace * (-2) Formatting
12:23:05 <nakilon> fungot where is your home?
12:23:06 <fungot> nakilon: there's my better version. :) :( getting really worried.
12:23:28 <normsaa> So if you are done, then I am done.
12:25:27 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=88016&oldid=80032 * RocketRace * (+102) Add resource
12:25:41 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=88017&oldid=88016 * RocketRace * (+1) Formatting
12:29:11 <nakilon> I don't understand what is unstack
12:29:17 <b_jonas> "<normsaa> I did not ask for anyone to do it for me." => yes, that's what I said. asking someone to do it for you would be plain boring, we have those kinds of people on support forums every day. asking “Can someone try it with J bot? / Curious to see how long it takes” is new, I haven't seen that one yet, so it gives some variety to the usually boring homework questions. that's why I said it's nice
12:29:24 <b_jonas> for a few days.
12:29:58 <b_jonas> ideally I should write one of these silly obfuscated answers that happen to give the right answer for the wrong reason, but I'm kind of busy with real life so I'm not sure I'll do it
12:33:22 -!- hendursa1 has quit (Quit: hendursa1).
12:33:46 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=88018&oldid=88017 * RocketRace * (+83) Describe extension
12:33:57 -!- hendursaga has joined.
12:42:51 -!- orichalcumcosmon has joined.
12:45:23 <normsaa> b_jonas youre on IRC all day I dont think youre busy with real life, lets be real.
12:45:41 <normsaa> Quit lying to yourself.
12:46:13 <normsaa> If you have the time to search and write paragraphs you have no real life. Just being honest.
12:47:20 <nakilon> and they tell me pithon does not have bad mental influence
13:01:43 -!- hanif_ has joined.
13:08:18 -!- orichalcumcosmon has quit (Quit: Leaving).
13:20:06 <esolangs> [[Kolmogorov]] M https://esolangs.org/w/index.php?diff=88019&oldid=59479 * Kaveh Yousefi * (+160) Added a hyperlink to my implementation of the Kolmogorov programming language on GitHub.
13:33:52 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88020&oldid=88007 * AceKiron * (+124)
13:56:21 -!- hanif_ has quit (Ping timeout: 276 seconds).
14:15:32 <riv> https://twitter.com/JDHamkins/status/1437021245602738184 hmm ordinal nim
14:15:41 <riv> even though the numbers are infinite the game ends in finite time
14:16:30 <riv> ω = 2^ω apparently
14:21:08 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=88021&oldid=88011 * 4gboframram * (+165) /* Mycelium Hello, World! */
14:26:14 <Corbin> normsaa: If you weren't on-topic in #ocaml, why would you be on-topic here?
14:27:55 <Corbin> (Also, by what reasoning are esoteric languages more performant than mainstream languages? It's often the other way around, since only mainstream languages have companies paying for specialized compiler engineers.)
14:30:58 <riv> k
15:04:30 -!- delta23 has joined.
15:11:04 -!- src has quit (Ping timeout: 252 seconds).
15:18:09 -!- arseniiv has joined.
15:20:50 -!- hanif has joined.
16:15:56 <esolangs> [[OOLANG]] https://esolangs.org/w/index.php?diff=88022&oldid=66457 * Kaveh Yousefi * (+24) Added the deadlink tag to obsolete hyperlinks and amended an orthographic error.
16:33:31 <esolangs> [[Kolmogorov]] https://esolangs.org/w/index.php?diff=88023&oldid=88019 * Kaveh Yousefi * (+1080) Amended orthography, corrected examples, especially involving the comments' quotes, and improved the code formatting.
16:41:20 -!- sprock has quit (Ping timeout: 260 seconds).
17:04:12 -!- hanif has quit (Ping timeout: 276 seconds).
17:14:54 <fizzie> Is $ the default mutt key binding for 'sync-mailbox' because that (potentially) involves network activity, and network activity may cost money?
17:21:06 <int-e> it could also be inspired by S = sync
17:21:14 <int-e> And... I don't know
17:23:41 <fizzie> Plausible. Though it would seem that "S" is unused. (Small "s" is used for save-message.)
18:15:34 -!- src has joined.
18:20:20 -!- Sgeo has joined.
18:27:27 -!- hanif has joined.
18:35:57 -!- hanif has quit (Quit: quit).
18:36:21 -!- Koen_ has joined.
18:53:56 -!- Trieste_ has changed nick to Trieste.
19:08:28 -!- dutch has quit (Quit: WeeChat 3.2.1).
19:11:22 -!- oerjan has joined.
19:16:38 -!- dutch has joined.
19:27:02 <esolangs> [[Kolmogorov]] https://esolangs.org/w/index.php?diff=88024&oldid=88023 * Kaveh Yousefi * (+570) Added the cat program as a further example.
19:31:30 <esolangs> [[User:AceKiron]] https://esolangs.org/w/index.php?diff=88025&oldid=84589 * AceKiron * (+0)
19:53:44 -!- Koen_ has quit (Remote host closed the connection).
20:00:57 -!- sebbu has quit (Ping timeout: 245 seconds).
20:02:03 -!- sebbu has joined.
20:02:22 <esolangs> [[Subreal]] M https://esolangs.org/w/index.php?diff=88026&oldid=88015 * RocketRace * (+37) Clarify argless ops
20:02:59 <esolangs> [[Subreal]] https://esolangs.org/w/index.php?diff=88027&oldid=88026 * RocketRace * (+39) FOrmat
20:40:48 -!- Koen_ has joined.
20:59:29 -!- Lord_of_Life_ has joined.
21:00:43 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
21:00:44 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:03:17 -!- Koen_ has quit (Quit: Leaving...).
21:11:41 -!- tromp has joined.
21:32:43 <esolangs> [[!@$%^&*()+]] https://esolangs.org/w/index.php?diff=88028&oldid=82533 * Fmbalbuena * (-13)
21:33:43 <esolangs> [[!@$%^&*()+]] https://esolangs.org/w/index.php?diff=88029&oldid=88028 * Fmbalbuena * (-177)
21:33:45 -!- oerjan has quit (Quit: Nite).
21:38:38 <esolangs> [[!@$%^&*()+]] M https://esolangs.org/w/index.php?diff=88030&oldid=88029 * Fmbalbuena * (-14)
21:47:50 <esolangs> [[!@$%^&*()+]] https://esolangs.org/w/index.php?diff=88031&oldid=88030 * Fmbalbuena * (+14) Undo revision 88030 by [[Special:Contributions/Fmbalbuena|Fmbalbuena]] ([[User talk:Fmbalbuena|talk]])
22:25:20 -!- chiselfuse has quit (Ping timeout: 276 seconds).
22:26:04 -!- chiselfuse has joined.
22:30:51 <esolangs> [[Parse this sic]] https://esolangs.org/w/index.php?diff=88032&oldid=86391 * Digital Hunter * (+399) /* Look-and-say sequence */ added a generalised version that takes an input
22:36:11 <shachaf> What sort of esolang is this? https://cs.nyu.edu/pipermail/fom/2021-September/022861.html
22:40:05 -!- spruit11 has quit (Ping timeout: 260 seconds).
22:42:56 <Corbin> It's a string-rewriting system akin to Thue, I think.
22:43:31 <Corbin> Imagine that Thue's program states are restricted to bitstrings. Then a Thue program is Friedman's R and GEN(R) is the set of possible intermediate program states.
22:44:04 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:00:29 -!- spruit11 has joined.
23:09:51 <fizzie> I do like sudo's "This incident has been reported to the authorities" message.
23:44:36 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88033&oldid=87884 * Spargle * (-108) /* Ark: The esolang that is actually kind of useful. */
23:51:02 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88034&oldid=88033 * Spargle * (-236) /* Ark: The esolang that is actually kind of useful. */
23:55:45 -!- src has quit (Quit: Leaving).
2021-09-13
00:22:36 -!- arseniiv has quit (Ping timeout: 265 seconds).
00:50:17 -!- normsaa has quit (Quit: Client closed).
00:50:24 <esolangs> [[User talk:Fmbalbuena]] M https://esolangs.org/w/index.php?diff=88035&oldid=87892 * Fmbalbuena * (-28)
01:06:21 -!- delta23 has quit (Quit: Leaving).
01:43:28 <imode> are there any data structures that are like a trie but aim for compressing really wide trees vs. very deep ones.
01:45:49 <zzo38> I don't know of any.
01:46:49 <Corbin> Isn't one of the lemmas leading to Huffman's encoding basically a proof that trie alphabet size doesn't matter asymptotically? (So that the alphabet size should be tuned, as in B-trees.)
01:51:06 <zzo38> I don't know what those lemmas are, but I can see how it might make sense with such a question
01:52:10 <Corbin> I only dimly remember. Something about how alphabet size ends up in the base of a logarithm, which is then washed away with a big-O.
01:52:18 <shachaf> I have a tree question.
01:52:37 <shachaf> What sort of data structure should you use for an ordered key-value map that doesn't need to be modified?
01:53:21 <Corbin> Insertion-ordered or ordered by key comparison? Or IOW custom traversal order?
01:53:24 <shachaf> B-trees seem like a natural answer -- maybe B-trees with nodes biased toward completely full if possible, rather than up to half-empty -- but is there something better?
01:53:32 <shachaf> I mean ordered by key comparison.
01:54:32 <Corbin> B-trees/HAMTs are where I would start research.
01:54:58 <shachaf> Isn't HAMT unordered, since it's based on hashing?
01:57:40 <imode> Corbin: I should be more specific: I'm compressing lists of string rewrite rules by throwing them in a trie, only to realize that the actual trie will be very wide. my intent is building a format for these tries to be loaded and read (no modification after the fact).
01:57:54 <shachaf> Speaking of hash tables, how about this idea for hash tables without linear-time resize behavior:
01:58:07 <shachaf> You reserve the maximum amount of addres space up front, but only use a little bit of it at first.
01:58:33 <shachaf> To double the hash table, you double the amount of committed memory, but still keep entries where they are.
01:58:52 <shachaf> Then you incrementally start moving entries over to the "right" spot in the new region as you do more operations.
01:59:23 <shachaf> Before that's done, lookups that land in the new region have to check the old region too.
01:59:30 <shachaf> Do people do that sort of thing?
01:59:34 <imode> I could use huffman encoding, but because the interpreters that deal with these rules need to have a common symbol table to "latch" on to to do things like I/O, it won't be easy, as the reserved symbols could change their encoding relative to how they're used in the rule set.
01:59:41 <Corbin> imode: You could steal a technique from the ordered-by-default doubly-indirect hashtables used in Python and a few other Smalltalk relatives. Each rewrite rule probably only uses a small number of tokens in total, right? It's only the entire dictionary that's big.
02:00:06 <imode> https://slack-files.com/T0191PWV41E-F02EC4E66P6-aceccd9554
02:00:26 <imode> here's a compiled trie from a ruleset that deals with stacks and unary math.
02:00:38 <shachaf> Oh, all I needed to do was thinking of the word "incremental", and look up hash table incremental resizing.
02:00:39 <Corbin> So you could put the dictionary into a single global array and also put indices from that global array into a rule-specific local array. Then compress the trie relative to the local array instead of the global array.
02:01:45 <imode> not sure I follow, but another way to approach it would be to simply supply auto-generated mappings for each of the reserved symbols on every compilation.
02:01:48 <Corbin> I'm not explaining it well; here's a better explanation: https://www.pypy.org/posts/2015/01/faster-more-memory-efficient-and-more-4096950404745375390.html
02:03:49 <imode> I've got to step away for a bit, but were you the one that I handed the 500MiB dot file containing a mandlebrot renderer in string rewriting rules transpiled from BF?
02:04:32 <Corbin> No, although (1) that sounds *hilarious* and (2) I definitely have generated DOT files around that size.
02:50:09 <imode> back. yeah it's uh, ugly af.
02:52:47 <zzo38> With what I have, I might need to sort a linked list (although there might be another way).
03:00:00 -!- Taneb has quit (Quit: I seem to have stopped.).
03:01:07 -!- Taneb has joined.
03:01:07 -!- Cale has quit (Ping timeout: 252 seconds).
03:10:20 -!- Cale has joined.
04:06:03 -!- mla has quit (*.net *.split).
04:06:04 -!- dnm has quit (*.net *.split).
04:06:05 -!- Soni has quit (*.net *.split).
04:06:05 -!- ski has quit (*.net *.split).
04:06:12 -!- ski has joined.
04:06:36 -!- Soni has joined.
04:06:53 -!- dnm has joined.
04:10:44 -!- ski has quit (Ping timeout: 265 seconds).
04:20:16 -!- esolangs has joined.
04:20:16 -!- fizzie has joined.
04:20:18 -!- ChanServ has set channel mode: +v esolangs.
04:20:59 -!- Deewiant has joined.
04:28:03 <esolangs> [[Special:Log/newusers]] create * Aidenbc * New user account
04:31:41 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88036&oldid=88006 * Aidenbc * (+191) /* Introductions */
04:31:58 -!- jryans has joined.
04:50:50 -!- Trieste has quit (Ping timeout: 260 seconds).
05:10:13 -!- sprock has joined.
05:40:40 -!- hanif has joined.
05:41:52 <hanif> <shachaf> What sort of esolang is this? https://cs.nyu.edu/pipermail/fom/2021-September/022861.html => cool thanks for sharing
05:56:56 <hanif> wow martin davis is the moderator for the mailing list
06:17:12 -!- hanif has quit (Ping timeout: 276 seconds).
06:18:44 <esolangs> [[SUB]] N https://esolangs.org/w/index.php?oldid=88037 * Hakerh400 * (+5521) +[[SUB]]
06:18:48 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88038&oldid=87951 * Hakerh400 * (+10) +[[SUB]]
06:19:04 <esolangs> [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=88039&oldid=87722 * Hakerh400 * (+10) +[[SUB]]
06:26:52 <esolangs> [[SUB]] https://esolangs.org/w/index.php?diff=88040&oldid=88037 * Hakerh400 * (+16)
06:28:12 <esolangs> [[SUB]] https://esolangs.org/w/index.php?diff=88041&oldid=88040 * Hakerh400 * (+2)
06:44:30 -!- hanif has joined.
07:18:28 -!- Sgeo has quit (Read error: Connection reset by peer).
07:25:24 -!- tromp has joined.
07:34:42 -!- immibis has quit (Ping timeout: 265 seconds).
07:47:48 <b_jonas> shachaf: for an ordered key-value map? a sorted array generally, if it fits within the RAM
07:50:22 <shachaf> b_jonas: Surely something like a B-tree is better than a sorted array.
07:50:37 <shachaf> Binary search on a sorted array makes pretty bad use of cache.
07:50:58 <b_jonas> shachaf: it isn't really because you're always starting to compare with the same elements, so those stay in the cache
07:51:14 <b_jonas> just make sure it's not power of two sized so you don't get stupid cache collisions
07:51:28 <b_jonas> nor anything close to power of two
07:52:50 <b_jonas> perhaps pad it out to fibonacci sized by padding with infinities on an end or something
07:53:04 <b_jonas> do you have variable key sizes or fixed?
07:53:54 <b_jonas> hmm no, probably not fibonacci
07:59:17 <nakilon> -- do you have a clue in DB indexing? -- yeah, I've implemented indexing -- what?! -- ...
08:01:10 <nakilon> -- I saw "DevOps" in your CV, what devops tools do you use? -- I use no tools, devops is a methodology... -- what?! -- ...
08:01:21 <nakilon> job interviews be like
08:02:08 <nakilon> -- what hobbies do you have? how do you have fun? -- I made an esolang -- what?!
08:03:09 <riv> lol
08:06:11 <b_jonas> sorry, I'll need to think about what size you should use for cache-friendliness (still it the table fits in RAM)
08:06:18 -!- hendursa1 has joined.
08:06:21 <b_jonas> somehow I never thought about that, even though it is an important enough basic question
08:08:31 <b_jonas> so thanks for the question actually
08:08:42 <b_jonas> (RAM vs disk matters here because their caching differ)
08:09:00 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:19:09 * nakilon has already borrowed money from two people to survive in this stupid world that can't give a job
08:20:39 <shachaf> b_jonas: But you're wasting a whole cache line on one element.
08:20:47 <shachaf> Rather than using the entire root of the B-tree.
08:57:45 -!- hanif has quit (Ping timeout: 276 seconds).
08:59:29 -!- ais523 has joined.
09:02:00 <ais523> <shachaf> What sort of esolang is this? https://cs.nyu.edu/pipermail/fom/2021-September/022861.html ← that's almost literally Thue (the version which is nondeterministic in the mathematical/declarative sense rather than the randomness sense), the only difference is in the startup state and a different model for halting
09:02:59 <ais523> actually, if you think of the operands of R being the other way round, there isn't even a difference in the startup state, "is this string in GEN(R)" becomes equivalent to "can this Thue program reach the empty string and halt?"
09:03:06 <ais523> (so the "reach the empty string and") is the difference
09:03:17 <ais523> oh, also it's limited to an alphabet of {0,1} but this doesn't matter for Thue at all
09:03:51 <ais523> <fizzie> I do like sudo's "This incident has been reported to the authorities" message. ← I actually received one of those reports once (after typoing my password in sudo one too many times), I was shocked it actually went somewhere
09:04:17 <ais523> apparently it just sends local email to root, so it depends on whether you have an email stack that a) understands local email and b) has root's mailbox linked up to something
09:06:27 <ais523> b_jonas: the funny thing about the power-of-two sizes is that they're sometimes the worst size but sometimes the best size, depending on the exact algorithm you're using
09:07:30 <ais523> there are two basic problems, false aliasing (some parts of modern processors speculatively assume that if the bottom few bits of addresses match they'll be the same as each other, and need to rewind if htey turn out not to be)
09:07:57 <ais523> and the fact that modern caches are effectively lossy hash tables and if you find collisions in the hash function, they'll end up losing a lot more data than they should
09:08:21 <ais523> that said, I think the hash functions powering the caches are generally non-public, and more complex than "bottom N bits"
09:08:26 -!- wob_jonas has joined.
09:08:49 <wob_jonas> shachaf: sorry, let me try to give a better answer to this\
09:10:18 <wob_jonas> so basically this question is complicated because the ugly real world comes in, and the full answer is probably more or less to read the entire future third edition of TAOCP third volume.
09:10:47 <ais523> the main culprit for false aliasing is read-after-write, if you write 0x5000000 and then read 0x5001000 some processors will delay the read until after the write because it cautiously assumes that they might overlap
09:10:55 <nakilon> \wp taocp
09:10:57 <velik> The Art of Computer Programming -- series of tomes by Donald Knuth https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming
09:11:35 <wob_jonas> first, in the unrealistic case when you have fixed size keys that are so opaque you can only compare them, yet they are fast to compare, then here's what you want\
09:11:58 <ais523> so, power-of-two sizes are good if you're reading one element and then writing the corresponding element, because that gives you a guaranteed write-after-read (which doesn't stall) and reduces the chance of a read-after-write randomly happenign with some other pair of addresses
09:12:07 -!- Robdgreat_ has changed nick to Robdgreat.
09:12:15 -!- Robdgreat has changed hostmask to ~rob@user/robdgreat.
09:13:22 <wob_jonas> make a sorted vector, pad it to size that's a power of r minus one where each cache line can fit r-1 keys, do the search with r-way comparisons so you effectively traverse a complete r-ary tree, but without pointers because the fixed size keys let you elide all the pointers.
09:13:51 <wob_jonas> you can permute the cache lines, and sometimes you have to to avoid a really bad L1 cache pattern, but most arrangements are good enough:
09:14:20 <nakilon> in all usual programming languages code is 1-dimentional; in many esolangs it's 2 or more dimensional; but all those "lines of code" are parallel; there should be a language with no parallel lines
09:14:31 <wob_jonas> eg. the case that's really bad is a binary tree (one key per cache line) that's exactly power of two plus one size;
09:14:53 <wob_jonas> a permutation that's probably good enough is to just place each level of the tree contiguously and one after another
09:15:02 <nakilon> some code notation that would have the "code" either lined up randomly or along the curves
09:15:13 <nakilon> or in compound ways
09:15:50 <wob_jonas> if you don't want to just find the first key less than your query key, then can use any permutation; if you want to access some subsequent nodes after each query then you want to permute as little as possible
09:16:21 <wob_jonas> for a binary tree (one key per node) I think you can get away with a sorted vector that's size 2**n/63, and I know that sounds sillyi
09:16:45 <wob_jonas> now the problem is that the case when your keys are fixed size and opaque yet you can do fast ordered comparison is unrealistic
09:17:45 <wob_jonas> because if you can do fast ordered comparisons and want an ordered structure, then you may also be able to do arithmetic on the key and do the sort of accelerated search where if your query starts with Z then you go to the last 1/26 of the book
09:18:07 <wob_jonas> but the good news is, in practice unless your distribution is even, I don't think this helps too much, and just an r-ary tree works well enoguh
09:18:17 <esolangs> [[Talk:Mogus]] https://esolangs.org/w/index.php?diff=88042&oldid=87976 * ArthroStar11 * (+247)
09:18:46 <wob_jonas> by the way there's an unlikely exception from this, which is when you have prior information about the distribution of your queries and they're VERY skewed, like the query is always the same fixed word, and in that case you can do better, but this is rare\
09:19:21 <wob_jonas> if your comparisons are very slow, then you want a binary tree, or fibonacci tree if you can only do 2-way comparisons, because you're dominated by the comparisons and the memory access doesn't matter,
09:19:44 <wob_jonas> but you may have a comparison speed in between the two which is one of the ugly real world parts
09:19:51 <wob_jonas> now all this so far was about fixed size keys
09:20:06 <wob_jonas> in reality if you need an ordered structure, you are more likely to have variable sized keys
09:21:23 <wob_jonas> if your key sizes are variable, then you still want a complete tree with each node branching one plus as many ways as many keys you can fit to the cache line (or page on a disk), but this number of branches can differ in each node
09:21:39 <wob_jonas> this is similar to a b-tree, but you may be able to do somewhat better,\
09:21:56 <wob_jonas> because if you don't have to modify your structure, then you may be able to encode your pointers somewhat more efficiently
09:22:52 <wob_jonas> as in, if each level of the tree is stored in a sorted order, then the first few levels can already tell you the first bits of the pointers on each of the subsequent levels, so you needn't encode those bits in all the later nodes
09:23:30 <wob_jonas> this ends up in an ugly tradeoff between memory access speed versus computation speed, so it's hard to tell how much you want to compress those addresses and how exactly\
09:23:55 <wob_jonas> typical real world optimization problem where you won't get a once and for all simple theoretical solutino
09:25:55 <wob_jonas> also an ugly part is, even in the fixed size, that if your tree is large enough but still within memory, then you may want nodes larger than a cache line, beacuse you may be able to read from memory faster if it's adjacent cache lines,
09:26:14 <wob_jonas> but how exactly the caches and memory work in this respect I admit I don't understand, so I can't tell what you actually want to do
09:29:00 <wob_jonas> so sadly this is the kind of hard problem where the final TAOCP edition will help us a lot\
09:29:37 -!- hanif has joined.
09:32:03 <wob_jonas> and it's hecking far in the future because it's volume 3
09:33:29 <wob_jonas> I got the sudo message (in local email inbox to root, on the workstation that doesn't normally handle emails) lots of times
09:33:41 <wob_jonas> and yes, that's the default
09:33:56 <nakilon> if humanity make an elixir of longer life they should give it to Knuth
09:34:16 <wob_jonas> "the funny thing about the power-of-two sizes is that they're sometimes the worst size but sometimes the best size, depending on the exact algorithm you're using" => yeah. I did a lot of bitmap image processes, where my rule of thumb is to make rows a size in bytes that is 64 modulo 128
09:34:48 -!- hanif has quit (Ping timeout: 276 seconds).
09:35:01 <wob_jonas> ais523: the hash function of the L1 cache is the bottom 12 bits (of the address of bytes) by necessity on x86,
09:35:13 <nakilon> \wa Knuth age
09:35:14 <velik> Result: 83 years 8 months 3 days
09:35:16 <wob_jonas> and there's always 8 cache lines per fixed bottom of 12 bits
09:35:56 <wob_jonas> this is by necessity because the L1 cache has to be so fast (within very few clock cycles) that it needs to select the cache line before the linear address translated by the cache table to physical address is known,
09:36:46 <wob_jonas> and x86 can have 2**12 byte sized pages, with no architectural way that all pages are larger, so you can't use more than 12 bits of the address;
09:37:22 <wob_jonas> and the same page can be mapped to multiple linear addresses (whether within the same process or different processes) and often will be, so you can't just cache by linear address and roll back everything if that goes wrong
09:38:10 <wob_jonas> all this applies ONLY to the L1D and L1C caches, of which there's one per CPU core, no other cache I think
09:38:16 -!- hanif has joined.
09:39:04 <wob_jonas> you may be right that the hashing methods of some of the caches aren't known, but because those caches are slower, they can also do more elaborate things and so it's harder to accidentally stumble into a bad pattern just by choosing the wrong address
09:42:51 <wob_jonas> by the way this means that the L1D cache is always 32k size in any modern x86 cpu
09:43:18 <wob_jonas> while the size of the L2 cache and L3 cache varies widely depending on how much you pay
09:43:59 <int-e> haha. "should not be depicted with a zipper mouth"
09:44:03 <int-e> `unidecode 😬
09:44:07 <HackEso> ​[U+1F62C GRIMACING FACE]
09:44:30 <int-e> (character details for that one... can HackEso display character details?)
09:45:54 <wob_jonas> int-e: https://unicode.scarfboy.com/?s=U%2b1F62C , which parts do you want? they won't all fit into an IRC message
09:46:46 <wob_jonas> plus you also need to follow the "PDF on unicode.org" link, here to http://www.unicode.org/charts/PDF/U1F600.pdf
09:47:37 <wob_jonas> because that PDF is what has the comments like that zipper mouth thing
09:47:47 <wob_jonas> and the see alsos to other characters, which is often useful
09:48:02 <int-e> wob_jonas: the "comments", https://www.fileformat.info/info/unicode/char/1f62c/index.htm
09:48:19 <int-e> (the former doesn't work for me, says the code point is unknown?)
09:48:26 <int-e> (maybe some javascript requirement)
09:49:17 <wob_jonas> yaeh, it doesn't work for some reason
09:49:39 <int-e> it was helpful enough to provide further links
09:50:00 <wob_jonas> I think the maintainer did some changes to the page and broke some things temporarily
09:50:08 <wob_jonas> IIRC there was a message to that effect
09:50:23 <fizzie> I've always been annoyed by the fact that UnicodeData.txt doesn't include those comments. But they're in NamesList.txt of the UCD.
09:50:28 <wob_jonas> yeah, "Notice: I'll be updating the information in the next weeks. It'll be broken occasionally." that's been there for months but you know how that goes
09:50:32 <wob_jonas> you get what you pay for
09:50:57 <int-e> Anyway, I found this particular comment funny. So specific...
09:51:15 <wob_jonas> yeah
09:51:47 <wob_jonas> I generally don't care about all the ininite smiley faces and other emoticons added
09:52:11 <wob_jonas> the only smiley faces that matter are the ASCII ones like :-) and the two in cp437
09:54:20 <int-e> wob_jonas: I'm not studying the smileys; sometimes I encounter a smiley on Twitter that I don't understand and care enough to look it up.
09:55:16 <int-e> Oh and in the meantime I'm waiting for Unicode modifiers to become accidentally TC. ;)
09:55:28 <wob_jonas> .oO("hmm, is that smiley supposed to be a zipper mouth? let me look it up in the unicode database.")
09:56:27 <wob_jonas> "Unicode modifiers" => I think the bidirectional rendering and line breaking algorithm might get TC first
09:56:34 <int-e> I imagine that it works as advice to font designers... who really have to go through unicode points one by one
09:56:34 <ais523> <wob_jonas> by the way this means that the L1D cache is always 32k size in any modern x86 cpu ← there are some that advertise "64k per core", I wonder if the hyperthreads have separate L1 caches?
09:57:28 <wob_jonas> ais523: are those x86 cpus, and are you sure it's not the L2 cache of a cheap cpu? I'd like to see this
09:58:01 <wob_jonas> do you know at least a brand?
09:58:14 <wob_jonas> eg. Intel or AMD
09:58:42 <int-e> ais523: that strikes me as silly? except maybe as a separation feature, where you (optionally) tag entries by hyperthread in a way that they map to different cache sets
09:59:00 <ais523> wob_jonas: AMD Ryzen 9: https://www.amd.com/en/products/cpu/amd-ryzen-9-3900x
09:59:09 <wob_jonas> thanks
09:59:19 <ais523> 64KiB of L1 cache per core, but 32KiB per hyperthread
09:59:32 <ais523> oh, it's combining L1C and L1D
09:59:34 <ais523> sorry for the false alarm
09:59:43 <ais523> that's sneaky, adding the two together
09:59:52 <wob_jonas> yeah, that's evil
09:59:54 <wob_jonas> marketing
09:59:58 <int-e> ais523: I mean, I don't know... it's just so opposite to the core idea behind hyperthreads as I understand it, which is to have a single core but fill its idle time by keeping track of two PCs and register sets.
10:00:26 <wob_jonas> I mean sure, both L1D and L1C are very important, but they're separate caches, and they're separate partly because each can only be 32k so this way you get 32k each instead of 32k total
10:00:31 <ais523> int-e: it'd be plausible to use "hyperthread on which we accessed this" as an extra bit of address, I guess
10:01:02 <int-e> ais523: in particular you'd want to be able to use the full cache when hyperthreads are disabled...
10:01:09 <ais523> yes
10:01:29 <wob_jonas> ais523: I don't think you can do that in L1. you could in theory have two separate L1 caches, but that gets very close to not being hyperthreading but two separate cores, so it's sort of poinless, takes away the point of hyperthreading
10:02:29 <wob_jonas> or, cynically speaking, the people who want high performance for computation that cares about L1 cache, such as those AI researchers, they will just turn off hyperthreading (or not turn off but the OS guesses well enough to put their 12 processes to 12 separate cores) and then the double L1 caches would be a waste
10:03:21 <wob_jonas> I don't want to say that hyperthreading is always useless, because sometimes people run windows and a browser and have a ton of processes scheduling around each other in wild chaos and the whole thing together is bound on main memory or L3 cache,
10:03:30 <wob_jonas> so in that case hyperthreading can help to reduce context switch overhead,
10:03:54 <int-e> wob_jonas: yeah it would only make sense to me in a isolated container setting (VPS), assuming that /some/ of the hyperthreading benefit survives the effective reduction in cache sizes
10:03:56 <wob_jonas> but for the cases when I actually care for performance, on my computer, not on the boss's laptop when it's running a virus scan, I think hyperthreading is a waste
10:04:51 <int-e> it would mitigate L1 cache based side channels (which probably have a nice name but I don't currently remember)
10:05:01 <wob_jonas> int-e: um, if you have an isolated container, don't you want to not run it on the same core hyperthreaded, because on the same thread timing attacks can cause security bugs? or what kind of isolated containers do you want?
10:05:16 <nakilon> s/AI researchers/casual users of trendy specialised machine learning tools
10:05:22 <wob_jonas> int-e: ok, but is that enough? there's still all sorts of possible timing attacks even if the L1 cache is separate
10:06:02 <int-e> I'm imagining "small" VPSs with 1 virtual core. If you offer hyperthreading then sure, you can give the whole core to the VPS.
10:06:34 <int-e> wob_jonas: I don't know whether it's enough. Probably not... some of the more interesting attacks actually work with the shared branch prediction data.
10:06:35 <wob_jonas> int-e: no, I mean separating the L1 cache isn't enough to isolate the two processes enough for security purposes I think
10:08:30 <int-e> And in the end, the scheduling decisions for individual instructions is so delicately intertwined in hyperthreading... there will be remaining side channels where you can see what kind of stuff the other thread is doing.
10:08:46 <int-e> So yeah, it's probably a losing fight.
10:09:02 <int-e> Up until the point where you have two separate cores ;)
10:09:34 <wob_jonas> but maybe some VPS providers just don't care about the security of their clients?
10:09:43 <wob_jonas> I don't know the market there
10:09:44 <int-e> Oh that's for sure.
10:10:26 <int-e> Remember https://www.cloudatcost.com/ ?
10:11:35 <wob_jonas> "virtual crypto miners" wait what?
10:11:48 <int-e> Yeah they found a way to become even more scammy
10:12:08 <wob_jonas> I don't remember because I haven't researched the VPS market much
10:12:11 <int-e> "we're mining crypto but you can help us finance the hardware"
10:12:28 <wob_jonas> so far I don't even have a hosted server (virtual or not) that I pay for
10:13:07 <int-e> I thought you might remember from the old days when HackEgo used to crash once every one to two weeks because the CaC VPS it was on was so great(ly unreliable).
10:13:11 <wob_jonas> I just have a computer at home behind a dynamic IP cable internet that often cuts out, and I'm vaguely wondering if it's even possbile to run a https server behind dynamic IP
10:13:37 <wob_jonas> oh, is that the old hosting provider for the wiki?
10:13:44 <int-e> Yeah
10:13:56 <wob_jonas> wow
10:15:06 <wob_jonas> "virtual crypto miners" is impressive in the sense that it's hard to write a short webpage headline that dodgy.
10:15:43 <wob_jonas> the investment scam ads need more words than that to communicate their scammyness
10:15:48 <int-e> They evolved a bit. The good old $35/lifetime VPS offer is gone. Or was it $70 and permanently 50% off. I forgot :)
10:16:11 <wob_jonas> meh, permanently 50% off is normal, people do that here too
10:16:22 <wob_jonas> even for basically legitimate services
10:17:09 <nakilon> I wonder why I have $ in RASEL
10:17:20 <nakilon> if I can do just 0/-
10:17:21 <Taneb> The old RASEL-dazzle
10:17:38 <int-e> 0/- doesn't look like money
10:17:51 <wob_jonas> um
10:17:54 <wob_jonas> what is 0/- ?
10:17:59 <nakilon> I can change / with $ to have lots of money
10:18:14 <nakilon> wob_jonas division by zero gives zero
10:18:38 <wob_jonas> ok
10:18:43 <nakilon> or :--
10:20:45 <nakilon> really, the $ is almost not used actually
10:22:41 <nakilon> only 4 times in brainfuck interpreter
10:23:34 <nakilon> are there any built in or popular unix utility for char stats?
10:24:47 -!- spruit11_ has joined.
10:25:10 <nakilon> https://dpaste.org/QmjQ/slim
10:26:26 <nakilon> 37 is \n
10:28:16 -!- spruit11 has quit (Ping timeout: 252 seconds).
10:28:40 <nakilon> (and fungot for comparison https://dpaste.org/ExRY/slim)
10:28:40 <fungot> nakilon: grab the fnord bus. not familiar though. -g is fine as long as people don't delete)
10:29:55 <nakilon> oh and there are english comments in both files (
10:31:00 <nakilon> but still I suppose 1 with g are the most used instructions in fungot and 1 with \ are the most used in my program
10:31:00 <fungot> nakilon: a celebrity of some sort, a human readable spec, but there's an exact address for chead on that " visual_iterate ( chead=0x804c318) at mm_visual.c:13
10:31:53 <ais523> on the subject of hyperthreading, I assumed that it started out as "let's run unrelated programs on alternating CPU cycles to halve the effective pipeline length, helping to hide our long pipelines" (that may be incorrect), but it's turned into "it's wasteful to have a fixed number of instruciton decoders, etc., let's split six decoders between two core-equivalents so that they can do four-and-two or five-and-one, rather than forcing them to have only
10:31:55 <ais523> three each"
10:33:03 <ais523> wob_jonas: I'm trying to work out whether there's any actual distinction between a virtual cryptominer and a subscription service for buying bitcion
10:33:07 <ais523> * buying bitcoin
10:34:07 <wob_jonas> ais523: I thought it started like "the programmers can't write programs that use the cache efficiently, so the CPU is mostly waiting for memory (or L2 or L3) accesses. if we're memory-bound all the time then we don't need so much of everything else, run two threads together, running whichever thread can proceed because the data from memory arrived"
10:34:55 <ais523> wob_jonas: it could be, sort of, except that the hyperthreads share the L2/L3/memory bottleneck
10:35:14 <ais523> so this is only useful in the rare case that the program is bottlenecked specifically on memory latency rather than memory throughput
10:35:23 <wob_jonas> hmm
10:35:32 <ais523> (this can happen, e.g. with linked lists, but throughput is much more likely to be a bottleneck)
10:35:37 <wob_jonas> you might have a point
10:35:55 <wob_jonas> so it's more about pipeline than memory, beacuse it doesn't help with memory?
10:36:04 <wob_jonas> unless it's memory latency
10:36:04 <wob_jonas> hmm
10:37:14 <wob_jonas> ais523: can hyperthreading also be because the programs use too many unncessary context switches, so you may want to run two *related* processes that are communicating and syncrhonizing in one thread?
10:37:28 <wob_jonas> no, probably not, cpus are probably not optimized for the latest stupid fad of bad programmers
10:37:51 <wob_jonas> at least the x86 ones aren't
10:38:00 <ais523> wob_jonas: when working on this FizzBuzz, I've concluded that algorithms often care a lot about which threads are siblings
10:38:17 <ais523> so it's possible
10:38:55 <wob_jonas> um ok... but your optimized FizzBuzz is also not what the cpus will be optimized for
10:39:02 <ais523> the FizzBuzz doesn't benefit much from the sibling relationship because it's bound on cache write speed and that's something that's shared between siblings
10:39:08 <ais523> wob_jonas: well, it is, sort-of in reverse
10:39:15 <wob_jonas> it's true that if you have a hyperthreading cpu then the programmer may care on where they bind the threads
10:39:19 <ais523> in that it's being optimized to try to fit the CPUs as accurately as possible
10:39:24 <wob_jonas> same on a NUMA cpu
10:39:57 <ais523> if the CPUs had different performance characteristics it might well change the entire algorithm
10:40:27 <wob_jonas> ais523: yes, if you have 12 important threads on a 12*2 hyperthreading cpu then you want to run them on 12 separate cores
10:40:32 <ais523> the funny thing is, I'm not sure you even benefit much from multithreading if you're trying to write the fizzbuzzed output to memory
10:40:55 <ais523> because the bottleneck will be the memory write speed and I think you can go fast enough to saturate that with even one core
10:41:01 <ais523> so the only benefit from a second thread is to run your system calls on it
10:41:11 <wob_jonas> ais523: yeah, unless it's a NUMA machine, because you can do the computation fast enough that it's bound on memory speed
10:41:31 <ais523> oh, good point, NUMA probably means extra memory bandwidth because you can access it from multiple places
10:41:33 <wob_jonas> but if it's a NUMA machine then you'll have two threads, one per NUMA node
10:41:39 <wob_jonas> yes, that
10:42:04 <nakilon> \wp numa cpu
10:42:05 <velik> Non-Uniform Memory Access -- computer memory design used in multiprocessing https://en.wikipedia.org/wiki/Non-uniform_memory_access
10:42:07 <wob_jonas> that said, in the odd case of fizzbuzz, you also won't be harmed much by running as many threads as you have cores
10:42:08 <ais523> anyway, the mechanism for reading speed in the original CGCC question doesn't actually require the fizzbuzz to be written to memory, just to a memory address
10:42:28 <wob_jonas> for writing to memory that is
10:42:31 <ais523> which is a huge distinction, because it lets you keep your fizzbuzz output in cache and just discard it when it gets written to /dev/null
10:42:36 <wob_jonas> yaeh
10:42:38 <ais523> so it never touches main memory
10:43:07 <ais523> this means running on as many CPUs as possible to give yourself as much L2 cache as possible to store the output in (I only realised this a few days ago)
10:43:10 <nakilon> I feel like adding references at the bottom of the page, velik you are handy
10:43:22 <wob_jonas> unless by "memory address" they mean a memory-bound IO device, like one that behaves like a really fast serial port that actually throws the data away
10:43:27 <wob_jonas> implemented in hardware
10:43:37 <ais523> wob_jonas: nah, it's defined in terms of system calls
10:43:51 <wob_jonas> system calls? wow
10:43:55 <ais523> specifically, requiring it to be possible to read the data from a pipe (but not actually doing the read, it just gets piped to /dev/null)
10:44:25 <ais523> which means that you can vmsplice your own address space into the pipe and not actually copy the generated data at all
10:44:34 <wob_jonas> so you'd fill most of the L1 cache, except that the kernel uses to do the write, then call the write?
10:44:48 <wob_jonas> "copy the generated data" to /dev/null?
10:44:53 <ais523> wob_jonas: right, although I'm currently planning to use the L2 cache for the purpose
10:45:03 <wob_jonas> ok
10:45:21 <ais523> L1 might be doable, but then the system call overhead gets really large
10:45:40 <wob_jonas> why do you need vmsplice if the speed is measured when the output handle is /dev/null ? doesn't writing to that elide the copy?
10:45:53 <ais523> also, my current algorithm uses most of L1 cache as it is for lookup tables; I could make those smaller but at the cost of using unaligned access
10:45:58 <wob_jonas> I mean I don't know, maybe the kernel doesn't optimize taht and it does copy before discarding
10:46:07 <ais523> wob_jonas: so the command is (./fizzbuzz | pv > /dev/null)
10:46:13 <wob_jonas> what is pv?
10:46:18 <shachaf> Do unaligned accesses actually matter much these days?
10:46:21 <ais523> pv is like cat with a progress bar
10:46:27 <wob_jonas> ah, you mean dd
10:46:37 <ais523> but in this configuration, it internally calls splice repeatedly, with stdin and stdout as arguments
10:47:01 <ais523> shachaf: not in normal configurations, but this one is sufficiently abnormal that I think they might
10:47:32 <wob_jonas> shachaf: unaligned access matters if (a) it's across a cache line, or (b) you've optimized your program to an older CPU or at least for potentially running on an older CPU
10:47:33 <ais523> e.g. it wouldn't surprise me if an unaligned 32-byte read that crossed a cache line boundary would require twice the L1 read bandwidth
10:47:52 <ais523> and this doesn't matter in most cases, because most programs aren't bottlenecked on L1 read bandwidth
10:48:09 <ais523> but this one is, it bottlenecks L1 read, L1 write, and L2 write simultaneously
10:48:21 <wob_jonas> shachaf: if you read an unaligned integer within a cache line it's as fast as aligned, but aligning everything is a good heuristic to avoid that
10:48:55 <ais523> the really horrible case is an unaligned access across a *page* boundary; cache line boundaries don't cost much nowadays, but they may be a little slower
10:49:13 <shachaf> Unless it also increases wasted cache space, in which case it might be less clear, I suppose.
10:49:26 <shachaf> Page boundaries are a bad case, sure.
10:49:39 <shachaf> But they're pretty uncommon, especially if you use huge pages.
10:50:06 <wob_jonas> shachaf: also sometimes you *want* unaligned access, even across cache lines, eg. to memcpy with unaligned difference, and for that the guideline is that if you have a choice between unaligned reads and unaligned write, do aligned write and unaligned read
10:50:48 <ais523> wob_jonas: aligned write, unaligned read is usually better, but apparently not always
10:50:51 <ais523> processors are weird
10:51:04 <wob_jonas> here too the unaligned only matters across cache lines, but reading unaligned is better than reading aligned and then shifting, and is also better than reading aligned and writing unaligned
10:51:14 <wob_jonas> ais523: yes, it's just a guideline
10:51:16 <ais523> I think someone benchmarked all the possibilities (including one where you do both reads and writes aligned and use double vector shifts to adjust)
10:51:45 <nakilon> also the top element can be discarded with '? '
10:52:00 <nakilon> so there are three ways already, what are others?
10:53:12 <wob_jonas> ais523: in bitmap image processing, we often have patterns similar to the Wolfram style cellular automaton, where the output is the same size as the input but depends on three adajcent input pixels. and in that case, aligned reads and shifts may be better.
10:53:16 <wob_jonas> with aligned writes that is\
10:53:22 <wob_jonas> aligned reads and aligned writes and shifts
10:54:12 <wob_jonas> though sometimes the bottleneck is something else and it doesn't matter what you do
10:54:34 <ais523> well, that algorithm would naturally want unaligned reads at the bit level, but there's no way to express those
10:55:00 -!- ais523 has quit (Quit: quit).
10:55:21 <wob_jonas> "the really horrible case is an unaligned access across a *page* boundary" => especially if you want to write a strlen where reading one byte past the nul byte is undefined behavior if it crosses a page boundary
10:55:37 <wob_jonas> and yes, that's a bit different than what you are talking about
10:56:43 <wob_jonas> I would like a malloc-like API that takes four parameters instead of the usual two: size of allocated block, alignment, how many bytes must be readable before it, how many bytes must be readable after it. (you can have two variants of this, one where you know the paramters when you free and one where you don't)
10:56:56 <wob_jonas> usually mallocs only provide two parameters, the size and the alignment
10:57:51 <wob_jonas> unaligned reads at bit level? what algorithm?
11:01:33 <wob_jonas> oh, you're talking about the cellular automaton? well, in the image processing our pixels are large that we don't need that, and even in the Wolfram case you can store the CA such that you don't need finer than byte granularity if you wish, by breaking your space (or large enough pages of it) to eight parts, storing each eighth in a specific bit of
11:01:34 <wob_jonas> the bytes, and putting the eight on top of each other and then manipulating them together. this only works if your neighborhood is small enough, like in Wolfram, not for larger data, but often if the bit level shifts cause a problem (they don't always do) you can avoid them
11:02:27 <wob_jonas> though I'm not too confident in that
11:06:32 <wob_jonas> ok no
11:06:45 <wob_jonas> the Wolfram CA is different in that you want to iterate your operation a lot of times
11:06:57 <wob_jonas> unlike in the pixel bitmap case, where you want much fewer iterations
11:07:09 <wob_jonas> so for the CA you don't want to rearrange the pixels
11:11:29 <wob_jonas> it was a bad analogy
11:16:01 -!- arseniiv has joined.
12:13:59 -!- dyeplexer has joined.
12:37:36 <esolangs> [[Kolmogorov]] M https://esolangs.org/w/index.php?diff=88043&oldid=88024 * Kaveh Yousefi * (+0) Added a linebreak to simulate a paragraph, removed a superfluous empty line, and amended an occurrence of ascii to its capitalized form.
12:50:20 -!- pikhq has quit.
12:50:36 -!- pikhq has joined.
13:15:01 -!- velik has quit (Remote host closed the connection).
13:15:32 -!- velik has joined.
13:19:54 -!- velik has quit (Remote host closed the connection).
13:20:11 -!- velik has joined.
13:36:19 -!- aarchi has quit.
13:36:35 -!- aarchi has joined.
13:38:50 -!- velik has quit (Remote host closed the connection).
13:39:18 -!- velik has joined.
14:14:18 -!- hanif has quit (Ping timeout: 276 seconds).
14:15:30 -!- Sgeo has joined.
14:24:22 -!- src has joined.
14:33:50 -!- faxlore has quit.
14:34:06 -!- faxlore has joined.
14:41:47 -!- sprock has quit (Ping timeout: 268 seconds).
14:45:03 -!- hanif has joined.
14:45:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:50:54 -!- wob_jonas has quit (Quit: Client closed).
15:05:32 -!- tromp has joined.
15:10:36 -!- hanif_ has joined.
15:12:09 -!- hanif has quit (Ping timeout: 276 seconds).
15:22:00 <nakilon> it happens that in factorial example I put on wiki both $ are safely replaceable with -, because in both cases there is 0 on top
16:15:32 -!- sprock has joined.
16:26:30 -!- vyv has joined.
16:30:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:37:18 -!- hanif_ has quit (Ping timeout: 276 seconds).
16:49:26 <esolangs> [[RASEL]] https://esolangs.org/w/index.php?diff=88044&oldid=87906 * Nakilon * (-71) spec v2: deprecated '$'
16:51:36 <esolangs> [[Velik]] M https://esolangs.org/w/index.php?diff=88045&oldid=87985 * Nakilon * (+38) note that it runs spec v1
16:54:47 -!- tromp has joined.
16:54:59 <nakilon> s/on wiki/in README
16:57:45 <nakilon> '$' has appeared to be in most cases replaceable with just '-' because it is usually used when if you leave the loop and you need to pop the nullified counter that was used there
16:59:54 <Sgeo> I'm confused by matrices again. When a mathematician sees m_12, does that usually refer to row 1 column 2, or row 2 column 1?
17:00:10 <shachaf> Or does it refer to entry 12?!
17:00:37 <shachaf> Presumably the diagram at https://en.wikipedia.org/wiki/Matrix_(mathematics) can help.
17:01:24 <Sgeo> So DOMMatrix does it the other way around, because...? https://drafts.fxtf.org/geometry/#DOMMatrix
17:04:16 -!- hanif_ has joined.
17:09:09 -!- hanif_ has quit (Ping timeout: 276 seconds).
17:09:23 -!- sprock has quit (Ping timeout: 265 seconds).
17:11:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:16:17 -!- sprock has joined.
17:26:08 -!- hanif_ has joined.
17:30:33 <nakilon> ij = rowcolumn
17:31:25 <nakilon> wow, that DOMMatrix thing is surprising
17:38:30 <Cale> That's a bold move to change convention like that, but tbh, I think column/row makes more sense if we were doing it all over again, and seems especially appropriate if you only have the geometric usage of matrices as linear maps in mind. The ith column of a matrix are the coefficients (in terms of the basis on the codomain) of where it sends the ith basis vector (of the domain).
17:39:13 <Corbin> The convention doesn't matter; what matters is not changing the convention midway through a module.
17:39:16 -!- immibis has joined.
17:39:25 <b_jonas> there are like three or four orthogonal arbitrary convention choices for how matrixes work
17:40:17 <Corbin> Cale: WTB a matrix-maths library which encapsulates matrices without the ability for programmers to witness the internal indexing.
17:40:54 <Cale> Is that just linear?
17:41:30 <b_jonas> one for when you multiply do you match the column index of the first factor with the row index of the second or backwards (most people agree on the former); one for whether your covariant vectors are row vectors or column vectors (this one has much more variance); one for what order you write the two indices; one for whether you represent the matrix row-major or column-major; and one for which factor
17:41:36 <b_jonas> you conjugate when you compute an inner product
17:41:38 <b_jonas> I guess that's five mostly independent choices
17:42:21 <Cale> Some of those are not entirely orthogonal
17:42:24 <Corbin> Cale: Ha, I'd forgotten it exists, thanks: https://hackage.haskell.org/package/linear
17:43:09 <b_jonas> Cale: yeah, you may have to do a basis change on these to get them orthogonal,
17:43:15 <b_jonas> but they are five linear independent choices
17:43:28 <Cale> In the sense that while you can flip some of those conventions relative to each other, you'll also make the notation worse by doing so
17:44:20 <Cale> Like, it's very important that matrix-matrix multiplication corresponds to function composition of linear maps, and matrix-vector multiplication corresponds to function application
17:44:36 <b_jonas> Cale: function composition in which direction?
17:44:46 <Cale> In whatever direction you write function composition
17:44:58 <Cale> Which should match with function application
17:45:04 <b_jonas> the matrix multiplication always correspond to function composition and function application, you just have to write the two factors of the matrix multiplication in the right way
17:45:19 <b_jonas> Cale: yes, but people never agree which way function compositions and applicatio ngo.
17:45:34 <b_jonas> algebraists sometimes put the function on the right, analysis the function on the left
17:45:36 <Cale> For some value of "never" where 99.9% of people agree
17:46:08 <b_jonas> and those same algebraists may put the covariant vectors on the right, so it's backwards from function application
17:46:15 <Cale> (and some are just agreeing more begrudgingly than others)
17:46:27 <b_jonas> some people even write function composition backwards compared to function application
17:46:28 <Cale> If you want the opposite convention, I recommend using exponents
17:46:58 <Cale> i.e. (x^f)^g = x^(fg)
17:47:03 <b_jonas> Cale: the exponents are mostly for non-linear functions though
17:47:14 <b_jonas> inspired by how conjugation is sometimes notated by an exponent
17:47:20 <Cale> Yeah, it happens with group actions, but not so much with linear maps
17:47:36 <b_jonas> and some morphisms behave sort of like conjugations, so much that they call them outer conjugations
17:49:37 <Cale> But like, choosing one direction for composition and the opposite for matrix multiplication would just be bad. Also, choosing to have vector-matrix multiplication be the opposite way around from matrix-matrix multiplication would be really perverse
17:50:10 <Cale> It's possible to be much more confusing than necessary if you pick the combination of conventions badly
17:51:03 <b_jonas> Cale: ok, but I didn't count function composition among the five, so is that a problem?
17:51:19 -!- Koen_ has joined.
17:51:22 <b_jonas> I mostly didn't count it because it doesn't really just concern matrices or vectors, but still
17:51:44 <b_jonas> so wouldn't that be just the one convention about which side of the product the covariant vector goes?
17:52:29 <b_jonas> as in, if you write function applications with the function on the left, then you likely consider column vectors covariant, unless you use the rare backwards matrix multiplication convention
17:53:08 <Cale> So yeah, you can write your vectors as the "wrong" type of matrix for the matrix multiplication rule, which would be needlessly confusing
17:53:42 <Cale> and you could also define vector/matrix multiplication in a way which didn't agree with how you defined matrix/matrix multiplication, in another sense
17:54:13 <b_jonas> Cale: er no, I certainly don't consider defining vector/matrix multiplication the opposite way from matrix/matrix multiplication
17:54:18 <b_jonas> I've never heard of anyone attempting that
17:54:27 <Cale> Yeah, it would be extremely dumb
17:56:07 <b_jonas> but still, there's the choice where you write (covariant) vectors as row vectors and put a matrix on the right of the vector in matrix multiplication, and the convention where you write (covariant) vectors as column vectors and put the matrix on the left side for a matrix multiplication, and both of those are non-rare
17:57:57 <b_jonas> what killed you there?
18:07:05 -!- dutch has quit (Quit: WeeChat 3.2).
18:13:10 -!- perlbot has quit (Ping timeout: 240 seconds).
18:13:28 -!- simcop2387 has quit (Ping timeout: 252 seconds).
18:13:31 -!- Argorok has quit.
18:13:45 -!- Argorok has joined.
18:21:08 -!- dutch has joined.
18:26:14 -!- dyeplexer has quit (Ping timeout: 265 seconds).
18:33:49 -!- hanif_ has quit (Quit: quit).
19:07:24 -!- oerjan has joined.
19:16:02 -!- sprock has quit (Ping timeout: 260 seconds).
19:40:02 -!- Koen_ has quit (Quit: Leaving...).
19:42:14 -!- delta23 has joined.
19:56:47 -!- perlbot has joined.
19:59:01 -!- simcop2387 has joined.
20:00:45 -!- tromp has joined.
20:09:31 -!- sprock has joined.
20:14:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:16:20 -!- riv has quit (Quit: Leaving).
20:17:58 -!- riv has joined.
20:27:37 -!- tromp has joined.
20:38:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:48:18 -!- vyv has quit (Quit: Konversation terminated!).
20:51:46 -!- immibis_ has joined.
20:54:37 -!- immibis has quit (Ping timeout: 265 seconds).
20:55:05 -!- sprock has quit (Ping timeout: 268 seconds).
21:00:59 -!- Lord_of_Life_ has joined.
21:01:46 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
21:03:42 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:10:10 -!- tromp has joined.
21:19:42 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=88046&oldid=88018 * Camto * (-2) Well I mean it is, isn't it?
21:21:10 <esolangs> [[Subreal]] M https://esolangs.org/w/index.php?diff=88047&oldid=88027 * Camto * (-2) Now there is an implementation.
21:35:45 -!- sprock has joined.
21:58:04 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=88048&oldid=87501 * Heptor * (-41) /* Notes */
22:07:06 -!- riv has quit (Quit: Leaving).
22:07:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:08:52 -!- riv has joined.
22:41:58 -!- hendursa1 has quit (Quit: hendursa1).
22:42:58 -!- hendursaga has joined.
23:11:45 <Corbin> I worry about Discord culture sometimes. I think that more than one contributor over there has missed the idea that esoteric PLT/PLD is not just "lol silly syntax" or "gl writing real programs" but an attempt to enrich mainstream language design by exploring unexamined avenues.
23:14:40 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=88049&oldid=88048 * Heptor * (+74) Add interpreter
23:17:07 <esolangs> [[Matrixfuck]] https://esolangs.org/w/index.php?diff=88050&oldid=88049 * Heptor * (+8) /* Syntax */
23:19:10 -!- arseniiv has quit (Ping timeout: 268 seconds).
23:28:31 <b_jonas> Corbin: a lot of articles on the wiki are like that too
23:29:46 <Corbin> Yes. The wiki seems to be balanced by an unwritten rule that some pages are actively maintained by their authors, and that there should not be a single unified style or presentation. This isn't bad, but it will make the situation more obvious.
23:29:59 <zzo38> Well, esoteric programming can involve many things, although it is not very good if they missed the idea like you say
23:30:17 <b_jonas> I hope you're interpreting "enrich" and "exploring unexamined avenues" in a general enough sense
23:30:25 <b_jonas> or else lots of good esolangs fail it too
23:30:35 -!- oerjan has quit (Quit: Nite).
23:31:10 <zzo38> I don't know about Discord, but I see the wiki. I suppose, like they say, ninety percent is no good (I haven't actually counted, though)
23:32:15 <Corbin> I think that e.g. the Trivial Brainfuck Substitutions are a much better critique of the situation than I could give.
23:32:39 <b_jonas> well sure
23:34:13 <Corbin> I just wish that it were possible, through wiki nudges alone, to inspire a healthier PLT environment. At least it's not a barren tribalist wasteland where everybody's arguing over which Lisp is best.
23:36:58 -!- j-bot has quit (Ping timeout: 252 seconds).
23:37:12 -!- j-bot has joined.
2021-09-14
00:06:33 <Sgeo> Suddenly I'm curious about linear transforms via matrices used for turing complete computation
00:07:55 <Sgeo> A matrix as a program that takes input and returns output wouldn't be TC.
00:08:10 <Sgeo> What would the computation class of that ... be, exactly?
00:10:41 <Sgeo> Is "total" a computation class, or are there subsets?
00:15:22 <keegan> there are lots of total functions that aren't linear
00:15:23 <Corbin> How is the matrix a program? Usually a single matrix multiplication is in P. Repeatedly exponentiating a matrix until it passes an arbitrary test is TC.
00:15:51 <keegan> a program consisting only of matrix multiplications can only implement linear functions
00:16:48 <Corbin> Depends on what we define as matrix coefficients, but yeah, FSVO "linear".
00:16:51 <keegan> but you can add some nonlinear operations and make it turing complete
00:16:54 <Sgeo> Could the meaning of dimensions be defined to be more than linear functions? e.g. Adding a dimension allows encoding translation as rotation (if I understand homogenous coordinates properly)
00:17:32 <keegan> rotating coordinates is a linear trnsformation
00:17:34 <keegan> https://en.wikipedia.org/wiki/Rotation_matrix
00:18:01 <Sgeo> But translating coordinates isn't, is it?
00:18:24 <keegan> no, that's a non-linear affine transformation
00:18:35 <Sgeo> I wonder what other non-linear transforms can be encoded by adding dimensions
00:19:01 <keegan> interesting question
00:19:10 <keegan> if you want a model of computation based on linear algebra then look at quantum computing
00:20:24 <keegan> the state of a quantum computer is a vector of complex numbers; the basic operations of a quantum computer are a) multiplication by a unitary matrix and b) measurement, which randomly collapses the state to one of the eigenvectors of the measurement operator, with probability depending on the state
00:20:30 <keegan> something like that
00:58:24 <Soni> we guess we can say we programmed a filesystem? https://soniex2.autistic.space/git-repos/htmlgdump.git/browse/refs/heads/deploy/tree/git-hooks/post-receive/
00:58:39 <Soni> filesystems are DFAs... that makes them programmable yeah?
01:06:28 <Soni> (and yes we're using this in production)
01:37:18 -!- src has quit (Ping timeout: 268 seconds).
02:10:26 <Sgeo> I was about to say it's all Apple's fault.... but https://developer.apple.com/documentation/webkitjs/webkitcssmatrix
02:10:41 <Sgeo> That looks like it matches math conventions. Unless Apple has matrices transposed
02:20:36 <Sgeo> DOMMatrix is officially an alias of obsoleted WebKitCSSMatrix, so...
03:13:56 -!- delta23 has quit (Quit: Leaving).
03:31:49 -!- sebbu has quit (Ping timeout: 252 seconds).
03:32:13 -!- sebbu has joined.
04:27:35 -!- Corbin has quit (Quit: zzz).
04:39:22 -!- Cale has quit (Ping timeout: 252 seconds).
06:11:36 <esolangs> [[Special:Log/newusers]] create * Wixette * New user account
06:14:23 -!- tromp has joined.
06:21:18 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88051&oldid=88036 * Wixette * (+166)
06:22:08 <esolangs> [[User:Wixette]] N https://esolangs.org/w/index.php?oldid=88052 * Wixette * (+26) Created page with "https://github.com/wixette"
06:51:33 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:53:52 -!- dutch has quit (Ping timeout: 268 seconds).
07:07:38 -!- dutch has joined.
07:26:13 -!- tromp has joined.
07:42:19 -!- Sgeo has quit (Read error: Connection reset by peer).
08:06:03 -!- hendursa1 has joined.
08:08:45 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:11:38 -!- Everything has joined.
08:59:15 -!- hanif has joined.
09:29:21 -!- hanif has quit (Ping timeout: 276 seconds).
09:36:06 -!- imode has quit (Ping timeout: 260 seconds).
10:05:15 <int-e> argl, alsamixer (in Debian, if that matters) has switched from a black background to the terminal's default background... so now it's almost unusable with a white background because there's a lot of yellow text
10:06:03 <int-e> (Debian unstable, to be precise)
10:07:19 <riv> the problems of the web, coming to your terminal
10:09:31 <int-e> it's not exactly a new problem in terminals... it's just that this program used to be fine... and now it isn't.
10:17:33 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:18:34 <riv> > Today's fun, customer says "Is it OK if we make 20k requests per hour to this endpoint". No problem, say we. I suppose making all 20k of those requests within the first minute and then waiting for 59m to do another batch still counts?
10:18:36 <lambdabot> <hint>:1:12: error: parse error on input ‘,’
10:40:43 <int-e> Oh it's configurable now, a fact that is pretty much undocumented. Back to normal: https://paste.debian.net/1211685/
12:04:09 -!- hanif has joined.
12:09:15 -!- hanif has quit (Ping timeout: 276 seconds).
12:09:17 -!- arseniiv has joined.
12:19:08 <esolangs> [[Haifuckqueue]] N https://esolangs.org/w/index.php?oldid=88053 * 4gboframram * (+1027) Created page with "'''haifuckqueue''' is a stack-based esolang created by [[User:4gboframram]] in September 2021. It is inspired by the concept of the traditional Japanese poem, the Haiku. Howev..."
12:37:20 -!- hanif has joined.
12:57:17 -!- src has joined.
13:13:44 <Soni> int-e: as a transparent terminal user, it's pretty awesome tbh
13:21:10 <Soni> (okay, not fully transparent, but anyway)
13:29:09 -!- shikhin has quit (Quit: Quittin'.).
13:30:53 -!- shikhin has joined.
13:31:47 -!- shikhin has changed hostmask to ~shikhin@offtopia/offtopian.
13:36:33 -!- src has quit (Ping timeout: 268 seconds).
13:39:19 <int-e> Soni: transparency is just increasing visual clutter for me
13:40:16 <esolangs> [[Haifuckqueue]] https://esolangs.org/w/index.php?diff=88054&oldid=88053 * 4gboframram * (+3332)
13:40:42 <Soni> programming with livestream/video/etc in background is kinda fun :p
13:41:37 <Soni> we can't really focus on both things so we usually either focus on the programming or the thing but, having it there does help with the programming when we do focus on it?
13:59:31 -!- src has joined.
14:17:58 -!- monoxane has quit (Ping timeout: 252 seconds).
14:19:53 <esolangs> [[Haifuckqueue]] https://esolangs.org/w/index.php?diff=88055&oldid=88054 * 4gboframram * (+2)
14:21:16 <esolangs> [[Haifuckqueue]] https://esolangs.org/w/index.php?diff=88056&oldid=88055 * 4gboframram * (+0)
14:23:30 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88057&oldid=88038 * 4gboframram * (+19) /* H */
14:31:07 -!- monoxane has joined.
14:39:19 -!- Corbin has joined.
14:47:15 -!- spruit11_ has quit (Ping timeout: 268 seconds).
14:54:52 <esolangs> [[Haifuckqueue]] https://esolangs.org/w/index.php?diff=88058&oldid=88056 * 4gboframram * (+19)
14:58:54 -!- spruit11 has joined.
15:12:20 -!- Sgeo has joined.
15:30:06 -!- hanif has quit (Ping timeout: 276 seconds).
15:34:22 -!- tromp has joined.
15:36:12 -!- hendursa1 has quit (Quit: hendursa1).
15:36:38 -!- hendursaga has joined.
15:41:49 -!- Cale has joined.
16:27:09 -!- hanif has joined.
16:32:44 -!- imode has joined.
16:51:25 -!- laerling has joined.
17:02:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:07:06 -!- vyv has joined.
17:14:45 -!- hanif has quit (Ping timeout: 276 seconds).
17:15:10 -!- vyv has quit (Ping timeout: 240 seconds).
17:17:51 -!- hanif has joined.
17:23:43 <esolangs> [[List of ideas]] https://esolangs.org/w/index.php?diff=88059&oldid=88012 * 4gboframram * (+128) /* Joke/Silly Ideas */
17:44:27 -!- sprock has quit (Ping timeout: 268 seconds).
17:45:00 -!- tromp has joined.
17:46:37 <nakilon> 02:11:45 <Corbin> I worry about Discord culture sometimes.
17:47:16 <nakilon> "... more than one contributor over there has missed the idea"
17:47:44 <nakilon> as I said, Discord is in the first place a product targeted on people who are missing the ideas
17:48:19 <laerling> what idea(s)?
17:48:35 <nakilon> any
17:52:36 <hanif> i think its mostly the average age than anything
17:58:14 <Corbin> I know a couple people who moved IRC communities to Discord. One instructive example is from a university group; the average age would be in their 30s now. Personally I think it's about control; Discord emulates the feeling of private group chats with micromanaging moderators.
17:59:51 <laerling> When one of the main communities I was in was forced to move to Discord I felt like it was more due to the fancy shmancy UI with its bells and whistles. And maybe the easy-to-use voice chats, idk.
18:01:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:01:53 <nakilon> the university teachers/curators couldn't learn the /chanserv help?...
18:02:25 <nakilon> UI that is not configurable
18:02:50 <nakilon> can't sent fonts, can't set colors
18:02:53 <nakilon> *set
18:03:47 <nakilon> as I said, it was just made for LoL players when LoL developers could not make in game voice chat so they have outsourced it so that someone would make a website with some game integration
18:04:31 <nakilon> and then all LoL players' friends who were told there already are tools for text and voice communication invented decades ago joined them
18:04:41 <nakilon> *who were not told
18:07:16 <esolangs> [[RASEL]] M https://esolangs.org/w/index.php?diff=88060&oldid=88044 * Nakilon * (+0) it's 18 instructions, not 19 anymore
18:16:46 -!- FreeFull has joined.
18:25:29 <zzo38> A few with Discord now have a IRC bridge, though.
18:25:42 <hanif> maybe it's 'gamer culture' leaking in, people often are on more than one discord server, and many people are on gaming servers
18:33:12 -!- hanif has quit (Quit: quit).
18:33:18 -!- Everything has quit (Quit: leaving).
18:55:09 -!- tromp has joined.
18:58:19 -!- src has quit (Read error: Connection reset by peer).
18:59:17 -!- src has joined.
19:10:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:12:57 -!- riv has quit (Quit: Leaving).
19:13:10 -!- earendel has joined.
19:15:18 -!- riv has joined.
19:33:06 -!- oerjan has joined.
19:41:14 <esolangs> [[User:Zzo38]] https://esolangs.org/w/index.php?diff=88061&oldid=44407 * Zzo38 * (-8371) Clean
19:53:47 -!- tromp has joined.
20:03:10 -!- sprock has joined.
20:06:32 <esolangs> [[Special:Log/newusers]] create * Maikeru51 * New user account
20:07:22 <nakilon> hm, so to resolve the issue that searching for "brainfuck" it gives wrong article https://esolangs.org/w/index.php?search=brainfuck&title=Special%3ASearch&profile=default&fulltext=1
20:08:03 <nakilon> if I select my levenshtein distance to title then here https://esolangs.org/w/index.php?search=created+by+Stack+Exchange+users&title=Special%3ASearch&profile=default&fulltext=1 it prefers "list of ideas" more
20:08:32 <nakilon> (that's the case where it's supposed to find my containing text)
20:09:04 <nakilon> and the library I use to parse search results does not seem to see these text excerpts (
20:11:39 <nakilon> nvm, had some bug; with trying to find by exact match the "brainfuck" gives what you want
20:22:37 -!- velik has quit (Remote host closed the connection).
20:23:09 -!- velik has joined.
20:23:48 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=88062&oldid=88051 * Maikeru51 * (+194) My introduction!
21:02:42 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
21:03:56 -!- Lord_of_Life has joined.
21:11:14 <nakilon> what are the ways to make your esolang used by others? which simplest abilities it has to provide? network access? exception handling? ncurses bindings?
21:18:30 <zzo38> I don't know, but it probably depend what is intending being used for, different programs might be used for different things.
21:19:27 <zzo38> Many kind of programs do not use any of those features
21:25:24 -!- sprock has quit (Ping timeout: 265 seconds).
21:26:38 -!- velik has quit (Remote host closed the connection).
21:27:05 -!- velik has joined.
21:34:57 <laerling> I think it just has to have an interesting original concept
21:36:15 <nakilon> there are many such languages but...
21:40:28 <fizzie> I feel like the secret to success in that is to make a language that's good for golfing somehow.
21:40:57 <zzo38> Yes, then it will be used for golfing.
21:41:12 <zzo38> At least, it is what I have seen too, I think
21:41:15 <nakilon> maybe it should be some useful utility that hasn't been implemented in any mainstream language yet (maybe because no one had an idea to make it just yet), so you could make such thing and push it homebrew or any similar repository
21:43:28 <nakilon> people don't golf in Piet I think; it has attracted people using colors
21:50:57 -!- riv has quit (Quit: Leaving).
21:52:17 -!- riv has joined.
22:08:50 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:22:51 -!- delta23 has joined.
22:42:06 -!- tromp has joined.
23:06:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:14:05 -!- oerjan has quit (Quit: Nite).
23:15:32 -!- hendursaga has quit (Remote host closed the connection).
23:15:58 -!- hendursaga has joined.
23:35:44 <esolangs> [[Illegal Characters]] N https://esolangs.org/w/index.php?oldid=88063 * 4gboframram * (+428) Created page with "{{wrongtitle|title=<nowiki>"{{{{{{{{{@@^^</nowiki>}} '"{{{{{{{{{@@^^' is a language which can be used to solve any code golfing problem, but with a slightly (depends on..."
23:38:25 <esolangs> [[Illegal Characters]] https://esolangs.org/w/index.php?diff=88064&oldid=88063 * 4gboframram * (+2)
23:40:07 <b_jonas> nakilon: one method is to make one of those simple toy languages, travel back in time like three or four decades when computer programming was hard and you had to like punch a Fortran program to tapes, and teach an introductory programming course to middle school kids where you teach them the basics of programming with a high level language. write a working interpreter for it, and actually run the kids'
23:40:13 <b_jonas> programs. kids are easy to have power over, so you can make them use your language.
23:44:36 <b_jonas> https://ljkrakauer.com/LJK/60s/emulcomp.htm
23:45:14 <b_jonas> but please for the sake of all that's dear, put a less-than compare instruction in it
23:45:21 <b_jonas> why does everyone make these things without a less-than instruction?
23:45:36 -!- arseniiv has quit (Ping timeout: 268 seconds).
23:45:36 <b_jonas> there's so many such examples
23:46:04 <b_jonas> tom7's wikiplia is one of the annoying ones, where you have to format the number and extract its first character to see if it's negative
23:47:01 <b_jonas> that's dated 1965, so it's 56 years ago, wow
23:49:33 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=88065&oldid=87345 * 4gboframram * (+43) /* General languages */
23:52:54 <zzo38> I don't have a time travel (and I doubt nakilon has, either), but that won't stop you to try to make up such programming languages anyways if you like to do.
23:53:12 <zzo38> Also, I did try to write to Tom7 (on Saturday) but have no response.
2021-09-15
00:07:53 <b_jonas> https://esolangs.org/wiki/Lawrence_J._Krakauer%27s_decimal_computer
00:38:50 -!- sprock has joined.
00:55:58 -!- FreeFull has quit.
03:22:09 <Soni> hmm hey, is infinite minesweeper an esolang?
04:08:11 <zzo38> I suppose it is of interest to esolang, whether or not it counts as a esolang
04:09:04 <zzo38> (It isn't always entirely clear what is count as "an esolang", maybe)
04:49:48 <Corbin> Depends on what happens when a mine is clicked. Traditionally, there's no backtracking, putting it in P computationally.
04:55:59 <zzo38> OK, although I thought it was that they only find where they know there aren't any bombs
04:56:06 -!- hendursaga has quit (Ping timeout: 276 seconds).
04:58:37 <Corbin> There are some configurations which require guessing. I don't know if those can be defined away.
04:59:12 <zzo38> O, yes, you are right
04:59:55 -!- delta23 has quit (Quit: Leaving).
05:47:51 <esolangs> [[Meowlang]] N https://esolangs.org/w/index.php?oldid=88066 * Wixette * (+5953) Created page with "Meowlang is an [[esoteric programming language]] designed for cats. == Examples == === Fibonacci === A Meowlang program to print the Fibonacci numbers: <pre> MeowMeowMeowM..."
05:50:52 -!- src has quit (Ping timeout: 252 seconds).
05:53:05 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=88067&oldid=88057 * Wixette * (+15)
06:06:20 <esolangs> [[Meowlang]] https://esolangs.org/w/index.php?diff=88068&oldid=88066 * Wixette * (+206)
06:14:08 <esolangs> [[User:Wixette]] https://esolangs.org/w/index.php?diff=88069&oldid=88052 * Wixette * (+35)
06:56:54 -!- tromp has joined.
07:03:46 -!- hanif has joined.
07:07:00 <hanif> nakilon: i think fizzie's got it: code golf stack exchange is a good place to advertise your lang. you can FGITW new code golf challenges, start infinite bounties for answers in your lang https://codegolf.meta.stackexchange.com/q/5243 , nominate your lang for the 'language of the month' https://codegolf.meta.stackexchange.com/q/19279 , and/or start a chatroom for golfing in your lang
07:11:52 <hanif> oh, and having an online runner for your esolang helps
07:13:40 -!- delta23 has joined.
07:17:54 -!- earendel has quit (Quit: Connection closed for inactivity).
07:19:16 <nakilon> online runner is a good idea
07:30:14 <nakilon> https://ljkrakauer.com/LJK/essays/englishukus.htm -- we say "lift" and "chips"
07:33:10 <nakilon> btw I have a list of ~20 words that are used in Sourthern-Ukrainian dialect of Russian that are not being understood elsewhere -- part of them is from the Zapor. Cossacks slang
07:34:10 <nakilon> also interesting that most of those words can be found in Wiktionary and have example of being used in literature so I assume writers traveled more or idk, but definitely had larger vocabulary than modern usual people
07:34:31 -!- Sgeo has quit (Read error: Connection reset by peer).
07:38:28 <nakilon> few years ago when meeting with my Crimean cousin she said "can you imagine? people here in Moscow don't know the word 'skibka'!" (it's how you call a slice of https://en.wikipedia.org/wiki/Galia_melon)
07:40:29 <nakilon> I checked it on my friend -- yeah, she didn't know it; then recently I used it in a dialog with a person from Bashkiria, also was confused, then I looked up and voila! https://ru.wiktionary.org/wiki/%D1%81%D0%BA%D0%B8%D0%B1%D0%BA%D0%B0
07:42:23 <nakilon> heh, though both examples of usage in works of literature are by writers from Ukraine, hm
08:13:03 -!- hanif has quit (Ping timeout: 276 seconds).
08:15:09 -!- hanif has joined.
08:20:04 <nakilon> (found that word in a classic "Dal's Explanatory Dictionary" (1863) https://en.wikipedia.org/wiki/Explanatory_Dictionary_of_the_Living_Great_Russian_Language but in a bit weird coupling with meanings)
08:37:22 -!- monoxane3 has joined.
08:39:14 -!- monoxane has quit (Ping timeout: 268 seconds).
08:39:14 -!- monoxane3 has changed nick to monoxane.
09:24:01 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:27:25 <nakilon> I wonder if there is any article about or an example how the first practice of making a ./lib/ dir appeared
09:28:29 <nakilon> like if someone made lib_some.c, lib_another_one.c, and then changed _ with / -- this is a historical event I imagine and would like to see described
09:48:57 -!- tromp has joined.
09:55:23 <nakilon> here in 1969 I see only "sys_lib" http://www.bitsavers.org/pdf/honeywell/multics/swenson/6906.multics-condensed-guide.pdf
09:57:22 <nakilon> it's already "lib" in 1974 https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/lib
10:02:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:07:15 <nakilon> wow didn't see this before https://www.tuhs.org/Archive/Distributions/Research/Dennis_v1/UNIX_ProgrammersManual_Nov71.pdf
10:07:54 <nakilon> not OCRed (
10:10:50 -!- tromp has joined.
10:16:33 -!- delta23 has quit (Quit: Leaving).
10:19:44 <nakilon> OCRed here https://www.bell-labs.com/usr/dmr/www/1stEdman.html
10:27:12 <esolangs> [[Special:Log/newusers]] create * Shinsenai * New user account
10:35:46 -!- tech_exorcist has joined.
10:50:14 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88070&oldid=88062 * Shinsenai * (+242) /* Introductions */
11:04:42 -!- hendursaga has joined.
11:04:48 -!- riv has quit (Quit: Leaving).
11:09:37 -!- tech_exorcist has quit (Remote host closed the connection).
11:09:57 -!- Everything has joined.
11:09:57 -!- tech_exorcist has joined.
11:24:19 <nakilon> if you take an example program calculating the factorial it holds a value Accumulator starting from 1 and a value Counter starting with stdin numeral and ending at 0 breaking the loop; essentially writing befunge or rasel code involves deciding which one of those two values should higher and lower on stack so it would use the least number of
11:24:19 <nakilon> read/write/swap instructions to shorten and so simplify the code; I imagine if you add a Threading here, just one thread that would work on decrementing the Counter and checking it for zero it would make it possible to eliminate most (if not all) of the swap instructions
11:26:29 <nakilon> essentially by replacing the swapping with read/write from the thread (which has own clean stack used only for the local needs); now I only think if threads should be arbitrary named or it's enough to have a stack of threads and pushing/pulling from one of two neighbor threads
11:27:40 <nakilon> the idea is that introducing the threads won't make a program any bigger but would rather split it into reusable pieces of primitives
11:28:54 <nakilon> and the same piece of code can spawn more than one thread even for different purposes, like a piece of library
11:36:22 <nakilon> also rasel's program space immutability with pull/push be the only way to exchange data would make it have no race conditions
11:38:36 <nakilon> hm, not until multiple threads spawn other threads so you don't know how to order them, hm
11:39:09 <nakilon> maybe it should be a tree of threads so no cycles
11:42:17 <nakilon> so if thread A spawns threads B, C, D, and then issues the instruction "pull" it waits until B is pushing anything until B is dead, only then switches to pulling from C, then D
11:47:07 <esolangs> [[Velato]] https://esolangs.org/w/index.php?diff=88071&oldid=51080 * Shinsenai * (+100) Added link to a web frontend for the .NET Velato compiler in the Compilers and Interpreters section
11:54:03 -!- hanif has quit (Ping timeout: 276 seconds).
12:08:11 -!- src has joined.
12:11:31 -!- hanif has joined.
12:14:17 -!- riv has joined.
12:15:55 -!- arseniiv has joined.
12:17:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:56:27 -!- hanif has quit (Ping timeout: 276 seconds).
13:28:23 -!- tromp has joined.
13:30:00 <int-e> fungot: wtf is "ink recognition", and why is OCR no longer good enough?
13:30:01 <fungot> int-e: write a procedure ( shift proc) where proc is the exception system. but it makes _me_ want to scream
13:31:01 <int-e> hmm, quite coherent
13:55:52 -!- sprock has quit (Ping timeout: 252 seconds).
14:04:22 -!- Sgeo has joined.
14:06:18 -!- hanif has joined.
14:19:59 <nakilon> there should be arrrrrrghs and kwarrrrrrghs
14:21:47 <nakilon> оust realised "lunatic" isn't "moonatic" for some reason
14:21:49 <nakilon> *just
15:04:26 -!- src has quit (Ping timeout: 268 seconds).
15:13:14 -!- velik has quit (Remote host closed the connection).
15:21:32 <fizzie> int-e: I was under the impression "ink recognition" is specifically about handwriting on a surface that captures the timing of the strokes (meaning you get to use slightly different algorithms), while OCR *could* be about that but is more general and typically performed on raster scans of printed materials.
15:22:57 <nakilon> lol velik can't reconnect because "we are enabling SASL for some IP ranges sometimes"
15:40:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:46:07 <nakilon> hwh, btw, just noticed that this thing in GCP worked: velik (~velik@nakilon.pro) -- it's in the settings of Compute Engine
15:46:37 <nakilon> even I don't have just cool hostname like bot now has _<>
15:57:32 -!- delta23 has joined.
16:08:53 -!- tromp has joined.
16:12:46 <esolangs> [[Meowlang]] M https://esolangs.org/w/index.php?diff=88072&oldid=88068 * PythonshellDebugwindow * (+49) /* Interpreters */ Cats for cats
16:13:31 -!- riv has quit (Quit: Leaving).
16:14:20 <int-e> fizzie: thansk
16:16:13 -!- riv has joined.
16:21:12 -!- hanif has quit (Ping timeout: 276 seconds).
16:28:11 -!- hanif has joined.
16:32:56 -!- sprock has joined.
16:43:55 -!- velik has joined.
16:43:55 -!- velik has quit (Remote host closed the connection).
16:44:36 -!- hanif has quit (Ping timeout: 276 seconds).
16:44:47 -!- Koen_ has joined.
16:45:20 -!- hanif has joined.
16:46:52 -!- velik has joined.
16:55:22 -!- arseniiv has quit (Ping timeout: 260 seconds).
16:59:22 -!- arseniiv has joined.
17:16:27 -!- hanif has quit (Ping timeout: 276 seconds).
17:20:39 -!- hanif has joined.
17:23:43 -!- sprock has quit (Ping timeout: 252 seconds).
17:27:52 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:47:47 -!- velik has quit (Remote host closed the connection).
17:48:15 <nakilon> looks like for languages other than "en" wikidata can have no description
17:48:16 -!- velik has joined.
17:48:35 <nakilon> \wp-fi esolang
17:48:36 <velik> Esoteerinen ohjelmointikieli tai esolang on ohjelmointikieli, jotka on suunniteltu testaamaan ohjelmointikielen rakenteen rajoja. Yleensä tavoitteena on osoittaa erikoisia tapoja joilla systeemi voi olla Turing-täydellinen, eli kykenevä simuloimaan minkä tahansa muun tietokoneen tai ohjelman toimintaa. Esoteerisen ohjelmointikielen tarkoitus voi olla myös hauskuuttaa. Esimerkiksi ... https://fi.wikipedia.org/wiki/Esoteerinen_ohjelmointikieli
18:02:07 -!- dutch has quit (Quit: WeeChat 3.2.1).
18:09:03 -!- sprock has joined.
18:11:42 -!- Koen_ has quit (Remote host closed the connection).
18:18:19 <esolangs> [[Velik]] https://esolangs.org/w/index.php?diff=88073&oldid=88045 * Nakilon * (+432) added examples for \wp and \wa
18:20:59 -!- Koen_ has joined.
18:28:33 -!- sprock has quit (Ping timeout: 268 seconds).
18:30:45 -!- src has joined.
18:31:07 -!- hanif has quit (Quit: quit).
18:31:17 -!- riv has quit (Quit: Leaving).
18:34:18 -!- tromp has joined.
18:39:35 -!- riv has joined.
18:42:42 -!- sprock has joined.
18:48:59 -!- Koen_ has quit (Remote host closed the connection).
18:58:00 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:00:48 -!- velik has quit (Remote host closed the connection).
19:01:20 -!- velik has joined.
19:03:17 -!- tech_exorcist has quit (Quit: Goodbye).
19:12:35 -!- tromp has joined.
19:15:50 -!- riv has quit (Quit: Leaving).
19:17:35 -!- riv has joined.
19:20:58 <fizzie> `tervetuloa
19:21:01 <HackEso> Tervetuloa esoteeristen ohjelmointikielten suunnittelun ja käyttöönoton kansainväliseen keskukseen! Lisätietoa saat wikistämme: <https://esolangs.org/>. (Muu esoteerisuus: kokeile kanavaa #esoteric joko EFnet- tai Dalnet-verkossa.)
19:26:11 <nakilon> is it called suomi?
19:26:19 <nakilon> what is average word length?
19:27:00 -!- oerjan has joined.
19:48:01 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:52:41 <b_jonas> `? welcome.fi
19:52:43 <HackEso> Tervetuloa esoteeristen ohjelmointikielten suunnittelun ja käyttöönoton kansainväliseen keskukseen! Lisätietoa saat wikistämme: <https://esolangs.org/>. (Muu esoteerisuus: kokeile kanavaa #esoteric joko EFnet- tai Dalnet-verkossa.)
19:52:54 <b_jonas> nakilon: ^ the wisdom name that the command cats gives away the language
19:54:24 <nakilon> yeah I realise it's finnish, just wasn't sure that suomi is
19:54:44 <nakilon> is it the same or
19:56:48 -!- sprock has quit (Ping timeout: 265 seconds).
20:01:38 <oerjan> suomi is finnish for finnish hth
20:02:30 <nakilon> like Magyar?
20:02:35 <oerjan> precisely
20:02:42 <oerjan> or norsk
20:03:12 <oerjan> . o O ( or english )
20:03:26 -!- sprock has joined.
20:04:53 <b_jonas> ``` set -e; cd /hackenv/wisdom; cat welcome*
20:04:54 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) \ Velcume-a tu zee interneshunel hoob fur isutereec prugremmeeng lungooege-a deseegn und depluyment! Fur mure-a inffurmeshun, check oooot oooor veeki: <https://isulungs.oorg/>. (Fur zee oozeer keend ooff isutereeca, try #isutereec oon
20:04:56 <b_jonas> no
20:05:08 <nakilon> I wonder if "...sk" is related to suffix "...ск" in Russian
20:05:09 <b_jonas> ``` set -e; cd /hackenv/wisdom; ls -df welcome*
20:05:11 <HackEso> welcome \ welcome.bork \ welcome.de \ welcome.eo \ welcome.es \ welcome.fi \ welcome.fr \ welcome.is \ welcome.ja \ welcome.nb \ welcome.nl \ welcome.ru \ welcome.sv \ welcome.tr
20:05:37 <oerjan> nakilon: i wouldn't be surprised
20:05:56 <nakilon> "...ский" means something like "belonging to ...", and there are plenty of town names ending on "sk", "rsk", "nsk"
20:06:28 <nakilon> `welcome.ru
20:06:29 <HackEso> welcome.ru? No such file or directory
20:06:58 <nakilon> `? welcome.ru
20:06:59 <HackEso> ​Добро пожаловать в Международный центр по разработке и внедрению языков эзотерического программирования! Для получения дополнительной информации посетите wiki: <https://esolangs.org/>. (Для другого типа эзотеризма попробуйте #esoteric в EFnet или DALnet.)
20:07:07 <oerjan> i don't think we have a lot of such town names, but -sk is common suffix for "of nationality". russisk = russian, tysk = german, engelsk = english, svensk = swedish, japansk = japanese
20:07:19 <oerjan> *a common
20:07:31 <nakilon> why tysk? _Oo
20:07:57 <oerjan> nakilon: german in german is "deutsch" which is related
20:08:08 <oerjan> plus/minus a couple historical sound changes
20:10:37 <fizzie> German in Finnish is "saksa" (for the language) or "saksalainen" (for the nationality). Or "Saksa" for the country. Wonder where that's from.
20:10:42 <oerjan> -sk is also used for making adjectives from some other things.
20:10:47 <fizzie> "From Old Saxon Sahsa (“a Saxon, a Low German”), a tribe/people inhabiting northern Germany (not to be confused with modern Saxony." Oh.
20:11:12 <oerjan> Sachsen is still a german region (possibly state)
20:11:12 <nakilon> yeah, russisk = русский, japansk = японский; though not only about nationality but also for example, "belonging to programming" is "програмный", but "related to folks who are programmers" is "программистский"
20:12:22 <oerjan> we also add -isk to -ist, e.g. marxistisk
20:12:32 <nakilon> anglo-sakses were who settled the England is what we studied
20:12:43 <fizzie> We also make Sweden -> Ruotsi. "From archaic ruotsi (“Swede”), borrowed from Old Swedish *roþs- (“related to rowing”) (compare modern Swedish ro (“to row”)); related to Old Norse Roþrslandi (“the land of rowing”), older name of Roslagen from where much of the Swedish-speaking population on the west coast of Finland originates."
20:12:50 <fizzie> In other words, all our country names are wrong.
20:12:58 <oerjan> and i'm not sure whether that's strictly the same suffix or just how we borrow greek/latin -ic-
20:12:58 <nakilon> on lessons of "country study" https://translate.yandex.ru/?text=%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5&lang=ru-en
20:14:12 <nakilon> marxistisk / марксистский
20:14:45 <fizzie> And Russia -> Venäjä, "from Proto-Germanic *winidaz (“Slav”)". Clearly we can't manage to call any country by its proper name.
20:14:49 <nakilon> s/wrong/esoteric
20:15:02 <nakilon> wow
20:15:09 <oerjan> btw although tysk = german, germansk = germanic
20:15:13 <nakilon> am I Venajsk?
20:15:32 <oerjan> i don't think finnish uses -sk
20:15:46 <fizzie> If you're Russian, you'd be 'venäläinen'.
20:15:48 <oerjan> certainly not at the end of words
20:16:48 <oerjan> fizzie: ok now i need to know what you call norway
20:17:02 <fizzie> oerjan: Quite boringly, it's just "Norja".
20:17:06 <oerjan> darn
20:17:37 <nakilon> land of nords, I see
20:17:45 <fizzie> I think we must've asked the Swedes what your country should be called.
20:18:09 <nakilon> there were kids who loved to make up names for other kids
20:18:20 <oerjan> yeah i think the swedes write "Norge" like we do but pronounce it as if it were "Norje"
20:18:40 <oerjan> (they may do that with most g+e)
20:18:46 <fizzie> Svärje and Norje.
20:19:26 <nakilon> the je ja also reminds me ья ье
20:19:28 <oerjan> curiously for "Sverige" we pronounce it as "Svärje" too
20:19:45 <oerjan> but "Norge" has a hard g in norwegian
20:20:46 <nakilon> fizzie how do you call CHina?
20:21:36 <oerjan> (that's Kina in norwegian. the K is pronounced as a palatal fricative, almost but not quite same as the swedes do)
20:22:00 <nakilon> I wish I knew what is palatal fricative
20:22:42 -!- tromp has joined.
20:23:21 <nakilon> so it's probably something between "China" and "Китай"
20:24:32 <nakilon> oh google translate has audio
20:25:28 <oerjan> nakilon: i'd been led previously to believe that "хмельно́й" can have the х pronounced that way, but wiktionary's current IPA disagrees
20:25:40 <fizzie> "Kiina". I guess the further away it is, the more likely we're to adopt a name others have too.
20:26:05 <fizzie> Doesn't entirely explain Norway, who we do have a land border with. But that's up in the north where it's all frozen anyway.
20:26:10 <nakilon> Х is more dull than how google translate voiced your word
20:26:36 <nakilon> it's like ХЬ, bit there no words with such digram
20:27:08 <fizzie> Our "Kiina"'s k is just the voiceless velar plosive though.
20:27:09 <nakilon> *bigram
20:29:15 <oerjan> nakilon: the г in мягкий may be closer
20:29:22 <nakilon> oerjan I guess this is that sound lol https://ru.wiktionary.org/wiki/%D1%85%D0%B5%D1%80
20:29:33 <oerjan> (found it on top of https://en.wikipedia.org/wiki/Russian_phonology)
20:31:05 <nakilon> yeah, г sounds more like х if the next letter isn't vowel
20:32:15 <oerjan> nakilon: it's not just that it's like х but that х may also sometimes be palatalized if it's followed by a soft consonant.
20:32:17 <nakilon> in Ukrainian г never sounds like х and is a very recognizable sign of Ukrainian accent
20:32:33 <oerjan> (according to that wikipedia page which i've previously read)
20:35:06 <oerjan> nakilon: figures that swear words can break some of the phonology rules
20:35:20 <nakilon> still not sure what "palatalized" but in all usual uses of х and in хмельной sound appears deeper in your mouth and sounds dull, but in хер to make the 'e' soft (since it's not 'э') the sound starts closer to teeth
20:35:54 <nakilon> yeah, that's a swear word but not that хуй is dull, not like хер ..D
20:35:59 <oerjan> nakilon: palatilized is the linguistic word for what most russian "soft" consonants do
20:36:06 <oerjan> *a
20:36:34 <oerjan> it means closing the palate somewhat in the middle of the mouth
20:36:53 <nakilon> I guess I understand you if you mean those sounds that start like you are a snake ..D
20:38:01 <oerjan> i mean the sounds sometimes written with Ь following (+ a few "always soft" consonants.)
20:38:14 <nakilon> yep
20:38:34 <nakilon> though Ь also adds a short sound Й
20:38:44 <nakilon> like a transition
20:40:20 <nakilon> English speakers sometimes kind of add the Ь inappropriately, like they can't say "devochka", they say "dЬevochka"
20:40:40 <nakilon> can't join d with e for some reason
20:41:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:41:32 <nakilon> that's weird since they have words like "daemon" but idk why they do that
20:43:19 <oerjan> i mean Ь at the end of a word or before a consonant. in front of vowel you use a completely different set of vowel letters but i'm too lazy to paste all those
20:43:44 <nakilon> btw about country names -- we have every country named similar to English, but there is an exception about Germany that is "belonging to Germany" is "Nemeckiy"
20:44:17 <nakilon> hm
20:44:30 <oerjan> istr hungarian (magyar) for germany is Nemetország (possibly missing accents)
20:45:05 <oerjan> https://en.wiktionary.org/wiki/N%C3%A9metorsz%C3%A1g
20:45:11 <oerjan> missed one
20:45:31 <nakilon> heh, accent on the first vowel
20:45:40 <nakilon> we have it on 2nd
20:46:18 <nakilon> lol oerjan did you see the synonyms list for хер?
20:46:26 <nakilon> it's the whole page
20:46:42 <oerjan> assuming devochka is https://en.wiktionary.org/wiki/%D0%B4%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B0 it's supposedly a soft d there
20:47:04 -!- tromp has joined.
20:47:10 <nakilon> https://en.wiktionary.org/wiki/%D0%B4%D0%B5%D0%B2%D0%BE%D1%87%D0%BA%D0%B0 but yeah the same sound
20:48:03 <b_jonas> well if it's an "е" and it's in Russian (as opposed to eg. Ukranian) then it has to be a soft "д"
20:48:21 <b_jonas> (with exceptions, sure)
20:48:55 <oerjan> ah. russian has so many ways of making diminutives ("cute" version of words)
20:49:31 <oerjan> (also, i feel obligated to say i don't really know russian. i know four songs, that's about it.)
20:50:30 <b_jonas> I don't know russian either
20:51:10 <nakilon> it's like 300 ways to bypass the obscene language filter
20:51:13 <oerjan> <nakilon> heh, accent on the first vowel <-- hungarian accents are for length, not stress btw. (the stress is usually (always?) on the first vowel.)
20:51:30 <nakilon> and to be GTFOed in a funny way
20:54:36 <nakilon> I would remove 1/4 of that list though
20:54:50 <nakilon> someone just wanted it to be big
20:54:51 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
20:56:09 -!- sprock has quit (Ping timeout: 268 seconds).
21:15:34 -!- delta23 has quit (Quit: Leaving).
21:18:09 -!- Lord_of_Life has joined.
21:28:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:41:05 -!- tromp has joined.
21:42:49 -!- src has quit (Ping timeout: 252 seconds).
22:16:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:39:52 -!- sprock has joined.
22:55:10 <Melvar> Re incorrect country names: Apparently “Wales”, “Cornwall”, “Gaul”, “Wallonia”, and “Wallachia” are all related. And “walnut”. See, the Germanic *walhaz originally referred to a certain Celtic tribe, but became generalized to all Celts and then to any foreigner.
23:15:31 -!- simcop2387 has quit (Ping timeout: 268 seconds).
23:15:31 -!- perlbot has quit (Ping timeout: 268 seconds).
23:32:10 <nakilon> if shinh does not add rasel maybe I'll make some shitty analogue specifically for rasel
23:32:38 <nakilon> I could make auth using libera account
23:33:29 <nakilon> looks like there is ircv3 capability to see the privmsg author account so one could message velik to create his account and set or generate password
23:40:55 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88074&oldid=87931 * Corbin * (+149) /* Functors */ Floating-point instructions.
23:42:02 -!- arseniiv has quit (Ping timeout: 265 seconds).
23:42:39 <esolangs> [[Illegal Characters]] M https://esolangs.org/w/index.php?diff=88075&oldid=88064 * PythonshellDebugwindow * (+9) Stub
23:42:58 <oerjan> Melvar: huh TIL Gaul is not from Gallia
23:48:10 -!- oerjan has quit (Quit: Nite).
2021-09-16
00:12:51 <esolangs> [[User:Maikeru51]] N https://esolangs.org/w/index.php?oldid=88076 * Maikeru51 * (+118) Created page with "Amogus == Esolangs I am working on == When the Imposter is Sus Among Us+ == Esolangs I have finished == None right now"
00:14:05 <esolangs> [[User:Maikeru51]] M https://esolangs.org/w/index.php?diff=88077&oldid=88076 * Maikeru51 * (+2)
00:29:28 -!- simcop2387 has joined.
00:30:29 -!- perlbot has joined.
04:34:14 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88078&oldid=88074 * Corbin * (+50) Replace the subobject classifier with an internal Boolean algebra, downgrading from topoi to Cartesian closed categories.
06:49:16 -!- tromp has joined.
07:37:01 <esolangs> [[User:Zzo38/Programming languages with unusual features]] https://esolangs.org/w/index.php?diff=88079&oldid=87276 * Zzo38 * (+708)
07:43:23 -!- Sgeo has quit (Read error: Connection reset by peer).
08:00:38 <riv> https://mobile.twitter.com/AdamJKucharski/status/1438208628348100624
08:03:14 -!- hendursa1 has joined.
08:06:00 -!- hendursa2 has joined.
08:06:18 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:09:33 -!- hendursa1 has quit (Ping timeout: 276 seconds).
09:02:24 -!- Koen_ has joined.
09:07:26 -!- imode has quit (Ping timeout: 260 seconds).
09:19:49 <zzo38> What is it call if a programming language has only one interface for objects, but multiple implementations are possible?
10:00:49 -!- imode has joined.
10:10:02 <esolangs> [[++]] N https://esolangs.org/w/index.php?oldid=88080 * Gilbert189 * (+236) Created page with "++, or [removed - please be polite]++ is C++, but the letter "c" is banned. If one is found, the compiler will say that a "bad letter" is found, and fail to compile. == Examp..."
10:10:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:12:22 -!- wib_jonas has joined.
10:13:00 -!- dutch has joined.
10:13:49 <wib_jonas> fizzie: has the log collector stopped?
10:15:18 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=88081&oldid=88065 * Gilbert189 * (+71)
10:16:44 -!- tromp has joined.
10:21:58 <fizzie> Not as far as I know... at least your question appears at https://logs.esolangs.org/libera-esolangs/2021-09-16.html
10:24:11 <nakilon> I guess I have an idea how to make the RASEL golf server as secure as possible
10:24:24 <nakilon> i.e. there will be no way to fake your results or steal others' solutions
10:25:08 <nakilon> even if hacker would know some vulnerability in the web server
10:28:49 <nakilon> funny thing is that such security isn't implemented anywhere where people try to hire me on daily basis and I have to refuse because I have no clue in their website things
10:29:29 <fizzie> That does remind me, though, I have some metrics on the logs but not an alert (except for a black-box HTTP probe on the website, which I have a generic alert on), so I probably wouldn't notice it breaking until someone who logreads tells me.
10:30:11 <nakilon> b_jonas is your alert
10:31:21 <fizzie> There's a metric on the timestamp of the last message written to the logs, but that's a little hard to alert on, because it does sometimes get pretty quiet here for hours (https://zem.fi/tmp/esoirc.png). Maybe I could have one on just the IRC connection being up, though, and just assume the part where it writes the logs never breaks independently.
10:31:22 <nakilon> it's even smarter than an automated one -- it can ping you in IRC with random nicely made messages
10:32:03 <int-e> fungot can do that to... minus "nicely"
10:32:03 <fungot> int-e: i'm switching kb layouts every 5 minutes :-p besides, i don't think we will most probably be taken fnord of water. or hcl.
10:32:05 <wib_jonas> huh... interesting, now it shows everything recent
10:33:04 <wib_jonas> me too, fungot, for writing emails in Hungarian
10:33:04 <fungot> wib_jonas: who is dave winer?) that mike sperber is working on making xml pages for udage. i think you mean
10:33:20 <nakilon> bot with kb layout switching is cool
10:33:40 <fizzie> I just get badly formatted emails from the automation as it stands.
10:37:24 -!- tech_exorcist has joined.
10:39:19 <fizzie> Maybe I could make the 'esolangs' bot relay any alerts about the 'esolangs' bot not working to IRC.
10:41:42 <fizzie> More rationally, fungot could tell me about the esolangs bot being in trouble, while the esolangs bot could automatically let me know whenever fungot's missing for an extended period of time. But then I'd need to implement receiving Alertmanager webhooks in Befunge somehow.
10:41:43 <fungot> fizzie: invalid syntax 7(1) ( define ( foo a b) will expand to the original architecture, and especially in the soviet union. under his leadership, mass purges and repression resulted in the death of little fnord.
10:42:37 <nakilon> what is Alertmanager
10:42:58 <nakilon> lmao his last message
10:43:30 <fizzie> It's a.. component, or sibling, or sidekick, not sure what to call it, of the Prometheus monitoring thing.
10:44:44 <nakilon> btw "soviet" is another example of unneded Ь
10:45:36 -!- Koen_ has quit (Remote host closed the connection).
10:45:41 <fizzie> But the built-in integrations aren't all that useful to me; it does email (fair enough, that's what I use), generic webhooks (also reasonable), and then a bunch of systems (PagerDuty, Pushover, OpsGenie, Slack, VictorOps, WeChat) that I've mostly never even heard of (except Slack).
10:46:18 <fizzie> (Of course there's an external IRC relay, probably several.)
10:46:25 <nakilon> wechat isn't something familiar
10:46:32 <nakilon> *is
10:46:40 <fizzie> I think I've heard that name too, yeah.
10:48:46 <nakilon> Slack was a nice way to create "own server" with channels named like those where you are banned in other networks, but they started either removing features or moving them to paid plan do I've lost interest
10:48:59 <nakilon> *so
10:49:31 <nakilon> also some weird design decisions and now they broke the input field so I can't type `` and `````` it's all glitching
10:49:40 <fizzie> As for fungot doing it, that might be a little challenging... as far as I know, there's fundamentally no way to do a non-blocking read (or accept) on a socket using the SOCK fingerprint that wouldn't block the entire interpreter. Vorpal should've finished that ATHR (asynchronous, pre-emptable threads) fingerprint.
10:49:40 <fungot> fizzie: second time someone complains about unwrapped email.'
10:49:55 <nakilon> I mean you can start ``` and you can't stop it, there is no way out until you send the message
10:50:18 <nakilon> or something like that, I don't remember
10:51:02 <nakilon> fizzie funge-98 threads? )
10:51:18 <nakilon> or are they blocking too
10:52:15 <fizzie> They're synchronous, each IP advances only when the others do.
10:52:22 <fizzie> That's what ATHR was supposed to do differently.
10:53:44 <wib_jonas> fizzie: hmm. that sounds like you might have to implement the async stuff if you can modify the interpreter
10:57:49 -!- Koen_ has joined.
11:02:20 <wib_jonas> or put a wrapper around the befunge program that provides an API to do the async stuff through commands on a sync channel
11:05:41 -!- Everything has left.
11:06:22 <nakilon> I would rather split fungot in half on one instance of befunge interpreter that does the sock thing and another one that consumes the ourput of non-befunge program that joins the first half with arbitrary other sync sources
11:06:23 <fungot> nakilon: this is quite a pain... maybe i'll rewrite it... what was it's name again....
11:06:42 <nakilon> *async
11:06:58 <nakilon> fungot are you gonna rewrite yourself?
11:06:58 <fungot> nakilon: we have... 3. is also 4 steps... what fun!!! eheheheheheeh
11:07:08 <nakilon> damn he already started I guess
11:10:18 <fizzie> I did have it connect through a generic IRC bouncer at one point earlier, but that somehow felt less "pure".
11:10:44 <fizzie> It's still through socat right now, though, for TLS + CertFP.
11:11:18 <fizzie> Which makes using a TCP socket over the standard input/output streams somewhat pointless.
11:26:16 -!- imode has quit (Ping timeout: 265 seconds).
11:27:16 -!- craigoverend[m] has changed nick to craigo[m].
12:41:01 -!- src has joined.
12:54:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:12:41 -!- hendursa2 has quit (Quit: hendursa2).
13:13:28 -!- hendursaga has joined.
13:31:30 -!- src has quit (Quit: Leaving).
13:31:50 -!- Sgeo has joined.
13:37:06 -!- tromp has joined.
14:01:57 -!- arseniiv has joined.
14:08:20 -!- Koen_ has quit (Remote host closed the connection).
14:16:22 -!- Koen_ has joined.
14:30:44 -!- arseniiv_ has joined.
14:33:47 -!- arseniiv has quit (Ping timeout: 265 seconds).
14:35:46 <Sgeo> `olist 1244
14:35:48 <HackEso> olist https://www.giantitp.com/comics/oots1244.html: shachaf oerjan Sgeo FireFly boily nortti b_jonas
15:22:09 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:54:08 -!- spruit11_ has joined.
15:57:36 -!- spruit11 has quit (Ping timeout: 268 seconds).
16:17:05 -!- tromp has joined.
16:17:26 -!- wib_jonas has quit (Quit: Client closed).
16:31:29 <nakilon> thelounge concatenates URL with ':' and it's 404
16:35:39 -!- delta23 has joined.
16:55:47 -!- iovoid has quit (Remote host closed the connection).
16:57:02 -!- iovoid has joined.
17:04:15 -!- imode has joined.
17:15:41 -!- tech_exorcist has quit (Quit: thunderstorm, may not reconnect today).
17:55:47 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:00:53 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88082&oldid=88078 * Corbin * (+29) /* Boolean algebra */ Document `pick` combinator.
18:02:42 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88083&oldid=88082 * Corbin * (+22) /* Floating Point */ Was missing the `f-lt` combinator.
18:38:32 <Sgeo> HexChat does that too :(
19:02:38 -!- Koen_ has quit (Remote host closed the connection).
19:09:35 -!- Koen_ has joined.
19:52:53 -!- tromp has joined.
19:54:26 -!- tromp has quit (Client Quit).
19:58:16 -!- Koen_ has quit (Quit: Leaving...).
20:06:08 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
20:07:08 -!- Lord_of_Life has joined.
20:12:58 -!- tromp has joined.
20:15:37 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
20:16:37 -!- Lord_of_Life has joined.
20:26:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:55:29 -!- tromp has joined.
21:03:28 -!- Lord_of_Life_ has joined.
21:04:10 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
21:06:14 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:18:23 <Sgeo> `sed
21:18:24 <HackEso> Usage: /bin/sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ --debug \ annotate program execution \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script-file to the commands to be executed \ --f
21:18:38 <Sgeo> `cat bin/olist
21:18:39 <HackEso> cat: bin/olist: No such file or directory
21:18:56 <Sgeo> Hmm I don't want to ping people unnecessaril
21:18:58 <Sgeo> `help
21:18:58 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
21:19:37 <b_jonas> `? olist
21:19:38 <HackEso> olist is update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
21:19:43 <b_jonas> and yes, cat that in private message
21:22:25 -!- Kicker18 has joined.
21:22:57 <Sgeo> echo -n "olist${n:+ }$n: "
21:23:16 -!- Kicker18 has left.
21:23:39 <Sgeo> I don't understand that syntax, the ${n:+ }
21:30:41 <b_jonas> Sgeo: that expands to a space if n is defined, or nothing if n is not defined. normally it's non-empty because you're supposed to call olist with a number, but not everyone actually calls list commands with a number or url.
21:31:30 <b_jonas> plus this is standardized among lists, so much that I think there's a mklist or similar command to make a new *list command
21:34:08 <b_jonas> ``` head -n2 /hackenv/bin/smlist
21:34:09 <HackEso> echo -n "$(basename "$0")${@:+ }$@: "; tail -n+2 "$0" | xargs; exit \ shachaf
21:34:10 <b_jonas> ``` head -n2 /hackenv/bin/olist
21:34:11 <HackEso> ​#!/bin/bash \ set -e; n=$*; [[ $n = +([0-9]) ]] && n=https://www.giantitp.com/comics/oots$n.html; echo -n "olist${n:+ }$n: "; tail -n+3 "$0" | xargs; exit
21:34:18 <velik> thread error
21:35:09 <b_jonas> ah yes, they're not exactly the same
21:35:19 <b_jonas> because I changed olist specifically
21:35:27 <b_jonas> but that part is present in the other lists
21:52:36 <fizzie> I guess those terminals are correct, and ':' *is* allowed to appear in a path segment unescaped. As usual, it's a little subtle, but in RFC3986 terms, ':' is in the "gen-delims" set, so it should (but only should) be percent-encoded "unless -- specifically allowed by the URI scheme to represent data in that component", but must be interpreted as itself if it has no delimiting role. A hierarchical
21:52:38 <fizzie> URI's path component, however, is explicitly allowed to contain a ':', except in the special case of the first segment of a relative-path reference. Or something along those lines.
21:57:20 <zzo38> MediaWiki URLs will often contain a colon (other than the one to delimit the scheme), and I have not had a problem with it when using prefix ./ to work
22:01:23 -!- oerjan has joined.
22:05:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:14:31 <oerjan> `slbd olist//s,\$n:,<$n>:,
23:14:37 <HackEso> olist//#!/bin/bash \ set -e; n=$*; [[ $n = +([0-9]) ]] && n=https://www.giantitp.com/comics/oots$n.html; echo -n "olist${n:+ }<$n>: "; tail -n+3 "$0" | xargs; exit \ shachaf \ oerjan \ Sgeo \ FireFly \ boily \ nortti \ b_jonas
23:14:40 <oerjan> oops
23:14:44 <velik> thread error
23:14:50 <oerjan> oops
23:15:20 <oerjan> hm velik may not be bot-safe.
23:15:22 <Sgeo> What's slbd?
23:15:36 <oerjan> `? slbd
23:15:38 <HackEso> slbd? ¯\(°​_o)/¯
23:15:41 <oerjan> `? sled
23:15:43 <HackEso> ​`sled <filename>//<sed script>
23:15:59 <oerjan> like sled, but in bin/
23:16:08 <oerjan> or ../bin/ nowadays
23:38:25 <fizzie> It also very importantly changes the sled error message, just like slwd.
23:38:31 <fizzie> `sled nosuchfile//
23:38:32 <HackEso> Rosebud!
23:38:34 <fizzie> `slwd nosuchfile//
23:38:35 <HackEso> Roswbud!
23:38:38 <fizzie> `slbd nosuchfile//
23:38:39 <HackEso> Rosbbud!
23:39:05 <fizzie> That sort of attention to detail is why HackEso command developers get paid the big bucks.
23:47:36 <oerjan> some say it's big bucks, others think it's just stagflation
23:48:35 <shachaf> Wait, I want a big buck.
23:49:11 <shachaf> `? shaventions
23:49:13 <HackEso> Shaventions include: before/now/lastfiles, culprits, hog/{h,d}oag, le//rn, tmp/, mk/mkx, {s,p}led/sedlast, spore/spam/speek/sport/1/4/5, edit. Taneb did not invent them yet.
23:50:25 <shachaf> burma-shaventions
2021-09-17
00:06:22 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88084&oldid=88083 * Corbin * (+355) /* Functors */ Remove formerly-primitive functors and explain how to define custom functors.
00:12:16 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
00:33:17 -!- oerjan has quit (Quit: Nite).
01:10:39 -!- joast has quit (Quit: Leaving.).
01:16:58 -!- joast has joined.
01:35:11 -!- delta23_ has joined.
01:36:01 -!- delta23 has quit (Ping timeout: 252 seconds).
01:36:09 -!- delta23_ has changed nick to delta23.
01:49:56 -!- delta23 has quit (Remote host closed the connection).
01:50:20 -!- delta23 has joined.
02:00:00 -!- delta23 has quit (Remote host closed the connection).
02:00:43 -!- delta23 has joined.
02:17:01 <zzo38> What I can think of for when you want to insert one item in a proper sorted position in a double linked list can be: you can start on one end, or you can start on both ends, or you can start on the middle.
02:18:50 <zzo38> Is there a better way?
02:43:31 -!- op_4 has quit (Ping timeout: 252 seconds).
02:47:32 <fizzie> Sometimes people do that thing where they keep a pointer to the single most recently added (or used) node, so that when they need to find an item (or a place) in the list, they can pick as start points either one of the ends or that most recently added item, depending on which is "closest" (assuming that can be measured). The thinking is, often things that get added close to each other are
02:47:34 <fizzie> related.
02:49:54 <zzo38> OK, that make sense
03:04:24 -!- delta23 has quit (Ping timeout: 265 seconds).
03:10:35 -!- Bowserinator has quit (Ping timeout: 260 seconds).
03:11:40 -!- Bowserinator has joined.
03:12:26 <shachaf> By the way, what do you do about the fact that "naively" inserting into a B-tree in sorted order produces a maximal-space (every node half-full) tree?
03:12:51 <shachaf> I've seen people address it with a special case behavior for inserting at the very last element of the tree.
03:13:26 <shachaf> But I'd like something more general that can also address inserting in reversed order, and probably fancier patterns.
03:22:00 -!- hendursaga has quit (Ping timeout: 276 seconds).
03:22:05 -!- hendursa1 has joined.
03:32:37 -!- delta23 has joined.
03:32:39 <zzo38> The latest issue of 2600 mentions post-quantum cryptography, and they mention ambiguous keys. It says: "Block cipher systems which have ambiguous keys generally have the property that the key size is larger than the block size."
03:33:37 <zzo38> Well, I think, if you use a hash function in CFB, OFB, or CTR mode, then the key can be as longer as you want to be, or maybe even combining these modes
03:35:48 <zzo38> They also mention putting random data in a part of the block before encryption. I also had a similar idea but my idea was to use irregular and misaligned random padding, including codes (part of the text before being encrypted) to detect this.
03:40:28 <zzo38> Depending on what requirements, there are other possibilities such as to somehow shuffle the message before encrypting it (but after applying the random padding and codes), in a way which can be reversed
03:43:54 -!- sebbu has quit (Quit: Quitte).
04:37:52 -!- ecs has quit (Remote host closed the connection).
04:38:09 <esolangs> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=88085&oldid=87637 * Pipythonmc * (+43) /* Self-interpreters */ Fix dead link (changed to wayback machine snapshot)
04:51:15 -!- ecs has joined.
04:55:47 -!- sebbu has joined.
05:16:22 <esolangs> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=88086&oldid=88085 * Pipythonmc * (+42) /* External resources */ Fix broken link (change to wayback archived page)
05:45:34 -!- imode has quit (Ping timeout: 252 seconds).
06:13:22 -!- tromp has joined.
06:23:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:48:52 -!- tromp has joined.
07:05:11 -!- Sgeo has quit (Read error: Connection reset by peer).
07:05:25 -!- Sgeo has joined.
07:14:27 -!- delta23 has quit (Remote host closed the connection).
07:14:46 -!- delta23 has joined.
07:29:18 -!- Sgeo has quit (Read error: Connection reset by peer).
07:52:28 -!- Trieste has joined.
08:05:55 -!- hendursaga has joined.
08:09:18 -!- hendursa1 has quit (Ping timeout: 276 seconds).
08:19:42 -!- imode has joined.
08:55:05 -!- Koen has joined.
09:09:11 -!- riv has quit (Quit: Leaving).
09:10:36 -!- riv has joined.
09:18:00 <b_jonas> oh great, they're back under a slightly different name
09:18:19 <b_jonas> the date md5 checksum guy that is
09:20:25 <riv> omg
09:20:29 <int-e> md5 checksum... oh the programming puzzle stuff
09:33:49 <b_jonas> int-e: yes. the spec as quoted doesn't explicitly state md5, but it gives a full checksum and there's a matching solution if you use md5 so I assume they just left out that part
09:36:02 -!- imode has quit (Ping timeout: 260 seconds).
09:36:22 <b_jonas> I have a weird idea. you know these modern language models that the AI research folks are experimenting with, like GPT-2 or the ones that generate faces or dog pictures? you could use those to make the modern equivalent of a Chef/Piet style language. take a model and make sure it can be decoded then encoded losslessly by throwing in an arithmetic coder if necessary, write your program in a golfing
09:36:28 <b_jonas> language and *decode* it with the model to get your actual source code, bang you have an esolang that represents programs as English text or machine-generated dog pictures.
09:37:37 <b_jonas> for #esolangs purposes, we probably have to use one of fungоt's (or words's) models, since they've been stable for years and widely used so can be considered canonical. then we'd get a programming language where the source code looks like a European parliament speech or an IRC conversation about Scheme
09:38:52 <int-e> b_jonas: eh I'm just glad they (apparently) decided that #esolangs isn't for them
09:40:37 <b_jonas> int-e: possible, but I wouldn't be so hasty in that conclusion. they may just have learned not to ask the same question on many channels at the same time, so that they can continue saying the "my solution in <other language> is" thing with higher probability
09:40:54 <int-e> the language model thing... feels squishy (eww).
09:41:23 <int-e> true, social engineering is hard
09:42:18 <b_jonas> if you don't want anything modern, I could use my old steganography thing https://www.perlmonks.com/?node_id=877696 , to have an esolang where your source code can look like your favourite text, and only the whitespace in the source code matters for the actual program meaning
09:45:41 <int-e> oh another thought... aren't you just reinventing copilot ;-)
09:45:57 <b_jonas> you could even train a model on corporate style Java programs, or programs on github, or code on StackOverflow, and use that model to make a language whose source code looks like Java. of course there are easier and more practical ways to make a language that looks like Java.
09:46:02 <b_jonas> int-e: yeah, possible\
09:46:51 <int-e> My issue is, I prefer things to have a clear specification. Putting a NN in the pipeline utterly destroys that property.
09:47:53 <b_jonas> int-e: it doesn't need to be a NN. fungot's models don't use an NN.
09:47:53 <fungot> b_jonas: ( just as the important thing here is that i'm trying to
09:48:10 <int-e> It's bad enough that "real" programming language specifications are ludicrously big.
09:48:34 <b_jonas> int-e: but in that case, I point again to https://www.perlmonks.com/?node_id=877696 , which does have a simple specification, though it's not quite obvious what it is because I deliberately wrote the interpreter is an obfuscated style
09:48:55 <fizzie> fungot: Wait a sec, what exactly are you trying to use a neural net for?
09:48:56 <fungot> fizzie: some find them interesting and educational, and i've clearly gone loopy.
09:49:10 <fizzie> I can't argue with that.
09:49:14 <b_jonas> (also it's inefficient for long source code)
09:49:28 <int-e> (Actually, I have C and C++ in mind in particular... Java too... ECMAscript is noticably shorter but growing. How are the newcomers like Rust doing on that front?)
09:49:47 <b_jonas> int-e: Rust is no exception, it's growing too
09:50:35 <int-e> that was an excellent reply, fungot
09:50:36 <fungot> int-e: yet k is called with any argument, which is an sxml-based thumbnail gallery script that does that
09:50:37 <b_jonas> technically there's also my own model that makes fake (and sometimes accidentally real) town names in Hungary, but I can't really use that because I wrote it for work
09:51:14 <fizzie> https://golang.org/ref/spec is pretty reasonable lengthwise, I've always thought.
09:51:25 <int-e> wtf is sxml *googles* oh must be from the scheme channel?
09:53:15 <int-e> (I've certainly seen SXML before, it just never seemed relevant.)
10:16:45 * Taneb hello
10:50:33 -!- Koen has quit (Remote host closed the connection).
10:52:02 -!- Koen has joined.
10:57:06 -!- wib_jonas has joined.
10:59:25 <wib_jonas> what I said is actually a straightforward application of Shannon's theorem, which tells us that if you want to encode codegolf problems to food recipes, you don't need to have DMM's double domain specific insights on how the concepts of programming map to the concept of cooking (eg. variables to mixing bowls), you can get the same asymptotic
10:59:25 <wib_jonas> density if you make an encoder from codegolf problems to coinflip sequences, and separately make a decoder from coinflip sequences to food recipes
11:00:02 <wib_jonas> that doesn't count as modern as esolangs go (though may count as modern as mathematics goes)
11:07:01 <wib_jonas> by the way, as for modern mathematics, have you noticed how on the list of Hilbert's problems from 1900, there's the one about diophantic equations which asks about computability, even though computability or algorithms weren't defined until Church–Turing invented them in 1930–1936?
11:08:17 -!- leah2 has quit (Ping timeout: 250 seconds).
11:08:31 <riv> that's interesting
11:08:58 <riv> of course the notion of a method to solve things that didn't require extra insights would have been known
11:12:04 <wib_jonas> that kind of thing is hardly unique of course, Gauss–Bolyai–Lobačevskij in the 1830s tried to figure out if Euclid's parallel postulate is independent from the rest of the axioms in the plane, and Beltrami–Klein proved that it is independent around 1860, but people didn't actually know how to work with mathematical proofs from a precise
11:12:04 <wib_jonas> axiom system until Frege figured it out around 1980;
11:12:14 <wib_jonas> not to mention all the things that eventually Taneb invented
11:12:19 <wib_jonas> `? tanebventions/math
11:12:21 <HackEso> tanebventions/math? ¯\(°​_o)/¯
11:12:24 <wib_jonas> `? tanebventions
11:12:26 <HackEso> Tanebventions include necessity, Go, submarine jousting, Fueue, the universe, metar, sand, dragons, persistence, the BBC, _46bit, progress, sanity, the hug, Italian, the grace period, the limerick, ruin, and this sentence. See also tanebventions: maths or tanebventions: foods. He never invents anything involving sex.
11:12:36 <wib_jonas> `? tanebventions: maths
11:12:37 <HackEso> Mathematical tanebventions include D-modules, Chu spaces, the torus, Stephen Wolfram, Klein bottles, string diagrams, linear logic, the reals, Lambek's lemma, Curry's paradox, Stone spaces, algebraic geometry, locales, and histograms.
11:14:33 <wib_jonas> mathematicians tried to use real numbers even before Taneb invented them
11:15:30 <wib_jonas> `? kayak polo
11:15:32 <HackEso> kayak polo? ¯\(°​_o)/¯
11:15:47 -!- tech_exorcist has joined.
11:27:57 -!- leah2 has joined.
11:50:23 -!- arseniiv_ has joined.
11:59:23 <int-e> plausible idea
12:05:28 <nakilon> 02:14:37 <HackEso> olist//#!/bin/bash \ set -e; n=$*; [[ $n = +([0-9]) ]]
12:05:35 <velik> thread error
12:05:53 <nakilon> this is exactly why I did [wiki ...] and not [[...]]
12:05:57 <nakilon> _--
12:07:20 <nakilon> 00:34:13 <velik> The requested page title contains invalid characters: "[".
12:07:41 <nakilon> I'll catch it later
12:12:02 <int-e> Evil, GG, evil. How am I supposed to focus on that statue's face...
12:14:53 <nakilon> oh btw, guys
12:15:20 <nakilon> I'm imagining the website for RASEL golf and kind of solved most of the security but
12:17:04 <nakilon> I don't understand how to prevent that hacker hacks into my webserver and can now send his own solutions to the interpreter server pretending he's another user
12:18:29 <nakilon> 2FA via IRC bot would be too tedious for user experience
12:18:54 <wib_jonas> um
12:19:08 <wib_jonas> does that bot just react to [[double brackets]] ?
12:19:09 <nakilon> and delayed, since velik isn't "listening" to requests anyway
12:19:10 <velik> https://esolangs.org/wiki/Patternfuck
12:19:18 <wib_jonas> yes it does. that's probably not a very good idea.
12:19:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:19:29 <nakilon> lol it was your idea
12:19:30 <wib_jonas> how about [[double opening] bracket with] separate single closing?
12:19:34 <wib_jonas> my idea? now ay
12:19:45 <nakilon> then another guy said the same so I made it finally
12:20:32 <nakilon> idk how to search in channel logs but it must be somewhere in the first day when the [wiki ...] was implemented
12:20:59 <fizzie> I just said [[Brainfuck]] is how we usually denote wiki links.
12:21:00 <velik> https://esolangs.org/wiki/Brainfuck
12:21:10 <int-e> it's kind of lucky that [[...]] and [...] do the same thing in Brainfuck so the former doesn't usually come up in that context.
12:21:10 <fizzie> And then someone else did re-suggest it later on.
12:21:41 <fizzie> I think I was imagining it to work with [[Foo]] only for exact title matches though, and be silent when not.
12:21:42 <nakilon> maybe
12:21:42 <velik> https://esolangs.org/wiki/Foo
12:21:56 <fizzie> If you want to implement it that way, be my guest. :) And then [wiki ...] can be a general search.
12:22:28 <fizzie> Of course we _would_ have a page titled "Foo".
12:23:38 <wib_jonas> nakilon: I said that even the bot reacting to [wiki: inside the line is a bad idea], and I suggest that the bot should only react if there's an invocation sequence right at the *start* of the message
12:23:59 <fizzie> The two ends of the spectrum, I guess.
12:24:11 <wib_jonas> nakilon: this lets us avoid botloops by bots putting something at the start of the line, like a space or a control-O or whatever that was, so that it doesn't match any bot invocation sequence
12:24:38 <wib_jonas> and yes, fungоt goes against this rule, and it gets a pass, life isn't fair
12:25:14 <nakilon> this particular reply replies only with URLs so it's harder to make a bot loop unless you put fungot in it and teach fungot to do [[]]
12:25:14 <fungot> nakilon: i was busy dying with a fever! :)
12:25:20 <velik> thread error
12:25:44 <nakilon> woah, broke the empty query somehow
12:25:56 <int-e> hmm [[ꙮ]]
12:25:57 <velik> https://esolangs.org/wiki/1CP%3D1ICL
12:27:18 <int-e> Oh I see, it's because that article actually contains the letter ꙮ.
12:27:26 <fizzie> Heh, Chrome's find-on-page search highlights both ꙮ and ꙩ when I search for ꙮ.
12:27:46 <fizzie> `unidecode ꙮꙩ
12:27:47 <HackEso> ​[U+A66E CYRILLIC LETTER MULTIOCULAR O] [U+A669 CYRILLIC SMALL LETTER MONOCULAR O]
12:28:02 <fizzie> "Close enough."
12:28:10 <nakilon> case insensitivity
12:28:11 <wib_jonas> nakilon: yes, it's not easy to get a botloop with just the bots we have now, but surely you've seen those very annoying title-printer bots that try to retrieve any http url they see even in the middle of the line, and can imagine how that together with your bot can cause a loop
12:28:29 <int-e> right, if you squint, closing 6 of your 7 eyes
12:29:07 <wib_jonas> and yes, I know that some of the wikimedia channels have a bot that reacts to [[double square brackets]] and outputs a URL to the article, and those are a bad idea too
12:29:08 <velik> https://esolangs.org/wiki/Roco
12:29:28 <nakilon> lol
12:30:01 <wib_jonas> I have no problem with a command to search on the wiki, but use an invocation prefix for that
12:30:12 <int-e> [[pandemonium]]
12:30:13 <wib_jonas> similarly we have a command to retrieve a URL and get its title but it uses a prefix
12:30:22 <wib_jonas> perlbot get https://esolangs.org/wiki/Roco
12:30:25 <perlbot> wib_jonas: Roco - Esolang : RocoFrom EsolangJump to navigation Jump to searchRoco is programming language using a form of coroutines, designed by Lode Vandevenne in 2007. The coroutines are very basic, they have no input or output parameters, and their instruction pointer is never copied or reset. If a coroutine doesn't call ("ca" or "ac") or yield ("yi") an... [Output truncated. http://perl.bot/p/aujzqv ]
12:30:27 <nakilon> but there is already a search via \wiki
12:30:49 <nakilon> then I'll leave the search only for \wiki
12:30:51 <int-e> Pfft, no pandemonium? I'm disappointed.
12:30:55 <wib_jonas> nakilon: thank you
12:30:57 <nakilon> and that would do exact match
12:31:02 <wib_jonas> \wiki double square brackets
12:31:03 <velik> nothing was found
12:31:12 <nakilon> _Oo
12:31:28 <int-e> arguably the semantics of those two are the wrong way around
12:31:40 <int-e> \wiki is a deliberate command so it can search wide
12:31:58 <int-e> [[...]] is a casual quote so it should search narrowly
12:32:02 <nakilon> \wiki roco
12:32:03 <velik> Roco is programming language using a form of coroutines, designed by Lode Vandevenne in 2007. The coroutines are very basic, they have no input or output parameters, and their instruction pointer is never copied or reset. If a coroutine doesn't call ("ca" or "ac") or yield ("yi") another coroutine, it simply loops forever: if the instruction pointer reaches the end of a coroutine, it goes back to its beginning an... https://esolangs.org/wiki/Roco
12:32:24 <nakilon> lol perlbot's "jump to navigation"
12:32:37 -!- riv has quit (Quit: Leaving).
12:34:55 -!- riv has joined.
12:37:02 <int-e> Oh, a busy beaver game... https://www.gog.com/game/timberborn (scnr).
12:42:49 <nakilon> looks like Towns but with water physics
12:46:14 <wib_jonas> https://esolangs.org/wiki/Brainfuck/w/index.php%3Ftitle%3DTalk:Brainfuck/index.php what the heck
12:46:35 <wib_jonas> "a language invented in a newly-awaken stupor" ok fair
12:50:09 <int-e> nakilon: yeah it looks like an ordinary game... I'm not buying it. Just couldn't resist the BB connection.
13:04:48 <wib_jonas> fact macro wikisearch is {eval ($r,)=split" ",{quote d {get {eval use URI;use URI::QueryParam;$o=URI->new("https://esolangs.org/w/index.php?title=Special%3ASearch&fulltext=1"); $o->query_param("search",{arg d});"$o"} //*[@class='mw-search-exists'or@class='mw-search-result-heading' ]//a/@href}};$r=~m(^/)?"https://esolangs.org$r":"null:"}
13:05:04 <wib_jonas> wikisearch beaver
13:05:08 <wib_jonas> \wiki beaver
13:05:10 <velik> The goal: given a program length, find the brainfuck program of that length that calls the . command the greatest (finite) number of times. https://esolangs.org/wiki/BF_busy_beaver
13:05:14 <wib_jonas> perlbot wikisearch beaver
13:05:14 <perlbot> wib_jonas: No factoid found. Did you mean one of these: [who's jeremy]
13:05:20 <wib_jonas> perlbot fact macro wikisearch is {eval ($r,)=split" ",{quote d {get {eval use URI;use URI::QueryParam;$o=URI->new("https://esolangs.org/w/index.php?title=Special%3ASearch&fulltext=1"); $o->query_param("search",{arg d});"$o"} //*[@class='mw-search-exists'or@class='mw-search-result-heading' ]//a/@href}};$r=~m(^/)?"https://esolangs.org$r":"null:"}
13:05:20 <perlbot> wib_jonas: Stored wikisearch is {eval ($r,)=split" ",{quote d {get {eval use URI;use URI::QueryParam;$o=URI->new("https://esolangs.org/w/index.php?title=Special%3ASearch&fulltext=1"); $o->query_param("search",{arg d});"$o"} //*[@class='mw-search-exists'or@class='mw-search-result-heading' ]//a/@href}};$r=~m(^/)?"https://esolangs.org$r":"null:"}
13:05:23 <wib_jonas> perlbot wikisearch beaver
13:05:27 <perlbot> wib_jonas: https://esolangs.org/wiki/BF_busy_beaver
13:05:46 <wib_jonas> there.
13:06:08 <wib_jonas> programmable bots can do everything custom bots can, it's just much harder to implement the commands
13:06:46 -!- Koen has quit (Remote host closed the connection).
13:08:35 <nakilon> https://www.theguardian.com/technology/2021/sep/16/home-computing-pioneer-sir-clive-sinclair-dies-aged-81
13:09:49 -!- tromp has joined.
13:10:24 <nakilon> can you add a not yet installed third-party library to perlbot with those commands?
13:10:36 <nakilon> since velik uses gem Infoboxer
13:10:56 <nakilon> to parse wiki properly
13:11:10 <wib_jonas> nakilon: you could if it's written in perl so you can run it in the eval sandbox
13:12:45 <wib_jonas> perlbot eval system(q[ruby -e'14.times{|k|p k}']) # doesn't even really need to be written in perl, you just need a suitable perl wrapper
13:12:47 <perlbot> wib_jonas: 31
13:13:49 <wib_jonas> why does that print 31?
13:14:19 <wib_jonas> ah, probably there's no ruby installed
13:14:31 -!- tech_exorcist has quit (Ping timeout: 252 seconds).
13:15:21 <wib_jonas> eval system(q[awk 'BEGIN{for(k=0;k<14;k++){printf("%s ",k)}}'])||""
13:15:29 <wib_jonas> perlbot eval system(q[awk 'BEGIN{for(k=0;k<14;k++){printf("%s ",k)}}'])||""
13:15:31 <perlbot> wib_jonas: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
13:15:37 <wib_jonas> that then
13:15:45 <wib_jonas> can be written in awk or anything you can run in its sandbox
13:16:27 <nakilon> the whole library or at least a relevant piece of it would take day(s) to extract and a hundred of messages to eval
13:17:04 <nakilon> hundred even in case you've already golfed it all
13:17:21 <wib_jonas> nakilon: no, you don't have to send it through IRC
13:17:40 <wib_jonas> nakilon: you can download it from an external url, sort of like when we download things to hackeso, though the syntax for this is not obvious at all
13:17:49 <wib_jonas> or you can upload it through perlbot's web interface
13:18:36 <nakilon> so it's just more complicated way of building
13:27:37 <wib_jonas> or you could try to ask simcop to help, just like you can ask fizzie to install stuff to HackEso since that's sometimes easier than installing inside the sandbox, especially if there's a package in the debian version that HackEso's sandbox uses
13:33:25 <fizzie> Oh, I should probably upgrade that from buster to bullseye at some point.
13:35:56 <wib_jonas> sure, and I should upgrade my home computer. it will happen within months.
13:44:31 -!- Sgeo has joined.
14:08:46 -!- tech_exorcist has joined.
14:24:36 -!- Koen has joined.
14:27:30 <nakilon> I would upgrade Windows only for WSL if I was coding on it
14:29:16 <nakilon> and I'll probably update macOS when this macbook explode sinceit's already getting spherical
14:31:18 -!- Koen has quit (Remote host closed the connection).
14:32:45 <wib_jonas> nakilon: spherical as in https://xkcd.com/1422/
14:34:56 <nakilon> yeah smth like that
14:35:10 <fizzie> The test phone on my desk at the office (that had spent the last 1+ years waiting on the "allow debugging from this host?" prompt) had gone slightly spherical by the time I got back.
14:35:36 <nakilon> my macbook appeared to be from 2017 when there were some bad batteries and there is an apple program of replacement for free
14:35:51 <nakilon> but for some reason my serial number says that my macbook isn't affected
14:36:21 <fizzie> My PPC iBook had its battery recalled and replaced. Chemistry seems to be hard.
14:36:38 <nakilon> so I have to spent time to figure it out with local apple centers and if they say that unfortunately it's not free I need to pay for it and I don't have money right now so it's like a ticking bomb lol
14:38:53 <wib_jonas> fizzie: nah, all the products that they make in east Asia are like that, hard to make, it's just that a few things like battery, mains power contact safety, things that can theoretically strangle a baby, are considered important enough that the product gets recalled when they mess it up.
14:40:21 <Corbin> All products are like that, period. Modern batteries are extremely intricate inside and it's easy for the chemical reaction to interact badly with the battery housing's geometry.
14:40:23 <wib_jonas> it used to be christmas lights that shock you, but that went out of fashion since we have leds and solid state power supplies, so now it's just mains power extension cord and sockets where either the grounding is broken or the live wire can get touched
14:40:45 <wib_jonas> that's in Europe I mean; in US it's the default that mains power connectors make the live wire easy to touch
14:41:10 <Corbin> Look at tetraethyl lead (TEL) for a fun example. Blaming just one jurisdiction for shoddy products both ignores their lax trading partners and stokes us-vs-them rhetoric.
14:41:54 <fizzie> I've also got one of those portable battery packs, and for the life of me I can't remember if it was *designed* to be slightly thicker from the middle, or if it's doing the battery thing. Because it's really not very pronounced, so it could be it was never entirely flat.
14:42:51 <fizzie> It'd be easier if one of the seams would split, since that sounds unlikely to be by design.
14:46:00 <wib_jonas> I think I also mentioned that when you board a plane, besides the instructions about your seat belt and the emergency exit, they now tell you not to charge your batteries during takeoff and to call the crew immediately if your batteries are on fire, instead of the older warnings that you should turn off your electronic devices during takeoff and
14:46:01 <wib_jonas> landing, and before that, that all of the airplane is non-smoking.
14:47:15 <nakilon> maybe I had to buy mac mini
14:47:26 <nakilon> but would also need the keyboard and trackpad
14:47:46 <nakilon> and I don't want to bother with replacing those little batteries
15:03:33 -!- dyeplexer has joined.
15:05:04 -!- p_____ has joined.
15:05:12 -!- p_____ has quit (Remote host closed the connection).
15:08:13 <simcop2387> perlbot: jail
15:08:13 <perlbot> simcop2387: No factoid found. Did you mean one of these: [jql] [joel] [fail] [japh] [java] [.il] [.jm] [.jo] [.jp] [js]
15:08:26 <simcop2387> hmm thought i had a factoid
15:08:34 <simcop2387> perlbot: seach perlbot-jail
15:09:04 <simcop2387> perlbot: search perlbot-jail
15:09:05 <perlbot> simcop2387: No matches.
15:09:12 <simcop2387> perlbot: search perlbuut-jail
15:09:12 <perlbot> simcop2387: No matches.
15:10:11 <simcop2387> nakilon: https://github.com/perlbot/perlbot-jail make a pr for this and it'll get put into the sandbox for playing
15:14:42 <wib_jonas> simcop: it's all hypothetical of course, because nakilon already has a bot running, so it's easier for them to add a command to that bot than to try to figure out how perlbot works
15:15:55 <simcop2387> of course, just wanted to point out how the sandbox works to add data or small libraries
15:20:45 <wib_jonas> sure. and nakilon did ask after all.
15:21:25 <wib_jonas> this is one of the commands that we can't currently implement in HackEso, because there's no hole on the sandbox that lets us send queries to the wiki website
15:21:38 <wib_jonas> (nor a local wiki dump or anything like that)
15:22:11 <wib_jonas> not that it would be needed for HackEso
15:34:07 -!- dutch has quit (Quit: WeeChat 3.0.1).
15:36:58 -!- dutch has joined.
16:04:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:11:42 -!- imode has joined.
16:28:55 -!- wib_jonas has quit (Quit: Client closed).
16:34:10 -!- arseniiv_ has quit (Ping timeout: 260 seconds).
16:46:06 -!- arseniiv_ has joined.
16:51:30 -!- tromp has joined.
16:57:02 -!- riv has quit (Quit: Leaving).
16:58:36 -!- riv has joined.
17:25:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:47:21 -!- src has joined.
18:00:49 -!- archenoth has joined.
18:00:56 -!- riv has quit (Quit: Leaving).
18:02:55 -!- riv has joined.
18:03:46 -!- Oshawott has quit (Ping timeout: 260 seconds).
18:19:40 -!- delta23 has quit (Ping timeout: 240 seconds).
18:24:38 -!- tech_exorcist has quit (Quit: see you tomorrow).
18:28:52 -!- Noisytoot has quit (Ping timeout: 245 seconds).
18:29:48 -!- Noisytoot has joined.
18:31:45 -!- tromp has joined.
18:37:38 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
18:37:38 -!- dyeplexer has quit (Remote host closed the connection).
18:38:29 -!- Lord_of_Life has joined.
18:52:56 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:55:20 -!- tromp has joined.
19:28:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:02:07 -!- oerjan has joined.
20:33:37 <esolangs> [[Brainfuck]] https://esolangs.org/w/index.php?diff=88087&oldid=88086 * Oerjan * (-35) Use template (and fix error)
20:39:36 <oerjan> `addquote <fizzie> fungot: Wait a sec, what exactly are you trying to use a neural net for? <fungot> fizzie: some find them interesting and educational, and i've clearly gone loopy. <fizzie> I can't argue with that.
20:39:37 <fungot> oerjan: it doesn't? it used to do boldface text with write(*,*) ' fnord _ ' bummer)
20:39:39 <HackEso> 1335) <fizzie> fungot: Wait a sec, what exactly are you trying to use a neural net for? <fungot> fizzie: some find them interesting and educational, and i've clearly gone loopy. <fizzie> I can't argue with that.
21:02:06 <esolangs> [[Special:Log/newusers]] create * Arnyx * New user account
21:04:00 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
21:04:32 -!- Lord_of_Life has joined.
21:23:28 -!- Lord_of_Life has quit (Excess Flood).
21:23:46 -!- Lord_of_Life has joined.
21:43:14 -!- tromp has joined.
21:52:59 -!- immibis_ has quit (Ping timeout: 265 seconds).
21:54:23 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:20:31 -!- tromp has joined.
22:38:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:42:05 -!- tromp has joined.
23:24:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:25:50 -!- arseniiv_ has quit (Ping timeout: 268 seconds).
2021-09-18
01:35:16 -!- oerjan has quit (Quit: Nite).
03:26:23 -!- shachaf has quit (Quit: Reconnecting).
03:26:31 -!- shachaf has joined.
06:29:57 -!- src has quit (Quit: Leaving).
06:47:12 -!- immibis_ has joined.
06:53:15 -!- sprock has quit (Quit: brb).
06:54:14 -!- sprock has joined.
07:01:14 <esolangs> [[Pyramid Scheme]] M https://esolangs.org/w/index.php?diff=88088&oldid=81751 * Conor O'Brien * (-1) bugfix #1
07:06:50 -!- immibis_ has quit (Ping timeout: 260 seconds).
07:14:02 -!- immibis_ has joined.
07:16:02 -!- tromp has joined.
07:22:19 -!- sprock has quit (Ping timeout: 252 seconds).
07:22:33 -!- sprock has joined.
08:05:30 -!- hendursa1 has joined.
08:08:24 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:36:53 -!- riv has quit (Quit: Leaving).
08:38:15 -!- riv has joined.
09:37:17 -!- Sgeo has quit (Read error: Connection reset by peer).
10:30:10 -!- tromp has left (Textual IRC Client: www.textualapp.com).
10:30:15 -!- tromp has joined.
10:34:44 -!- tech_exorcist has joined.
10:46:08 -!- monoxane has quit (Read error: Connection reset by peer).
10:46:39 -!- monoxane has joined.
11:24:12 -!- arseniiv_ has joined.
11:35:24 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:37:40 -!- riv has quit (Quit: Leaving).
11:39:13 -!- riv has joined.
11:44:31 -!- Everything has joined.
12:44:07 -!- delta23 has joined.
12:59:13 -!- imode has quit (Ping timeout: 268 seconds).
13:23:21 <esolangs> [[Pyramid Scheme]] M https://esolangs.org/w/index.php?diff=88089&oldid=88088 * Corbin * (+249) Not to be confused with that other Pyramid Scheme.
13:30:49 -!- hendursa1 has quit (Quit: hendursa1).
13:38:03 -!- hendursaga has joined.
14:04:56 -!- dutch has quit (Quit: WeeChat 3.2.1).
14:07:24 -!- dutch has joined.
14:11:05 -!- tech_exorcist has quit (Remote host closed the connection).
15:47:18 -!- hendursaga has quit (Ping timeout: 276 seconds).
15:48:28 -!- hendursaga has joined.
16:29:54 -!- imode has joined.
17:26:39 -!- tromp has joined.
18:16:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:18:02 -!- velik has quit (Remote host closed the connection).
18:18:32 -!- velik has joined.
18:29:30 -!- Sgeo has joined.
18:36:26 -!- velik has quit (Remote host closed the connection).
18:36:50 -!- velik has joined.
18:38:35 <nakilon> [[brainfuck]][[ $n = +([0-9]) ]][[bitwise cyclic tag]]
18:38:37 <velik> https://esolangs.org/wiki/Brainfuck https://esolangs.org/wiki/Bitwise_Cyclic_Tag
18:40:46 <nakilon> [[ꙮ]]
18:40:53 <nakilon> \wiki ꙮ
18:40:55 <velik> 1CP=1ICL stands for "1 CodePoint = 1 Instruction, Collaborative Language", and is pretty much exactly what it sounds like. https://esolangs.org/wiki/1CP%3D1ICL
19:03:07 -!- aws has joined.
19:10:54 -!- src has joined.
19:46:11 -!- Thelie has joined.
19:55:02 -!- tromp has joined.
20:11:26 <riv> What happened with the X + X = N thing?
20:11:30 <riv> being a bijection
20:24:05 -!- Everything has quit (Quit: leaving).
20:57:58 -!- oerjan has joined.
21:01:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:04:54 -!- Lord_of_Life_ has joined.
21:05:40 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
21:07:40 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:13:24 -!- src_ has joined.
21:13:34 -!- src_ has quit (Remote host closed the connection).
21:14:55 <oerjan> riv: was anything supposed to happen? i thought the idea was pretty clear, each number either has to be in or not, based on which smaller numbers are in, so it's unique and after a few steps of this you can see that it's determined by the form of the number in binary.
21:16:46 -!- src has quit (Ping timeout: 252 seconds).
21:16:52 <riv> i didn't get around to solving it myself
21:17:41 <oerjan> well then you still can.
21:18:02 <oerjan> (although you're a bit spoilered, but not completely.)
21:30:53 -!- tromp has joined.
21:36:05 <nakilon> how would you call 4 functions in a short way? push to parent, pop from parent, push to child, pop from child
21:38:44 <nakilon> ideally starting with 4 different letters
21:48:00 <fizzie> "up" and "down" for push to parent and pop from parent, "ana" and "kata" for push to child and pop from child. Nah, just kidding.
21:54:24 <nakilon> push pop put get send receive -- for example take any 4 from these and they don't sound intuitive
21:55:48 <nakilon> yield next feed poke...
21:56:01 -!- earendel has joined.
22:00:05 <fizzie> "pension" for push to parent, "tax" for pop from parent (because only adults get a pension or pay taxes); "allowance" for push to child and... not sure what the last one should be.
22:01:09 <oerjan> chore?
22:01:32 <fizzie> Yeah, I guess. It's just that the other three are in terms of money.
22:02:00 <fizzie> "salary" / "tax" and "allowance" / "microtransaction", maybe.
22:03:09 <nakilon> pay earn
22:03:19 <nakilon> read write
22:03:35 <earendel> peek poke
22:03:36 <nakilon> tell listen
22:04:11 <nakilon> give take
22:07:11 <nakilon> borrow return
22:13:37 <b_jonas> how about "grounded" for the last one
22:14:24 -!- aws has left (WeeChat 3.0).
22:14:52 <nakilon> catch throw drop pickup hang rip
22:15:58 <b_jonas> produce consume provide require
22:16:01 <nakilon> should be some intuition about which kind of those actions are when moving item and which one when it's going up
22:16:20 <nakilon> *down (missed the word)
22:16:39 -!- dutch has quit (Quit: WeeChat 3.2.1).
22:16:44 <b_jonas> or perhaps pay fine reward punish
22:17:09 <nakilon> plant harvest
22:18:00 <fizzie> sow reap
22:18:06 -!- dutch has joined.
22:21:11 <nakilon> are there no antonyms for "collect"?
22:21:21 <fizzie> "distribute"?
22:22:16 <fizzie> hoard splurge
22:22:35 <fizzie> More programming languages should have a "splurge" function, it's a good word.
22:23:09 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:26:37 -!- Thelie has quit (Ping timeout: 252 seconds).
22:30:47 <nakilon> so far "catch throw drop pick" makes the most sense to me -- child is small and communicate with parent by catching and throwing, and then it drops and picks from its own child
22:31:02 <nakilon> *communicates
22:35:18 <keegan> awww
22:35:25 <earendel> borrow return would introduce ownage
22:35:52 <earendel> like rust :p
22:38:09 <fizzie> "eat poop" because that's what the child mostly does for I/O; "feed scoop" because that's what the parent does.
22:38:14 <fizzie> (Disclaimer: I don't have children, but I've had a cat.)
22:38:38 <fizzie> In retrospect I should have added a / between those words.
22:38:47 <earendel> u mix oral with anal phase
22:38:54 <earendel> lol
22:40:10 <nakilon> lol fizzie
22:40:24 <nakilon> pooping threads /child processes
22:40:41 <b_jonas> fizzie: but if the child eats and poops and the parent feeds or scoops the child, then don't both of those imply operations on the child?
22:40:52 <b_jonas> also those are queue operations, not stack
22:41:28 <nakilon> no stack here
22:41:35 <b_jonas> stack would be eat and vomit
22:41:45 <fizzie> Well, feed and cleanup, then.
22:41:46 <b_jonas> queue is eat and poop
22:41:46 <nakilon> omg guys
22:41:54 <earendel> pop push is stack
22:42:09 <earendel> traditionally.
22:42:26 <earendel> and there is fifo
22:43:03 <nakilon> I guess vomiting can be reserved for exceptions
22:43:33 <fizzie> b_jonas: I was interpreting the original spec of "push to parent, pop from parent, push to child, pop from child" to be all about a parent-child interaction, just from a different perspective, that's where the eat/feed and poop/scoop came from.
22:47:16 <nakilon> damn you
22:47:28 <nakilon> now I'll look at all kids as a stacks and queues]
22:47:35 <nakilon> and cats
22:49:58 <b_jonas> nakilon: double-ended queues really
23:11:21 -!- perlbot has quit (Remote host closed the connection).
23:12:03 -!- perlbot has joined.
23:15:56 <nakilon> looks like Ruby has the class Queue https://ruby-doc.org/core-2.5.0/Queue.html with blocking methods that would perfectly simulate what I need as a connector between Threads
23:17:52 <nakilon> parent thread does not even have to track the state of a child thread because that one can call #close on the queue marking it as such that won't produce anymore so parent knows when it's dead
23:19:18 <nakilon> so the only race condition would be the read/write to stdin/stdout -- I have no proof but I suppose the programmer should be able to sync this thing
23:19:43 <nakilon> using these 4 instructions
23:44:00 -!- arseniiv_ has quit (Ping timeout: 265 seconds).
2021-09-19
00:03:59 <Melvar> TIL about memfd_create, which is an operation I expected to exist for years (I think) but only found today.
00:10:24 <esolangs> [[Wariolang]] M https://esolangs.org/w/index.php?diff=88090&oldid=86323 * Nakilon * (+0) typo in category template
00:35:31 <nakilon> hmmmm
00:36:29 <nakilon> imagine ( and ) to mark a piece of funge code as one instruction for # and j
00:36:42 <nakilon> so #(would jump over all this)
00:37:05 <nakilon> bad thing is that there is no vertical ( ) in ascii at least
00:40:15 <fizzie> In Funge-98, the ; instruction jumps to the next ; on the path of the IP in the same delta in no time (as if it was empty space).
00:40:46 <nakilon> oh that's cool
00:41:49 <fizzie> (So arguably it's less of an instruction and more a syntax for denoting a space-time wormhole.)
00:42:17 <nakilon> this just makes one-line branching easier
00:42:24 <nakilon> no need to calculate j shift
01:36:05 -!- oerjan has quit (Quit: Nite).
02:18:43 -!- earendel has quit (Quit: Updating details, brb).
02:18:53 -!- earendel has joined.
03:49:37 <Sgeo> The transpose and inverse of a rotation matrix are the same, according to some FAQ. I feel like that can help clear up some questions I had recently
04:17:37 <Sgeo> Hmm, are translations not considered a form of rotation in a higher dimension? The transpose of a translation matrix certainly doesn't look like it inverts the translation
04:25:18 -!- delta23_ has joined.
04:25:59 -!- delta23 has quit (Killed (NickServ (GHOST command used by delta23_))).
04:26:01 -!- delta23_ has changed nick to delta23.
04:59:22 -!- tromp has joined.
05:00:24 -!- tromp has quit (Client Quit).
05:02:02 <earendel> if you want to first A) translate and then B) rotate .. you can calculate the final matrix by multiplying B with transposed A matrix (A*)
05:03:24 <earendel> the order here is important. as translating first would set the pivot point of the rotation.
05:05:57 -!- int-e has quit (Ping timeout: 245 seconds).
05:06:06 -!- int-e has joined.
05:08:19 <earendel> you can do all kind of transformations by multiplicating the inverse matrices continuously...ending up with a final matrix which you can apply to all points. usually the last one is some projection matrix resulting in some pixel coordinates for the 2D screen
05:34:42 <earendel> oh. the transpose and inverse of a rotation matrix. A* is transposed A. right? no clue what inversed A is. yet.
05:38:18 -!- delta23_ has joined.
05:38:21 -!- delta23_ has quit (Client Quit).
05:41:05 -!- delta23 has quit (Ping timeout: 268 seconds).
07:04:04 -!- imode has quit (Ping timeout: 252 seconds).
07:11:42 -!- tromp has joined.
07:18:22 -!- monoxane has quit (Ping timeout: 252 seconds).
08:02:47 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:05:59 -!- hendursa1 has joined.
08:09:24 -!- Sgeo has quit (Read error: Connection reset by peer).
08:09:27 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:19:59 -!- tromp has joined.
09:04:35 <earendel> i was just thinking about rotational speed of a spinning body.. and
09:14:22 <earendel> wondered how relativity laws would play in such.. realizing that measure of total speed is 0 at center .. and grows larger with radius.. also know ice-dancers when pulling their arms in.. gain speed .. why? and .. is a center even moving at all? can this be calculated with calculus and ..
09:17:42 <earendel> also like a few days ago, i read about a function that could approximately calculate a continous sin wave, with a starting value of sth with sin^2 and stepsize .. a wild association to the question if rotation is sth like translation but different :p
10:01:14 <nakilon> someone on reddit asked wtf is the "summer shower"
10:01:19 <nakilon> don't you guys have it?
10:02:59 <nakilon> like this one https://dachnye-reshenia.ru/wp-content/uploads/2016/11/%D0%AD%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC-1.jpg
10:04:08 <riv> i dont have that
10:04:26 <riv> does it kill you?
10:04:56 <nakilon> ahahah
10:27:19 -!- spruit11 has joined.
10:31:08 -!- spruit11_ has quit (Ping timeout: 268 seconds).
11:07:37 -!- tech_exorcist has joined.
11:12:48 -!- monoxane has joined.
11:29:16 -!- tech_exorcist has quit (Ping timeout: 252 seconds).
12:23:29 <riv> the X + X = N thing is kind of like this http://www.inference.org.uk/cds/part3.htm
12:23:42 <riv> except this is X - X = Z/nZ I guess
12:24:51 -!- riv has quit (Quit: Leaving).
12:30:10 -!- riv has joined.
12:36:29 -!- arseniiv_ has joined.
12:39:35 <riv> could you do X - X = N?
12:39:51 <riv> i suppose powers of 2 would work
12:40:13 <riv> maybe fibs too?
12:51:01 -!- Thelie has joined.
12:55:10 -!- earendel has quit (Quit: Connection closed for inactivity).
12:56:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:00:27 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
13:03:41 -!- tromp has joined.
13:15:44 -!- arseniiv_ has quit (Quit: gone too far).
13:18:20 -!- arseniiv has joined.
13:20:49 -!- riv has quit (Quit: Leaving).
13:22:28 -!- riv has joined.
13:32:38 -!- Thelie has quit (Remote host closed the connection).
13:43:00 -!- tech_exorcist has joined.
13:47:01 -!- hendursa1 has quit (Quit: hendursa1).
13:47:27 -!- hendursaga has joined.
13:59:57 <esolangs> [[Special:Log/newusers]] create * Leomok2009 * New user account
14:03:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:08:28 -!- src has joined.
14:30:01 -!- tromp has joined.
15:05:46 <esolangs> [[Special:Log/newusers]] create * Iamn00b * New user account
15:09:41 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88091&oldid=88070 * Iamn00b * (+272)
15:15:15 <esolangs> [[User:Iamn00b]] N https://esolangs.org/w/index.php?oldid=88092 * Iamn00b * (+123) Created page with "sup <br /> is me, iamn00b <br /> my discord is <pre> randomguy#0047 </pre> so far, i've made 1 lang spec: LCCBED, coming up"
15:15:23 -!- earendel has joined.
15:38:02 <esolangs> [[LCCBED]] N https://esolangs.org/w/index.php?oldid=88093 * Iamn00b * (+1809) Created page with "LCCBED stands for "Letter Command Brainf*** Enhanced Derivative. It was created by [[User:Iamn00b]] in 2021. Its goal was simple: to make a slightly more confusing yet wonderf..."
16:02:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:15:09 -!- river has joined.
16:17:28 -!- riv has quit (Ping timeout: 252 seconds).
16:23:02 -!- arseniiv has quit (Ping timeout: 268 seconds).
16:46:51 -!- imode has joined.
16:54:19 -!- arseniiv has joined.
17:16:22 -!- tromp has joined.
17:20:30 -!- immibis_ has changed nick to immibis.
17:27:47 -!- arseniiv has quit (Ping timeout: 268 seconds).
17:30:21 -!- delta23 has joined.
17:33:42 <Melvar> earendel: Pulling their arms in to gain speed: It’s preservation of angular momentum. Pulling in the arms decreases their moment of inertia, requiring their angular velocity to increase in order to maintain angular momentum.
17:39:55 -!- arseniiv has joined.
17:47:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:58:38 <earendel> are you sure it is inertia? how is the angular momentum calculated? like impulswe? mv? [and furtner on the relativity shizle: imagine the length of their arms beim 0,4 lightyears long. and no friction. and they would turn full angle once per year. so the speed of her fingertips would close on speed of light o)o ]
18:03:25 <earendel> [ .. is angular velocity somehow accumulative with the movement of something which radius is bigger > 0 through space? ]
18:03:26 <j-bot> earendel: |spelling error
18:03:26 <j-bot> earendel: | .. is angular velocity somehow accumulative with the movement of something which radius is bigger > 0 through space? ]
18:03:26 <j-bot> earendel: | ^
18:09:17 -!- ais523 has joined.
18:09:31 <earendel> okay. it wouls obviously take some energy to slow down roatation of earth. and that inertia is due to its mass. and if you would shrink the earth, but keeping the mass, it would turn faster. right?
18:09:57 -!- tromp has joined.
18:11:10 <ais523> I'm currently trying to figure out how to implement Java-style interfaces in a new language I'm working on (a Java-style interface is basically a set of methods that can be implemented by more than one class, classes can implement more than one interface, and you can have a reference to an object that conforms to a particular interface without knowing what class it has, and call methods of the interface on it)
18:11:12 <earendel> the dancer doesn't lose weight. it just centers towards its fuckn massenscshwerpunkt. can u roger taht.lol. ok. spacecowboys. sry for spamming.
18:12:09 <ais523> I feel like there has to be an easier way than the standard methods of doing it, but can't think of one
18:12:13 <APic> ais523 > *
18:12:27 <APic> ais523: You do not even need to do the Sokoban-Solver now because somebody else did 😸
18:12:37 <ais523> APic: I don't think I was working on a Sokoban solver
18:12:43 <APic> But it would still rock to pack it into the NetHack4-Frontend 😉
18:12:48 <ais523> I was working on a Sokoban /generator/ at one point, but that's a different problem
18:13:00 <APic> True
18:13:12 <ais523> oh, unless you count TAEB's Sokoban-solving routines, but they just used a hardcoded/memorized solution rather than actually solving the puzzle
18:13:17 <APic> But when You have a good Generator, the Solver is not that far ahead
18:13:35 <ais523> I could probably adapt the generator into a solver, but it isn't really a "good" generator yet
18:14:21 <APic> If it can solve _my_ SokoBan on NetHack.ALT.Org and/or nethack@EU.HardFought.Org i am very glad to try it out in two Days, when the green Cheese will be highly illuminated again
18:15:38 <ais523> hmm, this conversation has indirectly taught me something about German grammar: "jemand" is technically a pronoun, not a noun, so it doesn't start with a capital letter
18:16:25 <APic> Indeed
18:16:27 <ais523> the hard part of an automated Sokoban solver for playing NetHack isn't the actual solving, though, but doing the inputs (and fighting monsters along the way)
18:16:51 <APic> Yes, so i can procrastinate my other Tasks further 😸
18:16:59 <earendel> green cheese?
18:17:03 <APic> The Moon.
18:17:10 <earendel> ah.
18:17:27 <earendel> wow. elliott?
18:17:44 <earendel> pardon. i was confusing you with somebody else.
18:18:01 -!- ais523 has quit (Quit: sorry about my connection).
18:18:04 <APic> Happens
18:18:15 -!- ais523 has joined.
18:18:16 <APic> Especially because of my Hebephrenia.
18:18:19 <APic> wb ais523
18:18:43 <ais523> …oh wow, I think I've seen this problem before
18:18:53 <ais523> vtables for interfaces is the "match these inputs to these outputs" problem
18:19:50 <ais523> i.e. given a set of (input, expected output) pairs, to generate a function that maps each of the provided inputs to the matching output, and it doesn't matter what the function does with other inputs
18:20:39 <ais523> I found a really neat solution to this a while ago in terms of minimizing the size of the generated function: https://codegolf.stackexchange.com/questions/105303/help-me-recognise-my-monster/214222#214222
18:20:43 <APic> vtables
18:20:49 <APic> Reminds me or good old Bobby Tables 😉
18:21:01 <ais523> although, it may have bad performance
18:22:02 <ais523> x86-64 has finite field builtins nowadays, but most of them deal with GF(2⁸), you'd want GF(2⁶⁴) for this
18:22:29 <ais523> would be fun to see VPCLMULQDQ in a virtual method lookup routine
18:22:32 <ais523> (but probably not efficient)
18:24:57 <APic> Epic Mnemonic.
18:25:47 <ais523> maybe some sort of cuckoo hash is the right solution here? what we want is effectively a map structure with a) space-efficient storage, b) fast lookup; being able to modify it efficiently is not important
18:25:54 <ais523> the construction I linked above handles a) but probably not b)
18:28:58 <earendel> i think the crux is really to program against those interfaces. instead of mapping whatever model you have straight onto a view. better make it smalltext, longtext, headertext instead of isbn, vendor-description, vendor-titla-bla .. i mean. in the end you always end up with listst of some (expandible) blocks containing text, graphics, and buttons, and maybe moving parts. a detailed view of items. a formular to edit. [beside the genereric
18:28:58 <earendel> extension things which are cool and final .net]
18:29:18 -!- Everything has joined.
18:29:24 <earendel> this would distinct interfaces from adapters which just map things together.
18:30:09 <earendel> designing the interface. like not writing a line of code for years. is dharma-body of buddha.
18:30:11 <earendel> brudi.
18:32:44 <ais523> Rust's solution to this is to make "as" magic, I think; when casting from an object-pointer to an interface-pointer type, it adds extra metadata that specifies a vtable for that object implementing that interface
18:32:56 <ais523> I'm not sure how it handles casts from an interface-pointer type to a different interface-pointer type
18:33:01 <ais523> time to try some experiments, I think
18:33:03 <earendel> what i mean is: imagine you have that mediaplayer interface. and you want to be able to sick it at your robotsexslave, ../
18:33:10 <earendel> ok.
18:37:37 <earendel> i mean something like decorators is also not bad. mechanics: simple, bootstrap: little, lazyppl: lit
18:39:06 <earendel> started viewing rust tutorial yesterday. u r right. first we have to rewrite the browser in rust. yes.
18:39:19 <earendel> im soon on board now.
18:41:52 <ais523> …oh wow, I think you *can't* cast from one interface-pointer type to another in Rust
18:42:05 <earendel> then we create p2p distributed ai rss seti graph protocoll for querying news feeds.
18:42:15 <earendel> rust.
18:47:19 <ais523> after searching a bit more, I discovered that there are crates which add extra metadata to allow casting from one trait object type to another, which makes it very likely that there's no way to do it using Rust's usual implementation of trait objects (otherwise you wouldn't need the crate)
18:47:32 <earendel> all i got so far is it has this owner concept. vars belond to some actors/subjects and can be lend to others, and kinda im/explicitly passed back etc. variables and scopes and garbage collector follow stricter rules. also no inheritanve but composing traits.
18:47:51 <earendel> crates were like packages or sth right?
18:48:54 <keegan> there's no garbage collector in rust
18:49:24 <keegan> it's all based on smart-pointers and references
18:49:27 <keegan> very similar to modern C++
18:49:44 <keegan> but unlike C++, the compiler is able to check at compile time that references don't outlive the thing they refer to
18:50:20 <ais523> I think of Rust as being a language which lets you write clever code, but you need to be able to prove that what you're doing makes sense (and the proof ends up inside the source code as documentation of what it's doing)
18:50:59 <keegan> not only that but it enforces a "many readers xor one writer" rule for references
18:51:23 <keegan> if you have a &mut reference to something then it checks that other references are not being touched at the same time
18:51:36 <keegan> this prevents iterator invalidation errors, which are a huge source of undefined behavior in C++
18:51:40 <earendel> it's really for the solid bone of something. but still they say its only liek 10% less performant (with gui and bglah) than c cod .. that guy said.
18:52:00 <keegan> any kind of broad performance comparion like that is useless
18:52:03 <keegan> it deends on the use case
18:52:11 <ais523> I still don't really like the &mut name – the invariant is that while the reference is alive, it's the only way to refer to the object, it isn't really related to mutability
18:52:25 <ais523> you can mutate things through & references if they're designed appropriately
18:52:28 <keegan> and you can always bypass the static checking and do it the exact same way you would in C
18:52:35 <keegan> if you can't figure out a zero overhead way to make the static checking happy
18:52:39 <keegan> ais523: yes, and yes
18:53:35 <ais523> I guess the reason for the name is that in order to mutate something in Rust, you have to prove that the mutation of it is safe, and "this is the only reference" is an easy way to prove that it's safe
18:53:57 <keegan> right
18:54:04 <keegan> but as you said there are other types that let you prove that another way
18:54:14 <keegan> Cell, RefCell and AtomicFoo
18:54:19 <earendel> keegan: sorry. but i think its worth to take note of its high performance. dont say its useless when it can give u a hint if u can need it or not. like 1 of 5.
18:54:31 <ais523> and Mutex, that's about it for the main ones
18:54:47 <earendel> its some overhead you need that you can avarage down not calling it a benchmark.
18:55:15 <ais523> …it just crossed my mind how similar Mutex and RefCell are
18:55:40 <ais523> Mutex is basically just thread-safe RefCell, isn't it?
18:57:21 <keegan> earendel: what i'm saying is there's nothing in Rust that provides an omnipresent overhead like a garbage collector or VM
18:57:27 <keegan> it's bare metal compiled language
18:57:47 <keegan> any overhead solely comes from whether you can express the most efficient way of doing things within the static safety constraints or not
18:58:09 <keegan> it's kind of like arguing about the overhead of C++ versus C
18:58:19 <keegan> would anyone say that C++ is 10% slower than C? of course not, it depends on how you write your C++
18:58:24 <keegan> if it's full of virtual methods it might be slower
18:58:30 <keegan> if you write very C-like code it might be the same
18:58:32 <ais523> keegan: there is some overhead in the existing backends (not inherent in the language), e.g. in ensuring that the stack is always aligned and backtraceable; I'm the sort of person who gets irrationally annoyed by this
18:58:41 <keegan> if you make heavy use of template metaprogramming it might even be faster than C
18:58:48 <keegan> due to better opportunities for compile time specialization
18:58:49 <earendel> right. lets skip that.
18:58:51 <keegan> ais523: fair
18:58:57 <earendel> :>
18:59:57 -!- tech_exorcist has quit (Quit: see you tomorrow).
19:00:15 <keegan> a lot of C idioms are inefficient
19:00:30 <ais523> keegan: that doesn't surprise me but I can't think of any examples right now
19:00:36 <keegan> a lot of time a function pointer / void* dynamic polymorphism pattern is used when only static polymorphism is needed
19:00:55 <keegan> whereas in C++ or Rust you would use generics and end up with more direct code and more optimization opportunities
19:01:03 <ais523> ah right, the function pointer + void* method is a good example, ye
19:01:05 <ais523> * yes
19:01:13 <keegan> (of course this also relates to the compilation unit)
19:02:24 <ais523> although there are tradeoffs, &dyn T (which is effectively equivalent to the function pointer + void * method) could be more efficient than &impl T if the generic function is large enough that instruction cache pressure is more of a bottleneck than branch mispredictions
19:02:54 <ais523> that seems unlikely, though, branch mispredictions cost quite a lot so you'd need a huge amount of cache pressure to make the mispredictions cheaper
19:04:46 <b_jonas> “<ais523> […] German grammar: "jemand" is technically a pronoun, not a noun, so it doesn't start with a capital letter” => and in Hungarian, you can only capitalize proper names if they're nouns, not adjectives, which I think is very silly, but we can't really change it now
19:05:28 <keegan> true
19:05:51 <keegan> in embedded code you might prefer the dynamic version to save on code space
19:05:57 -!- chiselfuse has quit (Ping timeout: 276 seconds).
19:06:09 <keegan> but it's often the case in C that a "generic" library is only instantiated at /one/ client type
19:06:22 <keegan> and in that case the static version would probably produce smaller code by specializing and removing unused stuff
19:06:36 <ais523> I think a good example are things like qsort, which are generic due to being compiled ahead-of-time but are often used at only one type in any given program
19:07:24 -!- chiselfuse has joined.
19:07:29 <ais523> actually, memcpy is a really good example
19:07:30 <shachaf> Templated C++ programs sometimes monomorphize and end up with huge binaries and ridiculous type names in stack traces and things.
19:07:40 <ais523> although I think compilers special-case that one nowadays
19:08:11 <ais523> shachaf: I think most modern systems langauges give a choice between monomorphization and dynamic dispatch, but there can be some debate about which to use
19:08:27 <ais523> dynamic dispatch is needed if you have a heterogenous list, but there are many cases where both would work
19:08:48 <ais523> the language I'm working on does both, but I realised I wasn't sure how to implement dynamic dispatch efficiently
19:09:20 <shachaf> Dynamic dispatch is often implemented with some sort of boxing.
19:09:34 <b_jonas> ais523: re type interfaces, to figure out what design you want, I think there are at least three questions about intended use that you should decide. 1. who is allowed to declare that a type implements an interface? only the module that defines the class, or only the module that defines the interface, or both? 2. in what namespace are the names of methods that interfaces provide? are they global, so you
19:09:35 <shachaf> But another alternative is the equivalent of passing in type size and alignment dynamically, but still having just one implementation.
19:09:39 <shachaf> E.g. in a data structure.
19:09:40 <b_jonas> can define an interface after a method name is commonly used without an interface? namespaced so that if you define an interface and a method in it, existing methods with accidentally the same name won't clash with it?
19:09:44 <shachaf> I think maybe Swift does that?
19:10:22 <ais523> b_jonas: I'm pretty sure that the correct solution for 2) is for the method name to be namespaced, so that two interfaces can define methods with the same names and a class can implement them both with different implementations if it wants to
19:11:04 <ais523> most languages (e.g. Java) gets this wrong; Rust has an interesting compromise in which it gets it right, but with horrible syntax for disambiguating which method you need if you actually need to call the method after doing that
19:11:38 <shachaf> I wonder whether methods are an idea that makes sense at all.
19:11:55 <shachaf> Probably?
19:12:15 <ais523> they're useful when writing code out of order
19:12:32 <ais523> like, writing generic code before you know what types it's going to be useful for
19:12:48 <ais523> monomorphisation is very useful if it does end up getting used at only one type in practice
19:13:35 <shachaf> Go resolves interfaces by doing type checking (including string comparison of method names and so on) at runtime.
19:13:42 <b_jonas> ais523: in rust, when you define a trait, you can define that it's the subtrait of another trait, which more or less means that the vtbl has a reference to the vtbl of the supertrait. note also that rust doesn't allow you to cast from a ref to interface to a ref to a specific type that implements it, like C++'s dynamic_cast. if you want that, you have to define a method that does such a cast to one
19:13:48 <b_jonas> specific type explicitly.
19:14:26 <ais523> b_jonas: Rust lets you downcast to concrete types via Any nowadays, but it doesn't let you upcast from a trait to its supertrait
19:15:07 <ais523> you can call methods of the supertrait on a trait object of the subtrait, but can't upcast to a supertrait object (which initially surprised me, but I couldn't figure out how it was implemented and discovered that it was illegal while experimenting, so maybe it's disallowed due to difficulty of implementation)
19:17:37 <ais523> ah, seems relevant: https://stackoverflow.com/questions/28632968/why-doesnt-rust-support-trait-object-upcasting
19:20:13 <b_jonas> ais523: re Mutex, yes, that's a good approximation, though I think the multi-threaded version of RefCell is std::sync::RwLock, which is slightly more powerful than Mutex. also Arc is the multi-threaded vesrion of Rc; and you can kind of think of std::sync::atomic::AtomicU32 as the multi-threaded version of Cell<u32>, though that analogy is more strained
19:23:19 <b_jonas> you can't upcast from a trait to a supertrait? hmm
19:23:29 <ais523> I'm surprised there isn't a single-reader version of RefCell, actually; it would seem useful for performance in cases where you don't need multiple readers (unless the multiple-readers case is just as fast, which would seem unlikely)
19:23:47 <b_jonas> I see
19:24:55 <ais523> it looks like the Rust developers want to implement trait→supertrait upcasting but doing so is hard
19:25:18 <b_jonas> though rust now has default methods, and just like in haskell, only the trait can define what its supertraits are, so explicitly adding a method for upcasting from a trait to a specific supertrait should be easy enough,
19:25:28 <b_jonas> so it's probably not a big problem
19:25:47 <b_jonas> ais523: re "single-reader version of RefCell, do you mean a RefCell that you can only mut borrow??
19:25:54 <ais523> b_jonas: right
19:26:28 <b_jonas> I'm not sure if you could implement that more efficiently than the current RefCell if you never borrow from it
19:26:40 <b_jonas> that said, if you want something like that, you can impelment it yourself from UnsafeCell
19:27:10 <ais523> I actually implemented effectively that myself in a program I'm working on – I had what in effect wanted to be a Cell that held an enum, so I added an extra option to say that it was currently borrowed and unavailable
19:27:15 <ais523> and then swap it out of the Cell whenever I want to work on it
19:28:07 <ais523> this is pretty similar in practice to a single-reader RefCell
19:29:33 <b_jonas> that could perhaps work, though I imagine if the enum is very large, then the optimizer might not see through that method properly
19:31:10 <b_jonas> the inner enum doesn't happen to be the node type for the balanced tree library that you wanted to do at some point, right?
19:31:14 <ais523> no
19:31:41 <ais523> it switches between particular list implementations for an esolang
19:32:08 <ais523> in which lists can potentially be larger than the computer's address space, and sometimes have their elements calculated lazily because of that
19:33:42 -!- Everything has quit (Quit: leaving).
19:39:55 <b_jonas> ais523: are the lists semantically mutable, and if not, can it change between representations after a value is created?
19:47:47 <b_jonas> yeah, the second one is probably a silly question, obviously yes if you need a Cell
19:51:37 <ais523> b_jonas: they're semantically immutable, but they can change representation after creation
19:51:47 <ais523> (whilst still keeping the same value)
19:54:05 <b_jonas> right. that comes up sometimes.
20:00:24 <ais523> one idea I had for implementing vtables would be a sort of golomb-rulerish implementation where the address of each method was at a fixed offset from the start of the vtable, and you interleaved vtables in the dead space of each other in order to pack them more tightly in memory
20:00:25 -!- oerjan has joined.
20:00:42 <ais523> but I don't know what the optimal packing density for that would be, or what sort of algorithm you'd use to achieve it
20:03:00 <Corbin> Huh. Isn't finding a Golomb ruler NP-complete?
20:03:35 <b_jonas> I'll also note that if you care that much about efficiency, you can impelment your custom dynamically typed object abstraction in rust with unsafe pointer dereferences, you aren't required to use the built-in dyn objects
20:04:06 <b_jonas> Corbin: not if you don't want the shortest possible one
20:04:16 <Corbin> Ah, we don't know, but I was thinking of *optimal* Golomb rulers, which are harder.
20:04:18 <b_jonas> Corbin: also not if you only have single-inheritance by the way
20:04:39 <b_jonas> Corbin: also Fortran compilers are required to solve that sort of thing, so it's a kind of tradition
20:04:49 <b_jonas> I don't know if they're ever NP-complete by the way, just that it's not trivial
20:08:07 <b_jonas> I was thinking about the custom object thing in rust by the way, mostly because I want a *closed* set of types (enum as opposed to trait), dynamically allocated and you can't change their types, but with variable length, where you have to look at the discriminator (or custom flag bits) to figure out which methods and which destructor and deallocator to call
20:08:47 <b_jonas> rust is trying hard to make sure that anything you would write in C you can implement as efficiently in unsafe rust
20:09:38 <b_jonas> it's not quite there yet, because C compilers have grown a ton of extensions, often platform-specific ones, by now, but most of the time it's fine
20:11:43 <b_jonas> rust has features that are there specifically to satisfy this, such as you can directly call C new style vararg functions from rust
20:12:34 <ais523> Corbin: finding just any Golomb ruler is easy, finding optimal ones is hard
20:13:02 <b_jonas> and even define them
20:13:05 <b_jonas> https://doc.rust-lang.org/nightly/unstable-book/language-features/c-variadic.html
20:13:53 <b_jonas> it's there so you can interface with existing C programs that define or call a variadic function
20:13:56 <ais523> I vaguely remember that unsafe Rust has some way to simulate a C-style flexible array member
20:14:55 <b_jonas> ais523: flexible array member: kind of, but not really. you can define a struct that notionally has a flexible array as its last member, and that struct is non-Sized,
20:15:27 <b_jonas> but the problem is, there's no reasonable way to *create* a value of such type, you more or less have to use pointer arithmetic for it. you can access such a type through pointers though.
20:15:30 <ais523> your size-variable enums are also non-Sized
20:15:58 <b_jonas> yes, this is more or less the correct approach,
20:16:45 <b_jonas> but C++ at some point planned to add a feature where there's an official way to declare a variable-sized type that knows its own size from a member that stores its size, and a way to construct them on the heap in a reasonably safe way, I think
20:17:08 <ais523> one thing that I'd like to do in a systems language is to record type, lifetime, etc. information directly into pointers by allocating them in different parts of memory
20:17:44 <ais523> so that, e.g., Cow<'static> would just be a single pointer, and you check to see whether the pointer is on the heap or in the executable in order to determine whether it's owned or borrowed
20:17:50 <ais523> but, you can't do that in current Rust because of Box::leak
20:18:01 <ais523> (which creates dynamically allocated static references)
20:18:18 <b_jonas> what I'd really like is https://github.com/rust-lang/rfcs/blob/master/text/1861-extern-types.md to become stabilized
20:18:46 <b_jonas> that lets you create types that are explicitly non-Sized so much that the language doesn't even know the size at runtime
20:19:04 <b_jonas> that would be more general than just non-Sized array members
20:19:24 <b_jonas> so far that feature is unstable
20:19:57 <b_jonas> and yes, they're more or less equivalent in power
20:20:30 <b_jonas> but saying that you have an unknown sized char array member is just notionally more silly than saying that you have an unknown type member
20:20:42 <b_jonas> s/char/u8/
20:21:29 <ais523> well, a flexible u8 array at least has the semantics that you're allowed to read the bytes
20:21:59 <ais523> maybe that's correct for things that are Copy and have no trap/invalid representations? and an unknown type member for things that aren't?
20:22:05 <ais523> probably an unknown type member is correct in most cases
20:22:52 <Melvar> earendel: Yeah the thing is that unlike linear momentum that is mass times velocity, angular momentum is moment-of-inertia times angular velocity. Moment of inertia is basically rotational inertia, but the neat thing is that it depends on the shape of the object (relative to the axis of rotation). For a single particle, the moment of inertia I = r²m, where m is the mass and r the rotational
20:22:53 <Melvar> radius, and the angular velocity ω = v/r where v is the linear velocity component perpendicular to the radius at any instant, giving the angular momentum L = Iω = rmv, so a single particle’s angular momentum is its instant linear momentum times the radius of rotation if it is circularly orbiting the center of rotation.
20:23:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:23:30 <b_jonas> allowed to read which byte? it can be zero-sized.
20:23:48 <ais523> any bytes that are proven to be there using size_of_val
20:24:03 <ais523> (assuming that size_of_val is implemented, which it might not be I guess)
20:24:06 <b_jonas> I don't think that applies
20:24:31 <b_jonas> the point of these types that unlike with slices and str and trait objects, even the compiler doesn't know how to compute the size of the object
20:25:14 <b_jonas> you can only access the trailing part unsafely, when you guarantee you know (a lower bound) for the size, and can only deallocate it unsafely
20:25:50 <ais523> ah, OK
20:26:13 <b_jonas> this is mostly just a type system as in notation to avoid errors kind of thing, you can already use unsafe pointer dereferencing to implement all this
20:26:38 <ais523> on that note: I think the programming world really needs to decide whether a) the allocator tracks the length of things that it allocates, in which case it might as well also track type information; or b) the allocating program tracks the length of things it allocates, in which case it should tell the allocator so that the allocator doesn't have to record that information separately
20:27:11 <ais523> most existing programs/libraries try to do a) and b) simultaneously, leading to a lot of redundant work
20:27:29 <b_jonas> ais523: I think you can genuinely want both of those
20:27:31 <b_jonas> even in the same program
20:27:46 <ais523> but for different allocations? or for the same allocation?
20:28:02 <b_jonas> for different allocations. you must allow the caller to track the object size so that you can allocate small fixed size objects, like cons cells, without too much memory overhead;
20:28:29 <b_jonas> but you must allow something in the library or language to track the size so that you can allocate Box<[T]> or Vec<T>
20:29:04 <ais523> hmm, perhaps there should be malloc8, malloc16, malloc24, malloc32 functions for allocating specific small numbers of bytes (and a corresponding free8, free16, free24, free32)
20:29:20 <ais523> existing mallocs can't normally do less than 8 bytes anyway
20:29:28 <ais523> and are quite wasteful for very small allocations
20:30:03 <b_jonas> ais523: yes, you can have the allocator be an inline function that handles the fast case, and calls a non-inline function for the difficult case, and nudge the compiler to constant fold the common case of known size
20:30:13 <b_jonas> C++ new/delete hopefully already does that
20:30:16 -!- user3456 has changed nick to rip-libera-offto.
20:30:28 -!- rip-libera-offto has changed nick to user3456.
20:32:44 <b_jonas> ais523: in rust, the public interface for the default allocator is Box, which can do both fixed size (Sized) and dynamic size (slice) allocations, and has an interface to turn a Box<T> to a plain pointer or pointer plus size (to simulate new) and back to a Box later (to simulate delete)
20:34:05 <b_jonas> and since T in Box<T> is a type parameter, it is very likely that the compiler will constant fold the size to the inline part of the function
20:34:23 <ais523> b_jonas: C++ new/delete doesn't seem to do that at present: https://godbolt.org/z/so19cnK93
20:34:25 <ais523> at least not in gcc
20:34:31 <b_jonas> generic parameters, in both C++ and rust, are the current state of the art to strongly nudge the compiler to constant-fold a value, since it's hard to figure that out otherwise
20:34:44 <b_jonas> I think ziglang has an explicit notation for a parameter that should be constant-folded
20:35:38 <ais523> in Rust, I think it's more interesting to look at the public interface *from* the allocator (i.e. if you're replacing an allocator, what it gets to see)
20:36:08 <ais523> https://doc.rust-lang.org/std/alloc/trait.GlobalAlloc.html
20:36:21 <b_jonas> ais523: I admit I've never looked at that
20:36:30 <b_jonas> I don't think I'll want to replace the global allocator
20:36:43 <b_jonas> write a custom allocator that only my code uses, sure
20:36:45 <b_jonas> but not the global one
20:36:48 <ais523> it looks like it's the responsibility of the code to track the size, under Rust's API
20:37:02 <ais523> but there's no ability to specialise on the `Layout` parameter
20:37:44 <b_jonas> to a large part this is because if I want a custom allocator, I probably want it to have a special interface, and not impelement it to work as a global allocator
20:37:56 <oerjan> <riv> could you do X - X = N? <-- as a bijection? no. you obviously will get 0 in many ways.
20:39:14 <ais523> I guess part of the problem is that when allocating arrays, the element type will usually be known at runtime but the number of elements might not be
20:40:48 <b_jonas> I don't see why that's a problem
20:40:48 <oerjan> oh, in the cyclic difference thing you explicitly exclude that particular case
20:41:58 <ais523> b_jonas: the reason why you can't just make the layout a generic/compile-time parameter and specialise on it, as opposed to a runtime parameter
20:42:38 <ais523> although, I guess you can just use an if statement, and hope that link-time optimisation will inline the relevant part of the function?
20:42:38 <b_jonas> yes
20:43:08 <ais523> hmm, knowing whether something is an array seems like important information for an allocator
20:43:12 <b_jonas> you will need both allocations with compile-time known size, and ones with only runtime known sized
20:43:21 <ais523> e.g. "this will never be realloc()ed" could be a useful piece of information to know for performance optimisations
20:43:22 <b_jonas> and you will want this distinction in the type of the smart pointer
20:44:05 <b_jonas> oh, you want a fancy realloc that doesn't just check the capacity and malloc,memcpy,free if too small?
20:44:17 <b_jonas> I rarely think of that optimization
20:44:32 <b_jonas> I'm not sure it's really worth
20:45:03 <ais523> one example is, if something is fairly large (at least pages) and reallocable, to mmap it at a random memory address so that you can expand it with mremap if necessary, rather than having to copy to different physical memory
20:45:25 <ais523> whereas things that aren't reallocable make more sense to pack densely
20:45:37 <b_jonas> hmm
20:45:46 <b_jonas> maybe, that's just not a case I thought of much
20:47:05 <ais523> I think it probably makes more sense for the program to track the size for small non-resizable things, and for the allocator to track the size for large resizable things
20:47:43 <ais523> …now I'm wondering if programs get to read their own page tables, probably not
20:48:12 <ais523> I think it's up to the kernel to decide whether it maps the page tables (or parts of them) somewhere a process can see them or not
20:48:38 <ais523> (I remember an experiment in which someone wrote a kernel module to let programs write directly to their own page tables at runtime, in order to investigate how the processor handled changes)
20:49:50 <b_jonas> the program read its own page tables? that would rarely be useful for a user-space probram
20:50:52 <ais523> Web of Lies had some reason to do it, IIRC
20:51:24 <ais523> although it accomplished it by parsing /proc/self/maps, which isn't very efficient (and even then that doesn't tell it the physical addresses, but it didn't care about that)
20:53:25 <b_jonas> ais523: it's hard to care about the physical addresses, because the kernel has the right to change them at any time
20:53:44 <b_jonas> it'll rarely do that, mostly for suspending the computer or hotswapping RAM, but still
20:54:00 <ais523> right, the only time I can think of when it actually would would be during hibernate+unhibernate
20:54:21 <b_jonas> no, it can also do that to swap them out, but you can stop swapping with mlock
20:54:35 <b_jonas> and in theory it could also do that to automatically turn them to hugepages
20:54:47 <ais523> oh right, swap+unswap
20:54:48 <b_jonas> and to compress or deduplicate them, but those are mostly just swapping
20:54:57 <ais523> a program could look at its own page tables to see if memory was swapped out at the time
20:55:03 <ais523> but I think there's an API to check that, isn't there?
20:55:06 <b_jonas> but if you care about the physical address, you probably mlock the memory
20:55:09 <ais523> actually there's a processor instruction to check that
20:55:24 <ais523> so you don't even need to ask the kernel
20:55:27 <ais523> (VERR)
20:55:28 <b_jonas> ais523: iirc there's some new API too for some reason, not just the processor instruction
20:55:38 <b_jonas> why you need it with the instruction there I don't remmeber
20:55:58 <b_jonas> mincore(2) system clal
20:56:14 <ais523> ah no, VERR checks a /segment/, not an address
20:56:40 -!- tromp has joined.
20:56:45 <ais523> that… doesn't seem very useful
20:57:00 <ais523> no wonder VERW got repurposed for some sort of Spectre mitigation
20:57:05 <b_jonas> it's rarely useful, but it was added for some specific weird reason
20:57:14 <b_jonas> oh, you mean VERR?
20:57:18 <b_jonas> um
20:57:20 <b_jonas> I don't know about that
20:57:58 <ais523> (VERR/VERW run in microcode and don't require privilege to use, so it was possible to patch it to flush the caches that needed to be flushed to stop some specific Spectre abuse, then do the intended functionality of VERW afterwards just in case someone was using it for its intended purpose)
20:59:24 <b_jonas> ais523: is that with or without some extra prefix to VERR?
20:59:57 <ais523> b_jonas: no prefix needed
20:59:59 <b_jonas> x86 has some prefixed combinations that do the same as without the prefix on all existing CPUs but also isn't required to do the same thing, so they can be repurpused for things like this
21:00:20 <ais523> in order to be backwards-compatible it had to be some existing instruction that wasn't supervisor-only and is a no-op on older CPUs
21:00:27 <ais523> and also microcoded
21:00:56 <ais523> there are backwards-compatible NOPs like endbr64, but those are hardcoded to not do anything on existing processors, you can't change what they do with a microcode update
21:01:13 <b_jonas> I see
21:01:33 <ais523> VERR and VERW are near-no-ops (they just change one flag) and so are quite easy to work into a program
21:01:37 <b_jonas> sounds like an interesting partial workaround
21:01:51 <ais523> and their functionality can be updated in firmware
21:02:10 <b_jonas> but I'm also glad I could just buy a cpu that was already designed to be careful with Spectre-like vulns\
21:02:58 <ais523> well, Spectre affects all major CPU families with speculative execution, I think (it's Meltdown that was Intel-specific)
21:03:25 <b_jonas> ais523: yes, so there need to be separate fixes for Intel and AMD, to multiple similar vulns
21:04:07 <b_jonas> but the point is that the Spectre and its relatives are now old enough that the latest CPU microarchitectures were designed when they were already known and so designed to avoid them
21:04:37 <b_jonas> and IIUC the CPU that I bought for my new home computer is one of those
21:05:12 <b_jonas> though I still wouldn't want to run one of those evaluator bots like HackEso or perlbot on my normal home desktop
21:05:17 <ais523> I'm not sure if they're fully designed to avoid them because it would hurt performance, they just have mitigations
21:06:17 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
21:06:36 <b_jonas> I'll only run such bots if I have a separate computer hardware for that kind of thing, or if I pay for a separate virtual machine at a hosting provider
21:06:48 -!- Lord_of_Life has joined.
21:07:19 <b_jonas> ais523: they probably can't protect from all the timing attacks, yes
21:08:01 <b_jonas> but they can protect from the ones where you can do an indexed memory access or jump where the address is speculatively evaluated and effectively *read* memory that you don't have access to from that
21:08:13 <b_jonas> which is much better
21:10:05 <b_jonas> this means that if you decode a block cypher then verify the program, and write it carefully to not leak timing data, then another process won't be able to read your ephemeral key or cleartext etc
21:10:23 <b_jonas> unless it's like leaked in the form of variable power usage or wifi interference
21:11:33 <b_jonas> whereas on old CPUs without mitigations, some other process could often just directly read bits of the ephemeral key if it was in cache and could guess the address
21:12:32 <b_jonas> that was just too bad for cryptography in practice
21:13:20 <b_jonas> or similarly, they might be able to read bits of private data in another process, regardless of whether cryptography is involved
21:14:02 <b_jonas> there are still side-channels for lots of things, but hopefully fewer practical ones
21:18:43 <esolangs> [[User:PolySaken]] https://esolangs.org/w/index.php?diff=88094&oldid=84930 * PolySaken * (+252)
21:22:59 <b_jonas> huh, odd
21:23:46 <b_jonas> they sent me an encrypted pdf file that I can't open, the pdf reader says incorrect password
21:23:49 <b_jonas> I wonder what could be wrong
21:24:42 <b_jonas> I hope it's not something stupid like I need a newer version of the PDF reader or something
21:25:56 <ais523> who's "they"? this sounds like the sort of thing that people would do if trying to infect your computer with a malicious PDF file
21:26:13 <b_jonas> ais523: no, it's a document that I do expect to receive today in email
21:26:21 <oerjan> fiendish
21:26:43 <b_jonas> in theory it could be that the one they sent me didn't arrive and some clever targetting spammer send me a similar looking email
21:26:58 <b_jonas> they are a covid PCR testing clinic
21:27:13 <b_jonas> who took PCR test sample from my body earlier today
21:27:34 <b_jonas> and this is supposed to be the paper where they officially claim that their lab analyzed the sample and as far as they know I'm not infected with covid
21:28:48 <ais523> I'm not sure what the motivation to encrypt such a PDF would be
21:29:02 <oerjan> it's health data, obviously
21:29:09 <ais523> I can understand *signing* it, though – perhaps there's some confusion between signing and encrypting
21:29:12 <ais523> oerjan: I guess
21:29:27 <b_jonas> confidential health data, they're probably required by law to encrypt it
21:29:32 <ais523> but it's very temporary health data
21:30:02 <ais523> it might be important to keep a positive test result secret – maybe you therefore have to keep the negative results secret too, to prevent people figuring it out by elimination
21:30:31 <b_jonas> ais523: or they might want to keep it secret what kind of test they did on me, since they do medical stuff other than covid PCR test
21:30:55 <b_jonas> or even who they did the test on, if I use my email address for testing my hypothetical small child
21:31:37 <b_jonas> but mostly they probably don't have separate rules for not encrypting PCR test results but encrypting other medical documents when they send it in email
21:32:21 <fizzie> I imagine if you have a lot of friends who think the whole thing is a hoax, just the fact of revealing you got a test in the first place might have consequences. I'm not surprised at all they would consider those test results confidential by default.
21:32:56 <b_jonas> fizzie: that doesn't work, since encrypting the contents while the sender is there doesn't really hide the fact that I did a test
21:33:14 <fizzie> Well, it does, because like you said, they do a lot of other things too.
21:33:26 <fizzie> Unless they put "here's your COVID test results" in the unencrypted subject line or something.
21:33:45 <b_jonas> fizzie: in theory yes, but in practice they won't evaluate most of them on a Sunday
21:34:08 <b_jonas> it could be some urgent blood test or something
21:34:22 <b_jonas> but there's a high chance that it's a covid test
21:34:33 <b_jonas> and no, the subject line and even the cleartext body is pretty generic
21:34:47 <fizzie> I wonder if there's some size-based side channel where you can distinguish positive and negative result PDFs just based on file size.
21:35:00 <fizzie> If they put a bunch of more detail in one but not the other, or something.
21:35:01 <b_jonas> it does say laboratory result, and the From address tells which lab
21:36:06 <b_jonas> fizzie: hehe, well there's a much bigger side channel where if it's positive then I'll tell my boss that I won't go into the office, plus they may be required to tell the police that I'm ordered to quarantine myself, but sure
21:37:32 -!- delta23 has quit (Quit: Leaving).
21:42:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:43:10 <fizzie> Re the other topic, I run fungot now on a KVM/qemu virtual (Alpine) system on the store room PC (itself a Debian). Previously it was running on that system directly (well, in a plain old-fashioned chroot jail). That whole computer's kind of less sensitive, but it does host some nominally private things (metrics, IRC logs, whatnot).
21:43:11 <fungot> fizzie: comments are useful. it's a lot easier. i do use perl fingerprint *could* interact badly with ick has no problem with thinking that way of doing just fnord i said ' c's brain-damaging _syntax_.'
21:45:34 <fizzie> Not that I think fungot is necessarily as problematic as HackEso. You'd probably have to be pretty motivated to do a Spectre-style attack using brainfuck (or Underload) as interpreted through a Befunge interpreter.
21:45:34 <fungot> fizzie: doesn't sound so bad. chicken and plt
21:45:55 <esolangs> [[Gluck]] N https://esolangs.org/w/index.php?oldid=88095 * PolySaken * (+523) Created page with "'''Gluck''' is a successor to [[Clart]], designed by [[User:PolySaken]] to be used for a [[Virtual Machine]]. There are a few major differences from the original Clart rules,..."
21:46:17 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88096&oldid=88095 * PolySaken * (+8)
21:48:24 <b_jonas> hehe
21:48:44 <ais523> fizzie: neither BF nor Underload has any way to read the side channel on its own, potentially unless fungot's timeouts are time-based rather than instruction-count-based
21:48:44 <fungot> ais523: he was the guy i thought you meant
21:49:33 <oerjan> fungot: do your interpreters have any zero-day vulnerabilities twh
21:49:33 <fungot> oerjan: will do. the player to start needs to be
21:50:38 -!- tromp has joined.
22:00:47 <esolangs> [[User:PolySaken]] https://esolangs.org/w/index.php?diff=88097&oldid=88094 * PolySaken * (+216)
22:02:08 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88098&oldid=88096 * PolySaken * (+10)
22:04:24 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88099&oldid=88098 * PolySaken * (+2)
22:07:55 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:10:08 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88100&oldid=88099 * PolySaken * (+33)
22:10:11 -!- earendel has quit (Quit: Connection closed for inactivity).
22:10:39 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88101&oldid=88100 * PolySaken * (+2)
22:10:54 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88102&oldid=88101 * PolySaken * (-49)
22:14:25 -!- tromp has joined.
22:45:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:46:46 -!- src has quit (Ping timeout: 252 seconds).
22:58:12 -!- tromp has joined.
23:16:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:17:59 -!- dutch has quit (Quit: WeeChat 3.2.1).
23:19:06 -!- dutch has joined.
23:22:46 -!- ais523 has quit (Quit: quit).
23:34:26 -!- arseniiv has quit (Ping timeout: 260 seconds).
2021-09-20
00:05:03 <esolangs> [[Special:Log/newusers]] create * 0utdacious * New user account
00:09:07 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88103&oldid=88091 * 0utdacious * (+349) /* Introductions */
00:45:28 <fizzie> Heh. Made an inventory of a toolbox. One of the things in there was this solder dispenser with *really* old-fashioned styling (not sure if it's actually old, or just deliberately kept retro) from a manufacturer in Hemel Hempstead. I feel like I've brought it (from Finland) back to the land of its birth.
00:46:32 <fizzie> Looks quite a bit like http://thewholegaragecatalogue.blogspot.com/2014/12/an-ersin-multicore-solder-dispenser.html
00:49:45 <esolangs> [[Sona]] N https://esolangs.org/w/index.php?oldid=88104 * 0utdacious * (+3374) Create a minimal language page for sona
00:51:20 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=88105&oldid=88067 * 0utdacious * (+11) /* S */
01:00:37 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88106&oldid=88104 * 0utdacious * (+357)
01:28:43 -!- oerjan has quit (Quit: Nite).
01:40:48 <esolangs> [[Sona]] https://esolangs.org/w/index.php?diff=88107&oldid=88106 * 0utdacious * (+1989) Added language details
01:42:10 <esolangs> [[Special:Log/upload]] upload * 0utdacious * uploaded "[[File:Sona interpreter.png]]"
01:42:51 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88109&oldid=88107 * 0utdacious * (-58)
01:43:55 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88110&oldid=88109 * 0utdacious * (+12)
01:45:21 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88111&oldid=88110 * 0utdacious * (+20)
01:46:39 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88112&oldid=88111 * 0utdacious * (+63)
01:47:17 <esolangs> [[Sona]] M https://esolangs.org/w/index.php?diff=88113&oldid=88112 * 0utdacious * (+4) /* Turing equivalence */
02:05:47 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88114&oldid=88093 * Iamn00b * (+2033)
02:07:25 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88115&oldid=88114 * Iamn00b * (+13)
02:12:08 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88116&oldid=88115 * Iamn00b * (+198)
02:17:55 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=88117&oldid=87628 * Iamn00b * (+118)
02:19:07 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=88118&oldid=88117 * Iamn00b * (+118) /* LCCBED */
02:20:33 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=88119&oldid=88118 * Iamn00b * (-16) /* LCCBED */
02:23:45 <esolangs> [[Truth-machine]] https://esolangs.org/w/index.php?diff=88120&oldid=87704 * Iamn00b * (+52) /* Implementations */
02:50:31 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88121&oldid=88116 * Iamn00b * (+0) /* Truth machine (thanks, Keymaker!) */
02:52:15 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88122&oldid=88121 * Iamn00b * (+14) /* Language overview */
02:57:56 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88123&oldid=88122 * Iamn00b * (+231) /* Instructions */
03:01:33 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88124&oldid=88123 * Iamn00b * (+2) /* Simple single-digit addition */
03:25:56 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88125&oldid=88124 * Iamn00b * (+37) /* Examples */
03:26:22 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88126&oldid=88125 * Iamn00b * (+2) /* Without comments */
03:32:41 <esolangs> [[User:Iamn00b]] https://esolangs.org/w/index.php?diff=88127&oldid=88092 * Iamn00b * (+37)
03:33:01 <esolangs> [[User:Iamn00b]] https://esolangs.org/w/index.php?diff=88128&oldid=88127 * Iamn00b * (+6)
03:33:31 <esolangs> [[User:Iamn00b]] https://esolangs.org/w/index.php?diff=88129&oldid=88128 * Iamn00b * (-7)
03:37:14 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88130&oldid=88126 * Iamn00b * (+8)
03:40:36 <esolangs> [[Staxel]] N https://esolangs.org/w/index.php?oldid=88131 * Iamn00b * (+221) Created page with "[[Staxel]] is an [[esolang]] created by [[User:Iamn00b|iamn00b]] in 2021. It works by using a combination of [[stack|stacks]] and cells (hence the name, Stack + Cell). The lan..."
04:29:57 -!- xylochoron[m] has quit (*.net *.split).
04:29:57 -!- mich181189 has quit (*.net *.split).
04:29:57 -!- FireFly has quit (*.net *.split).
04:29:57 -!- orin has quit (*.net *.split).
04:29:57 -!- MrAureliusR has quit (*.net *.split).
04:30:23 -!- oren has joined.
04:30:23 -!- mich181189 has joined.
04:30:40 -!- FireFly has joined.
04:30:43 -!- MrAureliusR has joined.
04:39:02 -!- xylochoron[m] has joined.
04:41:38 -!- Hooloovoo has quit (*.net *.split).
04:41:38 -!- fungot has quit (*.net *.split).
04:41:38 -!- V has quit (*.net *.split).
04:41:38 -!- phdu has quit (*.net *.split).
04:41:38 -!- integral has quit (*.net *.split).
04:42:05 -!- V has joined.
04:42:33 -!- integral has joined.
04:43:00 -!- Hooloovoo has joined.
04:46:03 -!- phdu has joined.
04:53:49 -!- Sgeo has joined.
06:15:48 -!- simcop2387_ has joined.
06:17:17 -!- simcop2387 has quit (Ping timeout: 265 seconds).
06:18:01 -!- simcop2387_ has changed nick to simcop2387.
06:18:51 -!- Sgeo has quit (Read error: Connection reset by peer).
06:47:10 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88132&oldid=88130 * Iamn00b * (+4)
07:00:36 -!- FireFly has quit (Quit: WeeChat 2.0.1).
07:00:56 -!- FireFly has joined.
07:01:09 -!- tromp has joined.
07:37:28 -!- imode has quit (Ping timeout: 252 seconds).
08:05:51 -!- hendursa1 has joined.
08:09:12 -!- hendursaga has quit (Ping timeout: 276 seconds).
09:15:49 -!- dutch has quit (Ping timeout: 268 seconds).
09:32:57 <b_jonas> we should start to say that someone who's sleeping as "adorn", not "asleep", because making the adjective from the same root as the verb is too boring for English, hoarder of words
09:33:12 <b_jonas> fungot, how many times a month are you adorn?
09:46:03 <esolangs> [[Staxel]] https://esolangs.org/w/index.php?diff=88133&oldid=88131 * Iamn00b * (-54)
09:54:44 -!- fungot has joined.
10:12:42 <esolangs> [[User:Iamn00b]] https://esolangs.org/w/index.php?diff=88134&oldid=88129 * Iamn00b * (+267)
10:14:01 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88135&oldid=88132 * Iamn00b * (-59)
10:15:49 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88136&oldid=88135 * Iamn00b * (+0) /* Instructions */
10:17:46 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88137&oldid=88136 * Iamn00b * (-1) /* //TODO// Allan please add content */
10:30:27 -!- Everything has joined.
10:43:11 -!- tech_exorcist has joined.
11:11:23 -!- Thelie has joined.
11:24:12 <fizzie> fungot: Can't you expose some metrics or something, I never notice when you go away?
11:24:12 <fungot> fizzie: because of the
11:24:23 <fizzie> fungot: Because of the what?
11:24:23 <fungot> fizzie: consider siscweb. they all look the same
11:28:41 -!- imode has joined.
11:41:51 -!- dutch has joined.
11:49:43 -!- leah2 has quit (Remote host closed the connection).
11:51:56 -!- leah2 has joined.
12:06:24 <int-e> fungot: how do you feel about imperials rather than metrics?
12:06:24 <fungot> int-e: yes you do,
12:06:37 <int-e> fungot: I what?
12:06:37 <fungot> int-e: or is it just for the record, it's not the computations, it the scale.
12:07:10 <int-e> fungot: it's mostly for the record
12:07:10 <fungot> int-e: anyone familiar with the scheme48 module system that makes it sound more palatable.
12:07:36 <int-e> `' palatable
12:07:38 <HackEso> No output.
12:08:06 <int-e> (No palatable quotes, figures.)
12:31:08 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88138&oldid=88103 * Iamn00b * (+42)
12:32:16 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88139&oldid=88102 * Iamn00b * (+2)
12:33:51 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88140&oldid=88139 * Iamn00b * (+46)
12:34:13 <esolangs> [[Gluck]] https://esolangs.org/w/index.php?diff=88141&oldid=88140 * Iamn00b * (+3)
12:34:40 <fizzie> fi:pala = en:piece. So a "palatable" is some sort of a modular table constructed out of smaller pieces.
12:39:12 -!- tech_exorcist has quit (Quit: see you later).
12:43:50 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88142&oldid=88105 * Iamn00b * (+13) /* L */
12:58:57 <esolangs> [[Special:Log/newusers]] create * LEOMOK * New user account
13:17:04 -!- Thelie has quit (Remote host closed the connection).
13:25:12 -!- arseniiv has joined.
13:35:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:40:09 -!- sprock has quit (Ping timeout: 268 seconds).
13:41:25 -!- tech_exorcist has joined.
13:42:42 -!- river has quit (Quit: Leaving).
13:43:48 -!- riv has joined.
13:55:22 <b_jonas> fizzie: sorry, I don't find that funny because "palatábla" is already a word in hungarian, it means slate tablet, the flat object that students used to write temporary writings on in order to learn writing, back when paper was too expensive for that
13:57:47 -!- tromp has joined.
14:12:08 -!- src has joined.
14:13:17 -!- lambdabot has quit (Remote host closed the connection).
14:15:05 -!- lambdabot has joined.
14:25:01 -!- Sgeo has joined.
14:25:04 <esolangs> [[GG]] https://esolangs.org/w/index.php?diff=88143&oldid=87911 * Iamn00b * (+9)
14:30:01 -!- delta23 has joined.
14:36:25 -!- lambdabot has quit (Remote host closed the connection).
14:37:55 -!- lambdabot has joined.
14:43:23 <int-e> @bot
14:43:23 <lambdabot> :)
14:43:51 <int-e> (upgraded to bullseye)
14:47:31 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88144&oldid=88137 * Iamn00b * (+14)
14:58:18 <int-e> . o O ( Distro upgrade... that's a lot to unpack. )
14:58:24 -!- riv has quit (Quit: Leaving).
14:59:34 <b_jonas> nice int-e
15:01:08 -!- riv has joined.
15:01:21 -!- delta23 has quit (Quit: Leaving).
15:18:50 -!- hendursa1 has quit (Quit: hendursa1).
15:19:16 -!- hendursaga has joined.
15:26:05 -!- int-e has quit (Remote host closed the connection).
15:27:01 -!- int-e has joined.
15:34:02 <int-e> good so far... let's see if email's still working
15:36:23 <int-e> yay, it works
15:37:22 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88145&oldid=88144 * Iamn00b * (+28) /* Brainf*** equivalent */
15:38:00 <int-e> Err, those status notices were meant to go to another channel.
15:47:11 -!- leah2 has quit (Remote host closed the connection).
15:47:28 -!- leah2 has joined.
16:08:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:09:25 -!- dyeplexer has joined.
16:25:59 <esolangs> [[Special:Log/newusers]] create * Viba * New user account
16:34:38 -!- sprock has joined.
16:36:27 -!- riv has quit (Quit: Leaving).
16:36:29 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88146&oldid=88138 * Viba * (+429)
16:37:56 -!- riv has joined.
16:42:08 -!- tromp has joined.
16:45:06 <int-e> `? economics
16:45:09 <HackEso> Economics is just applied numerology.
16:45:25 <int-e> . o O ( `learn Economics is the science of hindsight. )
16:46:23 -!- Everything has left.
17:24:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:27:48 -!- tromp has joined.
17:33:22 -!- sprock has quit (Ping timeout: 260 seconds).
17:43:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:45:05 -!- riv has quit (Quit: Leaving).
17:47:24 -!- riv has joined.
17:54:22 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88147&oldid=88145 * Iamn00b * (+22)
18:05:06 -!- sprock has joined.
18:27:39 -!- tromp has joined.
18:32:29 -!- dyeplexer has quit (Ping timeout: 264 seconds).
18:43:52 -!- Thelie has joined.
18:49:38 -!- vyv has joined.
19:17:38 -!- tech_exorcist has quit (Quit: see you tomorrow).
19:27:53 <esolangs> [[Special:Log/newusers]] create * Timofeyka * New user account
19:29:14 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88148&oldid=88146 * Timofeyka * (+44) /* Introductions */
19:30:06 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88149&oldid=88148 * Timofeyka * (+49) /* Introductions */
19:30:21 -!- dutch has quit (Quit: WeeChat 3.2.1).
19:30:38 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88150&oldid=88149 * Timofeyka * (+91) /* Introductions */
19:34:39 -!- Thelie has quit (Remote host closed the connection).
19:35:54 -!- dutch has joined.
19:45:00 <esolangs> [[LCCBED]] M https://esolangs.org/w/index.php?diff=88151&oldid=88147 * PythonshellDebugwindow * (-22) This is not featured
19:46:24 <esolangs> [[EPL-Main]] N https://esolangs.org/w/index.php?oldid=88152 * Timofeyka * (+886) Created page with "'''EPL Main''' is a compiled high-level assembler written in D by Timofeyka. '''EPL Main''' can be used as a regular language(like the same C), for osdev, it is useful in perf..."
19:47:17 <esolangs> [[EPL-Main]] https://esolangs.org/w/index.php?diff=88153&oldid=88152 * Timofeyka * (-886) Blanked the page
19:47:28 <esolangs> [[Special:Log/move]] move * Timofeyka * moved [[EPL-Main]] to [[EPL Main]]
19:49:02 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88156&oldid=88154 * Timofeyka * (+884)
19:50:44 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88157&oldid=88142 * Timofeyka * (+15)
19:52:48 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88158&oldid=88156 * Timofeyka * (-9)
19:54:05 -!- sprock has quit (Ping timeout: 264 seconds).
19:58:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:01:33 -!- sprock has joined.
20:10:59 -!- earendel has joined.
20:17:29 <esolangs> [[Special:Log/newusers]] create * Aboba228 * New user account
20:20:23 -!- tromp has joined.
20:25:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88159&oldid=88150 * Aboba228 * (+35) /* Introductions */
20:28:02 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88160&oldid=88158 * Aboba228 * (-470) Corrected to truth
20:54:56 -!- sprock has quit (Ping timeout: 246 seconds).
21:00:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:03:17 -!- tromp has joined.
21:06:46 -!- Lord_of_Life_ has joined.
21:07:36 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
21:09:34 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:12:34 -!- src_ has joined.
21:14:14 -!- src__ has joined.
21:15:35 -!- src has quit (Ping timeout: 246 seconds).
21:17:29 -!- src_ has quit (Ping timeout: 264 seconds).
22:18:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:21:17 -!- ais523 has joined.
22:21:43 <ais523> language design: suppose I have a language with a strict separation between things that are immutable/pure values, and object-ish things that can be changed at runtime
22:22:33 <ais523> I'm mentally playing around with a restriction in which object-ish things can't be returned from functions or stored in fields of values or object-ish things (although you can pass them by reference as function/method parameters)
22:22:58 <ais523> my question is: is this too severe a restriction for practical use? or can you write most programs that want mutable things in this form?
22:23:48 <ais523> it would solve a huge number of problems (at least three, more likely somewhere around five) if it were usable restriction, but it feels like it might make things too hard (also it feels like esoprogrammers are the right people to ask about something like this)
22:24:23 <ais523> the most obvious issue I see is with creating the objects in the first place – you'd have to start them off uninitialized, and have "initializers" as opposed to constructors
22:28:28 <b_jonas> ais523: would that be like ancient (pre-book) C, the one where you can't use structs as function parameters or returns?
22:34:59 <zzo38> I also think it can be interesting idea, having separate immutable/pure values with changeable ones, for some things it will be helpful, I think. However, for other things it isn't, so I would not expect such a thing to be mandatory for programming languages like C, although if optional it can be useful. For some kinds of programming languages (especially domain specific), being mandatory can also be useful.
22:35:35 <b_jonas> or machine code where you have a fixed number of registers for parameters and returns, and anything bigger than that you have to put somewhere in the memory, possibly on the stack
22:36:42 <zzo38> Yes, that can be the case and will be different for different instruction sets too (also depending on calling conventions, which might also vary)
22:36:42 <b_jonas> like imagine MMIX where you basically can't index the stack with a variable index, so you have to put large or variable sized structures in the memory somewhere other than the default stack
22:36:53 <ais523> <b_jonas> ais523: would that be like ancient (pre-book) C, the one where you can't use structs as function parameters or returns? ← that was one of the inspirations – even in modern C, you can't rely on returning structs to be efficient
22:37:02 <ais523> even though you can express it
22:37:26 <ais523> one of the things I dislike about Rust is that it makes it easy to do that by mistake, and also leaves it unclear as to whether it will/can be optimised or not
22:37:56 <zzo38> Free Hero Mesh a lot uses a struct of two 32-bit integers as parameters and return values, though
22:38:16 <ais523> <b_jonas> like imagine MMIX where you basically can't index the stack with a variable index, so you have to put large or variable sized structures in the memory somewhere other than the default stack ← several people, including me, want to write x86 in that sort of style to help avoid stack-based security vulnerabilities, although I think some of them have found that the performance is unacceptable
22:38:23 <zzo38> (And I think we have found that in that case at least on 64-bit x86, it is efficient)
22:38:29 -!- src__ has quit (Ping timeout: 264 seconds).
22:39:15 <ais523> zzo38: that should be fine, I think up to 16 bytes, just copying the bytes will be faster than the alternatives
22:41:57 -!- oerjan has joined.
22:42:00 -!- vyv has quit (Quit: Konversation terminated!).
22:48:58 <b_jonas> ais523: it's certainly easier now that we have vector instructions to just load large structures from the stack
22:49:09 <b_jonas> like 32 bytes with one instruction
22:49:19 <b_jonas> sure, there's the stack alignment problme
22:53:55 -!- arseniiv has quit (Ping timeout: 265 seconds).
22:59:24 <oerjan> <b_jonas> we should start to say that someone who's sleeping as "adorn", not "asleep", <-- i don't think "adorn" is adorned with that meaning hth
23:00:37 <ais523> b_jonas: I agree that it's fairly easy, but it's still an overhead
23:01:04 <ais523> as soon as the copy is slower than dereferencing the pointer on every access is (somewhere between 16 and 32 bytes, I think), then avoiding the copy is an advantage
23:01:43 <ais523> stack alignment actually isn't so much of a problem nowadays, I expect that the cost of aligning the stack is actually greater than the cost of doing unaligned block copies on the stack
23:02:29 <b_jonas> ais523: I mean very often you want to pass small fixed-sized structures on the stack, and now you can do that easily and load them to registers and such
23:02:38 <b_jonas> also just pass them in registers without the stack
23:02:53 <b_jonas> it's just a quantitative difference but helps a lot
23:03:00 <ais523> b_jonas: most of these things would be immutable, anyway
23:04:12 <ais523> copying mutable things around is weird because it makes it unclear whether the copy changes when the original does
23:04:55 <ais523> (this is another of my motivations behind making mutable things nonreturnable and only passed by reference – it would mean any copy would have to be explicit, making it completely clear whether two things shared or not)
23:07:40 <oerjan> <int-e> (upgraded to bullseye) <-- bullseye? that looked like an ordinary smiley to me hth
23:08:38 <zzo38> In PostScript also, copies are explicit (you must use the copy command, otherwise you just get an alias), although it is possible to pass a read-only alias to an object that other aliases are writable, or an alias of only a part of something. In C also, you can pass a pointer to something which is "const" even if the other one isn't
23:08:57 <b_jonas> I don't know. I like the freedom of passing and returning fixed-size objects in C++ and rust. it lets me write abstractions in a clean way, and lets the optimizer decide how to implement the copy.
23:14:07 <b_jonas> but I understand why you may want something like python or ruby where, when you pass a mutable object as an argument or return it, it always just passes the reference, and copying the mutable object is explicit
23:17:22 <b_jonas> isn't that also what Java does?
23:17:29 <b_jonas> did Java basically invent that model?
23:17:44 <b_jonas> no it didn't, because lisp AND smalltalk do it too
23:17:57 <b_jonas> Java just popularized it
23:18:29 <b_jonas> I'm not talking too much nonsense about Java, am I?
23:18:35 <ais523> the Java model is, primitives always pass by value, objects always pass by reference
23:19:16 <ais523> you can return object references from methods even if they weren't given as input – object references are primitives that can be passed by value
23:19:29 <ais523> and a garbage collector is used to handle the obvious memory handling issues this causes
23:21:21 <b_jonas> right. so the same model as python, ruby, lisp, smalltalk.
23:22:23 <ais523> this also implies that objects are never stack-allocated, they're always on the heap
23:23:18 <b_jonas> yeah. smalltalk probably invented that model.
23:23:34 <b_jonas> and I quite like what python made of it
23:24:15 <ais523> I think this model works fairly well for immutable things, but not for mutable things
23:24:34 <ais523> it leaves the aliasing situation very unclear, for example
23:24:44 <Melvar> All I can think of is the Haskell model, where the only mutable things are explicit references that require special operations to read and write, with the handle used for this itself being an immutable value.
23:25:10 <ais523> and it has issues with dangling pointers (which won't cause memory corruption, but will nonetheless still point to outdated objects that should no longer exist)
23:25:40 <ais523> Melvar: OCaml does that too, so I've worked with it extensively
23:25:51 <ais523> (one of my previous jobs was in OCaml)
23:26:09 <ais523> except, it's more commonly used in OCaml than Haskell (because it's a strict language and so the order of side effects like that is easier to understand)
23:26:56 <b_jonas> ... and then there's prolog
23:27:10 <Melvar> Right, in Haskell these operations have IO types (or ST) and thus must be explicitly sequenced, which makes them yet more different and hard to invoke by accident.
23:29:07 <Melvar> They must also be created explicitly, and the creation requires supplying an initial value, so at least there’s no uninitialized ref problem.
23:30:01 <ais523> OCaml also requires that
23:30:14 <ais523> although, sometimes you have to just put in a placeholder value, which loses half the advantage
23:30:48 <ais523> I think the solution most languages use nowadays is to allow you to create them uninitialized, but not use them unless they've become initialized along all possible control flow paths
23:31:27 <ais523> e.g. in Rust you can write «let x; if (y) { x = 4; } else { x = 5; } println!("{}", x)», but if you removed either of the assignments to x it wouldn't compile
23:31:46 <Melvar> Which requires special builtin language support.
23:31:48 <ais523> I think Java might do that too, but I'm not sure
23:31:49 <ais523> yep
23:32:07 <ais523> mutability, to me, is the sort of thing that it's reasonable for a language to special-case because it has so many consequences
23:33:02 <Melvar> Yeah in Haskell you would have to «do x <- if y then newIORef 4 else newIORef 5; print =<< readIORef x»
23:33:41 <ais523> ah right, I actually like that, you're allocating at the moment the value is known
23:35:01 <Melvar> That involves returning the ref though, so you now have to take care of that.
23:40:25 <ais523> right, it's one of those things that's very clear from the mathematical point of view, but needs compiler magic to implement efficiently behind the scenes
23:48:53 <zzo38> Yes, in Haskell there is IORef. Some programs make global variables by setting the optimizer settings and using unsafe I/O, but I odn't like that, it isn't very good mathematically and isn't how Haskell is supposed to be working, I think. An alternative I thought is to use a class, and then each global variable is named by a type that has that class
2021-09-21
00:25:12 -!- sprock has joined.
02:20:59 <earendel> immutable objects don't make sense. 1) the compiled asts of similar objects are determined by accessors. which can be limited by constructors/classes. 2) classes of objects only make sense wihen objects can have different states. (sames accessors, different values) 3) the object is responsible to handle its integrity by hising its mechanics from outside world. secrecy principle. only methods can access them. (further integrity restrictions made
02:21:00 <earendel> through private, public, internal with nheritance. 4.) considerably good idea to keep the reference to object on heap immutable.
02:22:19 <earendel> for its lifetime.
02:28:15 <earendel> i have seen a lot of memes and kids all pretending emperors immutable clothes to be the shit. now lets say you have a aquarium. and like nature. maybe walks in the forests. with sapiens sapiens of theopposite sex? if so. you are likely not gay. .. do you have a awurium?
02:28:57 <earendel> aquarium
02:30:33 <keegan> what
02:30:54 <earendel> of course. i came to the wrong place. ais523: can u link to some short comprehesible text which explains that problems at least partly.
02:31:04 <oerjan> keegan: did earendel borrow your mushrooms
02:31:10 <keegan> seems like
02:31:21 <earendel> i would have.
02:32:31 <earendel> if somebody can explain this, or change their mind its you. (and maybe me with the last part)
03:02:45 <nakilon> imagine if files had to have sex to copy?
03:03:14 <nakilon> actually cloning probably does not need it
03:04:00 <nakilon> maybe that's how Skynet will start
03:04:20 <nakilon> it will figure out the way to have sex between files so they'll evolute faster than we would be able to delete them
03:05:28 <nakilon> maybe some computer viruses are already close to it
03:21:35 <oerjan> do any computer viruses evolve automatically?
03:23:25 -!- oerjan has quit (Quit: Nite).
03:50:57 <Corbin> fungot: Do you provide the fungus? The ergot?
03:50:57 <fungot> Corbin: i guess i'm going to ask about
03:52:46 <keegan> there have definitely been artificial-life systems that include sexual reproduction
03:53:32 <keegan> and genetic algorithms / genetic programming
04:26:09 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88161&oldid=88151 * Iamn00b * (+7)
04:26:50 <earendel> it's either useful and/or sexy. which is better than just useful.
04:27:11 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88162&oldid=88161 * Iamn00b * (+2)
04:29:57 <earendel> mislead darwinists always want to break the sexy parts down to some advantage in terms of fitness. ending up hugging people to stimulate their immune system.
04:30:30 <earendel> please never do that.
04:32:21 <earendel> i <3 mammals.
04:49:33 -!- ais523 has quit (Quit: quit).
05:12:36 <Corbin> fungot: A cousin of yours?
05:12:36 <fungot> Corbin: so i guess
05:30:47 <zzo38> I invented a structure of a hash algorithm that would have infinite internal state and infinite output length (if the output is truncated, then it can be implemented by finite memory and finite time). (It can probably be explained better by the diagram, I think)
05:34:10 -!- perlbot has quit (Ping timeout: 252 seconds).
05:34:17 -!- simcop2387 has quit (Ping timeout: 264 seconds).
05:35:18 -!- simcop2387 has joined.
05:35:48 -!- perlbot has joined.
05:36:33 <zzo38> There is a similarity to Merkle-Damgard with wide pipe, but what is called "f" in the Wikipedia diagram is not used for hash output. Consider being like that but add also a infinite column of "g" functions below each "f" where the arrows point only right and down. Only half of each final "g" function (after adding the padding) is used as the output.
05:36:53 <zzo38> There is also sequence numbers added.
05:37:25 <zzo38> Maybe other improvements could also be made; do you know which one they are?
05:44:09 <zzo38> My own idea of construction also has the similarity of sponge construction that each state has the Bitrate and Capacity, although unlike a sponge construction, the states are now infinite and the squeezing is now "vertical" instead of "horizontal"
05:46:07 <zzo38> There is also HAIFA construction; I don't know how it is working but have started to read the report so that I can learn
06:28:58 <esolangs> [[Special:Log/newusers]] create * Bigbean * New user account
06:40:36 -!- tromp has joined.
07:26:10 -!- Sgeo has quit (Read error: Connection reset by peer).
07:29:10 -!- perlbot has quit (Read error: Connection reset by peer).
07:29:31 -!- perlbot has joined.
07:51:49 -!- slavfox has quit (Ping timeout: 252 seconds).
08:05:55 -!- hendursa1 has joined.
08:08:57 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:18:33 -!- slavfox has joined.
08:30:32 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88163&oldid=88160 * Timofeyka * (+470)
08:35:19 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88164&oldid=88163 * Timofeyka * (+1) /* Hello, world Program for Window */
08:37:52 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88165&oldid=88164 * Aboba228 * (+0)
08:41:12 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88166&oldid=88165 * Aboba228 * (+7)
08:42:18 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88167&oldid=88166 * Timofeyka * (-7)
08:42:52 <esolangs> [[EPL Main]] M https://esolangs.org/w/index.php?diff=88168&oldid=88167 * Aboba228 * (+7)
08:56:14 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88169&oldid=88168 * Timofeyka * (-7) Undo revision 88168 by [[Special:Contributions/Aboba228|Aboba228]] ([[User talk:Aboba228|talk]])
09:11:44 <fizzie> Huh.
09:20:02 -!- ais523 has joined.
09:20:49 <ais523> someone emailed me about an edit war going on at https://esolangs.org/wiki/EPL_Main (which seems primarily based around which Discord server to link to, but also partly around claims about what the language is useful for)
09:21:06 <ais523> but I'm going to bed soon and don't think I can sort this out on my own anyway
09:21:23 <ais523> so I'm going to mention it here in the hope that someone can think of a good resolution while I'm asleep
09:25:47 -!- riv has quit (Quit: Leaving).
09:26:50 -!- riv has joined.
09:44:46 <fizzie> That's what my "huh" was about, but I don't have any thoughts about a good resolution. The "official website" doesn't seem to actually describe the language (or link to anywhere else than the Discord) so it's hard to say how fair a criticism "it's just some macros" is, but I don't know how much that'd matter anyway, we haven't usually required any specific level of quality.
10:15:16 -!- arseniiv has joined.
10:25:34 -!- imode has quit (Ping timeout: 265 seconds).
11:08:35 -!- arseniiv has quit (Ping timeout: 246 seconds).
11:17:41 -!- Everything has joined.
11:18:11 -!- tech_exorcist has joined.
11:24:56 <int-e> fungot: are you a publicly traded company?
11:24:56 <fungot> int-e: but that sort of know how to get rotty's scheme48 ( the one that has java support?'
11:36:49 <nakilon> I hardly imagine how do people do edit war on a language that one of them made up
11:38:07 <nakilon> funny that I've actually noticed them yesterday -- two presumably russians registered within an hour
11:39:50 -!- earendel has quit (Quit: Connection closed for inactivity).
11:47:34 -!- tech_exorcist has quit (Remote host closed the connection).
11:52:00 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:55:52 -!- tech_exorcist has joined.
12:05:31 <int-e> . o O ( s/Discord[- ]server/Discord guild/g )
12:10:09 <esolangs> [[Special:Log/move]] move * Iamn00b * moved [[Staxel]] to [[User talk:Staxel]]: no idea
12:10:23 <esolangs> [[User talk:Staxel]] https://esolangs.org/w/index.php?diff=88172&oldid=88170 * Iamn00b * (-165) Replaced content with "NO"
12:12:57 <esolangs> [[Special:Log/move]] move_redir * Ais523 * moved [[User talk:Staxel]] to [[Staxel]] over redirect: blanked by author in an apparent attempt to delete it, but moved to user talk of a nonexistent user first for some reason; moving it back so that it'll be deleted under the correct name
12:12:57 <esolangs> [[Special:Log/delete]] delete_redir * Ais523 * Ais523 deleted redirect [[Staxel]] by overwriting: Deleted to make way for move from "[[User talk:Staxel]]"
12:13:22 <esolangs> [[Special:Log/delete]] delete * Ais523 * deleted "[[Staxel]]": Author request: blanked by author, no contribution from others
12:17:04 <nakilon> 06:21:35 <oerjan> do any computer viruses evolve automatically?
12:17:31 <nakilon> there are for sure viruses that edit themselves to hide from antiviruses; the question is how far can those edits go
12:17:50 <nakilon> recently rewatched a very good movie Automata, btw
12:18:07 <nakilon> for some reason it's 30% on rotten tomatoes
12:18:45 <nakilon> and at the same time people are liking such awful crap like Luna or Ex Machina
12:19:02 <nakilon> *"Moon" I mean, I guess
12:19:45 -!- tromp has joined.
12:20:28 <nakilon> anyway, that Automata movie starts with telling that the chosen robot hardcoded directives were "do not harm humans" and "do not edit yourself"
12:20:58 <nakilon> and then the second one seemed to fail
12:31:03 -!- ais523 has quit (Quit: quit).
12:31:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:37:11 -!- tromp has joined.
12:53:03 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:08:58 -!- spruit11 has joined.
13:15:49 -!- tromp has joined.
13:22:53 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
13:55:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:12:49 -!- voidio has joined.
14:13:22 -!- iovoid has quit (Ping timeout: 252 seconds).
14:14:17 -!- voidio has changed nick to iovoid.
14:14:46 -!- hendursa1 has quit (Quit: hendursa1).
14:15:10 -!- hendursaga has joined.
14:24:46 -!- tech_exorcist_ has joined.
14:26:10 -!- tech_exorcist has quit (Ping timeout: 252 seconds).
14:37:52 -!- Sgeo has joined.
15:01:19 -!- imode has joined.
15:22:07 -!- riv has quit (Quit: Leaving).
15:23:30 -!- riv has joined.
16:09:27 <b_jonas> fungot, is Bulbasaur the most popular pokémon?\
16:09:28 <fungot> b_jonas: can you create one using " assignation", whatever that means.
16:23:25 -!- vyv has joined.
16:36:46 -!- yewscion has joined.
16:39:41 <esolangs> [[)0,1(]] N https://esolangs.org/w/index.php?oldid=88174 * Rphii * (+4464) created [0,1]
16:41:48 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88175&oldid=88157 * Rphii * (+35) /* Non-alphabetic */ add [0,1]
17:01:25 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88176&oldid=88174 * Rphii * (+120) add " and ' because I totally forgot to add them
17:08:26 <fizzie> fungot: No, I think you create new Pokémen by breeding, not by assignation.
17:08:26 <fungot> fizzie: next thing you know, to learn about this technique?
17:08:47 <fizzie> fungot: I think there's material on the Internet about it.
17:08:47 <fungot> fizzie: nonetheless, we can look over the wiki submitted entries, so it was after ( x ( y 5)
17:13:19 <nakilon> fungot what videos do you watch?
17:13:20 <fungot> nakilon: ok, never mind. i'm not a mit student who figured out how. so does everyone on the committee. that's life in the absence of mutation everything's sugar :)
17:13:50 <nakilon> wow, he has continued the topic of life and mutation
17:14:37 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88177&oldid=88176 * Rphii * (+0) /* Limits */
17:15:07 <Corbin> fungot: Okay, well, don't look up Pokémon breeding videos on the Internet, okay?
17:15:07 <fungot> Corbin: grr. my typing skills are fail today,' i mean ' letrec whose right-hand sides are lambdas, then the chapters of htdp as listed where? when?
17:15:24 <fizzie> fungot: You're a piece of software, you don't even type.
17:15:24 <fungot> fizzie: i have, but ' might happen relatively soon', after all the libertarians move there. it knows paint but not corner-split
17:15:32 <Corbin> I forget where the discussion ended last time, so: Is Brainfuck concatenative?
17:16:02 <Corbin> Or maybe this should be a #concatenative discussion...
17:16:25 <riv> no its not
17:17:58 <Corbin> Don't we compose programs by concatenating their text?
17:24:17 <Corbin> riv: Perhaps this might highlight for you the category BF, whose arrows are endomorphisms on a Brainfuck machine; the elements of the machine are the tape states. There's six primitive arrows and an endofunctor which sends arrows to loops.
17:24:41 <Corbin> Then, using Von Thun's definition of concatenative language, there's a homomorphism from Brainfuck texts to BF.
17:25:29 -!- ccx_ has joined.
17:25:34 <Corbin> (This is part of the larger programme of finding nice ways to arrange languages as endomorphisms on machines, akin to The Waterfall Model.)
17:27:22 <riv> you said there's 6 primitive arrows
17:27:27 <riv> but isn't that 6 coming out of every object
17:27:32 <riv> so it's really infinity * 6
17:27:56 <riv> or im understanding the category wrong?
17:31:26 <Corbin> riv: The category only has the one object, from the typical POV. We could zoom in a little if we imagine that a machine's number of cells is flexible. Maybe you'd let me make it a dependently-typed list; for all nats N, there's a fixed number of cells N and a pointer (0, N) to the current celll.
17:32:30 <riv> ah, just one object, ok!
17:33:11 <zzo38> What is Von Thun's definition?
17:34:01 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88178&oldid=88177 * Rphii * (+0) /* Commands */ in retrospect it makes more sense like that (at least for me)
17:34:58 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88179&oldid=88178 * Rphii * (+0) /* Limits */
17:36:44 <Corbin> I summarized it at [[concatenative language]]. It's when the homomorphism from syntax to semantics sends juxtaposition/concatenation to composition.
17:36:47 <velik> https://esolangs.org/wiki/Concatenative_language
17:38:31 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88180&oldid=88179 * Rphii * (+75) /* Illegal operations */ clarify a detail
17:41:37 <riv> how does [ and ] work in terms of machine state?
17:41:42 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88181&oldid=88180 * Rphii * (-14) fix some details
17:41:50 <riv> the machine state is more than just the tape?
17:42:12 <esolangs> [[Concatenative language]] M https://esolangs.org/w/index.php?diff=88182&oldid=87539 * Corbin * (+340) /* Classical theory */ Wait a minute, *I* know Forth! *I* could include an example!
17:43:40 <Corbin> riv: Since programs are usually defined s.t. [ and ] have to match in pairs, we can promise the homomorphism that they will always form a nice little tree. And then the homomorphism sends the body of each [] pair to what I'm calling a "loop" arrow, since it takes an endomorphism and returns the endomorphism which loops the machine until/if it reaches a certain state.
17:44:43 <riv> isn;'t the loop arrow taking a function as input, unlike the arrows for + - < > then?
17:44:47 <Corbin> The classic program [-] clears the current cell. We might send - to `pred` and [-] to `loop(pred)`.
17:45:08 <riv> i.e. [ + + ] becomes loop (plus o plus)
17:45:21 <riv> ok
17:45:23 <Corbin> Yeah. Sorry for not being precise. It's an endofunctor.
17:49:29 <zzo38> It says "Since Forth relatives tend to be untyped, as in wikipedia:Open Firmware or PostScript" although PostScript does have types.
17:56:40 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88183&oldid=88181 * Rphii * (+35) /* Illegal operations */ make warning more clear
17:57:30 -!- tech_exorcist_ has quit (Quit: see you tomorrow).
17:57:37 <Corbin> zzo38: I freely admit that I suck at PostScript. Is there anything simple I can do to salvage the sentence, or does the paragraph need a rewrite?
17:57:56 <Corbin> I don't want to ignore the history, I just wasn't there for most of it.
17:59:44 <zzo38> I don't know.
18:00:46 -!- op_4 has joined.
18:02:06 <nakilon> history
18:02:14 <nakilon> imagine hard drive to be a surface of a planet
18:02:45 <nakilon> and programs analysing the unused sectors are digging the signs of previous civilisation of installed software and data
18:03:40 <nakilon> civilisations migrate between disks like between planets
18:04:22 <nakilon> humanity gotta find another hard drive before this one is dead
18:05:04 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88184&oldid=88183 * Rphii * (+189)
18:05:45 <nakilon> I think I just made up another apocalyptic plot for a book that I write in some alternative reality where I'm a writer
18:08:52 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88185&oldid=88184 * Rphii * (+0) /* Initialization */
18:09:05 -!- sprock has quit (Ping timeout: 264 seconds).
18:11:02 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88186&oldid=88185 * Rphii * (-16) /* Overflowing */
18:12:19 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88187&oldid=88186 * Rphii * (+0) /* Commands */ plus and minus do make more sense....
18:16:38 <zzo38> I can answer questions about PostScript if you have a specific question, but I do not know what to write in that article.
18:17:37 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88188&oldid=88187 * Rphii * (-66) /* Commands */
18:18:01 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88189&oldid=88188 * Rphii * (+24) /* Overflowing */ clarification
18:23:35 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88190&oldid=88189 * Rphii * (+68) /* Illegal operations */ make warning even more clear
18:25:46 <esolangs> [[User:Rphii]] M https://esolangs.org/w/index.php?diff=88191&oldid=86192 * Rphii * (+54) /* My Languages */
18:27:27 -!- arseniiv has joined.
18:30:00 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88192&oldid=88190 * Rphii * (+24) /* Commands */
18:31:24 <esolangs> [[Concatenative language]] M https://esolangs.org/w/index.php?diff=88193&oldid=88182 * Corbin * (-201) /* Classical theory */ Strike incorrect sentence.
18:31:40 <Corbin> zzo38: I've just removed it. Thanks for pointing it out!
18:39:45 -!- riv has quit (Quit: Leaving).
18:41:01 -!- riv has joined.
18:43:38 -!- sprock has joined.
18:50:14 -!- Trieste_ has joined.
18:50:30 -!- Trieste has quit (Ping timeout: 260 seconds).
18:52:17 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88194&oldid=88192 * Rphii * (-1134) now it is perfect
18:56:27 <esolangs> [[)0,1(]] https://esolangs.org/w/index.php?diff=88195&oldid=88194 * Rphii * (+1134) Undo revision 88194 by [[Special:Contributions/Rphii|Rphii]] ([[User talk:Rphii|talk]]) it was so perfect it would have been useless
18:57:57 <nakilon> 21:52 "now it is perfect"
18:58:08 <nakilon> 21:56 Undo revision...
19:00:11 <nakilon> who made the colors for esolangs bot? I like them
19:00:13 -!- Trieste_ has changed nick to Trieste.
19:00:30 <nakilon> but I don't understand if it's because I'm used to seeing them or because they are really good
19:05:12 -!- yewscion has quit (Remote host closed the connection).
19:28:07 <fizzie> They're actually the MediaWiki defaults, from https://github.com/wikimedia/mediawiki/blob/master/includes/rcfeed/IRCColourfulRCFeedFormatter.php
19:28:23 <fizzie> It's not even customizable.
19:40:41 <esolangs> [[Nabd]] N https://esolangs.org/w/index.php?oldid=88196 * BlueOkiris * (+3524) Created page with "== Description == A simple, functional esoteric programming language The name is an acronym standing for "Not A Brainf**k Derivative." [https://github.com/blueOkiris/nabd C..."
19:52:53 -!- sprock has quit (Ping timeout: 264 seconds).
20:04:32 -!- vyv has quit (Quit: Konversation terminated!).
20:19:47 -!- sprock has joined.
20:25:14 -!- Thelie has joined.
20:54:35 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
20:55:31 -!- Lord_of_Life has joined.
21:06:50 -!- Lord_of_Life_ has joined.
21:07:47 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
21:08:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:09:22 -!- sprock has quit (Ping timeout: 265 seconds).
21:19:01 -!- Everything has quit (Quit: leaving).
21:27:57 <esolangs> [[A returns a]] https://esolangs.org/w/index.php?diff=88197&oldid=84360 * Jetison333 * (+659) Added interpreter and cleaned up a few bugs in listed programs
21:31:39 <esolangs> [[Befunk]] https://esolangs.org/w/index.php?diff=88198&oldid=84711 * Stasoid * (+0) /* Language overview */
21:35:31 <nakilon> https://www.reddit.com/r/adventofcode/comments/pskz43/create_a_private_leaderboard_before_the_next_aoc/
21:35:46 <nakilon> what is this thing? do we have it for #esolangs ?
21:41:45 -!- shachaf has quit (Ping timeout: 265 seconds).
21:42:22 -!- shachaf has joined.
21:45:05 -!- Thelie has quit (Remote host closed the connection).
21:48:12 <fizzie> I don't remember if we made one. We definitely talked about it though.
21:50:47 <fizzie> I thing my thinking was, the global leaderboard is okay in terms of not causing any undue pressure, because I can never get on it anyway, because the puzzle publication time is kind of maximally pessimal and I'm never awake when it happens (I think it's 5am here). But if we had a private leaderboard for a group this small, it'd be different, and then I'd feel like I have to try to compete, and
21:50:49 <fizzie> that's annoying.
21:51:17 <fizzie> But I might've still joined if someone did set it up. But maybe the people who mostly talked about it had other channels' leaderboards already.
21:52:25 <fizzie> I was accidentally awake at 5am for one of the puzzles, and actually did get on the global leaderboard, but I didn't like the time pressure aspect of it. I like the puzzles more as a way of relaxing.
21:54:57 <fizzie> The way it works, AIUI, is that any one user can create a single private leaderboard for any purpose.
21:58:40 -!- riv has quit (Read error: Connection reset by peer).
22:21:41 -!- oerjan has joined.
22:56:18 -!- earendel has joined.
23:37:20 <fizzie> Heh, trying to do inventory of things, found an 8 MB CompactFlash card.
23:37:43 <fizzie> With my current camera, you could fit between 0 and 1 photos on it. Except it uses SD cards rather than CF cards.
23:40:43 <nakilon> "not causing any undue pressure, because I can never get on it anyway" -- hehe, same
23:42:01 <nakilon> I tried like 2-3 times
23:42:23 <nakilon> solve it in 10 minutes and all the top is sub 5, solve it in 5 min and top is sub 2...
23:42:47 <nakilon> I won't even finish reading the task in 2 minutes
23:45:00 <fizzie> I'm #10 (for two stars, #50 for one) of https://adventofcode.com/2019/leaderboard/day/10 but it was really stressful, kind of a "type in Python like a rabid monkey" style. I think that's the totality of my points for all of AoC.
2021-09-22
00:01:07 -!- sprock has joined.
00:02:33 <nakilon> I guess this was the year when I tried to get into the leaderboard https://i.imgur.com/lIVdKhY.png
00:02:53 <nakilon> so yeah, three times
00:03:52 <nakilon> unfortunately these stats don't show how many people tried to get into it too
00:04:29 <nakilon> being 120th among 10000 does not say much because most of them were solving it offline along the day
00:04:41 <nakilon> probably
00:07:44 <nakilon> I could approximate the curve if I had solved every task in different amounts of hours though
00:08:04 <nakilon> for example by having several fake accounts submitting with different delays
00:08:29 -!- arseniiv has quit (Ping timeout: 264 seconds).
00:57:57 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88199&oldid=88034 * Spargle * (+2) /* note: when printing a string like this: !B !L !A !H, you must put a space in between each character. */
01:22:40 -!- earendel has quit (Quit: Connection closed for inactivity).
01:50:47 <zzo38> HAIFA construction also has a sequence number, too.
02:09:37 -!- Melvar has quit (Quit: WeeChat 3.2).
02:13:46 -!- dutch has quit (Quit: WeeChat 3.3).
02:15:20 -!- dutch has joined.
02:20:38 -!- iovoid has quit (Remote host closed the connection).
02:29:33 -!- iovoid has joined.
02:47:42 -!- Melvar has joined.
02:49:53 -!- oerjan has quit (Quit: Nite).
04:06:14 -!- earendel has joined.
04:09:01 <esolangs> [[Infinite Vector]] https://esolangs.org/w/index.php?diff=88200&oldid=60593 * B jonas * (+3328) /* Computational class */ Turing completeness proof
04:09:57 <esolangs> [[Infinite Vector]] https://esolangs.org/w/index.php?diff=88201&oldid=88200 * B jonas * (-10)
04:10:53 <esolangs> [[Infinite Vector]] https://esolangs.org/w/index.php?diff=88202&oldid=88201 * B jonas * (+8)
05:17:41 -!- op_4 has quit (Ping timeout: 252 seconds).
05:18:26 -!- op_4 has joined.
05:24:26 <zzo38> I have a 16 MB CompactFlash card, which I have occasionally used although not much. (I don't really like SD and think that CF is better. However, a feature of SD that I like is the write protect switch, which the newer ones don't have anyways, as far as I know.)
07:08:40 -!- Sgeo has quit (Read error: Connection reset by peer).
07:11:40 -!- riv has joined.
07:28:39 -!- earendel has quit (Quit: Connection closed for inactivity).
08:00:38 -!- simcop2387 has quit (Read error: Connection reset by peer).
08:00:48 -!- perlbot has quit (Read error: Connection reset by peer).
08:05:37 -!- hendursa1 has joined.
08:08:42 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:10:29 -!- perlbot has joined.
08:10:46 -!- riv has quit (Quit: Leaving).
08:12:30 -!- simcop2387 has joined.
08:15:16 -!- archenoth has quit (Ping timeout: 252 seconds).
08:19:47 -!- imode has quit (Ping timeout: 246 seconds).
08:21:23 -!- riv has joined.
08:38:03 -!- benji has quit (Remote host closed the connection).
08:38:22 -!- benji has joined.
10:33:53 <sknebel> Also sadly a reader feature, not something in the card logic
10:36:32 -!- tech_exorcist has joined.
10:39:55 <fizzie> If it was good enough for floppy disks... wasn't the write protect notch in those pretty much the same?
10:41:43 <fizzie> Okay, admittedly there isn't really any "logic" in a floppy it could be a part of, unlike an SD card.
11:07:26 <int-e> now if only FDDs had had scratch protection
11:07:32 <int-e> and protection against misaligned heads
11:07:46 <int-e> :)
11:07:59 <fizzie> And digital rights management for unauthorized reads.
11:08:16 <int-e> Ah I wouldn't go that far.
11:08:32 <riv> nakilon, ""When you have a problem, build two solutions - a deep Bayesian transformer running on multicloud Kubernetes and a SQL query built on a stack of egregiously oversimplifying assumptions. Put one on your resume, the other in production. Everyone goes home happy.""
11:08:57 <int-e> I really don't miss floppies at all... there's no nostalgia there, just memories of data loss.
11:10:53 <int-e> A big part of which was probably because of buying cheap floppies (which, in retrospect, probably used the bare minimum of whatever the magnetizable stuff on the disk was, and sometimes less than that), but a lot of it was using bad FDDs (first at school, later at university).
11:15:11 <fizzie> Not ready reading drive A \ Abort, Retry, Fail?
11:17:08 <int-e> That needs to come with a trigger warning.
12:31:45 <b_jonas> and the worst part is, they just use a single small xor checksum, so you can sometimes end up with corrupted data without noticing
12:32:56 <b_jonas> (and yes, that's an xor checksum after one of those 5 to 8 or similar encodings, but still)
13:07:25 -!- arseniiv has joined.
13:21:53 -!- delta23 has joined.
13:34:39 <nakilon> riv where's the blockchain part
13:35:10 <nakilon> fungot are you deep Bayesian transformer?
13:35:11 <fungot> nakilon: the project i'm working on learning ' em, cowboy wallet was made in hong kong by montgomery clift!
13:36:53 -!- hanif has joined.
13:38:15 <riv> nakilon, lol
13:40:11 <nakilon> btw about blockchain
13:41:13 <nakilon> people are asking me "why can't you find a job? you are a programmer -- you should have billions of freelance requests" -- did they see those requests?! they ALL are about building scam websites and scam telegram bots
13:42:38 <nakilon> the last one I've reported is "translate the article from Russian to English" and the article tell how Elon Musk has left Tesla to join some crypto currency and you should invest into it -- the simplest google search tells it's a years old scam copypasta
13:43:02 <nakilon> but the support said "that's not a violation of any rule, maybe they need the article for personal needs"
13:52:53 <int-e> sure... typical homework exercise.
13:56:20 -!- sprock has quit (Ping timeout: 252 seconds).
13:56:33 -!- archenoth has joined.
13:59:42 -!- hanif has quit (Ping timeout: 276 seconds).
14:11:55 -!- Sgeo has joined.
14:12:45 -!- Everything has joined.
14:30:35 -!- riv has quit (Quit: Leaving).
14:32:28 -!- riv has joined.
14:41:43 -!- Koen has joined.
15:00:01 <nakilon> I guess only now macOS stopped supporting 32 binaries
15:00:22 <nakilon> one binary stopoed working and I've realised it was compiled in 2007
15:05:38 -!- imode has joined.
15:13:51 -!- hanif has joined.
15:57:56 -!- hendursa1 has quit (Quit: hendursa1).
15:58:00 -!- hanif has quit (Ping timeout: 276 seconds).
15:58:19 -!- hendursaga has joined.
16:06:48 <esolangs> [[User:BlueOkiris]] https://esolangs.org/w/index.php?diff=88203&oldid=77277 * BlueOkiris * (+12)
16:09:06 <esolangs> [[Datums]] https://esolangs.org/w/index.php?diff=88204&oldid=77318 * BlueOkiris * (-1) /* Hello World Explanation */
16:10:06 -!- arseniiv has quit (Ping timeout: 260 seconds).
16:11:22 <esolangs> [[Datums]] https://esolangs.org/w/index.php?diff=88205&oldid=88204 * BlueOkiris * (+1) /* Hello World Explanation */
16:16:18 -!- arseniiv has joined.
16:26:55 -!- hanif has joined.
16:28:02 -!- delta23 has quit (Quit: Leaving).
16:30:38 -!- sprock has joined.
16:32:55 -!- dutch has quit (Quit: WeeChat 3.3).
16:59:45 -!- Thelie has joined.
17:03:12 -!- arseniiv has quit (Ping timeout: 265 seconds).
17:06:24 -!- Koen has quit (Remote host closed the connection).
17:08:17 -!- arseniiv has joined.
17:11:46 -!- dutch has joined.
17:36:01 -!- tech_exorcist has quit (Quit: see you tomorrow).
17:36:21 -!- hanif has quit (Quit: quit).
17:50:25 -!- Thelie has quit (Remote host closed the connection).
18:04:56 -!- sprock has quit (Ping timeout: 252 seconds).
18:22:48 -!- sprock has joined.
18:33:15 -!- riv has quit (Quit: Leaving).
18:34:27 -!- riv has joined.
18:53:27 -!- hendursa1 has joined.
18:56:06 -!- hendursaga has quit (Ping timeout: 276 seconds).
18:59:13 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88206&oldid=88175 * Starwort * (+16) Add StackCell, move STACKOMP to its alphabetical place
19:00:57 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88207&oldid=88196 * BlueOkiris * (+95) /* Standard Library Functions */
19:10:33 <esolangs> [[StackCell]] N https://esolangs.org/w/index.php?oldid=88208 * Starwort * (+13476) Fill in page based on the project's own README
19:12:34 -!- riv has quit (Read error: Connection reset by peer).
19:13:02 -!- hendursa1 has quit (Quit: hendursa1).
19:13:27 -!- hendursaga has joined.
19:13:58 -!- riv has joined.
19:23:57 <esolangs> [[StackCell]] https://esolangs.org/w/index.php?diff=88209&oldid=88208 * Starwort * (-6060) Change MarkDown to wiki syntax
19:24:57 <esolangs> [[StackCell]] M https://esolangs.org/w/index.php?diff=88210&oldid=88209 * Starwort * (+62) Fix syntax at the top of the page, add link
19:25:30 <esolangs> [[StackCell]] M https://esolangs.org/w/index.php?diff=88211&oldid=88210 * Starwort * (+2) Fix italics
19:26:08 <esolangs> [[StackCell]] M https://esolangs.org/w/index.php?diff=88212&oldid=88211 * Starwort * (+7) Add missing word
19:30:37 -!- hendursa1 has joined.
19:33:48 -!- hendursaga has quit (Ping timeout: 276 seconds).
19:45:32 <esolangs> [[StackCell]] https://esolangs.org/w/index.php?diff=88213&oldid=88212 * Starwort * (-2) Add language data card and categories
19:46:50 <esolangs> [[StackCell]] https://esolangs.org/w/index.php?diff=88214&oldid=88213 * Starwort * (+749) Add language data card and categories (for real)
19:48:08 <esolangs> [[StackCell]] https://esolangs.org/w/index.php?diff=88215&oldid=88214 * Starwort * (+25) Somehow forgot the stack-based category
19:49:16 <esolangs> [[User:Starwort]] N https://esolangs.org/w/index.php?oldid=88216 * Starwort * (+62) Create my user page ig
19:50:53 <esolangs> [[StackCell]] https://esolangs.org/w/index.php?diff=88217&oldid=88215 * Starwort * (+160) Note that a u32 version exists
19:54:18 -!- sprock has quit (Ping timeout: 265 seconds).
19:58:37 <arseniiv> `unidecode ∗ ⋆
19:58:39 <HackEso> ​[U+2217 ASTERISK OPERATOR] [U+0020 SPACE] [U+22C6 STAR OPERATOR]
19:58:44 -!- sprock has joined.
19:59:11 <arseniiv> ah, that one is a star, I didn’t see it clearly when entering in another place
20:23:30 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88218&oldid=88199 * Spargle * (+20) /* Ark: The esolang that is actually kind of useful. */
20:35:17 <nakilon> don't you guys call * star too?
20:35:32 <zzo38> Sometimes they do.
20:36:26 <nakilon> Ancient Greek ἀστερίσκος, asteriskos, "little star"
20:37:03 <nakilon> "In English, an asterisk is usually five-pointed in sans-serif typefaces, six-pointed in serif typefaces," -- woah
20:54:43 -!- sprock has quit (Ping timeout: 265 seconds).
21:02:59 -!- oerjan has joined.
21:07:49 -!- Lord_of_Life_ has joined.
21:09:05 -!- Lord_of_Life has quit (Ping timeout: 264 seconds).
21:10:35 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:29:06 -!- arseniiv_ has joined.
21:31:56 -!- arseniiv has quit (Ping timeout: 265 seconds).
21:51:48 -!- hendursa1 has quit (Quit: hendursa1).
21:52:52 -!- hendursaga has joined.
22:00:09 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88219&oldid=88207 * BlueOkiris * (+16) /* Truth Machine: */
22:15:13 <esolangs> [[Special:Log/newusers]] create * OliveIsAWord * New user account
22:24:45 -!- sprock has joined.
22:28:20 -!- sprock has quit (Read error: Connection reset by peer).
22:30:19 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88220&oldid=88159 * OliveIsAWord * (+252) uwu
22:31:57 -!- sprock has joined.
22:40:34 <esolangs> [[User:OliveIsAWord]] N https://esolangs.org/w/index.php?oldid=88221 * OliveIsAWord * (+72) Created page with "Hi :) ==Created Esolangs== None so far! But I hope to change that soon."
22:44:24 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88222&oldid=88195 * Rphii * (+54) /* Overflowing */ make clear that it also applies to *
22:46:28 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88223&oldid=88222 * Rphii * (+24) /* Variables */ grammar
23:00:21 -!- Guest21 has joined.
23:17:11 -!- Guest21 has quit (Quit: Client closed).
23:21:40 <esolangs> [[Banana Scheme]] M https://esolangs.org/w/index.php?diff=88224&oldid=45459 * OliveIsAWord * (+62) added a link to the Scheme Wikipedia article
23:59:57 -!- dutch has quit (Quit: WeeChat 3.3).
2021-09-23
00:21:09 <esolangs> [[Unary]] M https://esolangs.org/w/index.php?diff=88225&oldid=86616 * Fmbalbuena * (-1) small bug fixed
00:31:28 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
00:51:17 -!- dutch has joined.
01:58:47 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88226&oldid=88162 * Iamn00b * (+4)
02:29:12 -!- brettgilio has joined.
02:37:29 -!- oerjan has quit (Quit: Nite).
02:39:26 <esolangs> [[Deutsch]] https://esolangs.org/w/index.php?diff=88227&oldid=79682 * Iamn00b * (+10)
02:47:52 -!- Everything has quit (Quit: leaving).
03:21:46 <zzo38> I think the file name of the latest Magic: the Gathering rules has made a mistake (although the file name still works)
04:26:05 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88228&oldid=88226 * Iamn00b * (-6)
04:28:30 <esolangs> [[LCCBED]] https://esolangs.org/w/index.php?diff=88229&oldid=88228 * Iamn00b * (+4) /* Truth machine (thanks, Keymaker!) */
04:30:57 <esolangs> [[Truth-machine]] https://esolangs.org/w/index.php?diff=88230&oldid=88120 * Iamn00b * (-12) /* LCCBED */
06:33:47 <esolangs> [[Pxem]] https://esolangs.org/w/index.php?diff=88231&oldid=83865 * Iamn00b * (+11) /* Echo (or cat program in exact) */
06:35:07 <esolangs> [[Pxem]] https://esolangs.org/w/index.php?diff=88232&oldid=88231 * Iamn00b * (+33) /* Examples */
07:13:34 -!- Sgeo has quit (Read error: Connection reset by peer).
08:01:09 -!- Koen has joined.
08:05:40 -!- hendursa1 has joined.
08:08:27 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:25:42 <zzo38> Another idea of Magic: the Gathering card: Target spell's owner copies that spell, and then the original spell is countered.
08:53:33 -!- riv has quit (Quit: Leaving).
08:54:34 -!- riv has joined.
09:22:09 <esolangs> [[Special:Log/newusers]] create * PoetLuchnik * New user account
09:45:24 -!- riv has quit (Quit: Leaving).
09:46:35 -!- Koen has quit (Quit: Leaving...).
09:46:58 -!- riv has joined.
10:06:10 <int-e> restartable interrupt, eh
11:38:52 -!- arseniiv_ has joined.
11:40:22 -!- tech_exorcist has joined.
13:03:03 -!- hanif has joined.
13:05:14 <esolangs> [[Baba Is You]] https://esolangs.org/w/index.php?diff=88233&oldid=83993 * SunnyMoon * (+72) These are not verbs! Rather adjectives, or in Baba jargon, properties.
13:08:30 <esolangs> [[Baba Is You]] https://esolangs.org/w/index.php?diff=88234&oldid=88233 * SunnyMoon * (+73) There is no point trying to fit the entire Baba dictionary, which is HUGE, on one page.
13:09:12 <esolangs> [[Baba Is You]] https://esolangs.org/w/index.php?diff=88235&oldid=88234 * SunnyMoon * (+0) Oh wait, wait, wait...
13:35:28 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88236&oldid=88220 * PoetLuchnik * (+111)
13:36:10 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88237&oldid=88236 * PoetLuchnik * (-5)
13:36:57 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88238&oldid=88237 * PoetLuchnik * (+188)
13:37:47 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88239&oldid=88238 * PoetLuchnik * (-138)
13:39:24 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88240&oldid=88239 * PoetLuchnik * (+51)
13:39:57 <b_jonas> `olist 1244
13:40:00 <HackEso> olist <https://www.giantitp.com/comics/oots1244.html>: shachaf oerjan Sgeo FireFly boily nortti b_jonas
13:40:27 -!- hendursa1 has quit (Quit: hendursa1).
13:40:56 -!- hendursaga has joined.
13:42:01 <esolangs> [[BracketsLang]] N https://esolangs.org/w/index.php?oldid=88241 * PoetLuchnik * (+1923) create BracketsLang page
13:44:12 <int-e> Ugh, that SunnyMoon edit...
13:44:29 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88242&oldid=88206 * PoetLuchnik * (+19) append BracketsLang to the list (B character)
13:47:54 <b_jonas> ah no, sorry, that one isn't new
13:47:56 <b_jonas> darn
13:47:59 <b_jonas> `unolist
13:47:59 <HackEso> unolist? No such file or directory
13:50:07 <int-e> Oh. The edit is fine, I misunderstood the format of those headers.
13:52:09 <esolangs> [[BracketsLang]] https://esolangs.org/w/index.php?diff=88243&oldid=88241 * PoetLuchnik * (+146) append categories
13:52:57 -!- hanif has quit (Ping timeout: 276 seconds).
13:54:15 -!- tech_exorcist has quit (Remote host closed the connection).
13:54:42 -!- tech_exorcist has joined.
13:57:07 -!- dutch has quit (Quit: WeeChat 3.3).
14:01:19 <esolangs> [[Baba Is You]] https://esolangs.org/w/index.php?diff=88244&oldid=88235 * Int-e * (-28) more consistent terminology
14:02:53 -!- dutch has joined.
14:10:36 -!- Everything has joined.
14:25:27 -!- Sgeo has joined.
15:04:26 <esolangs> [[JSFuck]] https://esolangs.org/w/index.php?diff=88245&oldid=43901 * Icecream17 * (-6) flat is shorter in bf. fix typo
15:20:30 <esolangs> [[Talk:Zirconium]] https://esolangs.org/w/index.php?diff=88246&oldid=81905 * Strohtaler * (+304)
15:21:32 <esolangs> [[Talk:Zirconium]] https://esolangs.org/w/index.php?diff=88247&oldid=88246 * Strohtaler * (+19)
15:23:08 <esolangs> [[Talk:Zirconium]] M https://esolangs.org/w/index.php?diff=88248&oldid=88247 * Strohtaler * (-2)
15:24:08 -!- hanif has joined.
15:26:07 <esolangs> [[Talk:Zirconium]] M https://esolangs.org/w/index.php?diff=88249&oldid=88248 * Strohtaler * (+17)
15:37:03 -!- Thelie has joined.
15:45:37 -!- dutch has quit (Quit: WeeChat 3.3).
15:47:22 -!- dutch has joined.
15:54:40 <esolangs> [[Talk:Zirconium]] M https://esolangs.org/w/index.php?diff=88250&oldid=88249 * Strohtaler * (-18)
16:02:09 -!- xylochoron[m] has quit (Remote host closed the connection).
16:02:09 -!- phdu has quit (Write error: Connection reset by peer).
16:02:10 -!- craigo[m] has quit (Remote host closed the connection).
16:02:11 -!- Deewiant has quit (Write error: Connection reset by peer).
16:02:12 -!- jryans has quit (Write error: Connection reset by peer).
16:04:05 -!- xylochoron[m] has joined.
16:09:02 -!- arseniiv_ has quit (Ping timeout: 246 seconds).
16:09:05 -!- fungot has quit (Ping timeout: 260 seconds).
16:10:45 -!- hendursaga has quit (Ping timeout: 276 seconds).
16:12:16 -!- hendursaga has joined.
16:14:18 -!- arseniiv_ has joined.
16:15:12 -!- jryans has joined.
16:15:12 -!- Deewiant has joined.
16:15:12 -!- phdu has joined.
16:15:12 -!- craigo[m] has joined.
17:05:19 -!- Thelie has quit (Remote host closed the connection).
17:12:02 -!- sprock has quit (Ping timeout: 252 seconds).
17:33:07 -!- hanif has quit (Quit: quit).
17:36:52 -!- tech_exorcist has quit (Quit: see you tomorrow).
17:52:36 -!- dyeplexer has joined.
17:56:30 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88251&oldid=88020 * AceKiron * (+280)
18:14:10 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88252&oldid=88251 * AceKiron * (+861)
18:15:38 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88253&oldid=88252 * AceKiron * (+165) /* Matrix operants */
18:16:02 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88254&oldid=88253 * AceKiron * (+104) /* Datatypes */
18:22:11 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88255&oldid=88254 * AceKiron * (+236) /* Datatypes */
18:22:18 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88256&oldid=88255 * AceKiron * (+0) /* Datatypes */
18:22:54 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88257&oldid=88256 * AceKiron * (-398) /* Datatypes */
18:24:05 -!- dyeplexer has quit (Ping timeout: 252 seconds).
18:34:03 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88258&oldid=88219 * BlueOkiris * (+41) /* Description */
18:34:48 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88259&oldid=88258 * BlueOkiris * (+87) /* Description */
18:35:40 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88260&oldid=88242 * BlueOkiris * (+11) /* N */
18:38:06 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88261&oldid=88259 * BlueOkiris * (-7) /* Hello World: */
18:38:41 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88262&oldid=88261 * BlueOkiris * (-28) /* Truth Machine: */
18:39:33 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88263&oldid=88262 * BlueOkiris * (-28) /* Instructions */
18:45:41 -!- arseniiv_ has quit (Ping timeout: 250 seconds).
18:46:48 -!- arseniiv_ has joined.
19:07:28 -!- delta23 has joined.
19:09:05 -!- imode has quit (Quit: WeeChat 3.1).
19:10:35 -!- sprock has joined.
19:13:05 -!- Thelie has joined.
19:21:46 <nakilon> why is !+[] true in JS?
19:22:31 <nakilon> oh, because +[] is 0 _<>
19:22:56 -!- imode has joined.
19:25:33 -!- Everything has left.
19:34:22 <b_jonas> nakilon: it's because the [] zeroes the current cell then the + adds one to it so it ends up as 1 which is true
19:35:03 <nakilon> I mean it's JS, not BF ..D
19:35:16 <nakilon> what does you mean zeroes the cell?
19:36:22 <b_jonas> ] only exits when the cell is zero\
19:36:42 <b_jonas> so yeah, it more like ensures that the cell is zero
19:36:46 <b_jonas> rather than zeroes it
19:50:59 -!- sprock has quit (Ping timeout: 252 seconds).
20:25:42 <fizzie> Why is it always a hemisphere, a semiconductor and a demilich, but never, say, a demisphere, a hemiconductor or a semilich? Who gets to decide these things?
20:27:06 <nakilon> it's all полу- in Russian
20:27:17 <nakilon> полушарие, полупроводник
20:27:28 <nakilon> Harry Potter was полукровка
20:28:03 <nakilon> it reminds me the ir-/il-/in- but IIRC there was some algorithm
20:28:04 <fizzie> It's also all "puoli-" in Finnish, which I imagine must be from the same source.
20:28:23 <fizzie> (Well, I don't know if there's an official Finnish word for a demilich.)
20:28:39 <nakilon> how is "половина" ("half") in Finnish?
20:28:50 <nakilon> *a half
20:29:03 <fizzie> "puolikas", I would say.
20:29:56 <nakilon> IIRC the default was ir-
20:30:18 <zzo38> I don't know why is like that in English, but I think those words may be from other language instead of English, I don't know what the conventions are for such word, or if they will be difference English (sometimes the combinations was made up to use English even if the original word wasn't, though)
20:30:25 <nakilon> though weird but I can never google anything what we were taught about English in the university
20:31:59 <nakilon> (oh the "algorithm" was just to double the letter I suppose)
20:32:11 <b_jonas> fizzie: isn't "demilich" a red herring though, because it's not half a lich, just as a hematologist isn't half a tologist, and semantics isn't half an antics
20:32:13 <nakilon> but why ir as a default...
20:32:47 <nakilon> hema is blood
20:33:30 <fizzie> b_jonas: I know it's not a "lesser lich", but I thought the name still had to do with the "half" meaning of the prefix, as in, there's less of the lich left in physical terms. But you can substitute in demigod if you prefer.
20:33:46 <fizzie> That one's "puolijumala" in Finnish.
20:34:43 <zzo38> Some word may look like similar even though it isn't, and also other way around too
20:34:52 <nakilon> demigod
20:35:00 <b_jonas> fizzie: yes, a demigod is a better example
20:35:15 <nakilon> oh fizzie already said that
20:36:16 <b_jonas> a hematologist, a dermatologist, and a semitologist walk into a bar...
20:37:00 <nakilon> sintologist?
20:38:13 <nakilon> there should be some compressor-friendly version of English
20:38:14 <b_jonas> no, a semiotist
20:38:23 <nakilon> where all three words use the same prefix
20:39:49 <b_jonas> or a semirai with a full length sword and a half sword
20:43:06 <b_jonas> do demographers draw demons, or are they half a grapher?
20:44:08 <b_jonas> fungot, what does a demographer do? is it like a seismograph but for demons?
20:46:37 <fizzie> Hmm. Off-topic, but do you happen to know if a DVI-D to HDMI cable can do 2560x1440 @ 60Hz? I feel like probably not, because the DVI end of the cable just has single link pins, and I know single-link regular DVI maxes out at 1920x1200 @ 60 Hz or 2560x1200 @ 30 Hz. But then again, regular HDMI 1.3 had that clock speed bump that can make its single link go that far.
20:47:55 -!- Thelie has quit (Remote host closed the connection).
20:48:18 <b_jonas> I've used a DVI to HDMI converter, but not with such high resolution.
20:53:07 <b_jonas> wait, you can have a hemisphere and a semicircle, right? do we know which prefix to use for a sphere in any number of dimensions? it's probably odd versus even, that's how some formulas about high dimensional spheres work
20:53:37 <keegan> https://en.wiktionary.org/wiki/hemisemidemiquaver
20:55:46 <b_jonas> I'm reminded of https://en.wikipedia.org/wiki/Volume_of_an_n-ball
20:57:45 <riv> tasty!
20:58:26 <riv> looking at that graph
20:59:03 <riv> I feel like in the 7d universe the beings are all like "Well the universe simply has to be 7D because that's the number that maximizes the volume of a sphere)
20:59:09 -!- skidz`` has joined.
20:59:25 <riv> i misread the graph, s/7/5/g
20:59:37 <skidz``> good day fine sirs.
21:00:01 <skidz``> where is the channel for regular esoterics (humbug)?
21:01:52 <fizzie> I believe EFnet #esoteric is one such.
21:02:35 <b_jonas> `welcome skidz``
21:02:38 <HackEso> skidz``: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
21:03:02 <b_jonas> fizzie: were you the one who recently tried to check if that welcome message is still appropriate?
21:03:21 <b_jonas> and if it's not, will we have to do a second set of updates in ten languages, like we did with the https url?
21:03:26 <fizzie> Well, insofar as having a look at the netsplit.de stats on various #esoteric channels.
21:03:44 <fizzie> I think the DALnet one might be effectively dead now, but I don't know if it's worth updating.
21:04:14 <skidz``> fizzie: thanks! :)=
21:04:18 -!- skidz`` has left.
21:04:43 <fizzie> And in any case it has EFnet first, which as far as I can determine without actually joining might be the leading non-programming esoterica #esoteric, bridged with its IRCnet and UnderNet iterations.
21:06:05 <riv> https://mathoverflow.net/questions/8258/whats-a-nice-argument-that-shows-the-volume-of-the-unit-ball-in-mathbb-rn-a
21:08:56 -!- Lord_of_Life_ has joined.
21:09:50 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
21:10:16 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:13:04 <b_jonas> ``` \? welcome.tr # this one appears to only mention Dalnet, and seems to have no command in bin associated. I'm trying to see around https://logs.esolangs.org/freenode-esoteric/2013-10-27.html#lrj how we even acquired a Turkish version.
21:13:06 <HackEso> Ezoterik programlama dili tasarım ve dağıtım için uluslararası merkezi hoş geldiniz! <https://esolangs.org/>: Daha fazla bilgi için, bizim wiki göz atın. (Esoterica diğer tür için, irc.dal.net üzerinde #esoteric deneyin.)
21:17:04 <b_jonas> riv: isn't it seven-dimensional because seven is the smallest dimension of an exotic sphere?
21:18:02 <riv> :O
21:18:09 <riv> well i misread the graph, 7 is for surface area
21:18:16 <riv> and that does seem like a funny coincidence
21:29:36 -!- Oshawott has joined.
21:33:05 -!- archenoth has quit (Ping timeout: 264 seconds).
22:10:58 -!- oerjan has joined.
22:13:19 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
22:27:44 <esolangs> [[5D Brainfuck With Multiverse Time Travel]] M https://esolangs.org/w/index.php?diff=88264&oldid=81701 * OliveIsAWord * (-12) changed wikipedia hyperlink
23:07:39 <oerjan> argh
23:13:07 <oerjan> the abusefilter test page seems to have broken
23:14:27 <oerjan> fizzie: ais523:
23:14:56 <oerjan> i am trying to change filter 7 so it doesn't catch file uploads (which seem to be a good fraction of its hits)
23:15:35 <oerjan> i hope i've done it right but the test page is broken.
23:15:54 <oerjan> (it seems to break on other filters too, so probably not my fault)
23:16:43 <fizzie> `Fatal exception of type "TypeError"` hmm.
23:16:44 <HackEso> Fatal? No such file or directory
23:16:50 <fizzie> HackEso: Don't you start now.
23:20:00 <oerjan> hm something strange in the filter history
23:23:16 <oerjan> hm i think the extension just added a new option for messaging
23:23:38 <fizzie> I sneaked a peek at the stack trace of the error, and it says https://0x0.st/-YXC.txt which I don't much understand.
23:23:54 <fizzie> "Argument 2 -- must be an instance of PermissionManager, instance of MediaWiki\Permissions\PermissionManager given".
23:27:23 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=88265&oldid=88021 * Oerjan * (+13) Testing that my filter change didn't break anything important
23:27:35 <fizzie> I think that is something that was fixed by https://github.com/wikimedia/mediawiki-extensions-AbuseFilter/commit/2dd1a4c
23:27:48 <fizzie> So it'll probably get fixed next time I do a MediaWiki upgrade.
23:27:52 <oerjan> ic
23:28:02 <fizzie> Maybe I'll try to get one in this weekend or something, it's been a while.
23:28:06 <oerjan> well, i haven't completely broken the wiki, so all is good :P
23:30:29 <oerjan> <b_jonas> ah no, sorry, that one isn't new <-- NOOO
23:40:42 <oerjan> <nakilon> IIRC the default was ir- <-- if you're talking about what i think, it's from the preposition in, so in- ought to be the default. also im- sometimes happens in addition to the ones you listed.
23:41:07 <oerjan> the others are just assimilation to following consonant
23:46:02 <oerjan> oh also that applies to when the prefix is latin. if it's a _germanic_ in-, it may not assimilate, e.g. "input"
23:46:45 <oerjan> oh and i'm confusing myself, that's not just the preposition in, but also the negation particle, which has the same form in latin.
23:47:12 <oerjan> (and is presumably cognate to germanic english un-)
23:54:33 -!- sprock has joined.
2021-09-24
00:30:56 -!- dbohdan3 has joined.
00:31:38 -!- dbohdan has quit (Read error: Connection reset by peer).
00:53:22 -!- KinuTheDragon has joined.
00:53:34 <KinuTheDragon> hi
00:54:10 -!- KinuTheDragon has quit (Client Quit).
01:01:46 <fizzie> Bye.
01:02:51 <Corbin> Curses, was AFK. Can't believe I let this happen~
01:27:12 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88266&oldid=88263 * BlueOkiris * (+29) /* Truth Machine: */
01:27:41 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88267&oldid=88266 * BlueOkiris * (+81) /* Standard Library Functions */
01:36:50 -!- dutch has quit (Quit: WeeChat 3.3).
01:46:07 <Melvar> There is fun natlang talk in here every now and then. Would it be okay if I shared funfacts on this topic?
01:48:59 <Corbin> Yeah, probably.
01:52:36 <Melvar> Okay. In Tagalog, “Bababa ba?” – “Bababa.” is a coherent conversation. “baba” is a verb root meaning “descend”. To put it into the contemplative aspect, actor focus form, you reduplicate the first syllable to make “bababa” “will descend”. Furthermore, “ba” is a polar question particle.
01:53:01 <Melvar> So, “Going down?” – “Going down.”
01:57:44 <fizzie> There's a similar Finnish example that often gets trotted out, though I find it pretty contrived.
01:57:49 <fizzie> It goes: "Kokoo koko kokko kokoon. Koko kokkoko kokoon? Koko kokko kokoon."
01:59:31 <fizzie> Translates roughly as: "Gather up the whole bonfire. What, the whole bonfire together? [Yes,] the whole bonfire together."
02:00:14 <fizzie> (There's several variants, some even more implausible.)
02:02:35 <Melvar> In the case of my example, my understanding is that at least the question may well be heard on an elevator over there, though the answer is more likely to go “opo” (“yes”, politely).
02:10:06 <fizzie> For the Finnish one, I think the closest it gets to real-world use would be that probably the "koko kokko" (whole bonfire) fragment happens occasionally. We do like a bonfire, especially around midsummer eve. And maybe someone's even added the -ko interrogative suffix to the noun sometime, at least on its own.
02:13:08 -!- dutch has joined.
02:14:18 -!- Everything has joined.
02:35:12 -!- river has joined.
02:35:18 -!- riv has quit (Remote host closed the connection).
02:43:36 <Melvar> fizzie: I suspect that some parts of that are related. See perhaps German “sammeln”:“gather”, “gesamt-”:“whole, entire”, “zusammen”:“together” (also English “gather” and “together”) which share a root.
02:43:54 -!- Everything has left.
02:45:46 -!- hendursaga has quit (Quit: hendursaga).
02:46:16 -!- hendursaga has joined.
03:11:12 -!- delta23 has quit (Quit: Leaving).
03:28:05 -!- delta23 has joined.
03:48:30 -!- delta23_ has joined.
03:48:36 -!- delta23 has quit (Killed (NickServ (GHOST command used by delta23_))).
03:48:38 -!- delta23_ has changed nick to delta23.
03:52:25 <nakilon> reminds me
03:53:59 <nakilon> nvm
04:06:58 -!- delta23 has quit (Quit: Leaving).
04:10:26 -!- delta23 has joined.
04:34:52 -!- oerjan has quit (Quit: Nite).
07:13:23 -!- Sgeo has quit (Read error: Connection reset by peer).
08:05:19 -!- hendursa1 has joined.
08:08:51 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:29:33 <esolangs> [[Special:Log/newusers]] create * Pyautogui * New user account
08:31:28 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88268&oldid=88240 * Pyautogui * (+190)
08:35:42 <river> https://twitter.com/thorimur/status/1441145008376070144 i guess this is kind of eso
09:27:35 -!- tromp has joined.
09:33:14 -!- delta23 has quit (Quit: Leaving).
09:52:50 -!- Oshawott has quit (Ping timeout: 260 seconds).
09:56:34 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:58:34 -!- tromp has joined.
11:35:00 -!- arseniiv_ has joined.
12:17:26 -!- tech_exorcist has joined.
12:17:38 <river> https://en.wikipedia.org/wiki/Fluidics
12:34:18 <esolangs> [[Register]] N https://esolangs.org/w/index.php?oldid=88269 * WhyNot? * (+117) Created page with "Register is a language designed to be as close to the programming language of basic computers. Created by [[WhyNot?]]"
12:35:24 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88270&oldid=88269 * WhyNot? * (+5)
12:40:14 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88271&oldid=88270 * WhyNot? * (+144)
12:40:50 <esolangs> [[User:WhyNot?]] https://esolangs.org/w/index.php?diff=88272&oldid=77878 * WhyNot? * (+15)
12:42:51 <esolangs> [[Works in progress]] https://esolangs.org/w/index.php?diff=88273&oldid=82431 * WhyNot? * (+0)
12:44:19 -!- earendel has joined.
13:41:27 -!- Sgeo has joined.
13:50:38 -!- tech_exorcist has quit (Quit: Goodbye).
13:50:59 -!- tech_exorcist has joined.
13:51:27 <nakilon> when you have a trouble with a protocol https://www.youtube.com/watch?v=foT9rsHmS24
13:53:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:53:56 -!- sprock has quit (Ping timeout: 252 seconds).
13:56:53 <int-e> What if I have trouble with HTTP and TLS
14:01:13 -!- dutch has quit (Quit: WeeChat 3.3).
14:02:30 -!- dutch has joined.
14:15:32 -!- delta23 has joined.
14:18:18 -!- tromp has joined.
14:22:18 -!- archenoth has joined.
14:41:50 -!- hendursa1 has quit (Quit: hendursa1).
14:42:15 -!- hendursaga has joined.
14:46:59 -!- archenoth has quit (Read error: Connection reset by peer).
14:47:34 <nakilon> int-e kill it
14:47:51 <nakilon> I guses
14:49:57 <esolangs> [[3.725254969642999e-321]] https://esolangs.org/w/index.php?diff=88274&oldid=77492 * PixelatedStarfish * (+9)
14:50:09 <esolangs> [[3.725254969642999e-321]] https://esolangs.org/w/index.php?diff=88275&oldid=88274 * PixelatedStarfish * (+2)
14:50:19 <esolangs> [[3.725254969642999e-321]] https://esolangs.org/w/index.php?diff=88276&oldid=88275 * PixelatedStarfish * (-1)
14:50:58 -!- archenoth has joined.
14:52:39 -!- tech_exorcist has quit (Quit: Goodbye).
14:54:50 -!- tech_exorcist has joined.
15:05:08 -!- faxlore has quit (Ping timeout: 268 seconds).
15:06:14 -!- faxlore has joined.
15:24:01 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88277&oldid=88271 * WhyNot? * (+124)
15:27:41 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88278&oldid=88277 * WhyNot? * (+222)
15:55:47 -!- sprock has joined.
16:19:08 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:22:23 -!- chiselfuse has quit (Remote host closed the connection).
16:22:50 -!- chiselfuse has joined.
16:37:44 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88279&oldid=88278 * WhyNot? * (+176)
16:56:15 -!- tromp has joined.
17:00:00 -!- sprock has quit (Ping timeout: 265 seconds).
17:17:32 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:28:30 -!- sprock has joined.
17:32:50 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
17:42:37 -!- arseniiv_ has joined.
17:57:20 -!- tromp has joined.
18:00:32 -!- tech_exorcist has quit (Quit: see you tomorrow).
18:03:57 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88280&oldid=88260 * WhyNot? * (+15)
18:47:51 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88281&oldid=88257 * AceKiron * (+138)
18:49:02 <esolangs> [[School]] M https://esolangs.org/w/index.php?diff=88282&oldid=88281 * AceKiron * (-31)
18:49:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:54:19 -!- delta23 has quit (Quit: Leaving).
18:55:08 <esolangs> [[School]] https://esolangs.org/w/index.php?diff=88283&oldid=88282 * AceKiron * (+250)
18:57:53 -!- delta23 has joined.
18:59:33 -!- tromp has joined.
18:59:48 <esolangs> [[School]] M https://esolangs.org/w/index.php?diff=88284&oldid=88283 * AceKiron * (+72)
19:08:59 -!- Thelie has joined.
19:10:02 -!- sprock has quit (Ping timeout: 260 seconds).
19:18:37 -!- sprock has joined.
19:22:50 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
19:28:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:26:14 -!- Thelie has quit (Remote host closed the connection).
20:46:57 <esolangs> [[Register]] https://esolangs.org/w/index.php?diff=88285&oldid=88279 * WhyNot? * (+69)
20:47:25 <esolangs> [[Register]] M https://esolangs.org/w/index.php?diff=88286&oldid=88285 * WhyNot? * (+4)
20:54:08 -!- sprock has quit (Ping timeout: 252 seconds).
20:54:28 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
20:54:56 -!- Lord_of_Life has joined.
21:09:23 -!- Lord_of_Life_ has joined.
21:10:38 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
21:12:08 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:17:36 -!- tromp has joined.
21:28:54 -!- delta23 has quit (Quit: Leaving).
21:32:53 <nakilon> looks like I'm finally fucked up and gonna be deported to the most contagious country in Europe
21:34:44 <Corbin> Being in the USA gives me a funny vision of the EU. Like, what contagions could there be? Healthcare? Trains? Football? Dance music? Pasta?
21:35:32 <nakilon> Ukraine is probablythe least vaccinated country
21:35:49 <nakilon> because of 1. being officially the poorest in Europe
21:36:07 <nakilon> and 2. refused to buy Russian Sputnik-V, because "fucknig Russians"
21:36:55 <Corbin> Ah. That sounds frustrating and unfortunate. I wish that they could take our extra vaccines; we have idiots here who refuse to take it.
21:36:59 <nakilon> that is the government's nationalistic position since the first orange revolution
21:37:43 <nakilon> the worst helathcare since then, they are even disbandind psychiatric clinics
21:39:07 <nakilon> also my region of Ukraine is the most affected with Tuberculosis
21:39:31 <nakilon> pretty sure already closed the local tubdispanser
21:39:54 <Corbin> TB is scary.
21:40:26 <Corbin> ...Huh, why do folks call it "TB"? Weird abbreviation.
21:40:32 <nakilon> literally the worst country to get to nowadays
21:41:00 <nakilon> idk, we short it as tubik unofficially probably
21:42:27 <nakilon> 90s were the time of Ukraine going to hell because of collapse, losing ethnic traditions due to the same reason, and stopping almost all the industry due to that also
21:44:10 <nakilon> so the tuber., drugs, alcoholism, poverty -- it was all in one motion
21:45:06 <nakilon> the only job parent had was fishing in local river, that fish also was the main in the ration
21:45:43 <nakilon> tried to sell it on market to change to some other food
21:46:36 <nakilon> only in 2000s some businessmen started creating vacancies in replace of the soviet industry so dad got some job
21:48:03 <keegan> a lot of european countries still have more covid deaths per capita than the USA
21:48:14 <keegan> although ukraine is pretty low
21:48:22 <keegan> assuming the numbers here are to be trusted https://www.worldometers.info/coronavirus/#countries
21:48:44 <nakilon> bought computer, etc., and boom! Yushenko sponsored by US got the power, gathered the corrupted team, who fucked up the economy again; Yulia Timoshenko did some maсhinationsб gas became expensive while own resources were not digged out
21:49:04 <keegan> nakilon: where are you being deported from
21:49:18 <nakilon> Ukraine data is too fake even compared to Russian data that is lowered by x5
21:49:27 <nakilon> from Moscow
21:52:04 <nakilon> Russia is all computerized so you can fake only on the stage of diagnosis and such; Ukraine is pretty much the stone age, you can say they can't even count own citizens
21:52:42 <nakilon> they actually refuse to count because it's important to hide the rate and direction of emigration
21:53:09 <nakilon> I hate that I'm fucked up beacuse of others; those who could not stay at fucking home and/or wear masks
21:53:27 <nakilon> being the most caring about the health of the society you get nothing in return
21:54:02 <nakilon> holding door in front of weaker people, helping them online, telling when they drop something on street, etc. -- fuck this shit
21:54:11 <nakilon> people do not care of each other
21:54:57 <keegan> yeah
21:55:02 <keegan> i'm pretty frustrated too
21:55:16 <keegan> so many people in the US refuse to get vaccinated even though it's easy and free
21:55:24 <keegan> then they take up hospital spots, then they die
21:55:24 -!- src has joined.
21:55:30 <nakilon> only two borrowed me money this summer and now if I lose the ability to get decent income Idk how long I'll return it
21:56:47 <nakilon> probably "borrow" is the opposite word
21:56:56 <nakilon> lend
21:57:03 <keegan> yeah
21:57:44 <keegan> conjugated there as "lent"
21:57:50 <nakilon> just few days ago finally found one company that has not a full time job for me; but again, if I get deported they'll not able to continue paying
21:57:52 <keegan> or "loaned" would work too
21:58:28 <nakilon> "part-time"? fuck my english
21:58:45 <Hooloovoo> yeah, part-time
21:59:22 <Hooloovoo> you're understandable, which is what really matters
21:59:26 <Hooloovoo> :)
21:59:52 <Corbin> Your English is better than my Russian!
22:00:34 <nakilon> sounds good lol
22:06:01 <nakilon> damn I won't even have a shower, lol, only a summer shower but it's autumn
22:08:10 <nakilon> lol https://svspb.net/novosti/stoimosti-gaza/
22:08:52 <nakilon> last two columnds -- amount of natural gas to buy for average income and the price per 1000m^3
22:09:42 <nakilon> Ukraine/Russian ratioas are 7/1 and 4/1
22:14:12 <nakilon> https://www.statista.com/statistics/274326/big-mac-index-global-prices-for-a-big-mac/
22:17:37 <esolangs> [[When the Imposter is Sus]] N https://esolangs.org/w/index.php?oldid=88287 * Maikeru51 * (+280) A stub to be updated later on!
22:19:04 <esolangs> [[When the Imposter is Sus]] M https://esolangs.org/w/index.php?diff=88288&oldid=88287 * Maikeru51 * (+10) Fixed the links
22:21:32 -!- sprock has joined.
22:22:20 <esolangs> [[When the Imposter is Sus]] M https://esolangs.org/w/index.php?diff=88289&oldid=88288 * Maikeru51 * (-18) Fixed the links... Again.
22:22:39 <esolangs> [[When the Imposter is Sus]] M https://esolangs.org/w/index.php?diff=88290&oldid=88289 * Maikeru51 * (-6)
22:33:51 <nakilon> the stupidest thing is how I got into this situation
22:34:08 -!- dutch has quit (Quit: WeeChat 3.3).
22:34:18 <nakilon> I gave money to my mother because she wanted to buy a flat very much -- she bought and does not even live in it
22:34:37 <nakilon> and I miscalculated if I'll be fine with the rest I had
22:35:07 <nakilon> because then I needed money to legalise myself for another year
22:36:09 <nakilon> what is even more stupid -- she bought it in Russia
22:36:52 <nakilon> so my money went to buy a flat in Russia and resulted in me being unable to continue be in it
22:44:21 <nakilon> dude speaks esoteric language: https://www.youtube.com/watch?v=COhSs7o1XLU
22:48:43 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:52:38 -!- dutch has joined.
23:31:27 -!- oerjan has joined.
2021-09-25
00:57:03 <nakilon> what the heck
00:58:03 <nakilon> instead of the vaccination and proper treatment in Ukraine after I come from another country I'm supposed to install the mobile app https://play.google.com/store/apps/details?id=ua.gov.diia.quarantine&hl=ru&gl=US that regularly checks my geolocation and asks me to make selfies
00:58:50 <nakilon> like a prison for 2 weeks after border crossing
01:25:50 -!- src has quit (Ping timeout: 252 seconds).
01:27:51 <keegan> australia is doing that too
01:29:23 <keegan> they also got rid of electronic privacy https://tutanota.com/blog/posts/australia-surveillance-bill/
01:30:28 <keegan> police can hack your devices and add/remove/modify data without a judicial warrant
01:33:07 <keegan> https://www.theatlantic.com/ideas/archive/2021/09/pandemic-australia-still-liberal-democracy/619940/
01:36:14 <keegan> the idea that govt can suspend freedom of movement for years whenever there's a disease going around is a bit terrifying, even if it really does save lives
01:37:01 <keegan> i'm glad we never reached that level of police state in the USA
01:37:26 <keegan> I wish people would have worn masks and taken basic precautions but whatever
02:05:28 <esolangs> [[User:Maikeru51]] M https://esolangs.org/w/index.php?diff=88291&oldid=88077 * Maikeru51 * (+41) Now links to a stub article.
02:39:30 <b_jonas> you know how you can stroke a pet dog to display affection to it? the English verb "stroke" for this still sounds wrong to me. it sounds like "strike" and "choke", which you'd do to a dog that you don't like, and also "stroke" the noun which means a medical condition when the blood circulation in your brain goes wrong
02:40:53 <b_jonas> or maybe you can only *pet* a dog, and *stroke* a cat?
02:41:31 <fizzie> That sounds plausible. But you can scratch either.
02:41:55 <b_jonas> can you stroke a human?
02:42:10 <fizzie> Not on a PG13 channel.
03:09:24 <fizzie> Bah. I've got a homegrown status bar (had a bad case of NIH), and while it does recognize whenever the monitor configuration changes, sometimes it gets confused by the ordering, and then the XMonad workspace name indicators will get swapped, with monitor A's status bar showing the info for monitor B and vice versa.
03:28:37 <shachaf> I seem to remember that the APIs for these things were a mess.
03:29:00 <b_jonas> "the APIs for these things were a mess." => very likely
03:29:29 <shachaf> Oh man, I don't even have multiple monitors, and my xrandr code is still way complicated.
03:29:47 <shachaf> I think all I wanted was accurate DPI information or something.
03:32:23 <esolangs> [[Talk:Image]] https://esolangs.org/w/index.php?diff=88292&oldid=54003 * Maikeru51 * (+254) /* Incorrectly Categorized? */ new section
03:33:28 <fizzie> started trying to use Xpra, and the DPI is all out of whack.
03:34:28 <fizzie> It uses the physical size of one monitor (25" 16:9), but the logical size of the whole desktop (2x 2560x1440) somehow.
03:34:51 <fizzie> Even when given an explicit --dpi flag on both sides.
03:35:31 <fizzie> So you get like a NxM DPI figure where N = M/2.
03:35:47 <fizzie> Or the other way around maybe.
03:39:38 <zzo38> I also have my own status bar but I don't have multiple monitors so I don't have that problem (and don't know how to fix it either)
03:40:38 <fizzie> FWIW my bar's a GTK thing, so the APIs are pretty streamlined.
04:07:29 <nakilon> keegan not sure if you should beware of police but I worked in idwell -- Austrian company that provides a web portal for landlords and dwellers
04:09:35 <nakilon> company registered in Austria but the product is outsourced to a team in Moscow, and the security was to "big" that when repos access token to was exposed to hackers who hacker our build server I told the boss to revoke/regenerate it but multiple time but he didn't bother to
04:09:47 <nakilon> *who hacked
04:10:01 <nakilon> *it multiple times but
04:10:30 <nakilon> *was so "big"
04:10:33 <nakilon> damn, too many typos
04:10:43 <nakilon> I need a sleep
04:11:15 <nakilon> also the repo had db password or salt
04:11:33 <nakilon> I don't remember exactly -- some secrets that are generated at start in django
04:12:25 <nakilon> was also funny how when I noticed that and told that it shouldn't be in repo they said "mehm you are rubyist, what can you know"
04:12:34 <nakilon> why did I even care...
04:13:03 <nakilon> last 2-3 years really give me lots of hints to stop caring about people
04:13:21 <nakilon> and companies I work at
04:14:16 <nakilon> oh you said australia, not austria, lol
04:14:21 <nakilon> yes, I need a sleep
04:21:16 -!- oerjan has quit (Quit: Nite).
04:35:10 -!- archenoth has quit (Ping timeout: 260 seconds).
05:19:01 -!- perlbot has quit (Read error: Connection reset by peer).
05:19:02 -!- simcop2387 has quit (Ping timeout: 260 seconds).
05:22:33 -!- perlbot has joined.
05:23:03 -!- simcop2387 has joined.
06:42:23 -!- rodgort has quit (Quit: Leaving).
06:43:42 -!- tromp has joined.
06:44:59 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88293&oldid=88267 * BlueOkiris * (+2) /* Instructions */
06:59:12 -!- rodgort has joined.
07:03:39 -!- Sgeo has quit (Read error: Connection reset by peer).
07:07:01 -!- Sgeo has joined.
07:25:25 -!- immibis has quit (Ping timeout: 252 seconds).
07:30:03 -!- immibis has joined.
07:53:02 -!- immibis has quit (Ping timeout: 252 seconds).
08:07:47 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88294&oldid=88293 * BlueOkiris * (+3) /* Truth Machine: */
08:39:46 -!- immibis has joined.
09:01:47 -!- Sgeo has quit (Read error: Connection reset by peer).
09:35:20 -!- imode has quit (Ping timeout: 252 seconds).
11:19:11 -!- impomatic has joined.
11:19:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:28:33 -!- tech_exorcist has joined.
11:43:11 -!- impomatic has quit (Quit: impomatic).
11:43:33 -!- impomatic has joined.
11:47:42 -!- impomatic has quit (Client Quit).
11:48:01 -!- impomatic has joined.
12:01:32 -!- tech_exorcist has quit (Remote host closed the connection).
12:01:58 -!- tech_exorcist has joined.
12:18:13 -!- arseniiv_ has joined.
12:18:42 -!- tromp has joined.
12:39:58 <esolangs> [[User:Fizzie]] M https://esolangs.org/w/index.php?diff=88295&oldid=82213 * Fizzie * (+0) Post-upgrade edit test for 1.36.1.
12:40:00 -!- impomatic has quit (Quit: impomatic).
12:41:49 <fizzie> Hmm. It would seem to work. And so does the AbuseFilter test page again too.
12:41:52 <fizzie> oerjan: ^
12:57:53 -!- delta23 has joined.
13:06:09 <esolangs> [[When the Imposter is Sus]] M https://esolangs.org/w/index.php?diff=88296&oldid=88290 * PythonshellDebugwindow * (+8) stub, fix cat, link
13:07:08 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=88297&oldid=88280 * PythonshellDebugwindow * (+31) /* W */ add
13:30:21 <int-e> `? device
13:30:24 <HackEso> A device is a browser session. Please verify your device.
14:32:00 -!- river has quit (Quit: Leaving).
14:38:04 -!- riv has joined.
14:59:49 <esolangs> [[Categorial]] https://esolangs.org/w/index.php?diff=88298&oldid=83119 * Iamn00b * (+0)
15:14:11 -!- imode has joined.
15:21:09 -!- riv has quit (Read error: Connection reset by peer).
15:23:01 -!- riv has joined.
15:43:38 -!- impomatic has joined.
15:50:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:52:30 <esolangs> [[User:Iamn00b/Sandbox]] N https://esolangs.org/w/index.php?oldid=88299 * Iamn00b * (+82) Created page with "==WIP [[stack]] esolang no. 1== infinite Fibonacci sequence 0 1 [.d@ + .x(-1) .o]"
16:01:17 -!- impomatic has quit (Quit: impomatic).
16:01:40 -!- impomatic has joined.
16:05:55 -!- impomatic has quit (Client Quit).
16:06:15 -!- impomatic has joined.
16:22:02 -!- tromp has joined.
16:23:57 <esolangs> [[User:Iamn00b/Sandbox]] https://esolangs.org/w/index.php?diff=88300&oldid=88299 * Iamn00b * (+260) /* WIP stack esolang no. 1 */
16:45:27 <fizzie> Ugh. Now the same monitor is both DP-2.1 and DP-4. :/
16:46:27 <fizzie> I have this setup where, for the work laptop, I connect one monitor using USB-C, and then (to avoid having to plug in two cables) the other one uses DisplayPort multi-stream transport. So the newer monitor with USB-C on it has been set up to support that.
16:47:26 <fizzie> For the desktop, there's no need to ever plug or unplug anything, so I've just had the newer monitor connected over HDMI, and the older monitor directly over DisplayPort (as DP-4).
16:48:59 <fizzie> But the GPU has just one HDMI hole, and now I needed that for something else. It's got 2 or 3 DisplayPort outputs, though, so I switched the new monitor from HDMI to DP. But since it's got that multi-stream thing configured, it's now showing up as two displays. So now DP-2.8 is the new monitor, DP-2.1 is the old monitor through the new one, and DP-4 is the old monitor directly.
16:49:36 <fizzie> I don't think the new monitor is sophisticated enough to be configured in "offer DisplayPort MST through USB-C but not through regular DisplayPort" mode though.
16:50:42 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:51:42 <fizzie> Well, I guess I can just not use DP-2.1. And hope that no automation tries to spread the desktop over all "three" screens.
16:52:55 <b_jonas> I use only one monitors, but I do plug a lot of cables when I bring the work machine home
16:54:00 <b_jonas> I plug in the power, monitor on HDMI, headphones, mouse receiver, and I keep plugging the keyboard on and off betwen the work and play machines
16:55:56 <fizzie> I've got the laptop's USB things routed through the monitor too. But only for the laptop, so I do need to also swap one USB hub between two extension leads, and press a button on the mouse to switch channels. I just don't need to physically plug more than one thing into the laptop.
16:57:59 <fizzie> Hmm, I wonder if the monitor could also do a thing like "when picture input is from USB-C, offer USB peripherals over that cable; otherwise offer them through the USB-B uplink port to the desktop". Or if it does that by default.
16:58:25 <fizzie> There's nothing in the menus. I've seen one monitor where you could map peripherals conditionally based on which input is selected though.
16:59:27 <fizzie> Also, even if it supported that, I'd end up with the extra USB wired ethernet dongle moving over to the desktop when I switch inputs, which would be a little odd.
17:03:35 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
17:06:16 -!- impomatic has quit (Quit: impomatic).
17:06:39 -!- impomatic has joined.
17:15:48 -!- impomatic has quit (Quit: impomatic).
17:16:10 -!- impomatic has joined.
17:25:11 -!- arseniiv_ has joined.
17:28:19 <int-e> hmmm "HDMI hole"
17:43:03 -!- Koen has joined.
17:50:46 <fizzie> Technical term.
17:55:19 <Corbin> It's like the PHY/NIC distinction in Ethernet controllers; an HDMI "sink" or "source" is the software which has configured the hole to behave in a certain way.
18:18:44 -!- immibis_ has joined.
18:19:19 -!- tromp has joined.
18:19:34 -!- earendel has quit (Quit: Connection closed for inactivity).
18:21:16 -!- impomatic has quit (Quit: impomatic).
18:21:36 -!- impomatic has joined.
18:21:41 -!- immibis has quit (Ping timeout: 252 seconds).
18:25:48 -!- impomatic has quit (Client Quit).
18:26:07 -!- impomatic has joined.
18:29:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:34:40 -!- tromp has joined.
18:34:53 <esolangs> [[Special:Log/newusers]] create * Nazeem * New user account
18:36:16 -!- impomatic has quit (Quit: impomatic).
18:36:36 -!- impomatic has joined.
18:38:16 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88301&oldid=88268 * Nazeem * (+16) /* Introductions */
18:39:44 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88302&oldid=88301 * Nazeem * (+34) /* Introductions */
18:40:19 -!- Sgeo has joined.
18:45:20 <esolangs> [[User:Nazeem]] N https://esolangs.org/w/index.php?oldid=88303 * Nazeem * (+55) Created page with "'''Muhammed Nazeem''' co-founder of ''Buckthorn Dev'' ."
18:45:48 -!- impomatic has quit (Quit: impomatic).
18:46:10 -!- impomatic has joined.
18:47:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:48:11 -!- tromp has joined.
18:56:16 -!- impomatic has quit (Quit: impomatic).
18:56:36 -!- impomatic has joined.
18:57:56 -!- brettgilio has quit (Quit: Leaving...).
18:59:14 -!- brettgilio has joined.
19:00:24 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:00:48 -!- impomatic has quit (Client Quit).
19:01:07 -!- impomatic has joined.
19:06:15 -!- impomatic has quit (Quit: impomatic).
19:08:42 -!- immibis_ has changed nick to immibis.
19:23:33 -!- tromp has joined.
19:24:15 -!- impomatic has joined.
19:27:59 -!- impomatic has quit (Client Quit).
19:28:25 -!- impomatic has joined.
19:34:41 -!- Koen has quit (Quit: Leaving...).
19:40:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:57:02 -!- tromp has joined.
20:01:09 -!- Sgeo_ has joined.
20:03:59 -!- Sgeo has quit (Ping timeout: 252 seconds).
20:05:12 -!- Sgeo has joined.
20:08:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:08:21 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
20:18:33 -!- impomatic has quit (Quit: impomatic).
20:18:55 -!- impomatic has joined.
20:23:05 -!- impomatic has quit (Client Quit).
20:23:28 -!- impomatic has joined.
20:37:16 -!- immibis has quit (Read error: Connection reset by peer).
20:37:38 -!- immibis has joined.
20:38:33 -!- impomatic has quit (Quit: impomatic).
20:38:56 -!- impomatic has joined.
20:43:05 -!- impomatic has quit (Client Quit).
20:43:26 -!- impomatic has joined.
20:46:55 -!- tech_exorcist has quit (Ping timeout: 252 seconds).
20:47:50 -!- immibis_ has joined.
20:50:30 -!- immibis has quit (Ping timeout: 260 seconds).
21:10:00 -!- Lord_of_Life_ has joined.
21:11:02 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
21:11:17 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:12:55 -!- Thelie has joined.
21:51:42 -!- Thelie has quit (Remote host closed the connection).
22:30:25 -!- earendel has joined.
22:46:48 -!- tromp has joined.
22:53:56 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
23:08:33 -!- impomatic has quit (Quit: impomatic).
23:08:56 -!- impomatic has joined.
23:13:05 -!- impomatic has quit (Client Quit).
23:13:27 -!- impomatic has joined.
23:28:18 <zzo38> I want to connect the video alone; I don't want all of this HDCP, MST, USB, etc with it too.
23:38:52 <zzo38> Are there still some? I have currently VGA, although I would think digital may be better if it can avoid these other problem
23:40:18 <Hooloovoo> I mean, DVI is a fairly direct translation of VGA into a digital signal
23:40:31 -!- oerjan has joined.
23:40:44 <Hooloovoo> HDMI extends DVI with higher resolution and a different connector
23:43:50 <zzo38> Yes, although HDMI add many of these other undesirable stuff and also requires a payment, I think
23:44:37 <Hooloovoo> iirc early hdmi is fairly free, but later versions include hdcp. might be misremembering
23:45:23 <zzo38> Also I think most of them (including HDMI) will requires a new specification for a higher resolution or frame rate. (Electrical specification will of course need extended to support faster rates, although the data format shouldn't need to be extended)
23:45:54 <Hooloovoo> on my main desktop, I have 4 monitors connected through DVI - connecting over HDMI or displayport result in weird bugs, though I suspect that's more due to poor monitor design than the interfaces themselves
23:48:00 <zzo38> It could be, although weird bugs will be more likely if the specification is more confusing (although even if it isn't, someone can always implement it badly anyways; it is inevitable)
23:50:34 -!- spruit11 has joined.
23:51:58 <esolangs> [[OREO]] https://esolangs.org/w/index.php?diff=88304&oldid=74332 * Kaveh Yousefi * (+771) Amended some orthographic mistakes, improved code formatting, and modified the example code to print Hello, world! instead of HELLOOWORLD!.
23:51:59 <Hooloovoo> "doesn't turn on when displayport is connected" (which only happens with one monitor?) seems like an oversight somewhere. the monitor also misrepresents color modes over hdmi
23:56:20 <zzo38> I think there are advantages to having the signal purely one way, too
23:56:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:57:06 <Hooloovoo> hmm, I'm not sure if there's any digital modes that support that
23:57:34 <esolangs> [[OREO]] https://esolangs.org/w/index.php?diff=88305&oldid=88304 * Kaveh Yousefi * (+1468) Added a section with a Common Lisp implementation of an interpreter, and a second section linking to a more sophisticated version of mine.
23:58:06 <Hooloovoo> DVI has identity (iirc SPI or i2c) functions like the later vga spec - it might be possible to skip those but I've never tried it
23:58:25 <zzo38> I invented one (at least the data format, not the electrical specification; I don't know how to design electrical specifications) but it is not implemented.
23:58:39 <zzo38> I know there are some disadvantages too, but I think that it is generally an advantage
2021-09-26
00:01:16 <zzo38> For audio, I think analog wiring is good, although the recording and processing should usually be digital. But, audio should be a separate cable from the video, in my opinion, you can connect it independently
00:01:16 <Hooloovoo> https://en.wikipedia.org/wiki/Serial_digital_interface is a thing I've heard of but never used.
00:01:29 <zzo38> I have heard of it too
00:02:14 <Hooloovoo> hmm, I don't see the advantage of analog audio over a simple digital transport like spidf
00:03:16 <zzo38> Apparently unlike HDMI, SDI has captions. (HDMI added all sorts of stuff but not captions. My own specification has captions in the IMIDI stream, which is a two-way signal, rather than the video, although at least it has captions)
00:04:23 <zzo38> It is one thing I dislike about HDMI. Even though they want to put everything at once, they don't have captions even though a composite video connection does.
00:05:56 <zzo38> (Captions are unimportant for use as a computer monitor, but for television, captions should be wanted)
00:07:27 <fizzie> One thing (that's maybe more of a software than a hardware issue) that weirds me out a little is, at least on my work laptop, all these video outputs that can send audio can't seem to be able to tell whether the other end can actually *do* anything with that audio, and show up as available audio outputs.
00:07:44 <fizzie> Quite often I end up sending audio to a monitor that has no speakers or headphone out or anything.
00:08:34 <fizzie> (I'm sure I could configure those to go away somehow.)
00:18:34 -!- impomatic has quit (Quit: impomatic).
00:18:54 -!- impomatic has joined.
00:23:05 -!- impomatic has quit (Client Quit).
00:23:28 -!- impomatic has joined.
00:25:44 <oerjan> <int-e> `? device <-- hum, have you been following Agora?
00:26:49 <oerjan> that wisdom is about as meaningful as the Agora Device.
00:26:51 <b_jonas> fizzie: isn't that normal? you want the applications and websites to not know whether you have audio, or else you'll have websites that won't work unless you turn up the audio of the ad. but don't worry, there's probably already such a feature for Android apps, and perhaps in a few years it will exist for websites too on mobile phones
00:27:20 <b_jonas> the website will even be able to query if the earphone is actually plugged into your ear or not
00:28:06 <fizzie> I think that's pretty much orthogonal.
00:29:54 <zzo38> Design the browser to not detect the audio volume (and the user can also specify redirection, e.g. to a file or to /dev/null or a filter), and the hardware doesn't let the software know if the audio is connected.
00:31:17 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=88306&oldid=88265 * AmNow * (+64) a and b
00:32:06 <fizzie> If the goal is to browse the web and/or run an app without letting it know whether audio output is going somewhere, they way to do that is not to pretend that connected digital outputs that are technically capable of carrying audio are audio devices, it is to not tell the web and/or app about audio output devices and accept but discard any audio it tries to play.
00:33:34 -!- impomatic has quit (Quit: impomatic).
00:33:57 -!- impomatic has joined.
00:38:05 -!- impomatic has quit (Client Quit).
00:38:28 -!- impomatic has joined.
00:38:51 <zzo38> Well, for web apps, the browser should have options to configure it (like how I mentioned), for native programs, the operating system should have that functionality. Video cables should not be audio I think.
00:39:49 <zzo38> You should be allowed to select any program on your computer that you want to as a filter for any audio/video I/O. This way, you can also redirect it to/from a file, or use a codec that the application does not support, or just discard the data if that is what you want.
00:42:01 <zzo38> Some programs support such functionality for some things (e.g. Heirloom-mailx allows you to write attachments through a pipe filter instead of a file), but most programs don't.
00:43:33 -!- impomatic has quit (Quit: impomatic).
00:43:56 -!- impomatic has joined.
00:48:05 -!- impomatic has quit (Client Quit).
00:48:28 -!- impomatic has joined.
00:53:33 -!- impomatic has quit (Quit: impomatic).
00:53:53 -!- impomatic has joined.
00:58:05 -!- impomatic has quit (Client Quit).
00:58:26 -!- impomatic has joined.
01:03:33 -!- impomatic has quit (Quit: impomatic).
01:03:56 -!- impomatic has joined.
01:08:05 -!- impomatic has quit (Client Quit).
01:08:24 -!- impomatic has joined.
01:15:54 -!- brettgilio has quit (Quit: Leaving...).
01:17:33 -!- brettgilio has joined.
01:19:25 -!- brettgilio has quit (Client Quit).
01:22:33 -!- brettgilio has joined.
01:54:11 <zzo38> Is there a function in C to copy all remaining data from one stream to another? (It is also a function I wanted to use in PostScript, although I know PostScript has no such thing built in)
01:58:33 -!- impomatic has quit (Quit: impomatic).
01:58:53 -!- impomatic has joined.
02:08:05 -!- impomatic has quit (Quit: impomatic).
02:08:27 -!- impomatic has joined.
02:11:29 -!- delta23 has quit (Quit: Leaving).
02:17:31 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88307&oldid=88294 * BlueOkiris * (-41) /* Description */
02:19:37 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88308&oldid=88307 * BlueOkiris * (-5) /* Description */
02:21:18 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88309&oldid=88308 * BlueOkiris * (+120) /* Compiler Status */
02:25:48 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88310&oldid=88309 * BlueOkiris * (+126) /* Standard Library Functions */
02:26:07 <esolangs> [[Broken Calculator]] https://esolangs.org/w/index.php?diff=88311&oldid=87762 * PixelatedStarfish * (+20) /* External Links */
02:48:40 <b_jonas> zzo38: I don't think so, but the C++ standard library has one
02:55:47 <zzo38> Is there such a function in GNU C?
02:59:22 -!- hendursaga has quit (Quit: hendursaga).
02:59:48 -!- hendursaga has joined.
03:08:34 -!- impomatic has quit (Quit: impomatic).
03:08:55 -!- impomatic has joined.
03:11:33 <esolangs> [[When the Imposter is Sus]] https://esolangs.org/w/index.php?diff=88312&oldid=88296 * Maikeru51 * (+298) Added information about modifying buffer value and about buffer value itself.
03:12:47 <esolangs> [[Special:Log/newusers]] create * Toc8730 * New user account
03:13:05 -!- impomatic has quit (Client Quit).
03:13:28 -!- impomatic has joined.
03:18:35 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88313&oldid=88302 * Toc8730 * (+178) /* Introductions */
03:22:07 -!- impomatic has quit (Quit: impomatic).
03:27:57 <esolangs> [[Among Us]] https://esolangs.org/w/index.php?diff=88314&oldid=84601 * Toc8730 * (+59) /* External resources */
03:28:10 <esolangs> [[Among Us]] https://esolangs.org/w/index.php?diff=88315&oldid=88314 * Toc8730 * (+2) /* External resources */
03:29:07 <b_jonas> fungot, is the Pokémon Ponyta related to M:tG's Nightmare?
03:46:28 <b_jonas> fungot, I have another question about Pokémon. What types is Metacarp?
03:46:52 <b_jonas> fizzie: fungot is unusually silent today
03:57:04 <esolangs> [[User:Maikeru51]] M https://esolangs.org/w/index.php?diff=88316&oldid=88291 * Maikeru51 * (+45) Chibi Cynthia Related Quote + New Esolang Announcement.
04:22:17 <oerjan> s/silent/absent/
05:07:25 -!- impomatic has joined.
05:08:07 -!- impomatic has quit (Client Quit).
05:08:28 -!- impomatic has joined.
05:25:55 -!- tromp has joined.
05:27:14 -!- tromp has quit (Client Quit).
05:33:03 -!- oerjan has quit (Quit: Nite).
05:43:18 -!- impomatic has quit (Quit: impomatic).
05:43:37 -!- impomatic has joined.
05:47:48 -!- impomatic has quit (Client Quit).
05:48:11 -!- impomatic has joined.
05:53:17 -!- impomatic has quit (Quit: impomatic).
05:53:39 -!- impomatic has joined.
05:57:48 -!- impomatic has quit (Client Quit).
05:58:09 -!- impomatic has joined.
06:23:17 -!- impomatic has quit (Quit: impomatic).
06:23:38 -!- impomatic has joined.
06:23:51 -!- impomatic has quit (Remote host closed the connection).
07:14:05 -!- tromp has joined.
07:34:32 -!- Sgeo has quit (Read error: Connection reset by peer).
07:39:16 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:51:16 -!- tromp has joined.
08:34:44 -!- imode has quit (Ping timeout: 252 seconds).
09:13:39 <APic> Celebrate Bureflux!
09:13:40 <APic> Hail Eris!
09:45:43 -!- fungot has joined.
09:51:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:01:35 -!- tromp has joined.
10:33:10 -!- immibis_ has changed nick to immibis.
10:51:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:11:36 -!- arseniiv_ has joined.
11:29:34 -!- earendel has quit (Quit: Connection closed for inactivity).
11:51:05 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
11:55:50 -!- arseniiv_ has joined.
12:00:41 -!- riv has quit (Quit: Leaving).
12:02:20 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
12:03:56 -!- Lord_of_Life has joined.
12:07:25 -!- riv has joined.
12:44:27 <esolangs> [[OREO]] M https://esolangs.org/w/index.php?diff=88317&oldid=88305 * Kaveh Yousefi * (-22) In the Common Lisp implementation, modified the pointer to not rely on the memory vector's fill-pointer in order to conduce simplicity.
13:06:19 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
13:07:02 -!- riv has quit (Quit: Leaving).
13:08:47 -!- riv has joined.
13:13:45 -!- arseniiv_ has joined.
13:59:45 <b_jonas> fungot, is the pokémon Ponyta related to M:tG's Nightmare?
13:59:45 <fungot> b_jonas: i'm not complaining it is lf, i like the for-each-stream-maker example. why do you ask?"
14:14:44 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
14:19:00 -!- spruit11 has joined.
15:24:10 <keegan> APic: all hail discordia
15:25:59 <Corbin> fnord
15:45:07 -!- brettgilio has quit (Quit: Leaving...).
15:46:34 -!- brettgilio has joined.
16:08:25 <b_jonas> fungot, what type is a Metacarp
16:08:25 <fungot> b_jonas: you're in proglangdesign right this minute. anyways...... and then
16:11:48 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88318&oldid=88218 * Spargle * (+90) /* Ark: The esolang that is actually kind of useful. */
16:12:02 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88319&oldid=88318 * Spargle * (-17) /* interpreter: */
16:12:09 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88320&oldid=88319 * Spargle * (-10) /* docs: */
16:30:49 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88321&oldid=88320 * Spargle * (-610) /* Ark: The esolang that is actually kind of useful. */
16:31:14 <esolangs> [[Ark]] https://esolangs.org/w/index.php?diff=88322&oldid=88321 * Spargle * (+2) /* note: when printing a string like this: !B !L !A !H, you must put a space in between each character. */
16:56:18 -!- Sgeo has joined.
17:29:50 -!- tromp has joined.
17:55:35 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:13:20 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
18:26:53 -!- imode has joined.
18:30:22 -!- tromp has joined.
18:48:34 -!- arseniiv_ has joined.
19:10:42 <nakilon> one of my favourite subs https://www.reddit.com/r/itsaunixsystem/comments/pvwsjj/hawaii_50_3d_printing_is_instantaneous/
19:39:14 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:41:46 -!- tromp has joined.
19:57:59 -!- hendursaga has quit (Remote host closed the connection).
19:58:25 -!- hendursaga has joined.
20:31:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:34:56 -!- tromp has joined.
21:11:05 -!- Lord_of_Life_ has joined.
21:12:06 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
21:13:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
22:02:24 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:22:42 -!- tromp has joined.
22:41:47 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:26:17 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
23:47:40 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88323&oldid=88310 * BlueOkiris * (+1) /* Standard Library Functions */
23:55:55 -!- dutch has changed nick to SweetLeaf.
2021-09-27
00:04:15 <esolangs> [[Pokecontest]] N https://esolangs.org/w/index.php?oldid=88324 * Maikeru51 * (+1148) My first complete esolang!
00:05:01 -!- oerjan has joined.
00:41:01 <imode> I said a little bit about this in another channel, but I'm interested in the potential for minifying a particular BF-like to 4 instructions. currently at 6.
00:41:23 <imode> https://hastebin.com/raw/ilebolucoy
00:41:59 <imode> based around a deque.
00:42:17 <imode> which loosely corresponds to a tape with an "insert cell containing 0/1" here feature.
00:42:23 <imode> and is circular.
00:44:05 <imode> you can potentially remove `>` but suffer the linear time of seeking to the end of the deque and matching against a marker.
00:51:49 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88325&oldid=88323 * BlueOkiris * (+6) /* Standard Library Functions */
00:56:32 -!- delta23 has joined.
00:59:42 <esolangs> [[Talk:Burn]] https://esolangs.org/w/index.php?diff=88326&oldid=68829 * Fmbalbuena * (+1) Missing space added
01:04:08 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88327&oldid=88325 * BlueOkiris * (-65) /* Standard Library Functions */
01:04:38 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88328&oldid=88327 * BlueOkiris * (+29) /* Standard Library Functions */
01:05:30 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88329&oldid=88328 * BlueOkiris * (+3) /* Standard Library Functions */
01:06:56 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88330&oldid=88329 * BlueOkiris * (-51) /* Standard Library Functions */
01:08:12 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88331&oldid=88330 * BlueOkiris * (-1) /* Standard Library Functions */
01:24:08 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88332&oldid=88331 * BlueOkiris * (+1) /* Standard Library Functions */
01:50:46 <esolangs> [[User:Maikeru51]] https://esolangs.org/w/index.php?diff=88333&oldid=88316 * Maikeru51 * (+17)
01:51:48 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88334&oldid=88332 * BlueOkiris * (+289) /* Standard Library Functions */
02:05:13 <esolangs> [[Pokecontest]] M https://esolangs.org/w/index.php?diff=88335&oldid=88324 * Maikeru51 * (-22) Fixed spelling errors of the categories. Also modified how "Clever" moves work.
02:09:56 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88336&oldid=88334 * BlueOkiris * (-12) /* Instructions */
02:10:16 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88337&oldid=88336 * BlueOkiris * (-190)
02:10:47 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88338&oldid=88337 * BlueOkiris * (+6) /* Instructions */
02:24:27 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88339&oldid=88338 * BlueOkiris * (+69) /* Standard Library Functions */
02:32:23 -!- delta23 has quit (Quit: Leaving).
02:45:54 -!- oren has quit (Ping timeout: 268 seconds).
03:24:08 -!- SweetLeaf has changed nick to SpikeHeron.
03:29:39 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88340&oldid=88339 * BlueOkiris * (+306) /* Standard Library Functions */
03:30:40 <esolangs> [[Nabd]] https://esolangs.org/w/index.php?diff=88341&oldid=88340 * BlueOkiris * (+1408) /* Examples */
04:17:41 -!- oerjan has quit (Quit: Nite).
05:27:40 <esolangs> [[User:Zzo38/Programming languages with unusual features]] https://esolangs.org/w/index.php?diff=88342&oldid=88079 * Zzo38 * (+1062) Fairchild Video Entertainment System (Channel F)
05:32:21 <esolangs> [[User:Zzo38/Programming languages with unusual features]] https://esolangs.org/w/index.php?diff=88343&oldid=88342 * Zzo38 * (+477)
05:48:33 -!- mcfrdy has quit (*.net *.split).
05:49:24 -!- mcfrdy has joined.
05:54:41 -!- FireFly has quit (*.net *.split).
05:54:41 -!- zegalch has quit (*.net *.split).
05:54:41 -!- ProofTechnique has quit (*.net *.split).
05:54:42 -!- lifthrasiir has quit (*.net *.split).
05:55:03 -!- ProofTechnique has joined.
05:55:27 -!- FireFly has joined.
05:55:39 -!- FireFly has changed hostmask to firefly@glowbum/gluehwuermchen/firefly.
05:55:41 -!- lifthrasiir has joined.
05:56:32 -!- zegalch has joined.
06:02:25 -!- FireFly has quit (Quit: WeeChat 2.0.1).
06:02:47 -!- FireFly has joined.
06:02:52 -!- Sgeo has quit (Read error: Connection reset by peer).
06:23:54 -!- orin has joined.
07:04:47 -!- tromp has joined.
07:30:44 <riv> hello
07:32:22 <riv> https://www.youtube.com/watch?v=jRgw1fY7s5U cool alien world
07:41:54 -!- shikhin has quit (Ping timeout: 268 seconds).
07:56:08 -!- shikhin has joined.
08:57:12 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:05:47 -!- spruit11 has quit (Ping timeout: 240 seconds).
09:19:37 -!- spruit11 has joined.
09:24:24 -!- spruit11 has quit (Ping timeout: 265 seconds).
09:51:09 -!- spruit11 has joined.
09:55:31 -!- spruit11 has quit (Ping timeout: 245 seconds).
09:55:37 -!- tromp has joined.
09:57:33 -!- arseniiv_ has joined.
10:05:32 -!- river has joined.
10:08:14 -!- riv has quit (Ping timeout: 265 seconds).
10:20:55 -!- spruit11 has joined.
10:44:21 -!- arseniiv has joined.
10:47:11 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
10:59:30 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
10:59:50 -!- slavfox has joined.
11:04:10 -!- imode has quit (Ping timeout: 260 seconds).
11:06:51 -!- shikhin has quit (Quit: Quittin'.).
11:08:24 -!- shikhin has joined.
11:09:18 -!- shikhin has changed hostmask to ~shikhin@offtopia/offtopian.
11:39:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:01:49 <river> https://www.youtube.com/watch?v=7OEF3JD-jYo fun, naming number systems
12:07:06 -!- tromp has joined.
13:50:53 -!- sprock has quit (Ping timeout: 252 seconds).
14:17:04 -!- Sgeo has joined.
14:54:02 -!- arseniiv has quit (Ping timeout: 265 seconds).
14:55:02 <fizzie> Thought of the day: you can't eSTABlish anything without a STABbing.
14:56:54 <int-e> hmm... e-stab (Apple: iStab)
14:59:14 <fizzie> There's a lot of high street phone repair shops with names like iSmash, iBroke, and so on.
15:00:27 <int-e> Not exactly iNspiring confidence.
15:00:37 <fizzie> There's an iFix as well, but somehow iSmash seems to be a bigger player on the market.
15:01:54 <int-e> I hear "iSmash", I expect to see a huge anvil and a sledgehammer.
15:02:28 <int-e> . o O ( the ultimate repair shop )
15:02:44 <fizzie> I feel like there was an Internet-connected knife in Achewood.
15:03:02 <fizzie> http://achewood.com/index.php?date=01112007 + the next few strips after that.
15:07:08 <int-e> ...weird.
15:17:04 -!- arseniiv has joined.
15:52:35 -!- Koen has joined.
16:07:28 -!- SgeoWebTV has joined.
16:07:44 <SgeoWebTV> Hello world
16:08:08 <Corbin> Morning.
16:08:26 <Corbin> Is this one of those situations where you're visiting IRC from an unusual computer?
16:08:50 <SgeoWebTV> I'm visiting from an emulator. Not sure if that counts as an unusual computer
16:09:20 <SgeoWebTV> I was unsure if the connection to chat would go through the WebTV server emulator I'm connected to or from my computer. Seems to be the latter
16:09:20 <Corbin> Your nick made me recall "WebTV", a TV/computer hybrid product from the late 90s.
16:09:34 <Corbin> Aha. Good times.
16:09:42 <SgeoWebTV> Yep. I'm using an emulator of that exact product
16:10:21 <SgeoWebTV> The pages aren't the ones WebTV originally served. Some custom hacktv HTML
16:10:31 <SgeoWebTV> But I can e.g. view audioscope art
16:10:41 <Sgeo> http://wtv-zone.com/mechtild/scopeglass-bach.html
16:11:04 <b_jonas> "Not sure if that counts as an unusual computer" => you mean the bar is slightly raised on this channel?
16:11:34 <Sgeo> The chat itself seems to be a custom HTML tag: <wtvchat host="${request_headers.query.host}" port="${request_headers.query.port}" channel="#${request_headers.query.channel}"
16:11:34 <Sgeo> bgcolor="#101C1E"
16:11:34 <Sgeo> >
16:12:05 -!- imode has joined.
16:12:21 <SgeoWebTV> I'm using an emulator, not an actual WebTV, so it's just an ordinary PC really
16:13:01 <int-e> SgeoWebTV: Hmm, so what do you think of Windows95?
16:16:50 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:19:57 <SgeoWebTV> There are guides on the Internet for WebTV users teaching how to make their own chat pages
16:22:16 <SgeoWebTV> Ordinary PC with old OS?
16:23:36 <Sgeo> WebTV supposedly could use gopher
16:23:37 <Sgeo> "So far it's been recorded that WebTV/MSN TV had proxy services for HTTP, FTP, and Gopher. Not much documentation on how the proxy services worked is available at the moment, though."
16:25:09 -!- SgeoWebTV has left.
16:25:12 <int-e> So... kind of an amphibious vehicle for the information superhighway.
16:26:12 <int-e> there goes the time traveler
16:34:25 -!- sprock has joined.
16:45:47 -!- tromp has joined.
16:50:28 <Sgeo> The WebTV emulator can play .xm but not .mod or .s3m apparently. The emulator comes with all 3
16:50:34 <Sgeo> (And .mid and .rmf)
17:39:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:55:16 -!- hanif has joined.
18:01:06 -!- hanif has quit (Remote host closed the connection).
18:01:52 -!- hanif has joined.
18:04:52 <imode> are there any BF-likes that use relative jumps instead of bracket matching?
18:05:29 <imode> like | means "if the cell is 0, jump <direction>, otherwise jump <direction>"
18:05:44 <imode> you'd need asymmetry.
18:05:55 <imode> jump forward two instructions, or jump backward two instructions.
18:06:37 <imode> maybe you'd need three. 1| would be a "no-op" unless you're coming from the right and land on it.
18:07:35 <imode> how would you form nested loops, though..
18:24:20 <imode> maybe you'd need to do forward two, backward 3?
18:28:35 <imode> brainflop has something similar..
18:28:54 <zzo38> I think I have seen one with jumps before, I don't remember if they are relative or absolute jumps
18:29:17 <zzo38> Is there general purpose compression formats with an optional key frame index?
18:29:41 <imode> brainflop, HighFive..
18:46:57 -!- hanif has quit (Quit: quit).
18:50:12 -!- tromp has joined.
19:07:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:17:42 -!- tromp has joined.
19:20:51 <zzo38> If they have Gopher on TV, next thing to add on TV will be Gemini and Viewdata, and live audio/video stream protocol.
19:23:24 -!- Koen has quit (Quit: Leaving...).
19:34:33 <river> Viewdata?
19:37:58 <zzo38> For interactive text services on television, such as if you want a weather service, I think Viewdata can help. I know of one existing Viewdata service called TELSTAR.
19:38:49 <river> interesting
19:38:53 <river> https://en.wikipedia.org/wiki/Telstar#/media/File:Telstar_satellite-CnAM_35181-IMG_5408-gradient.jpg
19:41:32 <fizzie> Looks like a movie prop.
19:41:58 <zzo38> Well, the service I mention is something different.
19:44:43 <zzo38> https://glasstty.com/wp-content/uploads/2020/12/computerphone2.jpg
19:45:46 <esolangs> [[Talk:Categorial]] https://esolangs.org/w/index.php?diff=88344&oldid=86782 * TheJonyMyster * (+164) /* Does this belong in joke languages */
19:45:57 <esolangs> [[Talk:Categorial]] M https://esolangs.org/w/index.php?diff=88345&oldid=88344 * TheJonyMyster * (+1)
19:46:17 <esolangs> [[Categorial]] https://esolangs.org/w/index.php?diff=88346&oldid=88298 * TheJonyMyster * (+27) its clearly a joke
19:46:45 <esolangs> [[Categorial]] https://esolangs.org/w/index.php?diff=88347&oldid=88346 * TheJonyMyster * (+1)
19:54:23 -!- sprock has quit (Ping timeout: 246 seconds).
19:54:27 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=88348&oldid=87963 * TheJonyMyster * (+458) Count issue
19:54:57 <esolangs> [[Esolang talk:Categorization]] M https://esolangs.org/w/index.php?diff=88349&oldid=88348 * TheJonyMyster * (+6) /* Plurality of category name */
19:58:25 -!- sprock has joined.
20:04:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:05:49 <Sgeo> It should be possible to add Gopher and Gemini support to https://github.com/zefie/zefie_wtvp_minisrv
20:18:51 -!- tromp has joined.
20:29:18 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:57:08 -!- sprock has quit (Ping timeout: 252 seconds).
21:12:50 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
21:15:08 -!- Lord_of_Life has joined.
21:26:54 -!- tromp has joined.
21:28:22 -!- Thelie has joined.
21:37:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:38:32 -!- Thelie has quit (Remote host closed the connection).
21:44:11 -!- tromp has joined.
21:55:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:55:57 <esolangs> [[Special:Log/newusers]] create * Talbi * New user account
22:04:51 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88350&oldid=88313 * Talbi * (+219) Added my introduction :)
22:05:08 -!- MrAureliusR has quit (Quit: ZNC - https://znc.in).
22:05:09 -!- Hooloovoo has quit (Remote host closed the connection).
22:05:28 -!- MrAureliusR has joined.
22:09:32 -!- Hooloovoo has joined.
22:18:55 -!- sprock has joined.
23:31:23 -!- phdu has quit (Ping timeout: 246 seconds).
23:32:48 -!- craigo[m] has quit (Ping timeout: 268 seconds).
23:35:07 -!- phdu has joined.
23:36:16 -!- delta23 has joined.
23:59:16 -!- arseniiv has quit (Ping timeout: 245 seconds).
2021-09-28
00:06:41 -!- oerjan has joined.
00:07:12 -!- craigo[m] has joined.
00:22:59 -!- moony has changed nick to moon.
00:23:16 -!- moon has changed nick to bi.
00:34:48 <oerjan> <imode> maybe you'd need to do forward two, backward 3? <-- i think any such scheme with bounded jump length is going to have trouble handling arbitrarily nested loops because you cannot fit all the necessary paths through a bounded instruction region
00:35:04 <oerjan> traffic jam
00:35:20 <imode> yeahh.. that's probably why you have "arbitrary" relative jump offsets in brainflop.
00:35:40 <oerjan> otoh you don't need arbitrarily deep nesting for turing completeness.
00:35:54 -!- ais523 has joined.
00:36:00 <oerjan> speek of the
00:36:03 <oerjan> *speak
00:36:22 <oerjan> ais523 and i got it down to just two sets of brackets
00:36:42 <ais523> this was just coincidence, I wasn't even logreading this time
00:36:46 <oerjan> heh
00:37:02 <ais523> I came here to complain about memory allocation and freeing
00:37:17 <oerjan> ic
00:37:34 <ais523> specifically, I realised that free() is often called in a loopish thing to free a recursive data structure, but a general-purpose free() is inherently really slow
00:38:09 <ais523> because it requires a minimum of two atomic operations (either taking and releasing a lock, or for a lock-free algorithm), and atomic operations are inherently much slower than just about any other CPU instruction
00:38:37 <imode> oerjan: two sets of brackets? what were the semantics of each?
00:38:48 <imode> I'd like to get mine down that far.
00:38:56 <oerjan> *two pairs of brackets
00:38:56 -!- SpikeHeron has quit (Quit: WeeChat 3.3).
00:39:08 <oerjan> as in, the whole program needs just two [ and two ]
00:39:37 <imode> ohh.
00:40:04 <imode> so you're using BF's instruction set, but any program only needs two of each bracket type.
00:40:08 <ais523> this basically means that there's not much point in implementing a malloc algorithm; taking and releasing the lock is going to be slower than the rest of the algorithm put together, if it's even remotely efficient
00:40:09 <oerjan> yep
00:40:14 <imode> I assume you simulate stuff using a register machine?
00:40:20 <imode> or a simulated register machine.
00:40:31 <ais523> it's a counter machine (the construction we have requires unbounded cells)
00:40:38 <imode> figured as much.
00:41:05 <oerjan> specifically, ais523's Waterfall Model
00:41:09 <imode> wonder if that construction holds for boolfuck or something.
00:41:32 -!- dutch has joined.
00:41:34 -!- ais523 has quit (Quit: sorry about my connection).
00:41:49 -!- ais523 has joined.
00:42:04 <imode> probably not because the "size" is just a bit.
00:42:18 <imode> I'm trying to whittle []01<> down to just four instructions.
00:42:41 <imode> https://hastebin.com/raw/ilebolucoy
00:43:55 <imode> so far I've worked out how to eliminate `>`.
00:44:37 <b_jonas> ais523: I could argue the opposite. since you usually call free many times in a loop, most of the time you will be calling free when you already have the lock, so locking and unlocking will be fast
00:44:44 <oerjan> i'd imagine you'd need to combine them somehow
00:44:56 <oerjan> like, drop 1 by having some other command do a NOT
00:45:38 <b_jonas> but you're also true that if you want to do a lot of memory allocations, you should try to write your program so that it needn't call a general-purpose malloc and free a lot
00:45:44 <ais523> b_jonas: that's not how actual implementations work, though
00:46:05 <ais523> they take and drop the lock for each individual free-ing, because free is typically in a shared library and compilers don't optimise across shared library boundaries
00:46:48 <nakilon> 19:09:20 <Corbin> Your nick made me recall "WebTV", a TV/computer hybrid product from the late 90s.
00:46:50 <ais523> it's possible that taking and dropping the same lock repeatedly is fast-ish if no other CPU is trying to touch the memory where the lock is held, I need to check the numbers for that
00:46:54 <nakilon> sounds like something that didn't exist here
00:47:02 <imode> guess I'm trying to find a substitution for each command that doesn't alter program structure, and can be "dropped in".
00:47:11 <imode> like similar brainfuck-to-X mappings.
00:47:47 <b_jonas> ais523: yes, but the CPU can do the lock very quickly if your core already has exclusive ownership of the cache line in which your lock is, and that should be the case if you just called free and it locked and unlocked the lock
00:48:19 <imode> maybe have `]` enqueue a 0 or something.
00:48:23 <nakilon> I just realised that I know a huge amount of the first digits of Pi
00:48:41 <b_jonas> don't cpus do that very fast, in the expense of being slower in the uncommon case when multiple cores want to write to the same cache line?
00:48:45 <esolangs> [[Pokecontest]] https://esolangs.org/w/index.php?diff=88351&oldid=88335 * Maikeru51 * (+173) Yeah added definitions and fixed some of the formatting.
00:48:48 <ais523> actually these numbers don't look *that* bad, Ice Lake can lock 8 bytes per 23 processor cycles or 16 bytes per 32 processor cycles, if the thing being locked is in memory already
00:48:49 <nakilon> just don't remember the exact order
00:49:04 <ais523> err, in exclusive cache
00:49:36 <ais523> for Zen 3 it's 10 and 15
00:49:46 <ais523> (these are the most recent numbers I could find for Intel and AMD respectively)
00:50:21 <ais523> still not great, but at least not the hundreds or thousands of cycles I was fearing
00:51:03 <oerjan> nakilon: wat.
00:51:27 <imode> I also know quite a few digits of pi. just don't know the order.
00:52:00 <imode> 8412398419328412394129356123 <-- that's in there somewhere.
00:52:25 <nakilon> oerjan I know the first million of them
00:52:32 <oerjan> imode: probably. it's not been proved. (unless you copied that from an actual digit list)
00:53:00 <imode> nope.
00:53:07 <oerjan> nakilon: the _exact_ first million? (even out of order)
00:53:34 <b_jonas> ais523: are those cycle numbers for every time you set the lock, or only once when you change the cache line from owned for writing to owned for exclusive locking, after which exclusive locking the same lock is free for as long the page is in the cache and another CPU doesn't try to access it?
00:53:36 <ais523> it wouldn't be too hard to memorise the frequencies of the digits 0-9 within the first million digits of pi
00:53:40 <imode> 84123984 is there though.
00:53:54 <ais523> b_jonas: these are for repeated locked accesses to the same memory location, when no other CPU is reading or writing it
00:54:02 <ais523> like, LOCK CMPXCHG16B called in a loop
00:54:16 <ais523> i.e. that's how long it takes in the best ase
00:54:19 <ais523> *best case
00:54:21 <b_jonas> I See
00:54:34 <b_jonas> hmm
00:54:53 <b_jonas> that's probably not a bottleneck for a general purpose impl of free though
00:55:02 <nakilon> \wp CMPXCHG16B
00:55:06 <velik> x86_64 -- type of instruction set which is a 64-bit version of the x86 instruction set https://en.wikipedia.org/wiki/X86-64
00:55:16 <oerjan> ais523: true, i would just be surprised if nakilon actually had
00:55:48 <ais523> whereas a simple MOV to/from L1 is, on most modern processors, typically 3 cycles latency (and 1 cycle for 1 execution unit in terms of throughput)
00:56:19 <oerjan> imode: i wonder what's the shortest digit sequence they haven't found yet
00:56:32 <oerjan> (probably several tied)
00:56:48 <ais523> nakilon: CMPXCHG16B works on two consecutive 64-bit values in memory; you give expected and new values for each of them, if they have the expected value already then they're replaced with the new values, if they don't then nothing happens, either way it returns the old values
00:57:21 <ais523> with the LOCK prefix, this is atomic with respect to all CPU cores, and it's a universal building block for building both locks and lock-free algorithms
00:57:38 <ais523> (locks don't generally need the full power – a single 64-bit value is enough – but lock-free algorithms generally do)
00:58:49 <b_jonas> I believe only efficient lock-free algorithms need that, you can build inefficient but correct lock-free algorithms without the two-word thing
00:59:20 <oerjan> https://oeis.org/A228988 seems relevant
01:00:01 <imode> eh, `]` pushing a zero means that you could never actually erase a 1 bit, it just nots everything at worst and inflates the queue at best.
01:00:04 <nakilon> you read the jokes too seriously
01:00:05 <oerjan> (found through https://www.reddit.com/r/math/comments/co25xs/smallest_number_not_found_in_pi/)
01:00:08 <nakilon> but http://www.eveandersson.com/pi/precalculated-frequencies
01:00:37 <oerjan> nakilon: that's the best way to read them hth
01:00:53 <ais523> b_jonas: I'm not sure, I was trying to solve a specific lock-free problem in my head a while back and couldn't do without a double-compare-and-swap
01:01:09 <b_jonas> ok, I could be wrong about that then
01:01:18 <b_jonas> I don't usually care much about lock-free stuff
01:01:20 <b_jonas> I just use locks
01:01:46 <b_jonas> and try to do multithreading at the largest scale possible to avoid all the synchronization
01:02:19 <ais523> I like lock-free algorithms from a usability point of view – lock-based algorithms don't work from signal handlers
01:02:33 <ais523> and this was an actual problem for NH4 once (when trying to write the SIGHUP handler)
01:03:20 <ais523> mallocs don't work from signal handlers in practice, but there's no inherent reason for that (in particular, the lock-free implementation of malloc doesn't seem substantially less efficient than the lock-based algorithm)
01:04:01 <b_jonas> hmm
01:04:27 <b_jonas> I didn't know that
01:04:43 <b_jonas> but then I definitely almost never want signal handler reentrancy
01:04:59 <ais523> basically nothing works from signal handlers :-(
01:05:06 <ais523> but I don't see any reason not to make that case work if you can
01:09:08 <ais523> one interesting thing I realised while working on my lock-free malloc is that the generic double-compare-and-swap lock-free algorithm actually gives you the potential to get an rwlock-equivalent for free (it isn't any harder to implement or slower to run than an exclusive lock)
01:12:41 -!- bi has changed nick to moony.
01:14:02 -!- ais523 has quit (Remote host closed the connection).
01:18:58 <nakilon> what does the "-- Troy Dana" dude say on that Pi digits page, wtf
01:20:38 <nakilon> that's not how you convert the base
01:23:02 <nakilon> oh he replies to "-- Steve Baldamus"
01:27:21 <esolangs> [[Spellcaster]] N https://esolangs.org/w/index.php?oldid=88352 * Maikeru51 * (+732) Basically just started making my first turning tarpit!
01:40:21 <esolangs> [[Special:Log/upload]] upload * Threesodas * uploaded "[[File:Sufferung.png]]"
01:46:21 <oerjan> nakilon: i think "that's not how you convert the base
01:46:34 <oerjan> " is pretty much what e's saying
01:55:00 -!- Everything has joined.
02:15:03 <fizzie> Huh, weird. https://en.wikipedia.org/wiki/Vernier_acuity
02:15:06 <fizzie> I thought those scales were just generally easier to use because you don't have to guesstimate where exactly in the gap the marker is. Didn't realize you actually get a suepr-resolution kind of a thingie going in there.
02:31:08 <keegan> ah yes good
02:32:48 <keegan> trying to think of where else i've seen this effect used
03:18:51 <fizzie> Hmm, another Zach-y game. Wonder if it's any good. https://store.steampowered.com/app/1577620/The_Signal_State/
03:27:44 <nakilon> looks like Shenzhen
03:28:32 <nakilon> can't finish it because it's too complex, and the tasks somehow too artificial no matter how much dialogs they put in "cutscenes"
03:29:32 <nakilon> though each of their games had some own kind of boringness for me
03:29:45 <zzo38> I don't want game too many cutscenes (even without any cutscenes, can be OK)
03:30:02 <nakilon> opus magnum was satisfying but repetitive I guess
03:30:32 <nakilon> and Infinifactory was probably the one I got the farther through
03:30:39 <nakilon> *farthest
03:31:41 <nakilon> 3d is appealing and t he plot made it interesting to see what's next
03:32:48 <nakilon> fizzie oh, that's not Zach?!
03:32:59 <nakilon> that's cool, need more different developers
03:44:37 -!- hendursaga has quit (Remote host closed the connection).
03:45:02 -!- hendursaga has joined.
04:49:03 -!- delta23 has quit (Quit: Leaving).
06:45:17 -!- tromp has joined.
06:47:47 -!- oerjan has quit (Quit: Nite).
07:14:16 -!- imode has quit (Ping timeout: 252 seconds).
07:17:45 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:27:31 -!- tromp has joined.
07:36:22 -!- Everything has quit (Quit: leaving).
08:01:43 -!- Sgeo has quit (Read error: Connection reset by peer).
08:32:51 -!- Koen has joined.
10:16:03 -!- riv has joined.
10:16:24 -!- river has quit (Quit: Leaving).
10:56:44 <esolangs> [[Special:Log/newusers]] create * Soyuzguy123! * New user account
10:59:03 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=88354&oldid=88350 * Soyuzguy123! * (+215) just adding some stuff
11:00:47 <esolangs> [[SRlang]] N https://esolangs.org/w/index.php?oldid=88355 * Soyuzguy123! * (+109) just holding the fort
11:25:00 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:32:15 <nakilon> TIL: Slavo-Serbia and New Serbia https://en.wikipedia.org/wiki/File:New_serbia_slavo_serbia.png
12:21:15 -!- arseniiv has joined.
12:45:46 -!- tromp has joined.
13:35:24 <esolangs> [[OREO]] M https://esolangs.org/w/index.php?diff=88356&oldid=88317 * Kaveh Yousefi * (-2) Altered the category tag Unimplemented to Implemented in the face of now existing implementations.
14:28:35 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
14:52:17 -!- Sgeo has joined.
15:33:32 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:43:41 <Corbin> I've been reading https://arxiv.org/abs/1904.10805 and pondering whether [[reversible]] can be improved. Has anybody else looked at this paper, "The Way of the Dagger"?
15:43:43 <velik> https://esolangs.org/wiki/Category:Reversible_computing
15:56:54 -!- tromp has joined.
16:02:57 <esolangs> [[User:InfiniteDonuts]] https://esolangs.org/w/index.php?diff=88357&oldid=72554 * InfiniteDonuts * (-273) update profile
16:12:06 <esolangs> [[Category talk:Total]] https://esolangs.org/w/index.php?diff=88358&oldid=73877 * Corbin * (+301) /* Refactoring with complexity classes */ new section
16:17:52 <Corbin> I want to add categories for descriptive logics (Cartesian closed, dagger compact, etc.; first-order, second-order, etc.) and physical machine architechtures (Harvard, Von Neumann, etc.)
16:18:18 <Corbin> But I would like guidance in the form of bright-line rules about when we should simply refer folks to WP or nLab.
16:29:31 -!- imode has joined.
16:48:27 <esolangs> [[User:Talbi]] N https://esolangs.org/w/index.php?oldid=88359 * Talbi * (+393) Created page with "== Hi! I'm Talbi == * You can find my GitHub [https://github.com/talbii here]. * You can find my Esolangs implementations [https://github.com/talbii/talbis-golfing-languages..."
17:05:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:11:50 <esolangs> [[Boom]] N https://esolangs.org/w/index.php?oldid=88360 * Talbi * (+461) Created page with "Boom is a very simple language, created by [[User:Talbi]]. It is so simple, in fact, that you have (probably) already written a valid program for Boom, which is: <pre> </pre>..."
17:12:28 <esolangs> [[User:Talbi]] https://esolangs.org/w/index.php?diff=88361&oldid=88359 * Talbi * (+44)
17:14:35 <esolangs> [[Kolmogorov]] M https://esolangs.org/w/index.php?diff=88362&oldid=88043 * Kaveh Yousefi * (+79) Amended an example for the output command by adding a backslash to the byte value and reformatted further examples.
17:18:20 -!- tromp has joined.
17:30:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:32:26 <Corbin> ...I'm going to go ahead and do the descriptive-logic stuff on nLab. I've unstubbed https://ncatlab.org/nlab/show/complexity+theory for starters.
17:46:17 -!- sprock has quit (Ping timeout: 264 seconds).
17:51:54 -!- tromp has joined.
17:56:42 -!- spruit11 has joined.
18:11:04 <esolangs> [[Kolmogorov]] M https://esolangs.org/w/index.php?diff=88363&oldid=88362 * Kaveh Yousefi * (+54) Reformatted the examples by aligning comments.
18:28:48 <esolangs> [[Special:Log/newusers]] create * Nanobot567 * New user account
18:41:31 -!- Koen has quit (Remote host closed the connection).
18:58:07 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88364&oldid=88354 * Larryrl * (+153)
19:53:24 -!- sprock has joined.
20:46:35 <esolangs> [[User:Larryrl]] N https://esolangs.org/w/index.php?oldid=88365 * Larryrl * (+2283) Created page with "'''6673846770''' is an esoteric programming language created by user Larryrl, in 2021, whose name is an ASCII representation of the word bitch, which has already been used for..."
20:48:57 <esolangs> [[User:Larryrl]] https://esolangs.org/w/index.php?diff=88366&oldid=88365 * Larryrl * (+0)
20:53:25 <esolangs> [[User:Larryrl]] https://esolangs.org/w/index.php?diff=88367&oldid=88366 * Larryrl * (+93)
20:58:10 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88368&oldid=88297 * Larryrl * (+17)
20:59:13 <esolangs> [[6673846770]] N https://esolangs.org/w/index.php?oldid=88369 * Larryrl * (+2376) Created page with "'''6673846770''' is an esoteric programming language created by user Larryrl, in 2021, whose name is an ASCII representation of the word bitch, which has already been used for..."
20:59:46 <esolangs> [[User:Larryrl]] https://esolangs.org/w/index.php?diff=88370&oldid=88367 * Larryrl * (-2376) Blanked the page
21:04:18 <esolangs> [[User:Larryrl]] https://esolangs.org/w/index.php?diff=88371&oldid=88370 * Larryrl * (+183)
21:04:41 -!- arseniiv has quit (Ping timeout: 245 seconds).
21:08:34 <esolangs> [[6673846770]] https://esolangs.org/w/index.php?diff=88372&oldid=88369 * Larryrl * (+0)
21:12:44 -!- Lord_of_Life_ has joined.
21:13:58 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
21:15:31 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:28:26 -!- sprock has quit (Ping timeout: 246 seconds).
21:29:44 <esolangs> [[6673846770]] https://esolangs.org/w/index.php?diff=88373&oldid=88372 * Larryrl * (+9)
21:42:00 -!- delta23 has joined.
21:42:01 -!- delta23 has quit (Remote host closed the connection).
21:43:20 -!- dutch has quit (Quit: WeeChat 3.3).
22:25:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:00:03 -!- oerjan has joined.
23:29:22 -!- sprock has joined.
2021-09-29
03:47:35 -!- arseniiv has joined.
04:10:59 <zzo38> Is the strategy of the pokemon to guess whether opponent will attack or shift?
04:29:16 -!- slavfox_ has joined.
04:29:45 -!- slavfox has quit (Ping timeout: 265 seconds).
04:30:01 -!- slavfox_ has changed nick to slavfox.
04:48:23 -!- oerjan has quit (Quit: Nite).
06:13:05 <zzo38> How should I handle setting order of execution in Free Hero Mesh considering what I already have? (It is stored in a double linked list, and normally new objects capable of receiving messages are added on one end (objects which do not have any messages are exempt).)
06:13:48 <zzo38> When do you expect SHA-4 and SHA-5 to be made up?
07:23:07 -!- tromp has joined.
07:42:37 -!- hanif has joined.
07:55:59 -!- b_jonas has quit (Quit: leaving).
07:56:51 -!- hanif has quit (Remote host closed the connection).
07:56:54 -!- Sgeo has quit (Read error: Connection reset by peer).
07:58:30 -!- hanif has joined.
08:00:46 -!- dyeplexer has joined.
08:02:24 -!- Koen has joined.
08:05:55 -!- hendursa1 has joined.
08:07:31 -!- chiselfuse has quit (Remote host closed the connection).
08:07:36 -!- Robdgreat has left.
08:07:50 -!- chiselfuse has joined.
08:08:54 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:22:17 -!- jryans has quit (Quit: Bridge terminating on SIGTERM).
08:22:18 -!- xylochoron[m] has quit (Quit: Bridge terminating on SIGTERM).
08:22:26 -!- phdu has quit (Quit: Bridge terminating on SIGTERM).
08:22:29 -!- craigo[m] has quit (Quit: Bridge terminating on SIGTERM).
08:22:32 -!- Deewiant has quit (Quit: Bridge terminating on SIGTERM).
08:25:50 -!- xylochoron[m] has joined.
08:26:27 -!- hanif has quit (Ping timeout: 276 seconds).
08:37:17 -!- jryans has joined.
08:37:17 -!- Deewiant has joined.
08:37:17 -!- phdu has joined.
08:37:17 -!- craigo[m] has joined.
09:31:04 -!- wib_jonas has joined.
09:34:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:38:43 -!- tromp has joined.
09:48:16 -!- spruit11 has quit (Ping timeout: 265 seconds).
09:57:47 -!- spruit11 has joined.
10:31:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:33:10 -!- tromp has joined.
11:09:52 <esolangs> [[Zirconium]] https://esolangs.org/w/index.php?diff=88374&oldid=82499 * RocketRace * (+304) Explicit changelog
11:15:08 -!- Koen has quit (Remote host closed the connection).
11:18:24 -!- Koen has joined.
12:38:08 -!- hanif has joined.
12:56:57 -!- velik has quit (Remote host closed the connection).
12:57:28 -!- velik has joined.
13:01:29 <nakilon> velik I've taught you talk, what will be your first message?
13:01:42 <velik> this don't be the door code.
13:03:10 -!- hanif_ has joined.
13:03:21 -!- hanif has quit (Ping timeout: 276 seconds).
13:03:30 -!- hanif_ has changed nick to hanif.
13:04:04 -!- zegalch has quit (Remote host closed the connection).
13:04:29 -!- zegalch has joined.
13:04:31 <hanif> nakilon: markov chain? what text did you feed it?
13:04:50 <nakilon> implementation is complex
13:05:31 <nakilon> I feed it 3 months of the last winter of this channel logs
13:06:37 <esolangs> [[Velik]] M https://esolangs.org/w/index.php?diff=88375&oldid=88073 * Nakilon * (+110) taught him talk
13:07:53 <hanif> velik fungot
13:07:54 <fungot> hanif: heh. i have seen beter than that in the not too fast stack-based bytecode interpreter? ( i find the little animated dog in windows xps search facility absolutely adorable!
13:08:53 -!- slavfox has quit (Ping timeout: 246 seconds).
13:08:58 <nakilon> I've used a custom markup on ~100 messages
13:09:41 <hanif> custom markup?
13:09:43 -!- slavfox has joined.
13:09:55 <nakilon> then used TreeTagger to markup all the logs
13:11:22 <nakilon> yeah, the markup that isn't some universal and standard NLP "POS tagging" but enough to solve the problem of the text generation
13:12:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:12:35 <nakilon> imagine that TreeTagger uses some own set of POS tags, then another tool like Hunpos uses different one
13:13:01 -!- hanif_ has joined.
13:13:17 <nakilon> all they use own systems so I made a universal one so I can then switch and retrain the model on any another one if it will be better than TreeTagger
13:13:23 <hanif_> i didn't know what markup was
13:14:01 <nakilon> hanif_ see example https://github.com/mivoq/hunpos/issues/29#issuecomment-925107185
13:15:47 -!- tromp has joined.
13:16:21 -!- hanif has quit (Ping timeout: 276 seconds).
13:16:32 <nakilon> so the set of POS tags that these tools use is different and my one is custom too; so velik learns how my tagging translates to treetagger tagging, then learns words from logs and translates back to my markup to then use the 100 training marked up messages to learn how to build sentences
13:18:35 <nakilon> as for "markov chain?" part -- it's just mimics random one from 100 known sentence structures using all the words it's learned
13:19:29 <hanif_> i see
13:20:10 <nakilon> it also estimates the translation accuracy -- it's 75% currently with TreeTagger but was around 80% with Hunpos but it stopped working
13:22:36 <nakilon> by translation accuracy I mean how well it understands my custom markup so it tries to translate the treetagger to my one using the model being retrained like in a cross-correlation method
13:23:20 <nakilon> so the more consistent my markup is the higher the accuracy it can achieve, limited to the amount of information the POS tagging gives it
13:23:47 <nakilon> and those taggers are around 85% accurate AFAIK
13:24:38 <nakilon> so losing just 5-10% appeared to be surprisingly good result for a custom markup I suppose since I'm not a linguist
13:25:23 <nakilon> oh, I'm wrong, I lose 20-25%
13:26:44 <nakilon> so the final understanding correctness of your text by velik is around 65%
13:27:48 -!- hanif has joined.
13:28:03 -!- hanif_ has quit (Ping timeout: 276 seconds).
13:28:44 <nakilon> it also tries to make the response relevant but not so well
13:29:00 <nakilon> velik what's your opinion on fungot?
13:29:00 <fungot> nakilon: zarchne wanted to make sure their terminology is similar to prescheme: arbitrary code at the bottom of the stack, multiply the top two values from one another
13:29:10 <velik> if there are 0 I don't thank to bypass ;
13:32:03 <nakilon> maybe saving the model marshalized would make it respond faster
13:35:51 <nakilon> wc -l shows 70
13:37:43 -!- Koen has quit (Remote host closed the connection).
13:39:26 <nakilon> so in other words I've manually marked up 70 phrases like this https://dpaste.org/B6G8/slim and then automatically marked up 3 months of logs by using TreeTagger as an intermediate format; then using 70 for sentence structure and 3 months for the vocabulary
13:40:29 -!- hanif_ has joined.
13:41:53 <nakilon> unfortunately building English sentences is hard; the same approach with Russian resulted in only 5% of sentences being grammatically incorrect while here it's pretty much every single one (
13:43:05 <nakilon> but actually I didn't estimate it yet
13:43:39 -!- hanif has quit (Ping timeout: 276 seconds).
13:43:50 <nakilon> the last one was correct but the very first one wasn't
13:46:05 -!- hanif has joined.
13:47:33 -!- hanif_ has quit (Ping timeout: 276 seconds).
14:02:33 -!- Sgeo has joined.
14:05:45 -!- hanif has quit (Ping timeout: 276 seconds).
14:12:05 -!- sprock has quit (Ping timeout: 264 seconds).
14:15:30 -!- hendursa1 has quit (Ping timeout: 276 seconds).
14:17:20 -!- hendursa1 has joined.
14:29:26 -!- Koen has joined.
14:35:22 -!- Koen has quit (Remote host closed the connection).
14:55:10 -!- dyeplexer has quit (Read error: Connection reset by peer).
15:25:06 <esolangs> [[6673846770]] https://esolangs.org/w/index.php?diff=88376&oldid=88373 * Larryrl * (+81)
15:26:01 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88377&oldid=88376 * Larryrl * (+3) /* Instructions */
15:27:55 -!- wib_jonas has quit (Quit: Client closed).
15:30:51 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88378&oldid=88377 * Larryrl * (+1) /* Instructions */
15:31:58 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88379&oldid=88378 * Larryrl * (+41) /* Example */
15:34:32 -!- hendursa1 has quit (Quit: hendursa1).
15:34:47 -!- Melvar has quit (Quit: WeeChat 3.2).
15:34:58 -!- hendursaga has joined.
15:39:44 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88380&oldid=88379 * Larryrl * (+32) /* Syntax */
15:51:53 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88381&oldid=88380 * Larryrl * (-42) /* Syntax */
15:54:53 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88382&oldid=88381 * Larryrl * (+315) /* Instructions */
16:27:15 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:33:11 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88383&oldid=88382 * Larryrl * (+106)
16:33:38 <esolangs> [[6673846770]] https://esolangs.org/w/index.php?diff=88384&oldid=88383 * Larryrl * (+1) /* Syntax */
16:46:05 -!- b_jonas has joined.
16:49:29 -!- sprock has joined.
16:54:09 -!- tromp has joined.
16:54:59 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=88385&oldid=88364 * Nanobot567 * (+115) added my intro
16:57:46 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=88386&oldid=88385 * Nanobot567 * (+59) just fixed my intro, don't kill me pls
16:58:27 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88387&oldid=88384 * Larryrl * (+27) /* Instructions */
17:33:43 -!- arseniiv has quit (Ping timeout: 265 seconds).
17:35:04 -!- arseniiv has joined.
17:40:25 <esolangs> [[Potatoscript]] N https://esolangs.org/w/index.php?oldid=88388 * Nanobot567 * (+2736) created page
17:46:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:25:59 -!- tromp has joined.
18:31:52 <esolangs> [[User:Nanobot567]] N https://esolangs.org/w/index.php?oldid=88389 * Nanobot567 * (+248) created my page
18:40:38 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88390&oldid=88387 * Larryrl * (+32)
18:43:25 <esolangs> [[6673846770]] M https://esolangs.org/w/index.php?diff=88391&oldid=88390 * Larryrl * (-22) /* Interpreter */
18:44:01 <esolangs> [[6673846770]] https://esolangs.org/w/index.php?diff=88392&oldid=88391 * Larryrl * (+39) /* External Link */
18:49:57 <esolangs> [[FlipJump]] https://esolangs.org/w/index.php?diff=88393&oldid=87171 * Tomhe * (+1908) the bit/hex namespaces, more hexlib macros, typos
18:52:50 -!- arseniiv has quit (Ping timeout: 265 seconds).
19:32:37 <fizzie> Meh, my desktop's still getting confused by these monitors. Now `xrandr -q` is saying only one of them is connected. The desktop's showing on both, and the two multi-stream outputs are present, but listed as "disconnected" and modes cannot be changed. And my status bar panel only thinks one monitor exists, so I've got bars only one one. Xmonad knows of both though.
19:33:20 <fizzie> I think I need some sort of forced rescan. And I'd also like to disable DisplayPort multi-stream mode, but I've not found an nvidia driver option for that.
19:35:22 -!- sprock has quit (Ping timeout: 265 seconds).
19:51:47 <fizzie> Well, apparently going away for dinner and leaving the monitors to drop to power-save mode was enough to trigger some sort of an event.
19:59:46 -!- sprock has joined.
20:01:17 -!- mcfrdy has quit (Quit: quit).
20:02:07 -!- mcfrdy has joined.
20:12:58 <nakilon> the old good turn-it-off turn-it-on
20:29:15 <esolangs> [[Stardust]] N https://esolangs.org/w/index.php?oldid=88394 * PixelatedStarfish * (+611) Created page with " Stardust is a programming language by [[User:PixelatedStarfish]]. It is designed such that an arbitrary sequence of characters can be interpreted as source describing a progr..."
20:35:24 -!- Melvar has joined.
20:36:15 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88395&oldid=88394 * PixelatedStarfish * (+220)
20:39:44 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88396&oldid=88395 * PixelatedStarfish * (-2)
20:45:37 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88397&oldid=88396 * PixelatedStarfish * (+184) /* The Compiler */
20:46:08 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88398&oldid=88397 * PixelatedStarfish * (+6)
20:46:22 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88399&oldid=88398 * PixelatedStarfish * (+0)
20:51:43 <esolangs> [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=88400&oldid=87851 * PixelatedStarfish * (+157) /* Unimplemented Languages */
20:52:11 <esolangs> [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=88401&oldid=88400 * PixelatedStarfish * (-68) /* Stardust */
20:56:23 -!- sprock has quit (Ping timeout: 252 seconds).
20:57:23 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88402&oldid=88399 * PixelatedStarfish * (+22)
20:57:33 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88403&oldid=88402 * PixelatedStarfish * (+2)
20:58:18 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88404&oldid=88403 * PixelatedStarfish * (+45)
21:13:46 -!- Lord_of_Life_ has joined.
21:14:36 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
21:15:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:33:38 -!- dutch has joined.
21:48:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:27:25 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=88405&oldid=88084 * Corbin * (+43) /* Primitive Functors */ Document recent changes. The `either` combinator should obsolete `pick` as primitive. `f-recip` was not documented.
23:00:31 -!- hendursaga has quit (Remote host closed the connection).
23:01:00 -!- hendursaga has joined.
23:01:46 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88406&oldid=88404 * PixelatedStarfish * (+473) /* The Compiler */
23:02:50 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88407&oldid=88406 * PixelatedStarfish * (+45) /* Modulo Compiler */
23:03:27 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88408&oldid=88407 * PixelatedStarfish * (+23) /* Modulo Compiler */
23:04:15 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88409&oldid=88408 * PixelatedStarfish * (-45) /* Modulo Compiler */
23:14:58 -!- dutch has quit (Quit: WeeChat 3.3).
23:19:45 -!- dutch has joined.
23:22:34 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88410&oldid=88409 * PixelatedStarfish * (+15) /* Summation Compiler */
23:35:13 -!- sprock has joined.
23:37:49 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88411&oldid=88223 * Rphii * (+69) categories
23:40:04 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88412&oldid=88411 * Rphii * (+2) /* Commands */ technical grammar
23:41:41 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88413&oldid=88412 * Rphii * (-1) move [Illegal operations] under [Commands]
23:42:34 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88414&oldid=88413 * Rphii * (-71) /* Limits */ mathematical grammar fix
23:44:13 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88415&oldid=88414 * Rphii * (-22) /* Overflowing */ logical grammar fix
23:51:44 -!- oerjan has joined.
23:56:15 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88416&oldid=88415 * Rphii * (+597) /* Commands */ command . and ,
2021-09-30
00:09:23 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88417&oldid=88416 * Rphii * (-199) fix q
00:09:50 <esolangs> [[FerNANDo]] https://esolangs.org/w/index.php?diff=88418&oldid=36311 * YamTokTpaFa * (+0) /* The conditional loop command */ wikified bullet items
00:10:16 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88419&oldid=88410 * PixelatedStarfish * (-3) /* Modulo Compiler */
00:14:48 -!- hendursaga has quit (Ping timeout: 276 seconds).
00:15:27 -!- hendursaga has joined.
00:33:37 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88420&oldid=88417 * Rphii * (+485) Add ^ command
00:37:12 <esolangs> [[User:Maikeru51]] https://esolangs.org/w/index.php?diff=88421&oldid=88333 * Maikeru51 * (+160)
00:49:37 <esolangs> [[Pancakes]] N https://esolangs.org/w/index.php?oldid=88422 * CatCatDeluxe * (+7665) Created page with "Pancakes is a stack-based programming language designed by [[User:CatCatDeluxe]] to have a simple parser with as little edge cases as possible, yet still be fun to program in...."
00:49:56 <esolangs> [[Pancakes]] M https://esolangs.org/w/index.php?diff=88423&oldid=88422 * CatCatDeluxe * (-40)
00:53:45 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=88424&oldid=83904 * CatCatDeluxe * (+15)
00:54:23 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=88425&oldid=88424 * CatCatDeluxe * (-50)
00:55:01 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=88426&oldid=88425 * CatCatDeluxe * (-61)
00:55:16 <esolangs> [[User:CatCatDeluxe]] https://esolangs.org/w/index.php?diff=88427&oldid=88426 * CatCatDeluxe * (+64)
01:05:43 -!- op_4 has quit (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in).
01:06:22 -!- op_4 has joined.
01:13:55 -!- brettgilio has quit (Quit: Leaving...).
01:14:38 -!- brettgilio has joined.
01:18:40 -!- brettgilio has quit (Remote host closed the connection).
01:21:53 -!- brettgilio has joined.
01:21:55 -!- brettgilio has quit (Client Quit).
01:22:35 -!- brettgilio has joined.
01:27:01 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88428&oldid=88420 * Rphii * (+0) /* Commands */ adjust the " command description
01:41:57 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88429&oldid=88428 * Rphii * (+0) /* Commands */ swap around [ and ]...
01:44:56 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88430&oldid=88429 * Rphii * (+0) Undo revision 88429 by [[Special:Contributions/Rphii|Rphii]] ([[User talk:Rphii|talk]])
02:00:24 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88431&oldid=88430 * Rphii * (+192) /* Commands */ add small logical feature
02:07:18 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88432&oldid=88431 * Rphii * (+54) /* Examples */ add truth machine example!
02:14:15 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88433&oldid=88432 * Rphii * (+0) /* Commands */ swap around [ and ]...
02:16:29 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88434&oldid=88433 * Rphii * (-6) /* Truth machine */ fix
02:18:11 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88435&oldid=88434 * Rphii * (+0) /* Truth machine */ fix
02:21:52 <esolangs> [[)0,1(]] M https://esolangs.org/w/index.php?diff=88436&oldid=88435 * Rphii * (-192) /* Commands */ remove that one weird extra feature
03:22:35 <esolangs> [[User:PixelatedStarfish]] https://esolangs.org/w/index.php?diff=88437&oldid=88401 * PixelatedStarfish * (-1) /* Stardust */
03:42:52 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88438&oldid=88419 * PixelatedStarfish * (+3) /* Compiling */
03:45:16 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88439&oldid=88438 * PixelatedStarfish * (+72) /* Cumulative Compiler */
03:46:57 <esolangs> [[Stardust]] https://esolangs.org/w/index.php?diff=88440&oldid=88439 * PixelatedStarfish * (+144) /* Modulo Compiler */
05:21:23 -!- sprock has quit (Quit: brb).
05:39:49 -!- sprock has joined.
05:43:06 -!- tromp has joined.
05:47:51 -!- oerjan has quit (Quit: Nite).
05:57:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:31:46 -!- tromp has joined.
06:38:11 -!- imode has quit (Ping timeout: 246 seconds).
06:52:21 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
06:55:29 -!- tromp has joined.
07:38:40 -!- Sgeo has quit (Read error: Connection reset by peer).
08:05:14 -!- hendursa1 has joined.
08:08:39 -!- hendursaga has quit (Ping timeout: 276 seconds).
08:13:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:15:39 -!- tromp has joined.
08:17:10 -!- Thelie has joined.
09:33:03 -!- Thelie has quit (Remote host closed the connection).
09:42:16 -!- arseniiv has joined.
09:50:10 -!- wib_jonas has joined.
11:25:02 <esolangs> [[Pancakes]] M https://esolangs.org/w/index.php?diff=88441&oldid=88423 * CatCatDeluxe * (+3)
11:50:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:03:59 -!- faxlore has quit (Quit: Connection closed for inactivity).
12:13:15 -!- tromp has joined.
13:31:13 -!- delta23 has joined.
15:06:45 <esolangs> [[Senpai]] N https://esolangs.org/w/index.php?oldid=88442 * 4gboframram * (+1549) Created page with "'''Senpai''' is a stack-based, dynamically typed [[esolang]] created by [[User:4gboframram]]. ==Features== * Has an arbitrary number of stacks that can be created and manipul..."
15:13:56 <esolangs> [[Senpai]] https://esolangs.org/w/index.php?diff=88443&oldid=88442 * 4gboframram * (+149) /* Expressions */
15:25:31 -!- arseniiv has quit (Ping timeout: 245 seconds).
15:36:31 -!- arseniiv has joined.
15:42:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:18:05 <esolangs> [[JSCall]] N https://esolangs.org/w/index.php?oldid=88444 * Hakerh400 * (+8533) Created page with "'''JSCall''' is an esoteric subset of the JavaScript language inspired by [[JSFuck]]. JSCall is invented by [[User:Hakerh400]] in [[2021]]. == Overview == Every JSCall progr..."
16:18:32 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=88445&oldid=88368 * Hakerh400 * (+13) +[[JSCall]]
16:18:50 <esolangs> [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=88446&oldid=88039 * Hakerh400 * (+13) +[[JSCall]]
16:24:09 <esolangs> [[JSCall]] https://esolangs.org/w/index.php?diff=88447&oldid=88444 * Hakerh400 * (+15)
16:31:09 -!- tromp has joined.
16:33:00 -!- arseniiv has quit (Ping timeout: 265 seconds).
16:33:44 -!- earendel has joined.
16:39:57 -!- Sgeo has joined.
16:45:53 -!- arseniiv has joined.
16:55:32 -!- imode has joined.
17:01:34 <esolangs> [[JSCall]] https://esolangs.org/w/index.php?diff=88448&oldid=88447 * Hakerh400 * (-1043)
17:09:16 -!- delta23_ has joined.
17:12:43 -!- b_jonas_ has joined.
17:15:27 <esolangs> [[Senpai]] https://esolangs.org/w/index.php?diff=88449&oldid=88443 * 4gboframram * (+1483)
17:17:36 -!- earendel has quit (*.net *.split).
17:17:36 -!- tromp has quit (*.net *.split).
17:17:36 -!- delta23 has quit (*.net *.split).
17:17:36 -!- op_4 has quit (*.net *.split).
17:17:36 -!- b_jonas has quit (*.net *.split).
17:17:36 -!- velik has quit (*.net *.split).
17:17:36 -!- spruit11 has quit (*.net *.split).
17:17:36 -!- riv has quit (*.net *.split).
17:17:36 -!- shikhin has quit (*.net *.split).
17:18:40 -!- velik has joined.
17:18:44 -!- wib_jonas has quit (Quit: Client closed).
17:21:00 -!- immibis_ has joined.
17:22:07 -!- earendel has joined.
17:22:07 -!- op_4 has joined.
17:22:07 -!- spruit11 has joined.
17:22:07 -!- riv has joined.
17:22:07 -!- shikhin has joined.
17:23:46 -!- immibis has quit (Ping timeout: 265 seconds).
17:25:03 -!- hendursa1 has quit (Ping timeout: 276 seconds).
17:30:49 <esolangs> [[FlipJump]] M https://esolangs.org/w/index.php?diff=88450&oldid=88393 * Tomhe * (+19) /* The Standard Library */
17:36:51 -!- hendursaga has joined.
17:40:58 -!- MrAureliusR_ has joined.
17:44:00 -!- Taneb0 has joined.
17:44:28 -!- MrAureliusR has quit (Ping timeout: 265 seconds).
17:44:29 -!- Taneb has quit (Ping timeout: 265 seconds).
17:54:55 -!- Taneb0 has changed nick to Taneb.
18:09:35 <esolangs> [[Senpai]] https://esolangs.org/w/index.php?diff=88451&oldid=88449 * 4gboframram * (+454)
18:26:12 <esolangs> [[EPL Main]] https://esolangs.org/w/index.php?diff=88452&oldid=88169 * Timofeyka * (+8) /* Hello, world Program for Windows */
18:56:11 <esolangs> [[JSCall]] https://esolangs.org/w/index.php?diff=88453&oldid=88448 * Hakerh400 * (-8)
19:08:24 -!- hendursaga has quit (Ping timeout: 276 seconds).
19:09:49 -!- hendursaga has joined.
19:14:55 -!- delta23_ has changed nick to delta23.
20:05:04 -!- V has quit (Ping timeout: 252 seconds).
20:05:29 -!- int-e has quit (Ping timeout: 264 seconds).
20:05:54 -!- V has joined.
20:07:03 -!- int-e has joined.
20:07:41 -!- chiselfuse has quit (Remote host closed the connection).
20:11:07 -!- chiselfuse has joined.
20:23:27 -!- dutch has quit (Quit: WeeChat 3.3).
20:31:30 -!- dutch has joined.
20:54:11 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
20:57:36 -!- Lord_of_Life has joined.
21:15:26 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
21:15:48 -!- Lord_of_Life has joined.
21:19:44 <esolangs> [[Special:Log/newusers]] create * GoodCoderBBoy * New user account
21:27:31 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=88454&oldid=88386 * GoodCoderBBoy * (+186) /* Introductions */
21:37:33 -!- tromp has joined.
21:47:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:20:25 -!- arseniiv_ has joined.
22:23:29 -!- arseniiv has quit (Ping timeout: 268 seconds).
22:27:43 <esolangs> [[AutomataFuck]] N https://esolangs.org/w/index.php?oldid=88455 * GoodCoderBBoy * (+888) Created page with "{{WIP}} {{infobox proglang |name=AutomataFuck |paradigms=String-rewriting |author=[https://good-coder-bad-boy.github.io GoodCoderBBoy] |year=[[:Category:2021|2021]] |memsys=..."
22:49:57 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88456&oldid=88455 * GoodCoderBBoy * (+3434) added instructions
22:51:12 <esolangs> [[AutomataFuck]] M https://esolangs.org/w/index.php?diff=88457&oldid=88456 * GoodCoderBBoy * (+15) grammar and spelling in instruction table
22:53:51 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88458&oldid=88457 * GoodCoderBBoy * (+12) made clear how code is modified
22:59:04 <esolangs> [[Special:Log/newusers]] create * Yes * New user account
23:00:34 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88459&oldid=88458 * GoodCoderBBoy * (+402) iterations explained
23:14:45 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88460&oldid=88459 * GoodCoderBBoy * (+256) added Hello, World!
23:16:39 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88461&oldid=88460 * GoodCoderBBoy * (+137) amended exit conditions
23:30:07 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88462&oldid=88461 * GoodCoderBBoy * (+847) echo statement example
23:30:46 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88463&oldid=88462 * GoodCoderBBoy * (+2) fixed italics
23:31:21 <esolangs> [[AutomataFuck]] https://esolangs.org/w/index.php?diff=88464&oldid=88463 * GoodCoderBBoy * (+2) fixed example code
23:39:17 -!- oerjan has joined.
←2021-08 2021-09 2021-10→ ↑2021 ↑all