Skip to content

Instantly share code, notes, and snippets.

Avatar

Mark Richman mrichman

View GitHub Profile
@mrichman
mrichman / resize.sh
Created May 28, 2021
Resize EC2 volume
View resize.sh
#!/bin/bash
# Specify the desired volume size in GiB as a command-line argument. If not specified, default to 20 GiB.
SIZE=${1:-20}
# Get the ID of the environment host Amazon EC2 instance.
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
# Get the ID of the Amazon EBS volume associated with the instance.
VOLUMEID=$(aws ec2 describe-instances \
@mrichman
mrichman / rds-init.sh
Created Mar 31, 2021 — forked from sivasamysubramaniam/rds-init.sh
A workaround to get all data loaded into AWS RDS MySQL. When a read replica is restored from a snapshot, the replica won't wait for all the data to be transferred from Amazon Simple Storage Service (Amazon S3) to the Amazon Elastic Block Store (Amazon EBS) volume that's associated with the replica DB instance. The replica DB instance is availabl…
View rds-init.sh
#!/bin/bash
host=$1
user=$2
password=$3
echo '' > $0.queue
databases=$(mysql -h $host -u $user -p$password -e "show databases" -sN | grep -v information_schema | grep -v mysql | grep -v sys)
for database in $databases; do
for table in $(mysql -h $host -u $user -p"$password" -N -B -e "show tables from \`$database\`"); do
@mrichman
mrichman / main.go
Last active Jul 19, 2020
Invoking AWS SDK using WaitGroup of configurable size
View main.go
// Run N workers in a WaitGroup until they complete
package main
import (
"flag"
"fmt"
"os"
"sync"
@mrichman
mrichman / Cloud9_bootstrap.yaml
Created Jul 8, 2020 — forked from richardhboyd/Cloud9_bootstrap.yaml
StepFunction that bootstraps a Cloud9 environment
View Cloud9_bootstrap.yaml
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Parameters:
BucketName:
Description: "Region-specific assets S3 bucket name (e.g. ee-assets-prod-us-east-1)"
Type: String
Default: "cf-templates-1xnac3rwgtxo7-us-west-2"
EBSVolumeSize:
Description: "Size of EBS Volume (in GB)"
Type: Number
@mrichman
mrichman / HelloWorld.vue
Last active May 10, 2022
Cognito Hosted UI + Vue.js
View HelloWorld.vue
<template>
<div>
<b-container>
<b-row align-h="center">
<div v-if="!signedIn">
<b-button variant="success" @click="signIn">Sign in with Cognito</b-button>
</div>
<div v-if="signedIn">
<h4>Welcome, {{ username }}!</h4>
<b-button variant="danger" @click="signOut">Sign out</b-button>
@mrichman
mrichman / table.js
Created Jan 30, 2020
Sort any HTML table by clicking a header
View table.js
const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent;
const comparer = (idx, asc) => (a, b) => ((v1, v2) =>
v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ? v1 - v2 : v1.toString().localeCompare(v2)
)(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));
// do the work...
document.querySelectorAll('th').forEach(th => th.addEventListener('click', (() => {
const table = th.closest('table');
Array.from(table.querySelectorAll('tr:nth-child(n+2)'))
.sort(comparer(Array.from(th.parentNode.children).indexOf(th), this.asc = !this.asc))
.forEach(tr => table.appendChild(tr) );
@mrichman
mrichman / simple-https-server.py
Created Oct 25, 2019
Simple HTTPS Server in Python
View simple-https-server.py
#!/usr/bin/env python3
"""
generate server.pem:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
"""
from http.server import HTTPServer, SimpleHTTPRequestHandler
import ssl
@mrichman
mrichman / lambda_function.py
Created Apr 11, 2019
Blog Post: Scheduling DynamoDB Backups with Lambda, Python, and Boto3
View lambda_function.py
import datetime
import boto3
MAX_BACKUPS = 3
dynamo = boto3.client('dynamodb')
def lambda_handler(event, context):
@mrichman
mrichman / Brewfile
Created Mar 25, 2019
brew bundle dump
View Brewfile
tap "aws/tap"
tap "buo/cask-upgrade"
tap "cjbassi/gotop"
tap "garethr/kubeval"
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/cask-versions"
tap "homebrew/core"
tap "homebrew/services"