Skip to content

Instantly share code, notes, and snippets.

@damianknopp
damianknopp / rotN.java
Last active February 28, 2023 21:47
decode rot N
import java.nio.file.*;
Path p1 = Path.of("rot.txt");
String cipher = Files.readString(p1);
BiConsumer<String, Integer> decode = (cipher, rot) -> {
char[] cipherArray = cipher.toLowerCase().toCharArray();
for (int i = 0; i < cipherArray.length; i++) {
if (!Character.isLetter(cipherArray[i])) {
continue;
@damianknopp
damianknopp / add-ts-to-react-and-webpack.sh
Created June 15, 2020 16:41
add-ts-to-react-and-webpack.sh
#!/usr/bin/env bash
# eject react starter and run
yarn add --dev fork-ts-checker-webpack-plugin \
typescript \
@types/node \
@types/react \
@types/react-dom \
@types/react-redux \
@types/jest \
@damianknopp
damianknopp / free-port.sh
Created June 12, 2020 15:22
free-port.sh
kill -9 $(lsof -t -i:3000)
@damianknopp
damianknopp / ssm-ping-status.sh
Created May 8, 2020 16:25
ssm-ping-status.sh
#!/usr/bin/env bash
instance=${1:-unk}
aws ssm describe-instance-information --filter "Key=InstanceIds,Values=${instance}"
@damianknopp
damianknopp / simple-logstash-elk-grok.txt
Created May 7, 2020 17:01
simple-logstash-elk-grok.txt
54.xx.xxx.xxx - - [07/May/2020:13:18:12 +0000] "GET / HTTP/1.1" 200 9877 "-" "kube-probe/1.16"
%{IP:ip} \- \- \[%{NUMBER:day}/%{DATA:month}/%{NUMBER:year}:%{DATA:time} +%{NUMBER:offset}\] "%{WORD:method} %{URIPATH:path} %{DATA:protocol}" %{NUMBER:status} %{NUMBER:size} %{QS:dash3} %{QS:browser}
{
"offset": "+0000",
"method": "GET",
"year": "2020",
"ip": "54.xx.xxx.xxx",
"dash3": "\"-\"",
"path": "/",
@damianknopp
damianknopp / fio.sh
Created April 22, 2020 01:39
aws-fio.sh
# https://aws.amazon.com/blogs/aws/new-burst-balance-metric-for-ec2s-general-purpose-ssd-gp2-volumes/
fio --filename=/dev/nvme2n1 --rw=randread --bs=16k --runtime=60 --time_based=1 --size=64m --iodepth=32 --ioengine=libaio --name=gp2-16kb-burst-bucket-test
@damianknopp
damianknopp / user_data.sh
Created April 2, 2020 18:03
user_data.sh
# sudo apt install chrony -y && chronyc activity
# https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/
# set /etc/chrony/chrony.conf to not use ntp pool but local meta ip with
# server 169.254.169.123 prefer iburst
# restart chrony
@damianknopp
damianknopp / livy-sparkpi.sh
Created March 14, 2020 20:30
livy-sparkpi.sh
curl -k -H 'Content-Type: application/json' -X POST -d '{
"conf": {
"spark.kubernetes.container.image.pullPolicy": "Always",
"spark.kubernetes.authenticate.driver.serviceAccountName": "default"
},
"file": "local:///opt/spark/examples/jars/spark-examples_2.11-2.4.5.jar",
"className": "org.apache.spark.examples.SparkPi"
}' http://<ip>:<port>/batches
@damianknopp
damianknopp / kube-dashboard-account.sh
Created March 3, 2020 15:02
kube-dashboard-account.sh
 # NOTE: gives dashboard account cluster-admin which is not ideal!
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
@damianknopp
damianknopp / dmk-kubespray-apply.sh
Created February 29, 2020 21:52
dmk-kubespray-apply.sh
#!/bin/bash
aws-vault exec dmk-api -- ansible-playbook -i inventory/kube02/hosts.yml \
--user ubuntu \
--flush-cache \
--become -verbose \
--private-key=/Users/dmk/keys/kube01.pem cluster.yml