HOME > CONIT Labs.

CONIT Labs.

GAEでのデータアップロード


こんにちは 阿久津です。
第1回 Google App Engineを使ってみよう!!
第2回 GAE Datastoreのデータ取得パフォーマンスを検証!!
今回は、GAEでのデータアップロードについてです。
■データアップロードを使うシーンについて
色々と考えられると思いますが、以下の辺りではないかと・・・
・マスタ的に扱うデータモデルのデータを初期登録する
・他の環境で使用していたデータ(mysql,postgre,oracle,sqlserver,db2等)をGAEに移行する
・バックアップしてあったデータをアップする
・パフォーマンステスト用に大量データを投入する
上記に記載した限りではないですが、色々なシーンで活用できるこの機能は、覚えておいた方が便利だと思います。
GAEでのアップロード機能は、至って簡単なものなので実際試してみることをおすすめします!!
ではでは、以下より実際にデータアップロードするための手順をご紹介します。
■事前準備
・まずは、app.yamlに「remote_api」の設定を行います。

- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin

で、アプリケーションの更新処理を行います。

$ appcfg.py update

■データ準備
今回は、前回から使用しているUserモデルにデータをアップロードすることを考えていますので
awkなどを使って以下の形式のデータを10万行用意してみました。
 サンプル:$awk ‘BEGIN{OFS =”,”; for (i =1; i <= 100000; i++) print("xxx" i,"id" i,"name" i);}' > user.csv
■ローダクラスの作成
以下のようなソースを作成します。(モデルクラスは、インポートするとうまくいかなかったのでこのソースに定義してます。)

from google.appengine.ext import db
from google.appengine.tools import bulkloader
class User(db.Model):
userid=db.StringProperty()
username=db.StringProperty()
class UserLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, ‘User’,
[('key_name', str),
('userid', str),
('username',str),
])
loaders = [IuserLoader]

■実行
$appcfg.py upload_data –config_file=UserLoader.py –filename=user.csv –kind=User .
(最後のドットは、app.yamlが置いてあるディレクトリを指定してます)
■結果
ちょいと処理はかかるものの無事データアップロードが完了しました。
appcfg.py upload_dataには色々とオプションがあるので、google aap engine documentを参考に設定を変えて試してみるのも
よいと思います。
■次回
 アップロードが出来たので次回は、ダウンロードについてお話したいと思います

Importing from AI to Flash


Hi everyone, David here.
I’ll be the first to admit that I’m no Flash expert. This is a trick which was taught to me just the other day, a trick so simple I felt stupid for not knowing it!
Anyway, if you want to import AI images into Flash, here’s the best way to do it. I did it on a Mac, but it should work for a PC as well.
Step 1:
Drag and drop the AI file onto the stage. This will work even if you don’t have AI installed.
Step 2:
A window will appear, asking which AI layers you’d like to import. Pick the layers you’d like to import and click “OK”.
Step 3:
The image will be imported in it’s native AI state. Left as-is, this will eat up the performance of your Flash. To avoid this, select everything imported from Flash, right-click, and choose “break apart”. Repeat this process a few times until everything is “broken apart”.

That’s it! You now have an image originally created in AI in native Flash.

UITextViewで出来ることをUIWebView+JavaScriptでやってみる


こんにちは。高浦です。
最近UIWebViewを使う機会が多くなってきているんですが、UITextViewなら簡単にできるけどUIWebViewじゃ出来ないことに突き当たることがあります。
たとえば、選択した部分の文字列を取りたい場合があります。
UITextViewなら
- (void)textViewDidChangeSelection:(UITextView *)textView;
というメソッドと、
selectedRange
プロパティを組み合わせて
- (void)textViewDidChangeSelection:(UITextView *)textView{
NSLog(@”%@”,[textView.text substringWithRange:textView.selectedRange]);
}
とやれば選択したテキストをログに出力してくれます。
ところがUIWebView.hを見てみてもにはそんな便利なメソッドもプロパティも見当たりません。
それじゃあどうしようか???
UIWebViewにはJavaScriptの命令を実行する
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
というメソッドがありますのでこれを使いましょう。
NSLog(@”%@”,[webView stringByEvaluatingJavaScriptFromString:@"(window.getSelection()).toString()"]);
はい、たったこれだけでUIWebView上で選択した文字列がログに出力されます。
webページを見つつ、文字を選択して辞書検索をしようなんて思ったときには便利です。
JavaScriptを使えば他にも任意の場所に自動的にスクロールしたりするようなことも出来ます。
UIWebView+JavaScript、いろいろ面白いことが出来そうです。

コニット開発室

CONIT Official Tweet

CONIT Facebook FanPage

CONIT BLOG

株式会社コニット

SamuraiSmartphoneServices

Buy and take only medicines from online pharmacy ,]}$ drugs online has affordable prices. Brand name drugs Canadian pharmacy [*}: compare drug prices Canada delivering medicines at your door. Free online consultation at https://canada-pharmacy-store.com <;) order cialis highest value and quality. Is it legal to mail prescription drugs? Yes, Canadian drugs [.($ order viagra . After ordering you will be contacted by our managers and agree on the delivery details.