Inklings: a tumblelog

Using Cramer's Rule for solving a 2x2 system of linear equations

Needed this for Advent of Code. I’ve forgotten so much maths!

Crafting Interpreters

Crafting Interpreters contains everything you need to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. It’s a blast.

Starting from main(), you build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you write each one yourself.

Kind of surprised I’ve never come across this before.

A simple Priority Queue in OCaml

A clever way to implement a priority queue using the Set module that makes use of the min_elt/min_elt_opt functions and internal ordering on the priority.

I’m thinking of re-implementing the A* implementation I did for Advent of Code to lean on this. It’s already sets, so it shouldn’t affect the speed, but it’ll likely make it significantly less awkward, especially as far as finding the current element goes.

Here is where the example priority queue implementation mentioned can be found. More recent versions of the documentation don’t appear to have it anymore.

Insular Typewriter

Just stumbled across this when looking for something else. A really nice monospace font done in an Insular style.

A Brief Introduction to OCI Containers on FreeBSD

This is one of the more compelling features of 14.2. The big thing that’s long been missing from containerised workloads (jails) on FreeBSD has been a sane way of bundling up the contents of the container into an artifact. This is some very useful cross-pollination from the Linux container world!

Generating static and portable executables with OCaml

The process of generating a static executable is weirdly involved!

Solar Bears - Cub (Keep Shelly In Athens Remix)

Cache Directory Tagging Specification

3∆N – bl∆Ck h0Le

I’ve been looking for this for a while but could never find it!

Please

A build system that’s quite similar to Bazel, Pants, and Buck2.

D2

Create beautiful diagrams in minutes. Simple syntax. Endlessly customizable. D2 is the fastest and easiest way to get a mental model from your head onto the screen, then make edits with your team.

It fills a similar niche to Mermaid.

Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode

This is the technique being used for the new Python JIT.

The Power of Prolog

grype: A vulnerability scanner for container images and filesystems

I’m mainly looking at this as a way to avoid dealing with Snyk.

Its companion tool, syft looks interesting too. It’s a “CLI tool and library for generating a Software Bill of Materials from container images and filesystems”, and may need something like that at work soon enough.

How to mount a Google Drive directory to a headless Ubuntu Linux server in 2 minutes

I’ve dug out my old Lenovo Miix 310. I’d misremembered and throught it’d crashed horribly in the middle of an update, but it still appear to be functioning. Insynq is a bit too heavyweight for it at this point, so I’m looking for alternatives. This article looks promising, and so does rclone.

Introduction to systemd-nspawn Containers: chroot on Steroids

On Running systemd-nspawn Containers

I’m looking at this as a more lightweight alternative to using Docker in certain circumstances. It might help fix some issues with builds in the future.

‘Groups’ Underpin Modern Math. Here’s How They Work

Solid.js

A React alternative that doesn’t need a virtual DOM. Looks quite nice and seems to fix a lot of the issues I had with React way back. Then again, I’m so out of the loop when it comes to JS these days that I’m probably not to be blindly trusted!

Online playable C64 games

Found this by accident when trying to find the VVVVVV C64 conversion.

The emulation’s pretty good, though there’s the odd audio glitch, probably down to a circular buffer overflow issue.

Makeup and Vanity Set: Low

This’d be great expanded into a Tangerine Dream style 20m epic!

TIO: Try It Online

This is neat! It’s a language demoing site with ~400 different languages, where you can type in some code and some input to send to standard input, run it, and see the result. Certainly more practical than installing a bunch of compilers and interpreters if you’re trying to get a feel for some more obscure languages.

Atom Feed Format Was Born 20 Years Ago

Somehow almost perfectly synchronised with when my seething loathing of Dave Winer began.

I try not to hold grudges, yet all too often do, but this grudge is one I don’t feel remotely bad about.

Homebrew and private Github repositories

I’ve been looking for a good way to do this for a while, but the Homebrew documentation isn’t particularly good at describing how to do this. I’m not a fan of the javadoc-esque documentation that’s popular in the Ruby community: it’s heavy on the what, but lacking on the how and why.

In my case, I want to find a way to fetch stuff from Artifactory or, failing that, set up some shadow IT by downloading stuff from Github or Bitbucket.

MNYNMS - DENIAL

Lester

The Space Station Factory orbiting the planet is undergoing an unprecedented mutiny.

The main computer of the space station UNSS ASAMI has gone rogue during decommissioning and gained control of the guardian droids.

After winning a short battle with the UN army dislocated on Mars, the rebellious mainframe is now pointing the station towards earth with its load of uncontained radioactive material.

You are the android L-3573-R, the first of a new generation of guardian droids independent from a central AI. Given your strengths, you are the only hope to stop this threat and figure out what happened to the station.

A metroidvania for the C64!

Atari 2600 Hardware Design: Making Something out of (Almost) Nothing

You may find the book Racing the Beam interesting, as well as the Stella Programmer’s Guide (archive.org version) too, as well as 8bitworkshop, which has the in-browser Atari 2600 dev environment from Making Games for the Atari 2600.

The community spectrum: caring to combative

Last year one of the designers at my work linked me to The Competitive Spectrum over at the Yahoo Developer Network, and it introduced me to a whole new way of thinking of the variety of communities. It’s part of a larger set of social patterns related to reputation, which is a whole nother subject, but for now I just want to talk about the spectrum itself.

See the original in the Wayback Machine.

PicoCSS

Minimal CSS Framework for semantic HTML

Looking at it as a basis for styling this and other sites better, given how tremendous behind the times I am with CSS.

Archimedes Live!

In-browser Acorn Archimedes emulator. It covers a selection of the major machines before the RiscPC arrived on the scene.

How did I not know about this already?!

The Archimedes should be a relatively easy machine to emulate: the ARM3 and earlier have a straightforward ISA, and the MEMC and VIDC chips are the only other complex custom hardware, and are relatively simple for what they manage to do, as the Archimedes was all about raw processor grunt.

Italy’s pasta row: a scientist on how to cook spaghetti properly and save money

Seems like a perfectly good method! If anything, pre-hydrating the spaghetti might make it easier to get the texture just right and avoid overcooking it.

Flashing LineageOS 14.1 to a Nexus 7 (2012)

Because I’d like to make this usable again, as mine ended up unusable, not least because Asus screwed up with the onboard storage and Google’s last update didn’t fix TRIM support.

Fork Awesome

A fork of Font Awesome from before the licensing got confusing and it got awkward to use. I’d switched to using their SVGs, but the copyright messages attached to them imply they’re under a commercial license, so I’d prefer to use something with more straightforward licensing. This covers all my uses.

Life Universe

Infinitely-recursive Game of Life

hcloud-freebsd

Hetzner Cloud auto-provisioning for FreeBSD.

I’m planning on moving a VM I have in DigitalOcean away from them to Hetzner. It might work out, or it might not. The main reason is that their prices have gone up sufficiently to be annoying and their remaining FreeBSD support is rather hosed. If it doesn’t, then even then I think it’ll be worth playing with to get a feel for how their systems work and to maybe prep something to set up WordPress for a friend there.

"Impossible to update UEFI dbx"

I hit this issue when recently updating my laptop. I’m a bit wary of applying the fix given here because I’m not 100% sure everything on my laptop is backed up, but it looks promising.

Concatenative programming: from ivory to metal

Ghosthustler - Parking Lot Nights

Putting Amazon’s PR/FAQ to Practice

20 Mechanical Principles combined in a Useless Lego Machine