Block Rockin’ Codes

back with another one of those block rockin' codes

golang

Golang Error Handling lesson by Rob Pike

Intro この記事は Go Advent Calendar 2014 の 15 日目の記事です。 例えばネットワークのフレーム処理的なものを書いている場合、以下のようなコードがよくでてきます。 There are many codes like this, while writing a Network Frame Parser program. va…

Go のスライスでハマッたところ

Go を始めた頃、謎に思っていたスライスの挙動についての話。

Go 1.3 で入った sync.Pool

先週リリースされた Go 1.3 で追加された sync.Pool について調べました。

Go のスライスの内部実装

Go のスライスの内部実装と、それを踏まえた効率のよいメモリ確保や取り回しについて解説します。

そうだ、と思い立って京都で Go のハンズオンしてきました。 #gokyoto

Intro 東京であったとある勉強会で、 @shokiri さんに「京都に来てください」と言われたので、「高倉二条連れてってくれるならいいです」 と二つ返事で引き受けたので、タイトルの通り京都にいって Go のハンズ・オンしてきました。 Go勉強会 そうだ京都、行…

Go の Generator を channel と closure で速度比較(または Go でのアトミック処理イディオム)

追記 この記事は元々 Go のイディオムとして、いわゆるジェネレータの実装がどうできるのかを軽い気持ちで書いただけで、速いから「Closure を使いましょう」などと一言も言ってなかったのですが、一方が channel であったため原子性についての言及がいくつ…

Go でベンチマーク

Intro Go にはベンチマークを取る仕組みが標準で備わっています。 テストを書く仕組みも標準で備わっており、 testing モジュールと go test コマンドで行いますが、 ベンチも同じような形で実行することができます。 今回は簡単なベンチ取り方を紹介します…

Advanced Go Concurrency 3 つのパターン

intro ちょっと時間が経ってしまいましたが、 Go研 vol.03 では、 Google I/O 2013 で行われてた Go のセッションの 1 つである下記をテーマに研究しました。 Advanced Go Concurrency Patterns 資料は以下です。 https://github.com/goken/goken/blob/maste…

Go1.1 の Race Detector

intro 先々週、Go 1.1 がリリースされました。いくつか新しい機能が入ったのですが、その中の Race Detector というのが面白そうだったので、 軽く調べてみました。 Race Detector この機能は、簡単に言うと「レースコンディションが発生していないか」を調…

Go の並行処理

intro 先日の Go のカンファレンス GoCon で、 Go の並行処理周りについて発表させて頂きました。 Go Conference 2013 spring - connpass 具体的には Goroutine や Channel の話ですが、これらの機能は結構面白くて、いじって遊んでるだけでもわくわくします…