<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: nikeee</title><link>https://news.ycombinator.com/user?id=nikeee</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 12 Oct 2026 17:58:48 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nikeee" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nikeee in "JEP 540: Simple JSON API (Now in Incubator)"]]></title><description><![CDATA[
<p>I don't like this:<p><pre><code>    String body = ... REST response body, which is a JSON document ... ;
    JsonValue json = Json.parse(body);
    json.get("properties").get("periods").asList().stream()
        .mapToInt(j -> j.get("temperature").asInt())
        .average()
        .ifPresent(IO::println);
</code></pre>
Why am I able to call `.get(string)` or `.get(int)` on a JsonValue? Shouldn't these be on the JsonObject and JsonArray instead?<p>> If the JsonValue instance is of the wrong type, or if the requested member or element does not exist, the access methods throw a JsonValueException.<p>So if I get an exception, I can't tell whether the value was of the wrong type or the object didn't have the requested key? This looks like a footgun to me.<p>They just brought pattern matching to Java. Why not move those .get to JsonArray and JsonObject? That would solve this confusions. So we could just use something like `if (json instanceof JsonObject o) o.get("properties")`</p>
]]></description><pubDate>Thu, 23 Jul 2026 18:15:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49025864</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=49025864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49025864</guid></item><item><title><![CDATA[New comment by nikeee in "Throwing AI-generated walls of text into conversations"]]></title><description><![CDATA[
<p>I suspect that, too. But to me, it signals the exact opposite.</p>
]]></description><pubDate>Thu, 21 May 2026 17:06:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48225923</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=48225923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48225923</guid></item><item><title><![CDATA[New comment by nikeee in "Throwing AI-generated walls of text into conversations"]]></title><description><![CDATA[
<p>In that case I still want to see exactly this prompt. Then I know that the person didn't even think about my question thoug I asked _them_ for their opinion and I could have asked ChatGPT myself (and already probably have).</p>
]]></description><pubDate>Thu, 21 May 2026 15:40:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48224607</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=48224607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48224607</guid></item><item><title><![CDATA[New comment by nikeee in "Throwing AI-generated walls of text into conversations"]]></title><description><![CDATA[
<p>When I'm encountering some WoT like that, I'd like to have a button like "view source", but for "view prompt".<p>Most ai generated messages or docs are unnecessarily verbose and just reading the prompt would suffice. I don't really get why some people seem to think that it's somehow better to have their bullet point prompt as a huge text.<p>It just wastes my time. And probably only makes it look like it took more effort than it actually did (it may be the exact opposite).</p>
]]></description><pubDate>Thu, 21 May 2026 13:04:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48221973</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=48221973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48221973</guid></item><item><title><![CDATA[New comment by nikeee in "Zig → Rust porting guide"]]></title><description><![CDATA[
<p>Zig is a moving target that has breaking changes in every release (which is fine as they are sub-1.0). But that means that AI tools have been trained on outdated syntax/etc. Zig isn't that common, so there is even less training data to begin with.<p>Rust on the other hand is pretty established by now and has less breaking changes. It also has more compile-time safety-guarantees that makes vibe-coding a bit more confident.<p>In top of that, Zig has rejected their upstream contributions. So they'd have to maintain their own compiler in the long run, which is probably just technical debt to maintain.</p>
]]></description><pubDate>Tue, 05 May 2026 01:34:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48017048</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=48017048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48017048</guid></item><item><title><![CDATA[New comment by nikeee in "I just want simple S3"]]></title><description><![CDATA[
<p>I am building an S3 client [1] where I have a test matrix that tests against common S3 implementations, including RustFS.<p>That test matrix uncovered that post policies were only checked for exsitence and a valid signature, not if the request actually conforms to the signed policy. That was an arbitrary object write resulting in CVE-2026-27607 [2].<p>In the very first issue for this bug [3], it seemed that the authors of the S3 implementation didn't know the difference between the content-length of GetObject and content-length-range of a PostObject. That was kind of a bummer and leads me to advise all my friends not to use rustfs, though I like what they are doing in principal (building a Minio alternative).<p>[1]: <a href="https://github.com/nikeee/lean-s3" rel="nofollow">https://github.com/nikeee/lean-s3</a>
[2]: <a href="https://github.com/rustfs/rustfs/security/advisories/GHSA-w5fh-f8xh-5x3p" rel="nofollow">https://github.com/rustfs/rustfs/security/advisories/GHSA-w5...</a>
[3]: <a href="https://github.com/rustfs/rustfs/issues/984" rel="nofollow">https://github.com/rustfs/rustfs/issues/984</a></p>
]]></description><pubDate>Mon, 13 Apr 2026 23:14:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47759199</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47759199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47759199</guid></item><item><title><![CDATA[New comment by nikeee in "Does coding with LLMs mean more microservices?"]]></title><description><![CDATA[
<p>What matters for LLMs is what matters for humans, which usually means DX. Most Microservice setups are extremely hard to debug across service boundaries, so I think in the future, we'll see more architectural decisions that make sense for LLMs to work with. Which will probably mean modular monoliths or something like that.</p>
]]></description><pubDate>Mon, 06 Apr 2026 09:18:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47658579</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47658579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47658579</guid></item><item><title><![CDATA[New comment by nikeee in "Temporal: The 9-year journey to fix time in JavaScript"]]></title><description><![CDATA[
<p>It is called Duration.</p>
]]></description><pubDate>Wed, 11 Mar 2026 23:34:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47344042</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47344042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47344042</guid></item><item><title><![CDATA[New comment by nikeee in "Making WebAssembly a first-class language on the Web"]]></title><description><![CDATA[
<p>> the only viable use cases were compute-heavy workloads like codecs and crypto,<p>I tried using it for crypto, but WASM does not have instructions for crypto. So it basically falls back to be non-hw-accelerated.
Tried to find out why and the explanation seems to be that it's not needed because JS has a `crypto` API which uses hw intrinsics.</p>
]]></description><pubDate>Wed, 11 Mar 2026 18:47:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47339552</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47339552</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47339552</guid></item><item><title><![CDATA[New comment by nikeee in "Package managers need to cool down"]]></title><description><![CDATA[
<p>That could probably be solved by opting in to the permission model of Node. But that won't work for everybody, especially in legacy applications.<p>Having trusted dependencies at least drastically reduces the risk that 'git clone && npm install' takes over the entire system.<p>Cooling down dependencies would certainly help, also.</p>
]]></description><pubDate>Sun, 08 Mar 2026 00:58:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47293199</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47293199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47293199</guid></item><item><title><![CDATA[New comment by nikeee in "Package managers need to cool down"]]></title><description><![CDATA[
<p>Some tools also install pre-commit hooks. I don't like this practice, but I get why people are using it.</p>
]]></description><pubDate>Sun, 08 Mar 2026 00:54:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47293180</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47293180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47293180</guid></item><item><title><![CDATA[New comment by nikeee in "Package managers need to cool down"]]></title><description><![CDATA[
<p>Bun added `trustedDependencies` [1] to package.json and only executes postInstall scripts coming from these dependencies. I think this is something that should be supported across all JS package managers, even more than version cooldowns.<p>[1]: <a href="https://bun.com/docs/guides/install/trusted" rel="nofollow">https://bun.com/docs/guides/install/trusted</a></p>
]]></description><pubDate>Sat, 07 Mar 2026 23:06:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47292358</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47292358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47292358</guid></item><item><title><![CDATA[New comment by nikeee in "What does " 2>&1 " mean?"]]></title><description><![CDATA[
<p>So if i happen to know the numbers of other file descriptors of the process (listed in /proc), i can redirect to other files opened in the current process? 2>&1234? Or is it restricted to 0/1/2 by the shell?<p>Would probably be hard to guess since the process may not have opened any file once it started.</p>
]]></description><pubDate>Fri, 27 Feb 2026 00:08:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47174268</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47174268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47174268</guid></item><item><title><![CDATA[New comment by nikeee in "I found a useful Git one liner buried in leaked CIA developer docs"]]></title><description><![CDATA[
<p>I use git-trim for that:<p><a href="https://github.com/foriequal0/git-trim" rel="nofollow">https://github.com/foriequal0/git-trim</a><p>Readme also explains why it's better than a bash-oneliner in some cases.</p>
]]></description><pubDate>Fri, 20 Feb 2026 15:48:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47089533</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47089533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47089533</guid></item><item><title><![CDATA[New comment by nikeee in "Farewell, Rust for web"]]></title><description><![CDATA[
<p>Or you don't use the defualt case and rely on definite assignment analysis or checks for returns in every code path.<p>I find the never type in TS actually being a proper bottom type + having control-flow based types vastly superior to what rust offers.</p>
]]></description><pubDate>Thu, 19 Feb 2026 21:59:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47080145</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=47080145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47080145</guid></item><item><title><![CDATA[New comment by nikeee in "Nuudel: Non-Tracking Appointment Tool"]]></title><description><![CDATA[
<p>There was dudle [1] developed and hosted by a German university. Seems unmaintained, but there is an independent project called BitPoll [2].<p>[1]: <a href="https://github.com/kellerben/dudle" rel="nofollow">https://github.com/kellerben/dudle</a>
[2]: <a href="https://github.com/fsinfuhh/BitPoll" rel="nofollow">https://github.com/fsinfuhh/BitPoll</a></p>
]]></description><pubDate>Tue, 20 Jan 2026 16:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46693313</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=46693313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46693313</guid></item><item><title><![CDATA[New comment by nikeee in "Dead Internet Theory"]]></title><description><![CDATA[
<p>I hope that when all online content is entirely AI generated, humanity will put their phone aside and re-discover reality because we realize that the social networks have become entirely worthless.</p>
]]></description><pubDate>Mon, 19 Jan 2026 04:10:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46674970</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=46674970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46674970</guid></item><item><title><![CDATA[New comment by nikeee in "AWS European Sovereign Cloud"]]></title><description><![CDATA[
<p>What if the software is developed and potentially backdoored in the US and deployed by the EU team in the sovereign region? Or did they rewrite the entire AWS stack?</p>
]]></description><pubDate>Thu, 15 Jan 2026 23:50:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46641172</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=46641172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46641172</guid></item><item><title><![CDATA[New comment by nikeee in "Kidnapped by Deutsche Bahn"]]></title><description><![CDATA[
<p>Keep in mind that a train in Germany counts as one-time if it is less than 6 minutes late. In Switzerland, it's 3 minutes.<p>Also in Germany, a train that did not even arrive does not count as too late.<p>There is also a concept of the "Pofalla-Wende", which is when a train is so late that it just does a 180 and drives back, to mitigate that the delay doesn't carry over to the train's next route. Of course, that means that it skips the stations at the end of the route.</p>
]]></description><pubDate>Mon, 29 Dec 2025 19:37:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46424555</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=46424555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46424555</guid></item><item><title><![CDATA[New comment by nikeee in "Pricing Changes for GitHub Actions"]]></title><description><![CDATA[
<p>Given that I can dump hundreds of TBs into the private container registry without paying anything I'm pretty surprised that they now charge for what is basically providing log streaming and retention.</p>
]]></description><pubDate>Tue, 16 Dec 2025 21:48:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46295013</link><dc:creator>nikeee</dc:creator><comments>https://news.ycombinator.com/item?id=46295013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46295013</guid></item></channel></rss>