Projects

Scavenger Hunt

My nephews wanted a scavenger hunt, but it's always a hassle to remember which clue go where. So I've made the world's most over-engineered scavenger hunt, complete with a CI.

What You Do

You put your 'clues' into a spreadsheet, like this:

Name Clue Place Next
collar Ask the one who cannot answer. Tape inside dog's collar log
log The captain says, it's not for burning! Under fireplace log birdhouse
birdhouse The smallest house can stand tall. Place inside birdhouse umbrella
umbrella I'll go up a chimney down, but not down a chimney up. Inside umbrella curtains
curtains Pull me back in morning, close me at night. On top of the curtains envelope
envelope I start with an 'e' and end in an 'e', but only have one letter. In an envelope bluebells
bluebells These bells seems sad, they cannot ring. In the garden, among the bluebells END

Normally, this looks easy for the first three clues, then you're left with the clue about the curtains, wondering '*where do I put this? Where was the last one?'.

What the Repository Does

Using recfiles as a plain-text database, scavenger outputs instructions for where to put each clue, with a randomized legend. Then you just print the output pdf, and take out the scissors.

Decentrala: Belgrade's Hacker-Space

Decentrala does talks, provides services, and struggles with documentation. I've been adding ideas to the configuration and docs repositories when I get the time at our git server.

CVLS: The LaTeX CV Class

The LaTeX CV class makes (unsurprisingly) a CV. It's made to be used as a git submodule, but it runs on its own so that it can output an example pdf for Tom Bombadil.

Tom Bombadil CV

BIND

Everyone who plays Dungeons & Dragons has their own house rules. This has to stop, so I've made my own tabletop roleplaying game rules, and released the source files so anyone can modify it. By making the game open, every version is equally 'official', and everyone can share their changes.

mkdots

You don't need a fancy dot-file tracker! You can track everything easily, with make, git, and ln.

The mkdots project provides an example of how it works.

 1├── Makefile
 2├── home
 3│   ├── bashrc                  <-- This links to ~/.bashrc
 4│   ├── gitconfig               <-- This links to ~/.gitconfig
 5│   └── vim
 6│       └── vimrc               <-- This links to ~/.vim/vimrc
 7├── extra
 8│   ├── cron
 9│   │   ├── backup
10│   │   └── tab
11│   └── cron.mk
12└── scripts
13    ├── mkdots                   <-- This links to ~/.local/bin/mkdots
14    └── wifi_qr.sh               <-- This links to ~/.local/bin/wifi_qr.sh
  • The make rules take any file in mkdots/home/ and make a dot-file, so mkdots/home/bashrc becomes ~/.bashrc.
  • Using ln to make hard-links means you can remove the mkdots directory at any point, or check out another branch, without damaging your dot-files.
  • Backups are handled with git, which can also half-synchronize machines by using branches.

This allows me to use a single set of rules on my server, which propagate to the other machines.

1├── server         <--     Changes here apply everywhere.
2├── laptop         <--     Changes here apply to machines with a GUI.
3│   ├── PC         <--     The tower PC has its own branch, but still receives others.
4│   └── Test VM    <--     New machines are set up instantly.

Artblocks

This was a tongue-in-cheek project to help people understand why NFTs are pointless.

The setup:

I've made a new NFT project which places images on a block-chain, but better; no environmental cost, can verify images absolutely, and will also verify ownership.

The punchline is that it's just a git project with git-lfs to store the images. Since git uses a Merkle tree, and signed commits let someone verify a 'correct' node, the repository is, QED, a blockchain.