I am a software engineer, and I've been contributing to open source projects for 20+ years. My open source repositories include:
- WebCalendar: PHP 8 LAMP multi-user calendar with a long history of support. I have had many code contributions to WebCalendar over the years and can only claim to have authored about half the code. There are also over 30 translations.
- Cliquetool: Multi-purpose tool written in Go for finding cliques within a graph, building dense groups from the cliques and generating reports on the results.
- ilibgo: Golang library for reading, writing, and manipulating images with API loosely based on X11 API and utilizing any X11 BDF font for writing text. This is a Go port of my C library (listed below).
And older stuff that is not really maintained anymore:
- Java Calendar Tools: Java library for parsing and generating iCalendar (RFC 2445) data
- k5nCal: Desktop calendar application written in Java
- GTimer: Linux GTK application for timing how much time you spend on various projects
- Ilib: C library for reading, writing, and manipulating images with API loosely based on X11 API and utilizing any X11 BDF font for writing text
Other projects/repos I have contributed to:
- CVE services: I've contributed to the REST API for MITRE's CVE project while I worked at MITRE. My primary contributions have related to containerizing the NodeJS app. (I also set up the CI/CD pipeline in AWS CodePipeline, but that's not on GitHub.)
I'm currently working on:
- I have updated WebCalendar's UI to use Bootstrap and jQuery. It was previously using some very old custom HTML/CSS and a mix of JS tools (Prototype.js and others). This work is now in the main branch and part of the v1.9.X releases. I also rewrote the web-based installer and updated everything for PHP 8.
- Teaching myself Golang. My first Go code on Github was the cliquetool project. The project deals with cliques in a sparsely populated undirected graph based on some work I did years ago in C. My example data set includes a list of NCAA basketball games from a single season. The goal was to determine the conference affiliations for all teams based on the list of games. (Note that in college basketball, each team within a conference generally plays each other team at least once. This is not true in college football where teams often play a subset of the other teams within their conference.)
You can look me up on:
Reach me at:
- craig AT k5n.us
Interesting facts:
- My first open source contribution was a system menubar for HP-UX, SunOS, AIX and OSF/1 that I released in 1995 called xapplaunch (still online here) by placing the source code on a public FTP server. Note that the term "open source" was not established until a few years later in 1998.