Thoughts on the loss of RBG

There is an alternate reality where she died where I can reflect on her life with the awe and admiration that her life and career deserved.

In that reality, I’m not super torn up about her death. She had an incredible run and her legal decisions have had ripple effects on law and justice in the US that reverberate throughout the rest of its history.

And in that reality I can acknowledge that she wasn’t perfect. Liberal as she was, she fell short of overcoming racism. In her entire career she only hired one black clerk, and her comments about Colin Kaepernick (for which she did later apologize) demonstrated that even trailblazers have blind spots, and that it’s important to always be welcoming in the next generation of trailblazers because for all of us, there will be a day when we will start getting in the way of progress.

But that isn’t the reality we get to mourn RBG in, is it?

Instead I am stuck worrying about Mitch McConnell applying a double standard that we could tell from miles away he was going to apply, and indeed he came up with a doozy of a bullshit reason for why it was okay for him to not hold hearings for Merrick Garland in 2016, but how he will indeed hold confirmation hearings for whomever Trump nominates.

In Portland we only just today got a break from the incredibly smoky air from the nearby wildfires that were keeping us holed up in our houses. And that’s just shortly after we were gearing up for the possibility we’d need to evacuate because of those wildfires and heavy winds. And that’s in addition to the general long-term threat caused by the climate change we’ve been letting happen for decades without trying to address with urgency.

And of course all that is in addition to the fact that we’ve been living in a pandemic for most of the year and the US is handling it worse than just about every other country in the world.

Also, the US is being pushed to reckon with centuries of racist history, and we’re struggling to do anything about it.

And most of the US agrees with me that we should do something about these issues, and presumably as a democracy that means we’d have leadership doing something about it, but we don’t, because of a mix of gerrymandering, the electoral college, and the fact that in the Senate, every state gets two senators, meaning that California, a state that if it were its own country would have the fifth largest economy in the world, gets as many senators as Montana. 37 times as many people, but the same number of senators.

It must have been such an incredible burden for Justice Ginsburg to bear, knowing that the court, already ideologically shifting further right, was somewhat being held in balance by her, and that she needed to stick it out until after Trump left office to avoid the court shifting incredibly far-right. To stay on the bench not because it was her ambition (which it was), but to soldier through illness after illness while continuing to work because there was no other good option.

The context makes all the difference.

And it’s in this context that the news of her death leaves me feeling so much despair. RBG’s death in itself isn’t the despair; it’s more the sprinkling of salt that brings out the flavor of despair in everything else we’ve been experiencing in recent history.

I look forward to a hopefully not too distant future where the wounds of today have healed and we can look back at RBG’s life and feel the inspiration I wish I could feel today.


Clipboard History with Alfred

Note: this is your last chance to win a free Alfred Powerpack!

If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • follow me at @harpaa01
  • Subscribe to icanthascheezburger via email
  • Subscribe via RSS at the link above and leave a comment with your email address (I won’t publish the comment)

If you also mention one of these posts on Twitter or Mastodon or (and mention me so I can see it) you’ll double your chances.

Winners will be randomly selected on Wednesday. I don’t want to reveal too many numbers here, but let’s just say you’d have really good chances of winning if you entered.

homer simpson saying he likes those odds

Copying and pasting is a nice little productivity boost that you get when using a computer, but the fact that you can only ever have one thing in the pasteboard at a time is kind of limiting.

With Alfred, you don’t have to feel limited in this way: enter Clipboard History.

alfred clipboard history

This is the kind of feature where you first hear about it and your reaction is an unenthusiastic “hmm, neat.”

But I promise: once Alfred is keeping your clipboard history and you actually get used to it being there, it’s liberating.

It’s easy, just invoke Alfred, type in the keyword to get to the clipboard viewer (mine is c) and hit Enter, and you’ll be greeted with recent Clipboard items.

“What was that URL I had a few minutes ago? Oh, no worries, I’ll just grab it quick.”

Ever feel a little bit hesitant to delete some text from your document? Just ⌘X and you can cut it with confidence that it’s right there if you change your mind, even if you copy some other text to the clipboard later.

Got a list of different things you are going to copy from one file to another? Don’t keep cmd-tabbing back and forth; just copy them all in sequence, then use Alfred to get the one you need, right when you need it.

The clipboard history is searchable, so even if you don’t 100% remember when you copied something, or even if you don’t quite remember exactly what the text was, you can quickly find it.

If you copy images to the clipboard, Alfred handles that too!

By default, Alfred won’t keep sensitive items in the clipboard history, like things copied from your password manager or the Keychain.

But wait, there’s more!

Keeping recent clipboard items is great, but what if you just have some snippets of text that you frequently want to include in documents?

Alfred’s got you.

Enter snippets!

alfred snippets

You can give snippets of text a name, and then when you’re searching the clipboard history, you can search for the snippet of text by name.

And if you want to use Alfred as a basic version of TextExpander, you can also add the ability to automatically expand snippets when you enter the keyword.

These snippets are highly useful, and you can import them from the web. I’ve imported a collection of emoji by name, for instance.

You should use Alfred!

This is my final post in this Alfred series. I’ve shown you how to do a variety of things with Alfred, and it’s still hard for me to describe exactly what Alfred is for, because Alfred can be used for anything you really can imagine setting it up to do.

But at the end of the day, Alfred buys you back some time in your day, a few seconds at a time. Sometimes when you use it, it buys you back a few minutes. But it helps you do things without effort and without thought.

And when you’re in “the zone” and Alfred can keep you in the zone by making it possible for you to do something like type in the glyph for ⌘ without having to dig into the character viewer, Alfred just gave you back more than just that couple seconds.

I don’t spend tons of time using Alfred (and you shouldn’t!), but I invoke it many times a day:

CleanShot 2020 08 31 at 18 39 51 2x

And if Alfred kept track of my usage across every device I’ve used it on, it would no doubt tell me that I’ve used Alfred at least fifty thousand times since I first installed it 10 years ago, almost to the day.

Thanks, Alfred!

Keyboard Projects: Iris

Over the past year I’ve developed a periodic habit of going on and just ordering up a kit for a keyboard just to try it out. Like with most mechanical keyboard supply shops, you have to keep a close eye on when things are in stock, but they have some fun and relatively simple keyboard kits.

I recently embarked on trying to find an answer to the question “what if I had a keyboard that was like the Planck, but had just a couple more keys on it?”

There are a couple Planck-like keyboard projects out there that kind of fit the bill of what I was looking for, but I noticed the Iris kit on and decided to give that a shot.

It’s a split ergonomic type keyboard with an ortholinear layout. Each half has 28 keys; a 6×4 grid, plus space for 3–4 thumb keys on the corners of each half.

Now, its default layout is set up not quite like a Planck; it’s actually using the top row as number keys, like this:

Iris keyboard layout (default)

But this is a fully programmable keyboard, so I don’t need to concern myself with such limitations!

Instead, I decided to lay mine out as though it’s a Planck, just with some extra keys added:

my Iris keyboard layout

Switches and Keycaps

Once you’ve picked what kind of keyboard you’re making, the next most important set of choices are going to be which switches you’re going to use, which will in turn inform which key caps you can use. The switches, if you’re not familiar, are the component that goes beneath each key cap, and it’s the “mechanical” part of a mechanical keyboard; it actually has mechanical components within it that are responsible for actuating when you press a key, and are also responsible for a good chunk of the clickiness you feel when you are typing on a mechanical keyboard.

The Iris PCB, luckily, is quite flexible! It supports three main types of switches: Cherry MX-style switches (by far the most commonly used in modern mechanical keyboards), ALPS switches (very popular in the 80s and 90s with some die hard fans still today), and Kailh Choc switches (a thinner switch that enables you to build a low-profile keyboard with less key travel and less thickness).

I initially decided to lay mine out with ALPS-style switches made by Matias. Because ALPS-style switches use a different plastic stem shape, that severely limited my key cap options, so I just bought a set of blank key caps from Matias.


Building the keyboard is pretty straightforward. The latest PCB is basically all pre-made; you just have to solder the switches in, then screw the case together. It’s a good beginner project, too, because there are only 56 contact points you have to solder on each half.

Once I had the keyboard together, and once I ported my layout over to it and flashed it, I gave it a whirl. But the thumb keys proved to be a problem; they were basically blocking the two keys they’re in front of.

So, I decided to try something experimental: what if I bought a few low-profile Choc switches, and used those for the thumb keys instead?

That’s got to work, right? The PCB supports both types of switch.

It was a little janky, and the PCB wasn’t built to have more than one variety of switch in it at once, but with a little flexing, I got the Choc switches (Jades, if you were wondering) soldered in and they worked!

PCB flex

Show me the keyboard!

It came out looking pretty cool. Note that despite my stint living in Wisconsin, I’m not as much of a Packers fan as the key caps let on; the supplier I got the key caps from included some color key caps as freebies.

Iris glamour shot

close up of the Iris keyboard

And of course, you’re probably wondering how it sounds. Well, I am delighted to say that the ALPS-style clicky switches are some of the clickiest you can get, and these are nothing short of really satisfying to listen to:

Mind you, with this particular choice of case and plate and keycaps, I am ending up with a somewhat different sound than these same switches produce on another keyboard. Let’s hear these ALPS switches on my Ergodox Infinity, for instance:

The difference is more pronounced in person, but the sound is deeper than on the Iris.

Also, the four thumb keys are using “thick click” Kailh switches, which also have a lovely little sound and feel to them:

I think if I could do it over again I’d have picked the slightly stiffer Navy Blue Choc switches.

Parting Thoughts

Whenever I’m using a Planck or similar 48-key keyboard, I’m always thinking to myself “if I just had a couple extra keys here that’d be just perfect.”

And so I give myself a few extra keys with the Iris, and I realize it’s not the productivity boost I thought it’d be.

The issue: With the Planck, everything is within super easy reach. The thumb keys on the Iris are just far enough away that your fingers second guess themselves when you try to use them. That slows me down more than you might think. So even if this gives me some new dedicated keys I can now hit without a layer switch, it’s still actually just faster for me to hit the equivalent key on the Planck, even though hitting that same key involves two keystrokes.

I’ll give myself more time though. This keyboard is still a lot of fun to type on and I really do like how rich and clicky it sounds. Also, the switches are still a little stiff and would benefit from a little more time to break in as well as a bit of lubrication.

This is a great quarantining project too. Material costs are $100–150 depending on what components you pick out, and the soldering work is pretty easy. Hit me up if you have questions about it.

Fully Programmable Keyboards

I first got hooked on mechanical keyboards in 2012 for the simple reason that they felt really nice to type on. They make nice satisfying clicky sounds, but also they just feel nice under your fingers. It’s a delight to the senses.

But the bigger thing that’s kept my interest in mechanical keyboards as strong as ever is the growing industry of enthusiasts making highly customizable keyboards.

Let’s talk about keyboards that are “fully programmable.”

Not all mechanical keyboards are like this. In fact, most mechanical keyboards you find at retail aren’t. But when I’m recommending a keyboard for someone, I almost always recommend one that’s fully programmable.

But what does it mean that the keyboard is fully programmable?

Most of you are probably using a keyboard that looks, more or less, like this:

apple keyboard

You have been taught that each key does what it says it does, and that’s that. That means if the keyboard’s layout has a weird design decision, you’re kind of stuck with it.

Fully programmable keyboards aren’t restricted like this.

On a fully programmable keyboard, you get to tell your keyboard which key is which, and that becomes embedded in the keyboard’s firmware. That means those customizations are still there, no matter which computer you connect it to.

You can do this in software with apps like Karabiner an AutoHotKey on your computer, but it’s a pain to install that software, and if you want to use the customization on, say, an iPad, this isn’t an option. But when the keyboard itself can be customized, the customization is in the keyboard.

Let’s go over a few simple example things you might want to customize on a typical keyboard:

  • Swap the Windows key and the ALT key so that the Windows key is just to the left of the spacebar like Mac users are accustomed to
  • Turn your Caps Lock key into a CTRL key
  • Turn your Caps Lock key into an Esc key
  • Turn your Caps Lock key into both a CTRL key and and Esc key! When you tap it, it’s Esc, and when you hold it, it’s CTRL. Whoa!
  • Turn that extra CTRL key into a key that’s shift+cmd at the same time so you can type some of those more obscure keyboard shortcuts without having to do finger acrobatics
  • Make your Shift keys do double duty by having them type a frequently used symbol when you tap them, but otherwise when you are holding them down, let them be a Shift key.
  • Take a spare key and make it so that when you hold it down, it gives you a whole other layer of keys on your keyboard, full of all your frequently used keyboard shortcuts.

Quite simply, a keyboard with programmable firmware will work just the way you want it, and if you don’t like how it’s working, you can change it. Do you keep hitting the “-” key when you meant to hit the 0 key? Just make them both a 0 key and assign the “-” key somewhere else where you won’t accidentally bump into it!

Is it awkward for you to type keyboard shortcuts with lots of modifier keys at once, like shift+ctrl+alt+5? Turn the modifier keys into one-shot keys so that you can just press them in sequence, then press the 5, then it’ll work as if you were holding them all down at once.

When the keyboard is programmable, you get to be in charge!

Fully programmable keyboards are pretty cool with standard layouts, but they also open up a whole new world of keyboard options for you. Look at this tiny little keyboard, for instance:

split Planck keyboard with cute key caps

If you showed me this photo several years ago I’d have been intimidated. “I’ll never learn how to type on this!” This is now one of my most-used keyboards. I had the confidence to try it out because I knew that its layout could be customized any way I like.

With my keyboard fully customizable, I have a whole new dimension of tool-sharpening available to me, and I take advantage of that multiple times a week. I’m often coming up with simpler keyboard shortcuts that are macros for more complex ones, or finding ways to make it less awkward to type certain things on a variety of keyboards.

Programmable keyboards have fundamentally changed my relationship with keyboards. It’s not the keyboard’s world; it’s my world, and the keyboard is a tool I can craft to be just so.

Your keyboard is a very intimate tool. Your fingers are always in contact with it. It is the vessel by which your thoughts travel from your mind to the computer screen.

If you do your job at a computer you spend hours a day interacting with a keyboard, so don’t fuck around with some flimsy generic $15 keyboard. Get a keyboard that is a delight to the senses to use, and works with you, and for you.

And if programmable firmware blows your mind, wait till you find out what other ways your mechanical keyboard can be customized!


Security ProTip: Fake Security Question Responses

There are a lot of web sites (banks come to mind) that force you to add a series of security questions to your account, and you often don’t get to pick the security questions.

This is a terrible security practice.

Security questions are as good as a password usually, and they’re usually asking you things about your own life that aren’t changeable, and that people can possibly learn about you. Even worse, you don’t know whether a web site is storing these responses at rest in plain text. If they are and you gave the web site your real high school nickname, then you’re one data breach away from having the world know that people in high school called you “Harps.”

But no one says you have to tell the truth when providing answers to these security questions. Instead, use your password manager to generate fake security question responses and put those in as passwords:

entering fake security responses into 1Password

I choose to have 1Password generate memorable passwords that are multiple words with spaces as separators between the words, and I also set these up as passwords in 1Password (instead of text) so that they are masked by default, and so I can just click them and copy to my clipboard. It’s also easy to reveal them in case I’m calling customer service and I need to recite them over the phone.


Building Custom Jigs With Alfred

note: I’m giving away some Alfred licenses!

Because I love Alfred so darn much, I’m giving away Alfred Powerpack licenses to some lucky readers. If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • follow me at @harpaa01
  • Subscribe to icanthascheezburger via email
  • Subscribe via RSS at the link above and leave a comment with your email address (I won’t publish the comment)

If you also mention one of these posts on Twitter or Mastodon or and mention me you’ll double your chances.

I’ll pick winners next Wednesday, September 2, 2020!

I like to watch experienced craftspeople do woodworking from time to time, and the more I watch good ones doing their work, the more I realize it has a lot in common with software development as a craft.

One such similarity is that woodworkers will often see opportunities to make themselves more productive by building little custom tools for themselves such as jigs to help hold a piece of wood in place, or to help make consistent cuts when doing some repetitive work.

Here’s a common enough use case: I have a projects folder where I keep all my programming projects. I very commonly want to just open one of the folders in that projects folder with my editor of choice.

Alone, Alfred makes this not too difficult:

alfred accessing a project folder

That isn’t bad.

But we can do it faster with a workflow.

This workflow has two components: a script filter input and an action that runs a script.

This is the script filter:

script filter

The code for the script filter:

I’m not that good at Bash scripting and I lifted this code from some other Alfred workflow years ago. But to customize it, you’ll want to change the directory where it says cd ~/projects to match the directory you keep your projects in. You can also customize the text to say whichever editor you plan to have projects open in.

The action script is set up like so:

script action

The script reads simply /usr/local/bin/mate ~/projects/{query}. Your editor will be a different binary. If you use VS Code and you’ve set it up to launch from the command line the path to the binary will be /usr/local/bin/code instead.

With everything set up, let’s see how it looks:

alfred script filter workflow in action

Not bad!

Alpha Lima Foxtrot Romeo Echo Delta

Ever been on the phone with customer service and you need to spell something out, and you think “man, I wish I actually knew that NATO alphabet so I could spell out letters using words and sound like a military badass”

Alfred lets you be that badass. You’ll need a third party workflow for this. Download it and add it to Alfred, and once you do, just type nato into Alfred followed by the phrase you want to spell to the person on the phone. And if you press Enter it will display in large type.

demonstrating using Alfred to display Nato alphabet words

I don’t always need this, but when I do, it’s useful. And if I ever do need it, it’s just a couple keystrokes away.

Now, go forth and look for an excuse to say “niner” to someone.

Want an Alfred license?

Because I love Alfred so darn much, I’m giving away Alfred Powerpack licenses to some lucky readers. If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • Follow me, @harpaa01 and DM me to say you want a PowerPack
  • Subscribe to icanthascheezburger’s email newsletter
  • Subscribe to the RSS feed, then also leave a comment with a way for me to reach you (comments are moderated and I won’t publish it)

To double your chances, share a link to this blog post on your Twitter account (mentioning @harpaa01). And if you have over 100 followers your chances are tripled.

I have gotten zero takers so far on this, so an Alfred Powerpack literally could be there for the taking!

Searching the Web Far and Wide with Alfred

This is a use case that got me addicted to application launcher style apps before Alfred even existed (back then Quicksilver was all the rage).

It doesn’t take that long to Google something; you just go to an open browser window and type something in the address bar and hit Enter. If you’re savvy with your keyboard shortcuts you’ll know that ⌘L will focus your keyboard on the address bar so you don’t even need to lift a finger from the keyboard.

But that still takes a second, especially if you’re not in a browser right this minute.

Alfred’s got you covered. Look no further than the Web Search feature:

alfred web search settings

The best part: this doesn’t just work with Google; you can search just about any site on the web that supports search. You can jump right into a Google Image Search, for instance (my shortcut for that is gim), or search Amazon for something.

performing an Amazon search with Alfred

Instant Bookmark Access with Alfred

I use a lot of different web apps throughout my work day, and I can’t be bothered to navigate to them all the time.

Using Alfred to launch apps on my Mac is great but it’s too obvious a use case to be worth a blog post.

However, Alfred does integrate with major web browsers to give easy access to your bookmarks.

Alfred Web Bookmarks settings

(looks like Firefox isn’t supported out of the box but you can install an Alfred workflow to make these work).

From there, all you have to do is invoke Alfred and start typing the name of the bookmark and you’re off to the races.

I have a few different GitHub-specific shortcuts, such as one that takes me to my notifications page (I named that one ghn), one that takes me to the issues I’ve written (myissues), and one that shows me my current pull requests (myPRs). Alfred will automatically suggest the best match in real time so I usually just have to type the first few letters and then hit Enter.

Protip: If you work at a company that uses Okta single sign on, I recommend that you copy Okta links to each of your apps and make bookmarks of those. That way, if you’re not signed into the app, it’ll take you through the Okta sign-in process first:

copying URLs for Okta

Depending on how effectively use your bookmarks this might save you only a couple seconds, or it could save you several if you were pretty inefficient before. But over time, if you’re opening up bookmarks all the time, this adds up to decent time savings over time, and it keeps you in your flow state. Plus, the satisfaction of being able to open arbitrary bookmarks with just a couple keystrokes is incredibly satisfying.

Get a free Alfred License!

As I mentioned in a previous post, I’m giving away some Alfred Power Pack licenses because I love Alfred so darn much.

If you use macOS and you’re interested, just follow @harpaa01 on Twitter and DM me to let me know you’re interested. If you want to double your chances and you’re willing to shamelessly plug me on Twitter for it, mention me with a link to this post on Twitter. And if you have 100–999 followers, your chances of winning will be tripled. Yes, that’s right, tripled! This offer also valid on my account (but I don’t think has DMs so just mention me)

Not a Twitter user? No problem, subscribe with your email address and you’ll be entered. Using RSS? No problem, comment on this post (make sure you leave your email) and show me a screenshot proving you’re subscribed (I won’t approve the comment so your email won’t be public).

No purchase necessary, void where prohibited, bla bla bla.

If you are actually reading this far into the blog post, your chances are pretty high; I know there aren’t many of you; I see the analytics.

Your Mac is incomplete without Alfred

Alfred is easily one of my most essential and most-used pieces of software. It’s usually the second app I install on a new Mac when setting it up (right after Dropbox, which I only set up first because Alfred’s settings are synced via Dropbox).

And yet if you hear my excitement about it and ask “What is Alfred, anyway?”, well, I can’t quite answer!

Oh, okay, well what does it do?

See, that’s also kind of tricky because it doesn’t really do much of anything on its own. It does make it quicker for me to do other things.

The simplest use case is that it’s an app launcher. Wait, I can already launch apps on my Mac, you say. “Well, what I mean is that you can launch any app from Alfred just by starting to type its name on the keyboard.” But, doesn’t Spotlight already let you do that?


“But Alfred can do waayyyyyyy more.”

And even with that, it’s hard for me to describe what Alfred can do without just listing off a bunch of completely different but useful features and sounding super scatter-brained about it.

The truth is, Alfred is fundamentally a very open-ended tool that makes it quicker and easier for you to accomplish things that are typically kind of tedious or repetitive.

For Alfred to become useful to you, you have to develop the habit of using it, and you do have to find yourself on the lookout for new opportunities for using it and customizing it to really benefit from it. You don’t have to use every single feature it offers, but once you have a general idea of what you can do with Alfred, you will develop an eye for new things Alfred can help you do more quickly.

Alfred looks deceptively simple. When you invoke Alfred with its standard hotkey, you just see a text field like this:

screenshot of the Alfred window

Looks pretty unassuming, huh?

But once you begin to type things into Alfred you find that it can do all sorts of things you ask it to do.

Oh, so Alfred is like Siri, but you type it

“Well, sort of. But on the other hand, sigh. Siri and Alfred aren’t even in the same league.”

Instead of trying to just tell you everything about Alfred that would no doubt be a dry and boring read, I’m going to make a series of short posts about things you can use Alfred for.

But wait, there’s more!

And to sweeten the deal and spread the Alfred love, I’m going to give away some Alfred Power Pack licenses to some lucky readers (confession: you probably don’t have to be that lucky; I don’t have very many readers). I’ll post rules to enter in an upcoming Alfred post, so you should subscribe so as to not miss out.

I’ll be giving away at least two licenses, and possibly more depending on how many ideas for posts I have. Also, not to put on too much modesty here, but almost no one actually reads icanthascheezburger, so if you are reading this and you want to score an Alfred Power Pack license, your odds are… pretty good!