雑記帳 2006年 8月第5週

2006/08/27 Sun.

use strict;
my $tag_regex_ = q{[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))}; #'}}}}
my $comment_tag_regex = '<!(?:--[^-]*-(?:[^-]+-)*?-(?:[^>-]*(?:-[^>-]+)*?)??)*(?:>|$(?!\n)|--.*$)';
my $tag_regex = qq{$comment_tag_regex|<$tag_regex_};
my @files = ();
foreach my $file (@files) {
    if (!-e $file || -s ($file) == 0) {
        next;
    }
    open (FILE, "<$file");
    my @data = <FILE>;
    close (FILE);
    my $count = 0;
    my $count_new;
    my $data_line = "<HTML>\n<HEAD>\n<TITLE>";
    $data_line .= (split (/\./, $file))[0] . sprintf ("%03d", $count);
    $data_line .= "</TITLE>\n</HEAD>\n<BODY>\n";
    my @new_file_list = ();
    foreach (@data) {
        chomp ($_);
        $_ =~ s/$tag_regex//;
        if (length ($data_line) < 1024 * 10) {
            $data_line .= $_ . "<BR>\n";
            next;
        }
        $count_new = sprintf ("%03d", $count);
        my $new_file = (split (/\./, $file))[0] . $count_new . ".html";
        open (NEW, ">$new_file");
        print NEW $data_line . $_ . "<BR>\n</BODY>\n</HTML>\n";
        close (NEW);
        push (@new_file_list, $new_file);
        $count++;
        $data_line = "<HTML>\n<HEAD>\n<TITLE>";
        $data_line .= (split (/\./, $file))[0] . sprintf ("%03d", $count);
        $data_line .= "</TITLE>\n</HEAD>\n<BODY>\n";
    }
    if ($data_line ne "") {
        $count_new = sprintf ("%03d", $count);
        my $new_file = (split (/\./, $file))[0] . $count_new . ".html";
        open (NEW, ">$new_file");
        print NEW $data_line . "<BR>\n</BODY>\n</HTML>\n";
        close (NEW);
        push (@new_file_list, $new_file);
    }
    my $indexfile = (split (/\./, $file))[0] . ".html";
    open (HTML, ">$indexfile");
    print HTML "<HTML>\n<HEAD>\n<TITLE>";
    print HTML (split (/\./, $file))[0];
    print HTML "</TITLE>\n</HEAD>\n<BODY>\n";
    foreach my $filelist (@new_file_list) {
        my $linkfile = (split (/\./, $filelist))[0];
        print HTML "<A href=\"$filelist\">$linkfile</A><BR>\n";
    }
    print HTML "</BODY></HTML>\n";
    close (HTML);
}

家からでも職場からでも参照できるように、メモ代わりに残してみる。何だかんだ言って、相当頻繁にこれ使ってるな。
いつだかに書いたHTMLにコンバートするスクリプトで上記ソースを変換したら、ミス変換が大量に出てきた。バグだらけだ。
あまりにも信用性が低下したので、しょうがないので過去のモノも合わせてソースファイル表示部のHTMLを再確認。

今日は丸一日を休養日に充てておく。ボウリングのせいか、右肩と右腕と左足に筋肉痛が。14ポンド使ったせいだな。

2006/08/28 Mon.

で、これを書いてる最中に各種の時事ネタに精通していらっしゃるY崎氏より、何だか凄いメールがリアルタイムで来たこれ。

某システム開発という会社についての話をウチの会社のシステムを作っている企業の人
(普段は我社に常駐している)にした所、「ネット通販に興味があるようなら渡してくれ」と名刺を託されました。
興味ありますか?

これ何て転職フラグ?たまに名刺とかもらう時あるけど、こういうのってどこまで間に受けていいものなのか計りかねる。

2006/08/29 Tue.

どうやら仕様検討が間に合わず、最大最凶の脅威だった次期開発が先送りになった模様。超助かった。アレやってたら死ぬ。
んで、今のシステムで比較的多くの場所で使われているPDF作成関連のマニュアルを何故か自分が作るハメになったり。
もちろん「どこをどう操作したらPDFが作れるか」のマニュアルではなく、外部ライブラリを用いてのPG側のPDF作成マニュアル。
要するに「こんなコーディングしたらこんなの表示できます」とかの、いわゆる開発者向けの簡易チュートリアルみたいなモン。
今日は延々とこれを書くのみ。ってか、章立てからしてどうまとめたらいいものかが難しい。結局ややこしいのはこれも同じか。

2006/08/30 Wed.

昨日の焼き直しの一日。以前の雑記でPDF作成ライブラリについては少し書いた記憶があるけど、「iText」を使ってます。
この「API仕様書」は当然のことながら英語なワケで、これを延々と読み解いていくだけで激しく頭が疲れてくる。
普通に使用方法等をネット上で探してみても、それほど多くの情報が転がっているワケでもない。目に止まったのは3つくらい。
これ」と「これ」と「これ」、特に一番最後のは情報量が凄まじい。知らない部分だらけだし、読むだけでも勉強になるな。
サンプルとかを見て自分なりにまとめてみるも、そもそも章立てからして適当だから、どこをどれだけ抜粋すればいいものやら。

とりあえず、こんなのができますって事を延々とソースと共に書き綴っていく。ってか、どこからどこまでやればいいんだか。
あまりに基礎的な部分を書いてもしょうがないだろうし、かといって誰も使わないような機能を調べて書くのもアホらしい。
ってか、チュートリアルなんて自分が作らなくても、ネット上にいいのが転がってるんだし、そこ見てりゃいいじゃん。
自分でロクに調べもしないくせに、多分この資料を見て出来がどうだのとケチばっかりつけてくんだよな。あーメンドくせ。

2006/08/31 Thu.

相変わらずサンプルを作成。誰か「com.lowagie.text.Table」と「com.lowagie.text.pdf.PdfPTable」の違いを教えてくれ。
BaseFontFontFactoryFontの説明がメンドくさい。途中で投げ出したが、サンプル見てくれりゃ多分書けるだろう。
ChunkにはsetBackground(Color)なんてものがあるのに、これが何故にParagraphPhraseには存在しないのだ。
HeaderFooterもあるのに、HeaderFooterなんてものがあるせいで理解に苦しむ。HeaderFooterの方が使い慣れてるけど。
インスタンス化できないクラスをいちいち説明するのがメンドい。Image#getInstance()とかPdfWriter#getInstance()とか。

LCD買ったり免許更新行ったり飲み会いったりボウリングやったり、とにかく比較的遊んだ月だから出費がちょい多め。