xcodeproj を CONFLICT しづらくする mergepbx

Xcode を使って開発していると、.xcodeproj が、論理的には CONFLICT していないのに Xcodeのバージョンアップ等で激しく CONFLICT することがある。 mergepbx を使うと、理不尽に CONFLICT されるケースをある程度解消してくれる。複数人で開発している時は入れておいて助かることが多い。

1年くらい使ってるけど、特に問題が起きたことはないです 🙂

Install

brew install mergepbx

Usage

以下の2ファイルに設定を追記(プロジェクト単位でもglobalでもOK)すれば、あとは git merge や git rebase とか通常の操作で mergepbx を使ってくれるようになります。

.gitconfig

下記を追加。

[merge "mergepbx"]
  name = Xcode project files merger
  driver = mergepbx %O %A %B

.gitattributes

下記を追加。

*.pbxproj merge=mergepbx
xcodeproj を CONFLICT しづらくする mergepbx

MacでIEの確認をリモートで行う

IEの確認で、Azure の RemoteIE というのが知らないうちに出てた。これだと、手元に virtual machines のイメージを置いておかなくて良いので、ディスク容量の節約になる。

登録すれば無料で使えるようだが、inactive な時間が10分続くか、 active な状態でも60分経過すると切断される制限がある。短時間の確認なら問題無さそうだが、長時間の確認は繋ぎ直す必要がありそう。

まずは、RemoteIE で Register for access して、自分の Region を選ぶ。日本なら East Asia が良い。

Mac で使う場合は、Microsoft Remote Desktop アプリを App Store からダウンロードして、Azure RemoteApp というところをクリックすると、ログイン画面になるので、ログインする。
すると、InternetExplorer(email: iewebeco@microsoft.com) という Invitations があるので、チェックを入れると自動的に起動する。いきなり IE の画面が開いているので検証できる。

MacでIEの確認をリモートで行う

git でオレオレ証明書のサーバを使う

https://example.com/LoveLive.git
という、オレオレ証明書なサーバがあったとして、そこから https 経由で git clone とかする方法。

clone

% GIT_SSL_NO_VERIFY=1 git clone https://example.com/LoveLive.git

pull, push とかやるときにいちいち付けるのは面倒なので、.git/config に設定を書いておくと次から要らない。

.git/config

[http]
     sslVerify = false

あと、Basic認証がかかってた場合もいちいち入力するのは大変。OSXだと、キーチェーンに認証情報を保存出来る。さっきのところに追加する形で、

.git/config

[http]
     sslVerify = false
[credential]
    helper = osxkeychain

と書けば1回だけ入力すればOK

git でオレオレ証明書のサーバを使う

簡易的な画像の加工ツール Skitch がとても使いやすい件

 画像に文字を入れたり線を引いたりする程度の、簡単な操作を簡単にできるソフトの Skitch がすごく使いやすい。Mac 専用のソフトです。使うには signup が必要。1分で終わる。

 本格的に画像を編集するのではなくて、写真にメモを入れて人に渡したり、Webデザインの崩れを指摘するときとかに使えそう。元々ある画像を編集するだけではなく、スクリーンキャプチャを取ってすぐ編集できるのが良い。

 画像キャプチャして四角を付けて文字を入れるだけなので、1分以内の作業。

 日常的にフォトショやイラレを使っている方だと、もともと一瞬なのかもしれないけれども、そういうったソフトを使っていない一般人には割とめんどくさい作業。今までは、スクリーンショット -> Seashore を使って文字入れ という手順を踏んでいたけれども、やたらめんどいと思ってました。

 あと、保存のインターフェイスが秀逸。「10.4以下しか使えない」は関係ないです…。「drag me」という箇所をドラッグすると、画像を drag したのと同じ状態になります。Finder や Skype などに drop すれば、いちいちダイアログとか開かなくていいので、とても使いやすいと感じました。

 Web 開発していると、Safari, Firefox, Chrome, IE 等さまざまなブラウザに合わせるために、結構崩れちゃったりするので、そういうやり取りをデザイナーとするときなどに重宝すると思います。といっても、だいたい IE でおかしくなっちゃうのですけどね!よく使うツールになりそうです。今まで使ってなかったのが悔やまれる。

簡易的な画像の加工ツール Skitch がとても使いやすい件

Mac に Vim7.3 を入れた

iMac に Vim7.3 いれました。

% sudo port selfupdate
% sudo port install vim MacVim

vim と MacVim の違いが良く分かってない。MacVim って GUI版のvimあるけど、あれは.app の形式で配布されてるし、実はよく知らない。

それと、GUI版は MacVimvim-cocoa がある。7.2のときは、日本語入力時におかしくなることがあったけど、直るといいなー。

Mac に Vim7.3 を入れた

Macでxargsを使ってcpする

ファイル一覧を得て、それをまとめてあるディレクトリにコピーしたいなーと思って xargs に渡したところで、第一引数に渡したいけどどうするの?って思って調べたら、cp には -t [target directory] というオプションがあるようです。これを使って

{ファイル一覧を得る処理}| xargs cp -t [target directory]

とすることで目的が達成できそうです。しかし、Mac で上記のコマンドを実行すると -t が使えないようで、更に調べると Mac に最初から入ってる cp コマンドは、GNUの cp とは機能が異なるということが分かりました。

GNU の cp と同等のものを入れたい場合は、macports で coreutils てのをインストールすると良いです。

% sudo port install coreutils

こうすると、頭に g がついた形でインストールされます。例えば、cp は gcp、mv は gmv といった具合。非推奨というか、他のアプリケーションを使おうとしたときに弊害が出る可能性があるけれど、GNU の cp を cp として使いたい場合は、インストール時にオプションをつけることで実現できる。

% sudo port install coreutils +with_default_names

実際、違いで困ったことが今回初めてだったのでvariantsなしでインストールしてみました。これで、cp -t のオプション使えるようになります。mv -t も同様の動作になる。gcp と gmv としてですが。

今回やろうと思ったことは、解像度が 1920×1200 の画像だけを抽出して壁紙として使おう、ってことだったので、Mac に標準で入ってる画像いじくるコマンドの sips を使った。本当は1回で 高さと幅を絞り込みたいのだけれど、やりかたが分からなかった…。

sips -g pixelWidth [ファイル名] で、幅がとれます。表示は下記のように、2行に渡ってパスと情報がでます。

/Users/chihaya/save/壁紙/wallpaper1.jpg
  pixelWidth: 1024

grep -B n でn行前まで表示できるので、pixelWidth: 1920 でひっかけて、1行前のパスを取得して、さらにもう1回 sips で高さをとって pixelHeight: 1200 でひっかければ、1920×1200の画像とれそうです。

sips -g pixelHeight *| grep -B 1 "pixelWidth: 1920"| grep "/Users/chihaya"| xargs sips -g pixelHeight| grep -B 1 "pixelHeight: 1200"| grep "/Users/chihaya"| xargs gcp -t ./wall_papers/

とすれば、current directory にある画像のうち、1920×1200 のものを、 ./wall_papers/ 以下にコピーすることが出来ます。簡単。

Macでxargsを使ってcpする

iTermでscreen するとWindowが小さくなってしまう件

 SnowLeopardでiTermを使っていて、なぜか screen すると Windows が勝手に小さくなってしまって困っていたのですが、設定がありました。

 Bookmarks -> Mangae Profiles で、使っているプロファイルを開きます。

 そのなかで、

Disable session-initiated window resizing

という項目をチェックすると、勝手にリサイズされなくなりました。

iTermでscreen するとWindowが小さくなってしまう件