Technology Update

misc

This is just a post about some changes I made to my personal computers. Probably not interesting for most people, but I like to document this stuff so I can go back and say, “when did I switch to ____? And how did that go?” And who knows? A few people might find it vaguely interesting after all.

Back to Mac.

I’m not switching back to Mac by any means, but I did buy a new Mac for personal use.

My summary of Apple computers up to now:

  1. They have OK hardware. Mac fans will say how amazing the hardware is, but when you drill down, they’re usually talking about the machined aluminum body. I’ve seen and experienced more hardware issues on Macs than I have on PCs. Motherboards, keyboards, screens. I will agree that Macs look good and feel good. Historically, they’ve had the best trackpads. The screens are bright and crisp and have nice color, but also develop dead spots and weird color patches that I’ve never seen on any other laptops.
  2. MacOS is OK. It’s frustratingly un-customizable and locked down. I’ve never felt that I really fully owned a Mac that I bought. It felt more like I was being given the special privilege of being able to use this device as long as I used it only in the way that Apple decided I should use it. It’s probably more useful if you own a Mac and an iPhone and an iPad and an Apple Watch and an Apple TV and all the other Apple/i-devices. And buy your music and apps and games and movies and tv and books and subscriptions from Apple. And use Apple services/apps for your email and backups and online file storage and sharing and chat and web browsing and documents. But I do exactly none of that stuff.
  3. I hate Apple as a company. I get infuriated watching their keynotes. They are all so smug and in love with themselves about how amazing this or that new feature is and how it’s going to change your life and transform the world. They constantly claim to invent things that have existed for years. Or rename existing technology to make it sound like something new they created. They are actively developer hostile. They PR themselves like they are saving the world, but don’t ask about their sweatshops. All this is my opinion. You are free to disagree with me, but I’m not going to argue about it. If you don’t see it like I see it, that’s cool.

So if you’ve even read this far, you’re probably baffled at why I actually bought a Mac. I’ll be honest, it pained me to give the company any of my money. But I was doing a lot of work with Minicomps and bljs and I was finding a lot of issues with Safari that I needed to fix, as well as stuff that worked or looked differently in Chrome and Firefox on the Mac. I was using a Mac VM, which was not great, and my work Mac, which I don’t like to use for personal stuff.

I had some money come in for a project I did and decided after long deliberation to pick up a new Macbook Air with the M1 chip. I got the cheapest version. $1049 on Amazon. I’ll be honest, it helped a little bit giving Amazon the money rather than Apple directly.

And I’ll be damned if the stupid thing didn’t start winning me over. As I said, Macs are good looking machines. This thing looks nice. It’s thin, it’s light, it’s quiet, it does not get hot. It is goddamned fast. Faster than it has a right to be. The trackpad is still really nice. Other manufacturers have caught up with Apple over the years on the trackpads, but it’s still probably the best. The screen is bright and colorful and crisp and no splotchiness yet, but we’ll see how it looks in a year or two. I have to say though, the screen is the worst fingerprint magnet I’ve every seen. I don’t recall ever actually touching it, but it constantly looks like I ate a couple of tacos and wiped my hands off on the screen. The keyboard is meh. I don’t really like it, but it’s not the worst I’ve ever used. To be fair, my main computer is a Thinkpad, and I love Thinkpad keyboards.

The sound. This gets its own paragraph. I am shocked how good this thing sounds. As much as Apple’s overuse of the word “magical” has become a meme, the sound on this device really is magical. It’s deep and rich and loud and sounds like it’s coming from a foot or two behind the machine. I have no idea how they accomplished that kind of quality in this thin little laptop. I’ve never had a laptop that sounded a tenth as good as this sounds, including other Macs.

MacOS is… still MacOS. I still don’t like it but I’ve used it for many years at work and I’ve learned to live with it. As I said, I’m not into the Apple ecosystem or have any other Apple devices, so all I really need MacOS for is to launch the apps I use. For me, this mostly means a terminal (Alacritty) and a browser (Firefox and Chrome mostly).

I still hate the dock. I’ve tried a few alternatives – cdock (not supported on M1) and ubar. Both are pretty good, but in the long run they wind up being a bit frustrating to use – inconsistencies and things not working just right. I suspect that this comes down to Apple not sanctioning these kinds of UI customizing apps and not supporting the things that they do, if not outright making it harder for them to do those things. So I’ve gone back to the dock and I’m trying to make peace with it.

Summary: I hate to admit how much I like this machine. In spite of it’s 13-inch screen, it’s great for watching videos, listening to music, browsing the web etc. It’s OK for coding, but great for coding on the train or in the car while waiting for my wife to finish shopping or whatever. Although I used it a LOT in the first few weeks, I’m over the honeymoon period and mainly back to my Thinkpad as my main machine. But fairly often I’ll have both machines open in front of me.

KDE

The other big change in my technical life was switching Linux desktops environments from XFCE to KDE.

If you’re not into Linux desktops, most of this will go over your head. But unlike MacOS which is severely locked down from a UI viewpoint, Linux almost has too much choice. Beyond all the differences between various distros under the hood, your graphical user environment, display manager, window manager, theming, default applications and a bunch of other stuff are all packaged into what is known as a desktop environment, or DE.

Probably the two most popular DEs are Gnome, which is the default DE on Ubuntu and several other distros, and KDE. Others include XFCE, Mate, Budgie (Solus), Pantheon (Elementary OS), and Cinnamon (Linux Mint). Not a comprehensive list at all, but that goes to my point about too much choice.

All these environments have a different look and feel, different levels of customization, and different opinions on how things should work. For a few years now I’ve been very happy with XFCE. It’s one of the older DEs and has a reputation for being ugly and boring and unchanging. The last point I agree with. The “exciting new features in the latest XFCE” is a bit of a meme – you’d be hard put to tell the last several versions apart. But it’s actually very customizable and can look really nice if themed correctly. The Manjaro distro has a very beautiful and functional implementation of XFCE.

But I’ve been feeling the need to switch things up after so long on one environment.

I don’t like Gnome at all these days. I used to, but it’s been going down a really strange path in terms of limiting customization. It relies almost entirely on 3rd party extensions for adding and customizing it, but does not curate or take any responsibility for those extensions.

I’d tried KDE a few times years ago and always found it over the top in terms of drop shadow, glows, sound effects and gratuitous animations. It felt like a UI that was made in Flash. But I gave it a test a year or so ago and found it a lot better. Toned down all the goofy stuff. Now it looks really slick and professional. KDE also has the reputation of being uber-configurable. Almost every single UI element on the screen can be configured. You can go down a serious rat hole, but if you want configurability, KDE is where it’s at. I came away from that test run knowing that if I ever wanted to move off of XFCE, I would most likely move to KDE.

And so I decided to go with Manjaro KDE this time. I’m really, really liking it so far. More than I thought I would. I’ve gone down a few rat holes configuring things to death, but managed to get out alive. In addition to its built-in options, KDE has a rich ecosystem of 3rd party plugins, similar to Gnome’s extensions, but it seems like they take an active role in curating them, so from what I’ve seen, the quality is much higher than what you see in Gnome.

All that flashy over the top stuff is still available, but it’s not the default anymore. I’ll admit that I turned on the cube rotation effect for switching between virtual desktops – something I recall fondly from early OS X days. Other than that, I’m keeping it pretty understated, and to be honest I find myself recreating my earlier XFCE look and feel.

So I think I’m pretty sold on KDE for now. I’ve committed to using it for several months. But already, I don’t see any compelling reason why I’d go back to XFCE. There’s nothing in XFCE that you can’t do as well or better in KDE. The biggest selling point of XFCE is its minimalism.

So that’s that. If you actually read all of that, hoping for more, I apologize.

Noise: 2d vs 3d, Perlin and Simplex

tutorial

In yesterday’s post, I ran across this statement about Simplex noise:

noise generated for different dimensions are visually distinct (e.g. 2D noise has a different look than 2D slices of 3D noise, and it looks increasingly worse for higher dimensions).

https://en.wikipedia.org/wiki/Simplex_noise

As promised, here’s an analysis of what that actually means visually for rendering Simplex noise.

Curl Noise, Demystified

tutorial

In my recent post on mapping Perlin noise to angles, I was put on to the subject of Curl noise, which I thought I understood, but did not. I figured out what Curl noise really was in a subsequent post and then posted my earlier incorrect (but still interesting and perhaps useful) concept of Curl noise in yet another post. Although I kind of understood what Curl noise was at that point, I wanted to give myself a more complete understanding, which I usually do by digging into the code, making sure I understand every line 100% and seeing what else I can do with it, trying to make multiple visualizations with it to test my understanding, etc.

Curl Noise

experiments

My last post on Perlin noise wound up on hitting Hacker News, which generated an enormous amount of views, and a fair number of comments – here, on Twitter, and on HN itself. Of course, there was the usual eye-rolling, condescending, “why doesn’t he just do ….? that would be the obvious approach” kind of comments there, but a fair amount of actual helpful ideas, explanations, and links. One thing that came up over and over was the idea of using curl noise. So, when I got a chance, I went ahead and used curl noise.