MacOS and keyboard shortcuts

Last August, I gave up my four-year-old Linux T590 Thinkpad for a MacBook Pro. They’re different, and in some aspects, it’s been a difficult journey because MacOS is not Linux. In other ways (apps, audio, Bluetooth, etc.), MacOS has been fantastic.

The hardest thing to get used to is the keyboard shortcuts. I use keyboard shortcuts extensively, and they’re quite similar between Windows and Gnome Desktop. Not so with MacOS. MacOS is not Gnome, and it’s not Windows either.

Shortcuts that I still get wrong, six months later, and so I’m still learning.

  • I hit CMD-Home, expecting to go to the top of the web browser window, or the top of a document.
  • I hit CMD-up-arrow to go to the beginning of the line, and does something else. On Windows/Gnome, CTRL-up-arrow does what I expect. On Mac, it’s CONTROL-A, and CONTROL-E to move to the end of the line, just like with zsh and bash (by default), so I can accept that.
  • F2 in the Finder doesn’t rename files. Apparently, the Return key does this instead. I can get used to that.
  • In PyCharm, I still don’t know how to set and jump to bookmarks.

Mac doesn’t have window-snapping like Gnome or Windows, so I use Rectangle to remedy that. Although the keyboard shortcuts are different, I’ve gotten used to them.

Now that I use Mac during the workday, I’m used to starting apps with COMMAND-space. When I use our at-home Windows computer or my Linux computer, it takes me a few seconds to adjust to the different shortcut keys — just hit the windows key, no space bar needed.

The differences under-the-hood are far more striking than the keyboard-shortcut differences, but that’s a topic for another day.

My computer is the best and the worst

I have an excellent Thinkpad T590 running Ubuntu 22.04 — one of the best Linux laptops I’ve had, and yet it’s the worst. I have a snappy iPad Pro that is one of the best tablets I’ve ever used, and yet it’s the worst.

How can a computer be the best and the worst? Each has strengths and weaknesses.

Strengths of the Thinkpad + Ubuntu

  • My target deployment platform is Linux, and so developing on Linux is a much closer fit than using Windows or Mac.
  • Speedy docker — it’s native. On a Mac, it’s never native because it’s not Linux, and always goes slower — at least 10x slower, sometimes 100x slower, depending on whether the docker image is intel or uses native instructions.
  • Intel Iris Pro GPU with in-kernel drivers means that the display just works, including with external monitors. Suspend and resume work as well. It’s way better than with proprietary drivers.
  • Command line tools have all the GNU power options I want and to which I am accustomed. I.e things like “grep -P” for perl-style regex.
  • Powerful computer, not too heavy, 5 hours of battery life, even after 4 years of use.
  • Robust materials. It doesn’t fall apart. Excellent keyboard, including a number pad.
  • Matte screen — reducing glare, and nice to look at.
  • Chrome. Most critical things I need run pleasingly well in Chrome — Outlook, MS Teams, etc.
  • No ads inserted.
  • No Microsoft overlord forcing MS Edge on users.
  • Gnome desktop. No, it’s not particularly exciting, but it works, and it has great window snapping, very much like Windows.

Weaknesses of the Thinkpad + Ubuntu

  • Bluetooth audio. My Bose headphones work far better with my iPhone or iPad than with Linux. Linux bluetooth audio drops randomly, or is lower quality.
  • Audio with multiple possible output sources. My MS teams in-a-web-browser audio is always a challenge in this scenario.
  • Sometimes audio and/or bluetooth doesn’t work after a suspend/resume cycle, and I have to reboot the computer. Lately, I’m in many more conference calls, and unreliable audio is frustrating. Happily, I can switch to my iPad, where audio just works — every time.
  • Anemic built-in speakers, and tinny-sounding audio from built-in microphone. It’s subtle, but low audio quality makes it hard to listen to calls as effectively, and adds stress. This goes for the remote end of the call as well. There’s a reason podcasters invest in quality microphones. In my experience, Apple hardware has much better built-in speakers and microphones than any PC I’ve ever used. That said, purpose built-external mics are always better quality.
  • Apps. No WhatsApp for Linux (maybe that’s a good thing!), and same for many other apps that have no web-based option, forcing me to use my smartphone without a physical keyboard.
  • No fingerprint reader, no face unlock.
  • Viewing of thumbnails in the file explorer stinks compared to Windows or Mac.

Strengths of the iPad Pro

  • Instantly available and ready to go, 99.9% of the time, unlike Ubuntu, which is okay, but not as pleasing in this regard.
  • FaceId to unlock — so much faster than with a password or a pin.
  • Apps — so many to choose from. There’s an app for everything.
  • Excellent sound and microphones — great for conference calls, and it can even service an entire team in a conference room doing a remote call with people elsewhere — with its built in capabilities
  • Keyboard. Yes, I have one, and it makes my life better.
  • Bluetooth: It’s reliable, unlike with Linux — especially important with audio.
  • Touch screen.
  • Apple pencil.

Weaknesses of the iPad Pro

  • The apps for Google docs and Google sheets are surprisingly anemic compared to the web-browser experience — i.e. almost unusable, other than for viewing and simple editing. I’d just use them in Chrome, but Google dumbs down the online in-Chrome experience for iPad, forcing me to use the apps.
  • Side-by-side google docs. I often want to look at two documents at the same time, but Google docs doesn’t let me do that. It’s one at a time or nothing. Desktops are so much better.
  • Chrome. It’s running on a powerful M2 processor, yet Google disallows the extensions that improve my life. Desktop chrome is so much better.
  • Copy and paste within apps. Why is it, that in a web browser, I can copy-and-paste the portions of a conversation that I want (such as just the phone number or just the address), and paste them elsewhere, but within an app, it’s the entire text, or nothing?
  • Apple pencil for writing notes. Apple notes places the translated text wherever it pleases.
  • Apple pencil capabilities are underutilized. Most apps (Apple Notes, Apple Freeform, Miro, MS Whiteboard, etc.) don’t seem to support the pressure sensitive nature of the pencil.

Operating systems and the hardware they run on are like footwear. Flip flops, running shoes, irrigation boots and ski boots each have their place. That said, I don’t want to be lugging around all at the same time.

Investment in memory safety: Chrome, Rust and other tooling

The software most of us use on a daily basis wasn’t built with robust security in mind. If it was built with any effort toward security, it was most likely built with “casual”, or “good intentions” security.

The process that gives us our modern software has typically focused on features and value rather than preventing malicious actors. Yet we live in a connected world, and although connectivity brings power and opportunity, it also brings risk.

Risk because there’s gain in hacking our lives and the organizations with which we interact — schools, hospitals, insurance providers, municipalities, government agencies, social media networks and smaller scale entities.

So I’m glad that Google engineers are vigilant in looking for ways to improve the security of the Chrome browser that so many of us use on a daily basis.

https://security.googleblog.com/2021/09/an-update-on-memory-safety-in-chrome.html

Using better tooling will not solve all security problems — nowhere close, but it’s helpful.

NPR: When Patents Attack!

I write software for a living, and I have a hard time recognizing redeeming value of software patents (other than to have something to negotiate with when someone tries to sue a company). Reading the NPR transcript about patents got my blood boiling. The system has been gamed, and patent troll companies legally extort money from other companies.

Read or listen here. Are there good reasons to have software patents, and if so, on what types of inventions and in what circumstances?