masat999's posterous

Media_https1i1picplzt_eifof

Taken with picplz.

Mercurial on CentOS でバージョン管理(+ mod_wsgi)

ソースコードのバージョン管理として Mercurial を導入してみました。お勧めらしい mod_wsgi の導入も何とかできたので、記録として残しておきます。

GitHubを使ってみようと Eclipse + EGit も試してみたんですが、EGit の動きがイマイチよろしくなかった印象が…そんなこともあって、Google code の Mercurial を試した結果が割と良かったので、とあるプロジェクトで実用できるか環境構築も含めて評価してみることにしました。

Git や Mercurial は CVS、Subversion などのようなシングルリポジトリではなく、分散型バージョン管理ができる次世代(もう”現代”と言っても良いと思うけど)ツールです。Subversion の居心地に慣れきった方も一度使ってみることをお勧めします。HTTP経由で push / pull できるところが魅力なんだと私は思ってます、ハイ。

1. Mercurial をインストールする

# yum install mercurial

2. mod_wsgi をソースからコンパイルし、インストールする

$ wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
$ tar xfv mod_wsgi-3.3
$ cd mod_wsgi-3.3
$ ./configure
$ make
$ su -c "make install"

3. /etc/mercurial/hgrc を作成する
確か mod_wsgi など、hgwebdir で HTTP 経由での push はデフォルトoff になっていたはずなので、そのおまじないと考える。
社内イントラでセキュリティ保護を考えなくて良い場合に push_ssl = false とすれば良い 

[web]
allow_push = *
push_ssl = false

4. /etc/httpd/conf.d/hg.conf を作成する(httpd.conf に直接追加でもお好きなように。)
ちなみに Location ディレクティブでDigest認証をするように設定していますが、いらないかもしれません。pushするときの認証に必要です。(1/28修正)

LoadModule wsgi_module modules/mod_wsgi.so
<VirtualHost *:80>
    ServerName hoge
    DocumentRoot /var/www/html
    ErrorLog /var/log/httpd/hoge-error_log
    CustomLog /var/log/httpd/hoge-access_log common
    WSGIScriptAlias /hg /var/www/wsgi-bin/hgwebdir.wsgi
    <Directory /var/www/wsgi-bin>
        Options ExecCGI FollowSymlinks
        AddHandler wsgi-script .wsgi
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    <Location /hg>
        AuthType Digest
        AuthName "Mercurial"
        AuthDigestProvider file
        AuthUserFile /var/lib/hg/hgusers
        <LimitExcept GET>
            Require valid-user
        </LimitExcept>
    </Location>
</VirtualHost>

5. /var/www/wsgi-bin/hgwebdir.wsgi を作成する(4. の WSGIScriptAlias のパスと合わせれば良い)

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb.hgwebdir_mod import hgwebdir

application = hgwebdir('/var/www/wsgi-bin/hgwebdir.config')

6. /var/www/wsgi-bin/hgwebdir.config を作成する(5. の hgwebdir 引数と合わせれば良い、はず)

[collections]
/var/lib/hg = /var/lib/hg

7. /var/lib/hg/hgusers を作成する
ここで作成したユーザーが Mercurial にアクセスできるユーザーになります。

(1/28追記) 4.の AuthNameで定義した値と realm が一致する必要があるので注意。ここでハマりました…

# htdigest [-c /var/lib/hg/hgusers] 'Mercurial' hguser

8. Apache 再起動

# service httpd restart

Filed under: mercurial scm

Google Map API + Geocoding API on Android

AndroidにはGoogle APIアドオンがあるので、単純な地図アプリの実装は簡単ですよね。

ここではそのプラスアルファ編として、Geocoding API を利用して住所から緯度・経度を取得し、MapControllerを操作する方法について説明したいと思います。

Read the rest of this post »

Filed under: android google api

明けましておめでとうございます

今年の正月は両親の還暦をお祝いしてきました。妹(長女)も3人目を妊娠中ということで、兄妹3人揃って実家で正月を祝うことができたのも本当に久々なことで、とても良い時間を過ごせました。

母はもちろんのことですが、普段寡黙で笑顔を多く見せない父が、赤いちゃんちゃんこを羽織りながら、これ以上無い程の笑顔で子供達からのサプライズを喜んでくれた様は、私にとってとても感慨深いものです。

特に昨年は体調を崩し、転職などもあってかなり心配させた一年だっただけに、新年早々から最高の親孝行が一つできたのではないかと思います。準備に奔走してくれた妹たちにも本当に感謝しなきゃですね。

 

Filed under: life

ANAインターコンチネンタルホテルでクリスマス

101225_122750

娘には可哀相だけど、ピエール・ガニエールで半年ぶりの夫婦水入らずのランチ。

iアプリでTwitterのOAuth認証を実装する

PHP や Ruby での OAuth 認証については幾つも情報がありますが、iアプリで OAuth 認証をやった話題はとんと見かけません。ドコモマーケットで個人がDXアプリを提供することもできるようになった今、ログを兼ねてどのように実装したか残しておきたいと思います。

Read the rest of this post »

Filed under: doja+star
13
To Posterous, Love Metalab
Web Toolbar by Wibiya