Inklings: a tumblelog

Persian/Farsi Grammar

Not that I’m intending on learning it, but it looks like an interesting read. I’ve never looked that hard at Indo-Iranian langauges.

The Unexpected Outcomes of Code Review

[code review] also has several beneficial influences: (1) makes people less protective about their code, (2) gives another person insight into the code, so there is (3) better sharing of information across the team, (4) helps support coding conventions on the team, and…(5) helps improve the overall process and quality of code

What To Know Before Debating Type Systems

An oldie, but a goodie!

Database migrations done right

The rule is simple. You should never tie database migrations to application deploys or vice versa. By minimising dependencies you enable faster, easier and cleaner deployments.

Abstraction, intuition, and the “monad tutorial fallacy”

The heart of the matter is that people begin with the concrete, and move to the abstract. Humans are very good at pattern recognition, so this is a natural progression. By examining concrete objects in detail, one begins to notice similarities and patterns, until one comes to understand on a more abstract, intuitive level.

This is a hobby horse of mine, and something so much casual pedagogy gets wrong.

Leaving Twitter

I don’t usually cross-post stuff from my blog here, I’ll make an exception.

While I’m not shutting my Twitter account down, I’ve decided to stop using the service going forward. The blog post outlines, best as I can, why. I might set up some automation that occasionally posts stuff there, but I won’t be using any apps or the Twitter site myself. It would take a lot for me to go back there.

I’m removing all mention of my account except for on my ‘About’ page.


WebFinger (RFC 7033) is a REST-based web service used to discover information about people and other addressable entities on the Internet.

WebFinger servers return a JSON document as a response to a valid query. The JSON document is referred to as a JSON Resource Descriptor (JRD) document. The structure of the document is simple, providing the querying client with a list of link relations, properties, and other information about the subject being queried.

End users publish information about themselves through an account, such as a social network account or a corporate directory. The service provider or enterprise maintaining the account would then publish the information about the user marked for publication via WebFinger. It is then possible for other users to retrieve that information from within the applications they use. As an example, a user might publish his name, address, phone number, and picture via WebFinger. This information could then appear automatically in an email client used by another user.

WebFinger may be used for discovering other kinds of information about a host or domain. It is certainly not limited to discovering information about human users. For example, it could be used to discover the information required to properly configure an email client or to determine the physical location of a printer or other device on the network.

Linux kernel map

Pentagon Wars: Bradley Fighting Vehicle Evolution

Acorn technical documents

JSON-LD: A JSON-based Serialization for Linked Data

JSON is a useful data serialization and messaging format. This specification defines JSON-LD 1.1, a JSON-based format to serialize Linked Data. The syntax is designed to easily integrate into deployed systems that already use JSON, and provides a smooth upgrade path from JSON to JSON-LD. It is primarily intended to be a way to use Linked Data in Web-based programming environments, to build interoperable Web services, and to store Linked Data in JSON-based storage engines.

Looks to be another concrete syntax for RDF.

What is the Gemini protocol?

Can we talk about client-side certificates?

How to use blacklistd(8) with NPF as a fail2ban replacement

I tried and failed to get something like this working so I could move away from using sshguard and ipfilter on the Raspberry Pi B+ I have as my home network bastion.

Zsh and Fish’s simple but clever trick for highlighting missing linefeeds

tl;dr: We look at how Zsh and Fish is able to indicate a missing terminating linefeed in program output when the Unix programming model precludes examining the output itself.

How a File Format Led to a Crossword Scandal

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.

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.

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. 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.

6 Secrets I Learned Working For Rich People

Possibly not what you’re thinking it’d be.

How Not to Be Wrong: The Power of Mathematical Thinking

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

Yolkfolk: The Dizzy Fansite


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.

ZX Spectrum Next Developer Wiki

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

vasm: A portable and retargetable assembler

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

Integration of a Go service with systemd: socket activation

SCP - Familiar, Simple, Insecure, and Slow

SjASMPlus 1.15.0 Documentation

Another Z80 assembler

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.

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.

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.

Modern CSS Solutions for Old CSS Problems


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.

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.

Le verbe asseoir et ses deux modèles de conjugaison

French, where not even sitting down can be straightforward.

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.

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.


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