Skip to content

Instantly share code, notes, and snippets.

@arnehormann
arnehormann / index.html
Created June 14, 2013 08:08
*reflect.StructField
<!DOCTYPE html>
<html><head><title>Go: '*reflect.StructField'</title><style>
html { background-color: #fafafa; }
div[data-kind] {
box-sizing: border-box;
position: relative;
/* font */
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
@arnehormann
arnehormann / ssl-email.sh
Last active April 20, 2016 11:52
create openssl certificates for ca, server and user (email); and sign them
#!/bin/bash
# crash on error exit codes and undefined variables
set -e -u
if [ "true" = "$TRACE" ]; then
# trace execution (+x to get rid of noise)
set -x
fi
@arnehormann
arnehormann / shortcut-generator.hta
Created July 11, 2013 14:11
create a bunch of shortcuts to a program with the specified arguments (intended and great for putty with pageant)
<html style="padding: 0; margin: 0; width: 690; height: 480;"><head>
<hta:application id="oShortcutter" applicationname="Shortcutter" border="thin" caption="yes" contextmenu="no" scroll="no" showintaskbar="yes" singleinstance="yes" />
<title>Shortcut Generator</title>
<script language="VBScript">
'<![CDATA[
Option Explicit
On Error Resume Next
Sub SelectFolder
' For next value see http://msdn.microsoft.com/en-us/library/bb773205(VS.85).aspx
#!/bin/bash
# stop on errors and undeclared variables
set -e -u -o pipefail
err() {
echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: $@" >&2
}
@arnehormann
arnehormann / set.go
Last active December 21, 2015 02:19
functional set variant in golang
package set
type Set interface {
Empty() bool
Size() int
Equal(t Set) bool
Subset(t Set) bool
Superset(t Set) bool
Union(t Set) Set
Intersection(t Set) Set
@arnehormann
arnehormann / must.go
Created September 23, 2013 10:58
usage example for reflect.MakeFunc: create panic-on-error wrappers which do not pass the error (in a comfortable but probably rather slow way)
import "reflect"
// assumption for fptr: func with error as last argument
func makeMust(fptr interface{}) {
must := func(in []reflect.Value) []reflect.Value {
if err := in[len(in)-1]; !err.IsNil() {
panic(err.Interface())
}
return in[:len(in)-1]
}
@arnehormann
arnehormann / bootstrap-ansible.sh
Created October 24, 2013 16:23
ansible with virtualenv bootstrap script
#!/bin/bash
# exit on error, undeclared variables and pipe failures
set -e -u -o pipefail
# ansible is made for python 2.7+
# TODO: check version(s) and provide better errors if anything fails
# install virtualenv if it's not installed yet
which -s virtualenv || (sudo easy_install pip && sudo pip install virtualenv)
@arnehormann
arnehormann / gzipstream.go
Last active September 27, 2017 16:24
A pretty small Go application compressing from stdin to stdout as gzip.
package main
import (
"compress/gzip"
"fmt"
"io"
"os"
"strconv"
"time"
)
@arnehormann
arnehormann / errcheck.go
Created November 15, 2013 14:03
reduce noise in example programs
type closer interface {
Close() error
}
type errorMessage string
func (err errorMessage) Error() string {
return string(err)
}
@arnehormann
arnehormann / TestHelper.java
Last active December 29, 2015 13:39
some reflection magic to help writing table based tests
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
public final class TestHelper {
public static void test(Object[][] tests, Object target, String methodName, Class<?>...argsTypes) throws Exception {