Archive for 5月 2011
先週のA-Listersまとめ #1
ゴールデンウィークもついて終ってしまいましたがいかがお過ごしでしょうか。ちょうどゴールデンウィーク前あたりから始まったこのブログですが、人気のあった記事と頂いた反響などをここで幾つか紹介しておきたいと思います。(写真は本文とは関係ありません。)
大企業はソースコードの管理に何を使っている?

Facebookなどの大企業がどのようなソースコード管理ツールを使っているかを取り上げたこの記事が最も人気があつまりました。アンケートの投票や関連のツイート、ブログ記事なども数が多く「Preforce」を知らなかったという意見が数多く寄せられました。アンケートによると読者のみなさんはsvnを使っている方が多いようですが、今後のツールの選定の参考になるかもしれません。またアンケートの少数派だったその他の意見は下記のとおりでした。
vss 8 bazaarはお嫌いですか? 4 Perforce 3 git/svn 1 SCCS 1 lha 1 RCS 1 GEMライブラリ 1 fossil 1 TFS 1
わがままなプログラマにならない為の10のルール
ジェラルド・ワインバーグ氏のエゴレスプログラミングの十戒を取り上げたこの記事は1971年の内容でありながら今も説得力がすさまじいという事で多くの反応を頂きました。こちらはつぶやきを幾つか紹介します。25周年記念で再販された日本語書籍を読んでいなかった事が我ながら勿体ないなと思わされました。年代の離れたエンジニアの方と話をする際の話題になるかもしれませんね。
YammerがNode.jsの運用で学んだこと

最近、話題になっているYammerがこれも話題の技術であるNode.jsを使っているというトピックも人気がありました。Yammerを使っている人から「そうだったのか」というような驚きの声やエラー処理の思想についての部分が多くの方の印象に残ったようです。アンケートの結果からもその注目度が分かりますね。記事だけでなくリンク先の記事やツイートも合わせて読むとより一層刺激的ですのでぜひご覧ください。それでは今週もよろしくお願い致します。
その他の記事
- 美しすぎるギークによるキーボードの掃除の仕方レクチャー
- YammerがNode.jsの運用で学んだこと
- わがままなプログラマにならない為の10のルール
- 僕はアダム、シングルトン中毒から回復したんだ
- 大企業はソースコードの管理に何を使っている?
- 美しすぎるギークに似ているらしい美しすぎるギーク
- ブラウザ上で動く教育用ビジュアルプログラミング環境 Waterbear
- 私がオープンソースに参加しない理由
- Duostack – RubyとNode.jsが無料で使えるクラウドがオープンベータ開始
- ギークとナードの定義をベン図で表すとこうなる
- LAMPは死に、そしてNode.jsとJavaScriptの時代
美しすぎるギークによるキーボードの掃除の仕方レクチャー

全国160万人のベロニカ・ベルモントファンのみなさん、こんにちは。
今回は美しすぎるギーク、ベロニカが「キーボードの掃除の仕方」をレクチャーしてくれる動画を紹介したいと思います。なお、この番組は2007年と大分前に教育、ファッション、グルメ、ITなどのさまざまな分野のハウツーを紹介するMahaloというサイトで公開されたものです。
どの動画も数分程度にまとまっていてなおかつクオリティも高いので暇つぶしにはなかなか良さそうです。(ベロニカの出演した番組はアーカイブとして残っているだけで現在は出演はしていないはずです。)公開された時期の関係で画質はあまり高くないですがベロニカの最近の芸風の奔流を垣間みる事ができます。動画からいくつか場面を紹介します。

不慮の事故(?)でえらい事になってもうたキーボード。

まずは感電しないようにPCから取り外しましょう。

キーを全て取り外したら、え??水洗い?

一晩乾燥させてからいざ、テスト。その結果は果たして。。。
続きは動画本編にてどうぞ。
ベロニカに関する過去の記事はこちらです。
YammerがNode.jsの運用で学んだこと

Node.jsのカンファレンス NodeConf 2011にて、YammerのリードエンジニアであるMatthew Eernisse氏がNode.jsの運用を通じて学んだことについての発表を行いました。発表のサマリーは5 Lessons Learned Running Node.js in Productionで読むことができます(スライドはまだ公開されていないようです)。
「コールバックを使ったスタイルのコードは、イテレーティブに開発をしやすいが、結果としてスパゲッティコードになりがち」という意見は他所でも見かけることがありますね。また、
- 物事は失敗すると仮定せよ
- コールバックは失敗すると仮定してデフォルトではエラーメッセージを出力するようにし、処理が上手くいった場合にエラーを取り消すようにする
- あとで原因を調査できるよう、すべてのエラーはログに記録しておくこと
- 可視性とメトリクス
- 初期段階から、あらゆるものを測定して記録するようにすべき
- Yammerではメトリクスライブラリとしてmikejihbe/metricsを利用している
といったところは、実際にサービスを運用しているところらしい意見です。
私も普段からYammerを利用しており、ここ数カ月でリアルタイム性がかなり向上してきている印象があったのですが、その裏にはNode.jsのパワーがあったのですね。
わがままなプログラマにならない為の10のルール

「エゴレスプログラミング」という言葉があります。アメリカのコンピューター科学者、ジェラルド・ワインバーグ氏によって『プログラミングの心理学』にて取り上げられた思想です。プログラマ同士が協調する事で最終的なコードの品質が向上するという思想です。プログラマが協調できていないムードだとコードの品質が下がると言い換えてもなんだか思い当たるフシのある感じです。1970年代からある考え方ですが、ちょうど話題になっていました。さてそのエゴレスプログラミングの為の十戒は下記のようになっています。
- 自分が失敗をする事を認める
- コードは自分自身ではない
- どれだけ空手を知っているかは重要ではない。他にもっと知っている人がいる
- 相談なしにコードを書き換えない
- 自分よりも知識が無い人に対して尊敬と敬意と忍耐を持って接する
- 唯一不変な事は、世界は変わるという事
- 権威は立場からではなく知識から生まれる
- 自分が信じるものの為に戦え、ただし敗北は礼儀正しく認めよ
- オフィスでコードを書くだけの人になるな
- 人物ではなくコードを批評する。人には親切にし、コードには遠慮しない
このルールは1971年に作られたものですが、これらのルールの逆を行く人物を想像してみるとたしかにちょっと同じチームになるのは遠慮したい感じですね。考えさせられる内容なので原文もご覧ください。残念ながら日本語の書籍は手に入れづらい状況のようですが、英語のKindle版はすぐに手に入れる事ができます。
補足
ワインバーグ氏は現在、闘病中です。Twitterにて直近の様子を伺い知る事ができます。著作も多く広く読まれている物が多数です。
参考:
濃縮還元オレンジニュース Gerald M. Weinberg氏,胸腺癌で余命わずか
プログラミングの6大10項目リスト(青木靖氏のサイト内)
via:http://www.codinghorror.com/blog/2007/03/top-6-list-of-programming-top-10-lists.html
僕はアダム、シングルトン中毒から回復したんだ
プログラミングで使われるデザインパターンの一つにシングルトンというのがあります。ご存知の方も多いと思いますが覚えるととても便利でなんでもかんでもシングルトンにしたくなってしまう設計です。このシングルトンを使った設計の問題を訴えたAdamさんのブログが話題になっていました。
Adamさんによるとシングルトンのダメな所は下記のとおり。
- 依存関係を見えにくくし、コードが読みづらくなる。
- ユニットテストを難しくする。外部から渡せないオブジェクトはモックにする事が難しい。
- プログラムの再利用性が低下する。一度しか使わないからとシングルトンで作ってしまうと複数のユーザーから利用されるような場合に対応できなくなる。
- スケーラビリティが低下する。
- 良いオブジェクト指向の設計とは言えない。
異論、反論を受付中ということでコメント欄も盛り上がっています。
- 食べると太るから食べ物は悪だ、みたいな話だ。
- Eric Gammaの本を読むといいよ。(GoFの1人)、シングルトンは無くなるはず。
- Spring使いなよ
- 素人な質問だけど、Springって何?
- シングルトンは使う度に後で後悔する
- マルチスレッド環境でのシングルトンは難しいことも忘れちゃまずい
- public staticなフィールドも同じことだな
- 次はDI(Dependency Injection)中毒になるだろうな
- スティーブです。僕もシングルトン中毒で、しかもまだ回復していないよ
この話題、古今東西どこでも盛り上がるみたいですね。あとコメントで出ていた「Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson」は日本語でも読みたいですね。このリンク先のインタビューにてシングルトンをカタログから除きたいというコメントが出ています。
via:http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/
大企業はソースコードの管理に何を使っている?
Facebookの元CTOだったダスティン・モスコヴィッツが立ち上げた質問サイト、Quoraにて大企業がどんなソースコード管理システムを使っているのか?という質問が挙っていました。Quoraは回答の質が高いという触れ込みでスタートしているサービスなのでこれらの情報は多分正しいのでしょう。
- Facebook svn (一部の人はgitも使っている)
- Amazon perforce
- Zynga svn
- Netapp Perforce
- Google git(Android), Perforce
- Quora git
- SAP Perforce
- ebay Clear Case git(実験中)
- VMware Perforce
この内容の限りだとオープンソースではgit、商用ではPerforceという流れがあるようですね。
via:http://www.quora.com/What-version-control-systems-do-large-companies-use
美しすぎるギークに似ているらしい美しすぎるギーク
美しすぎるギーク、ベロニカ(右)に似ていると言われる事があるらしい美しすぎるギークがフェリシア・デイ(左)です。こちらのブログ記事によるとフェリシアはネットゲームを題材にしたウェブドラマでブレイクした人なんですね。ゲームやコミックなどのイベントに出演している様子がよく写真などで出ています。どれくらいブレイクしているかはフェリシアのTwitterアカウントのフォロワー数が180万という所からも伺えると思います。
なお彼女の出演したドラマはニコニコ動画でも見られるようです。興味ももたれた方は英語の勉強がてら残りの連休のお供にどうでしょう。
その他フェリシア情報
フェリシア・デイ嬢がWebで公開される”Dragon Age”の短編映像作品「Dragon Age: Redemption」に主演
ギークでホットなオタクの女神 – Felicia Day 『The Guild』(和訳されたインタビューの紹介)
via:http://dekubar.blogspot.com/2009/10/felicia-day-guild.html
ブラウザ上で動く教育用ビジュアルプログラミング環境 Waterbear
ポートランドで開催されたJSConfにて、ブラウザ上で動く教育用ビジュアルプログラミング環境 Waterbearが発表されました。
Waterbearは、MITメディアラボで開発されているScratchに似たアプローチの言語で、制御構造やユーザーの操作をあらわすブロックを繋ぎ合わせることでプログラミングを行います。ベースがJavaScriptなので、ビジュアルに作成したプログラムから生成されたJavaScriptコードを見ることができるのが特徴です。
開発者のDethe Elza氏が目指しているのは、Alan Kay氏がSqueakで目指したものと同様に、
- プログラミングの書籍で使われるようになること
- プログラミングの初学者がよりプログラミングに没入できる環境となること
- 普通の人がカジュアルなプログラマーとなれること
だということです。
実装としては、jQueryやModernizr、Processing.js、Raphael.jsといったライブラリを使ったクライアントサイド(ブラウザ上)で稼働するアプリケーションとなっています。Waterbearのサイトでは実際にブラウザ上からプログラミングを試すことができますし、ソースコードもGitHubで公開されていますので、興味のある方はちょっと覗いてみてはどうでしょうか。
ちなみに、Waterbearという名前はタフさに定評のあるクマムシから命名されたもので、RubyやPythonといった他の言語からも使えるようなとにかくしっかりした言語を目指している、ということです。
via:http://www.readwriteweb.com/hack/2011/05/waterbear-is-like-scratch-but.php
私がオープンソースに参加しない理由
Brandon Haysさんのブログ、TEHDAILYFLUXにて投稿されたオープンソースに関する記事が話題になっていました。このブログをご覧になっている方はオープンソースで作られたソフトウェアの利用の経験がある人がほとんどかと思いますが、オープンソースのソフトウェアを開発する側に回った事のある方は少ないのではと思います。この記事ではどうしてオープンソースに参加できないのかについての著者なりの理由が列挙されていました。
- 認定証も表彰も技能章も無い
- 何処から始めればいいのかはっきりしない
- ガイドラインはメンテナーにとっては有益だけど、私にとってはそうではない
- オープンソースは私のような人よりも優れた人の為のものである
- 参加しようとすると自分が劣っているように感じてしまう
- 時間がない
- 孤独感
ここの理由の背景は元エントリにて述べられていますが、とても正直な感想のように感じます。たしかにオープンソースへ参加するというのは妙に敷居が高いように感じますよね。なおコメント欄には「そんな事ないよ!」とオープンソース宣教師の方々が大量襲来しています。いくつか抜き出してみると、
- それは考え過ぎだよ
- もっと優れた人の為のものなのではというのはみんなが感じる劣等感(インポスター症候群)だよ、克服しなきゃ
- 貢献したいからという動機はうまく行かない。作るものもないのにC言語を学ぶようなものだ
あなたにもオープンソースに参加しようと思ったけど、しなかった理由があればぜひコメント欄、ツイートでお願いします。
via:http://brandonhays.com/blog/2011/05/03/why-i-still-dont-contribute-to-open-source/
追記 ツイートで頂いた感想
Duostack – RubyとNode.jsが無料で使えるクラウドがオープンベータ開始
ゴールデンウィークまっただ中に新しい事に挑戦したい方にいいアイデアです。Duostack公式ブログにてRubyとNode.jsが使えるクラウドサービスのオープンベータが開始した事が告知されていました。
HerokuやPHP Fogなど各言語に対応したクラウドが流行していますがそこにNode.jsが選択肢に加わりました。5月6日までに登録したユーザーには後に特典がある事もアナウンスされていますので、この機会にNode.jsに触れてみるのはどうでしょうか。登録はメールアドレスとパスワードだけでものすごく簡単です。オープンベータはとりあえず無料です。
ここからはNode.jsならnpm、RubyならgemでDuostackのクライアントを入れればgitでpushするだけでデプロイができるようになります。
via:http://blog.duostack.com/post/5128347496/public-beta-launch











