
My system tests fail all the time too, but I didn't realize I was supposed to write a blog post every time CI goes red world.hey.com/dhh/system-tests-have-failed-d90af718
My system tests fail all the time too, but I didn't realize I was supposed to write a blog post every time CI goes red world.hey.com/dhh/system-tests-have-failed-d90af718
Boy I hope iOS 18 fixes this bug. If you have the beta installed, has Photo Shuffle for Lock Screen been refreshed at all? reddit.com/r/ios/comments/yn5gog/missing_people_in_lock_screen_photo_shuffle/
Yesterday in the Platform State of the Union, Apple celebrated 10 years of Swift and then in the very next slide announced they finally built a testing framework for it.
Digging in more, I found this forum post that a "vision document" (I'm not familiar with Swift people's vernacular for this stuff) for testing direction had been accepted.
Anyway, this is all interesting in its own right and something I'll be following generally, but I have to say that for such a broad and important topic, that forum thread had an absolutely incredible time-to-mocking-derail metric. The very first reply is about mocking and then seemingly half of the subsequent posts in the thread are people spouting off their personal opinions on mocking instead of any of the more important stuff.
I don't claim to be an expert in very much, but having built several mocking frameworks, spoken about mocking practices (including a stealth mocking keynote at RailsConf and a not-so-stealth mocking closing talk at JSConf), and even named the company I co-founded after a mocking term, I feel like I have some authority to say the following: boy howdy is it a bummer that most developers only understand mocking as a utility and lack any comprehension of how to deploy mocks in a well-defined, consistently-executed software development workflow.
I'm very happy to have nailed an approach that works really well for me, but I'll probably always view it as a major failure of my career that I was never able to market that approach effectively. Even now, I don't have a single authoritative URL to point you to for my "Discovery Testing" approach that would provide a clear explanation of what it is, why it's good, and how to use it. And for me personally, the moment has probably passed and I just need to live with that failure, I imagine.
One of the things I think about a lot with respect to testing practices (including test-driven development) and their failure to really "stick" or spread more broadly is that they transcend any one testing framework or programming language. As a result, consultants like me were so absorbed just porting slightly-different versions of the various tools we needed to every new language that there's no such thing as a single README or book that could explain to a normal developer how to be successful. I tried to write a book once that would serve as a tabula rasa across languages and I almost immediately became trapped in a web of complexity. Other programming idioms and methods that apply across languages are similarly fraught, but mocking's relative unimportance to the primary task of shipping working software probably doomed it from the start.
Anyway, it's cool that mocking will be possible in Swift Testing.
If you've ever felt distracted and thrown your phone in your bag so you can focus on your Mac, you're going to need a new strategy to achieve self control thanks to macOS Sequoia's new iPhone Mirroring feature.
Saving this for posterity as it seems likely Apple is 90 minutes away from announcing a first-party Calculator app for iPad. Only took 14 years.
If you're the DOJ, this is definitely a sign that they're abusing their market position and stifling competition!
If you're anyone else, you're amazed that Apple let them use an icon so evocative of their own Calculator app on iPhone.
When it comes to AI, it seems like the vast majority of people I talk to believe large language models (LLMs) are either going to surpass human intelligence any day now or are a crypto-scale boondoggle with zero real-world utility. Few people seem to land in-between.
Not a ton of nuance out there.
The truth is, there are tasks for which LLMs are already phenomenally helpful, and tasks for which today's LLMs will invariably waste your time and energy. I've been using ChatGPT, GitHub Copilot, and a dozen other generative AI tools since they launched and I've had to learn the hard way—unlike with web search engines, perhaps—that falling into the habit of immediately reaching for an LLM every single time I'm stuck is a recipe for frustratingly inconsistent results.
As B.F. Skinner taught us, if a tool is tremendously valuable 30% of the time and utterly useless the other 70%, we'll nevertheless keep coming back to it even if we know we're probably going to get nothing out of it. Fortunately, I've been able to drastically increase my success rate by developing a set of heuristics to determine whether an LLM is the right tool for the job before I start typing into a chat window. They're based on the grand unifying theory that language models produce fluent bullshit, which makes them the right tool for the job when you desire fluent output and don't mind inaccurate bullshit.
Generative AI is perhaps the fastest-moving innovation in the history of computing, so It goes without saying that that everything I suggest here may be very useful on June 9th, 2024, but will read as a total farce in the distant future of November 30th, 2024. That said, if you've been sleeping on using LLMs in your daily life up to this point and are looking to improve your mental model of how to best relate to them (as opposed to one-off pro-tips on how to accomplish specific tasks), I hope you'll find this post useful.
So here they are, three simple rules to live by.
WWDC is right around the corner, and I wanted to do a predictions podcast before Monday's keynote, but then Mark Gurman went and just read back literally everything that's going to happen.
So I guess let's talk about that or something.
As always, I love love love to receive your e-mail even though it's hard to get through very many of them on the program. Please know that your comments and questions really bring me a lot of joy and that you should e-mail whatever pops into your head to podcast@searls.co. Quick. Now. Don't think, hit send.
Okay, and now for some 👐Show Notes👐:
Every year, Japan's convenience stores and packaged food companies attempt to sate the nation's voracious appetite for novelty goods by releasing a slew of products that you or I might consider weird as fuck.
I just spent a month there, and snapped a photo of my favorite head scratchers:
If it's not clear what you're looking at, here's a brief rundown of what each of these is (or purports to be):
"Your newsletter actually makes me look forward to reading my email"
– Aaron ✨tenderlove✨ Patterson (who I can attest does NOT normally look forward to reading email.) justin.searls.co/newsletter/
Humane, of overpriced AI tchotchke and parting-foolish-VCs-with-their-money fame:
Our investigation determined that the battery supplier was no longer meeting our quality standards and that there is a potential that certain battery cells supplied by this vendor may pose a fire safety risk.
I would normally be worried about people's safety here, but I'm pretty confident that all of Humane's customers had already stopped using it months ago.
Just published my monthly Searls of Wisdom newsletter to recap the month of May. A year-and-change in, I think I'm starting to get the hang of the format and I hope folks enjoy it.
If you subscribe now, you'll still receive it. justin.searls.co/newsletter/
Deeply satisfying that Google automatically sent this e-mail to my spam folder.
Bought a Mac Studio to have as my always-online home server, so that it would run critical batch processes, sync and backup my iCloud Photos, etc.
Came home after a month in Japan and find the Mac Studio has been beachballing for over two weeks. Bonus: it's now burned into the monitor, which never turned off. Neat.