Skip to content

Instantly share code, notes, and snippets.

View taka011239's full-sized avatar

takafumi tsuchida taka011239

View GitHub Profile
'use strict';
let arr = [10, 2, 5, 8, 6, 1, 3];
// ASCE
arr.sort((a, b) => a - b);
console.log(arr);
// DESC
arr.sort((a, b) => b - a);
@taka011239
taka011239 / asyncify.js
Last active October 27, 2015 23:29
callbackをasyncにする
function asyncify(fn) {
var origFn = fn;
var id = setTimeout(function () {
id = null;
if (fn) fn();
});
fn = null;
return function () {
@taka011239
taka011239 / timeoutify.js
Last active October 27, 2015 23:29
callbackにタイムアウトさせる
var fs = require('fs');
function timeoutify(fn, delay) {
var id = setTimeout(function () {
id = null;
fn(new Error('Timeout!'));
}, delay);
return function () {
if (id) {
@taka011239
taka011239 / example1.js
Last active October 20, 2015 03:11
letのblock scop
for (var i = 0; i < 5; i++) {
setTimeout(function () {
console.log(i);
}, i * 1000);
}
// 5, 5, 5, 5, 5
@taka011239
taka011239 / index.js
Created April 20, 2015 03:26
requirebin sketch
var http = require('http');
http.createServer(function(req, res) {
if(req.method === 'POST') {
res.end('POST');
console.log('POST');
} else if (req.method === 'GET') {
res.end('GET');
console.log('GET');
} else {
@taka011239
taka011239 / Linux.sh
Last active August 29, 2015 14:04
CLIでbatteryのステータスを%表示
acpi | grep -oE \[0-9\]+%
@taka011239
taka011239 / gist:9e0d10c3294278dab2be
Last active August 29, 2015 14:03
Go温泉 #2 + #GoCart

Go温泉 #2 + #GoCart

Go 温泉 + GoCart をしに行きましょう!

注意

GoCart の方は人数制限が 6 人なので、 温泉参加者が全員走れるとは限りません。 ご注意下さい。

日程

@taka011239
taka011239 / buffer channelとunbuffer channelの挙動差異.md
Last active August 29, 2015 14:02
buffer channelとunbuffer channelの挙動差異

buffered channelとunbuffered channelの挙動の違い

channelにbufferがあるかないかで、channelを使った同期の挙動が異なる。

詳しくは、公式のThe Go Memory Modelを参照。

Rule

以下のルールに従う。 bufferの有無で、送信と受信の優先順位が変わるので注意。

@taka011239
taka011239 / closure.go
Last active August 29, 2015 14:02
Goのclosureへのパラメータの渡し方
package closure
type Request struct {
Url string
}
func Closure1(reqs []*Request) {
for _, req := range reqs {
go func(req *Request) {
req.Url = "http://example.org"
package main
import (
"fmt"
"sync"
)
func main() {
ch := make(chan int)
var wg sync.WaitGroup