タグ

ブックマーク / unageanu.hatenablog.com (11)

  • Closure CompilerでタイプセーフJavaScriptコーディング - うなの日記

    Closure Compilerを使用したタイプセーフJavaScriptコーディングについてまとめ。 Closure CompilerはClosure Toolsの一部で、 JavaScriptコードを解析して圧縮と最適化を行うJavaScriptToJavaScriptコンパイラです。 最適化だけでなく、シンタックスや型のチェック機能も提供。 型チェックは、JsDocコメントの形式で記載された型情報をもとに行われます。 型システムは、ECMAScript4の仕様に準拠している模様。 Closure Compilerを使用することで、ECMAScript3の世界でECMAScript4ライクな型システムが使えます。(型情報をコメントに書くので、スマートさには欠けますが・・) Closure Compilerのインストール Closure Compilerのサイトよりzipアーカイブを取得

    Closure CompilerでタイプセーフJavaScriptコーディング - うなの日記
    s5ot
    s5ot 2011/01/11
  • AJAXサイトの定期観測向け性能計測ツールを作ってみた - うなの日記

    AJAXサイトの定期観測向け性能計測ツールを作ってみましたよ。 ページの読み込み時間、サーバーAPIの呼び出し時間ならJMeter、JavaScriptの実行時間ならBenchmark.jsで計測できるけど、 これらをひっくるめた読み込みを開始してから画面に情報が表示されるまでにかかる一連の時間を計測するツールとなるとFireBugくらいしか見当らないなー・・・。 FireBugでも計測はできるけど、計測対象ページがいっぱいあったり、5回計測して平均をとる、とかいう場合にはちょいシンドイ。 FireBug自体のオーバーヘッドも若干気になるし・・。 あと、IE7,8でも測らんといかんので、同じ仕組みでIEでもFireFoxでも計測できるようにしておきたい。 というのが経緯。「ログ出力監視方式」の計測ツールならこれらの要件を満たせそう && 割とさくっと作れそうじゃね?と思い立って作ってみまし

    AJAXサイトの定期観測向け性能計測ツールを作ってみた - うなの日記
    s5ot
    s5ot 2010/10/04
  • @Inheritedの動作確認 - うなの日記

    @Inheritedの動作確認です。JavaDocを確認すると以下のような機能らしい。 @Inheritedは、アノテーションが自動で継承されることを示すアノテーション。 アノテーション探索時に、派生クラスにアノテーションが付与されていなければ、自動的に親クラスに付与されたアノテーションが探索される。 クラスのアノテーションのみで有効。メソッドやフィールドのアノテーションでは無効。 インターフェイスは探索対象にならない。 ふむふむ。ということで動作確認コードを書く。 /** * テスト用のアノテーション */ @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD}) @interface Foo { String value(

    @Inheritedの動作確認 - うなの日記
    s5ot
    s5ot 2010/07/13
  • XSSの攻撃手法いろいろ - うなの日記

    html5securityのサイトに、XSSの各種攻撃手法がまとめられているのを発見せり!ということで、個人的に「お!」と思った攻撃をサンプルつきでご紹介します。 1. CSS Expression IE7以前には「CSS Expressions」という拡張機能があり、CSS内でJavaScriptを実行できたりします。 <div style="color:expression(alert('XSS'));">a</div> 確認 @IT -[柔軟すぎる]IEのCSS解釈で起こるXSS で詳しく解説されていますが、CSSの解釈が柔軟なことともあいまって自前で無害化するのはなかなか困難。以下のようなコードでもスクリプトが実行されてしまいます。 <div style="color:expr/* コメントの挿入 */ession(alert('XSS'));">a</div> 確認 <div s

    XSSの攻撃手法いろいろ - うなの日記
    s5ot
    s5ot 2010/06/19
  • GAE+JSPではまった点x3 - うなの日記

    GAE+JSPではまった点x3のメモ。雑魚中の雑魚ばかりですが。 1.JSTLが使いたい! GAEではデフォルトで組み込まれているので、WEB-INF/libにjstl.jarとかstandard.jarとかを追加する必要はありませんよ。 「Google App Engine - JDO を利用したデータストアの使用」のヒントのところにさりげなく記述があります。「JSTL」で検索。 2.EL式が評価されない ページ属性の定義で、「 isELIgnored="false" 」にしないとEL式は評価されません。 <%@ page contentType="text/html; charset=UTF-8" isELIgnored="false" %>「JavaServer Pages (JSP) v2.0 Syntax Reference - Page Directive」によるとデフォルトは

    GAE+JSPではまった点x3 - うなの日記
    s5ot
    s5ot 2010/05/24
  • miibotのOAuth対応メモ - うなの日記

    TwitterでBasic認証が利用できなくなるらしいので連休を利用してmiibotのOAuth対応をしましたよ、ということで以下は対応手順のメモです。 はじめに miibotはGoogle App Engine/Javaで動いています。 いわゆるbotさんです。OAuth対応といっても、ハードコードした固定のアカウントで認証してつぶやければOK。 botでのOAuth認証 OAuth認証でのAPIアクセスの流れは、大雑把に以下のような感じになります。 dev.twitter.comにアプリケーションを登録し、consumer key, consumer secretを取得 consumer key, consumer secretを元に、Twitterのサイトよりrequest token, request secretを取得。 Twitterの認証サイトで認証。 request tok

    miibotのOAuth対応メモ - うなの日記
    s5ot
    s5ot 2010/05/11
  • 今日の罠 - うなの日記

    最近はdojoを使っているわけですが、FireFoxでモジュールのロードがうまくいかず迷走。 現象 IEでは動作するのにFireFoxだとモジュールのロードがうまくいかない。 FireFoxでもWebサーバーに上げると動作する。ローカルに置いたHTMLをドラッグドロップでFireFoxに読み込ませるとエラーになる。 原因 いろいろ調べてみると、どうもFireFoxでのローカルファイルのGet制限に引っかかっている様子。 dojoではモジュールのロードはXHRでスクリプトをGETして読み込むようになっているが、 FireFoxでは、スクリプトを含むHTMLファイルより上位ディレクトリのファイルをXHRで読もうとするとエラーになる。 HTMLと同じディレクトリやより下位のディレクトリにあるファイルはロード可能。 制約はローカルのみ。ファイル一式をWebサーバーにアップロードすると問題ない。 検

    今日の罠 - うなの日記
    s5ot
    s5ot 2010/04/13
  • GAEで作るサムネイル画像作成サービス - うなの日記

    Google App Engineでは画像変換サービスが提供されていて、画像サムネイルサービスをさくっと作れたりします。ということで作成手順をまとめてみました。 仕組み サービスの仕組みは以下のとおりです。 画像のアップロード formのファイル選択を利用して、画像をサーバーにPOST。 マルチパートフォームデータとして画像がサーバーに送られます。 サーブレットでマルチパートフォームデータを解析し、画像データを取得。 解析には「commons-fileupload」を利用します。 GAEの「ImageService」で画像データを処理し、サムネイルを作成します。 作成したサムネイルとオリジナルの画像をデータストアに保存。 レスポンスとして、サムネイルの表示時に使うサムネイルIDを返却します。 画像は、他に適切な場所が見当たらなかったので、とりあえずデータストアに保存しています。 画像の参照

    GAEで作るサムネイル画像作成サービス - うなの日記
    s5ot
    s5ot 2010/03/24
  • Javaでcallee - うなの日記

    メソッド内の処理でそのメソッド自身への参照を簡単に得る方法。Java5.0以降のみですが、JavaScriptで使えるarguments.calleeみたいなのが簡単に実現できます。 ...まぁ、Class#getMahod()でとれるっちゃーとれるんですが、これだとメソッド名を指定する必要があります。以下の方法はメソッド名を知らなくても現在のメソッドを取得できるのがメリットかな。 メソッド自身への参照を得る 関数にしました。1.5より、無名クラスからそれを定義したMethodの参照がとれるようになったのでそれを使います。 /** * メソッド自身を取得する。 * @param o メソッド内で作成した無名クラス * @return メソッド自身 */ static Method callee( Object o ) { return o.getClass().getEnclosingMe

    Javaでcallee - うなの日記
    s5ot
    s5ot 2010/02/27
  • オープン・フリーのFX自動取引システム「jiji」 - うなの日記

    「jiji (ジジ) 」は、オープン・フリーのFX自動取引システムです。 完全自動でのFX取引を実現 レートデータの取得から証券会社への発注まで、プログラミングしたルールに従った完全自動でのFX取引を実現します。 取引ルールはRubyで 取引ルールはオブジェクト指向プログラミング言語「Ruby」で記述します。 オブジェクト指向言語ですので、よく使う機能の部品化・再利用が容易に行えます。 バックテスト機能を搭載 過去のデータを使用した取引ルールの検証(バックテスト)機能を実装済み。 運用前に、実際のレートデータを使用して動作を確認しておくことが可能です。 外出先からも操作可能 jijiはスタンドアロンなサーバーとして動作するWebアプリケーションです。 自宅のマシンをサーバーとして公開しておくことで、外出先からの状況の確認やメンテナンスが可能。 忙しいサラリーマンの方も安心してご利用いただけ

    オープン・フリーのFX自動取引システム「jiji」 - うなの日記
    s5ot
    s5ot 2009/04/16
    flex ruby FX oss jiji
  • プログラムをdaemonにする。 - うなの日記

    rubyプログラムをdaemonとして実行する方法について。 deamon化の手順 deamon化の手順については「PC覚え書き-プログラムのデーモン化」の解説が詳しい。ポイントは次の通りです。 子プロセスの生成 fork関数を実行して子プロセスを生成し、親プロセスを終了させる。 これにより、プロセスはinitプロセスグループに属するプロセスになる。 次に行うsetsidは、プロセスグループリーダーで行うと失敗するので、この処理を行ってプロセスリーダーでない状態にしておく。 セッションの新規作成と割り当て Process.setsid関数を実行し、新規にセッションを開始して割り当てる。 子プロセスの再生成 fork関数を再度実行して、initプロセスグループに属するプロセスにする。 こうすると制御端末を設定することができなくなってよいらしい。 デバッグモード等で制御端末が必要な場合は実行し

    プログラムをdaemonにする。 - うなの日記
    s5ot
    s5ot 2008/12/22
  • 1