指定したディレクトリにMercurialをインストールしたい

指定したディレクトリにMercurialをインストールしたい場合は、以下のようにPREFIXにインストール先のディレクトリを指定してmake installすればOK。

$ make PREFIX=/some/directory/mercurial-1.7 install

以下はおまけ。ダウンロードからインストールして動作確認までの手順。

$ cd /tmp
$ wget http://mercurial.selenic.com/release/mercurial-1.7.tar.gz
$ tar xzf mercurial-1.7.tar.gz
$ cd mercurial-1.7/
$ make PREFIX=/some/directory/mercurial-1.7 install
$ /some/directory/mercurial-1.7/bin/hg version

UIViewのサイズを変更したい

UIViewのサイズの変更のしかたをいつも忘れるので、メモっておく。

// オリジナルの枠を取得
CGRect original = aView.frame;

// 枠の高さを半分に
CGRect new = CGRectMake(original.origin.x, 
						original.origin.y,
						original.size.width,
						original.size.height / 2);

// 新しい枠をセットする
aView.frame = new;

できれば以下のように書きたいんだけど「lvalue required as left operand of assignment」エラーになっちゃうのがだいぶ罠な感じ。

aView.frame.size.height = 200;
//=>「lvalue required as left operand of assignment」エラー!!

aView.frameプロパティの実体はCGRectを返す関数なのと、CGRectはオブジェクトじゃなくてただの構造体なのが合わせ技となってこんなキモイことになってるのかな。ぐぬぬぬ。

sshでパスワードなしでログインしたい

これもいい加減スリーアウトなので、メモしておく。

公開鍵をリモートサーバにコピーして以下の手順で ~/.ssh/authorized_keys に公開鍵を追加し、ファイルのパーミッションを600にすればOK。

$ cat id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys 

参考

そういえば、aptでRubyGemsを入れちゃだめだった(1年半ぶり2回目)

Ubuntu10でRubytwitterライブラリをgemでインストールしようとしたら

$ gem install twitter
WARNING:  Installing to ~/.gem since /var/lib/gems/1.8 and
          /var/lib/gems/1.8/bin aren't both writable.
WARNING:  You don't have /home/thata/.gem/ruby/1.8/bin in your PATH,
          gem executables will not run.
ERROR:  Error installing twitter:
        twitter requires RubyGems version >= 1.3.6

twitterライブラリはRubyGemsの1.3.6以降じゃないとだめだよとエラーが出たので、じゃあRubyGemsをアップデートしようと思ったら、

$ sudo gem update --system
ERROR:  While executing gem ... (RuntimeError)
    gem update --system is disabled on Debian. RubyGems can be updated using

DebianじゃRubyGemsのアップデートがdisableにされてた。あーもー。

もう二度とRubyGemsはaptで入れない。

DocDiffで文字単位でのdiffをとる

通常のdiffは行単位なのですが、文字単位でdiffをとりたくなったのでDocDiffというのを使ってみた。

インストール

まずは以下の手順で ~/usr の下にDocDiffをインストール。

$ cd ~/usr
$ curl http://www.kt.rim.or.jp/~hisashim/docdiff/docdiff-0.3.3.tar.gz > docdiff-0.3.3.tar.gz
$ tar xzf docdiff-0.3.3.tar.gz

これで ~/usr/docdiff-0.3.3 にDocDiffがインストールされます。

diffをとってみる

$ ruby -I ~/usr/docdiff-0.3.3/ ~/usr/docdiff-0.3.3/docdiff.rb a.txt b.txt > diff.html

出力したhtmlを開くとこんな感じに出力されます。なんだか良さそう。