The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Twitter
» Maybe Pizza?
» Code
» Archive
April 18, 2018

A lot of my friends have been taking up climbing recently, which I think is pretty awesome. It's a great sport that can get you outside in good weather, and even if you only ever do it at a local gym it's still a wonderful opportunity to push yourself physically as well as mentally. It also creates an opportunity for more folks to belay me (I can be selfish about this, right?).

Two Nineteen Forty Four, a short video about Brad Gobright and Jim Reynolds breaking the speed recorde on El Capitan's Nose. If you ever wondered what exactly OS X 10.11 got it's name from, this is it.

Climbing Daily is a nice video to watch when you've got 5-10 minutes that you don't otherwise know what to do with. If you're new to climbing, it's a great little resource to keep up on recent climbing news. If you're not into climbing at all, you're going to be completely lost, sorry.

What has two arms, one leg, and climbs like a mofo? Craig Demartino. This is a great episode from a great climbing podcast, The Enormocast. If you're new to climbing, you should listen to this episode for a couple of reasons:

Firstly, because it'll teach you the importance of clear communication with your climbing partner. Just yelling "OK" isn't good enough, even for veteran climbers. A rhythmic routine, comfort, and complacency can be deadly. A healthy dose of fear and paranoia can save your life (and maybe someone else's too).

The second reason is to experience a relatively graphic description about what can happen when things go wrong.

And lastly, because it's a great story about someone overcoming serious difficulties and pushing themselves beyond what seemed possible. And really, that's what climbing is all about.

March 30, 2018

Apple has just released 10.13.4, which includes support for HEIC / HEIF encoding (support for reading HEIC was introduced in 10.13). And if you've already updated to Acorn 6.1, the option to export your image as HEIC will now appear for you in the Web Export window. How awesome is that?

HEIC is a next generation image format which Apple added to MacOS 10.13 and iOS 11. It is also the new native format for taking pictures with the latest iPhones. It gives better compression for the same image quality when compared to JPEG. It's a nice format.

But what if you want to batch export a bunch of images to this new format? Well, I'm working on something new and awesome in that area, and if you'd like to give it a spin just shoot me an email.

March 30, 2018

LLVM Project Blog: DragonFFI: FFI/JIT for the C language using Clang/LLVM.

FFI stands for foreign function interface, and that's what makes possible for things like CocoaScript to call into C and Objective-C. I'll be watching this project, because it looks like it could be an awesome replacement for what CocoaScript currently uses.

120MP Ought to Be Enough for Anyone

PetaPixel: This is the Power of Canon’s 120MP Camera Sensor

Holy crap, I want one of those raw files.

March 28, 2018

An interesting little article in The New York Times: Resistance Is Futile. To Change Habits, Try Replacement Instead.

"It turns out this experience has a name. It’s called the ironic process theory, and it almost guarantees that your efforts to change bad habits by resisting those habits will fail. Research shows that 'thought suppression has counterproductive effects on behaviors.' If you’ve ever desperately told yourself not to scratch that mosquito bite or buy another cactus on Amazon, I’m sure this comes as no surprise."

March 23, 2018

This is just a quick note to point out, because I wasn't aware or I had previously forgotten, that Quick Look plugins on MacOS are multithreaded by default. This can be turned off however, by setting the property list key QLNeedsToBeRunInMainThread to YES.

A couple of days ago I was sent an Acorn crash report by my fellow dev Daniel Jalkut, which showed a crash in a background thread, from Acorn's Quick Look plugin, when trying to use the File ▸ Open… window. Two things stood out to me at once.

1) Huh, those are multithreaded now?
2) Why is this running in Acorn's address space?

Apparently QL plugins have always been multithreaded, and it's just been pure luck that the crash wasn't happening more often. Well, mostly luck. The crash would only occur when the plugin was rendering two or more Acorn images made from version 1.x, and those images had text layers in them. There aren't many of those images sitting around on people's computers. (The crash was caused by using a shared NSLayout manager on two different threads at once. I've got it fixed for the next Acorn update).

The other surprising thing was that Acorn was crashing at all. I had always assumed that the plugins ran in their own address space? Apparently not always. So if you write a bad Quick Look plugin, you can bring down your own app, (and possibly even someone else's?).

Lesson learned, I now know better, better stronger faster, etc.

Minimalism in Programming

Pointers Gone Wild: Minimalism in Programming

I also (try to) subscribe to this philosophy as much as I can.

Via Brent Simmons at Micro.blog.

Email Sucks

It snowed this morning, but it's all melting now. It's a nice Sunday otherwise and the house is quiet with only myself and the dog. But I've got an email problem which means my inbox is overflowing and I'm close to throwing it all out but first I'll see if I can solve it the reasonable way.

February 16, 2018

Acorn 6.1 has been released.

As described last December, my goals for this release were to move to Metal 2 (on MacOS 10.13+) and to bring back some color to the UI. And I'm happy to say both happened relatively smoothly, and I even added HEIC/HEIF encoding support if you're running MacOS 10.13.4+.

I've also made some tweaks with how brushing works (it's faster now- over 160 FPS on my iMac*) and while exploring that code, I've come up with some ideas that I think will make it even smoother and faster in the future.

For the App Store version of Acorn, I've also removed the option to "purchase" a free trial for $0 via in app purchases. You can still grab the free trial off our website, and if you like it you can purchase Acorn directly from us or from the App Store.

IAPs have a lot of issues on the Mac, and provided a really crappy experience just to enable free trials. Incomplete store APIs (such as receipt refreshing), buggy / hung app store background processes (we were having to tell people to restart their computers if the purchases weren't working), 403 App Store errors when trying to purchase the trial, dialog boxes saying "Are you sure you want to spend $0?" which scared people away, and of course emails from people assuming that I was going to try and charge them after the trial was up and they wanted to cancel their "subscription".

It's not been fun.

If Apple ever implements a real way to have trials in the App Store some day, or makes other changes resulting in a nicer experience for free IAPs, we'll look at bringing it back. But for now I don't think it's worth it for Acorn.

But let's not let that overshadow this nice release. If you're not running it already, go grab Acorn 6.1 and try it out. Better, faster, smoother, stronger. And the full release notes are also available as always.

* I had to disable display sync when brushing to actually get above the MacOS's hard coded clamp of 60FPS. There's a tiny bit of tearing when this is done, but since it's around the size of the brush, it's barely noticeable. I'm curious what the frame rate would be on an iMac Pro.

Random iPhone Issues

This morning I had to reboot my iPhone to clear up some networking issues. I do this about once or twice a week when my download speeds slow to a crawl. A reboot always fixes it.

But when I rebooted my iPhone this time, my AirPods weren't connecting very well and when they finally did the volume was super low and I couldn't pause the audio by tapping the AirPods. Another reboot fixed this problem.

This kind of thing is worrying, and the networking problem showed up last fall with the big iOS release. How do I even file a reasonable radar against these problems?