Setting the default AWS profile when working with multiple profiles and the AWS CLI / SDKs.
You can also search the below posts:
No matches found.
Finding out that a
nil gets silently coerced to an empty
Hash if given to a custom resource's property of type
Noting the deprecation of using
ChefSpec::Coverage.start! when using Chef 14 and above.
The updated error message returned by a Chef
ValidationFailed error, when you're specifying which properties are
required on a custom resource.
A few reasons explaining why you should be writing unit tests for your functional tests.
How to convert an X.509 PEM file to a human-readable format using
How to convert an X.509 DER file to a human-readable format using
The unfortunate decision to cancel my Packt training courses.
git cherry-pick to make it easier to backport or replay Git commits across different versions of your codebase.
My writeup of my first DevOpsDays conference, and the awesome talks and conversations I was part of.
Showing just response headers when
curling a resource, using
git push --force-with-lease=ref can save you from overriding others' changes on shared Git branches
Taking you through the journey I go on when writing blog posts, from ideation to publishing the post.
How to track changes to files in Git without pesky file renames getting in the way, using
git log --follow
Using the example of deploying and running a Java JAR file as a way to show the lifecycle of a fully test-driven Chef cookbook.
How to easily introspect and pretty print a JWT on the command line using Ruby's standard library, or using the ruby-jwt external library.
How to use
chef-shell to see attribute config and recipes, with and without a Chef Server.
A look at my time at OggCamp 2018, the talks I presented and attended.
Why you'd want a fat JAR and how you'd achieve it.
How to have inclusive conversations by providing the right context for those who may not have the same level of understanding.
A look back at my journey up to now, the choices I've made, and what advice I have for others who are embarking on their own journeys into tech.
Why I'm re-licensing the code snippets and post content on my site is, and how I'm making it more obvious.
Moving into Quality Engineering, publishing Chef training courses, conference speaking about Chef at OggCamp and the complex mess that is this very static website at DevOpsDays London.
Notes from the AWS Dev Day Roadshow in London, where we got to play around with Chef, Chef Automate and InSpec using AWS OpsWorks.
Using Ruby's JSON module to pretty print JSON objects from the command line.
How to merge multiple repositories, with their history, into a single repository, using the
git subtree add command
Reusing network sockets for speed and reduction of authentication handshakes with OpenSSH.
How to get nicer
diffs when working with submodules.
Why you should explicitly add
backup false when
file through Chef, to avoid leaving potentially sensitive files still on the box.
A look at the new features coming in the new Chef 14 release, as well as what to watch out for when upgrading.
Receiving the final sign off after four months off for my ruptured appendix.
How to dynamically serve a branch on a subdomain for GitLab Review Apps using Caddy Labels.
How adding two lines to my
.gitlab-ci.yml migrated my existing site from GitLab Pages to Netlify.
python -i to get an interactive REPL after running a Python source file.
An example of how to create a helper gem for common Rake task, using the real-world example of Chef cookbooks.
Hitting the error
permission denied while trying to connect to the Docker daemon socket when trying to run
docker login as a non-root user in Chef.
How I've found the first week back to work after almost three months, and the productivity gains of working reduced hours.
Missing space after # and
Do not use block comments errors for your
knife-cookbook-doc formatted comments.
Testing implementation of a
ruby_block in ChefSpec, to ensure that the code executes as expected
Rspec code to verify that a Ruby Class Method is called from another method, without needing to mock anything.
Logger entries in autogenerated
README.mds for Chef 13
Preparing for breaking changes in Chef 14 by renaming
new_resource.property_name in Custom Resources.
A one-liner shell command to fix Rubocop errors
%w-literals should be delimited by [ and ].
Notes on the main problems encountered when upgrading from Chef 12 to Chef 13, both with ChefSpec and Rubocop.
block.block.call to trigger
ruby_blocks within ChefSpec 7 and Chef 13.
How to resolve the
Parenthesize the param render_file Rubocop error when upgrading your cookbook to Chef 13.
How to resolve the
Parenthesize the param lazy Rubocop error when upgrading your cookbook to Chef 13.
How to see Emoji when using the Dunst notification system.
Getting around the pesky
OpenSSL::SSL::SSLError SSLv2/v3 read server hello A error when running Berkshelf behind a proxy
A look back over the awesome (and not so awesome) things that happened in 2017, and a look forward to what 2018 holds.
My summary of the Hackference 2017 conference and hackathon.
How to get up and running with
service resources when running Test Kitchen with the Docker driver, in this example for use with GitLab CI.
How to get the ChefDK (and associated tools) to trust internal / self-signed certificates, in an easy oneliner.
How to handle getting an
EACCES when trying to run ChefSpec on a recipe.
Spinning up a version of your application on every push, so others don't have to manually get the code up and running locally.
How to best test
include_recipes within your Chef recipes, as well as how to ensure that you aren't running any dependent recipes in your tests.
Why I'm starting to use blog posts as a form of documentation, and why I think they're so well suited.
Coerce YAML to JSON and vice versa, from the comfort of your Gem-studded command line.
Remove any merged local or branches from your local Git repository
Using Python's JSON module to pretty print JSON objects from the command line.
Making it easier to write commit messages by having the diff in your editor.
An introduction to how to build a cookbook using GitLab's Continuous Integration platform in conjunction with
A quick one-liner to get you the full certificate chain in
I share the tool I have been using for system utilisation and monitoring,
Speed up your commit message writing by providing a template for when you run
A tool to help reduce the amount of unnecessary output when building LaTeX files.
A discussion about the reasons that I would greatly recommend the GitLab.com platform for all your Git hosting, opposed to its competitors.
How containerised apps (AppImage, Snappy and Flatpak) could eat our users
What you need to remember to ask the organisers and what to consider in order to ensure your workshop goes smoothly.
An Application Binary Interface to make it possible to create capabilities-based, hardened, software.
A few words ahead of the storm of articles.
A month of giving back, and a very honest post-mortem of what I learned.
How to get up and running with using GitLab CI and the Capistrano deploy tool
A few words about my excitement for the start of Hacktoberfest, and some ideas on how to get started yourself.
A discussion about Sony Pictures Entertainment being hacked in the months before the release of the action comedy, The Interview, and its depiction of Kim Jong Un.
Why you should invest just a single hour in learning how code can be useful to you.
Discussing how drones will be shaping the future of the delivery business.
The future of lighting - using smart, long-lived lightbulbs that can be configured to only turn on when there's someone in the house.
Bringing the Internet of Things to the home, and to help monitor your children.