- 2022-03-07: Introduction
- 2022-03-08: Keyboard shortcuts
- 2022-03-09: Input methods
- 2022-03-10: Look'n'feel
- 2022-03-11: Window switching
- 2022-03-12: PowerToys
- 2022-03-13: Miscellaneous tools
- 2022-03-14: Development experience
- 2022-03-15: PowerShell
- 2022-03-16: Networked file systems
- 2022-03-17: System debugging
- 2022-03-18: Software installation
- 2022-03-19: Finale
A bit over a week ago, I narrated my decades-long love and hate relationship with Windows. Today, it’s time to start covering my impressions of this platform after spending a year on it as my primary OS. This is noteworthy because I had been a Unix-only person for about 25 years and spent the last 15 on macOS alone. Switching to Windows 10 and 11 has been quite a change and… for the most part, a positive one. I like what I’ve seen.
A blog on operating systems, programming languages, testing, build systems, my own software projects and even personal productivity. Specifics include FreeBSD, Linux, Rust, Bazel and EndBASIC.
A year using a different platform both for work and personal computing comes at around 3,000 hours. That’s a long time, which means I have many different things to talk about. The first draft of this post clocked at about 20+ minutes of reading time, which was way too long to make coherent. As a result, I’ve broken the content into a series of bite-sized posts. The series will run for two weeks and I’ll be cover topics like GUI differences, the development experience, networked file systems, and many more.
As an interesting fact, the seed of these series comes from a draft I started in 2016 when I first installed Windows 10 on an old HP EliteBook 2530p. Not much is left from that original text but I’ve had this idea of detailing how modern Windows feels to someone that had been off the platform for a long time. The time has come.
To kick off the series, let me briefly describe the hardware I run Windows on because that will provide some context for upcoming posts.
As of today, I regularly use 4 different machines. Too many indeed, but that’s the price to pay to keep personal and work computing separate. Here is what I’ve got:
A personal Mac Pro 2013 running Windows 10, which is my primary machine.
A personal Surface Go 2 running Windows 11, which I use whenever I take kids to activities or whenever I want to focus on writing. “Al pot petit hi ha la bona confitura.”
A work-issued Surface Laptop 3 running Windows 11, which I use sometimes around the house and will probably start using more now that I’ll be commuting again.
A work-issued ThinkPad P43s running Windows 11, which is the secure workstation that I’m required to use to reach production systems at work.
Oh wait, but there is more:
A remote dev box running Windows Server 2019, which is a ridiculously overprovisioned virtual machine that I use to develop Azure Storage on.
A home server powered by FreeBSD 13. I had always had an underpowered server in some way or another (the latest iteration had been a PowerMac G5) but, precisely because of Windows on my desktop, I decided to upgrade the server and my home network equipment to something slightly faster. We’ll see why at a later stage when I cover networked file systems.
Using these many machines on a regular basis comes with problems, of course.
The first problem is dealing with different physical keyboards. One thing I used to love about the Mac is that, for a period of time while I was at Google, I had the exact same keyboard layout on my desktop and on the work-issued MacBook Pro thanks to the Apple Wireless Keyboard. Those days are long gone because I switched to a Sculpt Ergonomic Keyboard and Mouse around four years ago, which is much better for my comfort but… using 4 different keyboards layouts regularly is… not the greatest experience.
The second problem is having to sync configurations across these computers to try and keep a relatively homogeneous environment. I’ve had a private Git repository for many years (it used to be a CVS repository!) hosting configuration files for zsh, vim, Emacs, mutt, various X window managers… which has been great to keep my sanity. Fortunately, I have been able to apply the same paradigm to some Windows tools as well, which has helped. This involved having to write some PowerShell to have a native “installer” for my settings, and I’ll talk about this later too.
That’s about it for the introduction. In the next episode, I’ll dive deep into my biggest pet peeve: keyboard layouts and shortcuts. Make sure to come back tomorrow!