== Knights of the Lambda Calculus ==

Generating accessible PDFs in LaTeX: or how I learned to worry and hate the machine

latex rant
Note: This is a rant. Technical information may be better found in another post. However, I’ve not seen anyone do this, so… I recently had to submit a PDF to my university for a poster detailing my research this semester. (This research went nowhere, by the way. Unfortunate.) IU requires that all PDFs be accessible, and I have no issues with this at all! I already provide alt-text for all my images that I post on social media, and I even get mildly annoyed at people who don’t; so why would this post even be necessary– Read more...

Nix(OS) Thoughts

This post is relatively scatterbrained, and if you’re familiar with Nix, there’s not any explicitly new ground to tread here. However, I have enjoyed my experience with NixOS so much that I felt compelled to write this post, although there’s already a plethora of posts drilling the same points. From time to time, I find software that immediately seems to click with me, and I start integrating it almost irreversibly into my workflow, to the point where it’s difficult to think outside of its scope. Read more...

Proprietary creep

Fair warning: this post is pretty passive-aggressive I recently participated in the Hack-a-Sat CTF. How my team did and the write-ups for that are entirely outside the scope of this post, but the uniquely notable part is that we organized a team, coordinated solutions, and worked as a team with entirely open-source communication, much of it self-hosted. Namely, we used: Mastodon and related ActivityPub-based services for finding a team Matrix for communications, additionally bridged to IRC Jitsi Meet for video calls Self-hosted Etherpad for collection of textual data and sharing code A couple files uploaded to my Linx server for things too big to be on Etherpad or non-textual content …and it went off without a hitch, with the only issue in comms being my internet breaking for an hour, which only affected me. Read more...


This post is going to be odd, as unlike all my others, it’s structured more like a live account and will be continually updated as I continue to work. For a while, I’ve been running this website, and its related services, off of a Linode VPS running Debian with 2GB of RAM. In addition, I recently completed my computer vision project for AP Capstone Research, so I have a free Raspberry Pi 4 to work with. Read more...

How I'm managing my time during the pandemic

* { z-index: 9999; } #spinner { text-align: center; animation-name: spin, depth; animation-timing-function: linear; animation-iteration-count: infinite; animation-duration: 3s; font-size: 1000%; } @keyframes spin { from { transform: rotateY(0deg); } to { transform: rotateY(-360deg); } } @keyframes depth { 0% { text-shadow: 0 0 black; } 25% { text-shadow: 1px 0 black, 2px 0 black, 3px 0 black, 4px 0 black, 5px 0 black; } 50% { text-shadow: 0 0 black; } 75% { text-shadow: -1px 0 black, -2px 0 black, -3px 0 black, -4px 0 black, -5px 0 black; } 100% { text-shadow: 0 0 black; } } section * { z-index: 9; position: relative; top: 0; } section canvas { z-index: 1; position: absolute; left: 0; } I'm not var confettiSettings = { target: 'cool' }; var confetti = new ConfettiGenerator(confettiSettings); confetti. Read more...

Using Emacs for the FIRST Robotics Competition

emacs frc
For a large portion of the Infinite Recharge build season, I’ve been attempting to entirely forgo usage of Visual Studio Code, which is WPILib’s official IDE. Not only have I had countless issues with it (specifically, Microsoft’s “IntelliSense”, which often acts less intelligent than the name implies), but the majority of my programming and digital life lives in Emacs. In particular, I use DOOM Emacs, which makes the majority of this configuration extremely easy to implement; however, all the advice in this post will apply to vanilla Emacs in a similar fashion. Read more...

Attempting (and failing) to escape Google

rant android
Alternative title: Young NB Yells At The Cloud Note that this absolutely isn’t vetted for technical accuracy. It’s probably also not a very coherent post altogether. I just needed to get this off my chest. Ever since late 2019, I’ve been using a Google Pixel 2 as my day-to-day cellphone. While I’ve known that it didn’t respect my privacy, per the Google tradition of being creepy and generally terrifying, I wasn’t entirely aware of this phenomenon until Google told me when I registered my rooted Nook Tablet with their services in 2014. Read more...


This website has received a much-needed refresh, one that I’ve been putting off for years. While I’ve made a personal blog in the past (albeit all of them being short-lived), all of them have used Jekyll, a popular static site generator written in Ruby. This is fine and dandy, sure, but I don’t know Ruby, so I didn’t know how to maintain a Jekyll site well. Furthermore, I’ve always used some random theme I grabbed off of GitHub and slapped it on there with the might of Zeus. Read more...
1 of 1