The Blog of Charles Daniels

The Projects Page of Charles Daniels

charles-util an assortment of utilities and scripts too small to warrent their own repositories active
gmixerctl GUI Wrapper for OpenBSD mixerctl active
pretor Next-generation grading assistant active github
nocsim Simulator for bufferless network on chip topographies and routing algorithms. active github
vtoi C89 parser for verilog-esque integers maintenance github
shelldoc A tool for generating ReST documentation from shell scripts maintenance github
YAECPPL Yet Another Easy C Plus Plus Logger complete github
color2overlay An art project to generate wallpapers. complete github
camlann A compatibility wrapper for the NIOS2 BSP inactive github
toolchest That one time I decided to write a package manager in sh inactive github
OpenChariot That one time I decided to write a git web UI sh inactive github
BitShuffle a program for encoding and decoding arbitrary binary data into printable ASCII characters for transfer over arbitrary media. inactive github
HeRCM HeRC Matrix Tools inactive github
Argument Soup That one time I decided to re-invent argv parsing. inactive github

I maintain the following OpenBSD packages:

Text in italics is copied from the project, my comments if any are written as normal text.

project page

This is the open source software suite for managing your software development projects that you've been waiting for. Managed instances of our services are provided here for your convenience. has the potential to be one of the most important open source projects ever. solves the problem of hosting for developers in a single one-stop shop with an excellent UI. Best of all, the whole thing is AGPL licensed.

github project page

An easy to use modern Java bytecode editor based on Objectweb's ASM. No more hassling with the constant pool or stack-frames required.

github project page

Sake is a way to easily design, share, build, and visualize workflows with intricate interdependencies. Sake is self-documenting because the instructions for building a project also serve as the documentation of the project's workflow. The first time it's run, sake will build all of the components of a project in an order that automatically satisfies all dependencies. For all subsequent runs, sake will only rebuild the parts of the project that depend on changed files. This cuts down on unnecessary re-building and lets the user concentrate on their work rather than memorizing the order in which commands have to be run.

Sake is free, open source cross-platform software under a very permissive license (MIT Expat) and is written in Python. Sake is in the beta stage of development.

github project page

There was always a loophole when it came to a need to covert between hexadecimal / decimal / octal / binary.

Especially if it involved an operation like 0x1234 + 0x20. It took a lot of hard work, and mostly a good pocket calculator.