When I started learning about Golang templates much of what I read was around their syntax and feature set. It didn’t take long, but I found myself struggling to do things that struck me as being pretty basic. So I figured I’d write down a few things I’ve learned. By no means is this intended to be a proper (or even correct) howto on Golang templates, rather it’s just what I’ve learned so far.
Friday I was splitting wood and carrying some inside for the fire, when I noticed that the furnace thermostat said the temperature was 70 degrees. I find the process of splitting wood to be very enjoyable. It’s a bunch of work and it’s very satisfying. I also love a nice warm fire, so I pretty much enjoy the whole process. Somehow the thermostat failed to realize the effort I had made, as the room was for sure closer to 73 degrees, geesh… show some respect!
Long ago I had a website written in Cold Fusion, ASP, PHP, Python. I wrote a simple blogging feature and created content via a rich text editor. This was grand, but eventually I lost interest in “building a website”, but I still enjoyed writing stuff. I like writing stuff because it’s fun and it relaxes me. So I migrated my site to a static site using Tinkerer. I chose that tool because I was am a big fan of restructured text a tool called Sphinx.
Today I decided to perform a simple scripting task in Golang. One of the challenging aspects of coding with AWS is testing code locally. In AWS we usually use instance credentials for anything that requires permissions to AWS resources. This happens automagically via the AWS sdk when you run code within AWS. The trouble is that when you try to test the same code locally, it doesn’t have access to these instance roles - so you need to handle that.
I’m a fan of PagerDuty. I have used it for a while now and it’s great. I use the webapp, but I love the mobile app because I can quickly acknowledge tickets that I’m looking into, and I can quickly look to see if I missed anything. However the one thing I’m missing… are desktop notifications. Here’s the way it usually goes down for me: Get ready for work, and head to the (beautiful) office.
Over the years I’ve learned that as a person who writes software, I tend to gravitate towards the basics. I enjoy doing fancy things, but time and time again… I come back to the basics. What’s curious is that I often observe the opposite in those around me. I’ve been around countless people who focus on the technical challenge, they focus on the hard stuff, and ultimately they struggle with the basics.
The unfortunate necessary deed has been done: Update the site to be fully static (so s3 can serve it for me). Ensure the latest backups are on s3. Add dns entries to route53. Cut over the SOA record. Refresh the browser. Delete the linode instance (which never gave me a lick of trouble). Pour one out :/ One thing I did not expect was for Pingdom to have a complete hissy fit.
Today I finally started work towards shutting down my Linode instance. I have loved my time with Linode, but realistically I’m not learning anything there anymore. I’ve grown older, the things I’m learning are different… and I’d just rather put my stuff up on a cdn and not even have a server to deal with. So today I start the process of shutting off all the crazy stuff I’ve built up over the years.
Sunrise was at 06:16 with low tide at 04:43 and a first quarter moon with a moonrise of 14:53 and moonset of 23:54. Skies were very clear and started fishing at 05:45. Fished just south of the peer (a good fisherman could have easily casted to the bridge peer itself) on the east side with an incoming tide. Initially fished with a green clouser minnow casted downstream (south) and had an immediate strike on the first cast.
Ever had a situation where you want to send a file to a friend at work or something, and sending it over email makes you feel all dirty? One way to solve the problem is to copy the file into /var/www/foo or something and send a link… we’ve all done it. But there’s a better way :) Python can be used for web programming, and the language has builtin code for reference implementations of stuff.