The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Retrobatch
» Twitter
» Maybe Pizza?
» Code
» Archive
Valley Uprising on Netflix

Speaking of climbing vids- Valley Uprising is now available on Netflix. It's a great video about the history of rock climbing in Yosemite. I loved it.

Free Solo Trailer

The trailer for Free Solo is out. It's about Alex Honnold's free solo of El Capitan last year. I want to watch this so bad, but it also makes me want to barf and hide and scream DON'T DO IT at the same time.

1bit Atkinson

Added the following plus some code to make it happen to the new dither node in the Retrobatch 1.1 beta:

enum {
    kOTDitherNodeClassicMac = 1984,
};

Hopefully future dither arguments to vImageConvert_Planar8toPlanar1 don't creep to that number anytime soon.

Mojave Beta Mini Reviews

It's been interesting seeing the differences between the Mojave betas that Apple has been delivering. The swings in graphics performance for Acorn have been pretty dramatic in ways that I've not seen before in previous OS cycles.

Beta 2: Pretty good. B+

Beta 3: Pretty damn good. Acorn (and Metal in particular) was buttery smooth. A+

Beta 4: Crashy and slow. D-.

Beta 5: Decent. B+

Beta 6: Holy hell brushing is slow as crap what happened? F------

Now I need to spend some time with Instruments and other dev tools.

June 26, 2018

Jason Snell and Myke Hurley on the Upgrade Podcast #198: The Mac Is Dead, Long Live the Mac:

"Apple has said that it’s not merging iOS and macOS, but that sneak peek of iOS apps coming to macOS opens up a lot of questions about just what the Mac might look like in five years. Jason’s optimistic, but Mac users may be in for the biggest changes to the platform since the introduction of Mac OS X nearly two decades ago."

It's an interesting discussion, and I really do hope we see things from iOS move to the Mac, touch and Pencil support in particular. And the idea that "folks don't want to use touch on the Mac" is pretty dumb when you realize Apple sells a hardware keyboard for the iPad which works exactly the same way as a touch Mac would.

There are a couple of things that I was surprised the discussion didn't cover though. And what follows below are my half baked thoughts on what those are.

OpenGL and OpenCL were deprecated this past year, but Apple can't really get rid of those frameworks anytime soon because of legacy apps that aren't going to be updated to use Metal. It's a tough spot to be in.

Apple has dropped legacy frameworks very easily in the past though. But how exactly did that happen?

CPU changes. Once when MacOS went from PPC to Intel, and then once when MacOS went from 32 bit to 64 bit. Each time that transition happened Apple was able to say "OK, this legacy stuff just isn't going to be there on the new architecture". And since you had to recompile apps anyway to make them run on the new architecture, developers kind of shrugged and said "Well, yea. That's what I would have done too". It made sense.

So are we about to see 128 bit Intel processors anytime soon, to facilitate this change? I doubt it.

OK then, what about a new architecture?

Oh. Hello 64 bit ARM.

OK, so now we've got a new processor architecture for the Mac and now we need apps recompiled for them. Nimble indie shops and apps like Acorn and Retrobatch would most be certainly there on day one (just like we were for PPC to Intel and 64 bit), but then you've got the giants like MS and Adobe who usually have to be dragged kicking and screaming into the future. What's Apple to do about them?

Well, what if they made it easier for other apps to possibly take their place or at least fill in the gaps until the giants can ship something? Where can we find a billion other developers that already have a codebase that's ready to be compiled on another architecture, because they don't have decades of legacy code to clean up?

And if you look at from this angle, UIKit for MacOS makes perfect sense. Even if it's only to potentially help with a transition, that may or not actually happen. It gives Apple leverage.

And since UIKit on the Mac has already existed for years (presently contained in the iOS simulator), it's probably not as big of an investment on Apple's part as you'd think it would be. For sure, AppKit engineers have performed heroics to make it work as well as it does- but it's not like UIView wasn't already compiling on 64 bit Intel processors. It's there today. It was there 10 years ago.

This could go completely off the rails too.

What if MacOS on ARM only ran these new UIKit apps?

That's a scary thought for this MacOS developer.

But then again, we already have this and it's called iOS on the iPad. And maybe, just maybe, and remember these are half baked thoughts, but maybe Apple is wondering if some Pro users might be better served by MacOS Touch 1.0 running on ARM.

June 22, 2018
tell application "System Events" to tell appearance preferences ¬
    to set dark mode to not dark mode

When you put the above code in an AppleScript file named "Swap Dank Mode" and call it from LaunchBar, you can easily toggle the system appearance in MacOS 10.14 Mojave.

Script found via this handy devforums posting by "pphook".

June 21, 2018

Happy summer solstice everybody! (at least for folks in the northern hemisphere, and for folks in the south… sorry. It's going to start getting brighter for you though).

Today I've got a pair of minor app updates to annouce for you.

First up is Acorn 6.1.3, which fixes a number of bugs including one that stemmed from trying to use QuickLook on a file that was created with Acorn 1.0. For the one or two of you that this was affecting, hurray!

Next up is Retrobatch, which also includes some bug fixes, the beginnings of Voice Over support, performance improvements, and more.

What's next for these apps? Work on Acorn 6.2 will begin shortly, as will Retrobatch 1.1. WWDC introduced some great new APIs that I want to take advantage of (cool new machine learning things), so that'll be a focus- as well as Dark Mode for Acorn and one other major thing I've got planned. Retrobatch will probably also get the Dark Mode treatment, but not until I've done it for Acorn first.

So it's going to be a busy summer, but I'm looking forward to it.

June 18, 2018

Fellow Pacific NW'er John Chaffee has just released WhenWorks:

WhenWorks eliminates the back-and-forth by allowing others to book time with you online, only when you're free and only during time slots you've defined.

Just share your scheduling link in email or on your website, then sit back and let WhenWorks do the rest!

WhenWorks is an iOS app, and you can check it out and use it for free. Looks like a great idea and app.

June 12, 2018

512 Pixels on Dark Mode:

"As we’ve seen, this is far from a mere inversion of the default Appearance. Apple has gone through and fine-tuned the smallest details to make this work.

"For example, the window shadows are different between the Light and Dark Appearance. In Dark Mode, they are a little crisper and slightly more opaque, complete with an inner stroke around the edges of windows to help them appear more defined.

"Another example of this is Desktop Tinting, a technique Aqua uses to alter the grays used in Dark Mode to be more harmonious with the current Desktop picture."

When Dark Mode was first introduced in the keynote, up on the big screen, I was pretty disappointed. It looked incredibly garish. But after installing Mojave and trying it out in person, I've decided I really like it. I've got a bunch of work to bring Acorn and Retrobatch up to speed with it, but I think it'll be worth it.

May 30, 2018

All the newsletter emails have gone out, and the press releases, and the quick updates to the website and store, and I've even started on version 1.0.1 to fix a crasher. Which is all to say Retrobatch 1.0 was released yesterday!

We've been flooded with ideas and inquiries, which is always a good sign. And the sales aren't too bad either. Thanks to everyone who's tried it out, and the nice write-ups it's received, and if you haven't checked it out already- why not?!

There were times in the development of Retrobatch that I wasn't so sure it was a great idea to spend this much time on a new and unproven app. I usually start a little smaller. And it was supposed to ship last September. But the original beta testers were enthusiastic about it and finding interesting new things to do with it I hadn't considered. I was also finding areas of cross pollination between Retrobatch and Acorn (and which is only going to grow in the future).

For instance, the initial work to bring Metal to Acorn 6.1 was originally done in Retrobatch. Since I had no legacy code to worry about with Retrobatch 1.0, I started with Metal from the beginning. And with that experience I was able to figure out how I could move code around and refactor Acorn in an intelligent way to bring Metal rendering there. And of course a number of the nodes in Retrobatch are obviously derived from Acorn.

And all the experience with working with wide gamut images and deep colors in Acorn meant that I had Retrobatch able to flawlessly handle those types of images from the start.

It's nice having two apps that nicely dovetail each other, and can build on each other.

In the past when I would switch from working on VoodooPad to Acorn, it would sometimes take me a couple of weeks to get my brain in the right mode for dealing with the different problems. And while there's still a bit of a context switch when moving from Retrobatch to Acorn, it's not nearly the same as it was with VP. The architectures are very different between Retrobatch and Acorn, but they both use the same core libraries and that really helps.

So what's next? I've already started on Retrobatch 1.0.1, and I'm going to start working on Acorn 6.2 as well. But I've also already started on a number of new nodes for Retrobatch (like levels, compositing, writing animated gifs) so there will probably be a RB 1.1 release sooner rather than later.

And next week is WWDC, so I've got a little bit of celebrating to do there first.