<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: gwking</title><link>https://news.ycombinator.com/user?id=gwking</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 13 Oct 2026 04:12:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gwking" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gwking in "Codex CLI installs a persistent, self-updating background daemon by default"]]></title><description><![CDATA[
<p>It is hands down the most user hostile UX I put up with. The fact that I put up with it speaks volumes about the value proposition that the underlying models bring to the table.<p>I’m in the process of dumping codex for more open harnesses that don’t add problematic new features every week. Because Anthropic insists that I have to use their harness with the subscription, eventually I’m either going to wrap `claude -p` to get away from the crappy TUI or else I’ll just unsubscribe and use other models. Their bad UX has alienated me as a paying customer.</p>
]]></description><pubDate>Mon, 12 Oct 2026 20:25:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=50062511</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=50062511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50062511</guid></item><item><title><![CDATA[New comment by gwking in "The GitHub wiki is an anti-pattern (2022)"]]></title><description><![CDATA[
<p>The last paragraph says:
> At some point your docs will outgrow a single folder, and then all bets are off. You’ll want a separate repo with its own build process...<p>My question is, why is this taken as a given? Is it so hard to have docs and code live together in version control after a certain scale? If so, what is the specific problem and what is the cause?<p>I ask because I've never been that satisfied with the various ways I've tried to organize projects in git. Recently I've been trying to keep the source, tests and docs together in the same tree so that changes are more localized. It seems to be helping me keep track of things, especially with coding agents so eager to make changes all over the place. I find their proclivity to repeat the same idea in multiple locations (agent instructions, docs, docstrings, help strings, comments) especially problematic.</p>
]]></description><pubDate>Wed, 23 Sep 2026 14:35:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49816842</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49816842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49816842</guid></item><item><title><![CDATA[New comment by gwking in "Claude Opus 5.5"]]></title><description><![CDATA[
<p>I appreciate humor here, but there are now a dozen of these comments on every thread about Claude. They no longer adding anything substantial and dilute the discussion.<p>I don't mean to pick on this comment in particular. The majority of my work day is now spent reading AI generated text, and I look at HN (too much!) because I want to read human commentary. Humans pretending to be obnoxious AI on repeat is net negative to say the least.</p>
]]></description><pubDate>Tue, 22 Sep 2026 16:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49804265</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49804265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49804265</guid></item><item><title><![CDATA[New comment by gwking in "Sublime Text Build 4213"]]></title><description><![CDATA[
<p>I started using Zed daily about 6 months ago after 10 years of VS Code. VS Code was having idiotic regressions (like randomly inserting a copy of the final line of a file on save) while they were busy pumping out AI features.<p>Turns out, Zed is also busy pumping out AI features and the code editing experience is degrading. I'm actively shopping for a replacement.</p>
]]></description><pubDate>Mon, 21 Sep 2026 18:52:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49791639</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49791639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49791639</guid></item><item><title><![CDATA[New comment by gwking in "Homebrew 7.0.0"]]></title><description><![CDATA[
<p>You can download Xcode 27 RC now from <a href="https://developer.apple.com/download/applications/" rel="nofollow">https://developer.apple.com/download/applications/</a>.</p>
]]></description><pubDate>Sun, 13 Sep 2026 15:49:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49685329</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49685329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49685329</guid></item><item><title><![CDATA[New comment by gwking in "Claude Fable 5.1 and Claude Mythos 5.1"]]></title><description><![CDATA[
<p>I switched to using Codex for the last two weeks, and while the prose has been better, there have been a lot more technical oversights. I'm now having fable review codex commits and it finds deep issues. I'v also done the reverse where opus/fable do the work and then I have codex revise all of the prose prior to reading anything myself. This has also been effective; I'm not sure which is the better approach.</p>
]]></description><pubDate>Tue, 01 Sep 2026 20:51:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49528029</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49528029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49528029</guid></item><item><title><![CDATA[New comment by gwking in "Htmx 4.0"]]></title><description><![CDATA[
<p>I'm so pumped for v8!</p>
]]></description><pubDate>Fri, 28 Aug 2026 17:10:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49481584</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49481584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49481584</guid></item><item><title><![CDATA[New comment by gwking in "We tracked down the 16-year-old WAL-reset SQLite bug"]]></title><description><![CDATA[
<p>I meant does the rare SQLite bug tend to manifest in litestream for the same reason it showed up in Tailscale.</p>
]]></description><pubDate>Thu, 13 Aug 2026 01:55:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49280981</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49280981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49280981</guid></item><item><title><![CDATA[New comment by gwking in "Tracking down the 16-year-old WAL-reset SQLite bug"]]></title><description><![CDATA[
<p>I wonder if this also affected litestream disproportionately, because litestream also inserts itself into the checkpoint process.</p>
]]></description><pubDate>Wed, 12 Aug 2026 18:22:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49276605</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49276605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49276605</guid></item><item><title><![CDATA[New comment by gwking in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>I wonder if making the index uppercase is strictly better in this sense, or if both upper and lowercase have chars that take more bytes.</p>
]]></description><pubDate>Wed, 05 Aug 2026 00:49:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49177267</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=49177267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49177267</guid></item><item><title><![CDATA[New comment by gwking in "Building and shipping Mac and iOS apps without opening Xcode"]]></title><description><![CDATA[
<p>I have one weird trick for people who are exploring this vein. I last opened an Xcode project about five years ago so I could be way behind the times.<p>Having spent many years fighting with Xcode professionally, I was thrilled when swift build came out, and then appalled at how badly Xcode adopted it. Eventually I realized that you can set up your entire app as a swift package, and then the Xcode project with a single main source file that calls some `app_main()` (or whatever you want to call it) function in your package.<p>I cannot remember exactly but there was something annoying about setting up a new project; I think by default Xcode assumes that you want a swift package to be treated as a dependency that is checked out from git, but there was a way to drag and drop a local dependency in the same project directory and then it worked.<p>What this buys you is that files are no longer tracked by Xcode, so renames/merges no longer trigger project.pbxproj surgery. Instead you specify the swift package directories and are done.<p>I used this for some large personal projects and was very happy with it.<p>At one point I also wrote my own build tool that imitated all of the steps that Xcode took so that I could truly be Xcode-free. That also worked (and was not even that hard) but I went back to Xcode because the debugger UI was better than what I could get out of VS Code at the time, and especially because I was playing around with the Metal debugger.</p>
]]></description><pubDate>Mon, 13 Jul 2026 22:46:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48899939</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=48899939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48899939</guid></item><item><title><![CDATA[New comment by gwking in "Building and shipping Mac and iOS apps without opening Xcode"]]></title><description><![CDATA[
<p>I've been working on a wrapper harness that runs claude as a separate user named `agent`. I tried this about a year ago and couldn't get it to work because of OAuth and the keychain, but took another pass recently and claude had enough self-knowledge about recent changes to say we could do it with CLAUDE_CODE_OAUTH_TOKEN. It has required building a some tooling around permissions setup with ACLs but it works on macOS today.<p>In terms of risk, I see it as halfway between stock claude with the sandbox and full-blown container or machine isolation.<p>I was recently thinking that as Claude's own sandbox gets better I'm doubting the ROI on my belt-and-suspenders project, but your comment reminds me why I'm doing it.<p>It is not currently published open source but I'm happy to talk about it with strangers.</p>
]]></description><pubDate>Mon, 13 Jul 2026 22:31:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48899809</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=48899809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48899809</guid></item><item><title><![CDATA[New comment by gwking in "Is Meta destroying its engineering organization?"]]></title><description><![CDATA[
<p>The grocer on my block is so tiny that I hit the max zoom before it shows up. If you pan around fiddle I can occasionally get it to appear, but it effectively does not exist according to google maps.</p>
]]></description><pubDate>Wed, 17 Jun 2026 12:30:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48569483</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=48569483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48569483</guid></item><item><title><![CDATA[New comment by gwking in "SQLite is all you need for durable workflows"]]></title><description><![CDATA[
<p>The suitability of Litestream for production disaster recovery is also an open question in my mind. I used 0.3.x for several years and when I tried to upgrade to  the 0.5.x series there were runaway disk usage problems that would have caused downtime had they made it to prod. As far as I can tell these have not been entirely addressed, although recent bug reports suggest that they might be getting closer.<p>I want to love it, and I don't take open source projects like this for granted. But during my last production upgrade I chose to decommission Litestream in favor of a dumber, less granular solution using sqlite3_rsync and nightly backups because there is no point in using a backup system that is not rock solid.</p>
]]></description><pubDate>Fri, 29 May 2026 18:24:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48327247</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=48327247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48327247</guid></item><item><title><![CDATA[New comment by gwking in "Profiling.sampling – Statistical Profiler"]]></title><description><![CDATA[
<p>The simple answer is, I choose to use Python because I am productive with it. I get a lot done compared to the other languages I have tried. Performance is almost never the limiting factor in my work, nor has it been for the vast majority of the work I've ever been witness to. When it is, it comes up in very particular circumstances, and can usually be fixed algorithmically. Indeed, that is the situation where I have used profilers.<p>The fact that the base language is an order of magnitude (or two!) slower has almost never mattered. If my work gets to the point where it does, and I have an excuse to go mess around with a rust extension or some cool optimized library, things are going very well.<p>I've been professional developer for over 20 years now, and I've read this forum obsessively for much of that time. I've seen people write things like, "Most engineers would kill for a 5% speedup" and I think, on what planet? Most engineers have much larger problems that cannot be so easily quantified. Come to think of it, I think that there is an allure to performance optimization due to the fact that it can be so easily quantified.</p>
]]></description><pubDate>Tue, 12 May 2026 15:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48109870</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=48109870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48109870</guid></item><item><title><![CDATA[New comment by gwking in "Nucleus Nouns"]]></title><description><![CDATA[
<p>Interesting that "verb" does not appear in the posted article. I immediately thought of Yegge's kingdom of nouns blog post, which is 20 years old last month! I read it a long time ago and it made an impression on me.<p><a href="https://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html" rel="nofollow">https://steve-yegge.blogspot.com/2006/03/execution-in-kingdo...</a></p>
]]></description><pubDate>Wed, 15 Apr 2026 00:47:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47773326</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=47773326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47773326</guid></item><item><title><![CDATA[New comment by gwking in "How much linear memory access is enough?"]]></title><description><![CDATA[
<p>I’ve casually experimented with this in python a number of times for various hot loops, including those where I’m passing the chunk between c routines. On Apple M1 I’ve never seen a case where chunks larger than 16k mattered. That’s the page size, so totally unsurprising.<p>Nevertheless it’s been a helpful rule of thumb to not overthink optimizations.</p>
]]></description><pubDate>Sat, 11 Apr 2026 20:06:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47733548</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=47733548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47733548</guid></item><item><title><![CDATA[New comment by gwking in "Go hard on agents, not on your filesystem"]]></title><description><![CDATA[
<p>I tried this with Claude code on macOS. I created a new agent user and a wrapper do run Claude has that user, along with some scripts to set permissions and ownership so that I could run simple allow/deny commands. The only problem was that the fancy oauth flow broke. I filed an issue with Anthropic and their ticket bot auto closed it “for lack of interest” or whatever.<p>I fiddled with transferring the saved token from my keychain to the agent user keychain but it was not straightforward.<p>If someone knows how to get a subscription to Claude to work on another user via command line I’d love to know about it.</p>
]]></description><pubDate>Sat, 28 Mar 2026 14:41:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47555036</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=47555036</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47555036</guid></item><item><title><![CDATA[New comment by gwking in "Python 3.15's JIT is now back on track"]]></title><description><![CDATA[
<p>My understanding is that many extension modules are already written to take advantage of multithreading by releasing the GIL when calling into C code. This allows true concurrency in the extension, and also invites all the hazards of multithreading. I wonder how many bugs will be uncovered in such extensions by the free threaded builds, but it seems like the “nuts” choice actually happened a long time ago.</p>
]]></description><pubDate>Wed, 18 Mar 2026 02:12:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47420863</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=47420863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47420863</guid></item><item><title><![CDATA[New comment by gwking in "Reverse-engineering Viktor and making it open source"]]></title><description><![CDATA[
<p>From one “old guy” to another:<p>PJ = private jet<p>Diamond hands and to the moon are crypto trader slang<p>Makes me laugh answering this question, because the meaning is all there if you skip over all the meme words.</p>
]]></description><pubDate>Tue, 17 Mar 2026 18:14:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47416231</link><dc:creator>gwking</dc:creator><comments>https://news.ycombinator.com/item?id=47416231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47416231</guid></item></channel></rss>