Pre-commit in GitHub Actions & GitLab CI

Thursday, Mar 9, 2023

Figure 1: Pre-commit running within GitLab CI I’ve been using pre-commit as my tool to set up hooks to run when I commit to Git. It helps me catch gotchas such as fixing line endings, fixing whitespace, refusing to commit on linter errors, and so on. Often, I’ve noticed with working on teams is it’s fairly easy for a new contributor to forget to set up pre-commit on their development machine.

Continue reading…

Can 4GiB meet your needs in 2023?

Monday, Feb 6, 2023

Figure 1: your computer on low memory TL;DR: yes. You can throw more swap at most processes and it’ll eventually finish… Eventually. Last year I warranty-ed a Dell XPS 13 with 32 GiB of RAM, all specced out. Sidenote: I wouldn’t recommend the Dell XPS 13, at least in 4K. The laptop gets anywhere from 1-3 hours of real world usage and gets hot as most Macbooks. The Dell XPS 13 4K is not a viable product.

Continue reading…

New computer checklist

Monday, Jan 9, 2023

Here’s a small outline of how I validate used computers as “usable” and “in working condition”. My hope is these steps help computer users spot “lemons” - machines that shouldn’t be depended on because they don’t work all the time. Basics Before stress testing or examining SMART data, consider the following checklist: Turn it on and ensure you can access the firmware settings/BIOS. F2 and Delete seem like the most common keys.

Continue reading…

Large, Static Website hosting with AWS and Let's Encrypt managed with Terraform

Thursday, Sep 29, 2022

I had a need to host image galleries online. I researched the cost structures of a few providers, then settled on AWS S3 storage and AWS Cloudfront CDN. The twist is I have all the cloud configuration managed in Terraform, so it’s easy to recreate the same sort of setup for various projects. Hosting provider cost structure After reviewing the bandwidth limits for a static website with a lot of large images, I came up with the following datapoints.

Continue reading…

#lang tinybasic

Wednesday, Jul 27, 2022

For the Lang Party Summer 2022, I wrote a BASIC interpreter. It took a bit of mental gymnastics and learning on my part. In this post I hope to share some of the experience in implementing this interpreter. For the curious, the code lives on GitHub. Figure 1: A TinyBASIC session in Cool Retro Term Try it out! Want to try it out? Run raco pkg install --auto tinybasic to install it.

Continue reading…

NixOS Migration

Wednesday, Jun 8, 2022

Recently I have begun migrating my workstation and laptop from Gentoo to NixOS. There are a great deal of tradeoffs between the two operating systems. Before going into the details, consider where I’m coming from and why I moved away from Gentoo below. Why was I running Gentoo on workstations?? This is my heuristic for a good operating system: The Distro must provide facility to modify system packages and maintain their modifications in sync with the upstream distro.

Continue reading…

Racket on Digital Ocean App Platform

Sunday, May 15, 2022

Digital Ocean’s App Platform works fairly well with Racket. To activate this service, create a git repository with a Dockerfile in it. Your app will be ran as a container built from the Dockerfile and hosted by Digital Ocean. It appears this platform handles load balancing and scaling. These are good value prospects when considering hosting on this platform. If you wish to use a custom domain you can also do so, such as was the case with p.

Continue reading…