naver650x50
    僕に反論したい方はまずこの動画を全部見てきてください。
    http://nippondesu.doorblog.jp/archives/43903119.html

    カテゴリ: Google App Engine

    ドットインストール(3分動画でマスターできる初心者向けプログラミング学習サイト)
    http://dotinstall.com/

    この歳になるとおじさん助かるわw
    登録しないでこっそり見ようと思ってたんだけど、
    見たいレッスンが沢山あったので登録しましたw

    http://dotinstall.com/users/nippondesudotinstall

    動画でプログラミング学習の「ドットインストール」が素晴らしいところ
    http://airoplane.net/2011/11/29/dotinstall-excellent.html

    herokuを試す

    とりあえずtwitter api

    うごく。

    へろく面白い!

    何かインストールしたら、APIを呼ぶライブラリが

    結合できなくなる。動かない。

    困る。

    探す。

    他の試す。

    動かない。

    諦める。

    でももう一度探してみる。

    ついったー公式にサンプルが見つかる。

    動く!

    それ用にプログラムを直す。

    動いた!

    一安心。

    朝起きたらうごいてねぇ!

    データキャッシュ(負荷対策で一定期間過去のデータを表示する)

    のために動いているように見えてただけだった!!ww

    直してみる。

    なおった!!

    今度こそ直った!!!!

    herokuの別言語をためしてみる。

    RUBY(日本人発のプログラミング言語)は準備できねぇ!

    いつのまにかRUBYがむちゃくちゃ世界で広まっていてビビる。

    昔HPでみたときは、ふ~ん。ですましていた僕も、

    みんながやっているとやりたくなる!

    でもできない!!!!(ノд・。) グスン

    いやまたこれは今度挑戦しよう。(インストールの挑戦w)

    node.jsはインストールできたから良しとしよう。

    と思っていたところふとブログを見る。

    よく見るとグラフが動いてねぇ!!

    もっとツイートされているのに件数が少ない。

    よくみたら自分のPCではちゃんと動いてるのに、

    サーバーで動かすと、指定件数とってこねぇ!!!

    こういう環境の違いで動かないのが一番困る!!!

    (ρ_;)・・・・ぐすん

    直らない。

    諦めた・・・・。

    まぁいいや、原因がわかるまで、

    集計のグラフはGoogle App Engineでやるか。

    でもすぐにはできない。

    めんどくさい  ←いまここ




    久しぶりにブログ更新です。

    さすが頑張っても200アクセスいかないとわかったら、

    さすがの僕もやるきがでません!!!

    背中と脇腹も痛いし・・うう・・


    マニュアルだと分かりにくいわww


    ①app.yamlへの追加
    handlers:
    
    - url: /remote_api
      script: google.appengine.ext.remote_api.handler.application
      login: admin
    
    builtins:
    - remote_api: on
    
    
    


    ②bulkloader.yamlの作成編集

    1、まずこれでファイルを作成
    appcfg.py create_bulkloader_config --filename=bulkloader.yaml --url=http://nippon-support.appspot.com/remote_api
    

    2、bulkloader.yamlができたら中身を編集。connectorにcsvとつける。
    - kind: BlogRecord
      connector: csv # TODO: Choose a connector here: csv, simplexml, etc...
    

    3、重複項目があったので片方は削除。
        - property: title
          external_name: title
          # Type: STRING Stats: 0 properties of this type in this kind.
    
        # Warning: This property is a duplicate, but with a different type.
        # TODO: Edit this transform so only one property with this name remains.
        - property: title
          external_name: title
          # Type: String Stats: 10 properties of this type in this kind.
    

    4、今回バックアップしないテーブル用の定義は削除。



    ③バックアップの実行
    appcfg.py download_data --config_file=bulkloader.yaml --filename=entityBackup.csv --kind=BlogRecord --url=http://nippon-support.appspot.com/remote_api
    
    
    BlogRecordはテーブル名
    nippon-supportはアプリ名です。この2箇所は変更してください。



    参考にしたサイト様
    http://stackoverflow.com/questions/2946183/how-to-backup-an-appengine-site
    http://stackoverflow.com/questions/10964759/downloading-data-from-appengine

     
    Backendsマニュアル(英語)
    http://code.google.com/intl/ja-JP/appengine/docs/python/backends/

    解説(日本語)
    http://d.hatena.ne.jp/kagigotonet/20110511/1305103829


    ①backends.yaml の作成
    backends:
    - name: memdb
    class: B1
    options: dynamic, public

    ②最新のSDKダウンロード
    http://code.google.com/intl/ja/appengine/downloads.html
    古いバージョンのtaskqueueを使っていたら正式版に変更
    ####from google.appengine.api.labs import taskqueue
    from google.appengine.api import taskqueue

    ③コード追加(サンプル)&アップロード(いつもの方法で)
    backend2のURLを叩き、タスクキュー経由で、Backendsのbackend1を呼び出します。
    class backend1(webapp.RequestHandler):
    def get(self):
    try:
    logging.error('taskqueue backend1 a')
    #do something
    logging.error('taskqueue backend1 bb')
    except:
    logging.error('backend1 except')

    #
    #
    class backend2(webapp.RequestHandler):
    def get(self):
    logging.error('taskqueue backend2')

    taskqueue.add(url='/backend1', target='memdb', params={}, method='GET')
    self.response.out.write('backend2 in')

    logging.error('taskqueue backend2b')

    #
    #
    def main():
    application = webapp.WSGIApplication([('/', MainHandler2),
    ('/backend1', backend1),
    ('/backend2', backend2),

    #以下略
    ※targetなんちゃらとエラーが出たら、②を全部箇所直せばたぶん直ります。

    ④backends.yaml のアップロード
    コマンドラインから(※nippondesuの部分はアプリID or アプリフォルダ名に変更)
    appcfg.py backends nippondesu update 


    ④Backendsの起動
    アドミンコンソールから、Backendsメニューを出し、backends.yamlがロードされているか確認。
    ロードされていたら、Start/Stopのボタンをチェック。
    (Startになっていたら押し起動させる。)
    1f9fc0bf.jpg
    017e07aa.png
    ↑のようになっていたらOK





    ⑤実行してみる。
    http://nippondesu-blogparts.appspot.com/backend2
    nippondesu-blogparts部分は、各自のアプリIDを。
    ※ログがfrontendとbackendは別々なので注意。
    frontendの方にBackendで実行しているbackend1のログは出ません。
    25dabfdb.png


    注意点
    backendで使用するコードを変更した場合、
    (サンプルではbackend1)
    再度④のbackends.yamlアップロードが必要。(っぽい。)



    Tips(?)
    ・yamlのdynamicとbackendsメニューにあるStartは別物。
     Startしていないとdynamicにしていても起動しない。
    ・Instancesメニューからbackendsのインスタンスを落とせる。
    (下の画像クリックで拡大)

    1a4ed7c0.png



    http://www.excession.org.uk/blog/using-googles-url-shortener-api-from-python.html

    ここのサンプルが動きました。
    検索でサクッと日本語ページが上位に出てこないので紹介しておきます。

    最近、urllib2.urlopenを使っても
    そのままGoogle App Engine上で動くことを知ったのでリンクのみのご紹介。

    API keyはたぶんここでもらえます。
    https://code.google.com/apis/console/

    変えた部分は1、json→simplejsonと2、呼び出し部作成と、
    3、メール、パスワード、APIキーの設定ぐらいです。

    このページのトップヘ