たつをの ChangeLog : 2006-04-10

読んでないけど気になるので紹介。

ソフトウェアファクトリー - パターン、モデル、フレームワーク、
ツールによるアプリケーションの組み立て

「Visual Studio」の開発者4人が執筆、とのこと。
レビューより:
「Software Factories」とは、開発の自動化を推進する次世代開発基盤技
術のこと。効率的な工業生産の手法をソフトウェア開発に適用し、ソフト
ウェア開発を自動化する技術です。本書は、そのSoftware Factoriesの
手法とプラクティスを解説した待望の1冊。
現在の仕事内容と直接大きくは関わらない方向性なんだけど、
開発技術の現状を把握するには良いかも?

昔作った「Perlによるsuffix arrayの実装」を発掘したので公開しておき
ます。

ソースコードです。
#!/usr/bin/perl -w
use strict;
my $t = "mississippi";		# Text - 対象テキスト
my @sa = (0..length($t)-1);	# Suffix Array - 初期設定

### Suffix Array の作成
@sa = sort {substr($t, $a) cmp substr($t, $b)} @sa;
# テスト出力
for (0..$#sa) { print "$_ $sa[$_] ",substr($t, $sa[$_]),"\n"; }

### バイナリサーチによる Suffix Array の検索
my $k = "ppi";			# Key - 検索キー
my ($l, $u) = (0, $#sa);
while ($l <= $u) {
    my $i = int(($l + $u)/2);
    my $c = $k cmp substr($t, $sa[$i], length($k));
    if ($c > 0) {
        $l = $i + 1;
    } elsif ($c < 0) {
        $u = $i - 1;
    } else {
        print qq("$k" is found at $sa[$i]\n);
        last;
    }
}

実行結果です。
% perl sa.pl
0 10 i
1 7 ippi
2 4 issippi
3 1 ississippi
4 0 mississippi
5 9 pi
6 8 ppi
7 6 sippi
8 3 sissippi
9 5 ssippi
10 2 ssissippi
"ppi" is found at 8

Suffix Arrays については、[2006-04-10-3]にリンク集をまとめましたの
でどうぞ。


当時ネット上でsuffix arrayのPerl実装がどこかで公開されていたはずな
のですが、今検索すると見つけられません…。
見つけた方、ご存知の方はURLを教えてください。

追記060411: 見つかりました!ありがとうございます。
お手軽PerlでSuffixArrayに挑戦
http://www006.upp.so-net.ne.jp/ugougo/tech/lang_perl/easy_suffixarray.html

Suffix Array について解説している日本語による文書のうち、
Webで閲覧できるもののリンク集。随時更新予定。

- 用語解説: Suffix Array (PDF)
  via http://ta2o.net/tools/sufary/
- Suffix Array の解説 in D論 (PDF)
  via http://ta2o.net/tools/sufary/

- 横着プログラミング 第9回: sary: Suffix Array のライブラリとツール
  http://0xcc.net/unimag/9/
- Suffix Arrayの簡単な説明
  http://sary.sourceforge.net/docs/suffix-array.html

- Suffix Trees and Arrays (PDF)
  http://www.hgc.jp/~tshibuya/classes/shibuya20050512.pdf
  http://www.hgc.jp/~tshibuya/classes/shibuya20040629.pdf
  東京大学医科学研究所ヒトゲノム解析センターの渋谷哲朗さん
  http://www.hgc.jp/~tshibuya/index-j.html による講義資料。

- Suffix Arrayの概念
  http://homepage3.nifty.com/DO/sa_intro.htm
- 作って理解するAjax(第3回)
  http://itpro.nikkeibp.co.jp/a/it/client/cl0330/cl_17.html

追記060426:
- SUFARY 関連ドキュメントを http://ta2o.net/tools/sufary/
  にいろいろ追加しました。
  SUFARY とは「suffix arrayというデータ構造を用いて高速な文字列検
  索を行なうためのライブラリを中心としたパッケージ」です。
  (ref. [を] SUFARY のパッケージに付属のドキュメント[2006-04-25-2])

これまた青森方面からの頂きもの[2006-04-09-1]
スタミナ麺にんにくラーメンです! ありがとうございます!
青森県田子(たっこ[2005-07-23-2])産の高級ニンニクのパウダーが
麺に練りこんであるのです。
でも、ゆでるとそれほどニンニクが全面に出てくる感じではないです。
とにかくニンニクで健康! ツイてる!
麺麺

スープはみそとしょうゆがついてきます。写真は味噌。
つけあわせはインゲンと海苔だけでシンプルに。
麺

たつをの ChangeLog
Powered by chalow