ラベル gae の投稿を表示しています。 すべての投稿を表示
ラベル gae の投稿を表示しています。 すべての投稿を表示

2016年1月24日日曜日

Google App EngineでChainerを動かそうとして諦めた時のメモ

表題どおり、Google App EngineでChainerを動かしてみようと思ったが、上手くいかなかった。
そのときのメモを書いておく。


1. numpyのバージョン

GAEはデフォルトでnumpyが用意されているが、これのバージョンは1.6.1
しかしChainerでは1.9,1.10が前提のようなので、これは使えない。

実際に、1.6.1のまま動かそうとすると、numpyのfull関数がないとかでエラーが出た。
githubのソースを見る限り、1.6.1では確かにfullはない様子。

そのため、自前のライブラリとしてnumpyの1.10を用意し、GAEにデプロイする。

2. 自前ライブラリのデプロイ


デプロイ対象のアプリケーションのルート直下にlibという名称のファイルを用意する。
そのlib以下にnumpyをインストールする。

$ pip install -t lib numpy

chainerとchinerが必要とするh5pyもついでにインストールする

$ pip install -t lib h5py


$ pip install -t lib chainer



そして、同じくルート直下にappengine_config.pyという名称のファイルを作成し、下記の内容を記載する。

from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')

3. SDKで実行
SDKで実行したところ、下記のエラーが出た。


  File "<app path>\lib\numpy\core\__init__.py", line 14, in <module>
    from . import multiarray
ImportError: cannot import name multiarray

multiarrayというモジュールがないとのこと。
ディレクトリを見てみるとmultiarrayはsoファイルでできたモジュールだった。

Google App EngineのドキュメントにははっきりとC extensionがだめと書いてあるので、おそらくこいつは動かないのだろう。

You can add any third-party library to your application, as long as it is implemented in "pure Python" (no C extensions) and otherwise functions in the App Engine runtime environment. The easiest way to manage this is with a ./lib directory.

ということでここで諦めた。
pythonのバージョンも2.7だし、やっぱグーグルさん的にはもうGoogle App Engineに力入れる気ないのかなあ。

2013年11月19日火曜日

Google App Engineのデータをエクスポートする方法

iOSのランキングを日々取得しているiOSランキングトラッカーは、無課金のGoole App Engineで動かしていますが、そろそろ容量の上限値1Gに達しそうな勢いです。

収益があるわけでもない、ただの趣味Webサービスに金をかけることも出来ないので、古いデータを外出しする方法を調べてみました。

今回はそのうち、Google App EngineのBigQuery上にあるデータを手元のデスクトップPCにコピーする手順を紹介します。

1. app.yamlを編集する

下記の二行を追加する。

builtins:
- remote_api: on

2. コマンドを実行してアプリケーションを更新する。

<GAEのインストールパス>/appcfg.py update <app-directory>
注: <app-directory>は直下にapp.yamlがおいてあるディレクトリを指定する必要がある。


3. コピーの実行

%><gae-install-dir>/appcfg.py download_data --application=<app-id> --url=http://<appname>.appspot.com/[remote_api_path] --filename=<data-filename>
<app-id>はapp.yamlに定義した"application"の値。
ただし、high-replication datastoreを使ってる場合、appidの先頭にs~をつける必要がある。
例) applicationの値がexampleで、high-replication datastoreを使ってる場合は下記のようになる。
%><gae-install-dir>/appcfg.py download_data --application=s~example --url=http://example.appspot.com/_ah/remote_api --filename=/tmp

補足

どうやら、このコマンド実行もDataStoreのリクエスト制限の対象のようで、OverQutaErrorが出てしまいました。
OverQuotaError: The API call datastore_v3.RunQuery() required more quota than is available.
 このような場合は下記のようにkindを指定したほうがよさそうです。
%><gae-install-dir>/appcfg.py download_data --application=example --kind=<kind> --url=http://example.appspot.com/_ah/remote_api --filename=/tmp

参考文献

データのアップロードとダウンロード

2013年10月15日火曜日

App Ranking HIstoryにチャート機能を実装した

AppleのRSSからiPhoneアプリのランキングを取得するApp Ranking Historyにチャートを導入してみました。

気になるアプリのランキング推移をチャートで確認できます。



google chart apiを使って作りました。
定番のchartはひと通り揃ってていい感じです。

一応スマフォでも見れるようには作りましたが、レイアウトとか見栄えが若干いまいち。

iPhoneのサファリで株価とかgoogle検索すると綺麗に表示されるんだけど、これはどうやってるんだろうか。これもgoogle chart apiつかってるのだろうか。




ところで、このサービス、暇な時にちょこちょこいじってましたが、ここまで来ると次はアプリ名で検索とかしたくなりますね。まあそれは気が向いた時にでもやってみます。

2013年8月4日日曜日

iOSアプリトラッカー アップデートしました

前にブログで紹介したiTunesストアで1位をとったアプリを時系列で表示させるiOSアプリトラッカーをちょっとだけ機能拡張しました。

今回の修正では1位だけじゃなくて2位以降も表示出来るようにしました。






日付のところをクリックすると、今まではiTunesストアのアプリページに飛んでいたのですが、今回からは次のような画面に遷移して2位以降のアプリも見ることができます。

2013年5月5日日曜日

ランキング1位のiPhoneアプリの履歴を表示するサービス作ってみた

定期的に新しいアプリが話題に上がってくるiPhoneアプリ。
毎日App Storeを眺めてても面白いんですが、忙しくなるとしばらく見ないこともしばしば。

なので、ランキング1位のアプリを毎日記録して一覧表示するサービスを作ってみました。


iPhoneアプリだけでなく、iPadアプリも見ることができます。
それにしてもパズドラすごいですね。さすが1300万ダウンロード。

元になるデータはapple公式のiTunes Store RSS
これをgoogle apps engine上でかいたpythonで一日一回cronで取得しています。

今回のアプリでは日本のメディアタイプがiTune Appsのデータを取得していますが、プルダウンの選択を変えればmusicとかも取得出来ます。