2012年1月24日火曜日

iOS Simulatorがzombie量産(笑)

XcodeでiOSアプリの開発をするとiOS Simulatorのお世話になるわけですが、アプリプロセスの管理にちょっとだけ問題があるようです。

Xcodeでアプリの実行を指示→iOS Simulatorの起動とアプリの実行→Xcodeからアプリの終了をせずにiOS Simulatorの終了・・・という流れで作業をすると、開発アプリの終了SIGNALを受け取る受け皿であるiOS Simulatorがいなくなり、開発アプリがzombie化します。zombie化したプロセスはlaunchdにぶら下がることになるので、結局OSのリスタートをすることになります。iOS Simulator上での開発プロセスの検証の際には、iOS Simulatorを終了させるのではなく、Xcodeに戻ってProduct -> Stop (Cmd-.)を叩くように習慣づけると良いと思います。

とはいえ、ついついiOS Simulator側で Cmd-qとか叩いちゃうので、はやく修正してもらえるとありがたいですね。

2012年1月20日金曜日

TrimEnabler 2.0 released!

先日beta5のリリースをお伝えしたTrim Enablerですが、2.0としてリリースされました。

NewImage

詳細については、こちらのページを御覧ください。
http://www.groths.org/?page_id=322

僕はLion@MacBook ProにSSD 512GiBとHD 1TiBを載せていますが、Trim Enablerのおかげもあってかとても快適に使うことができています。SSDの価格もこなれてきたので、マシンの買い替えを検討されている方は、是非SSDへの換装も検討してみてください。僕は「大きいことはいいことだ」とばかりに512GiBのSSDを購入してしまいましたが、~Library以外のホームディレクトリをHDに逃がすという使い方で実際に使っているのは100GiB程度です。光学ドライブをHDに換装することができるMacBook Proならではのメリットと考えて、容量の小さいSSDを組み合わせるのも良い選択だと思います。

Trim Enabler 1.xからのバージョンアップについての記事はこちら→http://petittech.blogspot.com/2011/11/trim-enabler-20-beta2lionssd.html

 

 

2012年1月17日火曜日

Linuxでのmdns(avahi/Bonjour)による名前解決。

macやpcでParallelsやVMWareなどの仮想化ソフトを使っていると、ゲストOSの名前解決にストレスを感じることがあります。

RedHat LinuxやCentOSでは、avahi daemonがデフォルトでインストールされます。avahi daemonはZeroconfのフリーソフトウェアによる実装で、IPアドレスの自動割り当てや、名前解決の機能などを実現します。ZeroconfのAppleによる実装であるBonjourとの相互運用が可能ですので、macでは特別なソフトウェアを追加することなく、すぐに使うことができます。WindowsではiTunesをインストールすると、Bonjourの機能が使えるようになります。

多くの仮想化ソフトでは、ゲストOSのためにDHCP daemonを提供してくれています。ですから、avahiの恩恵を受けるのはやはり名前解決の部分だと思います。もちろんこれはStaticにIP Addressをアサインされたマシンに対しても有効です。逐一/etc/hostsファイルを編集するのも面倒ですし、IPアドレスでゲストOSにアクセスするのはもっと面倒です。Bonjour@mac/winとavahi@Linuxを手軽に使うのは非常に簡単です。Linux ゲストOSのホスト名を .localドメインに所属させるように定義します。node1.localとか、mylinux.localとか。CentOS5では、/etc/sysconfig/networkファイルでホスト名を設定することができます。

これだけでmacやBonjourが有効になっているWindowsから、名前によるアドレス解決ができます。ホストOSの端末からsshなどをするときに名前解決ができるようになるので、大変便利です。しかし、この状態では少しだけ不満がでます。それは、Linuxホスト自体がavahiによる名前解決をしてくれないというものです。(macからping linux1.localは問題なく行えるが、linux1.localからping linux2.localができない)

Linuxで、avahiによる名前解決をするためには、nss-mdnsライブラリをインストールした上で、/etc/nsswitch.confを編集する必要があります。以下、その手順です。(ここであげている例はOSはCentOS 5.7 x64です)

  1. epel repositoryにアクセスできるようにする。nss-mdnsライブラリはepel repositoryからダウンロードすることができます。http://download.fedora.redhat.com/epel/5/x86_64/ にアクセスして、最新のepel-release-*.noarch.rpmを探してダウンロードします。このblogを書いている時点では5.4が最新のようですので、http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpmをダウンロードすることになります。
  2. ダウンロードしたepelのrpmパッケージをインストールします。もちろん、直接ネットワークからインストールしてもらってもかまいません。
    # rpm -Uvh epel-release-5-4.noarch.rpm
  3. nss-mdnsパッケージをインストールします。
    # yum -y install nss-mdns

この操作によって、以下のファイルがインストールされます。

  • libnss_mdns.so.2
  • libnss_mdns4.so.2
  • libnss_mdns6.so.2
  • libnss_mdns_minimal.so.2
  • libnss_mdns4_minimal.so.2
  • libnss_mdns6_minimal.so.2

/etc/nsswitch.confでhostsの項目にmdnsやmdns4, mdns6_minimalなどを指定することでavahiによる名前解決がLinuxノードでもできるようになります。ここでいくつか注意点があります。mdnsモジュールは、IPv4, IPv6の両方に対応したモジュールなのですが、IPv4のみでの運用を行なっているようなネットワークである場合、IPv6のアドレス解決をしようとしてタイムアウトをしてしまうことがあるようです。ですので、どちらかに限定したネットワークを構築している場合は、mdns4あるいはmdns6のどちらかを使うことをお勧めします。また、_minimalとついているのはavahiによってアサインされたリンクローカルのアドレスについてのみ名前解決をするというものなので、DHCPやStaticにIP Addressをアサインしているような環境では使うことができません。yumコマンドでインストールされるnss-mdnsパッケージは/etc/nsswitch.confに対してmdns_minimalを使うような設定を書き込みますので注意が必要です。

Trim Enabler 2.0beta5が出ました。

macのHDをSSDに換装している人には必須のTrim Enablerです。2.0 beta5がリリースされました。

NewImage

1.xのリリースがLionに対応していないという、ちょっとした混乱もありましたが僕のMacBook Proでは問題なく動作しています。今回のbeta5で大きな問題が見つからなければ、これが正式リリースの2.0になるとのことです。(1.xからのupdateについては、手前味噌ですがこちらの記事を御覧ください。→http://petittech.blogspot.com/2011/11/trim-enabler-20-beta2lionssd.html )

内容としては、patchの内容そのものには変更がないそうで、beta4からの再パッチあては不要だそうです。beta5の変更はパッチあての作業そのものについての向上で、その項目は以下の通りです。

  • パッチあてにかかる時間が、以前のバージョンよりも格段に速くなった
  • 変更を確認するのに、Updateボタンやアプリの再スタートをする必要がなくなった
  • 状態についてのメッセージを向上させた
  • いくつかの状況で経験したクラッシュに対する修正
  • SSDの名前について適切にリポートするようになった。複数のSSDがある場合にはその数を表示するようになった。

開発者のblogによるbeta5のリリース記事はこちら→http://www.groths.org/?p=617

ダウンロードは上記リンクの主記事にある Download Trim Enabler Beta 5からどうぞ。

2012年1月16日月曜日

TORNE用のHD買わなきゃ。

タイの大洪水のためにHDの価格が高騰してますが、運悪く(?)TORNEに使っているHDがそろそろ満タンになってきました。

今、うちで使っているのは、これです。

TORNEのためのディスク選びは意外と気を使いますよね。本体と同時にディスクの電源が切れてくれないと困ります(僕が持っているWDはこの部分がダメでした)し、なによりもTORNEに認識してもらわない(手持ちの日立の3Tは認識させられませんでした)といけません。

というわけで、もう一本同じ製品を買っておこうと思います。この製品は、中身のディスクによって当たり外れがあるという話を聞くので少しだけ怖さもありますが、運試しのつもりでぽちってこようと思います(笑)

2012年1月15日日曜日

MOTUのUltraLite mk3 Hybridが気になってます。

今月号のサンレコで紹介されていたMOTUのUltraLite mk3 Hybridが気になってます。

NewImage

少々長いですが、前置きです。・・・自宅にリハーサル&レコーディングスタジオを作成しようと検討しています。とは言うものの、やはり住宅地に作るスタジオですから音は多少控えめになります。ドラムを電子ドラムにして、音量をコントロールできるようにすることを検討してます。とはいうものの、やはり良い音で演奏したいという欲求は強いので、ギター&ベースのアンプで悩んでいます。

一つの方法としては、普通にギターアンプ・ベースアンプを置いてしまうというのがあります。僕はギターを弾いていて、Line6のPOD HD500(アンプシミュレータ)→Electro HarmonicsのMagnum .44(パワーアンプ)と接続し、ライブハウスでもキャビネットだけ借りるようにしてます。ですので、ギターアンプに関して言えばキャビネットだけ買えば良いわけで、Marshallの1936とか1960とかだけ買えばいいのかな?なんて思っています。SoundHouseさんの製品に驚きの低価格キャビネットもありますし。そんなわけで、(ヘッドを買わなくても良いため)それほど高価な投資が必要になるわけではないのです。

もう一つの方法は、全ての出音をモニタースピーカーだけで完結させるというもの。これだと、Line6のキャビネットシミュレータも使えるので音の幅は広がりますが・・・やっぱり音圧を感じるという点ではきっと物足りなく感じるだろうなと予想してます。

と、ここまで説明させてもらって本題です。後者のセッティングをしようとしたときに、どうしても多チャンネルモニターの環境が必要になります。つまり、演奏する各メンバー全員が専用のモニタースピーカーを置き、そのモニタースピーカーから自分の音と他のメンバーの音をミックスした音を出すわけです。当然、各自で聞きたい音は異なるはずなので、モニターのチャネルごとにミックスは変わってくるはずです。手持ちの機材として16chのデジタルミキサーがあるのですが、残念ながら2チャンネル分のミックスしか作れません。そこで、MOTUのUltraLite mk3 Hybridです。これは内部にDSPを内蔵していて、複数のミックスチャネルを作成することができ、それを別々の出力系統に流すことができるそうなのです。雑誌の内容を読む限りでは最大8chのミックスができるので、ホームスタジオには十分な数です。

ホームスタジオについて検索してみるのですが、なかなか記事も少なくて困っています。

そうそう。Amazonだと並行輸入品も取り扱っているんですね。かなりお買い得になりそうです。

2012年1月7日土曜日

QuickSilverで外付けディスクのイジェクト。

外付けディスクのアンマウントって、意外と面倒です。僕はMacBookをデスクで使うときにはTimeMachine用の外付けHDに接続しているのですが、もちろんデスクから移動するときにはディスクのアンマウントの操作が必要です。デスクトップで、ディスクを選択してCmd-E・・・これでも十分簡単だとは思うのですが、LoveQuickSilver blogで面白い方法が紹介されていたのでご紹介します。

まず最初に/Volumesをショートカットで呼び出せるようにします。クイックシルバーのランチャーを表示した状態で、Cmd-,(カンマ)を叩き設定画面を開きます。CatalogのCustomを選択してください。

NewImage

次に、クイックシルバーのランチャーを呼び出して、/を入力してからカーソルの左を二回押します。すると、起動ディスク(/)が選択されます。次にOptionキーを押しながらカーソルキーの右を一回叩いてください。すると隠しファイルを含めたファイル・フォルダが選択できるようになります。この中から、/Volumesを探して選択します。この状態で/VolumesのフォルダアイコンをQuick Silverの設定ウィンドウ(カタログ/カスタム)にドロップします。

NewImage

こんな風にVolumesが登録されると思います。次に、Triggers/Custom Triggersを選択します。

NewImage

+ボタンをクリックして、新しいHotKeyを登録します。

スクリーンショット 2012 01 07 0 54 24

Select an Itemの項目にはVolumesを登録。(Volumesとタイプすることで表示されます。)

ActionにはShow Contentsを選択します。(shcとタイプすると選択できます。Show Contents Menuではないので注意してください。)

NewImage

これで、Volumesの内容を表示するというコマンドが作られたことになります。このコマンドにホットキーを割り当てます。HotKeyの部分をクリックして任意のホットキーを登録します。ここではオリジナルの記事と同じようにCtrl-Shift-Vを登録しておきます。

NewImage

これで、Ctrl-Shift-Vをクリックすることで、Volumes以下の項目にインスタントアクセスができるようになります。

スクリーンショット 2012 01 07 0 55 55

こんな感じですね。ここで、Tab -> Eと叩くとEjectが選択できるので簡単にディスクの取り外しができるようになるのですが、この手順もショートカットしてしまいましょう。QuickSilverの設定画面でPreferences/Extraを開いてください。Capitalized keys modify action in command windowという項目があるので、これをチェックします。これは大文字で入力された文字はコマンドウィンドウへの入力して扱うという意味になります。具体的にはShiftキーを叩けばいいわけですよね。

NewImage

ここまでの設定をした上での操作をまとめると以下のようになります。

Ctrl-Shift-Vでボリューム(ディスク)一覧の表示をして、アンマウントしたいディスクを選択し、Shift-Eを押してEjectを選択してエンター。また、ディスクを選択した状態でCmd-Shift-Eを叩くことでも(エンター無しで)イジェクトができます。

イジェクト機能を使うかどうかは別として、QuickSilverを簡易ファイラーとして使う時にはVolumesのホットキーはとても便利ですね。僕自身もQuickSilverは全然使いこなせていないと思っているので、LoveQuickSilverのblogはとてもありがたいです。

2012年1月6日金曜日

肩肘張らずに使うgitのススメ。

最近流行りのコードバージョン管理システムがgitです。ポストsubversion的な見方もありますが、もっと気楽に一人で使っていいんじゃないかと思ってます。

subversionやcvsと比べてgitはシンプルに運用することができます。任意のディレクトリで

$ git init

とやると、カレントディレクトリに.gitというディレクトリができます。この.gitディレクトリがレポジトリそのものです。

レポジトリにファイルやフォルダを追加するのには、addコマンドを使います。

$ git add ファイル名

ファイルをレポジトリに格納するにはcommitコマンドを使います。

$ git commit

作業ディレクトリの状況を確認するにはstatusコマンドを使います。

$ git status

レポジトリからファイルを取り出す・復元するにはcheckoutコマンドを使います。

$ git checkout ファイル名

すごく素直ですよね。

 

ステージ

gitにはステージという単語があります。ステージというのは、<編集中>と<コミット済み>の中間に位置する状態であると言うことができます。複数のファイルを編集し、それぞれステージしてからまとめてコミット・・・というのがgitでの作業の流れになります。逆の見方をすると、コミットするべきファイルに印を付けるのがステージです。

編集したファイルをステージするには、addコマンドを使います。レポジトリへの追加と同じコマンドなのが不思議ですね。

$ git add ファイル名

ステージしたファイルを戻す(アンステージ)するには、reset HEAD --コマンドを使います。

$ git reset HEAD -- ファイル名

最後にはレポジトリへのコミットを忘れないようにしてくださいね。

$ git commit

add/reset HEADの組み合わせが非対称なのが気になってしまうので、僕はaliasを設定してます。

$ git config --global alias.stage add
$ git config --global alias.unstage 'reset HEAD --'

この設定を行うことで、以下のようなコマンドでステージ・アンステージを行うことができるようになります。

$ git stage ファイル名
$ git unstage ファイル名
$ git commit

 

ついでといっては何ですが、aliasコマンドでcheckoutのaliasも設定してあります。

$ git config --global alias.co checkout

タグ付け

gitの良いところは、タグ付けがしやすいところです。小さな機能実装を繰り返してソフトウェアの実装を進めていくことが良くあります。小さな機能実装(&デバグ)が完了した時点で気楽にタグ付けしてしまって良いのです。

gitのタグには、いくつかの種類がありますが、annotated tag(-a)が気楽で良いです。

$ git tag -a タグ名 

タグに対するコメント入力を促されるので、コメントを入力してください。コメントは-mオプションで指定することができます。

-aを付けないとlightweight tagというものになります。lightweight tagではコメントの入力ができませんし、tagに関する付随情報が記録されませんので少し不便かもしれません。

$ git tag -a v1.0.3.2 -m '設定保存機能実装'

こんな感じで使ってます。タグの一覧は、単純にtag -lコマンドで指定できます。タグにつけたメッセージを表示するには、-nオプションで表示する行数を指定します。

$ git tag -l -n10

つけたタグへの移動はcheckoutコマンドで行います。

$ git checkout タグ名

これでタグへの移動が完了します。

 

gitの能力はもちろんこれだけではないですけれど、とりあえず「タグ付けがし易い」という特徴の恩恵を享受するだけでも、gitを使う価値はあると思います。

気が向いたらもう少し高度な使い方もblogに書いてみようかなと思ってます。

2012年1月5日木曜日

Hearが予想外に良い感じ!

昨年末のMac Update Winter Bundleは大当たりでした。TechTool Proだけでも大満足なんですが、Hearも意外といいんです。

うちはEDIROLのFA-66とM-16DXというサウンドユニットがmacにつながっています。M-16DXは便利なんですけど、アンプの音が少し固めであるということに不満を感じてました。それで、試しにHearをいじってみたのですが、これが大正解。

NewImage

僕はこんな設定で使ってます。Extended Fidelityの項目が良く効いているみたいで、解像度は若干下がったのかもしれませんが、心地よい音を得ることができました。もちろんCubaseやT-Rackを使うことに比べると「なんか違うなぁ」という気もするのですが、なにより手軽です。

もう一つ嬉しい機能がソフトウェアミキサ。アプリケーション単位でボリュームをコントロールすることができます。

NewImage

たとえばMail.appなど、個別に音量を制御できないアプリケーションの音量も制御できますのでとても助かります。

内蔵スピーカーやヘッドフォンでも十分に効果が確認できます。(もちろん、一番いいのは素直なスピーカーと組み合わせることだと思います)無料体験版もあるようなので、macの再生する音に不満をお持ちの方はぜひ試してみてください。

http://www.prosofteng.com/products/hear.php

2012年1月3日火曜日

DEVONthink pro.こんな風に使ってます。

試行錯誤しているDEVONthink pro.ですが、とりあえず4つの使い方で使ってます。少しずつもっともっと使いこなせるようになればいいな〜と、のんびり考えてます。

ノートを取るためのソフトウェアとして

これはEvernoteでノートをとるようなイメージです。Ctrl-Cmd-NでRich Textの新規作成になります。RichTextのデフォルトフォントが小さめなので、Cmd-+でフォントを大きくしてから使い始めるようにしてます。ノートの作成場所はinboxにしてます。とりあえずinboxで作業して、書き終えたなと思ったらあらためてグループ整理をするようにしてます。

データレポジトリとして

仕事で使うファイル、プライベートのプロジェクトなどをまとめてデータベースにしています。ファイルの実体もDEVONthinkが管理してくれるので便利です。DEVONthinkが管理しているデータ実体から新規ファイルの複製をするときには、デスクトップに一旦書きだしてからDEVONthinkに書き戻すようにしてます。もっとうまい方法があれば誰か教えてください。

zipアーカイブの管理

DEVONthinkは、実体を自分で管理せずにファイルのインデックスだけをデータベースにする機能があります。実体を移動したときなど、これをトラックしてくれないという問題はありますが、目的を決めてしまえば運用対処できます。僕は以下のようにしてます。

~/Archives - 内蔵ディスクに置くアーカイブ置き場
/Volumes/Archives.ext/ - 外付けディスクに置くアーカイブ置き場

内蔵ディスクには、今使っているソフトやデータのアーカイブを置いてあって、いつでも再インストールできるようにしています。外付けディスクにはバージョンの古くなったものやアンインストールしてしまったソフトウェアのアーカイブや、古い情報のアーカイブを置いています。これをDEVONthinkでインデックスだけ管理しています。ファイルを移動してしまった後は、Option-Cmd-Sでインデックスの再構築ができるので、この操作をしてからデータの検索などをするようにすれば問題ありません。これはつまり、「自分のアーカイブの目録だけはいつでも手元にある」という状況を作ることになります。ですので、外出中で外付けディスクにアクセスできないときでも、少なくとも目録だけにはアクセスできるという便利さを手に入れることができます。

iOSデバイスでの情報持ち出し

DEVONthink to goを使うことで、DEVONthinkで管理している情報の持ち出しができます。同期はLAN経由で行いますので高速ですし、外部に情報が流れる心配もありません。例えば出張前にitineraryやhotelのbooking informationをまとめたグループをiOSデバイスにコピーして持ち出すことでペーパーレスを実現することができます。ここで活躍するのがレプリケーションです。DEVONthinkではグループやファイルのレプリケーションを自由に作成することができます。レプリケーションはPOSIXで言うところのシンボリックリンクに似たもので、グループやファイルのレプリカをいくつでも作成することができます。これによってグループやファイルの異なるアスペクトからのアクセスが可能になります。僕はiOSデバイスに持ち出したいと思ったファイルやグループのレプリカをMobile Syncグループ下にレプリケーションすることで、情報持ち出しを管理してます。

 

DEVONthinkの日本語の記事ってあまり見つからなかったので、ご参考になれば。