kawasin73のブログ

技術記事とかいろんなことをかくブログです

Go

golang.tokyo #28 で登壇して賞品をいただきました

限りある時間を大切に。どうも、かわしんです。情報洪水の現世をスマートに生きていきましょう。 さて、去る 12 月 4 日に開催された 「golang.tokyo #28 ~年末だよ!Go大忘年会&LT大会!~」 で LT をしてきました。 golangtokyo.connpass.com 発表資料はこ…

Go でトランザクションをフルスクラッチで実装した

一歩ずつ一歩ずつ前へ進んでいく、確実に。どうも、かわしんです。 到底 1 記事に収まるような内容ではなく長いので、トランザクションの作り方に興味のない方は途中の「なぜ Go なのか」まで読んでいただければ嬉しいです。 この記事は、Go2 Advent Calenda…

Go で昇格可能な RWMutex を実装した

順番は守りましょう。どうも、かわしんです。トランザクションを実装中です。 さて、先日トランザクションの並行制御アルゴリズムである「S2PL (Strict Two Phase Lock)」を実装した 1 のですが、Read オペレーションでは Read Lock を取った後にすぐに解放…

Go : Mutex は channel の 4 倍速い

Go

速ければ速いほど良い。どうもかわしんです。トランザクションを実装中です。 トランザクションの並行処理で S2PL (Strict Two Phase Lock) を Go で実装しようとしているのですが、どうしても昇格可能な Reader Writer Mutex が必要になり、Github にいい実…

メモリアロケーションに対する罪悪感

いつも心に省メモリ。どうも、かわしんです。今日はメモリアロケーションについてのポエムを綴ります。さらっと流してください。 ちなみに、ここでいう省メモリとはメモリサイズだけの話ではありません。 メモリをアロケート(確保)するとき、あなたはどん…

ロバストなプロトコルを設計して実装した

どうも、ロバストと愉快な仲間たちのロバストこと、かわしんです。そうです、私がロバストです。 さて、8 月 13 日から 8 月 17 日までの 4 泊 5 日で セキュリティネクストキャンプ に参加してきました。 セキュリティネクストキャンプとは、セキュリティ・…

Twitter をフィルタリングする Twilter を作った

あなたとわたしと Twitter。どうも、かわしんです。 今週の頭の日曜月曜火曜の 3 日間かけて Twilter というコマンド(?)サービス(?)を作ったので、その紹介をしたいと思います。 Github リポジトリはこちらです。star をつけていただけると喜びます。 …

Go Conference 2019 Spring で登壇しました

困った時はドキュメント、どうもかわしんです。 去る 2019 年 5 月 18 日に開催された Go Conference 2019 Spring に LT 枠で登壇してきました。 数百人規模のカンファレンスで登壇するのは初めてだったのでいい経験になりました。ありがとうございました。 …

Go 言語でタイムアウト付きのファイルロックを実現する

言語の壁をぶっ壊す。どうも、かわしんです。 プロセス間の待ち合わせの手法としてファイルロックがあります。このファイルロックをタイムアウトでキャンセルすることを可能にするために以下のライブラリを作ったのでその解説をしたいと思います。 github.co…

Go でビットベクトルライブラリを作った話

この記事は、DMM.com Advent Calendar 2018 の 15 日目の記事です。 Go 言語でエンディアン(ビッグエンディアン、リトルエンディアン)を指定できるビットベクトルライブラリを作ったのでその紹介をします。 このライブラリは、mmap でファイルがマッピング…

俺はビッグエンディアンでテストがしたいんだ!!!

この記事は、ソフトウェアテスト #2 Advent Calendar 2018 - Qiita の1日目です。 github.com/kawasin73/bitset という Go 言語のビットベクトルのライブラリを作りました。このライブラリはバイトオーダーがビッグエンディアンのマシンでもリトルエンディ…