Skip to content

Instantly share code, notes, and snippets.

@blakmatrix
Created June 22, 2012 17:15
Show Gist options
  • Save blakmatrix/2974054 to your computer and use it in GitHub Desktop.
Save blakmatrix/2974054 to your computer and use it in GitHub Desktop.
Introducing blakmatrix and migratorBot

Introducing blakmatrix and migratorBot

Hi, my name is Farrin Reid. I love developing awesome software, tinkering with open source hardware, and trying out new hobbies. I am most intrigued by automation, strong AI, and all fields of science. I am excited to be working at Nodejitsu as one of the team.

I graduated from the University of Alaska Fairbanks in 2009. I stuck around for a few years and became a developer/programmer for the University of Alaska. About a year ago, I decided I wanted to move away; out of the cold, closer to family, and to expand my career horizon. I packed up 8 years of worth of collected belongings between my wife and I into our car and at 1:30pm June 18, 2011, I started my journey out of Fairbanks, AK to Seattle, WA.

I had a few interviews lined up when I arrived, but at the time the market was looking for senior developers. In the interim of looking for something to pay the bills, I got introduced to node.js and all its' awesomeness. Long story short, a friend and I decided to step out of our comfort zones and sign up for a competition in a language we knew nothing about (other than a little JavaScript/jQuery knowledge). We signed up for the Node Knockout 2011 competition. We had a trial run and did everything wrong and 26 hours in decided to start drinking, when we woke up 52 hours later we had an app called YUMDUM—Don't ask, we don't even know... As for how we did at the competition, we didn't place but we had fun leaning more about node.js, GTFS, and attempting to make a simple public transit routing application on the web.

Shortly after the competition I started a Support Engineer role at a local company in Seattle. There I got to learn what support was like at the first tier of a software company and all about graveyard shifts. In other words, I completed my Jedi training(in reverse) and became a Master of Support.
Tim the Enchanter is the ultimate master of support

Fast forwarding to the past few weeks, I was on my normal graveyard shift when I decided to ping Josh and see what was up with him and Nodejitsu. We got to talking about how awesome his job was, how he could really use an awesome Support Engineer, and how together we could pave the way to glory for Nodejitsu with node.js. And then that talk became reality!

For my first project at Nodejitsu, I have been working on a bot that will make node.js code compliant with the version that is being released very soon. Actually, the change was first introduced in node.js v0.3.0 but it hasn't been an issue until node v0.8.0. this is because the “sys” module throws if you try to require it in an application.

The migratorBot has several modes, but the most interesting are "repo" and "npm". The "repo" command will take either a location to a folder or a git hub link to a repository. If you provide it with a Github repository it will take your provided username,fork the repository, clone it locally, check out a new branch, make any changes, push that commit back to Github, then it will submit a Pull Request to the original repository owner with a friendly message about why the changes were made. The Pull Request - the robot is quite smashing, if I do say so myself

The other interesting mode is "npm". This mode will query ALL of the packages in npm that have links to Github repositories and will process all 10,000+ repositories, this might be why your reading this blog if the migratorBot has left you with a pull request on Github. You’re Welcome!

This project has been fun and challenging as its been about six months since I have developed any serious node.js applications. Coming back onto the scene and being greeted with flatiron, winston, and various other highly useful frameworks and tools has been highly rewarding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment