2009年10月29日木曜日

DroidのGoogle Maps Navigationはスゴそうだ!

DroidのGPSを使ったGoogle Mapsナビはスーパー・クール!

スーパー・クール、いいですねぇ。記者の興奮が伝わってきます。
実際に、YouTubeにあるGoogleの公式紹介ビデオを見ましたが、これは欲しくなります。
ちなみにビデオの中で彼が着ている「I am here.」というTシャツも欲しくなります(^^)



音声検索ができるし、ストリートビューに自動的に切り替わったりするし、ドックモードもあって、しかも無料。カーナビゲーションシステムを開発しているところは苦しくなるかもな、と心配になるくらいの出来ですね。

恐らく実際に動かしてみると、クラッシュしたり思い通りに動作しないところもあるのでしょうが、チューニングやバグフィックスが重ねられてソフトの品質が高まってくると、脅威でしょうね。


上記の公式紹介ビデオでは、実際に開発に当たっているGoogleのエンジニアの方がソフトの紹介をしていましたが、Google社員はプレゼン能力も高くないといけないんだなと思いました。そういった意味では、Googleはまるで大学の研究室のようでアカデミックですね。

YouTubeのGoogle DeveloppersのチャンネルにはGoogle社員がデモンストレーションやプレゼンテーションをしている多くのビデオがありますが、動画に対するコメントの中にプレゼン能力に対する言及も結構見受けられます。

Googleの社員はエンジニアとしてもプレゼンテーターとしても高い能力が求められるのでしょうね。

2009年10月26日月曜日

空援隊を「知ってしまった」ということ

気迫で実現したご遺骨の帰還:野口 健(アルピニスト)(1)

アルピニストの野口健さんが日本に帰還できていないご遺骨を収集する活動をなさっていることは知っていたが、これほど過酷なものとは知らなかった。というか、活動をしてらっしゃることは知っていても、それがどれほど根気も、精神力も、資金も、政治的な交渉も必要なしんどい活動なのか、その実態を全く知らなかった。登山家なのになんでそのような活動をされてるんだろう、と素朴に疑問に思っていた程度だった。

でも彼の記事を読むと、彼がこの活動を行う決意や衝動のようなものを知ることが出来る。大仰な大義を振りかざすのはなく、正直な言葉で淡々と、しかし力強く。

一番印象に残ったのは彼がなぜこの活動を続けるのかという問に対する答えの部分。


日々いろんな情報や人や出来事に出会う。中には、自分が何か出来ることはないか、考えこんでしまうものもある。でも「知ってしまって」おきながら、自分の背中にはまだそれが背負えないだろうという結論にいたることが多く、罪悪感を感じる時も。

いっそ、知らなければよかったと思ったり、知ることを怖がって新しいものに出会うことを避けようとしたりも。

知ってしまったそのことに正面から向き合い格闘している彼の姿はすごいですね。尊敬します。

自分も彼の活動を知って、何かできることはないか考えて、空援隊に寄付をしました。これからも定期的に行うつもりです。
三菱東京UFJ銀行 京都支店  普通口座 6816051  口座名 トクヒ)クウエンタイ


いろんなものを背負える人間になりたいなぁ~~~!!!!

BlazeではKey型はマッピングされないのでString型をメインに使おう

エンティティグループの永続化をunowned-relationshipで構成しようと、gae.parent-pkを使い、親キーのタイプをKey型で指定していた。

しかし、システムの環境としてBlazeDSを使っていたので、ActionScriptが展開できる型にKey型がなく問題に。ふむー。

ちなみにActionScriptとJavaで互換性のあるデータタイプの一覧はこちら。
Explicitly mapping ActionScript and Java objects

よってKey型をやめ、String型をメインに使うように仕様を変更し、encoded-pk属性を追加。

また、データ登録時に主キーにユニークな値を設定してほしいので、IdGeneratorStrategy.IDENTITYの設定も有りにして、以下のような構成になった。
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Parent{

 @PrimaryKey
 @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
 @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
 private String parentId;

//以下アクセッサー

}

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Child {

 @PrimaryKey
 @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
 @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
 private String childId;

 // 親キーIDを格納するプロパティ
 @Persistent
 @Extension(vendorName = "datanucleus", key = "gae.parent-pk", value = "true")
 private String parentId;

//以下アクセッサー

}
これからはBlazeDSとの互換性の意味でも、このような主キー、親キーの設定方法でいこう。


それにしても、Kindの形をドンドン変えられるというのはスゴイ。これまでのRelational DataBaseでは考えられない拡張性だ。フィールドの追加も型の変更も、オンザフライでドンドン変えられる。この体験はまさに別世界だなー。この環境を与えてくれたGoogleに感謝!