無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

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

2008-10-01から1ヶ月間の記事一覧

外部結合とサブクエリのどっちが早いか試してみた

DB2

おとついの不具合の対応案として挙げた「外部結合を使う案」と「サブクエリを使う案」でどっちが早いか試してみた。 環境/条件等 DBはMySQLではなく実運用で使うDB2を使用。 テーブルは以下。おとついのサンプルからカラムを少し増やしてます。 create table…

ActionScript3の「for in」では、クラスのメソッド、フィールドは列挙されない

ActionScript3の「for .. in」では、静的に定義したクラスのメソッド/フィールドは列挙されません。 クラスフィールド、インスタンスフィールドとも。 Dynamicクラスも静的に定義したメソッドやフィールドは列挙されません。 ただし、動的に追加した属性は列…

性能計測ユーティリティ

だいぶ前にScalaで書いた性能計測ユーティリティを発掘しました。ScalaなのでJavaクラスの性能計測で使えます。以下はサンプル。 // 関数を5回実行して、処理時間の平均・最大・最小を出力する。 print( Perf.perf( "test", 5 ) { Thread.sleep(500); }.toSt…

今日のバグ

SQL

↓みたいなテーブルがあって、 create table A ( id BIGINT NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY(id) ); create table B ( id BIGINT NOT NULL AUTO_INCREMENT, a_id BIGINT NOT NULL, name VARCHAR(20) NOT NULL DE…

総称型のinstanceof

instanceofでは、 型パラメータがついていない型(例:List) 上限or下限の指定のないワイルドカードが指定された型(例:List) のいずれかが指定できます。 具体的な型をパラメータとして持つもの(extendsやsuperを含む)は指定できません。 →これは、実行時に型…

簡単なto_jsonモジュールを書いた

ruby-jsonではObjectのto_jsonは「オブジェクトをto_sした文字列のJSON表現」を返すので、以下のようなモジュールを書いてみました。インスタンス変数をハッシュのように出力します。 module JsonSupport def to_json instance_variables.inject({}) { |h, n…

VAIO Type Z フォトレビュー

VAIO Type Zが届いたので、早速フォトレビューをば。 箱 箱を開けたところ 右下に見えるのが本体。最近はリカバリーCDとかついてないのかな。 Let's Note R3と並べてみる 今使っているLet's Note R3と並べてみた。横幅がだいぶ広い。 キーボード Macっぽい感…

動的に属性を拡張できるテーブルの設計メモ

SQL

データベースを使って、運用中に動的に属性を拡張できるような仕組みを作りたい場合の設計メモです。 拡張属性に対応する「キー」と「値」のテーブルを追加で用意して、 拡張元のテーブルと関連づける 感じで実現します。 テーブル設計 kittenテーブルの属性…

デザインが失敗してしまう理由

デザインが失敗してしまう理由「デザインをする前に十分のデータ分析をしないデザイナー」とか挙げられてるけど、うちの会社の場合それ以前にデータ分析がデザイナーの仕事になってないんだよな。たぶん。プロジェクトの最後の方にちょっと呼ばれて画面に色…

同時実行抑制インターセプタ

Needleで使える同時実行抑制インターセプタを書きました。Mutex#synchronizedで同じIDを持つインターセプタが設定されたメソッド間の同時実行を抑制します。 require 'thread' require 'set' # 同時実行抑制インターセプタ class SynchronizeInterceptor @@p…

ライブラリにサンプルを書くうまいやり方 その2

ruby添付のset.rbを眺めていて発見。 ... ライブラリのソース if $0 == __FILE__ eval DATA.read, nil, $0, __LINE__+4 end __END__ ... ライブラリのサンプル(というかテストケースだけど。) とすることで、ライブラリがrubyで直接実行された場合のみ__END_…

今日のへま

↓のような不変なクラスを import java.util.HashSet; import java.util.Set; /** * 名前の集合。不変です。 */ class NameSet { private final Set<String> set; /** * コンストラクタ * @param names 名前 */ NameSet( String... names ) { this.set = new HashSet<String>(</string></string>…

ArrayCollectionで配列の変更を検知するサンプル

mx.collections.ArrayCollectionを使うと配列の変更をイベントリスナーの仕組みで検知することができます。 コンストラクタでソースとなる配列を指定してArrayCollectionを作成し、 イベントリスナーを設定した上で、 ArrayCollectionのAPIを呼び出して配列…

メインPC買い替え

3日ほど悩んだ結果、VAIO Type Z にしました。 MacBookのアルミボディは魅力的だけど 初代iBookを持ってたけど、ポリカーボネートは傷が付くとかっこ悪いんだよね。 スペック的にはいまいちぱっとしないかなと。 それはFRNCも同様。 というかVAIO Type Zの画…

型パラメータで示される型の配列を作りたい

generic array creationより。型パラメータで示される型の配列を作りたい場合、普通にnewして作ることはできないのでリフレクションを使って作っていたのだけど、 // aとbの配列を作りたい。 X a = null; X b = null; // これはエラーになるので・・ // X[] …

複数のオブジェクトの共通の親クラスを求める

推論の元になる引数が複数ある場合、共通の親クラスが使われるのであれぱ、これを使って複数のオブジェクトの共通の親クラスを得ることができるのでは!とひらめいてしまった。 // 引数の共通の親クラスを返す。 static <X> Class test( X... args ) { return ar</x>…

MacBookがでましたね。

なやましいのう。

ファイルの中身を一行ずつ取り出す。

ファイルの中身を一行ずつ取り出すとき、昔どこかで見たサンプルに習って↓のように書いていたけど、 # ファイルの中身を一行ずつ取り出す open( "./test.txt" ) {|f| while line = f.gets puts line end } IO#eachとかあるのね・・・。 # ファイルの中身を一…

ソートでのNULLは最大値扱い

DB2

DB2では、ソート時にNULL値があった場合「最大値」として扱われます。 昇順では最後に、降順では最初にきます。 Integer,Date,Timestampで実際に確認。 リファレンスでは、DB2 9.1 Information Center - 副選択の「order-by-clause」ところに記述があります。…

maskを使ってスプライトを切り抜くサンプル

Sprite#maskを使って、スプライトを切り抜く(スプライトの特定範囲のみ表示する)ことができます。Sprite#mask属性値として任意のDisplayObjectを設定すればOK。 package { import mx.utils.*; import flash.display.*; import flash.text.*; import flash.ex…

JavaScriptからFlexのAPIを呼び出すサンプル

FlexからJavaScript関数を呼び出す場合と同様、ExternalInterfaceを使います。 呼び出される側のswf : package { import mx.utils.*; import flash.display.*; import flash.text.*; import flash.external.*; // JavaScriptからのメソッド呼び出しを受け付…

ローカルのメソッドの呼び出しで型パラメータを明示する場合、thisが必要。

型パラメータを受け取るメソッドで型パラメータを明示する場合、メソッド呼び出しの前に「」をつければOKですが、ローカルのメソッドの呼び出しで明示する場合、「this.」とする必要があります。 class Sample { // 型パラメータを受け取るメソッド <X> void te</x>…

推論の元になる引数が複数あったらどうなるか

以下のような関数では、型パラメータXの型は引数によって推論されて決まります。 // 型パラメータで指定されたXを引数で複数受け取る関数。 // 渡される引数によりXが決定する。 static <X> X test( X a, X b ) { return a; } ここで、ぱっとみ、引数a,bの型は</x>…

指定ディレクトリ配下のファイルを列挙する

「ls」じゃなくて「find」の結果をforで回せばOK。 #!/bin/sh # 第一引数で指定したディレクトリ配下のテキストファイルを一覧表示する。 for file in `find $1 -name "*.txt"`; do echo "$file" done 実行結果です。 $ ./file-list.sh ./ ./b.txt ./c.txt .…

例外を型パラメータで渡す

メソッドがスローする例外を型パラメータで指定することができたりします。 // 型パラメータでスローする例外を指定できるクラス class Proc<E extends Exception> { void call() throws E {} } Proc<IOException> a = null; Proc<IllegalArgumentException> b = null; // aはIOExceptionをスローするのでキャッチしないと</illegalargumentexception></ioexception></e>…

境界ワイルドカードと代入互換性

型パラメータの「境界ワイルドカード」を使用すると、条件を満たす型パラメータを持つオブジェクトを代入可能な変数を作ったりできますが、境界ワイルドカードを持つ型を型パラメータ内で使うとやはり代入互換性は失われてしまいます。 // 型パラメータ指定…

今日のへま

↓のような同名で引数の違う関数があって、 static void test( Object... rest ) { System.out.println( "test( Object... rest )" ); } static void test( List<Object> list ) { System.out.println( "test( List<Object> list )" ); } これの「test( List list )」の方を実</object></object>…

メインPC買い替え計画

メインPCを買い換えようかと画策中。 要件 ノートPCであること。 こたつの上とか布団の中で使うため必須。これから寒くなるしね。 体力ないので、なるべく小さくて軽くヤツ。 それなりのスペックがあること。 FireFox,Eclipse,FireWorksを並列で起動してさく…

Timerを使うサンプル

Timerを使って定期的に処理を実行するサンプルです。Timerの基本的な使い方は次の通り。 引数で「次の呼び出しまでの待ち時間(ミリ秒)」と「実行回数」を指定してTimerを作成します。 「実行回数」を0にすると無限に実行されます。 「addEventListener」で定…

JavaBeanをMapに変換するユーティリティ

JavaBeanをMapに変換したり復元したりするユーティリティを書きました。探せばいっぱいありそうなのであれだけど。 使い方 適当なJavaBeanがあるとして、 // テスト用のJavaBean public static class Kitten { private String name; private int age; public…