Vote Charlie!

Projects Archives

Not perfect downtown but another GPS win for Garmin 67i

Posted at age 36.

Yesterday I did a fairly long run in downtown and west Oakland past some slightly taller buildings than in my first set of GPS comparison tests last month. I’m glad I had the Garmin 67i for this one, not only because its track logs were the cleanest overall, but because both my Fitbit Charge 6 and Pixel 6 Pro Runkeeper app had problems preventing me from having a complete tracklog. At least this put me over 55 percent completion for Oakland for my running every street project!

Sample A

Sample A

Read more

A loft bed fit for a king

Posted at age 35.

In an effort to make the best use of my fairly small master bedroom, I designed and built a king size loft bed. It was a few months in the making and took far longer to build and puzzle together than I expected, but I’m glad I did it. The original need was to accommodate two dog crates underneath, and while I was at it I wanted to make space for a small couch to allow for a few more people to watch a movie if the opportunity arises. Maybe some day there will be space for media viewing in the living room, but right now it is full of plants!

Final assembly

Final assembly

Read more

Reefkeeping: DIY aquarium stand

Posted at age 28.

I designed and built an aquarium stand this past week as my first foray into woodworking, and it turned out well. I used about $60 in wood and other materials. I’m now thinking about what else I should build!

The finished aquarium stand with adjustable shelves. I designed and built it from scratch as my first foray into woodworking. Despite running out of stain, I am quite pleased with it!

The finished aquarium stand with adjustable shelves. I designed and built it from scratch as my first foray into woodworking. Despite running out of stain, I am quite pleased with it!

Read more

Iron filings and a strong magnet

Posted at age 28.

Back in April, I ordered a large magnet to have some fun. I intended to make some sort of art project using pieces of metal suspended by thin strings, but before I got that far, the magnet ended up as a centerpiece on our dining table for most of the year.

_CNG4963.jpg

Iron filings on mirror on neodymium magnet

Read more

Sound reactive fur coat

Posted at age 28.

Two winters ago I bought a faux fur coat at a secondhand store The Retique in Milwaukee. I intended to take it to Burning Man in case it got cold. And it did, but I forgot the coat. This year I intend to not forget it, and I also managed to spend some time putting lights into it today. I hope to improve it, but I am documenting it now lest I never get back to this.

Sound reactive fur coat hanging up

Read more

Raspberry Pi and Smokeping network monitoring

Posted at age 27.

We’ve had some network issues lately, so I dug out one of the Raspberry Pi Model Bs I got for free from Adafruit with my first couple of orders in September 2013. I then set it up to do network monitoring using Smokeping. Since it takes 10 or 20 seconds to generate the graphs, I switched to a master-slave setup where the graphs could be generated on my web server, but the measurements taken from the Raspberry Pi on my home network.

Read more

Rough start with SmartThings

Posted at age 27.

Soon after I moved in here last year, there were a number of suspicious incidents in the shared garage. I’m told a rental car was stolen and later found by police, and another time a rummager took some items, including keys to some motorcycles. At least one of the incidents did not involve the door being accidentally left open, but we weren’t sure if they had a key or taped a lock open or something.

Anyway, it seemed some more theft might be imminent, so Paul bought a Nest camera and installed it in the garage. It’s worked pretty well, sending notifications to all our phones on activity in the garage. There are false notifications due to light changes from vehicles driving by, but it’s alerted me to the door being left open many times. One such time, we got the alert in the middle of the night and found a video of someone poking around. He took a few things, but we’re not sure what exactly.

Read more

Fast Fourier transform examples

Posted at age 27.

I finally got a fast Fourier transform working on an Arduino Due! This is not exactly a final product but just a documentation of progress. I am working my way toward beat detection, but am still getting a better feel for FFT processing and observing different types of music and beats. Below is some information about how I got up to speed, and at the end are videos of where I am now.

Listening to Superlove by Avicii and visualizing it with the free iSpectrum app

Listening to Superlove by Avicii and visualizing it with the free iSpectrum app" class="mt-image-none" height="1820

Read more

Sound reactive room lighting using Arduino and LED strips

Posted at age 27.

In a recent journal entry I said I would post more details on the lights I’m using in my apartment. I wanted to spend some more time on the program itself first, but the weekend disappeared too quickly, so that will be an ongoing process. For now, here are some parts lists and information on setting up. I’ll also try to make a similar post for my rainbow spirit hood.

Room lights diagram. Note the NeoPixels image has the data and +5V switched. The data is actually between the ground and voltage.

Room lights diagram. Note the NeoPixels image has the data and +5V switched. The data is actually between the ground and voltage." class="mt-image-none" height="2033

Read more

Generate nested redirects from CSV file

Posted at age 27.

One of my work clients is undergoing a migration from Movable Type to WordPress, and the decision was made to change the URL structure of basically every piece of content. While not ideal, this move can make sense, especially if the old structure wasn’t very future proof and started causing duplicate URL conflicts.

Read more

Runkeeper heatmaps

Posted at age 27.

This morning my friend Walter sent me a link to his cycling heat map on Strava, and it was pretty cool. Even cooler than my silly temperature + Fitbit history chart maker app, Weatherbit .

Update: Check out an example map from CityStrides.

Walter's cycling heat map

Walter's cycling heat map

This morning my friend Walter sent me a link to his cycling heat map on Strava, and it was pretty cool. I figured there must be a web service that creates these based on Runkeeper data, so I Googled "runkeeper heatmap." Apparently there isn't a readymade service, but the top result gave me exactly what I needed to do it myself.

Running heat map: San Francisco, California

Read more

Weatherbit: Discover how weather affects your activity level

Posted at age 24.

I don't remember exactly how I came up with this idea, but when I was looking at some D3.js powered charts, I decided to make something so I could play with them. Somehow I chose to try pulling my daily step counts through the Fitbit API and graphing it against temperature data. I found a neat weather data API, Forecast.io, and used my Foursquare history to determine which location to use for weather data each day. Once I got this working, I created a web page so others can create their own graphs. And I called it Weatherbit.

Screen Shot 2013-06-08 at 18.12.57.jpg

My Weatherbit chart

Read more

Item Grouper: Efficiently arrange things in groups

Posted at age 24.

My mom needed arrange for 18 new employees to meet each other via a series of group sessions of four groups meeting at a time. In order to make each session as long as possible, she needed an efficient set of combinations to have each person meet each other person in as few sessions as possible.

She ended up manually grouping all the employees and came up with a solution that required nine sessions, which is pretty good. But I wrote a program that solves her problem using only eight sessions. And it only takes a few seconds, versus the much longer amount of time to do it manually.

Screen Shot 2013-04-10 at 15.25.08.jpg

Item Grouper source code

Read more