<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: bbkane</title><link>https://news.ycombinator.com/user?id=bbkane</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 13 Aug 2026 21:35:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bbkane" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bbkane in "Time to Move On: Querying Without Nulls and Bags"]]></title><description><![CDATA[
<p>It's unfair, but my first thought after reading the abstract was "oh great, another one".<p>There have been several languages claiming to fix SQL and none of them (to my knowledge, I'd love counter examples) have achieved widespread enough adoption to be named a proper successor.<p>Reasons I can guess:<p>- SQL's 50 years of entrenchment- all RDBMSs speak it! Most monitoring systems speak it! Any successor language needs a good interop story so people can use it with their existing systems.<p>- SQL is good enough for run of the mill day to day tasks- and these days by the time I'm lost in recursive queries or window functions, I can ask an LLM for help. Maybe a successor language can win on IDE support or other parts of the dev/agent experience<p>Successor languages also tend to only replace parts of SQL (usually the queries, not the insert/update stuff). I think PRQL does this (once again I'd love to be wrong). Now the dev has to learn two languages?<p>I guess my point is that a successor language, can't just fix the semantic issues with SQL, to be successful it also has to provide large ecosystem (and maybe political) steps up. I didn't see any of that in this abstract, which kills my excitement.</p>
]]></description><pubDate>Thu, 13 Aug 2026 15:23:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49287413</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49287413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49287413</guid></item><item><title><![CDATA[New comment by bbkane in "Flutter 3.47"]]></title><description><![CDATA[
<p>I'm not sure why you're being downvoted, it's a super reasonable question.<p>Iirc the reason is that the Dart team was willing to heavily modify the language and runtime to accommodate the needs of Flutter and the V8 team wasn't.<p>I think this is the video that talks about this: <a href="https://m.youtube.com/watch?v=xqGAC5QCYuQ" rel="nofollow">https://m.youtube.com/watch?v=xqGAC5QCYuQ</a></p>
]]></description><pubDate>Thu, 13 Aug 2026 03:22:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49281436</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49281436</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49281436</guid></item><item><title><![CDATA[New comment by bbkane in "Ask HN: What are you working on? (August 2026)"]]></title><description><![CDATA[
<p>Why macOS instead of Linux? For the extra challenge?</p>
]]></description><pubDate>Mon, 10 Aug 2026 04:35:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49239231</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49239231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49239231</guid></item><item><title><![CDATA[New comment by bbkane in "Pgtestdb's template cloning approach to testing is fast"]]></title><description><![CDATA[
<p>Once you've done it a time or two, setting up the "clone the db"/"erase the db for each test" pattern isn't that much work (plenty of libraries to help too).<p>And of course once its set up for a project, adding more tests to it is pretty straightforward. It is slower for each test run, but I had hundreds of tests running serially erasing a MySQL DB before each one and it only took a minute or so, which was well within my tolerance.<p>So overall I'm a fan; I think there's more benefits than drawbacks. Especially if it's SQLite, where setup is even easier.</p>
]]></description><pubDate>Sat, 01 Aug 2026 18:47:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49137198</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49137198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49137198</guid></item><item><title><![CDATA[New comment by bbkane in "Removing React.js from the codebase and adapting Htmx for UI interactivity (2023)"]]></title><description><![CDATA[
<p>Thank you, will check this out</p>
]]></description><pubDate>Tue, 28 Jul 2026 05:03:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49079577</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49079577</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49079577</guid></item><item><title><![CDATA[New comment by bbkane in "Removing React.js from the codebase and adapting Htmx for UI interactivity (2023)"]]></title><description><![CDATA[
<p>Any chance you could write a hello world repo of this stack and post a link here?</p>
]]></description><pubDate>Mon, 27 Jul 2026 19:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49074332</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49074332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49074332</guid></item><item><title><![CDATA[New comment by bbkane in "Never Enough"]]></title><description><![CDATA[
<p>What countries do this?</p>
]]></description><pubDate>Wed, 22 Jul 2026 19:24:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49012087</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=49012087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49012087</guid></item><item><title><![CDATA[New comment by bbkane in "How Our Rust-to-Zig Rewrite Is Going"]]></title><description><![CDATA[
<p>Thanks, I've starred your repo and I'll come back to it once Roc is more mature!</p>
]]></description><pubDate>Sat, 18 Jul 2026 18:12:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48960600</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48960600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48960600</guid></item><item><title><![CDATA[New comment by bbkane in "An Update on Igalia's Layer Based SVG Engine in WebKit (Reducing Layer Overhead)"]]></title><description><![CDATA[
<p>Were you able to add the tests that stop regressions in the future?</p>
]]></description><pubDate>Sat, 18 Jul 2026 12:07:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48957336</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48957336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48957336</guid></item><item><title><![CDATA[New comment by bbkane in "How Our Rust-to-Zig Rewrite Is Going"]]></title><description><![CDATA[
<p>Thank you grayrest- I didn't realize Roc had to be the one that produced the binary.<p>Could you go into a little more detail about how you decide to split what's in your Rust platform vs your Roc application?</p>
]]></description><pubDate>Fri, 17 Jul 2026 23:53:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48953640</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48953640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48953640</guid></item><item><title><![CDATA[New comment by bbkane in "A Road to Lisp: Which Lisp"]]></title><description><![CDATA[
<p>There's also Rhombus now: <a href="https://docs.racket-lang.org/rhombus-quick/index.html" rel="nofollow">https://docs.racket-lang.org/rhombus-quick/index.html</a></p>
]]></description><pubDate>Fri, 17 Jul 2026 16:17:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48949102</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48949102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48949102</guid></item><item><title><![CDATA[New comment by bbkane in "How Our Rust-to-Zig Rewrite Is Going"]]></title><description><![CDATA[
<p>Tangentially relates, but if any Roc devs are around I'm curious about the use cases for Roc.<p>It's supposed to be a scripting language right you embed into your C ABI right?<p>Do you see it competing with WASM for the plugin use case (i.e. a really large Roc platform)? Why would an app author prefer to expose a Roc layer to their app rather than a WASM layer? With a WASM layer, plugin devs can write in any language.<p>Another use case I've heard from it is as a more app-level language (i.e. a really small Roc platform). Do you see it competing with Gleam for server side http code? Do you see it competing with Elm for client side code?</p>
]]></description><pubDate>Thu, 16 Jul 2026 19:34:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48939192</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48939192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48939192</guid></item><item><title><![CDATA[New comment by bbkane in "Ask HN: What Are You Working On? (July 2026)"]]></title><description><![CDATA[
<p>Is the final reveal a link to this comment?</p>
]]></description><pubDate>Mon, 13 Jul 2026 19:55:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48897911</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48897911</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48897911</guid></item><item><title><![CDATA[New comment by bbkane in "How we can reduce traffic congestion"]]></title><description><![CDATA[
<p>Not an exact solution, but you can set it so it tells you upcoming turns and directions. With that I haven't needed to look at the screen much</p>
]]></description><pubDate>Mon, 13 Jul 2026 04:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48888100</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48888100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48888100</guid></item><item><title><![CDATA[New comment by bbkane in "Amber the programming language compiled to Bash/Ksh/Zsh"]]></title><description><![CDATA[
<p>I clicked the link to see this image and wasn't disappointed. It's fantastic!</p>
]]></description><pubDate>Sat, 11 Jul 2026 20:57:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48875820</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48875820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48875820</guid></item><item><title><![CDATA[New comment by bbkane in "Prefer strict tables in SQLite"]]></title><description><![CDATA[
<p>Yes, the process at <a href="https://www.sqlite.org/lang_altertable.html" rel="nofollow">https://www.sqlite.org/lang_altertable.html</a> is super risky - 12 steps and a giant CAUTION sidebar about the data loss possible if you do it incorrectly.<p>They DO include a nice section at the bottom about why these limitations exist, but I wish they would make the process easier.</p>
]]></description><pubDate>Sat, 11 Jul 2026 20:56:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48875807</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48875807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48875807</guid></item><item><title><![CDATA[New comment by bbkane in "Prefer strict tables in SQLite"]]></title><description><![CDATA[
<p>the SQLite team explains their preference for dynamic types here: <a href="https://sqlite.org/flextypegood.html" rel="nofollow">https://sqlite.org/flextypegood.html</a><p>(please note that I personally strongly prefer static types, but I still found this an interesting read).</p>
]]></description><pubDate>Sat, 11 Jul 2026 20:52:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48875756</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48875756</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48875756</guid></item><item><title><![CDATA[New comment by bbkane in "After 7 years in production, Scarf has reluctantly moved away from Haskell"]]></title><description><![CDATA[
<p>The Cargo folks actually have caching funded for a bit (though I'm not sure how well it interacts with worktrees)! See <a href="https://rust-commercial-network.github.io/rcn/funding-directory.html#build-performance" rel="nofollow">https://rust-commercial-network.github.io/rcn/funding-direct...</a></p>
]]></description><pubDate>Sat, 11 Jul 2026 15:08:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48872699</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48872699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48872699</guid></item><item><title><![CDATA[New comment by bbkane in "After 7 years in production, Scarf has reluctantly moved away from Haskell"]]></title><description><![CDATA[
<p>Jane Street has unlimited engineers and money to do this.<p>At least from the sidelines, it looks like they've built/forked most parts of the OCaml ecosystem to make it work (OxCaml, Dune was built by then, custom profilers, custom networking hardware, etc).<p>Of course a lot of their work is open source and can be used, but I wouldn't assume that it would be worth the effort to do something similar with OCaml yourself. Maybe it is! LLMs go brrr and all that.</p>
]]></description><pubDate>Sat, 11 Jul 2026 14:59:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48872634</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48872634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48872634</guid></item><item><title><![CDATA[New comment by bbkane in "After 7 years in production, Scarf has reluctantly moved away from Haskell"]]></title><description><![CDATA[
<p>At least in C and Go, you can get structs where it's easy to reason about the fields.<p>In Python, a "class" is simply a dict under the covers and (by default at least) you can add attributes to it after definition (as well as things like properties). So it's difficult to reason about what the fields are at any given time. And that's assuming people USE classes! I've seen code where all the state is in one giant ever-changing dictionary and you have to pull out a debugger just to figure out what's IN the thing! God help you if you mispell a key!<p>Maybe you work with better quality code than I do, but I find Go's type system a lot easier to reason about than Python's.</p>
]]></description><pubDate>Sat, 11 Jul 2026 14:53:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48872580</link><dc:creator>bbkane</dc:creator><comments>https://news.ycombinator.com/item?id=48872580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48872580</guid></item></channel></rss>