たにしきんぐダム

プログラミングやったりゲームしてます

その他技術

Tests as Documentation

production code の設計についてはよく議論される一方、ユニットテストをどう書くべきかについてはあまり議論されることが少なく。とにかくカバレッジが高ければヨシみたいな感じで軽く扱われていることが多い気がする。 その結果、テストを書くときやとりわ…

Bitcoin SPV Wallet を Golang で実装してみた

Golang と Blockchain 技術の勉強に、こちら の記事を参考にして Bitcoin の SPV Wallet を Golang で実装してみました。 github.com 結構雑ですが、とりあえず以下のことができます。 Bitcoin Address の生成 UTXOをかき集めて残高を計算 UTXOをかき集めて…

トランザクション技術とリカバリとInnoDBパラメータを調べた

トランザクションはACID特性を満たすと言われている。 そのうちA(Atomicity)はトランザクション内の操作をAll or Nothingとなるよう保証し、トランザクションが中途半端に実行されて(アプリケーションレベルから見た)データの整合性が失われることを防ぐ特性…

readコマンドで 矢印キー や Ctrl+x などの入力を読み取る

この記事は CAMPHOR- Advent Calendar 2015 の2日目の記事です. シェルで標準入力を読み取るコマンドといったらreadコマンドがあります. readの概要 read Man Page | Bash | SS64.com readコマンドはシェルの組み込みコマンドで 標準入力を読み取り 改行文字…

PHP でジェネレータを作ったり遅延評価してみる

ジェネレータを作ったり遅延評価するのが流行っているようなので、PHP5.5.0から導入されたジェネレータを使って同様のことをPHPでもやってみようと思いました。 これまでの流れ Ruby の Enumerator でジェネレータを作ったり、遅延評価してみる - ryota-ka's…

vimプラグインをneobundleで管理してdotfilesをgithubで管理した

最近いろいろあってvimを使い始めた。 自宅のPCとかバイト先のPCで.vimrcとかプラグインを共有したいなあと思っていたのですが、.vimrc とか.bashrcの様なファイルをdotfilesとしてまとめて、 GitHubで管理すると良いみたいです。 Vimのプラグイン管理にはne…