2009年12月26日土曜日

最近、Mercurial について勉強しているのでメモ

リンクメモ
日本語チュートリアル
GUIツールのTortoiseHg
TortoiseHgの日本語Wiki
オラ本のPDFを配布してるとこ

2009年12月24日木曜日

Debian でIPアドレスを固定にする

/etc/network/interfacesを編集する
下みたいになっているのを
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

↓の様に直す(192.168.0.11)にする場合
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.1

直したら
#ifdown eth0
#ifup eth0
でおk
# /etc/init.d/networking restart
でもいけるがその場合は↓を書いておくこと(ifup -aの対象となる)
auto eth0

※VirtualPCではallow-hotplugはコメントアウトしておいた方がよさげ

参考リンク
http://asaasa.tk/wiki/?Debian%2FSettings%2FStaticIP

Bingで萌えキャンペーン

http://campaign.live.jp/bing/
検索しまくるとなんか壁紙とかもらえるらしい

2009年12月23日水曜日

mp3のエンコードが出来るプレイヤーみたいなソフトって??

SCMPXです

screenで開始するときの初期画面を表示しない

免責事項とかCopyrightとかを表示しないようにするには
~/.screenrcに
startup_message off
と書いておく

2009年12月20日日曜日

bashで端末ロック機能を解除する

Ctrl+Sを押すと端末がロックしてしまうのが不便だと感じたら
↓を.bashrcなどに書いておく
stty stop undef

参考リンク
http://www.mazn.net/blog/2007/12/17/42.html

rep2の過去ログをtmpreaperを使って整理

OpenJaneとかにはDAT落ちしたものを整理(削除)する機能があるけどrep2にはないのでtmpreaperで実装する
やり方はrep2/data直下にあるファイルはお気に入りとかなんで削除しない
それ以外は削除するっていう方法で行う

↓みたいなのをcronとかに保存しておけばいいんじゃないかな
#!/usr/bin/perl
use strict;
use warnings;

#### Initial Setting ###############
our $DAT_DIR="/var/www/rep2/data";
####################################

chdir ($DAT_DIR) or die $!;
unless ($DAT_DIR=~/\/$/){
$DAT_DIR.="/"; #最後が/で終わってなかったら付け足す
}
opendir (DIR,$DAT_DIR) or die $!;
my @dir=readdir DIR;
my @fdir;
for (@dir){
push (@fdir,$_) if -f $_;
}
closedir DIR;

my $command;
$command = << 'PRE';
nice -n10 tmpreaper --delay=30 --mtime-dir --symlinks 7d \
--showdeleted \
--mtime \
PRE
for (@fdir){
$command.="--protect '$DAT_DIR".$_."' \\\n";
}
$command.=$DAT_DIR.".";
system $command and die $!;

Debian LennyをVirtualPC2007へインストール

試した環境は以下の通り
VirtualPC 6.0.156.0
Debian Lenny 最小のCDイメージ バージョンは5.0.3

↓のサイトとかを参考にするとどうやらインストール時にパラメータを追加しないといけないらしいので
http://hiro-system.blog.ocn.ne.jp/blog/2009/03/debian_lennyvir_5b2e.html
インストール時にquit を取ってから"noreplace-paravirt vga=791 clock=pit"を追加する
(インストール時はまだ日本語配列ではないので=イコールのタイプには注意する)

参考リンクには/boot/grub/menu.lstを編集、update-grubするようなことが書いてあるけどなんかインストール時に指定したパラメータが有効になって既にmenu.lstに反映されていたので省く。あとGUIも使わないのでそこら辺も無視した。


参考リンク
Debian Wiki

2009年12月13日日曜日

天気予報をical形式で配信してるところ

iCal天気
通常のicsの他にGoogle用とMac用も配ってる

Thunderbird3も出たことなのでコレクションを作っておく

Thunderbirdの方のコレクション
俺のアドオン(雷鳥)

Firefoxの方のコレクション
俺のアドオン(火狐)

2009年12月12日土曜日

携帯でrep2見てるときに外部リンクを通勤ブラウザ以外に設定する

通勤ブラウザは重いしイマイチ使い勝手が良くなかったのでGoogleのGWT(Google Wireless Transcoder)を使う
rep2/lib/ShowThreadK.php を編集すればおk
650行目あたりの
// 通勤ブラウザ
if ($_conf['k_use_tsukin']) {
$tsukin_url = 'http://www.sjk.co.jp/c/w.exe?y=' . urlencode($url);
if ($_conf['through_ime']) {
$tsukin_url = P2Util::throughIme($tsukin_url);
}
$ext_pre_hts[] = '<a href="' . hs($tsukin_url) . '">通</a>';
}
↑を↓の様に変更
// 通勤ブラウザ
if ($_conf['k_use_tsukin']) {
// $tsukin_url = 'http://www.sjk.co.jp/c/w.exe?y=' . urlencode($url);
$tsukin_url = 'http://www.google.co.jp/gwt/x?u=' . urlencode($url);
if ($_conf['through_ime']) {
$tsukin_url = P2Util::throughIme($tsukin_url);
}
// $ext_pre_hts[] = '<a href="' . hs($tsukin_url) . '">通</a>';
$ext_pre_hts[] = '<a href="' . hs($tsukin_url) . '">G</a>';
}


あとpic.toも画像変換に悉く失敗するので
携帯閲覧時、画像リンクにpic.to(ピ)を利用を「しない」にしておいた
(こうすれば外部リンクはここで指定したURLを使う)

2009年12月6日日曜日

メールをCUIで読むソフト mutt

インストールはDebian Lennyならaptitudeで簡単に入る
そんで使い方
基本的な使い方とかはこことか見れば大体分かる
Maildirを指定して
mutt -f ~/Maildir
これでとりあえず見れる
メールボックスとかは一々指定するのは面倒なので~/.muttrcを作成して
set folder="~/Maildir"
set spoolfile="~/Maildir"
set keep_flagged=yes
set mbox=""
set postponed="/tmp/postponed"
set sort="reverse-date-received"
↑みたいなのを書いておく意味はここら辺を見るとわかるかも
設定ファイルを書けば以降はmuttのみで起動できる

mutt操作方法
PageUpとPageDownで次とか後のメールを選択(vim風にjkでもできるけど削除が選択できない)
?でヘルプ
mで新規メール作成


参考リンク
http://www.emaillab.org/mutt/whatis.html

DovecotのTrashフォルダはどこにあるのか?

それぞれ~/Maildirの中のドットファイルでしたls -aしたら見つかります
/Maildir/.Sent
/Maildir/.Trash
/Maildir/.Drafts
/Maildir/.Junk

Windowsのコマンドプロンプト(DOS窓)でディレクトリ削除

ディレクトリごと再帰的に削除するには
rmdirコマンドを使います
UNIXでいうところのrm -rみたいな
rmdir /S /Q hogedir

参考リンク
http://sonic64.com/2006-04-05.html

Windowsのコマンドプロンプト(DOS窓)でディレクトリコピー

フォルダの再帰的なコピーには
xcopyを使いましょう
xcopy /?で詳しくみれます

例)E:ppmというディレクトリを再帰的に全部コピー
xcopy /E /I /Y E:\ppm D:\ppm_backup\ppm2

参考リンク
http://www5.ocn.ne.jp/~m-shin/windows/windows-bat-xcopy.html

perlモジュールを作るための雛形を作る h2xs コマンド

↓みたいな感じで雛形を作る
h2xs -X -A HogeModule

参考リンク
http://torus.jp/memo/x200311/PerlModule.rd.html

モジュールの最後にPODも追加してくれて便利

__END__
# Below is stub documentation for your module. You'd better edit it!

=head1 NAME

HogeModule - Perl extension for blah blah blah

=head1 SYNOPSIS

use HogeModule;
blah blah blah

=head1 DESCRIPTION

Stub documentation for Okyama, created by h2xs. It looks like the
author of the extension was negligent enough to leave the stub
unedited.

Blah blah blah.

=head2 EXPORT

None by default.


=head1 SEE ALSO

Mention other useful documentation such as the documentation of
related modules or operating system documentation (such as man pages
in UNIX), or any relevant external documentation such as RFCs or
standards.

If you have a mailing list set up for your module, mention it here.

If you have a web site set up for your module, mention it here.

=head1 AUTHOR

hogeuser, Ehogeuser@E

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009 by hogeuser

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.0 or,
at your option, any later version of Perl 5 you may have available.


=cut

2009年12月5日土曜日

定期的に/tmpを掃除してくれるソフトtmpreaper

Debian Lennyで試した。
Red hat系だとtmpwatchとかあるみたいだけど無いのでこれを使う
まずはaptitudeでインストール
インストールすると/etc/cron.daily/tmpreaperが作成される
これによって毎日cronで実行される

設定はこれをいじってもできるが基本的には
/etc/tmpreaper.confをいじる

まずはワーニングが出るので13行目あたりにあるSHOWWARNINGをコメント化する
#SHOWWARNING=true

次にオプションを設定する各オプションの意味は以下の通り

TMPREAPER_TIME・・・どのくらいアクセスがないファイルを削除するか?設定値はデフォルトで7dつまり7d以上アクセスがないと削除

TMPREAPER_PROTECT_EXTRA・・・削除しては駄目な名前を指定

TMPREAPER_DIRS・・・削除の対象とするディレクトリ デフォルトは/tmpのみ 複数指定するときはスペースで区切る 例)TMPREAPER_DIRS='/tmp/. /var/tmp/.'

TMPREAPER_DELAY・・・実行するまで待つ時間 デフォルトは256秒

TMPREAPER_ADDITIONALOPTIONS・・・他に指定したいオプションがある場合はこここに入れる他のオプションはmanを参照

あと/etc/cron.daily/tmpreaper見れば分かるけど
デフォルトで
以下のオプションが設定されている。ヤバイファイルは消えないようにしているようだ
--protect '/tmp/.X*-{lock,unix,unix/*}' \
--protect '/tmp/.ICE-{unix,unix/*}' \
--protect '/tmp/.iroha_{unix,unix/*}' \
--protect '/tmp/.ki2-{unix,unix/*}' \
--protect '/tmp/lost+found' \
--protect '/tmp/journal.dat' \
--protect '/tmp/quota.{user,group}' \


※注意
デフォルトのシェルだと--ctimeが設定されています↓みたいに
nice -n10 tmpreaper --delay=$TMPREAPER_DELAY --mtime-dir --symlinks $TMPREAPER_TIME \
$TMPREAPER_ADDITIONALOPTIONS \
--ctime \
これだとcronでlocateのDBを作っているので、アクセスタイムが更新され
いつまで経っても削除されません。(ctimeオプションはatime+ctimeのチェックをします)
用途によってはここを--mtimeに変更してもいいと思います

postfixでOP25B対策

OP25Bを実施しているISPの場合、25番ポートへの出力が制限されているからリレーしてもらうように設定する

/etc/postfix/main.cfを編集 (hoge.ne.jpがSMPTサーバーだとする)
ispauthはユーザー名とパスワードを書くファイル名前はなんでもOK
relayhost = [hoge.ne.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ispauth
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = cram-md5,login,plain
ispauthには以下のようなものを書く
[プロバイダのSMTPサーバー]:587 プロバイダのユーザーID:プロバイダのパスワード
サーバーがhoge.ne.jp、ログインIDがfoobar、パスワードがbuzzだった場合は以下のように書く
[hoge.ne.jp]:587 foobar:buzz

そんで以下のコマンド投入
chmod 640 /etc/postfix/ispauth
postmap /etc/postfix/ispauth
/etc/rc.d/init.d/postfix restart

参考リンク
http://centos.server-manual.com/postfix_op25b.html

smtp_sasl_mechanism_filterはそのSMPTサーバーが使っているものにあわせるのでそれを確認する
telnet hoge.ne.jp 587
EHLO hoge.ne.jp
↓みたいなのが出たら↑の設定でOK
250-AUTH CRAM-MD5 PLAIN LOGIN

参考リンク
http://www.aconus.com/~oyaji/mail2/op25b.htm


※注意 SMTP認証を使う場合はlibsasl2-modulesがインストールされていることを確認してください

どうしても出来なかったら↓みたいな感じでパケットキャプチャー→Wiresharkで見て考える感じで
tcpdump -s 1500 ip host ?.?.?.? -w out.cap

2009年12月1日火曜日

dovecotでQuota設定

メールの容量を制限する(クォータの設定)するには?
Plugin settingsの部分に以下を追記
↓がグローバルなクォータ設定(ユーザー個別に設定すればそちらが優先される)
参考リンク→http://wiki.dovecot.org/Quota/1.0
plugin {
quota = maildir:storage=10240:messages=1000
}

上記の設定後
protocol imapに次の文を追記
参考リンク→http://wiki.dovecot.org/Quota/1.0
protocol imap {
mail_plugins = quota imap_quota
}

Thunderbirdで試すとクォータが有効なら↓のようなメッセージが出る

で、クォータ当てただけじゃ不便だから古いメッセージから自動で削除してくれるように設定するにはTrashプラグインを使う
protocol imap {
mail_plugins = quota imap_quota trash
}
plugin {
quota = maildir:storage=10240:messages=1000
trash = trash = /etc/dovecot/dovecot-trash.conf
}

さっき指定したdovecot-trash.conf (無ければ作る) を編集する
↓はTrashだけ削除の対象とする例
1 Trash
↑のファイルを1行つくればOK