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

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

JavaScript

画像を分割して保存するサンプル

画像編集は何気にAdobe Fireworks派だったりするわけです。比較的リーズナブルな上、Web向けの画像編集に必要な機能が一通りそろっていてUIも使いやすい。さらに、なんといってもJavaScriptでマクロを書けたりするのが便利だよね!(いやPhotoshopとかでも使え…

今日のはまり道

Yahoo! UI Library のTreeViewで以下の条件を満たす場合、クリックイベントの引数で渡されてくるeventの「ctrlKey」プロパティが参照できなくなります。 クリックイベントとダブルクリックイベントの両方にリスナが登録されている。 ブラウザがIE IE7+Yahoo!…

JavaScriptでは「||=」は使えないのか・・・。

いまさらだけど、JavaScriptでは「||=」は使えないのか・・・。「+=」は使えるのに・・・。 // fooがnullとかundefinedなら"foo"を代入 foo ||= "foo"; // エラー! ↑はこう書くしかないか。ぬー。 foo = foo || "foo";

クリックの種類を判定するユーティリティ

普通のクリックとダブルクリック、および名前変更のときに使う遅めのダブルクリック?(「かち、かち」っていうやつね)を判定するユーティリティを書いてみました。利用例は以下の通り。ちょい汎用的な形にしておいたので、ダブルクリック以外に三三七拍子とか…

依存関係の循環エラー抑制

ContainerJSでは、コンポーネントの依存関係が循環している場合でも単純な循環であればエラーとせずに依存関係を解決できたりします。たとえば以下のようなパターンであれば問題なく解決可能です。 function main() { // 循環参照するコンポーネントも以下の…

Ajax.Response.responseJSON

prototype.jsのAJAX機能には、レスポンスボティがJSONの場合、自動で解析を行う機能があります。 AJAXリクエストのオプションで特に禁止されておらず(デフォルトは「実行する」)、レスポンスのContent-Typeが「application/json」の場合に自動解析が行われ、…

今日の罠

prototype.jsを使うとrubyライクな便利メソッドが追加されるのはいいんだけど、ついつい↓こんな感じで書いて満足してしまうのが問題だな。 var array = [1,2,3,4,5]; // 偶数を探したい。 var odds = array.findAll( function(i){ i%2 == 0 }); // ↑しかし、…

今日の「これは読めん」

jQueryのif文は↓こんな感じで書かれていて、個人的にかなり読みづらい。 if ( value ) <処理>; // ... // コメント // ... else { <処理>; <処理>; } 上から読んだときに、脳内では最初の2行目でif文が終わっているので、次のelseでなんだこれ?となって手戻…

Hashが空か判定したい

JavaScriptのオブジェクトはHashのように使えますが、素のままだと空かどうかを判定するのも一苦労なんだよなー。一行で書くとちょい長いので、関数が必要な感じ。 /** * ハッシュが空かどうか判定する。 */ function isEmpty(hash) { for ( var i in hash )…

get,post

jQueryでは、post()やget()などのHTTP通信を行うためのAPIも提供されています。 対象を指定してどうこうする機能ではないので、jQueryの関数として定義されています。 「$.post(...)」のような形で利用できます。 簡単にGETやPOSTリクエストを発行できるpost…

Effectsの簡単なサンプル

Effectsとして、表示/非表示の切り替えや移動などのアニメーションをさくっと実装するための機能が提供されています。様々なエフェクトがAPIとして用意されていますが、基本的に以下の引数を指定できるようになっています。 第一引数 .. アニメーションする…

end()

end()を使うと、直前の操作対象変更操作( add,filterなどTraversingのAPI呼び出し )をキャンセルできます。利用例は以下。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./jquery-1.3.2.js"></script> <script type="text/javascript"> $(function(){ $("li") // li要素を全て選択 .css({ listS…</meta></head></html>

Traversingを使う簡単なサンプル

TraversingのAPIを使うと、 セレクタで選択した要素の一覧をさらに絞り込む セレクタで選択した要素の一覧を統合する といった操作が可能です。機能的にはセレクタの指定を工夫することで実現できそうなものが多いですが、セレクタでがんばりすぎると後で読…

html()とtext()

jQueryで特定の要素の中身を編集するにはhtml(val) または text(val) を使用します。 html(val) は指定された文字列を、サニタイズなしでそのままコンテンツとします。 text(val) の方は、文字列をサニタイズして設定します。 また、要素の中身を参照するメ…

イベントをハンドリングする

jQuery - EventsのAPIを使って、エレメントにイベントハンドラを登録することができます。 「click」とか「mouseenter」みたいなイベント名に対応するメソッドがあるので、引数としてイベントハンドラとする関数を指定してそれを呼び出せばOK。 すでに使って…

セレクタ

jQueryでは、操作対象となる要素を指定するためのパラメータをセレクタと呼びます。以下のような呼び出しの $(selector).method()「selector」部分がそれです。値としては以下が指定可能です。 CSS形式のセレクタ 「#id」とか「.class」のようなもの。 指定…

jQueryを触ってみる

いまさらながらjQueryを触ってみようかと。ちょっと気にはなっていたしねー。ということで、とりあえずjQueryのサイトからリンクされているこことここを流し読みして以下を理解。 jQueryは、エレメントを選択して、内容やスタイルを変更する操作をさくっと行…

StyleSheet Utilityを使ってCSS値を文字列に変換する

YAHOO.util.StyleSheet.toCssTextでCSSを示すハッシュをCSSの文字列に変換できます。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js" ></script> </meta></head></html>

StyleSheet Utilityを使ってCSSを動的に作成/更新するサンプル

Yahoo! UI Library の StyleSheet Utilityを使うと、JavaScriptで動的にCSSを作成したり更新したりできます。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js" ></script> </meta></head></html>

Webベースのソースコードエディタ「EditArea」を使ってみた

EditAreaはJavaScriptで書かれたWebベースのソースコードエディタライブラリです。これを使うと、以下に示す機能(EditArea - Aboutより抜粋)を持つリッチなコードエディタを、Webサイトにさくっと追加できます。 リアルタイム シンタックスハイライト PHP, C…

before,after,before_all,after_all

JSSpecでは、各example実行前の準備や後始末を行う関数としてbefore,after,before_all,after_allが使えます。xUnitでのsetUpやtearDownに相当するものですな。各関数の説明は以下の通り。 before 各exampleの前に、毎回実行されます。 after 各exampleの後に…

should_beのポイントと注意点

JSSpecで使えるshould_beを使っていろいろなオブジェクトを比較した場合の動作を確認したので、ポイントや注意点をまとめておきます。 オブジェクトは「属性が一致するか?」で評価される模様。 「{}」で作成したものだけでなく、「new」で作成されたオブジェ…

JSSpecを使ってみる

JavaScriptのテストをそろそろちゃんとしようかな、と思ってテスティングフレームワークを検討中。JavaScriptのxUnit系フレームワークにはあんまりいいのがなかった記憶があるので、BDD系で探してみるとJSSpecがヒット。なかなか良さそうなのでちょっと使っ…

ContainerJSに自動インジェクション機能を追加

WikipediaのDependency injectionのページに掲載されてちょっとやる気が出たので、ContainerJSに自動インジェクション機能を追加し、ver 0.4.0としてリリースしました。→Google Code - ContainerJS自動インジェクションは、依存性注入が必要なプロパティに規…

周りでjQueryが流行ってきた

とある製品のWebUIがAJAXな感じになっていたので、どれどれと思ってソースを拝見。 $(foo) とかあって、「お、prototype.jsかな」と思ったらjQueryだった・・・。そのプロジェクトに限らず、最近はjQueryが流行ってる気がするので、そろそろ勉強し始めようか…

String#strip

JavaScriptにはString#stripやString#trim的なものはないのかー、と思ったらprototype.jsにありました。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./prototype.js"></script> <script type="text/javascript" > function main() { // stripで文字列の先頭と末尾の空白文字列を削除。 var …</meta></head></html>

document.designModeで文書を編集可にする

designModeを'on'にするとiframe内の文書を編集できるようになります。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> </head></html>

非表示の要素にテーブルを構築すると、カラムがリサイズできなくなる

Yahoo! UI Library - Datatableを使ったテーブルで、同じように初期化しているのにカラムのリサイズができるものとできないものがあるという不具合に遭遇。FireFox3で確認。IE7では再現しません。 原因 非表示のエレメントにテーブルを作成→後から表示、とす…

動かないと思いきや、ちゃんと動くJavaScriptコード

昨日のコードは動作しませんが、以下のコードはちゃんと動作します。 Array.prototype.each = function( proc, self ) { for ( var i=0; i<this.length; i++ ) proc.call( self, this[i], i, this ); } function main() { var stdout = document.getElementById( "out" ); ["mii","tora","shiro"].each( function(item) { stdout.innerHTML += item + "<br/>…</this.length;>

動きそうで動かないJavaScriptコード

Number.prototype.times = function( proc, self ) { for ( var i=0; i<this; i++ ) proc.call( self, i ); } ... var stdout = document.getElementById( "out" ); 3.times( function(i) { stdout.innerHTML += i + "<br/>"; }); 実行結果はこちらたまにやっては、ん、ってなるんだよね。ちなみに、こうすれば動作します。 var stdout = document.getElementById( "out…</this;>