大手企業が Google Cloud を選ぶ理由を理解する お客様がデジタル トランスフォーメーションに乗り出したばかりでも、あるいはすでに進めている場合でも、Google Cloud は困難な課題の解決に役立ちます。
国内で国内向けのアプリケーションを作っている限りは、タイムゾーンを意識することはほとんどありません。しかし、Google App Engine等を利用する場合、多国対応のアプリケーションを作るためにはタイムゾーンを正しく扱うことが必要不可欠です。というわけで、タイムゾーンをGAE/Slim3を使う場合に考慮すべき事をまとめました。 デフォルトのタイムゾーン Javaの場合、システムで持つデフォルトのタイムゾーンがあり、普段は暗黙的に利用されています。開発環境とプロダクション環境ではデフォルトのタイムゾーンが異なります。 開発環境 +0900 Asia/Tokyo プロダクション環境 +0000 UTC ※開発環境のタイムゾーンはシステムに依存します。 デフォルトのタイムゾーンを指定する GAE上を使うけどアプリケーションは国内向けであるのであれば、デフォルトのタイムゾーンを変更するのが簡単
ホーム > Google App Engine, slim3 > slim3 で ModelクラスのStringに(@lob=true)を追加すると org.slim3.controller.HotReloadingRuntimeException が発生 slim3 で ModelクラスのStringに(@lob=true)を追加すると org.slim3.controller.HotReloadingRuntimeException が発生 slim3 で、既に存在するModelクラスのStringフィールドに、文字列を沢山保存しようとすると IllegalArgumentException が発生して保存が出来ませんでした。 これはApp Engineの仕様で、通常Entity オブジェクトにプロパティとして格納される Java 文字列は 500 文字まで、となっています。長いテキ
My todo list everywhereはGoogle App Engine/Java向けに作られたシンプルなTodo管理システム。 My todo list everywhereはGoogle App Engine/Java製のオープンソース・ソフトウェア。なぜ世にはこうもタスク管理システムが多いのか。テキスト、Web、携帯電話、スマートフォン、自作などなど実に多様なタスク管理が存在する。それでもまだ新しいタスク管理が登場する。 タスクリスト 完成形はもはや求めてはいけないのだろう。自分のスタイルにあったものを選び、使い続けるのが大事なのだ。プログラマーであればそう、自分で好みに仕上げられるものが良いだろう。Java使いであればMy todo list everywhereを試してみよう。 My todo list everywhereはGoogle App Engineを使うこと
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
App Engineで日次バッチを動かす場合はCronかTask Queueを選択することになります。重複起動したくない、ジョブ失敗時はリトライしたい*1という要件があるならTask Queueを使います。Cronの場合は WEB-INF/cron.xml を編集するだけですが、Task Queueの場合はジョブスケジューラを自分で書かなければなりません。 追記: Cronの場合はスケジュール指定でsynchronizedキーワードを付けると重複起動が許容されます。@bluerabbit777jpさん、ありがとうございます。 ここでは、App Engineに限らず汎用的に使えるジョブスケジューラを書いてみます。日次ジョブスケジューラのアルゴリズムを考えてみましょう。例えば、午前3時にジョブを実行したい場合、 現在日時をTとする。Tは年月日時分秒ミリ秒から成る。 Tの時、分、秒、ミリ秒を0に
タスクチェインの実装をしていると、テスト環境でもDEE発生をシミュレーションしたくなるのが人情というものです。 shin1ogawaさんのエントリでは下記のように説明されています。 テストのためにAppEngine環境を起動するには、大きくわけると ApiProxy.setEnvironmentForCurrentThread() ApiProxy.setDelegate() のふたつの処理が必要になります。 ApiProxy.setEnvironmentForCurrentThread(ApiProxy.Environment) AppEngineの実行環境ではスレッドごとにApiProxy.Environmentのインスタンスが必要となるので、 AppEngineの実行環境がApiProxy#getCurrentEnvironment()を経由してApiProxy.Environmen
Google App Engine Task Queueの使い方 このページでは、Task Queueの簡単な使い方を解説します。 このページの内容で分からないところとかがあったら、@ts_3156 に何でも聞いてください。 「このコードのここの意味が分からない」とか、何でも大丈夫ですよ(^-^) 2011/02/08 追記 このページの内容は古くなったので、最新の情報で書き直しました。 最新情報はこちらです↓ Task Queueの最新情報!【設定ファイル例付き】 2010/12/15 18時頃追記 Task Queueの30秒制限が、バージョン1.4のGAE SDKからなくなったみたいです。 Cron、Task Queueのどちらとも、10分まで実行できるようになりました。 ソースはこちら↓ Google Appengine SDK 1.4.0 がリリースされました! Google A
普通にできることを何でこんなに苦労せにゃならんのか、制約がきつすぎるんじゃボケ~、とかいいながら、毎日毎日GAEの問題にへこまされて、ああ、とっても憂鬱な気分。今日はGAE Nightだけど、正直、GAEのことなんか考えたくないなあ。雨も降っているし。まあ、あれだね。GAEを使うヤシは、はっきりいってバカだね。みんな、Googleに騙されていることに早く気づこうよ。 でも今日はshin1ogawa ja nightだし、teradaは楽しみにしているし、まあいいか、みたいな感じで出席。このやる気のなさが最近の私である。 魔法使い~shin1ogawa mavenを使った開発(gaejsimplequickstart)が便利そうなのと、面倒に思えるtestが意外と簡単に行えるということがわかったのは収穫だった。 しかし、ライブコーディングをあんなに完璧にやってこなせるshin1ogawaはは
Google App EngineのDatastoreにはインデックス爆発という現象があります。 こちらで公式に説明されているのですが、 http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html#Big_Entities_and_Exploding_Indexes 自分にとってはすごく分かりにくく、理解するのにとても苦労しましたので、自分なりにメモを残しておきます。 まず2,3の前提を。 基本的な事ですが用語が統一されてなくて惑わされましたw 複合インデックス=カスタムインデックス=コンポジットインデックス です。 またGoogle App Engine for Javaでは WEB-INF/appengine-generated/datastore-indexes-auto.xm
id:higayasuo さんにTwitter上でいろいろ教わったので、メモ。 検索条件が複雑な場合 業務アプリなどでよく見かける、複雑(不特定)な条件で、かつ、特定の並び順でデータを抽出するような場合のパターンです。 例えば、 データを抽出する条件が 「場所」「日時」「部署」「担当者」...と複数あったとして、 それぞれの項目が、 ユーザーによって指定されたり、されなかったりした場合、ソートがあるために、 入力、未入力の組み合わせの数だけ複合インデックスが必要ですが、 (Datastoreではフィルターとソートのプロパティが異なると複合インデックスが必要です。) これを全て静的に(事前に)定義するのは非現実的です。 で、id:higayasuo さんのアドバイス adhokなqueryはeq filterだけqueryで実行してnot_eqやsortはin-memoryでやるのが最も簡単
AppEngineに画像ファイルをアップロードする場合、 DatastoreにBlobとして保存し、表示するときはDatastoreから取り出したデータを Responseに流し込むことで表示するのが今までのやり方でした。 この表示は非常に遅く、問題でした。 SDK1.3.0で追加されたBlobstore APIを使うと、 http://code.google.com/intl/en/appengine/docs/java/blobstore/overview.html Picassaのインフラから配信されるらしく非常に高速になるとの事でしたが、 Slim3のasStringが動かない(?)、処理結果は必ずredirectしなければならない(validate情報をforwardできない)、など 既存のアプリに組み込むには苦労がありました。 しかしながら、SDK1.4.3に追加されたFile
6/4(金)に appengine ja night #8が開催されました。今回の目玉は以下でした。 @najeiraさんトコで構築されたスポーツSNS Labolaの事例紹介ajn7の時のランキング問題をやっつけるために京都より@koherさんがskip list片手に参加北海道より@shuji_w6eさんが参加名古屋より@zetta1985さんが参加skip listと聞いて(ガタッ、ってかんじで大阪より@kibayos先生が参戦本当は@kazunori_279さんのIO2010報告もあるはずだったのですが、上記の通り盛りだくさんでしたし、発表は必ず時間通りに終わらないajnの伝統が継承されてIO2010報告は次回持越しとなりました。 また、今回は以前と比べて女子率が3倍ほどにアップしました!…新規参加者と言うより、リピーターの方のお情け(同僚の方を連行してきてくださった模様w)という
Your browser does not support frames. We recommend upgrading your browser.<br> Click <A HREF="https://dl.dropbox.com/u/4207279/web/">here</A> to enter the page.
GAE/Jですが、突然Deployが不可能になってしまいました。 Deploy失敗時にGoogle Eclipse Plugin が出力したログを見ると、appcfg.pyのrollbackコマンドで幸せになれるという情報が見てとれますが、 Python版をインストールする気は無いので、もうしばらく解決方法を探そうと思います。 Unable to upload: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=xxx&version=1& 409 Conflict Another transaction by user xxx is already in progress for this app and major version. Th
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
例外の内容 com.google.apphosting.runtime.HardDeadlineExceededError: This request (43f315102efbed5) started at 2009/06/21 12:32:44.564 UTC and was still executing at 2009/06/21 12:33:13.433 UTC. at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(Unknown Source) at java.ut
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く