Apple Silicon(M1) 3 Months Later

Well here we are 3 months into 2021 and 3 months into having M1 unleashed on the world. As noted in a previous post back in December most everything I run on a day to day basis works, however I’ve now had some time use it as my daily driver for several months and developers have begun to release more Apple Silicon builds, which means better performance and less dependance on Rosetta 2.

More M1 Native Software Builds

Generally speaking everything has run equally as fast or faster than it did on my old late 2016 Macbook Pro 15″. The one really big exception to this were JetBrains products. I’m a daily user of DataGrip, IntelliJ, and PyCharm. On December 30, 2020 JetBrains announced via their blog that they had Apple Silicon versions of the 2020.03 release of all their main products. Performance with these has been astronomically better on M1 and it now handily beats my Intel Mac hands down for IDE performance.

Docker Coming Along

Onto the biggest gotcha yet…Docker. While not having Docker support out the gate for M1 was a huge bummer and made many of us who use Docker in our jobs either as developers, engineers, or devops users, they were quick to get a preview build out the door that is available for use. The reasons for this are widely documented including here however the TL;DR version is that the are some differences between the M1 ARM silicon and x86 processors in terms of virtualization options and supported container architectures.

Enter the Docker Desktop for Apple Silicon Preview build. At the time of this writing the current preview build is 7. I was quickly disappointed when I ran the docker-compose for my local dev env and was immediately greeted by warnings and containers dying with this message

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

However manually running the containers in my environment with the following flag once and then stopping them made them play nice with Docker-Compose

--platform linux/amd64
#Example Running a container
docker run --platform linux/amd64 -it mysql:5.7

Performance with Docker using the compatibility flag has been fine. The only major problem that I’ve had is that disabling Use gRPC FUSE for file sharing in the experimental features requires a restart of Docker Desktop and it gets hung restarting until I reset all settings to default. All in all it’s usable enough for my purposes and the performance has been quite acceptable. This should continue to improve with time.

Audio and Video Production

Logic Pro X works like a charm of course (it better, it’s first party). All the plugins I use from ToonTrack, Neural DSP, EastWest, and Izotope all seem to work rather well, maybe with the exception of Ozone 9 occasionally causing crashes of Logic (only on startup, but I’ve managed to work around this by disabling the plugin before saving and closing the project and then toggling it back on once the project loads). iMovie has of course been fine, rendering times have dramatically improved for me over my MacBook Pro, and the heat is non-existent during rendering.

Best Battery Life….Ever….Seriously…

Part of the fun of #DevOpsLyfe when working with retail customers is being on call and high alert during the black Friday/cyber Monday holiday shopping traffic increases. I decided to keep an eye on monitoring dashboards on my M1 Air this year with Caffeine toggled on to prevent screen sleep…..13 hours later I still had a 34% batter remaining. Never have I been able to keep a dynamically updating monitoring page going for that long on battery. In fact the next day I did the same thing with my Intel MacBook Pro from work (it’s a 2018), and the battery lasted a whole 3.5 hours. The lack of heat produced by these machines, the efficiency of SoC ARM, and the low power draw has really made these the absolute best devices on the market for desktop computing power on the go.

What’s Next?

It remains to be seen what will come next in the Apple Silicon world. One thing is for sure though, it has changed the game and it is here to stay. I’m interested to see how this SoC architecture scales beyond 16GB of shared memory, and how a greater number of I/O ports is handled. One thing is for sure though, when the more powerful high end pro devices rock Apple Silicon it’s going to be truly impressive.

mysqladmin dyld: Libary not loaded error (Mac OS)

dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

I was recently running some scripts in my local dev environment that use mysqladmin (installed as part of homebrew mysql-client package) to drop and recreate some tables in my docker MySQL instance and encountered this error. This happens across all Mac OS version I tested (Big Sur, Catalina, Mojave). The issue is the libssl version it’s looking for is out of date.

To fix:

brew upgrade mysql

Apple M1 Testing

Like many people who have been following the Apple Silicon announcements I had to get my hands on a device. I ordered a MacBook Air in the 8gb/512gb configuration to do some testing with and to use as my blogging/browsing/on call machine and more importantly to test the performance and compatibility of software I rely on for DevOps work and Audio production. Here’s a list of my testing so far:

Things that work:

  • iTerm2
  • Office
  • Chrome 
  • DataGrip
  • IntelliJ
  • PyCharm
  • VSCode
  • Git
  • SDK Man
  • Groovy
  • Java
  • Sequel Ace (Replacement for Sequel Pro)
  • Slack
  • Viscosity
  • Dropbox
  • Spotify
  • Amazon Music
  • Caffeine (app to keep screen awake)
  • Python (2.7 comes pre-installed)
  • AWS CLI v2 (.pkg from AWS)
  • Copy ’em (App Store clipboard history)
  • BetterSnapTool (App Store window management)
  • Luma Fusion 
  • Adobe Photoshop Elements 2020 
  • PreSonus Universal Control 
  • Cyberduck
  • NeuralDSP Plugins
  • iLok

Things that Don’t:

  • Docker
  • Homebrew
  • Virtualization stuff (VMWare Fusion/Parallels/VirtualBox)

Final Thoughts

I would recommend hanging onto your intel machine for now if you are doing dev work that relies on Docker and homebrew. Otherwise everything else seems to run super snappy and fast. My primary laptop is a late 2016 15″ MacBook pro with the 2.9Ghz i7, 16gb RAM, and 1tb storage. In CPU benchmarks in GeekBench the M1 air more than doubled the multicore score of my 15″ MBP. Also battery life with the M1 is insanely good especially when using Apple apps. During Black Friday I had monitoring tools open in Safari the entire day and in 13 hours I had only managed to consume 63% of the battery on the Air. This is considerably shorter when using Chrome, however there is a vast improvement in battery and more importantly I can do heavy lifting on this without feeling like I’m going to burn my lap from the heat coming off of it.

The limitation of 2 Type-C ports and a max of 16gb of RAM is a real downer, for a portable laptop that I don’t do anything super heavy on this is fine, but I am waiting for an option of at least 32gb RAM, 4 ports, and full Docker support before I am willing to consider replacing my faithful 15″ MBP, but this is an incredible debut of Apple Silicon and I’m giddy with excitement to see what future Apple Silicon chips hold.