Categories
Apple Computers Software

How to tell if an application is Apple Silicon native

If you are using one of the new M1 Apple Silicon Macs, you may be wondering how to tell if an app you have is optimized for Apple Silicon. There are a couple of ways to deduce this.

  1. Get Info: The first option is to use the “Get Info” option in the Finder. Navigate to the app’s location (usually in /Applications), click on the app, and the use Command-I. Under the “General” heading will be listing for “Kind:”, with three possible options – Application(Universal), Application(Intel), Application (Apple Silicon). The Intel and Apple Silicon options should be self explanatory. The “Universal” option means that the app is a “fat binary”, containing the code for both Intel and Apple Silicon versions. “Fat Binaries” have more coverage than an app compiled for either architectures, but they are also nearly twice the size of a standard binary.
  2. Activity Monitor: If the app is already running, you can open the Activity Monitor (located in /Applications/Utilities). Here you will see a list of all running applications. In the column labeled ‘Architecture’, you will see either Intel or Apple Silicon listed. Activity Monitor shows you the code that is being executed, so even if the application is a fat binary, it will only show the platform code that is currently being run.
Categories
3D Apple Computers

More benchmarks: Blender – MacBook Air M1 vs. MacBook Pro 16″ i9

A few other comparative benchmarks on the new MacBook Air M1 (16GB/512GB configuration), pitted against a MacBook Pro 16” (i9/64GB/4TB/Radeon 5500M-8GB).

Blender (running in Rosetta 2 on the M1). Demo files can be found here.

Fishy Cat (1 frame):

  • MacBook Air M1: 1 min 35 sec
  • MacBook Pro i9: 37 sec

Mr. Elephant (1 frame):

  • MacBook Air M1: 2 min 18 sec
  • MacBook Pro i9: 1 min 13 sec

Racing Car (1 frame):

  • MacBook Air M1: 13 min 22 sec
  • MacBook Pro i9: 8 min 52 sec

Now, of course this is hardly a fair fight. The i9 MacBook Pro has a discrete GPU (in this case, a Radeon Pro 5500M with 8GB). And Blender is being run via Rosetta. But in the wake of the ridiculous walloping all the Intel Macs are receiving by these entry level M1 machines, I thought it’d be nice to share an area where the Intel Macs are still (at least for the moment) worth their money.

Categories
Apple Computers

Apple Silicon Macs are here, and wow.

Ok, I’ll admit my previous post about the release of Apple Silicon powered Macs gave the impression that there wasn’t much exciting about the CPU switch, but boy, was I wrong.

I’ve had my hands on the M1 powered MacBook Air (with 16GB RAM/512GB SSD) for just a few hours now, and after putting it thru it’s paces, I’m floored.

I’ve run two benchmarks – XcodeBenchmark and Bruce X. These are more akin to real world benchmarks. I’m not knocking Geekbench of Cinebench, but these benchmarks involve actual applications that people will use, and actual projects that simulate what real world performance will look like. And after running each of these, and comparing it against my $4400 MacBook Pro 16″ i9/64GB RAM/4TB SSD machine, I’m floored.

Bruce X Benchmark

  • MacBook Pro i9 2.4ghz/64GB/4TB SSD: 16.03 seconds
  • MacBook Air (M1) – 16GB/512GB SSD: 11.69 seconds

XcodeBenchmark

  • MacBook Pro i9 2.4ghz/64GB/4TB SSD: 223.016 seconds
  • MacBook Air (M1) – 16GB/512GB SSD: 127.713 seconds

Again, these are real world benchmarks using real projects for Xcode and Final Cut Pro. And the MacBook Air doesn’t even have a fan. During the Xcode benchmark, the MacBook Pro’s fans spun up and were quite loud. The MacBook Air was dead silent. Of course, during sustained CPU usage the fan will be a benefit, as it will keep the CPU cooler, whereas with the MacBook Air M1, the CPU will throttle down to prevent the computer from overheating.

Here’s another comparison: I have a Logic Pro X project I’m working on that contains about a twenty tracks – 16 of which are audio tracks, the other 4 are software instruments, and of course, there are various effects applied to all the tracks. This project couldn’t play smoothly without stuttering on my MacBook Air 2020 i5 16/512GB machine. On the M1 MacBook Air, it plays as smooth as butter.

App performance isn’t the whole story though. The entire OS feels much faster. Apps (those that are Apple Silicon enabled) open incredibly fast. I’ve only tried a few apps that weren’t optimized for Apple Silicon, and the results have been great. For example, the original Pixelmator, which I still use for day to day graphics tasks, isn’t optimized for Apple Silicon. It opens quickly, and using it feels just as fast and performant as it does on my i9 MacBook Pro. Every app is different, of course, but Rosetta 2 looks like another incredible feat of engineering from Apple.

On the software development front outside of Xcode, things are a different story. There isn’t much of my everyday work toolchain that is ready for Apple Silicon yet. Stuff like HomeBrew, NodeJS, Docker and other web technologies are not quite ready for Apple’s new chip, and anyone who works with these technologies would be advised to wait before upgrading to the new machines.

But for everyone else – come on in, the water is fine.

The short of this is: If you are using your Mac for Xcode, Final Cut Pro or Logic Pro X, you are going to be blown away at what these Macs with the M1 chip are capable of.

Amazon is currently dropping $50 off the price of the M1 powered MacBook Air and Pro.

Categories
Computers Software

Intel NUC and Linux for Web Development

More and more over the years, I find myself using Linux for day to day development. And why not? Most of the tools I use are available for Linux, and Linux is free and totally customizable. But can a developer who has long used macOS for his day to day tasks cut it on a Linux system? Let’s find out.

Tools

First, let’s cover what I use in my day to day work. Being a web developer, the tools I use daily consist of:

  • Visual Studio Code for my IDE. Sometimes, I use Sublime Text. But for the last year, it’s been 95% Visual Studio Code.
  • Docker for virtualization of development environments.
  • Slack for team communication and collaboration.
  • Google Meet and the G-Suite for all of the company daily meetings and document and file sharing. We make extensive use of Google’s web apps – Docs and Sheets, primarily.
  • My employers online tool is the Atlassian suite of products – Jira, Confluence and Stash. Being web based, using these on Linux isn’t an issue.
  • Various assortment of command line utilities including Docker, PHP, Ruby, NodeJS, Python, MySQL and MongoDB.
  • Chrome/Chromium, Firefox for browsing.

So every bit of software I use daily is available for Linux, and generally works as well as it does on a Mac. Visual Studio Code and Slack are both Electron apps, and while they work well on Linux, there’s a couple of caveats I’ll get to later in the article which you will want to be mindful of.

Hardware

I first gave this workflow a test run using an older i7/6700k based desktop machine I’ve had for awhile. It was plenty powerful for what I run, and felt confident that I didn’t need a machine with a dedicated GPU, and could instead get by with something small and power efficient, so long as it had sufficient RAM (32Gb) and decent CPU performance. The Intel 10th generation i5 NUC fit that bill. I opted for 32GB of RAM (2 x 16GB SO DIMMS). I could have gone whole hog with 64GB of RAM, but I think for my needs, 32GB is plenty of headroom. I went with a Crucial P1 1TB SSD. It’s not the fastest PCI NVMe SSD in this class, but it was much cheaper than the Samsung EVO, and offered plenty of performance for a coding workstation.

I already had a couple of LG 4K Displays I was intending to use for this setup, but, as I’ll explain later, I had to use a different solution with this system.

Setup of the hardware is simple. You remove four screws on the bottom of the NUC, and pull of the bottom. You have 2 DIMM slots in which to install the RAM, and the NVMe slot for the SSD. I opted for the tall version of the NUC chassis, so I could also install a 2.5″ SSD later on if I so desired.

After installation, I powered up and installed Ubuntu Linux 20.04. Ubuntu has long been my distro of choice, and the 20.04 release is one of the best releases of this OS ever. Upon booting up, I checked that the Wifi and graphics worked OK, and then opted to do minimal install. This is one of the things I’ve come to appreciate with Ubuntu in the last few releases. I don’t need or want all the bloatware of an office suite and a dozen other tools I’ll never use. The minimal install option allows me to get the basic system and a browser running quickly, at which point I can install only the things I’ll need.

Quirks

This setup was not without it’s issues. First, was my monitor. I have an LG 27″ 4K display I intended to use with this machine. Running at 100% or 200% scaling works fine. Ubuntu/Gnome has had fractional scaling for a few releases, but it’s far from perfect. Unfortunately, the area it suffers the most is with Electron apps, of which both Visual Studio Code and Slack are. Both will randomly switch to 100% scaling, which means their interfaces get really small. This can be fixed with a restart of the app, but it happens frequently, so it’s annoying.

The other issue with the 4K display happened when trying to play back videos on YouTube in 4K. They weren’t super choppy, but they weren’t super smooth either. The Intel UHD integrated graphics in the Intel NUC10I5FNH1 seem to struggle in Linux beyond a 1080p display resolution. In addition to the video issues, the UI in GNOME wasn’t smooth either. Ditching the 4K panel and instead using an older Dell 24″ 1080p display returned video and UI responsiveness to acceptable levels.

So now things are setup and running smoothly. I’ve passed my first day of using this system for work, and I’m pretty happy with it. I’m not surprised that both VS Code and Slack run so well on Linux. I had tried both of these apps on Linux prior to going down this route, since they are the core of my toolset. And of course, all the command line tools I use work just as well on Linux as they do on MacOS, even if sometimes (Docker) they are a bit more involved to install and setup.

The only area that’s currently giving me a bit of grief is with the VPN. My company uses Pulse Secure to connect to our VPN, and while there is a Linux Pulse VPN client, it relies on several package dependencies that are abandoned and have not been updated for Ubuntu 20.04. I’m currently using OpenConnect in it’s place, and while it does work, it’s not nearly been as stable and as consistent as Pulse VPN was on my Mac. I’ll post an update once I get this bit ironed out.

So far, the biggest inconvenience I’m encountering is my lack of 1Password for Linux. I use it on all my iOS devices and Macs, and have everything synced thru iCloud. Those aren’t options on Linux unfortunately. I’ve used Enpass before, and it’s an OK cross platform solution, but since I’ve ditched Dropbox for iCloud, there’s no real way to keep the Linux machines and the iOS devices in-sync.

Are you using Linux for your day to day work? What challenges are you experiencing in your workflow? Have you felt the pros outweigh the cons? Let me know down below in the comments.

Categories
Computers

Macs are cheaper than PCs… Change my mind.