タグ

ブックマーク / tetsuya-odaka.hatenablog.com (7)

  • GAE/Jのデータストアにファイルをアップロードする - tetsuya_odakaの日記

    以前のログ「GAE/JにStruts1.3のサンプルを乗せてみた」でファイルのUploadがうまくいかない、と書いた。 これは、GAE/Jのランタイム環境でFileOutputStreamがサポートされていないのが原因。GAE/Jがファイルシステムとして利用できないことはよく知られたことなので、ファイルシステムにuploadするのではなく、uploadしたファイルをBlob形式でデータ・ストアに保管すればよい。 実際に少し触ってみたところ、Strutsが抱え込んでいるcommons-fileuploadが、GAE/Jで利用できないということに帰着されるようだ。commons-uploadだけを使ったサンプルを書いてみたが、これもうまくいきそうにない。というのも、commons-fileuploadは、uploadしたファイルが「ある閾値を超えると一時的にファイルシステムに書き出す」という仕

    GAE/Jのデータストアにファイルをアップロードする - tetsuya_odakaの日記
  • Google App Engine(Java)のDWRアプリでテキストファイルを読み込んでみる - tetsuya_odakaの日記

    先日のログ「Google App EngineにDWR2を乗せてみた」で、Google Apps Engine(GAE)にDWR2を乗せて簡単なサンプルを動かしてみた。 GAEに関する記事などを読むと、GAEではファイルIOに制限があるとのこと。「(GAEのプラットフォームを)ファイルシステムと見なして使うことは出来ない」という意味のはずだが(実際に、「JRE クラスのホワイトリスト」を見ると、java.io関連のクラスがたくさん含まれている)、「テキストファイルが全く読み込めない」のでは困る。特に、コンテキストパス配下にテキストを置くことはよくあるので、試しておこうと思う。 以前に「DWR: Javaオブジェクトを画面の要素にマップする」というログで紹介したサンプルが、ちょうどいい実験材料になりそうなので、GAEプロジェクトに移植してみた。このサンプルでは、コンテキストパス配下の以下のよ

    Google App Engine(Java)のDWRアプリでテキストファイルを読み込んでみる - tetsuya_odakaの日記
  • Google App Engine/Javaでcommons-logging+Log4jでロギングする。 - tetsuya_odakaの日記

    Google App Engineのスタブ(appengine-web.xml)に <!-- Configure java.util.logging --> <system-properties> <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> </system-properties> とあるように、デフォルトの設定ではjava.util.loggingを使う設定になっている。 これと一緒に、src下にlog4j.propertiesの雛形が用意されている。 先のログでDWR2を配備した際に、commons-loggingを配置した。DWRは「org.directwebremoting.util.CommonsLoggingOutput」という奴が、commons-log

    Google App Engine/Javaでcommons-logging+Log4jでロギングする。 - tetsuya_odakaの日記
  • RIA型アプリとMVC2モデルの関係性 - tetsuya_odakaの日記

    いろいろバタバタしてしまい、ブログの更新が滞っているのはうまくない。 mezawa氏と「RIA型アプリとMVC2モデルの関係性」についてメイルのやり取りをした。 これは以前から議論になっている話題。 RIA型のアプリを頑張って作るという行為は、「頑張って画面を作る」という行為と同じ意味。 このブログでも取り上げたサンプルも、サーバーサイドの処理をいれる場合には、 Javascript(クライアントサイドのプログラム)<=> PHPプログラム(a) <=> PHPクラス(ロジック)(b) という形式になっている。 これは、コントローラの在り処が、PHPプログラム(a)にあることを示唆している。 これをJavaEEに置き換えると、 Javascript(クライアントサイドのプログラム)<=> サーブレット(c) <=> Javaクラス(ロジック)(d) となる。 MVC2パターンは、エンタープ

    RIA型アプリとMVC2モデルの関係性 - tetsuya_odakaの日記
  • Google App Engine/Javaを触ってみた - tetsuya_odakaの日記

    先日のログで書いたように、RIA型のアプリ、特にMushupアプリケーションやコンポジット・アプリケーションは、アーキテクチャ・モデルとしてのMVC2モデルから乖離していく。 これは、同時にサーバーサイドの仕掛けも、大仕掛けのものから、コンポーネント化された簡易なものに変わっていかなくてはならないことを示唆していると思う。 とすれば、「フレームワーク」として捉えていたプロダクトも、旧来のMVC2フレームワークから、コントローラーがクライアント寄りに異動して、(スクリプト言語で記述するように)簡易なものになるだろう。 上であえて「コンポーネント化された」と書いたのは、コンポジット・アプリのような形態を考えた場合、コンポジットする外部APIは、それ自体がコンポーネント化されているためで、これらとシームレスに連携するためには、「お手製」のプログラムもコンポーネント化されていることが望ましいからで

    Google App Engine/Javaを触ってみた - tetsuya_odakaの日記
  • prettyPrint.jsを試してみた。 - tetsuya_odakaの日記

    懇意のmezawa氏がMOONGIFTの記事を送ってくれた。 タイトルは『Javascriptのvar_dump「prettyPrint.js」』。 とても魅力的な名前だ。 自分もPHPを良く使うので、かねがね、「Javascriptにvar_dumpがあればなぁ」などと思っていたのだが、そのものずばりを作ってくれた人がいる模様。素晴らしい!! スクリプトはgithubに上がっていて、ダウンロードできる(こちら)。 ダウンロードすると、サンプルが付属しているし、サイトに説明があるので、わざわざテストする必要もないのだろうが、簡単に試してみた。 以下が、ソースコード。 prettyPrint.jsを読み込んで、オブジェクトを渡してあげさえすれはいい。 戻り値は、Table形式のHTMLDivElementなので、戻り値を表示するDivを容易しておく。 ダンプするオブジェクトでは、配列やオブジ

    prettyPrint.jsを試してみた。 - tetsuya_odakaの日記
  • Code Beautifier - tetsuya_odakaの日記

    MdN発行のムック「スタイルシート表現デザイン帖」はよいだと思う。 ここに、先日の「Browsershots」と並んで、「code beautifier」というオンラインウェアが紹介されていた(リンクはこちら)。 トップページ(下図)上に「CSS Formatter and Optimiser」と書かれていて、CSSの最適化や圧縮(コンプレッサー)ができるサイトである。 ここに、CSSを直打ちするか・CSSファイルのURLを入力して、最適化オプションを指定して「Process CSS」というボタンを押すだけでよい。 ここでは、以下のCSS(先のログ「W3C CSS Validation Service」で利用したサンプル)を読み込ませてみた。 * { margin: 0; padding: 0; } body { margin: 20px 0 0 0; background: #EEE;

    Code Beautifier - tetsuya_odakaの日記
  • 1