Skip to content

Instantly share code, notes, and snippets.

View olso's full-sized avatar
Working from home

Martin Olsansky olso

Working from home
View GitHub Profile

Keybase proof

I hereby claim:

  • I am olso on github.
  • I am olso ( on keybase.
  • I have a public key ASAjyl8XHSDHwxAZp-o0tBRL9pOHZTa0IUfL_oSL8V7jVQo

To claim this, I am signing this object:

olso /
Created July 31, 2017 09:49
Timesheet log
git log --after="2017-06-01" --until="2017-07-01" --pretty=format:'%ad;%s' --author='olso' > ~/Desktop/timesheet-june-log.csv
olso /
Last active January 25, 2019 13:07
Shamir shares, if you crack, contains reward in form of bitcoin blockchain private key

secret-share-split --count 4 --threshold 3 > ~/shares.txt

olso /
Last active January 11, 2018 13:36
Launch Chrome with disabled web sec
open -n -a "Google Chrome" --args --disable-web-security --profile-directory="Profile 1"
docker run --rm \
-v `pwd`/src:/game \
--env GOOS=js --env GOARCH=wasm \
golang:1.12-rc \
/bin/bash -c "go build -o /game/game.wasm /game/main.go; cp /usr/local/go/misc/wasm/wasm_exec.js /game/wasm_exec.js"
<!DOCTYPE html>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<script type="text/javascript" src="./wasm_exec.js"></script>
<script type="text/javascript">
async function run(fileUrl) {
try {
package main
import (
var (
// js.Value can be any JS object/type/constructor
window, doc, body, canvas, laserCtx, beep js.Value
func main() {
// declare renderer at compile time
var renderer js.Func
// looks like JS callback, right 😌
renderer = js.FuncOf(func(this js.Value, args []js.Value) interface{} {
// for the 60fps anims
window.Call("requestAnimationFrame", renderer)
func main() {
// creates empty channel
runGameForever := make(chan bool)
// attempt to receive from empty channel
// since noone ever sends anything on it, it's essentially a blocking forever operation
// we basically have a daeomon/service/background program
func updatePlayer(event js.Value) {
mouseX := event.Get("clientX").Float()
mouseY := event.Get("clientY").Float()
// basically threads/async/parallelism
// TODO difference with Web Workers
// TODO difference with Service Workers
go log("mouseEvent", "x", mouseX, "y", mouseY)