Google DevFest 2010 その3

3/11にGoogle DevFest 2010に参加してきました。
公式ブログにも書かれていましたが、準備作業や当日の運営のほとんどをGoogleの社員が行っていたそうでとても手作り感のあるイベントだったと思います。
Google Japan Blog: 皆で作り上げた DevFest 2010 Japan
セッションについては色々ありましたがTaskQueueを使ったGAEでの非同期処理が一番面白かったかなと思います。普段、マルチスレッドがらみのコーディングをすることが多いのでなかなか楽しめました。Java読書会で以前に読んだJava並行処理プログラミングを読んだことがあれば大体分かる内容だったのではないでしょうか。memcacheの有効期間だけがちょっと気になりましたけど。
DevQuizの方は最後に答えの解説がありました。一番解きがいのあったパッチワークに関してはUnion-Findアルゴリズムを使うと簡単に解けるというふうに説明されていました。初めて聞いたものなのでちょっと調べてみたいと思います。この問題は多くの人がすべてのデータをメモリに読み込んでから再帰処理をしていたようですが、私の最終的な実装はデータを読みながら結合箇所を見つけていくというものでした。なぜこのような実装をしたかというと、速さの追求と巨大なファイルにもある程度耐えうるようにしたかったからです。読みながら処理しているので最大結合になりえない部分はどんどん捨てていくことができます。気が向いたらコードを公開するかも知れません。あと高速化のために途中から自分でリンクリスト構造を作って使うようにしました。コレクションライブラリを使うとライブラリの中で色々な処理が行われるので、そのオーバヘッドを減らすためです。今回、実装してみてLinuxカーネル内でリンクリストが多用される理由がちょっと分かった気がします。
印象に残った発表としてライトニングトークGoogle開発者の一日というものがありました。そこで言っていたのが「みんながやらないことは必要のないこと、必要なことなら誰かがボランティアでやる」というようなことでした(文言はちょっと違うかも知れません)。なんてすばらしい環境だろうと思いました。今の自分の環境と比較すると悲しくもなります。Googleにいるようなエンジニアと一緒に仕事をする機会があったらどんなに楽しいだろうと本気で思いました。さすがです。

Google DevFest 2010 その2

今朝、Googleからメールが届いていてDevFestに参加できることになりました。前回書いたように実績問題以外は一通り正解でしたが、予想通り同じパターンの人が多かったようです。Twitterの書き込みを見る限りでは、実績問題以外は一問でもできなかったら通らなかったようです。
参加証は後日くるそうですが、参加証と一緒に新たなる問題が付いていて不正解の場合は入場不可だったりしたら泣きますね。
プログラムは
http://sites.google.com/site/devfest2010japan/programme
に書かれていますが、同時通訳がないそうなので日本語の方が中心ですかね。

Google DevFest 2010

来たる3/11にGoogle DevFest 2010というイベントがあります。
http://sites.google.com/site/devfest2010japan/

去年のGoogle Developer Dayは、簡単なアンケートに答えるだけで参加できたのですが、今年はクイズに答えて正解者の中から成績の良かった上位400名のみ参加ということになりました。
そのうち3問はプログラミング課題で、ちょっとしたお楽しみにはなりましたが、これで正解していてもいけるかどうかは分かりません。
残りのうちいくつかはGoogleに貢献してきた実績を問うようなものなので、該当するものがなければ答えることができません。

とりあえずプログラミング課題は終わらせたので、あとは結果を待つのみです。

Google日本語入力でIMEオン/オフするキー

Google日本語入力をインストールしてみました。

色々なところでレビューされているとおり、マイナーな芸能人の名前でも補間されたりと特徴的な振る舞いもあるようです。

使っていて困ったのはIMEのオン/オフです。普段、変換キーでIMEのオン/オフを切り替えているのですが、Google日本語入力の設定画面にはそのような設定項目がないのです。

http://d.hatena.ne.jp/coldcup/20091203/p1

を参考に変換キーだけでオン/オフできるようにしてみましたが、ちょっと挙動が変になってしまいました。エディタを起動して最初の一回目の変換キーの押下で、一瞬オンになってすぐにオフになってしまいます。二回目以降は大丈夫ですが、一回目のこの挙動は改善できませんでした。まだベータ版なので、そのうち直ることに期待しています。

クラウド = 銀行?

クラウドの弱点」をGoogleのUX担当者が語った
http://ascii.jp/elem/000/000/476/476790/

という記事を読みました。なるほどクラウドは銀行のようなものですか。
確かに銀行を信頼してお金を預けるのと、クラウドを信用してデータを預けるのは似ていますね。新しい技術潮流としてもてはやされているクラウドですが、本質は新たなる信頼関係、利害関係の確立なのでしょうか。

「Filthy Rich Client」読み終わりました

今年の1月から社内で「Filthy Rich Client」の読書会をやっていましたが、今日ようやく読み終わりました。途中、Java読書会で同じ本が選ばれて、追い抜かれてしまうということもありましたが、無事に読み終えて何よりです。普段、なかなかやることのないGUIプログラミングなのでConvolveOpやAnimated Transitionなど知らない技術を知れたので良かったかなと思います。
次週からはさっそくですが次の本で読書会を始めます。今度の本は「レガシーコード」です。私は技術解説をしている本が好みなのですが、この本は結構話題になっているので今回は毛色を変えてみました。ちょっと読んだ限りでは私が普段できてないことも書かれているようなので楽しみです。

Scalaスケーラブルプログラミング

Java読書会で読み始めました。
ScalaJVM上で動く最近作られた言語で、言語作者は今のJavaGenericsの元になったGJ(Generic Java)を作成された人です。
いわゆるバイブル本なので、ちょっと大変かもしれませんががんばっていきたいと思います。4章の途中まで読みましたが、関数型の雰囲気が結構します。

実行環境の構築でちょっと困ったのが Cygwin上の端末(rxvtやmintty)での動作です。
http://blog.andrewbeacock.com/2009/10/how-to-get-scala-working-with-rxvt.html
によると -Djline.terminal=jline.UnixTerminal をscalaの起動スクリプトに書いておくと良いそうです。