2006-10-02 Mon

Gateaux de Voyage(ガトー・ド・ボワイヤージュ) とろけるシブースト 白桃

Gateaux de VoyageのシブーストをOさんが買ってきてくれた。
八王子駅構内で売っているらしい。知らなかった。

画像画像

白桃の入ったカスタードベースのプリンのような生地に、
とろけるような柔らかいクリームをたっぷり重なっている
夢のようなお菓子。

紅茶と一緒にいただきました。

画像画像

一口食べたら、おお、と声を出してしまった。
生クリームとカスタードの組み合わせは最強だなぁ。
とっても旨い。ちょうど良い甘さ。

夢中になっていたら紅茶無しでほとんど食べてしまった。
めちゃくちゃ幸せだな。

ごちそうさまでした。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

trac+subversionを使い始めた

trac+subversionな環境を整えたので、まとめメモを書くことにします。
まだ不十分ですが、あとは徐々に改善。

画像

trac+subversionなサーバを作っておきたい。
さらに、リポジトリ全体も定期的にバックアップをとりたい。
と思ったんですよ。

今は、個人のソースはかなりアバウトなバックアップをしていて
突然自分のPCが壊れてしまったとき、昨日とかおとといのソースが
無くなってしまうような状態なのです。

何もしてないわけではなく、CVSとSubversionは使っていますよ。
でもソースの差分をみて何か発見するとか、
タスクとかバグとかをメモしておいてほにゃほにゃとか、
するわけではないので、頻繁にコミットするのが億劫なんですよ。
ホントに駄目人間です。

そういうところをtracや影舞を使って矯正しようかなと思っていて、
なかなか手が付かなかったのです。
でも、いよいよ危険を感じたので週末にやりました。
# 身近で事件が起こるまえに何かするのが理想なのですが。

余計なコメントはこれ位で以下は自分用メモ。
多分抜けてるところが沢山あるだろうな。




●OS : Debian Sarge linux
●目標 : ソースをコンパイル&インストールしたApache2でtrac

以下に作業を依存関係を考慮しつつ列挙する。

●Perl5.8.8をインストール
/etc/apt/sources.listに以下のような記述を加えて
apt-get updateして、apt-get install perlする。それで十分。
インストールが終わったら、即、以下のラインを#でコメントアウトする。
そんで、apt-get updateしておく。
deb http://ring.asahi-net.or.jp/archives/linux/debian/debian/ sid main non-free contrib


●Apache2とmod_perl2をコンパイルしてインストール
自分はmod_perl2用のApache2を過去にインストール済み。確かこんな感じ
だった。
# cd /tmpとかする
# Apache2とmod_perl2のソースをダウンロード&解凍
# mod_perl2のディレクトリにcd
# perl Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=../httpd-2.2.2 MP_AP_CONFIGURE="--prefix=/usr/local/httpd_mp2 --with-mpm=prefork"


●subversionのインストール
以前インストールした。ついでにsvkも
apt-get install subversion svk


●tracの最新版のtar.gzファイルを取得
trac配布ページで配布している、最新安定版っぽいのを取得。
英語版で十分だし。

●tracのインストールの前に
tracのドキュメントとにらめっこ。
どうやら先に、ClearSilverの最近のやつとSQLiteの3系とPySQLiteの2系が必要。

●Pythonなどのインストール
最新版っぽいtracを使いたかったので、tracはソースから。
だけど他のものは極力apt-getすることにした。

# apt-get install trac
# apt-get install python-devel python-xml
# apt-get install python2.3-japanese-codecs
# apt-get install sqlite3


●ClearSilverのインストール
なんとなくClearSilverのソースをダウンロード。
自分は0.10.3をインストールした。
どうせmod_pythonを使うので、エラーが出たものは切ってしまった。
# 解凍して、解凍したディレクトリにcdする
# ./configure --with-python=/usr/bin/python --disable-ruby
# make
# make install


●pysqliteとsqlite
なんか、こんな感じだった気がする
# apt-get install sqlite3 python-sqlite


●mod_python
mod_pythonもソースから入れた。
# ダウンロードして解凍して、そのディレクトリに入る
# ./configure --with-apxs=/usr/local/httpd_mp2/bin/apxs


httpd.confに以下を追記した。
LoadModule python_module modules/mod_python.so


●tracをインストール
aptで入れたtracを無視して上書きすることにした。
# tracのソースをダウンロードして、解凍して、ディレクトリ移動
# python setup.py install


●tracユーザ用の認証に使うファイルを作る
パスワードファイルをどこに保存するか悩んだけど適当なところに配置
# mkdir /usr/local/httpd_mp2/password/
# /usr/local/httpd_mp2/bin/htpasswd -mc /usr/local/httpd_mp2/password/trac.passwd overlast
# ほげほげ


●httpd.confにtrac関連の設定を書き込み
httpd.confに以下を追記した。
以下のようにするとtrac上でoverlastユーザによるログインが可能。
<Location /trac>
  SetEnv PYTHON_EGG_CACHE /tmp/python_egg_cache
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /root/trac
  PythonOption TracUriRoot /trac
  PythonDebug On
</Location>
<LocationMatch /trac/[[:alnum:]_]+/login>
  AuthType Basic
  AuthName "Trac Project"
  AuthUserFile /usr/local/httpd_mp2/password/trac.passwd
  Require valid-user
</Location>


●datefmt.py
自分はDebianの言語設定がeucJPなので、このままでは動かなかった。
Traceback (most recent call last):
  File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 356, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 206, in dispatch
    populate_hdf(req.hdf, self.env, req)
  File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 74, in populate_hdf
    hdf['trac'] = {
  File "/usr/lib/python2.3/site-packages/trac/util/datefmt.py", line 65, in format_datetime
    return unicode(text, encoding, 'replace')
LookupError: unknown encoding: eucJP


なので/usr/lib/python2.3/site-packages/trac/util/datefmt.pyをいじっ
た。
姑息。
def format_datetime(t=None, format='%x %X', gmt=False):
    if t is None:
	 t = time.time()
    if not isinstance(t, (list, tuple, time.struct_time)):
	 if gmt:
	     t = time.gmtime(float(t))
	 else:
	     t = time.localtime(float(t))

    text = time.strftime(format, t)
    encoding = locale.getpreferredencoding()

    if sys.platform != 'win32':
+       #encoding = locale.getlocale(locale.LC_TIME)[1] or encoding
+       encoding = 'euc_jp'


●util.py
これもいじっていた。こんな感じにした。どこ変えたか忘れたので見比べ
てください。
def to_utf8(text, charset='iso-8859-15'):
    """Convert a string to utf-8, assume the encoding is either
    utf-8 or latin1"""
    try:
	 # Do nothing if it's already utf-8
	 u = unicode(text, 'utf-8')
	 return text
    except UnicodeError:
	 try:
	     # Use the user supplied charset if possible
	     u = unicode(text, charset)
	 except UnicodeError:
	     # This should always work
#            u = unicode(text, 'iso-8859-15')
	     try:
		 u = unicode(text, 'japanese.euc-jp')
	     except UnicodeError:
	     #This should always work
		 u = unicode(text, 'iso-8859-15')
    return u.encode('utf-8')


●subversionをまだ使ってなければ、リポジトリを作る。
tracを使うためには、subversionのリポジトリが何か必要。
すでにあるなら問題なし
# svnadmin create /path/to/repos


このあたりは別のページを読む。

tracの1プロジェクトが、subversionの1リポジトリに対応していて、
subversionの中にいろんなものを入れておく感じにした。
以下はsubversionの中にこんな風にコードを突っ込んだよ的イメージ。
/tmp/repos/以下にディレクトリやファイルを配置して、
reposをインポートしたと思った。
つまり/tmp/repos/overlast/・・などを先に作っておいた、と思う。
/
  overlast/
    project_a/
      trunk/
      branches/
      tags/
    project_b/
      trunk/
      branches/
      tags/
  bw/
    ・・・・


参考文献としてはSubversion メモが好きだな。

●Tracプロジェクトの作成
何かまぁ、ノリで作成。
作成したプロジェクトの権限はhttpd.confに書いてあるapache2を起動す
るユーザに与える。
# mkdir $HOME/trac
# cd $HOME/trac
# trac-admin myprojects initenv
# chown -R www:www $HOME/trac


●trac用のユーザに権限を与える
Basic認証のときに設定したユーザ名に対して、権限を与える。
# trac-admin $HOME/trac/myprojects permission add overlast TRAC_ADMIN


●trac.ini
osの言語設定はeucなのに、ファイルのエンコードはutf-8を使ってる。
だから、このままだとtracに表示される日本語が化ける。
以下のようにして対処。
/root/trac/overlast/conf/trac.iniのdefault_charsetを以下に書き換え。
default_charset = utf-8


●dbファイルの権限関連
tracやsvnのdbファイル関係の権限がうるさいかも。よしなに設定する。

●その他細かい設定
以下を見て、コンポーネントとかマイルストーンを整頓した。
試験管のなかのコード :: Trac にチャレンジ(2)

●その他プラグインなど
以下の説明が丁寧だったなー、と思いました。
ただScrumBurndownPluginの説明は、現状と食い違っていると思うので注意が必要。
やどりぎ@NET: trac + TracBurndownプラグインでスクラム開発のすすめ

●残っている課題
・SVNWEBもやってみたい
・Subversion のコミット時にチケットのデータをフック
・tracやsubversionのログをメールで送る
 ・Trac のバージョンアップをしてみたよ
・ScrumBurndownの動作確認と運用
・tracとsubversionのディレクトリも自動でバックアップしよう

●参考文献
jigelog ≫ Tracインストール
YappoLogs: tracとsvnwebとapache1.3.*でオープンソース開発環境の構築
メモ/WebDAVでSubversion -SaikyoLine.jp
メモ/Mod_pythonでTrac -SaikyoLine.jp
ひげぽん OSとか作っちゃうかMona- - Subversionを ssh 経由で使おう
Trac(BTS+Wiki+SVN)を試してみる [前編] ? Weboo!Returns.
Trac(BTS+Wiki+SVN)を試してみる [後編] ? Weboo!Returns.
まちゅダイアリー - Subversion環境 (2) , trac の日本語化
粉骨砕身の覚悟でがんばります 2005年06月02日
YEDO.COM - PukiWiki - NetBSD/Tracインストールメモ
かえるの寝言default_charset
Trac で遊んでみたよ その1 - 日本語(コメントも)
試験管のなかのコードtrac
Server/trac/使い方 - www.takebay.net/~nao




長いなぁ。
上記までの流れにうんざりした方は、
tracをインストールするときにdebianの標準のものとか、
日本語化されたtracを使うとか、Windows版を使うとかすると、
もっと簡単にいくと思います。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |