{"@attributes":{"version":"2.0"},"channel":{"title":"WillAbides","link":"https:\/\/willabides.com\/","description":"Recent content on WillAbides","generator":"Hugo","language":"en-us","lastBuildDate":"Tue, 10 Oct 2023 00:00:00 +0000","item":[{"title":"Gopher The Flag - A Mini Capture The Flag for Gophers","link":"https:\/\/willabides.com\/posts\/gopher-the-flag\/","pubDate":"Tue, 10 Oct 2023 00:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/gopher-the-flag\/","description":"I went to GopherCon this year and did my first capture the flag. It was about as much fun as I've had at a conference, and I will definitely do it again next year.\nI've been mulling another challenge since then, and today I took the time to put it together. I called it &quot;gopher the flag&quot;, but after seeing the code, &quot;goto the flag&quot; would have been a better name."},{"title":"Release Train - Continuous Releases Made Easy","link":"https:\/\/willabides.com\/posts\/release-train-continuous-releases-made-easy\/","pubDate":"Tue, 01 Aug 2023 00:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/release-train-continuous-releases-made-easy\/","description":"<p><a href=\"https:\/\/github.com\/WillAbides\/release-train\">Release Train<\/a> is a tool to\nautomate creating a new release every time you merge a pull request. It is\ninspired\nby <a href=\"https:\/\/github.com\/semantic-release\/semantic-release\">semantic-release<\/a>, but\nis easier to set up and use. Add a step to your GitHub workflow, start labeling\nyour pull requests, and you're riding the release train. No special incantations\nare required for your commit messages, and your repo can remain npm-free.<\/p>"},{"title":"Writing a Slog Handler Part 4: Final Thoughts","link":"https:\/\/willabides.com\/posts\/go-slog-handler-part-4\/","pubDate":"Thu, 20 Jul 2023 03:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/go-slog-handler-part-4\/","description":"Wrapping up the slog series."},{"title":"Writing a Slog Handler Part 3: The Handler Revisited","link":"https:\/\/willabides.com\/posts\/go-slog-handler-part-3\/","pubDate":"Thu, 20 Jul 2023 02:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/go-slog-handler-part-3\/","description":"Refactoring our slog handler to be more efficient."},{"title":"Writing a Slog Handler Part 2: The Handler","link":"https:\/\/willabides.com\/posts\/go-slog-handler-part-2\/","pubDate":"Thu, 20 Jul 2023 01:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/go-slog-handler-part-2\/","description":"Continuing the introduction to Go's log\/slog by writing a slog.Handler that outputs\nhuman-readable logs."},{"title":"Writing a Slog Handler Part 1: The Wrapper","link":"https:\/\/willabides.com\/posts\/go-slog-handler-part-1\/","pubDate":"Thu, 20 Jul 2023 00:00:00 +0000","guid":"https:\/\/willabides.com\/posts\/go-slog-handler-part-1\/","description":"An introduction to Go's log\/slog package. Writing a wrapper for a slog.Handler\nthat we can use in GitHub Actions."}]}}