Projects

These are not all of the projects I’ve worked on, but they are some of my favorites.

2-Lane Pinewood Derby Judge

I made up two designs for this, one bare bones and one with a little bit more flash. Both are purposefully simple, and designed using the MakeCode block editor for the benefit of scouts interested in programming.

GitHub: https://github.com/ckxng/pxt-simple-pwd-finish-line-judge

The first iteration is based on an Feather M0 Express, and includes only the absolute minimum features required to serve as a finish line judge. The only output is through the single onboard pixel. Blink once for a win in the first lane, blink twice for a win in the second lane.

GitHub: https://github.com/ckxng/pxt-lightup-pwd-finishline-judge

The second iteration is only slightly more complicated, and is based on the design from the first project. This version uses a Circuit Playground Express, mainly because it is a popular beginner board and because of the number of onboard features.

Here, the 10 onboard pixels are used to a greater effect indicating a win by pointing left or right, and some musical tones are added for fun. Thanks to the addition of a servo motor, an onboard button now releases cars to start the race. This allows the program to track the time of the winning car, though it is only reported by serial.

Diceware (Go)

GitHub: https://github.com/ckxng/diceware

I wrote this simply to play around a bit with some specific go patterns, such as test coverage, concurrency, interfaces, and error handling. While this tool seems to work fine for me, use it for your own passwords at your own risk.

package main

import (
  "fmt"
  "diceware"
  "flag"
)

func main() {
  var num = flag.Int("d", 8, "number of dice")
  flag.Parse();
  dice := diceware.New()
  if result, err := dice.Generate(*num); err == nil {
    fmt.Printf("%s\n", result)
  } else {
    fmt.Printf("error: %s\n", err)
  }
}

Diceware Web (JavaScript)

GitHub: https://github.com/ckxng/diceware-web

Diceware Web is a static, JavaScript site with no external resources that generates 8-word Diceware passwords.

Diceware (API)

GitHub: https://github.com/ckxng/dicewareapi

If you would like to generate a diceware password in the least secure way possible, feel free to click the links below.

(The initial API call may take up to a few minutes as Azure boots up the container that hosts the API code. Subsequent calls will be much faster.)

Please don’t actually use these passwords for anything important. I’m sure Azure is run by perfectly nice fellas, and their SSL is plenty secure… but this is not a secure way to generate passwords.

It’s more of an Azure API “hello world” than anything else.

ECC Docker Repo

GitHub: https://github.com/ecc12/docker

In 2014, I created a somewhat standardized set of Docker images based on CentOS 6 which I used for both personal and professional projects. Since then, best practices for Docker have come a long way and the Dockerfiles I created no longer even build (since the centos:6.4 base image is no longer available).

Recently, I moved all of these projects to their own repos, with hopes of someday revisiting them. Until then, you can find them here: https://github.com/ckxng?tab=repositories. I am leaving the original repo in place for the time being, as that is where dockerhub is pulling from.

Other Misc Projects

I’ve tinkered with a lot of different ideas, some good, some bad. For every repo that’s pushed here, there are several more that I never got around to uploading (usually because I forgot… then later lost the code).

This is a list of the projects that are a) my own creation b) at least somewhat usable for it’s intended purpose at the time.

You will find other unfinished projects and forks in the cobwebs of my GitHub profile as well. I tend not to delete code, no matter how ugly or unfinished. (The file edit dates on these are especially unreliable, as many of them were pushed to GitHub many years after they were written.)