Bryan Culver

Battling Window Management on macOS with Amethyst

Amethyst is a tiling window manager for macOS that can help you manage your windows more efficiently. I've built a few layouts that I find useful and share them here.

I’ve been using Amethyst, a tiling window manager for macOS, for a few years now, and it’s been very helpful for managing my workflows day-to-day. It allows me to keep my windows organized and maximize my screen real estate, which is especially useful since I spend most of my day working in front of a 6K display.

Read more →

Unpaired macOS Recovery System: Can't Disable SIP

Getting unstuck trying to temporarily disable System Integrity Protection (SIP) on macOS when being returned "the current recovery system is not paired with the requested volume".

I recently needed to temporarily disable System Integrity Protection (SIP) to remove some System Extensions (the newer version of what used to be called Kernel Extensions). The types and purposes of these extensions is not important but while you can install System Extensions without disabling SIP, currently removing them does. It is called out in the systemextensionsctl uninstall command that this should be able to be done without disabling SIP in the future.

Read more →

2020/2021 Yearly Themes: Reflection and Looking Ahead

Reflecting on the Year of Health, and what I look to get out of the Year of Organization

I’ve recently been following the concept of yearly themes: instead of making a singular goal or set of rigid resolutions for a given year, you set an overarching concept of what you would like to focus on. These themes are commonly a singular word or sentence that you align smaller projects or goals to, but you can abandon them as things change over the course of a year or as you learn more about what it takes to achieve them, yet developing new projects/goals with the same mindset/intent.

Read more →

Declaring Email Bankruptcy

My journey at taming the flood that is email. How I'm going to stop seeing spam, and get more sanity around my email.

Disclaimer: This strategy really only works for personal email or if you’re a solo developer. Why that is will become obvious below. It can be adapted to small businesses using subdomains but I haven’t outlined that here.

Read more →

Build Monorepo of Docker Images with Make & GitHub Actions

Monorepos are great for building and maintaining a bunch of small microservices. Here is a way to build a collection of Docker images both locally and in a CI/CD pipline with Make & GitHub Actions

Typically I’m a big fan of every app having a separate repo. However many times in the early phases of a project a monorepo can make more sense as a small team is building out the core infrastructure of a platform.

Read more →

Make Bash/Zsh Faster With Temporary Amnesia

In my persistent pursuit to make new shell sessions load faster, sub-20ms, on all of my machines one thing I’ve noticed is that a very long scroll back/history can cause startup slowness. This could be a by-product of me running ohmyzsh but I have yet to be willing to give up it’s niceties in this mission.

Read more →

Secure Messages Between Rails and NodeJS

Digging around some old code I wrote I stumbled across a way to decrypt the encrypted messages created with Rails’ MessageEncryptor. It can be useful to use this to securely exchange secrets between a Rails app and a AWS Lambda function where you don’t trust the transport mechanism, for example a user’s web browser. This can be helpful as you won’t need to translate a bunch of code to JavaScript or open up either direct connections to a database or create an API endpoint for the serverless function to call.

Read more →

Ansible Vault: A Primer

I wrote an introduction into Ansible Vault over at Network to Code. Head on over to check it out. Ansible is a great way to automate many frequent activities and with the combination of Ansible Vault can help eliminate secure credentials from leaking out into repositories.