00:01:05 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
00:02:04 -!- Lord_of_Life has joined.
00:02:57 <int-e> multitasking I think
00:03:20 <int-e> i.e., running multiple programs at once, so multi-programmed
00:04:34 <int-e> (related to timesharing I suppose)
00:14:53 <Sgeo> "All of this is relevant to nothing in particular except to indicate that even the most
00:14:53 <Sgeo> modern computers still use some electro-mechanical components. Fortunately, the
00:14:53 <Sgeo> demise of the disk drive is not far off. The end of mechanical access devices will certainly
00:14:53 <Sgeo> not be lamented. They will soon go the way of punched card systems. "
00:20:17 <int-e> . o O ( make a speaker or microphone with no moving parts )
01:14:00 <fizzie> There was that fan "without moving parts" (maybe slightly depending on definitions), based on https://en.wikipedia.org/wiki/Ion_wind
01:14:13 <fizzie> https://www.youtube.com/watch?v=2RTGv-p-xxY
01:15:02 <fizzie> I don't know if you could feasibly turn that into a speaker.
01:16:51 <fizzie> https://massless.info/DontBreathe.html "In 1980 he designed and built a prototype corona wind loudspeaker that he called an Ion Cloud panel, one of the better names of a massless speaker. Stereophile (1980) called him the ionic man."
03:02:02 <zzo38> Is there such a thing as a "scalar monad"?
03:12:35 <int-e> fizzie: Did you see https://massless.info/Mics.html too? The high frequency use case makes some actual sense too.
03:24:22 <esolangs> [[Vowels]] M https://esolangs.org/w/index.php?diff=116479&oldid=74764 * PythonshellDebugwindow * (+1) Distinguish confusion, stub
03:40:24 <esolangs> [[Onlynumber]] N https://esolangs.org/w/index.php?oldid=116480 * Azwid * (+106) Created page with "'''Onlynumber''' is a esoteric programing language made in Python. [Category:Languages]][[Category:2023]]"
04:00:41 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116481&oldid=116480 * Azwid * (+94)
04:18:00 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116482&oldid=116481 * Azwid * (+33)
04:18:13 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116483&oldid=116482 * Azwid * (+1)
04:21:26 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=116484&oldid=116463 * Azwid * (+17) /* O */
04:36:40 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116485&oldid=116483 * Azwid * (+20)
04:46:14 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116486&oldid=116485 * Azwid * (+0) Azwid changed the content model of the page [[Onlynumber]] from "wikitext" to "plain text"
04:46:14 <esolangs> [[Special:Log/contentmodel]] change * Azwid * Azwid changed the content model of the page [[Onlynumber]] from "wikitext" to "plain text"
04:46:36 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116487&oldid=116486 * Azwid * (+0) Azwid changed the content model of the page [[Onlynumber]] from "plain text" to "CSS"
04:46:36 <esolangs> [[Special:Log/contentmodel]] change * Azwid * Azwid changed the content model of the page [[Onlynumber]] from "plain text" to "CSS"
04:47:09 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116488&oldid=116487 * Azwid * (+0) Azwid changed the content model of the page [[Onlynumber]] from "CSS" to "wikitext"
04:47:09 <esolangs> [[Special:Log/contentmodel]] change * Azwid * Azwid changed the content model of the page [[Onlynumber]] from "CSS" to "wikitext"
04:47:24 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116489&oldid=116488 * Azwid * (+0) Azwid changed the content model of the page [[Onlynumber]] from "wikitext" to "JavaScript"
04:47:24 <esolangs> [[Special:Log/contentmodel]] change * Azwid * Azwid changed the content model of the page [[Onlynumber]] from "wikitext" to "JavaScript"
04:47:33 <esolangs> [[Onlynumber]] https://esolangs.org/w/index.php?diff=116490&oldid=116489 * Azwid * (+0) Azwid changed the content model of the page [[Onlynumber]] from "JavaScript" to "wikitext"
04:47:33 <esolangs> [[Special:Log/contentmodel]] change * Azwid * Azwid changed the content model of the page [[Onlynumber]] from "JavaScript" to "wikitext"
05:07:54 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=116491&oldid=116484 * Xi-816 * (+22)
05:11:03 <esolangs> [[NDBall Extended]] N https://esolangs.org/w/index.php?oldid=116492 * Xi-816 * (+272) Created page with "{{stub}} '''NDBall Extended''' is an esoteric programming language by [[User:Xi-816]]. It is an extended version of NDBall, with more instructions. == N-Dimensional Grid == NDBall Extended uses N-Dimensional Grid like NDBall. But it is written like <code>[0 1 0]
05:15:49 <esolangs> [[NDBall Extended]] https://esolangs.org/w/index.php?diff=116493&oldid=116492 * Xi-816 * (+369)
05:16:03 <esolangs> [[NDBall Extended]] https://esolangs.org/w/index.php?diff=116494&oldid=116493 * Xi-816 * (+0)
05:18:33 <esolangs> [[NDBall Extended]] https://esolangs.org/w/index.php?diff=116495&oldid=116494 * Xi-816 * (+254)
05:24:55 <esolangs> [[NDBall Extended]] https://esolangs.org/w/index.php?diff=116496&oldid=116495 * Xi-816 * (+356)
05:33:41 <esolangs> [[NDBall Extended]] https://esolangs.org/w/index.php?diff=116497&oldid=116496 * Xi-816 * (+294)
05:39:19 <zzo38> Is there a good format of a use like JSON, but is non-Unicode, and allows comments and 64-bit integers and proper binary data (which may be represented as hex or base64, perhaps)?
07:11:59 -!- tromp has joined.
08:08:36 -!- Sgeo has quit (Read error: Connection reset by peer).
08:12:31 <river> i dnot think that there is, but it is a good idea
08:31:49 <b_jonas> zzo38: I just defined a custom format that I use for work to dump some data once and read it many times because the data is slower to generate. it is line-based and has a well-defined format for its tokens, so I can write quoted strings, numbers, and more, and I can split lines and tokenize even parts that I currently ignore when reading (but still write so I can use the data later), but no recursive
08:31:55 <b_jonas> structures like nested arrays or hashes.
08:32:40 <b_jonas> besides that I have various tabular data in tab-separated csv format, some of them read or written by a third-party application as well, some that only my scripts use
08:33:38 <b_jonas> I don't much like json or xml or these generic recursive container formats. xml is fine for XHTML, but I don't think it's a good idea to use it for everything.
08:41:36 -!- __monty__ has joined.
09:38:26 <esolangs> [[Onlynumber]] M https://esolangs.org/w/index.php?diff=116498&oldid=116490 * None1 * (+18)
09:45:02 <esolangs> [[Talk:Brainpocalypse]] https://esolangs.org/w/index.php?diff=116499&oldid=55779 * None1 * (+201) /* Number of cells */ new section
09:56:41 <esolangs> [[Segmentation fault]] M https://esolangs.org/w/index.php?diff=116500&oldid=113809 * None1 * (+29)
09:57:44 <esolangs> [[Talk:Brainpocalypse]] M https://esolangs.org/w/index.php?diff=116501&oldid=116499 * None1 * (+5) /* Number of cells */
10:02:56 -!- tromp has quit (Read error: Connection reset by peer).
10:03:36 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116502&oldid=116237 * None1 * (+151)
10:27:50 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116503&oldid=116502 * None1 * (+482)
10:30:24 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116504&oldid=116503 * None1 * (+1) /* Functions */
10:33:35 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116505&oldid=116504 * None1 * (+275) /* Custom functions */
10:34:08 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116506&oldid=116505 * None1 * (+8) /* Functions */
10:35:08 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116507&oldid=116506 * None1 * (+127) /* Custom functions */
10:35:19 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116508&oldid=116507 * None1 * (+0) /* Custom functions */
10:43:44 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116509&oldid=116508 * None1 * (+414) /* Custom functions */
10:44:00 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116510&oldid=116509 * None1 * (+0) /* bruh() function */
10:44:46 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116511&oldid=116510 * None1 * (+2) /* Custom functions */
10:45:32 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116512&oldid=116511 * None1 * (+2) /* Functions */
10:47:56 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116513&oldid=116512 * None1 * (+390) /* Functions */
10:48:09 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116514&oldid=116513 * None1 * (-12) /* built-in functions */
10:48:26 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116515&oldid=116514 * None1 * (+11) /* built-in functions */
10:52:38 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116516&oldid=116515 * None1 * (+264) /* built-in functions */
10:53:18 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116517&oldid=116516 * None1 * (+49) /* Custom functions */
10:55:04 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116518&oldid=116517 * None1 * (+184) /* built-in functions */
10:55:56 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116519&oldid=116518 * None1 * (+44) /* built-in functions */
10:59:24 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116520&oldid=116519 * None1 * (+206)
11:03:00 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116521&oldid=116520 * None1 * (+191) /* Function calls */
11:05:20 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116522&oldid=116521 * None1 * (+96) /* Whitespaces */
11:16:36 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116523&oldid=116522 * None1 * (+598)
11:17:52 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116524&oldid=116523 * None1 * (+26) /* Functions */
11:18:35 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116525&oldid=116524 * None1 * (+35) /* Example programs */
11:19:28 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116526&oldid=116525 * None1 * (-3) /* Call stack */
11:20:05 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116527&oldid=116526 * None1 * (+13) /* Example programs */
11:21:10 -!- CAT_S has quit (Read error: Connection reset by peer).
11:23:49 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116528&oldid=116527 * None1 * (+28) /* built-in functions */
11:27:01 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116529&oldid=116528 * None1 * (+124) /* Example programs */
11:27:34 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116530&oldid=116529 * None1 * (+34) /* Functions */
11:28:43 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116531&oldid=116530 * None1 * (+80) /* built-in functions */
11:29:04 <esolangs> [[User:None1/InDev]] M https://esolangs.org/w/index.php?diff=116532&oldid=116531 * None1 * (-1) /* built-in functions */
11:30:59 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116533&oldid=116532 * None1 * (+93) /* Example programs */
11:31:50 <esolangs> [[User:None1/InDev]] https://esolangs.org/w/index.php?diff=116534&oldid=116533 * None1 * (-3875)
11:33:14 <esolangs> [[Bruh():bruh()]] N https://esolangs.org/w/index.php?oldid=116535 * None1 * (+4014) Created page with "bruh():bruh() is an esolang by [[User:None1]] and pronouced "bruh bruh", it uses only built-in functions and custom functions. ==Functions== There are two types of functions: custom functions and built-in functions. Each function is given a random unique ID from 0
11:33:54 <esolangs> [[Bruh():bruh()]] M https://esolangs.org/w/index.php?diff=116536&oldid=116535 * None1 * (+14)
11:34:29 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=116537&oldid=116491 * None1 * (+20) /* B */
11:35:12 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=116538&oldid=116419 * None1 * (+55) /* My Esolangs */
11:37:27 -!- CAT_S has joined.
11:38:08 <fizzie> Tempted to include something like https://go.dev/play/p/U1FFkwy3xye in a CL just to see the code review comments.
11:42:35 <esolangs> [[Project Euler/25]] https://esolangs.org/w/index.php?diff=116539&oldid=116448 * None1 * (+148) Undo revision 116448 by [[Special:Contributions/Europe2048|Europe2048]] ([[User talk:Europe2048|talk]])
11:47:02 <esolangs> [[NDBall Extended]] M https://esolangs.org/w/index.php?diff=116540&oldid=116497 * PythonshellDebugwindow * (+53) Link, categories
11:47:26 <esolangs> [[Gofe]] https://esolangs.org/w/index.php?diff=116541&oldid=116318 * None1 * (+92)
11:47:44 <esolangs> [[Gofe]] M https://esolangs.org/w/index.php?diff=116542&oldid=116541 * None1 * (+2) /* Project Euler problem 16 */
11:48:22 <esolangs> [[Gofe]] M https://esolangs.org/w/index.php?diff=116543&oldid=116542 * None1 * (+3) /* Project Euler problem 16 */
11:48:56 <esolangs> [[Gofe]] M https://esolangs.org/w/index.php?diff=116544&oldid=116543 * None1 * (+2) /* Project Euler problem 16 */
11:50:44 <esolangs> [[Project Euler/16]] https://esolangs.org/w/index.php?diff=116545&oldid=116408 * None1 * (+161) /* Implementations */
11:51:08 <esolangs> [[Project Euler/16]] https://esolangs.org/w/index.php?diff=116546&oldid=116545 * None1 * (+40) /* Gofe */
12:00:42 -!- arseniiv has joined.
12:02:42 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=116547&oldid=116538 * None1 * (+84) /* Other */
12:02:58 <esolangs> [[User:None1]] M https://esolangs.org/w/index.php?diff=116548&oldid=116547 * None1 * (+3) /* brainfuck programs */
12:57:24 <esolangs> [[Project Euler]] N https://esolangs.org/w/index.php?oldid=116549 * None1 * (+392) Created page with "Project Euler is a joke language by [[User:None1]]. It is made to complete the Project Euler problems with the shortest code possible. There are only 28 valid programs, A-Z, 0 and 1, which solves the Project Euler problem 1-28 respectively. ==Examples== ===Project E
12:59:03 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=116550&oldid=116376 * None1 * (+63) /* General languages */
12:59:19 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=116551&oldid=116548 * None1 * (+63) /* My Esolangs */
12:59:20 -!- b_jonas has quit (Ping timeout: 244 seconds).
13:01:15 -!- b_jonas has joined.
13:08:07 -!- b_jonas has quit (Ping timeout: 260 seconds).
13:18:10 <esolangs> [[BrainF]] N https://esolangs.org/w/index.php?oldid=116552 * None1 * (+23) Redirected page to [[Brainfuck]]
13:19:56 -!- b_jonas has joined.
13:32:18 <esolangs> [[Special:Log/newusers]] create * Alx * New user account
13:34:12 <esolangs> [[JarJarScript]] M https://esolangs.org/w/index.php?diff=116553&oldid=79712 * Lilchiky * (+8) This is a WIP, is it?
13:35:02 <esolangs> [[1 byte :5]] M https://esolangs.org/w/index.php?diff=116554&oldid=110083 * None1 * (-2)
13:38:26 <esolangs> [[Cheat]] N https://esolangs.org/w/index.php?oldid=116555 * None1 * (+268) Created page with "Cheat is an esolang by [[User:None1]], it is [[brainfuck]] but an emptu program is a [[Hello World]] program. ==Examples== ===Hello World=== <pre></pre> ===[[Cat program]]=== ,[.,] [[Category:Languages]] [[Category:Brainfuck derivatives]] [[Category:Turing complete]]"
13:40:38 <esolangs> [[Cheat]] https://esolangs.org/w/index.php?diff=116556&oldid=116555 * None1 * (+2199) fix typo, add interpreter
13:40:58 <esolangs> [[Cheat]] M https://esolangs.org/w/index.php?diff=116557&oldid=116556 * None1 * (-4) /* JavaScript interpreter */
13:41:39 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=116558&oldid=116537 * None1 * (+12) /* C */
13:42:12 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=116559&oldid=116365 * Alx * (+284) /* Introductions */
13:42:33 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=116560&oldid=116551 * None1 * (+44) /* My Esolangs */
13:45:58 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=116561&oldid=116340 * None1 * (+48) /* brainfuck */
13:51:24 <esolangs> [[English]] https://esolangs.org/w/index.php?diff=116562&oldid=111708 * None1 * (+131) /* Examples */
13:57:45 -!- tromp has joined.
13:58:22 <esolangs> [[User:Alx]] N https://esolangs.org/w/index.php?oldid=116563 * Alx * (+83) Created page with "I am Alx, and I like to make programming languages, compilers and virtual machines."
14:15:33 <esolangs> [[ReadArticle]] N https://esolangs.org/w/index.php?oldid=116564 * None1 * (+1043) Created page with "ReadArticle is an esolang by [[User:None1]] and inspired by [[English]], it has the power to do anything that is mentioned on this wiki. ==Commands== Every program has only one command: the name of an article on this wiki. If the article does not exist or the program
14:16:52 <esolangs> [[ReadArticle]] M https://esolangs.org/w/index.php?diff=116565&oldid=116564 * None1 * (+69) /* Interpreter */
14:17:13 <esolangs> [[ReadArticle]] M https://esolangs.org/w/index.php?diff=116566&oldid=116565 * None1 * (+6) /* Interpreter */
14:17:39 <esolangs> [[ReadArticle]] M https://esolangs.org/w/index.php?diff=116567&oldid=116566 * None1 * (+1) /* Computational class */
14:20:56 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=116568&oldid=116550 * None1 * (+79) /* General languages */
14:21:43 <esolangs> [[User:None1]] M https://esolangs.org/w/index.php?diff=116569&oldid=116560 * None1 * (+79) /* My Esolangs */
14:23:04 <esolangs> [[ReadArticle]] https://esolangs.org/w/index.php?diff=116570&oldid=116567 * None1 * (+37) /* Examples */
14:23:59 <esolangs> [[ReadArticle]] https://esolangs.org/w/index.php?diff=116571&oldid=116570 * None1 * (+111) /* Execution */
14:24:38 <esolangs> [[ReadArticle]] https://esolangs.org/w/index.php?diff=116572&oldid=116571 * None1 * (+64) /* Examples */
14:27:03 <esolangs> [[Bawkbawk]] N https://esolangs.org/w/index.php?oldid=116573 * Lilchiky * (+7) Created page with "{{WIP}}"
14:34:22 <esolangs> [[Suscript 2.0]] M https://esolangs.org/w/index.php?diff=116574&oldid=98436 * ALBANIAN-LAUNDROMAT * (+23)
14:45:23 <esolangs> [[Suscript 2.0]] M https://esolangs.org/w/index.php?diff=116575&oldid=116574 * ALBANIAN-LAUNDROMAT * (+438) added examples
14:55:07 -!- joast has quit (Quit: Leaving.).
15:06:10 -!- Sgeo has joined.
15:19:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:34:45 -!- tromp has joined.
15:56:15 -!- Thelie has joined.
16:05:15 -!- arseniiv has quit (Ping timeout: 255 seconds).
16:27:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:50:26 -!- Thelie has quit (Ping timeout: 246 seconds).
16:52:21 <esolangs> [[SCiPL]] N https://esolangs.org/w/index.php?oldid=116576 * Alx * (+10378) Created page with "= SCiPL (SCi Programming Language) = The SCi programming language is a high-level, interpreted, dynamically typed programming language created by [[User:Alx]]. == SCiPL - Data Types == {| class="wikitable" |- | <code>NULL</code> || Initialized at runtime under names (nil, N
16:52:56 <esolangs> [[SCiPL]] https://esolangs.org/w/index.php?diff=116577&oldid=116576 * Alx * (-23)
16:54:11 <esolangs> [[User:Alx]] https://esolangs.org/w/index.php?diff=116578&oldid=116563 * Alx * (+74)
16:54:27 <esolangs> [[User:Alx]] https://esolangs.org/w/index.php?diff=116579&oldid=116578 * Alx * (+8)
17:00:11 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=116580&oldid=116558 * Alx * (+12)
17:01:41 -!- Thelie has joined.
17:07:06 <esolangs> [[User talk:Alx]] N https://esolangs.org/w/index.php?oldid=116581 * Alx * (+99) Created page with "i'm new here so i'm not sure what this means. i'll put this here anyway, please check out my stuff!"
17:21:00 <esolangs> [[Folder]] https://esolangs.org/w/index.php?diff=116582&oldid=98196 * Rdococ * (+373) Refurbish
17:21:40 <esolangs> [[User talk:Pro465]] N https://esolangs.org/w/index.php?oldid=116583 * Pro465 * (+113) Created page with "you can talk w/ me here. --~~~~ <br>"
17:21:46 <zzo38> I agree with you about XML. It is not good to use for everything, but stuff like XHTML it can work
17:23:33 <esolangs> [[Talk:Folder]] M https://esolangs.org/w/index.php?diff=116584&oldid=52876 * Rdococ * (+232) /* Computational class up for debate */
17:24:10 <esolangs> [[Folder]] M https://esolangs.org/w/index.php?diff=116585&oldid=116582 * Rdococ * (-41) /* Semantics */
17:45:07 -!- tromp has joined.
17:48:11 -!- arseniiv has joined.
17:56:45 <esolangs> [[SCiPL]] https://esolangs.org/w/index.php?diff=116586&oldid=116577 * Alx * (+96) /* SCiPL - Extras */
18:01:36 <esolangs> [[Prefunge]] https://esolangs.org/w/index.php?diff=116587&oldid=110954 * BoundedBeans * (+686) Fixed Hello World to follow the __TIME__ rule
18:33:32 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=116588&oldid=115773 * Alx * (+23)
18:47:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:48:56 -!- tromp has joined.
18:55:35 <zzo38> Sometimes a plain line-based format is better but sometimes it is useful to have structures, though
19:11:35 <esolangs> [[Lightswitch]] N https://esolangs.org/w/index.php?oldid=116589 * Infinitehexagon * (+637) Created page with "'''Lightswitch''' is an esolang created by [[User:Infinitehexagon]] about Lightswitches and the state of light switches. It only uses one keyword; toggle. ==Built-In Keywords== These keywords store binary data into a lightswitch. They are:<br> <code>@in</code
19:14:08 <esolangs> [[BFInfinity]] N https://esolangs.org/w/index.php?oldid=116590 * K * (+1942) Created the page.
19:14:35 -!- FreeFull has joined.
19:15:28 <esolangs> [[BFInfinity]] M https://esolangs.org/w/index.php?diff=116591&oldid=116590 * K * (+135) Added Categories.
19:25:49 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116592&oldid=116589 * Infinitehexagon * (+543)
19:33:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:34:35 -!- tromp has joined.
19:36:33 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116593&oldid=116592 * Infinitehexagon * (+40)
19:38:36 -!- __monty__ has quit (Quit: leaving).
19:54:31 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116594&oldid=116593 * Infinitehexagon * (+92)
19:56:02 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116595&oldid=116594 * Infinitehexagon * (+10)
19:57:31 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116596&oldid=116595 * Infinitehexagon * (+58)
19:59:13 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116597&oldid=116596 * Infinitehexagon * (+16) /* NOT */
19:59:25 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116598&oldid=116597 * Infinitehexagon * (-5) /* NOT logic gate () */
20:03:47 <esolangs> [[User:Infinitehexagon]] https://esolangs.org/w/index.php?diff=116599&oldid=116295 * Infinitehexagon * (+16) /* My Esolangs (chronological order) */
20:04:01 <esolangs> [[User:Infinitehexagon]] https://esolangs.org/w/index.php?diff=116600&oldid=116599 * Infinitehexagon * (+4) /* My Esolangs (chronological order) */
20:10:03 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116601&oldid=116598 * Infinitehexagon * (+129)
20:10:19 <esolangs> [[Lightswitch]] https://esolangs.org/w/index.php?diff=116602&oldid=116601 * Infinitehexagon * (-2) /* Computational class */
20:37:27 -!- arseniiv has quit (Quit: gone too far).
21:21:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:35:33 -!- chiselfuse has quit (Quit: leaving).
21:36:25 -!- chiselfuse has joined.
21:39:04 -!- joast has joined.
22:04:22 <fizzie> Again a weird system administration problem. :/
22:04:28 <fizzie> I've got this suid-root helper that I use to edit nftables rules when a physical key is pressed (kind of a proof-of-presence thing). It executes a `nft` command as a subprocess. It's now stopped working.
22:04:30 <fizzie> If I run the helper as already root, it works correctly. If I run the helper binary as a non-suid program with a non-privileged user, it fails in the expected way ("operation not permitted"). But if I run the suid binary as the daemon user that's watching the key, it just reports that the `nft` binary exited with status code 111 and no output.
22:05:01 <fizzie> Assuming that's an errno value it's returning as an exit code, 111 would be ECONNREFUSED, and could be something to do with the netlink connection nft uses to do its thing.
22:05:48 <int-e> hmmmhmm. something in the environment?
22:06:08 <fizzie> Maybe. It's weird how it works when executed by the actual root user, but not when it gets those privileges via suid.
22:07:30 <int-e> does it work if you use the suid wrapper as root?
22:07:43 <fizzie> In the same shell, as root, `./binary` works but `sudo -u daemon-user ./binary` doesn't.
22:08:07 <fizzie> And it does get *something* from being suid-root, because it fails differently than it does when it's not running nft as root.
22:08:46 <int-e> time to figure out how to strace a suid binary
22:08:54 <fizzie> It could be some sort of security feature about suid binaries and "network" (including netlink) connections, I guess.
22:09:07 <fizzie> AppArmor something-or-other.
22:11:31 <int-e> I guess you could let the wrapper call nft with strace to see what exactly is failing?
22:12:40 <fizzie> Yeah. It's annoying to tweak though because it's a binary. But I could.
22:13:02 <fizzie> Tried to just run the suid binary under strace, but it failed in the "operation not permitted way", but I think that's intended behavior.
22:13:29 <fizzie> Maybe I can "reproduce" it with a suid shell script instead of the binary.
22:14:18 <int-e> I thought suid shell scripts bascially don't work?
22:15:37 <fizzie> I think that's true, but one could have hoped.
22:15:58 <fizzie> It doesn't seem to work, though.
22:18:49 <int-e> I guess you could test the "something in the environment" theory with env -i PATH=/usr/bin <wrapper>
22:20:08 <int-e> But if it's something like AppArmour I don't know what tricks there are to bypass that.
22:20:24 <int-e> But that should turn up in dmesg?
22:20:34 <fizzie> Yeah. Nothing in there.
22:20:39 <int-e> Maybe it depends on the configuration where it logs.
22:20:41 <fizzie> Well, I wrote the "shell script" in Go instead.
22:21:20 <fizzie> At least it fails in the right way. Let's add that strace on the nft then.
22:21:36 <int-e> who even uses Go... oh right you work (or worked, at least) for Google.
22:22:19 <fizzie> Hey, it's not *that* unpopular.
22:23:06 <fizzie> It does getuid() -> 0, geteuid() -> 1000, and then exit(111).
22:23:13 <fizzie> So I guess that's maybe directly in the nft binary.
22:23:31 <fizzie> Sorry, the other way around, getuid() -> 1000, geteuid() -> 0.
22:24:42 <fizzie> main.c: /* nftables cannot be used with setuid in a safe way. */ if (getuid() != geteuid()) _exit(111);
22:25:20 <fizzie> It stopped working after Debian updates, which probably brought in a newer version of nftables with that feature in it.
22:27:38 <fizzie> https://git.netfilter.org/nftables/commit/src/main.c?id=2139913694a9850c9160920b2c638aac4828f9bb
22:27:55 <fizzie> "Apparently some people think its a good idea to make nft setuid so unrivilged users can change settings."
22:28:05 <fizzie> But that's not what I'm doing, you [unprintable]!
22:29:25 <fizzie> I guess the "right" way is to use libnftables instead of the nft binary, which I feel like is what I _tried_ to do first, but it was so terribly documented I gave up and just called the binary.
22:29:54 <fizzie> I mean, it's got a "output in JSON" mode, it's clearly intended to be driven programmatically.
22:30:35 <fizzie> Maybe I'll just build a "nft-relaxed" binary with that line commented out.
22:31:26 <fizzie> And then it'll stop working the next time there's a backwards-incompatible update to libnftables, but still.
22:31:44 <int-e> so your wrapper doesn't do setuid(geteuid()) ?
22:33:56 <int-e> (it's still interesting that it used to work of course)
22:34:22 <fizzie> It pretty much just did exec + some mangling of the outputs.
22:34:53 <fizzie> Is that a best-practices thing for suid binaries that call other ones? I don't really know what I'm doing so much.
22:35:13 <fizzie> I guess that sounds like a plausible fix too.
22:39:00 <fizzie> Yeah, that worked. Thanks!
22:39:25 <fizzie> (It used to work because this was a Debian oldstable that had a version of nftables from right before that commit.)
22:39:59 <int-e> "Best practice", hmm. I don't feel confident enough to say yes. :-)
22:40:46 <int-e> But setuid(geteuid()) does get rid of the two-headed status of a process that has different uid and euid.
22:48:59 -!- Thelie has quit (Remote host closed the connection).
22:49:28 -!- FreeFull has quit.
22:50:50 <zzo38> So many programs use JSON, although there are more efficient formats for different uses, whether text or binary. PostScript binary object sequence format is good and can be used without needing to parse the entire structure to find what you are looking for, although it also has problems such as strings being limited to 64K and integers being limited to 32 bits, and cannot use key/values (even though PostScript can).
22:52:00 <zzo38> So, sometimes just CSV is better. In fact, I deliberately did not use JSON for Free Hero Mesh because of its problems, so I ended up making my own text-based format specific to that program, although it is easily enough to produce from other programs, and not so difficult to parse either.
22:55:58 <zzo38> (Although, even with CSV there is the quoting which is not as simple as it could be, so tab-separated or ASCII-control-separated might be able to avoid the quoting if they are characters that you do not need in the data.)
23:42:01 <esolangs> [[Talk:Anarchysm]] M https://esolangs.org/w/index.php?diff=116603&oldid=116379 * CreeperBomb * (+428)