A Windows Guy Buys a Mac
A long-term Windows guy buys a Macbook for personal use and has some thoughts on it.
I picked up a Mac. While talking to some other industry professionals, I have learned that a lot of red teams use Macs for their day to day work. I haven't used a Mac in 10 years and my trusty 6 year old XPS needed to be replaced. So I bought a Mac. I had no idea how they work, but this post will be some initial thoughts on new Mac ownership.
Ethics Statement
I purchased this computer myself, with my own money at my local Microcenter. Microcenter had the laptop on sale for 10% off. I have had no contact or money exchanging hands with Apple outside a normal customer's perspective. All my opinions are mine and mine alone.
Initial Hurdles
Getting used to command for copy-paste is going to take some getting used to. Frankly I have had the laptop for six weeks now at of time of writing and I still hit fn
or ctrl
pretty regularly while trying to use keyboard shortcuts. Another typing trip up I have been stumbling on regularly, is cursor manipulation. I don't know if this is weird or not, but I hate moving my hand between a mouse and keyboard when I am using a computer. I bound media keys to my Logitech G502 so I can keep my hands on the mouse to change music, or volume instead of using a single-press button on a media key on the keyboard that's four inches away. When I make a typo, instead of using the mouse to click on the letter that the typo was made, I use keyboard shortcuts to move the cursor to the typo'd word or letter, then highlight it with shift, then re-type it out. On Windows, you can use ctrl
to skip whole words, then use shift to highlight. You can also use shift
and an arrow key to highlight single letters.
On MacOS, this is a little different. ctrl
and an arrow key moves virtual desktops, but if you use shift you highlight from cursor to either the beginning or end of a line. Using cmd
and an arrow will also skip a cursor to the beginning or end of a line, or top and bottom of a page. To get single word skip, you have to use option
. It's just 1 key over, but that muscle memory just isn't there yet and trips me up all the time. Just to make things a little harder, when I am in a Kali VM, I have to use ctrl
like I normally would. As backspace is delete on a Mac, deleting the character forward of a cursor means you hold fn
when pressing delete. Also, for some reason ctrl+Y
doesn't work to redo something. You have to use ctrl+shift+Z
. Also, if you double tap space it inserts a period at the end of the last word, just like it does on a phone. I thought that was kind of neat.
The only reason why I harp on these minor details is because I basically live in text. Between programming, CLI, taking notes, emails, social media, etc it's all text editing. So these little trip ups are annoying, but I hope to get more used to them over time.
Onboarding
After unboxing and linking the laptop to my Apple account, setup was pretty easy except for the Photos app. Apparently my laptop shipped with a version of MacOS which had a bug that corrupted the photo library when the Photos app loaded it. A system update solved that. I was surprised to see that not nearly as many MacOS apps go through the app store as I expected. Downloading and installing apps consists of downloading the .dmg files and mounting them, then dragging them into application in finder. When commenting on this on Mastodon, I was told by Will Dormann that it's due to the way that apps on MacOS are packaged.
As for more technical stuff, I had a buddy of mine come over who's probably the biggest Apple fanboy I've ever met help me sort a few things out and also solicited some advice from folks across a few social media accounts. For VMs, I am using UTM as the frontend for QEMU. The only VM I am really using is an ARM based Kali install, which has worked extremely well, generally. The only annoying thing I have had happen with it so far is finding out that Powershell isn't available on ARM Kali. My buddy had also recommended that I install iStat Menus. Which while it's a paid solution, I love having this kind of system monitoring in a convenient location.
Taking some advice from Michael Taggart, I installed iTerm2, Homebrew, Rectangle and Xcode.
Finally I installed Office, Firefox, and the Windows App (awful, awful name Microsoft. Be ashamed of yourself.). I later installed LittleSnitch, which is also a paid solution for firewalling and connection tracking. Finally, I set up my terminal to allow TouchID for sudo
. (Please bring TouchID back to phones). Frankly this setup quickly turned this laptop into an incredibly useful productivity machine. What's more surprising to me, is that I don't really have much in the way of complaints. I turned the taskbar at the top of the screen black to hide the bathtub of a notch and from there I have been extremely impressed with how well this platform works. I think the reason why is because of the move to ARM.
A long tangent
Without trying to start a flame war, I want to provide a little background here, but feel free to skip it if you wish. I got my first computer when I was 15. That was only 12 years ago. Sure, I had used them at school before, but not at home. Also, my school district was using HP workstations running Windows. I had used Macs from time to time in certain classes, like Photography in high school and I thought they were okay. I didn't love or hate them. As I started messing with computers as a hobby over the next few years, I started comparing and contrasting the way that the Apple ecosystem and PC ecosystem operated philosophically. Frankly I hated the way that Apple locks stuff down and controlled their ecosystem. I felt that Apple users where unsophisticated sheeple just buying the new shiny thing that Daddy Apple dangles in front of them. This line of thinking persisted for a number of years and still does to a much lesser extent nowadays. I'd definitely prefer a more open Apple ecosystem, although I don't mentally degrade people who buy into the ecosystem anymore because I'm a better person than I was as a teenager.
The turning point for me was buying my first iPhone. I had a string of phones which had major issues. An HTC 10 with overheating issues causing the phone to shut down while charging, to a Galaxy S4 with overheating and battery health issues, to a Pixel 2 with battery drain issues after 8 months to the point where it needed to be RMAd, then another Pixel 2 with the same battery issues after 3 more months. I got tired of having Android phones with significant issues which required replacement under a year. Not to mention issues I was having with Android itself. Specifically I had issues where my cameras wouldn't initialize when I was in the camera app, extremely frequent crashes for web browsers, and a litany of other software bugs for the second Pixel 2. This was a shame, because otherwise I would still say my Pixel 2 is my all time favorite phone. When it worked it was incredible.
I was a student at the time, so a new phone that often was not something I could afford. I decided to try the dark side, and bought the second generation iPhone SE, mostly based on price. I had the phone for 18 months, before replacing it with a 13 Pro that I still use today. I only replaced it because the SE because of low battery capacity, which I knew would be rough before buying it since it was based on the iPhone 8 design. After a little time adjusting to doing things the "Apple Way" I found it to be stable and reliable. The lack of customization options was disappointing. Notifications on Apple platforms are just bad compared to how well they work on Android. Additionally, I was running Linux on my XPS 15 at the time, which lead to it's own set of stability issues. The point is, that I wanted something that "just works". My time messing with daily driver tech as a hobby was starting to become a liability as I transitioned into full time work. While it's definitely far from perfect, I still have issues with the ways that Apple looks at their ecosystem. However, as I bought more into their ecosystem I've noticed that I don't have stability issues with my personal use tech anymore. It "just works".
I used to be a die-hard Chromecast fan. They started being replaced because they stopped working reliably. Dropping signal, not populating Chromecast units in the list when trying to cast a YouTube video to the TV, or god forbid I try to cast HBO or Netflix. They would fail and connections would drop out constantly. It isn't my internet or WiFI, because that's been a rock solid Ubiquti system for years that's never had major issues. I replaced the Chromecasts with Apple TVs and they again, just work. My laptop would work fine still, phones worked fine. Just the Chromecast.
Tangent Nearly Completed
Okay, so what did that tangent have anything to do with a new laptop? Well, it highlights changes in the way that I want computing devices to work for me over time. I love solving good technical challenges. I wouldn't be able to do what I do for a living without the love of the game. There's a difference however, between breaking or fixing something and having it feel good and something being annoying because it's broken. When deploying new software or VM in my lab and finally getting it to work the way I want, that's an awesome feeling. Same goes to when you're working on a CTF and you finally get your shell. The endorphin rush when you get that shell is one of the best feelings when working with tech. Now, imagine you just popped a shell and then it dies because the network manager on your VM commits seppuku and now you have to fix it so you can get back to work. Frustrating, right?
When making the purchasing decision, I was pitting the M4 Pro MacBook Pro (also a terrible name) against a Framework 16. These machines couldn't be farther apart philosophically. The Framework prides itself on being an open platform, encouraging part swaps and upgrades. A modular consumer laptop is the dream, and I think Framework has the ability to keep it going. I still want one. The Mac won my purchase for two distinct reasons. First, I know three people who have bought Framework laptops, and two of them started seeing issues with them after a year of ownership. One has had battery degradation issues, and the other had network stability issues. Secondly, ARM.
Living with ARM
I've long thought that an ARM based laptop has a lot of potential. I never thought I'd see it work well because I thought the dumpster fire that was the Surface RT would have scared off most companies from trying again. I always figured getting application compatibility from x86 to ARM would be next to impossible. Countless millions, if not billions of applications are on x86. It would be foolish to think that even a small fraction of them would be ported to ARM. ARM also had a reputation of being for low-power devices, like phones and wearables. Now, I am not an expert on ARM, or it's architectural history and capabilities. Apple is not the first company to try ARM on a laptop. However in my opinion, they are the first company that tied ARM on a laptop and did it right. Frankly, I think Apple is the only company who could switch their entire ecosystem to ARM and have it work so well out of the gate. This is one of the upsides of them having total control over their ecosystem. They did it before with PowerPC to Intel. So, when they announced the M series chips, I watched on with great interest.
A powerful ARM processor for a laptop, is incredible. I don't think I could ever go back to daily driving an x86 laptop in my personal life. It's insanely fast, but what's most impressive is that I charge the MacBook Pro once a week. I've owned it for 6 weeks now and I have charged it 8 times. One of those times was because I was using it to play music from a YouTube playlist for Twilight Imperium for about 16 hours in a day. Another time was because I was vacuuming my office and needed to get the cable off the floor so I plugged it in. There's been relatively few issues with it. I mentioned earlier that missing Powershell for the ARM version of Kali being one, the other was that right after getting the laptop, I decided to start learning x86 assembly. Both of these issues are trivially solved for me though, because I have an ESXi server 3 feet behind me. Toss up a Debian VM, SSH into it and the problem goes away. If I am away from home, I just VPN into my network and access the VM. This is one of the advantages of having a homelab for as long as I have. Frankly, if the only issue I have is some edge case software that's missing that I can remedy with a VPN and an SSH tunnel, that's a pretty small drawback for me.
Other Things of Note
Well, this article has gone longer than I anticipated. I just want to wrap up with a few more points of note about first-time Mac ownership. The built-in speakers are second to none. I don't understand how no other company can do speakers well in a laptop. The haptics on the trackpad are incredible. I know that it's literally a slab of glass, but they manage to trick you into thinking that you have real buttons and that when you press down on the trackpad it moved. Spotlight Search puts Windows Search to shame and then some. I can't tell you how many times I have typed in code
on my work computer and it decides that using Bing to look up the word "code" is what I want to do. No Microsoft, I want to edit some Python scripts stop shoving Bing down my throat. Meanwhile, I type code
into Spotlight and it magically opens VS Code. Amazing how something that should be simple is mind blowing because the bar to get something working properly is in hell, apparently. TouchID is awesome. Having biometrics being more easily accessible in the OS for applications to use is great to have, since I don't have to type in a 16+ character password nearly as often. I also haven't mentioned Apple's AI features because I just don't care about them at all. I haven't even used them outside of playing with it when I got the updates which enabled the features on my laptop. I don't find them useful.
Quick Final Thoughts
Overall, I am super happy with this purchase. I firmly believe now that ARM is the future and I hope to see x86 supplanted in my lifetime. Well done Apple, you made one hell of a laptop. For my use case and operating environment, I think it slots in perfectly for my personal workflow. I don't play games on my laptop as I have a dedicated system for that. But, for a mobile workstation, I really don't think there's a better platform out there for me as of now.
Changelog
2025-01-08: Updated wording on a sentence to make my point more clear.