k'exp - Kubernetes Explorer

Understand Kubernetes - the visual way. Not yet another attempt to manage production clusters in the browser but a visual explorer to help you learn Kubernetes.

cdebug - a swiss army knife of container debugging

A handy way to troubleshoot containers lacking a shell and/or debugging tools (e.g, scratch, slim, or distroless): cdebug exec -it <target>.

Docker to Linux

This project allows one to make a bootable Linux disk image from a Dockerfile. It was meant to be a just for fun educational thing but turned out to have some real-world use cases. Read more about the technique in this post of mine.

Kubernetes client-go examples

A growing collection of mini-programs covering various client-go use cases inspired by client-go/examples. The intention (at least so far) is to test (more or less) fresh version of Go and packages against a few latest Kubernetes versions.

Awesome Container Tinkering

Not an awesome-docker list. Instead of being beginner-focused all-encompassing list of resources to get into containers, this project is collecting links to (and thoughts about):

  • Lower-level building blocks (runtimes, libraries, CLIs)
  • Solutions for running containers locally and remotely
  • Helper tools and libraries to inspect, edit, or move images
  • In-depth write-ups and video resources on the above.

pq - Parse and Query files with PromQL-like query language

I often find myself staring at Nginx or Envoy access logs tailed to my screen in real time. My only wish at that moment is to be able to aggregate the lines somehow and analyze the output at a slower pace. Ideally, with a familiar and concise query language. And that's what pq does. It allows one to define the basic parsing rules turning a log file into a stream of structured records. When every record has a timestamp, such a stream becomes a time series. Hence, pq can aggregate it into various histograms, percentiles, and counters on the fly. Read more here.

Conman - [the] container manager

The aim of the project is to implement yet another container manager. Just like Docker but way more lightweight. Primarily, for the sake of [self-]education. The conman project is heavily inspired by cri-o and the ultimate goal was to make it Kubernetes CRI-compatible. Check out this series of articles for more.

Shimmy - simplistic container runtime shim

Shimmy is a simplistic shim between a container manager and a container runtime. It's a low-level piece of system software written in Rust. It started as part of the conman project with the goal to simplify programmatic use of runc (low-level container runtime) from the higher-level container manager.

How to use Flask with gevent (tutorial)

This project collects a bunch of scenarios (in form of docker-compose files) showing various ways how to run an asynchronous Flask application with gevent. You can find the comparison of the options here.

Fully-functional Event Loop in 100 lines of Python

Well, it's a fully-functional event loop implementation in 100 lines of plain Python (no advanced language features are used). I find it super-helpful to explain the programming model behind Node.js or alike environment. Check out this short series for more.

The Game of Life - written in C and compiled to WebAssembly

Conway's Game of Life written in pure C (with SDL2 for graphics) and then compiled to WebAssembly using emscripten. You can play it online here.

Other projects

  • diskusage-ng - Node.js package to get disk usage information via OS built-ins. Windows, macOS, and Linux support. No dependencies. Suitable for server-side or Electron apps.
  • Producer-Consumer problem visualization - interactive HTML5 canvas demo.
  • cancharts - lightweight HTML5 canvas sunburst chart in vanilla JavaScript.
  • nim-2048 - console version of 2048 game written in Nim (a non-mainstream language).
  • popen2 - duplex popen() written in C.