Skip to content

Instantly share code, notes, and snippets.

# To build the application run `make install`.
#
# This target depends on the `node_modules` target.
install: node_modules
# This target depends on a file called `package.json`.
#
# If `package.json` doesn't exist, make complains that you need one! Run `npm init` to generate one.
#
# If `package.json` exists, but `node_modules/` doesn't, make will run `npm install`.
condition {
name = "request_is_us"
statement = "req.http.X-Geoip-Continent ~ \"(NA|SA|OC|AS)\" || (!F_eu_origin.healthy && F_us_origin.healthy)"
type = "REQUEST"
priority = 100
}
condition {
name = "request_is_eu"
statement = "req.http.X-Geoip-Continent !~ \"(NA|SA|OC|AS)\" || (!F_us_origin.healthy && F_eu_origin.healthy)"
@sjparkinson
sjparkinson / README.md
Last active April 18, 2017 09:10
Ansible 101
@sjparkinson
sjparkinson / 03-pdb-hello.py
Last active April 11, 2017 12:08
Code club on debugging with Python PDB.
#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print 'Hello there', sys.argv[1] if len(sys.argv) > 1 else 'Anon'
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
@sjparkinson
sjparkinson / 02-tdd-bdd.md
Last active March 21, 2017 13:58
Code club on TDD & BDD.
@sjparkinson
sjparkinson / launch-event.json
Last active March 20, 2017 12:44
EC2 AutoScale event notifications via SNS.
{
"Records": [
{
"EventSource": "aws:sns",
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:eu-west-1:371548805176:FT-App-API-UAT-AutoScalingEvents-1VA671X21ETS2:500fe343-1af7-4b98-a81c-2a91c32f3f05",
"Sns": {
"Type": "Notification",
"MessageId": "1decf081-3906-5ba1-a408-a1c886a6549e",
"TopicArn": "arn:aws:sns:eu-west-1:371548805176:FT-App-API-UAT-AutoScalingEvents-1VA671X21ETS2",
@sjparkinson
sjparkinson / example.py
Last active March 13, 2017 15:44
Scripters code club testing example.
#!/usr/bin/env python
import boto3
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
key = 'jif.gif'
body = open(filename, 'rb')
s3.Bucket('hello-world').put_object(Key=key, Body=body)
import sys
import math
# Auto-generated code below aims at helping you parse
# the standard input according to the problem statement.
mime_types = {}
file_names = []
count_mime_types = int(input()) # Number of elements which make up the association table.
count_file_names = int(input()) # Number of file names to be analyzed.
@sjparkinson
sjparkinson / purge.vcl
Created October 5, 2016 11:10
Examples on how to purge the cache in Varnish.
vcl 4.0;
sub vcl_recv {
// Allow PURGE requests to remove a specific object if it exists.
if (req.method == "PURGE") {
return (purge);
}
// Allow BAN requests, adding a lurker friendly ban to the ban list.
if (req.method == "BAN") {
@sjparkinson
sjparkinson / Makefile
Created August 26, 2016 10:14
Automatic help target using ## comments.
help: ## Show this help message.
echo "usage: make [target] ..."
echo ""
echo "targets:"
fgrep --no-filename "##" ${MAKEFILE_LIST} | head -n '-1' | column -s ':#' -t -c 2