2005-07-01から1ヶ月間の記事一覧

CD-ROMなどのイメージファイルの作成法

/dev/cdrom から読み取れるデータをファイル hoge.iso に格納。 # dd if=/dev/cdrom of=hoge.isoデバイスから読み取る代わりに、hoge.isoから読み取る。 # mount -t iso9660 -o loop hoge.iso /mnt/cdrom

頻度計算のための接尾辞配列ライブラリ

固定長ngramの頻度 接尾辞配列を文字列形式で表示 [2005-07-21](接尾辞の接頭辞を表示) 頻度が高く、長い文字列から順に表示 Longest Common Prefixにもとづいたクラス分けのうちの最長文字列

ベストのbigram連結から、Nベスト連結へ

1回連結するたびにSAを更新するのは無駄。 どうせならいくつかのbigramについて連結してから更新したほうが効率的。 ということで、とりあえず、もっとも高い頻度から50%以内の頻度を持つbigramを1ステップで連結するようにした。 同時に、bigram連結のチェ…

CSS Dencitie

http://www6.plala.or.jp/go_west/nextcss/ CSSの仕様、ブラウザの実装などを網羅的に解説。 中級者入門という、まとまった記事もある。

C で assertion

#include <stdio.h> #include <assert.h> int main(int argc, char *argv[]) { assert(argc>1); printf("%s\n", argv[1]); return 0; }と書くと、引数なしで実行したとき a.out: test.c:6: main: Assertion `argc>1' failed. と表示されて終了する。 #define NDEBUG を先にやっ</assert.h></stdio.h>…

Stray Penguin - Linux Memo (パーミション)

http://www.asahi-net.or.jp/~aa4t-nngk/perm.html

接尾辞配列を文字列形式で閲覧する

接尾辞の先頭 n 文字を表示する効率的な方法。素朴な方法1: 接尾辞配列の各エントリについて、元ファイルでの該当位置から n 文字を、ランダムアクセスで読み取り、出力。 問題は、合計で ファイルサイズ * n のデータを読み取る必要があり、 読み取り時間…

クラスタリングとしての見方

区間集合のクラスタリング 区間(領域):全体文字列上の区間。接頭辞と接尾辞も含意。

やはり Perl はメモり喰いな言語。

http://www.drk7.jp/mt/archives/000803.html 「100MByte 程度のデータが Perl 内部では 1GByte 程度もメモリを喰う」

perlによる大規模データの取り扱い

http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_bigdata.html 大規模データのハッシュをファイル化するとか。 メモリに乗せきれない量のデータを扱う。

projects/segment/segnaive/Segment.java

エントロピーの計算が間違っていたのを修正。 頻度^-1 から、頻度 / 文字列長(頻度の合計値)へ。 これにより、エントロピーは単調増加になった。

GNU Emacsマニュアル 国際化文字集合の使い方

http://www.bookshelf.jp/texi/emacs-man/21-3/jp/emacs_21.html#sec224 http://mibai.tec.u-ryukyu.ac.jp/cgi-bin/info2www?(emacs-ja)defining%20fontsets Emacsで文字集合ごとにフォントを使い分ける設定。 .Xdefaultsに Emacs.Fontset-0: -*-*-medium-r-…

Tiger (Java 5.0) Generics, auto (un)boxing and new For loop [java][net]

上記2つは{{google_search('java boxing')}}より。 boxing … 'int' 'Integer' が、文脈(要求されている型)によって適切に選択される。 例えば、2項演算では int に。Mapのキーでは Integer。

Use boxing liberally

http://www.javapractices.com/topic197.cjp

projects/segment/segnaive/Segment.java

前のデバッグで、とんでもないバグを誘発しているのに気づいた。 2単語よりあとじゃあなくて、2単語よりあとか前だ! 計算し終わってから気づくとは…

fstabの設定 from Gentoo インストール記

http://bd.tank.jp/gentoo/install6.html {{google_search('xfs fsck 自動')}}で発見。 JFS は reiserfs と違って、起動時の fsck を自動的にやってくれないなあ… と思っていたら、違ったらしい。 fstab を適当に書いていたせい。 正しくは /dev/ROOT / xfs …

projects/segment/segnaive/Segment.java

Perlの配列は、連結リストとしても使える。 それは便利なんだけど。 ふと考えてみると、どちらも単位時間でできるとは思えない。 いままであまり考えていなかったが、「挿入・削除」「インデックスアクセス」のどちらが とっても遅いということがない以上、…

Segment.java のメモリ使用量

大きなデータを食わせたら、すぐにヒープが足りない、といわれる。SuffixArray の中で持つ「元の配列」に、連結の履歴を全て保った単語が書かれている。 同じ単語の情報は重複するので、辞書へのポインタにすべき。→ bigramに置き換えるときに、Bigram イン…

StringBuilder

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/stringbuilder.html StringBuffer の代替。 1スレッドでしか使わない場合はこっちの方がいいらしい。

Javaプログラムのクラス別実行時間測定

http://www005.upp.so-net.ne.jp/khayashi/profiling.html プロファイラの呼び出しの仕方。 JDK1.2頃はこんな感じ。 $ java -Xrunhprof:cpu=times,heap=all,file=test.prof Segment いまはこう。 $ java -agentlib:hprof=cpu=times,heap=all,file=test.prof …

HPROF, A Heap/CPU Profiling Tool in J2SE 5.0

http://java.sun.com/developer/technicalarticles/programming/hprof.html Sun による、JDK付属プロファイラの説明。

バグ修正

同じ単語が連続する場合のカウントミス(オーバーラップしたものをカウントしてはいけない) 現在の実行速度: 300kB では3時間程度 600kB では8時間程度 メモリ使用量は、大体 10MB くらいに収まっている。

ssh-agent

ssh の毎回のパスワード認証を省略する。 まず、パスワードでなくパスフレーズ認証に切替える。パスフレーズ作成 $ ssh-keygen -t dsa 公開鍵をログインしたい先(SERVER)に登録 $ cat .ssh/id_dsa.pub | ssh SERVER "bash -Cc 'cat >> .ssh/authorized_keys'…

Subversionの基礎練習

http://www.hyuki.com/techinfo/svninit.html 現在、僕がやっているバックアップは 「日付つきでディレクトリごとコピー」だけ。 将来変更したあとでその変更をキャンセルできるように、 ある時点での状態をそのままとっておく。 いまのところこれで必要充分…

subversion

最初に、データベースを置く場所を指定する。 $ svnadmin create ~/repos/データベースへの登録 $ svn import ./project/project-name file:///$HOME/repos/ -m "initial import" over SSH $ svn import ./project/project-name svn+ssh://hostname/$HOME/re…

changelog2mediawiki

ChangeLog での日誌がたまったし、Wikiへ転載できるように、変換スクリプトを書いた。 ChangeLogにはキーワードを付けてあるので、それを指定して抜き出す。Wikiで日誌を付けるのは少々面倒なので、今後はChangeLogメインになるが、移行期間ということで。 #…

kernel再構築でトラブル

プロセッサを指定するカーネルのオプションを "Generic 64bit x86" → "AMD Athlon 64bit " に変更。(オプションの名前は正確ではない) しかし、これと同時に "Synmetric M.. Processors" のような、マルチプロセッサ用のオプションをオフにしなかったため…

LVMのスナップショット

http://www.atmarkit.co.jp/flinux/rensai/root06/root06b.html バックアップだが、実行時点ではポインタのコピーしか行わず、 あとで変更が起きたとき、変更された部分に関してコピーを行う。 容量を無駄遣いしない点と、バックアップのためにシステムを止…

LVMを語らせていただけませんか?

http://pc5.2ch.net/test/read.cgi/linux/1024122484/

font.properties.ja

http://fukuoka.cool.ne.jp/dream_theater/jusa/font.properties.ja.html Java の awt で日本語を表示するために必要な設定。 ファイルの場所は、$JAVA_HOME/jre/lib この他、JAVA_FONTS という環境変数で ttf ファイルへのパスを通すとか、 font.properties…