Music
Loving Pijn, I've never heard them before, but they popped up in my autogen playlist. Enjoyably melodic metal.
Still love DROELOE's newest album The Art of Change, got to see him in concert in Houston this past winter!!
Was introduced to Explosions in the Sky half a year ago, they're a wonderful melodic rock group:
Reading
Shenanigans
Trying to get back to OSS fuzzing this month, contributing to Ezno for rust-based JS type checking.
Happy that I got a good "fuzzer finds a bug, pls fix" interaction in: https://github.com/astral-sh/ruff/pull/11748
Tempted to go to SquiggleConf this year.
Finally getting around to actually understanding Go deeply, how all the interfaces and structs are laid out and whatnot. (Don't look at me, I use compositional vaguely Hindley Millner types via Typescript.)
Some good resources:
It'll surprise no one to hear that TypeScript is my favorite programming language. But I do still enjoy dabbling in other languages. It's a great way to get perspective on what makes TypeScript unique, and how other language designers are thinking about the same problems.
My favorite way to learn a new language is through the annual Advent of Code (AoC). AoC runs every year from Dec 1-25. Every day unlocks a new puzzle with two parts which build on each other. Lots of people do these puzzles (over 100,000 completed day 1 this year) and post their solutions on r/adventofcode. In 2019 I did it in Python (not a new language for me) and in 2020 I did it in Rust (which was a new language). This year, I did it in Go (aka Golang).
This post has three parts:
My impressions of Go (coming from a TypeScript perspective)
My impressions of this year's Advent of Code
Notes and links for each day
Before I started programming Go, I was doing most of my work with Python. As a Python programmer, I found that learning to use interfaces in Go was extremely difficult. That is, the basics were easy,... I want to learn more about color grading and editing RAW photos – I got Kino for iPhone recently, a fancy videocamera app from the people who made Halide, the fancy iPhone camera app.
Today we're excited to launch Kino, a powerful filmmaking app for beginners and experts alike. As say they say in screenwriting, "Show, Don't tell," so let's walk through a few of the tent-pole features in our huge 1.0 release. Enjoying hearing about Rust type shenanigans as well:
One of the first things any Rust programmer learns is that you can’t pass an object and a reference to that object around at the same time. It’s impossible to do, even indirectly. This limitation has been the subject of countless questions on Stack Overflow and posts on Reddit and the Rust forums and anywhere else where Rust programmers might ask for help. It’s so well-known that most people treat it like an axiom, not just a limitation of Rust as it currently exists, but an inherent limitation of borrow checking in general. I contemplate how useful an alias type system for Typescript would be.
Why do software bugs happen? There are many possible causes of bugs, but if we look at examples, we can hopefully see patterns in the bugs that arise and design our programming languages to rule out entire classes of bugs.