Categories
Apple Computers Software

Thoughts on Apple Silicon

WWDC has come and gone, and the rumors were largely true: Apple will begin a migration to its own CPUs (which Apple is currently just calling ‘Apple Silicon‘) sometime later this year. This move had been rumored for a few years now, so it came as a surprise to absolutely no one. Apple has long strived to control the entire widget, and with this move, it will remove Intel from the product matrix, giving Apple near total control over it’s Mac’s technological composition.

Now, Apple didn’t say anything about future Macs, apart from telling us they will use Apple Silicon. But if you watched enough technical presentations from WWDC, and paid attention to some of the details, there are some pretty obvious tells.

One of the biggest tells was Apple declaring in their keynote video that future Apple Silicon based Macs will be able to run iPhone and iPad apps directly. These apps will be available in the Mac App Store automatically, unless Developers check a box that will restrict them from appearing there. Now, many iPad apps have been gaining mouse/trackpad input support, so these apps running on an Apple Silicon Mac will probably perform as good on a Mac as they will on an iPad. But what about iPhone apps? These apps generally do not have input device support beyond touch. How will these apps function on a Mac?

Touchscreen Macs.

Apple has been saying for a decade that adding touch input to a Mac was a bad idea. But during that same time, Apple has brought mouse/trackpad/keyboard/pen input to the iPad, something it said was best controlled with touch. So all the while Apple has been claiming that the Mac with a touchscreen would be a terrible compromise, they were bringing the Mac-ness of using a keyboard/mouse/pen to the iPad. So it clearly thinks that an iPad with expanded input support beyond touch is now a good idea.

If you’ve used the macOS Big Sur beta, you’ve no doubt noticed some of the big changes to the user interface/experience. Much of the UI looks more like iPad OS now. Apple is pushing for the Macs icons to use the same ‘squircle’ shape that the iPad/iOS use. It’s made the menu bar’s top items more spaced out, as if to allow for a larger touch target. They’ve applied the same spacing to the menu bar icons as well. The modal save/don’t save/cancel dialogs now feature larger buttons, as if to accommodate fingers instead of mouse cursors.

Control Center in macOS Big Sur. It sure does look like a lot of these UI elements are optimized for touch, doesn’t it?

So basically, Apple has made numerous UI enhancements that all seem to drive towards one goal – better input with something as imprecise as a finger.

Now, maybe we won’t get touch support when the first Macs with Apple Silicon ship later this year. Nobody knows which Macs will go first, but if it is a Mac with a built in screen, there’s a strong likelihood that it will feature a touchscreen.

There’s one other observation I’d like to make. Just a few years ago, Craig Federighi said during a keynote that Apple was not merging iOS and macOS. Well, they may both remain distinct OSes particular to their own hardware, but Apple has definitely gone just about as far as merging them as you can go without actually merging them.

The Proof:

  • iPadOS 14 and macOS Big Sur share a common design language.
  • With Apple Silicon, you can now develop for both platforms in one app codebase, using SwiftUI.
  • You can easily bring your UIKit iPad app over to the Mac, thanks to the work of project Catalyst.

And if the above two scenarios don’t work for your iPad app scenario, you can just run the iPad app as-is on your Apple Silicon based Mac.

Now, there are still some major distinctions between the two platforms. For instance, the iPad still lacks a window manager. It is reliant on the App Store for installing new apps. The iPad security model is more restricted than the Macs. It doesn’t have legacy hardware support for the devices like the Mac does. There is still a feature chasm between the two platforms. But that chasm has grown considerably smaller. It’s small enough now that comparing the high end of the iPad (the iPad Pro), and the low end of the Mac (Macbook Air), can make choosing one of these devices for a particular task difficult. Once the Macbook Air/Pro can run all of the same software that you can run on an iPad, along with software that’s not restricted to the App Store, the chasm will be even smaller between the two platforms.

That sure does sound like the two products have merged to me.

Oh, and one final thought. The TouchBar is a goner. There was no mention of any improvements to the TouchBar API during WWDC. With touchscreen capability coming to future screen enabled Macs, the TouchBar becomes relegated to the long list of Apple technologies that never quite made sense.

Now, if we could just get Apple to add the AppleTV remote to that list.

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
Photography Software

Luminar 4.1 brings new features

Luminar 4.1

A little over a months since the release of Luminar 4, Skylum today announced that Luminar 4.1.0 is now shipping. New features in version 4.1 include:

  • Erase Tool Technology (think Content Aware fill in Photoshop
  • Atmospheric Haze slider for AI Sky Replacement – helps make a swapped in sky adapt to the rest of the photo
  • Portrait enhancer now works with smaller faces
  • 53 bug fixes, 17 memory management improvements
  • Photoshop 2020 support

Luminar 4.1.0 is a free update for Luminar users and can be updated thru the app itself.

Source: Skylum