Open-Source

OctocatI try to obtain permission from stakeholders to open-source my projects wherever possible. The reasons are twofold. Firstly, so that, in the case of academic work, the work is reproducible; and second, so that the work may be of some benefit to the community and can be potentially used in other projects.

I haven’t been able to do this as much as I’d have liked, but it’s something I want to become better at. However, here’s the ones I have managed to open-source.

SpermZoo

logo_logoThe Sperm Zoo project provides a fun implementation of the multivariate glyph encoding developed for our paper Glyph-Based Video Visualization for Semen Analysis (PDF).

It’s a Clojure/ClojureScript project. I did love working in Clojure, but looking back, if I had known what an utter confusing pain it would be to develop, I could have gone with something else. At the time, ClojureScript was in its infancy, and searching for solutions to problems provided little information. Couple this with fun mornings upgrading the standard library to find basic string concatenation gone, and it led to a development time twice that of what was reasonably required. Still, it was fun at times and a great learning experience.

libqcat

qcats_logoThis is a C++(11) library implementing the QCAT anomaly detection method introduced in our VizSec 2015 paper, Multiple Queries with Conditional Attributes (QCATs) for Anomaly Detection and Visualization. The library is rather specialised in its usage and doesn’t quite have any documentation at the moment. Nonetheless, readers of the paper should have no issue in developing and running complex QCATs for Postgres data.

I hope to continue development of the library in the near future, if only to feed my soft spot for the language everyone seems to hate.

VizSec Website (2016 redesign)

vizsec_branding_plain_lightAs part of the committee for the IEEE Symposium on Visualization for Cyber Security (VizSec), my first offering was to assist with the design and branding of the symposium and a redevelopment of its website. The existing website was developed by another member with all of the source on Github, so I just forked it, developed some new branding elements such as the logo, colours, etc, and redeveloped the website to use Jekyll/Github Pages.