MongoDB のフルタイムの開発者を募集 > まずは Jira で

10gen, which provides commercial support for MongoDB, is hiring C++ developers to work on the project.
If you are interested, we think the best way to start talking would be to pick something from Jira and just fix it as a micro project! Then get in touch on IRC or by email.

(訳)
10gen が MondoDB のフルタイム開発者(C++)を募集。
まずは、Jira でなにか見繕って、ちっちゃなプロジェクトとしてそれを直すところから始めよう。あとは IRC か email で連絡を。

MongoDB - Work full time on MongoDB : 10gen is hiring C++ engineers

エンジニア/プログラマとしてこういう評価方法は素晴しいと信じている。
自分がこのような評価方法に耐えて、エンジニアとして生き残って行けるかは別の話。

オープンソースソフトウェアの育て方が欲しい!

さて、先のエントリに書いた「オープンソースソフトウェアの育て方」ですが、上の通り見本が手元に届きました。ざっとチェックしたんですが、オライリー・ジャパンらしく編集してありますね。id:mohri さん GJ です。

手元には3部あるのですが、1部は当然手元に置いておくとして、残りの2部については、是非書籍版を読みたい、という方に差し上げたいと思います。

mumumuの日記: オープンソースソフトウェアの育て方 (2)

なんと!

Book:オープンソースソフトウェアの育て方 (オライリー・ジャパン)

現状オンライン版と書籍版とは相当量の差分が生じているが、この点は クリエイティブ・コモンズ BY-SA 2.1-jp (表示・継承) に沿ってオンライン版に反映してよいとの許可をオライリー・ジャパンより既に貰っている(※2)。よって、書籍となった内容はオンライン版にもいずれ反映するつもりだ。
mumumuの日記: オープンソースソフトウェアの育て方

そもそも、オンライン版が公開されているだけでも素晴しいし、その上、書籍版がフィードバックまでされる。翻訳者の方々、 CC に尽力されている方々、オライリー・ジャパンの方々、驚くほどスゴイ。

僕はオンラインで長文を読めないオールドタイプなので、やはり書籍で読みたい。あー、はやく読みたい。

TCP/IP の Linux での設定

メモ

ローカルポートの範囲

/proc/sys/net/ipv4/ip_local_port_range外に向かう接続における、ローカルポートの範囲。
実際のデフォルトは極めて小さく、1024 から 4999 です。

あまり知られていない設定

TIME_WAIT の制御

tcp_max_tw_buckets (integer; default: 下記)
システムが許容する TIME_WAIT 状態にあるソケットの最大数。 この制限が存在するのは、 単純な使用不能 (denial-of-service) 攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。 この数値を越えると、そのようなソケットはクローズされ、警告が表示される。


tcp_tw_recycle (Boolean; default: disabled)

TIME_WAIT ソケットの素早い再利用を有効にする。
このオプションを有効にすると、
NAT (ネットワークアドレス変換) を用いていると問題が生じるので、
あまり推奨しない。


tcp_tw_reuse (Boolean; default: disabled)

プロトコルの面から見て問題ない場合に新規コネクションに TIME_WAIT
状態のソケットを再利用することを許可する。技術的に詳しい人の助言や
要請なしにこのオプションを変更すべきではない。

Manpage of TCP

手元の Ubuntu 8.10 では、(デフォ)

% cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
% cat /proc/sys/net/ipv4/tcp_max_tw_buckets
180000
% cat /proc/sys/net/ipv4/tcp_tw_reuse
0
% cat /proc/sys/net/ipv4/tcp_tw_recycle
0

TIME_WAIT の状態にある時間間隔は指定できないのだろうか?

Erlang User Conference 2008 のスライド

が木曜あたりに erlang.org で公開されるよ from erlang-questions

Nabble - Re: EUC 2008 slides
All slides will soon (Thursday) be published at erlang.org.


http://www.nabble.com/forum/ViewPost.jtp?post=20589178&framed=y

EUC 2008 のページはここ http://www.erlang.se/euc/08/index.html
QuickCheck, Erlang VM (SMP) あたり興味ある。

第2回 Erlang 分散システム勉強会

たけまる / 第2回 Erlang 分散システム勉強会
さて,秋の深まりとともに日本の Erlang 熱も適度に冷めてきたところで
すが ;-),第2回 Erlang 分散システム勉強会をしようと思っています.

場所を提供してくださった KLab さん,ありがとうございます.また,
KLab の hamano さんには懇親会も含めてすっかりお世話になっています.

http://teahut.sakura.ne.jp/b/2008-10-30-1.html

スライドが出来たので、 slideshare に上げました。

Conflict Resolution In Kai - SlideShare
Explanation on Lamport's clock and vector clocks. Some comments on Amazon's dynamo, and discussion on Kai.

http://www.slideshare.net/shino/conflict-resolution-in-kai-presentation/

内容は、

  • エポックメイキングな(だったと思われる)ところが好みの Lamport の論理クロックと、
  • Dynamo の論文からいくつか要点とおぼしきところを抜粋、
  • 最後に Kai の衝突解消ロジックをどうしようか?

という 3 点、特に繋がりもなく、パッとした結論もないのでグダグダ系 (T-T)

初めて、OpenOffice.org(version 3) を使ってスライドを作ってみました。ソッケないスライドなので特に問題なし f(--)。

追記 (2008/11/20 17:10 JST)
slideshare のスライドを更新しようとしたら、"Work in progress" のままふんづまっている。困った。
追記 (2008/11/21 01:34 JST)
非同期でちゃんと処理されたみたいだ。更新したスライドがちゃんと表示される。すばらしい。

他の方のスライドはコチラの erlang-user.jp の ML スレッドに URL があります。

erlang@erlang-users.jp
Preprints of the 2nd Erlang User Conf. in Tokyo (20 Nov 2008 03:03:44)

http://erlang-users.jp/ml/erlang/?0:200811::d:t

Erlang User Conference 2008

たけまる / ありがとうございました - 第2回 Erlang 分散システム勉強会
プログラムには 1時間近い余裕をみていたのに,議論が白熱して30分も遅
れるとは思いませんでした.後半のスピーカーの皆様には満足にお話しい
ただく時間がなくなってしまい,段取りが悪くてすみませんでした.特に,
会場と懇親会の準備をしていただいた hamano さんにご迷惑をおかけしま
した.LT していただく時間もなくなってしまいましたし….

反省を活かして,次回はタイムキーパーを設けます.

http://teahut.sakura.ne.jp/b/2008-11-21-1.html

おなじく、大幅に予定を超過してしまってスミマセンでした m(_ _)m

ひとつまえのエントリでも書きましたが、スライドはここです。

takemaru さんも書いているように、今回は LT に Erlang のコードが出てきましたが、全体的に Erlang に特化したような話は非常に少かったです。ベタな分散アルゴリズムの話と濃い質疑応答といった印象でした。そのなかで、「アカデミックだった」という感想がありましたが、僕はベタな分散アルゴリズムの実装の話という感覚だったのでちょっと意外だったかなぁ。

Roma の話が聞けなかったのはちょっと残念でした。Kademlia の話は大いに為になりました。ブログ界を見ているだけでも、Erlang で面白そうなことをやっておられる方はそれなりに居るみたいなので、もっと幅が出るといいなぁ、とも感じました(ぼくみたく、ポッと Erlang を触ってみただけじゃなくて、じっくりやっているような方とか)。

Lamport の論理クロック

Lamport さん自身のページ (in microsoft research) の中で、自分の論文についてコメントを付けてあるので、論理クロックの論文についての箇所をいくつか読んでみる。

まずは、Einstein の特殊相対論に影響をうけたことについての箇所。

The Writings of Leslie Lamport
I happen to have a solid, visceral understanding of special relativity (see [4]). This enabled me to grasp immediately the essence of what they were trying to do. Special relativity teaches us that there is no invariant total ordering of events in space-time; different observers can disagree about which of two events happened first. There is only a partial order in which an event e1 precedes an event e2 iff e1 can causally affect e2.


特殊相対論のしっかりとした、本能的な理解に偶然たどりついた。[...]特殊相対論は、時空で起きるイベントについて、不変の全順序が存在しないことを教えてくれる、異なる観測者は、2 つのイベントのどちらが先に起きたかについて、食い違っても良いのだ。そこには、半順序しか存在しない、それは イベント e1 が e2 に因果的に影響を与えるときに限り、e1 は e2 に先立って起きるというものだ。

http://research.microsoft.com/users/lamport/pubs/pubs.html#time-clocks

もうひとつ、因果性に矛盾しない全順序の持つ含みについて。

The Writings of Leslie Lamport
It didn't take me long to realize that an algorithm for totally ordering events could be used to implement any distributed system. A distributed system can be described as a particular sequential state machine that is implemented with a network of processors. The ability to totally order the input requests leads immediately to an algorithm to implement an arbitrary state machine by a network of processors, and hence to implement any distributed system. So, I wrote this paper, which is about how to implement an arbitrary distributed state machine. As an illustration, I used the simplest example of a distributed system I could think of--a distributed mutual exclusion algorithm.


イベントの全順序付けアルゴリズムが、任意の分散システムを実装するために利用できることに程なく気がついた。分散システムは、プロセッサのネットワークとして実装されている、特定の連続状態機械として記述できる。入力リクエストの全順序可能性は、直ちに、プロセッサのネットワークによる任意の状態機械を実装するアルゴリズムへと繋がり、従って、任意の分散システムを実装するアルゴリズムへと繋がる。なので私はこの、任意の分散状態機械を実装する方法に関する論文を書いたのだ。例として、考えつく最も単純な分散システムの例である、分散相互排除アルゴリズムを使った。

http://research.microsoft.com/users/lamport/pubs/pubs.html#time-clocks

「任意の分散システムを実装するために利用できる」のところが分かっていない。もう一回読み返してみよう。