I have to make a confession. The biggest reason that I love using AI agents to write code is that I just want to get to the outcomes quickly. Sure, I have to check the work of the robots, but it's faster than me writing it, even with robust auto-complete. I know a lot of engineers feel pride and excitement about pecking out solutions to stuff, but if I'm being honest with myself, I don't think I ever enjoyed it.
That said, if AI hit at the start of my career, I wouldn't be where I am.
I fear that there's a structural problem with the use of agentic coding. I'm not suggesting we don't use it, far from it. But I am saying that we could have a problem with the up and coming folks if they're uninterested in what's actually happening with the code. That's how I was when typing was the only way to write code.
I think I was a little slow to really understand object-oriented programming (or scripting for that matter), because my entire incentive for learning in the first place was to get to the outcomes I wanted. I started as a media guy who just wanted to put stuff on the Internets, so programming was a means to an end. I just happened to turn it into a career. It took years before I felt like I was "good" at it, and even when I felt competent, my output was so much lower than my peers because of my then-undiagnosed ADHD. If I had AI back then, I doubt I would have gone very deep on what the machines wrote, as long as it worked. By extension, I would have never gained an appreciation and love for system design, the part that I enjoy the most. In other words, I'd be a vibe coder that didn't know how my stuff worked.
That puts us in a weird place. If we're not mentoring and coaching our junior devs, who will be the senior devs of tomorrow? LLM's are just sophisticated word guessers, and they get worse if they're training on their own output. (Is there a term for this? The thing where LLM's get racist and generally worse without bona fide "good" input?) The trust and verify approach is going to be with us for a long time, and when something breaks, good luck blaming the AI. Going back to my own focus on outcomes, nobody cares... customers, users, stakeholders... if AI wrote the code, they just want a working system.
I spent a little time replacing the easy-to-reach pinball rubber bits this afternoon. There are others to swap out, but they require more disassembly of plastic layers to get to, so I'll wait a bit. Most urgent were the slings, which were cracked and shedding, and the post sleeves between the various ramps. They were in really bad shape. I decided it was time because I could see them disintegrating, which I'm sure contributes to the quickly reoccurring dirt. We've already had 2,644 games played, so well on pace for 5k before the end of the year. I bought silicone replacements, which last longer, though purists apparently don't like those. Meh, they seem about the same to me.
Once again, I point out that pinball maintenance is very therapeutic, if fixing stuff relaxes you. It's such a great combination of electronic and mechanical stuff. I imagine that they're a ton of work in a commercial environment, but regular cleaning and attention keep them running tip-top. I'm sure the first big replacement will be the flipper linkages, but for now they're still pretty firm.
Also, today I exceeded 1 billion points for the first time.
With all of the drama right after we returned from our latest cruise, I completely neglected to write down a few thoughts about the new Disney Destiny. This is the third of the Triton or Wish-class ships. The general layout and function of the spaces is about the same, but the decor and theme is very different on each one. We did the Treasure in August, and it remains our favorite of the three. It's just the level of detail in the mid-east themes on that one that level-up the decor. I like the various carpet designs and what not, too. The Wish is nice too, it's just not as good as the other two.
The grand hall on Destiny leans into the design found in the Black Panther movies. Literally every detail refences something from that movie, and if you take the tour, they'll point those details out. But it's super lame that none of it is made out of vibranium. Just kidding, that's not real. The overall theme is attributed to heroes and villains. This makes a lot of the art extra unique (there are thousands of pieces on every ship), and it serves as a backdrop for many of the venues. Saga, the two story "Luna" venue, continues with the Wakanda-inspired texture, and I really liked that area. The open "family" bar on this one is called the Sanctum, referencing the Dr. Strange movies. The dinner theater venue is Lion King themed, and the music borrows heavily from the stage show's African themes instead of the movie pop music.
I don't see a lot of point in getting into all of the details, because they don't differ enough from the other ships. We did see no less than four previously known bartenders on this one, and it's always fun to catch up with them. A lot of things had new-ship smell, so it's kind of neat to be among the first few folks occupying a room, for example. There's a thing where they produce these wooden mock-ups of each ship, and we collect those. We now have the entire fleet, except for the Adventure, which I'm not sure counts. It's a one off thing, a ship designed for a defunct company, that they Disney-fied and sent to Singapore. It doesn't go anywhere, it is the attraction. So it's kind of like a resort and park at sea. I doubt we'll ever see that one. If I'm going to go to that part of the world, I'm not going to spend days at sea not seeing stuff.
It's worth noting that this one departed from Ft. Lauderdale, which is a new port for us. We drove about two-thirds of the way down the night before and stayed in a hotel. It was mercifully a non-event as far as travel and teen behavior goes. The terminal itself is pretty awful. It gets so loud in there, and this was also the highest capacity that ship has seen, so it was crowded (spring break in Florida). I was just pissy and angry when we disembarked, I guess not for any specific reason, other than maybe knowing we had to drive three hours home.
I wish we had better ports. Cozumel is a dump, and I much prefer the newer Disney island over Castaway. Not that it mattered, because the weather was pretty bad, and we didn't even get off. That's like three straight cruises of suboptimal weather for the beach day.
Next up is Wish again, and we're going VIP, because we deserve it and it's our 19th first-date-aversary. Just learned that next summer they're sending Wish back to Europe for drydock treatment, and having the Dream service Canaveral for the Bahamian itineraries. I'm a little nostalgic about that, since it was our first cruise ship, the one we had in Europe and 16 itineraries overall.
You know how people talk about "recharging your emotional batteries," usually in reference to a vacation? I'm convinced that it's not a thing. I think the constraint is bandwidth, not storage. My therapist might even agree with me.
Humans have to endure a lot of things, and so many of them are psychological. I don't think that exposure "drains" something, per se, but I do believe that there's a limit to how much you can take at any given time. When you reach that limit, you kind of turn-off, melt-down or otherwise feel like you're imploding. I think the threshold is definitely different for everyone. It seems pretty low for my kid, but then everything feels like a crisis when you're a teenager. I used to think that mine was pretty high, but the volume of challenging things in the last month or so has been brutal. I've just wanted to retreat into a cave and not come out. The recent vacation didn't help.
So if you can identify the bandwidth problem, it follows that you should be able to come up with some kind of coping skills. Backing off of social media (except for TogetherLoop, of course) helps. Limiting your news intake, too. It's the things that you can't get away from, like parenting, or seeing your spouse hospitalized, that can get to you. They certainly have caused me to struggle.
Since I've completely over-committed on my various online projects, I have a lot of spare capacity. CoasterBuzz, PointBuzz and POP Forums all run on cloud resources that are intended to not be down, with redundancy and overhead to spare. TogetherLoop uses all of it. Here's a brief rundown of the various bits.
The one new thing, and I'm not married to it, is using Azure Front Door for the app itself. The client is a Blazor WASM app that weighs in at around 13 MB on first load. Cached, it's not even 100 kB, because there's nothing but the payload for the home page. And if that sounds like a lot, you should know that The New York Times home page has about 40 MB, and even cached it pulls 31 MB. Completely ridiculous. And my load buries Instagram's web interface. In any case, Front Door obviously georeplicates the static files around the world, since it is a CDN, but more importantly, it offers a lot of control over headers and such, so I can make sure that the app is never stale. This is costing an extra $20-something a month, but it's stupid fast.
The backend API is actually split between a regular Azure app service (two nodes) and a series of Azure Functions. The functions do a lot of async work, like processing photos and video, recurring billing (eventually), notification processing, etc. But they're also the key to scale for uploads, because the app service would certainly run out of memory quickly, even using streams. The app service is handling all of the JSON payloads you'd expect from an API, which also has no wake-up lag in responding, as the function do sometimes.
The media is all served directly out of a storage account. Technically these have no permission controls, but the URL's are all not guessable. So for them to be seen by someone who shouldn't, that's on your crappy friends. I can change this at some point easily enough, if I need a permissions layer to proxy, but that's a future improvement, maybe. I also have a policy where the media is downgraded from hot to cool after a few months, to save on costs.
I've got Redis serving as a message bus, to feed processed notifications back to the API nodes, which in turn uses web sockets (SignalR) to let the client know that something is new. The direct messaging uses web sockets as well, and is kind of a port from POP Forums, though that app uses mostly custom Typescript web components instead of Blazor.
Friend searching is through Elasticsearch. Searching for folks through SQL isn't great, and we don't need table scans slowing things down. In this case, it's using some fuzzy matching on name, or exact matches on email.
The primary data store is Azure SQL, because everything else using it so ridiculously tuned that average usage rarely gets over 3%. Sure, it's possible to outgrow that, but I need tens of thousands, maybe hundreds of thousands, of users to get there. Even then, there are a lot of pre-compute tricks I can use to help with performance.
Everything except Front Door is stuff that was already running for the other sites. Functions are technically their own cost, but I'm not stressing about those extra cents per month. Elastic is running in Azure but run by Elastic itself. The various forum indexes all live there, and it too is underutilized.
In the event that I can grow this thing into something, it's a solid foundation. Certainly a lot of premature optimization. I don't hate sub-50ms API hits from where I live.
Have you seen Paradise on Hulu? If you haven't, do your best to avoid learning anything about it, and watch it cold. I binged the entire first season in a day, because I couldn't look away. Now that the second season has wrapped, I'm just in awe. It's hard to pin it in any specific genre, and as long as you don't know too much, it just keeps surprising you for being something that you didn't expect. Also, Sterling K. Brown is a legit great actor. I enjoyed his work in This Is Us, and it wasn't a fluke. He's good.
I don't think a show like this could have made it in traditional, linear network TV. I'm grateful for that. Most of the best stuff right now wouldn't have made it on network, which is weird because for so long that was the prestige spot. Then again, HBO set a new standard, and that standard translated well to streaming, specifically HBO Max, Hulu and Netflix (with honorable mention to Apple TV+). Hard to see how all of the consolidation shakes out, but it's a great time for good TV.
For a few weeks, I've been putting off dealing with a problem in my fridge. It's icing up in one corner behind the drawers. But yesterday I really needed a project to break up the day and give my head a break.
From what I could tell, the ice in one area meant that the system itself was probably fine, in terms of thermistors, fans, compressors and such. I found a diagnostic card online, and ran through the various functions by pushing weird key combinations on the freezer door. Everything returned normal. I could hear the fan whir up when it tested it, too. The Internets suggested that localized ice and good diagnostics likely mean long-term humidity exposure and possibly a door seal leak.
I busted out Diana's hair dryer and melted all of the ice after taking off a cover inside, and shop vac'd the water out. Everything was cooling as desired when I was done, and I took what seemed like a win. I guess I won't know until time passes.
It seems like appliance repair is so expensive that replacement is a better option, which I hate because things shouldn't be so disposable. Most appliances are pretty simple machines, and anyone can get parts on the Internet. I've replaced the ignitor on two gas ovens, the latter of which was only a year old. I've replaced the control board and gear box gasket on our KitchenAid stand mixer (leaking lube killed the board). Our LG clothes washer sprung a leak a few years ago, and I replaced the water valve assembly inexpensively. I wonder about the washer and dryer, which are now 15-years-old. Feel like I'm beating the odds.
I really value simplicity and serviceability in everything. Unfortunately, it doesn't seem like many things are made that way anymore. Maybe they never have been during my lifetime.
Just before we embarked on our Destiny cruise, Diana got an offer for a new job. It's very exciting. She's going to work for the new Blue Man Group location here in town, in another front-of-house role. That means she's leaving DPC after 11 years, an incredible run, but there were a lot of good reasons for the change. It's not the worst thing either when her husband and son are also big BMG fans. The company is now owned by Cirque du Soleil, which seems like a pretty good employer, based of course in Canada.
I, however, am still looking. Admittedly, I wasn't trying very hard for that first month, but that means that I have been looking actively for the nearly two months since. It's rough out there. Granted, the level that I'm at suffers from a certain level of scarcity anyway. It's strangely exhausting to feel a sense of urgency all of the time, when you can only do so much in a day to try and land something new. We have a ton of financial runway, but honestly it's not the money that concerns me. I just want to get back to leading a team of makers. That's satisfying, and gets me up in the morning.
For now I'm spending a few hours a day on TogetherLoop, which I just opened to signups without invitations. Eventually I'll flip it to a subscription model. I have to get to writing that code now though, in case it accidentally gets popular. I don't see a reason why it would, but you never know.