I have a new thing™ that I’ve been doing that has been helpful for me. You’ve seen the title: you already know what it is. But let me explain why it’s helpful and how I stumbled upon it. First: the backstory! My History with Cleanliness # Cleanliness and I have a contentious relationship. I love when things are clean, but I dislike cleaning . I’m sure I’m not alone here. Clean rooms are amazing.…
I recently started using Hyprland . Ah thank you, thank you, please hold the applause for later. Hyprland was physically painful to set up. I toyed with the idea for months, but every time I started going through the “ Master tutorial ” I got stuck. I felt a bit like a beginner firing up vim for the first time: incompetent. And yes, I had to reboot my computer more than once because I didn’t know…
Several years ago I built my own Raspberry Pi NAS . It was a fantastic experience, and it’s become one of the most useful tools I’ve ever built. Not only does it save and catalog files for me, it also hosts a bunch of git repositories. Why do I host my own git repositories? I like to own my own data . When I create my own git repository on my own in-house server, no one else has access to it. No…
A year ago I signed up for a ConvertKit Creator account (now known simply as Kit), which is where I was, originally, hosting my email list . I chose Kit because everyone else was using it. It seemed like a good choice for a small creator. Their marketing was on point. Everything went fine until I suddenly found myself with 1,000 subscribers. Kit has since changed this, but at the time, 1,000 subs…
We recently experienced a big ice storm. It was a perfect storm: extremely strong winds, heavy, wet snow, and a lot of it. A spring storm, no one was prepared for it. My city told everyone to stay home, because they wouldn’t be scooping the streets. Of course that didn’t stop many of us: mid-westerners love to get out and see a good storm, and also to be available to pull their neighbors out of…
The older I get, the more I realize how important it is to make music. I went through a time when I thought it wasn’t worth the time. An hour every day—or even a half hour—is a HUGE commitment. And if you want to improve (you should) then you need at least that much time. It’s a lot of time, and there are other things I’d rather be doing. But that attitude was short-sighted, and I didn't consider…
NixOS is a great package manager, and it has a ton of packages available. I love installing new apps, because it’s just so darn easy. Search for a package , find the name, add it to your config, rebuild… profit? But what do you do if you don’t find a package? Shrug shoulders and find an alternative? I find often times that the apps that don’t exist on Nix are usually AppImages. I don’t know…
Working on multiple computers has always been a struggle for me. Since I was young, I always dreamed of a computer that fits in your pocket. Not a phone exactly, but something the size of a phone, that you could plug in to any screen, and use as a full workstation. I wanted a swiss army knife: something that could do everything, but small enough to fit in your pocket. The first Apple product I…
App launchers. Do you use one? My intuition says that few people do. Most of the people I know who use app launchers are programmers, I don’t think I’ve ever seen a “normal” person who does. But maybe they should. App launchers are incredibly useful, and can save you loads of time. They provide a free form of automation: with a single key combination you can access loads of normally obscure…
When I switched to NixOS, I also switched distros (because I am a glutton for punishment). Instead of Pop_OS!, I now use KDE full time. And I like it. KDE has a ton of little niceties that I missed in Pop. Most of them are pretty minor things, but when you use computers 8-10 hours per day, like I do, minor things can be important. So let’s talk about KDE. The KDE Ethos # Before we get into…
Honestly I wasn’t excited about the keyboard when I bought my framework laptop. Why? Well, I was convinced that all laptop keyboards are crap. My last Macbook Pro was a 2017, and I also bought a 2019 Macbook Air. These two laptops had hands down the worst keyboards I have ever used. These keyboards had the infamous “ butterfly switches ”, and I hate them so much. They are mushy, have almost no…
I’ve been trying to decide on a new laptop for several years now. Yes years. Seriously. I think about big decisions for a looong time. And a computer is the source of almost everything I do, so it’s a big decision for me. My Macbook Pro is getting increasingly frustrating to use, and I am determined to never buy another Apple product . So I shopped around… a lot. I had never considered a non-Apple…
NixOS is an incredible operating system. But it’s also challenging on every level. I’m learning a lot, and it’s amazing how much works “out of the box” with Nix. However , the things that don’t work out of the box can be a huge pain to implement. One of the things I wanted to tackle early on was auto login. I don’t like having to login three times anytime I reboot a computer—once for the display…
I do most of my writing in Obsidian. Scratch that: I do all of my writing in Obsidian. I’m obsessed with Obsidian. Most days I spend hours in the app, creating, editing, and tweaking. It’s a wonderful note-taking app, and I use it for everything from journaling to task management. But I have a problem when it comes to workflow: I frequently find an easy way to do something, and use it for way…
I saw this and thought it might be handy to have around. The current community-created list of AI bots-to-block . I updated mine . Does it do anything? Who knows. Bots that scrape webpages are supposed to consult these documents and honor them. But nothing forces them to. It’s an honor system, and if there’s anything we learned from I, Robot , it’s that there is no honor among machines. I operate…
Back in 2022, I wrote an article provocatively titled “ I’m done with LocalWP ”. The big reason why? No easy migrations. This is a big deal to me, because I manage lots of little WordPress sites. The ability to quickly bring a site up-to-date with little fuss or mess is important to me, and when I wrote that article, there were no easy solutions. Well, unbeknownst to me, six months later LocalWP…
I bought a new vehicle last week. Not “new” new, because new vehicle depreciation bro , but it’s new to me. A new, used vehicle. I always forget the rigmarole that you have to go through to get these things registered. As a result of my short memory, I had to go back to the DMV… Three times. Grr. For some reason no one told me the full requirements up front, and there were no clear instructions on…
Code blocks. They’re great, but also a bit annoying. I’ve been working on a new WordPress site , using the Blockbase theme by Automattic. So far I’m impressed with Blockbase, it’s a quality theme and easy to update without code. But there’s an issue with the theme. An issue with (you guessed it) the code blocks. Code blocks in the Blockbase theme, by default, don’t preserve whitespace when you…
A few months ago I decided it was time to start searching for a new phone. Is it possible to find a private and functional smartphone in 2023? I wanted to find out. For the past four years I’ve been using a refurbished iPhone 6S (originally manufactured in cough 2015), so my baseline expectations here were pretty low. It’s well known at this point that Apple intentionally slows down old phones…
I’ve always considered myself decent at math. My arithmetic and multiplication are solid, I know my times tables, I can even do basic algebra and geometry. I remember taking calculus in school, but I didn’t retain any of that. It never seemed very practical to me, and I forgot it all. As a programmer, I’m also very skilled at thinking through logic problems. I can figure out how to do just about…
Full disclosure: I'm a bit of a coffee snob. I brought coffee beans, a grinder, and a brewer to work for years. I roast my own beans, and I only consume bad coffee in the direst of circumstances. I've read dozens of coffee books, and hundreds (or thousands) of articles online. In short: I take my coffee seriously. Perhaps a little too seriously. What does all of this get me? Honestly, not a lot.…
A few weeks ago I wrote about how I broke my keyboard . I learned an important lesson that day: moving fast and breaking things is all well and good with software, but with hardware it’s not the best strategy. In any case, I recently purchased a soldering iron (and solder) for a different project, and I guess it’s time to put it to use again. In addition to those items, I also purchased the…
Google is retiring another product. They do this routinely , but this time it’s different. It’s not a niche product with a small (for Google) set of users: it’s a flagship product, in use on millions of websites. Google is retiring Google Analytics. What’s that you say? You didn’t hear about this? Well, Google doesn’t say that they’re retiring it. They claim that they are upgrading it. But it…
Well, I made a mistake today. I started using a beautiful ergonomic keyboard a few years ago , and I’ve grown to love it. It was hard to learn how to use it at first, but now it’s hard for me to imagine working without it. It has become an extension of my hands. But unfortunately, I noticed a problem with it this morning. I was sitting down to write when one of the keys got stuck. All of a sudden…
A few weeks ago I wrote about my favorite thing about Obsidian . I mentioned that Obsidian has become my personal operating system. At the time I said that Obsidian has become: My personal assistant My project manager My writing and brainstorming tool My friendship tracker My system for remembering important dates and events My second brain My guard dog, keeping safe all my most important dreams,…
Installing apps on Linux can be unnecessarily difficult. Here’s how to make it easy! Just Use Nix # Nix is an excellent package manager. Why? Because Nix has everything . Nix contains over 80,000 packages, and it’s growing daily. If you use Ubuntu or Pop!_OS (like I do) then you’ve been disappointed by Ubuntu’s Advanced Packaging Tool (APT). There are so many apps that it seems like APT should…
I love learning new things. I always have, and I always will. That’s one reason why I became a web developer, so that my very career would force me to spend my whole life learning. But not all learning is created equal. Last year I started cleaning up my mental consumption, and every part of my life has improved as a result. Let me explain. Feeding the Mind # Breakfast, dinner, tea; in extreme…
The last year I’ve been obsessed with a new tool called Obsidian . I’ve spent countless hours with it, gleefully creating and refining. It has revolutionized every aspect of how I work and live, and I want to talk about why. What is Obsidian? # Obsidian is ostensibly a note taking app. But it’s so much more than a note taking app. It’s the best note taking app I’ve ever used, and it has gradually…
This is a PSA for myself more than anyone. CSS has come a long way since I started using it. Most of the “hacks” we used in CSS back in 2010 have been replaced with better alternatives. Off the top of my head, here are a few paradigm shifts we’ve made in the last decade: We used to use… Now we use… Floats, absolute positioning, and tables Flexbox and CSS grids PHP and Sass variables CSS custom…
I’m probably a glutton for punishment, but it’s true: I’ve been looking into alternatives to the “big two” smart phones. As I said a few weeks ago, I’m transitioning all of my tech away from Apple , and I suspect the hardest part of that will be the phone. I’m super happy with my new desktop experience . Sure I’m constantly tweaking it but that’s part of the fun. The next big hurdle is ditching…
Tom Critchlow has some good thoughts about this . I disagree with his number one point though: Keep a drafts folder Drafts folders # Keeping a drafts folder has never worked for me. That was where my perfectionism consigned imperfect projects to die. I would think “this article is okay, but not ready yet. I’ll put it in the drafts folder until I get around to finishing it”. But I would never…
Note: Amazon links below are affiliates. Feel free to open in a private tab or Google the product name if you prefer. I gave my Uses page some much needed love this week. I have changed virtually everything about how I work over the last couple of years, and I’d like to explain a little more about why here, as well as catalog for myself how I used to work. I used to be an Apple guy # I recently…
Yes, it’s true: I’m no longer an Apple guy. In fact I can hardly stand Apple, and I’m retiring my Apple devices one by one. I’ve deleted their software, cancelled my subscriptions. I will never give them another dime if I can help it. What has brought me to this point? Well, let’s start with a little ancient history. My computing history # My first computer was a Lenovo laptop, on which I…
I hate to say it, but I am abandoning Local WP (formerly by Flywheel). I used it the last couple of years, but I can’t do it anymore. I’m done. Why? # One big reason: databases. It is a huge pain in the neck importing databases into Local. I don’t have to do it very often, but every time I do it drives me nuts. Database imports have required nasty hacks for at least four years , so I don’t expect…
A couple of years ago I wrote about getting back into RSS . Two years later I still love RSS, and I continue to read my RSS feeds daily. But RSS has its frustrations, in particular partial RSS feeds. If you use RSS you’ve probably encountered these. You get an introduction to the article, and a “click to see the full article!” link. I understand why publishers like these—you don’t get views from…
I purchased an Nvidia GPU [1] about a year ago, and installed it in my System76 Thelio Mira . I am not a hardware guy, and to me, one graphics card was as good as another. I checked and made sure the Nvidia card was compatible with S76 hardware, and it was, so I figured I was good to go! And it worked well for a while. I installed the drivers, carefully disassembled my desktop (which was a joy, by…
Last week I wrote about an easy method for controlling windows in Linux . I ended the article by saying “perhaps there’s a way to automate this…” and it turns out, yes, there are SO MANY ways. Down the rabbit hole I go… This week I’ve been exploring alternative window managers . Window management is a topic I’ve never really investigated before. On Mac, there are plenty of apps that will help you…
Backstory: I like to have dedicated keyboard shortcuts to swap to and from the apps that I use the most. For example, “hyper+s” switches me to Sublime Text, my text editor. “hyper+b” takes me directly to Brave, my web browser. And so on. I use plenty of other keyboard shortcuts to swap apps and workspaces, but it’s nice to be able to reliably swap to a certain app with a single shortcut. It helps…
Ever since I saw this feature on Søren Birkemeyer's blog , I’ve been envious. He wrote about his method of accomplishing this , but it was a little bit intimidating, to be honest. There are steps and technologies I don’t understand (like Perl 😳), and I wanted to find an easier way, a way with fewer moving pieces. Søren maintains a json version of his git history within his repository, but I hope…
HTML5 is a large language, but not a massive language. I’m not sure if the MDN HTML elements reference is comprehensive or not, but if so it looks like there are about 100 valid HTML tags. It’s entirely possible to learn and use all of the valid elements in HTML5, but few of us do. Most of these elements are useful on most sites, but if you're like me, you might just forget that they exist. Here…
Broken links cause real problems, not only for your users, but also for the health of your site. Broken links are a real indicator of a neglected website. People want fresh takes, not stale leftovers. It honestly amazes me how many links end up on our websites. They are the fundamental building block of the web, and they are everywhere . We often times don’t realize just how many links exist on…
As you may have noticed, there’s a lot going on in the world right now (citation needed). Covid-19 has affected everyone in unique and unforseen ways, and there’s no telling how long it will take for many (even most) of us to recover from this pandemic. There’s also no telling how much longer this will go on. It could be weeks, it could be months, and it’s important to set good boundaries for…
This is a project I've had on my "want to try" list for a long time, and I finally made it happen. Let's start at the beginning, as I'm sure many of you have questions. The very title of this article is a bit dense, and requires explanation, which I will give you forthwith. First of all, what is a NAS? # NAS stands for "Network Attached Storage". This is a fancy word that means "an external hard…
In the past, whenever I have needed to push to multiple origins for a git repository, I have added another remote: git remote add gh git@github.com:WebInspectInc/test This works, and is how you're “supposed” to do it. But I often times dislike this solution. This is because anytime you push, you have to push to multiple origins, rather than one. No longer can you just run git push , you have to…
Last week I wrote about owning your own Feedbin data with 11ty. I talked about what it’s like accessing and using data with 11ty, and how you can do so in your own projects. But I didn't want to stop there. Feedbin's API has tons of features that could be useful in our blogging journeys, and I wanted to create a plugin that allows people to make the most of it. Enter my 11ty Feedbin plugin , a…
Introduction # As a mentioned a month ago, I have been getting back into RSS , and loving it. I used to be an RSS fanatic, checking it every day like a social network, but such fervor eventually burned me out. When you're reading anywhere from 50-100 articles a day, it’s tough to take a day off. You know it will mean more work for you later. Back in the day we used to have Google Reader , but it…
I have been programming for over a decade. I have worked with many people who used all sorts of keyboards, from the nerdiest to the normal-est. Never did I think I would become a keyboard nerd. It isn't something that ever really interested me. I mean it’s like any other keyboard, right? But then I began to struggle with wrist pain. I’ve probably averaged 6+ hours typing every day for over a…
Here's a really fascinating idea from PPK and Chris Coyier . The idea is that we should promote and think about CSS4 as if it were an actual thing, even though it’s not . I think many of us who love CSS as a language can relate to this idea, especially those of us who lived through the heyday of CSS3. CSS as a language used to get more attention than it currently does, and it’s easy to hope that…
I recently discovered, to my delight, Veerle Pieter’s delightful website . I was reading through her tutorials when I found her article on spirographs , and I very much enjoyed reading about this technique in Illustrator. I've always been a fan of spirographs, they seem to epitomize the link between mathematics and art. Illustrator, on the other hand, I do not like very much. Adobe products in…
I have never been a big fan of online tracking. I believe that online tracking fundamentally breaks many of the precepts the web was built on, as of today, for the first time ever, I am tracking the traffic on my own personal website. To explain how I got here, let me tell you some of the main issues I've seen with online tracking. Tracking is slow # Online trackers are breathtakingly slow . Using…