Skip to content
View FPGArtktic's full-sized avatar
💭
I use arch btw
💭
I use arch btw

Block or report FPGArtktic

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
FPGArtktic/README.md
A Commodore 64 that has just been switched on. READY. LOAD FPGARTKTIC,8,1

FPGArtktic

I am a Kurp, from the Kurpie region of Poland, and I keep its folk traditions. You can write to me at FPGArtktic@outlook.com.

I work on embedded systems and low-level software: FPGA programming, kernel development, and building systems with Yocto and Buildroot. Day to day that also means Bash, Podman and Python. I have worked in cybersecurity. I live in Gdynia, Poland, and work as a freelancer.

A good deal of that work happens in air-gapped environments, where the machine that runs the code has no network and the machine that builds it does. That constraint decides the tooling: everything has to be fetched, verified and packaged on one side, then carried across and work on the other with nothing to fall back on. Several of the programs below exist for that reason alone.

All of the software listed here is free software. Most of it is released under the GNU GPL version 3; the exceptions are noted. Every one of these programs exists because I wanted it on my own machine first, and I still use them.

I use Arch, by the way.

The name FPGArtktic is assembled from the things it stands on: FPGA, the hardware; ART, because I like art; K, for the kernel; and TIC, the clock tick that drives all of it.

Software

LOAD $,8 and LIST: the 1541 disk directory of the projects below

Air-gapped work

  • gpygap — an offline PyPI mirror for air-gapped networks: the top 1000 projects plus your own packages, every dependency and extra, for several Python versions and platforms. It builds the wheels upstream never published while it still has a toolchain, verifies every package by installing it offline before shipping, and ships monthly deltas with checksums instead of a full copy each time. Documentation.
  • AutoGit-o-Matic — a POSIX shell script that fetches, pulls or safely fast-forwards many Git repositories at once, mirrors them with submodules, and exports git bundles for transfer across the gap. Runs unattended from cron or systemd. No runtime dependencies beyond sh and git; tested across four shells.
  • podman-wrk — builds a developer container on the machine that has a network, writes it to one file, and loads it on the machine that does not. Everything is fetched at build time, and the build fails if any of it did not land, because finding out what is missing on an air-gapped host is finding out too late. One shell script, one Containerfile. Public domain.

Shell and system

  • GnuRAMage — keeps a RAM disk (tmpfs) working set in step with persistent storage using rsync: RAM-speed I/O, nothing lost on power loss, project exclusions. Bash, checked with shellcheck.
  • setup-DotFiles — sets up a fresh workstation one question at a time: the packages, Docker, the SSH key, the dotfiles. The arch branch uses pacman and yay only; the Debian and Ubuntu versions live on their own branches.
  • mtsh — a zsh prompt for multi-user machines that reports the state you would otherwise have to ask for: the clock, the host, where you are, and what git thinks of it. One frame per command, without making you wait for it.
  • dockd-cmake3dot5-git — my first AUR contribution: the Lenovo ThinkPad dock management daemon, packaged against the CMake version it actually needs. Mirror on GitHub.

Local inference, local notes

Three programs that share one rule: nothing leaves the machine.

  • SHUTTLE — a local-inference layer for coding agents. Your files are read by llama.cpp on your own hardware instead of being pushed into the agent's context. An MCP server, rootless Podman, no egress, cited answers, and every number in its README measured rather than asserted.
  • glosator — turns a PDF textbook into sequential, linked Obsidian notes: one note per section, with a summary, a plain-language explanation, the formulas, the figures cropped from the page, a bilingual glossary and the pitfalls the source warns about. A glosator is the person who writes glosses on a difficult text.
  • tachygraf — the sibling of glosator, for recordings instead of books. A recorded lecture becomes a verbatim transcript and a set of linked study notes, with a timestamp and a block ID on every paragraph, so every claim links back to the moment it was said. A tachygraf is the ancient shorthand clerk.

FPGA

  • WEFT — WEFT Elaborates FPGA Toolchains: an MCP server that gives an LLM client a structured interface to an Intel Quartus Prime 25.1 flow. Lint and simulate in seconds, compile asynchronously, and read the results back as JSON instead of megabytes of log. Python, with its own CI, container build and documentation.

Embedded Linux

  • rtk-embedded-linux — filters for rtk that cut what a coding agent reads from Yocto/BitBake and Buildroot builds, without hiding errors or where a build failed. One file works on the host, in Podman, in Apptainer and behind wrapper scripts. A full core-image-minimal build goes from 946 742 bytes to 496; a full Buildroot build becomes buildroot: OK. Comes with a measured evaluation of rtk itself, including what it loses and where it does not run. Measured on a Raspberry Pi 4 reference build in Yocto and Buildroot.

Terminal tools

  • hyprtilt — a keyboard-first TUI and command line for arranging and rotating Hyprland monitors. It edits your own configuration in place inside a managed block, in both the Lua form and hyprlang. One static Rust binary, no daemon, no sidecar files.
  • LazySubmodules — Git submodules that track branches, tags, tag patterns or fixed commits instead of only a detached SHA. A scriptable command line and an interactive TUI, with a lock file. Written in Go; lsm is the short name.

Notes and the web

  • hugo-theme-c64-boot — the theme my website wears, and the source of the colours on this page. A Commodore 64 that has just been switched on: the page is the screen, the navigation is the 1541 disk directory with real block counts, and the errors are the ones the machine printed. No external requests, eight palettes, works without JavaScript. MIT, with the bundled fonts under the SIL Open Font License. Demo.
  • copilot-export-json-to-markdown — converts a GitHub Copilot chat export into Markdown, as a script and as an Obsidian plugin. Archived; it does what it needs to.

Downstream and reference

Forks I keep for my own reference and builds, not projects of mine: musl, elixir (and a self-hosted setup for it), ohmyzsh, Quartus21_Ubuntu, YoctoTutorials.

Reading

A list of books, sites and course material I have found worth the time is kept on my website: Interesting Links.

Contact

I am open to collaboration.

Outside work: kayaking, biblical studies and theology, music and poetry, birds and feathers.


Not affiliated with Commodore. The colours are the nice-city and nice-night palettes of hugo-theme-c64-boot, derived from the Colodore C64 palette.

Pinned Loading

  1. GnuRAMage GnuRAMage Public

    Sync a RAM disk (tmpfs) working set back to persistent storage with rsync — RAM-speed I/O, nothing lost on power loss

    Shell 82 1

  2. AutoGit-o-Matic AutoGit-o-Matic Public

    POSIX-sh tool that keeps many Git repositories current from cron or systemd: fetch, safe fast-forward, pull, and mirror (with submodules), plus git-bundle export for air-gapped transfer. Zero runti…

    Shell 6 3

  3. ohmyzsh-mtsh-theme ohmyzsh-mtsh-theme Public

    Oh my Zsh theme for programmer + DevOps at multiuser environment role. I build this for myself

    Shell 4

  4. hyprtilt hyprtilt Public

    Keyboard-driven TUI for arranging and rotating Hyprland monitors, with first-class support for Lua configs (e.g. Caelestia dotfiles).

    Rust

  5. lazysubmodules lazysubmodules Public

    Track git submodules by branch, tag, tag pattern or commit — CLI + TUI with a lock file

    Go

  6. shuttle-stack shuttle-stack Public

    Local-inference layer for coding agents: your files are read by llama.cpp on your machine, not by your agent's context. MCP, rootless Podman, no egress, cited answers, measured.

    Python