Contents
Software | Software projects |
Documents | Documents and articles |
Contact | Contact information for the author |
PGP | PGP information |
Public Domain | Public domain dedications |
Links | Links to important third parties |
Software
Software projects of which I am (or have been) the primary author and/or maintainer.
Core
abstand | Interval trees. |
anethum | Generic parser API specification. |
aradine | Modular programmable synthesis. |
aurantium | Aurantium audio sample map format. |
bishopsgate | JMS → Matrix relay. |
blackthorne | Functional streaming XML data extraction. |
bodyrecomp | Body recomposition tools. |
boxwood | EPUB parser. |
brackish | JavaFX waveform display component. |
brooklime | Nexus Pro staging repository API and command-line tool. |
calino | Strongly-specified 3D texture file format. |
canonmill | Directory-based Java Keystore. |
cardant | Inventory server. |
cardant_gui | Cardant JavaFX GUI. |
cedarbridge | Generic, strongly-typed, versioned message protocol compiler. |
certusine | ACME client. |
changelog | Software changelogs. |
checkstyle_rules | Common Checkstyle rules for io7m projects. |
chione | Opinionated builds of Apache Artemis for small-scale deployments. |
cxbutton | Customizable embossed CSS buttons. |
darco | Minimalist, opinionated database access. |
digal | Java FX rotary dials. |
dixmont | Dixmont Jackson extensions. |
ervilla | JUnit 5 Podman container creation. |
ethermaker | Ethernet MAC address generator. |
flail | DNS server stress testing tool. |
garriga | AlertManager → Matrix Alert Relay. |
gatwick | BOSS GT-1000 controller. |
genevan | Generic protocol negotiation algorithm. |
gtyrell | Git repository mirroring tool. |
hibiscus | RPC Client API Specification. |
idstore | Identity server. |
idstore_gui | GUI for idstore. |
idstore_trafficgen | Traffic generator for idstore. |
ieee754b16 | Functions for converting to/from IEEE754 binary16 values. |
immutables-style | Immutables.org annotations for io7m projects. |
ivoirax | JavaFX piano component. |
jaccord | Java library to assist with musical analysis. |
jade | Java application directory etiquette. |
jaffirm | Simple and fast contract checking. |
jarabica | Type-safe OpenAL wrapper. |
jattribute | Observable, functional, mutable variables. |
jbssio | Java bytestream structural I/O. |
jcamera | Camera implementations for 3D simulations. |
jcathinone | Apache Artemis message directory spooler. |
jcip | Clean-room JCIP annotations. |
jcolorspace | Color space conversions. |
jcoords | Functions for specifying and converting between coordinate spaces. |
jcoronado | Type-safe Vulkan wrapper. |
jdeferthrow | Defer and combine exceptions. |
jdownload | Resumable HTTP downloader library. |
jequality | Equality handling. |
jeucreader | Unicode codepoint reader. |
jfsm | Finite state machines. |
jintegers | Integer handling. |
jinterp | Interpolation functions. |
jlexing | Lexer types. |
jmulticlose | Collective try-with-resources. |
jmurmur | Java implementation of the Murmur hash function. |
jmutnum | Trivial mutable numbers. |
jnfp | Normalized fixed-point value functions. |
jnoisetype | SoundFont® I/O. |
jobj | Java Wavefront OBJ parser. |
jodist | Coffee-flavoured source code generation. |
jorchard | Mutable rose-tree types. |
jpita | Simple text alignment algorithms. |
jpplib | An improved fork of the unmaintained jpplib package. |
jproperties | Typed property handling. |
jptbox | Unicode box drawing. |
jpuddle | Trivial object pooling. |
jqpage | SQL pagination functions. |
jranges | Range handling. |
jregions | Immutable area types. |
jsamplebuffer | Audio sample buffer types. |
jsay | Tiny JMS text message sender. |
jserial | Serial number arithmetic. |
jspatial | Spatial data structures. |
jspearmint | SPIR-V toolkit. |
jspiel | Java RIFF I/O. |
jsx | S-expression parser. |
jsycamore | OpenGL GUI library. |
jtensors | Vector/matrix math package. |
junreachable | Exception types for marking unreachable/unimplemented code. |
junsigned | Missing unsigned value conversions. |
jvindicator | Type-safe HTTP servlet parameter validation. |
jwheatsheaf | JavaFX file chooser. |
jxe | Hardened, boilerplate-free XML parsers. |
jxtrand | Utility classes for XML string resources. |
kabstand | Kotlin port of the Abstand package. |
lanark | Restricted dotted name specification. |
laurel | Image caption management. |
looseleaf | Minimalist transactional HTTP key/value store. |
medrina | Role-based mandatory access control. |
mime2045 | RFC 2045 MIME type parsing. |
minisite | Tiny software project static site generator. |
miscue | UI error dialogs. |
northpike | Continuous integration server. |
northpike.packaging | Platform-specific packaging for Northpike. |
oxicoco | Embeddable Java IRC server component. |
pallene | An ultra-minimal single-file static web server. |
percentpass | Percent-passing extension for JUnit 5 tests. |
primogenitor | Ancestor POM for io7m projects. |
quarrel | Strict, opinionated, typed command-line argument parser. |
quixote | Tiny embedded web server for unit testing. |
repetoir | Service directory. |
scando | Tiny japicmp command-line wrapper. |
seltzer | A specification for structured, user-facing error values. |
servitor | Static podman/systemd service generator. |
sigiltron | Mysterious symbol generator. |
smfj | Minimalist sequential mesh format. |
streamtime | Input/output stream progress tracking. |
string-template-maven-plugin | String Template Maven plugin. |
sunburst | Asset package system. |
tabla | Plain text table rendering. |
taskrecorder | UI task recorder. |
tavella | Podman Java interface. |
timehack6435126 | JVM high-resolution timer bug workaround. |
trasco | SQL database schema revision system. |
usq | Unsupervised persistent queues. |
verdant | Binary protocol for HTTP endpoint version announcements. |
verona | Semantic versioning types. |
wendover | Java NIO channel tools. |
xoanon | JUnit 5 JavaFX test harness. |
xstructural | XSLT implementation of the structural document language. |
zelador | JUnit 5 cleaning service. |
zeptoblog | Tiny, modular, static blog generator. |
Irradia Components
datepicker | Minimalist Android date picker. |
fieldrush | High-performance, low-allocation, type-safe, recovering stream JSON parser. |
http | Tiny HTTP interface. |
mime | RFC2045 MIME type parsing. |
opds1_2 | OPDS 1.2 parser. |
opds2_0 | OPDS 2.0 parser. |
servicedirectory | Android-oriented lazy application service directory. |
Adoptium
openjdk-api-java-client | Java client for the AdoptOpenJDK API. |
Immutables
immutables-vavr | A set of Immutables encodings for Vavr. |
Library For All
epubsquash | Java EPUB size reduction API and tools. |
lfa-android | LFA fork of SimplyE. |
lfa-launcher | LFA Android launcher application. |
opdsget | OPDS feed retrieval tool. |
repomaker | A lightweight repository generator for the LFA Updater. |
updater | Application to download and install LFA applications. |
LWJGL
lwjgl3-osgi | LWJGL OSGi packages. |
Palace Project
palace | The Android client for The Palace Project. |
palace-audiobook-android | The Palace audiobook player API. |
palace-ci | The Palace continuous integration scripts. |
palace-drm-core | The Palace DRM API. |
palace-http | The opinionated Palace HTTP client. |
palace-r2 | A replacement navigator for Readium 2. |
End-Of-Life / Unmaintained
blueberry | End-user automated junit test runner. |
cantoria | Java 9+ API analysis tool. |
claypot | JCommander conventions for io7m projects. |
coffeepick | Java runtime retrieval API and shell. |
coffeepick-gui | CoffeePick GUI. |
ftgr | Fossil → Git replayer. |
halite | Maven plugin to accumulate dependencies and artifacts. |
jareas | Area types. |
jaux | Auxiliary library. |
jboxes | Box types. |
jcache | Generic cache algorithms. |
jcage | Run-time configurable JVM sandboxing. |
jcalcium | 3D realtime skeletal animation package. |
jcanephora | OpenGL plus static safety. |
jdae | JAXB COLLADA bindings. |
jfppg | Java fixed-point code generator. |
jfprop | Server for synchronizing Fossil repositories. |
jfunctional | Functional types. |
jguard | FreeBSD jail management tools. |
jjacob | High-performance, memory and type-safe bindings to the JACK API. |
jlog | Hierarchical logging. |
jnull | Null pointer handling. |
jparasol | Minimalist, pure functional shading language. |
jpismo | OpenGL text renderer. |
jpra | Fast, mutable, packed records for Java. |
jrai | Apache Artemis → IRC relay bot. |
jrcl | Restricted class loader. |
jrpack | Rectangle packing algorithms. |
jstructural | Java implementation of the structural document language. |
jtimeline | Generic timeline package. |
jvvfs | Virtual filesystem. |
jwhere | Disk cataloguing tool. |
kstructural | Kotlin implementation of the structural document language. |
modulechaser | Maven plugin for reporting on the modularization status of dependencies. |
oakleaf | Minimalist article schema and stylesheet. |
oatfield | OSGi bundle I/O and analysis. |
oci-images | OCI images for various projects. |
plain-site-skin | Boring Maven site skin. |
portero | Matrix Homeserver invitation token service. |
r1 | Aggressively minimalist deferred rendering system. |
r2 | Aggressively minimalist second-generation deferred rendering system. |
readme | Tiny README generator. |
saxon-plugin | Simple XSLT processing with Saxon. |
sombrero | Shader management and preprocessing system. |
thoth | Experimental, extensible OSGi-based IRC bot. |
waxmill | FreeBSD BHyve manager. |
Art
Date | Description |
---|---|
2016-10-18Z | Baguette |
2016-10-19Z | Corn |
2016-10-20Z | Pillow |
2016-10-24Z | Rabbit |
2016-10-29Z | Workbot |
2017-08-31Z | Chemriver |
2017-09-08Z | Pine |
2019-03-14Z | Unbolted Frontiers |
2019-09-07Z | Convenience |
2019-12-30Z | Dimenec |
2020-03-19Z | The Vanishing Path 1 |
2020-08-23Z | The Sleep Of The Engineer |
2020-09-11Z | Heavy Water Station |
2020-09-27Z | A 3D-printable shell for the MakerHawk OV5647 webcam module |
2021-04-04Z | Dust Yard |
2022-04-08Z | Calais |
2022-04-08Z | Turnwise Broadway |
2023-12-30Z | OpenPose rigs for Blender |
2024-01-07Z | Low carb 3D models for Stable Diffusion |
2024-04-14Z | Wide outpainting workflow for ComfyUI |
2024-07-28Z | Star Path |
Documents
Date | Description |
---|---|
2012-01-19Z | A Brief History Of Vertex Specification In OpenGL |
2012-04-25Z | 2D GPU Displacement Mapping |
2012-04-26Z | Lightweight Static Exceptions |
2012-06-18Z | Type Tricks 0 - Propositions In Constructors Of Immutable Objects |
2012-06-19Z | Type Tricks 1 - Phantom Types |
2012-07-29Z | Crash Course In Algebraic Types |
2012-07-30Z | Glow Maps |
2013-07-24Z | Type Tricks 2 - Interfaces As Capabilities |
2014-06-28Z | Fragment Shader Outputs - Through The Ages |
2015-06-03Z | Type Tricks 3 - Generic Visitors |
2016-01-19Z | Algebraic Types On The JVM |
2016-08-20Z | Reliable UDP Algorithms |
2016-09-03Z | A Brutal Approach To Logging In An Embedded Apache Felix |
2018-09-11Z | Aeron For The Working Programmer |
2021-08-29Z | The ATMega328P From (Almost) Nothing |
2022-10-30Z | Simple GPU Outline Shaders |
Contact
Using PGP (and therefore, the email addresses contained within the PGP keys) is preferable. But if this is not an option, the author can be contacted at:
PGP
All packages released on Maven Central are signed by the current release key. Personal correspondence is signed by the current personal key. The current key policy is yearly-expiring keys, with each new set of keys being signed by the previous set. Expired/revoked keys are archived here in order to allow for the verification of old releases.
Key | Comment |
---|---|
E288 E54A 25D3 F5A9 BF68 6BB4 E64D 38C0 2097 0A85 | 2024 github-ci-maven-rsa-key |
37A9 97D5 970E 145A B9DB 1409 A203 E72A D3BB E1CE | 2024 maven-rsa-key |
E362 BB4F 16A9 981D E781 2F6E 10E4 AAD0 B00D 6CDD | 2024 personal |
The following keys have either expired or have been revoked:
Public Domain
This section records public domain dedications as they occur.
Date | File |
---|---|
2014-12-23 | jspatial.asc |
2015-08-23 | jrpack.asc |
2016-04-27 | timehack6435126.asc |
2019-03-21 | unbolted_frontiers.asc |
Links
Apache Maven | A software project management and comprehension tool. |
Dyn4j | Java 2D collision detection and physics engine. |
Immutables | Java annotation processors to generate simple, safe and consistent value objects. |
JGraphT | A Java library of graph theory data structures and algorithms. |
LWJGL | Lightweight Java Game Library |
LYRASIS | LYRASIS |
Library For All | Library For All |
Library Simplified | Library E-books and Audiobooks Made Simple. |
OpenJDK | The place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects. |
The Palace Project | Libraries are Palaces for the People |