Automated drip irrigation system for a hanging basket garden

My wife and I love enjoying Chicago summers on our back porch. Two years ago we decided to buy hanging planter baskets. We were excellent at purchasing plants but did not plan ahead to ensure there was sufficient light, water, or nutrients. Any project manager with a thousand yard stare knows what happened next. Within a few weeks it was a irrecoverable garden of death. Last year I decided to try again, but not fail. I used a fully automated drip irrigation system and the results speak for themselves. Here is how I pieced it together.

Read More

Stop using R plot and learn to love ggplot

ggplot Diamond Comparison

When I first got started I always found myself using R’s “plot” capability because, well, it is easy! Unfortunately, it lacks some advanced features — and the plots it produces are really ugly looking (subjective, but I bet you will agree with me). Luckily, there is a better tool for the job – ggplot. With only a few tricks you will find it just as easy to use.

Read More

Trying AT&T Flow Designer with IBM Watson IoT

The AT&T IoT Platform’s “Flow” at has recently announced they support IBM Bluemix with Watson IoT Platform. This is a great hybrid cloud strategy for IoT. After taking a quick look, the flow platform is an impressively customized version of Node-RED. Let’s take it for a spin!

Read More

Using a raspberry pi with a microphone to hear an audio alarm using FFT in python

If your smoke alarm or, in my case, water alarm goes off you want to know right away – even if you are currently half way across the world traveling in China. I run a fish tank. I take many precautions but you really can’t be too safe. I bought a set of Honeywell water sensors which I highly recommend. Sadly, this particular alarm is not IoT enabled. In fact, last I checked all the IoT alarm systems were terribly reviewed and overpriced. Hopefully that gets fixed soon. Until then, I needed to make do with what I had.

Read More

Getting started with LoRa using a LoPy for IoT


When a colleague first told me about LoRa, I was skeptical that it was even real. I can use a small handheld device to transmit messages up to 40km to another device for free? It sounds too good to be true, but it’s real. Of course, there is a catch – less bandwidth. But who cares? If all I need to send from my IoT device is perhaps some longitude, latitude, and basic sensor data — LoRa is a great technology.

Read More

Comparing diamonds with linear regressions using python R in jupyter notebooks

Buying a ring is a big decision. You have the whole “are they the one” decision. I can’t help you with that. Then you have the reality that this could likely be the first major financial decision that will impact both of you. Wouldn’t it be nice if you could save hundreds or even thousands of dollars?

I am not here to convince you to avoid buying a diamond (thanks, De Beers). Instead, I am going to show you a basic statistical programming technique with python and R known as a “linear regression model.” I will use a jupyter notebook to execute data analysis so you can see step by step how it works.

You might be able to use this to shop smartly by allowing you to compare an actual cost in store to a predicted price. My wife and I built and used this code in 2013 while engagement ring shopping together. Hope it helps others!

Let’s get started!

Read More

Learning to screen scrape data using Google Chrome and curl Results

Screen scraping can be effective at getting free data very quickly. When attempting to screen scrape large amounts of data, I often use Google Chrome’s “Developer Tools” to obtain the steps necessary to recreate a web request. Here is an example process I used to screen scrape data from which contains a database about diamonds for sale online. I will use this data in an upcoming post on how to build statistical models.

Read More

Using Apache NiFi on macOS to connect to IBM Bluemix Watson IoT using MQTT to IoT

ConsumeMQTT NiFi Queue

I tried out Apache NiFi and liked how easy it was to act as an integration to bridge disparate Internet of Things systems together. I have previously tried NodeRED which I still highly recommend. Where I see NiFi exceeds is its ability to track each communication throughout the chain of custody.  This concept is marketed as provenance and tracks the exact data transformation that occurs from input to output.

Read More

Backup and Restore Boot Camp on a new mac for free

bootcamp backup partition

If you want to move your Windows 10 Boot Camp partition from one Mac to another, or simply to make a backup, then I hope this guide will help you! Please start by taking backups of all your data – both Mac and your Windows installation – and store these backups some place safe while you work. We will use open source and other utilities already installed on your mac – dd, hdiutil, and Disk Utility.

Read More