Projects Archives
September gardening: Finally harvesting tomatoes!
September went quickly. I got sucked into my new classes, of which I am taking four: Second semester organic chemistry, first and second semesters of physics and physiology. It’s already intense. But over in the garden, some of the squash are starting to be fully developed. Most exciting, I have tomatoes! But they are very small!
August gardening: First cucumber harvest, and a lot more powdery mildew
In August I started to get some mature cucumbers and a few beans and zucchini, but not much else. I upgraded the tomatoes from 5 to 7 gallon buckets and added cages in that process using 4 inch square wire fencing.
July gardening: Aphids and powdery mildew
July is when most of the squash started growing well, and I realized I planted way too much too close together. I also started getting powdery mildew on the pumpkins and aphids on the kale.
June gardening: Transplanted more squash, first few mature beans
In June the potatoes and butternut and acorn squash really started to take off. Everything else I transplanted barely grew at all. I started to consider if I should plant fresh seed to avoid transplant shock.
Hoping my DIY acrylic flag outshines the polyester ones
It wasn’t quite as quick and cheap and easy as I was hoping, but I have painted a new pride flag instead of buying yet another replacement for the one that faded too quickly. Pictured at left is a 210D polyester flag flown about 12 months from June 2024 to June 2025. At the right is a much cheaper one flown about 6 months from November 2023 to May 2024.
Building a third garden bed!
The time came to use more of the 2 in. x 12 in. x 12 ft. boards to make a third garden bed. I realized the second one was already too high up into the shade to be very useful, so this one needed to go lower down the hill. I hoped to put it at the top initially, but now it will need to eat into my wood chipped dog chilling area. It also needed to cut into my drainage trench unfortunately, but not a big deal.
May gardening: Transplanting zucchinis, cucumbers and tomatoes
In May I finished transplanting seedlings into the first garden bed and tomatoes into 18 pots.
Building another garden bed!
The first garden bed ended up being nowhere as big as I thought once I actually planted things, so I built another one up the hill from the first. This time I bought new lumber from Home Depot, which was out of stock of everything I hoped for. I had to go with much larger 2 in. x 12 in. x 12 ft. boards, which were naturally much more expensive as well! But it turned out all right.
April gardening: planting potatoes and tomatoes
The rest of April’s gardening activities included starting potatoes, kale and butternut squash outside and many types of tomatoes inside.
Building a garden bed
Last week I got inspired to build a garden bed into my backyard hillside using some discarded fence boards and other wood lying around my property. It took me a while to decide where to put it, but once I got going, it was mostly done within a day. I’m quite happy with the space!
Not perfect downtown but another GPS win for Garmin 67i
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!
In flat suburbs with clear skies, Garmin 67i GPS far more accurate than Pixel 6 Pro, Fitbit Charge 6
I recently picked up a Garmin GPSMAP 67i off eBay to compare the GPS accuracy to that of my phone and my Fitbit Charge 6. Long story short, the results have been so wonderful I will henceforth carry an extra device heavier than my phone on every run and hike.
A loft bed fit for a king
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!
Flashcard text finally automatically sizes
Over the past few months of using Anki consistently, I have been trying to streamline my process of adding and organizing cards, as well as making them somewhat pretty. It has not been easy!
Setting Mac app defaults by command line
I had seen and run the defaults command many times on my Macs, usually in the course of following a tutorial to change some behavior Apple had removed the ability to easily modify. I never looked into the command much, but now that I did, I am glad I will be able to automate more of my setup!
Reefkeeping: DIY aquarium stand
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!
Iron filings and a strong magnet
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.
Sound reactive fur coat
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
Runkeeper heatmaps, part 2
Today I received a newsletter from Mapbox that linked to a tutorial for JavaScript based heatmaps. It looks pretty cool, and I wondered how it might look used to plot runs.
I wrote in November about Runkeeper heatmaps and a method to generate images from run data on a computer …
Router firmware madness
Two of my roommates let me know Friday the Internet sucked in the kitchen. I knew this used to be the case, and I suspected our metal framed kitchen table of causing issues, but I thought it was solved.
Raspberry Pi and Smokeping network monitoring
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.
SmartThings update: things working OK, coding slow
A few weeks ago I got addicted to installing SmartThings in my house, and I wrote of my initial woes getting that set up. This is just to say I managed to get mostly everything working as desired, mostly using the default provided “SmartApps”. I am still having consistent problems …
Rough start with SmartThings
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.
Fast Fourier transform examples
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.
Starting to experiment with sound on Arduino Due
I’m just starting to get my feet wet with the Arduino Due, which apparently can read from analog input a hell of a lot faster than the FLORA I have been using for sound reactive projects.
Sound reactive room lighting using Arduino and LED strips
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.
Sound reactivity restored to room lighting
The super cool lights I set up in my Tokyo apartment made the journey back to the United States, but they’ve been incapacitated after I was tinkering and then got slammed with work for months. I finally sat down to organize some of the code and get the sound reactivity back, and it’s better than ever!
Hardware details in a separate post.
The evolving rainbow ‘spirit hood’
In the made prep for Burning Man 2014, I went in with more knowledge than I had the year prior; I knew I needed lights. Now I have an ongoing project that is an exercise in programming and attempted durability.
Hackintosh: ASUS Z97-A USB 3.1, EVGA GT 740 4GB
As explained in my journal, I built my first hackintosh this week. While it’s functional enough, I hope, I still have some potentially major problems with the USB ports, lowering my confidence about using an external drive to store all my data.
Embedder for Chrome released
Today marks my first Chrome app release! Embedder is a Chrome packaged app for generating embed codes for Google Photos and Picasa Web Albums content. It is available in the Chrome Web Store.
Generate nested redirects from CSV file
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.
Runkeeper heatmaps
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.
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.

Weatherbit: Discover how weather affects your activity level
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.
Item Grouper: Efficiently arrange things in groups
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.
Who am I?
I am me! I’m also a scientist minded software engineer who loves reading, running, listening to music, and recording photos and videos and data of all sorts. After earning a biochemistry degree, I lived in San Francisco and Tokyo, and now I find it difficult to stay put. Read more about me and my online life.
Categories
- Adventures
- Comment
- Meta
- Post Type
- Technology
- All Posts
The Campaign Trail
-
SF: 87% complete; Oakland: 27%
San Francisco Bay Area running progress
Charlie says: “What a wonderful region!”
30 November 2022
-
In-N-Out Burger (Fast Food Restaurant)
333 Jefferson St , San Francisco , CA
Charlie says: “It was super hot and we got a taste for salty fries, but by the time we walked there it dropped 35° and was cold. Still tasted good!”
28 September 2020 at 20:32
-
Taqueria Zorro (Mexican Restaurant)
308 Columbus Ave , San Francisco , CA
Charlie says: “Restaurants are hoppin’ around here, feels weird.”
26 September 2020 at 19:42
-
碼頭老火鍋 (Hotpot Restaurant)
仁愛路四段409-1號 , Da’an District , T’ai-pei Shih
Charlie says: “Delicious spicy hot pot with Harry. I am so full!!”
25 March 2020 at 08:40
-
桶好呷滷味 (Asian Restaurant)
, Taipei
Charlie says: “We pick a representative set of ingredients and they build out the rest into a braised soup like thing over noodles.”
23 March 2020 at 06:46
-
Addiction Aquatic Development (上引水產) (Fish Market)
民族東路410巷2弄18號 , Taipei
Charlie says: “Standing sushi bar at a fish market.”
21 March 2020 at 07:03
-
ACME Breakfast CLUB (Breakfast Spot)
3F., No. 10, Ln. 27, Chengdu Rd., , Taipei
Charlie says: “Brunch w/ Shawn! Was tempted to get the avocado toast kind of as a joke since I never get it in SF, but resisted, sourdough was good. :-)”
20 March 2020 at 22:27
-
三甲和風創意料理 (Japanese Restaurant)
Charlie says: “Late dinner with Shawn, at a lovely place!”
20 March 2020 at 09:28
-
中央藝文公園 Central Culture Park (Park)
北平東路與紹興北街口 , Taipei
Charlie says: “Social distance.”
20 March 2020 at 03:42
-
虎頭山環保公園 (Scenic Lookout)
Charlie says: “Exploring the hillside in Taoyuan City.”
14 March 2020 at 23:49
-
Abura-Ya (Japanese Restaurant)
362 17th St , Oakland , CA
Charlie says: “Dinner with Beam before Sarah McLachlan!”
24 February 2020 at 18:55
-
Ramen Yamadaya (Ramen Restaurant)
1728 Buchanan St , San Francisco , CA
Charlie says: “Dinner with John and Alan”
04 January 2020 at 19:19
-
Taraval Okazu Ya Restaurant (Sushi Restaurant)
1735 Taraval St , San Francisco , CA
Charlie says: “Dinner with Alan and Emre”
28 December 2019 at 21:59
-
Tselogs (Filipino Restaurant)
11B San Pedro Rd , Daly City , CA
Charlie says: “John wanted to take me to a Filipino place. It was a quiet night but good food!”
30 November 2019 at 17:43
-
Golden Gate Bridge (Bridge)
Golden Gate Brg S , San Francisco , CA
Charlie says: “Visiting the bridge with Jay, whom I have not seen in years. Time flies when you don’t slow it down.”
16 November 2019 at 16:22
-
Buckhorn Grill (BBQ Joint)
619 Market St , San Francisco , CA
Charlie says: “Dinner with Beam! And needed somewhere I can pull out my laptop since I'm on call today and it's been a bit crazy.”
19 September 2019 at 18:54
-
Tank Hill Park (Park)
Clarendon Ave , San Francisco , CA
23 June 2019 at 19:26
-
Cafe Bavaria (German Restaurant)
7700 Harwood Ave , Wauwatosa , WI
Charlie says: “Nice puffy pot pie dinner with Tim and Mom”
19 June 2019 at 16:50
-
Spring Shabu Shabu (Hotpot Restaurant)
, Boston , MA
Charlie says: “Delicious last night in Boston!”
14 June 2019 at 19:14
-
Taiyaki NYC - Boston (Ice Cream Shop)
119 Seaport Blvd Ste B , Boston , MA
Charlie says: “Post team lunch snack.”
12 June 2019 at 10:11
-
Aceituna Grill (Mediterranean Restaurant)
57 Boston Wharf Rd , Boston , MA
Charlie says: “Falafel plate with tabbouleh and moussaka”
11 June 2019 at 09:35
-
Twin Peaks Summit (Hill)
100 Christmas Tree Point Rd , San Francisco , CA
Charlie says: “#walkSF to work day!”
10 April 2019 at 08:51













































