Technology:

SQL

SQL (Structured Query Language) is a specialized programming language designed for managing and manipulating relational databases. It allows users to retrieve, update, and manage data with a standardized syntax, making it a fundamental tool for database management.

My first experience with MYSQL was in university working on a small scale project in Adobe Flash which allowed up to 100 people draw on a single canvas which was portioned into 10x10 grids and utilized SQL to capture the drawing data. From there I utilize SQL to organize my photos on my website, extracting the metadata to store and retrieve photos based on certain information.

While working at Eelzee Solutions, my experience with SQL grew significantly as utilizing custom SQL within Drupal helped to manage and produce various different types of reports based on large sets of business data.

 

SQL Projects

Camping Karaoke Website
-

A passion of mine which has been growing over the years is Karaoke, and not just Karaoke but the rather unique niche of Camping Karaoke.

This idea started out many years ago where it was a combination of a generator, a stereo, a laptop, and a stack of printed out pages with all of the available song titles. People would look through the pages and manually write out their song selections. I would then be in charge of manually creating a playlist song-by-song.

The next iteration involved putting fake mp3s of all of the song titles onto an iPod, passing the iPod around to have people add their songs to a playlist. This playlist would be imported, then a simple script would translate the playlist into a type of playlist the karaoke software would recognize.

The main issue with the previous approaches was that the entire list of chosen songs was completely randomized, which often cause an awkward situation. People who chose more songs than others often ended up performing multiple songs in a row, while those who picked fewer songs had to wait longer for their turn.

In 2015 I decided to go high-tech with this situation and utilize Drupal to create a website to organize the karaoke setup. Multiple users can scan QR codes to connect to the website which runs off of a Wifi hotspot. The site contains a list of all available songs so users can choose the songs they want to perform and whether they want to perform it earlier or later.

When it's showtime, the playlist is randomly generated in a way that ensures all performers are evenly spaced out and the songs are weighted by their earlier/later preference. Data is gathered on the chosen songs to create personalized pages for each user, which suggests new songs they might like, such as songs they haven't performed before by artists they have previously chosen.

This project has been very successful in simplifying the process of organizing the karaoke playlists, which allows me to enjoy the experience of Karaoke with minimal setup time. This has been an ongoing project and I have added features here and there over the years.

Client
Technology
PHP
Drupal
SQL
CSS
Development of Drupal Tools
-

While working at Eelzee Solutions, I assisted in building various Drupal tools that helped improve our workflow and efficiency.

These tools involved logic which consolidated common functionality across multiple sites as well as tools to help generate boilerplate code which helped increase development productivity.

Technology
Drupal
PHP
Symfony
SQL
Custom Business Software Development
-

While working at Eelzee Solutions, I assisted in development of custom business software for various clients in the automotive, construction, health & safety and service industries.

This involved research, planning, and development of additional custom features for the business workflow of existing sites as well as aiding in the development of new sites for new clients.

As well as developing functionality for the business software, I also was involved in developing automated testing for the new and existing features to help ensure the software runs smoothly and efficiently.

Technology
Drupal
PHP
Behat
Javascript
SQL
jQuery
CSS
Upgrading Drupal website from Drupal 7 to Drupal 8
-

While working at Eelzee Solutions, I assisted in helping upgrade and migrate a very large and intricate Drupal 7 site to Drupal 8.

For a standard Drupal 7 site this can be a trivial matter, but for one site in particular it was a very large undertaking due to the complexity of the site mechanics.

In order to accomplish this successfully, much of the existing logic was refactored ahead of time combined with the addition of robust automated testing which were compliant with both Drupal 7 and Drupal 8. This also involved complex migration logic to ensure the data was transferred over correctly and efficiently.

Technology
Drupal
PHP
Behat
SQL
Year-long Timelapse of Stadium Construction
-

In 2010 construction started on the new roof of BC place stadium in Vancouver and I decided to try at an ambitious project of capturing a timelapse animation of over a year and a half's worth of construction. Setting up a webcam at a friend's place across the street from the stadium, I created a simple program in Max/MSP to capture images at a varying intervals, and upload straight to my website.

I also added the ability to change the capture interval remotely, and set a different capture rate for daytime and night time. When the pictures were all taken (550,000 of them) I created a crude application in flash (which never left the prototype phase) that will load certain pictures and play them as a video with an adjustable date range or other features.

I also had ideas to filter out pictures with bad weather so I added code that reads a weather almanac website and adds that information over to the picture database, this information is also relayed over onto the timelapse player to give a sense of the weather at the time of each picture.

Client
Technology
Timelapse
Flash
PHP
SQL
MAX/MSP
dolnik.ca Website
-

After 5+ years of having a flash-only based website, dolnik.ca was due for an upgrade. After having a good look around at what the current web practices are, I decided to re-create dolnik.ca and go with a mobile-first based responsive design using Twitter's open source Bootstrap framework as a foundation.

In the name of reusability and for the ease of future updates, I ensured that most of the pages are highly templated, and pull their content from a simple custom CMS using a combination of PHP and MySQL. As for the general design I looked towards a flat and simple, yet textured layout, with a parallax background with a layer in front that resembles a scratched-up frosted glass.

Client
Technology
PHP
SQL
LESS
jQuery
CSS
Javascript
Bootstrap
HTML
Tags
dolnik.ca Picture Viewer

When the public perception and presence of Adobe Flash was dwindling, the Flash-based picture viewer of dolnik.ca needed an update. Utilizing various current web technologies, I was able to build off of the back-end of the current PHP/MySQL image database that I am using for the Flash version, to create a Non-Flash version of the picture viewer.

For the background image, I used php to pull the highest rated / most viewed image from the current collection and added a blur effect to give the current page a theme that represents the current image collection. At this point the more advanced features of the Flash version such as searching by location, tags, and dates are not incorporated yet, but will be in the near future.

Client
Technology
PHP
SQL
jQuery
CSS
Javascript
GPX (gps) Uploader and Viewer

In 2012 good friends of mine embarked on a motorcycle trip around the world, although I did not create their website (ridetheworldtogether.com) I helped with many small features such as a RSS feed reader which automatically populates any YouTube updates, as well as an interactive map showing their route so-far.

At first I used existing services such as EveryTrail and TripTracker which started to really slow down the map navigation as their route became much longer. I eventually took matters into my own hands and created a system using PHP and MYSQL to read GPX (xml based GPS files) and populate a database with time, coordinates and other info.

I also learned how to use Google Map's API to display a very complex route on a map using data compression as the line plots loaded onto the map exceeds 650,000 points so far. I also created a crude GUI so that all my friend needs to do, is upload the GPX files and press a button to load the points into the database.

Technology
PHP
Google Maps API
XML
SQL
GPX
AJAX
Tags
Extravagant Corpse
-

This project is a multi-user drawing game where people choose a square to draw on to complete a collage picture as a whole. The concept was based around a multi-narrative version of the "exquisite corpse" (a parlor game where people would each write a part of a sentence and pass it on to a person who would add on not knowing the complete sentence). This project turned out to be very successful and one of my favorite works.

My role in this was developing the initial concept team lead of four people and head programmer. In 2008 new features using an SQL database allows for automation of creating new "corpses" (canvases), email notifications, daily user drawing limits, and interactive completed "corpse" viewings.

In 2017 Reddit created a somewhat similar project named r/place which also involved multiple people drawing on the same canvas. The main difference, besides the immense size of the canvas in r/place, is this Extravagant Corpse project would designate and lock off a drawing area for a specific person to create their art within, where-as r/place would have everyone in competition to draw over each others artwork.

Client
Technology
Flash
Premiere
PHP
SQL
Ming Library
dolnik.ca Picture Viewer (Flash version)
-

As photography is a hobby of mine, back in 2007 I decided to create a custom photo organization tool to display photos I have taken using Adobe Flash, PHP, and SQL. It made uploading, organizing, and displaying pictures on dolnik.ca a very easy and automated process. All pictures uploaded have their meta-data automatically read, and organized into a SQL database to allow for easy picture searching and viewing, depending on factors such as date, location, rating, tags, etc. As of today, this system contains over 8500 images.

Client
Technology
Flash
SQL
PHP