Weston Ganger BCIS

Rails Software Architect / Web Developer

I am an expert in Ruby-on-Rails, jQuery, and Linux through extensive usage across many projects.

About Me

I am 32 and have a Bachelor of Computer Information Systems (BCIS) from the University of the Fraser Valley since 2014.

In 2014, I started a software development consultancy for myself called Solid Foundation Web Development.

From 2014 to 2021, I was a contractor for BC Hydro developing Ruby-on-Rails applications for internal-use that manage various complex technical processes and business workflows. This involved creating many new applications and maintenance of legacy/existing Rails applications.

From 2020 to 2021, I was a Senior Rails developer with Vericatch building out their suite of seafood reporting software.

Since 2022, I am a Senior Rails developer with Braintree/Paypal working with the 3DS portion of the payments system. The team that I work with engages in pair programming on a daily basis. The collaboration that pairing drives towards is a real delight.

When I am not coding, I enjoy automobile building & driving, outdoors, camping, extreme sports, and socializing with friends and family.

If you want to know more about who I am, you are free to read my manifesto.

Profile Links

In an effort to optimize the use of my time and energy, I will no longer be maintaining boatloads of public and professional profiles. Listed here are the only public profiles I support.

Hobbies

I used to be very good at skateboarding. You can view a time arranged collection of my skate videos here.

My Articles

I try to document anything notable that I do or come across on my journeys. Here you will find a list of topics that I sometimes post on.


My Open Source Software Libraries

Here is a list of open source coding libraries that I have created and maintain. They aid in some part of the software development process. These libraries are publicly available for use within any software development project.

Ruby

ProjectDescriptionRolePopularity
A patch for Rails to support using a public ID column instead of ID for use with accepts_nested_attributes_forCreator & MaintainerRubygems Downloads
GitHub Stars
Sanitize and Execute your raw SQL queries in ActiveRecord and Rails with a much more intuitive and shortened syntax.Creator & MaintainerRubygems Downloads
GitHub Stars
Simplified snapshots and restoration for ActiveRecord models and associations with a transparent white-box implementation.Creator & MaintainerRubygems Downloads
GitHub Stars
Dead simple, fully customizable sorting pattern for ActiveRecordCreator & MaintainerRubygems Downloads
GitHub Stars
Deprecated
Build your axlsx spreadsheeet with data and then apply styles later. I maintained this project from 2018 to 2023 at which point the code was merged into caxlsx itself.Project Maintainer since 2018Rubygems Downloads
GitHub Stars
Capistrano plugin to precompile your Rails assets locally, remotely, or not at all provided with a very convenient default terminal promptCreator & MaintainerRubygems Downloads
GitHub Stars
Provides assertions for your Minitest suite to determine if an object has been changed Creator & MaintainerRubygems Downloads
GitHub Stars
Deprecated
Plugin for the PaperTrail gem to track and reify associations. I spearheaded the extraction of the code for association tracking and restoration of PaperTrail versions. This enables to developers to contribute to the association related code much more easily.Extractor and Project Maintainer since 2018Rubygems Downloads
GitHub Stars
Deprecated
A collection of processors and helper methods for easier dynamic processors and styles on your Paperclip uploads. The first gem I ever created.Creator & MaintainerRubygems Downloads
GitHub Stars
Prawn Handler for Rails. I utilize this gem within my other software. I wanted to ensure the projects future so I now handle all maintenance of this library.Project Maintainer since January 2017Rubygems Downloads
GitHub Stars
Protected Attributes for Rails 5. I created this plugin to address a need in upgrading legacy Ruby-on-Rails applications.Creator & MaintainerRubygems Downloads
GitHub Stars
A good example/starter pack for a custom form builder for use with Rails form_for Creator & MaintainerRubygems Downloads
GitHub Stars
Dead simple nested layouts for RailsCreator & MaintainerRubygems Downloads
GitHub Stars
A Rails Migration to convert your UUID primary keys back to integer / bigint primary keys.Creator & MaintainerRubygems Downloads
GitHub Stars
Deprecated
Rearmed-RB helpful methods and monkey patches for Objects, Strings, Enumerables, Arrays, Hash, Dates, etc.Creator & MaintainerRubygems Downloads
GitHub Stars
Deprecated
A collection of helpful methods and monkey patches for RailsCreator & MaintainerRubygems Downloads
GitHub Stars
RODF is a library for writing to ODF output from Ruby. It mainly focuses creating ODS spreadsheets. I utilize this gem within my other software, Spreadsheet Architect. I needed to ensure the projects future so I now handle all maintenance of this library.Project Maintainer since July 2016Rubygems Downloads
GitHub Stars
Deprecated
SexyForm is a library for dead simple HTML form builder for Ruby with built-in support for many popular UI libraries such as Bootstrap. This libraries code was originally written for FormBuilder.cr. I decided to port the code over to Ruby because the FormBuilder.cr design pattern turned out so awesome.Creator & MaintainerRubygems Downloads
GitHub Stars
Spreadsheet Architect is a library that allows you to create XLSX, ODS, or CSV spreadsheets super easily from ActiveRecord relations, plain Ruby objects, or tabular data. I created this to address a need in the Ruby community to create spreadsheets easily. I think I have succeeded in creating the most easily usable plugin for spreadsheet creation in Ruby, by making one simple and unified API for creation of all spreadsheet types. My motivation to create this new Ruby gem was to streamline the spreadsheet creation process for my clients suite of Rails applications.Creator & MaintainerRubygems Downloads
GitHub Stars

Crystal

ProjectDescriptionRolePopularity
FormBuilder is a library for dead simple HTML form builder for Crystal with built-in support for many popular UI libraries such as Bootstrap. I created this to address a need in the Crystal community for an HTML form builder. This appears to be the only shard dedicated solely to form building for the Crystal language so far.Creator & Maintainer
GitHub Stars

Javascript

ProjectDescriptionRolePopularity
Chosen Readonly is a plugin that extends Chosen Selects to add support for the readonly attributeCreator & MaintainerNPM Downoads
GitHub Stars
Provides remote data source support for chosen-js selects.Creator & MaintainerNPM Downoads
GitHub Stars
A plugin to provide rate this app functionality into your cordova application. I wanted to ensure the projects future so I now handle all maintenance of this library.Project Maintainer since March 2016NPM Downoads
GitHub Stars
Cordova plugin that allows camera interaction from HTML code. I wanted to ensure the projects future so I now handle all maintenance of this library.Project Maintainer since April 2016NPM Downoads
GitHub Stars
Input Autogrow is a jQuery autogrow plugin for inputsCreator & MaintainerNPM Downoads
GitHub Stars
Input Case Enforcer is a jQuery plugin to enforce uppercase, lowercase, or capitalized inputs & textareasCreator & MaintainerNPM Downoads
GitHub Stars
JS-Try is a Javascript implementation of the try method from Rails for safe navigationCreator & MaintainerNPM Downoads
GitHub Stars
A collection of helpful methods and monkey patches for Arrays, Objects, Numbers, and Strings in JavascriptCreator & MaintainerNPM Downoads
GitHub Stars
Select Sync is a jQuery plugin to synchronize selects by selected or disabled options easilyCreator & MaintainerNPM Downoads
GitHub Stars

CSS

ProjectDescriptionRolePopularity
Directional / Arrow buttons for BootstrapCreator & MaintainerNPM Downoads
GitHub Stars
Bootstrap theme for Chosen Select that actually looks like BootstrapCreator & MaintainerNPM Downoads
GitHub Stars
Material theme for Chosen SelectCreator & MaintainerNPM Downoads
GitHub Stars
CSS Utility Classes for rapid developmentCreator & MaintainerNPM Downoads
GitHub Stars

Rails Engines

ProjectDescriptionRolePopularity
Rails app/engine to Easily rotate and keep track of working pairs. Great for pair-programming teams. I built this as a clone of pairist, with the goal of removing user accounts as we were having trouble with emails not sending and outdated npm packages, etc. So I built this Rails engine/app with an alternative authentication strategy that keeps it simple.Creator & Maintainer
GitHub Stars
Web interface to manage i18n translations for your apps to facilitate the editors of your translations. Provides a low-tech and complete workflow for importing, translating, and exporting your I18n translation files. Design to allows you to keep the translation files inside your projects git repository where they should be. Creator & Maintainer
GitHub Stars
Rails app/engine to play scrabble with friends. I built this as a clone of words with friends, with the goal of playing scrabble with zero friction auth and no ads or monetization.Creator & Maintainer
GitHub Stars

My Open Source Contributions to Other Libraries

Listed here is a summary of various libaries that I have contributed code to. Over my career, I have submitted hundreds of pull requests. On numerous occasions I have submitted 10+ pull requests to a single library.

Library NameSubmitted Pull RequestsIssues Created
caxlsxPull Requests (17)Issues (10)
enginePull Requests (15)Issues (46)
paper_trailPull Requests (13)Issues (6)
steamPull Requests (12)Issues (1)
docsPull Requests (12)
Issues (0)
alchemy_cmsPull Requests (11)Issues (2)
frontmanPull Requests (10)Issues (6)
amberPull Requests (9)Issues (8)
axlsx_stylerPull Requests (8)Issues (10)
cordova-plugin-camera-previewPull Requests (7)Issues (3)
wagonPull Requests (6)Issues (5)
litestackPull Requests (6)Issues (5)
prawn-railsPull Requests (6)
Issues (0)
camaleon-cmsPull Requests (5)Issues (3)
catalogPull Requests (5)
Issues (0)
active_record-annotatePull Requests (4)Issues (4)
railsPull Requests (4)Issues (3)
prismPull Requests (4)Issues (1)
quartz-mailerPull Requests (4)
Issues (0)
awesome-rubyPull Requests (4)
Issues (0)
sudoku-generatorPull Requests (3)Issues (3)
i18n-active_recordPull Requests (3)Issues (3)
switch_userPull Requests (3)Issues (1)
i18n-backend-side_by_sidePull Requests (2)Issues (2)
paranoiaPull Requests (2)Issues (1)
bizPull Requests (2)Issues (1)
activeadminPull Requests (2)
Issues (0)
vim_dotfilesPull Requests (2)
Issues (0)
activeadmin-caxlsxPull Requests (2)
Issues (0)
bulletPull Requests (2)
Issues (0)
remotipartPull Requests (2)
Issues (0)
cordova-plugin-appratePull Requests (2)
Issues (0)
awesome-crystalPull Requests (2)
Issues (0)
sentry-rubyPull Requests (1)Issues (2)
bootstrap-modal-railsPull Requests (1)Issues (2)
jasper-helpersPull Requests (1)Issues (1)
rbenvPull Requests (1)Issues (1)
hjson-rbPull Requests (1)Issues (1)
middleman-simple-thumbnailerPull Requests (1)Issues (1)
mobx-angularPull Requests (1)Issues (1)
administratePull Requests (1)Issues (1)
solidus_bootstraps_frontendPull Requests (1)
Issues (0)
clearPull Requests (1)
Issues (0)
best_in_placePull Requests (1)
Issues (0)
jekyll-assetsPull Requests (1)
Issues (0)
NativeBasePull Requests (1)
Issues (0)
undercoverPull Requests (1)
Issues (0)
parallelPull Requests (1)
Issues (0)
ngDfpPull Requests (1)
Issues (0)
data-confirm-modalPull Requests (1)
Issues (0)
arel_converterPull Requests (1)
Issues (0)
sinatra-asset-pipelinePull Requests (1)
Issues (0)
websitePull Requests (1)
Issues (0)
middleman-sitemapPull Requests (1)
Issues (0)
bootswatch-railsPull Requests (1)
Issues (0)
nvmPull Requests (1)
Issues (0)
clearminPull Requests (1)
Issues (0)
awesome-jekyll-pluginsPull Requests (1)
Issues (0)
creekPull Requests (1)
Issues (0)
axlsxPull Requests (1)
Issues (0)
solidus_socialPull Requests (1)
Issues (0)
solidus_volume_pricingPull Requests (1)
Issues (0)
ancestryPull Requests (1)
Issues (0)
acts_as_xlsxPull Requests (1)
Issues (0)
stripe-ruby-mockPull Requests (1)
Issues (0)
tolkPull Requests (1)
Issues (0)
turbolinksPull Requests (1)
Issues (0)
ip_as_intPull Requests (1)
Issues (0)
prax
Pull Requests (0)
Issues (4)
cdnjs
Pull Requests (0)
Issues (2)
nw.js
Pull Requests (0)
Issues (2)
angular_devise
Pull Requests (0)
Issues (1)
raphael
Pull Requests (0)
Issues (1)
roots-sass
Pull Requests (0)
Issues (1)

Software Releases

I have successfully performed hundreds of public software releases. Here is a full list by year.

ProjectVersionTechnologyURLDate
Pairerv1.0WebsiteNovember 2022
active_snapshotv0.3.0Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.3.0November 2022
spreadsheet_architectv5.0.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v5.0.0October 2022
axlsx_stylerv1.2.0Rubyhttps://github.com/axlsx-styler-gem/axlsx_styler/releases/tag/v1.2.0October 2022
paper_trail-association_trackingv2.2.1Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.2.1March 2022
paper_trail-association_trackingv2.2.0Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.2.0March 2022
active_snapshotv0.2.4Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.2.4March 2022
active_snapshotv0.2.3Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.2.3February 2022
ProjectVersionTechnologyURLDate
rodfv1.2.0Rubyhttps://github.com/westonganger/rodf/releases/tag/v1.2.0December 2021
active_sort_orderv0.9.4Rubyhttps://github.com/westonganger/active_sort_order/releases/tag/v0.9.4December 2021
active_snapshotv0.2.1Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.2.1August 2021
cordova-plugin-camera-previewv0.12.3Rubyhttps://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview/releases/tag/v0.12.3August 2021
protected_attributes_continuedv1.8.2Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.8.2July 2021
spreadsheet_architectv4.2.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v4.2.0May 2021
prawn-railsv1.4.2Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.4.2May 2021
chosen-remote-sourcev0.9.0Rubyhttps://github.com/westonganger/chosen-remote-source/releases/tag/v0.9.0May 2021
prawn-railsv1.4.1Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.4.1May 2021
active_record_simple_executev0.9.0Rubyhttps://github.com/westonganger/active_record_simple_execute/releases/tag/v0.9.0May 2021
active_snapshotv0.2.0Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.2.0May 2021
form_builder.crv1.0.1Rubyhttps://github.com/westonganger/form_builder.cr/releases/tag/v1.0.1April 2021
cordova-plugin-camera-previewv0.12.2Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.12.2April 2021
active_sort_orderv0.9.2Rubyhttps://github.com/westonganger/active_sort_order/releases/tag/v0.9.2April 2021
protected_attributes_continuedv1.8.1Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.8.1March 2021
active_snapshotv0.1.1Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.1.1March 2021
active_snapshotv0.1.0Rubyhttps://github.com/westonganger/active_snapshot/releases/tag/v0.1.0March 2021
protected_attributes_continuedv1.8.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.8.0March 2021
cordova-plugin-appratev1.7.2Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.7.2February 2021
active_sort_orderv0.9.1Rubyhttps://github.com/westonganger/active_sort_order/releases/tag/v0.9.1January 2021
active_sort_orderv0.9.0Rubyhttps://github.com/westonganger/active_sort_order/releases/tag/v0.9.0January 2021
paper_trail-association_trackingv2.1.3Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.1.3January 2021
ProjectVersionTechnologyURLDate
spreadsheet_architectv4.1.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v4.1.0November 2020
spreadsheet_architectv4.0.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v4.0.1November 2020
cordova-plugin-appratev1.7.1Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.7.1November 2020
protected_attributes_continuedv1.7.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.7.0October 2020
cordova-plugin-camera-previewv0.12.1Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.12.1October 2020
cordova-plugin-appratev1.7.0Cordovahttps://github.com/westonganger/cordova-plugin-apprate/releases/tag/v1.7.0October 2020
paper_trail-association_trackingv2.1.1Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.1.1October 2020
cordova-plugin-appratev1.6.1Cordovahttps://github.com/westonganger/cordova-plugin-apprate/releases/tag/v1.6.1October 2020
cordova-plugin-appratev1.6.0Cordovahttps://github.com/westonganger/cordova-plugin-apprate/releases/tag/v1.6.0October 2020
capistrano-precompile-chooserv0.9.2Rubyhttps://github.com/westonganger/capistrano-precompile-chooser/releases/tag/v0.9.2October 2020
protected_attributes_continuedv1.6.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.6.0October 2020
axlsx_stylerv1.1.0Rubyhttps://github.com/axlsx-styler-gem/axlsx_styler/releases/tag/v1.1.0August 2020
simple_assetsv0.1.0Rubyhttps://github.com/westonganger/simple_assets/releases/tag/v0.1.0August 2020
capistrano-precompile-chooserv0.9.1Rubyhttps://github.com/westonganger/capistrano-precompile-chooser/releases/tag/v0.9.1August 2020
capistrano-precompile-chooserv0.9.0Rubyhttps://github.com/westonganger/capistrano-precompile-chooser/releases/tag/v0.9.0August 2020
paper_trail-association_trackingv2.1.0Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.1.0August 2020
cordova-plugin-camera-previewv0.12.0Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.12.0June 2020
spreadsheet_architectv4.0.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v4.0.0March 2020
cordova-plugin-camera-previewv0.11.2Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.11.2February 2020
rodfv1.1.1Rubyhttps://github.com/westonganger/rodf/releases/tag/v1.1.1January 2020
axlsx_stylerv1.0.0Rubyhttps://github.com/axlsx-styler-gem/axlsx_styler/releases/tag/v1.0.0January 2020
ProjectVersionTechnologyURLDate
spreadsheet_architectv3.3.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.3.1December 2019
prawn-railsv1.3.0Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.3.0December 2019
spreadsheet_architectv3.3.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.3.0November 2019
cordova-plugin-appratev1.5.0Cordovahttps://github.com/westonganger/cordova-plugin-apprate/releases/tag/v1.5.0November 2019
cordova-plugin-camera-previewv0.11.1Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.11.1November 2019
protected_attributes_continuedv1.5.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.5.0October 2019
rearmed_railsv2.0.2Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v2.0.2October 2019
input-autogrowv1.1.1Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v1.1.1October 2019
prawn-railsv1.3.0Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.3.0August 2019
prawn-railsv1.2.1Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.2.1July 2019
sexy_form.rbv0.9.0Rubyhttps://github.com/westonganger/sexy_form.rb/releases/tag/v0.9.0May 2019
cordova-plugin-camera-previewv0.11.0Cordovahttps://github.com/westonganger/cordova-plugin-camera-preview/releases/tag/v0.11.0May 2019
spreadsheet_architectv3.2.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.2.1April 2019
form_builder.crv1.0.0Crystalhttps://github.com/westonganger/form_builder.cr/releases/tag/v1.0.0March 2019
rodfv1.1.0Rubyhttps://github.com/westonganger/rodf/releases/tag/v1.1.0February 2019
paper_trail-association_trackingv2.0.0Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v2.0.0January 2019
paper_trail-association_trackingv1.1.1Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v1.1.1January 2019
ProjectVersionTechnologyURLDate
protected_attributes_continuedv1.4.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.4.0December 2018
paper_trail-association_trackingv1.1.0Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v1.1.0December 2018
spreadsheet_architectv3.2.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.2.0September 2018
spreadsheet_architectv3.1.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.1.0August 2018
spreadsheet_architectv3.0.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v3.0.0July 2018
spreadsheet_architectv2.1.2Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.1.2July 2018
spreadsheet_architectv2.1.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.1.1July 2018
minitest_change_assertionsv1.0.1Rubyhttps://github.com/westonganger/minitest_change_assertions/releases/tag/v1.0.1July 2018
minitest_change_assertionsv1.0.0Rubyhttps://github.com/westonganger/minitest_change_assertions/releases/tag/v1.0.0July 2018
rearmed-rbv2.0.2Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v2.0.2July 2018
rearmed-rbv2.0.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v2.0.1July 2018
rearmed-rbv2.0.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v2.0.0July 2018
rails_nestable_layoutsv1.0.0Rubyhttps://github.com/westonganger/rails_nestable_layouts/releases/tag/v1.0.0July 2018
rearmed_railsv2.0.1Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v2.0.1July 2018
rearmed_railsv2.0.0Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v2.0.0July 2018
spreadsheet_architectv2.1.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.1.0June 2018
cordova-plugin-camera-previewv0.10.0Cordovahttps://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview/releases/tag/v0.10.0June 2018
prawn-railsv1.2.0Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.2.0June 2018
prawn-railsv1.1.0Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.1.0June 2018
cordova-plugin-appratev1.4.0Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.4.0June 2018
paper_trail-association_trackingv1.0.0Rubyhttps://github.com/westonganger/paper_trail-association_tracking/releases/tag/v1.0.0June 2018
input-autogrowv1.1.0Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v1.1.0April 2018
ProjectVersionTechnologyURLDate
rearmed-jsv2.0.1Javascripthttps://github.com/westonganger/rearmed-js/releases/tag/v2.0.1September 2017
rearmed-rbv1.3.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.3.1September 2017
rearmed-jsv2.0.0Javascripthttps://github.com/westonganger/rearmed-js/releases/tag/v2.0.0September 2017
rearmed_railsv1.0.5Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.5August 2017
rearmed_railsv1.0.4Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.4July 2017
js-tryv0.9.0Javascripthttps://github.com/westonganger/js-try/releases/tag/v0.9.0July 2017
js-tryv0.9.1Javascripthttps://github.com/westonganger/js-try/releases/tag/v0.9.1July 2017
spreadsheet_architectv2.0.2Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.0.2July 2017
prawn-railsv1.0.1Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.0.1July 2017
cordova-plugin-appratev1.3.0Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.3.0June 2017
Sudoku Ultrav1.0Mobile AppJune 2017
input-case-enforcerv1.0.1Javascripthttps://github.com/westonganger/input-case-enforcer/releases/tag/v1.0.1May 2017
rearmed_railsv1.0.3Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.3May 2017
protected_attributes_continuedv1.3.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.3.0May 2017
protected_attributes_continuedv1.2.4Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.2.4May 2017
cordova-plugin-camera-previewv0.9.0Cordovahttps://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview/releases/tag/v0.9.0May 2017
rearmed-jsv1.0.0Javascripthttps://github.com/westonganger/rearmed-js/releases/tag/v1.0.0May 2017
rearmed_railsv1.0.2Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.2April 2017
input-autogrowv1.0.2Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v1.0.2April 2017
Calculator Sidekickv1.0Websitehttps://calculator-sidekick.westonganger.comApril 2017
Its Your Turnv1.0Mobile Apphttps://westonganger.com/mobile_apps/its_your_turnApril 2017
Tip Sidekickv1.0Mobile Apphttps://westonganger.com/mobile_apps/tip_sidekickApril 2017
rearmed_railsv1.0.1Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.1March 2017
chosen-bootstrap-themev1.0.5CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.5February 2017
rearmed-jsv0.9.0Javascripthttps://github.com/westonganger/rearmed-js/releases/tag/v0.9.0February 2017
bootstrap-directional-buttonsv1.0.0CSShttps://github.com/westonganger/bootstrap-directional-buttons/releases/tag/v1.0.0February 2017
rails_nestable_layoutsv0.9.0Rubyhttps://github.com/westonganger/rails_nestable_layouts/releases/tag/v0.9.0February 2017
bootstrap-directional-buttonsv1.0.1CSShttps://github.com/westonganger/bootstrap-directional-buttons/releases/tag/v1.0.1February 2017
select-syncv0.9.0Javascripthttps://github.com/westonganger/select-sync/releases/tag/v0.9.0February 2017
rearmed_railsv1.0.0Rubyhttps://github.com/westonganger/rearmed_rails/releases/tag/v1.0.0February 2017
select-syncv1.0.0Javascripthttps://github.com/westonganger/select-sync/releases/tag/v1.0.0February 2017
rearmed-rbv1.3.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.3.0February 2017
select-syncv1.0.1Javascripthttps://github.com/westonganger/select-sync/releases/tag/v1.0.1February 2017
input-case-enforcerv1.0.0Javascripthttps://github.com/westonganger/input-case-enforcer/releases/tag/v1.0.0February 2017
chosen-readonlyv1.0.4Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.4February 2017
chosen-readonlyv1.0.5Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.5February 2017
chosen-readonlyv1.0.6Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.6February 2017
spreadsheet_architectv2.0.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.0.1February 2017
spreadsheet_architectv2.0.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v2.0.0January 2017
input-autogrowv1.0.1Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v1.0.1January 2017
input-autogrowv1.0.0Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v1.0.0January 2017
input-autogrowv0.9.1Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v0.9.1January 2017
rearmed-rbv1.2.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.2.1January 2017
prawn-railsv1.0.0Rubyhttps://github.com/cortiz/prawn-rails/releases/tag/v1.0.0January 2017
ProjectVersionTechnologyURLDate
spreadsheet_architectv1.4.8Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.8December 2016
rodfv1.0.0Rubyhttps://github.com/westonganger/rodf/releases/tag/v1.0.0December 2016
spreadsheet_architectv1.4.7Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.7November 2016
Craig-Getterv1.0WebsiteSeptember 2016
rearmed-rbv1.2.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.2.0September 2016
protected_attributes_continuedv1.2.3Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.2.3September 2016
protected_attributes_continuedv1.2.2Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.2.2September 2016
protected_attributes_continuedv1.2.1Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.2.1September 2016
protected_attributes_continuedv1.2.0Rubyhttps://github.com/westonganger/protected_attributes_continued/releases/tag/v1.2.0September 2016
input-case-enforcerv0.9.0Javascripthttps://github.com/westonganger/input-case-enforcer/releases/tag/v0.9.0September 2016
rearmed-rbv1.1.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.1.1August 2016
rearmed-cssv1.0.1CSShttps://github.com/westonganger/rearmed-css/releases/tag/v1.0.1August 2016
rearmed-cssv1.0.2CSShttps://github.com/westonganger/rearmed-css/releases/tag/v1.0.2August 2016
input-autogrowv0.9.0Javascripthttps://github.com/westonganger/input-autogrow/releases/tag/v0.9.0August 2016
chosen-readonlyv1.0.3Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.3July 2016
chosen-bootstrap-themev1.0.4CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.4July 2016
chosen-bootstrap-themev1.0.3CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.3July 2016
chosen-bootstrap-themev1.0.2CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.2July 2016
chosen-bootstrap-themev1.0.1CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.1July 2016
cordova-plugin-appratev1.2.0Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.2.0July 2016
rearmed-cssv1.0.0CSShttps://github.com/westonganger/rearmed-css/releases/tag/v1.0.0July 2016
rodfv0.3.7Rubyhttps://github.com/westonganger/rodf/releases/tag/v0.3.7July 2016
chosen-material-themev1.0.0CSShttps://github.com/westonganger/chosen-material-theme/releases/tag/v1.0.0July 2016
chosen-bootstrap-themev1.0.0CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v1.0.0July 2016
rearmed-rbv1.1.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.1.0July 2016
rearmed-rbv1.0.3Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.0.3June 2016
rearmed-rbv1.0.2Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.0.2June 2016
rearmed-rbv1.0.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.0.1June 2016
rearmed-rbv1.0.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v1.0.0June 2016
rearmed-rbv0.9.1Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v0.9.1June 2016
spreadsheet_architectv1.4.6Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.6May 2016
spreadsheet_architectv1.4.5Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.5May 2016
spreadsheet_architectv1.4.4Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.4May 2016
spreadsheet_architectv1.4.3Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.3May 2016
spreadsheet_architectv1.4.2Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.2May 2016
spreadsheet_architectv1.4.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.1May 2016
chosen-bootstrap-themev0.9.0CSShttps://github.com/westonganger/chosen-bootstrap-theme/releases/tag/v0.9.0May 2016
rearmed-rbv0.9.0Rubyhttps://github.com/westonganger/rearmed-rb/releases/tag/v0.9.0May 2016
spreadsheet_architectv1.4.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.4.0April 2016
spreadsheet_architectv1.3.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.3.0April 2016
spreadsheet_architectv1.2.6Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.6April 2016
chosen-readonlyv1.0.1Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.1April 2016
chosen-readonlyv1.0.0Javascripthttps://github.com/westonganger/chosen-readonly/releases/tag/v1.0.0April 2016
spreadsheet_architectv1.2.2Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.2March 2016
spreadsheet_architectv1.2.3Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.3March 2016
spreadsheet_architectv1.2.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.1March 2016
spreadsheet_architectv1.2.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.0March 2016
spreadsheet_architectv1.1.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.1.0March 2016
spreadsheet_architectv1.0.4Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.0.4March 2016
cordova-plugin-appratev1.1.12Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.1.12March 2016
cordova-plugin-appratev1.1.9Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.1.9March 2016
spreadsheet_architectv1.2.4Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.4March 2016
spreadsheet_architectv1.2.5Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.2.5March 2016
Coders Logv1.0Websitehttps://coders-log.westonganger.comMarch 2016
Random Joke Generatorv1.0Mobile Apphttps://westonganger.com/mobile_apps/random_joke_generatorMarch 2016
Super Dice Rollerv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_dice_rollerMarch 2016
cordova-plugin-appratev1.1.8Cordovahttps://github.com/pushandplay/cordova-plugin-apprate/releases/tag/v1.1.8March 2016
Chuck Norris Jokes & Factsv1.0Mobile Apphttps://westonganger.com/mobile_apps/chuck_norris_jokes_and_factsMarch 2016
spreadsheet_architectv1.0.2Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.0.2February 2016
spreadsheet_architectv1.0.1Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.0.1February 2016
spreadsheet_architectv1.0.0Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.0.0February 2016
spreadsheet_architectv1.0.3Rubyhttps://github.com/westonganger/spreadsheet_architect/releases/tag/v1.0.3February 2016
Super Mega Quizv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_mega_quizJanuary 2016
Snow Vision Camerav1.0Mobile Apphttps://westonganger.com/mobile_apps/snow_vision_cameraJanuary 2016
ProjectVersionTechnologyURLDate
Word Jumblerv1.0Mobile Apphttps://westonganger.com/mobile_apps/word_jumblerDecember 2015
Super Mirror HDv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_mirror_hdNovember 2015
Super Millionaire Quizv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_millionaire_quizNovember 2015
Official Beer Pong Rulesv1.0Mobile Apphttps://westonganger.com/mobile_apps/official_beer_pong_rulesOctober 2015
Super Farm Clickerv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_farm_clickerOctober 2015
Super Word Twisterv1.0Mobile Apphttps://westonganger.com/mobile_apps/super_word_twisterSeptember 2015

Public Projects

Listed here are some simple publicly available personal projects I have created. Note: Client applications are not public so they are not listed here.

ProjectApp DescriptionDev StoryLive Release Date
Calculator SidekickProviding free online calculators for any purpose.I wanted an easy way to create online js calculators and turn them into mobile apps. So I did exactly that and created this website. I created a mobile app called "Tip Sidekick" which grabs the calculator and embeds it within the application. It works very well, however unfortunately I abandoned the idea after making the first one. This is simply because I lost general interest in mobile apps and app stores as its a constant moving target. I now have decided to to only use the web if ever possible.April 2017
Coders LogA collection of community link-log about different code topics. If you have an article to share, created a library, or any other news, You can share it with the coding community.This website was built as a clone of one of my favourite websites, RubyFlow. At the time I was looking for a place to post my Linux and Cordova articles to but could not find any appropriate places. So I created this website with most every relevant programming language.March 2016
Craig-GetterCraig-getter is a Craigslist scraper and aggregator.I built this application for my own needs to scrape and aggregate Craigslist for multiple searches so that I can catch the best deals. It also helps filter out all the things I have already seen or are not relevant. So far it has proven to work extremely well for me, maybe too good even.September 2016
PairerPairer is Rails app/engine to Easily rotate and keep track of working pairsI built this application for my teams needs to rotate pairs everyday.November 2022
Scrabble with FriendsRails app/engine to play scrabble with friends. I built this as a clone of words with friends, with the goal of playing scrabble with zero friction auth and no ads or monetization.January 2024

My Mobile Apps

Here is a list of public mobile apps I have created over the years. I developed all of these for my own usage and to explore the development world of Cordova and Ionic (v1).

These used to be on the Apple App Store and Google Play Store. They are no longer available because I lost interest in updating and paying for app store based mobile apps as they are a constant moving target. That being said, I think that Cordova's function over fashion approach is good enough for most business use cases or to simply have a presence in the app stores.

ProjectApp DescriptionDev StoryLive Release DateImage
Chuck Norris Jokes & FactsGet a random jokes or facts about the man himself, Chuck Norris.Chuck Norris is rad and these jokes are funny. While creating Random Joke Generator I thought it might be a good idea to create a more specific version of the application. The Chuck Norris Joke dataset large and perfect for this.March 2016
Its Your TurnSimply press a button and the app will tell the next person to take their turn This application was developed during one evening when attempting to play a slightly boring game. We kept forgetting whos turn it was and who had the dice. I decided it might be interesting to create an app to manage the turns for the game. Once the turn is changed then a sound and/or text-to-speech voice will notify you. I created the application in both React Native and Ionic v2. I settled with Ionic 2.x for the final release.April 2017
Official Beer Pong RulesThe Definitive Beer Pong Rules app. Contains Word Series of Beer Pong rules, West Coast rules, East Coast rules, House Rules, and Fun Rules.At every party with beer pong happening there are always people arguing about the rules. I created this app to solve this exact problem. To no surprise, even after introducing it, the arguing didnt stop.October 2015
Random Joke GeneratorGet a random joke at the click of a button. Over 15000 jokes to get you laughing.I wanted to make an fun joke application to pass the time when in line or bored. So I compiled a source database of jokes from around the web and created and Rails API to access it. I then created a mobile app to download one joke at a time randomly. I use this application all the time when I am bored looking for a quick laugh or joke. Its a hoot.March 2016
Snow Vision CameraSee the world in snow vision! Use your camera to see an augmented reality with falling snow.After creating the application Super Mirror HD. I decided if I could actually do something useful or fun. This was the idea I came up with. Very simple and fun project that worked well using only jQuery effects.January 2016
Sudoku UltraChallenge your mind with this fun and addictive game of sudoku.After the success of my word game, Super Word Twister, I decided people like mind games. I knew my Nana really liked Sudoku so I thought it would be useful to a few people if I created a mobile application with this game.June 2017
Super Dice RollerThe definitive dice rolling app. Swipe, Touch, or Shake to roll the dice. Visual and Voice responses.I built this application to address a need. When playing a board game we kept forgetting who had the dice. This way we could leave the phone on the table and use a gesture to activate the digital dice roll.March 2016
Super Farm ClickerBuild your crew and expand your farm in this extensive incremental/clicker game.The second most successful app I ever built. The reason for this apps success is that clicker games are highly addictive due to the RPG elements they play on. I have always been a fan of RPG video games so naturally this was a fun project for me.October 2015
Super Mega QuizA fun quiz and trivia game. Over 300 questions to answer.A clone of my other application, Super Millionaire Quiz, with a new set of questions.January 2016
Super Millionaire QuizA fun quiz and trivia game based on the game show Who Wants to be a Millionaire.I thought this was a good game idea that would fit well within the idea of an Ionic / Angular application. I found a few data sets to work with and whipped this game up.November 2015
Super Mirror HDThe definitive mirror to go app. Super Mirror HD allows you to check out your makeup, hair, or face.One day my Mom and Aunt said to me, "oh my gosh, it would be such a good idea to create an app thats like a mirror." I laughed and replied saying that you could just open the camera app. I then thought it might be a interesting application to create and would be funny to see how many gullible people would download this, which is 5000+ as of August 2017.November 2015
Super Word TwisterA fun and addictive text twisting game.The first mobile app I ever built, and the most successful. I recieved a free $500 Amazon App Store ads promotion which provided a bunch of initial traffic and downloads. I built this using Ionic / AngularJS 1.x. I created this application as a clone of a fun text twisting game I used to play a lot on my PSP. This project was really fun for me as I have always enjoyed word games.September 2015
Tip SidekickSimple and Easy Calculator for calculating tip amount and splitting the bill.This is the first and only application I created to complement my website, calculator-sidekick.westonganger.com The idea was to create a calulator on a webpage and then be able to utilize these within a dead simple cordova mobile application and appear native at the same time. The idea worked perfectly however I lost interest in creating each and every mobile app so I stopped with this one.April 2017
Word JumblerA fun text twisting game. Hundreds of words to spell. Hi-Scores to brag to your friends.A clone of my first game, Super Word Twister.December 2015