RSSAmplifier

Blog

Hari's Weblog

(Very) occasional posts and musings | All Feeds

haripm.comRSS feed ↗15 posts

Latest posts

Notes from January 2026

It's almost spring! Read the full post.

Nixmas Pt. 3 - Friendship ended with Docker...

Now Podman is my best friend! I have a couple of servers up and running with Caddy installed, so I can finally go about setting up the services I want to self-host. I like running my services in OCI containers and knowing they're well isolated from each other. Previously, I'd been using Docker, but I've had my eye on Podman for a while now due to its rootless, daemonless model and systemd…

Nixmas Pt. 2 - The Wild, Wild Web

In my last post, I wrote about cleaning up the Nix flake I use to configure my laptop and promised to describe using Nix to manage remote servers in a later post. This is that post! Read the full post.

Nixmas Pt. 1 - Spring (Winter) Cleaning

I've been using NixOS since June 21 2025, according to my commit history, but I never bothered to really learn Nix after setting it up.Recently, a couple of my friends started getting into Nix themselves.I couldn't miss out on the fun, so decided to reboot my system config over the holidays, fully modularising my Nix flake and upgrading my old Ubuntu VPS to three new NixOS servers for my…

Note from 4 Jan

I'd really like for this website to be around in 20 years. And that means this website won't be around in 20 years. It'll have been Ship-of-Theseus'd out of existence multiple times over by then. It's really quite a freeing realisation, because it means I can quit obsessing over the little details and actually do the thing that matters, which is writing for this blog. It doesn't matter if the…

Note from 3 Jan

I've been using Helix since October 22 2025, according to the commit history on my system's Nix flake. Coming from Neovim, it wasn't a radical change, but there are some things that Helix does right, imo: Select-then-edit model : In the traditional Vi(m) editing model, your keybinds look like <action><selection> e.g. dw to delete the next word. Helix keybinds work in reverse i.e.…

Simon Willison's approach to running a link blog

Simon Willison's approach to running a link blog . I'm finally getting around to publishing a link blog! And what better post to start off with than Simon Willison talking about his approach to maintaining a link blog. A slightly self-involved concern I have is that I like to prove that I’ve read it. This is more for me than for anyone else: I don’t like to recommend something if I’ve not read…

Solving AoC Day 3 Without Thinking

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. Read the full post.

Setting up Neovim on NixOS

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…

Insertion Sort is... Crappy Mergesort?

Something I realised while playing around with sorts in Haskell. Read the full post.

Semester in Review: Stage 2 Autumn

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. Read the full post.

My Self-Hosted Setup

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. Read the full post.

Using the Shunting Yard Algorithm to Write Truth Tables

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…

The Docker Container Only Works on My Computer

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…

Using Htpdate

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…