-
Lately I've been experimenting with creating random data generators in TypeScript. I wanted
to avoid using the global random number generator Math.random since I wanted my generators to be
fully determinitic (i.e. if you give them the...
-
In a previous post I talked about property testing (see What is property testing?). In that
post, I discussed the difference between property tests and more traditional example-based
testing, how to write property tests, and the...
-
Property testing is a developmental approach to writing tests (both unit tests and integration
tests) which helps developers find the limitations of their software. It isn't an
all-encompassing set of principles or practices which...
-
One of the most frustrating yet fascinating facets of using a programming language is how it
handles errors. Many of these error handling patterns include the traditional try/catch, error
flags, unions, multiple return values, error...
-
Restrictions From State
-
Recently I've been working on a side project (that may or may not get published publicly, I
haven't decided yet). For this project, I decided I'd try a lot of new things, not all
of which worked out as well as I thought (which may be...
-
A lot has happened in the world this year. Most of the world has started to move past COVID-19,
especially in the U.S., regardless of whether it's really gone. Russia has started a "special
operations" (aka. military invasion) inside...
-
For most people, websites are visual experiences. We see images, we read text, we move the
mouse,
-
I first published this back in 2022. At the time, I was leading the localization effort of an
English-only product. The product had existed for over a decade, and over time a lot of bad
habits had crept up. This was the public...
-
Back in high school, I worked on robots with a few other students. When we built our robots, we
had motors and wheels that were a foot or two apart. To transfer the energy from our motor to
our wheels, we used chains.