Site Reliability and Developer Experience Engineer at IOHK.
Views expressed are my own and do not necessarily reflect the view of IOHK.
Currently I focus on Zig and the NixOS ecosystem.
Find me on:
E-Mail: serverkorken ät gmail dot com
Projects
Nix / NixOS
- My personal Nix flake that defines:
- NixOS configurations for my laptops and home servers
- my dotfiles using home-manager.
- a few nix packages, NixOS modules, home-manager modules, and library functions that are not in nixpkgs
- This blog using the Styx static site generator
- home-manager-shell, like nix-shell for your home-manager configuration
- A NixOS module for SeaweedFS I wrote to test failure scenarios
- A Nix flake for Filestash that defines packages and a NixOS module
- A Nix package for Keymouse
Rust
- ISO 8601 parser
Born out of chrono issue #244 (open). - Learning project: Conway’s Game of Life for the terminal using ncurses
Zig
- embed-dir: A small Zig library for embedding directory trees with
@embedFile
Java
- libGDX tutorials on YouTube
libgdx-utils
andlibgdx-utils-box2d
, a support library for libGDX-powered games and applications
I have not worked on this library in years so I am happy to see it live on in Tommy Ettinger’s fork.
Go
- Cicero, an if-this-then-that machine on HashiCorp Nomad that is both event- and state-based.
This is an IOHK project on which I am the primary author.
See IOHK’s ci-world repository for our production deployment. - Tullia, a sandboxed multi-runtime task DAG runner with Cicero integration.
This is an IOHK project on which I am the secondary author.
Lua
- Git and Mercurial plugin for the micro text editor
Abandoned as such a feature comes with micro since #1487 “Diff gutter”.
Involvement in Free and Open Source Projects
Home Manager
Authored
- PR #2644 “broot: use upstream defaults, allow all config options” (merged)
- PR #2642 “backport to 21.11: kakoune: fix ui options” (merged)
- PR #2641 “kakoune: fix ui options” (merged)
- PR #1185 “kakoune: add missing hook name” (merged)
- PR #1163 “picom: add windowType option” (closed)
- PR #1162 “kakoune: implement whitespace highlighter” (closed)
- PR #932 “parcellite: fix GTK theme” (closed)
- PR #296 “compton: fix syntax error” (merged)
- PR #56 “zsh: add plugins submodule” (closed)
- PR #20 “home-environment: interactively inspect non-managed files” (closed)
- PR #19 “fix home.activation.checkLinkTargets” (closed)
- PR #16 “browserpass: add module” (merged)
- PR #3 “home-environment: fix evaluation error on undefined `lang.base`” (closed)
- PR #2 “fix evaluation error if `programs.git.extraConfig` is null” (closed)
- issue #122 “dunst process is not picked up => two dunst processes” (closed)
- issue #84 “blueman-applet: exception on startup” (closed)
- issue #55 “zsh: plugins” (closed)
- issue #4 “`home.file.<name>.source` cannot begin with a dot” (closed)
Reviewed or Merged
- PR #4714 “broot: Add nushell integration” (merged)
- PR #3273 “broot: fix build” (merged)
- PR #3272 “urxvt: fix package name” (merged)
- PR #1289 “sway: add config.bindkeysToCode” (closed)
- PR #1106 “zsh: support extra settings in oh-my-zsh plugins” (merged)
- issue #4524 “bug: broot configuration files are generated when not asked to” (closed)
- issue #4603 “bug: broot config unable to override imports” (closed)
NixOS-shell
- PR #5 “remove extraPath option and passthrough user $PATH” (merged)
- PR #4 “configure using NixOS module” (merged)
- PR #1 “add command line switch for custom mounts” (merged)
- issue #3 “9p cache / VM options” (closed)
NixOS / Nixpkgs
- PR #310588 “zig.hook: fix broken cache dir in impure devshells” (open)
- PR #287491 “zig: fix cache folder handling” (merged)
- PR #210705 “ceph: add missing python library” (merged)
- PR #144458 “mcrcon: 0.7.1 -> 0.7.2” (merged)
- PR #138801 “document `cargoLock.lockFileContents`” (merged)
- PR #137395 “importCargoLock: introduce alternative parameter `lockFileContents`” (merged)
- PR #136122 “nixos/syncthing: fix declarative init crash on HTTPS” (merged)
- PR #136121 “nixos/syncthing: fix escapes interpreted in declarative config” (merged)
- PR #134946 “fix toRustTarget for windows” (merged)
- PR #74781 “buku: fix bukuserver (missing module)” (merged)
- PR #74552 “GoTTY: 0.0.13 -> 2.0.0-alpha.3” (merged)
- PR #54197 “nixos/mysql: fix option `ensureDatabases`” (merged)
- PR #29113 “nixos/mfi: remove dangling reference” (closed)
- PR #26552 “exa: 2017–04–02 -> 0.6.0” (merged)
- PR #26541 “browserpass: 2017–04–11 -> 1.0.5” (merged)
- PR #26215 “mcrcon: init at 0.0.5” (merged)
- PR #25802 “znapzend service: fix autostart” (merged)
- PR #25009 “znapzend service: fix reload” (merged)
- PR #21538 “rename sound.enableMediaKeys to sound.mediaKeys.enable and add sound.mediaKeys.volumeStep” (merged)
- PR #20020 “add `sound.volumeStep` config option” (closed)
- issue #17068 “`sound.enableMediaKeys` values in percent instead of hardware value” (closed)
- issue #20448 “broken package: Ren’Py” (closed)
- issue #20449 “broken package: Pitivi” (closed)
- issue #21540 “broken package: Tiled” (closed)
- issue #22737 “buildRustPackage fails for projects with no dependencies in Cargo.toml” (open)
- issue #23282 “buildRustPackage is broken” (closed)
- issue #24438 “znapzend service: reload is broken” (closed)
- issue #29026 “theme-vertex is broken” (closed)
- issue #29037 “diffoscope is broken” (closed)
- issue #29055 “xflux-gui is broken” (closed)
Nix
- issue #8284 “segfault on conflicting packages in profile” (closed)
- issue #6083 “nix-shell as root cd’s to /” (closed)
nix.dev
- PR #316 “fix git version in example” (merged)
bitte
Cardano Node
Cardano DB Sync
- PR #1280 “add CI action for Cicero” (merged)
Cardano Ledger
Cardano Ogmios
- PR #5 “add cicero CI action” (merged)
Cardano Addresses
- PR #205 “add tullia tasks and cicero action for CI” (closed)
Cardano Base
github-webhooks
- PR #76 “[#75]: Update changelog with note about change to fix” (merged)
- PR #74 “[#75]: Add missing draft field to HookPullRequest” (merged)
data-merge
- issue #1 “Inconsistent behavior on new keys in RHS” (closed)
nomad-driver-podman
- PR #183 “fix container stats endpoint response handling” (merged)
go-echarts
indoc
- PR #33 “support tab-based indentation” (merged)
id-tree
Yew
- PR #480 “StorageService::restore() takes immutable receiver” (merged)
yew_svg
- PR #1 “fetch yew from crates.io” (merged)
ructe
- issue #33 “escaped curly brace emitted twice” (closed)
- issue #4 “parse error with <style> tag” (closed)
Cursive
- PR #254 “transparent StackView layers” (merged)
- PR #107 “return length and width from utils::prefix(_length)” (merged)
- PR #106 “Text Style” (closed)
- PR #105 “add shell.nix file for Nix users” (merged)
micro
- issue #841 “selection is off by one when selecting char by char starting from multi-cursors with one-char selection” (open)
- issue #808 “special characters confuse SpawnMultiCursor” (closed)
- issue #807 “selection jumps with multiple cursors” (closed)
- issue #804 “PageUp / PageDown sometimes get stuck” (closed)
- issue #803 “VCS plugin fails to install” (closed)
- issue #799 “characters lost after multi-cursor undo” (closed)
- issue #798 “index out of range after failed undo with multiple cursors” (closed)
Kakoune
- PR #4267 “Fix CUE comment options” (merged)
easymotion.kak
Zig
- issue #21771 “`build.zig` fails to compile due to deduplicated lazy dependency” (open)
- issue #21690 “`zig fetch –save` puts URL in already existing `.path` entry” (open)
- issue #21623 “Build segfaults in `–system` mode if a dependency has a path dependency” (open)
- issue #4797 “std.os.setsockopt broken with libc” (closed)
Zig Language Server
- issue #330 “Nix package build broken” (closed)
zqlite
- PR #2 “define error set for all sqlite errors” (merged)
- PR #1 “fix method self parameter type” (merged)
cron
- PR #4 “update for Zig 0.13.0” (merged)
Broot
- issue #467 “Sort files first” (closed)
libGDX
- PR #3151 “added Polyline#setVertices(float[])” (merged)
- PR #2976 “fix #2974 GeometryUtils#polygonArea(float[], int, int)” (merged)
- PR #2945 “libgdx-utils as 3rd party extension” (closed)
- PR #2572 “added missing setMaxLength(..) to GWT RopeJoint” (merged)
- PR #2571 “added missing methods to GWT WeldJoint” (merged)
- PR #2328 “fixed PolygonRegionLoader GWT compatibility and error report” (merged)
- PR #2316 “set empty Gdx.* fields and made get[Component]() methods work in headless backend” (merged)
- PR #1692 “added FileHandle#listFiles(FilenameFilter)” (closed)
- PR #1665 “merged old and new PolygonRegionLoader” (merged)
- PR #1602 “added PolygonRegionLoader for the AssetManager” (merged)
- PR #861 “rewrote InterpolationTest” (merged)
- issue #3057 “com.badlogic.gdx.reflect.Method is missing annotation methods” (closed)
- issue #2974 “GeometryUtils#polygonArea(..) is broken” (closed)
- issue #2947 “ProgressBar#setAnimateDuration(float) is broken” (closed)
- issue #2943 “missing ClassReflection#isArray(Class)” (closed)
- issue #2777 “ScrollPane offsets widget by bar size” (closed)
- issue #2710 “Box2DDebugRenderer draws incorrectly positioned AABBs for CircleShapes” (closed)
- issue #2345 “FileHandle#exists() doesn’t close resource on iOS” (closed)
- issue #1951 “ProgressBar requires knobBefore” (closed)
swaylock-fancy
EdgeDB
- issue #2231 “`on target delete delete source` does not delete object extending abstract type” (closed)
- issue #2232 “`constraint expression` from parent type is not checked on link target deletion” (closed)
CUE
- issue #1123 “cmd/cue: various errors related to conflicting defaults” (open)
svelte-select
- issue #247 “Infinite loop with bind:selectedValue on multi selects” (closed)
Flowblade
- PR #131 “fixed links to DEPENDENCIES.md” (merged)
jadpole.github.io
- PR #7 “fixed ArcadeRS 1.6 code” (merged)