Skip to content

Instantly share code, notes, and snippets.

@stephen-mw
stephen-mw / install_python38_on_pi.sh
Last active August 22, 2023 03:55
Install python3.8 and make the system default on Raspberry Pi
#!/usr/bin/env bash
set -euo pipefail
# This script downloads, compiles, and installs python3.8 as the system default
export VERSION=3.8.5
apt install -y \
build-essential \
libbz2-dev \
@stephen-mw
stephen-mw / go_null_json_example.go
Last active November 22, 2022 13:28
Golang http server with sql null values and json
package main
import (
"database/sql"
"encoding/json"
"log"
"net/http"
"strconv"
_ "github.com/mattn/go-sqlite3"
@stephen-mw
stephen-mw / list_ec2_instances.md
Last active April 18, 2022 16:07
List running EC2 instances with golang and aws-sdk-go

This is the beginning of hopefully many new posts with golang snippets from my blog. List all of your running (or pending) EC2 instances with Amazon's golang sdk.

For a list of filters or instance attributes consult the official documentation.

package main

import (
	"fmt"
	"github.com/awslabs/aws-sdk-go/aws"
@stephen-mw
stephen-mw / pre-push
Last active September 9, 2021 01:35 — forked from pixelhandler/pre-push.sh
pre-push hook to prevent pushing to dev, prod, release-*, patch-*
#!/bin/bash
# Prevents force-pushing to master
BRANCH=`git rev-parse --abbrev-ref HEAD`
PUSH_COMMAND=`ps -ocommand= -p $PPID`
PROTECTED_BRANCHES="^(master|dev|release-*|patch-*)"
FORCE_PUSH="force|delete|-f"
if [[ "$BRANCH" =~ $PROTECTED_BRANCHES && "$PUSH_COMMAND" =~ $FORCE_PUSH ]]; then
echo "Prevented force-push to protected branch \"$BRANCH\" by pre-push hook"
@stephen-mw
stephen-mw / sources.list
Created May 20, 2013 21:39
Ubuntu 10.04 apt sources.list Pop it into /etc/apt/sources.list && apt-get update
#############################################################
################### OFFICIAL UBUNTU REPOS ###################
#############################################################
###### Ubuntu Main Repos
deb http://us.archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
###### Ubuntu Update Repos
deb http://us.archive.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
@stephen-mw
stephen-mw / logrotate_varnishncsa
Last active December 3, 2019 11:16
Init and logrotate script for varnishncsa logging process
# Logrotate script for varnishnca
# /etc/logrotate.d/varnishncsa
#
/var/log/varnish/varnishncsa.log {
daily
rotate 7
missingok
compress
delaycompress
@stephen-mw
stephen-mw / The_Deployment_Manifesto
Created March 4, 2014 21:05
The Deployment Manifesto
The 10 Tenets of Deployments
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
1. Configuration management MUST NOT be coupled to an external service, such as EC2, Openstack, Foreman, or anything else.
2. Devops SHOULD provide a self-service framework for the automatic creation and destruction of hosts from the ground up.

Keybase proof

I hereby claim:

  • I am stephen-mw on github.
  • I am stephenmw (https://keybase.io/stephenmw) on keybase.
  • I have a public key whose fingerprint is 02A1 A27C E45C 503C 84A9 E9AA 924B A05C D817 8DC7

To claim this, I am signing this object:

@stephen-mw
stephen-mw / ec2list.go
Last active December 14, 2017 01:38
Ec2 list in go
package main
import (
"fmt"
"github.com/awslabs/aws-sdk-go/aws"
"github.com/awslabs/aws-sdk-go/service/ec2"
"github.com/vaughan0/go-ini"
"net/url"
"os"
"runtime"
@stephen-mw
stephen-mw / linux_time_in_milliseconds.sh
Created June 15, 2016 18:07
Linux/Bash get the epoch linux time in milliseconds
# If you don't care too much about the granularity, just multiply by 1000 :-)
echo $((`date +%s` * 1000))
1466013952000