Archive for 3 月, 2009
« Previous EntriesSubversion+WebDAV+Tracでバージョン管理(プロジェクト管理)
土曜日, 3 月 28th, 2009ボクはいくつかのサイトを運営しています。
運営上、何かと不便なことが出てきたので、バージョン管理を入れることにしました。
有名どころのsubversionを使います。
外出時でも使えるようにしたいのでwebdavと組み合わせます。
「trac」というプロジェクト管理ツールがあるということなので、ついでにそれもいれます。
まずはsubversionとwebdavのインストール。
# yum install mod_dav_svn
これだけで必要なものは全てインストールされます。
次はtracのインストール。
本家サイトにはソースしか置いてませんが、yumでインストールする方法がありました。
# vi /etc/yum.repos.d/deg.repo
—–
[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=0
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
—–
# yum install mod_python
# yum install trac –enablerepo=dag
tracはpythonで実装されているので一緒にmod_pythonもインストールします。
続いて、tracの日本語化。
これはyumではできません。
# wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.2.1.ja1.zip
# unzip ./Trac-0.11.2.1.ja1.zip
# cd ./Trac-0.11.2.1.ja1
# python setup.py install
インストール完了です。
それではSubversionのリポジトリを作成します。
プロジェクト名を「hogehoge」、ディレクトリを「/var/proj/svn」とします。
Apacheからファイルの読み書きができるようにパーミッションを変更、Basic認証でアクセス制限もかけます。
# mkdir /var/proj
# mkdir /var/proj/svn
# svnadmin create /var/proj/svn/hogehoge
# svn mkdir file:///var/proj/svn/hogehoge/trunk file:///var/proj/svn/hogehoge/tags file:///var/proj/svn/hogehoge/branches -m ‘init repository layout (trunk,tags,branches)’
# chown -R apache.apache /var/proj/svn/hogehoge
# htpasswd -c /var/proj/.htpasswd kimura
Apacheの設定をします。
# vi /etc/httpd/conf.d/subversion.conf
———-
<Location /svn>
DAV [...]
pearで携帯の画面サイズ取得
木曜日, 3 月 26th, 2009携帯サイトをつくろうと思い立ちました。
写真画像の表示がメインのコンテンツです。
当然、端末の画面サイズに合わせて写真もリサイズして表示したい。
各キャリアのサイトにあるスペック一覧のデータをシコシコとテキストファイルに書いて・・・、というやり方では新機種が出るたびに更新作業をしなければいけないので却下。
で、いろいろと調べると、pearに「Net_UserAgent_Mobile」なんてものがあるそうです。
さっそくインストール。
# pear install -f Net_UserAgent_Mobile
(2009/03/26時点でBETA版なので「-f」が必要)
サンプルのソースを書いてみる。
—–
require_once(”Net/UserAgent/Mobile.php”);
$agent = &Net_UserAgent_Mobile::factory();
if($agent->isDoCoMo()){
echo “docomoだよ”;
}
elseif($agent->isVodafone()){
echo “softbankだよ”;
}
elseif($agent->isEZweb()){
echo “auだよ”;
}
else{
echo “それ以外だよ”;
}
$disp = $agent->getDisplay()
$dispsize = $disp->getSize();
echo “横は” . $dispsize[0] . “で、縦は” . $dispsize[1] . “だよ”;
—–
OK。縦横とれた。
これは便利だ。
ただ、DoCoMoは端末リスト(XMLファイル)を別途用意しないといけないらしい。インストールされたソースを見ると、たしかに機種情報がベタ書きしてある。これでは最新機種に対応できないね。
このXMLファイルもコマンド一発でつくれるらしい。
CPANのHTTP-MobileAgentにmakexmldocomomapというのがあって、こいつを動かすとサクッと作れるそうです。
ではインストール。
いろいろ足りないのがあって結構てこずった。
# cpan
cpan> install HTTP::MobileAgent
cpan> install XML::SAX::Expat
cpan> install XML::Simple
cpan> install HTML::TableExtract
cpan> install WWW::MobileCarrierJP
インストール完了。
よし、早速やってみよう。
・・・と思ったら
あれ
makexmldocomomapが見つからない。
小一時間探してこんなところに見つけました。
/root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap
で、これを実行すると、
画面にズラズラとXMLが表示される。
お、標準出力じゃん。
# /root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap > DoCoMoMap.xml
これでOK。
さっきのサンプルソースに1行追加。
—–
$_SERVER["DOCOMO_MAP"] = “/path/DoCoMoMap.xml”;
—–
完璧です。
あとはこのXMLが定期的に更新されるようにしてやれば言うことなしです。
参考URL
Net_UserAgent_Mobileを使って、携帯端末の情報を取得
PEAR::Net_UserAgent_Mobile 3G対応携帯判別(ケータイ判別)
DoCoMoマップ利用 PEAR::Net_UserAgent_Mobile_DoCoMoDisplayMap
↓役に立ったと思ったら・・・
jQueryとは
土曜日, 3 月 14th, 2009jQueryとは、JavaScriptライブラリの1つ。
ライブラリの有名どころでprototype.jsライブラリというものもある。
jQueryはファイルサイズが小さく、prototype.jsライブラリに比べ、軽量且つ高速である。
jQuery日本語リファレンス
↓役に立ったと思ったら・・・
セマフォ(Semaphore)とは
火曜日, 3 月 10th, 2009ざっくりと言うと、Linuxで使われる排他制御のしくみのこと。
(Linux以外でも使ってるかもしれませんが)
↓この辺が詳しくて分かりやすいかも。
セマフォ とは:ITpro
オペレーティング・システム講座 並行プロセス
セマフォ
↓役に立ったと思ったら・・・
XenのDomainUで時刻同期
金曜日, 3 月 6th, 2009Xenのバーチャルサーバ(DomainU)の時計がずれていたので、ntpdateで時刻同期をとりました。
# ntpdate www.xxx.yyy.zzz
5 Mar 23:22:45 ntpdate[7860]: step time server www.xxx.yyy.zzz offset -209.707158 sec
よし。
ん?
あれ?
同期できてない。
・・・なぜ?
いろいろ調べてみたところ、どうやらXenの仕様で、Domain0からしか時刻を更新できないらしい。
ただ、Domain0で時刻を合わせていれば、DomainUも正確な時刻を得ることができるとのこと。
なるほど。
で、一応DomainU側での制御もできるらしい。
カーネルパラメータ「xen.independent_wallclock」の値を『1』にすればいい。
# sysctl xen.independent_wallclock=1
もしくは
# echo 1 > /proc/sys/xen/independent_wallclock
うん、今度は同期できました。
↓役に立ったと思ったら・・・
« Previous Entries

