2009/02/25(水) ホダ塾ディストリビューション

 XOOPS Cube Legacy(XCL)をバージョンアップする代わりにホダ塾ディストリビューションを入れてみた。というか、ホダ塾の新バージョンが出るまでXCLのバージョンアップを待っていたのだ。携帯対応モジュールを使いたかったため。

 ZIPファイルを解凍してフォルダごとアップロード。ところが、さくらのレンタルサーバーはファイル数が多いと、必ず途中でエラーになる。仕方がないので、少しずつアップロード。漏れがないように確認しながら行ったので終わるまでに2時間近くかかった。ま、XCLのファイル数はかなり多いので仕方がない。この間、サイトを閉鎖しておけるのがXCLの便利な点。

 管理画面にアクセスしてモジュールをバージョンアップしてサイトを見てみたら、無事に動いているようだ。さっそく設定をして携帯でも見てみた。うーん、一応読めるかというレベルだな。携帯でも自動ログインができるので便利ではある。

 あと、いろいろと使っていないモジュールが入っていたが、さてどうしよう。不要なものは削除しておいた方がいいか。XCLにはたくさんのモジュールがあるが、無理にXCLから使わなくても良いと思えるものもある。ブログやWikiなどはXCLとは別にインストールした方が良いような気がする。サイトの統一性という観点に立てば、有用なのでしょうけど。

2009/02/22(日) Namazuの要約

 保存したブログのファイルをNamazuで検索していて、要約部分が本文の内容を反映していないことに気づいた。Namazuは普通のコマンドでインデックスを作ると、H1など見出し部分を要約の中に取り込む。ココログの場合、メインタイトルがH1、サブタイトルやサイドバーの見出し、日付、カテゴリ、トラックバック、コメントへのリンクなどもH2になっている。Namazuの要約は200文字程度なので、こうした見出し部分を集めると、すぐに200文字に達してしまうのだ。

 見出しを要約に含めないためにはインデックスを作る際、xオプションを付ければいい(HTMLのヘディングによる要約作成を行わないオプション)。これでやってみたが、やはり要約の中になかなか本文が入ってこない。画像を記事の中に入れた場合、imgタグのtitleとaltも要約に拾うのに加えて、ブログは本文にたどり着く前に以前の記事へのリンクなど余計な項目が多すぎるのだ。本文の内容を反映した要約を作るにはこうした余計な部分を削除してファイルを保存する必要がある。これはNamazu本体の方で対応してほしいところ。

 Googleのように検索キーワードの前後を要約の中に含めてくれると理想的だが、それには本文全体をインデックスの中に取り込む仕組みにしなくてはいけないだろう。CGIのmsearchなどはこの方法で、最近使っていないから仕様が変わったかもしれないが、インデックスファイルを開いたら、検索対象全ファイルの全文がHTMLタグを外して一つのファイルに納めてあった。これは結局、ファイルのオープン、クローズの処理は省けても、ファイル数が増えてくると、インデックスのサイズが大きくなるし、メモリーの使用量も多くなるだろう。まあ、テキストだけだったら、個人サイトでは数十MB単位になることは少ないだろうから、メモリーのことはあまり考えなくてもいいとは思う。

 ちなみにこの日記のHTMLファイルのサイズは頻繁に更新していた2005年の1年間(調べたら、364ファイルあった。ほぼ毎日書いていたのだ)で1.19MB。タグを外せば、3、4割減るだろう。

2009/02/09(月)なでしこでココログのファイルをダウンロード

ブログの方にココログをNamazuで検索という記事を書いたが、これは秀丸マクロでココログのファイルを加工する方法だった。なでしこでやったら、もっと簡単だった。以下はその手順。まず、ココログのバックナンバーページのソースを開き、月別のバックナンバーのURLをコピーする。それをurl.txtとしてデスクトップに置く。そこで以下のスクリプトをなでしこで実行。

「{デスクトップ}url.txt」を毎行読んで反復。
 URLファイルはそれ。
 URLファイルを「{デスクトップ}url2.txt」にHTTPダウンロード。
 「{デスクトップ}url2.txt」を毎行読んで反復。
  それを「<h3>.*</h3>」で正規表現マッチ。
  基本URLはそれ。
  もし、基本URLが「」でなければ、
   「{基本URL}{改行}」を「{デスクトップ}url3.txt」へ追加保存。
0.5秒待つ。
「{デスクトップ}url3.txt」を基本URL2に読む。
それからHTMLリンク抽出。
それを「{デスクトップ}url4.txt」に追加保存。
終わる。

url2.txtは記事のHTMLファイルのソース、url3.txtはそれからH3(見出し)行を取り出したファイル、url4.txtが記事のURLの一覧。で、このurl4.txtを読み込んで、ダウンロードする。デスクトップにfileというフォルダを作っておいて、以下のスクリプトをなでしこで実行。

「{デスクトップ}url4.txt」を毎行読んで反復。
 ローカルファイルはそれ。
 ローカルファイルからURLファイル名抽出。
 ローカルファイル1はそれ。
 ローカルファイルの『2.*/.*/.*html』を『』に正規表現置換。
 ドメインはそれ。
 ローカルファイルの「{ドメイン}」を『』に置換。
 ローカルフォルダ2はそれ。
 ローカルフォルダ2の「{ローカルファイル1}」を「」に置換。
 ローカルフォルダ3はそれ。
 ローカルフォルダ3の『2.../』を「」に正規表現置換。
 ローカルフォルダ4はそれ。
 ローカルフォルダ4の「/」を「」に置換。
 月フォルダはそれ。
 ローカルフォルダ3の「/.*」を「」に正規表現置換。
 年フォルダはそれ。
 「{デスクトップ}file\{年フォルダ}」のフォルダ存在するか。
 もし、それがいいえならば、
  「{デスクトップ}file\{年フォルダ}」にフォルダ作成。
 「{デスクトップ}file\{年フォルダ}\{月フォルダ}」のフォルダ存在するか。
 もし、それがいいえならば、
  「{デスクトップ}file\{年フォルダ}\{月フォルダ}」にフォルダ作成。
 ローカルファイルを「{デスクトップ}file\{年フォルダ}\{月フォルダ}\{ローカルファイル1}」へHTTPダウンロード。
終わる。

これで、デスクトップのfileというフォルダに2009\02とか2008\04とか年月別のフォルダにファイルがダウンロードできる。僕の場合はファイルが102個しかなかったから、すぐに終わった。1ファイルあたり1秒余りで終わるので2分足らずか。これぐらいの短いスクリプトでダウンロードできるのがなでしこの便利なところだ。

2009/02/07(土)ATOK2009

 一太郎2009が届いたのでインストール。一太郎自体の新機能に興味はない。だいたい、使うのは月に一度か二度。しかし、ATOKは毎日使うので、これはバージョンアップの意味がある。そういうATOK目当てに一太郎を毎年バージョンアップしている人は多いのではないかと思う。賢くない入力システムはストレスがたまるのだ。

 ATOK2009の目玉は英語入力支援機能か。Shiftキーを押しながら英語を入力しようとすると、一文字入力しただけでその文字から始まる候補がずらりと表示される。上下キーで選んで確定。これは便利かも。

 Just MyShopで予約した時に迷ったのはダウンロード版でもいいかなといこと。2000円ほど安い。毎年付いてきていたおまけがあるかなと思って製品版にしたが、今年はおまけはなかった。このおまけ、あまり役に立たないものも多かったが、過去にはUSBメモリーなどもあった。おまけが付いてこないのなら、来年からはダウンロード版にしよう。

 ATOKにはセキュリティソフトと同じように1年版もある。3,360円。一太郎を使わずに毎年ATOKをバージョンアップするなら、こちらの方がお得だな。

2009/02/04(水)ココログファイルの切り分け

ココログの全文検索はいちいち「このブログ内で検索」を選ぶのが面倒なので、Googleのカスタム検索を付けた。サイドバーに設置するには「マイリスト」の新規作成でメモを選び、ソースを貼り付ければよい。それだけでは面白くないので、検索結果をサイドバーに表示するようにした。この作り方は以前、映画とネットのDIARY(2009-01-07)に書いた通り。

これで少しはましだが、Namazuでも検索できるようにしたいところ。ココログの設定画面から書き出したファイルは1ファイルに全部の記事が収容されている。これを切り分け、1記事1ファイルの形にしてNamazuで検索できるようにすれば良いわけだ。で、秀丸で切り分けるマクロを書いてみた。

#num = 50;
#count = 0;
disabledraw;
call repeatSub;
enabledraw;
endmacro;
repeatSub:
while( #num > 0){
searchdown "--------";
    if(!result){endmacro;
    }else{
    call cutSub;
    #num = #num-1;
    }
    setactivehidemaru 1;
    closehidemaru 2;
}
return;
cutSub:
    gofiletop;
    beginsel;
    searchdown "--------";
    cut;
    deleteline;
    openfile "";
    paste;
    #count = #count + 1;
    $count = str(#count);
    saveas "cocolog" + month + day + hour + minute + second + $count + ".html";
return;

#numは作成するファイル数を指定する。大量に記事を書いている場合はこの数字を増やすか、何回かマクロを繰り返せば良い。しかし、これで検索できるようになっても実際のページには飛べない。自分で確認できるだけ。ココログのファイル名は一定の規則にはなっていないのでこれは仕方ない。いや、規則はあるんだけど、タイトルによっても変わるので不規則なのだ。