Day 19: indulgence

Full disclosure: this isn’t the type of muffin I actually ordered. My goto is usually raspberry and white chocolate, but today the cafe made a mistake. Even so, I got to admit that this was nice. šŸ˜‹ #mbmay

A chocolate muffin

Booked flights yesterday for Canberra. Got my itinerary and confirmation email. Ok, good.

Then got an email offering “ideas” of places to go in Canberra. Then one welcoming me to the booking agent’s newsletter.

Stop! Guys, you had it right after the second email.

Day 18: random

Tails. #mbmay

Tails of a 20c coin

Day 17: hold

Holding my reusable cup as it’s holding my morning coffee. #mbmay

A keep-cup being held.

Currently reading: Build: An Unorthodox Guide to Making Things Worth Making by Tony Fadell šŸ“š

So far an excellent read.

Day 16: time

My kitchen clock, which occasionally breaks in such a way that it’s not even right twice a day. #mbmay

Day 15: clouds

Taken during the Summer, which is usually when we get our most interesting cloud formations. #mbmay

Watching the Google I/O presentation on Google Wallet reminds me of all the presentations I’ve watch over the years of products and frameworks that Google touted, then killed off. I wonder how long Google Wallet will last. šŸ˜•

Day 14: fence

#mbmay

Day 13: community

#mbmay

Cloud Formation "ValidationError at typeNameList" Errors

I was editing some Cloud Formation today and when I tried to deploy it, I was getting this lengthy, unhelpful error message:

An error occurred (ValidationError) when calling the CreateChangeSet operation: 1 validation error detected: Value ‘[AWS:SSM::Parameter, AWS::SNS::Topic]’ at ‘typeNameList’ failed to satisfy constraint: Member must satisfy constraint: [Member must have length less than or equal to 204, Member must have length greater than or equal to 10, Member must satisfy regular expression pattern: [A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}]

It was only showing up when I was tried adding a new SSM parameter resource to the template, so I first thought it was some weird problem with the parameter name or value. But after changing both to something that would work, I was still seeing this.

Turns out the problem was that I was missing a colon in the resource type. Instead of using AWS::SSM::Parameter, I was using AWS:SSM::Parameter (note the single colon just after “AWS”). Just looking at the error message again, I notice that this was actually being hinted to me, both in the regular expression and the “Value” list.

I know making good error messages take effort, and for most developers this tend to be an afterthought. I’m just as guilty of this as anyone else. But if I could make just one suggestion on how this message could be improved, it would be to get rid of the list in “Value” and replace it with the resource type that was actually failing validation. It would still be a relatively unhelpful error message but at least it will indicate what part of the template was actually falling over.

In any case, if anyone else is seeing an error message like this when you’re trying to roll out Cloud Formation changes, check for missing colons in your resource types.

šŸ”— A New Hope for Object Storage: R2 enters open beta

I’ve been looking forward to giving R2 a try for a while.

Is it really necessary for Amazon to prefix AWS services with “Amazon” or “AWS”? It’s not SQS, it’s Amazon SQS. It seems a little redundant to me. Maybe they’re leaving the door open for third party vendors to offer their services in AWS as well. šŸ¤·

Day 12: tranquility

Part of a walk I occasionally do, near Macedon. There’s nothing special about this particular spot, but I always feel at my calmest here. #mbmay

It’s developer conference video watching time again! šŸ™Œ The Google I/O videos are starting to come out, so I’ll be switching my TV viewing to these for a few weeks. Once I’ve gone through those, it will be time for the WWDC videos.

Failing to keep things simple in the software designs I’m responsible for seems to be a problem I keep running into. I’m always coming up with designs that are more complicated than they need to be, and once they come up for review, they always seem to be rejected for something much simpler that can get the immediate job done in a shorter amount of time.

Not that I’m offended by that: I don’t want my team building something more complicated than it needs to be. I’m just curious as to why I keep doing this. My current theory is either that I’m prioritising future extendability over immediate needs ā€” which sort of goes against the idea of “you ain’t gonna need it” ā€” or that I’m bored and it’s just an attempt to put together a design that seems interesting. I suspect that it’s a little of both.

Day 11: maroon

#mbmay

A deciduous tree

Day 10: pot

The plastic pot I received at the Ballarat Beer Festival in February. #mbmay

A pot glass with Ballarat Beer Festival on the front

This week’s earworm: TUNIC (Original Game Soundtrack) by Lifeformed Ɨ Janice Kwan.

Favourite track: To Far Shores. šŸŽµ

Day 9: bloom

A bunch of bloomin’ wattles. #mbmay

I use to enjoy reading tech blogs, like the ones from Slack and Shopify, that talk about some new framework or how they solved a certain problem. But now, when I look at them, I just feel exhausted.

Day 8: union

Had some trouble with this one today, so I thought Iā€™d hit it up in the textbooks. #mbmay

Managed to setup Wireguard VPN on my home network this morning so I can remote in when on the road. Very simple setup at the moment: only a single host is accessible and no DNS or internet routing. But quite pleased with it, given my lack of experience in network administration.

Day 7: park

The park in Benalla, taken last month during our drive to Canberra. #mbmay

Imagine that there’s an open source project that has some modest traction but only one maintainer, and that maintainer wants to make a small change to fix something. Would it be okay for that maintainer to make that change directly on main?

Not entirely a hypothetical question. šŸ¤”