Skip to content

Instantly share code, notes, and snippets.


Block or report user

Report or block AndreKR

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
AndreKR / logrus.go
Last active Oct 7, 2019
Initializing logrus
View logrus.go
// The state of Go logging libraries is disheartening...
import (
"" // not ansicolor because recommends colorable
log ""
AndreKR / tgit_dmerge.txt
Last active Mar 29, 2019
TortoiseGit + DiffMerge
View tgit_dmerge.txt
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" -m -t1=%yname -t2=%bname -t3=%tname -result=%merged %mine %base %theirs
AndreKR /
Created Dec 13, 2018
Get all resources in a Kubernetes cluster

kubectl api-resources --verbs=list -o name | xargs -n 1 -t kubectl get --ignore-not-found --all-namespaces

AndreKR /
Created Aug 24, 2017
Vue.js v-model vs. v-bind.sync

Vue.js: v-model vs. v-bind:<propname>.sync

These examples use the expression foo as the data source in the parent.

Prop name Event name
v-model="foo" value by default input by default
v-bind:<propname>.sync="foo" arbitrary update:<propname>


AndreKR / latest_gitlab_artifacts.txt
Last active Sep 13, 2017
Download the latest artifacts from GitLab
View latest_gitlab_artifacts.txt
# ZIP:
wget --header="PRIVATE-TOKEN: $GITLAB_TOKEN" "https://<gitlab>/<group>/<project>/builds/artifacts/master/download?job=<jobname>"
wget --header="PRIVATE-TOKEN: $GITLAB_TOKEN" "https://<gitlab>/<group>/<project>/-/jobs/artifacts/master/download?job=<jobname>"
# Single file:
wget -O /path/to/file --header="PRIVATE-TOKEN: $GITLAB_TOKEN" "https://<gitlab>/<group>/<project>/builds/artifacts/master/raw/<filename>?job=<jobname>"
AndreKR / go_release_build.txt
Last active May 20, 2018
Build smaller executables with Go
View go_release_build.txt
go build -gcflags=all=-trimpath=c:\path\to\trim -asmflags=all=-trimpath=c:\path\to\trim -ldflags=all="-s -w"
upx ...
View exedir.go
var exeDir = getExeDir()
func getExeDir() string {
if os.Getenv("EXEDIR") != "" {
return os.Getenv("EXEDIR")
} else {
return filepath.Dir(os.Args[0])
AndreKR / http_context.go
Created Jun 11, 2017
Go http + context
View http_context.go
// While the Go documentation promotes the context package for keeping track of request context and cancelation, to
// actually use it for canceling work in http requests some plumbing is necessary:
// getCancelableContextFromResponseWriter gets a context.Context that is canceled when the client (browser) closes the connection
func getCancelableContextFromResponseWriter(w http.ResponseWriter) context.Context {
// Create a context that can be handed down to the workers to relay cancellation
ctx, cancelContext := context.WithCancel(context.Background())
// Get a channel that receives a value when the request is canceled
View trigger.go
package main
// Trigger ensures a worker runs once after it has been triggered, no matter how many trigger events happened during
// its last run.
// Usage:
// trigger := NewTrigger()
// go func() {
// for _ = range trigger {
// do_work()
AndreKR / result_and_error_channel.go
Last active Mar 19, 2017
Returning result and error through a channel
View result_and_error_channel.go
// (I prefer "Two channels wrapped" and "Anonymous struct" over the other two)
// Two channels
resultCh := make(chan Result)
errorCh := make(chan Result)
go func(resultCh chan Result, errorCh chan errpr) {
errorCh <- errors.New("Does not compute")}
resultCh <- result
}(resultCh, errorCh)
You can’t perform that action at this time.