I'm @akx (twitter, reddit, keybase), a programmer generalist and general enthusiast from Finland.
I'm a founder/CTO/lead dev/sysadmin/startup tech hand at Valohai, the finest purveyor of professional MLOps tools in the world.
I'm one of the maintainers of Babel, an internationalization library for Python.
Here's a list of some of the open-source stuff I've done.
It most likely is not complete nor up-to-date. You can always check the repos page for more, and there's probably something interesting on CodeSandbox too.
Where things are tagged as "Release", it means the stuff has been successfully used in production, or that I personally use that stuff at least semi-regularly. For stuff in other states of release, well – your mileage may vary.
Play music like it's meant to be played, at 110 BPM.
Concatenate and crossfade audio to form a very long sequence.
Podcast-generaattori.
Mirror of AFsp (Audio File Programs and Routines)
Sort, filter and export Spotify playlists
Convolution samples - Reverbs and delays and effects for days!
#radix_challenge hack for Junction 2016
Stochastic scale-based sequencing with a sampler
Reads Reascale files, outputs JavaScript. Built as a dependency of Chromon.
Subtly oscillating drone machine.
Geometry-based web audio sequencer
A cross-modulating synth sequencer toy.
Converts music to video with cover art, ready to upload to YouTube.
A bytebeat livecoding environment.
Some libre notification sounds.
Old-skool noise/sound effect generator for Windows
Chops WAV files into slices of equal count or duration
LiquidSoap script for a multi-room streaming system
A meta FM synth.
MAKE FATTO BIITOS. Sampler emulator on the web!
Stochastic sampling synthesizer from a friend's voice
A Web MIDI arpeggiator/step sequencer thing.
Ctypes PortMidi wrapper for Python
A little C# app that mutes microphones when noisy keyboards are abound.
Overwatch voice line regeneration using LSTM
Hand-transforming the Synthesis ToolKit to JavaScript.
Tools to convert and mangle Spotify/Last.fm/Youtube music playlists
A sampler.
Turns your hands into a MIDI controller.
🎶 ➡️ 🥘 ➡️ 🗑
A sima soundboard.
Synthesizer toy for Turku <3 Frontend
A tool for reading wallet.dat files
Who knows what this thing does...
Super duper simple, naive blockchain proof of concept in Node
Niimbal grybdogoligoi! Keep track of your crypto holdings, with automatic value and position determination
Normalized nutrition data
Download & convert Finnish Meteorological Institute observation data
Scrape machine-readable data from Hartwall's Juomamaailma.fi
find paths and chains of finnish words, e.g. pala - ala - sala
A char-rnn to generate new nonsensical genre names based on everynoise data
Time-series of Fölläris
Data about the 2017 Finnish municipal elections, scraped from yle.fi
Scrapes data from Kuntaliitto's site.
HTML indexer experiment
Extrapolate Slack member counts based on member activity data
Who knows what this thing does...
Data about Finnish pizzerias
Fixit rule to rewrite assertions into if not X: raise AssertionError("X")
The colors from flatuicolors.com as JSON
A Befunge-like esolang from 2005, implemented in Basic
Encodes arbitrary Python data structures into XML in a reasonably sane way.
Easily wrap a regular binary into a macOS .app bundle.
Extract original source from JavaScript sourcemaps.
A mouse/touch-driven wheel component for React.js.
JavaScript tools for converting to/from Finnish maps
Finds non-stub TypeScript @types/ packages for your package.json.
Nicen makes your code look nicer! (An omniglot pretty-printer.)
Generate dependency graphs of NPM packages
Visualize the evolution of a Git repository's languages and size
.NET parser for an example context-free grammar syntax
data: URI encode/decode tool.
A modern webpack bundle analyzer
Easier SSH into EC2 instances
Easily publish a directory to gh-pages
A simple reimplementation of Sentry for low-traffic sites
Teensy tiny nearly-zero-runtime Webpack loader for styles
Cookiecutter template for live-reloading JS sketches
Contract-first REST APIs in Django
Choice fields that don't record the actual choices lists in migrations.
Making Django internationalization a little easier
Simple tool to fill PDF forms based on FDF/XFDF/JSON
A small utility to download and combine translations
Repeat py.tests.
Convert Travis.yml to GitHub Actions workflows.
Filter and reformat Amazon AWS ELB log files
Super simple TypeScript native pagination hook for React.
Show a Docker build context
Non-serious Python as YAML proof of concept
Mappings of CSS properties, keywords and colors to various languages! It's silly!
Statically analyze Django projects for common problems.
Headless Google Chrome! In a container! On a whale!
Elasticsearch introspection utility
Mapnik Docker container with Node and Python bindings
Node.js server to translate OSX touchpad data to web sockets
A statistical profiler and flamechart generator for Python
Proof of concept super-fast Python dependency locker
A programming language in all emojis
A small wrapper for parts of FreeType for Python.
A greenfield JSON parser for C#
Small wrapper around tokei to allow reading directly from a TAR archive
A partial reimplementation of pre-commit in Rust
Install wheels from your local pip HTTP cache
introspect your Pylint configuration and figure out what Ruff rules to enable or disable
Moves Docker images
Slice and dice your Ruff reports
ruff-usage-aggregate
Tools for working with GitHub Actions
Convert setup.cfg, etc. to pyproject.toml files
A small React component to turn any SVG path into a slider.
A very minimal single-file Python client for Sentry.
Apple Notes database parser
Tool for refactoring state in TypeScript
Stack files into a container image
An äggregator
Bits and pieces for non-production performance observation, logging and optimization.
Minimal type-safe globalesque state for React
setup.py to setup.cfg converter
Tools to play with GitHub organizations, projects, and issues.
Generate a succinct diff between two archive files.
simple PyPI pull-through proxy
My React + TypeScript template for Vite
A mapping function finder
Interactive rmi
for docker
Experiments with fast low-memory XML parsing in Python
Toy VM and assembler (2008)
Who knows what this thing does...
Stream data from Nordnet's semipublic API
A silly Flash game I made in 2004.
Find out which line strings are close to a number of points
A word finder.
EvoTD, my contribution to Ludum Dare 24 (2012)
(lausutaan kiipeli) An OCR hack.
A game I made inspired by Desktop Dungeons back in 2010. Ported from a private Hg repository, so the quality's not the best.
Sanamanuli on pieni kissaeläin joka auttaa sinua pelaamaan Sanulia.
Vastasanuli pelaa Sanuli-peliä.
Gradient designer with code generation.
Automatic as-perfect-as-possible GIF loop maker
Composite *.tif image sequences from several directories into a single PNG image sequence.
Automatically generates high-quality motion-interpolated 120 FPS loops from low-FPS GIFs
A bookmarklet to set any site in a terrible version of Papyrus
Real-time editor for SVG paths
Generate "raster dot" SVGs from images
Render BDF pixel fonts in JavaScript
Points along an ellipse, deflected like particles
Watercolour generator
A tiny Python script for making high-quality GIFs out of videos.
"Circuit" image generator I once wrote for a friend.
Laser graffiti (L.A.S.E.R. Tag) software.
Built out of frustration with the architecture and performance of the GRL's software.
Includes support for single-touch TUIO input in addition to built-in OpenCV blob tracking.
HTML5 Canvas glitch effect generator
Kinetic triangles in SVG
Full screen JPEG glitch
JavaScript island map generator (circa 2013)
An organic-looking space-filling algorithm
Canvas trails/drawing hack.
Pretty particle chamber simulation (Windows)
Python2/Allegro bindings (circa 2005, unmaintained)
Procedural SVG generator
Break polygons
Dynamic kinetic typography video for Childish Gambino's Put It In My Video
Graffiti Research Labs' LASER Tag, with updates
Stack-based image processing toy language
An old C#/.NET/WinForms node-based graphics processor.
Pseudo-genetic algorithm to recreate images using blurry SVGs
Define polygons (like imagemaps of yore) on an image
Resolution helper for e.g. Stable Diffusion
Quick and dirty Streamlit UI for Latent Consistency Models
Generates speaker grille patterns.
Generates an STL mesh of the globe, with height data.
Generate a frame-blended animation from a set of images
Retro.
A graphics hack based on the Minsky circle algorithm
Named colors from the WiZ Connected Android app.
Detects the scale factor of an upscaled pixel art image and scales it down for you
Find all the silcrows.
Scrapes machine-readable energy consumption data from energiaonline.fi
Hass.io addon for Ruuvitag Weather Stations
Serves your Ruuvitag Weather Station data over HTTP.
Fancy light schemes for your home
An asyncio-native library for requesting data from a Ruuvi Gateway.
Parser for Sensirion BLE devices.
Infinite distraction, powered by /r/youtubehaiku
Tiny HTTP IoT data logger
Backend & frontend for a tablet-based home "automation" display
A C library for Pimoroni's Display-O-Tron 3000
Object-oriented API for generating SVG path strings
Mini-library for gradient interpolation
Brownian motion generation code from torchsde version 0.2.5 as a standalone package
A very minimal SAML 2.0 SP implementation for modern Python versions.
Some asyncio
helpers. Not as bleak as it sounds.
Simpler SOAP for Python.
A simple geocoder for Finnish addresses using public data
Makes your face look more intense.
RSS/Atom/... feed combinator
yhdyssanalogia-digitaalimuunnin
A very small HTTP dice daemon
Utilities for Untappd Supporters to help them analyze their history
Read PDFs out loud via macOS say
Minimal macOS keylogger
Chrome extension for Turku public transit (Föli)
Yet another DynIP updater
Summarize Node.js --trace-sync-io logs
Goodifying terminals for SSH!
Unicode map on the command line!
A name generator
Topic-augmenting bot for Slack
Lazy Slack archiver
What if you could only see just a little bit of the web?
A bookmarklet I made for a friend who was working with visually impaired people, with the idea that you could show how hard it is to navigate the Internet if you can only see a tiny bit of each page.
:ship: Finnish archipelago trip planner
Compare company names to Pokémon names.
Tools for interacting with XANES X1 programmable LED bicycle taillights
beta.eat.fi data visualizer (proof of concept that it doesn't have to be slow)
Retrospective personal budgeting
Declarative budgeting
Console color experiment, 2015
A :rabbit: for your :file_folder:
Formats Nmap XML output into human-readable (Markdown) form.
An old Flash tech demo.
Proof of concept to show how webpack-bundled plugins can be linked dynamically together
Demystifying Webpack – presentation & code
Webpack2 multiple entrypoint CSS extraction example for Koodiklinikka
Python extension wrapping strpbrk() for ultimate performance
Simple recipe aggregator project used for an internal training at Anders.
Django template toy environment (for learning!)
Decodes some CSD files
Tools for manipulating Cycling'74 Max/MSP files
Tool for audio extraction from a car game with an Italian plumber
Generates calendars as SVGs.
Markov chain text generator.
Hours/minutes converter
Download sticker packs from Telegram
Resource (icon) extraction tools
D'Hondt tally for Desu/C 2017
Extract QR codes from a Google Authenticator database file
slack emoji downloader
Extract Apple Color emoji
Download images from Slack workspaces. (DOWNLOAD ALL THE DOGGOS)
Quickly visualize a GeoJSON file
Tools to merge XML files generated by Carbonite SMS Backup and Restore into a deduplicated JSON file.
Hackery bill splitting
Easing function generator and visualizer
Download wallpapers from Reddit
Electron-based Mixcloud.com client
Data-to-Data transformer tool
A fork of Tom7's ttf-embed
Extract "Now playing" from Winamp/Foobar2000 into text files and/or images.
Built for OBS-Studio, but could be useful for other uses.
Tiny Colorful Dots - a simple, small, fast light color picker
Figure out licenses for the current Python/NPM/Bower environment
just a little file-watcher-child-process-reloader.
A fast file duplicate finder in C#
Some extension commands for git
A little desktop calculator (or Lua interpreter) for C#.
A bridge between Everything and Find and Run Robot.
Fast Duplicate Finder
Mutate text á la "All work and no play..."
Realtime templating tool
S3 duplicate object detector & deletor
Reddit downloader/video link detector
Utilities for distilling data from the Unicode CLDR
An Unicode map in the browser!
Unofficial Bropages.org Python client
Remote system session manager for Windows
Silliest Debian/Ubuntu provisioning toolkit
Incomplete yet functional fast file launcher (like Launchy) for Windows
Once upon a time I wrote a file sharing program for LAN networks during a LAN party. The timestamps reflect this.
Honkshoo reads, converts and visualizes data from CPAP machines.
Tool to download models from Huggingface Hub and convert them to GGML for llama.cpp
Solar time map
A bill processor
Taasko se netti on nurin?
Generates waves over SVG paths.
Inventor-izes AWS resources for e.g. SOC2 compliance use.
Aesthetic word shuffler/wrapper
Tracks storage device prices in Finnish web stores.
Snapshot pages with Playwright
Fun with Unicode!
Extracts files from Chrome/Chromium/Electron cache.
A list of Finnish words and names, automagically generated from online data.
A NES emulator that corrupts ROMs
Dockerfile + Python start script to configure an openconnect + tunsocks SOCKS proxy.
File manipulation DSL
Python codemods
Expose Django management commands in the admin
Tiny, fast data grid built on Mithril.js
Layer comps for HTML.