13 Sep 2018

Third Time's The Charm

I've been meaning to start blogging for a while. Not even blogging consistently, just writing some long-form-ish pieces on projects that I've been working on, things I've learned, or things that I might want for my own reference. I've tried at least twice before - once when I purchased this domain back in December of 2013 and again at the end of 2016 - and as evidenced by the utter lack of content it's pretty clear I haven't been successful.

I made a real attempt to begin publishing at the end of 2016 with the release of that year's Advent of Code, but coursework kept me pretty busy and I never managed to finish and publish any of the posts I was working on at the time. I'll probably revisit some of them, clean them up, and post them - if I still remember what I was writing about - and the rest I may throw into a backlog so that if I ever run into a similar topic again I can incorporate my draft.

The reason I'm giving it another try now is I'm taking a course that specifically focuses on open source and includes a requirement that the students blog about their work and experiences as they gain exposure to the open source community. I'm not exactly a stranger to open source work, but I haven't had time to be as active as I would like to be so this course is giving me a good excuse to commit more time to getting involved and getting my hands dirty with some contributions.

On the technical side, this site is built using the static site generator Hugo. I've been learning a lot about the ins and outs of Hugo's project structure as I set this blog up, but so far I'm pretty happy with the results. Hugo is written in Go, the Google-sponsored C/++ replacement, and Hugo has a very active community that keeps improving the project.

One issue that I did run into was some confusion over themes in Hugo. Each Hugo site has a config.toml that sets parameters for how the static site content should be generated. Those parameters also include information like social media links that get embedded in certain parts of the Hugo theme that structures the site content and controls the look and feel. Unfortunately, there don't seem to be standard keys for many of these parameters, so the key name for your GitHub or StackOverflow account information needs to be updated if you decide to change your site theme. You can see some of the work I had to do in this commit to update these values when I changed my theme from hyde-x to purehugo.

I've been keeping my eye on other static site generators as well, but Hugo is very popular and has a lot of great community contributions and support so I'll be using it for a while yet. Now that things are up and running I might take a stab at customizing my theme a little bit more, an opportunity I wouldn't have if Hugo and its public themes weren't open source. Where many static site generators use things like Handlebars or Liquid for templating, Hugo actually delegates straight to the built-in text.template package in Go. This makes it immediately familiar to most Go developers, but I haven't had the opportunity to use Go much - especially recently - so I'll likely be spending a lot of time reading the documentation.

Hopefully this third attempt will be the one that sticks. Stay tuned for more posts on topics including open source, NodeJS, Rust, functional programming, and anything else I might get up to.