Skip to content

Instantly share code, notes, and snippets.

@Loupax
Loupax / stuff.js
Last active March 27, 2024 08:48
Stuff you can find in the hardware store
const stuff = [
"allen wrenches",
"gerbil feeders",
"toilet seats",
"electric heaters",
"trash compactors",
"juice extractor",
"shower rods and water meters",
"walkie-talkies",
"copper wires safety goggles",
@Loupax
Loupax / config
Last active March 28, 2024 20:25
My i3 configuration + dependencies
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
@Loupax
Loupax / queue_processing.go
Last active September 15, 2022 10:46 — forked from valsteen/queue_processing.go
Queue processing
/*
This demonstrates a task scheduling loop where tasks can send back other tasks to the queue.
Program input: a nested list of items that can either be integers, or nested slices:
- when it's an integer, wait for 25 - value seconds
- when it's a slice, wait for len(slice) seconds, then put back each item in the queue to be processed next
waiting time simulates some processing, on which a concurrency limit is applied ( both waiting times share the same
limit ). pushing back to the queue should not be blocking.
package jwt_test
func parsePrivatePEM(pemString string) *rsa.PrivateKey {
block, _ := pem.Decode([]byte(pemString))
key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
return key
}
func parsePublicPEM(pemString string) *rsa.PublicKey {
block, _ := pem.Decode([]byte(pemString))
@Loupax
Loupax / test.go
Created December 17, 2021 16:41
Generate curl request from test
func generateCurlTest(testName string, r *http.Request, w *httptest.ResponseRecorder) {
fmt.Println(fmt.Sprintf("### %s", testName))
var b []byte
if r.Body != nil {
b, _ = ioutil.ReadAll(r.Body)
}
r.Body = ioutil.NopCloser(bytes.NewBuffer(b))
command, _ := http2curl.GetCurlCommand(r)
fmt.Printf("```\n%s\n```\n", command)
r.Body = ioutil.NopCloser(bytes.NewBuffer(b))
@Loupax
Loupax / wait-for-it
Created November 18, 2021 13:45
A script that waits for mock aws to be ready without depending on anything but the aws-cli
#!/bin/bash
echo "Waiting for dynamodb to be up"
until aws dynamodb --endpoint-url http://mock-aws:4566 list-tables 2>/dev/null; do echo "Waiting for localstack to be ready";sleep 1; done
@Loupax
Loupax / review_go.sh
Created October 7, 2021 08:51
Automatically reviews all changed files of a go project
function review_go_branch(){
compareAgainst="$1"
if [ -z "$compareAgainst" ]
then
compareAgainst="origin/master"
fi
files=($(git diff --name-status --diff-filter=ACM $compareAgainst | awk '{print $2}'))
if [ -z "$files" ]
then
return 0
@Loupax
Loupax / pre-push
Last active October 6, 2021 20:33
golang-ci linter for files getting pushed to remote only
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
@Loupax
Loupax / .profile
Created May 17, 2021 06:56
My tmux-vim setup
export EDITOR=vim
# This will allow me to send files to my already open vim
# from the command line.
# Automatically focuses on the first pane which should be
# where my vim instanse lives
tab(){
vim --servername workspace --remote-tab "$@"
tmux select-pane -t 0
}
#!/bin/bash
# Dependencies: xargs, jq
#
# Example usages:
# fsToJson file file2 file2
# fsToJson $(ls file*)
# will generate something like
# {
# "file": "file contents",