All Posts

Misleading Users to Create Better Experiences

When trying to craft an experience, accuracy isn't always important. The user's experience is more important, and sometimes you have to mislead them a little to craft a better one.

Posted on Sunday, July 27 2014

Visualizing Nebulous Data

The best data visualization choice is not always the 'correct' one. The most accurate representation of data is not inherently the best method of visualization. How well the visualization represents the data is probably the most important facet to consider when designing a visualization, but it’s certainly not the only one. It’s about what's best for the data and what experience you’re trying to create.

Posted on Sunday, July 20 2014

Building Five Labs

Five Labs was an experiment that generates a personality for you based on your Facebook wall posts. We generated personalities for over 200 million people in a week. This post describes the architecture and infrastructure behind it.

Posted on Tuesday, July 01 2014

Installing CUDA, OpenCL, and PyOpenCL on AWS EC2

This post describes how to setup CUDA, OpenCL, and PyOpenCL on EC2 with Ubuntu 12.04. These are the steps I took to install CUDA and OpenCL on EC2. This should work for any Ubuntu machine with a CUDA capable card.

Posted on Wednesday, September 18 2013

OpenLayers Tutorial - Part 3 - Controls

OpenLayers Tutorial Part 3 - Controls. Tutorial covering OpenLayers Controls, various examples and sample code, including styling controls with CSS, placing controls outside the map in panels, and more.

Posted on Sunday, May 02 2010

Replace a String in Multiple Files in Linux Using Grep and Sed

This is the quickest way I've found to search for and replace every occurrence of a string in multiple files in linux.

grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g'
grep -rl 'windows' ./ | xargs sed -i 's/windows/linux/g'

Posted on Sunday, April 25 2010

OpenLayers Tutorial - Part 2 - Layers

OpenLayers Tutorial Part 2 - Tutorial covering OpenLayers Layers, including how it works on the backend, WMS, Vector layers, Google Maps and OpenLayer mashup instructions, and other Layer object related concepts.

Posted on Tuesday, February 02 2010

Dijkstra's Algorithm - Shortest Path

This post will cover the basics of Dijksta's shortest path algorithm and how it can apply to path finding for game development. It is my opinion that understanding this algorithm will aid in understanding more complex AI algorithms, such as A*. This post is aimed more towards developers starting out in game development or those curious about Dijkstra's algorithm, but this will be a somewhat simplification of it and discuss mainly the concepts.

Posted on Sunday, January 17 2010

Removing ^M characters on ubuntu in VIM

Remove ^M characters in VIM by replacing \r with nothing. ^M is really \r. Use :%s/\r//g

Posted on Friday, November 06 2009

OpenLayers Tutorial - Part 1 - Introduction

Tutorial Introducing OpenLayers, covering the basics of creating a map and populating it with a single layer.

Posted on Saturday, October 03 2009

ATI / NVidia Dual monitors with Ubuntu 8.04

Set up dual monitors in Ubuntu 8.04 for both ATI and NVidia based graphics cards without configuring xorg.conf or manually editing any other files. This should work for most ait or nvidia based dual monitor setups with Ubuntu 8.04 Hardy Heron. Note: This is a bit outdated, newer versions of Ubuntu support this out of the box

Posted on Monday, July 21 2008

Javascript Browser Based Tower Defense Game: Elemental TD

My latest project is an Browser Based Tower Defense (Elemental TD) game written in Javascript using the MooTools framework on the client end. The thing that sort of sets it apart from other browser games is that it is a true browser based tower defense: it does not use flash or other third party plugins; it’s all Javascript.

Posted on Tuesday, November 06 2007