Things that interest me.
This past weekend I took a visit over to a small park in town called Atkins Glen and was pleasantly surprised. I had heard of the park before but never took the time to visit. It is a small park with one short trails but it was worth the visit. It was a nice slice of nature right in my backyard essentially. It gave me a place to go for a short walk and take some photos and just connect with nature.

As someone who generally wants to know what happens under the covers when a button is pushed, I decided to take a different approach to Generative AI. This was the first time I decided I did not want to know how it worked and just wanted to be enamored by how I could use it to enhance my life both in/out of work. I am a software engineer by trade and have a young child so my interests were also how the world will change, which in turn means how different I would have to raise a child. I decided to use Claude by Anthropic as my AI of choice. I have used ChatGPT and found it no as powerful in its capabilities related to code generation. I also wanted to see how a different model would perform, and I was not disappointed at all with my choice. I do think there is a basic learning journey though that will be helpful in getting started that I wanted to share. I follow a four step process which I will detail. Step 1 was to just use the Web UI to and copy/paste into the IDE, Step 2 was to use the in IDE Agent mode, Step 3 was to build on top of that and use Sub Agents and Step 4 which is a work in progress at this time is to create a workflow app with multiple autonomous agents. I would say by the time I got to Step 3 I was really sold on the power that I am able to type a single sentence and get a POC app in minutes, and even get it deployed to my local Kubernetes cluster in short while after that. I will add more along the way but want to give a quick update on my journey so far.

It has been quite a long while since I went out on a photography adventure. Last weekend I took a trip up to Lake George, NY for a short trip to do a bit of hiking and photo taking. Some irony to this trip is that I have been there before and had a mishap while hiking a trail and missed the turn to get on the summit path, only to get lost taking photos and find out an hour or so later. This time around I was determined to get some good photos and summit the mountain in one pass. So the day started with sunrise which you can see below and was immediately followed up by a hike, so off we went, took the right turns and made it to the top, what a glorious view and feeling. On the way up we passed and were passed by a few groups, reaching the top one of the groups emerged from behind us as we were sitting and staring a the view. A member of the group proceeded to tell us that there is another summit a few mins further away at which point we realized, we had never made it the actual summit on the first trip. This time we took the last few minutes on the trail and made it the actual summit.

Generics are a thing I never really got, even when people tried to explain it to me. It took a small implementation to figure it out and all click together. I tried some earlier versions of Go Generics which did not seem to support using custom structs unless they shared a common property name which made the idea of a Generic function not so great. When I tried the next version after that I found that it worked great for native types, but again for custom structs it still felt a little strange to me. I tried an implementation using a interface to define a set of structs that met it and then some Generic functions on that interface, but that still felt strange to me. Finally in the GA version I found something that made sense to me, a truly Generic package that is completely type inaware and can take any type as an argument. Here is a super basic in memory cache with a simple get and set operations. You can instantiate a cache of any type you want and store entries in it and retrieve them. When you get the item back it will be in the proper type with no casting needed. I want to do some more exploring with this space, but so far this feels more interesting and less complicated than it felt earlier.

I often feel challenged when writing code to keep things simple versus going for unecessary astractions upfront. I saw this diagram and thought it was neat as it expressed how I feel.

Welcome to Words About... Things that interest me. It is a place to put up some words about things I am interested in. The server running this site is a fun project which I am writing from scratch, mostly for practice. Hope you enjoy. Fly.io is also super cool and you should check it out.