HN user

searls

486 karma
Posts15
Comments109
View on HN

I've been using agents to develop Mac and iOS apps for over a year now and I would say this post is bad advice, particularly because the excellent Xcode MCP requires Xcode to be running. The MCP tool gives you faster, better access to a number of functions for which xcodebuild is much slower and much chattier and a number of others (like the #Preview generation and rendering) that aren't possible at all while Xcode is closed. Also, in Xcode 27, the MCP & built-in agents are able to drive simulators with DeviceHub extremely well. (If you haven't been following, DeviceHub replaces Simulator.app and as far as I can tell, it's actually scrutable by agents without relying on hacking at the accessibility APIs with tools like axe.)

Xcode MCP is not perfect, by any stretch (stupidly, it issues a permission prompt on every single agent launch—something I defeated with a Keyboard Maestro hack to auto-accept it), but Xcode 27 is such a huge leap forward in the ergonomics of vibe coding with Xcode that I've actually stopped dealing with the MCP and (after an afternoon of futzing) have started using the app's own agent UI for driving Codex because that harness better steers the model to take advantage of the tools available.

All of this redounds to two things: faster feedback and more robust verification. The two things that matter most.

Akira showed me this work in progress in January and I was pretty amazed by it, but I have to be honest—as someone who prides himself on clever OSS repo names, he just absolutely put me to shame. English as a second language but he's a first class punner.

Read this:

Every time any of LinkedIn’s one billion users visits linkedin.com, hidden code searches their computer for installed software, collects the results, and transmits them to LinkedIn’s servers

And thought, "no way in hell this gets by Safari."

And then, under "The Attack: How it Works":

Every time you open LinkedIn in a Chrome-based browser

Shocker. If you use a Chromium-based browser, you should expect to be trading away your privacy, IME.

Kagi Small Web 4 months ago

I'm glad to see this comment and the parent comment and the grandparent comment voted so near the top. I've had the same experience.

I honestly would love to be able to give my Kagi key to the ChatGPT or Claude clients (or more realistically, configure a proxy) just to have it be their primary tool for searches—respecting my site rankings/lists

This feels a bit like when some Hubbers broke off to work on PlanetScale, except without the massively successful, proven-to-be-scalable open source tool to build off (Vitess).

If you're approaching this problem-space from the ground up, there are just so many fundamental problems to solve that it seems to me that no amount of money or quality of team can increase your likelihood of arriving at enough right answers to ensure success. Pulling off something like this vision in the current red-ocean market would require dozens of brilliant ideas and hundreds of correct bets.

This is true of the CLIs that start with `xcode` but not of the CLIs that start with `swift`. As `swift-format` and `swift-test` have come into their own, they're just as reliable as any other language ecosystem. And the difference is indeed staggering. I wrote this guide last summer on extracting all your app's code into a (nonsensically necessary) Swift package dependency simply so you can test it with Swift Testing https://justin.searls.co/posts/i-made-xcodes-tests-60-times-...

This is madness. Some stories actually have good guys. I don't know Adam directly, but we have plenty of second degree connections. I've benefited immensely from his work, have never heard anyone say a single negative thing about him, and I genuinely believe he's done more to push the web forward with Tailwind than the larger players have done (certainly more than Facebook did with React and Google has done with Angular/AMP/etc).

Reflexively assuming that unanimous positive sentiment towards someone is itself an indication of a problem is exactly the reason people are writing posts as recently as (double checks) _yesterday_ titled "65% of Hacker News Posts Have Negative Sentiment, and They Outperform" https://philippdubach.com/standalone/hn-sentiment/

I created POSSE Party because I had similar concerns. Truncation and spacing are highly customizable. You can add a posse:post sidecar element containing JSON that formats exact presentation for each platform exactly as you want it. The built-in truncation can be configured at the account level. And how you count characters, naturally, differs by platform, which the app handles pretty well.

Funny, had it tell me the same thing twice yesterday and that was _with_ thinking + search enabled on the request (it apparently refused to carry out the search, which it does once in every blue moon).

I didn't make this connection that the training data is that old, but that would indeed augur poorly.

At what point in history have you owned a particular piece of hardware for use with a particular piece of never-to-be-updated software and installed a major OEM operating system release a full 7 years after release without issue?

I doubt such a thing has ever happened in the history of consumer-facing computing.

As somebody who picked up Backbone after Sammy and other earlier attempts, when React came along and took the world by storm, I more or less decided to nope out of JavaScript development and go back to Rails.

Every generation needs to learn the same lessons in their own time, but people often asked me why I’d go from speaking at national JavaScript conferences to essentially disappearing. The answer was the overwhelming popularity React and Webpack. Life is short and I don’t have time for this shit.

Whiteboarding with AI 10 months ago

This is a great reminder and I need to start doing this. Bullet point plans aren’t enough for lots of vertical slice work unless it fits really neatly into well known buckets (e.g. Rails MVC)

Certified Shovelware 10 months ago

In early September, Mike Judge's post challenging the productivity potential for coding agents by asking where the supposed AI shovelware is. It's been stuck in my craw for the past couple weeks, because I keep running into programmers of all stripes who refuse to engage with any of this newfangled AI tooling on the grounds that it's useless.

I realize people are all processing the AI boom differently, and there are many valid reasons to be really mad about all of it, but—as someone who's seen his productivity skyrocket with Cursor, then Claude Code, and now Codex CLI—it seems a little ridiculous to claim that the tools simply aren't capable.

Of course, if we never identify which projects were facilitated thanks to coding agents, we'll never have clear social proof of what they're capable of. That's why I put up this /shovelware page on my blog and started hosting a GitHub badge.

Yeah, I went to Dogo Onsen last year and after the fact people told me it was inspiration for Spirited Away and I literally didn't believe them. I've been to countless riverside onsen resorts in the middle of nowhere that look more similar.

Agree this kind of article is really reductive and misses the point, but what're you gonna do.

I had some time to kill a couple years back and asked a Japanese friend where to go from Kagoshima, and she said I could take the ferry to Yakushima, so I walked to the dock, bought a ticket, and booked a minpaku lodge en route.

Turns out, it's the forest with the ancient moss and yakusugi trees from Princess Mononoke. Little did I realize that actually getting there is a pretty involved process, and it's a small miracle I was able to figure out the buses and do the whole hike in jeans and a t-shirt (most people came actually well-equipped to hike it)

Write-up and video: https://justin.searls.co/posts/go-to-yakushima/

Probably the most beautiful place I've ever been on earth.

Page Object (2013) 10 months ago

I was doing a ton of agile, testing, and QA consulting in this era, and I feel like page objects worked well only in very narrow circumstances. Namely, QA departments where quality engineers were tasked with building very large and comprehensive automated UI tests (usually a bad idea) that exercised the same pages many, many times (also a bad idea, b/c extremely slow).

But anyway if you were in that situation, duplication of selectors and labels and other implementation details of a page that were liable to change across a bunch of tests was an _absolute nightmare_ to deal with when you'd get a massive report of failures with bad error messages and often incorrect stack traces. Being able to fix all those errors by changing a selector in a single page object governing all of them was indeed better than the alternative.

In the era of Cucumber, page objects were yet another level of indirection around what was a far-too-indirect process to provide the kind of feedback loop you'd need for it to be valuable. Especially as part of a development workflow.

Thanks!

To answer your question, other tools with package registries typically require accounts, increasingly 2FA, often encourage some sort of signing step. Having GitHub's ToS serve as the source of trust really simplifies things for the Homebrew team

The answer is that we're making it right now. AI didn't speed me up at all until agents got good enough, which was April/May of this year.

Just today I built a shovelware CLI that exports iMessage archives into a standalone website export. Would have taken me weeks. I'll probably have it out as a homebrew formula in a day or two.

I'm working on an iOS app as well that's MUCH further along than it would be if I hand-rolled it, but I'm intentionally taking my time with it.

Anyway, the post's data mostly ends in March/April which is when generative AI started being useful for coding at all (and I've had Copilot enabled since Nov 2022)

Yeah this is a great comment and moves it forward. Will incorporate this into my personalization stanza.

I agree, I think one reason this strategy has not helped me with Claude Code is that it just leads to endless spinning. Not just tool churn, but ten, twenty, thirty revisions of a file listing that should've just been tested and declared done much sooner. By the time Claude gets around to _executing the code_ it's so far gone it can't even get back to successful compilation.

p.s. ChatGPT's hyperbole with this kind of personalization enabled is extremely embarrassing to read. It routinely opens paragraphs with things like "my skepticism is screaming" and I cringe pretty hard as I copy paste the working code underneath it.