徒然なるままに

Macソフト紹介、ティップス、雑感など

gethostnameとgethostbyaddrのhostnameが違う?

2011-12-05 15:25:28 | Mac

PHPでgethostnameとやるとホスト名がかえってきます。環境によってはgethostbyaddrでそれと同じ名前がかえってこない場合があります。
そういう環境でメールを送信したりすると、意図しないホスト名からメールを送信したことになったりします。

%php -r 'print gethostname();'
とやると。
mycomputer
と返ってきます。

php -r 'print gethostbyaddr('このマシンのIPアドレス');'
testcomputer.ドメイン

mycomputer.ドメインじゃないの?


ずっと謎だったんですが、やっと原因が分かりました。
原因は/etc/hostsファイルの書き方の問題でした。

これまで、同じコンピュータに複数の名前を付けるとき、次のように書いていました。
192.168.1.2 mycomputer.ドメイン mycomputer
192.168.1.2 testcomputer.ドメイン testcomputer
192.168.1.2 .....

これで目的のことは実現できていました。何の目的?apacheでバーチャルホストの機能を使って複数のサイトのテスト環境を作るためです。
いちいちDNSを設定したりしなくてすむので楽です。

これでも意図しないホスト名が使われる場合があること以外何の問題もないんですが、
あまり好ましくない状態であるには違いない。


hostsファイルの正しい書き方は次のようになります。

192.168.1.2 mycomputer.ドメイン mycomputer testcomputer.ドメイン testcomputer ...

一番左に正式なホスト名を書きます。一番上だとだめなんですね。
何十個もテスト環境を作ると、ものすごくわかりにくいですが、しかたない。

iPhoneの絵文字

2011-01-05 11:45:01 | iPhone
iPhone/iPod touch/iPadの絵文字はユニコードの外字領域に割り付けられてるんですね。

iPhone/iPadのJavaScript

2010-06-30 00:00:35 | iPhone
iPhoneとiPadのJavaScriptでinnerHTMLを使うと取得したデータが壊れている場合があるようです。
innerTextはFireFoxで使えないし、困ったもんです。


とりあえず、条件分岐するしかないのか?

if(typeof div.innerText != "undefined")
    myvar = div.innerText;
else if(typeof div.textContent != "undefined")
    myvar = div.textContent;
else
    myvar = div.innerHTML;

Time Machineとシンボリックリンク

2010-04-22 09:39:29 | Mac
Time Machineでエラーが出るようになってしまいました。
後でもう一回やってみて、ダメならディスクユーティリティで修復しろとメッセージが出ます。
ディスクユーティリティで修復しても問題は見つかりませんし、何度やってもダメです。


コンソールには次のログが記録されています。

com.apple.backupd[214] Error: (-36) SrcErr:NO Copying xxx/yyy to zzz


前回のバックアップはxxxがシンボリックリンクでしたが、ディレクトリ本体と置き換えたことが原因に違いありません。
元、本体があったところはシンボリックリンクにしました。


ものは試しでTime Machine環境設定のオプションでxxxを除外対象にすると問題なくバックアップできます。
今度はxxxを除外対象から削除するとちゃんとバックアップできるようになりました。


ちなみに、環境はMac OS X 10.6.3です。

Macのシンボリックリンクとエイリアスは違うものです。
エイリアスではこのエラーは出ないのかもしれません。
普通の人がシンボリックリンクを作ることはないと思うのですが、何かの参考になれば。

アナログ時計

2010-03-16 14:38:42 | Mac
一昔前のMacには標準でアナログ時計が付いていましたが、最近のMacには付いてません。
私には必需品なんですが、どうして付かなくなったんでしょう?

で、代替ソフトを紹介します。

SimpleFloatingClockというソフトです。

半透明にしたり、各国の時計を表示したり。
設定次第では昔のMac標準の時計のようにも表示できます。

iPhoneで外国のiTunes Storeを見る

2009-11-26 08:36:29 | iPhone
iPhoneに最初から組み込まれているiTunesで外国のiTunes Storeを見ることができます。

最初にMac/PCで外国のiTunes Storeを開きます。Storeのトップ画面下部にメニューがあります。

あとはiPhoneと同期するだけです。


米国以外は試してませんが、主要国はいけるんじゃないでしょうか。
中国など、そもそもApp Storeしかない所はどうなるのかな?

iPhone&iPod touchアプリケーション

2009-06-12 14:50:56 | iPhone
新着、更新のあったiPhone&iPod touchアプリケーションを紹介しているページ。

iAppFun


----- 2010/3/9 追記 -----
移転してリニューアル。
iAppFun Discovery

Mac OS X 10.6?

2009-05-26 16:36:09 | Mac
このサイトではありませんが、アクセスログを見ているとMac OS X 10.6というのを発見。
外国の方のようだが、β版でも使っているんだろうか?


このアプリケーションで開く

2009-04-15 00:56:42 | Mac
MacOS Xの情報ウィンドウで「このアプリケーションで開く」を変更すると、リソースフォークにアイコンが付いたりしてかなりファイルが肥大する。


無駄なリソースフォークを削除するにはGrimRipperCMが便利。
インストールするアップルスクリプトが付いているけど、~/Library/Contextual Menu Items/GrimRipperCM.pluginを置くだけでです。


リソースフォークを削除すると「このアプリケーションで開く」の設定はなくなります。


開きたいアプリケーションがクリエータを持っているなら、ファイルにクリエータを設定すればダブルクリックでそのアプリケーションが起動します。
ファイルにクリエータを登録するにはいろいろ方法がありますが、次のAppleScriptで登録できます。
スクリプトエディタでアプリケーション形式で保存してクリエータを変更したいファイルをできたスクリプトにドラッグして使います。

・エディタmiで開く場合
on open names
    repeat with i in names
        SetCreator(i, "MMKE")
    end repeat
end open
on SetCreator(theFile, signature)
    tell application "Finder"
        try
            get file type of theFile
            set creator type of theFile to signature
        end try
    end tell
end SetCreator


・ついでに、ファイルにどんなクリエータが設定されているか見るスクリプト
on open (fileList)
    tell application "Finder"
        repeat with theFile in fileList
            set creator to creator type of theFile
            set filetype to file type of theFile
        end repeat
    end tell
    
    display dialog "Creator:   " & creator & return & 
        "File Type: " & filetype buttons {"OK"} default button "OK"
end open



iTunesの合計時間表示

2008-11-10 16:02:43 | Mac
iTunesのウィンドウ下部の合計時間表示が1.2日になったり、1:06:18:22という表示になったりするのが長い間の疑問でしたが、今日わかりました。
合計時間の部分をクリックすれば切り替わるようになっていたんですね。