Skip to content

Instantly share code, notes, and snippets.

@simonswine
simonswine / copy-k8s-resources-across-namespaces.sh
Created August 2, 2016 13:40
Copying kubernetes resources accross namespaces
kubectl get rs,secrets -o json --namespace old | jq '.items[].metadata.namespace = "new"' | kubectl create-f -
let
blue = "000096";
white = "ffffff";
green = "009600";
orange = "ff7700";
dark-orange = "803500";
red = "ff0000";
in
''
g logo ${white}
@simonswine
simonswine / install-openjdk8-musl.sh
Created August 11, 2019 10:54
Install alpine openjdk8 onto OpenWRT (armv7)
#!/bin/sh
set -o errexit
set -o nounset
set -o pipefail
set -x
REVISION=8.212.04-r0
URL=http://dl-cdn.alpinelinux.org/alpine/v3.10/community/armv7/
PACKAGES="openjdk8 openjdk8-jre openjdk8-jre-lib openjdk8-jre-base"
@simonswine
simonswine / phlare.py
Created June 12, 2023 16:06
Open Phlare symobls with panda
import pandas as pd
block = '01H2FK73D796PRDR32PGGMKV2H/'
mappings = pd.read_parquet(block+'mappings.parquet', engine='pyarrow')
strings = pd.read_parquet(block+'strings.parquet', engine='pyarrow')
locations = pd.read_parquet(block+'locations.parquet', engine='pyarrow')
stacktraces = pd.read_parquet(block+'stacktraces.parquet', engine='pyarrow')
functions = pd.read_parquet(block+'functions.parquet', engine='pyarrow')
def resolve_strings(df, columns=[]):
@simonswine
simonswine / loki.river
Created May 24, 2023 09:20
Grafana Agent Flow config for forwarding logs
logging {
level = "info"
format = "logfmt"
}
discovery.kubernetes "pods" {
role = "pod"
}
discovery.relabel "local_pods" {
@simonswine
simonswine / tshark.sh
Last active June 16, 2021 15:55
How to decode GRPC with tshark
# configure protobuf search paths
# ensure you are in a cloned loki root path
cat > ~/.config/wireshark/protobuf_search_paths <<EOF
"$(pwd)/pkg/logproto","TRUE"
"$(pwd)","FALSE"
"$(pwd)/vendor","FALSE"
"/nix/store/drrmxvscqaa6521a46lqwkhhv82qr88g-source/vendor/github.com/gogo/protobuf/protobuf","FALSE"
EOF
# capture and decode 9095 as http2
@simonswine
simonswine / monitor-do-not-compare-connector.patch
Created February 7, 2021 10:49
Mutter patch to not compare connectors
From 7a8092b5a262095f02d97c62d56a82d856b66500 Mon Sep 17 00:00:00 2001
From: Christian Simon <simon@swine.de>
Date: Sun, 7 Feb 2021 10:42:48 +0000
Subject: [PATCH] hack: Do not compare connector
Necessary for my Thunderbolt adapter on X1 Carbon
---
src/backends/meta-monitor.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

Keybase proof

I hereby claim:

  • I am simonswine on github.
  • I am simonswine (https://keybase.io/simonswine) on keybase.
  • I have a public key whose fingerprint is D29F 745D D48C A0E0 C33A 7B08 1FF2 C09C 6204 5ED2

To claim this, I am signing this object:

@simonswine
simonswine / openwrt_lede_pkg_diff.sh
Created October 18, 2017 20:54
List installed packages after ROM was installed on OpenWRT/LEDE
# show pages installed since ROM
opkg list_installed | sort > /tmp/installed_now
opkg list_installed -o /rom | sort > /tmp/installed_rom
grep -Fxv -f /tmp/installed_rom /tmp/installed_now | tee /tmp/installed_diff
# echo installable list of packages
cat /tmp/installed_diff | cut -f 1 -d ' ' | xargs
#!/usr/bin/awk -f
BEGIN {
D="cd /overlay/upper/usr/lib/opkg/info&&"
C=D"ls *.list"
S="sort -n"
while(C|getline>0) {
P=substr(F=$1,1,length($1)-5)
J=D"du -sk $(cat "F")"
s=0
while(J|getline>0) {