# Angels && Daemons - https://petersouter.xyz > Tech blog by Peter Souter ## Blog Posts - [April Update: Gardens, Grass, and Big Fish](https://petersouter.xyz/april-update-gardens-grass-and-big-fish/index.md): Published 2026-04-02 - [I Failed, But I Feel Good: GenAI, Blogging For Fun and Touching Grass](https://petersouter.xyz/i-failed-but-i-feel-good-genai-blogging-for-fun-and-touching-grass/index.md): Published 2026-03-02 - [CfgMgmtCamp 2026 Trip Report](https://petersouter.xyz/cfgmgmtcamp-2026-trip-report/index.md): Published 2026-02-17 - [My 2026 Blogging Plans](https://petersouter.xyz/my-2026-blogging-plans/index.md): Published 2026-02-16 - [Back on the Horse: Refocusing on What Matters in 2026](https://petersouter.xyz/back-on-the-horse-refocusing-on-what-matters-in-2026/index.md): Published 2026-02-12 - [Testing CLI apps with Aruba (Ruby or Not)](https://petersouter.xyz/testing-cli-apps-with-aruba-ruby-or-not/index.md): Published 2024-04-09 - [Bootstrapping a new OSX device: A Brief History and Current Approach](https://petersouter.xyz/bootstrapping-a-new-osx-device-a-brief-history-and-current-approach/index.md): Published 2024-04-04 - [Adding my Provider to the Terraform Provider Registry](https://petersouter.xyz/adding-my-provider-to-the-terraform-provider-registry/index.md): Published 2020-09-17 - [Making Käsespätzle](https://petersouter.xyz/making-k%C3%A4sesp%C3%A4tzle/index.md): Published 2020-04-13 - [Vault Caching with Auto-Auth and Puppet](https://petersouter.xyz/vault-caching-with-auto-auth-and-puppet/index.md): Published 2020-02-12 - [S3 Download Progress Bar in Golang](https://petersouter.xyz/s3-download-progress-bar-in-golang/index.md): Published 2019-03-07 - [Testing and mocking stdin in Golang](https://petersouter.xyz/testing-and-mocking-stdin-in-golang/index.md): Published 2019-01-13 - [Fixing common spelling errors with misspell](https://petersouter.xyz/fixing-common-spelling-errors-with-misspell/index.md): Published 2018-12-22 - [Demonstrating the GCE Auth method for Vault](https://petersouter.xyz/demonstrating-the-gce-auth-method-for-vault/index.md): Published 2018-08-12 - [Writing and playing with custom Terraform Providers](https://petersouter.xyz/writing-and-playing-with-custom-terraform-providers/index.md): Published 2018-07-01 - [How to use Vault with Hiera 5 for secret management with Puppet](https://petersouter.xyz/how-to-use-vault-with-hiera-5-for-secret-management-with-puppet/index.md): Published 2018-03-19 - [Migrating my blog from Ghost to Hugo](https://petersouter.xyz/migrating-my-blog-from-ghost-to-hugo/index.md): Published 2018-03-02 - [An End of an Era and New Opportunities](https://petersouter.xyz/an-end-of-an-era-and-new-opportunities/index.md): Published 2018-02-19 - [An Eventful 2017](https://petersouter.xyz/an-eventful-2017/index.md): Published 2018-01-01 - [Day 30 vdm30in30 is over!](https://petersouter.xyz/day-30-vdm30in30-is-over/index.md): Published 2016-11-30 - [A Puppet pattern for version specific config settings](https://petersouter.xyz/a-puppet-pattern-for-version-specific-config-settings/index.md): Published 2016-11-29 - [Dealing with /var/run in systemd unit files](https://petersouter.xyz/dealing-with-var-run-in-systemd-unit-files/index.md): Published 2016-11-28 - [Sublime Plugins](https://petersouter.xyz/sublime-plugins/index.md): Published 2016-11-27 - [Quickly testing with dply.co](https://petersouter.xyz/quickly-testing-with-dply.co/index.md): Published 2016-11-26 - [The Puppet Resource Abstraction Layer (RAL) Explained: Part 4](https://petersouter.xyz/the-puppet-resource-abstraction-layer-ral-explained-part-4/index.md): Published 2016-11-25 - [The Puppet Resource Abstraction Layer (RAL) Explained: Part 3](https://petersouter.xyz/the-puppet-resource-abstraction-layer-ral-explained-part-3/index.md): Published 2016-11-24 - [The Puppet Resource Abstraction Layer (RAL) Explained: Part 2](https://petersouter.xyz/the-puppet-resource-abstraction-layer-ral-explained-part-2/index.md): Published 2016-11-23 - [The Puppet Resource Abstraction Layer (RAL) Explained: Part 1](https://petersouter.xyz/the-puppet-resource-abstraction-layer-ral-explained-part-1/index.md): Published 2016-11-22 - [FOSDEM Survival Guide](https://petersouter.xyz/fosdem-survival-guide/index.md): Published 2016-11-21 - [Keyboard Geekery](https://petersouter.xyz/keyboard-geekery/index.md): Published 2016-11-20 - [Making Docs fun with Dash](https://petersouter.xyz/making-docs-fun-with-dash/index.md): Published 2016-11-19 - [Travelling Consultant Hardware Essentials](https://petersouter.xyz/travelling-consultant-hardware-essentials/index.md): Published 2016-11-18 - [Drying up rspec with shared_examples](https://petersouter.xyz/drying-up-rspec-with-shared_examples/index.md): Published 2016-11-17 - [GUI's for a Puppet estate](https://petersouter.xyz/guis-for-a-puppet-estate/index.md): Published 2016-11-16 - [JMX puppetserver metrics vagrant stack](https://petersouter.xyz/jmx-puppetserver-metrics-vagrant-stack/index.md): Published 2016-11-15 - [The Story of Errata for CentOS](https://petersouter.xyz/the-story-of-errata-for-centos/index.md): Published 2016-11-14 - [Triggering a daemonized puppet agent with SIGUSR1](https://petersouter.xyz/triggering-a-daemonized-puppet-agent-with-sigusr1/index.md): Published 2016-11-13 - [jmxtrans: What is it and how to configure it](https://petersouter.xyz/jmxtrans-what-is-it-and-how-to-configure-it/index.md): Published 2016-11-12 - [puppetserver caching](https://petersouter.xyz/puppetserver-caching/index.md): Published 2016-11-11 - [An example metrics stack with Collectd, Graphite and Grafana](https://petersouter.xyz/an-example-metrics-stack-with-collectd-graphite-and-grafana/index.md): Published 2016-11-10 - [Compressing images in Ghost blog](https://petersouter.xyz/compressing-images-in-ghost-blog/index.md): Published 2016-11-09 - [Debugging Puppet Issues](https://petersouter.xyz/debugging-puppet-issues/index.md): Published 2016-11-08 - [Musical Tastes](https://petersouter.xyz/musical-tastes/index.md): Published 2016-11-07 - [SysOps: Welcome to the Club](https://petersouter.xyz/sysops-welcome-to-the-club/index.md): Published 2016-11-06 - [System Administration with Cockpit](https://petersouter.xyz/system-administration-with-cockpit/index.md): Published 2016-11-05 - [Running Puppet acceptance tests in Docker in Travis](https://petersouter.xyz/running-puppet-acceptance-tests-in-docker-in-travis/index.md): Published 2016-11-04 - [How I accidentally helped find a showstopper bug in Ruby](https://petersouter.xyz/how-i-accidentally-helped-find-a-showstopper-bug-in-ruby/index.md): Published 2016-11-03 - [Some thoughts on maintaining OSS that has an official "competitor"](https://petersouter.xyz/some-thoughts-on-maintaining-oss-that-has-an-official-competitor/index.md): Published 2016-11-02 - [An Omnibus package for hiera_explain](https://petersouter.xyz/an-omnibus-package-for-hiera_explain/index.md): Published 2016-11-01 - [Day 0: #vDM30in30](https://petersouter.xyz/day-0-%23vdm30in30/index.md): Published 2016-10-31 - [90 Fitness Challenge - Conclusion and Starting again](https://petersouter.xyz/90-fitness-challenge-conclusion-and-starting-again/index.md): Published 2016-08-30 - [90 Day Fitness Challenge - Week 4 - 33% Check-in](https://petersouter.xyz/90-day-fitness-challenge-week-4-33-check-in/index.md): Published 2016-07-04 - [90 Day Fitness Challenge - Week 1 - First check-in](https://petersouter.xyz/90-day-fitness-challenge-week-1-first-check-in/index.md): Published 2016-06-16 - [Testing Windows with Beaker without Cygwin](https://petersouter.xyz/testing-windows-with-beaker-without-cygwin/index.md): Published 2016-06-09 - [Getting fitter and healthier in 90 days...with data!](https://petersouter.xyz/getting-fitter-and-healthier-in-90-days...with-data/index.md): Published 2016-06-06 - [FOSDEM 2016](https://petersouter.xyz/fosdem-2016/index.md): Published 2016-02-07 - [Switching to hosting my blog on Docker](https://petersouter.xyz/switching-to-hosting-my-blog-on-docker/index.md): Published 2015-12-13 - [Migrating my blog to new Ghost and enabling HTTPS](https://petersouter.xyz/migrating-my-blog-to-new-ghost-and-enabling-https/index.md): Published 2015-02-27 - [TDD/BDD with Puppet code using rspec-puppet](https://petersouter.xyz/tdd-bdd-with-puppet-code-using-rspec-puppet/index.md): Published 2015-02-18 - [Triage-a-thons and Fixing Puppet](https://petersouter.xyz/triage-a-thons-and-fixing-puppet/index.md): Published 2014-06-02 - [Ansible: Keep it Simple!](https://petersouter.xyz/ansible-keep-it-simple/index.md): Published 2014-03-08 - [CfgMgmtCamp 2014](https://petersouter.xyz/cfgmgmtcamp-2014/index.md): Published 2014-03-04 - [FOSDEM 2014](https://petersouter.xyz/fosdem-2014/index.md): Published 2014-03-01 - [Irssi, Mosh and Kafo: An awesome IRC combo](https://petersouter.xyz/irssi-mosh-and-kafo-an-awesome-irc-combo/index.md): Published 2014-02-08 - [Capybara Smoketests: Not just for Ruby!](https://petersouter.xyz/capybara-smoketests-not-just-for-ruby/index.md): Published 2013-11-28 - [Dublin Web Summit 2013](https://petersouter.xyz/dublin-web-summit-2013/index.md): Published 2013-11-14 - [London Web Performance Group meetup - October 2013](https://petersouter.xyz/london-web-performance-group-meetup-october-2013/index.md): Published 2013-10-15