<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: shiomiru</title><link>https://news.ycombinator.com/user?id=shiomiru</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 17:22:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=shiomiru" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by shiomiru in "Hyperlinks in terminal emulators"]]></title><description><![CDATA[
<p>> Plenty of internal-only systems are not locked down securely and only thing preventing mass exploitation is browsers CORS settings.<p>CORS has no relation to this issue.  <i>Cross-origin</i> means there are at least two origins, but in this case there is only one (where you're trying to navigate).<p>> But if request is originating from inside the network (as it would from a terminal emulator)<p>Why would the terminal make requests?  Obviously it will dispatch the link to another program specialized in making requests to a protocol, like... a browser?<p>> Granted, on its own, this should be safe. But attacks are usually composed from multiple bugs and/or weaknesses in design. Hence why security folk keep talking about “defence in depth”<p>Every feature <i>can</i> be part of an exploit chain, but the "clicking a URL will always lead to the text it is under" ship has sailed 30+ years ago.  If your system cannot safely handle this operation then you're in deep trouble, and I don't see how crippling every program in existence is the right solution to that.<p>> I actually voiced some concerns with this original hyperlink proposal several years back. In fact lots of developers and security researchers did.<p>Based on what you've written: you and other self-claimed "security researchers" started spamming this spec with concern trolling about hypothetical (non-existent) "security issues", then the author finally got tired and locked down comments, which were obviously intended for people interested in the feature, not those trying to sabotage it.<p>> Just one persons mission to dictate how everyone else’s terminal, and security model, should operate.<p>Nowhere does the proposal say that <i>your</i> terminal has to implement this.  Indeed, if you have a working ANSI parser the escape sequence is ignored automatically (as the spec also explains).<p>Have you considered that the person trying to dictate how others' terminals should operate might be you?</p>
]]></description><pubDate>Fri, 13 Mar 2026 10:06:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47362467</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=47362467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47362467</guid></item><item><title><![CDATA[New comment by shiomiru in "GPL upgrades via section 14 proxy delegation"]]></title><description><![CDATA[
<p>Isn't that effectively the same as or-later?  I can always fork your project, change the MAINTAINERS file, and relicense without your consent.</p>
]]></description><pubDate>Fri, 06 Mar 2026 09:31:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47272852</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=47272852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47272852</guid></item><item><title><![CDATA[New comment by shiomiru in "You can use newline characters in URLs"]]></title><description><![CDATA[
<p>Validation errors aren't really "exceptions" to be thrown, they are indicators for authors that <i>something</i> is probably wrong but they make no visible difference in the output.  I'm not sure if any browser even tracks them (and if one did, the best it could do is complain in the dev tools).<p>Also, this is not limited to HREF, it's defined in URL[0] so you can also put newlines in new URL("...") etc.<p>[0]: <a href="https://url.spec.whatwg.org/#concept-basic-url-parser" rel="nofollow">https://url.spec.whatwg.org/#concept-basic-url-parser</a></p>
]]></description><pubDate>Wed, 04 Mar 2026 06:30:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47243898</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=47243898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47243898</guid></item><item><title><![CDATA[New comment by shiomiru in "Can you slim macOS down?"]]></title><description><![CDATA[
<p>> as we know it today<p>An important nuance you seem to be missing is that SUSv3 is equivalent to "IEEE Std 1003.1-2001" (that is, POSIX 2001).<p>In practice, I've had to work around more POSIX compatibility issues in macOS than in all other actively developed (Free) Unix-likes, combined.</p>
]]></description><pubDate>Wed, 21 Jan 2026 20:04:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46710826</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46710826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46710826</guid></item><item><title><![CDATA[New comment by shiomiru in "Japan to revise romanization rules for first time in 70 years"]]></title><description><![CDATA[
<p>"ou" is fine too, actually.  See the proposal p. 14 (=16 in the PDF):
<a href="https://www.bunka.go.jp/seisaku/bunkashingikai/sokai/pdf/94261201_01.pdf" rel="nofollow">https://www.bunka.go.jp/seisaku/bunkashingikai/sokai/pdf/942...</a><p>(To differentiate between the case where it's actually two vowels, you have
to put an apostrophe inbetween; their example is 小唄 -> ko'uta.)</p>
]]></description><pubDate>Wed, 17 Dec 2025 12:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46301302</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46301302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46301302</guid></item><item><title><![CDATA[New comment by shiomiru in "Full Unicode Search at 50× ICU Speed with AVX‑512"]]></title><description><![CDATA[
<p>That "deeper explanation" seems incorrect, considering that the KSC column
is empty in the mapping linked above.</p>
]]></description><pubDate>Tue, 16 Dec 2025 19:54:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46293549</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46293549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46293549</guid></item><item><title><![CDATA[New comment by shiomiru in "Full Unicode Search at 50× ICU Speed with AVX‑512"]]></title><description><![CDATA[
<p>The "other standard" in this case being IBM-944.  (At least looking at
<a href="https://www.unicode.org/versions/Unicode1.0.0/ch06.pdf" rel="nofollow">https://www.unicode.org/versions/Unicode1.0.0/ch06.pdf</a> p. 574 (=110 in the
PDF) I only see a mapping from U+212A to that one.)</p>
]]></description><pubDate>Tue, 16 Dec 2025 17:02:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46291033</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46291033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46291033</guid></item><item><title><![CDATA[New comment by shiomiru in "Chafa: Terminal Graphics for the 21st Century"]]></title><description><![CDATA[
<p>w3m doesn't support chafa for inline image display.<p>(You can set a custom w3mimgdisplay command, but it has to speak the same protocol as w3mimgdisplay.  If you're feeling adventurous, you can try modifying <a href="https://github.com/uobikiemukot/sdump/tree/master/yaimg-sixel" rel="nofollow">https://github.com/uobikiemukot/sdump/tree/master/yaimg-sixe...</a>.)</p>
]]></description><pubDate>Tue, 16 Dec 2025 11:10:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46287186</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46287186</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46287186</guid></item><item><title><![CDATA[New comment by shiomiru in "GNU Unifont"]]></title><description><![CDATA[
<p>> which aren't just free to use, but explicitly use the modern SIL Open Font License.<p>Unifont is also dual-licensed under GPLv2/SIL OFL.</p>
]]></description><pubDate>Sat, 13 Dec 2025 10:57:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46253688</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46253688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46253688</guid></item><item><title><![CDATA[New comment by shiomiru in "Incomplete list of mistakes in the design of CSS"]]></title><description><![CDATA[
<p>> It would also be nice to have something like `default-styles: none` so I don't
have to deal with browsers having differing defaults.<p>This already exists:<p><pre><code>    *, ::before, ::after { all: unset }</code></pre></p>
]]></description><pubDate>Thu, 11 Dec 2025 16:38:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46233614</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46233614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46233614</guid></item><item><title><![CDATA[New comment by shiomiru in "Incomplete list of mistakes in the design of CSS"]]></title><description><![CDATA[
<p>The greatest mistake IMO is the way float state leaks out of blocks, as this
is both extremely unintuitive <i>and</i> undesirable for performance reasons.[1]
Floats should've been restricted to <i>inline</i> formatting contexts, with all
in-flow blocks behaving as if they had `clear: both' set.<p>I also don't understand why they never specced the (much simpler)
`text-align: -moz-left/-moz-right/-moz-center' which already had precedent
in HTML with `<div align=left/right/center>'.  It's the saddest part of the
"center a div" saga, all the W3C had to do to fix it is to assign a standard
keyword to a feature that <i>everybody already implemented</i>, but to this day
it still hasn't happened.[2]<p>[1]: <a href="https://pcwalton.github.io/_posts/2014-02-25-revamped-parallel-layout-in-servo.html" rel="nofollow">https://pcwalton.github.io/_posts/2014-02-25-revamped-parall...</a><p>[2]: After many long decades, they did finally specify block-level
`justify-items'.  Two problems: a) it's backwards-incompatible with
text-align, b) it still doesn't work in Gecko.</p>
]]></description><pubDate>Thu, 11 Dec 2025 10:27:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46229692</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46229692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46229692</guid></item><item><title><![CDATA[New comment by shiomiru in "CSS now has an if() conditional function"]]></title><description><![CDATA[
<p>I actually wonder if transpiling calc/min/max/etc. expressions to JS is a viable path to implementation, considering that you already need a fast interpreter for these.</p>
]]></description><pubDate>Fri, 05 Dec 2025 08:52:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46158220</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46158220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46158220</guid></item><item><title><![CDATA[New comment by shiomiru in "Git 3.0 will use main as the default branch"]]></title><description><![CDATA[
<p>> just new ones that no automation depends on<p>Except for automations that happen to create new repositories.</p>
]]></description><pubDate>Mon, 24 Nov 2025 07:43:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46031381</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=46031381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46031381</guid></item><item><title><![CDATA[New comment by shiomiru in "Project Gemini"]]></title><description><![CDATA[
<p>> Rendering Markdown is relatively simple<p>Markdown is a superset of HTML, so your assertion cannot be true.  But even an HTML-less subset is very hard to parse efficiently (or, <i>at all</i>) because of the various grammatical ambiguities.  And then there's the various competing definitions...</p>
]]></description><pubDate>Tue, 18 Nov 2025 13:42:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45965805</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45965805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45965805</guid></item><item><title><![CDATA[New comment by shiomiru in "Why use OpenBSD?"]]></title><description><![CDATA[
<p>> 1) pledge() lets you give high level "I just want to do I/O on what I
already have", and it doesn't matter if new syscalls "openat2" (should be
blocked) or "getrandom" (should be allowed) are created. (see the
`newfstatat` example on printf).<p>You can do this with seccomp if you're libc.  A new syscall is of no
consequence for the seccomp filter unless libc starts using it, in which
case libc can just add it to the filter.  (Of course the filter has to be an
allow-list.)<p>> And 2) OpenBSD limits syscalls to be done from libc, and libc & kernel are
released together. Other libs need to go through libc.<p>That avoids one failure mode, but I think you assign too much importance to
it.  If your dependency uses a raw syscall (and let's be honest this isn't
<i>that</i> common), you'll see your program SIGSYS and add it manually.<p>If you have so many constantly changing dependencies that you can't
tell/test which ones use raw syscalls and when, you have no hope of
successfully using pledge either.<p>> But I don't think that we need to throw out the baby with that bathwater.<p>We agree here, just not on which baby :)<p>> And it's not just about libfoo doing raw syscalls. `unveil()` allows
blocking off the filesystem.<p>You're right, seccomp is unsuitable for implementing unveil because it can't
inspect contents of pointers.  I believe Cosmopolitan uses Landlock for it.<p>> Though another problem is that it doesn't help child processes with a
statically compiled newer libc<p>If you're trying to pledge a program written by somebody else, expect
problems on OBSD too because pledge was not designed for that.  (It can work
in many cases, but that's kind of incidental.)<p>If it's your own program, fine, but that means you're compiling your binaries
with different libcs and then <i>wat</i>.<p>> So yeah, because they mandate syscalls from libc, ironically OpenBSD
should have been able to make pledge/unveil a libc feature using a
seccomp-like API, or hell, implemented entirely in user space. But Linux,
which has that API, kinda can't.<p>My take is "it can, with caveats that don't matter in 99% the cases pledge
is useful in."  (Entirely in user space no, with seccomp yes.)</p>
]]></description><pubDate>Mon, 17 Nov 2025 19:33:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45957262</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45957262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45957262</guid></item><item><title><![CDATA[New comment by shiomiru in "Why use OpenBSD?"]]></title><description><![CDATA[
<p>> So even if one uses Cosmopolitan libc, if you link to some other library
that library may also do direct syscalls. And which syscalls is does, and
under which circumstances, is generally not part of the ABI promise. So this
can still break between semver patch version upgrades.<p>Well but isn't that a more general problem with pledge?  I can link to
libfoo, drop rpath privileges, and it'll work fine until libfoo starts
lazily loading /etc/fooconf (etc.)<p>A nice thing about pledge is that it's modularized well enough so such
problems don't occur very often, but I'd argue it's not less common of an
issue than "libfoo started doing raw syscalls."  The solution is also the
same: a) ask libfoo not to do it, or b) isolate libfoo in an auxiliary
process, or c) switch to libbar.<p>> And at the very least you'll also be linking to libseccomp. :-)<p>libseccomp proponents won't tell you this, but you can in fact use seccomp
without libseccomp, as does Cosmopolitan libc.  All libseccomp does is
abstract away CPU architecture differences, which a libc already has to do
by itself anyway.<p>(In my project, I got annoyed enough by the kernel header dependency that I
just replaced libseccomp with a shell script:
<a href="https://codeberg.org/bptato/chawan/src/commit/cad5664fc0aa1007c94954154209ce7d141f0805/lib/chaseccomp/README.md" rel="nofollow">https://codeberg.org/bptato/chawan/src/commit/cad5664fc0aa10...</a>
although this might have gotten me a place reserved in hell.)</p>
]]></description><pubDate>Mon, 17 Nov 2025 15:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45954474</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45954474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45954474</guid></item><item><title><![CDATA[New comment by shiomiru in "Supercookie: Browser Fingerprinting via Favicon (2021)"]]></title><description><![CDATA[
<p>I've just tried and when I open a bunch of new tabs, Firefox truncates the
"new tab" text to "new" and a Firefox logo.  Same thing happens with other
titles.<p>(Then at some point it stops truncating and scrolls off the screen.)</p>
]]></description><pubDate>Mon, 17 Nov 2025 13:28:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45953377</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45953377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45953377</guid></item><item><title><![CDATA[New comment by shiomiru in "Supercookie: Browser Fingerprinting via Favicon (2021)"]]></title><description><![CDATA[
<p>Popular browsers support tabs.  When you have many tabs open, it's hard to
show a meaningful title for each one.  An icon takes up less place and is
easier to scan for visually.</p>
]]></description><pubDate>Mon, 17 Nov 2025 09:53:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45952226</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45952226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45952226</guid></item><item><title><![CDATA[New comment by shiomiru in "Why use OpenBSD?"]]></title><description><![CDATA[
<p>> Seccomp was never actually usable<p>It's barely usable by itself but I don't think it's an inherent problem of
seccomp-bpf, rather the lack of libc support.  Surely the task of "determine
which syscalls are used for feature X" belongs in the software that decides which
syscalls to use for feature X.<p>In fact, Cosmopolitan libc implements pledge on Linux on top of seccomp-bpf:
<a href="https://justine.lol/pledge/" rel="nofollow">https://justine.lol/pledge/</a></p>
]]></description><pubDate>Sun, 16 Nov 2025 14:32:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45945408</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45945408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45945408</guid></item><item><title><![CDATA[New comment by shiomiru in "Why I'm Learning Sumerian"]]></title><description><![CDATA[
<p>Yeah it's so sparse on actual details of Sumerian or cuneiform that after
reading the article I remain unconvinced the "author" either cares for or
knows anything about the topic.<p>(To be clear I know nothing about it either, but as a <i>human</i> with some
similarly "pointless" hobbies, I can't imagine posting a writeup with so
much motivational bullshit but so little about the actual thing I'm
interested in.)</p>
]]></description><pubDate>Fri, 14 Nov 2025 11:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45925805</link><dc:creator>shiomiru</dc:creator><comments>https://news.ycombinator.com/item?id=45925805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45925805</guid></item></channel></rss>