AppEngine

App Engine の cronフォーマットのまとめ

App EngineではCron サービスを利用する事で、指定した時間や一定間隔でタスクをスケジュール実行する事ができます。今回のアップデートからかと思いますが、フォーマットがより柔軟になったのでまとめておきます。いつもの事ですが、日本語のドキュメントに…

TimeZoneを扱う

国内で国内向けのアプリケーションを作っている限りは、タイムゾーンを意識することはほとんどありません。しかし、Google App Engine等を利用する場合、多国対応のアプリケーションを作るためにはタイムゾーンを正しく扱うことが必要不可欠です。というわけ…

Scenic3のAppUrlsに関するテスト

sue445さんのエントリーにもあるように、Scenic3の弱点の1つにAppUrlsに各ページクラスを個別に登録しなくてはならないという事があります。これは、ページクラスからAPTを使ってControllerクラス群を生成し、さらにそれらのControllerをディスパッチするMa…

Scenic3-0.4.1 リリース

Slim3 1.0.8 のリリースを受け、Scenic3 0.4.1 をリリースしました。 また、ブログのコメントで指摘された不具合に対応しています。 この所、利用している方が増えてきてるようでTwitter等でも声をいただいております。それほど大きなライブラリではありませ…

Scenic3 0.4.0 リリース

Slim3を薄くラップし、T2Framework風に1つのページクラスに複数のコントローラメソッドを記述することのできるライブラリ「Scenic3」のバージョン0.4.0をリリースしました。 変更点は次の通りです。 REST風のページクラスのサポート 不足していたController…

Scenic3 によるRESTサポート

Scenic3はSlim3のController層を薄くラップした拡張ライブラリです。Slim3では1アクション(URL)に対して1つのControllerを作成するシンプルなデザインですが、どうしてもControllerの数が多くなってしまいます。関連するアクションは1つのクラスにまとめ…

Slim3 に Scenic3 と PirkaEngineを使う方法

ここの所、随分とAppEngineへの関心が高まってきているようです。Slim3の周辺も活発になってきている事もあり、Scenic3に注目していただく方もチラホラと出てきました。注目されるということは非常にモチベーションが高まります。 今回は前回に予告した通り…

40-プロセス間通信とアプリケーションの応答時間の関係

「プログラマが知るべき97のこと」の40個目のエピソードは、リモートプロセス間通信に関する話です。近年のアプリケーションでは、ほとんどのパフォーマンス上のボトルネックはリモートプロセス間通信にあると言っても過言ではありません。ウェブアプリケー…

Slim3 pluginでScenic3の使い方

Slim3には簡単にプロジェクトを作成する為に使えるEclipse pluginがあります。@tomotaro1065 さんが中心になって作られていますが、ご厚意でScenic3の対応もしていただいています。ですが、自分で使ってみて使い方が解らないのではないか?と気付きました。…

pirka-mobileによるGAEのモバイル対応

1月に入ってからGoogle App Engine/Javaで必要最低限の実装でモバイル対応をするためのライブラリを書いてました。 やれることとしてはシンプルに次の3点。 絵文字の出力 キャリア判定 UID/GUIDの取得 機能てんこ盛りにすることもできますが、それならば既…

13-コードレイアウトの重要性

「プログラマが知るべき97のこと」の13個目のエピソードは、ソースコードの可読性に関する話です。 プログラマは仕事の時間を、実際にコードをタイプするよりも、コードを探すことと読むことに費やしている、そんな調査結果もあるようですー修正すべき箇所は…

12-コードは設計である

「プログラマが知るべき97のこと」の12個目のエピソードは、設計と自動テストに関する話題です。重要なので引用します。 私たちは、「コードを書くことは設計をすることである」ということ−機械的な作業ではなく、創造的な仕事なのだということーを肝に銘じ…

11-ドメインの言葉を使ったコード

「プログラマが知るべき97のこと」の11個目のエピソードは、ドメインモデルの話です。「ドメイン」は、プログラミングを勉強している中で遭遇するちょっと意味のわかりにくい横文字の1つです。日本語訳すると「分野」とか「領域」等になりますが、しっくり…

10-ツールの選択は慎重に

「プログラマが知るべき97のこと」の10個目のエピソードは、ライブラリなどツールの選定に関する話題です。最近はフレームワークやライブラリなどはオープンソースで公開されている事が多くなり、それらのほとんどは無償で利用できます。勿論、商用ライブラ…

pirka-slim3 0.1.0 リリース

pirka-slim3はテンプレートエンジン pirkaengine をGAEで利用する為のモジュールです。slim3を使ってJSPを利用したくない人にオススメです。 特徴 pirkaengineの最大の特徴は、JRE以外に依存ライブラリがない点です。したがって、GAEを扱う上での最大の問題…

EtupirkaCMS 0.1.0 リリース

昨晩、Google App Engine/ JavaをプラットフォームとするCMS、EtupirkaCMS 0.1.0をリリースしました。 EtupirkaCMSはちょうど1年ほど前から開発をはじめたプロジェクトで、フレームワークにSlim3を採用し、GAEに最適化された設計になっています。当初はSpin-…

05-美はシンプルさに宿る

「プログラマが知るべき97のこと」の5つ目は、シンプルさに関する話です。簡単にまとめると「シンプルなコードは、可読性に優れ、個々の箇所の責務も適切に最小限になっており、テストもしやすく、保守も容易」であるという事です。きのこ本はどのエピソー…

開発サーバの起動引数メモ

GAE/Jの開発サーバの起動引数とappengine-web.xmlに関して、ちょっとはまっていたのでメモしておきます。GAE/Jの開発サーバは、 com.google.appengine.tools.development.DevAppServerMain をエントリーポイントとします。これは通常のエントリーポイントの…

makeAsynCallをサーバ上で実行させる

Google App Engineの各サービス(Datastore,Mail,Memcahe…)はプロダクションサーバで実行されるときにGoogleのサーバ群のどこかで実行されています。この時に使われている通信プロトコルがプロトコルバッファと呼ばれるもので、バックエンドのサービスに対…

GAEのChannel API で対戦ゲームの開発がどの程度難しいか

かなり前(SDK1.3.4-5)の頃の話題なのですが、Google App Engine でCometを実現するAPIが試験的に導入されました。デモとしてAndroidのロボットが動くやつを見た人も多いでしょう(http://dance-dance-robot.appspot.com/)。 現在、Channel APIは申請し承認…

Scenic3を可変長のURL引数に対応してみた

slim3のMLでこんなURLに対応できないの?という話があがっていました /foo/bar/a/very/long/long/long/long/long/long/long/path/ つまり、パスでIdか何かが区切られていて、かつ可変長なパターンです。 正直な所あまりないのかな?と思いつつも、ファイルの…

単純な処理の単体テストが重要

先日、appengine SDKが1.3.8にアップデートしたのですが、ローカル環境のSDKを1.3.8にした所、EtupirkaCMSの単体テストが1/3くらい失敗するようになりました。原因の1つはプロトコルバッファを使って画像加工の部分を単体テスト用に細工しているところで、A…

scenic3 0.2.0 リリース

slim3をT2Framework風に記述できる拡張ライブラリ Scenic3の0.2.0をリリースしました。とはいっても、単体テストを追加して不要なクラスなどを整理しただけです。 0.1.0には随分とゴミコードが残っていたので・・・・。詳しくはドキュメントサイトを参照くだ…

ajns1関連の資料や感想ブログのまとめ

資料や感想のブログなどのまとめ(随時更新) ブログ sak's Android Avenue 北から南や西を見て思うこと 徒然日記・本館 やさしいデスマーチ 以下、資料とかust

AppEngine Ja Night Sapporo #1 完了しました

札幌でも35℃近い気温を記録した8月6日に札幌での初AJN(AppEngige Ja Night)が開催されました。参加人数は、前半のセッションが約30名、BT(Beer Talk)が約25名です。開催を告知すると一晩で100名以上の参加希望者が殺到する本家AJNには遠く及びませんが…

scenic3 0.1.0 リリース

slim3を薄くラップして、t2 framework のようなPageクラスでコントローラを記述できる拡張ライブラリscenic3をリリースしました。まだ、トライアル版に近くテストなどが十分ではありませんが、slim3の「1コントローラ=1アクションクラス」がしっくり来な…

EtupirkaCMSの開発状況

Google App Engine/ JavaをプラットフォームとするCMSの開発に着手して半年ほど経過しました。途中、なんども仕組みを見直しながら作り込みを行い、ここ1ヶ月くらいは細かい機能の調整やドキュメントの作成などリリース準備に向けて進めている段階です。予定…

Google App Engine アプリケーション開発

オープンソースカンファレンスにて札幌Javaコミュニティ枠で、GAEのセッションを行いました。内容としては、GAEの特徴についてと、slim3の紹介、spin-upとDatastoreのTipsという構成です。45分しかないので駆け足になってしまいましたが、なんとか(3分程度…

static-filesがどのくらい早いか検証してみた

Google App Engine/Javaではデプロイしたファイル郡から静的なリソースに関して、appengine-web.xml で定義することにより特別な扱いにすることができます。静的ファイルに設定したリソースのURLはウェブアプリケーションにリクエストが来ません。ドキュメン…

開発サーバとプロダクション環境でログの設定を切り替える方法

Google App Engine/Java(以下GAE)で開発をしていてはまったのでメモ。GAEで開発するならばEclipseを使うかと思いますが、GAE Plugin は必要最低限の機能を提供している感じです。したがって、プロダクション環境にアップロードされる形を意識しながら開発…