グーグルの全世界75カ所のオフィス一覧

グーグルは言わずと知れた世界的なインターネット企業ですが、その従業員の人数は26000人に達しオフィスも75カ所に設置されています。特にヨーロッパとアメリカ東海岸への林立ぶりが凄いですね。たくさんあるとは知っていても改めて見ると驚かされます。
オフィスの内部が素晴らしい環境なのも有名ですね。特にヘッドクオーターは有名ですが、Working at Googleの動画で見ると各地のオフィスの様子がわかります。
Life at the Googleplex


やはりスケールがすごい。
Working at Google New York (NYC)

NYでは2番目の広さらしいですが、上に比べると小さく見えます。
Working at Google London

各国のオフィスでもカフェテリアはグーグルカルチャーのひとつとして定番のようです。テレビ番組の取材を受けた映像もあり、良くまとまっているので見やすいです。
via:http://royal.pingdom.com/2011/05/06/google-is-so-much-more-than-just-mountain-view/
データベースの間違った使い方10項目

一般的なシステムで広く利用されているリレーショナルデータベースですが、システムの進化と共にデータベースの構造も複雑になりがちです。RestMQの作者、Gleicon Moraes氏の公開したスライドがシステムが複雑化していく様子をわかりやすく説明した上で「アンチパターン」を提示していました。
それによるとデータベースのアンチパターンは以下の通り。
- 動的なテーブルの作成
- テーブルをキャッシュとして使う
- テーブルをキューとして使う
- テーブルをログとして使う
- 分散したグローバルなロック
- ストアドプロシージャ
- 使われない項目
- JOIN地獄
- ORMによって繰り返されるクエリ
- 負荷のコントロール
どれも理由があって採用されるデザインですが、確かに後に問題を引き起こした経験もあり耳が痛い感じですね。スライド内ではそれぞれの問題についての解決策としてMongoDBやRestMQなどの利用を進めています。「本来の使い方をしていない」という事の例として「レースカーのようにドリフトする鴨の画像」が使われていたのもユーモラスです。

他のページの画像も面白くタメになる内容なのでご覧になってみてください。
via:http://www.slideshare.net/gleicon/architecture-by-accident
KIDS RUBY – ゲーム作りや学習に使えるこども用Ruby

先日はJavaScriptを利用した学習環境を紹介しましたが、Rubyを使った学習環境「KIDS RUBY」ものが公開されて話題になっていました。キャッチフレーズで宿題をハックする事に触れているあたりが遊び心がありますね。Windows、MacそしてUbuntuベースのオールインワン環境が整備されているようです。
動作画面

左側にソース、右側に出力という画面構成になっています。すでにBarCampでのハンズオンセッションなども行っているようで普及活動とセットのプロジェクトなんですね。BarCampの写真もなかなか楽しそうです。
スタートアップで働くのが素晴らしい7つの理由
僕はいくつものスタートアップで働いてきたし、ほら、ここに証拠の古傷もある。確かに大変なこともあるんだけど、何事にも代え難い、得るところの多い経験なんだ。
- クールなプロジェクトの一端を担える
スタートアップで働く一番の理由はクールなことができるってこと。新しいアイデア、あるいは主流とは違った見方で、スタートアップはいつでも限界を押し広げてる。スタートアップは目新しさや革新性で生きている。みんなアイデアに取り付かれてる。いかに次のレベルへ持って行くか、あるいはそのアイデアを実現するかが全て。たまに怖じ気づくこともあるけれど、クールなことに取り組むってことは何事にも代え難い。- 皿洗いから料理長まであらゆることが出来る
同じことをしなくてすむ。大きな会社では同じことを5年間続けるとかありがち。仕事でもプライベートでも、僕は変化が好きで、それがスタートアップのいいところ。新しいことをに飢えることがない。悪いことといえば、誰もしたくないことは放っとかれる傾向にある、ということか- 自分のスタイルで通せる
毎日スーツ来てる連中を見るとおかしくてしょうがない。T-シャツとジーンズで会社に行けるってのは意味のあることなのさ。- “初めての〜〜”という興奮
初めての登録ユーザー、初めての顧客、初めてニュースで取り上げられること。達成感。そしてある時、周りの人が自分の会社を知るようになって、何をしてるのか説明する必要がなくなる。グラディエーターでいえば『観衆に勝てば、自由が得られる』- 一緒に働く人のエネルギー
楽な仕事を何度も何度も繰り返すためにスタートアップで働いてる奴はいない。スタートアップは自分のしてることを誇りに思うハイパワーな人の集まり。スゲーことをするためには高エネルギー人にならないとだめ。- ホワイトボードは最高
ホワイトボードに図を書き合うのはスタートアップの基本。おかしな比喩、素晴らしいワークフロー、アイデア、良いも悪いも黒板はアイデアに溢れてる。脱線してお絵描きタイムになることも多いけど。- スタートアップだからこそ出来ること
変な儀式、楽しいゲーム、普通じゃないオフィススペース。
via:http://www.jpuopolo.com/2011/03/why-working-at-a-startup-company-rocks/
先週の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





