Jamie Tanna | Software Engineer

  • /now
  • Blog
  • Popular Posts
  • Archives
  • Search
  • Salary History
  • Open Source Projects I Maintain
  • Support Me
  • Hire Me (CV/Resume)

 Article

Chef 14 Upgrade: Change in ValidationFailed error messages when setting required properties (2 mins read).

Featured image for sharing metadata for article

The updated error message returned by a Chef ValidationFailed error, when you're specifying which properties are required on a custom resource.

Mon, 12 Nov 2018 23:35 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-14-upgrade #chef #chefspec #chef-14.

 Article

Why You Should Be Unit Testing Your Functional Acceptance Tests (7 mins read).

Featured image for sharing metadata for article

A few reasons explaining why you should be writing unit tests for your functional tests.

Wed, 07 Nov 2018 22:28 by Jamie Tanna's profile image Jamie Tanna . #persuasive #testing #software-testing #tdd #bdd #cucumber #software-quality #quality-engineering #unit-testing.

 Article

Viewing X.509 DER Certificate Details with OpenSSL (2 mins read).

How to convert an X.509 DER file to a human-readable format using openssl commands.

Fri, 02 Nov 2018 07:57 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #certificates #command-line #der #openssl.

 Article

Viewing X.509 PEM Certificate Details with OpenSSL (2 mins read).

How to convert an X.509 PEM file to a human-readable format using openssl commands.

Fri, 02 Nov 2018 07:57 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #certificates #command-line #pem #openssl.

 Article

Backporting/Replaying Changes Using git cherry-pick (6 mins read).

Featured image for sharing metadata for article

Using git cherry-pick to make it easier to backport or replay Git commits across different versions of your codebase.

Sun, 28 Oct 2018 22:22 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git #git-cherry-pick.

 Article

Revert 'Some knowledge-sharing news' (5 mins read).

The unfortunate decision to cancel my Packt training courses.

Sun, 28 Oct 2018 18:40 by Jamie Tanna's profile image Jamie Tanna . #news #events #chef #testing #tdd.

 Article

DevOpsDays London 2018 (51 mins read).

Featured image for sharing metadata for article

My writeup of my first DevOpsDays conference, and the awesome talks and conversations I was part of.

Thu, 25 Oct 2018 09:49 by Jamie Tanna's profile image Jamie Tanna . #devopsdays #aws #cloud #devops #capital-one #cloud-custodian #dashboards #events #bash #monolith #serverless #management #agile #testing #microservices.

 Article

Showing response headers with curl -i (3 mins read).

Featured image for sharing metadata for article

Showing just response headers when curling a resource, using curl -i.

Fri, 19 Oct 2018 12:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #curl.

 Article

Safely Force Pushing with Git using --force-with-lease=ref (6 mins read).

Featured image for sharing metadata for article

How git push --force-with-lease=ref can save you from overriding others' changes on shared Git branches.

Tue, 18 Sep 2018 17:08 by Jamie Tanna's profile image Jamie Tanna . #git #blogumentation #command-line.

 Article

My editorial workflow for blog posts (8 mins read).

Taking you through the journey I go on when writing blog posts, from ideation to publishing the post.

Tue, 11 Sep 2018 23:16 by Jamie Tanna's profile image Jamie Tanna . #www.jvt.me #workflow #ci #gitlab #git #automation #command-line #shell #gitlab-ci #review-apps.

 Article

Viewing Git history of a file in git log while ignoring file renames (5 mins read).

Featured image for sharing metadata for article

How to track changes to files in Git without pesky file renames getting in the way, using git log --follow.

Tue, 11 Sep 2018 18:27 by Jamie Tanna's profile image Jamie Tanna . #git #command-line #shell #blogumentation.

 Article

Test-Driven Chef Cookbook Development Using ChefSpec (and a sprinkling of InSpec) (39 mins read).

Featured image for sharing metadata for article

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.

Tue, 04 Sep 2018 14:52 by Jamie Tanna's profile image Jamie Tanna . #howto #blogumentation #chef #test-kitchen #chefspec #tdd #testing #guide.

 Article

Pretty Printing JSON Web Tokens (JWTs) on the Command Line using Ruby (3 mins read).

Featured image for sharing metadata for article

How to easily introspect and pretty print a signed JWT (JWS) or an encrypted JWT (JWE) on the command line using Ruby's standard library, or using the ruby-jwt external library.

Fri, 31 Aug 2018 10:43 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ruby #command-line #jwt #json #pretty-print.

 Article

Using chef-shell to interactively debug attributes and recipes (5 mins read).

Featured image for sharing metadata for article

How to use chef-shell to see attribute config and recipes, with and without a Chef Server.

Wed, 29 Aug 2018 13:38 by Jamie Tanna's profile image Jamie Tanna . #chef #chef-shell #blogumentation #test-kitchen #chef-server #chefdk.

 Article

OggCamp 2018 (21 mins read).

Featured image for sharing metadata for article

A look at my time at OggCamp 2018, the talks I presented and attended.

Thu, 23 Aug 2018 18:18 by Jamie Tanna's profile image Jamie Tanna . #events #oggcamp #chef #public-speaking #openapi #swagger #free-software #open-source #collaborative-culture.

 Article

Context is key: thinking about your audience (5 mins read).

How to have inclusive conversations by providing the right context for those who may not have the same level of understanding.

Thu, 16 Aug 2018 11:59 by Jamie Tanna's profile image Jamie Tanna . #thoughts #communication #capital-one #context.

 Article

Creating a versionable, self-contained (fat-/uber-) JAR for Cucumber tests (11 mins read).

Featured image for sharing metadata for article

Why you'd want a fat JAR and how you'd achieve it.

Wed, 15 Aug 2018 10:23 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #java #cucumber #testing #jar #artifact #artefact #maven #uber-jar.

 Article

My Path from School to University to Work (25 mins read).

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.

Sun, 05 Aug 2018 17:07 by Jamie Tanna's profile image Jamie Tanna . #musings #blogumentation #capital-one #career #university #nottingham #school #a-level #gcse.

 Article

Being More Explicit on Content Licensing (3 mins read).

Why I'm re-licensing the code snippets and post content on my site is, and how I'm making it more obvious.

Sun, 29 Jul 2018 15:47 by Jamie Tanna's profile image Jamie Tanna . #thoughts #site #licensing.

 Article

Some exciting job and knowledge-sharing news (4 mins read).

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.

Fri, 06 Jul 2018 22:24 by Jamie Tanna's profile image Jamie Tanna . #news #capital-one #events #chef #testing #conference #job #tdd #oggcamp #devopsdays.

 Article

Notes from the AWS + Chef Dev Day Roadshow in London (13 mins read).

Featured image for sharing metadata for article

Notes from the AWS Dev Day Roadshow in London, where we got to play around with Chef, Chef Automate and InSpec using AWS OpsWorks.

Sun, 24 Jun 2018 22:25 by Jamie Tanna's profile image Jamie Tanna . #aws #chef #events #chef-server #opsworks #cloud-formation #cloud-custodian #deployment #containers #chef-automate #inspec.

 Article

Pretty Printing JSON on the Command Line with Ruby (1 mins read).

Featured image for sharing metadata for article

Using Ruby's JSON module to pretty print JSON objects from the command line.

Mon, 18 Jun 2018 19:13 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ruby #json #pretty-print.

 Article

Merging multiple repositories into a monorepo, while preserving history, using git subtree (3 mins read).

Featured image for sharing metadata for article

How to merge multiple repositories, with their history, into a single repository, using the git subtree add command.

Fri, 01 Jun 2018 20:44 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git #monorepo #git-subtree #command-line.

 Article

Sharing Multiple SSH Sessions over the Same Network Socket (3 mins read).

Featured image for sharing metadata for article

Reusing network sockets for speed and reduction of authentication handshakes with OpenSSH.

Fri, 04 May 2018 17:21 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ssh #openssh #command-line.

 Article

Better Git Diff Outputs with Git Submodules (2 mins read).

Featured image for sharing metadata for article

How to get nicer diffs when working with submodules.

Fri, 04 May 2018 11:59 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #git #command-line.

 Article

Beware: deleteing a file in Chef doesn't actually delete it (3 mins read).

Featured image for sharing metadata for article

Why you should explicitly add backup false when deleteing a file through Chef, to avoid leaving potentially sensitive files still on the box.

Mon, 30 Apr 2018 17:54 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef.

 Article

Morsels of Goodness: What's Cooking in Chef 14? (5 mins read).

Featured image for sharing metadata for article

A look at the new features coming in the new Chef 14 release, as well as what to watch out for when upgrading.

Mon, 23 Apr 2018 16:09 by Jamie Tanna's profile image Jamie Tanna . #chef-14 #chef #foodcritic #cookstyle #rubocop #ruby #test-kitchen.

 Article

Finally Returning to Full Time Work After 123 Days (2 mins read).

Receiving the final sign off after four months off for my ruptured appendix.

Thu, 19 Apr 2018 11:02 by Jamie Tanna's profile image Jamie Tanna . #thoughts #appendix #health.

 Article

Serving Branches on a Subdomain using Caddy and GitLab Review Apps (2 mins read).

Featured image for sharing metadata for article

How to dynamically serve a branch on a subdomain for GitLab Review Apps using Caddy Labels.

Sun, 15 Apr 2018 15:18 by Jamie Tanna's profile image Jamie Tanna . #guide #gitlab #review-apps #caddy #howto #deploy.

 Article

Deploying to Netlify using GitLab CI (3 mins read).

Featured image for sharing metadata for article

How adding two lines to my .gitlab-ci.yml migrated my existing site from GitLab Pages to Netlify.

Thu, 12 Apr 2018 22:06 by Jamie Tanna's profile image Jamie Tanna . #netlify #gitlab-ci #automation #continuous-deployment #ci #deploy #howto.

 Article

Executing an Interactive Python Shell (REPL) for a Script (1 mins read).

Featured image for sharing metadata for article

Using python -i to get an interactive REPL after running a Python source file.

Sun, 08 Apr 2018 16:07 by Jamie Tanna's profile image Jamie Tanna . #command-line #python #blogumentation #tools #howto.

 Article

Bundling Common Rake Tasks into a Gem (8 mins read).

Featured image for sharing metadata for article

An example of how to create a helper gem for common Rake task, using the real-world example of Chef cookbooks.

Thu, 05 Apr 2018 21:17 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #chefdk #gem #ruby #rake #foodcritic #rubocop #rspec #knife-cookbook-doc #gitlab-ci.

 Article

Running docker login as another user in Chef (2 mins read).

Featured image for sharing metadata for article

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.

Mon, 26 Mar 2018 21:14 by Jamie Tanna's profile image Jamie Tanna . #docker #chef #blogumentation.

 Article

My First Week Back to Working (Remotely) After Three Months (6 mins read).

Featured image for sharing metadata for article

How I've found the first week back to work after almost three months, and the productivity gains of working reduced hours.

Thu, 15 Mar 2018 17:57 by Jamie Tanna's profile image Jamie Tanna . #thoughts #capital-one #spectat-designs.

 Article

Chef 13 Upgrade: knife-cookbook-doc Rubocop Updates (1 mins read).

Featured image for sharing metadata for article

Disabling the Missing space after # and Do not use block comments errors for your knife-cookbook-doc formatted comments.

Fri, 09 Mar 2018 17:30 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef #knife-cookbook-doc #chef-13 #documentation #chef-13-upgrade-rubocop.

 Article

Chef 13 Upgrade: knife-cookbook-doc gem upgrade (1 mins read).

Featured image for sharing metadata for article

Fixing odd Logger entries in autogenerated knife-cookbook-doc README.mds for Chef 13.

Wed, 07 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef #knife-cookbook-doc #chef-13 #documentation.

 Article

Chef 13 Upgrade: Deprecation of Namespace Collisions in Custom Resources (1 mins read).

Featured image for sharing metadata for article

Preparing for breaking changes in Chef 14 by renaming property_name to new_resource.property_name in Custom Resources.

Wed, 07 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-deprecation #chef #chef-13 #chef-14.

 Article

Verify a Ruby Class Method is Called with Arguments in Rspec, Without Doubles or Mocks (1 mins read).

Featured image for sharing metadata for article

Rspec code to verify that a Ruby Class Method is called from another method, without needing to mock anything.

Wed, 07 Mar 2018 15:28 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #ruby #testing #rspec.

 Article

Testing Chef's ruby_blocks with ChefSpec (3 mins read).

Featured image for sharing metadata for article

Testing implementation of a ruby_block in ChefSpec, to ensure that the code executes as expected.

Wed, 07 Mar 2018 12:01 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #chefspec #testing.

 Article

Chef 13 Upgrade: Lessons Learnt and Documented for Posterity (1 mins read).

Featured image for sharing metadata for article

Notes on the main problems encountered when upgrading from Chef 12 to Chef 13, both with ChefSpec and Rubocop.

Tue, 06 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-rubocop #chef-13-upgrade-chefspec #chef #rubocop #chefspec #chef-13 #chefspec-7 #rubocop-0-49.

 Article

Chef 13 Upgrade: Rubocop Changes for lazy Parameters (1 mins read).

Featured image for sharing metadata for article

How to resolve the Parenthesize the param lazy Rubocop error when upgrading your cookbook to Chef 13.

Tue, 06 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-rubocop #chef #rubocop #chef-13 #rubocop-0-49.

 Article

Chef 13 Upgrade: Rubocop Changes for Testing render_file with ChefSpec and a with_content Block (1 mins read).

Featured image for sharing metadata for article

How to resolve the Parenthesize the param render_file Rubocop error when upgrading your cookbook to Chef 13.

Tue, 06 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-chefspec #chef #chefspec.

 Article

Chef 13 Upgrade: Rubocop Changes for Word Array Literals (%w) (1 mins read).

Featured image for sharing metadata for article

A one-liner shell command to fix Rubocop errors %w-literals should be delimited by [ and ].

Tue, 06 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-rubocop #chef #rubocop #chef-13 #rubocop-0-49.

 Article

Chef 13 Upgrade: Testing ruby_blocks with ChefSpec (1 mins read).

Featured image for sharing metadata for article

Replace your block.old_run_action with block.block.call to trigger ruby_blocks within ChefSpec 7 and Chef 13.

Tue, 06 Mar 2018 20:34 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef-13-upgrade #chef-13-upgrade-chefspec #chef #chefspec #chef-13 #chefspec-7.

 Article

Emoji Support in Dunst (2 mins read).

Featured image for sharing metadata for article

How to see Emoji when using the Dunst notification system.

Wed, 28 Feb 2018 17:42 by Jamie Tanna's profile image Jamie Tanna . #arch-linux #dunst #dotfiles #blogumentation #emoji.

 Article

SSLError When Running Berkshelf Behind a Proxy (2 mins read).

Featured image for sharing metadata for article

Getting around the pesky OpenSSL::SSL::SSLError SSLv2/v3 read server hello A error when running Berkshelf behind a proxy.

Fri, 16 Feb 2018 15:44 by Jamie Tanna's profile image Jamie Tanna . #chef #blogumentation #proxy #command-line #shell #chefdk #berkshelf.

 Article

2017 in Review (68 mins read).

A look back over the awesome (and not so awesome) things that happened in 2017, and a look forward to what 2018 holds.

Wed, 14 Feb 2018 18:51 by Jamie Tanna's profile image Jamie Tanna . #year-in-review #retrospective #appendix #gitlab #github #health #monzo #capital-one #spectat-designs #hackathon #meetups #community #holiday #www.jvt.me.

 Article

Hackference 2017 (8 mins read).

Featured image for sharing metadata for article

My summary of the Hackference 2017 conference and hackathon.

Mon, 05 Feb 2018 15:38 by Jamie Tanna's profile image Jamie Tanna . #events #conference #hackathon #hackference.

 Article

Running service resources in Kitchen-Docker (3 mins read).

Featured image for sharing metadata for article

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.

Sun, 03 Sep 2017 20:23 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #kitchen #docker #howto.

 Article

Trusting Self-Signed Certificates from the Chef Development Kit (2 mins read).

Featured image for sharing metadata for article

How to get the ChefDK (and associated tools) to trust internal / self-signed certificates, in an easy oneliner.

Thu, 17 Aug 2017 00:10 by Jamie Tanna's profile image Jamie Tanna . #blogumentation #chef #chefdk #certificates #berkshelf.

You're currently viewing page 16 of 17, of 833 posts.

Go to the previous page

Go to the next page

Other links that may be of interest:

  • /slashes
  • Follow This Blog (i.e. via RSS feed)
  • Talks
  • Blogroll
  • Why is my site www.jvt.me?
  • Archives
  • Post Visualisation
  • Manual of Me
  • Typography
  • My name and pronounciation
  • RSVPs
  • Links
  • Post by Kind

This site is part of an IndieWeb Webring πŸ•ΈπŸ’

  • Previous site
  • Next site

Want to get in touch? Drop me an email at  hi@jamietanna.co.uk. I try to get back to everything, if I don't reply in a couple of weeks, feel free to give me a nudge!

You can also check out a list of all the places /elsewhere you can find me.

© 2025 Jamie Tanna. Post content and code snippets licensing is detailed on respective pages, otherwise default to Creative Commons Attribution Non Commercial Share Alike 4.0 International and Apache License 2.0.
Site design released under the MIT License.
Proudly hosted on AWS using S3 + CloudFront, deployed by GitLab CI, and generated by 4a2feb8ddf on Sat, 18 Apr 2020 14:40:29 +0100..