2012年2月26日日曜日

パブリックフォルダをマウントしようとすると出てきたダイアログ

環境:MacOS10.6 Snow Leopard

いつからか、LANの別のMacにあるパブリックフォルダをマウントしようとすると「”[ユーザ名]のパブリックフォルダ”のオリジナルの項目が見つからないため、操作を完了できません。」というダイアログがでるようになってしまっていた。

このダイアログが出てきて[OK]ボタンを押したら、別に何事もなかったかの様にパブリックフォルダをマウントするのだが、何が起こったのかよくわからないため気持ちが悪い・・・。

LAN内にあるMacは2台でMac mini→MacBook Proでは上記のダイアログがでるのだが、MacBook Pro→Mac miniでは出てこない。

色々とシステム環境設定の項目の差を調べていて分かったのは、
システム環境設定→セキュリティの[ファイアウォール]タブの[詳細...]ボタン→シートの下の方にある「ステルスモードを有効にする」のチェックボックスが入っているかどうかだった。

「ステルスモードを有効にする」にチェックが入っているMacのパブリックフォルダをマウントしようとすると「・・・オリジナルの項目がみつからない・・・」のダイアログが出てくるということが判明した。

デフォルトの設定は多分オフだと思うのだが(忘れた...)、実害がなければオンにしておいた方がいいのだろうか?

詳しくないので、このチェックをオフにした場合のリスクがどの程度のものなのかがよく分からない。

まあ、家庭内のLANから外にだすようなノート型マシンであればオンにしておいた方がいいかもしれない。

2012年2月17日金曜日

新規フォルダにまとめる.scpt

ダウンロード:into_newfolder.zip(6KB)

(*

動作説明:
このスクリプトを実行すると選択している複数のファイルを新規フォルダにまとめることができます。
スクリプトの実行中に出るダイアログボックスで新規に作成するフォルダ名を入力することができます。
ファイルを何も選択していない状態で実行するとダイアログで警告をだし、処理が終了します。

使い方:
このスクリプトをAppleScriptエディタ.appの書類ウインドウにコピー&ペーストして「ユーザー・スクリプト・フォルダ」(~/Library/Scripts)に保存してください。
メニューバーのスクリプトメニューから実行できます。
Takayuki Ueno

*)

tell application "Finder"
try
set objList to selection --選択項目のListを取得
set obj1 to item 1 of objList --代表ファイルを取得
set placeObj to container of obj1 --代表ファイルの保存場所を取得
make new folder at placeObj --新規フォルダ
set newFolder to result
set newfolderName to name of newFolder
move objList to newFolder --選択したファイルを新規フォルダ内に移動
display dialog "フォルダ名を入力してください。" default answer newfolderName buttons {"OK"} default button 1 with icon note
set ans to result
set pushB to button returned of ans --ifでどのボタンが押されたかを判定するのに利用
set intext to text returned of ans --変数に入力された文字を格納
set name of newFolder to intext
on error
display dialog "ファイルが選択されていません。" with icon caution
end try
end tell

ファイルを選択(指定文字列を含むもの).scpt

(* 
動作説明
最も手前にあるFinderウインドウの中からダイアログで指定した文字列を含むファイルのみを選択することができます。
もし、Finderウインドウが1つも開いていないときは、デスクトップ上で選択を行うこととしています。
このスクリプトを実行するまえに事前にファイルを選択している場合は、そのファイルの表示されている名前をダイアログウインドウに自動入力します。
日本語環境では、「実際のファイル名(フォルダ名)」と「表示されている名前」が違うものが存在します。
例)
ホームフォルダの"Documents""書類フォルダ"
Finder環境設定で拡張子を常に隠す設定にしていると、"名称未設定.txt""名称未設定"
このスクリプトでは表示されている名前を利用します。
使い方:
このスクリプトをAppleScriptエディタ.appの書類ウインドウにコピー&ペーストして「ユーザー・スクリプト・フォルダ」(~/Library/Scripts)に保存してください。
メニューバーのスクリプトメニューから実行できます。
Takayuki Ueno
 *)

tell application "Finder"
try
set objList to selection
set wCount to count of Finder window
if objList ≠ {} then --選択されたファイルがあるかどうかで条件分岐
set objName to displayed name of item 1 of objList
--複数選択されたファイルの代表としてitem1のファイル名を変数に格納する。
else
set objName to ""
end if
display dialog "選択したいファイルに含まれる" & return & "共通の文字列を入力して下さい" default answer objName buttons {"キャンセル", "OK"} default button 2 with icon note
set ans to result
set targetText to text returned of ans
if wCount ≠ 0 then
set tergetList to (document files that displayed name contains targetText) of Finder window 1
else
set tergetList to (document files that displayed name contains targetText) in the desktop
--Finderウインドウが1つも開いていなときデスクトップ上のファイルが選択されているとしている
end if
--上記の処理で指定した文字を含むファイルのリストを変数に格納
select tergetList
end try
end tell

文字ビューアに何も表示されなくなったが、治せた。

環境はMacOS10.6.8 Snow Leopard

何が原因かは分からないが、入力メニューの文字ビューアに文字がまったく表示されなくなった

試しに別ユーザでログインをしてみると、正常に表示することができた。 つまり、ホームフォルダ内のファイルに問題が起こったことが分かる。 真っ先に疑うのが初期設定ファイルということになるが、どの設定ファイルか分からなかったのでとりあえずネットで検索をしてみる。

調べてみるとどうやら、~/Library/Preferences内にあるcom.apple.CharacterPaletteIM.plistというファイルらしい。 これをゴミ箱に入れて、ログアウト(shift+command+Q)をし、再度ログインしてみる。 そして、メニューの入力メニューから文字ビューアを選択してみると正常に表示された。

確認のために~/Library/Preferences/com.apple.CharacterPaletteIM.plistが自動的に作成されたかを確認してみると、ちゃんと作成日が現在の時刻のものができている。 これで問題は解決。

ちなみに「ことえり」の入力メニューにある「仮名表を使って入力」で出る日本語の50音パレットの設定ファイルは~/Library/Preferences/com.apple.com.apple.50onPaletteServer.plistというやつ

2012年2月16日木曜日

MobileMeからiCloudへの移行を考える

今はまだMacOS10.6 Snow Leopardを使っているからMobileMeのままにしているが、そろそろiCloudへの移行を考えている。 10.7 LionはとりあえずMac App Storeから購入し、外付けの古いHDDにインストールをして様子を見ている状態。

仕事で利用しているアプリケーションは10.7 Lionに対応したアップデータがでたり、代替できるものを見つけたり、バグを我慢して無理やり使ったりとなんとか見通しがついてきた。

どうしようも無いものはまだOS9と10.4の動くPowerBookG4 867MHzが生きているので、それで何とか出来る。

問題はMobileMeからiCloudになることでなくなる機能だ・・・

まだ6月までは時間があるが、10.6でiCloudを利用できるアップデータをAppleが出すという保証はない。

自分にとってのiCloudになることのデメリットはキーチェーンの同期iDisk。 iCloudで容量の購入はできてもネットワークストレージとして自由にファイルを置くことが出来なさそう。 災害対策として、子どもの成長記録である写真や動画のファイルをアップロードしておきたいところだが、それが出来ない。 写真や動画を上げる先にはPicasaやFacebookやSkyDriveなどを検討してみたが、写真をそのままの解像度で上げることが出来なさそう。 Dropboxが一番便利そうだが、容量を増やそうとすると有料になる。 MobileMeに払っていた金額を考えれば安いともいえるが、せっかくなら無料でなんとかできないものかとも考えてしまう。

もう一つの問題はキーチェーンの同期。 2台でオンラインサービスのIDやパスワードを共有したい。 さらに秘密メモの機能で購入ソフトのライセンスや各サービスに登録したときのメールアドレスやパスワードを忘れたとき用の質問なども記録・保管していたので、それが共有できなくなるのが痛い。

2012年2月15日水曜日

ファイルを選択(拡張子を指定).scpt

ダウンロード:chooses_by_an_extension.zip(5KB)
(* 
動作説明:
最も手前にあるFinderウインドウの中からダイアログで指定した拡張子のファイルのみを選択することができます
ダイアログには現在選択されているファイルの拡張子が自動入力されます


使い方:
このスクリプトをAppleScriptエディタ.appの書類ウインドウにコピー&ペーストして「ユーザー・スクリプト・フォルダ」(~/Library/Scripts)に適当な名前を付けて保存してください。
メニューバーのスクリプトメニューから実行できます。
Takayuki Ueno

*)

tell application "Finder"
--activate
try
set objList to selection
set wCount to count of Finder window
if objList ≠ {} then --選択されたファイルがあるかどうかで条件分岐
set extName to name extension of item 1 of objList
--複数選択されたファイルの代表としてitem1の拡張子(name extension)を変数に格納する。
else
set extName to ""
end if
display dialog "選択したい" & return & " ファイルの拡張子(.を含まない)" & return & "を入力して下さい。" default answer extName buttons {"キャンセル", "OK"} default button 2 with icon note
set ans to result --ダイアログの結果を変数に格納
set targetExt to text returned of ans
--ダイアログで入力されたテキスト(拡張子を示す文字列)を変数に格納
if wCount ≠ 0 then
set tergetList to (document files that name extension is targetExt) of Finder window 1
else
set tergetList to (document files that name extension is targetExt) in the desktop
end if
--指定した拡張子のファイルのリストを変数に格納
select tergetList
end try
end tell



2012年2月13日月曜日

AppleScriptを使って複数のファイルを選択

Finderでフォルダの中にある複数のアイコンを選択する方法には、マウスでドラッグしたり、shiftキー(または⌘キー)を押しながらマウスでクリックしたりするのが基本だけど、フォルダ内にごちゃ〜っとあるファイルを選び出して、それを移動したりするのは結構手間がかかったりする。

例えば、「ダウンロード」フォルダの整頓。

この中にはZipで圧縮されたファイルやオンラインウェアなどをダウンロードしたときのdmgファイルなど知らない間に溜まってしまうことが多い。 これを整理するためにフォルダ分け・ラベル付け・ゴミ箱行きとするには、まずファイルを選択状態にする必要があるのでこの作業を楽にする方法を考えてみる。

ありがちな複数のファイルの選択とは・・・

  1. 同じ拡張子の付いたもの選択したい。
  2. ファイル名に同じ文字列を含んだファイルを選択したい。等
具体的には・・・。
  • ダウンロードした説明書のPDFがたまってきてしまったとき
  • オンラインウェアやドライバのディスクイメージがたまってきたとき
  • 定期的にカード会社や携帯キャリアから利用明細のCSVファイルなどをダウンロードしていてたまってきたとき
  • デスクトップにメモとして残しておきたいスクリーンショットがたまってきたとき
こういったことは数が多くなってくるとかなり面倒になる。
この面倒な作業を簡単にするにはAppleScriptが便利。

ということで

上記のような状況でファイルを選択するAppleScriptを考えてみることにした。

つづく・・・。

------------------- 追記 ----------------

同じ拡張子のついたファイルを選択するスクリプト

指定文字列を含むファイルを選択するスクリプト


__________________________________________________________

Amazon.comにあるAppleScript関係の書籍
__________________________________________________________

2012年2月12日日曜日

使えるようになると便利なAppleScript

 MacOSを使っている人なら一度は聞いたことのあるAppleScript(最近ならAutomator?)というものがある。 Mac Fanなどの雑誌でもたまに記事になって何となく「使ってみたいな〜」なんて思うけど、やっぱり少々敷居が高く使い方が分からない。ちょっと調べればMacで行う作業の自動化に使えることぐらいは分かるが、 何に使っていいかイメージできない。 ユーティリティフォルダの中にあるAppleScriptエディタ.appを起ち上げて記録ボタンを押してみても全てのFinder操作を記録してくれるわけでもない。


 よく紹介されているのはFinderで複数のファイル名を一気にリネームして連番をつけることができるというもの。 同じファイルタイプで数のあるファイルとなると思い当たるのは写真データとなるが、一般的なMacユーザはiPhotoを使うので写真のファイル名なんてまったく気にする必要がない。 そもそも、ここ最近の流れとしてAppleはファイルの存在を意識しなくても良くしようとしている。 でも、ちょっとステップアップしてMacを駆使して色んなことを効率良くやってみたいな〜と思う人はこのAppleScriptを利用するといいかもしれない。

ということで、個人的にはありそうなシチュエーションとAppleScriptを何個かじょじょに紹介しようと思う。

プログラミングでまず重要なことは「やりたいことを具体的に思い浮かべること」だと思う。 実現する方法を考えるのはその後の話・・・。

でも、まずはAppleScriptを実行するための準備が必要なので、その方法を説明すると・・・。


  1. ユーティリティフォルダの中の「AppleScriptエディタ.app」を起動し、「環境設定...」を開く。
  2. メニューバーにスクリプトメニューを表示」のチェックボックスをチェック
  3. コンピュータスクリプトを表示」のチェックボックスのチェックをオフ
  4. アプリケーションスクリプトの表示場所」は上を選んだ方が便利かも

これで、メニューバーの右に紙がペロンとカールしたような黒いアイコンが表示される。

3.に関しては、チェックを入れておけば元から用意されたサンプル的なスクリプトが利用できるのだけれども、英語だし特に便利と感じるようなものでもないので邪魔なので非表示でいいと思う。
4.は上の画像で「グラブ スクリプトフォルダを開く」とすることで~/Library/Scriptsの中に自動的に「Applications/グラブ」フォルダが作られる。 これはこのメニューを実行したときのアプリが何かで決まるので、このスクリーンショットを撮るときにグラブ.appを利用していただけということになる。 Finderのときにこのスクリプトメニューを表示すれば、「Finder スクリプトフォルダを開く」になる。
ここにFinderに関係するスクリプトを入れておけば他のアプリで作業している時はFinderに関係するスクリプトが表示されないので邪魔にならなくなる

このスクリプトメニューはAppleScriptを実行するランチャーのようなもの。 このメニュー直下に表示されるものはライブラリフォルダ内の「Scripts」フォルダの中のファイルなので、自分で「AppleScriptエディタ.app」で作ったAppleScript書類はユーザ・スクリプト・フォルダに保存(場所は上の画像のように選べば開くことができる)して使いたいときにここから選択すれば実行されるというもの。 ちなみに、AppleScript書類以外も開くことができるので、スクリプトの勉強に使うメモ等も一緒に入れておくのもいいかもしれない。

追記:
Amazon.comでAppleScript関係の書籍を探してみると最近のものはほとんど無さそう。 私は周りにプログラミングをしている人がいなかったのでAppleScript Programming for Mac OS X ―Mac OS X v10.2対応で勉強し、我流で覚えました。

2012年2月9日木曜日

GmailとiPhoneの連絡先をexchangeで同期するとおこる問題

iPhone上のGmailアドレスで分かった問題の記録
  1. iPhone(exchange同期)上の連絡先データを編集・保存すると、メールアドレスのラベルがブラウザ上のGmailで「その他」になってしまう。
  2. 関係の項目がiPhone上では、アシスタント上司(iPhoneではマネージャ)・配偶者の項目だけが表示される。(他の項目は表示されていないだけで削除はされない)
ん〜。
メールアドレスのラベルが変わってしまうのは問題・・・。 メールアドレスを複数登録していて、めったにやり取りしない人だったら区別がつかなくなりそうだ。

Gmailの連絡先をexchange同期でiPhone上で使うのであれば、仕事相手の情報だけにし、たとえプライベートのメールアドレスを知っていたとしても、そのデータはiCloudに保存した方がいいかもしれない。

Googleの問題ではなくMicrosoft Exchangeの仕様の問題?

GmailとiPhoneの連絡先をexchangeで同期することについて

つい今さっき、ブラウザ上のGmailの連絡先のフリガナを「ひらがな」で入力し、iPhoneで姓名の逆転があるか確認してみたら、exchange同期のiPhone側でも姓名が逆転せずに正常に表示されていた! Googleサイドで何か修正が入ったのだろうか?

ただ、iPhone上でその連絡先を編集・保存するとふりがなデータを触っていなくても自動的にブラウザ上のGmailのふりがなが「カタカナ」に変更される。 (iPhone上ではひらがなのままの表示されている)

GmailからエクスポートでMobileMe(iCloudも?)に連絡先データ何度も移すような人は、ふりがなを「カタカナ」にするか「ひらがな」にするか悩ましいところだ。
Google側でGmailから vCard 形式(Apple アドレスブックやその他のアプリケーションへのインポート用)という項目を用意するぐらいだから、vCardに書き出すときに平仮名に自動変換してくれればいいのに。 


※ ちなみにWindows(Microsoft)の文化としては「ふりがな」はカタカナ?

ちなみに検索する場合、カタカナとひらがなの区別はされるのかもちょっとチェックしてみた。

10.6snow leopardのSpotlightとブラウザ上のGmailでは「カタカナ」と「ひらがな」は区別されているようで、カタカナの連絡先データはカタカナで検索しなければヒットしなかった。 iPhoneではMobileMe上のカタカナの連絡先を「ひらがな」で検索してもヒットする

日本語のインプットメソッドのことを考えると、ふりがなを検索するときにはカタカナではなくひらがなであったほうが文字変換がいらないので自然だと思うのだが、何故Googleはふりがなをカタカナにするのを推奨しているのだろうか? 日本のいろんな書類がフリガナを半角カタカナで利用していたのを引きずっているのだろうか? Windowsの文化に合わせている?


インプットメソッドがカタカナ変換を自動学習してしまうのは非常にいやな感じ。 変換候補のトップにカタカナが出てくるのはどう考えても非効率になる。 できれば修正してほしいところ。

ということで、ここまでは分かったがベストな運用法はまだ思案中。

GmailサービスとMobileMe(iCloudも?)の上手な棲み分けと連携を考えるには少々時間がかかりそうだ。