<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: oxidant</title><link>https://news.ycombinator.com/user?id=oxidant</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 03:44:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=oxidant" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by oxidant in "Keeping a Postgres Queue Healthy"]]></title><description><![CDATA[
<p>This works well for jobs that are long-ish. You need another process to sweep for orphaned jobs and requeue or fail them. Add a timestamp of when it got picked up to keep track</p>
]]></description><pubDate>Sat, 11 Apr 2026 23:07:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47734772</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=47734772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47734772</guid></item><item><title><![CDATA[New comment by oxidant in "RIP Low-Code 2014-2025"]]></title><description><![CDATA[
<p>Exactly the point I was going to make. Shipping something requires knowing how to ship it, monitor it, and fix it.<p>Writing code is the "easy" part and kind of always has been. No one triggers incidents from a PR that's been in review for too long.</p>
]]></description><pubDate>Tue, 27 Jan 2026 03:38:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46775221</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=46775221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46775221</guid></item><item><title><![CDATA[New comment by oxidant in "Why is the Gmail app 700 MB?"]]></title><description><![CDATA[
<p>Electron ships a version of Chrome. Other frameworks like Tauri use the device's webview.</p>
]]></description><pubDate>Wed, 07 Jan 2026 00:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46520731</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=46520731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46520731</guid></item><item><title><![CDATA[New comment by oxidant in "Gleam OTP – Fault Tolerant Multicore Programs with Actors"]]></title><description><![CDATA[
<p>receive takes a timeout. A would crash/hit the timeout and deal with the problem.</p>
]]></description><pubDate>Mon, 20 Oct 2025 02:43:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45639803</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=45639803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45639803</guid></item><item><title><![CDATA[New comment by oxidant in "Elixir 1.19"]]></title><description><![CDATA[
<p>What do you mean, "creates a Conn variable out of whole cloth"?<p>Conn is just a pipeline of functions, the initial Conn struct is created at request time and passed through to each function in the pipeline.</p>
]]></description><pubDate>Fri, 17 Oct 2025 14:33:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45617249</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=45617249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45617249</guid></item><item><title><![CDATA[New comment by oxidant in "A staff engineer's journey with Claude Code"]]></title><description><![CDATA[
<p>I've never seen it write a file in plan mode either.</p>
]]></description><pubDate>Wed, 03 Sep 2025 01:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45111254</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=45111254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45111254</guid></item><item><title><![CDATA[New comment by oxidant in "Booting 5000 Erlangs on Ampere One 192-core"]]></title><description><![CDATA[
<p>The behavior is configurable and the default is unbound.<p><a href="https://www.erlang.org/doc/apps/erts/erl_cmd.html#%2Bsbt" rel="nofollow">https://www.erlang.org/doc/apps/erts/erl_cmd.html#%2Bsbt</a></p>
]]></description><pubDate>Mon, 11 Aug 2025 14:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44864196</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44864196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44864196</guid></item><item><title><![CDATA[New comment by oxidant in "URL-Driven State in HTMX"]]></title><description><![CDATA[
<p>Not if the items change relative position over time.</p>
]]></description><pubDate>Wed, 30 Jul 2025 03:51:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44730755</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44730755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44730755</guid></item><item><title><![CDATA[New comment by oxidant in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>Schroedingers branching</p>
]]></description><pubDate>Wed, 23 Jul 2025 02:25:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44655182</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44655182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44655182</guid></item><item><title><![CDATA[New comment by oxidant in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>Counterpoint: Why should my println debugging get committed? They're not "important" for the final product but important for development.</p>
]]></description><pubDate>Tue, 22 Jul 2025 03:58:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44643103</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44643103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44643103</guid></item><item><title><![CDATA[New comment by oxidant in "Generative AI coding tools and agents do not work for me"]]></title><description><![CDATA[
<p>Agreed, but people sell "vibe coding" without acknowledging you need more than vibes.<p>LLMs can help answer the questions. However, they're not going to necessarily make the correct choices or implementation without significant input from the user.</p>
]]></description><pubDate>Tue, 17 Jun 2025 14:28:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44299678</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44299678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44299678</guid></item><item><title><![CDATA[New comment by oxidant in "Generative AI coding tools and agents do not work for me"]]></title><description><![CDATA[
<p>Of course that's what the industry is selling because they want to make money. Yes, it's easy to create a proof of concept but once you get out of greenfield into 50-100k tokens  needed in the context (reading multiple 500 line files, thinking, etc) the quality drops and you need to know how to focus the models to maintain the quality.<p>"Write me a server in Go" only gets you so far. What is the auth strategy, what endpoints do you need, do you need to integrate with a library or API, are there any security issues, how easy is the code to extend, how do you get it to follow existing patterns?<p>I find I need to think AND write more than I would if I was doing it myself because the feedback loop is longer. Like the article says, you have to review the code instead of having implicit knowledge of what was written.<p>That being said, it is faster for some tasks, like writing tests (if you have good examples) and doing basic scaffolding. It needs quite a bit of hand holding which is why I believe those with more experience get more value from AI code because they have a better bullshit meter.</p>
]]></description><pubDate>Tue, 17 Jun 2025 05:05:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44295912</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44295912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44295912</guid></item><item><title><![CDATA[New comment by oxidant in "Generative AI coding tools and agents do not work for me"]]></title><description><![CDATA[
<p>I do not agree it is something you can pick up in an hour. You have to learn what AI is good at, how different models code, how to prompt to get the results you want.<p>If anything, prompting well is akin to learning a new programming language. What words do you use to explain what you want to achieve? How do you reference files/sections so you don't waste context on meaningless things?<p>I've been using AI tools to code for the past year and a half (Github Copilot, Cursor, Claude Code, OpenAI APIs) and they all need slightly different things to be successful and they're all  better at different things.<p>AI isn't a panacea, but it can be the right tool for the job.</p>
]]></description><pubDate>Tue, 17 Jun 2025 02:19:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44295208</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44295208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44295208</guid></item><item><title><![CDATA[New comment by oxidant in "Snorting the AGI with Claude Code"]]></title><description><![CDATA[
<p>Not OP but probably just cost.</p>
]]></description><pubDate>Mon, 16 Jun 2025 23:07:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44294195</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44294195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44294195</guid></item><item><title><![CDATA[New comment by oxidant in "Go is a good fit for agents"]]></title><description><![CDATA[
<p>Elixir has a better developer experience, or at least it's more approachable. Better code splitting with modules, easier to use variables (no var, var1, var2), loops that look like loops but easy enough to fall back to recursion, and an easier to read syntax.<p>gen_stage is just a library. One could write it in Erlang. It's like asking why Broadway is only for Elixir and not Erlang.<p>It was hard to approach the Erlang docs when I started in Elixir. However, they've moved to an ex_doc format (is it ex_docs?) as a standard and it's so much easier to grok.</p>
]]></description><pubDate>Tue, 10 Jun 2025 01:48:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44231650</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44231650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44231650</guid></item><item><title><![CDATA[New comment by oxidant in "Writing A Job Runner (In Elixir) (Again) (10 years later)"]]></title><description><![CDATA[
<p>FOR UPDATE SKIP LOCKED is great, but it needs to be in a transaction. In the example code it won't "do" anything because it selects for update then immediately loses the lock.<p>Claude says you can use a CTE to select and the run your update with the locked rows, but I have only ever used transactions.</p>
]]></description><pubDate>Fri, 23 May 2025 22:26:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44077163</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44077163</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44077163</guid></item><item><title><![CDATA[New comment by oxidant in "Zod 4"]]></title><description><![CDATA[
<p>Better to use something like OpenApi and generate your zod schema using it.</p>
]]></description><pubDate>Mon, 19 May 2025 15:54:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44031150</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=44031150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44031150</guid></item><item><title><![CDATA[New comment by oxidant in "A critical look at MCP"]]></title><description><![CDATA[
<p>It's JSON-RCP 2 with a specific life cycle and events. <a href="https://www.jsonrpc.org/specification" rel="nofollow">https://www.jsonrpc.org/specification</a><p>I found an explanation on a site once but haven't found any official docs. I suppose you could reverse enegiener the SDKs.</p>
]]></description><pubDate>Mon, 12 May 2025 00:57:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=43958665</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=43958665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43958665</guid></item><item><title><![CDATA[New comment by oxidant in "A critical look at MCP"]]></title><description><![CDATA[
<p>I wish there was a clear spec on the site but there isn't <a href="https://modelcontextprotocol.io/specification/2025-03-26" rel="nofollow">https://modelcontextprotocol.io/specification/2025-03-26</a><p>It seems like half of it is Sonnet output and it doesn't describe how the protocol actually works.<p>For all its warts, the GraphQL spec is very well written <a href="https://spec.graphql.org/October2021/" rel="nofollow">https://spec.graphql.org/October2021/</a></p>
]]></description><pubDate>Sat, 10 May 2025 19:08:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43948055</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=43948055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43948055</guid></item><item><title><![CDATA[New comment by oxidant in "Evidence of controversial Planet 9 uncovered in sky surveys taken 23 years apart"]]></title><description><![CDATA[
<p>I think Bill Nye has something similar, too.</p>
]]></description><pubDate>Sun, 04 May 2025 15:26:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43887252</link><dc:creator>oxidant</dc:creator><comments>https://news.ycombinator.com/item?id=43887252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43887252</guid></item></channel></rss>