samgrover.com

A black and white photo of a silhouette of a fighter jet flying high above white clouds against a muted gray sky.

Overhead. Portland, Oregon. 18th May, 2025.

This blog has moved over to a Hugo based site that I generate manually. I did most of the prep work over last weekend and just completed the finishing touches. I’ve started with a simple theme, and hope to build on it in the future. I’ve wanted to do this for a very long time and I’m glad to have gotten here.

It is now hosted on Github Pages where the feature set easily accommodates my needs at this time. I was trying to recall the journey of this blog, and from memory it seems to have gone this route over the last 20-ish years: Blogger, Wordpress, Tumblr, Wordpress, and lastly Micro.blog.

There’s a person in my wife’s run club whose aunt went to school with the Pope, so my Pope number is 4.

#PopeNumber

A wooden garden bed with rich soil, bordered by a path of cedar chips mulch, surrounded by young green plants, and a California lilac in the background.

Morning Garden. 1st May, 2025.

A fast food restaurant named “Chicken Connection” is in a mall food court. The counter displays illuminated menu boards featuring various chicken dishes. In front, there are empty tables and chairs on a tiled floor.

An indoor atrium of a modern building with a curved glass ceiling. There are multiple levels with railings, beige flooring, and a large planter containing tall green plants in the center.

Lloyd Center, Portland, Oregon. 9th May, 2025.

Three thoughts from a week of calorie counting on a low carb diet, with no pre-planning:

IBM replaces HR with AI:

International Business Machines Chief Executive Arvind Krishna said the tech giant has used artificial intelligence, and specifically AI agents, to replace the work of a couple hundred human resources workers. As a result, it has hired more programmers and salespeople, he said.

Replacing HR with AI seems like a positive development to make it totally clear that HR is there to protect employer, not employees.

A bee hovering near clusters of vibrant purple flowers with green leaves.

Bee butt and the bee’s knees 😄

Sunrise over a coastal town with a silhouetted mountain backdrop. The sun casts a reflection on the water, with buildings and trees lining the shore.

Sunrise over the hill in Kona, Hawaii. 22nd March, 2025.

Vibing Pi o'Clock

Vibing Pi o'Clock

An animation of a clock face where the seconds hand is jumping by a different number of places with each passing second.

When I wrote up Piterator.swift on Pi Day earlier this month, I was actually trying to do something with the values it returns but I didn’t get around to that fun part due to lack of time.

A few days after that I imagined a clock face where the seconds hand moves in jumps of the values returned by the iterator at the rate of once per second. So as the values start coming in like 3, 1, 4, etc, the second hand jumps by those many seconds.

I started to write the code for a Mac app but Quartz 2D drawing is not something I have ever really done, so it was tricky wrapping my mind around the coordinate system and laying out individual marks on the canvas.

Fast forward to yesterday when I decided to try out vibe coding for this project. As I got going though, it became more of an AI assisted coding because I started to edit it myself after a couple of initial rounds of code generation. Old habits die hard!

For this purpose I used the recently released Google’s Gemini 2.5 Pro via LLM, essentially as described in this post.

I was very impressed by the code generation. The first prompt I gave was for a static drawing, and it was thus:

llm -m gemini-2.5-pro-exp-03-25 "Write a SwiftUI View that draws a clock face on a Canvas. It should draw each of the 60 tick marks, with 0 and every multiple of 5 being a slightly thicker tick mark. It should also draw the time using an hour hand, a minute hand and a second hand. The second hand should be red. The time should be 10th hour, 10th minute, 30th second."

The result was exactly as I expected. It even improvised and put that little circle in the center which was a nice touch.

Then I gave it this second prompt which also included the Piterator.swift code:

files-to-prompt . -e swift -c | \
      llm -m gemini-2.5-pro-exp-03-25 -s \
      'Update the ClockView to make it animatable using TimelineView. Then hook it up to Piterator so that every second, the second hand moves forward by as many seconds as the number returned by the Piterator.'

This generated code that had a couple of small bugs that raised compiler errors. After I resolved that I had it working exactly as I envisioned it, and the whole thing took about an hour 🤯

All the code is on Github