いやー今回も濃くておもしろかったですね。こんな濃い人が集まるApp Engine勉強会はたぶん日本でここが一番なんじゃないかと思います。 ソースを見るなり質問が飛ぶ飛ぶ!しかも普通の質問じゃないんですよね。裏でクラウドがどういう風になっているかを話したりするそんな勉強会。 今回はグリーの一井さんに会場をお借りしました。一井さん会場提供ありがとうございます。しかも11:30くらいまで付き合ってくれるなんてやさしすぐる。 おしながき 本編 私:実際に作ってわかったApp Engineの困ったところ 竹嵜さん:ぶいてく流 スケーラブルアプリの作り方 LT(Lightning Talk?, Long Talk?) @WdWeaverさん:スケールアウトの真実? @tmatsuoさん:Kay (Python 版の framework) について id:marblejenkaさん:makeSyncCa
はじめに 「人類が使うすべての情報を集め整理する」 この壮大なミッションを掲げ設立されたGoogleは、そのミッションを遂行するべく、マシン・ネットワークなどのインフラ環境に莫大な金額を投資し、独自の技術を開発し続けています。Googleは検索エンジンだけにとどまらず、Gmail、Google Calendar、Google Maps、Google Analystics、Youtube、Google Apps、Google Earthなど、いまや全世界のユーザーが使用するサービスをリリースしており、その扱うデータ量、アクセス数は天文学的な数になることが予想されます。Googleはそれらのデータ量、アクセス数を高速にさばき、なおかつ耐障害性の高いスケーラブルな大規模分散システムを構築しています。 そんな中、2008年4月にGoogle App Engineがリリースされました。Googleが
The Zen of Python =================== :author: Tim Peters :taken from: `PyJUG website <http://python.jp/>`_ : Copyright (C) 2001-2009 Python Japan User's Group. .. contents:: きたないのよりきれいな方がいい -------------------------------- #. ごちゃごちゃ難しいのより、白黒はっきりしてるのがいい #. めんどうなのよりかんたんな方がいい #. けど、訳分かんなくなるくらいならめんどうな方がまし * ネストさせなくていいならしない方がいい * たくさん詰め込んだのよりスカスカな方がいい * **読みやすさがたいせつなのよ** * 特別なこともあるけど掟破りってほどじゃない 実用性を求め
Facebookアプリは外部でホスティングしないといけない。 だが、僕らにはGoogle App Engineがあるじゃないか! ということで、Google App Engine上でFacebookアプリを作るための準備。 Google App Engineの準備Google App Engineのページに行って、ユーザー登録する。 携帯のメアドが必要です。 今のところ1アカウントで10個までアプリケーションを登録できる。 これから作るアプリを登録しよう。 ちなみにこの記事内では、アプリの名前はwrkngということにします。 Python Pythonをまだインストールしていなければ、Python Language Websiteから、2.5の最新版をダウンロードして、インストールしよう。 SDK SDKには、ローカルで動作する開発サーバーや、デプロイツールが含まれている。 Google
Posted by Nick Johnson | Filed under coding, app-engine, cookbook, tech This is the fourth in a series of 'cookbook' posts describing useful strategies and functionality for writing better App Engine applications. As promised, today we're going to discuss Distributed Transactions on App Engine. Distributed transactions are that feature that you didn't know you needed until they were gone: The abil
Nick Johnson さんの deferred についての記事では、簡単にバックグラウンドタスクを実行する方法が紹介されています。 Kay でも使用したいので専用のハンドラを用意しました。changeset: 8dff0f839164 以降の Kay で作成したプロジェクトであれば何も考えずにこのハンドラが有効になっているはずです。具体的には app.yaml の元々ある main.py より上に下記のように - url: /_ah/queue/deferred script: kay/main.py login: admin - url: /.* script: kay/main.py 追加しまた、プロジェクトディレクトリ直下の urls.py には下記のように def make_url(): return Map([ Rule('/_ah/queue/deferred', end
ぶいてく流スケーラブル設計3大要素 私たちがスケーラブルなアプリを作る際に重要だと考えている要素は、疎結合、バージョニング、非同期の3つである。 今回は、疎結合、特にバージョニングについて詳しく述べる。非同期(TaskQueue)は次回の予定。 疎結合 GAEといったスケーラブルなプラットフォームを利用することで、単純なWebアプリでもスケーラビリティを得られるわけだが、さらにそれをRESTfulなWebサービスにすることで、より柔軟なスケーラビリティを享受できる。マッシュアップアプリがいい例で、ワンソース・マルチビューを実現できる。それは、この記事や、実装例で示してきたとおりである。これらはReflexやReflexGaeフレームワークにより、EntityからJSONやXML等に変換することで実現している。 バージョニング この記事の最後の一文は、なんのこっちゃ!?と思った方も多いと思う
Kay 3.0.0 ドキュメントへようこそ¶ このドキュメントは最新版です。古いバージョンのドキュメントは下記をクリックしてください。 http://kay-docs-jp.shehas.net/1.1.0/ 目次: 1. Kay チュートリアル 2. デバッグ 3. settings (設定ファイル) 4. 管理用スクリプト 5. URL マッピング 6. View の定義 7. Jinja2 を使用する 8. ユーティリティ関数 9. Pagination 10. デコレーター 11. 認証の設定 12. セッションを使用する 13. フォームの使用方法 14. メッセージ国際化 15. ダンプとリストア 16. リクエストオブジェクトとレスポンスオブジェクト 17. ミドルウェア 18. 組み込みミドルウェアリファレンス 19. Test の実施 20. kay.utils.form
Google App EngineではRDBMSのようなUnique Indexをサポートしていません。ユニーク制限を実現する場合は、トランザクション中でKeyを使ったgetとputを組み合わせる必要があります。 ここでは、email addressがユニークだったらそれを確定してtrueを返し、そうでない場合にはfalseを返すコードを考えます。 最初にトランザクションを使わないコードを見てみましょう。KeyFactory.createKeyの最初に引数は、kindといってテーブル名みたいなものです。 public boolean putUniqueEmailAddress(String value) { DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Key key = KeyFactory.cr
ここが大変だよBigtableとGoogle App Engine:分散Key-Valueストアの本命「Bigtable」(3)(1/2 ページ) RDBとは別の、クラウド時代のデータベースとして注目を浴びている「分散Key-Valueストア」。その本命ともいえる、Googleの数々のサービスの基盤技術「Bigtable」について徹底解説 月間3000万PVの大規模サイトの運用費が月額4万円!? 月間3000万PV相当の膨大なトラフィックを楽々とさばく大規模サイトが、月額4万円弱で運用されている。 Google App Engine(以下、App Engine)が普及するにつれて、そんな驚愕の国内事例も登場しつつあります。GClueがApp Engine上で実装したmixiアプリモバイルモバイルには、1日100万PV以上のアクセスが集中している状態でもサービスのレスポンス低下やダウンは皆無
News, notes, tips and tricks from the Google App Engine Team Here are some of the recent developments from the greater developer community. deferred.deferNick Johnson recently added a new module to the App Engine Python SDK which allows you to use the task queue service to execute deferred function calls. This library requires minimal configuration and makes it even easier to use tasks. Using it i
今週に入ってから、ようやく少し本気でGoogle App Engineでプログラムを書き始めている私だが、ようやく Entity Group の使い方が分かって来たので簡単に解説してみる。 Entity Groupとは、一口で言えば「トランザクションを使ったアトミックな読み書きの対象となるEntity(=データベース上のオブジェクト)の集まり」である。 イメージとしては、まず「一つのハノイの塔を三人で同時に遊んでいる姿」を思い浮かべると分かりやすいかも知れない。全くのルールなしで皆で同時に遊ぼうとすると、腕が交錯してぐちゃぐちゃになってしまう。 そこで、「ある時点でハノイの塔ボード(三つの棒を支えている水平に置かれた板)に触ることが出来る人は常に一人。一度ボードに触った人はすべての円盤をいずれかの棒の位置に置いた状態にしてからしか手を離してはいけない。もし自分がハノイの塔に触りたい時に、す
// ==ClosureCompiler== // @compilation_level SIMPLE_OPTIMIZATIONS // @output_file_name default.js // ==/ClosureCompiler== // ADD YOUR CODE HERE function hello(name) { alert('Hello, ' + name); } hello('New user');
最近ようやくcoffeescriptにもLESSにも慣れてきました。で、そろそろgruntを活用しようかなと先月くらいから使ってみてますが便利です。 *.less →(コンパイル)→ style.css →(圧縮)→ style.min.css *.coffee →(コンパイル)→ *.js →(連結)→ app.js →(圧縮)→ app.min.js *-test.coffee →(コンパイル)→ *-test.js →(連結)→ tests.js app.min.js, tests.jsを読み込んでqunitでテスト index.htmlではapp.min.jsとstyle.min.cssを読み込む こんなかんじの事を簡単にできます。テストもcoffeescriptで書けて良いです。 現在リリースされている grunt v0.3.9 では coffee, less, sqwishに対
ブログなどでちょっとしたグラフを表示させたい場合、Google Chart APIを使っていた。しかし、手作業で入力するのはかなり面倒だ。ウェブ上にはグラフやチャートを作成するサービスなどもあるが、登録が必要だったり、手順が面倒だったりと、個人的にはあまり手軽だと思えない。数値をコピー&ペーストしてクリック一つでグラフを作成したいのだ。そこで、使いたいサービスは自分で作ってしまえということで、Google App Engine (GAE)とGoogle Chart APIを使って簡単にグラフ・チャートを作成するウェブアプリを作ってみた。 即席で作成したウェブアプリなので不備な点もあるが、取り敢えず自分で使う分にはこの程度で十分なのでGAEに登録しておいた。気が向いたら機能を拡張していくかもしれない。 以下に使い方を示す。 使い方 まず、以下のデータをテキストエリアに入れてみる。 1.2 2
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く