猫見の日々、又は sudo kill -TERM 1

市電が上る坂の途中の路地裏で暮らす、数匹の野良猫たちと

MacPorts install時にコンパイラを変える

2010-11-25 15:39:43 | OS X
OS X 10.3 の頃からgnustep に取り組んでいるのだが、なかなかBuild できずにいた。10.6 でMacPort を使わないでなら素直にBuild できるようになり、Sample を弄って遊べるようになった。

Snow Leopard も10.6.5 となり、普段触る事があまりないMacPorts を
$ sudo port selfupdate


で更新した。その後はinstall されているパッケージを

$ sudo port update outdated


で更新しようとしたが、gnustep-base のconfig でerror になる。何もしていしないと元々OS X でinstall される(apple)gcc4.2 が使われるのだが、これがいかんらしい。

MacPortsのコンパイル時に使用されるコンパイラを変更する方法

を参考に、コンパイラにgcc 4.4 を指定した。
$ sudo port -v install gnustep-base configure.compiler=macports-gcc-4.4


4.4 でもだめぽなので、
$ sudo port install gcc45 configure.compiler=macports-gcc-4.4


でgcc4.5 をinstall、それを指定したがそれでもいかん。gnustep のbuild 環境を構築するgnustap-make をgcc4.5 でrebuild(uninstall & install) したらgnustep-base もOK になった。以降、

$ sudo port upgrade outdated configure.compiler=macports-gcc-4.5

で行けた(ほぼ)。

最後のxorg-server がerror になったが、Xサーバが多少古くても問題ないだろう、ということで作業終了とした。

【参考】
MacPortsでステキなUNIXツールをインストール

双極性障害・免許更新・改正道交法一定の病気、主治医が診断書を書いてくれない時は…

iPhoneウィルス「poc-bbot」に感染

2010-11-24 22:16:35 | iPhone
ああ、やだねー、Mac 使いだからウィルスとは無縁でいたのに。これだけiPhone iPod touch が流行ると標的になるよなー、って思っていた矢先にやられてしまいました。

JailBreak すると感染する確率が圧倒的に高まりそうなので、該当者は注意されたし!

☆駆除参考サイト
iPhoneウィルス「poc-bbot」に感染 | THE ROAD AHEAD v5.0

(iOS4)ssh_exchange_identification: Connection closed by remote host

双極性障害・免許更新・改正道交法一定の病気、主治医が診断書を書いてくれない時は…

一時的に言語を変更する

2010-11-24 01:51:02 | OS X
システム環境設定>言語とテキスト で言語の設定を変えると以降に起動するアプリに反映されるけど、特定のアプリで言語設定を変えたい場合煩雑だし、戻し忘れたりする。一時的に、あるいは恒久的にアプリ個別的に言語設定をする便利なものを二つ紹介します。

LaunchAppPlugin
~10.5は、コンテキストメニュープラグイン
10.6 は、LanguagesService(agent)として提供されている。

Language Switcher
アプリとして提供される。UI が洗練されている。

try on error end try - そして自分は殺せない

2010-11-23 21:08:45 | OS X
AppleScipt の try on error end tell の仕掛けがよくわからなかったので、以下のスクリプトをAppleScript Editor からコンパイル、実行してみた。

if application "AppleScript Editor" is running then
try
tell application "AppleScript Editor" to quit
on error
beep
display dialog "an error occured."
end try
end if


実行している自分自身をquit できないので、エラーが発生して、on error 節に移り、beep音がしてダイアログが表示される。AppleScript メニューから実行した時はエラーにならないので、AppleScript Editorが終了する。

スリープに入る時何かしたい

2010-11-23 09:49:45 | OS X
SleepWatcher を使うと、スリープ に入る時、出る時(wake)などに実行するファイルを設定することができる。

この機能何に使おうかと考えて、Safari の最前面のWindow をwebアーカイブ形式で任意の場所に自動保存できたらいいな、と思いつきました。

これを実現するshell スプリプトがこれ。

#!/bin/sh
osascript << EOF
try
tell application "Safari" to activate
tell application "System Events" to keystroke "s" using command down
delay 1
tell application "System Events" to keystroke return
on error
display dialog "失敗!"
end try
EOF


これをchmod で実行形式にして、.sleep という名前(SleepWatcherの仕様)にして、$HOME に設置しておく。

※ Safari が起動されてない時はうまく動かない。
※※ osascript は10.6 でエラーになる→Snow Leopardでosascriptを使うと、「Adobe Unit Types.osax」がload errorになる。 - 名もないテクノ手

アプリをDock に表示させない

2010-11-23 05:48:31 | OS X
InsomniaX や、Quicksilver のように、Dock に表示されてない方が煩わしくないかな、というアプリがありますね。こうしたアプリをDock に表示させなくする AppleScript です。


set filePath to choose file

set posix_path to POSIX path of filePath
set infoPath to posix_path & "Contents/info"

do shell script "defaults write " & quoted form of infoPath & " LSUIElement 1"

tell application posix_path
quit
delay 1
try
tell application posix_path to activate
on error
delay 1
tell application posix_path to activate
end try
end tell


ターミナルが慣れている方は

defaults read /Applications/アプリ.app/Contents/info LSUIElement

で確認して、

defaults write /Applications/アプリ.app/Contents/info LSUIElement 1

で書き換えてください。

* defaults write したら、アプリを再起動してください。
** アプリによっては、sudo が必要になります。

【参考】
http://kotoerisan.blog16.fc2.com/blog-entry-186.html
http://homepage.mac.com/travellers/blog/C746134881/E613669364/index.html
http://blog.goo.ne.jp/vallie/e/4dd9f978f29a3c2c68b92bd854e430aa

Bonjour Sleep proxyとmDNSResponder

2010-11-20 16:31:30 | OS X
Mac OS X 10.6 で追加された Wake On Demand 機能について。

10.5 まで、あるいは一般的にはWake On Lan 技術でスリープ(スタンバイ)状態のMac やPC をリモートマシンから叩き起こすことができる。Wake On Demand では、共有サービスを持ったままスリープしているMac(10.6) を、Bonjour Sleep proxy技術を用いて、on Demand で他マシン(10.5以降)からスリープ解除する。

Mac OS X v10.6:Wake on Demand について


Bonjour Sleep proxyはAirMac やTimeMachine で実装されているが、実はOS X のmDNSResponder を使って実行可能だそう。

Mac OS X で Bonjour Sleep Proxy を動かす方法


【参考(より深く理解するために)】
Bonjour Sleep ProxyとIP,Etherアドレス乗っ取り

双極性障害・免許更新・改正道交法一定の病気、主治医が診断書を書いてくれない時は…




Mac がhang した時、電源ボタンの長押しをしないで済む方法

2010-11-20 07:48:31 | OS X
必ずしもうまくいくとは限らないが、、

1) command + option + ESC などでアプリの強制終了ができない場合

→remote からssh で入って、以下のコマンドを叩く。

killall -TERM loginwindow


最良の場合、GUI のログインウィンドウ画面になる。

2) 1) でブルー画面となるなど、local マシンで操作不能の場合

sudo kill -TERM 1


(pid=1 は、root由来の launchd)

リモートマシン( Mac OS X )をスリープさせる方法

2010-11-20 07:36:44 | OS X
ssh でリモートマシンに入って、以下のcommand を叩く。

osascript -e 'tell application "System Events" to sleep'


よくSleep させるマシンの場合、Shell の初期設定ファイルに登録しておくと楽かも。

sleep2 ()
{
osascript -e 'tell application "System Events" to sleep'

}


♯関数をsleep2 としたのは、command のsleep と被るので。