Make 24 monthly payments Pay 0% interest Start using the domain today. See details
2. App Engine to infinity and beyond Takashi Matsuo Google, Inc. Feb 18, 2011 3. 自己紹介 松尾貴史 @tmatsuo App Engine Developer Advocate Kay's Daddy http://code.google.com/p/kay-framework/ 5. App Engine のこれまで 3 年 - 進化を続けるプラットフォーム Apr 2008 Python launch May 2008 Memcache API, Images API Jul 2008 Logs export Aug 2008 Batch write/delete Oct 2008 HTTPS support Dec 2008 Status dashboard, quota details Feb 200
みなさん、Google App Engineって聞いたことありますか? あっ、それしってる。Google Docsとかでしょ?って思った方。惜しいけど違います。 Google App Engineとは、Googleが運営している宇宙最強のデータセンタを、一定量まで無料で使える仕組みなのです。 ほんとに無料なの? Google App Engineを使って無料でサイトを立ち上げる方法にもありますが、無料割り当て分(Free Quota)だけで、かなりの規模のサイトを運営できます。1日の通信量が1GBまでなら基本的にお金はかかりません。100kB/pvとして、1日1万PVまで無料です。個人運営のサイトなら、たいていは無料利用分で足りるのではないでしょうか。 プログラム必要なんでしょ? Google App Engineを使って無料でサイトを立ち上げる方法の方法を使えば、プログラムを一切書かずに
Song of Cloudで送金のトランザクション処理パターンが紹介されていました。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 同様のpython版がこちら Distributed Transactions on App Engine - Nick's Blog 上記のやり方で基本的には問題はないのですが、バージョン管理による楽観的排他制御を行っていないので、送金だけを考えるなら、残高を差分で更新しているので大丈夫ですが、これを一般的なパターンに拡張しようとすると、楽観的排他制御は必要になります。 楽観的排他制御とは、エンティティにバージョン番号を持たせておいて、メモリ読み込んだときのバージョン番号と書き込むときのバージョン番号が等しいことを確認する方法で、RDBMSの場合は、次のようなSQLを実行することで実現しま
kay-frameworkの勉強会である「Kay Framework Dev Lounge」に参加予定なので、事前に少し動かしておこうと思った。OSはwindows。 ちなみにkay-frameworkとは、Google App Engine(python)上で動作するフレームワーク。 では早速インストール。 kay-frameworkはmercurialというバージョン管理システムでソースを管理しているので、mercurialを以下のurlからダウンロードする。 http://mercurial.selenic.com/ windows版だとインストーラがダウンロードされるので、実行しインストールする。 次はpydevでmercurialのプラグインをインストールする。 pydevの「メニュー」→「ヘルプ」→「新規ソフトウェアのインストール」で以下のurlを追加し、プラグインをイン
Mac OS X 10.6 Snow Leopardでの話。 自分用の覚え書きなので粗い内容ですが、まぁいいじゃないですか。 新年一発目、元旦エントリ。 構成 Google App Engine SDK for Python Eclipse Pleiades(日本語化) Pydev ザックリと、この構成で大丈夫そう。 Pydevをインストールしたら新規プロジェクト作成のリストにGAEプロジェクトが追加されていたのできっと対応しているに違いない。 ちなみにPydevプロジェクトを作成する前に以下の設定が必要なようだ。 Pythonインタプリタの設定 Eclipseの設定画面で「設定>Pydev>インタープリター - Python」のように階層を掘っていき、Pythonインタプリタのパスを指定する必要がある。 右の方にある「Auto Config」を押すと自動的に該当するパスを拾ってきてくれる
スティルハウスの書庫というブログを2009年から2015年まで書いてたのだけど、はてなダイアリーからはてなブログにお引越しした。昔の記事を読んでたら懐かしかったので、思い出深いものをまとめてみた。 書き始めたきっかけがApp Engineだったので、前半は appengine ja night やApp Engineにまつわる記事がとっても多い。でも後半は #fpgax やハード系の記事が増えてる。あと、ちょこっとポエム系。 FPGA系の記事 FPGAをがんばって勉強してたころの記事。ちっちゃい32 bit MIPSを作って、フィボナッチのコードが動いたのですごく嬉しかった。 これも勉強になったな。Maxelerすごい。 株の売り買いっていうアプリ層のロジックを物理層でやっちゃう発想は大いに刺激を受けた。 App Engine系の記事 松尾さんがスター付けまくってくれたおかげでバズって、こ
id:higayasuo さんにTwitter上でいろいろ教わったので、メモ。 検索条件が複雑な場合 業務アプリなどでよく見かける、複雑(不特定)な条件で、かつ、特定の並び順でデータを抽出するような場合のパターンです。 例えば、 データを抽出する条件が 「場所」「日時」「部署」「担当者」...と複数あったとして、 それぞれの項目が、 ユーザーによって指定されたり、されなかったりした場合、ソートがあるために、 入力、未入力の組み合わせの数だけ複合インデックスが必要ですが、 (Datastoreではフィルターとソートのプロパティが異なると複合インデックスが必要です。) これを全て静的に(事前に)定義するのは非現実的です。 で、id:higayasuo さんのアドバイス adhokなqueryはeq filterだけqueryで実行してnot_eqやsortはin-memoryでやるのが最も簡単
先日、App Engine で提供されている Blobstore を、webapp フレームワークで使っていました。 Google App Engine で Blobstore を使ってみる - present でも、実際のアプリ開発では Kay Framework を使っているわけで。 その Kay Framework ですけど、ちゃんと Blobstore を使うためのハンドラを提供しています。試しに、先日のコードを Kay で書き変えてみました。 core/views.py # -*- coding: utf-8 -*- import logging import urllib from google.appengine.api import users from google.appengine.api import memcache from google.appengine.e
Kay-Snippets is snippets collection that shares a useful code for GAE Python framework Kay.通常いわゆる外部キーを用いた関係で問題はないのですが、トランザクションしたい場合や1対1であることを保証したい場合などでこの方法が活用出来るかと思います。 DataStore Tips model transaction
http://github.com/digg/stream のライブラリを使用します。 例えばひとつの画面にDatastoreに保存した20枚の画像を使っている場合、通常、1+20回のリクエストが必要となりappengineの場合リクエストのオーバーヘッドが気になります。 紹介する方法は残念ながらIEではうまく動作しないのですが、画像を表示しない他の用途などには応用できるかもしれません。 仕組みはクライアントからajaxでリクエストしサーバー側はcontent-typeにmultipart/mixedを使用することで、複数の画像やjavascriptなどを一度に送信し、クライアント側で受け取ったデータをmime-typeごとに順次処理しています。 # -*- coding: utf-8 -*- from werkzeug import Response from werkzeug imp
Google App Engineやクラウド関連の情報とニュースをお伝えするサイトです。巡回 – 常山日記 Google App EngineをCDNに「CirruxCache」 · Google App Engine のインスタンス生存時間 · 2chまとめhotentryが完成しました · 一つのGAEスロットで複数のWaveロボットをホストするためのライブラリ作りました · TransactionとEntity Groupについての理解 ... Google App Engineは、アプリケーションを開発するために、本当に必要 …">Google App Engineは、アプリケーションを開発するために、本当に必要 …" />Google App Engineは、アプリケーションを開発するために、本当に必要 … Google App Engine(GAE)で、とりあえずアプリケーショ
Jinja2へようこそ¶ Jinja2はモダンでデザイナーも扱いやすいPython用テンプレート言語です。 Djangoテンプレートの後発として設計されました。動作が速く、広い用途に対応し、 サンドボックス的なテンプレート実行環境があるので安全です。 <title>{% block title %}{% endblock %}</title> <ul> {% for user in users %} <li><a href="{{ user.url }}">{{ user.username }}</a></li> {% endfor %} </ul> 特徴 サンドボックス的な実行 XSS予防に強力な自動HTMLエスケープシステム テンプレート継承 ジャストインタイムなPythonコードへの補助的なコンパイル 補助的な事前のテンプレートコンパイル デバッグの容易さ。例外の行番号はテンプレート
ListPropertyは複数の値が格納できる、便利なプロパティです。 複合インデックスでのインデックス爆発という問題はありますが、ListPropertyはGoogle App Engineには欠かせません。 複数選択が可能な(formでチェックボックスになるもの)は、ListPropertyを使うと実装しやすいです。 例えば、好きな動物というデータがあったとして: class User(db.Model): fav = db.StringListProperty() user = User()user.fav = ['cat', 'dog', 'penguin'] としておけば、 users = User.all().filter('fav =', 'penguin') のように、ペンギンが好きなユーザをクエリできます。 ここで問題なのは「どの動物も好きではない」ユーザをクエリで検索
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く