The Aptly Named, Sam's Blog


Jenni and I got engaged a few days ago 🥰

Selfie of me and Jenni with a background of driftwood and the Pacific Ocean. A sparkling ring is visible on her hand.


Interior of a brewery hall with tables and chairs in the foreground and a large mural on the back wall. The mural depicts a brewery and bottling in operation with a number of people working on various jobs.

Always enjoy seeing this mural at Assembly Brewing. Also love their food, beer and service. Great spot in our neighborhood 👍


On a scale of 1 to 10, the entropy of my home office and the desk therein hovers between 4 and 8. Currently both are at about 8. Each time I organize, I try to get it below 4 but it never happens.

An App for Mapping My Outdoor Activities With Apple Watch Using GPX Tracks


I use an Apple Watch to track my activities, whether that be workouts or recreational. For outdoor activities, the watch records location data throughout the activity. This is later shown on a map in the Fitness app on the iPhone. While that map is interactive, exporting it only exports a low resolution image, and not the actual route.

A walking track is overlaid on a map.

When I share an activity on a blog post I like to show the map but I don’t like the idea of just sharing an image of the map. I would like to get the actual data out so that it can be overlaid on an interactive map using various mapping tools.

I found an app on the App Store that can export the data, among many other features, but I wasn’t keen on paying a subscription for this one small occasional use case. As an app developer, I know that access to this data is controlled by the Health related privacy settings on the iPhone and is accessible using the HealthKit framework. So I decided make a small app to get this data out while also gaining familiarity with that part of the iOS SDK. A few weeks ago I got started on it. I worked on it in small chunks of time, as I usually do with such side projects. The UI came together pretty quickly as a SwiftUI app. It is nothing special but looks presentable and gets the job done.

Screenshot of an app showing a list of workouts with options to fetch and share the route from some of them.

It took just a little bit longer to get the data out from HealthKit. Converting it to GPX files was straightforward. Once I had created a file I could use the share sheet to get it into other apps or to simply save it. From there it can be imported into tools that put it on a map.

For example, here’s a GPX file of a walk at Mount Tabor Park. It can be utilized to create an embedded map as shown below.

See full screen

Or even into Google Maps. In fact once imported there, you can view the track with elevation by selecting the option for Google Earth and enabling the 3D view. I love this option as it adds another dimension (literally 😂) to the activity.

Screenshot of track on 3D view from Google Earth.

Both these presentation styles are far more interesting to me than just a low resolution image out of the Fitness app.


Grainy black and white image of a view through a window to an arbor in the yard. The window has blurry reflections of a geometric pattern.

Film: Kentmere PAN 400
Camera: Voigtländer Bessa R2a

Adding API Accessible Devices to the Home Climate Monitoring Setup


I was thinking about getting more of those AcuRite sensors for expanding my home climate monitoring when I realized that I already have a couple of devices recording this and other data.

Screenshot showing charts of temperature, humidity, and air quality time series.

These include my Ecobee Thermostat and Remote Sensor and my IQAir AirVisual Pro. Both of these have means of getting the data off of them using an API. This blog post by Den Delimarsky really helped with the IQAir API. Ecobee API was straightforward. And after some coding and testing, I had a couple of scripts running that could pull metrics from them and send them to influxdb. So now I have a few more data points for existing metrics, and have added air quality to it.

In the previous blog post , I wrote:

I’m going to take a break from any further optimizing/tweaking for now.

Well, that didn’t happen! But maybe now 🤔

P.S. The screenshot above illustrates a few other things:


The Unfocused iOS Developer Life

A screenshot of four identical squircle icons containing a geometrical pattern.



PSA: Thirty days left on the DarkSky API. Port your apps, port your scripts!

Home Climate Monitoring


Sometime last year my friend Andrew made me aware of the sensors and software he was using to monitor temperature and humidity in his home. I thought that was cool and it introduced me to several hardware and software tools that I had not known about. I wanted to set this up at my home so I filed a project for a later date.

Well, that day arrived a few weeks ago and here’s what it looks like today:

Screenshot showing charts of temperature and humidity time series.

To get started exploring this I purchased an AcuRite bundle of three sensor towers and one display. I set up the towers around my home and put the display in my home office. It was neat to see the display showing the measurements at any given time. Soon I wanted to go to the next level and record and see the data over time.

These sensors broadcast the data over 433 MHz and there are consumer level antennas and software available to read this data. I bought a NooElec bundle which gave me all the hardware I needed to receive this data on my computer. Setting it up was straightforward. I used rtl_433 and was able to start seeing the wireless data immediately in the terminal on my Mac.

The next step was storing all this data. That’s where influxdb came in. And the glue to get it from rtl_433 to influxdb involved MQTT and telegraf.

There was a lot of trial and error but I finally got it all set up and was able to get the data into influxdb. I even made a dashboard in there to visualize it. The options on that dashboard were limited so I got grafana set up and built a dashboard in that which can be seen at the top of this post as seen on my desktop browser. It also looks great on mobile devices.

Except for rtl_433, the rest of the tools all run on docker on my desktop Mac. At some point I may migrate that off to a Raspberry Pi but for now it’s all working and I’m going to take a break from any further optimizing/tweaking for now.

Update (6th March, 2023): Follow up post about expanding on this effort.


I had no idea that that name had such an association and am glad that they are making this change.

What has been dismissed, ignored, or overlooked until the last few years by both Portland Audubon and the larger Audubon community is the fact that John James Audubon enslaved and sold Black people, opposed the abolition of slavery, and dug up and stole the human remains of Native Americans from their graves.

🔗 Portland Audubon Commits to Dropping the Name Audubon - Portland Audubon


Momo (a buff tabby cat) sleeps on a colorful blanket on a greenish blue sofa.


📽️ Over the weekend we saw the 2023 Oscar Animated Shorts at a local theater. That was the first time I had gone to see something like that and it was quite enjoyable. Most of the films are a delight. The theater had cozy seats and serves brunch so that made it a little extra fun.

Screenshot showing the names and images of the short films: An Ostrich Told Me the World Is Fake and I Think I Believe it. Ice Merchants. My Year of Dicks. The Boy, the Mole, the Fox, and the Horse. The Flying Sailor.


It’s been a bummer to notice that Amazon Smile doesn’t exist anymore when I try to browse to it. This post however has a different and optimistic take on it.

But this complaint only starts to address the problems with AmazonSmile, and the reasons I’m not sorry to see it go.

🔗 The End of AmazonSmile Is an Opportunity for Nonprofits to Revisit Their Values


Snow Day Walk in the Neighborhood

Jenni stands on the sidewalk with one foot deep into the snow on the ground. There’s snow on everything, lit by the sunset.

A house lit by the sunset. There’s snow on everything.

A house lit by the sunset. There’s snow on everything.

Jenni stands in front of a house lit by sunset light. There’s snow on everything.

A parked van is backlit by the sunset light. There’s snow on it clumped on its features. There’s snow on everything else around as well.

Two teenagers run across the snow packed street and sidewalks with shovels in their hands. Behind them are houses and the sky is lit by the sunset.

A street with snow all over the ground and the houses nearby. A breeze spins up some snow which glows in the light of the sunset.

Looking down at my boots in the snow with the sharp light and shadows of the setting sun.


Snowy sunrise views, and the backyard in late morning.

 Melting snow on the window refracting the golden light of sunrise. Blurry view of roofs and trees behind.

View of snow capped roofs and trees in the foreground. A rising golden sun on the horizon and cloudy sky above.

A backyard with snow everywhere. Partly cloudy sky.


Silent Disco at the Portland Winter Light Festival

I took a couple of photos of these guys and visualized them morphing into one another so I asked Jenni and she made this animation 😍

People dancing at a silent disco in a dimly lit space with bright pops of colorful lights.

An out of focus image of blurry blobs of color and bokeh on a black background.

DJs at a silent disco in a dimly lit space with bright pops of colorful lights and a background wall of graffiti.

An out of focus image of blurry blobs of color and bokeh on a black background.


A couple of sunrises over the last week.

Sky with clouds having orange, red, and yellow hues with a hint of blue. Lower half of images has silhouettes of trees without leaves.

Sky with clouds having orange, red, and yellow hues with a hint of blue. Lower half of images has silhouettes of trees without leaves.

The Origin Story of Walmart Labs in Portland


Today I came across this Silicon Florist article about the closing of the Walmart office in Portland. It’s definitely the end of an era.

After reading it, I couldn’t help but clarify a few things about the origin story 😬

Quoting from the article,

For a town that has been less than welcoming to Walmart, it may be a bit of head-scratcher how they wound up with a regional technology office here. The answer, like so many other regional offices in town, is through acquisition.

Acquisition, yes, but not the one of Small Society as the article alludes.

In April 2011, Walmart Labs acquired Set Direction which had been building the Walmart iOS app, and more. At the time Set Direction had one employee WFH in Portland. Next month I joined the team.

A short while later we hired a third person and rented a conference room at Collective Agency’s first location in NW Portland. When our team expanded to five people over a couple more months, we moved into the first proper Walmart Labs office at One Main Place in November 2011. During that time we built and released the first few versions of the native iOS SDK based Walmart app.

Quoting again from the article,

After being acquired in 2012, Small Society took on the moniker of Walmart Labs, serving as a regional technology office for the retail giant and continued to be a presence — albeit a much quieter presence — within the local startup community, even taking up residence in coworking spaces around town.

Walmart Labs existed in Portland for the better part of a year before the Small Society acquisition in January 2012. And while Walmart Labs worked out of a coworking space for a few months, Small Society (as part of Walmart Labs) never did. After the acquisition they continued to operate from their existing office.

For eight months Walmart Labs was split across two offices until we all moved into the space above the erstwhile Rock Bottom Brewery (2nd and Morrison) in September 2012.

Edited to clarify: During recent years Walmart Labs did move into a coworking space but that was long after all the original people had moved on.


macOS app that can never remember what I was doing last time I used it even though I really wish it did: Music.

macOS app that always remembers what I was doing last time I used it even though I don’t give a damn: Contacts.


Mechan 42: Space Explorer.

Black and white photo of a public art installation of a 17’ tall robot on a 4’ platform holding a star in its raised hands. Foggy morning scene with a bridge behind and the Sun above.


An out of focus image of blurry blobs of color and bokeh on a black background. A couple of the blobs resemble heart shapes.


Hey folks, another beta cycle for Mimi Uploader is now commencing. I expect this to be mostly bug fixes. First fix is for that annoying issue in the alt text editor where the text you’re editing goes under the keyboard 😬


Just how much Mastodon has taken off and continues to grow is quite evident by the fact that I felt compelled to import my mute list from Twitter today.


Went out for some jazz last night 😊

Jenni skimping and looking at me with a cocktail in front of her on the table. In the background are people and musical instruments and mellow lighting of a jazz club.


An afternoon walk at Oaks Bottom on a freezing cold (but sunny!) day last weekend.

A woman stands on a rock on the edge of a pond. She’s dressed for a freezing cold day. There’s green grass in parts of the pond and trees behind which are reflected in the pond. Everything is lit with sunlight and shadows.

A fallen tree on the bank of a river, with its top submerged in the water and it’s base in the foreground showing roots. Lit by the low afternoon winter sunlight.

A sailboat in the middle of a river lit by the warm glow of winter sunlight. There’s a US flag on the boat. Fore ground and background river banks have trees without leaves.

A bush without leaves with white berries of some kind on it  scattered sparsely. Trees in the blurred background.