Skip to content

Instantly share code, notes, and snippets.

View luketn's full-sized avatar

Luke Thompson luketn

View GitHub Profile
@luketn
luketn / base-stack-props.ts
Created November 24, 2020 02:23
Customising Name Tags in CDK
import {StackProps} from "@aws-cdk/core";
export interface BaseStackProps extends StackProps {
product: string;
environment: "development" | "production";
}
@luketn
luketn / kinesis-cfn-template.yml
Last active December 17, 2024 16:08
A cloud formation template (and CDK stack) to create a Kinesis stream and Firehose delivering to S3
Resources:
Stream:
Type: AWS::Kinesis::Stream
Properties:
ShardCount: 2
Name: request-logging
RetentionPeriodHours: 24
StreamEncryption:
Fn::If:
- AwsCdkKinesisEncryptedStreamsUnsupportedRegions
@luketn
luketn / .zshrc
Last active June 7, 2021 04:28
Bash switch Java versions (my own little dumb jenv)
# Java List Utility - type jl or javalist at the command line to switch java versions
JAVALIST_FILE="/tmp/javalist.sh"
function loadjavalist {
if [ -f "$JAVALIST_FILE" ]; then
source ${JAVALIST_FILE}
echo "Current Java set to ${JAVA_NAME}!"
fi
}
function javalist {
@luketn
luketn / build-and-run.sh
Created July 20, 2021 08:10
Build and Run Micos on Mac M1
docker run --rm -it --platform linux/amd64 -w /bingos --entrypoint make -v /Users/lthompson/IdeaProjects/BingOS:/bingos -v /Users/lthompson/IdeaProjects/micos:/micos jett59/bingos-build "MICOS_PATH=/micos"
cp /Users/lthompson/IdeaProjects/BingOS/grubimage.iso ./micos.iso
qemu-system-x86_64 -cdrom "$(pwd)/micos.iso"
# Switch to privileged user 'root'
sudo su
# Install Docker + git, enabling the docker process to start on boot
yum install -y docker git
systemctl enable --now docker
# Install Docker-Compose
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
@luketn
luketn / spark.java
Created November 20, 2021 06:08
Convert CSV to Parquet
package com.thing;
import com.google.common.io.Files;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import lombok.extern.slf4j.Slf4j;
import java.awt.*;
import java.io.File;
@luketn
luketn / Boto3 Typed in PyCharm.md
Created February 3, 2022 04:13
This is how you set up PyCharm for Boto3 python development with types.
@luketn
luketn / Dockerfile
Created September 14, 2022 07:14
Serverless MongoDB Docker Lambda Import/Export Sync
# Ref: https://gallery.ecr.aws/lambda/provided
# + https://docs.aws.amazon.com/lambda/latest/dg/runtimes-images.html
# + https://aws.amazon.com/blogs/aws/new-for-aws-lambda-container-image-support/
FROM public.ecr.aws/lambda/provided:al2
COPY bootstrap.sh ${LAMBDA_RUNTIME_DIR}/bootstrap
COPY function.sh ${LAMBDA_TASK_ROOT}
# Ref https://www.mongodb.com/docs/v6.0/tutorial/install-mongodb-on-amazon/
SHELL ["/bin/bash", "-c"]
@luketn
luketn / run-mongo-replica-set.sh
Last active September 27, 2022 05:10
Start MongoDB docker image as a replica set
#!/bin/sh
# Map input values from the GitHub Actions workflow to shell variables
MONGODB_VERSION="6.0"
MONGODB_REPLICA_SET="test-rs"
MONGODB_PORT="27017"
MONGO_CMD="mongosh" # for earlier versions use "mongo"
if [ -z "$MONGODB_VERSION" ]; then
echo ""
@luketn
luketn / mongo-trim.sh
Created October 28, 2022 07:49
Create Trimmed Mongo node_modules (excluding the AWS SDK) for deployment to Lambda
#!/usr/bin/env bash
set -e
rm -rf node_modules
npm init -y
npm install mongodb --production
echo "before: $(du -sh node_modules)"
rm -rf node_modules/@aws-sdk
rm -rf node_modules/@aws-crypto