00:08:23<steering>I guess a better comparison would almost be Valve (pre-free2play), not Blizzard.
00:09:47<steering>Small, but still just as expensive; lots of addon content; basically nonexistent marginal costs
00:11:12<nukke>Valve makes like 1000x what CAH makes a month and has 3-4x more employees
00:11:13<steering>It helps to be more global but you can still make plenty of money selling to weirdos with stringent IP protections :P
00:13:21<steering>Yeah, Valve is much more global and has the whole marketplace thing going
00:16:21sec^nd quits [Ping timeout: 240 seconds]
00:23:45<@JAA>CAH is a thing here in Europe, too. Probably less than in the US though.
00:27:40etnguyen03 quits [Client Quit]
00:29:30<steering>TIL https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Speculation-Rules
00:33:25<@JAA>A comma-separated list of quoted URLs. WTF?
00:35:46<steering>well, the editor is from google, so of course we get the sec-ch-ua treatment ;)
00:36:18<@JAA>Right, lol
00:36:51<@JAA>Wouldn't it be great if HTTP headers had a mechanism to represent multiple values for the same thing? Someone should invent that!
00:38:16<steering>... but also OMG
00:38:58<steering>see I hadn't actually started reading it yet, and that is... insane, not least because the actual spec doesn't even say that
00:39:04<steering>Let parsedList be the result of getting a structured field value given `Speculation-Rules` and "list" from response’s header list.
00:39:07<steering>If item is not a string, then continue.
00:39:21<steering>I assume one of those lines mean that it's a comma-separated list of double-quoted strings.
00:39:44<steering>Anyway, who the hell doesn't realize that whitespace is quite enough to separate a URL???
00:44:11<steering>https://httpwg.org/specs/rfc8941.html#text-parse asdffdsa I didn't realize they had made an entire RFC out of the brand spanking new way of parsing (some) headers
00:45:21<nicolas17>I fucking hate those specs written in an algorithmic way
00:45:36<nicolas17>HTML5 is not a specification, it's a browser implementation that happens to use English as a programming language
00:47:27<@JAA>> Parsers MAY fail when processing a field value spread across multiple field lines, when one of those lines does not parse as that field.
00:47:50<@JAA>... but multiple header values are equivalent to the values concatenated by comma + SP under HTTP spec...
00:48:20<@JAA>The only exception from that is Set-Cookie.
00:51:26<nicolas17>https://httpwg.org/specs/rfc8941.html#ser-binary this is a good example, *why* does this need to be specified as 6 steps?
00:52:42<nicolas17>why "let output be an empty string" instead of starting with ":"?
00:53:08<@JAA>> encoded data SHOULD have pad bits set to zero, as per [RFC4648], Section 3.5, unless it is not possible to do so due to implementation constraints.
00:53:11<@JAA>???
00:53:17<steering>and yeah, it's so obviously
00:53:33<steering>"we made a separate section for every function in our code"
00:54:39<nicolas17>I once saw a forum post where someone asked how to implement some part of HTML5 or CSS3 in Haskell if it's all written in such a procedural way and the replies were pretty much "oooof good luck"
00:54:43<steering>harder to read than the actual code (or pseudocode) would be, and much harder than a proper standard
00:58:40<@JAA>At least it's a hard 'fail parsing' when something's malformed rather than HTML5's shitshow of non-fatal errors and whatnot.
00:59:46<@JAA>Unfortunately, they never define what 'fail parsing' actually means exactly.
01:04:30<nicolas17>speaking of bad specs
01:05:24<nicolas17>https://theapplewiki.com/wiki/Apple_Encrypted_Archive I would be surprised if someone can make a working .aea file reader (even if just the header) using this document alone
01:06:31<@JAA>That's unofficial though, isn't it?
01:06:51<nicolas17>yes, and I know it's bad and incomplete because I wrote it :D
01:06:58<@JAA>Heh
01:07:09<@JAA>Just like the qwarc documentation!
01:07:23<@JAA>I didn't even write that one. :-P
01:08:29<nicolas17>and I found 3 bugs(-ish) in libAppleArchive from looking through the decompiled code
01:09:28<DigitalDragons>hey, your docs can't be outdated if you don't write docs!
01:10:27<nicolas17>where is this buffer being freed? huh, it's *not* freed? surely I'm missing something *writes a testcase* huh sure enough creating and destroying a stream leaks like 200 bytes every time
01:10:31<steering>JAA: to be fair the non-fatal errors predate HTML5
01:10:38<steering>and... are honestly a good thing in many cases
01:10:53<steering>see also: crazy attributes or elements that the other browser vendor never thought of
01:11:25<@JAA>HTML5 would've been a good opportunity to get rid of that tech debt though.
01:11:32<steering>yeah, agreed
01:12:09<@JAA>I'm well aware that HTML4 was even more of a shitshow.
01:12:13<steering>a Web 2.0 (LOL) would be nice
01:13:01<nicolas17>I read that someone at a W3C meeting famously made a conforming HTML4 implementation by writing quote marks on the corners of a sheet of paper
01:13:04<steering>strict-ify HTML, re-do JS entirely, CSS is... okay I guess...
01:13:53<@JAA>I'm one of those weirdos who liked XHTML.
01:14:27<nicolas17>because HTML4's conformance criteria are to render quote marks around the content of <q> elements (without even clarifying what "around" means), and to treat certain things as equivalent (so "do nothing in all cases" would be valid), and ... not much more
01:14:27<steering>I like implicit tags, at least in some trivial cases.
01:15:16<steering>Otherwise I liked XHTML.
01:15:33<@JAA>The problem is that those 'trivial cases' very quickly become non-trivial.
01:15:52<steering>Like, there's no reason why I should have to write any of <html><head></head><body></body></html> just to get a document that can display.
01:16:26<steering>let me <title>whatever</title> <p>hello world
01:16:35<nicolas17>I remember being able to write the HTML4 doctype from memory
01:16:51<steering>but yeah, defining trivial is non-trivial itself :P
01:17:06<nicolas17>(good riddance to it)
01:17:32steering goes to the w3 validator
01:17:43<steering>>what, it doesn't pass strict mode? ahhhh, whatever it's good enough
01:18:24<steering>(to be fair, these days I don't write any of that anyway, I just write some Markdown or Twig)
01:19:20<steering>... which is even more reason for XHTML, no one is "coding their myspace page" anymore, it's all templates and frameworks and libraries anyway
01:20:14<nicolas17>sites like myspace would have better security if they parsed user-provided HTML into a tree and serialized it back, instead of trying to "sanitize"
01:20:25<nicolas17>and then what stops them from serializing into XHTML?
01:20:40etnguyen03 (etnguyen03) joins
01:21:15<steering>nah no need just be big enough to get your domain on the PSL :P
01:21:42<steering>xXemokidrawrXx.myspace.com instead of myspace.com/xXemokidrawrXx
01:21:55<steering>(myspaceusercontent.com)
01:22:11<@JAA>Hmm, just going through the HTML5 spec. I think <title>foo<p>bar might technically be valid?
01:22:19<steering>probably.
01:22:56<steering>my personal usage of it always stopped at "using the same element multiple times in a row"
01:23:56<steering>but <p> probably implies a <body> which implies a </head> which implies a </title> since it's contained in an implicit <head> -- if i'm remembering my html5 right
01:24:04<nicolas17>using <li> as bullets and skipping the </li> is reasonable
01:24:07<@JAA>Yep
01:24:25<@JAA>And <html> and <head> are also created automatically if I'm reading it right.
01:24:50<nicolas17>but leaving out </title> is some sociopathic shit unless you're code-golfing on purpose
01:24:52<nicolas17>>:(
01:24:58<steering>lol
01:27:04<steering>if i were any good at that sort of thing I'd merge it with perl and make it a true horror to behold
01:27:33<@JAA>Hmm, no, text insertion mode does require an end tag, it seems.
01:27:50<@JAA>And <title> switches to that.
01:28:16<nicolas17>there was that horrible png trick that Daeken did
01:29:15<nicolas17>a png/html polyglot, the html had a script that loaded itself as a png image and decoded the pixels as more JS code
01:29:23<nicolas17>free zlib compression
01:30:11<@JAA>Yeah, you do need to close the elements.
01:30:32<@JAA>It seems like it might be valid to close the <title> tag with any end tag, possibly.
01:30:45<@JAA>Which seems nuts.
01:31:06<steering>nah, but also
01:31:07<steering>data:text/html,<title>moo</head>hello
01:31:27<steering>I love HTML. Text inside angle brackets: DISPLAYED
01:32:01<steering>where we're going, we don't need any &-escaping.
01:32:02<@JAA><p> doesn't need to be closed in the body. There's an explicit exception for 18 tags that don't need to be closed at the end of the body.
01:32:35<@JAA>> If there is a node in the stack of open elements that is not either a dd element, a dt element, an li element, an optgroup element, an option element, a p element, an rb element, an rp element, an rt element, an rtc element, a tbody element, a td element, a tfoot element, a th element, a thead element, a tr element, the body element, or the html element, then this is a parse error.
01:32:53<nicolas17>wtf is rtc? ruby stuff?
01:33:02<@JAA>> Providing the ruby base directly inside the ruby element or using nested ruby elements is sufficient.
01:33:19<@JAA>> The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana.
01:36:06<@JAA>steering: Yeah, that's weird. Maybe I'm misreading something in the spec, but it seems to say that <title> triggers the generic RCDATA parsing, which switches to 'text' insertion mode, which gets ended by 'any other end tag'. Then it should switch back to 'in head' mode.
02:11:57etnguyen03 quits [Client Quit]
02:12:38etnguyen03 (etnguyen03) joins
02:15:02fuzzy80211 quits [Read error: Connection reset by peer]
02:17:06fuzzy80211 (fuzzy80211) joins
02:24:00fuzzy80211 quits [Read error: Connection reset by peer]
02:24:37fuzzy80211 (fuzzy80211) joins
02:27:26fuzzy80211 quits [Read error: Connection reset by peer]
02:28:09fuzzy80211 (fuzzy80211) joins
02:30:02fuzzy80211 quits [Read error: Connection reset by peer]
02:30:47fuzzy80211 (fuzzy80211) joins
02:34:41fuzzy80211 quits [Read error: Connection reset by peer]
02:36:18fuzzy80211 (fuzzy80211) joins
02:37:47fuzzy80211 quits [Remote host closed the connection]
02:45:17fuzzy80211 (fuzzy80211) joins
02:45:29etnguyen03 quits [Client Quit]
02:50:23etnguyen03 (etnguyen03) joins
02:55:21etnguyen03 quits [Remote host closed the connection]
03:45:33nicolas17 quits [Quit: Konversation terminated!]
04:18:11SootBector quits [Remote host closed the connection]
04:18:33SootBector (SootBector) joins
04:19:39SootBector quits [Remote host closed the connection]
04:19:56SootBector (SootBector) joins
04:36:02benjinsm quits [Read error: Connection reset by peer]
04:50:03benjins2_ quits [Read error: Connection reset by peer]
05:02:43HP_Archivist quits [Read error: Connection reset by peer]
05:14:56sec^nd (second) joins
05:50:58DogsRNice quits [Read error: Connection reset by peer]
06:02:32sralracer joins
06:22:02Chris5010 quits [Quit: ]
07:09:46<masterx244|m><nicolas17> "a png/html polyglot, the html..." <- i saw the PNG as zlib container for data somewhere in a library, too.
07:12:07Gadelhas56 quits [Quit: auf Wiedersehen]
07:12:34Gadelhas562 joins
07:19:02BearFortress_ joins
07:19:25BearFortress quits [Ping timeout: 260 seconds]
09:35:11tzt quits [Ping timeout: 258 seconds]
11:19:47tzt (tzt) joins
11:30:09decky quits [Read error: Connection reset by peer]
11:55:04xarph quits [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
11:55:18xarph joins
13:49:43<that_lurker>https://www.youtube.com/watch?v=lEDGdzulfoQ
13:49:57<that_lurker>Thats an Oscar worthy recreation of Harry Potter :-P
14:49:05<@JAA>C to POSIX shell transpiler: https://pnut.sh/
14:54:54MrMcNuggets (MrMcNuggets) joins
15:28:58<steering>Thanks, US gubmint, for requiring us to use Outlook.
15:29:17<steering>>We have an IRS audit coming up, and the IRS agent sent an email with a .rpmsg attachment. I can't open the attachment. Do you know what I need to do to open these files? All of their emails to me will have this encryption.
15:32:19<nukke>IRS is using outlook now? usually when the IRS messages me it's thru telegram
15:32:46<nukke>they usually reach out when I need to pay taxes
15:33:04<steering>lol
15:35:15<steering>JAA: hmm. I might just be big dumb but it doesn't seem to want me to initialize an array, lol
15:36:04<@JAA>steering: That might be because POSIX sh doesn't have arrays? Not sure though.
15:36:10<steering> int numbers[5] = {1,1,1,1,1};
15:36:14<steering>code.c:17:19 syntax error: identifier, literal, or '(' expected
15:36:20<steering>IDK, I don't C, but I think that's right
15:36:29<steering>I'm just trying to use its sum example :D
15:36:56<@JAA>That syntax looks fine, yeah.
15:38:14<steering>hmm, `int numbers[5];` -> array/struct value type is not supported for shell backend. Use a reference type instead.
15:38:18<steering>lol
15:38:24<@JAA>Welp
15:39:15<@JAA>One of the known issues on the repo README:
15:39:16<@JAA>> Aggregate types (arrays and structures) cannot be stack-allocated, passed by value or nested in a structure.
15:39:31<steering>so you... have to malloc it?
15:39:45steering remembers how to do that
15:41:47<steering>`int *numbers = malloc(5*sizeof(int));` + `numbers[0] = 1;` ... etc seems to work lol
15:42:51<steering>neat, though:
15:42:52<steering>Because Pnut can be distributed as a human-readable shell script (pnut.sh), it can serve as the basis for a reproducible build system. With a POSIX compliant shell, pnut.sh is sufficiently powerful to compile itself and, in the future, to bootstrap TCC. Because TCC can be used to compile GCC, this will make it possible to bootstrap a fully featured build toolchain from only human-readable source
15:42:58<steering>files and a POSIX shell.
15:43:33<@JAA>Oh, so it has an actual use case, neat!
15:45:38<steering>also, bonus points, if you try to use an auto-sized array:
15:45:41<steering>code.c:14:15 syntax error: array size must be an integer constant
15:46:48<thuban>that is neat! :o
15:47:25<steering>I do find it interesting though, this seems to be positioned as something that's "trustable" (and links to reflections on trusting trust), but umm. The shell here is vulnerable in the same way as the compiler in reflections on trusting trust
15:48:47<steering>(not to mention all the shell syntax gotchas)
15:59:21HP_Archivist (HP_Archivist) joins
16:05:19Chris5010 (Chris5010) joins
16:25:07<kiska>flashfire42: I am in Melbourne for Pax this week! :D
16:54:23benjins2 joins
17:58:33<nulldata>https://arstechnica.com/cars/2024/10/connected-car-failure-puts-kibosh-on-sale-of-3300-fisker-oceans/
18:12:03MrMcNuggets quits [Quit: WeeChat 4.3.2]
18:53:35corentin quits [Ping timeout: 260 seconds]
18:58:50Juest quits [Ping timeout: 260 seconds]
18:59:53Juest (Juest) joins
19:21:14Dango360 quits [Read error: Connection reset by peer]
19:21:33Dango360 (Dango360) joins
19:59:52nicolas17 joins
20:06:00corentin joins
20:17:00corentin quits [Ping timeout: 260 seconds]
20:20:20corentin joins
20:25:01<that_lurker>WikiProject AI Cleanup https://en.wikipedia.org/wiki/Wikipedia:WikiProject_AI_Cleanup https://news.ycombinator.com/item?id=41792148
20:25:19<that_lurker>"Welcome to WikiProject AI Cleanup—a collaboration to combat the increasing problem of unsourced, poorly-written AI-generated content on Wikipedia."
20:32:54<kiska>Flashfire42: I'll land around 5ish PM :D
20:33:12<flashfire42|m>How long you staying?
20:34:11<kiska>Pax Aus only
20:34:28<kiska>Friday to Sunday, so I'll be doing Thursday to Monday
20:44:52luckcolors quits [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
20:48:01<nicolas17>https://x.com/sn_darkmeta/status/1844080692772401399
20:48:04<eggdrop>nitter: https://nitter.lucabased.xyz/sn_darkmeta/status/1844080692772401399
20:48:13<nicolas17>apparently attackers are openly bragging about DDoSing archive.org
20:51:53<that_lurker>https://x.com/Sn_darkmeta/status/1844104165192253945
20:51:54<eggdrop>nitter: https://nitter.lucabased.xyz/Sn_darkmeta/status/1844104165192253945
20:52:11<that_lurker>why do they always have so idiotic reasons
20:58:32<@JAA>https://transfer.archivete.am/inline/GuPHu/wbm_alert.png
20:59:38<that_lurker>O_O
21:01:55corentin quits [Ping timeout: 260 seconds]
21:02:18<steering>yaaaaaay downloading videos from an incredibly slow site that isn't supported by yt-dlp and that iframes a cross-origin page which contains just the <video> (no metadata) and everything takes forever to load
21:03:21<steering>best option i've found: one by one, copy video title, click a bookmarklet that opens the iframe as top-level, wait 15s, then click another bookmarklet that opens the <video src>, wait 15s, then Ctrl+S, wait 15s, then paste, and move to the next one
21:03:25<steering>\o/
21:04:18corentin joins
21:04:19<kiska>Oh dear...
21:04:36luckcolors (luckcolors) joins
21:05:15luckcolors quits [Client Quit]
21:05:45luckcolors (luckcolors) joins
21:05:57<steering>(also thanks chrome for not allowing *the UI* like console and bookmarklets to have access to cross-origin embeds)
21:09:05<kiska>JAA: Welp that is not good
21:10:35<magmaus3>hopefully the attackers will suffer a long, painful death
21:11:14luckcolors quits [Client Quit]
21:12:00etnguyen03 (etnguyen03) joins
21:15:22<Flashfire42>the fuck is wrong with people. If anything the internet archive has helped document genocides rather than be "Complicit" and as that other comment said they are actively being fucking sued in the USA
21:17:34BlueMaxima joins
21:18:48<magmaus3>https://plasmatrap.com/notes/9z5xik4s6l
21:18:52<steering>consider that it's advertising and ignore them :P
21:21:17<Barto>oh boy
21:22:30<steering>Hmmm... I wonder if I can come up with a way to pipe both STDOUT and STDERR into less, but such that STDERR gets wrapped in some color codes.
21:22:41<@JAA>Sure
21:22:59<steering>curl google.com 2| some-script-to-colorize |& less
21:23:01<steering>:P
21:23:34<@JAA>`whatever 2> >(colourpoop) | less`
21:24:51<steering>that works without | less but not with
21:25:03<steering>does |& work hm
21:25:12<@JAA>Works fine for me.
21:25:38<steering>err hmm
21:25:38<@JAA>`{ echo foo; echo bar >&2; } 2> >(sed s,^,err:,) | less`
21:25:40<steering>yeah it does for me too
21:25:43<steering>what did i do wrong :D
21:26:20<@JAA>Not sure how that behaves regarding buffering. It might not be line-buffering.
21:26:22<steering>oh somehow it ends up at the bottom
21:26:25<steering>yeah
21:26:58<@JAA>Yeah, fully synchronising the pipe writes is virtually impossible.
21:27:12stuffednose joins
21:27:56<steering>I'd be fine if it just ended up at the top like normal :P
21:28:05<steering>(curl -v being the particular case I'm interested in)
21:28:59<steering>ah it works if i just flush inside the subcommand
21:29:11<steering>curl -v https://google.com 2> >(perl -pe '$|=1; s/^/!!!/') | less
21:29:17<steering>lmao
21:29:21<@JAA>Yeah, that'll be Perl buffering then.
21:29:40<@JAA>The command you're running may also behave differently when stdout/stderr are pipes vs terminal.
21:30:03<@JAA>`stdbuf` can help, but it varies.
21:31:02<steering>yeah, but I'm replacing one pipe with another here
21:31:15<@JAA>Right
21:31:23<steering>I already know pretty well when I have to fudge stuff around to make it less-friendly
21:31:27<steering>:P
21:31:30<@JAA>'Like normal' carries some weight there. :-P
21:36:22<steering>... huh.
21:36:34<steering>apparently less considers color codes to end at the end of a line? or something?
21:37:40<steering>curl -v https://google.com 2> >(perl -pe '$|=1; s/^/\e[38;5;1m/;') | less <- works fine, color turns off for STDOUT
21:37:52<@JAA>Are you using -R or -r?
21:37:56<steering>curl -v https://google.com 2> >(perl -pe '$|=1; s/^/\e[38;5;1m/;') <- my terminal leaves the color set forever
21:38:01<steering>IDK which of those but yes
21:38:07<steering>-R apparently
21:38:09<@JAA>-R only applies it to the end of line.
21:38:22<steering>ahhh, interesting
21:38:46<steering>>Color escape sequences are only supported when the color is changed within one line, not across lines.
21:38:49<steering>hey it's even documented :P
21:38:55<@JAA>-r does it 'correctly' but has its own issues when it comes to scrolling.
21:39:49<steering>anyway `curl -v https://google.com 2> >(perl -pe '$|=1; s/^/\e[38;5;1m/; s/$/\e[0m/')` now I just need to make a function for that or something
21:41:35<steering>errcolor() {
21:41:35<steering> "$@" 2> >(perl -pe '$|=1; s/^/\e[38;5;1m/; s/$/\e[0m/')
21:41:37<steering>\o/
21:41:53stuffednose quits [Client Quit]
21:58:33seacow joins
22:02:56thalia (thalia) joins
22:08:25utf-4096 joins
22:10:51stan joins
22:13:39stan32 joins
22:13:48stan32 quits [Client Quit]
22:25:20corentin quits [Ping timeout: 260 seconds]
22:27:33corentin joins
22:31:47magmaus3 quits [Read error: Connection reset by peer]
22:36:03magmaus3 (magmaus3) joins
22:40:30utf-4096 quits [Ping timeout: 260 seconds]
22:46:29magmaus3 quits [Read error: Connection reset by peer]
22:56:55magmaus3 (magmaus3) joins
23:17:27sralracer quits [Client Quit]
23:17:58useretail_ quits [Read error: Connection reset by peer]
23:18:53useretail joins
23:20:30magmaus3 quits [Ping timeout: 258 seconds]
23:21:21etnguyen03 quits [Client Quit]
23:31:07magmaus3 (magmaus3) joins
23:58:08etnguyen03 (etnguyen03) joins