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

Retrobatch is the name of my new MacOS app, and it's in public beta right now.

Retrobatch is a node based (not the JS language) batch image processor. A bit like Quartz Composer, and a bit like Audio Hijack. But for images. Lots and lots of images (or maybe a few or even one).

For years, people have wanted me to add batch processing of some kind to Acorn. It's been possible to automate things with JavaScript or AppleScript or Automator in Acorn, but it's never been super easy to set up and you needed to know a bit of programming to get anything really useful done. So I always had ideas in the back of my head for what it would look like.

But to do it right, it would need to be a new app. And then sometime late last summer, I decided it was time and I started working on Retrobatch.

But why node based? Every batch image processor I've come across was linear. You put images in one end, and out they came the other side. But that's so limiting! What if it was possible to take a folder of images and then operate on them twice with the same workflow? What if you could create branches where one would resize images to 50%, and another write out PNG files with the @2x suffix added to the file name? What if you had a workflow that referenced multiple folders which combined into a single output?

And all the possibilities! What if you could read an image from the clipboard, apply a filter to it, and write it to a folder and to the clipboard? What if you had a way to separate out PNG images of a certain size from a folder and only do an operation to those? What if you could script the application in response to new images being added to a shared folder? What about if it could capture all the open windows of your favorite application as images, then apply a filter to those, and then write out a layered PSD of those windows? What if you wanted to apply a machine learning model against your images, to figure out which contains pictures of hotdogs in them, and then perform some action based on that?

There's like, a trillion possibilities. Probably more. Beta testers have been surprising me with interesting workflows.

Anyway, you can do all that with the Retrobatch beta today with a free trial.

When it finally hits 1.0, fingers crossed, there will be two versions of Retrobatch- Regular and Pro. Pro will have all the nodes you see today, including advanced features such as machine learning, changing bit depths and color profiles, processing with AppleScript and shell scripts, rules, and advanced metadata entry. The Regular version will allow you to do the basics like cropping, resizing, watermarks, and so on. And there will be two prices as well. But right now, while it's in beta, you can purchase Retrobatch Pro at a reduced price.

Charging for a beta app? Yep- Retrobatch is very useful in its current state and people have been wanting to give me money already. So who am I to argue? In addition to that, bundles are back at the Flying Meat webstore. If you purchase multiple copies of Retrobatch, or a copy of Retrobatch and Acorn, or any of the above, you'll get a nice discount.

So go grab a beta copy of Retrobatch and send us feedback to help shape what it looks like in the future, or chat about it in the new Retrobatch forums.

And finally, here's a quick video showing off a workflow for making @1x and @2x images with Retrobatch.

April 25, 2018

Rogue Amoeba: The Official Podcaster's Bundle: Real Ultimate Power

"Since way back in the mid-2000s, we’ve been delighted to help folks create their own podcasts. It’s been over a decade since Audio Hijack first added the ability to record both halves of a Skype conversation. In that time, podcasting has flourished, and our product lineup has grown to include audio tools to handle nearly all aspects of a podcasting workflow."

I miss doing bundles, and customers loved them. Some even told me back in the day that they wanted to collect all my apps just because.

Any day now, I guess I'll be starting that up again.

You Put Your Machine Learning in My Inpainting!

NVIDIA is mixing up ML with inpainting, with some neat results.

Inpainting is the technique where missing portions of an image can be reconstructed / guessed at using the surrounding pixels. NVIDIA is now doing this in combination with machine learning. ML is turning up everywhere these days.

April 20, 2018

Here's an idea I've been tossing around lately- Apple should make an Instagram clone for iCloud users.


Instagram is one of the last social networks I use these days, which I actually enjoy visiting. But I always get a little twitchy using it because it's owned by Facebook (which I'm really not a fan of). And the ads are getting pretty annoying these days.

So wouldn't it be awesome if Apple made a privacy focused clone of it? I know Apple doesn't really do well when it comes to social services, but I'm wondering if a simple photo sharing site might not be impossible for them to do well. From the outside, it looks like it's just a scaling problem. You've got photos, comments, and a list of folks to watch. It can't be that hard.

Start small. Make it clean and minimal. Add a developer API. Grow it slowly with beta invites. Why not? It's a pretty good fit if you ask me.

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.