QuickML を Postfix と共存させる

自宅サーバをCentOS 4.0に移行した際にQuickMLをインストールし直したので、自分用にメモ。

QuickMLは、メールのCc:フィールドを利用したシンプルなメーリングリストサービスです。メールを送るだけでメーリングリストの作成ができ、参加メンバの追加は、追加したい人のアドレスをメールのCc:に指定するだけなのでとても簡単です。また、1ヶ月間やり取りがないと、そのメーリングリストは自動的に削除されるので、作成から削除まで管理者いらずで運営できます(削除前には、ちゃんと警告メールが来ます)。

使い方の例をあげると、こんな感じです。詳しい使い方は、QuickMLのページを見てください。
新規メーリングリスト[hoge]を立ち上げる
  → hoge@quickml.com にメールを送信するだけ

新メンバを追加する
  → 追加したい人のアドレスをCc:に指定して、
    hoge@quickml.com にメールを送信するだけ

メーリングリストを退会する
  → 本文が空のメールを送信

QuickML.comのサービスを利用させてもらってもいいのですが、“メンバー数は10人まで・メールのサイズを50KBまで”というちょっと厳しい制限があるので、2年くらい前から自宅サーバで動かしています(非公開)。うちでは、MTAにPostfixを使っているので、QuickMLをPostfixと連動させました。以下が導入手順です。

1.Ruby 1.6.7以上がインストールされていることを確認

2.高林さんのサイトからQuickMLのソースをダウンロードする。

 http://namazu.org/~satoru/quickml/

3.ユーザ作成
# useradd quickml
4.インストール
$ tar xzvf quickml-0.7.tar.gz
$ cd quickml-0.7
$ ./configure && make
# make install
5.QuickMLの設定
/usr/local/etc/quickmlrc を編集
Config = {
  :user => 'quickml',
  :group => 'quickml',
  :port => 10025,
  :bind_address => "127.0.0.1",
6.Postfixの設定
(1)/etc/postfix/transport に以下を追加
foobar.com smtp:[localhost]:10025
foobar.comは、自分のドメインに変更すること。

(2)/etc/postfix/main.cf に以下を追加
transport_maps = hash:/etc/postfix/transport
(3)設定反映
# postmap transport
# postfix reload

以上です。
週末のBBQの打ち合わせとか、結婚式の余興の打ち合わせとか、イベント単位で気軽にメーリングリストを立ち上げられるので便利です。作者である増井さん高林さんに感謝(^^)

MYCOM PC WEBのPlone記事

「第66回 Zope + CMFのCMS"Plone"を使ってみよう - 導入」
本コラムでは以前、LAMPの代表的なCMSとして「XOOPS」を紹介したが、XOOPSはデータベースの選択肢が基本的にMySQLに限定されていることや、コミュニティサイト向けの作りになっていることから、中規模以上の企業サイトでは適用しづらい面もあるかもしれない。そこで、今回からしばらく、 XOOPSとは一味違ったCMSとして、「Plone」を取り上げてみたい。
だそうです。Mac OSX版のPloneには、"Plone Controller"という管理ツールが付いているんですね。初めて知りました。

関係ないですけど、ZMIと同様の操作ができるEclipseのプラグインが欲しいです。左側にフォルダツリーが表示されて、右側でテンプレートやスキンがいじれるような。

DTM 第1戦 ホッケンハイム

スポーツ・アイESPNでDTM(ドイツ・ツーリングカー選手権)第1戦ホッケンハイムのレースを放送していました。
DTMは久しぶりに観たのですが、ジャン・アレジ、ミカ・ハッキネン、H-H.フレンツェン、アラン・マクニッシュなど懐かしい面々がいっぱいでかなりアツかったです。レースはアレジが優勝だったのですが、今回がデビュー戦のハッキネンも途中ペナルティを受けたものの果敢に攻めて8位フィニッシュ、今後が楽しみな結果となりました。ただ、メルセデス、オペル、アウディの3社しか出ていなくて、アルファが見たいなぁ、と思ったり。日本車もレクサスとか出てきたら、きっと面白いだろうなぁ~

実は、これを観ていたおかげで、F1モナコGPのスタート見逃しましたが、今年は、WRC,F1と共にDTMも全戦観ようと思います。

Trac(BTS+Wiki+SVN)を試してみる [後編]

先週末から公私共にいろいろとあって、だいぶ間があいてしまいましたが、前回の続きです。
使ってみての感想ですが、これは使えるなという印象を持ちました。
・日本語に関しては、Wiki,Subversionリポジトリビューア,Ticket管理ともに問題なし
 (ただし、Suversionに格納しているソースがUTF-8以外の場合には設定が必要)
・翻訳版に置き換えることで、メニューやヘルプも日本語化可能
・Wikiの書式がシンプルで表現力は最低限
・動作は軽快(mod_pythonは必須)
・ヘルプが良くできていて、使い始めが簡単
・RSSやiCalendar形式で他のツールと連携可能

職場で開発中システムの管理に使い始めていますが、評判も上々です。以前は、PukiWikiBugTrackプラグインを使っていたのですが、無理やりWikiページの1つとして収めている感じがしていました。それに比べて、Tracは、WikiとBTSの機能がある程度独立した上で、それらの更新情報をまとめて一覧表示したり、"ticket:1","report:1","changeset:1"などのTracLink形式でそれらの間をリンクすることができるので、使い勝手は断然上です。

Wikiのトップ画面
標準のWiki書式はシンプルだが、Pythonで関数を記述することで拡張可能。
Wikiの編集画面
ticket:1,changeset:1などと記述すると、チケットやリポジトリへのリンクとなる。
タイムライン画面
Wiki,SVN,Ticketの変更履歴がまとめて表示される。RSS形式で出力可能。
ロードマップ画面
割り当てられたチケットの完遂率がグラフ表示される。iCalendar形式で出力可能。
Subversionリポジトリ
日本語のコミット時コメント表示も問題なし。WebSVNとほぼ同じ。
リポジトリ変更差分表示
なかなか見やすい。新旧を左右に分けて表示することも可能。
進捗状況のレポート
ブラウザ上からSQLクエリーをカスタマイズして、表示項目を変更することが可能。標準で用意されているレポートはこの8つ。
バグトラッキング画面
チケットごとの進捗状況や担当者を確認できる。チケットには、エラー画面を添付したり、掲示板のようにコメントを付けることが可能。

以下に日本語化や管理者権限の設定方法を書きます。

1.メニューやヘルプの日本語化
(1)翻訳ファイルをダウンロード

(2)解凍と展開
$ unzip trac-0.8.1-ja-1.zip
$ cd trac-0.8.1-ja-1
$ su
# mv templates/* /usr/share/trac/templates/
# mv wiki-default/* /usr/share/trac/wiki-default/
※これ以降に作成したプロジェクトから日本語になります。"trac-admin yourenvdir initenv"でプロジェクトを作成してください。

2.管理者権限を設定する
(1)パスワード設定
# htpasswd2 -c /var/trac/.htpasswd hoge
New password:
Re-type new password:
Adding password for user hoge
(2)Apacheの認証設定
Apacheの設定ファイルに下記を追加
/etc/apache2/sites-enabled/000-default(Debian Sargeの場合)
<LocationMatch "/cgi-bin/trac.cgi/login">
    AuthType Basic
    AuthName "trac"
    AuthUserFile /var/trac/.htpasswd
    Require valid-user
</LocationMatch>
(3)作成したユーザに管理者権限割り当て
# trac-admin /var/trac/sampleproject permission add hoge TRAC_ADMIN
3.UTF-8以外のソースコードに対応する
(1)JapaneseCodecsのインストール
# apt-get install python2.3-japanese-codecs
(2)trac.iniの編集
/var/trac/sampleproject/conf/trac.ini の設定を変更(Shift_JISの場合)
[trac]
default_charset = japanese.shift_jis

Tracはファイル構成もシンプル、ClearSilverというテンプレートエンジンを使っていてWebアプリケーションとしても良くできているな、と感じました。欲を言うと、テンプレートを丸ごと置換えしなくて済むように言語切り替え機能が欲しい、ユーザ管理を基本認証ではなくDBで管理して欲しいという気はします。
以上、とりとめもなく書きましたが、そのうちBlogエントリではなく、Plone上のコンテンツとして纏めます。

Trac(BTS+Wiki+SVN)を試してみる [前編]

Tracは、WikiとSubversionリポジトリビューアとBTSをひとつにしたようなソフトウェアです。要するにソフトウェア開発の際のソースコードのバージョン管理、プロジェクトメンバ間の情報共有、バグ追跡管理がまとめてできるということです。ちなみにZopeと同じ、Pythonで書かれています。Panda_naominさんの日記で知って良さそうと思ってたのですが、やっと試せました。

インストールは、coLinux上のDebianをSarge化して、全てapt-getでインストールすることにします。この辺がLinuxさまさま、Windowsでは面倒でやる気になりません。あっ、でもSarge化、Apache2、Subversionのインストールは済んでいるものとします。(全部 apt-get 一発ですが)

1. まずはTracのインストール
/etc/apt/sources.list に以下を追加
deb http://ftp.edgewall.com/pub/debian sarge trac
インストール
# apt-get update
# apt-get install trac
2. Subversionリポジトリを作成
# mkdir -p /var/svn/
$ cd /var/svn
$ sudo svnadmin create sampleproject
3. Tracプロジェクトを作成
$ sudo trac-admin /var/trac/sampleproject initenv
Creating a new Trac environment at /var/trac/sampleproject

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> Sample Project

 Please specify the absolute path to the project Subversion repository.
 Repository must be local, and trac-admin requires read+write
 permission to initialize the Trac database.

Path to repository [/var/svn/test]> /var/svn/sampleproject

 Please enter location of Trac page templates.
 Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/share/trac/templates]> そのままEnter
4. Apache2の設定(/etc/apache2/sites-enabled/defaultに追記)
Alias /trac "/usr/share/trac/htdocs/"
<Location "/cgi-bin/trac.cgi">
        SetEnv TRAC_ENV "/var/trac/sampleproject"
</Location>
    
とりあえず、今日はインストールまで。使ってみた感想は、また後日書きます。

Zope Essentials 1に参加してきました

Zope Essentials 1に参加してきました。
こういうオープンソースなイベントに参加するのって初めてなので、とても刺激的でした。実は、自分以外の人がZMIを使ってるのを見るのは初めてだったりします。基本的にZope初心者向けで、私でもほとんどの内容を理解することができました。

会場は、赤坂のJETRO会議室(←このサイトもZope使ってます)。参加者は30人くらいで、Zope Weekendは100人ぐらい集まるそうなので、それに比べたらリラックスした雰囲気だったのではないでしょうか。
私は調子に乗って懇親会にも参加したのですが、やっぱり会社では得られない情報や周りにはいないような人々に会うことができて、とても有意義でした。帰りもmojixさんと電車が一緒だったのでいろいろな話を聞くことができました。本当に皆さんお疲れ様でした。できれば、次回も参加したいと思います。
1.メインプレゼンテーション

「Zope Starter Guide ~とりあえず、Zopeで普通のサイトを作ってみよう~」 - 清水川さん

 ・マインドマップ(Mind Map)を使ったプレゼンテーション
 ・インストール後の簡単なコンテンツの作り方
 ・Zopeでindex.htmlではなくindex_htmlとするのは、オブジェクト参照のドットと区別するため
 ・ExternalEditorの紹介(JPEGなどの画像も専用のエディタを設定可能)

2.ライトニングトーク

(1)Zopeのプロダクトを使おう - 寺田さん
 ・プロダクトのインストール方法
 ・インスタンスごとにプロダクトを設定可能
 ・全体のProductsよりもインスタンスのProductsが優先

(2)地味ですがロールとセキュリティの概念って大事かも - jackさん
 ・Security = Role + Permission
 ・ProxyRoleの紹介
 ・6/1-3 Linux Conferenceをお手伝いください!

(3)5分でできる!Zopeで掲示板 - mojixさん
 ・たまちゃんBBSという掲示板を5分で作る(実際にはもうちょっとかかってました)
 ・Pythonスクリプトでオブジェクトを動的に生成する
 ・QuickLinks(よく使うオブジェクトタイプを追加しやすくするプロダクト)

(4)川口事務所のサイトをPloneベースでリニューアルしました -川口さん
 ・Plone臭さをなくした
 ・コンテンツパネルというプロダクトを利用
 ・Plone導入コンサルタントを名乗らせて頂きます

(5)Ploneスキンカスタマイズ事例 - zenさん
 ・CSSを使ったカスタマイズ
 ・Plone Skinsのひとつを参考にした

(6)ドキュメンテーションプロジェクト試走中 - 宮本さん
 ・OSC2005の小冊子の紹介
 ・PDFで配布、印刷時にインクをたくさん使わないように配慮

3.ASTERIAの紹介 - 江島さん

 ・CNET Blogの江島さんが飛び入りで参加(サイトの写真より若くて格好よかったです)
 ・「"i love x" programming」で検索すると、Ruby,Pythonは上位に来るという話
 ・処理フローを図で書くだけでWebシステムが構築可能
 ・さっそくZE1に関するエントリを書かれた模様(5/11 6:30追記)

del.icio.us用のFirefoxエクステンション

なんてものがあるのを今日知りました。これがあれば、bookmarkletなんて必要ないです。

http://delicious.mozdev.org/

からインストールして、右クリックして表示される[del.icio.us]-[Options]でユーザIDとパスワードの設定をします。後は、ブックマークしたいページで右クリックから"Post current page"を実行するか、おもむろに"Ctrl+Shift+S"を押せば、登録用のウィンドウが表示されます。
また、文字列を選択してから"Post current page"を実行すると、その文字列がExtendedに設定されるので、要約も簡単に登録できそうです。

# 最新の1.03までのMozilla Firefoxにセキュリティ脆弱性が報告されています。
# Javascriptの機能をオフにせよとのことですが、ちょっと様子見です(ぶるぶる)。

PlonifiedスキンでTrackback URLを表示

「Plonified スキンで Trackback URL が表示されない - Feel Fine!」を見て気が付きました。デフォルトでは、Trackbackがあった時しかTrackback用のURLが表示されないのですね…
これでは困るので、私もTrackback用のURLを表示するようにしてみました。blogトップの一覧画面には表示せずに個々のエントリ画面にだけ表示するようにします。また、通常のCOREBlogサイトと同じように"comments"と"trackbacks"の見出しも追加しました。

1.entry_htmlを修正(赤字の部分を追加)
<!-- Comments -->
<div class="comments-head"><a name="comments"></a>Comments</div>
<div metal:use-macro="here/comment_macros/macros/commentbody"> Comment body </div> <br /> <!-- Trackbacks -->
<div class="comments-head"><a name="trackbacks"></a>Trackbacks</div> <div align="right"> この記事に対するTrackBackのURL: <a href="#" tal:attributes="href entry/tbpingurl" tal:content="entry/tbpingurl"> Trackback URL </a> </div>
<div metal:use-macro="here/trackback_macros/macros/trackbackbody"> Trackback body </div>
<br />
2.style.cssに以下の記述を追加
.comments-head	{
	font-size: small;
	font-weight: bold;
	line-height: 100%;
	margin: 2em 0.5em 1em 0;
	padding-left: 0.2em;
	border-left: 1em solid #000;
	border-bottom: 1px solid #000;
}
以上です。日本語そのまま書いてるし、大した情報じゃないんですが、自分用のメモということで…

DVD±RWドライブが壊れました

突然、BUFFALO DVM-4244FBというDVD±RWドライブが壊れました。ずっとアクセスランプが点滅しっぱなしで、イジェクトボタンも受け付けません。また、不思議なことに今までBIOSで「SONY DVD RW DW-U14A」と認識していたのが、「SONY BOOT DW-U14A」という名前に変わってしまっています。
Webで調べたら、同様の症状の人はいるものの解決したという記述はありません。ファームウェアを上書きしようとしてもデバイス名が違うということではじかれるし(>_<) アップデートプログラムの中身をバイナリエディタで見てみたけど、DW-U14Aという文字列はないしで万策尽き果てた感じ。
機械的には壊れていないと思うのですが、既に保証切れで修理に出したら高そうだし、近所のドスパラで新しいドライブ買うしかないなぁ…

PoderosaのGuevaraモード

最近、オープンソース化されて話題になっているSSH2ターミナルエミュレータのPoderosa(ポデローサ)。私は、Guevaraと呼ばれていた頃にしばらく使っていたのですが、.NET Frameworkで動作が若干重い気がして、PuTTYに戻ってしまっていました。でもこの裏情報(?)を聞いて、また使ってみようかと言う気になりましたよ(^^;

バージョン情報の画面で、キーボードから"guevara"と打ち込むとゲバラモードなるものになるらしいです(情報元)。実際にどう変わるかはやってみてのお楽しみということで…

ファイル名をEUC-JPからUTF8に一括変換する

Red Hat 9の時は、デフォルトのロケールをEUC-JPにして使ってたのですが、CentOSに移行したのを機にUTF-8にすることにしました。
スクリプト類の中身は、nkfなりlvなりで変換すれば良いのですが、困ったのは日本語ファイル名を持ったファイル達。元々EUC-JPでファイル名を付けていたので、思いっきり文字化けしてしまいました。主にSambaやWizd経由でアクセスするTV番組を録画したMPEG2や音楽MP3などのファイルなんですが、こういうファイルはやっぱり日本語じゃないと分かり難いです。

ファイル名の文字コードを変換するのにいいツールはないかと探していて発見したのが、convmv。Perlで書かれたスクリプトでフォルダ内のファイル名を再帰的に変換してくれます。

http://j3e.de/linux/convmv/man/

ダウンロードして解凍すると、convmvというプログラムが入っています。使い方は、まず変換したいディレクトリに移動して、テスト実行します。
$ convmv -r -f euc-jp -t utf8 *

変換後のファイル名がずらーっと表示されるので、問題なければ"--notest"オプションを付けて実際に実行します。

$ convmv --notest -r -f euc-jp -t utf8 *

以上で、Linux上からは日本語ファイル名が普通に見えるようになりました。しかし、Windowsから見ると何故か文字化けしてしまいます。これは、Samba 3.0になって文字コード設定の書き方が変わったのが原因だったようで、以下のように記述することで解決しました。

unix charset = utf8
display charset = cp932
dos charset = cp932

シバザクラ in 羊山公園

秩父の羊山公園に芝桜を見に行って来ました。
途中の道路は大渋滞で、秩父に到着したのは15時くらい。公園の近くは交通規制で自動車が入れないので、ちょっと離れた小学校のグラウンドに車を止め、シャトルバスに乗り換えます。バスを降りてからも少し歩く必要があって、そこは元旦の初詣のように延々と人の行列が続いています。空から見たら、蟻の行列にしか見えないでしょう、きっと(^^;
やっとの思いで、たどり着いた芝桜はとても綺麗でした。色が違うのは、芝桜の種類の違いで全11種類あったらしいのですが、覚えているのはこれくらい。"リットルドット", "スカーレットフレーム", "マックダニエルクッション", "多摩の流れ"(これだけ和風だなぁ…) それぞれ近くで見ると花の形や匂いが全然違って面白いです。

案の定、帰りも大渋滞で左足が筋肉痛になりそうでした。でも、一緒に行く人が違うと、そんなことも苦にならずに楽しいんですよね、これが…
    

スライドショー

COREBlog 1.2に完全移行しました

COREBlog 1.2リリースを受けて、SimpleBlogからCOREBlogに完全に移行しました。

あわせてVirtualHostMonsterを使って、PloneコンテンツをトップURLに持って来ました。今まで、Apacheで提供しているコンテンツが他にいろいろとあったので"/plone/"でアクセスするようにしてたのですが、それらはバーチャルドメインに変更済みなのでそろそろいいかな、と。また、Googleなどから古い日記(SimpleBlog)へアクセスされることも考えて、それらはCOREBlogの方へリダイレクトするようにしました。

COREBlog作者である柴田さんへの感謝の意味も込めて、「日本のZope情報」ポートレットを右側に追加しました(^^)

ETCマイレージサービス申し込み

もれなく5,000円分還元キャンペーンが4月30日までだったのをすっかり忘れていて、ギリギリで申し込みました。私は、前払い割引サービスを使っているので、マイレージポイントが貯まることはないと思いますけど。

ETCマイレージサービスの概要は、
・平成16年8月10日以降にETC車載器をご購入・取付け・セットアップした人が対象
・4月30日までは申込者全員に5,000円還元、5月以降は125万台に達した時点でキャンペーン修了
・前払い割引サービスを利用した支払いにはポイントが付かない