シェルスクリプトでパス文字列からファイル名/ディレクトリ名/拡張子を抽出するより。bashの「変数展開」を使うと、ファイルパスからディレクトリパス部分をさくっと取り出せます。具体例は以下。 $ path=aaa/bbb/ccc.bin $ echo ${path%/*} aaa/bbb 変数…
javaclassにCode属性とStackMapTable属性の解析機能を実装してコミットしましたよ。 →GitHub - unageanu/javaclass以下はjavaclassを使ってクラスの解析結果を表示する例です。Code属性の解析をサポートしたので(昔と違って)javapに近い結果が得られるように…
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進数の値に変換する。 def to_oct( permition ) raise "illegal format" unless permition =~ /[\-dbclps]([\-r])([\-w])([\-sxS])([\-r])([\…
「* + html ...」というセレクタがふんだんに使われていて、なんだこれ?と思ったらハックでした。→スター + ハックIEにだけ適用したいCSSを定義する時に使うらしい。以下はIEでのみ文字が赤で表示されるサンプルです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </meta></head></html>
「サイトの仕様変更により、成り行き注文ができなくなっている」というご報告と修正パッチを頂いたので( ありがとうございます!助かります。 )、それを適用したclickclient_scrapをリリースしました。→Github - unageanu / clickclient_scrap →Gemcutter.org…
とあるコードを読んでいたら、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をリリースしました。 →Github - unageanu/jiji →Gemcutter.org - jiji不具合などありましたら、例によってこのブログのコメントまたはメールにてご報告ください。 前バージョンからの更新手順 以下のコマンドを実行して…
「テーブルの値を関数で評価して、その結果で絞り込む」といった場合に、関数つきインデックスを作成しておくと高速にSQLを実行できます。例えば、以下のような文字列型のカラムを持つテーブルがあったとして、 test=# select * from test01 limit 10; str -…
今日まで知らなかった訳ですが、リモートデスクトップにはローカルディスクをリモートにマウントしてさくっと利用する機能があったりします。ディスクを共有するための設定は以下の通り。 リモートデスクトップを起動。 [オプション]ボタンを押す [ローカル…
日本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…
ログを抽出する際にtai64nlocalするのを忘れたため、rubyで解析する羽目に。ということで、いろいろ手抜きしつつTAI64N形式の文字列をTimeに変換する関数を書きました。 「@40000000」ではじまる文字列のみ解析可能。(つまり1970-1-1以前の日時は解析できま…
RubyでCouchDBにアクセスし、データの登録や取得を行うサンプルです。 CouchDBのインターフェイスはHTTPになっていて、GETやPUTで値の取得や登録ができます。 Ruby用のアクセスライブラリもいくつかあるようですが、HTTPでアクセスするだけならhttpclientで…
Ubuntu 9.0.4にCouchDBをインストールする手順です。 インストール aptで。 $ sudo apt-get install couchdbバージョンがちと古いな(0.8.0)。まぁいいか。 起動 $ sudo /etc/init.d/couchdb start 接続してみる。 インストール先ホストから、ブラウザで以下…
DeamonToolsで管理しているTomcatさんのGCログを別のファイルに出力する設定手順です。普通に出力してしまうと他のログに紛れて流れてしまう可能性が高いので、その防止に。あとでログを解析してデータを取り出すのも面倒だしね。ということで、具体的には「…
OpenSTAの「Timer List」-「Export」で出力できるTimers.csvを解析するクラスを書きました。 処理時間をTimerごとに集計し、以下の値を算出します。 平均 最大 最小 スループット 計測期間のうち、前後の指定された期間のログをカットする機能付きです。 req…
Javaのopcodeとそのパラメータの表です。Java Virtual Machine Online Instruction Referenceにて公開されている情報をありがたく再編集させて頂きました。 名前 説明 aaload retrieve object reference from array [u1] aaload (0x32) aastore store object…
この間のコンパイルエラーについて続報。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…