epoll, エッジトリガー, EPOLLRDHUP

このエントリーは社内勉強会用の解説記事です。 普通の人は便利な libevlibuv を使っておきましょう。

epoll はいわゆる C10K 問題に対応するための Linux カーネルが提供する仕組みです。といってもこの問題、32bit 時代のメモリが潤沢ではなかった時代のものなので、いまどき並大抵のプログラムであれば、普通に1コネクション1スレッドで問題ないでしょう。@kazuho 先生がそうおっしゃっていました

まあ御託はさておいて、epoll のマニュアル読んでもちょいわからないところを補足しておきます。

続きを読む

テストコードなんて書きたくない(≠ テストしたくない)

はじめに言っておきますと、テストは重要ですよ。テストしないなんてありえない。

でも、テストコードを書いて当たり前という昨今の論調には、同意できないのです。テスト熱中症になんて到底なれません。そう思うのは私だけではないようで、Rails の作者も書きまくればいいってものではないと言っています。

なぜ同意できないのか、理由を書き連ねて鬱憤を晴らすことにします。

続きを読む

教材としての yrmcds

@ymmt2005 こと山本泰宇です。 [公式発表][official]とは別に、こちらでは [yrmcds][] のもう一つの使い方を紹介します。それと、私の気持ちなどを。

yrmcds は実際のところ、作ることをかなりためらいました。工数という観点でみれば Apache が Redis を扱えるようにするとか、レプリケーションの仕組みを頑張るといったほうが小さい気がしたからです。C++11 の実践課題という動機は個人に寄っているので、会社に十分なメリットがないことには・・・と。

そこで会社へのメリットとして、以下の価値を加えることにしました。

  1. 後進の開発者が設計やプログラミング技法を学ぶ教材として使える
  2. 英語圏では無名のサイボウズの知名度の足しになるようにオープンソース化して宣伝を頑張る
続きを読む

R.I.P. 金子勇氏

金子勇氏の突然の訃報に驚きました。

氏とは数年ほどお付き合いする機会がありましたが、プログラマーとしての才能は疑う余地なく素晴らしいものでした。 あの悪名高い起訴騒ぎを勝ち抜いたことは、未来の才能あるプログラマーを委縮から救う、見事な業績であると感謝しています。

合掌

アセンブリ読んだら負けかなと思ってる

子供のころからできるだけ手抜きして成果を挙げることだけは長けている山本です。

今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグgdb などでソース追いながらデバッグできますが、運用中ですと [strip][] していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。

Step1. スタックトレースを出力する

続きを読む