Sound Detector with Microview

Image of Sound Detector from top and side

I built this because our new home has a number of pinging ducts and I wanted to get to the bottom of it. So I decided to build something that could ‘hear’ through walls and display the number on a screen. In theory, this should allow me to pinpoint exactly where sounds might be located. I had a few components at my fingertips, one of them being the Sparkfun Microview which I might have even obtained way back when they had their Kickstarter campaign. I had built a pretty sweet…

Monkey Tank

Assembled tank with Monkey and Rabbit

The best projects are ones where you manage to find everything on-hand and no waiting for deliveries or going out to get extra material. Thus is the case with Monkey Tank. My nine-year old has a small stuffed monkey (named, you guessed it: “Monkey”) and wanted to build a little remote control car for it. Kids being kids, she does not have a lot of patience and also aren’t giant perfectionists, so I wanted something quick but fun. At home, I had a Rover S Robot Chassis that I thought…

Animating simpleheat.js

static heatmap image

As a POC (proof-of-concept) for a presentation, I wanted to generate a heat map, similar to the kind you see for Toronto Raptors players and for other examples, such as for airline flights or overlays on physical world maps. Because I was presenting this in front of a fairly mixed audience, I did not want to make assumptions about how well they could make the mental ‘leap’ while I explain the narrative I had built for them. In other words, for each part of the story I was telling them,…

Placeholder heatmap data

static heatmap image

I recently needed to create an interactive wireframe concept using a heatmap. This was for a presentation and I needed to walk the client through a particular story. As a result I needed just enough data to populate the heatmap but had to somehow create the data myself. Getting the right data wouldn’t be straightforward: The heatmap, using json, requires both an x-and-y coordinates, and then a third value to denote intensity of colour on it (I’m calling it z or z-value). Since this was a POC (proof-of-concept) I needed…

CBC is adopting Neo4j

Probably one of the more popular meetups in the Toronto area is the Toronto Data Science Group which regularly boasts a few hundred members at its meetings. I usually don’t sign up quickly enough and have missed out because they are at capacity. Last week, they hosted a meetup at MaRS Discovery District and I managed to get a spot, which was doubly good because it was at my place of work and I could pop down to the auditorium without trekking outside in the cold. I’m really glad I…

Faking a Graph Structure with Google Sheets

I was asked recently to help our Social Committee with a problem: They arrange coffee meetups between employees at MaRS Discovery District, which is manageable with a short list where they know pretty much everyone. They are looking at expanding these meetups to (possibly) include an order of magnitude more participants. But this becomes a list management problem, as they need to figure out a way for these participants to be paired in a way that the list manager doesn’t tear her hair out every month going crazy with a…

Using Amazon EC2 Linux for Vanilla Minecraft Server

Minecraft screen shot

(Hey, I closed comments on my posts, but if you have follow-up questions about this, please contact me directly!) After months of begging, I finally caved in to my seven-year-old’s pleading to install a Minecraft server for her to use with her friends. Not only was I prompted by the challenge, but I also wanted an environment for the kids that I could keep an eye on (plus the endless begging wore me down, obviously). Originally, I was going to build a FreeNAS box and host it there, but a…

Toronto Elections data with Neo4j and Python part 3 of 3

As the title suggests, this is the home stretch for my 3-part series on Neo4j and Python. This last bit is more Neo4j focussed, with Python doing most of the heavy lifting in the first two posts. Using a 2006 elections contribution dataset, I’ve loaded into Neo4j (2.0 Community Edition) the candidates, contributions, contributor names, postal codes. Additionally, I tried to get the distance between the postal codes for some geocoding. Now to try a few simple queries to test this out. The first one, is to see the top…

Toronto Elections data with Neo4j and Python part 2 of 3

In my last post, I took some campaign contribution data and plugged it into Neo4j using a sweet Python plugin called py2neo. Now we’re going to take that same graph and give it some added value, namely flesh out the geospatial aspect of it. Getting back to the example from last time, if you take a nice close look, you’ll see that there are postal codes. What’s missing? ….that’s right: You have all these postal codes, but you can’t really do that much with them because you don’t have any…

Toronto Elections data with Neo4j and Python part 1 of 3

As promised I am pushing the envelope on the 2006 Elections contributions datasets. This time I am going to do some analysis using Neo4j, but since the data needs to be loaded using the right syntax, I have a little preparation to do, first. Currently, my data sits in a csv file and looks like the following: 1;Robichon, Georges; ;H3R1R3;H3R;Mont-Royal (Quebec);200.00;CT0001;Cash;CR0001;Individual;LeDrew, Stephen;1.00;Mayor; 2;Rousseau, Remy; ;J4M2B3;J4M;Longueil (Quebec);1000.00;CT0001;Cash;CR0001;Individual;Pitfield, Jane;1.00;Mayor; The first column (in the above it is “1” and “2”) that is a unique ID I created for each donation. It will…