2009-03-23(月) [長年日記]
■ git学習フラグが立ってしまった。またはCorkscrewでgitのproxy越え
昨日はGitHubのアカウントを取るなどしたものの、基本的にgitを真面目に使う気はなかった。職場のネットワークはHTTPしか通さないproxyが壁になって、「git:~」とか「svn+ssh:~」なんてリポジトリは使えないのだ。
などとつぶやいたら、「Corkscrew」というキーワードが降ってきた。トンネル掘削用のツールらしい。知らんかった。gitコマンドが持つproxy越え機能と連携できるようだ。壁の向こう側に特別な仕掛けがいらないということはたぶん、以前使ったconnect.cと似たようなものかな。ウチのproxyはポート制限は特に行っていないので、これでいけそうだ。参考サイトはgitをHTTP Proxy経由で利用したい場合の対処法。
まずはgitコマンドとcorkscrewコマンドのインストールなんだけど、Debian使いはここでまずつまづく。「git」だと同名の聞いたこともないファイラーが入ってしまうのだ。ここは「git-core」:
% sudo aptitude install git-core corkscrew
GitHubではgit 1.5以降のみサポートしているようで、1.4どまりなetchでは(バックポートを入れない限り)使えない。lennyにしろってことですね、わかります。
gitから使わせるcorkscrew用のコマンドを作成:
% cat ~/bin/git-proxy #!/bin/sh corkscrew YOUR_PROXY_HOST YOUR_PROXY_PORT $1 $2 % chmod u+x ~/bin/git-proxy
YOUR_PROXY_HOSTとYOUR_PROXY_PORTは環境に合わせて。あとは環境変数GIT_PROXY_COMMANDに上記コマンドを指定して、gitコマンドを実行すればいい。とりあえず角谷さんのtestable_tdiaryをcloneしてみた:
% export GIT_PROXY_COMMAND=git-proxy % git clone git://github.com/kakutani/testable_tdiary.git
ちゃんと成功したようなので今日はここまで。gitは他のSCMと比べて考え方が相当違うみたいなので、今までgitの話は避けてきたのに、これで学習フラグが立っちゃったなぁ。時間ねぇぇぇぇ。
つーかさー、たしかLinusがgitを作ったときは「これはLinuxカーネルのソース管理には向いているけど、他のプロジェクトには合わないだろう」とか言ってなかったっけ? なんでこんなに盛り上がってんの?
■ さくらインターネットにSubversionを入れたメモ
mixi2gmailをCodeReposに入れたはいいが、動かしてるさくらのサーバにsvnが入ってない件。とほほ。この同じサーバ上に各ユーザが入れたsvnがどんだけあるか考えたら悲しくなってくるね。
で、Web上にはいろんな手法があふれていて混乱するので、おれも混乱に拍車をかけることにする。
% wget http://subversion.tigris.org/downloads/subversion-1.6.0.tar.gz % tar zxf subversion-1.6.0.tar.gz % cd subversion-1.6.0 % wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.3.3.tar.gz % tar zxf apr-1.3.3.tar.gz % mv apr-1.3.3 apr % wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.3.4.tar.gz % tar zxf apr-util-1.3.4.tar.gz % mv apr-util-1.3.4 apr % http://www.webdav.org/neon/neon-0.28.4.tar.gz % tar zxf neon-0.28.4.tar.gz % mv neon-0.28.4 neon % ./configure --prefix=$HOME --with-ssl --without-berkeley-db % make && make install
sqlite3とかswigを入れてないけど動いてるからよし。
追記: 2009-03-24
kayakayaさんからもっと簡単な方法を紹介してもらった。レンタルサーバに入れるのならこれで十分なはず。おれもこれに入れ替えた。
2009-03-22(日) [長年日記]
■ mixi2gmailを動くようにしたり
mixiの日記を読むために、yoosee作のmixi2gmailを使っているんだけど*1、数日前からどうもHTMLメールとして認識されなくなってしまった。作者のブログは1ヶ月くらい更新ないし、渡米中だからmixiなんて見てないのかな……と思って自力で解決。
ホントは夕べ、ちゃちゃっとやろうと思ったんだけど、自宅のマシンにrubygemsが入ってなくて、aptitudeで入れ始めたら(メモリ極貧のVMwareなので)いつまでたってもgem updateが終わらな……以下gemに関する愚痴1024行省略……今朝やった。
バグの本題に入る前にまずつまづく。Mechanizeが最近はNokogiriを使うようになっていて、これがなぜかmixiトップのparseに失敗する。コードを追っかけて、WWW::Mechanize::html_parser=で旧来のHpricotに置き換えられることを知って回避。Hpricot互換を謳うNokogiriが、挙動が違うのもいかんだろうと思ったので、バグレポートを送るなど。おかげで(いまごろ)lighthouseのアカウントを取った。
肝心の問題は、今までのコードでContent-typeが2行出ていて、最初が「text/plain」次が「multipart/mixed」。これまでは後が優先されていたのに、最近Gmail側の実装が変わって前者が採用されるようになったらしい。どっちが正しいのかな(ここでRFCを調べるのが正しい姿勢です。調べてないけど)。
あとは最新のMechanize/Hpricotで動くように微調整をしたり、どうも長文が文字化けするのはHTMLがそのまま入っているせいだとあたりをつけて、base64にしてみたり。いちおうパッチは送ったけど、反応がなかったらCodeRepos.orgにでも入れちゃうか。
差分はgistにて。これのために(いまごろ)GitHubのアカウントを取ったり。lighthouseといいGitHubといい、なんか変な進歩のある日だったなぁ。もっとも、デバッグに使ったマシンに入っているのはDebian etchなのでgitが古いのか、GitHubのconfigが動かないっぽい。とほほ。
2009-03-23 追記
CodeRepos.orgに入れました。あえてGitHubではなく(笑)。
http://svn.coderepos.org/share/lang/ruby/mixi2gmail/
*1 おかげさまでmixiの画面はもう何ヶ月も拝んでいない。
2009-03-21(土) [長年日記]
■ WikiFarm閉鎖のお知らせ
S.P.C.で運営しているWikiFarmを閉鎖することにした(→アナウンス)。6月でspc.gr.jpドメインの期限を迎えるにあたり、グループとしての活動がほぼ停止していることから延長しないことに決めたためだ。現状生きているコンテンツ(というかサービス)はたぶんWikiFarmだけなので、まずは先立ってアナウンスだけでも。
個人的にはHikiを継続して使いたいんだけど、Farm全体にちゃんとしたspam対策をするのは時間的に困難で、Farm運営自体がちょっと荷が重くなっちゃった。自分でメンテしてるWikiだけならいいんだけど。というわけで、まずはパラボラアンテナだけでも移転先を探さなくては。まぁ、tdtds.jpに移動すればいいんだけど。
なお、Farm利用者全体へのアナウンス方法は、面倒だったのでtemplate/view.htmlの書き換えという大胆な方法を採用した。あとはできるだけ目立つようにtheme/hiki_base.cssをいじるなど。
Before...
◆ ただただし [むむ。sqlite3はあったけど、swigは見つからないなぁ。ホストによって違うのかしらん?]
◆ りんね [gitでNTLM認証Proxyを通過するのに苦労しました…。 GIT_PROXY_COMMANDだとどこへのアクセ..]
◆ ただただし [>りんね あ、やっぱりgit-configでも指定できたんですね。さすがに環境変数はないだろうと思っていたのですが(..]
◆ じゃっくん [スイマセン、確かにswigはないですね。 trac入れるとき何か2つが不要だった印象があったので…。もひとつはpyt..]
◆ ひらく [ここで空気を読まずに「Mercurialならhttpでアクセスできます」とか言ってみます]
◆ ただただし [お待ちしてました(笑)。]