Wednesday, March 6, 2019

Welcome to my blog! This is the first (official) post, hopefully of many.


I decided to start this blog because I rarely write anything longer than a sentence at a time, which seems like a useful thing to practice for a PhD student. I’ve also always felt pretty weak at communicating about research or technical stuff (not to mention just in general). Hopefully this will help me with these things, as well as improve my understanding of the technical material I’ll be writing about.

I plan to write about various technical things I encounter during my research work. These will probably be things related to functional programming and programming language theory.


Let me tell you a bit about the inner workings of the website, which I spent (and will continue to spend) a lot of time on—instead of writing posts. The site is static, hosted on Github Pages, and is generated by Jekyll. I don’t want to handle any complexity related to hosting, so a static website seems fine to me.

However if you look at the bottom of the page, you’ll see something less standard: an ugly hacked together comment system. I originally tried using Disqus, which was really quite nice and easy to use. You can see an example of it on my blog here.

I preferred something more lightweight though, and also something I controlled entirely. Here’s an example of what my current solution looks like. You can even embed html (what’s sanitization?)!

I’m using Staticman to display user-generated content. When a comment is submitted, it goes through the Staticman web service, which creates a pull request on my website’s Github repo to add the comment as a text file, to be included in the (updated) static site.

I think this is super cool. No databases or anything to deal with! Staticman was pretty nice to use, though the documentation is a little out of date. Originally it was run as a single public instance, and due to the number of users it had it was hitting the rate limit for the Github API (see this Github issue for details). The developer then updated Staticman to be a Github app, so each user would get their own instance and thus their own API quota. However, this was fairly recent (Dec 2018) and the documentation wasn’t updated to reflect this, so it took me a few hours to get it working.

Edit Oct 3: Staticman died at some point! The service is open source, so maybe I will host my own instance on Heroku.
Edit Aug 18 2020: Finally hosted my own instance on Heroku.
Edit Dec 21 2022: Heroku shut down their free tier, but I’ve managed to migrate to fly.io’s free tier with basically a single click using their migration tool.

To Come

I’ll be working on updating the site a bit more to add a navigation menu (Edit Mar 7: Done!), less ugly comments (Edit Mar 8: Arguably done!), and so on. For my research I’ll be spending most of my time in the next few weeks on coinduction, a very cool proof technique, and I hope to write something introductory about it soon.


Anonymous: This is an ugly comment.

Angel: hi

Peilin: I read your blog 😛

Paul: By the way it took hours to get sorting these comments by post time working

Hilton: i like ur bl0g

Liz: cool beans

Jasmine: Comment section party time 🎉🎉🎉

Hanna: I think its amazing. You and your writing

Your comment will be posted after it is reviewed.