Skip to content

Git Completions & Tooling on the Command Line

I enjoy tuning my terminal environment. I’ve recently learned tmux, switched to zsh, and constantly incrementally improve my personal dotfiles. I’ve put together a stack of tools for working with git on the command line. I find this much faster than working in a GUI. Here’s what I use: git-fuzzy for generating commits (git patch is especially useful here) forgit for switching branches, viewing logs, stash list, git fixup, etc git (aliased as g) for misc git commands (like cherry-pick, etc) with a handful of config customization custom functions and aliases for various shortcuts, including interacting with the gh-cli command However, one piece of the puzzle for me wasn’t working properly: tab completions on the core git command…

Continue Reading

Improve motivation and focus with small contexts

I’ve known for years that uncategorized message queues scramble my brain. I think I’m more sensitive to this than most. For instance, a list of unanswered texts from random groups of people (friends, work contacts, randoms, etc) feels exhausting/overwhelming. I’m not sure where to start, and it feels like the amount of effort needed to get to zero is too much. I’m tempted to avoid answering (and often do!) and move on to something else that feels more discrete that I can check off a list. I know intellectually that if I just start answering messages I’ll get through the list, and without too much effort…

Continue Reading

Learning tmux

I’ve tried tmux before for about a day at a time and promptly forgot about it and never learned how it worked deeply. However, a friend recently reminded me about tmux’s copy mode and I was intrigued. I had the time to dig in and try to retrain my muscle memory around it. I use VS Code for my editor, but otherwise, I’m a very terminal-oriented developer. I love interactive REPLs and find that CLI tools generally allow you to move faster than GUI equivalents. Something that always frustrated me about my development loop was the need to put my hands on the mouse in order to interact (select/copy/find/etc) with the contents of my terminal screen…

Continue Reading

Advanced Text Editing Using Karabiner & macOS KeyBindings

I’ve always wanted some of the fancy keybindings I have in VS Code across my entire macOS experience. Additionally, ever since I discovered back/forward for code navigation in VS Code I wanted to bind my mouse keys to these shortcuts. I ended up digging into Karabiner and the native macOS keybindings. Here are my notes! Most of the resulting code is here. macOS Keybindings Here are some notes about what I learned about this hidden macOS feature: There are a set of special commands that control the native cocoa text system. You can combine these commands and tie them to keyboard shortcuts, but they only work in apps that use the native cocoa text system (not Chrome, for example!)…

Continue Reading

Blocking Websites on a Schedule With Pi-Hole

I’ve written about blocking adds and distracting websites before as part of my digital minimalism crusade. I’m a big fan of thinking through your lifestyle design and automating decisions as much as possible. For instance, after 9pm at night and before 7am there’s a set of distracting websites that I do not want myself, or anyone in my family, to be able to access. This introduces just enough friction to bad behavior (like scrolling Twitter at 9pm) that it prevents me from doing the wrong thing. Below I’ve described how I block (and then subsequently allow) websites on a schedule, and some other misc related trick with the Raspberry Pi & Pi-Hole. Block Sites on a Schedule I wanted to block my Roku TV based on my cron schedule…

Continue Reading

My Process for Intentional Learning

Lately, I’ve been able to carve out dedicated to learning new skills. What I’ve learned has been random, from programming languages to how to build a tiny house. I’ve found a lot of joy in learning new skills, slowly becoming a generalist. Over the last year, I’ve found you can optimize your "learning time" by thinking through the process of learning before you start. In my experience, picking a learning project, and creating a "learning log" for each skill is hugely helpful. Identify a Learning Project Learning in a vacuum doesn’t work for me. I love reading fiction, but reading a topic that I have no immediate need to understand makes it much harder to comprehend…

Continue Reading

How to Block Distracting Websites on Your Laptop

"What exactly did I do the last 30 minutes?" I’m sure you’ve been there, asking that same question, staring blankly into your computer screen. I’ve written about how I’m working to minimized distraction. For me, a big component of that is blocking distraction on the device I spend the most time: my laptop. Here’s what I’m looking to do: Automatically block distracting websites, but allow an easy way to temporarily unblock them. Example: I want to block Amazon by default, but sometimes I want to jump on and buy something quickly. I don’t want to have to manage a schedule. Creating exceptions to schedules and then remembering to re-enable the schedule never works well…

Continue Reading

How I Broke My Phone Addiction

The launch of Neuralink started a conversation across the web about the “merge”. The day when you can plug your brain into a computer and communicate with it through your thoughts. No keyboard, mouse, or touch screen. Something out of a sci-fi film. I think Sam Altman has an interesting take: I believe the merge has already started, and we are a few years in. Our phones control us and tell us what to do when; social media feeds determine how we feel; search engines decide what we think. This resonated very strongly with me. My phone does control me to a certain extent and I feel uncomfortable if I hop in the car without it. I’ve been on a kick this year of being intentional about how I use technology…

Continue Reading

Optimize Your Charitable Giving Using a Donor Advised Fund (DAF)

I’ve always been fascinated with the idea of recurring revenue. Building a business or a portfolio of investments which passively create recurring income has been interesting to me since I got my first paycheck. Over the last year I’ve been thinking: why can’t I (slowly) create a charitable asset that kicks off income each year which can go tax-free to charities? This way, instead of giving to an organization once, you can build a mix of assets that generate enough income to perpetually give to the organizations you carry about? This idea, combined with the recent tax law changes that made it more challenging to get a deduction from charitable donations (10k SALT limitation makes it harder to itemize), got me researching…

Continue Reading

3 Email Efficiency Tips

I wanted to share a couple quick email efficiency tips that have been helpful over the last couple weeks. When scheduling a meeting, instead of asking “What time would be good to meet?” suggest a exact time and day with two alternatives that work for you. Also provide a link to your full public calendar with event details hidden (I use ScheduleShare for this). For example: Would 2-2:30pm on Thursday the 12th work for you? If not, would Wednesday at 10:00am or Thursday at 11:00am work?..

Continue Reading