The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Retrobatch
» Twitter
» Micro.blog
» Mastodon
» Instagram
» Github
» Maybe Pizza?
» Archives
» Feed
» Micro feed
January 23, 2021

Dr. Brad J. Cox Ph.D. 1944 - 2021:

Dr. Brad Cox, Ph.D of Manassas, Virginia, died on January 2, 2021 at his residence. Dr. Cox was a computer scientist known mostly for creating the Objective – C programming language with his business partner, Tom Love, and for his work in software engineering (specifically software reuse) and software componentry.

I had always struggled building apps for the Mac, first in Classic MacOS and then in Mac OS X. I used Java, I used REALbasic, and I even had a professional license for Metrowerk's CodeWarrior so I could write apps in C or C++. But there was always some sort of mental block, or maybe the way my brain worked never really lined up with the way these programming languages did. Out of these I was most efficient with Java, but the UI toolkit was pretty lacking.

Then I saw these cool apps coming out for Mac OS X, and they were proudly written in Objective-C.

I took a couple of runs at it. The brackets and pointers threw me off, but I kept on trying because I knew I needed to learn this language to build the apps I wanted to see in this world.

And then one day, I believe when plugging away on my little internet search utility VoodooNetKey, everything clicked.

Pointers, the brackets, selectors, messages. Oh my god, I get it now — the brackets! It's not a function call, it's something way better!

Everything just sort of aligned in my brain. Previously I found myself struggling to express the ideas I had in my head, and it was a frustrating experience. Now I was struggling to type fast enough and come up with new ideas that I could express in Objective-C. I felt like I could do anything I wanted with it.

And loadable bundles, and input managers- I can't express to you about how much fun it was being able to inject my Objective-C code into Safari or other applications to add functionality at runtime. Or using class-dump against the system frameworks to explore private methods. NSObject's performSelector: was just so great when you needed to quickly hack around something.

Objective-C was brilliant, powerful, and elegant.

All my applications are written in Objective-C even to this day. I play around in other languages from time to time, but I haven't found one that fits me like Objective-C does.

I realize it's not for everyone, and that Objective-C requires discipline, but it's been amazing for me. I owe my career in part to Brad Cox's creation, and I am forever grateful for it.

The Brain-Activity of People Coding Is Different

From the study:

The researchers saw little to no response to code in the language regions of the brain. Instead, they found that the coding task mainly activated the so-called multiple demand network. This network, whose activity is spread throughout the frontal and parietal lobes of the brain, is typically recruited for tasks that require holding many pieces of information in mind at once, and is responsible for our ability to perform a wide variety of mental tasks.

I've long thought programming is to a great extent about organizational skill, especially when it comes to larger projects.

Author Clive Thompson:

Just anecdotally — having interviewed hundreds of coders and computer scientists for my book CODERS — I've met amazing programmers and computer scientists with all manner of intellectual makeups. There were math-heads, and there were people who practically counted on their fingers. There were programmers obsessed with — and eloquent in — language, and ones gently baffled by written and spoken communication. Lots of musicians, lots of folks who slid in via a love of art and visual design, then whose brains just seized excitedly on the mouthfeel of algorithms.

Programming is different. If you haven't tried it because you think you suck at math, you should try anyway. You'd be in good company (I suck at math too).

December 29, 2020

I'm looking for some folks to help test out the next major version of Acorn. Does that sound interesting? If so, send an email to heycorn@flyingmeat.com and I'll add you to the list.

What's new? Now optimized for Apple Silicon, single window mode, multi-threaded flood fills and other optimizations, more export options including animated gifs and gray color profiles, a new color picker, and more.

It's All Blues (Whales)

NYTimes: A New Population of Blue Whales Was Discovered Hiding in the Indian Ocean

The covert cadre of whales, described in a paper published last week in the journal Endangered Species Research, has its own signature anthem: a slow, bellowing ballad that’s distinct from any other whale song ever described. It joins only a dozen or so other blue whale songs that have been documented, each the calling card of a unique population.

“It’s like hearing different songs within a genre — Stevie Ray Vaughan versus B. B. King,” said Salvatore Cerchio, a marine mammal biologist at the African Aquatic Conservation Fund in Massachusetts and the study’s lead author. “It’s all blues, but you know the different styles.”

How could I not link to this?

The Pursuit of Tone: Buddy Guy

An Ernie Ball documentary on one of my favorite guitarists, Buddy Guy.

Buddy on Muddy Waters: "The rumor was he was sick, let's call him and go out there. And he answered. 'I ain't sick motherfucker, just keep the blues alive.'"

November 23, 2020

I'm hearing from a number of people that some old versions of Acorn aren't working correctly on Big Sur. This isn't unexpected, as apps that haven't had updates in 5-10 years probably aren't going to work on the latest and greatest versions of MacOS. Every year Apple changes fundamental things in the OS, and it's a ton of work for developers to keep an app looking correct and running with the latest MacOS versions.

At the same time, I've been amazed that people have been using Acorn 3.x for over 8 years. That's … kind of amazing? Acorn has gone through all kinds of changes since then and I think it's in a much better spot these days. But I can't help but be wowed that it was still working great for people for so long. They probably know that version of the app better than I do at this point.

I look back at Acorn 3's single palette and I get a little nostalgic. It seemed such a simpler time (it probably wasn't, but everything is rosy when you look back).

If you have an older OS and want to grab and older version of Acorn, we keep all the previous copies available for download on our legacy page. If you bought it from us, you'll always be able to get it from us.

As of now, the only officially supported version of Acorn for Big Sur is version 6.6.3. But if you're on a previous version of Acorn and it runs great on your OS and you love it, you do you and keep on keeping on.

How to Create a Bootable Installer for MacOS

In short, to make a boot disk for MacOS:

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

I had no idea Apple was including a shell tool as part of the OS distribution, specifically for making bootable disks. And apparently it's been around for quite some time. I always squirrel away all the OS releases for testing, so this is super helpful for me.

Capo 4

Capo is an app that helps you learn songs by ear, available on both the Mac and iOS. It's one of my favorite apps and I use it on both iOS and the Mac to help figure out tricky guitar solos (Hendrix, SRV, etc.).

The new version has a really neat ML power chord detection algorithm. Chris Liscio, the creator of Capo, has a written a number of interesting articles about how exactly that happens. I've used it a bit, and it's great, but my favorite feature is still the spectrogram combined with the tabbing features. It's pretty amazing.

If you haven't checked out Capo already, you really should. And if you play guitar, you kind of need this app- there's nothing else nearly as good as Capo out there.

Accelerating TensorFlow Performance on Mac

In short, Apple has created a fork of TensorFlow (a machine learning package) which is accelerated on Macs (including the new M1 Macs).

One of the problems I've encountered when trying out machine learning ideas is that a lot of sample code and tutorials out there are written with TensorFlow in mind, but CoreML is the standard library on MacOS. And the TensorFlow to CoreML model converters seemed a bit finicky. I'm hoping this new Apple improved branch of TensorFlow will be a lot nicer.

Apple App Store Small Business Program

Starting January 1, 2021, App Store developers can apply to have their commission rates dropped from 30% to 15% if they made less than $1 million in proceeds the previous year.

This is very good news and I'm happy to see a reduction in fees finally happen.

Can we get upgrade pricing next?

Intel’s Disruption is Now Complete

James Allworth:

Indeed, that deal between Apple and Intel was more important for Intel than it could have ever possibly realized. But it wasn’t because Intel had sewn up the last of the desktop computer processor market. Instead, it was because Intel had just developed a relationship with a company that was thinking about what was coming next. And when Apple were figuring out how to power it — and by it, I’m talking about the iPhone — they came to their new partner, Intel, for first right of refusal to design the chips to do.

How did Intel respond?

November 13, 2020

First up, I released Retrobatch 1.4.3 this morning as a Universal Binary, meaning it will run natively on the new Apple Silicon Macs. There are also a couple of bug fixes, features, and compatiblity fixes for MacOS 11 Big Sur. It's just like the version of Retrobatch on Intel Macs… just… you know, for Apple Silicon now.

I recently posted an article on Flying Meat's website about Acorn and Big Sur and Apple Silicon. In short, Acorn 6.6.3 (which is now out), is fully compatible with Big Sur on Intel. Acorn 6 on Apple Silicon runs pretty well, but the the seed fill based tools are a little pokey (magic wand selection, flood fill). But otherwise it runs just fine. It's currently running in Rosetta however.

I do have a version of Acorn which is a Universal Binary where everything works great, but there are big changes in it and I'm going to have a public beta for it first. I'm not quite there yet, but hopefully soon, and I'll be posting about it here as soon as it's ready.

So how about those new Apple Silicon Macs?

They look pretty sweet to me. The thing I'm probably looking forward to most is the unified memory architecture (aka UMA) between the CPU and GPU the new M1 processors provide. UMA speeds up so many things in Acorn by virtue of not having to copy pixels around as much. Brushing is faster, rendering is faster, and things just feel smoother. It's nice.

So how about MacOS 11 Big Sur?

In general, I think it's a good upgrade. The new sounds are great, the overall feel of it is decent. However, I can't get past the super plain toolbar icons that are showing up in Safari, Mail, and Xcode's preferences windows. Ditto for the iOS style icons in the Dock. I think it's a great idea to take cues from iOS, but I don't think this should extend to everything. Mac icons have always been rich in color and detail, and have always had a certain style to them. These iOS icons just don't fit.

But overall, I don't find myself missing Catalina. The collection of little good things in Big Sur make me happy with it.

November 7, 2020

There's lots of celebrating, not just in the US but around the world, that Joe Biden has won the US presidency. We heard fireworks this morning when all the networks called it.

The impromptu celebrations in the streets right now are pretty amazing. I've seen lots of great clips, but this one of everyone singing "Sweet Caroline" in Black Lives Matter Plaza is my favorite. It's a silly song that everyone knows the words to, and the energy from the crowd is amazing. You can see multiple bottles of champagne opened in celebration. People are overjoyed right now, for good reason.

October 17, 2020
Ballot drop-off is super easy in Washington.

I received my US election ballot yesterday, filled it out today and dropped it off at the nearest drop box. Voting up here in Washington State has been mail in (or drop off) for a long while now, and it's pretty awesome. No lines and I can sit down and take my time to fill it out.

There were a number of things to vote on, but I waited until last to fill in my choice for president, expecting to feel a rush of satisfaction. And there was a bit of that, but there was also a whole range of emotions I wasn't expecting including sadness and anger and frustration; a whole spectrum of other feelings. But the biggest emotion I felt was fear that this train-wreck of an administration would continue for another four years.

I know it's not as easy for everyone to vote as it is for us in Washington. But regardless, please vote if you are of age. And if you're still undecided, vote for someone who cares for all of America, vote for Biden.

Idle Words on Protest and Power

Maciej Cegłowsk has some good advice:

When the George Floyd protests began to spread nationally in the summer of 2020, I noticed many people on social media asking Hong Kongers for advice on protest tactics–which apps to use, what equipment to wear, the best way to extinguish tear gas. Americans were preparing for a summer of protest the way they would for any new activity—by making sure they had the best gear.

As a witness to the Hong Kong protests, I shared this admiration for the protesters and their sense of flair. But the lessons I wished my fellow Americans would absorb from the protests were more strategic. In paticular, I wanted them to focus on what hadn’t happened in the territory during a long season of protest.

September 23, 2020

This past September 18th was the 50th anniversary of Jimi Hendrix's death. He would have been 77 years old.

Hendrix was amazing. Beyond amazing. Something on a whole other level. It's hard to explain.

It seems that the longer I play guitar (going on 27 years now) the more I appreciate just what a master he was. Hendrix's playing went far beyond where anyone else had gone with a guitar. And it struck me while reading a passage about his age when starting (15 years old with a five-dollar used acoustic guitar), that Hendrix only played for 12 years of his life.

Twelve years! Just thinking about that breaks my mind. Any other person would need multiple decades to reach the level of agility to mimic what he did, let alone invent the techniques and music.

It makes me sad to wonder what music Hendrix would have made if he hadn't died.

And when he passed away, Hendrix was just getting into my favorite musical phase with the Band of Gypsys (if you haven't listened to it, the box set "Songs For Groovy Children: The Fillmore East Concerts" is amazing collection (Music link)). This live version of Power of Soul might as well be my anthem.

I'll leave you with this blurb from the Guardian:

The story goes that one night, shortly after Hendrix had arrived in London, Eric Clapton, then with Cream, and feted as “God” for his virtuosity, invited him to jam on stage. Hendrix showed God how to play. A furious Clapton confronted Hendrix’s manager, Chas Chandler, after the gig: “You never told me he was that fucking good.”

Jimi's Woodstock GuitarThe guitar Hendrix played at Woodstock, which I got to see at [Seattle's MoPOP](https://www.mopop.org//exhibitions-plus-events/exhibitions/hendrix-wild-blue-angel/).
September 3, 2020

School started yesterday for my daughter Madeline. She's entering grade 3, but classes are all virtual because of the ongoing covid crisis. This generally sucks, but like the majority of parents in our area, we weren't going to have Madeline attending in person classes because the risk of catching covid (or passing it along) are just too great.

The upside to this is that since school is all via computer, we can throw everyone in a car with a laptop, have it connect to the internet via my iPhone, and Madeline can do her assignments while we're driving to a local climbing crag.

And that's how Madeline's first day of school also happened to be the day she lead her first rock climb.

Madeline's first lead climb

She's been wanting to do this for a while, but we needed to find a simple enough climb that we knew she could cruise up and have the confidence to pull off without a hitch. She was a little frightened, but seemed to enjoy it and wanted to lead another climb- which she did!

And then after a bit of climbing we visited a rope swing we passed on the way to the climb, and she took a couple of plunges in the Snoqualmie river.

Not a bad way to start the school year.

Our favorite local climbing gym, Vertical World North, has also recently opened up with reservations. They have also finished up the upstairs bouldering area and Madeline and myself made sure to be some of the first folks in.

I was pretty skeptical at first (because how can any place open safely with covid?) and our initial intentions for visiting the gym were to restart our membership so they could start making money again, check out the new routes, and then leave. But as I was walking in, I ran into the the president of the company in the parking lot, chatted a bit and expressed my concerns, and he told me about all the precautions they were taking. I won't mention everything they are doing and have done, but I can say I was impressed at the work they went into to make sure everyone stays safe.

The ventilation is impressive- they installed an additional Big Ass Fan (yes, that's the real name) bringing the total to 3, reversed the direciton of the airflow so they pull air up to the ceiling where the existing venting fans blow the air outside. In addition, the bouldering area has a number of fans (including at least one oscillating that I saw) to direct air in from an open door and generally making sure there's lots of fresh air for everyone. They have limited the capacity for both the bouldering area as well as the roped areas, masks are required for everyone, and generally it felt pretty safe.

We ended up bouldering for a little over an hour (all the routes were rad) and even got on a rope for a few mintues. We've been back a couple of times, and it hasn't been crowded at all.

Upstairs bouldering at Vertical World NorthUpstairs bouldering at Vertical World North.

Another section of bouldering at Vertical World NorthAnother section of bouldering at Vertical World North.

More bouldering More bouldering.

Some of the existing rope climbing Some of the existing rope climbing.

We're happy that Vertical World is up and running again, and will be visiting a bunch more in the future.

Bjango: Using SVGs in asset catalogs

Marc Edwards:

SVGs can now be used as assets for iOS, iPadOS, macOS, and watchOS apps. The most exciting part of this new feature is that there’s not much to say — it’s full SVG support, and it just works.

Germany’s Corona-Warn-App uses FMDB

The Corona-Warn-App is an app that helps trace infection chains of SARS-CoV-2 (which can cause COVID-19) in Germany. The app is based on technologies with a decentralized approach and notifies users if they have been exposed to SARS-CoV-2. Transparency is key to both protect the app's end-users and to encourage adoption.

I found out a couple of days ago that the iOS version of the Corona-Warn-App is using FMDB, which I find delightful. FMDB has been around a long time and it's still an Objective-C project, but it keeps on kicking and showing up in places I'd never imagined.

June 24, 2020

I'm really enjoying the format of the WWDC videos that are coming out. The talks I've been interested in are short and focused, so I don't have to fast forward through sections I'm not interested in.

The code sections in the Developer app are almost pretty awesome too. It's a shame the Developer app is a buggy port from iOS- anytime I click on a code section to copy it, the scrollview either pages to the top or goes to some other random location. It's super frustrating. Hopefully Catalyst changes in MacOS 11 will make it better.

I've got Acorn compiling as a universal binary now, so in theory it'll run on the new ARM processor Macs. Retrobatch is mostly there as well, but I'm feeling lazy about it at the moment and will finish it up when I have actual hardware to test on. I can't imagine it'll take more than a couple of hours at this point. Maybe even less- I've got a 3rd little app I've been fiddling with and all it took to compile was updating Sparkle. We'll see what happens when it actually runs though.

Speaking of, I'm seeing folks get approved for the new developer transition kits who don't even have Mac apps! Ship dates and everything. I'm still over here crossing my fingers, wondering why this guy who's been developing Mac apps for over 20 years hasn't gotten one yet. Yeesh.

Update: I'm good on the dev kit!

Anyway, the more I think about the ARM transition, the more I get excited about it. Between Rosetta 2, running iOS apps on the Mac, virtualization of other ARM based OSs, and of course AppKit- Macs are going to be an amazing development environment. And with Apple's commitment to keeping existing tech around (like OpenGL, OpenCL, etc.), something I'm still shocked by, bringing existing apps forward to the new architecture is going to be a breeze.

While some of the changes in MacOS Big Sur aren't to my liking (what the hell happened to the Messages icon? The shadows are horrible!), I'm pretty happy with it overall and I can't wait to ship my updates for it.