MacBookProの無線LANが勝手に切れる

MacBook Pro の無線LANが使ってる最中にブツブツ切れるようになってしまったが、「システム環境設定」の「ネットワーク」-「詳細」-「AirMac」-「使ったことのあるネットワーク」にある該当する設定を一旦消してから再設定したら直った。原因不明。現象としては、起動直後しばらく問題なく使えるが途中で突然接続が切れる。
接続が切れるとき/var/log/kernel.logに以下のログが出力される。

AirPort: Link Down on en1. Reason 2 (Previous authentication on longer valid).

認証に失敗しているようでルータ側でも認証失敗のログが出てた。この間やったことはVMware Fusionを2から3にアップグレードしたことくらい。なんか関係あるのかな?ま、設定し直したら直ったからよしとするか。

Xcodeで #pragma mark を使ってコードを見やすくする

#pragma mark でコメントを書くとそれがXcodeの関数リストに表示されるのでわかりやすくていい感じです。

こんな感じでコメントが関数リストに表示されます。日本語使えるのがいいですね。
コメント部分を”-“(ハイフン)にするとセパレータになります。

ちょっとしたことですが有効活用すれば効率上げられそうです。

Xcodeでアプリへの引数を設定するには実行可能ファイル右クリック情報を見るです

Xcode環境から現在作成中のアプリケーションを起動するときに引数を付けて起動したい!なんてことが度々あります。これをやるにはXcodeの左側ツリーの「実行可能ファイル」内の対象ファイルを選択してから右クリックして「情報を見る」ー「引数」です。

ここに「起動時に渡される引数」を設定できます。追加した引数毎にチェックボックスが付いていてON・OFFで有効・無効を指定できるので結構便利です。

NSLogを使って引数リストを出力してみます。

NSProcessInfo * processInfo = [NSProcessInfo processInfo];
NSLog(@”arguments=%@”, [processInfo arguments]);

出力結果は以下のとおり。(「実行」ー「コンソール」の出力)

2011-06-02 00:58:19.541 Args[34204:a0f] arguments=(
“/Users/foo/Documents/Args/build/Debug/Args.app/Contents/MacOS/Args”,
“-d”,
“/tmp”,
“-d”,
“/tmp”,
“-d /tmp”
)

設定画面でチェックボックスを付けた引数文字列を空白デリミタで単純連結して実行しているようです。設定画面の3番目の -d /tmp はそれぞれ別の引数として解釈されています。空白を含めたい場合は5番目の”-d /tmp”のようにダブルクォーテーションで括ればいいみたいです。このあたりはUnixそのままですね。ABCという引数はチェックボックスがOFFなので引数として渡されません。

引数の設定画面では各引数の編集ができるほか、ドラッグすれば順番の入れ替えもできますのでテストする上でかなり便利に使えると思います。

Macのシェルスクリプト内で echo -n しても改行が抑制されない件

echoコマンドはオプションなしだと指定文字列に改行を付けて表示します。-nオプションを付けると改行を出力しなくなります。odコマンドでダンプ出力してみるとよくわかります。

$ echo ABC | od -t x1
0000000 41 42 43 0a
0000004
$ echo -n ABC | od -t x1
0000000 41 42 43
0000003

ところがMacの場合、シェルスクリプト内で echo -n を使うと -n 部分を文字列として出力してしまい、かつ、改行を付けてしまいます。

$ cat echoABC1.sh ←内容表示
#!/bin/sh
echo -n ABC
$ sh echoABC1.sh ←実行
-n ABC

なんでこうなるか詳しく調べてませんが、どうもシェルスクリプトでechoとするとシェルの内部コマンドのechoを呼び出してしまいそのechoは改行抑制オプションがないっぽいです。なので、外部コマンドの/bin/echoを絶対パス指定で実行すればこの問題を回避できます。

$ cat echoABC2.sh ←内容表示
#!/bin/sh
/bin/echo -n ABC
$ sh echoABC1.sh ←実行
ABC

LinuxとかFreeBSDだとシェルスクリプト内での echo -n が有効なので、そうなっているシェルスクリプトをそのままMacに持ってきて使おうとするとハマるかもしれませんね。MD5ハッシュ取ったりBase64エンコードしたりするとき改行が邪魔になるので-nオプションは結構使うんですよね。気をつけましょう。

MacBookProのHDD交換で使ったトルクスドライバーはT6

MacBookPro(13inch 2009 mid)のHDD交換ではHDDのアダプタを外すためにトルクスドライバーが必要になります。

今回使ったのは、ベッセル(VESSEL) パワーグリップ トルクスドライバー T6 No.B-5400TX です。

重要なのはT6の部分。これはネジ頭部星形穴の大きさのことで今回の作業ではT6じゃないとダメでした。T7とかT8とかだと星形穴に入りません。一応下にamazonリンク張っておきます。

MacBookPro(13inch 2009 mid)のHDD交換(成功?編)

先日のMacBookPro HDD 交換の続き。注文したHDD(HGST, HTS725050A9A364, 500GB)が届いたので早速交換してみる。動いた!スリープ後の復帰でもフリーズしない。よしよし。システムプロファイラの確立リンク速度は3ギガビットになってる。(標準HDDだと1.5ギガビット)いろいろ試したけど問題はなさそう。やっぱり性能が上がってる分標準HDD搭載時よりもきびきび動いているかも。でも気のせいかもしれない。しばらくこの状態で使ってみて問題があれば報告します。

MacBookPro(13inch 2009 mid)のHDD交換(失敗?編)

Windowsで使っていた320GB HDD(WD3200BEVT)が余ったのでMacBookPro標準の160GBと交換してみました。が、スリープからの復帰時にレインボーカーソルになったまま応答がない。特定アプリケーションではなくOS全体でそうなる。HDDアクセスの応答待ちでブロックされてフリーズしてるような感じ。強制再起動(command+ctrl+power switch)するしかありませんでした。
ちなみにMacBookProは2009 mid 13インチの一番安いモデル。EFIファームウェアは最新の1.7なのでAppleがサポートしませんといっているバージョンですね。(泣)
apple.comのユーザフォーラムで同じ構成でのフリーズ報告を見つけましたが原因&対策がよくわからん。非公式ファームウェア入れれば問題は発生しないという情報もあるけど…
時間作って違うHDDで試してみようと思います。しくしく。

Win7の「送る」に追加する方法

エクスプローラのコンテキストメニュー(右クリックで表示されるメニュー)の「送る」は便利!ここに何かを追加したいときWin7では以下のディレクトリに実行ファイルへのショートカットを追加します。

C:\Users\(username)\AppData\Roaming\Microsoft\Windows\SendTo

(username)のところはアカウント名(ユーザ名)。エクスプローラでC:\から辿るときは“Users”が“ユーザー”になってるのと、“AppData”に隠し属性付いててデフォルトだと見えない点に注意しましょう。

Windows7でExcel2000が落ちまくる原因はオートコンプリートらしい

前に書いておいたネタなので他に対策があるかもしれない。Win7にインストールしたExcel2000が落ちまくるのだが、原因はオートコンプリート機能にあるらしい。確かに落ちるのはいつもセル編集直後。この問題はVistaの時点で既に起きていたようだがXPからVista飛ばしてWin7なので知らなかった。

対策としてはオートコンプリート無効化しかない模様。「ツール」-「オプション」-「編集」-「オートコンプリートを使用する」のチェックを外せばOK。

Office2000ってVista以降のOSは正式対応してないですからね。不具合あっても仕方がない。使えるだけマシ。

ThinkPad T60にWindows7入れてみた

ちょっと前ですがWin7(32ビット版)インストールしてみました。
インストールしたPCは ThinkPad T60 2623A8I (Core2Duo, memory3GB)。
Windowsエクスペリエンスインデックスはこんな感じです。Windowsエクスペリエンスインデックス3年前に買ったPCなのでいろいろ時代遅れなところがありますがCore2Duoでメモリも十分にあるのでかなりちゃんと動きます。想像以上かも。ビデオ関係が弱いのは仕方がないか。インストールは簡単。Windows7インストール後ThinkPadのSystem Update 4をインストール&起動すれば必要なドライバを全部入れてくれます。入れようかどうか迷ってる人の参考になれば幸いです。

パソコンとかプログラミングとか。その他、人柱的買い物など。