Sonic Pi: Ruby as a Composition Tool
Like the blip of an intro on the front page says, my degree was originally in music. My running joke as a web dev is that neither has meaningfully required me to count past 32. And while my main concentration was vocals, I've since realized I should probably stop strictly calling this a nontechnical field, because my…
A lesson in dockerizing shell scripts
My learnings from publishing my first ever Dockerfile for ugit (a shell script based tool to undo git command) and writing the most optimized dockerfile for it.
Getting back into C programming for CP/M
This article is about how programming for CP/M, usng a 40-year-old C compiler, differs from modern C development, even for console applications.
Optimizing Ruby's JSON, Part 4
In the previous post, we established that as long as ruby/json wasn’t competitive on micro-benchmarks, public perception wouldn’t change. Since what made ruby/json appear so bad on micro-benchmarks was its setup cost, we had to find ways to reduce it further.
BreakTime: Running Breakout inside Google Calendar
A version of brickbreaker inside google calendar - your meetings are bricks, and the game declines them when you smash them!
Building a self-contained game in C# under 2 kilobytes
How I fit a graphical game in C# into 2 kilobytes, with no .NET runtime required.
Two handy GDB breakpoint tricks
Over the past couple months I’ve discovered a couple of handy tricks for working with GDB breakpoints. I figured these out on my own, and I’ve not seen either discussed elsewhere, so I really ought to share them.
Constraints in Go
Freedom is nothing without constraints, and Go’s generics gives us a powerful way to build polymorphic types and functions constrained by type sets . Let’s geek out.
Git as a debugging tool
Debugging with Git Grep, Git Blame, Git Log and Git Bisect
Distributed Erlang
I'm a two hit wonder
The C bounded model checker: criminally underused
Follow along on a google colab: https://colab.research.google.com/github/philzook58/philzook58.github.io/blob/master/pynb/cbmc_tut.ipynb
The future of Deep Learning frameworks
Assumed audience: ML researchers who frequently work with PyTorch , but are interested in trying out JAX or have yet to be convinced.
Some memories of Niklaus Wirth
January 2024
The engineering behind Figma's vector networks (2019)
A deep dive into the world of vector networks, and the engineering challenges involved in their implementation.
"No way to prevent this" say users of only language where this regularly happens
Xe Iaso's personal website.
The sad state of property-based testing libraries
Property-based testing is a rare example of academic research that has made it to the mainstream in less than 30 years. Under the slogan “don’t write tests, generate them” property-based testing has gained support from a diverse group of programming language communities. In fact, the Wikipedia page of the original…
I spent a year building an Android course for the elderly
This is my story about an adventure into online teaching, video course making, and choosing a hard-to-reach audience, who desperately needs help.
How to Use the Foreign Function API in Java 22 to Call C Libraries
Using Java's Foreign Function API to Call C like fopen, fgets, and fclose.
Probability-generating functions
I have long struggled with understanding what probability-generating functions are and how to intuit them. There were two pieces of the puzzle missing for me, and we’ll go through both in this article.
Building Game Prototypes with LÖVE
Chess, card games, and Lua.
Writing GUI applications on the Raspberry Pi without a desktop environment (2019)
In a previous article, I explained how I set up a TFT LCD screen on my Raspberry Pi. Because I had been previously using my Pi as a headless server, I hadn’t installed a desktop environment. I wanted to add a lightweight heads-up display to the server, and I wanted a graphical application that could operate without X…
Embedded Rust in Production?
A review after using Rust on embedded in production for over a year
Recent Performance Improvements in Function Calls in CPython
How costly it is to call functions and builtins in your python code? Does inlining help? How have the recent CPython releases improved performance in these areas?
Programmers should never trust anyone, not even themselves
Programmers should be paranoid.
I don't always use LaTeX, but when I do, I compile to HTML (2013)
Since I haven't published anything in almost two months, let me jot down one thought that has come to mind frequently over the past few months.
I discovered a critical exploit in ZeroMQ with mostly pure luck
Fang-Pen Lin's blog about programming
Compilers for free with weval
With some partial evaluation and specialization hints, it is possible to get pretty decent speedups on interpreters by turning them into compilers.