Save money with Google Cloud’s transparent and innovative approach to pricing. Estimate your costs with our pricing calculator or contact us to get a quote for your organization.
スマートフォン向けの片手でできる乳幼児用育児日誌 babenote(ベイブノート)をオープンソース化しました。 使い方は、Tumblr にて。動作サービスは、GAEのbabenote にて。公開されたソースは、Github にてダウンロードすることができます。使い方は簡単で、日々の授乳、ミルク、排尿、排便、睡眠とコメントを時間単位でスマートフォンを使ってクラウド上に記録できます。SafariとChrome上からも動きます。ライセンスはcharabotの時と同じく、GPLv3です。いじってウェブサービス作る分には自由ですが、求められたら由来部分のソースを公開してねといういつものあれです。 なおこのWebアプリ、ちょうど今年の1月ごろに社内の勉強会の実装サンプルとして作って、奥さんに娘の育児用に使ってもらおうと思って作ってものでしたが、奥さんの「iPhoneのネイティブアプリのように早く立ち上
今日は久しぶりの外出がない休日だったこともあって、GoogleAppEngineのChannel APIを使ったサンプルを作ってみました。GoogleAppEngine SDK Java 1.4.0ではChannel APIが標準搭載されて、プッシュ通信を使ってネトゲーっぽいことができるようになるらしいので、ちょっと調べてみようかなと思ったのが発端です。 ちなみに1.4.0は現在prerelease中で、まだローカル環境でしか実行できませんが、githubの方にソースは上げておきました。1.4.0が正式リリースされた暁には、ちゃんとサーバー上で動くはずです。 https://github.com/sifue/channelsample 仕様は、同じURLを開いている人にプッシュ通信で突然メッセージをアラートを使って送りつけるというサンプルです。Channel APIがどういう仕組なのかほん
Google I/O 2010ではApp Engine関連の大きな新機能発表がいくつかありましたが、「Channel API」もそのひとつ。これは「Webブラウザとのpush通信(comet)のためのAPI」です。 ついにpushできるよ! これまでApp Engineにおいてクライアントへのpushを行うには、 XMPPプロトコルを通じてのXMPPクライアントへのメッセージ送信 URLFetchを用いて外部のpushサーバー(WebSocket対応サーバーとかTornadoとか)経由でへWebブラウザにpush(例:松尾さんのwebsocket連携) のいずれかしか手段がありませんでした。 しかしXMPPクライアントの実装は容易ではなく、とりわけApp Engine側のXMPPサーバーとしてGoogle Talkサーバーを用いる場合はTLS通信が必須となり、利用可能なクライアントが極端に
全文検索エンジンLuceneをGoogle App Engine/Javaのslim3の上で動かしてみました。indexの作成には、N-gram を使っています。 準備 まずは、Luceneの最新版を取得します。今回は3.0.2を使用しました。 lib/lucene-core contrib/contrib/analyzers/common/lucene-analyzers-3.0.2 の二つのjarファイルをprojectの war/WEB-INF/lib にコピーし、build pathに追加します。 GAE特有の問題に対処 Luceneを使うだけであればjarをいれておけばよいのですが、GAE特有の問題がいくつかあります。 Indexの取り扱い Luceneはindexを保持し、このindexを元に文書を検索します。そのため、このindexをどこにどうやって保存するかが問題となります
調べた限りGAEには(日本語を)全文検索する機能はついてない。なのでちょっくら作ってみました。一応動くのは出来たけど、いろいろ不満な点が多い。転置インデックスはN-gramでN=2で作成。サンプルをサイトで公開してますが、検索は完全一致で結果の順位は考慮してません。最もシンプルなシステムで、検索語句を入力すると、Datastoreに格納されているその語句が含まれる文章を表示し、検索語句を強調表示します。また、100文字以下の文章ならDatastoreに格納できます。何故100文字以下かというと、文字数が多くなるとそれに伴い転置インデックスの作成量を増えていきます。となると、処理時間も長くなってGAEの処理時間オーバーのエラーが発生してしまう。うーん、もっと効率のよい転置インデックスの作成方法がないものか。全文検索の心臓部分のコードは以下の通り。GitHubにも置いてます。 http://g
News, notes, tips and tricks from the Google App Engine Team A picture is worth a thousand words, and as developers, you know that a working code snippet can be worth even more. The developers at scisurfer.com have agreed to share a few of their code snippets with you today. The snippets outline how they full text index their content and make it easily searchable for their users. --- Many applicat
LibreOffice Conference 2012 Berlin Event Report / LiboConf2012 Berlin参加リポートNaruhiko Ogasawara
AppEngineは、万能なプラットフォームではありません。むしろ、かなり使い道は限定されていると言ってもいいでしょう。 向いていないアプリで使うとかなりはまって、アプリが完成しないリスクがあります。 一方、向いているアプリで使うとこれまでよりかなり費用を節約できたりとか、儲けにつなげることができます。 AppEngineにどのようなアプリが向いているかというと、AppEngineがGoogleの既存のインフラをそのまま利用していることをまず知っておく必要があります。 Googleのインフラは、(極端に単純化すると)大量のデータを多くの人に同時に見せるために最適化されています。 AppEngineも同様で、大量のデータに大量にアクセスがあっても大丈夫なように、BigtableというKVSを使っています。また、自動でスケールアウトするWebのFront Endも既存のインフラをそのまま使って
キャラボット (charabot) @charactorbot 【緊急事態】Googleから連絡が来て無料のリソースで複数のサーバー連携して使っているのが利用規約に反するらしく、下手をするとあと18時間後にキャラボットの全サーバーが削除される可能性があることがわかりました。現在問合せ中で、今晩にでも問題箇所を修正したバージョンを出す予定。 2010-10-27 13:41:26 キャラボット (charabot) @charactorbot サーバー管理者の方、英語のメールが来ましたら、とりあえず、24時間以内に規約を了解したことと、複数のアプリを一つのアプリとして使わないように何日以内に修正する内容を返してください。自分までDMくれれば英語のテンプレートを渡します。 #charabot 2010-10-27 13:45:02
先日プレリリースされていたApp Engine 1.3.6が正式にリリースされた。今回の目玉は Namespace APIによるマルチテナント ブロブストア上の画像の高速サムネイル化 カスタムエラーページ データストアの1000エントリ制限の解除 小ネタとしては Java でもapp.yamlが使えるように 管理コンソールからタスクキューが停止できるように 管理コンソールのダッシュボードのグラフが30日分表示されるようになった ブロブストアでContent-Rangeヘッダが利用可能に とりあえず、今回はNamespaceによるマルチテナント化についてだけ。 NamespaceManager API 一つのアプリケーションを、異なるデータセットに対して動作させることを簡単にできるようにするAPIです。つまり名前空間Aと名前空間Bに対して異なるデータセットを用意し、それぞれ独立に動作させるこ
今回、自分が運営するTwitterボット作成サービス キャラボットのユーザーデータ調査にあたって、GAE/Jのdatastoreのデータを複数のアプリケーションをまたがってダウンロードする必要があったので、そのスクリプトをPythonで作りました。以下に手順を載せていきます。 - 1. GAE/Jのアプリケーションにremote_apiのサーブレット設定する GAE/Jのプロジェクトのwar/WEB-INF/web.xml内に、remote_apiのサーブレットを加えます。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dt
PyPress For GAEはGAE用/Python製のオープンソース・ソフトウェア。世界中のブログエンジンシェアを大きく握っているのがPHPのWordPressだ。オープンソースということもあり、その勢いは止まらない。バージョンアップを重ねるごとにどんどん便利になっている。 WordPress for Python! そんなWordPressを模して開発されているのがPython製のWordPressとでも言うべきPyPressだ。とは言えPythonが動くサーバならばPHPも動くだろうし、わざわざ乗り換える需要がないかも知れない。だがGoogle App Engineとなると話は別だ。PyPress For GAEがその答えになる。 PyPress For GAEはPyPressをGoogle App Engine上で動作するようにカスタマイズされたソフトウェアだ。機能的にはWord
Python Overview CGI Environment Storing Data Overview Entities and Models Creating, Getting and Deleting Data Keys and Entity Groups Queries and Indexes Transactions Types and Property Classes GQL Reference Statistics Reference Model Expando PolyModel Property Query GqlQuery Key Functions Exceptions Services Memcache Overview Using Memcache Reference Client Functions URL Fetch Overview Reference T
まぁ、おこられるということはない前提で。原文について完全に忠実に訳してはいませんがそんなには外れてないと思います。また、僕の注記は注記とわかるように記述していますが、文中に書いています。 http://code.google.com/appengine/docs/python/tools/appstats.html WSGIについては、wikipedia程度の知識しかないので、pythonのwebフレームワークまわりの理解の誤りによる誤訳があったらごめんなさい。 appstats pythonのsdkはアプリケーションのパフォーマンス測定ツール一式を含んでおり、それはappstatsと呼ばれています。appstatsはwebアプリケーションフレームワークに記録イベントを統合します。また、取得した統計を確認するためのwebベースの管理インターフェイスも提供しています。 ◆ イベントレコーダー
2009年04月26日20:34 カテゴリGoogle App Engine GAE/J使用メモ、Datastore GAE編 Google App Engine上のDatastoreに関してです。 indexの作成には相当長い時間がかかる データ量に関わらず(まったくデータがなくても)長い時間がかかるようだ。作成中はApp Engine管理画面のIndexesに"building"と表示され完了すると"Serving"となる。cbnanashi@GAE/Jでも完了には1〜2時間かかった。indexが完成するまでDatastoreには保存できないのでアプリケーションの実運用を開始したらGAE/Jにあるようにバージョン番号を付けるか、あらかじめindexだけをuploadしておくのがよさそう。 indexを削除するツールはPythonにはあるがJavaにはない。ただし不要なindexが残って
2010年02月24日22:34 カテゴリGoogle App Engineサイト構築 GAE/Jで運用中に発生する例外(と一部対処法) App Engineでのアプリケーション実行中に私が遭遇した不測の例外やエラーについて、原因と(一部のみですが)対策を書いてみます。 あくまでも個人的な経験に基づくもので、多分に推測を含みますが、多少ともお役に立てば幸いです。例外の種類は随時追加したいと思います。コードの誤りや、よりよい対策などがあれば、お知らせ頂ければ幸いです。 今回記述した例外、エラーの種類 DatastoreTimeoutException ApiProxy$UnknownException ApiProxy$CapabilityDisabledException GCacheException DeadlineExceededException ConcurrentModific
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
Slim3 DatastoreはGoogle App Engine for Javaのデータストアを操作するライブラリです。 最近JDOからSlim3 Datastoreに乗り換えつつあるので、背景や使い方などをつらつらと書いていきます。 Slim3 Datastoreの特徴 Slim3 Datastoreはデータストア低レベルAPIの薄いラッパーとして作成されています。他のラッパープロダクト(JDO/JPA)と違いApp Engineのデータストア専用に作られているため、提供される機能が非常に直感的で、さらにかなり高速に動きます。 ざっくり説明すると、以下のような機能を提供しています。 データストア上のデータと自作のモデルオブジェクトを相互に変換する 他にも色々とあった気がしますが、Slim3 Datastoreを利用する最大のメリットは上記の点でしょう。 しかもこの変換層をコンパイル時
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く