February 22, 2024
Acorn 7.4.4 is out, and it's a free update for anyone with an Acorn 7 license.
As previously mentioned, I'm not incrementing Acorn past the 7.4 number ('74 was a good year for me). But that doesn't mean I'm not adding new features, and this release has some. Here are some highlights straight from the release notes:
Super Resolution ML resizing. This new option in the Image ▸ Resize Image… menu item lets you increase the size of your image up to 4x using Machine Learning. Or is it AI now? I don't know and don't care, but it's pretty awesome! It packs a ton of crazy statistics and math into a simple little dropdown menu. Give it a shot for your photos, you won't be disappointed. (Super Resolution is for MacOS 12 or later only).
Stroke Selections! Finally. You can now perform this long requested feature via the Select menu, and even works with Magic Wand selections (MacOS 11 or later only). Change your stroke size, blending, anti-alias or not, and even add a fill.
You can now convert Magic Wand selections to shape layers. This is also super awesome! If you've got a fun outline of something that you want to convert into a shape, this is the way. (MacOS 11 or later only).
New "Simple Film Grain" filter, which will add a grainy overlay to your image. Just like Grandpa's photos used to have.
Other Interesting things:
- The Text Palette now shows what the font looks like in the font pop-up menus.
- Holding down the backslash key ('') will temporarily switch off any layer filters you have on selected layers.
- The tool palette will now dim tools that you can't use in modal operations (such as when cropping, scaling and rotating, and similar operations).
- Neat new trick with the Shortcuts Crop action: If you choose "Custom" as the position and put in negative values, the canvas will expand instead of shrink. A negative X value will increase the size on the left, Y on the bottom, Width on the right, and Height for the top.
- Various little improvements to the File Info window, including shortcuts (Command 1-4) to switch between the sections.
- Double clicking on a non-bézier shape with the anchor select tool will now convert it to a bézier shape (previously this only worked with the move tool (shortcut key 'v').
- A new Shortcuts action to open images in Acorn.
- Various improvements to Acorn's SVG importer.
- The AppleScript command do filter name "Your Filter Preset Name Here" will now work with filter presets as well. This is in addition to the call filter preset with name command. There is a story behind this. It isn't very good.
And of course, I have squashed some bugs as well, and you can read about those in the full release notes.
Retrobatch has been getting most of my attention lately (the upcoming 2.1 release includes LUT support!) but working on Acorn always brings joy, and I have lots more fun things planned for in the future.
January 24, 2024
Today marks the 40th anniversary since the introduction of the Macintosh. I can't let it go by without saying something. After all, my current livelihood would be impossible without it.
I've been developing apps for the Mac for most of its life now. That's crazy. And the best thing about the Mac turning 40? I can easily see it going for at least another ten. It didn't always seem that way, but MacOS is an incredibly robust OS and so many applications couldn't be possible without it. How long will it go? Everything ends at some point, but the Mac just keeps on keeping on. I'm hopeful and excited about its future.
Happy Birthday little guy.
November 7, 2023
In case you're not aware, Retrobatch is a node based batch image processor, which means you can mix, match, and combine different operations together to make the perfect workflow. It's kind of neat. And version 2 is even neater.
Here's the quick stats for the impatient:
Retrobatch 2 requires MacOS 12 or later and it runs on Apple Silicon or Intel. It comes in 2.5 flavors:
- Retrobatch (regular): currently $19.99 one time fee. Comes with all 2.x upgrades.
- Retrobatch Pro (App Store): $24.99 a year with a free 7 day trial. It also has some features missing because of App Store restrictions - but that may not matter to you.
This is the first time Retrobatch has been on the App Store, so this is … slightly exciting? We'll see what happens. It's also nice being able to offer upgrade pricing on my own store again without feeling like I'm penalizing App Store folks.
Gus's Favorite New Features
The full release notes are available, but here's what I think are the coolest features:
- Command Bar: This is just like the Command Bar in Acorn, but I find it way more useful in Retrobatch for adding new nodes to the canvas. I no longer search through the little catalog - I just type and press enter.
- Dark Mode: It's nice? And it's about time it showed up?
- Larger Previews: The new way to view large previews is super easy. Select a node(s), hit the spacebar. A sheet comes up with node properties on the left, and a large preview on the right. It's a great way to dial in node properties.
- Super Resolution ML Scaling node: Retrobatch has a node which uses the Beby-GAN model to do 4x scaling of your images. This was a fun little project because the original model I used was over 60MB, but using Apple's coremltools I was able to quantize it down to just under 17MB. Machine learning models are awesome, but they can be pretty big. And going from a 32 bit model down to 8 bits didn't seem to impact the fidelity of what was generated.
- Photos Export node: This node replaces the previous "Image Library" node because of deprecations by Apple (they want me to stop using older APIs). This new node is more refined and lets you export your photos from your Photos library, and even download full resolution images from iCloud. I have a couple of interesting samples in the documentation on how to use it:
- Acorn Maker node: It makes native layered Acorn images. Combine that with the updated screenshot node and you can make layered screenshots straight from Retrobatch.
- Shortcuts Support: It's a simple implementation which lets you run workflows with gathered images, but since Shortcuts has system wide support, you can now make a workflow and run it straight from the Finder's Quick Actions menu.
The new documentation has more samples than ever. There are so many things you can do with Retrobatch, and I really need to start showing those things off.
I've also started a little "Technotes" section where I hope to expand on little things in Retrobatch which are important to know about, but don't necessarily fit in the greater documentation.
Retrobatch is obviously not Flying Meat's most important app (Acorn would fill that role), but I really do like working on it and there's a bunch more ideas that I want to implement. I feel like Retrobatch is an app that the Mac needs, and it makes me incredibly happy to read all the nice letters I get from folks when they figure out how to use it in their daily work.
Five years after Retrobatch 1 shipped, I'm happy to see version 2 out in the world. And I can't wait to see what folks are going to do with it.
October 30, 2023
five watt world has a great 18 minute video on the history of Fender guitars made in Japan : Fender Japan: A Short History
One of my favorite guitars, a '62 Stratocaster reissue, was made in Japan. It's always been exceptionally good for what I paid for it, and I can still remember the first time I plugged it into an amp and played it. There was just something special about it, and I couldn't believe someone would have traded it in (I got it used, and made an even trade with a more expensive guitar for the swap. I just had to have it).
Years after I acquired the strat (and decades ago at this point), I was reading an article about older Japanese reissue strats, and that some folks were trying to pass them off as original 60's. There was really only one external sign on the guitar that gave it away - which was a "Made in Japan" sticker under the finish at the heal of the neck. Apparently people would try and remove it, but it was placed under the finish so it was impossible to remove without damaging the guitar.
I walked over to my guitar, flipped it over, and saw right away that someone had tried to scratch off the "Made in Japan" sticker. It made me laugh.
Sadly the neck warped sideways a number of years ago, so it's no longer "original". I've since put on a matching neck and still play it all the time.
Stu Maschwitz on ProRes Log Video Recording With iPhone 15 Pro
Stu Maschwitz: Log is the “Pro” in iPhone 15 Pro:
The iPhone 15 Pro and Pro Max feature log video recording. This is a big deal, but there’s already some confusion about it. Where consumer devices and pro video overlap, that’s where the Prolost Signal gleams brightest in the night sky. So let’s get to work.
First, what exactly is log? It’s short for logarithmic encoding, which is a math thing, but what does it mean to videographers?
It really boils down to two things: Log is flat, and log is known.
I'm not really a video person, but I found this article super interesting (it helps that I know enough about color spaces to be dangerous).
The new ProRes Log video format in the iPhone 15 looks great, and with the combo of USB-C and recording to external drives — well, it means more video folks are going to be grabbing an iPhone 15 to record with.
October 5, 2023
Herman Martinus: How I stay motivated as a solo-creator:
When you're working solo, however, there isn't a specific thing you have to do. No pre-set route to take. If I decide to not do any work today, no-one will notice. But if I continue doing so for too many days things start falling apart. Slowly at first, then rapidly, until everything I've built comes toppling down around me.
What Martinus describes in his post isn't too far off from my day to day routine.
September 25, 2023
Acorn 7.4.3 is out, and it's a free update for anyone with an Acorn 7 license.
This release is mostly about bug fixes, but I snuck in a couple of little things, one of which has been asked for a bunch of times over the years: the ability to know the number of pixels you've got in a selection. The count shows up in the Selection palette right below the width and height fields.
There's also a new "New Auto Level / Straighten" command, layered screenshot improvements, and a couple more things. You can read the gory details in the full release notes.
This tool is really meant for folks developing plugins in Acorn, and it is only accessible from the Command Bar, but a part of me absolutely loves pointing out little things like this. I was just chatting with Brent Simmons the other day at Xcoders how you can't really spelunk in apps any more because of all the restrictions that are (justifiably) put on recent MacOS releases. While a console isn't exactly a spelunking tool, I still think it's kind of cool and fun and maybe someone will discover it accidently and that will inspire them to do stupid and entertaining things like we used to do back in the 10.x days.
Anyway, here's a picture of some groovy flowers out of the 1970s, because I'm still stuck on the ’74 theme for recent Acorn releases.
September 6, 2023
This piece "On Craft" by Cat Hicks really resonated with me:
There is this thing I guess for me here, craft as communication and collaboration and creation, versus craft as weapon. Craft as fixing a table for everyone who will sit at it later versus craft as judging whose work gets to be seen as authentic and skilled.
July 12, 2023
Quentin Carnicelli on Rogue Amoeba's Poorly Thought Out Alerts:
Since the very first computer platform was created, there has been a power struggle between platform owners and developers. As developers, we wish for a stable platform. It’s understood that it must evolve, but it should do so slowly and predictably. Platform owners, on the other hand, wish to cut out cruft and move forward rapidly. This tension is the normal state of affairs. When managed well, it keeps both parties in check.
This poorly-written alert, instructing users to contact developers for new software, is an unacceptable disturbing of that balance. The last thing users should ever have to worry about is “deprecated APIs”.
This in response to Craig Hockenberry's post An Alerting Vista of Sonoma, where he points out how Apple is adding some weird ass alerts to MacOS Sonoma.
In the past, I've been received emails from Apple about APIs that are about to change behavior after they were deprecated for a while (off the top of my head - FlySketch used CGDisplayAddressForPosition to grab the base address of a display to read pixel data. In a Mac OS update that started returning null). Apple also dings you when using deprecated APIs when uploading to the App Store. Between all that and the warnings you get when compiling, I think the new alerts in Sonoma are just dumb.
Make Your Renders Unnecessarily Complicated
siirrandalot on YouTube: Make Your Renders Unnecessarily Complicated:
Had this idea 10 years ago, finally got around to it. Took a good couple of months too.
Maybe I'll have to come back in another 10 years in order to properly simulate diffraction and lens flare...
What happens if you make a pinhole camera in Blender, and then take that idea to it's logical conclusion? You get this insane idea. This was amazing to watch and if you're a camera or graphics nerd, it's a must watch.
Via my buddy Jake Carter.
Oh… So That's How Hash Tables Work
Leo Robinovitch: A simple hash table in C:
"I implemented a simple hash table in C when solving a problem in CS Primer. Solving it helped me gain better intuition around hash functions, pointers, and memory segments like the stack and the heap."
I'm a mostly self taught programmer, and as such, I've never bothered to learn how hash tables work. But this implementation of a very simple hash table in C was pretty eye opening. Such as … well I now understand why it's called a hash table and how collisions are handled.
Such a simple and elegant solution for a data structure everyone uses all the time.
June 8, 2023
I spent a few days down in Cupertino / San Jose for WWDC 2023 earlier this week. I didn't have a ticket, but since a bunch of my friends were going to be around I didn't want to pass up the opportunity to see everyone.
While it obviously didn't have the feel of previous WWDC years, there was still a nice vibe going on and I hope it grows a little more every year to the point where we've got little conferences orbiting around the main event again. It'll take years to build up, but I think it'll happen.
On the announcement front: I'm very excited about the Vision Pro. I think has a very bright future, and I can see it replacing Macs for a lot of people as well. It's not for everyone just yet, but the form factor and price will come down over time which will make more folks come to it. Vision Pro's capabilities will expand as well, and developers will figure out just what to do with it.
I have ideas of course. Maybe I'll even find the time to implement them.
On the new Mac Pro: I can only assume this isn't the processor that they wanted to ship in it. I'd bet a small amount of money that at some point in the future it'll get a processor that makes sense in this giant case*. Something that's drowning in CPU and GPU performance. Otherwise I just don't see the point of having it.
On Software: I haven't had a chance to dig into the API changes yet - but I did notice that the Accelerate framework now has flood fill operations for vImage. I'm very curious to see how my implementation performs compared to Apple's.
June 15 Update:
When I was hanging out in the Signia (né Fairmont) hotel lobby, anytime an interesting song came on I made sure to add it to a little playlist. Which I now present to you.
* I hate the Mac Pro case design. It's big, ugly, and cost way too much. I kind of wish they would go back to the pre trash can design, or maybe do the trash can again, but bigger.
May 11, 2023
BBEdit from Bare Bones Software just turned 30(!) years old today. That's uh… that's really old. I'm pretty sure that's at least 10,000 years old in software years.
I still remember discovering BBEdit 2.5 back in my college days, and was instantly hooked. I can even remember the office I was in when I started it up for the first time. BBEdit had this certain … way and feel about itself, it was 100% at home on the Mac and it was amazing. It was light years ahead of other text editors and was rapidly adding wonderful features for editing HTML pages (which was all the rage at the time — before we even had animation in browsers!). I loved it, and I still use it today.
Here's to another 30 years of not sucking.
If you don't already have it, it's currently on sale for $30. (Which will be cheaper than the 40th anniversary edition I bet). You better go pick it up now. Because are you really a Mac person without it?
May 4, 2023
Someone on the Flying Meat Forums managed to accidently nerd snipe me this morning with regards to taking timed screenshots:
"One missing feature is a timer to e.g. capture after 10 seconds. This would allow for capturing when hitting the keyboard shortcut isn’t always practical, e.g. when dragging something or holding down a menu."
My first thought was "oh, this should be done via AppleScript obviously". And then after implementing that with various options I thought "duh, folks are going to want Shortcuts support for this too", so I did that as well. And then finally the easiest thing was to just hold down the option key when using the New Image from Layered Screenshot menu item, and Acorn will wait 10 seconds.
I'm slightly amused that my brain went from the most non-obvious way, to slightly less non-obvious, and finally to maybe this is the obvious way to implement a feature. (My very first thought was "use Retrobatch", but then I saw the utility of it in Acorn).
A test build is up on the latest builds page, and here are the notes for it:
# New Screenshot Stuff.
- Delayed layered screenshot: Hold down the option key when choosing the Image ▸ New Image from Layered Screenshot menu item and Acorn will wait an extra 10 seconds before taking the screenshot. This is awesome if you want to quickly switch to another app and open up a menu item.
- New Shortcuts action to take screenshots. Layered or not, with or without shadows, only for a certain app, and even with a little delay. MacOS 11+ only.
- New AppleScript command "screenshot" which you can use to take a layered screenshot, with various options including an option to only capture a specific app. Here's an example:
tell application "Acorn" to screenshot app "Mail" delay 4 with layers and hiding shadows. You can also use "bundle identifier" instead of "app" to target a specific app name.
April 28, 2023
A new update to Acorn is out, version 7.4. I've added clone tool improvements, you can now assign a corner radius to bézier curves and star shapes, the color picker now allows you to use float values for the RGB values (so you can get super, super accurate with your colors), and some new command bar actions and AppleScript abilities. There's more as usual, and you can check the full release notes for the details.
While working on Acorn 7.4 I kept on glancing at the version number and wondering why it felt so… familiar and right to me? And then it eventually hit me — I was born in '74. So I really like this version for that reason alone. I think any future big features will be stuffed under the 7.4.x number instead of a 7.5, just so I can keep the '74 around longer. I mean, why not? It's my app and I can do that.
LEGO Career Goals?
This is a fun YouTube Short that follows LEGO designer Nico Vás around the LEGO office. It looks like a really neat place to work. Also, for some reason I keep fixating on Vás' case he keeps his laptop in. Why do I feel like I need one of these as well?
Sort of: semirelated: Laid Back LEGO Beats for Studying | Relaxing | Chill | Building
March 27, 2023
Twenty years ago today, March 27, 2003, I released VoodooPad 1.0.
It was my first "real" Cocoa project. I was learning Objective-C pretty much on the fly back then and still working a day job. I had no idea it would launch my full time career into being an indie Mac programmer. Happy birthday little guy, you're still the best wiki-style notebook around. One more year and you can legally drink!
VoodooPad is in different hands these days, but I'm happy to see it still living and still getting love from many of its users (whom I still get emails from every now and again).
Official SQLite via WASM in the Browser
I knew SQLite had been ported to WASM, but I wasn't aware the SQLite project is maintaining an official version.
SQLite continues to amaze me.
December 27, 2022
A lightweight, simple, fast, feature-filled, and extremely extensible text editor written in C, and Lua….
We are currently around 3MB in size and takes about 10MB in RAM (can be lower). No Electron / WebView involved. The whole thing is just Lua running on a rendering engine.
I downloaded Lite XL because it's written in Lua and I just had to check it out. I was shocked at how fast everything loaded. It's amazingly fast. The UI ins't exactly stellar on MacOS, but the feel of the editor absoutely is. It's fast and tight and makes me smile, and I wish all software was this instant.
December 15, 2022
Riffusion takes an audio file, converts it to a spectrogram (much like Capo can do) and then passes it through Stable Diffusion to make new spectrograms, and then back to an audio file.
It's like AI art, but for music.
I'm blown away by this, especially the sample where it makes a "beautiful 20-step interpolation from typing to jazz".
Here's some lo-fi beats for the holidays.
Sure, it's not amazing - but here's the thing; it's early days. And you know I'm absolutely going to use this to make music to play along with in the future.