2012/12/31

gitignore総まとめ

.gitignore @ Github
新しい統合開発環境で開発を始まるときって、どのファイルをバージョン管理したらいいか悩みます。その問題を解決してくれる。感謝感謝。

2012/12/29

収益のご報告

このブログを書いてる人たち皆で忘年会をすることになったので、収益を久しぶりに見てみました。

4年間ちょこちょこと書いてきて、53,230人のかたがこのサイトを見てくれました。そのうち、66人が広告をクリックしてくれたようです。現在の収益は2,861円でした。10,000円に到達しないと支払われないので、まだ飲み会の費用には遠いようです。

2012/12/28

Node.jsはC10K問題を解決する銀の弾丸か

C10K問題とNode.jsについて調べる機会があったので、忘れないうちにメモ。


Life is beautifulより
ここで再度認識して欲しいのは、node.js の素晴らしさは「クライアント側で皆が使っているJavaScriptでプログラムが書ける」という部分などにあるのではない、という点だ。node.js がこれほど多くの支持者を得ているのは「本来記述が煩雑になりやすい非同期処理をJavaScriptの無名関数を利用して書きやすく・読みやすくすることにより、イベント駆動型のプログラミングを多くのプログラマーにとって手の届くものにした」点にあるのだ。
node.js と thread hog の話
まずNode.jsに興味が沸いたのが、このブログを読んだから。「Node.jsってJavaScriptしか書けない人がサーバー開発に着手するときに利用するもの」程度に考えていたので(ぉぃ)、反動で興味が出た。コンテキストスイッチを減らすことができ、キャッシュヒットを高めるものらしい。

で、いろいろネットをうろうろした感じとして抱いた印象は以下のもの。
  • ノンブロッキングってNode.jsが作った手法じゃないはずなのに、賛成派はノンブロッキングならNode.jsという論調で、なんか違和感あるなぁ。
  • 反対派はJavaScriptの見通しの悪さ、Node.jsでの開発に関する未成熟さをつっこんでるけど、じゃー代替手段は何なの?
そうこう調べているうちに、この問題の奥深さを再認識させられた:サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方

このへんまで調べて抱いた印象は次のもの。「一口にC10K問題と言っても、皆解決すべき要件は結構違うんじゃないだろか」->「違うものを解決する銀の弾丸はない。よってNode.jsは銀の弾丸ではない。」->「しかし、アホほど能力とノウハウを要求する課題の敷居を下げてくれるのならば、Node.jsにはやっぱり価値があるんじゃないか。ただ、1台構成だったり、ノンブロッキングである必要はないよね。他言語にも代替手段あるし(Rubyのcelluloidとか)」というもの。

私の中で結論はまだ出ていない...。経験不足。当たり前だけど、まずはやってみるしかないよね。

2014/09/24 追記:
ここ綺麗にまとめてくれてる。

2014/11/20 追記:
勉強がてらアプリを一つ作り始めました。で、思ったんですが、JavaScriptでトランザクションとかロジックを書くのは結構つらい...。慣れたらそうでもなくなるんかな。

2019/07/19 追記:
イベントはスレッドに比べて何故ダメなのか (Why Events Are A Bad Idea)

2020/10/08 追記:
いろいろ試した結果、Goで行くことにしました。すげーよ、Go。