Book review: Bernoulli's Fallacy

The last time I did a book review, I lamented about how long it took me to get through the book. The topic of dependent types was both new and unfamiliar, and maneuvering through the exercises was long and required engaged thought. This time, I’ve approached “Bernoulli’s Fallacy: Statistical Illogic and the Crisis of Modern Science.” The book broaches subjects that are neither wholly new or unfamiliar to me, someone who practices engineering and science. It presents a fascinating perspective into the history of probability as well as a condemnation of many stastical norms, or orthodoxies. Controversial that may sound, and controversial it is! But I think it underscores some very important mistakes made in modern statistical practice, and on reflection of my own education, I think it’s worth discussing!

Read More...


Librem 5 Evergreen vs. Pinephone (Part 2 of ???)

It’s been about half a year since I wrote my original post comparing the Librem 5 and Pinephone. The original post saw some controversy as well as quite a bit of attention on Hacker News. Surprisingly, for a market dominated by new tech every year, there remains quite a bit of interest in these two devices.

Development on both devices continues day-by-day, in small and large parts. I wanted to revisit the devices as a lot of the ecosystem has changed. Further, I think they’ve definitely both evolved in terms of what’s possible, and more importantly what’s easy.

Read More...


Book review: The Little Typer

I finally managed to finish working through The Little Typer. The “Little” series is a series of (semi-)introductory books published by MIT press, which typically use Scheme or Lisp as a vehicle to teach some interesting aspect of programming. In this case, “The Little Typer” aims to teach the most interesting aspects of dependently typed programming. The “Little” series has been one of my favourite series of programming books, and the books have always been a delight to work through. Having spent quite a considerable time working through the book (several weekends since around sometime last November / December or so), I figured I would write up a book review, since I have a lot to say about the book!

Read More...


Don't define functions inline in your public headers

Recently I fixed a bug in librealsense2. The core of the bug was that the developers used a C++ functional cast expression in a C header, which broke the realsense-rust wrapper we’re developing at work. Worse yet, this was shipped as part of the official 2.42.0 release of librealsense2. Oof.

The fix is pretty clear: use a C-style cast instead. Better yet, follow the advice in Modern C don’t use casts at all. Well, we can’t always avoid them, and the compiler can make the whole process annoying. At least, it is especially problematic to detect such issues when you use a C++ compiler.

Read More...


Can email not suck?

The (current) extended public health crisis has given me a gratuitous amount of free time. At least, comparatively to before the public health crisis. This past weekend, bored out of my mind, I came across a post from the K-9 developers on Hacker News. This got me thinking a lot more about email and how my use has changed over time.

Read More...


This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.