Skip to content

Instantly share code, notes, and snippets.

View mikepea's full-sized avatar

Mike Pountney mikepea

View GitHub Profile
gron # greppable JSON encoder/decoder
jq -r '{query}' # raw output, strips quotes et al. good for pipelining into grep.
jq -r 'keys | .[]' # lists just the keys of a map
if [ -z "$GOPATH" ]; then
echo "Doh, GOPATH not set. Bailing"; exit 1
BASE=$(mktemp -d /tmp/diagbuild.XXXXXX)
cd $BASE
# Nice way of visualising network latencies with an http call
# "shameless ripoff" of
go get -u
mikepea /
Last active September 24, 2018 18:21
Using cURL to talk OAuth2 to Weekdone

You'll need to register an 'app' with Weekdone, as per their API docs.

CLIENT_ID={provided by weekdone app registration}
CLIENT_SECRET={provided by weekdone app registration}
REDIRECT_URL=https://localhost   # this does not need to be valid, we just use it to snag the auth code

Login, to get a session cookie

Keybase proof

I hereby claim:

  • I am mikepea on github.
  • I am mikepea ( on keybase.
  • I have a public key whose fingerprint is 3857 87BA EE71 AB5B 7835 CA7B 8B37 DA12 6948 DC9D

To claim this, I am signing this object:

mikepea / create_zombie.c
Created February 13, 2015 13:14
C program to create a zombie process - useful for testing monitoring.
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
mikepea / gist:511ebb8b723f69cea3a4
Created January 12, 2015 11:01
ElasticSearch output of _nodes/stats?pretty -- for analysis of why heap needs to be over 2GB.
"cluster_name" : "elasticsearch",
"nodes" : {
"timestamp" : 1421060315273,
"name" : "monitoring-02",
"transport_address" : "inet[/REDACTED:9300]",
"host" : "monitoring-02",
"ip" : [ "inet[/REDACTED:9300]", "NONE" ],
"indices" : {
mikepea /
Last active April 14, 2024 14:29
Pull Request Etiquette

Pull Request Etiquette

Why do we use a Pull Request workflow?

PRs are a great way of sharing information, and can help us be aware of the changes that are occuring in our codebase. They are also an excellent way of getting peer review on the work that we do, without the cost of working in direct pairs.

Ultimately though, the primary reason we use PRs is to encourage quality in the commits that are made to our code repositories

Done well, the commits (and their attached messages) contained within tell a story to people examining the code at a later date. If we are not careful to ensure the quality of these commits, we silently lose this ability.

mikepea /
Last active August 29, 2015 14:11
Monitoring Gearman

Monitoring Gearman

Number of jobs in the queue

# Should be an integer if queue is present and gearman running.
mikepea /
Last active August 29, 2015 14:10
Monitoring Pack User Stories v1

Monitoring Pack User Stories

Front-end web developer

As a front-end webdev
I would like visibility of which browsers are in use
mikepea /
Last active August 29, 2015 14:10
Process State Playbook

Process State Playbook


Zombie processes are created when a child process dies, but due to the parent being blocked cannot provide the exit code back, and hence does not yet get reaped by the kernel.

They are visible in the process table with a 'Z' status.