Mike Bland

Prior works

This is the official list of prior works of which I’m the sole owner or to which I retain some copyright. All of the content on this blog before a given date should be considered a prior work as well.

Number of works: 51
Last updated: 2024-02-24

The Test Pyramid in Action
Date: 2024-01-19
URLs:
Types:
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

This is a fairly complete survey of core automated testing concepts, using the Test Pyramid as the unifying metaphor. It makes these concepts accessible to programmers who have had little to no practical experience with writing (good) tests. If you're already familiar with Test-Driven Development, or writing automated tests in general, this may reinforce your existing principles and possibly deepen them further. The example system demonstrates the Test Pyramid strategy and incorporates Roy Osherove’s String Calculator kata as a hands-on Red-Green-Refactor cycle exercise.

rollup-plugin-handlebars-precompiler
Date: 2024-01-01
URLs:
Types:
  • code
Copyright: MPL-2.0 license (definition)

Rollup plugin to precompile Handlebars templates into JavaScript modules

Test Page Opener
Date: 2023-12-31
URLs:
Types:
  • code
Copyright: MPL-2.0 license (definition)

Enables an application's tests to open its own page URLs both in the browser and in Node.js using jsdom. Provides limited, though still very useful support for opening pages that load external JavaScript modules when using jsdom.

JSDoc Command Line Interface Wrapper
Date: 2023-12-26
URLs:
Types:
  • code
Copyright: MPL-2.0 license (definition)

Wrapper for the jsdoc command line tool for generating JSDoc HTML output. Removes the existing destination directory if it exists, runs jsdoc, and emits the relative path to the generated index.html file.

Tomcat Servlet Testing Example
Date: 2023-12-26
URLs:
Types:
  • code
Copyright: MPL-2.0 license (definition)

This project incorporates the String Calculator kata to demonstrate Test-Driven Development in the context of a Test Pyramid-based testing strategy. Accompanies the Test Pyramid in Action training presentation.

Making Software Quality Visible
Date: 2023-01-10
URLs:
Types:
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

Why internal software quality matters, why it's often unappreciated and sacrificed, and what we can do to improve it. Discusses the importance of instilling a quality culture to promote the proper mindset first as a foundation for seeking better processes, tools, metrics, and outcomes.

Pipelines, Roles, and Checklists, Lightning version
Date: 2018-09-29
URLs:
Types:
  • presentation
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

A five-minute explanation of how to use the concepts of Pipelines, Roles, and Checklists, and their concrete expression in documentation, to mobilize people for organizational change

Automated Testing—Why Bother? Lightning version
Date: 2018-09-29
URLs:
Types:
  • presentation
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

A five-minute version of the full "Automated Testing—Why Bother?" talk

Bats-core: Bash Automated Testing System
Date: 2017-02-14
URLs:
Types:
  • code
Copyright: MIT license (definition)

Bats is a Test Anything Protocol-compliant testing framework for Bash. The date corresponds to the first commit I wrote that was merged into the code base, a3396cbc891d5f76832cd0cae65bf427c35bfb6c.

go-script-bash framework
Date: 2016-08-20
URLs:
Types:
  • code
Copyright: ISC license (definition)

Framework for writing modular, discoverable, testable Bash scripts

Custom Links application
Date: 2017-05-01
URLs:
Types:
  • code
Copyright: ISC license (definition)

An application for allowing authenticated users to create and dereference custom URLs hosted on a custom domain

Certbot webroot setup
Date: 2017-02-05
URLs:
Types:
  • code
Copyright: ISC license (definition)

Encapsulates the steps needed to set up Certbot to use the Webroot plugin to install and renew Let's Encrypt SSL certificates

Dev setup
Date: 2014-11-11
URLs:
Types:
  • code
Copyright: All rights reserved. (definition)

Modular dev environment setup application

The Rainbow of Death
Date: 2017-03-08
URLs:
Types:
  • presentation
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

A history of the Google Testing Grouplet's mission to drive adoption of automated testing, and a model for understanding how to execute similar change initiatives elsewhere

Automated Testing—Why Bother?
Date: 2017-05-12
URLs:
Types:
  • presentation
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

An explanation of why automated testing is important ("The Why"), followed by a technical illustration of its fundamental principles ("The Bother")

Unit testing in Node.js
Date: 2015-12-09
URLs:
Types:
  • code
  • documentation
Copyright: ISC license (definition)

Introductory unit testing exercise in Node.js

slack-github-issues
Date: 2016-12-04
URLs:
Types:
  • code
Copyright: ISC license (definition)

Library for using Slack reaction_added events to file GitHub issues

hubot-slack-github-issues
Date: 2015-12-09
URLs:
Types:
  • code
Copyright: ISC license (definition)

Hubot script using the Slack Real Time Messaging and Web APIs to file GitHub issues

mbland/mbland-18f-utils
Date: 2014-11-06
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Personal utilities supporting my workflow and other miscellany.

knowledge-sharing-toolkit
Date: 2016-02-22
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

A set of Dockerfiles and Bash scripts to launch a specific set of services developed as part of my work for the U.S. federal government

mbland/dockerfiles
Date: 2016-12-08
URLs:
Types:
  • code
Copyright: ISC license (definition)

Dockerfiles for images posted to mbland's repositories on Docker Hub

hubot-slack-reaction-example
Date: 2016-10-05
URLs:
Types:
  • code
  • documentation
Copyright: ISC license (definition)

Demonstrates how to use the hubot-slack v4.2.0 Robot.react method

guides-template
Date: 2015-04-15
URLs:
Types:
  • code
  • documentation
Copyright: ISC license (definition)

Jekyll template for 18F Guides, based on CFPB/DOCter

jekyll_pages_api_search
Date: 2015-05-21
URLs:
Types:
  • code
Copyright: ISC license (definition)

Jekyll search plugin based on lunr.js and jekyll_pages_api

Automated Testing Playbook
Date: 2015-01-27
URLs:
Types:
  • documentation
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

A set of principles, practices, idioms, and strategies pertaining to automated software testing and its adoption.

Grouplet Playbook
Date: 2015-02-01
URLs:
Types:
  • documentation
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

A guide to organizing grassroots initiatives for organization-wide improvement and enablement

mbland/google-code-archive
Date: 2014-02-24
URLs:
Types:
  • code
Copyright: ISC license (definition)

An archive of my Google Code repository, now available under the ISC license

mbland/hub
Date: 2014-12-09
URLs:
Types:
  • code
  • documentation
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Archive of my old Hub project from the federal government, a Jekyll-based documentation platform that aims to help teams organize and easily share their information, and to enable easy exploration of the connections between team members, projects, and skill sets.

mbland/guides
Date: 2015-02-06
URLs:
Types:
  • code
  • documentation
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Archive of the original 18F Guides site

authdelegate
Date: 2015-10-09
URLs:
Types:
  • code
Copyright: ISC license (definition)

A server that routes authenticated requests to multiple authentication servers based on the presence of specific headers or cookies in a request

team_api
Date: 2015-08-30
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Compiles information about team members, projects, etc. and exposes it via a JSON API.

team-api-server
Date: 2015-10-14
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Node.js server that listens for GitHub push webhooks with modifications to a target file (typically .about.yml) and updates a destination repo with the contents of that file, renamed as <project_name>.yml.

about_yml
Date: 2015-08-30
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

The .about.yml mechanism allows a project to publish and maintain metadata that can be easily maintained by project owners, that is visible and accessible to interested parties, and that can be harvested and processed by tools and automated systems. It is implemented using the YAML format.

hmacauth
Date: 2015-10-02
URLs:
Types:
  • code
Copyright: ISC license (definition)

HMAC authentication package for Go that signs and authenticates HTTP requests based on a shared-secret HMAC signature

hmac-authentication-npm
Date: 2015-10-02
URLs:
Types:
  • code
Copyright: ISC license (definition)

HMAC authentication package for Node.js that signs and authenticates HTTP requests based on a shared-secret HMAC signature

hmac_authentication_gem
Date: 2015-10-02
URLs:
Types:
  • code
Copyright: ISC license (definition)

HMAC authentication package for Ruby that signs and authenticates HTTP requests based on a shared-secret HMAC signature

hmac_authentication_py
Date: 2015-10-07
URLs:
Types:
  • code
Copyright: ISC license (definition)

HMAC authentication package for Python that signs and authenticates HTTP requests based on a shared-secret HMAC signature

hmacproxy
Date: 2015-10-05
URLs:
Types:
  • code
Copyright: ISC license (definition)

Proxy server that signs and authenticates HTTP requests using an HMAC signature

go_script
Date: 2015-08-21
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Ruby Gem to support scripts providing a unified development environment interface; superseded by mbland/go-script-bash

hash-joiner
Date: 2014-12-19
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Performs pruning or one-level promotion of Hash attributes (typically labeled "private:"), and deep merges and joins of Hash objects. Works on Array objects containing Hash objects as well.

lambda_map_reduce
Date: 2015-09-10
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

This is a full implementation of the MapReduce algorithm specifically for use with lambdas. It is useful for problems that are a natural fit for the MapReduce model (such as building cross-references) when the data set fits easily within memory.

oauth2_proxy_authentication
Date: 2015-10-01
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Authenticates requests proxied by a bitly/oauth2_proxy server using shared-secret HMAC request signatures

team_hub
Date: 2015-01-11
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Contains resuable components extracted from the mbland/hub implementation for creating a team hub using Jekyll.

weekly_snippets
Date: 2015-10-07
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Standardizes different weekly snippet formats into a common format, munges snippet text according to user-supplied rules, performs redaction of internal information, and publishes snippets in plaintext or Markdown format.

file-locked-operation
Date: 2015-09-06
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

A Node.js package for locking individual operations via the lockfile module

github-webhook-validator
Date: 2015-09-27
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

A Node.js library that provides an Express middleware validator for GitHub webhooks that have a secret key defined

oauth2-proxy-authentication-npm
Date: 2015-10-01
URLs:
Types:
  • code
Copyright: Creative Commons Public Domain Dedication 1.0 (CC0 1.0 Universal) (definition)

Authenticates requests from bitly/oauth2_proxy using HMAC signatures

mike-bland.com
Date: 2010-06-05
URLs:
Types:
Copyright: Creative Commons Attribution 4.0 International License (CC BY 4.0) (definition)

The personal blog of Mike Bland, a programmer, amateur musician, and Instigator