Pick a Coding Font Through Tournament Style EliminationPermalink

CodingFont is a neat way to choose a monospace programming font. You’re presented with code set in a pair of fonts and must pick the one you prefer. After each round new pairs are drawn from the remaining fonts until you end up with an ultimate winner.

I ended up with JetBrains Mono, which is a fine choice for me given the options. Notably Iosevka and my personal favourite, PragmataPro were missing though.

Building a Tiny CDN With pyinfra and Chimera LinuxPermalink

On my personal blog:

I added caching so that the application only renders a page once. After that, the cached render result is reused for subsequent responses. These cached responses are typically generated in about a third of a millisecond (~323µs on average), which I was pretty happy with.

The problem was, for my convenience the server hosting Linked List was located in Australia, where I live. Unfortunately most other people do not live in Australia, and we’re a long way from everywhere.

A bit of behind the scenes information on how I built a tiny CDN for Linked List by adding some cheap additional servers orchestrated with pyinfra.

Programming Language Christmas OrnamentsPermalink

Joe Warren:

Christmas Ornaments based on programming language logos.

Generated using Haskell & Waterfall CAD

For all your nerdy 3D printable Christmas decoration needs. New logos are still being added. Since I first saw the repo Terraform, BigQuery, Python, Snowflake, Go, Rust, and Ruby have been added.

Close up photo of a pink Gleam Christmas ornament hanging in a Christmas tree.
Gleam ornament. Photo credit: Joe Warren.

Using Podman and OCI Containers on FreeBSDPermalink

Dave Cottlehuber:

14.2-RELEASE now includes OCI-compatible images, and the Podman toolkit on FreeBSD is ready to use them, on both amd64 and arm64 systems.

In the aarch64 and amd64 download directories, you’ll see 3 official OCI-format images. The naming may be a little confusing at first, but should make sense once you start using them.

Each image comprises a subset of a standard FreeBSD base.txz release tarball, for various use cases.

It’s taken a long time, but it’s great to see support for Docker-style workflows on FreeBSD. I never found using jails directly to be a suitable substitute, and using Docker more was one of the reasons I stopped using FreeBSD on the desktop, and my servers back in 2019.

Dave Cottlehuber on Lobsters with some additional details:

[OP here] dfr@ has ported the podman tooling to FreeBSD, so that the existing kernel jail functionality can be used with podman tools, and OCI images. The releng team has integrated his tooling to generate images that are produced entirely within the official FreeBSD Release process, thus giving a high degree of trust and provenance.

You can then import these into your own FreeBSD tools, and play with them as you like.

But what you get at runtime is a bona fide FreeBSD jail, with the same FreeBSD goodies you would expect.

My personal observation, at least in these early days, is that it makes building and deploying custom jails much simpler, as it allows deploying as a single step, as the build already combined base container + app + storage in a single step. Managing secrets for databases etc still needs to be done separately.

Speeding Up Ruby by Rewriting C in RubyPermalink

JP Camara:

There is a recent language comparison repo which has been getting shared a lot. In it, CRuby was the third slowest option, only beating out R and Python.

With YJIT, Fibonacci gets a massive boost - going from 16.88 seconds down to 2.06 seconds. It’s close to the speed of node.js at that point!

YJIT makes a more modest difference for the looping example - going from 33.43 seconds down to 25.57 seconds. Why is that?

Interesting dive into the newer1 Ruby internals with the YJIT JIT compiler. I also find it fascinating to see the spread of times across the languages, ranging from half a second to over a minute to produce exactly the same result!

  1. For about a decade Ruby was my primary programming language. However, it’s been 5 years since I stopped using it regularly and a lot has changed in that time. I did write the new-post script for this site in Ruby though.