Software

This section of my site hosts a variety of programs which I have created.

As of 12/07/2016, the majority of my publicly available software is hosted on Gitlab.

I also run a gitweb site on my server which hosts various repositories which I judge to not be sufficiently interesting to share on Gitlab.

  1. Java
    1. berryPIM My "personal information management" system. It is based on a distributed model using flat xml files for data storage and git to handle syncing. It supports free mixing of data access through central servers and distributed computers. It has the following features currently: calendar, todos, notes, contacts, finance (transaction tracking), and files. It includes the ability to run arbitrary queries on your data using XQuery and create arbitrary graphs of your data using a combination of XQuery and JFreeChart.
    2. rest-start Maven Archetype which you can use to quickly generate a project bundling embedded jetty and a Jersey RESTful web-service.
    3. berry-quickstart Generic Maven quickstart archetype based on, and similar to, the standard maven quickstart archetype.
    4. SEMI: Simple Eclipse Maven Integration The M2Eclipse experience is often fraught with "lifecycle mapping" problems when you try to use Maven plugins. This project demonstrates a simpler way to integrate Eclipse and Maven. The goal is to make a Maven experience which is more like the one you get with IntelliJ IDEA.
    5. rest-start-template I generate the rest-start archetype from this template.
    6. bquickstart-template I generate the berry-quickstart archetype from this template.
  2. Emacs
    1. backward-forward. (melpa package, source). Enables eclipse-like backward and forward navigation across marks using <C-left> and <C-right>.
    2. Emacs Powerpack Self-contained MingW+Msys+Emacs Installer&Extras for MS Windows. Intended to give as good an experience as possible with Emacs on Windows.
    3. org_structured_exporter Enables document tree export from a single org file. I use it to compile my website, as well as to compile individual articles from within org-mode documents
    4. berry_emacs_config My .emacs configuration file for emacs. Is pretty windows focused, as that is the client I am primarily using these days.
  3. Maths
    1. tmarriagealgo Implementation of the "Traditional Marriage Algorithm" to find stable pairs (as described here) in clojure.
  4. Web Software
    1. CL-SURF – Site search made easy (sort-of) Simple Search Engine in Common Lisp. Powers the site search on this website.
    2. org_structured_exporter Also listed above in 'Emacs' section. Enables document tree export from a single org file. I use it to compile my website, as well as to compile individual articles from within org-mode documents
    3. k-map generator Common Lisp web-app which generates karnaugh map given truth table input. (also can be run offline outside of the browser).
    4. COMING SOON: berry-js-fw A simple javascript app template based on JQuery and Handlebars. Comes with some demonstration pages. I prefer starting from the basics with javascript to using full-blown app frameworks like AngularJS.
  5. System Administration Software and Scripts
    1. berry-morning-report Script which gives me a daily report on the state and status of my server computers.
    2. berry-backup Script which performs a simple incremental backup using hard links. Based on this.
    3. More Admin scripts A couple more scripts are available at this repository.
  6. Mobile
    1. Guitar Chords Plus Android app I wrote ~2012. Mathematical chord calculations (many fingerings), scales, keys, and reverse chord matching. Works for Mandolin, Ukulele, and Guitar. Note: a version of this for desktop Java is on my todo list, as I have become nonplussed with mobile development.
    1. Cash Money Pro App written for GT 2340 with teammates. Allows you to do basic accounting operations on your Android, demonstrates CRUD database operations basically.
  7. Miscellaneous.
    1. RISK Board game clone. Written for GT CS 1371 final project… illustrates why MATLAB is difficult…
    2. Time Tunneler Game Boy Advance game I wrote for homework. Somewhat similar to Pac-Man, but incorporates "maze solving" and "time travel".
    3. isbcl Very simple script which adds readline support to sbcl (steel bank common lisp). Must have rlwrap installed!
    4. OpenOffice Table to LATEX OpenOffice macro which generates properly defined LATEX table contents from a table of LATEX formula entries in a spreadsheet.