It's what happens when there's not enough time during the day...

Alembic Migrations for Existing Typer CLI

Attempting to Reduce Cognitive Overload

8 min read / Dec 18, 2024 / Alembic
I've used Alembic for database migrations in the past, but almost every time I start a new project, I have to look through the (actually pretty good) Alembic documentation to remember exactly what it is that I need to do again. While I eventually get things working, I wanted to see if I could decrease my cognitive load when working on a CLI application that uses a SQLite database.

It's Terminal

Bootstrapping With Starship, Just, Direnv, and UV

10 min read / Oct 09, 2024 / Terminal uv just
In spite of the ominous title, there's a lot packed in this post. For a while, I've wanted to be more comfortable with the terminal, as well as reduce the friction between ideas and the time it takes to set up a Python project. So I decided to tackle it with a few different tools.

DjangoCon US 2024

Postscript

6 min read / Oct 01, 2024 / DjangoCon Ruminations
This is the part where I try to summarize some of my experiences from DjangoCon 2024 into words. It's a bit of a fool's errand, because how could I possibly convey the breadth of experiences in a blog post in this corner of the internet? Well, I am a bit of a fool, so I'll try anyway!

Django Unicorn Tutorial

Reactivity Without JavaScript

19 min read / Aug 14, 2024 / Django Tutorial Hypermedia
The goal of this tutorial is to develop a Meal Plan application. With Django Unicorn, you will be able to create "Meals" and add them without refreshing the page. This will include basic form validation, as well as a way to clear your list automatically.

Python By Night

And Day

3 min read / Jul 22, 2024 / Ruminations
It feels completely ineffective to try to put into words what's been going on the last week or two. Within a whirlwind of changes happening all about, I also find myself at the start of a new chapter.

Space

And Time

4 min read / Jul 10, 2024 / Django Ruminations
Back at the end of May, I received a notice that I had been selected for the [Djangonaut Program](https://djangonaut.space). I had applied in early May and was quite unsure what was in store.

Vicarious PyCon

The FOMO Guide

4 min read / May 16, 2024 / PyCon Ruminations
There are many reasons why you may not be able to go attend PyCon. Maybe it's too expensive to make the trip. Maybe you have family obligations. Maybe your employer does not provide adequate paid time off. Maybe you end up [busting your knee](https://pythonbynight.com/blog/magnetic-resonance-imaging) right before the conference.

Magnetic Resonance Imaging

And Scattered Thoughts Thereof

8 min read / May 01, 2024 / Ruminations
A week and a half ago, I had the misfortune of experiencing a knee injury while playing soccer. Not much drama to it. Just jumped up in the air, stretched out my right leg to stop a ball with my foot, got off balance, landed on the same leg, knee buckled strangely, heard a pop, and had immediate dreams and nightmares of ponies and pain.

Mario By Night

Ball Drop Edition

6 min read / Jan 01, 2024 / General Ruminations
I tried real hard to get a 2023 retrospective done before, you know, the end of 2023.

Or Into And

Plus Other Thoughts on Conference Going

5 min read / Nov 09, 2023 / General Ruminations
I recently caught a Mastodon post by Jeff Triplett where he muses on the possibility of enhancing in-person conferences by placing more emphasis on the online component. Wait, what?

Deploying a Python App to Azure

Using the Azure Developer CLI

9 min read / Jun 10, 2023 / Azure Deployment FastAPI
I was wondering how hard it would be to get my existing Musicbinder app up on Azure. Here's my notes, if you're wondering too.

Awesome Python htmx

And Other Thoughts on PyCon 2023

6 min read / Apr 26, 2023 / FastAPI PyCon htmx
I went to Pycon 2023, and all I got was an open source project to maintain. Well, not really, but that's what I'm writing about right now.

Twenty Twenty-Two

Year in Review

5 min read / Dec 15, 2022 / General Ruminations

So I have this blog here which doesn't get quite as much love as it should. But here we are, end of the year, and a perfect opportunity to look back and ask: What the hell just happened?

My First DjangoCon

Reflections

7 min read / Oct 27, 2022 / DjangoCon
Reflections on attending my first DjangoCon.

Using PDM for Your Next Python Project

Packaging, Dependencies, PEPs, Oh My!

8 min read / Aug 11, 2022 / Dependency PDM

I decided to dive into a topic perhaps all too complex for me at the moment, but I couldn't help myself. With my ever increasing number of side-projects, I've been testing some deployment and build strategies. This has led me down the dark path of Python dependency management.

Building a Decorator for a FastAPI Route

Simplify and Beautify Your App Routes

8 min read / Aug 10, 2022 / FastAPI Jinja

I've been working on yet another side project, once again built with FastAPI. I'm taking the opportunity to learn a few new skills and work with some new tools. Along the way, I found a way to use a decorator on my FastAPI routes when sending an HTML response, so I thought to write about it.

Starting A Python Project

Organization and Structure

7 min read / Jul 11, 2022 / General

When starting a new Python project, it can be tempting to open up a code editor and start writing some code. This is all well and good if you're just testing something out. But ideally, if you want your code to solve some specific need, then you'll want to structure your project accordingly.

My First PyCon

Reflections: Extended

8 min read / May 18, 2022 / PyCon

I'm just now getting the chance to reflect on my experience at my very first PyCon. It was held at the Salt Palace Convention Center in Salt Lake City, UT, spanning the dates of April 27 - May 3, 2022. My family and I drove up from Southern California, and after the conference, took a couple of extra weeks on the road. I'm finally home and (somewhat settled). So, time to reflect...

A Large Wooden Horse

An Army of Doubt

4 min read / Mar 08, 2022 / Ruminations

So I intended to code some Python tonight. But, unfortunately for me, I also happened to finish listening to an exhilarating, fantastic, and somewhat infuriating podcast series while doing the dishes—the podcast at fault is The Trojan Horse Affair, from Serial Productions and The New York Times.

Going to PyCon for the First Time

And I'll Be Teaching a Tutorial!

5 min read / Feb 28, 2022 / Ruminations PyCon

This time last year, I didn't really know there was such a thing as PyCon. My mind at the time was pondering the plausibility of making a little blog about what I was learning, but somewhat unsure if I could even do it.

Adding an RSS Feed With Python

Yes, It Still Lives On In Our Hearts

6 min read / Feb 01, 2022 / FastAPI Jinja

The decline of RSS usage in the late aughts and its eventual near-demise has left many a tech-geek deflated, but not entirely hopeless. The reality is that RSS still exists out there in the wild, and some folks still depend on it for accessible, personalized, and syndicated content. So I decided to add it to my site!

Sharpen Your Code

Using the Right Tool (And a Note on Logging)

7 min read / Jan 30, 2022 / FastAPI Rich Logging

Coding can feel quite daunting—specially with the wealth of information out there to consume. Sometimes, as I stare at the code on my screen, I feel particularly stuck or unmotivated.

Writing About Writing

Coding Doesn't Have To Involve Coding

3 min read / Dec 23, 2021 / General Ruminations

Ever since launching this blog, I've been spending a lot of time writing and not as much time coding. I've felt a little bad about that, because I genuinely enjoy working with code when focusing on an interesting feature. On the other hand, I have also been hesitant about posting on this site anything that doesn't feel connected to actual Python code.

Using Beanie With FastAPI and MongoDB

Let's Do A Weighted Text Search with... PyMongo?

7 min read / Dec 13, 2021 / MongoDB Beanie
I decided to use MongoDB as the backend database solution for my blog, and as a result, there weren't quite as many resources to refer to when trying to find a specific solution. Ergo, how do I search weighted text fields in MongoDB with Python?

Finding Python Models

Loading Document Objects to Beanie Dynamically

10 min read / Dec 06, 2021 / Beanie

I have a feeling this post is going to be quite dense. The idea to write it came from an episode of Talk Python where Michael Kennedy interviewed Roman Right, the creator of Beanie, my Python object-document mapper (ODM) of choice for MongoDB.

Save Your Environment

Why Is It So Dang Hard to Get Started With Python?

5 min read / Dec 06, 2021 / Environment
A common critique of getting started with Python is how hard it can be to get up and running. It would be great if you could download a thing, code some stuff, hit a button, and voila!

From Flask to Fast

Why I Switched Frameworks Mid-Journey

6 min read / Dec 05, 2021 / FastAPI Flask
So I switched frameworks from Flask to FastAPI. I'm not totally sure why. It just kind of happened. So maybe I'm kind of jumping the gun here. Talking about switching Python frameworks mid-development hardly seems like an introductory topic for a tiny little blog like this one.

Hello... World?

Ugh! Not Another Programming Tutorial Blog

4 min read / Dec 05, 2021 / General
Welcome to my blog. If you're reading this... Yay, I did it! Chances are I was able to overcome the challenge of having an actual day job that has nothing to do with full-stack Python web development and deploying a web app built with Python, MongoDB, HTML, and CSS. Going forward, I plan to write about things I've learned (and things I'm learning).