Hackaday Network Analysis

Being curious about the underlying structure of relations between Hackaday authors, articles, and the referenced makers, I wrote a little Java program extracting this information from publicly available data. Using jsoup and gexf4j this was a rather quick task. A simple regular expression

\[([\w\s]+)\

extracts the usual “[Tim] did this and that …” references from the Hackaday blog.

After parsing the relationships

Author [wrote] Article
Author [mentions] Maker
Article [references] Maker
Maker [mentionedWith] Maker

and saving them as an GEXF graph, the data is passed to Gephi. Gephi is a really intuitive and versatile graph visualisation tool with various options to map properties to visual appearances. It also includes a range of automated layout algorithms.

The result of playing around with the data from the last 99 blog-history pages (~from November 2014) and the many visual options of Gephi are two rather beautiful and also insightful graphs:
(green – authors, red – articles, blue – makers)

hackaday network (author-centric) hackaday network (maker-centric)

The first graph scales the nodes according to their number of outgoing relations which emphasizes the authors. The second graph scales by the incoming relations and emphasizes the makers. On the outer fringes it becomes obvious that each author has his distinct cloud of referenced blogs while the centre of the graph highlights a cluster of makers referenced by multiple authors. Another prominent feature are many smaller clusters of makers mentioned together in one or more articles. With a bit of googling, it turns out that some of these graph-relations map very nicely to personal relationships. For example two maker-nodes mentioned together very often are actually brothers in the real-world. Others turn out to be close friends.

Although all of this is public information, I left out the labels identifying authors, articles, or makers for their privacy. Especially in the context of the current debate about safety, security, and privacy, this highlights how much insight can be gained even from simple meta-data relationships.

RPi2C

I recently ordered a bunch of I2C breakout boards to tinker around with. The first thing I implemented, using the Pi4J library, was a simple eight by eight version of Conway’s Game of Life using an I2C controlled bicolor LED matrix from Adafruit.
I2C 8x8 Game of Life

Next I build a simple two-wheeled robotic platform (RPi2C) to test the 9DOF MPU9150 breakout board from Sparfun. This little chip integrates accelerometer, gyroscope, and magnetometer into a single package and also includes what Invensense calls a digital motion processor for on-board sensor fusion.
RPi2C RPi2C

The two wheels are driven by basic Parallax continuous rotation servos and controlled by the same I2C based PCA9685 breakout board from Adafruit I already used on the RaspberryPylot. As the MPU9150 DMP requires uploading of firmware via I2C which I still need to implement, I’m currently simply using the raw gyro data and a PID controller for very basic stabilisation. Also the low rotational speed of the servo motors limits the ability to recover from disturbances. Fusing the sensor data of the accelerometer and the gyro, an improved controller, and maybe stronger motors should deliver better results, soon.

The platform also includes a basic bread-board, a bunch of potentiometers, switches, and buttons, as well as an ADS1115 16-Bit ADC and a SX1509 16 Output I/O Expander for happy tinkering. 😉