みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Guidoがここ数ヶ月関わっているというGoogle App EngineのDatastore Plusについてブログで紹介しています。 App Engine標準のdbモジュールの代替として使われるべく開発されているモジュール。dbモジュールで提供されているKeyやqueryが変更可能(mutable)であるなど,デザイン上の不合理を解決したより明確な設計を採用(Guidoが直したかったんですね)。 またdatastoreへの非同期アクセスを可能にしています。重たいクエリ,相対的に遅い書き込みにかかる時間や,レイテンシを回避できるようになります。datastore非同期への非同期アクセ
はじめに 本稿では、JavaやPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するツール「jsonengine」について紹介します。 対象読者 Google App Engineに興味はあるが経験のない方。JavaScriptやActionScriptによるクライアント開発、またはiPhoneやAndroidによるスマートフォン開発の経験のある方。JavaやPythonの開発経験は不要です。 必要な環境 最低動作環境は次のとおりです。 Java SE 5 jsonengineって何? 「jsonengine」は、JavaやPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するオープンソースのツールです。このツールは、昨年開催された「Mashup Awards 6」において「
(2/7更新) (2/26更新) (12/22更新 @Jsonはフィールド直接指定になりました) Slim3 JSON機能のドキュメントを書き始めました。まだ非公式なものですが、ひと通り書き終わったら公式へのマージを提案する予定です。でも、公式は英語なんですよね。どうしたものか。まぁ、いきなり下手な英語で書くより、まずは日本語でちゃんと書いたほうが良いはず。 というわけで、下記ドキュメントの草案です。若干改行が変ですが、evernoteに書きなぐってexportしたものを貼っつけてるためだと思います。これにあとJSON入出力のカスタマイズ方法を書いて一段落とする予定です。(書きました!) 概要 Slim3のJSON機能は、モデル(@org.slim3.datastore.Modelアノテーションが付加されたクラス)のJSON変換機能を提供します。JSON変換は、org.slim3.data
情報検索サービスで、優れたアプリケーション UI や充実した情報ソースを持っていながら、検索精度が悪く肝心の情報がうまく取り出せていないケースを散見します。検索精度はサービスの利便性に直結しており、最重要課題です。このセッションでは、Azure 上のフル マネージド型全文検索サービスである Azure Search のテキスト分析やマッチングの仕組みを解説しつつ、検索精度を効果的に向上させるための機能やノウハウをご紹介します。また、検索機能と親和性のある Bot インターフェースやAI (人工知能) 機能など、最近注目を集めているテクノロジーの Azure Search との連携による利便性向上例についてもご紹介します。 受講対象: アプリケーション開発に携わるすべての皆様、検索機能に関心のある皆様、今運用されている情報取り出し型のアプリケーションに短時間でそこそこの利便性を実現したいと考
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
GAE/J データストアを使用した処理のローカル上でのユニットテスト(BDD なのでユニットテストとは呼ばないかも)を specs(Scala用BDDツール)で実施してみました。 テストには GAE/J SDK の lib/testing/appengine-testing.jar ファイルに含まれる LocalServiceTestHelper クラスを使っていますが、今のところ日本語ドキュメントに使い方が書かれていないようなのでご注意下さい。 使用した環境は以下の通りです。(sbtの環境は id:fits:20100810 と同じ) GAE/J SDK 1.3.7 sbt-appengine-plugin 2.1 specs 1.6.5 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20100927/ 事前準備
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通信が必須となり、利用可能なクライアントが極端に
App Engine 1.3.4でOpenID認証に対応しました。調べてみると意外と普通にシングルサインオンできたので、使い方と仕組みを説明します。 まず、OpenID認証を要求するURLパターンをweb.xmlに書きます。 <security-constraint> <web-resource-collection> <web-resource-name>Authentication required url</web-resource-name> <url-pattern>/user/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>*</role-name> </auth-constraint> </security-constraint> 例えば http://xxx.appspot.co
GAEのUser APIの認証オプションに Federated Loginってのが増えた。実態はOpenIDなので、Google Appsのアカウントの認証に使ってみたのでメモ。 ログインURLの生成 url = create_login_url(federated_identity=<DOMAIN>) ドキュメントも更新されてる*1 Functions - Google App Engine - Google Code http://code.google.com/intl/en/appengine/docs/python/users/functions.html 設定を元に戻せる 以前からあった、Authentication Optionの「Google Apps」は、一度それに設定すると対象ドメインも含め二度と設定変更できない物だったが、「Federated Login」は元に戻す(
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
sdk1.3.4でのOpenID対応を実際に試してみました。 コードはこちら(Javaです) http://code.google.com/p/appengine-openid-test/ 以下の記事を参考にさせてもらいました。 @hidemotoNakada さん http://d.hatena.ne.jp/hidemon/20100521/1274472966 @int128 さん http://d.hatena.ne.jp/int128/20100525/1274809086 ただし、お二方と違って自分は web.xmlのsecurity-constraint を利用しませんでした。 リダイレクト先が気にくわなかったので^^) 代わりにOpenIDFilterを自前で実装しています。 AppEngine でのOpenIDの特徴 sdk1.3.4で追加された機能では、OpenIDのやや
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javaでsession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-
Java, WicketGoogle App Engine for Javaのアカウントを取っておいたので、Wicketが動くかどうかチェックしました。 Wicketでは1.3の途中から、セッションストアがSecondLevelCacheSessionStoreという、ワークファイルに情報を書き出すタイプに変更になりました。ここがネックになるだろうと思っていたら、やっぱりファイル作成は規制されているとのこと。 で、HttpSession上にページ情報を格納する「HttpSessionStore」に切り替えてみたら、普通に動きました。 アプリケーション・クラスの設定はこのような感じです。 public class WicketApplication extends WebApplication { /** * Constructor */ public WicketApplication(
Google App EngineのWebサイトに「App Engine Product Roadmap」と名付けられた、文字通り今後のApp Engineのロードマップを説明したページがあります。 このページに書かれている説明によると、ロードマップとして挙げられている項目はApp Engineチームによって開発が進められており、多くは6カ月以内に実現することを意図しているとのこと。また、項目はつねに更新されているとのことです。 ただし、このページに書かれているロードマップの項目はすべてが具体的に書かれているわけではないため、実際にどのような実装として登場するのか分からないものもあります。 Javaのプログラミングなどに詳しいスティルハウスの佐藤一憲氏は、このロードマップを独自に解釈したエントリ「 #appengine の未来はこうなる!」を2日前にブログにアップしています。今後Googl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く