Using Signals to Clean Up My Mess in Django

While trying to cascade deletes of Droplets when I delete the parent Class they would have been associated with in DigitalOcean Classroom, I attempted to overwrite the delete method. This only works part of the time, so I instead turned to signals, specifically the post_delete signal. Now no matter what triggers the delete on the Class, my Droplets are cleaned up and deleted from my account. I plan to use signals more for the creation process as well.

@receiver(post_delete, sender=Droplet)
def droplet_delete(sender, instance, using, **kwargs):
    droplet = digitalocean.Droplet(token=settings.DO_TOKEN, id=instance.droplet_id)
    except NotFoundError:

Equivalency Statement In Hugo

Today I wanted to check if a page on this site was a TIL page and modify the list to not include a link if it was. To do this I used conditional statements in Hugo to check for equivalency.

{{ if eq .Type "TIL"}}

There's a Snake in the Birdhouse! Building a Python Culture at Vrbo

We all love Python, but not everyone is fortunate enough to use it at their day job. Come and listen as I detail the journey I took to establish Python as an onroad option at my company. Viewers will leave having learned from my experiences—both successes and mistakes—and with a solid plan for implementing Python at their job.

SLI's, SLA's and SL'D'OHS! Learning about Service Uptime from Homer Simpsons

Measuring service uptime can be a daunting task, but not for the Simpsons! Viewers will leave with a clearer understanding of how to account for services, how SLxs can define and guide what to monitor, and how to implement reliability targets and error budgets; all told by fabled Springfield wisdom

Building Docs like Code: Continuous Integration for Documentation

This talk discusses why developers dislike writing documentation, what we can do to address this, and provides a ready to go pipeline for automating your documtation


After decades of trying to ignore or straight up bashing Linux, Microsoft has finally embraced the loveable penguin. So much so that it ships a Linux kernel on your Windows OS by default! What does this mean for the sake of development? Is it finally the year of the Linux desktop?

New Website!

Every few years I grow tired of my website and build a new one. More often than not, it is actually me trying to simplify something that I made more complicated than it needed to be. After listening to friends and co-workers, I'm finally making the jump to static sites.


UnlockedEdu is an Open Source project dedicated providing educational resources to educators, free of charge. At this time we plan on providing Open Source text books, curriculums, worksheets, and presentations for Computer Science Courses.

Simplify Your Python Developer Environment

Using `pyenv` with `pipenv` to seamlessly manage multiple environments and `pipx` for my installed executables gives me a Python setup that's a pleasure to work with. You should use them.


Giles is Python based ILS (Integrated Library System) focused around personal home libraries.

pfSense - A Beginner's Guide to a Sensible Firewall

This talk was given at Texas Linux Fest 2016. Co-founder of pfSense Chris Buechler was present in the audience. No pressure.