Weston Ganger BCIS
Web/App Software Engineer. Owner and Developer of Solid Foundation Web Development
I started my career as a simple website designer but quickly moved into Software Engineeering and Application Development mainly for the Web platform. I work with the stakeholders in all stages of the development lifecycle.
I have spent the last 5 years developing Ruby-on-Rails applications for usage internally within BC Hydro. During this time, I have created many new applications and maintain legacy applications. These applications manage various business processes and workflows within the organization.
I am 27 and have a Bachelor of Computer Information Systems (BCIS) from University of the Fraser Valley since 2014.
I am a Christian believer and declare that Jesus Christ is God and king. Ask me why.
When I am not coding, I enjoy Automobile building and driving, Outdoors, Extreme Sports, & Family Time.
In an effort to optimize the use of my time and energy, I will no longer be maintaining the boatloads of public and professional profiles that everyone says you should keep up on. Listed here are the only public profiles I support.
My Blogs / 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. These libraries aid in some part of the software development process. These are all publicly available for use within any software development project.
|form_builder.cr||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|
|axlsx_styler||Build clean and maintainable styles for your axlsx spreadsheets. Build your spreadsheeet with data and then apply styles later. I utilize this gem within my other software, Spreadsheet Architect. I also implemented functionality to the Ruby gem axlsx_styler to be able to add styles after the document has been generated. This is probably the most important missing features of the widely adopted axlsx spreadsheet library. I needed to ensure the projects future so I now handle all maintenance of this library as of 2018.||Project Maintainer since 2018|
|minitest_change_assertions||Provides assertions for your Minitest suite to determine if an object has been changed||Creator & Maintainer|
|paper_trail-association_tracking||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.||Project Maintainer since 2018|
|paperclip_utils||A collection of processors and helper methods for easier dynamic processors and styles on your Paperclip uploads||Creator & Maintainer|
|prawn-rails||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 2017|
|protected_attributes_continued||Protected Attributes for Rails 5. I created this plugin to address a need in upgrading legacy Ruby-on-Rails applications.||Creator & Maintainer|
|rails_nested_layouts||Dead simple nested layouts for Rails||Creator & Maintainer|
|rearmed-rb||Rearmed-RB helpful methods and monkey patches for Objects, Strings, Enumerables, Arrays, Hash, Dates, & Rails||Creator & Maintainer|
|rearmed_rails||A collection of helpful methods and monkey patches for Rails||Creator & Maintainer|
|RODF||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 2016|
|sexy_form.rb||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. I believe I have added another great form builder option to the Ruby language.||Creator & Maintainer|
|spreadsheet_architect||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 & Maintainer|
|chosen-readonly||Chosen Readonly is a plugin that extends Chosen Selects to add support for the readonly attribute||Creator & Maintainer|
|cordova-plugin-apprate||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 2016|
|cordova-plugin-camera-preview||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 2016|
|input-autogrow||Input Autogrow is a jQuery autogrow plugin for inputs||Creator & Maintainer|
|input-case-enforcer||Input Case Enforcer is a jQuery plugin to enforce uppercase, lowercase, or capitalized inputs & textareas||Creator & Maintainer|
|select-sync||Select Sync is a jQuery plugin to synchronize selects by selected or disabled options easily||Creator & Maintainer|
|bootstrap-directional-buttons||Directional / Arrow buttons for Bootstrap||Creator & Maintainer|
|chosen-bootstrap-theme||Bootstrap theme for Chosen Select that actually looks like Bootstrap||Creator & Maintainer|
|chosen-material-theme||Material theme for Chosen Select||Creator & Maintainer|
|rearmed-css||CSS Utility Classes for rapid development||Creator & Maintainer|
My Open Source Contribution History
Here is a list of open source contributions I have made on GitHub throughout my development career.
|AngularJS 1.x||Pull Request||https://github.com/ianmurrays/ngDfp/pull/28||August 2015|
|Ruby||Pull Request||https://github.com/zelig/ip_as_int/pull/1||May 2015|
|Ruby||Pull Request||https://github.com/paper-trail-gem/paper_trail/pull/523||April 2015|
|Ruby||Pull Request||https://github.com/straydogstudio/acts_as_xlsx/pull/1||April 2015|
|CSS||Pull Request||https://github.com/maxim/bootswatch-rails/pull/77||March 2015|
Public Projects (For Fun)
Listed here are some of the public projects I have created simply for my own curiousity and enjoyment.
|Project||App Description||Dev Story||Live Release Date|
|Calculator Sidekick||Providing 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|
|Carrie.WestonGanger.com||A fun website I built to hype up the marriage of my wife and I.||A fun website I built to hype up the marriage of my wife and I.||April 2015|
|Coders Log||A 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|
|SFWD CMS||Content Management System for Websites||I needed a platform to create content manageable websites for clients quickly and efficiently. A goal was to stay within the Rails framework safety net if possible for future customization. After trying countless libraries I found LocomotiveCMS which provide a complete end to end solution for content management. Shortly after I created this platform.||June 2019|
|What Rattles My Cage||Post your rants and raves about the things that just rattle your cage!||I wrote this application to teach myself how to write a Rails JSON API and AngluarJS 1.x applications. Was a really good learning experience.||September 2015|
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 enjoyment, to learn Cordova and Ionic, and to maybe make a few bucks on the side.
At this time, these are all still available on the Google Play Store. They were on the Apple App Store for a few years but I decided to stop paying the yearly developer fee at which point they remove all of your apps from the App Store which is very disappointing. The reason for dropping this cost is that I lost interest in mobile apps as they are a moving target and now support the web whenever at all possble.
|Project||App Description||Dev Story||Live Release Date||Image|
|Chuck Norris Jokes & Facts||Get 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 Turn||Simply 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. So I created this app to manage turn taking and make noise and voice when its time to change turns. I tried creating the application in both React Native and Ionic v2 but I didnt enjoy react as expected so I settled with Ionic 2.x for the final product.||April 2017|
|Official Beer Pong Rules||The 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 Generator||Get 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 Camera||See 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 Ultra||Challenge 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 Roller||The 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 active the digital dice roll.||March 2016|
|Super Farm Clicker||Build 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 Quiz||A 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.||Jan 2016|
|Super Millionaire Quiz||A 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 HD||The 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 Twister||A fun and addictive text twisting game.||The first mobile app I ever built, and the most successful due to 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 test 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 Sidekick||Simple 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 Jumbler||A 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|