Grafana 5.x Running on Raspberry Pi

Got around to upgrading my Raspberry Pi 3 Model B weather station with a newer version of Grafana, the Debian packages for ARM are hosted on Grafana’s download page under ARMv7 . Moving from a 2.x word to a 5.x has been impressive, most notably the drag, drop, and resize functionality. I’m still using InfluxDB and Telegraf to store and populate my time data points. Latest Raspbian’s (stretch) comes with Influx 1.

File not found!

I’ve seen it before, a customer deletes a file and then needs it restored. Normally a challenging request, but under special circumstances a process may have the file opened. While showing my son some fun and exciting Linux security scenarios, I recalled all those times I was able to recover data from the /proc (in memory) filesystem. In order to visualize this scenario I threw together a small Dockerfile and had him poke around:

Dungeon Brawl

In order to re-familiarize myself with MongoDB I decided to write a little web application utilizing it as a backend datastore. Dungeon Brawl is a Python Flask app that runs inside Docker with the help of docker-compose. Using this application a Dungeon Master can easily track all things combat for their Dungeons and Dragons group. Grab the source code from Github , or check out a demo .

Android Open Trivia Database Application

This month I went from owning an iPhone to an Android, I also decided to freshen up on the new hotness in the Android development realm. I learned Kotlin is now an officially supported Language, Android Studio works much better than the old days of Eclipse and plugins, and OkHttp + Gson make interacting with Rest APIs pretty darn easy. So what did I manage to create? Using a list of public-apis found on toddmotto’s Github I came across the Open Trivia Database .

Magic the Gathering Card Recognition

This weekend I took a bit of time to read up on OpenCV (Open Source Computer Vision Library) , I wanted to capture images of Magic the Gathering cards, then identify them using a Python library called ImageHash . Below is a demonstration of what I was able to accomplish in about 2 days of research and hacking: I’ll try and break down the steps and image manipulation functions I used to achieve this.

MySQL IN Operator Not Using Index

After being alerted for elevated cpu on a staging mysql instance, I logged into the mysql console and ran a SHOW PROCESS LIST : SHOW PROCESSLIST\G *************************** 1. row *************************** Id: 1 User: my_user Host: x.x.x.x:xxx db: my_db Command: Sleep Time: 2 State: Info: NULL *************************** 2. row *************************** Id: 3 User: my_user Host: x.x.x.x:xxx db: my_db Command: Query Time: 786 State: Sending data Info: SELECT file_id, fs_file_id FROM my_data WHERE file_id IN ('123456', 123457); A query running for 786 seconds quickly caught my eye, my next course of action was to run an EXPLAIN :

Remote Controlled Car using Raspberry Pi and Webcam

Setup First thing I tackled was setting up the L293D H-Bridge on the Bread Board. I found myself referencing the following Diagram a couple times. Step one is connecting your chip down the center of your board: From here I connected the 3 power pins to my board’s power rail using a few Jumpers : A few more Jumpers connect each side of the chip to ground: Finally I use a couple Wires to connect both sides of my power and ground rails:

Python says, Simon's hipster brother

Many of you may remember playing with a Simon Electronic Memory Game when you were younger, you know something that looks like this: At it’s core the game is rather simple, the device lights up random colors, and you need to repeat the pattern. Of course it gets harder the longer you play. I thought it would be fun to build a Simon game using Raspberry Pi and a few electronic components:

Arduino values to Python over Serial

I’ve done a little bit of reading on the ReadAnalogVoltage of Arduino’s home page, and they give a straight forward way to read voltage from an analog pin. I wanted to take this one step further and send the value over serial, then read it in Python using pySerial . My setup is very straight forward, I have a Arduino UNO , a bread board, and a battery pack holding 4x AA batteries: To start out I want to merely print the voltage value in Arduino Studio to the serial console, my code looks something like this:

Python and sentiment analysis

While looking for datasets to throw at sklearn , I came across UCI Sentiment Labelled Sentences Data Set . UCI is providing us with positive / negative tagging on real world data, the data comes from three sources ( Amazon , Yelp , and IMDB ). The only problem is the format is a little strange.. We have a .txt file for each source, this is a raw unstructured formatting, plus not every line is tagged with sentiment.