Open Source Projects

This page lists a number of projects which I have worked on and open sourced on GitHub. These projects are all split among a number of GitHub accounts & organisations so I thought it was best to have a single page to list everything.

This page mostly includes the libraries which I consider to be "stable enough" to be used by others. As always though, I accept no responsibilities whatsoever in relation to your use of them.

Ruby

  • Procodile - a process manager for running, managing & supervising Ruby/Rails processes in the background.

  • Muck - a tool for backing up MySQL databases from remote hosts (including archiving).

  • Guardian - a Rails app for managing your own internal certificate authority.

  • Bound - an interface for managing and updating DNS zones for the BIND DNS service.

  • Nissh - a wrapper for net/ssh to allow easy command execution.

  • Myxi - a web socket server & client for Rails apps (uses RabbitMQ).

  • Changey - run callbacks based on changes to attributes in Active Record.

  • Memist - a Ruby method memoization helper.

  • Dasher Ruby Client - a Ruby client library for talking to the dasher.tv API.

  • Plesk Ruby Client - a Ruby client library for talk to Plesk servers.

  • send_file_with_range - a Rails addition which will allow sending of files with appropriate range headers.

  • Param Auto Permit - automatically permit attributes which are present in the sending form.

  • HMRC VAT MOSS Return Generator - a Ruby library to generate HMRC VAT MOSS Return files.

  • Budgets - a quick, simple free app to help people create and maintain budgets for families and businesses.

  • Staytus - an open source status site for reporting the status of your app, network, website or service.

  • Rails Safe Tasks - automatically disable dangerous rake tasks (db:reset) when your Rails app is running in production.

  • Datey - a library for interrogating and formatting dates. For example "today at 3pm" or "last Tuesday at 4.40pm".

  • riptables - a Ruby-interface for managing iptables rulesets.

  • JSON VAT Ruby Library - this is a Ruby library which allows you to easily use VAT data from jsonvat.com.

  • VAT Rates - a web service to provide VAT rates for all EU countries. Thiscurrently runs at jsonvat.com.

  • Rails ENV Config - a short tool allowing you to load environment variables from a config/environment.yml file in Rails applications.

  • Geolocate - a library to return information about a given IP address. Uses ip-api.com as a backend.

  • Fake Person - a random personality generator. A Ruby library which allows you to easily generate a Person object containing fake data.

  • Authie - a database-based user session engine for Rails applications

  • Documentation - a Rails engine for inserting complete documentation functionality into an existing application.

  • GulpRails - a tool for automatically compiling gulp assets on page load in Rails applications.

  • Florrick - integrates with Active Record and provides some user-initiated string interpolations.

  • Moonrope - build RPC-like JSON HTTP APIs like a boss with this Rack application.

  • Moonrope Client - a Ruby client library for use when talking to any Moonrope-developed application.

  • Nifty Utils - just a useful collection of methods & extensions which we include in all our new Rails applications.

  • Nifty Attachments - attach files/images/documents to Active Record models with ease.

  • Nifty Key Value Store - quickly create a key/value store in your backend database and attach as a hash to any model.

  • Nifty Model JSON - an Active Record extension which allows you to define JSON schemas with models.

  • Color Fun - a set of methods allowing you to carry out actions on colors.

  • Procman - a simple system for managing multiple processes in a Ruby application.

  • Log Server - a service which will run as a centralised log service to receive logs from any applications over UDP. Used extensively at aTech to push logs from applications to a central server. Comes with an IO object.

  • Noti Ruby Library - a Ruby library for sending notifications through Noti.

  • EncryptoSigno - a great little library for signing & encrypting data in Ruby. Used extensively for RPC servers & our SSO solution at aTech.

  • MySQL Objectstore - create a simple S3-style object store using MySQL as the backend.

  • Omniauth Provider for aTech Identity - a useful little provider for anyone who wishes to support aTech identity in their Omniauth application.

Shoppe

  • Shoppe - an open source Rails engine which provides full e-commerce functionality into any website.

  • Stripe module for Shoppe - a module to allow you to work with Stripe when using Shoppe.

  • Website for Shoppe - the website for the Shoppe open source library. See below.

  • An example store for Shoppe - I designed and built a quick store which uses the Shoppe backend just to demonstrate the application in use.

iOS & Objective-C

  • ACToolkit a number of little extensions for iOS/Objective-C which I have used in my apps.

  • APNS Proxy - a Rails application for managing multiple connections to the Apple Push Notification Service.

  • APNS Client - a Ruby client library for sending notifications to the APNS Proxy (above).

  • APNS Key Convert - a small script to convert P12 and CER files into a PEM for use with the APNS Proxy and other Ruby APNS client libraries.

Javascript

  • Nifty Dialog - a lovely little coffeescript dialog implementation with a Railtie so it works quickly with the asset pipeline in Rails.

  • Swipe - a Coffeescript framework for creating a powerful web applications. Designed for use in Sirportly v3's new interface.

Miscellaneous

  • Keyman - a tool for managing the distribution of SSH keys among servers.

  • CloudApp Exporter - a useful little script which can be used to download all your uploaded files from CloudApp.