Understanding Networks

ASL Translator


While playing around with OpenCV I was interested in hand gestures and looked to develop a tool that would recognize/translate American Sign Language gestures. I started with a simple script that recognized the number of digits by looking for a brightness threshold (finding the hand blob) and counted the negative spaces. 

This was a little limiting and I soon found a project by Shubham Gupta that recognized multiple hand shapes by training a ML model on a dataset of hundreds of images. It worked pretty well under the exact right lighting conditions, but the blob tracker was based on pixel color (of a skin tone) and didn't isolate the hand as well. So after updating some of the script to work with the latest version of OpenCV, I brought in the blob tracker from the digit counter so it would track based on threshold. 

Now that I have this up and running I'm looking to retrain the model on other gestures, maybe as controls for something else.

Wireshark Capture


I took a deeper look into my network traffic using the network analysis tools Herbivore and Wireshark. At first glance a Wireshark capture looks a little intimidating and unfamiliar, so first task was exporting the capture data as a CSV file and looking at some of the variables in javascript. It didn't tell me too much except that the majority of my packets were using TCP. Herbivore gave a more user friendly view of the route of your internet activity. Looking into unfamiliar domains that popped up in my normal internet use, I saw a few examples of cookies, a mobile safari ad tracking software called Kochava, and most interestingly a url that pointed to a webpage with a single haiku. (Looking up this poem returns a website, Addthis.com, that wants you to download some files to help with your "security"...).   

Screen Shot 2017-10-16 at 7.50.42 PM.png
Screen Shot 2017-10-16 at 8.04.36 PM.png
Screen Shot 2017-10-16 at 8.09.39 PM.png
Screen Shot 2017-10-16 at 9.35.50 PM.png
Screen Shot 2017-10-15 at 12.58.26 PM.png
Screen Shot 2017-10-15 at 1.03.15 PM.png
Screen Shot 2017-10-16 at 9.40.56 PM.png
Screen Shot 2017-10-16 at 7.25.09 PM.png
Screen Shot 2017-10-15 at 1.14.33 PM.png
Screen Shot 2017-10-16 at 9.44.10 PM.png



Network Hops



live map

As an exercise to better understand the traceroute terminal command, I used mapbox and an IP lookup API to track the locations of the routers and servers used in my frequently visited websites. Unfortunately facebook is among them (marked as the death icon), as well as gmail (rocketship icon) and my personal website (markered with a sleeping icon since I need sleep). In the javascript console, I'm logging the complete json returned by the IP API, including the company name, city of the server, and order in which it was sent. 

Screen Shot 2017-09-17 at 12.50.09 PM.png
Screen Shot 2017-09-18 at 8.25.42 PM.png
Screen Shot 2017-09-18 at 8.53.21 PM.png
Screen Shot 2017-09-18 at 8.55.03 PM.png
Screen Shot 2017-09-18 at 11.30.59 PM.png
Screen Shot 2017-09-19 at 2.40.51 PM.png
Screen Shot 2017-09-24 at 1.35.43 PM.png
Screen Shot 2017-09-24 at 3.26.54 PM.png
Screen Shot 2017-09-25 at 11.19.28 AM.png

Arcade Joystick Controller


With the requirements to create a controller for Left, Right, Up, Down, and Quit controls, I set up a SparkFun switch with an arduino and neopixels highlighting selected directions. The housing was a departure from the typical "ITP box" (a bamboo box from the Container Store with an acrylic, laser etched lid), instead I aimed to reuse materials from the junk shelf.