I spent some time over the past week tweaking and improving this site. Not all the changes are live yet, but every post now has an OpenGraph preview image to go along with it. I got a lot of guidance from Arne Bahlo’s post on how to generate SVGs in Astro and a lot of inspiration from Jacob Kaplan-Moss’s preview images.

I find frontend development to be a creative outlet where I can still write code without feeling like I’m doing something too similar to my day job. I’ve had fun thinking critically about my design inspirations and trying to build something that feels like an authentic expression of how I want to present myself on the Internet.

Without further ado, on to the links!

Software history

  • Typewriters and WordPerfect (Mat Duggan): A trip down memory lane for some, a history lesson for me, and a window into the ways that the methods of distributing software can feed back on how that software is developed.

Lessons learned

Programming languages

  • Rye: A Vision Continued (Armin Ronacher): The more batteries included software systems, the merrier! I might try to set up Rye with my next Python project.
  • Kinds and Higher-Kinded Types in Haskell (Gints Dreimanis): I wanted to gain a deeper understanding of what exactly higher-kinded types actually were, and this article was a great introduction. I’ve felt for a while that monads are way more ubiquitous than commonly understood — async/await is a monad that almost all programmers in 2024 are familiar with! Something that isn’t ubiquitous, though, is the support in the type system for describing a generic monad — that requires higher-kinded types. I do wonder if it’s strictly necessary, though — OCaml doesn’t support higher-kinded types but still has generic syntax support for monads. This is definitely something I’d like to think about some more, and maybe turn into a blog post!
  • Physical Properties #2 (Justin Jaffray): This series has been an approachable introduction to Cascades. People are often down on dynamic programming, and while I don’t think it’s a great way to get good signal out of technical interviews, it is a useful technique in real algorithms. Cascades has been my favorite example of this for a while: Justin doesn’t use the term directly but the “optimal substructure” critical to the definition of DP problems is heavily implied when he talks about the “Principle of Optimiality”.
Liked this post? Get future weekly posts in your inbox!

Powered by Buttondown.