Weeknotes - 2020-10-03
Not So Weekly
It turns out that adding one more things that I feel I am required to do each week was not terribly helpful, so these fell off pretty quickly. I am still going to try to do this weeknotes idea, but they may really be more like monthnotes at times.
So it's time for Hacktoberfest again. I know I should contribute to real FOSS projects for this, but with a full time job and two young kids, contributing to real projects at any time feels like a pretty high level of commitment. Instead, I take the …
Weeknotes - 2020-08-30
Learning more about AWS and Terraform
This week I got to dig into using Terraform to configure AWS Cloudwatch alarms for their ElasticSearch service. Overall it was easy to configure in a nice reusable manner. AWS even provides a list ofrecommended alarms which makes it easy to pick what to alert on. The only real issue I ran into is that the sns topics for email alerts cannot be configured via Terraform. It's not a huge issue, but means you can't just have Terraform create those, they need to already be there.
I also got the chance to play …
Weeknotes - 2020-08-23
Injury and Healing:
Since my rotator cuff injury riding in Guts, Gravel, Glory 2020 I have ended up with several weeks of physical therapy. With the therapy I have been gaining tons of range of motion and strength. This past week I was given the ok to start running again, as long as I take frequent breaks to make sure my shoulder is loose. I have been able to jump right back in running 6.5 to 8.5 miles 6 of the last 7 days. I stop every mile for a 2 minute break where I roll my shoulders and actively …
Weeknotes - 2020-08-16
Notes for the week beginning on Sunday, 2020-08-16
Upgraded the blog to Django 3.1 and Wagtail 2.10. In the process I discovered my middleware ordering was all out of whack and corrected it. I also began adding OpenGraph tags. I had removed Google Analytics a long time ago just to do what little I can to stop feeding information into Google, but I did want some analytics, so I am testing out clicky.com for now. I may eventually just host my own Matomo or Fathom setup. As far as I can tell, clicky is not working at all. …
What's On Tap?
In my spare time over the last several weeks I've been working on a new section of the website, On Tap. This is a new area where I will keep and show information about my homebrewing.
The main page shows beers I've got planned or in progress, currently on tap, or have had on tap in the past. This includes when I brewed the beer, when it went on tap, and when it went off tap. It also links to the actual recipe I used and a brew log page with information about that specific batch.
The recipe pages …
Guts, Gravel, Glory 2020
Earlier this month I decided to enter my first bike race, Guts, Gravel, Glory 2020. I lived on a bike in the 90s. Cheap Huffy and Murray BMX bikes and an entry level Raleigh mountain bike with a solid frame and front axle, but I haven't really ridden a bike since probably 1998. I finally decided in the fall that its time to get back on a bike because running is beating me up too much. I started out looking at mountain bikes, still being stuck in my 90s mindset that road bikes were for old people and professional …
I'm not a fan of the new year's resolution thing but at the same time, it is a good time to say "Hey, I'm going to do better at these things starting now" or "I'm going to try to do this thing within the next year".
I meant to post this closer to the beginning of the year, but hey, I'm following #1 and #2 already. I've also managed a few others at least partially already.
- Stop trying to do so much
I'm always burnt out and tired because I take on too much. Things stop being enjoyable and …
How I Finished 2019
Yep, I finished 2019 by doing ridiculous WoW achievements.
I completed Sausage Sampler and my wife started laughing at me and says "What next, one for drinking beer?". A few minutes later she sees the friends or guild chat announcement that I completed Three Sheets To The Wind. Afer that, I figured Shanty Raid fit in well with the theme. By then I was out of achievements fitting that list, so I figured why not collect hidden cat statues.
Mother of a Fermentation Chiller
I've been doing the swamp cooler thing for maintaining homebrew fermentation temperatures for too long and have finally built a more controllable fermentation chamber. I used the plans for Mother of a Fermentation Chiller after doing some research and seeing how happy others have been with variations of it. It's lightweight and easy to move around unlike freezer and refrigerator based options and is inexpensive to build as long as you are ok with a big, ugly, box. I have seen people put wood enclosures around them which look very nice and would help insulation even more, but will obviously …
Now Built on Wagtail
It's time for my occasional rework of the back end of this system and attempt to write more by making it easier and nicer to write. This time I killed two birds with one stone by adding Wagtail to the mix.
I stumbled upon Wagtail through work. We build a lot of custom CMSes at Mobelux and so every couple of years we take a look at existing solutions. In the past we've always found something unacceptable about all of them. This time when we gave Wagtail another shot, it was exactly what we are always looking for. The features …
Dependency Injection With Golang HTTP Middleware
I have been playing with Go on and off for a couple of months now and am really enjoying it. I could probably do a post just on why and what I like, but in short, it adheres to and encourages simplicity, obviousness, and explicitness that Python does (moreso than Python in many cases) while adding some new tools, implementation options, and deployment options.
Part of the explicitness and obviousness of Go is in function signatures. In Python you can have named parameters with defaults, so they are optional. You even have the *args and **kwargs parameters which take …
See Ya 2017! This Week Was Awesome
It's just a few hours until 2018 on the east coast. It's been an isanely stressful year so I'm writing this so that I don't forget how awesome this last week has been and how I'll make sure next year is awesome.
- Introduced Ana to Sonic the Hedgehog on the awesome AtGames Genesis my wife got me for Christmas.
- Robin and I watched Star Wars Ep IV with Ana for the first time.
- Built awesome cars with Ana using a kit she got for Christmas.
- Found Zam Zam Kabob with awesome family which took us in for the holidays for …
Dockerfile With Code or Separate?
As I've been working to improve my devops skills and knowledge, particularly in regard to using Docker, I have begun to wonder what the best way is to handle Dockerfiles and the rest of the Docker image build environment. Sometimes I feel that with the code makes the most sense, treating it like a Makefile or other build data. Now that I am looking for references suggesting the this technique I am having trouble finding them, but I have seen it often Here are a couple posts on the web which suggest that. This includes Amazon's ECS Continuous Deployment pipline …
Configuration and Architecture Experiments
I've recently been playing with new tools for configuration management and deployment, both at work and with my own projects. These include Docker, Ansible, and an InfluxDB/Telegraf/Grafana stack. I have been using all them for production in house tools at work as well as this blog.
I first got started with Docker using it at work. It works great as a production environment. I can make an image which is easily deployable anywhere Docker is found. Configuration of images and containers is dead simple, rarely more complex than writing a bash script. After years of fighting with Chef …
Django Fractions Has A User!
I got my first bug report for Django Fractions. That's awesome! It means someone uses it and finds it useful enough to report a bug! The bug was that it was not playing nicely at all with forms in the django admin site (or elsewhere using a ModelForm, most likely). I fixed it and learned a bit more about Django's internals.
The base fix was to implement the formfield() method on djfractions.models.fields.DecimalFractionField. That in itself took a bit more work than expected and in the end I stopped subclassing the built in DecimalField because there are just too many things …