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.
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.
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.
A recent exercise at work has us setting goals for ourselves. Posting them here makes it feel like a great way to keep myself honest and committed to these goals.
A recent exercise at work has us setting goals for ourselves. Wanting to commit to them in a broader way I thought I would post them here. Goals are to be set and re-evaluated in a six month window to keep them within a reasonable measure.
Some of my brilliant coworkers and I were guests of the “Network to Code on Network Collective” podcast series. We talked about many things regarding enterprise processes (people and technical) and how to not only deliver network automation in those environments, but overall evolution as well.
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.
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.
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.
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.
The zsh plugin previously named workon is now known as Opus. I have started working with more Python and ran into name collisions with virtualenv’s workon command.