Switching to DigitalOcean

Since I started this website, it’s been hosted on Github Pages. Originally I was building the site using Jekyll, so this made sense at the time. As I made more and more changes to my theme and began using more plugins, it became untenable to use the regular Github Pages build process. I switched over to building the website locally and then pushing that to the master branch. This works, but it’s extremely hacky and unsatisfying to me.

Quick Tip: Lazy Loaded Values in C#

At my internship, I’ve been spending the past few weeks overhauling the authentication and authorization for all of the company’s internal applications. The new authorization system uses a third-party service that handles all of the niceties of logging in, two-factor authentication, synchronization with Active Directory permissions, and all the other fluff. All we have to do is set up authentication with OpenId Connect and receive access and id tokens from our third-party provider.

Why Is Crosscheck So Bad? Bayesian Statistics

It’s June of 2019, and political tensions are at an all-time high. Fear of election fraud, either from fears of hacking or double voting, is widespread on all political sides. Do you know what this country needs? Another hot take on the Interstate Voter Registration Crosscheck system. Background I’ve seen plenty of excellent criticisms leveled at this system. For those of you not familiar with it, the Crosscheck system takes voting records from all participating states, then checks for any duplicate people.

Creative Writing

Since it’s the new year, it’s allegedly a new me, and starting this semester, I’ll have the opportunity to take a few English classes. I’m starting with Intro to Fiction writing, and I’m thinking of publishing a few of the things that I write in that class on here. Although a lot of the coursework is going to be composed writing exercises that don’t have, y’know, plots or character development, I do know that I’ll be writing a couple short stories at some point this semester.

Finally (heh) Over

I’m done. I’m finally done with finals. It’s been a heck of a semester. My classes were… well, meh, for the most part. Computer Engineering was a challenge, as was Computer Science. I didn’t do as well as I would like in Linear Algebra (retrospectively, I could have, but I slacked off a little too much at the beginning of the semester). UNIX was a joke, as everyone told me.

Please Stop Using Weighted Grades

This is just me screaming into the void. You can totally choose to ignore this if you want.

Please stop using them. Your students will thank you. Since I’ve entered college, this has been something of a pet peeve of mine. I understand why teachers do it; it’s a very useful tool for structuring how much a particular group of homework, quizzes, or tests affects grades. It’s really very predictable when you calculate grades at the end of the semester. But when you’re checking grades over the course of the year, weighted grades can be very frustrating for a student, because new grades added to a weighted average system can’t affect grades across assignment groups.

Switching to Hugo

I’ve been using Jekyll to host this website since I’ve started it. I originally started using it because it’s what Github Pages provided, but since I wanted to use a custom theme, I had to use several hacks to publish a compiled version of my site to the master branch. I’ve finally switched to Hugo, since I figured that if I was going to have to roll my own publication tools, I might as well use a site generator that fit with my mental model.

Internship Post-Mortem

On Friday I finished my internship at CBOE. Quite honestly I’m going to miss working there; I learned a lot, both from my coworkers and from the codebase. In this post I’m going to go over what I liked (and disliked) about my summer internship. The Known Unknowns Going into this internship, I knew that I would have to learn how to properly develop software with others. Most of my prior experience involved me writing a program to solve a problem or complete an assignment.