Skip to content

Instantly share code, notes, and snippets.

@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",
Bee Movie Script - Dialogue Transcript
According to all known laws
of aviation,
there is no way a bee
should be able to fly.
@Loupax
Loupax / phonesim.service
Created August 25, 2020 16:32
Service unit that rest up Phonesim and powers the simulated modem that is needed for Pulseaudio to recognize bluetooth microphones
[Unit]
Description=Phonesim service
Requires=ofono.service
StartLimitedIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
ExecStart=/usr/bin/phonesim -p 12345 /usr/share/phonesim/default.xml