This page contains some of my hobby projects.

Engine Widget
GhostSCAD

GhostSCAD is a piece of software that makes it easy to create CAD models using Go and compile them to the OpenSCAD language. It enables you to laverage the full power of a real programming language using the rendering capabilities of OpenSCAD.

Disk Server
NAS

I am in the process of building a Network Attached Storage system that fulfills my heart's desires when it comes to home use. So far, I've dealt with:

Threads
Threading From Scratch

Threading From Scratch is a POSIXish threading library written in C. Its primary purpose was to teach me what it takes to implement pthreads "from first principles" on top of x86-64 Linux. It has:

  • a capability to create, join and detach threads
  • mutexes, rw-locks, condition variables
  • thread-local storage
  • cancellation, both deferred and asynchronous
  • support for scheduling, including priority mutexes

Scrapy Do
Scrapy Do

Scrapy Do is a daemon that provides a convenient way to run Scrapy spiders. It can either do it once - immediately; or it can run them periodically, at specified time intervals. It's been inspired by scrapyd but written from scratch.

Silly Invaders
Silly Invaders

Silly Invaders is a Space Invaders type game written to see if microcontroller programming is as much of a magic as everybody says it is. The system features:

  • a compiler an linker infrastructure on top of bare gcc/binutils
  • a hardware abstraction layer for a bunch of necessary devices and an RTOS with preemptive multithreading and synchronization
  • a display interface using rasterized TrueType fonts a sound system capable of playing Nokia tunes
  • a game rendering engine built on top of all that

Car
Self-driving cars

A bunch of projects I have done in the context of Udacity's Self-driving car nanodegree:

Deep Learning
Deep Learning

Neural Network models that caught my interest; typically implemented "from scratch" in TensorFlow:

Software Toys
Software Toys

A bunch of toy programs useful here or there:

  • s3proxy is a FastCGI script that reads data from a protected AWS S3 bucket and makes it available to the caller. It's useful when you want to have some of your data accessible with HTTP Authentication, which is not supported by AWS.
  • Jail is a helper script that I use to sandbox GUI applications using Docker and Xephyr.
  • Envy is a small program that can be used in the shebang line of a script and set up any environment you want before calling the interpreter.