Open Source WEB



2004-08-31 normalize

HTML や XML の自動生成ツールは、インデントなどおかまいなしの出力を することが殆ど。Well-formed であることは、一般には保証されている ことがおおいので、その点では心配ないことが多いけれど、ちょっとした 調整などをしたいときには、生成された HTML や XML を読む必要がある。 そのとき、インデントなどを調整してくれるプリティプリンタがあれば便利

そのようなとき、 W3C の HTML-XML-utils (http://www.w3.org/Tools/HTML-XML-utils/) の ユーティリティ群にあるコマンドの一つ normalize が使える。

$ normalize -x -e -i 1 -l 78 < foo.html > foo2.html

とやると、foo.html を

  • (-x): XML風の空要素 <img .... /> を使う。
  • (-e): 必ず終了タグが付くようにする。</p>、</li> など。
  • (-i 1): インデント単位 1カラム
  • (-l 78): 一行の長さ、78カラム

のように調整して、foo2.html へ書き込む。


Name:
Comment:
guest: (Fri Sep 3 11:08:18 2004 )
同じようなコマンドに tidy があります。http://tidy.sourceforge.net/
debian だと 『apt-get install tidy tidy-doc』 で乗ります。
tidyは utf8を理解しますが、sjisやeuc-jpは理解しません。
それで、iconv などで文字コードを変換する必要があります。

cat file.html | iconv -f eucjp -t utf8 | tidy -i -utf8 -wrap 80 >file.utf8.html
nobsun: (Fri Sep 3 11:39:21 2004 )
コメントありがとうございます。本日、コメントの入力方式を変更しました。
上にいただいたコメントの日付が今日になっているのはその所為です。


2004-08-30 ssh_config

一定時間パケットが流れないとSSHのコネクションが切断されるような場合、 クライアントで対処する方法。

Debian の OpenSSH では(特別なパッチがあたっているので)、以下のように 設定しておくとパケットが流れていない状況で、5分ごとに無害なパケットを 流してくれる。

ProtocolKeepAlives 300

NATな環境で放置したSSH接続が切断される問題について より


Name:
Comment:

There is no comment.


2004-08-27 cvs ワーキングディレクトリの状態チェック

cvs を使っていると、update や commit の前にワーキングディレクトリの状態を チェックしておきたいことがある。cvs の status コマンドだけだと、ファイル 数が多い場合など情報が多すぎる。Up-to-date でないファイルがあるかどうかだけ 調べたいことが多い。こんなふうにして、cvscheck というエイリアスを つくっておくと便利。

alias cvscheck='cvs status | grep File | grep -v Up-to-date'


Name:
Comment:

There is no comment.


2004-08-26 .emacs 圧縮されたファイルの参照

Emacs には、圧縮されたファイルを自動的に展開し、それを変更して 保存すると自動的に再圧縮するライブラリがある。.emacs に次のように書いて おくと便利。

(auto-compression-mode t)


Name:
Comment:

There is no comment.


2004-08-25 .emacs ノートPC用の設定

解像度 1024 x 768 のディスプレイを持つノートPCの X 上で Emacs 21.2 を 利用しいます。画面上に Emacs のフレームを 2 枚、重なりなくならべて使いたい ので、フォントは小さめ、フレームの飾りはできるだけ少くする設定にしています。

;;
;; Font-set
;;
(create-fontset-from-fontset-spec
 "-*-fixed-medium-r-normal--12-*-*-*-*-*-fontset-12,
  -*-fix-*-fixed-medium-r-normal--12-*,
  -*-gothic-medium-r-normal--12-*,
  -*-mincho-medium-r-normal--12-*")
;;
;; Frame
;;
(tool-bar-mode nil)
(menu-bar-mode nil)
(set-scroll-bar-mode nil)

(add-to-list 'default-frame-alist '(width . 80))
(add-to-list 'default-frame-alist '(height . 50))
(add-to-list 'default-frame-alist '(font . "fontset-12"))


Name:
Comment:

There is no comment.


2004-08-24 .zshrc プロンプトの設定

プロンプトに現在のワーキングディレクトリを出すと、ディレクトリが深くなると なんとなくコマンドラインの先頭位置が右へ右へとずれて、いやな感じ。

zsh だと RPROMPTという変数でコマンドライン右側にもプロンプトが出せるので 現在のワーキングディレクトリは右側に出したい。コマンドライン入力が長く なって、右側のプロンプトにぶつかると、右側のプロンプトは消えてくれるので 心配無用。

$HOME/.zshrc に

PROMPT='%U%m%#%u '
RPROMPT=' %U%~%u'

という設定を入れておくと、左側には「nike% 」のように ホスト名% が、 右側には 「~/hack/Gauche」のように現在のワーキングディレクトリが、 それぞれアンダーライン付きで表示される。アンダーラインを付けておくと 直前に入力したコマンドの出力がどこから始まるのかが分りやすくなる。


Name:
Comment:

There is no comment.


2004-08-23 httpd.conf の LogFormat

Web アプリケーションのデバッグやプロファイルをする際、リクエスト処理に かかった時間というのを知りたいことがある。Apache では mod_log_config に %T という書式が用意されているので、これを使うと、リクエスト処理にかかった 時間が秒単位で log に記録される。

LogFormat "%h %l %u %t \"%r\" %>s %b %T" debug


Name:
Comment:

There is no comment.


2004-08-20 more と less あるいは lv

高機能の lv や less を使わずに more を使っていた。その理由は、 lv や less では q で終了すると、今まで見ていた画面が消えてしまう。 残っていて欲しいから、それだけで more を利用していた。でも、 以下のようにすると q しても画面がクリアされない。 Yoichi's diary より

$ TERM=vt100 less FILE

あるいは

$ TERM=vt100 lv FILE

というわけで、$HOME/.zshrc に

alias lv='TERM=vt100 lv'

を追加。


Name:
Comment:

There is no comment.


2004-08-19 diff と patch

オプションの対応を忘れていたので、メモ。

$ diff -rc FROM_DIR TO_DIR > PATCH_FILE

として、FROM_DIR ディレクトリ以下とTO_DIRディレクトリ以下との文脈付き差分を 再帰的に取って PATCH_FILE とする。これをパッチを当てるディレクトリの親 ディレクトリにて、

$ patch -p0 -d . < PATCH_FILE

とするとパッチが当たる。


Name:
Comment:

There is no comment.


2004-08-18 tcsh

ターミナルのシェル(bash)から以下のようなコマンド

$ tcsh | tee /tmp/console.log 2>&1

を発行すると、/tmp/console.log にコンソールのプロンプト、ユーザ入力、 出力が記録される。このマシンにリモートからログインして、上と同じサイズの ターミナルで

$ tail -f /tmp/console.log

とやると、最初のターミナルでの作業の様子が見える。作業手順を複数の人に 教えたりするのに手軽で便利。

吉田智子著「ホップ!ステップ!Linux!」(1999)という本に この手法で、複数の学生にコンピュータリテラシを教えているというような話が載っていたと思う。


Name:
Comment:

There is no comment.


2004-08-17 httpd.conf

Apache のログを日毎に access.log.20070817 のようなファイル名で出力するための httpd.conf での設定。日毎のファイルになるので、あとで、ログ解析をするのに なにかと手間がはぶける(と思う)。cronolog が /usr/sbin にインストールされて いるとする。

CustomLog "|/usr/sbin/cronolog /var/log/apache/access.log.%Y%m%d" combined


Name:
Comment:

There is no comment.


2004-08-16 loginfo

$CVSROOT/loginfo の設定

^www (date; cat; (sleep 2; cd /var/www/; cvs -q update -dP) &) >> \
$CVSROOT/CVSROOT/updatelog 2>&1

/var/www は、Apache のドキュメントルート。同時に、このマシンの CVS リポジトリ にある、www モジュールのワーキングディレクトリになっている。

この設定は、リモートで、www モジュールのファイルを編集し、それを commit すると、サーバ側の /var/www 以下がアップデートされるというものです。

Web サーバにある静的な HTML コンテンツをリモートから保守するのに使う。


Name:
Comment:

There is no comment.


2004-08-13 rsync

$ rsync -avW /home/foo /backup/home/

rsync で差分コピーが必要ないとき(この場合 rsync を使う必然性はあるのだろうか?)、W オプションを付ければよい。


Name:
Comment:

There is no comment.


このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us