Sunset over Apple Park, as seen from the Steve Jobs Theater. 5th June, 2023.
My heartiest gratitude to the people of Apple for their hospitality ❤️
Sunset over Apple Park, as seen from the Steve Jobs Theater. 5th June, 2023.
My heartiest gratitude to the people of Apple for their hospitality ❤️
Less than 24 hours left for my flight to California. A day in SF, then on to Apple Park in Cupertino. Starting to feel the excitement!
Our house has five steps to get down to the backyard. A few weeks ago, a board on the top step cracked on the edge. I added some blue tape to make it more visible until I got around to fixing it.
Soon thereafter I started working on a plan to fix it. The simplest thing would be to replace the board but many other boards are also not in good shape, so a fresh set would be best, especially since I may be getting some painting work done and a fresh coat on this could be added to that. Once I decided to go with that I felt like I had to address the fact that the treads are held up by two stringers, and there really ought to be three. This was starting to feel like yak shaving but I hadn’t taken on a project like this in a while and it was appealing to spend the time to do it right.
So my plan was to remove the treads, measure out a new stringer to go in the middle, cut it out of a 2x12, attach it and then put a whole bunch of fresh boards, probably also adding risers. After talking to friends and looking at some videos it seemed like reasonable idea.
Yesterday I got to it. First I removed the treads. I noticed that the bottom of one stringer had a crack and was about to come apart. I drove a couple of screws to reattach it. This was the first new issue I noticed. I also noticed that each stringer was resting differently, the concrete seems to go around one, but under the other. That was the second new issue.
After removing the treads I measured out the stringers and this is what those measurements were like. As you can see, there is not much consistency between the two, including the fact that the first step from the ground was not only wildly higher than the others, it is also well over the building code. These were the third and fourth new issues.
Nevertheless I figured out measurements and marked it on the board but that didn’t look right. I did it again. Something was still off. I looked at the stringers closely and noticed a fifth new issue.
For whatever reason the builder had removed extra material from each corner of each stringer so the angles weren’t square. That was the last straw. At that point I decided that there were too many issues with leaving the existing structure intact and that the more reasonable thing would be to just rebuild the steps from scratch.
I put the treads back while moving the cracked board to the bottom tread so it was out of the way where it would cause any harm. I also cleaned it up a bit and applied wood glue for good measure. All of this is a temporary measure until these can be rebuilt either by me, or by someone I hire. Will report back after that!
Some time ago I wrote about a simple app I made to export routes for workouts so that I can embed them in blog posts, or Google Maps.
Well, I kept making improvements to it to the point that now it looks like an interface to my workouts that I prefer over the standard one from Apple (like supporting light and dark modes 🙄).
What do you think? Would you be interested in using it? Should I start a beta so you can share how you really feel?
P.S. Many of the map tiles are blurred because one of the features of the app is to enable blurring them out if they contain any user-defined private locations, e.g. for sharing such a video, or a screenshot.
This time around I was unexpectedly busy around Micro.camp so I missed out on pretty much the entire camp, except for tuning in for a brief moment on Friday. Hoping to catch up on all the videos this week.
Sights from a walk in the neighborhood.
A couple of weeks ago we went hiking at Lacamas Park in the city of Camas, about 20 minutes drive from Portland. This was our first time there and it was a lovely hike in a park that is well maintained and has lots of crisscrossing trails.
A few times I got the feeling of being farther from the city than we actually were, like when the trail drops down to the base of a waterfall.
We even spotted some trilliums!
You can get right next to the water, so this one might be worth revisiting on those hot summer days.
Distance: 3.38 miles
Elevation Gain: 450 ft
Time (including breaks): 1h 56m
It’s the colorful season.
Jenni’s tiny air plant has a super tiny flower. Fountain pen nib for scale.
Our poofs have arrived.
In the last week I used ChatGPT to replace three text manipulation scripts I used on and off. And yes, I spent hours writing/maintaining those over the years.
I also used it to aid in creating a new shell script.
It was disgusting/wonderful how straightforward all that was.
The latest version of Mimi Uploader is out. This one was a long time coming as the beta cycle started over two months ago. I just had several other things taking my time. Thank you for your patience.
Here’s what’s new:
Get it from the App Store!
The bespectacled PNW life
Time to check those teeth.
Rosalie has been driving a Checker since 1964. Her dad owned the 1964 model but at some point traded it in for the 1978 model. She inherited it from him and still drives it to this day.
I was walking by with my camera, noticed the car and took a few photos. She noticed me doing so and came out to talk to me about it. It was great to hear her story and to get a glimpse into her love for the car and their story together.
Reservoirs at Mt. Tabor. Portland, Oregon.
Film: Kentmere PAN 400
Camera: Voigtländer Bessa R2a
It was as if the AI had cast 21st century Americans to put on different costumes and play the various cultures of the world. Which, of course, it had.
Love articles like this that show how much bias lies within these generative algorithms. Biases that run so deep that they are not even talked about in social conversations.
Jenni and I got engaged a few days ago 🥰
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.
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.
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.
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.
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.
Both these presentation styles are far more interesting to me than just a low resolution image out of the Fitness app.
Film: Kentmere PAN 400
Camera: Voigtländer Bessa R2a
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.
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
#iosdev