
パシフィコ横浜で行われた、Google Developer Dayに行ってきた。
今年で3回目で、毎年サプライズがあったり、ためになる講演もあって結構楽しみにしていたんだけど、今年もやっぱりありました!
今年はなんと、Android端末(GDDフォン)の無料配布!

さすがGoogle!
先日アメリカで開催されたGoogle I/Oで同じように無料配布やってたみたいだけど、日本でもあるとは思ってもみなかったですねー。これでAndroidアプリの開発をしないといけなくなりました(笑)
ちなみに端末は、ドコモで発売予定のHTC製「HT-03A」と同等のもの(と思われる)。発売されたら買おうと思ってたけど、FOMAカード差して使えないかな・・・?本製品の発売は、ドコモの方の話だと、6月下旬~7月にかけてらしい。
さて、行ってきたセッションは下記。
今回のセッションで中心になったのは、「HTML5」「Android」「Open Social」「Google App Engine」そして、「Google Wave」。
HTML5の先進的なWebの話や、Androidへの力の入れ具合、そして日本ではmixiに代表される、Socialアプリ関連のビジネス的な可能性など、とても参考になるお話が聞けた。AndroidやOpen Socialはまだまだこれからの世界なので、今からでも十分に先行者メリットを享受できそう。App EngineはJavaに対応したことで、これから続々とApp Engineを利用したサービスやASPなんかがでてきそう。
そして今回一番これはすごいと感じたのは、Google Wave。
Google I/Oのニュースでもだいぶ話題になっていたが、インスタントメッセンジャーで十分なのでは?なんて個人的に思っていたが見事に覆された。リアルタイムでの情報共有、翻訳、ゲーム、そしてプレイバック機能などのデモを見ていると、これは今までにないWeb体験ができそうだ。今回、セッションに来た人に優先的にアカウントを配ってくれるということで、とても楽しみだ。
かなり長時間ではあったが、今回もとても刺激になるよいイベントでした。
さて、GDDフォンでいろいろと試してみよっかな。

docomoの2009年夏モデルの機種が発表されました。
個人的には、Androidケータイが大注目だったわけだが、コンテンツプロバイダーにとっては大きな変化「iモードブラウザ2.0」の発表がありましたね。
今回は「iモードブラウザ2.0」について気になったところを抜粋してまとめてみた。
作ろうiモード:iモードブラウザ2.0 | サービス・機能 | NTTドコモ
こちらの追加機能にそっていきます。
Flash VideoとWindows Media(WM)にやっと対応。Flashに関しては埋め込みもできるようだ。
WMに関しては、ストリーミングも可能なようです。
10MBまで対応。Flashの埋め込みは500KB。
BMPとPNGに対応。こちらは大勢変わらないでしょう。
今回の目玉の一つ。
alert()などのポップアップ、history.back()はもちろんのこと、XMLHttpRequestによる非同期通信もできるので、画面をリロードすることなく、動的に画面の切り替えが可能。これは今までの携帯の使い勝手を大きく変える可能性がありそう。
最大ファイルサイズはHTML等も含めて500KBなので、jqueryなどのライブラリも利用できそう(かな?)
今まで意味不明な仕様の一つ、インラインCSSにしか対応していなかったのが外部CSSも対応になる。
Cookie対応です。PCブラウザの仕様とほぼ一緒。
セッション管理はもちろん、ユーザの効果を取りたいアフィリエイトプロバイダや解析業者もうれしい仕様だ。
こちらもうれしい仕様の一つですね。
SEO効果をほぼ追えなかった、docomoだったが大きく変わりそう。
今回この仕様もかなり大きい。タブブラウザ型になるため、ユーザへの導線を大きく変更することができる。例えば、商品説明はtarget=”_blank”など別ウィンドウに表示させて、、とかそんな技ができる。
iframeにも対応しているので、外部サイトを表示させたり、効果を取ったりなどの自由度が一気にあがる。
———-
それにしても、imode10周年を機に大きく変わったなというのが印象。いままでここまでの仕様変更はなかった。
そしてフルブラウザとiモードブラウザの違いが特にないように見える。ゆくゆくはiPhoneやAndroid携帯などのスマートフォンのブラウザとも競争相手になっていく訳で、ここに大きくdocomoが力を入れたのはよくわかる。docomoが各コンテンツプロバイダーなどから、意見や要望をよく集約した結果なんだろうなという気がする。
一つ残念なのは、このブラウザの独立性がない、というかバージョンアップに対応できないところだ。セキュリティの脆弱性にはファームアップデートなどで対応するんでしょうが、iPhoneのSafariのようにバージョンアップができれば、新しい仕様追加になった時にもバージョンアップが可能になるのにと思う。また、別の問題かもしれないが、独立性のあるソフトウェアなら、別のスマートフォンにもiモードブラウザが載せることができるのにと思うと残念だ。
コンテンツプロバイダにとっての悩みどころは、この大きな移行期にどう対応していくかというところ。シェアはしばらく旧端末のほうが多いので、新機種専用コンテンツを立ち上げるのか、既存のコンテンツで新機種用の判別をして、見せ方を変えていくか。そういう対応が迫られそう。こうなるのもバージョンアップができないブラウザ仕様のせい・・・
また、JavascriptやRefer対応により携帯だからというところで、セキュリティをある程度無視して、コンテンツを作っているところは大きく対応が必要になりそうだ。
PHPで携帯サイト開発者には、お馴染みのPEARモジュール「Net_UserAgent_Mobile」がRC2となってアップグレードされたようです。
Net_UserAgent_Mobile :: 1.0.0RC2
アップグレード方法はPEARコマンドで。
# pear upgrade Net_UserAgent_Mobile
今回アップグレードされた内容は、
のようです。
ソースをよくよく見てみると、docomoのGPS対応端末可否を返したり、HTMLバージョンを返す部分は、機種のマッピング表をソースに持っていたとは・・・
そんなに頻繁にアップグレードされないモジュールなため、その辺りを使いたい人は自分でメンテナンスしないとだめでしょうね。
だいぶ前になるが、ライブドアのオープンソースレコメンデーションエンジン「Cicindela」の概要とインストールをしたが、今回はもう少し内容について、深くつっこんでみた。
インストールについては、以前の記事、
ライブドアのレコメンデーションエンジン「Cicindela」を試す - ueblog
を参考にしよう。
まずは箱となる、テーブルを用意する。Cicindelaをインストールしたディレクトリ以下の「misc」ディレクトリにあるperlプログラムをたたく。
$ cd misc
$ perl create_init_sql.pl --db_name=sampledb | mysql -u root
これで「sampledb」というインスタンスがmysql上に作成され、雛形となるテーブルが空の状態で作成される。
なお、異なる複数のデータをひとつのCicindelaで処理させることもできる。その場合は別インスタンスを作成し、後述するConfigの設定ファイルで「datasource」を変更することで可能だ。
仕組みをかなり簡単におさらいすると、
というわけだが、2番の集計の仕方がもちろん肝となる。仕組みについては以前のセミナー資料がわかりやすい。
8ページ目あたりが詳しい。
まずやるべきことは、設定ファイルを理解するところからはじまる。
設定ファイルはインストールディレクトリの「lib/Cicindela/Config/_common.pm」にある。
この1ブロックが1集計セットとなる。
「filters」や「recommender」の部分を変更させることによって、同じ元データから違った集計のさせかたができる。
違う元データを扱いたいときは、準備で書いたように別インスタンスを作成して「datasource」を変更させたほうが対応しやすい。
設定については、Cicindelaのマニュアルを参照すること。(まだ未完成のようだが)
あらかじめ何種類かのFiltersとRecommenderが用意されている。もちろん自作も可能。
Filters::
CommonTags
CopyPicks
CropPicks
InverseUserFrequency
ItemSimilarities
PicksExtractor
Ranking
RatingsConverter
RawSQL.pm
SlopeOneDiffs.pm
UserSimilarities
Recommender::
Cascaded
Hybrid
ItemSimilarities
Ranking
SlopeOneDiffs
UserSimilarities
サブクラスも含めると、かなりたくさん用意されている。
ソース中には説明があるものはあるが、マニュアルはまだないので完成に期待。
集計させる元データは、サイトの特性によって違うと思うが、主には、
などが利用できそう。
アイテムとユーザが結びつくデータなら何でも使えそう。
アイテムのカテゴライズとタグ付けもできるので、絞込みも可能。
Cicindelaではカテゴリーとタグの違いは、カテゴリーはアイテムを分類するだけだが、タグはアイテムとユーザを分類する違いがあるようだ。
結局は何のデータをどう集計させて、どうみせるかというところは、自分なりにシナリオを考えないといけないので、そこが一番難しいところであり、面白い部分でもある。
先に紹介してPDFで、実際にライブドアのサービスで利用されている部分の紹介は、かなり参考になるでしょう。
この分野だけでも、会社が存在するくらいなので奥が深い・・・
HotmailのPOP3(SSL)対応により、GmailのMail Fetcherを利用して、Hotmailを取得できるようになったわけだが、何故かうまくいかない場合の対処法。
まずHotmailをGmailで受信する設定方法はこちらから。
GmailでHotmailが受信できるようになりました! | Google Mania - グーグルの便利な使い方
取得できるメールもあるが、途中で下記のようなエラーになる。
エラー: 一時的な問題により、サーバーにアクセスできません。
サーバーから返されたエラー "Error in RETR command: POP3 server failed to process your request"
こうなった場合、おそらくHotmail側に何かの理由で取得できないメールが存在しているようだ。
で、その悪の根源メールを削除するために、Hotmail側のサーバをPOPでのぞく必要がある。そのためには、フリーソフトのnPOPが便利だ。
ダウンロードしたら、解凍してそのまま利用可能だ。
nPoPでGmailと同じようにサーバ接続先の設定をして受信すると、途中で同じように「Error in RETR command~」とエラーが出てメール取得がストップするので、その時点で取得できなかったメール1通をHotmail上で削除して、また受信を行いエラーが出たら削除という行為を繰り返して正常に終了すれば、あとはGmailに戻って再度メールの取得を確認してみればOK。
ちなみに自分の取得できなかったメールは2000年のものと2002年のもので、どちらもHTMLメールでした。よくよく見るとHotmailは歴史が長いな・・・
Gmailに統一できるメリットは大きいのでぜひお試しを。
いまさら?な感じもするが、快適な開発環境を作るべく、Windows上にLinuxの仮想環境を用意し、PHPの開発環境を作ってみることにした。
利用したソフトウェアとバージョンは下記になる。
VMware Playerのインストール自体はとても簡単。
VMware Player 、仮想マシン、仮想PC - VMware
上記からダウンロードしたファイルを実行すればOK。ダウンロードする前にメールアドレスやアンケートがあるので答えておく。
インストール後は再起動を求められるので、再起動しておこう。
CentOSのインストールする前に、VMwareのディスクイメージを作成する必要があるので、下記サイトで情報を入力しダウンロードする。
EasyVMX!: Virtual Machine Creator
EaxyVMX V2.0というアイコンをクリックし、下記の情報を入力し、「Create Virtual Machine」ボタンを押すとzipファイルをダウンロードできるようになる。
| Virtual Machine Name | CentOS5.2 (なんでもOK) |
| Select GuestOS | Redhat Enterprise Linux 4 |
| Memory Size | 320MB (適度な値に設定) |
| # of CPUs | 1CPU |
| Disk #1 | Disk Size 4.7GB(Fits on a DVS)(適度な値に設定) |
| Shared Folder # | ホスト、ゲストOS間でファイル共有したい場合はチェック。 |
次にCentOSのファイルイメージをミラーサイトからダウンロードする。
http://ftp.riken.jp/Linux/centos/5/isos/i386/
CentOS-5.2-i386-bin-DVD.iso
EaxyVMXで作成したZIPにある「CentOS5.2.vmx」に上記で落としたCentOSのイメージファイルを指定するように下記の部分をテキストエディタで編集する。
# Settings for physical CDROM drive
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-image"
ide1:0.startConnected = "TRUE"
ide1:0.fileName = "C:\CentOS5.2\CentOS-5.2-i386-bin-DVD.iso"
ide1:0.autodetect = "TRUE"
赤色の部分が編集する部分で、fileName部分は落としたファイルの場所を指定する。
ここまでの準備ができればやっとインストールに入ることができる。
上記の「CentOS5.2.vmx」をダブルクリックで実行すると、VMwareが立ち上がり、CentOSのインストールウィザードが表示されるだろう。
詳しいCentOSのインストール方法は下記が詳しい。
VMwareとCentOSで簡単CMSテスト環境構築(3) - memolica * 小さな会社で働いている人のメモ
ポイントとしては、今回Eclipseをインストールするので、GUIのGNOMEかKDEをインストールしてしまおうということくらい。あとはお好みで。
VMware Player2.5からは、VMware Toolsが添付されないということで、共有フォルダやコピーアンドペーストが利用できる、VMware Toolsをインストールしておく。
tar.gzバイナリの中から、「linux.iso」を抜き出し、またその中から「VMWARETO.TGZ」というファイルを解凍して出てくる、RPMファイルを利用してインストールする。
詳しい説明は下記。
VMware Player に Fedora7 をゲストOSとしてインストール。VMware Tools (VMwareTools)のインストール
コピーアンドペーストを有効にするには、vmware-toolboxを常駐させる必要があるので端末などで下記のコマンドを打つ必要がある。
# vmware-toolbox &
あとはキーボードレイアウトの変更、解像度の設定など最適な環境にしておく。
PHP、MYSQL、APACHEをyumですべていれてしまう。ついでにsymfonyも。
# yum install php php-pear php-mbstring php-mysql php-gd php-xml
# yum install httpd
# yum install mysql-server
# pear upgrade PEAR
# pear channel-discover pear.symfony-project.com
# pear install symfony/symfony-1.0.20
まずはjdkをインストールするためにrpmをダウンロードしインストール
Java SE ダウンロード - Sun Developer Network (SDN)
RPMのJDKを選択しダウンロードしたファイルを実行する。
# chmod a+x jdk-6u13-linux-i586-rpm.bin
# ./jdk-6u13-linux-i586-rpm.bin
Eclipseはzendのall in one PDTのものを、日本語化はPlieadesからそれぞれダウンロードして展開する。
# tar xvfz pdt-2.0.0GA_debugger-5.2.15.v20081217-all-in-one-linux-gtk.tar.gz
# mv pleiades_1.3.0.zip eclipse/
# unzip pleiades_1.3.0.zip
# mv /usr/local/src/eclipse /usr/local/
eclipseディレクトリにある、eclipse.iniの一番下に下記を追記。
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
Eclipseを実行
# /usr/local/eclipse/eclipse -vm /usr/java/jdk1.6.0_13/bin/java
あとはEclipseの設定をするだけ。
VMwareというより、CentOSのGNOMEのキーボード設定や日本語環境を整備するのに少し手間取ったが、とても簡単に仮想開発環境を作成できた。
これはとても便利だ。
自分用のレポジトリを持ちたいという理由で、Subversionをインストールしたときのメモ。
yumでsubversionが既にインストールされているが、Apacheとの連携をする際に、Apacheもyumでインストールしないとうまく連携できないようなので、Subversionもソースからインストールした。
Apache2に関しては、DSOを有効にして既にインストール済みとして進める。
最新版のSubversionをダウンロードし、Configure。
# wget "http://subversion.tigris.org/downloads/subversion-1.6.0.tar.gz"
# tar xvfz subversion-1.6.0.tar.gz
# cd subversion-1.6.0
# ./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/usr/local/apache2/bin/apr-1-config \
--with-apr-util=/usr/local/apache2/bin/apu-1-config \
--with-ssl
すると下記のようにsqliteのバージョンが古いというわけでエラーに
An appropriate version of sqlite could not be found. We recommmend
3.6.11, but require at least 3.4.0.
Please either install a newer sqlite on this systemor
get the sqlite 3.6.11 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3.6.11.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/usr/local/src/subversion-1.6.0/sqlite-amalgamation/sqlite3.c
This file also ships as part of the subversion-deps distribution.configure: error: Subversion requires SQLite
sqliteを入れ直すか、sqlite3.cのソースを配置するかといわれるので、後者を選択。
というか、neonなど依存関係を含めたパッケージがあったのでそちらをあわせてダウンロードして利用する。
# cd ../
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.0.tar.gz
# tar xvfz subversion-deps-1.6.0.tar.gz
# cd subversion-1.6.0
再度、cofigure、makeを続ける。
# ./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/usr/local/apache2/bin/apr-1-config \
--with-apr-util=/usr/local/apache2/bin/apu-1-config \
--with-ssl
# make
# make install
make installすると、下記のようにapacheのhttpd.confにmod_dav_svnなどのモジュールが勝手に追加されている。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
さっそくレポジトリを作成してみる。お決まりの、trunk、tags、brancheseの作成、Apacheから書き込めるように権限の変更もお忘れなく。
# svnadmin create /var/svn/test
# svn mkdir file:///var/svn/test/trunk \
file:///var/svn/test/tags \
file:///var/svn/test/branches
# chown -R daemon:daemon /var/svn/test
あとは、httpd.confに下記のようなsvnのロケーション設定を加えてApacheを再起動。
<Location /svn/test>
DAV svn
SVNPath /var/svn/test
</Location>
あとはcheckoutできるか、試してみる。
$ svn co http://localhost/svn/test/trunk
ずっと面倒くさくてやっていなかった、Wordpress2.7の自動アップグレード機能を使って、Wordpress2.7.1にアップグレードしてみた。
仕組みとしては、Wordpressのサーバからzipファイルをダウンロードし、ローカルのFTPを利用してファイルを展開してるようだ。(この辺の仕組みが書いているサイトが見つけることができなかったので詳しくはわからない。)
なんでFTPが必要なのか?よくわからんが、とにかく必要な要件としては、
があるようだ。
とにかく下記を参考にFTPをインストールする。
FTPサーバー構築(vsftpd) - Fedoraで自宅サーバー構築
ローカルでFTPがつなげる状態にすればOK。
そしてWordpress管理画面の自動アップグレードを選ぶと、接続情報を求められるので、
ホスト名: localhost
ユーザ名: FTPで接続できるユーザ名(サーバのアカウント)
パスワード:上記のパスワード
接続形式:FTP
を入力するとアップデートが始まる。ほんの3~4秒で終了。
ついでにプラグインも同様にアップデートをしておく。
レンタルサーバの場合下記が参考になるだろう。
WordPress › フォーラム » 2.7 の自動アップグレード機能が使えるサーバ情報の募集
FTPが必要なのが面倒くさいが、zipを落として展開してアップするのを手動でやるより簡単でとても楽だ。
参考ページ
少し前のニュースだが、URLの正規化をサポートするタグ「rel="canonical"」を、大手検索3社(Google、Yahoo、Microsoft)が対応したようだ。
検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入(URLの正規化)
Webページには同じ内容のページでも複数のURLでアクセスできる場合が多々ある。例えば下記のような場合。
このような時に下記のようなタグをページごとにいれるだけで、検索クローラーはURLを一意に判別してくれる。
<link rel="canonical" href="http://www.google.com/" />
これはとてもよい仕様だと思う。
とくに携帯サイトはセッションIDがインデックスされてしまうと困ることがあるし、クローラーは適切にサイト内の重複コンテンツを排除し、またサイト内のリンク量が適切に図られる。
サイト運営者はすぐにでも対応すべきだ。
ちなみにwordpressでcanonicalタグに対応するには下記のプラグインを利用する。
本日のAdSense収入をぶっちゃけてみる。
最近は1日$10,000をさまよう感じですね・・・
というネタでした。
Make money with Google AdSense
AdSenseの収入をぶっちゃけてみる - IDEA*IDEA
最近ブログ更新をしてないのでこんなネタでごまかしてみる。