Town of ZZT - Remixed

Posted on January 5, 2021 by Jack Kelly
Tags: zzt, coding

TL;DR: ZZT is now 30, there’s still a community, we’ve remixed the shareware world, it’s pretty fun, and you can play it online.

Thirty years ago, on the 15th of January 1991, Tim Sweeney released his first game to the world: a little arcadey game called ZZT, for the IBM PC and compatibles.

Original TOWN.ZZT Title Screen


Vaccine Deployment

Posted on January 4, 2021 by Jack Kelly
Tags: coronavirus

TL;DR: Despite earlier reservations, I will probably be taking a vaccine when offered, but it would be for different reasons if I was outside Australia. Also, continue to watch out for manipulation and fudging from authorities.

(Note: Twitter links have screenshots next to them, as it’s notoriously difficult to predict what Twitter shows on the other end of a link.)

Emergency approvals for the major vaccine candidates (Pfizer/BioNTech, Moderna, Oxford/AstraZeneca) have been issued, and it’s time to scale up and deploy. Then we reach herd immunity and get back to normal life, right? Well, first we need to make sure we’re all talking about the same “herd immunity”, and watch closely for shifting definitions. Between November and December 2020, the WHO’s website changed its definition of “herd immunity” at least twice (emphasis in the quotes is mine):


Profunctor Decoders? Optical Decoders?

Posted on November 3, 2020 by Jack Kelly
Tags: haskell, coding, dynamodb

I’ve been wrangling with an interesting decoding problem over the weekend. I started out fiddling with profunctors and arrows, but it morphed into something more lenslike for a while. Since Chris Penner has just published his article about fitting Witherable into an optical framework, I thought I’d write up what I have so far, and see if I can get some useful thoughts out while this stuff is flavour of the week.


Accidentally-Quadratic HashMaps

Posted on October 16, 2020 by Jack Kelly
Tags: coding, haskell, performance

TL;DR: Unless you’re careful, using foldMap to build HashMaps (from unordered-containers) can take O(n2) time. This can be avoided by:

  1. Building a Map (from containers) instead;

  2. Using foldr or foldl with insert; or

  3. Using foldMap to build an intermediate list [(k, v)] and then building the HashMap with fromList.

Shout-out to Luke Worth who found this out while we were chasing down performance problems.


Building and Importing NixOS AMIs on EC2

Posted on August 30, 2020 by Jack Kelly
Tags: aws, coding, nix

Update (2020-09-03): /u/zimbatm on suggested the nixos-generators project. Added link and brief discussion.

Update (2020-11-29): Added notes on the impact of instance limits on Packer builds.

The NixOS project publishes Amazon Machine Images (AMIs) that are a great base for reproducible servers. This post describes how NixOS and EC2 work together, first showing how to build upon the NixOS project’s public AMIs; and then digging all the way into the scripts maintainers use to build, import and distribute new AMIs on AWS.

Getting a NixOS AMI

There are few good ways to get AMI IDs for NixOS project images:

All Posts | RSS | Atom
Copyright © 2021 Jack Kelly
Site generated by Hakyll (source)