<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: tofflos</title><link>https://news.ycombinator.com/user?id=tofflos</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 19 Oct 2026 05:47:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tofflos" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tofflos in "JDK 28"]]></title><description><![CDATA[
<p>Most people are thirsting for value objects but I'm mostly looking forward to:<p><pre><code>  542: PEM Encodings of Cryptographic Objects
  543: Structured Concurrency
</code></pre>
Developers work with certificates a bit too seldom to aquire proficiency with conversions. Being able to use PEM directly will ease a lot of pain.<p>I've given concurrency a couple of attempts over the years and I don't... like... or understand?... how the existing Java concurrency primitives are supposed to work. The only library that has clicked with me is Awaitility but for some reason Awaitility is intended for testing and not for production. Maybe Structured Concurrency will finally unlock something for me?</p>
]]></description><pubDate>Sun, 18 Oct 2026 10:07:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=50139614</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=50139614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50139614</guid></item><item><title><![CDATA[New comment by tofflos in "JDK 28"]]></title><description><![CDATA[
<p>You can also choose to run directly from source with a small penalty at startup and verbosity has decreased for simple use cases. It's still not great for scripting but the situation has been steadily improving over the last couple of years.<p><pre><code>  void main() {
    IO.println("Hello world");
  }

  $ time java Hello.java
  Hello world

  real    0m0.662s
  user    0m2.421s
  sys     0m0.198s

  void main(String[] args) throws Exception {
    IO.println(InetAddress.getByName(args[0]));
  }

  $ time java Dig.java news.ycombinator.com
  news.ycombinator.com/209.216.230.207

  real    0m1.154s
  user    0m2.379s
  sys     0m0.222s</code></pre></p>
]]></description><pubDate>Sun, 18 Oct 2026 09:09:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=50139334</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=50139334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50139334</guid></item><item><title><![CDATA[New comment by tofflos in "Show HN: Guitoro, a virtual guitar you strum with your keyboard"]]></title><description><![CDATA[
<p>C, G, Am and F for some definition of best.</p>
]]></description><pubDate>Wed, 14 Oct 2026 16:03:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=50089823</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=50089823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50089823</guid></item><item><title><![CDATA[New comment by tofflos in "DuckDB V2 PEG-based SQL parser"]]></title><description><![CDATA[
<p>> Previous blog posts have covered DuckDB’s friendly SQL, including GROUP BY ALL and column selection using SELECT * EXCLUDE (...).<p>I love the idea of friendly SQL! I often create views with the same shape and would love it if UNION and UNION ALL accepted a list. But it's not in the standard so I've given up hope of it ever happening in PostgreSQL.<p><pre><code>    select * from view1 union all view2, view3, view4;</code></pre></p>
]]></description><pubDate>Fri, 21 Aug 2026 15:50:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49389938</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=49389938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49389938</guid></item><item><title><![CDATA[New comment by tofflos in "Debian must ship reproducible packages"]]></title><description><![CDATA[
<p>amd64 forky<p>reproduced: 97.02%
good:  17586
bad:   511
fail:  30
unknown: 0<p>This, statistics for other architectures, and the reasons for unreproducibility can be found at <a href="https://reproduce.debian.net" rel="nofollow">https://reproduce.debian.net</a>.</p>
]]></description><pubDate>Sun, 10 May 2026 13:29:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48083815</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=48083815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48083815</guid></item><item><title><![CDATA[New comment by tofflos in "Go hard on agents, not on your filesystem"]]></title><description><![CDATA[
<p>I installed codex yesterday and the first thing I'm doing today is figuring out how bubblewrap works and maybe evaluating jai as an alternative.<p>Nice article.</p>
]]></description><pubDate>Sat, 28 Mar 2026 10:41:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47553365</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=47553365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47553365</guid></item><item><title><![CDATA[New comment by tofflos in "Go hard on agents, not on your filesystem"]]></title><description><![CDATA[
<p>Codex uses and ships with bubblewrap on Linux and will attempt to use the version installed on the path before falling back to the shipped version with a warning message.<p>You should be able to configure the sandbox using <a href="https://developers.openai.com/codex/agent-approvals-security" rel="nofollow">https://developers.openai.com/codex/agent-approvals-security</a> if you are a person who prefers the convenience of codex being able to open the sandbox over an externally enforced sandbox like jai.</p>
]]></description><pubDate>Sat, 28 Mar 2026 10:33:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47553324</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=47553324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47553324</guid></item><item><title><![CDATA[New comment by tofflos in "LinkedIn is loud, and corporate is hell"]]></title><description><![CDATA[
<p>I wasn't familiar with the PIP acronym so I asked $AI:<p>> A PIP (Performance Improvement Plan) is a formal document a company uses when they believe an employee isn’t meeting expectations. It’s framed as “support,” but depending on the environment, it can be anything from a genuine improvement tool to a pre-termination protocol.</p>
]]></description><pubDate>Thu, 27 Nov 2025 22:01:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46073599</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=46073599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46073599</guid></item><item><title><![CDATA[New comment by tofflos in "OpenTelemetry: Escape Hatch from the Observability Cartel"]]></title><description><![CDATA[
<p><a href="https://illumos.org/books/dtrace/chp-usdt.html#chp-usdt" rel="nofollow">https://illumos.org/books/dtrace/chp-usdt.html#chp-usdt</a></p>
]]></description><pubDate>Fri, 07 Nov 2025 18:03:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45849080</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=45849080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45849080</guid></item><item><title><![CDATA[New comment by tofflos in "Go Primitive in Java, or Go in a Box"]]></title><description><![CDATA[
<p>Eclipse Collections also comes with an API that seems nicer than the one provided by the standard library - so it might be worth checking out even if you're not interested in primitives.</p>
]]></description><pubDate>Sun, 02 Nov 2025 18:52:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45792477</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=45792477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45792477</guid></item><item><title><![CDATA[New comment by tofflos in "Rating 26 years of Java changes"]]></title><description><![CDATA[
<p>It's terse and it lines up the variable names.</p>
]]></description><pubDate>Sat, 11 Oct 2025 20:43:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45552518</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=45552518</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45552518</guid></item><item><title><![CDATA[New comment by tofflos in "Rating 26 years of Java changes"]]></title><description><![CDATA[
<p>I will make any excuse to use Streams but understand the negativity. They are difficult to debug and I feel the support for parallelism complicated, and in some cases even crippled, the API for many common use cases.</p>
]]></description><pubDate>Sat, 11 Oct 2025 20:40:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45552501</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=45552501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45552501</guid></item><item><title><![CDATA[New comment by tofflos in "Show HN: Piano Trainer – Learn piano scales, chords and more using MIDI"]]></title><description><![CDATA[
<p>Rocksmith+ recently got a piano mode. The default interface is similar to Guitar Hero but you can also toggle to a sheet music view. I haven't tried it.<p>I have tried Playground Sessions and recommend it.</p>
]]></description><pubDate>Mon, 07 Jul 2025 07:52:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44487754</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=44487754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44487754</guid></item><item><title><![CDATA[New comment by tofflos in "2025 Iberia Blackout Report [pdf]"]]></title><description><![CDATA[
<p>It's a difficult read.<p>Cybersecurity and digital systems was not the issue but gets thirteen pages of proposed measures. I feel this could have been left out.<p>Electric System Operation was the issue and gets seven pages of proposed measures.</p>
]]></description><pubDate>Mon, 23 Jun 2025 20:57:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44360005</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=44360005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44360005</guid></item><item><title><![CDATA[New comment by tofflos in "The ADHD body double: A unique tool for getting things done"]]></title><description><![CDATA[
<p>What's unique about this? This is basically what every parent and teacher already does.</p>
]]></description><pubDate>Sun, 06 Apr 2025 07:08:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43599509</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=43599509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43599509</guid></item><item><title><![CDATA[New comment by tofflos in "Ask for no, don't ask for yes (2022)"]]></title><description><![CDATA[
<p>Just do the thing.
I'll have your back if it goes wrong.
Sincerely Your non-toxic boss.</p>
]]></description><pubDate>Sun, 23 Feb 2025 15:41:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43150023</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=43150023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43150023</guid></item><item><title><![CDATA[New comment by tofflos in "Cities can cost effectively start their own utilities"]]></title><description><![CDATA[
<p>There can't be a competitive market. The entity that operates the grid has a monopoly on all customers in the area. So I would say entities that govern grids fall in a can't-be-allowed-to-fail-category while entities that govern generators do not (unless they buy enough generators in a region to effectively become a monopoly).</p>
]]></description><pubDate>Sun, 09 Feb 2025 19:43:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42993138</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=42993138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42993138</guid></item><item><title><![CDATA[New comment by tofflos in "So you want to write Java in Neovim"]]></title><description><![CDATA[
<p>> I’ll preface this by saying that if Neovim isn’t your primary editor, you should first try an IDE specifically for Java."<p>Seconded.<p>As someone who has spent a lot of time configuring editors, but doesn't enjoy it quite as much as he used to, I gave Java on Neovim a shot this summer.<p>There are two main routes to go - both of which are described in the article. Either install it yourself, "You read the friendly manual", or use someone else's installer, "You use a distro".<p>My problem with someone else's installer is that I don't understand what it's doing, which in turn gives me the feeling that it's pulling in the kitchen sink, which is exactly the feeling I hoped to avoid by not using my regular IDE.<p>My problem with installing it myself is that I have to learn the entire ecosystem including, but not limited to, learning how to use Neovim for more than editing a simple text file, learning the Lua scripting language, learning where Neovim keeps its' configuration files and what to put in them, curating a set of plugins for highlighting, launching code, debugging, etc., figuring out how to configure those plugins for Neovim and finally how to make those plugins play nice together.<p>In the end it just wasn't for me but if Neovim is your primary editor it might be for you.<p>> Java has one LSP option for Neovim, and that’s JDTLS (Java Development Tools Language Server) by Eclipse.<p>Just wanted to mention that there is another LSP for Java, <a href="https://github.com/apache/netbeans/tree/master/java/java.lsp.server">https://github.com/apache/netbeans/tree/master/java/java.lsp...</a>, but I don't know if anyone has gotten it to work with Neovim.</p>
]]></description><pubDate>Sat, 28 Dec 2024 16:46:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42532248</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=42532248</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42532248</guid></item><item><title><![CDATA[New comment by tofflos in "An analysis of the Keycloak authentication system"]]></title><description><![CDATA[
<p>Off-topic but I love this naming convention from Red Hat which I hope gets more traction across the industry. It absolutely detest wading through vendor marketing material to figure out which open source product is being used under the hood. With names like "Red Hat Build of Keycloak" and "Microsoft Build of OpenJDK" it's crystal clear.<p>I believe it works out better for the vendors as well because there are so many obstacles with evaluating anything that requires a license in an enterprise setting. If the technical person downloads and evaluates the underlying open source version some manager will insist on purchasing a support contract before going to production.</p>
]]></description><pubDate>Thu, 14 Nov 2024 17:50:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42138921</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=42138921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42138921</guid></item><item><title><![CDATA[New comment by tofflos in "Get me out of data hell"]]></title><description><![CDATA[
<p>> Like why didn't anyone catch the issue with the logs?<p>I see questions like these a lot and every time I feel that people immensely underestimate the effort required for curating data. In my experience data can only ever be as good as what it's being used for and in this story the logs haven't been used for this purpose before so they're not going to be any good.<p>It's some sort of data variation on the second law of thermodynamics - entropy is winning. Going in with the expectation that things should be better will only lead to frustration.</p>
]]></description><pubDate>Sun, 03 Nov 2024 08:35:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42031857</link><dc:creator>tofflos</dc:creator><comments>https://news.ycombinator.com/item?id=42031857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42031857</guid></item></channel></rss>