I'm doing Advent of Code again this year, and part 1 of today's problem reminded me immediately of some of the problems I'm doing in my Program Construction module at UCD. So, I'm going to be coming up with a formally verified algorithm to solve Part 1 using Edsger W. Dijkstra's Structured Programming style of Program Composition.
Of all the pieces of software I had to set up again when I switched to NixOS, Neovim took me the longest. This kind of surprised me at first: given that the Venn Diagram of NixOS users and Neovim users is fairly close to a circle — the set of people who are most productive when fiddling with configuration — I thought it'd be a breeze to get Neovim going on NixOS. Unfortunately, all that seems to have happened is, perhaps predictably, the evolution of a dozen different ways to go about this.
Something I realised while playing around with sorts in Haskell.
A while back, I came across a couple of other blogs by college students reviewing the courses they took over the previous semester. I decided to do the same because it feels like a good way to lend a sense of closure to the semester, especially since exam season was a mad rush without time for much else than revision.
I recently deployed a couple of services on a VM in the cloud so I could get my feet wet when it comes to self-hosting apps for my own personal use. So far, it's been pretty fun but also frustrating at times; I figured I'd document everything I've done up until now so it's easier for me when I migrate to a different server at some point in the future.
If you've gone through the first year of a undergraduate Computer Science degree, you'll have written enough truth tables to last you a lifetime. Personally, I decided I'd had enough halfway through the semester and wrote a program to write my truth tables for me in Go. Unfortunately, we'd moved on from the topic before I finished working on this, but I still think it's a pretty interesting project.
A few months ago, one of NetSoc's committee members built an r/place clone just for NetSoc's members, and we figured it would be nice to have a Discord bot to periodically take screenshots of the pixel art website and post updates to our server. When I volunteered to make it (because why not?), I never thought I'd spend about 5 hours wrestling with Docker while trying to deploy the app to our server, because the Dockerised app would only run on my computer.
While doing some routine maintenance on a society server running Ubuntu (I'm a sysadmin for my university's computer and networking society), I noticed that its system clock had drifted away from the true time by approximately 20 minutes. This amount of drift isn't something one would expect to see on a long-running server with an active NTP service ... except, of course, the NTP service wasn't working.