Google Chromeのソース表示では、XML宣言が消える

他のブラウザでは全く問題ないのに、Google Chromeでソース表示するとXML宣言

<?xml version="1.0" encoding="utf-8" ?>

が出力されない現象に遭遇。調査の結果、Chorome側の問題ということがハッキリしました。
ソース表示ではXML宣言は抜け落ちてしまうものの、デバッガで見てみれば本当に取得したソースを確認することが出来ます。

If you need a work around, open the debugger (Ctrl+Shift+J) and click Resources.
Find the page and it will show the *real* source with highlighting as well.

◆ネタ元
http://code.google.com/p/chromium/issues/detail?id=5286

Chrome使いとしては「open the debugger (Ctrl+Shift+J)」が嬉しい副産物でした!

Slim3-RC1 インストール

待ちに待ったSlim3-RC1が提供されました。
これを機会に環境を再構築することにしたのでメモ。

◆前提条件
J2SEはインストール済

◆実施手順

  • eclipseのダウンロードと展開

 いつの間にかSR2が出ていました。
 http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip

  • slim3-blank-RC1のダウンロードと展開

 eclipseワークスペースにインポートします。
 http://code.google.com/p/slim3/downloads/list

Slim3のGetting Startedに記載されている手順通りに進めれば問題なくインストール出来ました。

◆参考資料

  • Getting Started(slim3.org)

 http://sites.google.com/site/slim3appengine/getting-started

Google Guiceを調査

Google発のDIコンテナであるGuiceを調査しました。
以前からその存在が気になっていたのですが、GAE/J用フレームワークであるSlim3でDIコンテナが提供されないことが分かったことが直接の契機です。


良く知られているように、XMLファイル等の設定ファイルが不要で全て.javaファイルに記述できる点は確かにインパクトが有ります。
S2JDBCSlim3のタイプセーフクエリで、SQL文等を文字列を使用せずに記述することで、スキーマ情報の変更時にコンパイラが要修正箇所を教えてくれる便利さと同様の利点が有るはずです。
また、実行速度も相当速いようで、パフォーマンス面でも検討の価値が有ると思います。


しかし、調査の結果、導入は見送りました。
正直ドキュメント全体に薄く目を通しただけで、あまり深く追ってはいないのですが、どうもCoCによるDIコンテナへの自動登録機能が存在しないようです。
Seasar2で自動登録の便利さにすっかり慣れてしまったことと、多くの時間を割けないことから独自実装と言うわけにもいかず、この機能がネイティブに提供されないのは辛いと判断しました。


現在の感覚だと、Webで言うところのプレゼンテーション層(ActionまたはController)のように、多くのクラスを登録対象とする用途ではなく、
特定のロジックの交換などの用途に導入しやすいように感じました。
導入自体はそれほど大変でも無さそうでしたので、上記のような要件が発生した際に改めて調査したいと考えています。

JJUG CCC 2009 Fall 参加

10/8(木)にJJUG Cross Community Conference 2009 Fallに参加して来ました。
台風で公共交通機関が麻痺していた関係で、午前中のセッションは30分開始が遅れて開催されました。
それぞれのセッションについて、簡単にコメントおよびメモした内容を残しておきます。


1).日本のクラウドと開発者の未来
・今後クラウドバイスとしてモバイルへの移行が進む
・キーワード:Android,MapReduce


2).OPEN AIR FROM SEKAI (セカイカメラのオープン化戦略)
・新しいユーザー体験を提供する魅力的なサービス
・位置情報と方位から場所(空間)を特定し、空間にタグ付けする


3).デベロッパのためのHTML5入門
・勧告は2022年の見込み
D&Dはスゴイ(他のブラウザから。ファイルのドロップも。)
・ブラウザにワーカースレッドが用意される
SQLite等のRDBMSがブラウザに組み込まれSQLが使えるようになる
・WebSocket(双方向通信)。サーバPushが可能になる


4).マルチパラダイム言語Scalaの魅力と可能性
・NextJava、BetterJavaとしての立ち位置でもある
Javaの全てのclassをコールでき、逆にJavaからもコールできる。
Javaとほぼ同等の実行速度
TwitterScalaで実装されている(昔はRuby
Ruby on Rails相当のFrameworkとしてLiftが存在する


5).Google wave で始まるリアルタイムコミュニケーション
・Product & Platform & Protocolのセットでwave
・リアルタイム性が体感できるデモは良かった
・キーワード:XMPP


JJUGのイベントに参加するのは今回が初めてでしたが、幅広い分野のヒントを得られ収穫大でした。

ソフトウェアリリースサイクル

いずれ一般公開を考えているプライベートで開発中のシステムが有ります。
このシステムのロードマップを考えていたところ、よく使われる「クローズドβ」とか「オープンβ」とか「RC1」とかいう言葉の定義が自分の中で曖昧なことに気付き調査しました。


WikiPediaで調べたところ、英語ですがSoftware release life cycleが見つかりました。
分類の仕方は幾つも有るのだろうと思いますが、ここでの記載は下記の通りです。


Pre-Alpha > Alpha > Beta > Release candidate(RC) > RTM > General availability (GA)


Software release life cycle(英語)
アルファ版
ベータ版
リリース候補版


なるほど。

Google Chrome に乗り換え

これまで長い間ブラウザはSleipnirを使用して来ました。
しかし、読み込みに時間のかかるタブを一つでも開くと事実上固まるという挙動がどうしても不便なため、FireFoxを併用しつつ定期的に乗換えを検討して来ました。
そんな中、Google、安定版Chrome 3を公開というタイミングが訪れましたので、改めて調査をした結果、乗り換えを決めました。


結果的に乗り換えを決めた理由は驚異的とも思えるその表示速度です。
JavaScriptの実行が早いという記事はどこかで読んで知っていたのですが、静的htmlでもその差は圧倒的です。
とくに、JavaTM Platform, Standard Edition 6 API 仕様など、frameで構成されたページで顕著なようです。


問題点としては拡張性の貧弱さが上げられます。
とくに現在構想段階に有るサイトでは、ブラウザ側にもプラグイン的な仕掛けを提供することを考えているため、拡張性は捨て切れません。
結果、この点については現時点で満足するに至っておりませんが、Google Chrome Extensionsなどという取り組みは確認出来たので良しとしています。


なお、乗り換えに伴いマウスジェスチャが変わってしまう問題については、以前調査した方法で切り抜けています。
Sleipnir/FireFox/Chromeで同じマウスジェスチャを使う


Windows7の開発テーマの一つに「基本性能向上に注力する」というものが有ったようですが、
OSやブラウザという言わばインフラ的なソフトウェアが、多機能化より安定性や軽さを追求する方向に向かうのは歓迎すべき傾向だと考えます。
気付けばハードウェアのCPUはクロックアップ競争から省電力競争へ移行していますし、
GAE/J用の最新アプリケーションフレームワークであるSlim3の開発テーマも、"Simple" and "Less Is More"となっており、何か共通した要素を感じてしまいます。