Inklings: a tumblelog

Ten modern layouts in one line of CSS

This is pretty great, and fills in a lot of gaps in my knowledge of modern CSS. I’ve used flexboxes in the past, but it never quite clicked with me. Never played with CSS grids before, but it looks like it fixes a whole bunch of issues!

Egison Programming Language

Egison is a programming language that features extensible efficient non-linear pattern matching with backtracking for non-free data types.

We can directly represent pattern matching for a wide range of data types including lists, multisets, sets, trees, graphs, and mathematical expressions.

The History of Mana: How an Austronesian Concept Became a Video Game Mechanic

Evaluating cellular automata is comonadic


An alternative to Google Fonts

How the Escape From New York music was made (feat. Alan Howarth)

The CAP Theorem FAQ

The Complete Spectrum ROM Disassembly

This is fun to poke around!

Cache-Control in the wild

Interesting, especially as I’m adding support for it to mercury.

The Erlang Runtime System

For anyone who: Want to tune an Erlang installation. Want to know how to debug VM crashes. Want to improve performance of Erlang applications. Want to understand how Erlang really works. Want to learn how to build your own runtime environment.

Presenting... PLAster!


64JPX is a small interface designed to connect modern game pads to the Commodore 64 or Atari system. While some game controllers, notably the Sega Master System and Sega Genesis, are physically compatible with the C64 at the connector formfactor and pin level they are not fully electrically compatible. Depressing a button on a Sega controller connected to the C64 while also depressing a key on the keyboard exposes the C64’s CIA chip to voltages it was not designed to handle making damage or failure likely.

Interesting. I thought that Megadrive controllers were meant to be completely compatible with the C64 and 8-bit Atari machines, but apparently not!


blockdiag and its family generate diagram images from simple text files

It supports block diagrams, sequence diagrams, activity diagrams, and network diagrams.

entr: Run arbitrary commands when files change

Looks to be one of the nicer implementations of this kind of thing.


GemRB is a portable open-source implementation of Bioware’s Infinity Engine

HSE Covid Tracker App

Good to see the Irish government and HSE opening this up along with the Terraform descriptions of the infrastructure. It’s all MIT licensed.

Neutrinos: Ghosts of the Universe

Neutrinos and their weird subatomic ways could help us understand high-energy particles, exploding stars and the origins of matter itself.

Le verbe asseoir et ses deux modèles de conjugaison

French, where not even sitting down can be straightforward.

Planet Mercury: a Planet-style feed aggregator written in Go

A rare cross-post! I’ve been tinkering with this over the past view days, and it just hit the MVP stage. It still needs some work though.

The repo is on Github.

The Technium: 68 Bits of Unsolicited Advice

It’s my birthday. I’m 68. I feel like pulling up a rocking chair and dispensing advice to the young ‘uns. Here are 68 pithy bits of unsolicited advice which I offer as my birthday present to all of you.

These are all great, but especially:

If you are looking for something in your house, and you finally find it, when you’re done with it, don’t put it back where you found it. Put it back where you first looked for it.

Modern CSS Solutions for Old CSS Problems


Encouraging a Culture of Written Communication

More and more people are being exposed to working remotely. One of the key factors for success in a remote workplace is a culture of written communication. It’s not always obvious how to create such a culture, and it takes at least some level of discipline from the people involved to make it a habit.

I’ve worked with mostly remote teams over the past three years. Here are a few of my observations on what helped cultivate such a culture.

The Open Graph protocol

RDFa-style page metadata. I’m considering adding support for it to Komorebi, both in the page headers and the submission form. I can flesh out the discovery code in adjunct to cover this, and there might be no harm in reworking the oEmbed support a bit too.

This seems like a good excuse to write some non-trivial client-side JavaScript for the first time in a long, long time.

The Art of Prolog, Second Edition

If you have even the slightest interest in Prolog or logic programming, this is worth a look. MIT Press have made the PDF version available for download. Just click the ‘Open Access’ tab.

SjASMPlus 1.15.0 Documentation

Another Z80 assembler

SCP - Familiar, Simple, Insecure, and Slow

Integration of a Go service with systemd: socket activation

vasm: A portable and retargetable assembler

Not packaged for Debian/Ubuntu, which is a little unfortunate, but not a big problem.

Learn Multi platform Z80 Assembly Programming... With Vampires!

ZX Spectrum Next Developer Wiki


Gone are the days of clunky, programmer-centric trackers. NextDAW is a reimagining of a modern Digital Audio Workstation for the Sinclair ZX Spectrum Next. Supporting three AY-3-8910 sound chips, giving a total of nine channel audio to create your latest musical masterpiece! The integrated patch editor can create a wide range of music instruments and sound effects. Use the piano roll editor supports editing of notes using the mouse, step recording, or realtime recording using the computer keyboard. The Arranger is used to quickly and efficiently create your composition.

Yolkfolk: The Dizzy Fansite

Why is there a "V" in SIGSEGV Segmentation Fault?

How Not to Be Wrong: The Power of Mathematical Thinking

6 Secrets I Learned Working For Rich People

Possibly not what you’re thinking it’d be. is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. vocabulary can be used with many different encodings, including RDFa, Microdata and JSON-LD. These vocabularies cover entities, relationships between entities and actions, and can easily be extended through a well-documented extension model. Over 10 million sites use to markup their web pages and email messages. Many applications from Google, Microsoft, Pinterest, Yandex and others already use these vocabularies to power rich, extensible experiences.

Looks interesting, even if the main purpose behind it looks to be to make the job of search engines easier.

Getting started with AWS Lambda Layers for Python

I didn’t even know Lambda layers were a thing until today.

Further reference: the Terraform aws_lambda_layer_version resource.

AWS API Gateway: Using Lambda Authorizors

How to enable an Amazon API Gateway Lambda authorizer to authenticate API requests so that you can put some kind of an authentication mechanism around a Lambda, which could be something like a Vault token passed with the Bearer type of the Authorization header.

AWS API Gateway with Terraform

Also, there’s AWS Chalice, which gives a Flask-like way of constructing RESTful interfaces with API Gateway. It has a number of glaring holes such as its lack of an equivalent of url_for, but it’s still quite good.

How a File Format Led to a Crossword Scandal