... or Why Pipelining Is Not That Easy
Golang Concurrency Patterns for brave and smart.
By @kachayev
{ | |
"snippets": [ | |
{ | |
"match": {"global": true, "pkgname": ".", "fn": ".*_test.go"}, | |
"snippets": [ | |
{"text": "func Test", "title": "", "value": "func Test${1:ObjectName}${2:TestName}(t *testing.T) {\n\t$0\n}"}, | |
{"text": "func Benchmark", "title": "", "value": "func Benchmark${1:ObjectName}${2:BenchmarkName}(b *testing.B) {\n\n\tb.StopTimer()\n\n\t$0\n\n\tb.StartTimer()\n\n\tfor i := 0; i < b.N; i++ {\n\t\t\n\t}\n\n}"}, | |
{"text": "func Example", "title": "", "value": "func Example${1:ObjectName}${2:ExampleName}() {\n\n\t$0\n\n\t// Output:\n\t// \n\n}"} | |
] | |
} |
package main | |
import ( | |
"net/http" | |
"database/sql" | |
"fmt" | |
"log" | |
"os" | |
) |
package main | |
import ( | |
"fmt" | |
"log" | |
"net/http" | |
"html/template" | |
"github.com/gorilla/sessions" |
... or Why Pipelining Is Not That Easy
Golang Concurrency Patterns for brave and smart.
By @kachayev
'use strict'; | |
/** | |
* The default alphabet is 25 numbers and lowercase letters. | |
* Any numbers that look like letters and vice versa are removed: | |
* 1 l, 0 o. | |
* Also the following letters are not present, to prevent any | |
* expletives: cfhistu | |
*/ | |
var ALPHABET = |
// A small SSH daemon providing bash sessions | |
// | |
// Server: | |
// cd my/new/dir/ | |
// #generate server keypair | |
// ssh-keygen -t rsa | |
// go get -v . | |
// go run sshd.go | |
// | |
// Client: |
package main | |
import ( | |
"github.com/gin-gonic/gin" | |
"database/sql" | |
"github.com/coopernurse/gorp" | |
_ "github.com/mattn/go-sqlite3" | |
"log" | |
"time" | |
"strconv" |
package main | |
import ( | |
"bytes" | |
"encoding/base64" | |
"flag" | |
"html/template" | |
"image" | |
"image/color" | |
"image/draw" |
func debounceChannel(interval time.Duration, output chan int) chan int { | |
input := make(chan int) | |
go func() { | |
var buffer int | |
var ok bool | |
// We do not start waiting for interval until called at least once | |
buffer, ok = <-input | |
// If channel closed exit, we could also close output |
#!/bin/bash | |
if [ "$GIT_SSH_KEY" != "" ]; then | |
echo "Cleaning up SSH config" >&1 | |
echo "" >&1 | |
# Now that npm has finished running, | |
# we shouldn't need the ssh key/config anymore. | |
# Remove the files that we created. | |
rm -f ~/.ssh/config | |
rm -f ~/.ssh/deploy_key |