Skip to content

Instantly share code, notes, and snippets.

View JanHolger's full-sized avatar

Jan Bebendorf JanHolger

  • LUMASERV GmbH
  • Germany, Koblenz
  • 21:11 (UTC +02:00)
View GitHub Profile
@JanHolger
JanHolger / migrate.py
Last active April 16, 2025 08:28
Migrate etcd -> kine and kine -> etcd
# !!!!!!!!!!!!!!!!!!!!
# Before using this script stop the apiserver and ensure that there are no leases (etcdctl lease list). If there are any leases, revoke them first.
# !!!!!!!!!!!!!!!!!!!!
# You may need to: export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
import etcd3
# Replace with your etcd instance
from_client = etcd3.client(
host="127.0.0.1",
@JanHolger
JanHolger / ArrayBackedTreeMap.class
Last active May 29, 2023 14:15
A TreeMap that's values are backed by a fixed index array list and therefore allows faster iterative access
import java.util.*;
import java.util.stream.Collectors;
class ArrayBackedTreeMap<K,V> extends AbstractMap<K, V> {
private final Map<K, Integer> tree = new TreeMap<>();
private final FixedIndexArrayList<V> values = new FixedIndexArrayList<>(10, 10);
public V put(K k, V v) {
Integer i = tree.get(k);
@JanHolger
JanHolger / url_to_base64_data_url.lua
Created November 5, 2022 14:27
Downloads a file from a given url and converts it into a data url
function base64Encode(data)
local function encodeChar(n)
if n <= 25 then
return string.char(65 + n)
end
if n <= 51 then
return string.char(97 + n - 26)
end
if n <= 61 then
return string.char(48 + n - 52)
@JanHolger
JanHolger / box-collision.js
Last active December 26, 2021 23:52
A javascript function that can do basic collision detection on n-dimensional boxes
/**
@param a The middlepoint coordinates and half extent sizes of the floating box (e.g. [x, y, z, w, h, d])
@param b The middlepoint coordinates and half extent sizes of the static box (e.g. [x, y, z, w, h, d])
@param v The "velocity" or "motion" vector that should be applied
@return The "velocity" or "motion" vector that can be applied without overlapping
*/
function boxCollide(a, b, v) {
// Find the amount of dimensions from the element count of a
const dimCount = a.length / 2
@JanHolger
JanHolger / Test.java
Last active August 26, 2021 18:39
Abusing type pattern matching for integer ranges in switch (Java 17)
public class Test {
public static void main(String [] args) {
Integer age = Integer.parseInt(args[0]);
switch(age) {
case Integer x && x < 0:
System.out.println("Not born yet!");
break;
case Integer x && x < 18:
System.out.println("Minor!");
@JanHolger
JanHolger / Kubernetes.java
Last active July 24, 2021 22:23
Util Class for accessing the Kubernetes API Java client
import io.kubernetes.client.common.KubernetesListObject;
import io.kubernetes.client.common.KubernetesObject;
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.models.*;
import io.kubernetes.client.util.ClientBuilder;
import io.kubernetes.client.util.KubeConfig;
import io.kubernetes.client.util.credentials.AccessTokenAuthentication;
import io.kubernetes.client.util.generic.GenericKubernetesApi;
import io.kubernetes.client.util.generic.KubernetesApiResponse;
import io.kubernetes.client.util.generic.options.CreateOptions;
@JanHolger
JanHolger / install-proxmox-s3-snippet-storage.sh
Created November 20, 2020 22:40
This script will install an s3 snippet storage server for ProxMox (cicustom) using Samba and MinIO
#!/bin/bash
echo "Password for Samba User 'snippets':"
read -s smb_password_snippets
echo "Password for S3 User 'admin':"
read -s s3_password_admin
echo "Password for S3 User 'dev' (min-length: 8):"
read -s s3_password_dev
echo "Password for S3 User 'api' (min-length: 8):"
read -s s3_password_api
wget -O /usr/local/bin/minio https://dl.min.io/server/minio/release/linux-amd64/minio
@JanHolger
JanHolger / merge.sh
Created July 7, 2020 14:41
Merges Kubernetes Configs from ~/.kube/config.d into ~/.kube/config for use with kubectx
#!/bin/bash
FILES="nonexistent"
for f in ~/.kube/config.d/*
do
FILES="${FILES}:${f}"
done
KUBECONFIG=$FILES kubectl config view --merge --flatten > ~/.kube/config
@JanHolger
JanHolger / client.lua
Created January 2, 2020 12:27
Code from my 3. Onset Scripting Tutorial
AddEvent("OnKeyPress", function(key)
if key ~= "U" then
return
end
local vehicles = GetStreamedVehicles()
local closest = nil
local dist = 100000
local pX, pY, pZ = GetPlayerLocation()
for i=1,#vehicles do
local vX, vY, vZ = GetVehicleLocation(vehicles[i])
@JanHolger
JanHolger / anotherpackage.lua
Created October 21, 2019 18:38
Onset Function Export example
local common
AddEvent("OnPackageStart", function()
common = ImportPackage("commonpackage")
common.SomeFunction()
end)