<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: ninjin</title><link>https://news.ycombinator.com/user?id=ninjin</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 05:22:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ninjin" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ninjin in "Revision Demoparty 2026: Razor1911 [video]"]]></title><description><![CDATA[
<p>In addition, here is the Bright White Lightning discography:<p><a href="https://dataairlines.bandcamp.com/album/bad-teeth-data024" rel="nofollow">https://dataairlines.bandcamp.com/album/bad-teeth-data024</a><p><a href="https://dataairlines.bandcamp.com/album/dirty-nails-data038" rel="nofollow">https://dataairlines.bandcamp.com/album/dirty-nails-data038</a><p>Having not seen anything from them since 2014, so I am very happy for another track.</p>
]]></description><pubDate>Wed, 08 Apr 2026 09:36:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47687696</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=47687696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47687696</guid></item><item><title><![CDATA[New comment by ninjin in "Do your own writing"]]></title><description><![CDATA[
<p>> I'm reminded of that scene in "Ghost in the Shell" where some guy ask the Major why he is on the team (full of cyborgs) and she responds something along the line of "Because you are basically un-enhanced (maybe without a ghost?) and are likely to respond differently then the rest of us; Overspecialization is death."<p>The scene you mentioned (amazing movie and holds up to this day) with the Major and Togusa:<p><a href="https://youtube.com/watch?v=VQUBYaAgyKI" rel="nofollow">https://youtube.com/watch?v=VQUBYaAgyKI</a><p>While I frequently use a similar argument, "We need someone 'untainted' to provide a different point of view", my honest opinion is somewhat more nuanced. These models tend to gravitate towards some sort of level of writing competence based on how good we are at filtering pre-training data and creating supervised data for fine-tuning. However, that level is still <i>far</i> below where my current professional writing is and I find it dreadful to read compared to good writing. Plenty of my students can not "see" this, as they are still below the level of current LLMs and I caution them to overly rely on LLMs for writing as they can then never learn good writing and "reach above" LLM-level writing. Instead, they must read widely, reflect, and also I always provide written feedback on their writing (rather than making edits myself) so that they must incorporate it manually into their own and when doing so they consider why I disagree with the current writing and hopefully learn to become better writers.</p>
]]></description><pubDate>Tue, 31 Mar 2026 02:27:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47582066</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=47582066</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47582066</guid></item><item><title><![CDATA[New comment by ninjin in "TSA leaves passenger needing surgery after illegally forcing her through scanner"]]></title><description><![CDATA[
<p>Indeed, Heathrow security is the rudest I have experienced. They get aggressive if you so much as ask a question. Furthermore, I have on <i>numerous</i> occasions had them argue with me to go against the medical advice from both doctors and medical advice manufacturers. Last time going as far as claiming that a scanner does not emit electromagnetic radiation.</p>
]]></description><pubDate>Fri, 06 Mar 2026 22:24:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47281926</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=47281926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47281926</guid></item><item><title><![CDATA[New comment by ninjin in "Can my SPARC server host a website?"]]></title><description><![CDATA[
<p>Would have loved to see how it holds up with some load via FastCGI and CGI (via slowcgi(8)), since httpd(8) can be used with both of them.</p>
]]></description><pubDate>Sun, 15 Feb 2026 05:20:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47021279</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=47021279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47021279</guid></item><item><title><![CDATA[New comment by ninjin in "Major European payment processor can't send email to Google Workspace users"]]></title><description><![CDATA[
<p>> Although I guess the argument will be that email clients should use AI to summarise the HTML into a plain text summary.<p>Or you could pass it through ~5,000 lines of C [1] and you will have it done in milliseconds even on hardware that would be old enough to drink.<p>[1]: <a href="https://codemadness.org/webdump.html" rel="nofollow">https://codemadness.org/webdump.html</a></p>
]]></description><pubDate>Fri, 13 Feb 2026 05:19:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46999200</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46999200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46999200</guid></item><item><title><![CDATA[New comment by ninjin in "Do not apologize for replying late to my email"]]></title><description><![CDATA[
<p>I think our contexts are all different. But, to share a different experience, as an academic (with plenty of conversations involving people in industry as well each year) I have used interleaved and bottom-posting for decades and it causes confusion maybe once a year at most and mostly because Microsoft's online client is broken and at times does not even render anything below "Dear Foo," in the HTML view (got to give this small start up in Redmond some more time though, we can not expect them to implement standards that have only been around for over 40 years).</p>
]]></description><pubDate>Wed, 11 Feb 2026 14:23:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46975286</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46975286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46975286</guid></item><item><title><![CDATA[New comment by ninjin in "End of an era for me: no more self-hosted git"]]></title><description><![CDATA[
<p>Exactly. The problem is that by their very nature some content has to be dynamically generated.<p>Just to add further emphasis as to how absurd the current situation is. I host my own repositories with gotd(8) and gotwebd(8) to share within a small circle of people. There is no link on the Internet to the HTTP site served by gotwebd(8), so they fished the subdomain out of the main TLS certificate. I am getting hit once every few seconds for the last six or so months by crawlers ignoring the robots.txt (of course) and wandering aimlessly around "high-value" pages like my OpenBSD repository forks calling blame, diff, etc.<p>Still managing just fine to serve things to real people, despite me at times having two to three cores running at full load to serve pointless requests. Maybe I will bother to address this at some point as this is melting the ice caps and wearing my disks out, but for now I hope they will choke on the data at some point and that it will make their models worse.</p>
]]></description><pubDate>Wed, 11 Feb 2026 03:59:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46970656</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46970656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46970656</guid></item><item><title><![CDATA[New comment by ninjin in "A Calif. teen trusted ChatGPT's drug advice. He died from an overdose"]]></title><description><![CDATA[
<p>The uniqueness of the situation is that OpenAI et al. <i>poses</i> as an intelligent entity that serves information to you as an authority.<p>If you go digging on darkweb forums and you see user Hufflepuffed47___ talking about dosages on a website in black and neon green, it is <i>very</i> different from paying a monthly subscription to a company valued in the billions that serves you the same information through the same sleek channel that "helps" you with your homework and tells you about the weather. OpenAI et al. are completely uprooting the way we determine source credibility and establish trust on the web and <i>they</i> elected to be these "information portals".<p>With web search, it is <i>very</i> clear when we cross the boundary from the search engine to another source (or it <i>used</i> to be before Google and others muddied it with pre-canned answers), but in this case it is entirely erased and over time you come to trust the entity you are chatting with.<p>Cases like these were bound to happen and while I do not fault the technology itself, I certainly fault those that sell and profit from providing these "intelligent" entities to the general public.</p>
]]></description><pubDate>Sat, 17 Jan 2026 06:35:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46655858</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46655858</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46655858</guid></item><item><title><![CDATA[New comment by ninjin in "Himalayas bare and rocky after reduced winter snowfall, scientists warn"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/Nanda_Devi_Plutonium_Mission" rel="nofollow">https://en.wikipedia.org/wiki/Nanda_Devi_Plutonium_Mission</a></p>
]]></description><pubDate>Mon, 12 Jan 2026 05:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46584463</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46584463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46584463</guid></item><item><title><![CDATA[New comment by ninjin in "Backing up Spotify"]]></title><description><![CDATA[
<p>Not sure if it was called "beta" or "alpha" and "closed" is of course up to interpretation, but it was indeed by invitation. Swedish law at the time (still?) had a clause about permitting sharing copyrighted material within a limited circle, which I know Spotify engineers referred to as somewhat legitimising it. I also know for a fact that once the invite-only stage ended there was a <i>major</i> purge of content and I lost about half of my playlist content, which was the end of me having music "in the cloud". Still, this is nearly twenty years ago, so my memory could be foggy.</p>
]]></description><pubDate>Sun, 21 Dec 2025 12:56:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46344504</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46344504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46344504</guid></item><item><title><![CDATA[New comment by ninjin in "Backing up Spotify"]]></title><description><![CDATA[
<p>Correct, the pirated music library was <i>before</i> they exited the closed Alpha.</p>
]]></description><pubDate>Sun, 21 Dec 2025 04:46:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46342327</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46342327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46342327</guid></item><item><title><![CDATA[New comment by ninjin in "Capsudo: Rethinking sudo with object capabilities"]]></title><description><![CDATA[
<p>Firstly, thank you for engaging and trying to enlighten me.<p>I do understand why capability delegation is useful and I am familiar with using Unix sockets to delegate the control of daemons using socket permissions, which feels similar to what we see here with capsudod (I have not read the code sadly, too much other code to read today).<p>However, I am still puzzled what the advantage of having a herd of capsudod instances running is to say my proposal of allowing users to set up their own doas.conf(5)s to delegate capabilities. Yes, we still need SUID and we will need to be darn sure 1,000 or so lines are properly secured, but it is attenuable, revocable, auditable, and feels (perhaps wrongly, because I have a bias towards text files describing the state of a system?) more natural to me than putting it all into the <i>running state</i> of a daemon.<p>Is there some other strength/weakness of these approaches that I am failing to see? I am no systems programmer, but I find topics like this interesting and dream of a day when I could be one.</p>
]]></description><pubDate>Sat, 13 Dec 2025 14:28:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46254738</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46254738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46254738</guid></item><item><title><![CDATA[New comment by ninjin in "Capsudo: Rethinking sudo with object capabilities"]]></title><description><![CDATA[
<p>I am somewhat cautious to comment as I know the author is way more experienced than I am and I fear that I may be missing something. However, let me try to accomplish the same with my elementary doas(1) knowledge.<p>Allowing mounting for a specific group is simple with doas.conf(5):<p><pre><code>    permit :mountd cmd /sbin/mount
    permit :mountd cmd /sbin/umount
</code></pre>
We can of course tighten it further as the author did:<p><pre><code>    permit :mount-usb cmd /sbin/mount /dev/sdb1
    permit :umount-usb cmd /sbin/umount /media/usb
</code></pre>
If you want to go more complex than specifying arguments, we could of course create a shell script and specify it instead of a binary.<p>Likewise, we can do something similar for a service account:<p><pre><code>    permit :www-deployment as www-deployment cmd /var/www/bin/build /var/www/application
</code></pre>
The key difference here would be that www-deployment can not delegate as easily to arbitrary users, as they would need to ask someone with root access to add additional users to the www-deployment group. But I am left wondering if this use case (if it is important enough) is not equally well served by specifying a location for non-root users to add permissions akin to what we see in doas.conf(5), but with the constraint that they of course can only allow other users to run commands with their privileges. Yes, it would "bloat" doas(1), but these code paths are not <i>that</i> long as long as you keep your scope constrained (doas(1) has a core of just over 500 lines and with environment handling and configuration format parsing we arrive a a final line count at just over 1,300).<p>At this point, the main advantage I see with capsudod is that you can more easily drop privileges and put in restrictions like pledge(2) <i>before</i> the binary is ever called upon by whatever user we have granted permissions. While with the doas(1) thinking above you have to run over plenty of code that could be exploited. Still, this feels like a rather minor relative improvement to what we already have.<p>Am I missing something in my ignorance? Lastly, let me also say that I am sure that sudo(8) has the ability to do the same things I proposed to do with doas(1) above, but I  know the latter far better.</p>
]]></description><pubDate>Sat, 13 Dec 2025 06:12:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46252463</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=46252463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46252463</guid></item><item><title><![CDATA[New comment by ninjin in "Former Nintendo employees reveal what it took to launch the NES"]]></title><description><![CDATA[
<p>Having played the Famicom Disk System, I will also say that the load times are <i>abysmal</i>. I think it is Castlevania II that has an autosave function for the Japanese release which was for the FDS and it is so darn slow that I would recommend against playing it even if you can read Japanese.</p>
]]></description><pubDate>Mon, 10 Nov 2025 09:47:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45874290</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45874290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45874290</guid></item><item><title><![CDATA[New comment by ninjin in "Using FreeBSD to make self-hosting fun again"]]></title><description><![CDATA[
<p>Thank you for sharing the write up!<p>Not an OpenBSD expert by any means, but two small pieces of <i>minor</i> feedback as everything else you wrote mirrors my own setup and experience. Firstly, unless you are <i>really</i> strapped for space on say a 90s machine, it is generally recommended to install <i>all</i> the file sets as there can be interactions with ports even if one does not expect it (say ffmpeg needing X11 libraries). The general OpenBSD mindset is after all "Use the defaults" and the default is to install all the file sets. Secondly, the OpenBSD Handbook has a bit of a mixed reputation in the community from what I can tell. Unlike the FreeBSD Handbook, it is not an official document and I tend to rely on man pages, openbsd.org, misc@, and a few blogs I consider to be trustworthy instead.<p>As a final note, glad to see you have IPv6 up and running. I really should get around to it now that dhcp6leased has been in base for more than two releases.</p>
]]></description><pubDate>Mon, 03 Nov 2025 04:11:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45795796</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45795796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45795796</guid></item><item><title><![CDATA[New comment by ninjin in "Do you know that there is an HTML tables API?"]]></title><description><![CDATA[
<p>I disagree, but maybe it is a cultural thing for those of us that are more used to functional styles of programming? I was taught method chaining as a style by a seasoned JavaScript and Ruby programmer myself and I do not find the semantics confusing. "Create X with Y set to 17 and Z to 4711" can be either on one or three lines to me, as long as the method calls are clear and short enough.<p>As for variables, I (again personally) find it taxing to have many variables in scope, so I do net see their presence as a universal good. If we instead simply use expressions, then there is no need to concern yourself with whether the variable will come into play later on. Thus, I think it increases clarity and favour that over the ease of future modification argument you propose (heck, I would argue that you get better diffs even if you force the variable declaration into a future modification).<p>As for bikeshedding this piece of code further, if I steal some ideas from chrismorgan [1] and embedding-shape [2] who appear to be <i>way</i> more seasoned JavaScript programmers than me:<p><pre><code>    const $t = document.createElement('table');
    for (const r of
            [
                ['one',  'two',  'three'],
                ['four', 'five', 'six'  ],
            ]) {
        const $r = $t.insertRow();
        for (const e of r)
            $r.insertCell().innerText = e;
    };
    document.body.append($t);
</code></pre>
This is now rather minimal and the logic is easy (for me) to follow as the scopes are minimal and namespace uncluttered. It was a rather fun little exercise for a language I am not overly familiar with and I learned a few tricks and perspectives.<p>[1]: <a href="https://news.ycombinator.com/item?id=45782938">https://news.ycombinator.com/item?id=45782938</a><p>[2]: <a href="https://news.ycombinator.com/item?id=45781591">https://news.ycombinator.com/item?id=45781591</a></p>
]]></description><pubDate>Sun, 02 Nov 2025 02:42:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45787475</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45787475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45787475</guid></item><item><title><![CDATA[New comment by ninjin in "Do you know that there is an HTML tables API?"]]></title><description><![CDATA[
<p>Cheers! Fixed.</p>
]]></description><pubDate>Sat, 01 Nov 2025 13:54:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45781670</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45781670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45781670</guid></item><item><title><![CDATA[New comment by ninjin in "Do you know that there is an HTML tables API?"]]></title><description><![CDATA[
<p>Really? The variable name lengths? Not that the code is clearer as:<p><pre><code>    const te = document.createElement('table');
    document.body.appendChild(te);
    [
        ['one',  'two',  'three'],
        ['four', 'five', 'six'  ],
    ].forEach((r, i) => {
        const re = te.insertRow(i);
        r.forEach((c, j) => {
            re.insertCell(j).innerText = c;
        })
    });
</code></pre>
My personal stance on short variable names is that they are fine as long as their scope is very limited, which is the case here. Rather, the "crime" to me is an overuse of rather pointless variables as the majority of them were only used once.<p>Disclaimer: I have not tested the code and I only write JavaScript once every few years and when I do I am unhappy about it.</p>
]]></description><pubDate>Sat, 01 Nov 2025 13:38:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45781553</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45781553</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45781553</guid></item><item><title><![CDATA[New comment by ninjin in "OpenBSD 7.8"]]></title><description><![CDATA[
<p>I mean, are we surprised? Linux has on the order of millions times more users and funds (probably not developers though, but who knows). Thus, if there is <i>any</i> financial viability of a port I am certainly expecting Linux to "move" first. Rather, I am impressed that OpenBSD and NetBSD are keeping up as well as they do.</p>
]]></description><pubDate>Wed, 22 Oct 2025 12:11:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45667859</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45667859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45667859</guid></item><item><title><![CDATA[New comment by ninjin in "OpenBSD 7.8"]]></title><description><![CDATA[
<p>It really is and not just that. WireGuard being natively supported makes configuring your peers as easy as dumping the last of these example lines into /etc/hostname.wg[0-9]:<p><a href="https://man.openbsd.org/wg#EXAMPLES" rel="nofollow">https://man.openbsd.org/wg#EXAMPLES</a><p>Simple, text-file based configuration for everything in the extensive base system and no drama between upgrades is really what makes you a happy OpenBSD user.</p>
]]></description><pubDate>Wed, 22 Oct 2025 10:55:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45667280</link><dc:creator>ninjin</dc:creator><comments>https://news.ycombinator.com/item?id=45667280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45667280</guid></item></channel></rss>