Skip to content

Instantly share code, notes, and snippets.

View lox's full-sized avatar

Lachlan Donald lox

View GitHub Profile
@lox
lox / Setup.md
Last active March 27, 2024 01:35
Setup Ubuntu 22.04 for Deep Learning
# Check for Nvidia Hardware
lspci | grep -i nvidia

# Update
apt update
apt upgrade

# Install Nvidia drivers
apt install nvidia-driver-535 nvtop
@lox
lox / main.tf
Last active September 14, 2023 11:28
Drata Integration for GCP in Terraform
# https://help.drata.com/en/articles/4994112-gcp-connection-details
# Create a new project for Drata Integration
resource "google_project" "drata" {
name = var.project_name
project_id = var.project_id
org_id = var.org_id
billing_account = var.billing_account_id
auto_create_network = false
}
@lox
lox / intercept.js
Created September 10, 2023 04:42
Example of using mswjs interceptors
import { BatchInterceptor } from '@mswjs/interceptors'
import { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'
import { FetchInterceptor } from '@mswjs/interceptors/fetch'
import http from 'http'
const interceptor = new BatchInterceptor({
name: 'my-interceptor',
interceptors: [new ClientRequestInterceptor(), new FetchInterceptor()],
})
@lox
lox / main.tf
Last active September 5, 2023 23:45
Terraform for setting up Identity Federation with GCP for Namespace workloads
// See https://cloud.namespace.so/docs/federation/gcp
locals {
roles = [
"roles/resourcemanager.projectIamAdmin", # allow managing identity
"roles/editor", # allow to manage all resources
"roles/iam.serviceAccountAdmin", # allow to manage service accounts
]
}
@lox
lox / Worker.js
Last active August 31, 2023 09:58
Cloudflare worker for rewriting a custom domain to work with Firebase SDK
addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request))
})
/**
* Intercept requests and redirect to Firestore API
* @param {Request} request
*/
async function handleRequest(request) {
const url = new URL(request.url)
@lox
lox / stream-to-cw-logs
Created May 24, 2023 02:35
Stream stdin to cloudwatch logs
#!/bin/bash
# Enable bash strict mode
set -euo pipefail
IFS=$'\n\t'
# Disable the pager for aws commands (no less on the host)
export AWS_PAGER=""
# Get the log group arn as a parameter and cut the group name out of it
@lox
lox / gist:c7a3b44970201b716e600f3538a6e351
Last active March 14, 2023 22:20
A Buildkite pre-bootstrap hook that protects against attacks via known dangerous environment variables
#!/bin/bash
set -euo pipefail
# Buildkite pre-bootstrap hook that fails a build if there are any
# dangerous environment variables set.
blocklist=(
# General Linux
"PATH" # Executable search path
"LD_PRELOAD" # Preloaded shared libraries
@lox
lox / docker-compose.yml
Created December 21, 2022 05:40
Donald Family Minecraft
version: "3.5"
services:
minecraft:
image: 05jchambers/legendary-minecraft-geyser-floodgate:latest
restart: "unless-stopped"
stdin_open: true
tty: true
volumes:
- ./minecraft:/minecraft
environment:
@lox
lox / test_mysql_docker.sh
Created June 9, 2022 06:33
MySQL in Docker seems slow to start 🤔
#!/bin/bash
set -euo pipefail
wait_for_container() {
echo -n "Waiting for $1"
for _ in $(seq 1 120); do
test "$(docker inspect --format "{{.State.Health.Status}}" "$1")" == "healthy" && break
sleep 1
echo -n .
done
@lox
lox / indicate.go
Created January 2, 2022 02:18
Thinking on an API for spinner/progress bar library
// Spinners and Progress bars are the same thing.
// They are assembled with a go template with some built in functions or templated strings
// for things like messages before and after.
// Render a spinner that looks like:
// ⡀ Loading blah... [3s]
spinner := indicate.New(context.Background(),
`{{ spinner "⠁⠂⠄⡀⢀⠠⠐⠈ " }} {{ template "message" }} [{{ elapsed }}]`).
WithDefaults(indicate.SpinnerDefaults).