Portfolio

GW2API

GW2API is a nodeJS module designed to help facilitate communication with the excellent Guild Wars 2 API. It features several convenience methods that chain calls together in order to make more friendly results, as well as an internal storage mechanism to cache the results of calls without much effort.

Example

var gw2 = require('gw2-api');
var api = new gw2.gw2();
api.setStorage(new gw2.memStore());

console.log("Getting Daily PVE Achivements: ");

api.getDailyAchievements().then(function (res) {
  if (!res.pve) {
    return;
  }

  var achievementIds = [];

  for (var i = 0, len = res.pve.length; i < len; i++) {
    achievementIds.push(res.pve[i].id);
  }

  return api.getAchievements(achievementIds);
}).then(function (res) {
  for (var i = 0, len = res.length; i < len; i++) {
    console.log(res[i].name);
  }
});
[email protected]:/Documents/Code/gw2-api$ node example.js
Getting Daily PVE Achivements:
Daily Kryta Vista Viewer
Daily Queensdale Event Completer
Daily Fractal
Daily Frozen Maw
Daily Maguuma Jungle Lumberer

Github: https://github.com/cthos/gw2-api

NPM: https://www.npmjs.com/package/gw2-api

Documentation: https://cthos.github.com/gw2-api

Atom-Gitbook

atom-gitbook is an Atom.io package which helps work with Gitbook by providing a sidebar that parses and displays the table of contents, and allows you to manipulate it from the editor.

Github: https://github.com/cthos/atom-gitbook

odt-to-pdf

Because I needed a way to convert odt files to pdf files on the fly (and whenever they were updated in Dropbox), I wrote a quick Dockerfile to wrap up some common functionality in order to watch a mounted volume.

It uses fswatch to watch the filesystem (using the poll method since inotify generates around 12 calls per Dropbox file change) and a small shell script to invoke Libreoffice's command line.

Github: https://github.com/cthos/odt-to-pdf

Phantom Jetstream

Phantom Jetstream is a front-end performance testing tool written on top of phantomjs which provides reporting and metric tracking of various performance statistics. It can be set up to fail with a non-zero exit code if the longest resource load time takes longer than some number of seconds, or if {X} header isn't present or set to a wrong value.

It features a basic event dispatching system that can be used to hook into the checks it is doing.

Phantom Jetstream Img

Github: https://github.com/cthos/phantom-jetstream

Volcano

Volcano is an api first billing solution. I've been involved in helping create the SDKs as well as a few different enhancements to the dashboard.

Github: https://github.com/volcano/volcano

Pathfinder Player Toolkit

The Pathfinder Player Toolkit is a mobile tool for keeping track of your character in real time.

It is optimized for managing active effects so that you never forget to add the bonus for Bard Song ever again!

PFPT Example

Github: https://github.com/cthos/pfpt