Osama Sidat

Software Developer at D2L. UWaterloo Computer Science Alumni. Tech Enthusiast. Hobbyist Photographer

Read this first

Renovating osamasidat.com, Part 2: Moving to GitHub Pages

This is the second part of a (hopefully) multi-part series of posts in which I outline my thought process as I renovate my personal website.

In Part 1, I updated my personal webpage to use the static site generator Wintersmith. Next - I will do something that I’ve been waiting to do for a long time - move the site from its Netfirms host, and serve it up via GitHub Pages.

 Creating and pushing source code to the oosidat.github.io repository

Following instructions on the GitHub Pages site for “User or organization site”, I created a new repository, “oosidat.github.io”:

Screen Shot 2016-03-05 at 1.35.03 PM.png

GitHub Pages will automatically serve up any content pushed to the master branch of this repository at oosidat.github.io

Next, from inside the personal-page directory on my local machine, I will change the remote repo’s URL.

Before:

personal-page $ git remote -v
origin  https://github.com/oosidat/personal-page.git

Continue reading →


Deploying a Meteor application to Digital Ocean using Codeship and Meteor Up (mup)

I’ve been working on a Meteor project that just reached a somewhat deployable state – figured it would be fun to experiment with and document the deployment process.

Before proceeding, do note that this is not a tutorial or a follow-to-the-letter guide. I simply saw this post as an opportunity to document how the different pieces fit together (something I tried to look up when I embarked on the deployment task).

I chose to go with the following pieces of technology:

  • A Digital OceanNon-affiliate Droplet with nginx, as my cloud server. Chose it because of cost (had some credits), ease, and familiarity.
  • Codeship for continuous integration - Free plan allows 100 builds per month, 5 private projects. Chose it because of cost (or lack thereof), plus ability to pull in private BitBucket repos on the free plan.
  • A Meteor application (referred to as my_app), in a repository on BitBucket

Continue reading →


Renovating osamasidat.com, Part 1: Migrating to Wintersmith

This is first part of a (hopefully) multi-part series of posts in which I outline my thought process as I renovate my personal website.

 Introduction

Back in February, I developed a website for the BabySteps project using the static site generator Wintersmith. Previously, all of my websites and webpages had simply been “hand-written” in raw HTML, CSS, and if necessary, JavaScript.

While working on the BabySteps website, I learned a fair bit about the ease of design and development that Wintersmith provided me, along with the advantages of static site generators in general. I liked the separation of concerns, namely, content and design, and made a note to myself that I would continue to explore static site generators for future similar sites. Since my personal webpage is in need of a fresh redesign, I decided to make it a candidate for this experiment.

 Goals of the renovation

Continue reading →


RoadWatch wins Canon Canada’s Through Your Lens Competition

For the past couple of months, my former teammate from the NASA Space Apps Challenge, @femion, and I have been working on RoadWatch, a project for the Canon: Through Your Lens competition. Along with six other finalists, we pitched to Canon Canada’s executives this past Friday at Communitech in Kitchener, Ontario.

And we won the first prize!

Roadwatch.jpg

The problem we were solving: road damage. In 2014, according to the American Automobile Association, road damage, such as potholes, cracks and debris, cost motorists $6.4 Billion in vehicle repairs. Organizations responsible for maintenance, such as municipalities, struggle to identify damage locations until complaints or claims are filed. In addition, the longer potholes go unfixed, the more expensive it is to repair them.

In a nutshell, our idea/concept was as follows: RoadWatch is a solution that uses Canon network cameras, near-infrared

Continue reading →


$1 Billion Stolen From Banks In Cyber Attack

This blog post was originally written on February 22, 2015 for coursework for the UWaterloo Computer Science course CS 458: Computer Security and Privacy

 Introduction

Recently, Kaspersky Labs, along with European cybersecurity authorities, uncovered an ongoing theft of over a billion dollars from financial institutions across the globe. The Carbanak criminal gang, hailing from various regions around the globe, including Eastern Europe, Russia and China, is allegedly responsible for this cyberattack.

 Why is it important?

Not only did the attack steal up to 10 million dollars in each individual raid, the attacks took between two to four months, and went undetected during that time. The attackers were able to gain access to the internal network(s) of the banks, and subsequently, to the video surveillance systems, which allowed them to spy on bank clerk screens. Not only does this attack

Continue reading →


Don’t be a Git!

I’ve been in software development for about a year now. In that time, I went from “Huh? What’s version control?” to having a working knowledge of Subversion, Mercurial and Git. Most of my experience came from my work terms at Desire2Learn, supplemented by my Operating Systems course last Fall, which required collaboration, and could have been nightmare had source control not been involved.

I’ve had several discussions with colleagues about practices that make our lives easier. As someone who is highly interested in driving process improvements, such discussions have great appeal to me. The ideas highlighted below have cropped up several times (enough that I’m writing about them!).

 Think before you commit

Before you commit, think carefully about the changes you made? Are they functional changes? Or are they decorative? Will they cause existing features to break? (If the answer to the

Continue reading →


NASA Space Apps Challenge, 2014

Two weekends ago, I attended the NASA Space Apps Challenge, held here in Kitchener-Waterloo. This was the first, outside-work hackathon I’ve ever participated in - in the past few months, I registered for several, but never ended up attending.

Saturday morning, I formed a team with three strangers (not strangers anymore!) to work on a project. The goal of the hackathon was to solve an interesting, space-related problem. We chose to tackle the challenge titled “Asteroid Prospector” by developing an interactive asteroid mining game, which would allow folks of all ages to explore the different classes of asteroids, and their mineral compositions.

Throughout the day, we gathered relevant asteroid distribution data and converted it into a usable format, so that we could use it to create algorithms which would spawn asteroids in our game. We chose to use the Unity 3D Game Engine, which two

Continue reading →