We had an excellent interview with Beth Dakin and Ronak Shah from the Safari team about what’s new and interesting for developers in Safari 14. There were so many good moments that I figured a round-up post was warranted. ICYMI (or don’t have time for the full convo), here’s the highlights from my POV.
We’re joined by Ronak Shah and Beth Dakin from the Safari team at Apple about their announcements at WWDC20 and the release of Safari 14. We talk about Safari WebExtensions, Face ID and Touch ID coming to the web, Safari’s plans to advance the web platform, and it all comes down to their focus on privacy, power, and performance.
The most common setup for SSH keys is just keeping them on disk, guarded by proper permissions. This is fine in most cases, but it’s not super hard for malicious users or malware to copy your private key. If you store your keys in the Secure Enclave, it’s impossible to export them, by design.
Docker is expected about 5x slower…
Docker on a Mac utilizes a hypervisor. Hypervisors rely on running the same architecture on the host as the guest, and are about about 1x - 2x as slow as running natively. Since you’re running ARM Mac, these hypervisors can only run ARM Linux. They can’t run x86_64 Linux.
And, “VirtualBox won’t work.”
VirtualBox is a hypervisor. Therefore, it won’t be able to run x86 Windows or x86 Linux.
And, “Boot Camp won’t work.”
Boot Camp is an Apple-approved way to dual-boot Mac OS and Windows. Boot Camp will definitely not be available on ARM Macs. It might be added later with the ability to run ARM Windows, though Microsoft would have to approve.
Turns out everyone’s favorite macOS package manager has an official cask for managing fonts. Who knew?!
Suitcase is a command line tool that can be “programmed” to display a SwiftUI interface that can trigger commands and scripts.
Brent Simmons did some analysis on download numbers for NetNewsWire on iOS and Mac.
Based on the above, and knowing that way more people use iOS than macOS, you’d expect the iOS app to be way more popular. But it’s not. It’s a little more popular.
I find this super-fascinating, because it’s some data — admittedly just one app — that confirms what I’ve thought for a long time, which is that, for some types of apps, a Mac app would do as well as an iOS app.
Control Room is a macOS app that lets you control the simulators for iOS, tvOS, and watchOS – their UI appearance, status bar configuration, and more. It wraps Apple’s own
simctlcommand-line tool, so you’ll need Xcode installed.
The author posted a nice demo video on Twitter and the response was so positive that they open sourced the tool.
You can rearrange them with ⌘ + drag and then click the arrow icon to hide.
I completely realize and wholeheartedly own-up to the fact that I’m a geek and a Mac power user above and beyond what normal muggles will ever experience, nonetheless, this is the first-run experience I was greeted to this afternoon after upgrading to Catalina.
I’m sure Catalina will be worth it in the end, but I’m going to sit this one out for a bit until the dust settles.
We turned a MacBook into a touchscreen using only $1 of hardware and a little bit of computer vision. The proof-of-concept, dubbed “Project Sistine” after our recreation of the famous painting in the Sistine Chapel, was prototyped by Anish Athalye, Kevin Kwok, Guillermo Webster, and Logan Engstrom in about 16 hours.
See that thing at the top of the laptop? It’s a mirror that’s redirecting the webcam downward to do the detection. How they detect a touch is (at least in principle) simple:
Surfaces viewed from an angle tend to look shiny, and you can tell if a finger is touching the surface by checking if it’s touching its own reflection.
Saagar Jha shared an honest perspective of using Homebrew and MacPorts. Find out why Saagar favors MacPorts over Homebrew “for the foreseeable future.”
A couple of months ago, I uninstalled Homebrew and migrated my configuration to MacPorts. I’ve been doing a lot of thinking about the state of package management on macOS, and here’s what I’ve come up with based on my experiences using both and interacting with their development communities.
I’ve wanted something like this for so long that I forgot I wanted it. Insta-install!
Pock can place your macOS Dock inside your MacBook’s TouchBar, letting you enjoy your screen in full-size every time!
It doesn’t look amazing right now, but there is a big update in the works that does look amazing.
The most widely used container runtime on High Performance Computing now runs on Mac, allowing any developer to package their entire application into a single container. This has broader implications and possibilities of what exactly is possible by putting everything into a single file with no daemon required on OSX but I would let an expert like Greg Kurtzer talk about that :)
This was a brief topic of conversation when we had Greg on The Changelog a few weeks back.
I’m logging this not because it’s super-useful in its current form (it is not). I’m logging this not because it’s a good example of a modern Swift app (it may be, I have no idea). Nope. I’m logging FeedCompass because it represents an idea that deserves more attention.
Independent websites, loosely stitched together via open protocols, are what make the web great.
Yeah, let’s do more of that.
On this week’s Homebrew episode, we discussed Mike’s script that automates the setup of a new Mac.
Listen to the show for an in-depth discussion on why he built it, the value of automating tasks you don’t do often, and to hear how Adam rolls with new machines. Or forget all that and click the headline link to check out Strap for yourself.
We’re talking with Mike McQuaid about Homebew 2.0.0, supporting Linux and Windows 10, the backstory and details surrounding the security issue they had in 2018, their new governance model, Mike’s new role, the core team meeting in-person at FOSDEM this year, and what’s coming next for Homebrew.
From installing Mac’s command line developer tools (Xcode), Homebrew, Git, npm, to your code editor — Michael Uloth walks you through all the steps and details to get a new Mac ready for web development.
This guide is a good start and purposely leaves out items that aren’t strictly required for web development. If you’re into automation and tweaking things, then thoughtbot/laptop is another route to consider. It automates most of Michael’s steps and can also be customized to install only exactly what you want.
Today, I’m excited to announce updates to our guides to Swift Codable and Numbers, as well as a brand new Guide to Swift Strings. Everything is up-to-date with the latest from Swift 5 and Xcode 10.2, and now — for the first time — available in print!
Everyone’s favorite package manager for macOS released version 2.0 with official support for Linux and Windows 10 (with Windows Subsystem Linux). Cross-platform setup scripts just got a whole lot easier.
This post from Daniel Weibel not only explains how macOS uses an outdated version of Bash, but also how to upgrade to the latest Bash via Homebrew.
One thing that many macOS users don’t know is that they are using a completely outdated version of the Bash shell. However, it is highly recommended to use a newer version of Bash on macOS, because it enables you to use useful new features.
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc.
The reason Apple uses this old version of Bash has to do with licensing. Bash 4.0 and newer uses the GNU General Public License v3 (GPLv3), which Apple doesn’t support. There are some discussions about this on Reddit.
Version 3.2 of GNU Bash is the last version with a license that Apple is willing to accept, and so it sticks with it.
Mattt over at NSHipster explains two important abstractions on Apple platforms: bundles and packages.
Despite being distinct concepts, the terms “bundle” and “package” are frequently used interchangeably. Part of this is undoubtedly due to their similar names, but perhaps the main source of confusion is that many bundles just so happen to be packages (and vice versa).
So before we go any further, let’s define our terminology: …