‘Mac OS X’ カテゴリーのアーカイブ

autotest で Symfony + Lime を自動テストする

screen-shot-2010-05-12-at-140931
ruby 界隈でよく使われている自動テストツール autotest の Symfony + Lime 用スタイルを書いて公開しました。
プロジェクトのローカルルールに合わせてあるのですが、軽く手を入れれば他のプロジェクトでも、また Symfony や PHP 以外でも使えると思います。

  • TDD で書いていないと不安が高じて動悸と息切れが始まる
  • red-green-refactoring を唱えなさいとじっちゃに言われた
  • growl の red を見ないとコードが先に進まない

よくある話だと思います。
まずテストが無いと何も始まらない!書いたテストはがんがん自動実行して使い倒したい!
となるとやはり、自動テストの出番ですね。

(続きを読む…)

lgrepコマンドで再帰的に日本語をファイル検索する

lgrepコマンドをご存知でしょうか。日本語対応ページャlvの付属品で、対象ファイルの文字コードを推定して日本語文字列をうまく見つけてくれるという、優れもののgrepです。

古いプロジェクトだと、プログラムはEUCだけど静的ファイルはSJIS、なんてことがあると思います。そんなときに大活躍です。

grepした結果の文字コード変換も勝手にやってくれるので、grep結果をnkfする必要もありません。至れり尽くせりですね。

そんなlgrepコマンドにも弱点があります。grepで言う-r(再帰的にファイルを検索)オプションが無いのです。どこに書いてあるかわからないエラーメッセージを探す、なんてときに-rは必須ですよね。無いなら作ってしまえ、ということで作ってみました。

alias lgrep-r="find . -type d -name .svn -prune -o -type f -print | xargs lgrep"

上記を.bashrcなり.zshrcなりに書けばlgrep-rコマンド(というかエイリアス)の出来上がりです。私は普段の便利さのために.svnディレクトリを無視するようにしてみましたが、環境に合わせて工夫してみてください。

思いつきで作ったんですが、これは便利!最近UTF-8のプロジェクトオンリーの恵まれた人はともかく、そうでない人にはオススメですよ。

端末がグチャグチャになったときのためのコマンドjclearを作りました

みなさん、もちろん端末エミュレータは大好きですよね。PuTTYとかTeraTermとか、MacならTerminal.appとかitermとか、生活の5割は端末エミュレータが相手ですよね(残りの5割はエディタが相手でしょう、きっと)。

ところで、たまに端末に変な文字をペーストしたり、何を血迷ったか「cat *」とかしてしまって、端末の画面制御が壊れてしまうことがありませんか?派手に壊れるときと、微妙に壊れるときと差はありますけど、何にせよこのまま作業し続けたらストレスがたまるぞ、という状態になってしまうことがあると思います。

中でも、X11のktermが特に壊れやすい気がします。ちょっと試してみたところ、バッチリ壊れてくれました。

(続きを読む…)

OmniOutliner ProとCarbon Emacsを仲良くさせる方法

今回は普段以上にピンポイントな情報をお届けします。個人ブログでやれば?というくらいに読者を選ぶ話題ですが、気にしないことにします。

早速ですが、私は次のような悲惨な目にあったことがあります。

  1. MacOSX上で
  2. OmniOutliner Proをインストールした後で
  3. Carbon Emacsでバッファ末尾に移動(Command + >)しようとしたら
  4. ウギャー

上記のように不幸な条件が重なると、Emacsで編集作業をしていたはずなのに、なぜかOmniOutlinerが起動します。こんなイジメを受けたらEmacs使いは生きていけません。きっとOmniの中の人はvi使いなんでしょうね。しくしく。(多分どちらでもないと思いますが)

実は、MacOSXにはserviceという仕組みがあります。これは、セレクションの情報を別のアプリケーションに投げるような枠組みのようです。別のアプリケーションとの連携方法として、起動するアプリケーションをメニューから選ぶこともできますし、キーボードショートカットを割り当てる事も可能です。Command + >でOmniOutlinerが起動したのはこの機能によるものです。(ちなみに、Pro版でしかこの悲劇は起こらなかったと記憶しています)

(続きを読む…)

MacPortsのコマンド逆引き一覧

MacPortsというのは、BSDのportsを参考に作られたMacOSX用のパッケージングシステムです。同様のパッケージングシステムとしてはFinkもありますけど、好きな方を使えばいいと思います。ちなみに、ディノ社内のMacユーザーの中ではMacPortsの独占状態になっています。私は最初Finkを使っていたんですが、話が合わないのが寂しくてMacPortsを使うようになりました。

さて、そのMacPortsですが、私が長年rpm&yumに慣れきっていたせいか、「こうしたい時どうするんだろ?rpmコマンドなら出来るの知ってるんだけど」みたいなことが良くあります。これは結構ストレスです。そこで、逆引き形式の一覧表を作ってみました。リファレンスマニュアルを見れば全部書いてあることなんですけど、意外と便利なんじゃないかと思います。少なくとも私は自分で便利でした。(さすがにもう覚えましたけどね)

(続きを読む…)

MacユーザのためのSubversionTips

どうも初めましてchariです。
ディノオープンラボラトリがオープンして結構経ったのにやっと初記事です。

2年前はMacユーザが自分含め3人ぐらいしかいなかったディノですが、
気がつけば11人までMacユーザが増えました!Mac大好きな自分としてはすばらしいことです。

ぼちぼち新人メンバーなどがSubversionを使い始めたのもあって
次の新人さんが来たときなどにすぐに教えられたり自分が再セットアップするときに
また調べ直す手間を省くためにもmacでSubversionを利用する際の
ポイントやらGUIツールなどをまとめてみようかと思います。

(続きを読む…)

DashboardでEmacsのコマンドタイピング

Screen shot
こちらでは初めまして。スタートアップ研修記の方で記事を書いてたりする新入社員のuchiumiです。
Dashboard上で動く、メタキーの使えるEmacsのコマンドタイピングゲームを作ってみました。
画面上に出てくるEmacsのコマンドを、ひたすら打って覚えよう!というような感じのものです。
遊び方は、解凍後、ダブルクリックでインストールしていただき、「保持」というボタンがあるので、それを選択するとDashboardに表示されるようになります。

Emacsを学んでいくうちに、コマンドのタイピングゲームみたいなのががあったら良いなぁと思い検索してみたところ、素敵なものを発見しましたが、残念ながらcommandキー(メタキー)がうまく使えないようでした。
どうやらブラウザなどのコマンドの方が先に優先されてしまうみたいです。
どうしたらメタキーが使えるか先輩社員の方に相談してみたところ、Dashboard上で動かせば大丈夫なんじゃないかという素晴らしい提案をいただいただきましたので、さっそくwidgetsを作ってみることにしました。

(続きを読む…)

同じテキストをみんなで編集 – Coda で co-writing 体験

春ですね〜・・気がつけば桜も咲いていて、今日は dino に新卒さん達が入ってくる入社日です。何も知らない新人さん達をどういう風に染めてやろうか〜と社内は今から wktk しています。

新人さん達の開発環境は Mac に統一されたのですが、今日はそんな Mac で面白いアプリケーションがあったのでご紹介を。

Coda は web ページコーディングのための統合開発環境で、色んなユニークな機能を搭載しています。中でも特徴的なのが co-writing 機能です。実際に二人でエディタを触って遊んでいる姿をスクリーンキャストに撮ってみました

方法は簡単、Coda をインストールしたら画面下部の「共有」ボタンを押し、招待するユーザを選ぶだけです。co-writing の不思議な世界をお楽しみください。

仕事で使えたら面白そうだと思うのですが、使いどころが思いつきません。実用はさておき、楽しければいいんじゃないでしょうか。

iTermでCommandキーをMetaキーの意味にするパッチ

タイトルの通りですが、MacOS用のターミナルソフトであるiTermについて、Emacs使い向けのパッチを作りました。私の手元で3週間ほど動いていますので公開します。iTerm 0.9.5に対するパッチですが、CVS上の最新版に対しても適用可能だと思います。

以前の記事「シェルの操作にAltキーを使おう」でも紹介しましたが、私はシェルの操作をするのにEmacs風にMeta(Windows環境なら通常はAlt)キーが使えた方が入力効率が良くなると考えています。特にEmacs使いならエディタでもシェルでも同じキー操作ができますから、慣れるメリットは大きいはずです。

ところで、私は最近メイン環境をMacに移行しました。Macに移行してみての最大の不満は、ターミナルソフトでCommandキーをMetaキーの意味で使えない点です。私はTerminal.AppとiTermの2つしか試していないのですが、少なくともこの2つではCommandキーをMetaキーにすることはできないようです。OptionキーをMetaキーにすることはできるのですが、Optionキーはキー配置的に押しにくく、慣れるのは無理だと感じました。

Carbon EmacsではCommandキーをMetaキーにしていることもあり、何とかターミナルソフトでもCommandキーをMetaキーにしたいと考えていたところ、ドイツのDiedrichさんが同じ意図の(本人によればquickかつdirty hackな)iTermのパッチを作っているのを見つけました。これを更に私なりに改造したパッチを公開します。
iterm-cmdkey-as-meta-patch-20071030.txt」です。機能は下記の通りです。

(続きを読む…)

Carbon EmacsでCtrl+Spaceが使えない問題の解決

こんにちは、hnwです。会社用のノートPCとして買ってもらったMacBookが今日届きました。私はMac初心者なので、しばらくインストールに苦しむ予定です。

さて、Mac OS X上では大半のアプリケーションでCtrl+aなどのEmacsバインディングが利用できます。素晴らしいですね。その一方で、Emacsユーザーを無視しているようなデフォルト設定も複数存在します。例えば、Spotlightと「ことえり」がCtrl+Spaceを奪ってしまう問題もその一つです。Emacs使いでCtrl+Spaceが使えなかったらストレスで死にそうになると思うのですが、Spotlightと「ことえり」の開発陣にEmacs使いはいなかったのでしょうか。愚痴を言っていても始まらないので、今回はこれを解決します。

(続きを読む…)