以前、以下の件で苦戦していた事について、一応の解決をしたのでメモ。
http://takashi-yokoyama.blogspot.com/2011/07/youtubeapionyoutubeplayerready.html
どうやら、YouTubeのカスタムプレーヤーのコールバック関数はファイルを直接開くと
(file://というURLで開く場合)
onYouTubePlayerReady()が呼び出されないようです。
仕様の記述を見つける事ができていないのですが、
Webサーバに配置してhttpアクセスをした場合は関数が呼び出される事が確認できました。
Webサーバはapacheでも良いし、GAE/Gの開発サーバを使っても良いです。
ということで、利用する場合はWebサーバに配置した状態でアクセスする必要があります。
これはブラウザの仕様なのか、httpの仕様なのか、まだまだ勉強が必要なようです。
2011年8月11日木曜日
2011年8月2日火曜日
Google App Engine Goでは"_"(アンダースコア)に気をつけろ
Google App Engine for Go SDK1.5.2のローカル環境で発生しているのですが、
アプリケーションの初回ビルド時にGo言語のソースファイルに"_"が含まれていると、
ビルドは正常に通るのですが、レスポンスが404になってしまいます。
※MacOSX(32bit版SDK)とUbuntu11.04(64bit版SDK)で現象を確認しました。
例えば、以下のような構成で、
app.yaml
compiletest(ディレクトリ)
compile_test.go
app.yaml
compile_test.go
中身はただのHelloWorldですが、この構成で初回ビルドを行うと、404が返ってきます。これが、ファイル名から"_"を削除した状態にして
アクセス(コンパイル、実行)した後、再度、"_"を付けた状態にしても正常に動作するようになります。
ということで、バグなのか、仕様なのか(多分バグだと思います)わかりませんが、ファイル名に"_"を付けた命名は
今の所、気をつけた方が良いと思います。
ちなみに、本番環境では試していないのでわかりません。
アプリケーションの初回ビルド時にGo言語のソースファイルに"_"が含まれていると、
ビルドは正常に通るのですが、レスポンスが404になってしまいます。
※MacOSX(32bit版SDK)とUbuntu11.04(64bit版SDK)で現象を確認しました。
例えば、以下のような構成で、
app.yaml
compiletest(ディレクトリ)
compile_test.go
app.yaml
application: helloworld version: 1 runtime: go api_version: 2 handlers: - url: /.* script: _go_app
compile_test.go
package compiletest
import (
"fmt"
"http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!")
}
中身はただのHelloWorldですが、この構成で初回ビルドを行うと、404が返ってきます。これが、ファイル名から"_"を削除した状態にして
アクセス(コンパイル、実行)した後、再度、"_"を付けた状態にしても正常に動作するようになります。
ということで、バグなのか、仕様なのか(多分バグだと思います)わかりませんが、ファイル名に"_"を付けた命名は
今の所、気をつけた方が良いと思います。
ちなみに、本番環境では試していないのでわかりません。
2011年8月1日月曜日
vi、emacsにGoのソースコード設定を追加する。
Go言語のソースコードを読んだり、書いたりするためには、
今の所、私が知る限りでは、vi、emacs、その他テキストエディタで開いて中身を見るしか
方法がありません。
ということで、Go言語のソースコードをダウンロードすると、一緒にvi用、emacs用の設定ファイルが
ついてきます。それを導入したので、メモを残しておきます。
●viの設定(on Ubuntu11.04 64bit版)
設定ファイルの場所:$GOROOT/misc/vim
1. sudo apt-get install vim
初期状態のvimだと2の設定が有効にならない(エラーになる)ので最新の状態にしておく。
2. ~/.vimrcに以下の記述を追加する。
filetype plugin on
filetype indent on
2.5. Mac OSXだと、.vimrcに以下の記述も追記する必要がある。(2011/08/31追記)
syntax on
3. ~/.vim/に$GOROOT/misc/vimの設定ファイルをすべてコピーする
例)
$ cd $GOROOT/misc/vim
$ cp -rp * ~/.vim
4. Goのソースコードをviで開いて、以下のように色が変わっていれば成功
●emacsの設定(on Mac OSX)
設定ファイルの場所:$GOROOT/misc/emacs
1. $GOROOT/misc/emacsにある設定ファイル(*.el)を~/emacs.dにコピーする
例)
$ cd $GOROOT/misc/emacs
$ cp -p *.el ~/emacs.d
2. .emacsに以下の設定を追記する。
;;これはお好みに合わせて。。(初期値は8)
(setq-default tab-width 4)
(add-to-list 'load-path "~/emacs.d")
(require 'go-mode-load)
3. emacsでGoのソースファイルを開き、以下のように色が変わればOK
今の所、私が知る限りでは、vi、emacs、その他テキストエディタで開いて中身を見るしか
方法がありません。
ということで、Go言語のソースコードをダウンロードすると、一緒にvi用、emacs用の設定ファイルが
ついてきます。それを導入したので、メモを残しておきます。
●viの設定(on Ubuntu11.04 64bit版)
設定ファイルの場所:$GOROOT/misc/vim
1. sudo apt-get install vim
初期状態のvimだと2の設定が有効にならない(エラーになる)ので最新の状態にしておく。
2. ~/.vimrcに以下の記述を追加する。
filetype plugin on
filetype indent on
2.5. Mac OSXだと、.vimrcに以下の記述も追記する必要がある。(2011/08/31追記)
syntax on
3. ~/.vim/に$GOROOT/misc/vimの設定ファイルをすべてコピーする
例)
$ cd $GOROOT/misc/vim
$ cp -rp * ~/.vim
4. Goのソースコードをviで開いて、以下のように色が変わっていれば成功
●emacsの設定(on Mac OSX)
設定ファイルの場所:$GOROOT/misc/emacs
1. $GOROOT/misc/emacsにある設定ファイル(*.el)を~/emacs.dにコピーする
例)
$ cd $GOROOT/misc/emacs
$ cp -p *.el ~/emacs.d
2. .emacsに以下の設定を追記する。
;;これはお好みに合わせて。。(初期値は8)
(setq-default tab-width 4)
(add-to-list 'load-path "~/emacs.d")
(require 'go-mode-load)
3. emacsでGoのソースファイルを開き、以下のように色が変わればOK
2011年7月29日金曜日
Google Android WebAPIプログラミング入門(正誤表)
私が執筆したGoogle Android WebAPIプログラミング入門の正誤表を載せておきたいと思います。(ちなみに以下の本です)
このページは非公式のものとします。(2011/12/20:秀和システムさんに連絡して公式の正誤表となりました。)
また、発見、報告があり次第、追記したいと思います。
正誤表
P.272−9行目:
(誤)また、後述しますが最新版Twitter4j 2.2.1が…
(正)また、最新版Twitter4jが…
9章の9-4に関して書籍のサンプルが動作しなかったという報告をいただきました。
ありがとうございます。現象を確認したいのですが、すぐに時間が取れないので、
取り急ぎ、サイトへのリンクを掲載しておきます。
http://sarl-tokyo.com/wiki/index.php?Google%20Android%20WebAPI%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A7%E3%81%84%E3%81%A6
また、発見、報告があり次第、追記したいと思います。
正誤表
P.272−9行目:
(誤)また、後述しますが最新版Twitter4j 2.2.1が…
(正)また、最新版Twitter4jが…
9章の9-4に関して書籍のサンプルが動作しなかったという報告をいただきました。
ありがとうございます。現象を確認したいのですが、すぐに時間が取れないので、
取り急ぎ、サイトへのリンクを掲載しておきます。
http://sarl-tokyo.com/wiki/index.php?Google%20Android%20WebAPI%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A7%E3%81%84%E3%81%A6
2011年7月25日月曜日
Google App Engine Go SDK 1.5.2での注意点
Google App Engine SDKのバージョンが1.5.2になりました。
リリース内容は以下のサイトを御覧ください。
http://googleappengine.blogspot.com/2011/07/app-engine-152-sdk-released.html
私もGoのSDKを更新してプログラムが動くかどうか確認していたのですが、
ローカルサーバで実行するとdev_appserver.pyのエラーが出て実行できなくなりました。
いろいろ調べているとapp.yamlのapi_versionを2にしないといけないことがわかりました。
ということで、ドキュメントサイトを確認してみたら、サンプルコードは2になっていましたが、説明には1と記述されていたので注意が必要です。
一応、Hello Worldのコードを掲載しておきます。
大したコードではないですが、api_versionには注意してください。
これに気がつくのにかなりの時間を取られました。
ただ、クラウド上にデプロイして実行する分にはapi_versionが1でも動作します。
(※HelloWorldレベルで確認しただけです)
デプロイのコマンドは以下のコマンドです。
appcfg.py update [ソースコードがあるディレクトリ]
リリース内容は以下のサイトを御覧ください。
http://googleappengine.blogspot.com/2011/07/app-engine-152-sdk-released.html
私もGoのSDKを更新してプログラムが動くかどうか確認していたのですが、
ローカルサーバで実行するとdev_appserver.pyのエラーが出て実行できなくなりました。
いろいろ調べているとapp.yamlのapi_versionを2にしないといけないことがわかりました。
ということで、ドキュメントサイトを確認してみたら、サンプルコードは2になっていましたが、説明には1と記述されていたので注意が必要です。
一応、Hello Worldのコードを掲載しておきます。
application: helloworld version: 1 runtime: go api_version: 2 handlers: - url: /.* script: _go_app
package hello
import (
"fmt"
"http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello World!")
}
大したコードではないですが、api_versionには注意してください。
これに気がつくのにかなりの時間を取られました。
ただ、クラウド上にデプロイして実行する分にはapi_versionが1でも動作します。
(※HelloWorldレベルで確認しただけです)
デプロイのコマンドは以下のコマンドです。
appcfg.py update [ソースコードがあるディレクトリ]
2011年7月9日土曜日
第10回OITEC勉強会に参加しました。
今日は岡山でMicrosoft関連の技術を主に扱っているOITEC勉強会に参加しました。
会場が県立図書館のデジタル情報シアターだったので、飲食禁止。
しかも、いい感じで無線LANスポットも使えず、色々と残念な状態でした。
(結局、Android端末でテザリングをしました。電源が使えたので良かった。)
午前の部はTDDBCのサテライトということで、Ust放送をしていました。
テスト駆動開発がテーマでしたが、良い点、悪い点はあるような気がしました。
Twitter上でのやりとりは以下にまとめられています。
http://togetter.com/li/159430
午後の部
Kinect開発、はじめの一歩
・結構スペックを要求される。
開発方法
・OpenNIを利用する
Macでは開発が不可能かと思ったら、詳細は以下のブログにまとめられていました。
http://switch.dip.jp/toro/blog/?p=266
・Microsoftが提供しているSDKを利用する。
価格に対して、いろいろ遊べるので良いそうです。
導入、開発も簡単。(Visual Studio 2010とKinect SDKがあれば良いのかな?)
教育、医療分野では導入実績もあるそうです。
服を買う時に、服を着た映像を表示するなどマーケティングにも利用される。
手話を声に変換するという使い方もできるようになるかもしれない。
一番の期待はアクセシビリティ
しかし、環境がWindows7限定になっているのが残念。
ASP.NET MVC 3
・Microsoft .NET Framework 4のみのサポート
・データを参照する(Model)
・ルーティングに従って、クラスが実行される(Controller)
・Razorビュー・エンジン
View内でもブレークポイントがおける。
Razorでは、@変数名でView内に値を表示させる事ができる。
@("<strong>")なんてことをすると、HTMLがエスケープされる。
@Html.Row()を使うと、HTMLがそのまま出力される。
@{ }で囲むと、View内でコードを書くことができる。
コードブロック内でもHTMLのタグはタグとして認識してくれる。
<text>タグで囲むと、プログラムと認識されずに、そのまま出力してくれる。
ASP.NET MVC 3 EF4.1 Code FirstとNuGet
・Ruby on RailsのようにModelからデータベースを生成してくれる。
・バリデーションも自動的に。
・SQL Server Compact Edition 4.0をWebサーバにデプロイすることができるようになった。
SQLiteのような利用が可能になる。
・ただし、利用可能なホスティング業者が少ないので、実運用するためには…?
NuGet
・Ruby Gemのようにプロジェクトに必要なライブラリを取り込むアプリケーション
GUI、CUIどちらでも利用可能。
0から始めるExpression Blend + Phone 7
・疲労困憊により、デモを眺めているだけになりました。
(やっぱり最近、目の疲労からくる疲れ(?)に悩まされます。)
2011/07/10 追記
プレゼント大会で、以下の書籍を頂きました。以前からSilverlightはやりたかったので
しっかり読んでみようと思います。
会場が県立図書館のデジタル情報シアターだったので、飲食禁止。
しかも、いい感じで無線LANスポットも使えず、色々と残念な状態でした。
(結局、Android端末でテザリングをしました。電源が使えたので良かった。)
午前の部はTDDBCのサテライトということで、Ust放送をしていました。
テスト駆動開発がテーマでしたが、良い点、悪い点はあるような気がしました。
Twitter上でのやりとりは以下にまとめられています。
http://togetter.com/li/159430
午後の部
Kinect開発、はじめの一歩
・結構スペックを要求される。
開発方法
・OpenNIを利用する
Macでは開発が不可能かと思ったら、詳細は以下のブログにまとめられていました。
http://switch.dip.jp/toro/blog/?p=266
・Microsoftが提供しているSDKを利用する。
価格に対して、いろいろ遊べるので良いそうです。
導入、開発も簡単。(Visual Studio 2010とKinect SDKがあれば良いのかな?)
教育、医療分野では導入実績もあるそうです。
服を買う時に、服を着た映像を表示するなどマーケティングにも利用される。
手話を声に変換するという使い方もできるようになるかもしれない。
一番の期待はアクセシビリティ
しかし、環境がWindows7限定になっているのが残念。
ASP.NET MVC 3
・Microsoft .NET Framework 4のみのサポート
・データを参照する(Model)
・ルーティングに従って、クラスが実行される(Controller)
・Razorビュー・エンジン
View内でもブレークポイントがおける。
Razorでは、@変数名でView内に値を表示させる事ができる。
@("<strong>")なんてことをすると、HTMLがエスケープされる。
@Html.Row()を使うと、HTMLがそのまま出力される。
@{ }で囲むと、View内でコードを書くことができる。
コードブロック内でもHTMLのタグはタグとして認識してくれる。
<text>タグで囲むと、プログラムと認識されずに、そのまま出力してくれる。
ASP.NET MVC 3 EF4.1 Code FirstとNuGet
・Ruby on RailsのようにModelからデータベースを生成してくれる。
・バリデーションも自動的に。
・SQL Server Compact Edition 4.0をWebサーバにデプロイすることができるようになった。
SQLiteのような利用が可能になる。
・ただし、利用可能なホスティング業者が少ないので、実運用するためには…?
NuGet
・Ruby Gemのようにプロジェクトに必要なライブラリを取り込むアプリケーション
GUI、CUIどちらでも利用可能。
0から始めるExpression Blend + Phone 7
・疲労困憊により、デモを眺めているだけになりました。
(やっぱり最近、目の疲労からくる疲れ(?)に悩まされます。)
2011/07/10 追記
プレゼント大会で、以下の書籍を頂きました。以前からSilverlightはやりたかったので
しっかり読んでみようと思います。
2011年7月8日金曜日
YouTubeAPIのコールバックonYouTubePlayerReady関数がコールされない
今日はYouTube APIを使ってみようと思い、サンプルコードを作ってみたのですが、
YouTubeの動画が表示されて、マニュアルだと再生されるようにもなりました。
しかし、JavaScriptのコールバック関数が呼ばれない状態に陥っています。
原因はなんだろう。
これをHEADタグの所に仕込んで、
以下の処理をBODYの所に仕込んでみました。
仕様では、onYouTubePlayerReadyが呼び出されるはずなんだけど。。。
HTML5だと動かないとかかな…?
(HTML4.01の例ならあったし、表示したら動いていた)
YouTubeの動画が表示されて、マニュアルだと再生されるようにもなりました。
しかし、JavaScriptのコールバック関数が呼ばれない状態に陥っています。
原因はなんだろう。
これをHEADタグの所に仕込んで、
google.load("swfobject", "2.1");
function onYouTubePlayerReady(playerId) {
alert(playerId);
console.log('onYouTubePlayerReady' + playerId);
}
以下の処理をBODYの所に仕込んでみました。
var player;
var swfUrl = 'http://www.youtube.com/v/u1zgFlCw8Aw?enablejsapi=1&playerapiid=ytplayer';
var params = { allowScript: "always", bgcolor: "#cccccc" };
var atts = {id: "myytplayer" };
swfobject.embedSWF(swfUrl, "ytapiplayer", "640", "360", "9", null, null, params, atts);仕様では、onYouTubePlayerReadyが呼び出されるはずなんだけど。。。
HTML5だと動かないとかかな…?
(HTML4.01の例ならあったし、表示したら動いていた)
登録:
投稿 (Atom)

