2009-09-01から1ヶ月間の記事一覧
表示範囲内に収まりきらない単語がある場合に、単語の途中でも改行させるようにする関数です。 アルファベットの前にゼロ幅スペース("")を挿入して、改行できるようにします。 /** * アルファベットの前にゼロ幅スペース("​")を挿入して、 * 単語中…
今日見つけたイディオムです。値をbooleanに変換します。 !!<値> 出典はJSSpec。実行結果は以下を参照ください。 value_of( !!undefined ).should_be( false ); value_of( !!null ).should_be( false ); value_of( !!0 ).should_be( false ); value_of( !!""…
value_of( parseInt("017") ).should_be(15); value_of( Number("017") ).should_be(17); になります。微妙に動作が違う(parseIntは"0"で始る文字列が指定された場合、8進数として解析する)ので注意。このため、以下はIEだとエラー、FireFox3では0になります…
Google Map API を利用してGoogle Street Viewを表示するサンプルです。必要な作業は以下のとおり。 Google Map のJavaScriptライブラリをインポート Google MapのAPIキーを取得して、keyの値に設定する必要があります。 Street Viewを表示するコンテナ要素…
ラジオボタンの選択状態に応じてSelectの項目を変えようと以下のように書いたのだけど、IEだと期待通り動作しない。 $("#radio1").change( function() { $("#select").empty() .append( "<option>テスト</option>" ) ... 略 ... }); $("#radio2").change( function() { $("#se…
「$("ラジオボタンを示すセレクタ>").val([ラジオボタンのvalue値>])」で変更できます。引数のvalue値は配列で指定しないと効果がないみたいなので注意。 <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"> $(document).ready(function(){ // リンク…</meta></head></html>
「検索画面を別ウインドウで開く」ということで以下のように書いていたら、IEではリンク先がサイドバーに表示される罠。 <a href="..略.." target="_search">検索画面へ</a> 旧バージョンのIEだと「_search」は特別な意味を持つとのことです。詳しくは以下を参照。 MSDN - TARGET Attribute ぬー。
:focus疑似クラスで、コントロールにフォーカスがある場合のスタイルを指定可能です。 「:visited」などの仲間で、同じようにセレクタで使えます。 注:残念ながらIE6以下では未対応のため使えません。 どうしてもという場合は、ずっと工事中 - IEで:focus擬…
なんだ、findはあるのか。 > Google Collections import static com.google.common.collect.Iterables.*; import static com.google.common.collect.Sets.*; import static com.google.common.base.Predicates.*; ... // セット Set<String> set = newHashSet("aaa",</string>…
クリック証券で提供されているヒストリカルデータをダウンロードして、jijiで使えるCSV形式にコンバートするツールを作ってみました。 使い方 $ ruby rate_data_importer.rb <クリック証券のユーザーID> <パスワード> <取り込む年> <開始月> <終了月>具体例…
たまに発生する以下のようなコードですが、 map = {} ... list = map[str] #ハッシュからリストを取得 if list == nil # リストが未作成であれば、 list = [] # リストを作成してハッシュに積む map[str] = list end list << number # リストに値を追加。 こ…
Google Collectionsを使ったmapとinjectを作ってみました。 @SuppressWarnings("unchecked") static <IN, OUT, X extends Collection<OUT>> X map( Collection<IN> collection, Function<IN,OUT> f ) { try { X out = (X) collection.getClass().newInstance(); for ( IN i : collection ) out.add( f.apply(</in,out></in></in,>…
Google Collectionsなるものを発見。APIを眺めていて、Sets.filterユーティリティが個人的にちょいぐっときたのでサンプルを書いてみました。 import static com.google.common.base.Predicates.*; import static com.google.common.collect.Sets.*; .... //…
JSPとか使ったことないからわかんないよー。今日はまったのは以下のエラー。Tomcatは起動するのだがjspを実行すると発生する。 2009-09-17,12:39:05,JST ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/xxxx].[jsp]] (tomcat-http…
"ja"や"en"などをキーとして各言語に対応する文字列を格納するMapがあって、そこから指定されたロケールにマッチする文字列を取り出して使う、ということなのだけど、ResourceBundleの取得先特定ってvariantとかも考慮してたよなー。一応その辺と仕様をあわ…
コマンドプロンプトから実行したプログラムのリターンコードを確認したい場合は、以下でOKです。 $ <プログラムを実行> $ echo %ErrorLevel%リダイレクトとか、実行結果を変数に代入とかいろいろ迷走してしまった・・。orz.
クリック証券で提供されている、為替レートのヒストリカルデータを一括取得するスクリプトを書いてみました。クリック証券にアクセスしてデータのzipアーカイブを取得し、指定ディレクトリに展開します。 注意事項 ダウンロードするにはクリック証券のアカウ…
細かい機能追加を行ったjiji-1.2.4をリリースしました。 →Github - unageanu/jiji 前バージョンからの変更点は以下です。 取引結果の約定日時/決済日時から、その時点のチャートにジャンプする機能を追加しました。 チャート上で取引の詳細を表示する際に、…
rubyzipを使ってzipアーカイブを展開するサンプルです。 require 'rubygems' require 'zip/zip' #===zipファイルを展開する。 #zip:: zipファイル #dest:: 展開先ディレクトリ def extract( zip, dest ) FileUtils.makedirs(dest) Zip::ZipFile.foreach(zip)…
次はVelocityなのです。ということで、とりあえずHello World!的なものを書いてみました。 // Velocityを初期化 Velocity.init(); // テンプレートに渡す値を保持するコンテキストオブジェクトを作成 VelocityContext context = new VelocityContext(); cont…
「ロックしてから処理をする機構を、タイプセーフな感じで」ということで、処理のインターフェイスとロツクメソッドを定義してみたわけですが。 /** * 処理 * @param <X> 戻り値の型 * @param <E1> 例外の型1 * @param <E2> 例外の型2 * @param <E3> 例外の型3 * @param <E4> 例</e4></e3></e2></e1></x>…
jQueryのgetJSON()ではJSONの解析がwindow.eval()で行なわれてしまいますが、プラグインとして別途提供されているjquery-jsonを使うとJSONを安全に解析できます。 プラグインをインポートすると、「$.evalJSON」と「$.secureEvalJSON」の2つのJSON解析APIが…
jQueryでgetJSON()とかするとレスポンスをJSON形式で返してくれますが、このときに使用されるJSON解析ロジックは「window.eval()」だったりします。(jQuery1.3.2で確認) たとえば、以下のようなjsonデータをgetJSON()すると、JavaScriptとして実行されてしま…
jijiがサポートする証券会社をもうひとつくらい増やそうかな、ということでSBI証券のスクレイピングクライアントに着手。ログイン・ログアウトとレート情報取得まで実装しました。→GitHub - unageanu/sbiclient 例によってGitHubで公開。gemの作成などは未で…
jijiにバックテストを登録&実行して、結果を取得するスクリプトのサンプルです。 デモサイトに接続して、 パラメータの違う移動平均エージェントを2つ実行するバックテストを作成。 実行終了を待ち、結果を出力します。 いろいろいけてないところを隠蔽する…
エージェントのバックテストでは、各種パラメータの組み合わせをいろいろと変えて動作を調整したい場合があります。(カーブフィティングとかいうやつてずね。)jijiでは複数のエージェントを一括でテスト可能ですが、UIからちまちま登録するのはなかなかメン…
利用可能なフォントのサンプル画像を作成するスクリプトを書いてみました。 システムで利用可能なフォントの一覧を取得し、 各フォントで、指定された文字列を描画した画像を出力します。 require 'rubygems' require 'RMagick' size = 24 #サイズ color = "…
Magick#fontsで利用可能なフォントの一覧を取得できます。 require 'rubygems' require 'RMagick' #利用可能なフォントの一覧を表示する。 Magick.fonts {|f| puts f.name } 実行結果です。 AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi AvantGa…
この前作ったTupleですが、TrioとかQuartetを使っていると、型パラメータが長くなってしまって鬱陶しい時があります。 List<Trio<String,Number,String>> kittens = new ArrayList<Trio<String,Number,String>>(); kittens.add( new Trio<String,Number,String>( "mii", 1, "mike" ) ); kittens.add( new Trio<String,Number,String>( "kuro", 0, "egyptian" ) );</string,number,string></string,number,string></trio<string,number,string></trio<string,number,string>…
画像をHTMLテーブルに変換するスクリプトを書いてみました。特に使い道はありませんが・・・。 require 'rubygems' require 'RMagick' require 'erb' # 画像をテーブルに変換するスクリプト。 imgs = Magick::Image.read("./kitten.jpg") img = imgs.first e…