I hereby claim:
- I am olso on github.
- I am olso (https://keybase.io/olso) on keybase.
- I have a public key ASAjyl8XHSDHwxAZp-o0tBRL9pOHZTa0IUfL_oSL8V7jVQo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
git log --after="2017-06-01" --until="2017-07-01" --pretty=format:'%ad;%s' --author='olso' > ~/Desktop/timesheet-june-log.csv |
open -n -a "Google Chrome" --args --disable-web-security --profile-directory="Profile 1" |
build_go: | |
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> | |
<html> | |
<head> | |
<meta charset="utf-8" /> | |
<meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |
<style>body{height:100%;width:100%;padding:0;margin:0;background-color:#000000;color:#FFFFFF;font-family:Arial,Helvetica,sans-serif}</style> | |
<script type="text/javascript" src="./wasm_exec.js"></script> | |
<script type="text/javascript"> | |
async function run(fileUrl) { | |
try { |
package main | |
import ( | |
// https://github.com/golang/go/tree/master/src/syscall/js | |
"syscall/js" | |
) | |
var ( | |
// js.Value can be any JS object/type/constructor | |
window, doc, body, canvas, laserCtx, beep js.Value |
func main() { | |
setup() | |
// 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{} { | |
updateGame() | |
// for the 60fps anims | |
window.Call("requestAnimationFrame", renderer) |
func main() { | |
// https://stackoverflow.com/a/47262117 | |
// creates empty channel | |
runGameForever := make(chan bool) | |
setup() | |
// 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 | |
// https://gobyexample.com/goroutines | |
go log("mouseEvent", "x", mouseX, "y", mouseY) |