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

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

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>…

今日気づいた勘違い

Rubyのクラス変数ってクラスとそのサブクラスでも共有されるんですね・・・。 # 親クラス class Parent # クラス変数 @@class_var = "parent" def class_var @@class_var end end # 派生クラス1 class SubClass < Parent @@class_var = "child" end # 派生ク…

一覧の検索条件を生成するユーティリティ

データストアからモデル一覧を取得する際の検索条件を生成するユーティリティを書いてみました。以下のような感じで使えます。 // ユーティリティをstaticインポート import static Expressions.*; .... // 名前が"mii"のKittenオブジェクト一覧を取得 List<Kitten> </kitten>…

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

追記:2010-05-01 以下は1.3.0の頃のテスト手順です。最新のSDKではテストケースの書き方が変わっています。1.3.3でのテスト手順はこちらを参照。 いまさらですが、データストアの単体テストを書く手順のメモです。単体テストでは、 ローカルでGoogle App Eng…

find -exec

「find -exec {} \;」で、findでヒットしたオブジェクトを引数にして、任意のコマンドを実行できたりします。以下は、/foo配下のfolderのパーミッションだけを755に変更する例です。 $ find /foo -type d -exec chmod 755 {} \;「-exec」に続くパラメータの…

指定パッケージ内のクラス一覧を取得するサンプル

1.6より追加されたStandardJavaFileManagerを使用して、指定パッケージ内のクラス一覧を取得するサンプルです。 import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileManager; import javax.tools.JavaFi…

JDK6のソース取得先

JDK6のソースも、Sunのサイトからダウンロードできます。 →Java(TM) Platform, Standard Edition 6u18 Source Snapshot Releases 各種Javaクラスのソースは、真ん中あたりのjdk-6u18-ea-src-b05-jrl-18_nov_2009.jarに含まれています。jar形式になっています…

Keyシリアライザ

Enumに続いて、com.google.appengine.api.datastore.Keyのシリアライザも実装。 import org.jabsorb.serializer.AbstractSerializer; import org.jabsorb.serializer.MarshallException; import org.jabsorb.serializer.ObjectMatch; import org.jabsorb.ser…

Enumシリアライザ

jabsorbはデフォルトではEnumをシリアライズ/デシリアライズできないみたいなので、ドキュメントの「7.2. Implementing a Serializer」と添付のシリアライザクラスのソースを参考にカスタムシリアライザを作成。以下の実装でよいはず。 import org.jabsorb.s…

jabsorbのJSON-RPCインターフェイスにRubyで接続してみる

昨日、jabsorbで作成したJSON-RPCインターフェイスにRubyで接続してみる例です。仕様どおりのJSON RPCなので、以下のような感じでさくっと接続できます。 #!/usr/bin/ruby -- require 'rubygems' require 'uri' require 'httpclient' require 'json/lexer' r…

jabsorbでJSON-RPCインターフェイスを作る手順

JSON-RPCライブラリのjabsorbを利用して、Google App Engine上で任意のJavaクラスのメソッドをJSON-RPCで公開する手順です。jabsorbはServletで提供されていて、Google App Engine上でもさくっと動作しましたよ。 概要 必要なモジュールをダウンロードして、…

カレンダー壁紙2010

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

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

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

カレンダー壁紙2010

年末特別企画! ベストねこ写真2009

恒例の年末特別企画! Miiで「今年もっとも星がついたねこ写真ベスト100」まとめです!以下のリンクよりどうぞ。→かわいいねこの写真を表示するWebアプリ「Mii」例によって、個人的にぐっときたねこ写真をいくつかご紹介。 Chaton N°2, 2eme essai photographe…

1対多の所有関係にあるデータを記録するサンプル

Google App EngineのDatastoreで1対多の所有関係にあるデータを相互参照できる形で記録するサンプルです。 1対多 1つの親が、複数の子を持つような関係です。 親(Parent.class) ├子1(Child.class) ├子2(Child.class) └子3(Child.class) 所有関係 オブジェク…

ファイルorディレクトリのパーミッションと所有者をチェックする関数

ファイルorディレクトリの存在とパーミッション、所有者をチェックする関数を書いたのだが、 # ファイル/ディレクトリの存在とパーミッション、所有者をチェックする # useage: check <ファイルパス> <8進数表記のアクセス権> <所有者> <グループ> check(){ …

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

またサイトの仕様が変わったらしくレート一覧の取得ができなくなっていたので、変更後のサイトに対応したclickclient_scrap-0.1.9をリリースしておきました。→Github - unageanu / clickclient_scrap →Gemcutter.org - clickclient_scrapあと、これは仕様変…

Guiceのインターセプタってprivateメソッドには適用できないんだっけ?

privateメソッドにインターセプタを適用したはずが、どうもうまく設定できていない風の動作になったのでちょっと調査。ドキュメントのAOPのLimitationsのところに記述があり、適用対象のメソッド(を持つクラス)は以下の条件を満たす必要があるとのことです。…

トランザクションインターセプタ

Google App Engineのデータストア用にトランザクションインターセプタを作成。もはやお約束ですなー。 package test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; impo…

クラスファイルを比較するスクリプト

Javaのクラスファイルを比較するスクリプトを作りました。 引数で指定したディレクトリx2内のクラスファイルを再帰的に探索し、 javapで解析。 解析結果をdiffで比較する。 というものです。 #!/bin/bash javap_r() { mkdir $1 for file in `find $2 -name "…