Random Thoughts by Fabien Penso

Mac Mini M1

After Apple’s announcement, I ordered an M1 Mac Mini and canceled it when I noticed the non-upgradable RAM. I then reordered it (16G/1T), and it has just arrived today :grin:

You’ve probably seen many online reviews (I watched tons of them on youtube) and what everyone says is true. It’s fast! Pretty stable, and I can’t hear the fan even while compiling.

Looking at my geekbench you’ll see it’s the fastest machine I own, CPU wise, even more than my MBP 16” 2020. On the compute GPU level, it’s slower, but that was expected from a Mac Mini. I’m glad I got rid of the Hackintosh…

Safari also feels much faster, but I’m not sure it’s only the CPU. I’ve had many issues with my MBP16” having to reboot since coding with Xcode, or Safari slowness issue like DNS resolving latency. Tried to fix it using SquidMan, but that brought other problems. So far, none of those appeared on the M1.

Many suggested 8G is enough, but after half a day of work, I can see I’m already using more. But I have a few apps opened at once.

Dev Tools

1Password

1Password released a 7.7.1 supporting M1. Install 1Password from their website, enable beta builds in the update settings tab, and then check for a new update. Using their version instead of the AppStore also allows you to use the QRCode reader for 2FA.

iTerm

I’ve installed iTerm 3.4.1, which includes M1 support. I use this as my default term when I don’t need to run a Rosetta version of a command-line tool. You’ll want to run most of your commands for software installed through the terminal with arch -x86_64. For example, to run Jekyll, I use:

$ arch -x86_64 jekyll serve --livereload --drafts

Maybe alias a='arch -x86_64' would be useful.

You can also set a Terminal with Rosetta, to avoid having to use arch -x86_64 all the time. Anything you’ll type inside will be running as intel version.

Homebrew

This is definitely not ready, and unless you want to spend a huge amount of time compiling software manually one by one (I tried a few, but not everything is ready for M1), I suggest you use the Intel version either with the arch command or within a Rosetta terminal.

$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Update: Homebrew now supports M1 natively, and you can install it the classic way following instructions on their homepage.

You can then reinstall your existing list of brews doing the following:

# On your older Mac
$ brew tap Homebrew/bundle
$ brew bundle dump

# Move the Brewfile and then execute on your new Mac:
$ arch -x86_64 brew bundle

Logitech Mouse

There seems to be a bug with the MX Master 3 Mac mouse and the Bluetooth connection, which you can quickly fix with a unifier dongle (I had an old one). Don’t think you can do without this trick. It’s really annoying, and the mouse cursor hangs. But reconnecting my mouse with the dongle fixed the issue.

Direnv

I use direnv for settings environment variables in projects, xcode and rails. I had to install Go manually first, and then build direnv from its source.

Xcode

Pretty expectedly, Xcode does work fine. But I was surprised it still took forever (1h?) to install + unpack.

Karabiner Elements

Update: I used to use this for years to remap command and option keys on my PC based keyboard. But it crashes M1 computers on reboots, meaning you have a This computer has crashed popup once restarted. I deleted it, and now use the default MacOS way to do that.

Conclusion

I’m pretty impressed about this M1. It’s fast, silent, and I have all my tools working either natively or through Rosetta. I can’t wait for all of them being built for M1 for the speed gain, but using the Rosetta version doesn’t feel slow at all.

It kinda feels like when arm64 was first released and you had to rebuild all your Linux software, until a distribution fully supported it.

What do you like most about your M1?