Snow Leopardをインストールした
Snow Leopardが届いたので早速クリーンインストールした。
そういえばファイルシステムの選択が無かったけど、それでもちゃんと大文字と小文字は区別してくれている。
Snow Leopardが届いたので早速クリーンインストールした。
そういえばファイルシステムの選択が無かったけど、それでもちゃんと大文字と小文字は区別してくれている。
Firefoxのキーボードショートカットに慣れてるので、SafariでWeb検索をするためのキーボードショートカットCommand+Option+Fはいまいち使いづらい。
ググってみたところ、システム環境設定から変更できるらしいので、試したところ成功した!
手順は、
凄いなー。
git 1.6.3.3 on Mac OS X 10.5
以下の方法でとりあえず動く。ただし安全かどうかは保障できない。
$ sudo port install git-core +gitweb # 一応gitwebも
ここでは/opt/local/var/git/repos以下にリポジトリを作ると仮定する。
$ sudo mkdir /opt/local/var/git/repos $ cd /opt/local/var/git/repos
$ sudo /opt/local/libexec/git-core/git-daemon --export-all --enable=receive-pack --base-path=/opt/local/var/git/repos
–base-pathでリポジトリの置き場所を指定する。–export-allと–enable=receive-packはまだよくわかってない。
新規に空のリポジトリを作る場合は次を実行。
$ cd /opt/local/var/git/repos $ sudo mkdir testrepos.git $ cd testrepos.git $ sudo git init --bare $ sudo touch git-daemon-export-ok
どっかからクローンしてくる場合(例えば既存のローカルリポジトリ/path/to/cloned/reposを公開したい場合)には次を実行。こっちのがsudoをあまりしなくて済むので楽かも。
$ cd /opt/local/var/git/repos $ sudo git clone --bare /path/to/cloned/repos ./testrepos.git$ sudo touch git-daemon-export-ok$ sudo touch testrepos.git/git-daemon-export-ok
どちらにせよ–bareが大事。
$ cd ~/tmp $ git clone git://hostname/testrepos.git
バージョンも併記した。
まずはgemの準備。
$sudo gem install ZenTest # 4.1.1 $sudo gem install redgreen # 1.2.2, autospecの結果をコンソールで赤と緑で塗り分けてくれる。Growlだけなら不要 $sudo gem install ruby-growl # 1.0.1
RSpecとRSpec on Railsのインストール。
ruby script/plugin install git://github.com/dchelimsky/rspec.git -r 'refs/tags/1.2.7' # 1.2.7 ruby script/plugin install git://github.com/dchelimsky/rspec-rails.git -r 'refs/tags/1.2.7.1' # 1.2.7.1 ruby script/generate rspec
cd ~ curl http://blog.internautdesign.com/files/rails_fail.png > .rails_fail.png curl http://blog.internautdesign.com/files/rails_ok.png > .rails_ok.png
moroさんが勉強会で使ってたチェックとバツマークのが欲しいんだけど、どこにあるんだろう?
ZenTestをインストールしたときについてくる設定ファイルのひな形をコピー。 x.x.xはインストールしたZenTestのバージョンで、ここでは4.1.1。
$ cp /Library/Ruby/Gems/1.8/gems/ZenTest-x.x.x/example_dot_autotest.rb ~/.autotest $ chmod 644 ~/.autotest
以下のように設定する
# -*- ruby -*-
# require 'autotest/autoupdate'
# require 'autotest/once'
# require 'autotest/rcov'
# require 'autotest/restart'
# require 'autotest/timestamp'
# Autotest::AutoUpdate.sleep_time = o
# Autotest::AutoUpdate.update_cmd = o
# Autotest::RCov.command = o
# Autotest::RCov.pattern = o
ok_img = "~/.rails_ok.png"
ng_img = "~/.rails_fail.png"
module Autotest::Growl
def self.growl title, msg, img=ok_image, pri=0, sticky=""
msg += " at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
# autotestは使わないので、-nで指定するアプリケーション名はautospecで良いと思う
# -Hで通知先のGrowlのあるホスト名を指定する
system "growlnotify -n autospec -H localhost --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"
end
Autotest.add_hook :ran_command do |at|
results = at.results.last
examples = results[/(\d+)\s+examples?/].to_i # テストの総数
failures = results[/(\d+)\s+failures?/].to_i # 失敗の数
errors = results[/(\d+)\s+errors?/].to_i # エラーの数
if examples >= 0
if failures > 0 || errors > 0
growl "Tests Failed", "#{examples} examples, #{failures} failures, and #{errors} errors", ng_img, 2
else
growl "Tests Passed", "#{examples} examples, #{failures} failures, and #{errors} errors", ok_img, -2
end
else
growl "Tests Errored", "errors", ng_img, 2
end
end
end
$ cd RAILS_ROOT $ autospec
いくつかサイトを巡って試行錯誤を繰り返したけど、とりあえず以上の作業のみで動作している。結構古い情報もあるみたいだし、autotestとautospecでは~/.autotestでテストの結果を拾う処理に差異があるのでご注意を。
ところでgrowlnotifyでは-Hオプションで通知先のGrowlのホスト名を指定しているけど、うまくやれば,別サーバ上で作業しているときのテスト結果をローカルのGrowlに通知なんてこともできるのかな?ちょっと余裕があるときにでも試してみたい。
もう1週間前のことだけど、新型のMacBook Proを買った。 15インチの2.66GHzのやつ。型番は…MB985J/A。
やっとIntel Macに移行してGoogle Chromeを起動したら、Dock内でのバウンドなしで起動して驚いた。Core2 Duoなためかコンパイルも早いし、TimeMachineもあって環境の再構築は容易に進んだ。いいね、新型。
というわけでPowerBook G4があまったので、こっちはサーバにしてみようかと思う。会社からSSHでテスト環境として利用できたらいいなぁとか、いろいろ考えていたり。あんまり意味は無いかもしれないけど、それも勉強&お楽しみってことで。
いやしかし新型はいいなぁ。
cocoa-dev-japanのMLへの投稿で見つけたネタを劣化コピーな感じでメモしておく。
Tigerでは(少なくとも日本語圏的に)まったく役に立たなかったNSStringのinitWithContentsOfFile:usedEncoding:error:だけれども、Leopardでは読み込むファイルのエンコーディングを適切に返してくれる場合もあるとのこと。
それは当該ファイルをLeopardなNSStringのwriteToFile:atomically:encoding:error:で文字列をファイルに書き出していた場合。これはNSStringがその内容をディスクに書き出す際に、拡張ファイルアトリビュート(ファイルシステム的なアレ)にエンコーディングを記録しておき、読み込む際にそれを用いるという仕組み。
したがって、NSDataで書き出した場合(ネット上のテキストファイルをSafariなどのブラウザで保存した場合はたぶんNSDataを使ってる)や、他のマシン上で書き出したものをコピペしてきたとかだと通用しない(と思う)。
誰かuniversalchardetを移植してくれないだろうか、と他力本願に考えている今日この頃。