I returned from a lovely summer vacation (family, beach) to find that iOS 27 beta has fucked up the transition between split view and compact — I’ve got a boatload of crashes, mostly on Pro Max devices and a few on iPad.
Here’s a representative crash log. The feedback in Te...
It’s been a year since I retired — my last working day was June 6, 2025 — and I like being able to say that I’ve spent the year adding nothing, not one penny, to shareholder value. 🌴
* * *
My hope for retirement was to get a lot of work done on NetNewsWire.
A year ago it ...
I’m psyched for @incanus Justin Miller’s presentation tonight at Xcoders on “Swift Result Builders Case Study: Parsing.” I like writing parsers, and I’m very curious about Swift result builders. Should be a good one!
I’ve known for decades that most of family and friends (except for family and friends in tech) have no idea what I do — they just think it’s math-heavy and mysterious.
Well. It’s definitely not math-heavy and it shouldn’t be mysterious. So I figured I’d write up What I Do.
Even if I never actually send this page around to everybody — because that would actually be kind of weird, like giving them homework to understand me, me who suddenly (suddenly?) seems like a complete narcissist — it was a good exercise for me to do anyway. Especially the part about explaining why I write NetNewsWire.
The title is a little over the top, but barely — we have two fantastic talks this Thursday (March 5) that you should go to. (I’ll be there!)
Laura Savino will present “Learn Out Loud”:
As devs today, we’re supposed to demonstrate immediate skills in tools whose confi...
In my previous post I talk about how I got rid of hundreds of thousands of lines of Objective-C code while at Audible and I explain why keeping Objective-C code around is a terrible idea. And I explain that…
I’m not stuck in the old ways; I’m not the guy insisting on the s...
At my last job, at Audible (hi Audible folks, if you’re reading this!), I led the effort to port our remaining Objective-C to Swift. When I started that project, Objective-C was about 25% of the code; when I retired it was in the low single digits (and has gone even lower si...
I’ve been working on my blog software (a static site generator) and managed to screw things up enough that random old posts got published on the site and in the RSS feed.
As soon as I saw the issue I fixed it, but I’ve been getting email from folks about some of the posts, so I know they got picked up by some RSS readers.
Our family in Minnesota knows that we all worry about them, and so yesterday they sent an email to everyone.
This is surely one of many thousands like it. Maybe you’ve written one of these. Maybe you will write one of these in the future.
All of the below is the email fr...
On the NetNewsWire blog I’ve just announced NetNewsWire 6.2 for Mac and iOS.
This release is almost entirely bug fixes — but it does add a couple small features and one potentially interesting one: it now supports Markdown in RSS (via the source:markdown element). Read all about it on the NetNewsWire blog.
Tim Bray writes, on Mastodon, I think correctly:
The canceling of ICEBlock is more evidence, were any needed, that the Web is the platform of the future, the only platform without a controlling vendor. Anything controversial should be available through a pure browser ...
In the ’90s and early 2000s I worked for UserLand Software — Dave Winer was founder and CEO — on a Mac app called UserLand Frontier.
The app was a scripting system and hash-table-oriented database that powered the early blogging and podcasting worlds. (That sounds grand, ...
We’re adopting Liquid Glass for NetNewsWire 7, which we’ll release some time after the new versions of macOS and iOS come out.
Stuart Breckenridge has been doing great work on getting this done — and he’s written up a couple blog posts (with screenshots!) on his prog...
James Dempsey and the Breakpoints will be appearing in a Breakpoints Jam this Thursday (Aug. 21) at Bale Breaker in Ballard. Free show! Awesome songs!
The event starts at 6 pm and music will start around 7 pm. I’ll be on guitar — and you can expect local superstars Ken Case (keyboard, vocals) and Laura Savino (vocals) plus a special mystery guest or two from out of town.
The show will be mostly acoustic, and it will be outside at the picnic tables. I hope to see you there!
Chatting with my friends about how I hate these fascist assholes doesn’t do a damn thing. Protests work. (Imperfectly, sure, with no guarantees. But it sure beats not protesting.)
I wrote in my love letter to my colleagues at Audible that retirement is coming up — and now it’s here. Today’s the day!
I’ve attended my last meetings. I’ve said my goodbyes. My laptop’s ready to ship back to Audible HQ.
* * *
I started working in 1984, while in h...
To answer some questions people have asked me about my impending retirement…
What does it mean for NetNewsWire?
Good things! I’m not retiring from writing apps — which means I’ll have a lot more time for working on NetNewsWire.
It’s been 15 years since the last tim...
Before I went to work for Audible (five years ago now — time flies!) I had a bias about engineers that worked for large corporations. I assumed that they weren’t as good as indies and engineers at small companies, or else they’d actually be indies or work at small sho...
Thanks to the enterprising and tireless Xcoders organizers (not me — I’m just the PR guy), we’re finally returning to presentation meetings. At long last!
Donald Trump is a gross villain and a traitor to our country. He’s a convicted felon, adjudicated rapist, and head of a criminal organization; he works with criminals and he pardons criminals; he’s a narcissist and violent insurrectionist, racist and misogynist; he’s the mas...
This Thursday, Oct. 17, 2024, is the 20th anniversary of the Seattle Xcoders! We’d love to see you there, at 7 pm at Bale Breaker and Yonder Cider taproom in Ballard.
Everyone is welcome! It’s not just for people who write code — it’s for designers, testers, suppo...
I had thought that NetNewsWire’s conditional GET support was rock-solid — and so my first reaction was to be very surprised to learn that it’s not!
My second reaction was to be appreciative — Rachel’s work here on setting up a test server and reporting on the results i...
It’s not a bug in your RSS reader if recent articles in this feed all suddenly appeared as unread. You may even have seeming duplicates.
Sorry about that! It’s due to my changing settings in my blog generator. Pages now have a .html suffix where before they had none. This change impacts permalinks, which also changes the guids in my RSS feed — and NetNewsWire and other RSS readers use the guid property to identify articles, which means these will show up as new articles.
(Note: I’ve created redirects so that old links pointing in will still work.)
I’ve been getting questions about NetNewsWire’s unavailability on Vision Pro. Why isn’t it there? When might it be there?
Here’s the scoop:
I consider it risky to support an app running on a device I don’t own. Imagine writing a Mac or iPhone app and not actually running i...
I started using Apple computers — and writing code for them, starting with BASIC — 43 years ago, before the Macintosh, even, and I’ve made this my career. I’ve had all these decades to really, thoroughly delight in these incredible machines and software, and to give a little...
Tim Chambers, admin of the Mastodon server indieweb.social, which hosts my personal account and the NetNewsWire account, asked me if ActivityPub support is on the roadmap for NetNewsWire. Great question!
Tim was responding to Richard MacManus:
Are there any RSS Readers ...
Seattle Xcoders meetups are at 7 pm on the first, third, and fifth Thursdays of each month, lately at the Bale Breaker x Yonder Cider Taproom in Seattle, in Ballard.
We meet outside, usually in the uncovered area that has some benches and small gas fire pits. (Not actually ...