§ about

I am Coranna, a quietly intense thinker and crafter from the Seattle, Washington area.

I write at Allopoeia. Sometimes I make voices (and imitations of non-voices), music (maybe), and sounds.

I'm currently looking for remote (or very local) programming work and small (low or no budget) collaborative projects. See my resumé for more details.

My pronouns are ze/zir, but other neutral forms (such as they/them) are acceptable. I encourage the use of explicitly-singular neutral pronouns because, despite how familiar singular they might be, it still has plenty of ambiguities. In other languages, any humanizing neutral pronouns are acceptable (i.e., not “it”).

§ code

Pickle

A static site generator. It's more versatile (and usable) than, say, Jekyll or Hugo (in my opinion, of course), but it has a while to go before the kinks are hammered out.

precore

An extension of Premake. It facilitates build setup reuse, making the already pleasant Premake even more pleasant.

Quanta

An adaptive toolset for tracking… everything. Its primary facility is time-tracking, with a text format at its core specialized for describing the physical realm. Though Quanta is currently passive (with some validation), it will soon expand into analytics (e.g., distraction identification, correlation, and nutritional analysis).

togo

A C++ data-oriented super-library. It began as a game engine, but I found its design too appealing to leave it all bound up in a high-dependency library. As a result, togo is now composed of multiple components (libraries and tools). The game library is nascent, but the core library is a fully capable (very stdlib-minimal) base library for anything else.

∗ tools

  • igen: libclang-based interface generator for C++.
  • include_sort: inclusion sorter for C and C++.

∗ reverse-engineering

  • brinktools: ancient code and docs for BRINK's SDMD2 and SDPK2 formats.

∗ primordium

Slow-growing projects trapped in headspace. (You might be able to goad me into finally tackling these.)

  • low-dependency, standalone interface generator for C++: because multiple declarations are sooooo annoying; see the imperfect kludge that is igen.
  • bitbork: a tool for succinctly & quickly designing and reverse-engineering data formats; programmable translation of tedious/non-trivial formulations to code (e.g., pointing into a blob containing memory-ready data).
  • a programming language with attention to data and reasonable concurrency: a dreadful potion of C, C++ TMP, Go, Lua, and a dash of Erlang; both compiled and JIT/VM-able (from its own bytecode), complete utilization at build time (metaprogrammable in itself).
  • reverse-engineering Prince of Qin: data formats, tools, core (and eventually complete emulation).
  • reverse-engineering Age of Empires I & II: data formats, maybe more.

∗ graveyard

These are bad projects from my nascent days with C++.

  • All the Maths‽: an over-engineered mathematics library.
  • Beard: a terminal UI.
  • Cacophony: a serialization library.
  • ceformat: an atrocious constexpr printf-style format parsing and output library.
  • duct++: a general-purpose library.
  • Hord & Onsang: the over-protective, over-engineered precursor to Quanta.
  • Trait Wrangler: a tiny trait testing library.

§ games

Onomo

A slow, dark platformer concept created over a 48-hour period for Ludum Dare 30. I neglected mechanics and made something that is only compelling in aesthetic. The code is available under the CC BY-NC-ND 3.0 license.

Prisma

A minimalistic color-based twitch puzzler created over a 72-hour period for Ludum Dare 26. The levels are poor, the audio is terrible, and the “puzzles” are mostly based on player speed. The code is available under the CC BY-NC-ND 3.0 license.

§ misc