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

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

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

Needleのインターセプタはプロキシ方式です。

Needleのインターセプタはプロキシ方式です。レジストリに登録したインスタンスから自身のメソッドを呼び出した場合、インターセプタは作動しません。 require 'rubygems' require 'needle' # レジストリに登録するサービスクラス class Kitten def initiali…

任意の長さの文字列を返す式をさくっと作成したい。

任意の長さの文字列を返す式をさくっと作成したい。 その1 String str = new StringBuilder() {{ for(int i=0;i<100;i++) append("a"); }}.toString(); できそうでできない。finalですか、そうですか。 その2 String str = new String( Arrays.fill( new cha…

特異クラスを取り出す

今日見つけたなぞのコード。 singleton = class << service; self; end serviceは任意のオブジェクト。どうもこれで、serviceの特異クラスを取り出しているらしい。 取り出したクラスは、クラスなので、「instance_methods」でメソッド一覧を取得したり、「d…

Struct

簡単なモデルクラス(JavaにおけるJavaBean的なモノ)を作りたい場合、Structが便利です。 # 構造体クラスの作成 Kitten = Struct.new(:age, :name) # 構造体オブジェクトの作成 mii = Kitten.new( 1, "mii" ) # 属性の参照 puts mii.name puts mii.age # 属性…

Needleのインターセプタ機能を試す

Needleのインターセプタ機能を使ってみます。 Seasarなどで提供されているメソッドインターセプタの機能が利用できます。 専用のインターセプタクラスを用意して適用するほか、ブロックを使って簡単にフック処理を指定することも可能です。 ブロックを使った…

RubyのDIコンテナ「Needle」を使ってみる。

「Needle」はRubyで使えるDIコンテナです。 インスタンスのライフサイクル管理や、インジェクションなどのDIコンテナの基本的な機能をサポート。 設定ファイルを利用せず、プログラム上でサービスを登録する方式が採用されています。Guiceライク。 AOP機能も…

Int配列中の最大、最小、平均を得る

こんな感じで書いてみた。 var datas = Array(9,3,5,7) // 最大 println( "max:" + datas.reduceLeft( (max,i) => i max max ) ) // 最小 println( "min:" + datas.reduceLeft( (min,i) => i min min ) ) // 平均 println( "avg:" + datas.reduceLeft( (sum,…

By-Name ParametersでJavaライクなsynchronizedを作る

「By-Name Parameters」を使うと、 foo { println("aaaa") } みたいな感じで呼び出せる関数を作成できます。関数fooの定義は以下のような感じ。 def foo[R]( proc: => R ):R = { try { println("before...") proc // 引数のprocを評価して実行 } finally { p…

Enumerable#mapの途中でindexにアクセスしたい

次のようなEnumerableをincludeしたクラスがあって、 class Foo include Enumerable def each ["a","b","c"].each{|i| yield i } # もちろんこんな実装じゃないよ end end これのEnumerable#mapのブロック中で、現在の要素のインデックスが必要になったので…

最近読んだ本(〜2008/07)

ネタがないので最近(といってもここ2ヶ月くらいで)読んだ本でも並べてみます。 ☆☆☆☆ 若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来 (光文社新書)作者: 城繁幸出版社/メーカー: 光文社発売日: 2006/09/15メディア: 新書購入: 17人 クリック: 447回こ…

WEBrick+OrbjsonでJSON-RPCでアクセスできるWebサービスを作る

JSON-RPCライブラリのOrbjsonではWEBrickのServletが提供されています。それを使うとJSON-RPCでアクセスできるWebサービスをさくっと作成できます。ということで、簡単にですが手順をまとめてみます。 概要 Orbjsonのインストール 提供するAPIを定義したサー…

WEBrickでHTTPサーブレットを作ってみる。

Ruby標準添付のWEBrickでHTTPサーブレットを作ってみました。まずはHelloWorld。WEBrickのサイトにあるサンプルのコピペです。 require 'webrick' include WEBrick # httpサーバー s = HTTPServer.new( :Port => 8080 ) # サーブレット class HelloServlet <…

はてなブックマーク フロントエンドに検索結果詳細の表示を切り替え

このあいだ作成した「はてなブックマーク フロントエンド」に検索結果詳細の表示/非表示を切り替える機能を追加。→ はてなブックマーク フロントエンドの新しいヤツを試作 切り替えのリンクはとりあえずヘッダ部分に配置。 設定値はクッキーで覚えるようにし…

AOPの使いどころ

404 java-ja ないわー - AOPどこで使う?を読んで。現在関わっているプロジェクトでのAOPの使いどころについてまとめてみます。 使っているところ トランザクション ログ(エラーログ/性能ログ/操作ログ) 認証チェック キャッシュ DBアクセスの結果をファイル…

NodeSeq#\

NodeSeq#\、NodeSeq#\\で遊んでみた。 // XML リテラル var xml:scala.xml.Elem = <kittens type="animal" xmlns="http://kittens.com" xmlns:t="http://tigers.com"> <kitten age="1">mii</kitten> <t:tiger age="2">tora</t:tiger> <kitten age="3">shiro</kitten> <foo> <kitten age="3">kuro</kitten> </foo> </kittens> // ルート直下のk…

XMLリテラル

XMLリテラルとかあります。 // XML リテラル var xml:scala.xml.Elem = <kittens xmlns="http://kittens.com"> <kitten>mii</kitten> <kitten>tora</kitten> <kitten>shiro</kitten> </kittens> // kittens/kitten要素を探してきてそのテキストを表示する。 // -filterのところは「Node.xmlType」を使うのがよさげ。 // -「Node.\」でもっとシンプルにかけそう。…

続・推論された型パラメータからClassを得る(JDKのコンパイラでは動作しなかった・・orz)

calicoさんより、推論された型パラメータからClassを得るのコードについてご指摘を頂いたので(ありがとうございます!)、いろいろと検証してみた。結論としては、上記日記のコードはEclipseのコンパイラでコンパイルしたクラスでしか期待通りの動作とならない…

SAXでXMLの複製を作る

SAXTransformerFactory#newTransformerHandler() を使うと、SAXでXMLを読みつつそのコピーをストリームに書き出すことができます。委譲などを駆使してカスタマイズすれば、特定の要素を除いたXMLのコピーを作成するといったことも可能。DOMにしてからシリア…

チェックボックスの説明を表示する

チェックボックスやラジオボタンに説明用文字列を設定する場合、「label」要素を使用します。 普通にテキストを配置しても見た目上は同じですが、labelで関連付けた文字列を指定すると、文字列をクリックした場合もチェックボックスやラジオボタンのon/offが…

CGIでリダレクトする

statusとLocationヘッダを指定すればOK。 #!/usr/local/bin/ruby -- require "cgi" cgi = CGI.new print cgi.header( { "status" => "REDIRECT", "Location" => "http://d.hatena.ne.jp/unageanu/" }) cgiにアクセスすると以下が返され、 HTTP/1.1 302 Found…

Prefix Operations

クラスやTraitに、 def unary_<演算子(- or + or ! or ~)> = ... のようなメソッドを定義しておくと、 <演算子> <レシーバ> の形式でメソッドを呼び出すことができます。 // テスト用クラス class Foo( value:Int ) { override def toString = value.toStrin…

faviconのURIを探すクラス(scrAPI版)

昨日作成したhpricot版faviconのURIを探すクラスをsakuraのレンタルサーバーにアップロードしようと画策するも、hpricotのインストールではまる。hpricotはバイナリの共有ライブラリを使用しているため、gemを使ってsakuraのサーバーでコンパイルしてインス…

faviconのURIを探すクラス

favicon.iconのURIを探すクラスを書いた。Wikipedia-Faviconより、 head/link[@rel='shortcut icon'] head/link[@rel='icon'] ルートディレクトリのfavicon.icon のうち最初に見つかったモノを返す。 require 'rubygems' require 'hpricot' require 'httpcli…

はてなブックマーク フロントエンドの新しいヤツを試作

はてなブックマーク フロントエンドの新しいヤツを作ってみた。 戦略 「登録直後のブックマーク」「特定のよく使うブックマーク」に素早くアクセスする手段を提供 個人的にアクセスする頻度の高い以下の二つについて、専用のカテゴリを用意し素早くアクセス…

はてなブックマーク フロントエンドの新しいヤツを試作

sbazでパッケージをインストールする

最近気付いたのだけど、scalaの世界にも「Scala Bazaars」というパッケージ管理の仕組み(rubyのRubyGems的なモノ)があります。「sbaz」というツールが提供されていて、これを使ってパッケージの追加/削除が可能。基本的な使い方は次の通りです。 # インスト…

IE6ではcolor:inheritが使えない

CSS

<span class="x"><a href="#">テスト </a></span> みたいな感じのa要素があって、 リンクの色を指定の色にして、 マウスオーバー時にのみアンダーラインを引く ようにしようと思い、次のようなCSSを書いていたのだけれど、IE6だと期待通りの動作とならない。(FireFox2だと正しく動作する)。 span.x {…

指定URLのはてなブックマーク件数を取得するサンプル

はてなブックマーク件数取得APIを使って取得できます。XMLRPCを使ってさくっとアクセス。 require 'xmlrpc/client' client = XMLRPC::Client.new2("http://b.hatena.ne.jp/xmlrpc") result = client.call("bookmark.getCount", "http://d.hatena.ne.jp/", # …

テストクラスをjarに固めてdeployする

以下の設定をpom.xmlに書いておくと、「mvn install」とかでテスト用のクラス(「src/test」以下のソース)を固めたjarが作成され、deployされるようになります。 <project> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin></plugins></project>

Scala+SpecsでMavenなJavaプロジェクトのテストを書く

Specsは、Scalaで使えるBDDなテスティングフレームワークです。JUnit4アダプタが提供されており、Mavenに組み込んで使うことが可能!ということで、MavenなJavaプロジェクトのテストをScala+Specsで書く手順をまとめてみます。 といっても基本的には、 pom.xm…