I am load shedding
April 2025#Articles

Is sending Factorio to your competitors' engineers a cost-effective means of sabotage?
January 2025
Reactive HTML notebooks
September 2024
Hello, notebook-http
mode

Subordinate Latin
+ a typeface inspector
September 2024
Which groundhog is the best prognosticator?
March 2023
How to tell someone's age when all you know is their name
March 2023
Plotting a black hole
February 2023
How many QMS advertising panels in Sydney are near a Telstra public telephone?
December 2022
Perceptually uniform color models
December 2021I am currently living in Sydney, Australia.
It is:
#Projects

@celine/celine
A library for building reactive HTML notebooks

@celine/bibhtml
A Web Components-based referencing system for HTML documents

Muncoordinated
Model UN committee management service
poppenhuis
Digital dollhouse

HTML in Hyde
Meetup

Genre map explorer for Spotify

favicon.garden
Favicon API and cache

Royal Game of Ur positional risk calculator

2019/2022 House of Reps booth swings

Informal voting in the 2019/2022 federal elections


Maximum distance to desired amenities

Rent vs Mortgage

Color schemes under color vision deficiency

IMC Prosperity 2 visualizer

Foundation shades

Every Fragrance at Once

CSS gradient generator

Named color "wheel"

Sanrio character rankings

Sydney traffic light timings

Trorca
Generative music framework

HCT/Oklab deltas
Investigatory data visualisation

Richard Burns Rally telemetry visualizer

DiRT Rally [2.0] pacenotes reader

Wordle solver

friendship2
Digital friendship bracelet maker
mbo-neocities_hit_counter

meterland
an ode to my favorite HTML element

RECEIPT PARTY

slicer
Photo finish maker

the coalition for housing diversity.

Lucy's skincare favorites

Australian House of Reps division cartograms
Utility wrapper

Bank failures

Circuit locations of close racing the 2024 F1 season

Regional NSW station patronage
#Demos

Hello, Mixbox
Interactive visualisation of paint mixing

Hello, Spectral.js
Another interactive visualisation of paint mixing

Hello, sql.js-httpvfs
Utility wrapper for a SQLite.js VFS client

Hello, Sparks
Utility wrapper for a typeface for creating sparklines in text

Hello, PRQL
Utility wrapper for an alternative SQL syntax

Hello, ln.js
Vector-based 3D renderer

Hello, protobuf.js
#Talks

Reactive HTML notebooks

Intro to Parser Combinators

Intermediate Data Visualisation
Talk & interactive notebooks

Intro to Property Based Testing

A tour of Scala
Lecture series & teaching aide

Some JavaScript features
Talk & interactive notebook
#Art
#Abandoned projects

opencosmetics.org
Cosmetic alternatives recommendation engine

pollock.ai
AI t-shirt generator

Polling booth voronois

WALS Online language map
Mapper of language linguistic features

Rank Your Music
Resorter of existing Rate Your Music ratings

neoreader
Screenreader extension for Neovim

SyncUQ
UQ-exclusive schedule sharing app
#Assorted links
- Factorio Galaxy of Fame
- Papers I like
- RSS/Atom feeds I follow
- Free ideas
- COME AND TAKE IT
- Lighthouses in New South Wales
- Hackathon stacks
- Safety in types
- Everything as hooks
- Building a decent tech talk
- Haskell operators
- The story of Muncoordinated
- Universal Function Call Syntax in Scala
- Elaborate shitposts
#Interests
- Functional programming
- Computational notebooks & literate programming
- PLT
- IDLs & wire protocols
- Situated software / malleable systems / end-user programming / HTML / Old Web
- CS pedagogy
- Color theory
- Urban planning & economics
- Classical guitar
- Badminton
- Board games
- Sim racing / rally
#Employment
#Education
-
University of Queensland
- BSc Computer Science Extended Major
- July 2015 - July 2019