RSSAmplifier

Blog

Cody Hiar

Recent content on Cody Hiar

codyhiar.comRSS feed ↗20 posts

Latest posts

Things I Do To Make My iPhone Less Distracting

Indistractable provides invaluable tips on how to reduce the amount of focus stolen by your smartphone. Every pickup, every unlock, incurs a hidden cost. A non-zero chance to have your attention redirected from your original goal. Smartphones fit into nearly every facet of our modern lives and those chances start to add up. Left unchecked, these redirections can manifest into nasty time-sucking…

Automatic Django Shells Using Expect

One of the standout features of tools like Docker and Kubernetes is the ability to quickly exec into a production shell. With environment variables configured, working directory set, and everything ready to go, you’re primed for action. But not every project uses Docker in production, which makes getting into a production shell a small hassle. When working in these environments, starting a…

2024 a Year in Review

The older you get, the faster time goes. Nana used to say that whenever I complained about the pace of events. At a young age, my mind could not imagine what that speed of time would feel like. But now, I know the feeling all too well. If once-a-year review posts interest you, check out my 2023 post here. Let’s take a peak at how things went over the last year.

Reading DDIA and Solving Gossip Glomers in Python: Part 2

Welcome back to my fun adventures of solving fly.io’s Gossip Glomers. In this post, I’ll tackle Challenge #2: Unique ID Generation. First, let’s chat through the requirements. Your code will receive the following from a client: { 'type': 'generate' } And you will return: { 'type': 'generate_ok', 'id': '{your_generated_id}' } Now, let’s write some code to come up with…

Reading DDIA and Solving Gossip Glomers in Python: Part 1

While I was writing my yearly goals for 2024, I knew in the back of my mind I wanted some kind of technical challenge. I didn’t write anything about it in the post since I couldn’t come up with an idea of the spot. In hindsight, the goal should have been to come up with a goal. I’ve since come up with, and started, such a goal. One thing I’ve learned about learning is that…

My Favorite Django Resources

I’ve been working with Django full time since roughly 2016. 8 years feels like an eternity in the software world. In my opinion, no other framework compares to Django in terms of off-the-shelf solutions In Python land that is, I know Rails is also a great experience. If you have a problem, there’s a Django exmaple in a book, youtube video, or blog post for it. Where does one even begin…

How To Dual Boot Nixos and Arch Linux

NixOS has been my trusty companion for a good 4 years now. It’s like having a horse whisperer for the wild mustang that is running software. But one bronco still manages to remain unbroken by Nix, running games. There are a number of titles I’ve been able to run without issue. I’ll give credit where credit is due, gaming on NixOS has come a long way. But there’s always that…

Switching Back to Bash From Zsh

I’ve used ZSH as my interactive shell for almost 10 years now. You can read the original post here. My age is showing. ZSH has been a trusty companion, and we’ve done quite a bit of campaigning together. Why switch back to Bash and ble.sh? Spoiler: For me, it’s mainly two reasons. Bash has better tooling and I write bash more than I write ZSH. ZSH has better frameworks, but I…

2023 a Year in Review

What a wild year. What a wild January. Join me in a exhilarating reviewing of 2023 right near the end of February. That’s a terrible attempt at a procrastination joke. Well, there wasn’t any procrastination, it was perfectionism. All things to work on in 2024. You can find my 2022 blog post here. Reflecting On 2023 Goals In 2023, I aimed to write more, read more, and become more…

Makefiles and Docker for Local Development

I’ve spent a good part of my career automating the setup of projects for local development and CI. Projects are like snowflakes, no two are alike. I prefer to choose tools that allow me to adapt to each project’s requirements. I’ve settled on a mix of Makefiles, Docker, and a sprinkle of Bash scripts. This post is focused on how I design Makefiles for projects. Makefiles end up…

Setting Up Nix on a Macbook the Boring Way

Do you want to try nix on your Macbook? Is time a finite resource for you? Do you value getting straight to the point? Well, let&rsquo;s dive in. 1. Install Nix Package Manager The most up to date instructions are on the nixos.org website. You will get some kind of curl command like the following: sh <(curl -L https://nixos.org/nix/install) When you run the command it will ask you a couple of…

Using Vim's Very Magic Regex to Format Code

Do you ever find yourself typing the same string formats in code on repeat? Vim&rsquo;s regex search and replace is a powerful tool for automating this problem. It doesn&rsquo;t come up everyday, but frequently enough that I forget the next time I need it. With vim&rsquo;s regex, we can turn this: one two three into this: ('ONE', 'One'), ('TWO', 'Two'), ('THREE', 'Three'), 1. Let&rsquo;s Build A…

Printing Python Imports

In my last post, Tips For Pinning Python Requirements Files, I touched briefly on import discovery. I used grep as a crude mechanism to grab python import because it&rsquo;s Good Enough™. Bash scripts are a great way to get started, but sometimes one requires a more robust tool. I&rsquo;ve since spent some time diving deeper into the Python import system and discovered a better solution.…

Tips for Pinning Python Requirements Files

I love you Python, but you got baggage. Or, er, you’re not great at putting things into bags. What I’m trying to say is, your packaging is a mess. At this point python lovers, myself included, accept our Stockholm syndrome. This post comes as a result of a conversation that my team had. How to pin requirements in a requirements.txt files on older python projects? One where you may not understand…

Custom Backward Word Deletion in Zsh

Custom Backward Word Deletion In ZSH 1. Intro Do you use ctrl+w keyboard shortcut in Zsh? It&rsquo;s a handy function for deleting &ldquo;words&rdquo;. Some of you may be wondering, how does Zsh know that a &ldquo;word&rdquo; is? Can I change what a &ldquo;word&rdquo; means? If neither of those questions sound interesting, this post isn&rsquo;t for you. If they do, stay tuned. I&rsquo;ll show you…

Replace Pyenv With a Nix Flake

Nix is a great tool for simplifying the pains of package management. Figuring out where Nix sits in your workflow, is not so simple. Nix&rsquo;s flexibility and the wide variety of nix+python solutions make adoption overwhelming. Do not despair. In this post, we&rsquo;ll walk through a minimal adoption of Nix by using a flake to replace Pyenv. Why Use Nix Instead of Pyenv? Why would you want this?…

Moving the Goalposts

Moving The Goalposts Great software engineers aren&rsquo;t hired to write code, they&rsquo;re hired to solve problems. You may have seen this quote before in one form or another. Early in your career, someone will define the goalposts for you. Someone will give you small, well defined problems with achievable deadlines. Later in your career the tables will turn. You will be responsible for…

2022: A Year In Review

Fun Things That Happened Welcome Baby #2 Riley Milton Richard Hiar was born on June 1st, 2022. The creature total is now four with two dogs and two boys, rarely a dull moment. Riley is currently at the stage where he&rsquo;s more aware of everything around him. He can&rsquo;t take his eyes off Jack. Watching them play together is the cutest. Renovating Home Office During paternity leave, Kayla and…

Book Review: No Rules Rules Netflix and the Culture of Reinvention

Tsundoku is the art of buying books and never reading them. That almost happened with No Rules Rules. The book taunted me from my bedside for over a year. Well, Tsundoku no more, I have read the book. I’ve always admired Reed Hasting’s management style. It even came up during my initial interviews with Parsely. Saying and doing are two different things, especially when applied to an organization.…

Understanding Tradeoffs

Learning to articulate tradeoffs is an important transition in a junior engineer&rsquo;s career. Nothing good in life comes free, software is no different. Building knowledge in an industry overwhelmed with information seems like an herculean task. How does one go about understanding the tradeoffs? Or even figuring out what the tradeoffs are? Do you remember when you first started writing…