Entries from 2014-01-01 to 1 year

移転しました

今後はメモも含めKazuho's Weblogに書いて行こうと思います。

OSSの開発モデルを、そのまま社内に持ち込むのは止めたほうがいい(もしくはコードレビューの話)

以前以下のようにツイートした話だけど、OSSの開発モデルを社内開発にそのまま持ち込むのは危険。 チーム開発の場合、簡単にコメント返せないようなPR送られた時点で負けだと思ってる。無駄なコードが生産されないよう事前に設計を詰める作業をすべき / “雑…

MacBookのCPUクロックを表示する方法(Intel Power Gadget)

Intel Power Gadgetをインストールすると、手元のMacのCPUクロックやGPUクロックを表示することができる。以下は同ツールをMacBook Pro(Early 2013; 2.4GHz Core i7)で実行している画面だが、負荷をかけた際に定格の2.4GHzを上回る3.2GHzで動作していること…

WebSocketsでの送信処理に関する注意点(CLOSINGステートとcloseイベントに関する疑問)

WebSocketsの接続状態には、CONNECTING / OPEN / CLOSING / CLOSEDのステートが定められている。一方、CLOSING状態への遷移に対応するイベントは存在せず、CLOSE状態へ遷移した際にcloseイベントが発生するとされている。つまり、「closeイベントが来るまで…

DRY(don't repeat yourself)するかしないか、その判断基準について

「過剰なDRYが技術的負債を生む」みたいな内容の記事を書きたいが、うまく言語化できない。「過剰な食事制限が健康を損なう」程度の内容に成り下がりそうだけど、そんなんじゃないんだよ… @methane 実装におけるDRYみたいなものを考えていて、そうすると前者…

クローズドソースなnode.jsライブラリの依存関係をdedupeする話

node.jsで開発してると、社内で作ってるライブラリの依存関係がごちゃごちゃしてくることがありますよね。 app --+--> libA ----> libB | +--> libBみたいな。こういうときlibBがnpmに登録されたモジュールであればnpm dedupeコマンド一発でlibBをひとまとめ…

トピックブランチ内の変更を無視してgit bisectする方法

merge commitについては1st parentのみをたどりながらgit bisectしたいことってありますよね? (参照: テストファーストなGitワークフローについて - kazuhoのメモ置き場)そういうとき、1st parent以外に属するcommitをgit bisect skipするの、どうやったら…

テストファーストなGitワークフローについて

Gitのワークフローに関する話題が、また盛り上がっているようなので、僕が好んで使っているワークフローについて書きます。対象としているソフトウェアは、GitHubやGitHub Enterprise等を使って開発されている、リリースブランチを切らずにmasterにリリース…

npm (node package manager)の菱形依存問題とdedupeと社内モジュールとJSX

npmで色々コードを書いていると、以下のような依存関係ができてしまうことがある*1。 a +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10このように「bが依存するc」と「dが依存するc」が異なるものになってしまうと…

WebSocket(RFC 6455)上で使用するプロトコル設計についての備忘録

一般論として、全二重の通信プロトコルを実装するにあたっては、いくつか注意すべき点があって、具体的には、到達確認と切断シーケンスについて定めておかないと、送達されたはずのメッセージがロストしていたり、切断タイミングによってエラーが発生*1した…