Gameboy Doctor: debug and fix your gameboy emulator
Are you building a Gameboy emulator? Are you stuck? Are you failing Blargg’s test ROMs and can’t work out why?
Are you building a Gameboy emulator? Are you stuck? Are you failing Blargg’s test ROMs and can’t work out why?
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance. Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer…
I am a big fan of Dave Whyte’s vector animations, like this one: It was generated using a special animation language called Processing (here is Dave …
This post introduces Arrow Flight SQL, a protocol for interacting with SQL databases over Arrow Flight. We have been working on this protocol over the last six months, and are looking for feedback, interested contributors, and early adopters.
This article is part of a series about Street Fighter II and the CPS-1. It is recommended to read the previous entries before reading this one.
Substantial set of new and updated functions in Version 13.1 covers generalized listability, language conveniences, emoji computations, default toolbar, large-scale code editing, drawing in notebooks, Tree expansion, video capture, mathematics, customizable documentation, chemical quantities, machine learning…
A comparison between async Rust's and lunatic's approach to massive concurrency.
I’ve enjoyed writing software for 40+ years now. Lots of activities fall into that “writing software” basket, and here’s my favorite: When you have a body of code with a decent unit-test suite and you need to make it go faster. This part of the Quamina diary is a case study of making a piece of the library faster.
Evaluating code at compile time is a capability that most, if not all, compiled programming languages possess, even if it can't be directly used by the programmer, but rather applied as an optimization. In this post, we'll explore a bit how to execute code at compile time in Nim, Zig, Rust and C++.
I’m serious about shell startup speed. I use tmux to open and close tmux splits all day every day, so I need zsh to start quickly. I used to use frameworks like oh-my-zsh or prezto and while I was happy with the functionality they provided I wasn’t happy with their impact on my shell’s startup speed. So, what do we do…
It’s been over 3 years since I published my most successful blog post about the abject horror of templated yaml and in many ways, I feel the same way now
Why I created Scrumdog - a program to download Jira Issues to a local database
While investigating the aftermath of a potential security breach, I came across a somewhat "odd" process looking like this:
Learn how to build a Pong game in your terminal using Golang and the tcell package. This tutorial covers the basics of creating a game, including w...
Machine Learning with PyTorch and Scikit-Learn has been a long time in the making, and I am excited to finally get to talk about the release of my new book…
2021 was not too kind to me. I discovered that I not only have OCD but OCPD, a personality disorder. If you’ve ever had a conversation with me where I just couldn’t let something go because it was wrong or incorrect and it bothered me, now you know why. I have, for better or worse, extremely high standards for…
We can do better than writing HTML manually, but there are no developer-focused solutions.
Many developers today have no idea what programming was like in the 80s.
PHP 8.2 has a new randomizer engine, readonly classes, disjunctive normal form types, redacted parameters, performance improvements, and more.
Code can really be written with any text editor that you're comfortable with. I tend to use Vim for quick edits and writing notes, and on L...
WebAssembly has gone through quite a transformation this last year, while the wasm language landscape is slowly shifting, the more notable change is in what people are using WebAssembly for. The use of wasm for serverless, containerisation and as a plug-in technology has leapt considerably, with WebAssembly System…
Python-based calculations, especially those that use NumPy, can run much faster by using the Numba library.
The official site of Zhenghao He, a software engineer and a TypeScript/JavaScript enthusiast.
At my university, one of our internal software systems allows a professor to submit a revision to a course. The professor might change the content or the objectives of the course. In a university, professors have extensive freedom regarding course content. As long as you reasonably meet the course objectives, you can…
Need to write a README, but running blank on words? If that bothers you frequently, consider generating diagrams.
Small, scoped areas within a graphical interface that allow users to read and write simple programmes
Kubernetes is ubiquitous in container orchestration, and its popularity has yet to weaken. This does, however, not mean that evolution in the container orchestration space is at a stand-still.
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
What is Deno, why does it matter, and how is it currently used for server-side JavaScript?
My coding time this year has been invested in Quamina , an event-filtering library implemented in Go. Just in the last couple of weeks I spotted an opportunity to bring Go’s shiny new generics to bear, and not just anywhere, but for a central data structure. I got good results, but the process was sort of painful; I…