2009-12-01から1ヶ月間の記事一覧
恒例の年末特別企画! Miiで「今年もっとも星がついたねこ写真ベスト100」まとめです!以下のリンクよりどうぞ。→かわいいねこの写真を表示するWebアプリ「Mii」例によって、個人的にぐっときたねこ写真をいくつかご紹介。 Chaton N°2, 2eme essai photographe…
Google App EngineのDatastoreで1対多の所有関係にあるデータを相互参照できる形で記録するサンプルです。 1対多 1つの親が、複数の子を持つような関係です。 親(Parent.class) ├子1(Child.class) ├子2(Child.class) └子3(Child.class) 所有関係 オブジェク…
ファイルorディレクトリの存在とパーミッション、所有者をチェックする関数を書いたのだが、 # ファイル/ディレクトリの存在とパーミッション、所有者をチェックする # useage: check <ファイルパス> <8進数表記のアクセス権> <所有者> <グループ> check(){ …
またサイトの仕様が変わったらしくレート一覧の取得ができなくなっていたので、変更後のサイトに対応したclickclient_scrap-0.1.9をリリースしておきました。→Github - unageanu / clickclient_scrap →Gemcutter.org - clickclient_scrapあと、これは仕様変…
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 "…
シェルスクリプトでパス文字列からファイル名/ディレクトリ名/拡張子を抽出するより。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…