The Shape of Everything
A website mostly about Mac stuff, written by August "Gus" Mueller
» Acorn
» Retrobatch
» Mastodon
» Micro.blog
» Instagram
» Github
» Maybe Pizza?
» Archives
» Feed
» Micro feed
March 14, 2025

There's been a lot flying around the social web the past couple of days about Apple completely botching their AI push, and I haven't seen a whole lot of solutions (I fully admit I could completely be missing it). But off the top of my head, here's one idea that I think could really help and reap benefits for both Apple and developers.

Build a semantic index (SI), and allow apps to access it via permissions given similar to what we do for Address Book or Photos.

Maybe even make the permissions to the SI a bit more fine-grained than you normally would for other personal databases. Historical GPS locations? Scraping contents of the screen over time? Indexed contents of document folder(s)? Make these options for what goes into the SI.

And of course, the same would be true for building the SI. As a user, I'd love to be able to say "sure, capture what's on the screen and scrape the text out of that, but nope - you better not track where I've been over time".

And similar to the Spotlight indexing API, developers should be able to provide data to the SI along with rich metadata. Rev the Spotlight plugin API so that it can do more, or come up with a new API.

Is this information collected for the SI going to be the most sensitive bucket of bits on your device? Yes, of course it is.

But give developers the opportunity, and then customers will have something to choose from. Make the Mac and iOS the best platform to build personalized LLMs.

Let the apps die and live based on their own merit and reputation. Apple can build the platform, and maybe expand on it over time and use it themselves.

I want to see the apps that are made outside of Cupertino. I want to see what can happen when developers have a solid foundation to build on.

March 10, 2025

As my usage of LLMs has been increasing lately, I find myself more and more frustrated with Siri, specifically on the Mac.

As a Mac user, I have this incredible wealth of GPU and CPU power, which in turn allows me to run LLMs locally.

A few weeks ago, before a trip out of the country for my daughter's spring break, I set up a local instance of DeepSeek and made sure I could connect to it via Tailscale running on my Mac.

Why did I do this? Two reasons.

The first was because I could and there's something inherently cool and fun about running these models locally. It's a joy to play around with this stuff.

The second was a tinge of paranoia. What if I wasn't able to access the models I usually use from out of the country? LLMs are so useful for so many things, I really don't want to lose access now that I know about them. Yes, I could route all requests through my VPN, but … still, what if I couldn't?

So I can run models locally on my M1 Mac, and while it's not as fast as running it on Anthropic or OpenAI's servers, it was still usable. Which is mind blowing to me. I honestly never expected to see this tech in my lifetime. (Yes, LLMs get a lot wrong, but they also get so many things right and help me out with tedious coding chores).

A week or so ago I was grousing to some friends that Apple needs to open up things on the Mac so other LLMs can step in where Siri is failing. In theory we (developers) could do this today, but I would love to see a blessed system where Apple provided APIs to other LLM providers.

Are there security concerns? Yes, of course there are, there always will be. But I would like the choice.

The crux of the issue in my mind is this: Apple has a lot of good ideas, but they don't have a monopoly on them. I would like some other folks to come in and try their ideas out. I would like things to advance at the pace of the industry, and not Apple's. Maybe with a blessed system in place, Apple could watch and see how people use LLMs and other generative models (instead of giving us Genmoji that look like something Fisher-Price would make). And maybe open up the existing Apple-only models to developers. There are locally installed image processing models that I would love to take advantage of in my apps.

I'm glad I'm not the only one thinking about this. Ben Thompson writes at the end of Apple AI’s Platform Pivot Potential:

This doesn’t necessarily preclude finally getting new Siri to work; the opportunity Apple is pursuing continues to make sense. At the same time, the implication of the company’s differentiation shifting to hardware is that the most important job for Apple’s software is to get out of the way;

This passage isn't the crux of the article, but it really resonated with me, and I hope it does with some folks inside Apple as well.

(Update) Manton Reese is thinking along the same lines: Apple's response to AI:

I’m not sure Apple knows what a big risk they are taking by letting OpenAI and others lap them in the AI race. It’s a risk that will pay off if they can execute. Just as likely, though, we are seeing such a disruption in computing that Apple is vulnerable for the first time in a decade.

March 6, 2025

Acorn 8.1 is out. Full release notes are available as well.

For a .1 update, there are a bunch of new features and improvements. I think I was riding on the high of a great 8.0 release and felt compelled to keep on adding cool stuff.

As already mentioned, Acorn 8.1 includes a new scrub zoom which has been a long-standing request.

Another long-standing request included in 8.1 is the ability to resize selections using on-canvas handles, or via the palette.

Autosave has also had a revamp. There are three options now: "Off", "Native Acorn Images", and "All Images". The default is set to saving native images (.acorn).

In Acorn 8.0 (and previous versions), when autosave was enabled, non-native files (.jpeg, .png) would open without a reference to the original file on disk. This is no longer the case in Acorn 8.1, where non-native files open with a reference to the original file, and pressing ⌘S will save back to the original, regardless of the autosave setting.

Why the change? I found myself wanting autosaving of files where full fidelity would always be preserved (which is what happens when you save .acorn files), but that behavior didn't always make sense when opening a .jpeg file. JPEG files are lossy, so opening and saving the image multiple times would degrade the quality of the image. That's not awesome. And you would also lose the edibility of text and layers.

To make the autosave behavior work with multiple file types took a bit of runtime dynamics, especially since I wanted everything to work seamlessly with the macOS frameworks and versions support. I eventually got there with a bit of help from Dave DeLong, which was much appreciated. I had a solution, but I don't think it was nearly as good as what Dave came up with.

There are also a handful of bug fixes and other improvements that are worth looking over the release notes for.

I've also been regularly updating the documentation, and any changes of note get mentioned in the update log of the docs.

What's next? I plan on giving Retrobatch a bit of attention. It's a fun app to work on as well, and there's always common functionality that can pass back and forth with Acorn.

February 27, 2025

Charlie Monroe: A few words about indie app business:

A while ago, someone asked me for advice about starting an indie app business. So I’d given it some thought and wrote back a few points – and I thought it would be a good idea to put it out here for anyone else who’s thinking about doing this. Let’s start from the beginning.

It's a good read and any indie developer should put it on their list.

This part made me laugh:

Or just have a complete exit strategy – I eventually plan on getting a woodworking workshop and building furniture. Depends on what floats your boat.

Sounds familiar.

via DF.

January 28, 2025

A feature that's been asked for in Acorn, for probably over a decade now, is the ability to scrub zoom. This is where you can click and drag left or right with the zoom tool selected, and your image is zoomed in or out. It's a great feature and I'm happy to say that I've recently added it for the upcoming release of Acorn 8.1. And you can try it out right now if you'd like, by downloading a preview release of Acorn 8.1 from the latest builds page.

There are two ways to toggle this behavior.

  1. Via the Zoom palette: Use the “Scrub zoom” checkbox located right above the image histogram in the zoom palette (see the image to the right).

  2. With a keyboard shortcut: This is for my friends who like to keep their fingers on the keyboard. You can press the ‘z’ key twice in quick succession to toggle the preference on and off.

And while I was diving into Acorn's zoom code, I cleaned up a few things and increased the maximum zoom level to 25,600%, more than double the previous limit.

And here’s a quick tip: Did you know that, in addition to pressing ⌘1 to zoom your image to 100%, you can also double-click the zoom slider handle to achieve the same effect?

You can download a preview of Acorn 8.1 from the latest builds page.

January 9, 2025

Dr. Drang and Allison Sheridan have some great tips for adding Retrobatch droplets to the Finder toolbar:

Allison Sheridan:

My main use of Retrobatch is to make featured images for blog posts that match what most if not all of the social media services will recognize. That droplet thing is money. I keep mine in the toolbar of Finder though since I always have a Finder window open when I’ve made a screenshot.

And Dr. Drang on how to do this:

So I moved the Trim Screenshot app [Retrobatch droplet] into the Applications folder and set about adding it to my Finder toolbar. I control-clicked on the Finder window’s toolbar, selected Customize Toolbar…, and dragged the Trim Screenshot icon into the toolbar, putting it to the right of the folder name. Since I keep a post’s screenshots in the same folder as the Markdown source, I always have that folder open when writing. It’s now a simple matter to drag the screenshot from the Finder window up into the toolbar and drop it on the Trim Screenshot icon.

I've been doing something similar when updating Acorn's documentation recently. I have a subfolder in my ~/Applications folder named RBDroplets, and in there I put a Retrobatch droplet, which is then added to my Finder toolbar. This particular droplet reads in an Acorn image and then spits out JPEG-XL, WebP, and JPEG versions of that file in the same directory the Acorn image is in. Then in my documentation I have a little scriptlet that looks like this:

<% pic(writer, 'preferences_images/prefs_registration', ['webp', 'jxl', 'jpeg'], width="800", alt="Registration Settings"); %>

And it creates a picture HTML tag with the correct images and using the last element in the type array as a default.

Droplets are fun, but it's annoying if you save them to the Desktop or Downloads folder, macOS flips out and throws up a warning if the contents of it change in any way, and it's no longer a "trusted" app.

(Related: if anyone knows how to turn this warning off per app / bundle id, I'd love to know how).

January 6, 2025

I've got two app updates for you today.

Acorn 8.0.1 is out, which is of course about bug fixes that made it past the final release. It always happens, but this time around it was pretty mild. Release notes are avilable.

Retrobatch 2.2.1 is also out, with some RAW image performance improvements, and a couple of new features. Release notes for Retrobatch 2.2.1 are also avialble.

January 4, 2025

MinnMax: Panic, Playdate, Infinite Independence (YouTube link).

A video mostly about everyone's favorite indie Mac company, Panic. It came out a few months ago, but I somehow completely missed it. Cabel Sasser gives a tour of Panic's new offices, shows off their McDonald’s-inspired kitchen, and shows some interesting bits from their Panic History Archive room.

December 16, 2024
Acorn

Acorn 8 has been released!

This is a major update of Acorn, and is currently on a time-limited sale for $19.99. It's still a one-time purchase to use as long as you'd like, and as usual, the full release notes are available. I want to highlight some of my favorite things below.

"Select Subject", "Mask Subject", and "Remove Background" are new commands which use machine learning (or A.I. if you prefer) to find the most important parts of your image, and then perform their respective operations. This has been a request for a long time, and while I was doubtful of its utility, it's actually pretty fun to play with and more useful than I figured it would be. So I'm glad I took the time to integrate it.

You can now set your measurement units to inches, centimeter, or pixels, and it shows up across the tools for your image, not just specific ones. This includes the crop palette, shape dimensions, filter settings… well, pretty much everything. This might be the oldest feature request I've implemented so far. And then related to this, Acorn 8 now has an on canvas ruler which you can use to measure out distances, straighten your image with, or even redefine the DPI.

Look up Table (LUT) support. LUTs are pretty fun, and they work by mapping one set of colors to another, enabling consistent or stylized visual effects. LUTs are used primarily in photography or filmmaking, and you can download and install new LUTs from various places across the internet.

Acorn 8 has the ability to read in a CSV file and it'll dynamically swap in the row values and replace text or bitmap graphics depending on what's in the data file. It's like mail merge, but for images. This is pretty awesome if you have a bunch of templated images you want to create.

Acorn has a new "Quick Processor". It's a quick version of the Shape Processor, where you can duplicate shapes, rotate, transform, and apply other operations to them. You can even use snippets of JavaScript to perform your own magic to shapes, including modifying anchors in bezier shapes. I hope to build a little library of cool JavaScript shape filters for this in the future.

OK, now for some geeky implementation things.

OpenGL has been completely removed and Acorn is 100% Metal. This was nice to do, and I was waiting to drop support for older versions of macOS first, but I'm glad it's finally happened.

Acorn's Shortcuts support has been completely rewritten (in Swift) to use the new App Intents framework. Hopefully this puts Acorn in a good place for the future as Apple adds more Siri integration to apps. Maybe someday you'll be able to say "Open up these selected images in Acorn, crop them to 4x3, convert to PNG, save and close them". That's the dream anyway.

Acorn's internal Bézier implementation has been reworked. This was one of the first things I did, as there was a mismatch in the internal API that Acorn used and what it presented on screen. In the classic implementation of Bézier curves you have a start point, two control points (cp1 & cp2), and an end point. But that's not how anybody actually uses when it's presented on screen. On screen you generally manipulate a single anchor, which can represent both a start and end point, and the previous curve's cp2 and the next curve's cp1. Not to mention all the nuances where a shape can have multiple continous paths, or maybe the path is closed or it's still open. So I wrote a fun shim on top of the Bézier "data" which became the new interface for Acorn's canvas to manipulate anchors and such. I backed it all up with tests and this new model ended up fixing some bugs and making the implementation cleaner. It's always a good feeling when you can get something done like that, even if it doesn't really change anything that the customer can see.

And finally, Acorn's documentation has been converted from custom RTF files (and an app named "FMWrite") into Markdown, which hopefully opens up the door for more integration with templates and services. I certainly have been enjoying seeing diffs between revision commits.

Of course there's more. There's always more. Make sure to tell a friend, and even check out the full release notes.

November 20, 2024

Axios: Apple is selling Apple News ads directly for the first time.

Apple has started selling its own advertising inventory for Apple News, two sources familiar with the effort told Axios. It's pitching new ad units that it hopes will maximize revenue for itself and its publishing partners.

I've been meaning to write about this for a while now, and since this popped up on Axios, now is a good time as ever. So here are my very brief thoughts.

I really think Apple should get out of the ads business, starting with the App Store. I find it corrupting, ugly, distasteful, and most of all an anti-premium experience.

Apple has always tried to project a premium experience, and seeing ads in the App Store just smells of desperation to me. I don't understand why they would want or need them? Apple already takes a commission from apps, and seemingly makes a good amount of money doing so. Having dumb ads feels petty and continues to breed a feeling that Apple will try to make any amount of money any time they can. Can't they just sit back and make something nice without squeezing every dime out of it?

And I, along with many other people, associate ads with tracking. Why mix that in at all when the App Store already has a reputation for harboring scammy apps?

I wish they'd just stop. It's damaging to their reputation and I don't think having ads is worth whatever revenue they are generating from it.

Via Daring Fireball.

November 11, 2024

I've just pushed up Acorn 7.4.6, which is about bug fixes. Specifically Quick Look fixes for MacOS 15 Sequoia (which was kind of tricky to get done right). If you're on Sequoia, make sure to grab this version.

I've also pushed up Retrobatch 2.2, which has a new CSV Reader node. It's basically like mail merge, but for images. Need to make 150 custom invitations as JPEGs for your Grandma's 100th birthday? This is a good way to do it.

Also included in RB 2.2 is a new node called "Dynamic Image Overlay" which makes it possible to insert unique (or randomized) images for each image processed in Retrobatch. When used in conjunction with the new CSV node, you can add custom images to your birthday invitations. Full release notes for Retrobatch 2.2 are available.

And finally, Gus Mueller 50.0 was released today. Besides pushing out software updates, this updated build will be heading to the climbing gym to ascend 50 routes in a day, about 2,500ft of vertical total. We'll see if he survives or not. Version 50.00273 might regret it.

Update: 51 climbs were completed. It was a mix of lead, top rope, and auto-belay. I really wanted to throw in some hard ones, but after about 20 climbs… well the smaller holds on even the 11s were getting tough to hold on to, even though I could pull overhanging jugs just fine. So only a single 12a was done, but it was my last climb and one of the hardest.

Also a big hug and thank you to Caitlin who took time off work to belay me today. It would have been 50 super boring auto belays without you.

Stats!

5.7: 6 top rope
5.8: 6 top rope, 1 lead
5.9: 11 top rope, 1 lead
10a: 4 lead
10b: 3 top rope, 2 lead
10c: 3 top rope, 4 lead
10d: 1 top rope, 1 lead
11a: 5 top rope, 2 lead
12a: 1 top rope

My watch says I burned over 1.8k calories, in two sessions, in about a total of 4 hours. I also ate a whole Detroit style pizza and a burrito. It was a good birthday, and I didn't fall on a single route.

November 6, 2024

Ken White (aka, Popehat): And Yet It Moves:

Trump won yesterday, as I feared he would. I firmly believe America — and likely the world — will get significantly worse for at least a generation, probably more. I’ll spare you, for now, the why. Frankly, I think you either already accept it or will never accept it. The things I care about, like the rule of law and equality before it, freedom of religion, freedom of speech, free trade in service of free people, relative prosperity, protection of the weak from the strong, truth, and human dignity are all going to suffer. Bullies and their sycophants and apologists will thrive.

What should we do?

I have a few thoughts.

November 4, 2024

So I didn't see that one coming.

John Gruber has a good take over at Daring Fireball: Pixelmator Acquired by Apple; Future of Their Apps Uncertain.

Acorn and Pixelmator came out 15 days apart from each other in 2007, and the target market between the two has always overlapped. But even with that I've always been on good terms with the Pixelmator folks. Any time we were both attending WWDC, we would meet up and complain about image APIs or just chat over lunch.

The other major player in this category is Affinity, which was purchased by Canva in March of this year. So it feels strange that Acorn is now effectively the only independent Mac image editor from that era.

I have no inside information on what Apple is going to do with Pixelmator. Will it be discontinued? Will it be part of an Apple One subscription tier? Will it be part of the OS now or folded into Photos? Was this purely a talent grab?

Time will tell.

But today I woke up, and got to work on Acorn. And I'll do the same tomorrow and the day after that.

I enjoy what I work on and I plan on doing it for many years to come. And I truly value my independence. I love being able to work on what I want, and when I want to.

Good things are happening to Acorn these days. I'm wrapping up some great new features in a new release, and if you'd like to test them out, let me know.

My iPhone Battery Life After a Year at 80% Charge Limit

Juli Clover at MacRumors:

With the iPhone 15 models that came out last year, Apple added an opt-in battery setting that limits maximum charge to 80 percent. The idea is that never charging the iPhone above 80 percent will increase battery longevity, so I kept my ‌iPhone‌ at that 80 percent limit from September 2023 to now, with no cheating.

My ‌iPhone 15‌ Pro Max battery level is currently at 94 percent with 299 cycles

Via John Gruber, who's stats are "max capacity: 89 percent, 344 charge cycles".

I kept my phone at 80% charge for most of the year. There were 4-5 times where I let it charge to 100% for things like camping trips or long climbing days. I never cary an extra battery (with the exception of camping where there was no power), and I don't think I once depleted my phone. With a handful of exceptions, I charge via MagSafe.

My day one iPhone 15 Pro stats are: max capacity: 100%, cycle count: 229.

Am I an outlier, or are Gruber and Clover?

Is Safari Now a Bad Web Browser?

Nicolas Magand:

Today, after nearly 20 years of loyalty to Safari, I’m considering switching to another default browser on my personal computer. I mean, why is it so hard to watch a YouTube video without hiccups, and why can I only choose from a selection of 4 search engines, including three Bing-based?

Apple needs to spend more resources on their browser, and find new ambitions for it now that it will be more challenged on iPhones and iPads. The world needs a strong, well-funded alternative to Chrome.

Safari has been pretty sketchy for me as well lately. And frequently videos in YouTube will pause until I move my cursor around (though audio will still play). I've been contemplating moving to Chrome more and more.

Six Colors Turns Ten

I’m doing exactly what I dreamed of doing ten years ago. I got to be home when my son was in middle school and when both my kids were in high school. I get to collaborate on projects with all sorts of great people, including Dan, Myke Hurley and Stephen Hackett, and the entire Incomparable gang.

Congrats to Jason (and Dan!) on making Six Colors awesome for ten years, and more to come.

September 16, 2024
Topping out on Flyboys, an 1800ft climb. That is not me in this photo.
Topping out on Flyboys, an 1800ft climb. That is not me in this photo.

This past Saturday I went up Flyboys, an 18 pitch, 1800 ft, climb in Mazama, Washington. I lead every pitch with my climbing partner Caitlin handling the belaying.

It was pretty awesome. Maybe even epic.

Flyboys has been on my todo list for a long time as it's a pretty moderate route, with easy access, and a ton of bolts. And it's super long, which is its main attraction.

We woke up at 5:30 am I was delighted to see that there was only one party ahead of us at the parking lot — I really didn't want to get stuck behind multiple slow parties. After a 30 minute approach there were at least 10 more cars in the parking lot. It was going to be a busy day here.

At 6:30 we started climbing.

A conga line of folks waiting to get on the climb.
A conga line of folks waiting to get on the climb.

Pitch after pitch, belay after belay, we slowly made our way up. Sadly we didn't get to go as fast as I would have liked, as the party ahead of us was having issues with the climbing (it might have been a little bit above their pay grade). But they were super nice folks so we cheered them on, sent positive vibes, and chatted quite a bit with both them and the party behind us.

Eventually however they got stuck around pitch 12 and asked for some help. We hatched a little plan where I would lead the route and then Caitlin would follow me and place a rope past the section they couldn't manage (climber speak: Caitlin put draws on bolts 3 and 4 so they were essentially on top rope through the crux). This way they could still lead most of the route, but the tricky part would be well protected and they could cheat their way through if necessary.

Side note: a lot of climbing is mental. And when you're 1000 ft above where you started and have been climbing for hours, your brain can act funky even if you're staying hydrated and eating the right food. I think this was the problem they were facing. Had this pitch been earlier I bet they could have made it.

So now we were the first party!

Myself and Caitlin somewhere up the side of a cliff.
Myself and Caitlin somewhere up the side of a cliff.

With nobody to worry about ahead of us I could just climb as fast as I'd like and setup the belay anchors without dealing with another party, and it was just wonderful. I was all smiles.

Party #3 also skipped ahead of the previous group, and caught up with us after a bit. But it was all chill as we were mostly climbing at the same pace.

The view from the top of pitch 18 as I belayed Caitlin up.
The view from the top of pitch 18 as I belayed Caitlin up.

We finished pitch 18' at 5:21pm, for a total time of 10:23:12. This was roughly double what I think we could have done — but the weather was perfect and what else were we going to do that day? Besides eat pizza, because we did do that.

Some fun Apple Watch stats:

watch move stats watch exercise stats

I'm really curious what the spike at 10am was. If I do this climb again (I'm sure I will) I'll take some notes.

The Canary Has Been Dead for a Long Time Now

Jason Snell at Six Colors: Apple’s permissions features are out of balance:

In an attempt to protect Mac users from getting themselves into trouble, Apple introduced numerous permissions pop-ups into macOS Catalina. In the years since, the company has accelerated its approach, adding ever more situations where users must grant specific permission. Often multiple times, in multiple places. (It can be magnified by migrating to a new Mac and getting those requests all at once.)


Now comes the news that things may be getting worse, not better. 9to5Mac reports that macOS Sequoia beta has introduced a new prompt that doesn’t allow a user to permanently grant permission, but requires an occasional re-authorization.

Acorn "records the screen" to sample pixels in other apps when you use the color loupe. This is great if you see a color in a Safari window that you'd like to grab, even if you do have to deal with a scary warning (once) from MacOS. At least it was only once, until now.

I've been running the Sequoia betas for a while now and I thought it was a bug that I was having to open up System Settings every other day to grant this permission yet again. Apparently this is as designed (and since I rebuild Acorn from source multiple times a day it seems to trigger something in MacOS Sequoia that says I need to give permission yet again).

John Gruber at Daring Fireball:

I think it shows just how much care and thoughtfulness went into turning up the dial on these nags that the button label incorrectly capitalizes the “to” in “Continue To Allow”. You can say, well, that’s a little thing. But that’s exactly the sort of little thing that almost never shipped from Apple, even in beta, until the last few years.

This is sad, but not unsurprising given the trajectory of things lately. And if you look closely, you can still see bits of yellow feather intermixed with the rest of the decomposing body.

10 Commandments of Guitar Playing

For the guitar players out there, I'd like to share Captain Beefheart's 10 Commandments of Guitar Playing.

Never point your guitar at anyone
Your instrument has more clout than lightning. Just hit a big chord then run outside to hear it. But make sure you are not standing in an open field.

May 16, 2024

YouTube: 2024 Youth Regional Championships | Vertical World Climbing Team.

My fav climbing gym just put up a little video from the regional campionship they had this past weekend. It was a fun event, where my daughter got to participate and I got a chance to lead belay a bunch of the older kids.

There's a ton of work that goes into setting up all these climbing routes, and this short film only scratches the surface.