programming
Speed up Python Github Actions
If you want to speed up your CI builds you can use this setup on your GitHub actions. Doing this from the previous method cut my build times from 2 minutes to 1 minute. …
Treesitter Highlights for Jenkinsfile
Ever wanted syntax in neovim for Jenkinsfiles? Let's create an autocommand to do just that! …
Python Logging
Just a very quick post/memo to myself about an awesome way to configure logging in python based on an excellent Github repo I stumbled across via a YouTube video. …
2023 - A Tech Year in Review
2023 gave me the ability to experience a lot of different tools, languages, and technologies, many did not make the cut long-term but I would like to put together a list of the core tooling that I use day to day with an example or two along the way. …
SQLAlchemy, OnUpdate & Datetime UTCNOW deprecation in 3.12
This is a quick post about migrating your utcnow() to now(tz=UTC) in SQLAlchemy for your onupdate function argument to your SQL Models. …
Connecting to Internal VPC Through Bastion in One Hop
If you've ever wanted to load up your local database IDE to view a database that sits inside an internal VPC. You may be a bit puzzled on how to do it considering most tools like DBeaver, DataGrip, TablePlus allow you to connect via SSH, but that SSH connection is always to a bastion instance. How does one connect directly? …
Big Uploads and Checksum Validation
Ever wanted to upload big files without storing them in memory as they are being written with FastAPI? …
Git Signing and Authentication with SSH
This is a quick guide to set up git with SSH ed25519 keys not only for authenticating with GitHub or GitLab but also for signing commits without the need to install GPG/PGP which has some serious criticisms / flaws that has led me to move into a world without it. The new world isn't as straightforward as the old so I thought I'd just throw together a quick guide to help you out. …
Mocking the Post Method on an Async HTTPX Post Request
A quick snippet for mocking HTTP requests with an the async httpx context manager. async with httpx.AsyncClient() as client: signup_response = await client.post( f"https://{AUTH0_DOMAIN}/api/v2/users", data=signup_request_body, headers=signup_request_headers, timeout=30, ) …
Tmux in Linux and Mac With Wezterm
After struggling to get tmux to run seamlessly between Mac (on ARM i.e. M1/M2) and linux due to the fact that brew installs packages to /opt/homebrew/bin/ and it isn't on the path before the shell loads, I have finally worked out how to get tmux to launch/attach to existing sessions when launching a new terminal both in linux and on MacOS. …
Testing in the Terminal
Find yourself running a pytest command repeatedly trying to work out what a problem is and getting sick of clicking back on the terminal window where the output is and pressing arrow up to re-run the test? Or even running tests in an IDE and sick of re-running the test time after time with your mouse? …