20 Years of Rogue Amoeba
In 2022, Rogue Amoeba is going stronger than ever. Every day, our audio tools help countless Mac users create podcasts, enhance video calls, and so much more. […] But as the date of our twentieth anniversary approaches, it’s nice to take a few minutes to review the past and reflect.
Paul Kafasis and Quentin Carnicelli, two (out of three) founders of RA, were among the first indie Mac developers I met when I was starting out. I remember Paul talking on numerous occasions that the goal was not to create a single great app, but to create a great and sustainable company. And from that, great apps would emerge.
It's indisputable they reached that goal. Congrats to the whole crew over at Rogue Amoeba on 20 years.
September 14, 2022
Outside: Yvon Chouinard No Longer Owns Patagonia.
Effective immediately, 100 percent of Patagonia’s earnings not reinvested in the business will be distributed to the Holdfast Collective to help “protect nature and biodiversity, support thriving communities, and fight the environmental crisis,” according to a press release. The company has for years donated 1 percent of its sales to grassroots and environmental causes, but this shift will increase that figure dramatically. The estimated charitable outlay of the new company will be roughly $100 million a year.
“One option was to sell Patagonia and donate all the money,” he wrote. “But we couldn’t be sure a new owner would maintain our values or keep our team of people around the world employed. Another path was to take the company public. What a disaster that would have been. Even public companies with good intentions are under too much pressure to create short-term gain at the expense of long-term vitality and responsibility. Truth be told, there were no good options available. So, we created our own.”
Yvon Chouinard is quite a character, and I've always liked him. Patagonia's products were always a bit more pricy, but the quality is amazing and their commitment to the environment more than makes up for it.
I've you've not already watch Valley Uprising, you should. It's a great film about rock climbing in Yosemite and Chouinard plays a key part in it. He's a legend.
September 13, 2022
This is what happens to an Apple Watch when you're hand jamming up some of the stellar granite at Index, and you forget to take off your watch. Or you're just climbing in general and don't want to take off your watch because you religiously close those rings. I'm a little shocked the watch has lasted almost two years as it is.
So I'll be getting an Apple Watch Ultra, eventually, once this one kicks the bucket. Because I'm not gentle with these things. And the new waypoints feature would have come in super handy this past weekend while I was in Tieton.
Sure, Ben. Yea, I bet that's where the trail was. Right past that rock where a rattlesnake is obviously hiding under. I can't wait to hear another tail shake at me. Where are we again?
September 9, 2022
Whenever a 2nd edition of a book is published, people ask “I already have the 1st edition. Do I need to get the 2nd?” It’s a legitimate question and I’ve asked it myself. Reading a 2nd edition after the 1st is not trivial: It’s a commitment of both additional money and additional time.
Sometimes a 2nd edition has mostly small changes: correcting a few mistakes, adding some more up-to-date information. But other times a 2nd edition involves some major upheavals. Perhaps the author had become dissatisfied with certain aspects of the 1st edition and wanted to fix them.
The 2nd edition of Code: The Hidden Language of Computer Hardware and Software falls into that second category.
"Code" is one of my favorite programming books ever (even though it doesn't really go into programming much). I've read it multiple times, and when I first started reading it, I'd make it only part way through before I had to stop and start over from the beginning. There's just so much good information in that that really builds on itself.
I'm super excited about the second edition, and I've had it ordered for months now, but I think I'm having to wait on a second printing or something. I'm guessing I'm not the only one.
I wished dearly that the Mac and Windows came with built-in BASIC environments. If that were the case, the language I would have discussed in this chapter would have been BASIC.
This made me laugh.
August 9, 2022
I got the idea for these two filters a long time ago and even sketched out some prototypes a way back. But now that a convolution filter has made its way into the next release, I figure it's time to push these two out into the world as well.
They are pretty simple - and really aren't "filters" so much as they are "store and load" commands you can use in a layer's filter chain. The first is "Snapshot" and the second is "Snapshot Reblend". The first filter remembers the image as it's passed through it, and the second lets you composite that image back into the filter chain.
What's this useful for? Have you ever thought about how drop shadows are made? The most common way is to apply a gaussian blur + grayscale filter + the original image composited back on top. What if you wanted to make a custom shadow which keeps its color and instead of a gaussian blur, it uses a zoom blur?
Here's our deer again, this time with a transparent background. You can see that we're storing a copy of the image, then blurring it, and then drawing on top of that blur, which gives us a drop shadow to the image.
The Snapshot Reblend filter has a couple of options, including the ability to change the blending mode. If we change it to something like "Destination Out", we're essentially erasing where our original pixels were and are left with just the shadow, which is another useful effect. You see it above - but this time with a motion blur.
You could also use this technique with the "Fuzz Stroke" filter to get an outline of your opaque areas.
These effects have always been possible, but you had to use copies of your image on multiple layers and then things might get out of sync and it could be a mess to update. With the Snapshot and Snapshot Reblend filters coming in Acorn 7.3, we just made those annoying to update effects so much easier to do.
If you'd like to play with these filters right now, you can grab them from Acorn's latest builds page.
August 1, 2022
I've started working on Acorn 7.3, and for some reason I got the itch to add a custom convolution filter to it. I've been thinking about adding one for years, and have had some requests for it as well, but it's a bit advanced and maybe not that necessary? But I really wanted it for some reason and it's not a UI change - it's just a filter that's going to be hiding out among the others so you'll never see it unless you want to.
If you want to play along you can do so by grabbing the 7.3 beta from Acorn's latest builds page. The filter is named "Custom Filter" (because that's what Photoshop named its equivalent, and I'm not going to go around renaming stuff just because) and you can find it under the Filter ▸ Misc menu.
The above image is what it looks like when you first add the filter (and you can click on it to view it larger). You'll see a 5 x 5 grid of numbers, with a 1 smack dab in the middle. This is known as the "identity" convolution, which does nothing but let the pixels through unmodified. By the way, I found this painting of a whimsical deer in a short tunnel while recently camping at Larrabee State Park.
Next up I've changed the numbers in the convolution matrix a bit, and all of a sudden the image gets sharper (more noticeable in the larger version). You can also create little blurs by altering the kernel as well (and Acorn comes with some presets for this if you want to play with it).
You can also use convolution kernels for detecting edges.
As well as embossing and making sobel filters.
You can also get a little creative with it by plugging in numbers to see what happens.
Wikipedia has a page on image kernels which goes into detail about what's really going on, and a Google search yields lots more information as well.
The bias field can be used to add to each cell, and the scale value will divide everything by the amount input. For instance, if you're going to apply a 5 x 5 Gaussian blur to this, you'll want to divide everything by 273 (at least with the preset I've added). As long as everything adds up between 0 and 1, you'll be good.
July 22, 2022
Lost in my FM 20th Anniversary post, was any mention of a new version of Acorn. But the day Flying Meat turned 20, I also released Acorn 7.2, which includes support for Shortcuts and some other new features.
But behold - now you can use the power of Shortcuts on MacOS 12 to automate Acorn into cropping, flipping, resizing, rotating, enhancing, trimming, and applying filter presets to your images. And I'm not going to stop there. I have more ideas in mind, but I'd also love to hear if you have any requests. So send them to firstname.lastname@example.org if you do.
There's a new "Auto Enhance" filter (to go along with the Shortcut action), a "Matte" filter to give a colored background to transparent layers / images, and a new option for the Histogram filter: "High fidelity". This will use a slower, but more accurate method of sampling your images for the histogram. This is awesome if you have a pretty noisy image and want to make sure the histogram you're looking at is 100% accurate.
For exporting, there is a new option in Layer Export where you can crop a layer's bounds to the canvas size. I've also added a "Lossless" option when exporting images as WebP.
And for the last of this short list, there are new Command Bar actions: "New Image From Selected Layers" and "Delete Hidden Layers".
The whole list, including a new AppleScript command and other QOL improvements can be found in Acorn's release notes.
June 20, 2022
Oh hey, look at that:
$ whois flyingmeat.com | grep -i creation
Creation Date: 2002-06-20T22:24:19
On this day twenty years ago I registered the flyingmeat.com domain. I had no idea what I was doing back then, only that I loved coding, I loved sharing what I worked on, and indie companies were undisputedly cool.
Twenty years later I still have no idea what I'm doing, but I still love coding and sharing what I make, and indie companies are still the best.
It seems that everything else has completely changed since then (we're on our 3rd CPU architecture for the Mac!), but the values that enable and drive what I do to make Flying Meat what it is - those are constant.
There's so much I could write about what I've learned over the years, but that'll have to wait till another day.
However I'm not going to let this opportunity pass without a little bit of fun, so I've put all my apps on sale for $20*. Acorn? Normally $39.95, now $20. Retrobatch Pro? Normally $49.99, now $20. Retrobatch Pro Upgrade? Normally $19.99, now $20 (Yes, we raised the price. No, it makes no sense to purchase it).
And as always, we love receiving feedback from our customers. So if you have any feature requests or ideas you think might be cool, you should email us at email@example.com. Or just drop a note to say "hi", we love hearing that as well.
* Acorn is actually $20.99 on the App Store, since I couldn't make it a flat $20. So you can save a tiny bit of money by buying directly from us.
What goes into making an OS to be Unix compliant certified?
Terry Lambert, Apple Core OS Kernel Team:
We had a lot of gratitude in the Open Source community particular for our fixes to make bash pass the tests.
You have absolutely no idea how much Apple contributed to the Open Source community, as part of this project, because it was a secret project - at least to people outside Apple so we didn't advertise the fact.
But I expect we contributed about two million lines of code, to hundreds of Open Source projects, over the course of that year.
A lot of gratitude - but it wasn't collective, and so Apple was still faulted for "using Open Source code, but never contributing back".
We fixed at least 15 major gcc bugs, for example.
You have no idea.
Tomoya Ikeda - Macintosh Artist
Tomoya Ikeda (池田友也) might not be a name you’re familiar with, but if you used a classic Macintosh computer at any time during in the 1990s you’re likely already familiar with some of his work.
November 16, 2021
Collin Carroll: Female excellence in rock climbing likely has an evolutionary origin
As hypothesized, relative female rock-climbing ability was shown to be extraordinary. A female climber has climbed a 5.15b-rated route, one of only 27 people to have successfully ascended a route rated 5.15b or higher. Additionally, this exceptional performance is not limited to one female outlier. Two other women have climbed 5.15a-rated routes, placing 3 females in the top 90 climbers of all time. This level of female achievement is far beyond that seen in other sports. The 100-m dash, with a relatively narrow PG itself, does not have a single female runner in the top 2,000 competitors, and the fastest female time ever recorded is slower by 0.19 s than the 2000th-fastest-ever male time. This trend holds true for the marathon, too. The top female does not enter into the top 2,000 marathon runners, and she is more than 2 min slower than the 2,000th-fastest male (“World Athletics” 2020). This means that there are likely many thousands more male runners who surpass the world-record-holding females in each track & field event. Rock climbing as a sport shows a much narrower PG at its upper echelon than either short-distance or long-distance running.
The world is finally noticing that female rock climbers are getting really, really good. And when you look at the top female climbers, they aren't exactly tall either. A lot of the weekly youth classes at our gyms are mostly populated by girls as well. If you're a lady and rock climbing interests you - I say go for it.
I wouldn't be surprised in the slightest if at some point in the near future, the hardest route in the world was first sent by a female.
When Led Zeppelin Was in Seattle
Lord Rare Rock on Instagram:
Seattle - 1977 - After Zeppelin was banned for life from the Edgewater Inn for previous incidents, such as the infamous shark, they somehow got that ban reversed. The manager, James Blum, warned them to be on their best behavior this time. I think we can imagine how they took that warning. It is said that on that night, the band threw not one, but five televisions into the Puget Sound which was directly below the windows at the Edgewater Inn. The band racked up an obscene amount of damage fees, which Richard Cole happily paid. When they were checking out, Cole was asked by one of the hotel clerks - "I’ve heard that Led Zeppelin has a reputation for throwing TVs. But I thought it was BS. Can you tell me, what does it feel like to just toss a TV out of your window?” Cole replied, ”Kid, there are some things in life that you’ve got to experience for yourself," as he slid $500. “Go toss a TV courtesy of Zeppelin”
November 10, 2021
Tedium:10 Image File Formats That Didn’t Make It
From PCX to TGA to VRML, considering a number of image formats that the world forgot. Not every image standard is going to last, no matter how pretty it is.
Some of these formats I'd argue did "make it". But time marches on.
October 15, 2021
This coming Monday, Apple is having an event they are referring to as "Unleashed". The general rumor is this will be an announcement of new MacBook Pros with faster M1 based processors.
That'd be great, but what I really want is some sort of M1/M1X/M2 based iMac Pro with a big display. It's been a while since I've bought a new desktop (I'm still rocking a late 2015 iMac for some reason), and I'm eager for something newer and faster. Hopefully we'll also get a release day for MacOS Monterey.
One thing that I haven't seen remarked upon much, is that it's been few weeks since a new beta of Xcode 13 dropped with a Monterey SDK to build against. This makes me think that there will be new APIs for dealing with some sort of new hardware in whatever is coming out Monday. So whatever we're getting, I bet it's going to be a little more involved
than just a standard hardware upgrade.
Ben Thompson on Apple's App Store Conundrum
The Sub Club Podcast:
On the podcast, we talk with Ben about all things app stores. From Apple’s revolutionary launch of the App Store in 2008 to the monopoly-like powers, both Google and Apple now wield today. With multiple lawsuits filed, government investigations ongoing, and developer sentiment at an all-time low, we take an honest look at the challenges and trade-offs in trying to bring two of the world’s largest companies to heal.
This is a great interview with Ben Thompson on all of the big issues currently surrounding Apple's App Store. If you're a developer on any of Apple's platforms, you need to make some time to give this a listen.
September 2, 2021
I released Acorn 7.1 yesterday, which has some new features, changes, and bug fixes. There's nothing earth shattering in here, just another release that continually improves Acorn. The full release notes are available as always.
There is one little, yet devilish, bug fix in the 7.1 release. It took a while to track down and the fix of course was super easy.
Soon after the release of MacOS 11.5 I started getting crash reports. Lots of crash reports. They all had similar stack traces, pointing to something in the guts of Apple's Key Value Observing code (_NSKeyValueObservationInfoGetObservances specifically).
But the messages from my customers in the crash reports all pointed to wildly different things. Someone was using flood fill, and got a crash. Someone else was changing the size of the pencil tool, or someone else was changing a preference, or someone was exporting an image. The one thing that they all had in common was that a preference was being changed or read.
So something in the frameworks for MacOS 11.5 obviously changed, and was surfacing a bug in Acorn that's probably been around for a while (this wasn't my first thought of course. My first thought was that Apple broke Acorn again, horribly, like they did last April).
And I couldn't get it to reproduce more than once or twice. It was pretty infuriating.
I started bouncing ideas off some friends, and I eventually came to the idea of having one of my tech savy customers who could reproduce it to try running Acorn from the terminal with NSZombies turned on. If you're not familiar with it, NSZombies is a debugging tool which will report when messages are sent to classes which have had their memory reclaimed.
And sure enough, the crash happened with a message helping me pinpoint exactly where it was going wrong. What was it? Acorn's startup window had a bit of code that was listening for a preference change and when that window was closed it wasn't unregistering the listener code from the framework.
Here's the kicker - this particular preference (which was a setting for all white windows (which never shipped for good reasons)) was never called or used in any way. Just this little bit of code saying "hey let me know if this pref changes so I can update my appearance". And then when it was released, it never cleaned up. So the fix was to delete the code which listened for the no-longer-existing pref.
Programming is really dumb sometimes.
So Acorn 7.1 is out, you should go grab it. It's got a really good bug fix in it.
Oh, and support for Mozilla's MozJPEG encoder in the Export window is new. That's been a popular request.
Allen Pike on the Persistent Gravity of Cross Platform
Allen Pike: The Persistent Gravity of Cross Platform
In practice, the tradeoff is about more than “cheap vs. good”. Unintuitively, sometimes native tech can actually be the cheapest way to achieve a certain goal, and sometimes cross-platform technologies actually lead to better products, even for very well-funded companies. So what is a useful way to think about the tradeoff?
Over the last decade I’ve talked to people at hundreds of companies about how they’re developing and supporting apps, helping them evaluate and plan native and cross-platform app work. While there are a lot of factors that go into this technology decision, there’s one that I think is particularly illuminating.
More and more apps written with web tech (such as Electron) are showing up on the Mac desktop everyday. I understand why, but I don't have to like it.
The Beauty of Bézier Curves
Freya Holmér has a wonderful video about how bézier curves are constructed with some amazing animations throughout. I wish this video had been around a decade or more ago, when I was really getting into bezier curves and implementing them in Acorn. It would have come so much more quickly to me after watching this.
August 17, 2021
This has easily been the longest sale we've ever had on Acorn - since March 17th!
But if you've been holding out on buying it for some reason, now is the time to purchase. The 50% off sale will end Monday, August 23rd, and the price will double from $19.99 up to $39.99 USD.
The bundle discount will still be available though. So if you buy multiple copies (or multiple apps), you can save some cash. Or buy now and save even more.
Anecdotes About the macOS Sandbox File Limit
macOS only allows sandboxed apps to access a limited number of files at a time, but there is no way for an app to query how many files it can open, or if it’s close to the limit. In fact, this limit is dependent on the amount of RAM installed in the computer and the number of files open by other apps. Because this limit only affects apps that can batch process thousands of files, and users that want to do so, many users—and developers—remain unaware of it, despite the fact that it has affected some of Apple’s own apps.
This is the primary reason Retrobatch isn't sandboxed (and thus, not on the App Store). I've considered just dealing with the likely support emails (and suggesting folks give it full disk access, or only add folder), but I just can't bring myself to do it. What a pain this bug has been for years.
Every year at WWDC, since about 2015, I would hunt down a particular engineer I knew who was aware of this issue, and the first question I would ask is if this bug was fixed.
See also this really old radar: rdar://13006144: Sandbox and limitation on number of files that can be opened from a user.