October 1st, 2015
Its hard to believe its here, but OrlandoiX officially kicks off this weekend. I'll be working with the folks from Gamer's Hive at their booth in the convention center. Stop by, grab some swag, check out the site and say hello! While I'm only going for the weekend, the festival continues into next week with more panels, exhibits and keynotes.
September 28th, 2015
In this tutorial we will take a look at implementing per pixel collision detection. Resolving collisions at the pixel level offers more precision than traditional bounding box methods and allows for more advanced interactions. In this example, we'll be using it to move our character over some hilly terrain. If you want to peek ahead at the end result, check out the demo here. (more…)
August 15th, 2015
Here's a simple extension for Adobe Brackets that allows you to do a find/replace all within selected text. This is a feature that I use a lot and I like it more than the default Brackets find/replace behavior. You can get the extension from this direct link, the Brackets Extension Registry or via the extension manager in Brackets itself (shown below). You can access the extension manager through the File menu.
The source code is also available on github.
July 16th, 2015
This time around I thought the stream cipher programming challenge sounded like fun. The program encodes a character string and then decodes it back to the original text using the RC4 method. Below is an example input/output, followed by the code.
static void Main(string args)
const int KEY = 31337;
string message = "High five, bro";
Console.WriteLine("Original Message: " + message + "\n");
var cipherText = encrypt(message, KEY);
Console.WriteLine("Cipher Text: " + cipherText + "\n");
var plainText = decrypt(cipherText, KEY);
Console.WriteLine("Plain Text: " + plainText);
static string encrypt( string msg, int key )
int seed = key;
int m = 255;
int a = 124;
int c = 32;
byte bytes = Encoding.Default.GetBytes(msg);
var value = ((seed * a) + c) % m;
for (var b = 0; b < bytes.Length; ++b )
bytes[b] ^= (byte)value;
static string decrypt(string cipher, int key)
return encrypt(cipher, key);
July 5th, 2015
I decided to start participating in some of the programming challenges in the dailyprogrammer subreddit. I'm not saying I'm going to do them every day, but maybe one a week; we'll see! The challenge from July 3 is the first one I've attempted. The challenge is to find 3 lines from a famous poem given a text file with 50000 lines in it. Of those 50000 lines, 49997 of them are gibberish. I will be solving the challenges in C# unless otherwise noted. (more…)
July 2nd, 2015
With the draft behind us and free agency frenzy upon us, it's time to take a look back and see how well (or not well) the draft simulator performed. (more…)
June 26th, 2015
If you've been following me for any length of time, you probably know that I'm a big NHL fan. As such, with the 2015 NHL draft today in Florida, I decided to try my hand at creating a draft simulator. The program simulates the first 2 rounds of the draft, but it was more complex than I thought going in. In this article, I'll discuss how it works and the challenges I faced with development, as well as ideas for improvements in future versions.
February 17th, 2015
Well, I'm not dead, but I have been MIA here for quite some time. Without going into too much detail, the last few months I've been very busy and haven't had as much time for personal projects as I would like. Luckily this last weekend I had some free time and found a problem to solve. (more…)
September 15th, 2014
Orlando Tech Week kicks off in just a couple of weeks with the return of BarCamp Orlando on Saturday, September 27th! For those not familiar with BarCamp, it's an all day tech-themed event where anyone can give a presentation. If you plan on presenting, you'll want to arrive early and grab your slot as they tend to fill up quickly. I'm excited for this year's event and encourage anyone in the area with an interest in tech to attend. For more details check out the official BarCamp Orlando website.
August 20th, 2014
In this tutorial you will learn how to pass command line arguments to your Adobe AIR applications and how to retrieve those values from within your program. In order to demonstrate this, I'll be sharing a small program I wrote recently to assist in screencasting. The program simply displays a webcam feed in a window that gets its size via command line arguments that are passed in when the program starts. This allows for a simple picture-in-picture effect, and thus, I've named the program PiP. Let's get started. (more…)