読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Seleniumを使ったWeb UI自動テストシステムの構築でやったことまとめ

Seleniumを使ったWeb UIの自動テストシステムを作ったので、やったこと・感想などをまとめてみます。 テスト対象 テスト対象は、AJAXなWebアプリです。 サーバーはREST APIを提供するのみで、UIは全てJavaScriptという構成。 サポートブラウザはIE7以降,Fire…

[JavaScript] Deferredを作ってみた

さまざまなライブラリで用意されているようなのでいまさら感満載ですが、Deferredを作ってみましたよ。 諸般の事情で必要なのだけど、このためだけにjQueryに依存するのもあれなので・・・、ということで勉強もかねて再発明。 APIは、jQueryに合わせてみまし…

[Ruby] 工なんとか管理にデータを一括登録するスクリプト

最近できた「工なんとか管理」にデータを一括登録するスクリプトです。戦略は以下。 指定された月の登録済みデータを取得し、昼休みなどの規定のデータを登録します。 休み以外の期間は、指定されたデフォルトのタスクで埋めます。 退社時間が20:00以降の場…

freeze/seal/preventExtensions の違いまとめ

ECMAScript 5 で追加された、Object.freezeやObject.sealを実行すると何ができなくなるのかについて。 こうなる。 preventExtensions seal freeze プロパティの追加 × × × プロパティの削除 ○ × × プロパティの値変更 ○ ○ × プロパティの属性変更 ○ × × 確認…

[Ruby] フォード・ファルカーソン法でネットワークの最大フローを求める

フォード・ファルカーソンのアルゴリズム で、ネットワークの最大フローを算出してみます。 最大フローとは 以下のようなそうめん流しシステム(=ネットワーク)があるとします。 「→」は「竹とい」を示します。「○」は、「竹とい」の接点。 「→」の横の数値は…

[Ruby]ダイクストラ アルゴリズムでグラフデータ中の2点間の最短経路を算出する

ダイクストラ アルゴリズム で、グラフデータ中の2点間の最短経路を算出してみます。まずは、グラフのデータ構造を作成。とりあえずグラフの構築と探索に必要な最低限のAPIのみ用意しました。 Graph グラフです。 verticesフィールド でグラフ中の頂点を配列…

[Javascript] AJAXアプリでオートコンプリート機能を有効化する際の注意事項

ユーザー名とパスワードをブラウザに覚えさせられるオートコンプリート機能ですが、入力されたデータをAJAXで送信して認証するタイプのアプリで使うにはいろいろと工夫が必要です。ということで、AJAXアプリでオートコンプリート機能を有効化する際の注意事…

[JavaScript] DOMエレメントの描画時間を計る

JavaScriptで生成したDOMエレメントの描画時間を計測したい。 そもそも描画時間の計測ってどうすればいいの? とりあえず、innerHTMLの所要時間を計ってみる。 // DOM要素を10万個作成 var str = ""; for ( var i=1;i<=100000;i++ ) { str += "<div id='div"+i+"' class='"+ i%10 +"'>div"+i+"</div>" } //…

Closure CompilerでタイプセーフJavaScriptコーディング

Closure Compilerを使用したタイプセーフJavaScriptコーディングについてまとめ。 Closure CompilerはClosure Toolsの一部で、 JavaScriptコードを解析して圧縮と最適化を行うJavaScriptToJavaScriptコンパイラです。 最適化だけでなく、シンタックスや型の…

カレンダー壁紙2011

2011年のカレンダー壁紙です。 1年分のカレンダーを一枚の壁紙にまとめています。 1年使っても飽きない(かもしれない)、シンプルデザイン 1280x1024と1600x900の2サイズをご用意。 ダウンロードは以下からどうぞ。 1280x1024 1600x900

あけましておめでとうございます。

あけましておめでとうございます。今年もよろしくお願いします。

カレンダー壁紙2011

IE7のメモリリーク問題

IE7には、以下の条件を満たす場合メモリリークが発生する問題があります。 DOMエレメントとJSオブジェクトが循環参照している 上記エレメントをスクリプトで削除する IE8では改修されているようでこの問題は発生しません。また、Firefox 3でも発生しません。…

XMLHttpRequestの最大同時接続数

XMLHttpRequestの最大同時接続数を調べたのでメモ。 IE8,Firefox 3 6 IE7 2 (HTTP1.1の場合) MSDN - Internet Explorer 8 における接続性の強化 MDC XMLHttpRequest ふむ。

CentOS+Hudsonで、rubyプロジェクトの定期テストを実行する手順

CentOS+Hudsonで、rubyプロジェクトの定期テストを実行する手順のメモです。 CentOSは5.4。 GitHubにホスティングされているrubyプロジェクトをとってきて、 rakeでrspecを実行します。 サマリ Javaのインストール Hudsonのインストール Hudsonの起動 GitとR…

今日の罠

input[type=file]はIE8では値の直接入力ができないはずなのだけど、createElementで作ると入力できるようになったり。 // createElementで生成 / 値をキーボードから入力できるようになる。 var fileInput = document.createElement('input'); fileInput.set…

AJAXサイトの定期観測向け性能計測ツールを作ってみた

AJAXサイトの定期観測向け性能計測ツールを作ってみましたよ。 ページの読み込み時間、サーバーAPIの呼び出し時間ならJMeter、JavaScriptの実行時間ならBenchmark.jsで計測できるけど、 これらをひっくるめた読み込みを開始してから画面に情報が表示されるま…

Rakeの基本的な使い方まとめ

Rakeの基本的な使い方のまとめです。 インストールから、Rakefileの書き方、組み込みライブラリの使い方まで。 忘れたときに見返す用に。 Rakeって何? rubyで処理内容を定義できるビルドツール。「xmlでなくrubyでbuild.xmlを書くAnt」ですな。 ruby専用とか…

Twitterを使ったオークション/バザーの開催をサポートするサービス「TwAuc」

TwAucは、「Twitterを使ったオークションやバザーの開催をサポートするサービス」です。→TwAuc - フォロワーだけのシンプル・オークションサービス 特徴 Twitterでオークション TwAucにさくっと商品を登録して、Twitterでアナウンス。締め切りや落札者の確認…

キー操作でカメラを動かすサンプル

キーイベントを拾ってカメラを動かすサンプルを書いてみました。→キーイベントを拾ってカメラを動かすサンプル ←→キーで旋回、 ↑↓キーで前後に移動します。 動きがわかるように空間には点をちりばめています。(ParticleFieldを利用) はまりポイントは以下か…

primitivesを並べてみる

Papervision3Dでは、org.papervision3d.objects.primitivesパッケージ以下に、立方体とか球といった基本的なオブジェクトが用意されています。どんなのがあるのかな、ということで、primitivesパッケージ以下のオブジェクトを並べてみました。 動いていると…

Flex SDK + Papervision3Dで球を描く&回転させるチュートリアル

Flex SDK + Papervision3Dで、ワイヤーフレームの球を描いて 回転させるまでのチュートリアルです。Flex SDK 4 + Papervision3D 2.1の組み合わせで試してみましたが、特に問題なくビルドできましたよと。お手軽にFlash 3Dで遊べます。 サマリ Flex SDKのダウ…

@Inheritedの動作確認

@Inheritedの動作確認です。JavaDocを確認すると以下のような機能らしい。 @Inheritedは、アノテーションが自動で継承されることを示すアノテーション。 アノテーション探索時に、派生クラスにアノテーションが付与されていなければ、自動的に親クラスに付与…

XSSの攻撃手法いろいろ

html5securityのサイトに、XSSの各種攻撃手法がまとめられているのを発見せり!ということで、個人的に「お!」と思った攻撃をサンプルつきでご紹介します。 1. CSS Expression IE7以前には「CSS Expressions」という拡張機能があり、CSS内でJavaScriptを実行…

JavaScriptでシングルトン

JavaScriptでのシングルトンの書き方をいくつか。思いついた範囲で。 1.クラス変数的な感じでインスタンスを保持。 example.ClassX.instance = new example.ClassX(); example.ClassX.instance.call(); 2.関数のインスタンス変数に仕込む。 example.ClassX.g…

依存モジュールのdependencyを調べるなら「jarvana」が便利!

実は有名だったりするかもですが、依存モジュールのdependency定義(pom.xmlに書くやつね)を調べるなら「jarvana」が便利ですよ!→「jarvana」「jarvana」を使えば、 クラスのFQCNからそれを含むモジュールを探す。 プロジェクト名(「guice」とか)から、モジ…

GAE+JSPではまった点x3

GAE+JSPではまった点x3のメモ。雑魚中の雑魚ばかりですが。 1.JSTLが使いたい! GAEではデフォルトで組み込まれているので、WEB-INF/libにjstl.jarとかstandard.jarとかを追加する必要はありませんよ。 「Google App Engine - JDO を利用したデータストアの使…

miibotのOAuth対応メモ

TwitterでBasic認証が利用できなくなるらしいので連休を利用してmiibotのOAuth対応をしましたよ、ということで以下は対応手順のメモです。 はじめに miibotはGoogle App Engine/Javaで動いています。 いわゆるbotさんです。OAuth対応といっても、ハードコー…

データストアの単体テストを書く手順 for 1.3.3

GAEのSDKを1.3.3にバージョンアップしたら、データストアの単体テストがコンパイルエラーに! ドキュメントを見ると、どうやらテストケースの書き方が変わったらしい。(1.3.1 - 1.3.2はスルーしていたので、実はずっと前からかもですが)ということで、SDK1.3.…

miibotの新機能をリリース

ネットに繋がったので、機上で実装したmiibotの新機能をデプロイしましたよと。「@ が疲れている」と@miibotにリプライすると、指定したユーザーをねこ写真で応援してくれます。かわいいねこの写真を表示するWebアプリ「Mii」 → Twitter - miibotすさんだツ…

デモサイト復帰のお知らせ

やっと回線が繋がったので、デモサイトを復帰しました。以上。

デモサイト停止のお知らせ

引っ越しのため4/15よりjijiのデモサイトを停止します。再起動は、新居がネットに繋がってからになります。なるべく早く復帰させたいところですが、プロバイダさんにまだなんの手続きもしとらんのでどうなることやらです。気長にお待ちください。

今日の罠

最近はdojoを使っているわけですが、FireFoxでモジュールのロードがうまくいかず迷走。 現象 IEでは動作するのにFireFoxだとモジュールのロードがうまくいかない。 FireFoxでもWebサーバーに上げると動作する。ローカルに置いたHTMLをドラッグドロップでFire…

GAEで作るサムネイル画像作成サービス

Google App Engineでは画像変換サービスが提供されていて、画像サムネイルサービスをさくっと作れたりします。ということで作成手順をまとめてみました。 仕組み サービスの仕組みは以下のとおりです。 画像のアップロード formのファイル選択を利用して、画…

クリック証券デモ取引に対応した clickclient_scrap をリリース

ここ一ヶ月取り組んでいたプロジェクトを先週ひっそりとクローズして暇になったので、積まれていたTODOに着手。クリック証券デモ取引に対応した clickclient_scrap 0.1.10 をリリースしました。→Github - unageanu / clickclient_scrap →Gemcutter.org - cli…

「+」演算子での文字列連結は、コンパイラでStringBuilder#append()にされるよ!

文字列をちょこっと連結したい時に、いちいちStringBuilderを使うのは面倒くさいですよねー。 というか、「+」で連結しても実はコンパイラがうまいこと最適化してくれるんじゃね?とふと思い立って調べて見ました。 結論:単純な連結なら、コンパイラがちゃん…

職業Perlプログラマの日常

諸々の事情により、仕事で使うツールをperlで書くはめになったプログラマの記録です。 その1 my $flag=false; $ perl -w test.pl Unquoted string "false" may clash with future reserved word at test.pl line 1.true/falseはリテラルにあらず。Javaとは違…

テーブルごとのダンプを一括作成する1行

カレントデイレクトリに、DB「foo」にあるテーブルごとのダンプファイルを一括作成する1行です。 $ psql -c '\dt' foo | awk '/public/ { system("/usr/bin/pg_dump -f ./"$3".sql -t "$3" foo") }'戦略は以下。 「\dt」での出力をawkで解析して、テーブルを…

この世のどこかにあるというlog4j.propertiesを探す一行

sh

この世のどこかにあるというlog4j.properties(の入ったjar)を探す一行です。 $ for f in `find / -name "*.jar"`; do if [ "`jar tf $f | grep log4j.properties`" ]; then echo "$f"; fi; done「WEB-INF/classes」とかに素で置かれている場合は未考慮なので…

初回起動時に設定がクリアされてしまう問題を修正したjiji-1.2.8をリリース

初回起動時にアクセス先証券会社の設定がクリアされてしまう問題を修正したjiji-1.2.8をリリースしました。→Github - unageanu/jiji →Gemcutter.org - jiji上記不具合のほか、 「jiji setting」実行時にプロラグインロードエラーが発生した場合、コンソール…

Java変態?コード最速マスター

Java変態文法最速マスター - プログラマーの脳みそが面白かった && 参考になったので便乗してリスペクト。変態世間であまり見かけない(かも知れない)Javaコードを、過去のエントリからまとめてみました。 nullでなければループ 「配列がnullでなければループ…

GAEのデータストアで使えるJDO関数

JDO2.2で規定されている関数のうち、どれとどれがデータストアで利用できるのか調査してみました。結論としては、 「Collection.contains」は利用可。 「String.matches」は制限付きで利用可。 前方一致条件(「hoge%」みたいな条件)のみ指定できる。 後方一…

一定期間経過するとログアウト状態になる問題に対応したsbiclientをプレリリース

tana さんよりご報告頂いた、「起動後一定期間経過するとレート情報が取得できなくなってしまう」問題に対応したsbiclientをプレリリースします。→Github - unageanu / sbiclient →Gemcutter.org - sbiclient 原因 ログイン後一定期間経過すると、強制的にロ…

これで一区切りとします。

「1日1エントリ」のルールで続けてきたこのブログですが、今日の記事で連続投稿1000日目となります。1000日続けてみた感想ですが、 技術的知識は(当たり前ですが)だいぶ増えましたよ。また、このブログ自体も個人的なデータベースとして日々役立っていますよ…

Javaメソッドの呼び出し元をツリー表示するスクリプト

JavaClassを使って指定メソッドの呼び出し元を探索しツリー表示するスクリプトを書いてみました。 引数で指定されたパス以下の*.class,および*.jarに含まれるクラスファイルを解析し、 メソッドの呼び出しコードを収集。 収集した情報を再帰的に探索し、呼び…

データ更新を行うユーティリティ

検索条件作成ユーティリティ向けに定義したプロパティを再利用して、データの更新を行うユーティリティも作ってみました。専用のユーティリティとペアで使うことで、 ↓のような感じで指定したモデルの属性を更新(以下の例では、年齢を"2"に更新)できるように…

XMLをコピーするSAXハンドラ

今日の発掘品。XMLをコピーするSAXハンドラです。最新のXalanを使うとDTDのコピーもできる、というのは調べたけど影響範囲があれなので不採用→仕方なく自前で実装した記憶があったり。使い方は以下です。 /** * {@link XMLReader}を作成する * @param handle…

JSON-RPCで転送するJavaオブジェクトをさくっと作成するユーティリティ の続き

昨日作成したJSON-RPCで転送するJavaオブジェクトをさくっと作成するユーティリティですが、Ruby→JSONへのシリアライズだけじゃなく、JSON→Rubyへのデシリアライズもサポートしてればさらに便利じゃね?と思い立って実装してみた。API呼び出しの結果として返…

JSON-RPCで転送するJavaオブジェクトをさくっと作成するユーティリティ

JSON-RPCインターフェイスにRubyから接続するときに、Javaオブジェクトをハッシュでちまちま作るのはあまりにもメンドイと思って、ユーティリティを書いてみた。これを使うと # json-rpcでKittenオブジェクトを送付 client = JsonRpc::Client.new( "testServ…

svn:externals

「svn:externals」プロパティをフォルダに設定しておくと、別の階層にある任意のSubversionフォルダをそのフォルダ以下にまとめてチェックアウトさせるようにできます。 プロパティのキーは「svn:externals」で、値は、 <ディレクトリ名> <svnのURL>の形式で書けばOK。</svnのurl>…