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

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

ファイルパスからディレクトリパス部分を取り出す。

シェルスクリプトでパス文字列からファイル名/ディレクトリ名/拡張子を抽出するより。bashの「変数展開」を使うと、ファイルパスからディレクトリパス部分をさくっと取り出せます。具体例は以下。 $ path=aaa/bbb/ccc.bin $ echo ${path%/*} aaa/bbb 変数…

javaclassでCode属性とStackMapTable属性の解析をサポート

javaclassにCode属性とStackMapTable属性の解析機能を実装してコミットしましたよ。 →GitHub - unageanu/javaclass以下はjavaclassを使ってクラスの解析結果を表示する例です。Code属性の解析をサポートしたので(昔と違って)javapに近い結果が得られるように…

Java6での修正が反映されたクラスファイル仕様書の在処

Java6での修正が反映されたクラスファイル仕様書は以下から取得できますよ。 →JSR-000202 Java Class File Specification Updateちなみに、Java1.4→Java5の変更はこちら。いやー、javaclassの単体テストが通らないなー、と思っていたらJava6で追加された属性…

デモトレードに対応させてみた

体調不良につき今日は有休なのですが、2-3時間昼寝したらだいぶ回復したので少しだけコーディング。clickclient_scrapをデモトレードでの取引に対応させてみました。といっても アクセス先URLをデモサイトの方に変更。 デモサイトのほうはログイン後のJSでの…

今日の「お前は何をやっているんだ?」

今日見つけたコード。 class Test class << self def foo puts "foo" end end end ↓と一緒と考えて意味を理解。特異メソッドを定義しているわけですねー。「def self.」とか「module_function」を使う以外にもこういう方法があるのか。ふむ。 class Test; en…

罫線を使ったツリーを書く為のユーティリティ

微妙に汎用的に使える(かもしれない)、罫線を使ったツリーを書く為のユーティリティができあがったので公開。実装とサンプルは以下です。 #罫線を使ったツリーを書く為のユーティリティ class Node def initialize( name ) @name = name @children = [] yiel…

”-rwxrwxrwx”形式のパーミッション文字列を8進数の値に変換する関数

"-rwxrwxrwx"形式のパーミッション文字列を8進数の値に変換する関数を書きました。 # "-rwxrwxrwx"形式の文字列を8進数の値に変換する。 def to_oct( permition ) raise "illegal format" unless permition =~ /[\-dbclps]([\-r])([\-w])([\-sxS])([\-r])([\…

今日知ったハック

CSS

「* + html ...」というセレクタがふんだんに使われていて、なんだこれ?と思ったらハックでした。→スター + ハックIEにだけ適用したいCSSを定義する時に使うらしい。以下はIEでのみ文字が赤で表示されるサンプルです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </meta></head></html>

サイトの仕様変更に対応したclickclient_scrap & jiji をリリース

「サイトの仕様変更により、成り行き注文ができなくなっている」というご報告と修正パッチを頂いたので( ありがとうございます!助かります。 )、それを適用したclickclient_scrapをリリースしました。→Github - unageanu / clickclient_scrap →Gemcutter.org…

flyweightパターンを久々に見た

とあるコードを読んでいたら、flyweightパターンを使っている箇所を発見。 import java.util.HashMap; import java.util.Map; /** * IDファクトリ */ public interface IDFactory { /** * 文字列からIDを生成します。 * @param src 文字列 * @return ID */ I…

登録済みインデックスを確認する。

psqlコマンド「\di」で登録済みのインデックス一覧を確認できます。 $ psql test test=# \di List of relations Schema | Name | Type | Owner | Table --------+-----------------------+-------+----------+-------- public | test01_str_idx | index | po…

文書一覧を取得する

「/_all_docs」をGETすると、データベース内の文書一覧を取得できます。 取得できるのは、文書のIDとリビジョンIDです。 内部的にはViewになっているらしく、ViewのQuerying Optionsも使えます。 たとえば、count( 最新版ではlimit )オプションを指定して取…

SBI証券での取引に対応したjiji-1.2.6をリリース

SBI証券での取引に対応したjiji-1.2.6をリリースしました。 →Github - unageanu/jiji →Gemcutter.org - jiji不具合などありましたら、例によってこのブログのコメントまたはメールにてご報告ください。 前バージョンからの更新手順 以下のコマンドを実行して…

関数つきインデックス

「テーブルの値を関数で評価して、その結果で絞り込む」といった場合に、関数つきインデックスを作成しておくと高速にSQLを実行できます。例えば、以下のような文字列型のカラムを持つテーブルがあったとして、 test=# select * from test01 limit 10; str -…

リモートデスクトップでローカルディスクをリモートにマウントする手順

今日まで知らなかった訳ですが、リモートデスクトップにはローカルディスクをリモートにマウントしてさくっと利用する機能があったりします。ディスクを共有するための設定は以下の通り。 リモートデスクトップを起動。 [オプション]ボタンを押す [ローカル…

SQLの処理時間を計測する

日本PostgreSQLユーザ会 - SQLチューニング(1) 〜 実行時間の計測より。psqlで実行したSQL文の処理時間を出力するには、「\timing」を使います。 psqlを起動して、 おもむろに「\timing」! SQLを実行すると、結果の後に「Time: ms」という感じで処理時間が出…

修飾子の優先順位

if修飾子とrescue修飾子を両方つけるとどうなるか、という話。以下のコードを実行すると、 puts "aaa" if true rescue puts "xxx" puts "bbb" if false rescue puts "xxx" raise "aaa" if true rescue puts "xxx" raise "bbb" if false rescue puts "xxx" pu…

TAI64N形式の文字列をTimeに変換する関数

ログを抽出する際にtai64nlocalするのを忘れたため、rubyで解析する羽目に。ということで、いろいろ手抜きしつつTAI64N形式の文字列をTimeに変換する関数を書きました。 「@40000000」ではじまる文字列のみ解析可能。(つまり1970-1-1以前の日時は解析できま…

CouchDBにRubyでアクセスしてみる

RubyでCouchDBにアクセスし、データの登録や取得を行うサンプルです。 CouchDBのインターフェイスはHTTPになっていて、GETやPUTで値の取得や登録ができます。 Ruby用のアクセスライブラリもいくつかあるようですが、HTTPでアクセスするだけならhttpclientで…

Ubuntu 9.0.4にCouchDBをインストールする手順

Ubuntu 9.0.4にCouchDBをインストールする手順です。 インストール aptで。 $ sudo apt-get install couchdbバージョンがちと古いな(0.8.0)。まぁいいか。 起動 $ sudo /etc/init.d/couchdb start 接続してみる。 インストール先ホストから、ブラウザで以下…

DeamonToolsで管理しているTomcatのGCログを別のファイルに出力する

DeamonToolsで管理しているTomcatさんのGCログを別のファイルに出力する設定手順です。普通に出力してしまうと他のログに紛れて流れてしまう可能性が高いので、その防止に。あとでログを解析してデータを取り出すのも面倒だしね。ということで、具体的には「…

OpenSTAのTimers.csvを解析するクラス

OpenSTAの「Timer List」-「Export」で出力できるTimers.csvを解析するクラスを書きました。 処理時間をTimerごとに集計し、以下の値を算出します。 平均 最大 最小 スループット 計測期間のうち、前後の指定された期間のログをカットする機能付きです。 req…

Javaのopcodeとパラメータの表

Javaのopcodeとそのパラメータの表です。Java Virtual Machine Online Instruction Referenceにて公開されている情報をありがたく再編集させて頂きました。 名前 説明 aaload retrieve object reference from array [u1] aaload (0x32) aastore store object…

com.sun.xml.internal.ws.util.ByteArrayDataSourceでコンパイルエラーになる件の続報

この間のコンパイルエラーについて続報。SUNのBug Databaseに情報があった。 →Bug Database - Bug ID: 6778491 javac cannot find all classes from rt.jar やはり「内部クラスを使うんじゃねぇ」という話らしい。 クラスの使えるor使えない制御は「ct.sym」…

成行で決済するサンプル

成り行きでの決済機能を実装しました。 →GitHub - unageanu/sbiclient以下は、すべての建玉を成行決済する例です。 $: << "../lib" require 'sbiclient' require 'common' # ログイン c = SBIClient::Client.new c.fx_session( USER, PASS, ORDER_PASS ) {|s…

形態素解析を行うサンプル

Yahoo! Developer APIの形態素解析サービスを利用して、テキストの形態素解析を行うサンプルです。昨日の特徴語抽出クラスに機能を追加する感じで作成。 例によって 依存モジュールとして「httpclient」が必要です。 また、実行時には、Yahoo! Developer API…

特徴語抽出を行うサンプル

Yahoo! Developer APIのキーフレーズ抽出サービスを利用して、テキストから特徴語を抽出するサンプルです。といってもhttpclientでサービスにアクセスして結果を解析し返すだけですが・・・。 依存モジュールとして「httpclient」が必要です。 また、実行時…

ランダムな文字列を生成する関数

データを全部「aaaa...」で作っていたら圧縮率が大変よろしくて試験にならんので、ランダムな文字列を生成する関数を書きました。 「a-zA-Z0-9」の文字をランダムに組み合わせて 指定された長さの文字列を生成します。 /** * ランダムな文字列を作成する。 *…

今日見つけた大技

PostgreSQL 8 - バックアップとリストアより。PostgreSQLではpg_dumpとpsqlを使ってホスト間でのDBのダイレクトコピーができるらしい。 $ pg_dump -h <ダンプ元ホスト> <DB名> | psql -h <ダンプ先ホスト> <DB名>今度試す!</db名></db名>

リモートからの接続を許可する設定手順

Ubuntu 9.0.4,PostgreSQL8.3でリモートからDBへの接続を許可するための設定手順です。編集が必要な箇所は以下の2つ。 /etc/postgresql/8.3/main/postgresql.conf /etc/postgresql/8.3/main/pg_hda.conf 1.postgresql.conf の編集 「/etc/postgresql/8.3/main…