$ ❯ CrowderSoup

A website about programming, technology, and life.

Blog

This is a collection of my longer form posts / articles. It’s a “blog” in the most traditional sense. You won’t find things here that are short-form, those will live under /micro when I eventually get around to building it out 😅

Signing Git Commits

by Aaron Crowder on in tutorials

Have you ever noticed the “verified” badge next to a commit on GitHub? A few years ago I did an wondered how I could get that on my own commits. After a little googling I realized it was because those commits were signed. Signing a commit with a GPG key is something natively supported by Git as it turns out. Now this is one of the first things I set up on a new dev machine.

Read more...

New Apartment, who Dis?

by Aaron Crowder on in Personal

I’ve been absent from my blog lately. The excuse is usually just that I got lazy. Not this time though! This time the reason is… I SOLD MY HOUSE AND MOVED INTO AN APARTMENT! This probably comes as a surprise to most. Why would I sell a house just to go back to renting? Well, it’s not as simple as that. Mostly it came down to spoons. You’ve probably heard the analogy before about spoons.

Read more...

Day 10: Dependency Injection

by Aaron Crowder on in Programming

What is it? Dependency Injection is a design pattern whereby an object/module’s dependencies are provided to it. It is one of several techniques for implementing Inversion of Control. So rather than: func NewClient() *Client { return &Client{ Service: service.NewService(), } } You would have: func NewClient(service *service.Service) *Client { return &Client{ Service: service, } } Why tho?? If you wanted to write a test for the Client first example above, you wouldn’t be able to mock it’s Service.

Read more...

Day 9: The cost of flying for free

by Aaron Crowder on in 100-days

If you follow me on social media you know that I’ve been traveling a LOT lately. Multiple trips a month level of traveling. It’s been so much fun! For context: my ex and co-parent (who I get along with famously) works for an airline. She started back at the beginning of February. When she finished training is when I first started traveling a lot because she was nice enough to add me to her benefits until such a time as she has a new partner she wants to share them with.

Read more...

Day 8: Don't call it a failure

by Aaron Crowder on in Projects

There are no such thing as failures, only lessons. I’ve seen several variations on this quote. Regardless of the permutation though, they all distil to the same thought. Failure is an opportunity to learn. I set out at the beginning of the year to blog every day for 100 days. I failed in that endeavor. However, I also learned something. I learned that blogging every single day, for myself, is untenable.

Read more...

Day 7: Posting from my phone

by Aaron Crowder on in Projects

Today I decided that I should try posting to my blog from my phone. This post is currently being written from a mobile git client called Working Copy. It’s definitely not as intuitive as it could be, but I’m really happy that I can post on the go if I want to! I’m even able to upload images! Okay, I might actually use this more than I realized 😅 One thing I didn’t catch at first though is the frontmatter for the post didn’t get formatted correctly by default.

Read more...

Day 6: npm prune

by Aaron Crowder on in Projects

I am TIRED. I don’t have the energy to write any more code, but I didn’t want to miss writing in my blog. That seemed to be the more important part of doing “100 Days of Indieweb” anyway. Today I got to work on making a docker container for a NodeJS (TypeScript) app. I’m using multi-layer builds, so that the final image only has the bare minimum of what it needs to run.

Read more...

Day 5: Classifying Tweets (continued)

by Aaron Crowder on in Projects

Today finds me working on actually parsing the body of each tweet in an attempt to classify them. I need to spend a bit more time making sure that I’m correctly identifying each type of tweet. Quote Tweets especially, since right now (as you’ll see in my results) that’s the one I’m least sure about. Here’s some numbers based on ALL of my tweets (posts, replies, retweets, and quote tweets) from 2020 onward.

Read more...

Day 4: Classifying Tweets

by Aaron Crowder on in Projects

Let’s start today with the personal shit… I was up half the night with a vomiting child last night. I was up early to get the other kid ready for school. I worked all day. I am TIRED. But I am showing up for my blog. I am showing up for 100 days! Twitter Import I continued to work this evening on importing my tweets as Hugo posts. I need to classify my tweets, so therefore I need to define a data structure to do so.

Read more...