タグ: Mac

  • Mountain Lionにした

    本日の成果 : Mountain Lionにした

      MacのOSが新しくなったので試しに入れてみたよ。いろいろ新しくなったらしいけど個人的には通知センターぐらいしか便利に感じるものはないのだけれど安いのでとりあえず。

      Facebook統合といっても殆ど使ってないしiCloudの連携強化も結局、各機器のデータが同期されるというよりは、iCloudという各機器から共通に参照更新できるデータがもう一面増えたようなもので、既に別のサービスで例えばGoogleと同期する設定を頑張って構築していた場合はそっちとの同期ができず、結局二重管理みたいになってしまうのでした。その結果私は連絡先とかメモとかの、重要な機能ほどiCloudが使えないという悲しい状況なのです。

      深夜にダウンロード開始してそのまま寝て、翌朝インストールを開始してそのまま出かけて、といった感じでMacBookAirには普通に入りました。週末にちょっと古い型のMac miniにも入れましたがこちらはちょっとディスク容量に不安があったので少し整理してからインストールしました。昔のiPhoneのバックアップと古い使ってないiPhone Appだけで10GBぐらい消費してた・・・(^_^;

      インストール終了後、VMware Fusion 4が使えなかったのですが、これは私がちょっと古いバージョンを入れていたからでした。最新版に更新したら動くようになりました。ついでにChromeにブログ投稿用の拡張機能を入れて、試しに書いているのがこのエントリです。(笑)

  • iTunes用スクリプト

    iTunes用スクリプト

    本日の成果:iTunes用のスクリプトをいくつか作った

      私は音楽データはアルバム毎にサーバの特定のフォルダに入れて管理しています。さらにiPhoneとかも使っている関係上、iTunesも使わざるを得ないのですが、iTunesはiTunesで独自のライブラリ管理方式を採っているので、下手すると二重管理になってしまいます。CD買ってきてエンコードしてサーバに放り込んでも、それだけではiTunesひいてはiPhoneでは聴けないのです。

      そこでなるべく省力化するべく、(MacなのでAppleScriptで)自動でその辺をやってくれるスクリプトを作ることにしたのですが、これがまた大変でした・・・。

      まずはエンコードしてサーバに放り込んだあとの作業を自動化しよう。ということで、指定フォルダ内をサーチして、iTunesにまだ登録されていない曲だけを登録するスクリプトを作ってみたよ。
      単におおもとになるフォルダをドラッグ & ドロップで登録してやればいいのかもしれないけど、登録したいフォルダがいくつかあって、毎回忘れずに登録するのが面倒なのと、ついでに登録日のプレイリストを作って登録するということもやりたかったので頑張ってゴリゴリひとつひとつの処理を書いてみたよ。

      しかし結論としてはAppleScriptの文法と動きのクセに翻弄されてえらい苦労することになった。うーんこの言語、きっと登場当時はオブジェクト指向ぽくて複数オブジェクトの一括操作ができたりもして大変革新的に見えたのでしょうが、私が今回やってみた感想としてはいくつか違和感を感じる点もありました。
      例えば文法を英語的なものにした結果(それどころか昔は日本語風に書くこともできたらしいですね)、逆に他の言語に比べて何やってるか判り辛くなってると思います。複数単語でひとつのキーワードだったりして、どれが変数でどれがクラス名やプロパティでどれがキーワードなのかが判りづらいです。CやLISPみたいに記号だらけなのもアレですがAppleScriptは記号少なすぎだと思います。構文解析とか一体どうやってやってるんだろう・・・。構文木というより意味木みたいなものを構築しているのかしらん。でも、理解しやすいようにと英語っぽくする試みの失敗例を私は知っています。COBOLといいます(笑)。英語っぽいけど英語じゃないCOBOLという言語の文法を結局新たに憶える必要がありました。

      あと、参照の取り扱いにクセがあります。例えば、リストの要素を一つ一つ処理するためにrepeat withでループさせた場合、ループ1回毎にリストの要素がひとつづつ渡されるわけですが、例えばXという名前のA,B,C…という要素を持つリストでループを組んだとしますと、その時の渡され方が「XというリストのN番目の要素」という渡され方のようなのです。そのものずばり「Aへの参照」とか「Bへの参照」などではなく。そしてそれを実際に参照したときに、XというリストのN番目の要素を探しにいってその結果を返してきます。でこのループが10000回目ぐらいになると、Xというリストの10000番目の要素を律儀に探しに行っているのか、目に見えて遅くなります。わざわざリストに特化した文法を使うメリットがあまりなく効率的でないように思えます。それだけではありません。例えば3回目のループ(Cのループ)の途中でリストからBを削除したとします。さて「Cのループ」と言いましたが今注目しているのは実は「C」ではなくて「Xの3番目の要素」なのでその瞬間からループ変数はCではなくDを指すことになります。なんかホントにそんな仕様でいいんですかJobsさんと言いたくなるような動きで、実際私もこれで一晩ハマりました。

      処理速度にも悩まされました。とりあえずインタプリタであることを差し引いても全体的に遅いです。メモリも食います。特に、扱うリストのサイズが増えるとN^2オーダー(体感)で時間がかかります。また、上で述べたとおりオブジェクトへの参照の持ち方が特殊なこともあってか、書き方のちょっとした違いにより処理速度が大きく変わるのです。一旦ワーク変数に代入したら速くなったり、キャストすると速くなったり。えてしてスマートで簡潔な表記より、冗長な判りづらい表記の方が速かったりするのがストレスが溜まります。それからこれは環境依存なのだと思うのですが、OS付属のスクリプトエディタから実行すると、メモリが開放されません。いきおい、デバッグ作業で何度も実行するうちに、どんどんメモリを消費して、スワップ始めて、動作速度が亀のようになります。ところが、アプリケーション形式にして実行したり、(スクリプトエディタではなく)iTunesから実行したら普通のメモリ消費量で動きます。この件でも私はスクリプトの書き方の問題だと思ってなんとかならないかと無駄に高速化や省メモリ化を試みたりして一晩無駄に費やしましたよ。

      で、とりあえず一撃で未登録の曲ファイルを追加できるようにはなりました。なりましたのですが、ひとつ問題点が。というのは、いったんiTunesに登録した後で、ファイル名を変更したとかでiTunesから実体が参照できなくなっている曲。これが二重に追加されてしまいます。そこで、そのような、ファイルの実体が参照できなくなっている曲を探して削除候補のプレイリストに纏めるスクリプトを書こうとしたのですが、なんだかiTunesの仕様上、実体が参照できなくて「(!)マーク」がついてる曲は、プレイリストに入れることができないようで、仕方ないので一覧表示して確認したうえで削除することにしました。(削除だけはできる)

      ファイルの実体が見つからないデータがあると、削除するか尋ねる

      削除成功

      念の為もう一度実行すると、今度は紛失ファイルはない

      そしてもうひとつ。私はiTunesのプレイリスト機能はあまり使っていませんでした。ひとつづつ自分で作るのが面倒だったからです。今回、折角なのでついでに、アーティスト別/アルバム別にプレイリストを自動的に生成してくれるスクリプトを作ってみることにしました。ま、なんというか、それならプレイリストを作るまでもなく、画面右上の検索欄で検索すればほとんど同じことはできる話ではあるのですが、リストから選ぶ方式のほうがちょっとだけ簡単かなと。

      で、その結果、前述のとおり処理速度の遅さなどに泣かされる結果となったのですが、なんとか我慢できる速度にはなりました。それでも8千トラックを処理するのに数時間かかります・・・。アルバム別とはいっても、違うアーティストの同名アルバムが同じプレイリストに入ってしまっては嫌なので、その辺のチェックでさらに負荷かかってます・・・。

    アーティスト別
    アルバム別
    登録日別 (ついでに対応)
  • DiskRing

    DiskRing

    本日の成果:DiskRingでMac miniのHDDの整理をした

      そんなにデータを溜め込んでいた憶えもないのに、Mac miniのHDDの空き容量が少なくなっていたので、ディスクの整理をしたよ。どこを整理したらいいか調べるために、DiskRingというツールを使ったよ。


      他にもDaisyDiskなんてのもあって、こっちの方が動きも機能も良さそうだったのだけど、これは売り物でした。そうそう何度も使うツールでもないだろうと思うので、単純にフリーの方を使ってみました。
      で、結論としては全然ツール使って調査するまでもなく、ゴミ箱フォルダの中に作業用にコピーした仮想マシンが大量に残っていただけだったのでした・・・。orz

  • Macマウス問題

    本日の成果:Macマウス問題を解決した(ような気がする)

      私も含めて、WindowsとMacとでマウスカーソルの感触というか、動かしたときの感覚というかがどうも異なっていると感じる人は多くいるようで、各人さまざまにその理由を分析している。しているのだけれど結局最後の結論としては、Windows→Macの人はWindowsの挙動が使いやすいと言い、Mac→Windowsの人はMacの方が使いやすいと言う。ということはつまり慣れればどっちでもいいということか。

      多くの人が書いてるけれども、「Macのマウスカーソルには加速度がついているがWindowsのマウスカーソルには加速度がつかない」というのは微妙に誤りで、コントロールパネル-マウス の「ポインタの精度を高める」という名前のオプションでオンオフを設定できる。よく覚えていないがデフォルトでオンではなかっただろうか。

      それにしても(私はWindows使用暦の方が長いので)Macのマウスカーソルの動きには違和感があった。なんというか、マウスカーソルを10cmほど右に動かしたいとして、いつものWindowsの感じで右にマウスを動かすと、思ってた量の半分ぐらいしか動かない。あれ? と思って脳が勝手に足りない距離を補おうとして反射的に素早くマウスを動かすと今度はピューと遥か彼方へ行ってしまう。その繰り返し。

      つまり加速度のつき方がなんだか異なるのではないかということは何となく感じていたのだけれど、このたびそれを裏付ける論文を見つけた。

      Mac OS X のマウス加速問題

      なるほど私がこれまで漠然と感じていた現象を見事に説明するものだ。そして、嬉しいことにいくつかの解決方法も紹介されている。MouseFixのGUI版のiMouseFixUSB OverdriveSteerMouseと3つとも試してみて、一番違和感なく設定できたSteerMouseを使うことにした。
      うむ、快適である。めでたし、めでたし。

  • Apple Remote リモコン問題

    Apple Remote リモコン問題

    本日の成果:Apple Remote リモコン問題を(ある程度)解決した

     この前2009/09/21のエントリで書いたように、新しいMac Miniを買ったのだけど、この新しいMac Miniにはリモコン受光部がついていて、リモコンで音楽を聴いたりDVDを再生したりできる。
    ただし、リモコンは標準では付属しない。おーい。

     でも大丈夫! 実は私、前にiPod Touch用にUniversal Dockを買ってあったのだ。コイツにはAppleリモコンが付属する。そもそも、私はiPodに入れた曲をDockに挿したままiPodで聴くということはしないので、只の充電スタンドがなんでこんなに高いのか、リモコンなし版はないのか、とブツクサ言いながらもそれを買っていたのでした。で、充電台としてだけ使って、リモコンの方は、使わないのでお蔵入りしてたのでした。しかしこのたび新Mac Miniが来たのでリモコンにもやっと日の目を見る機会が!

     というわけでワクテカしながらリモコンをMacに向けて再生ボタンをカチ! おお! iTunesで見事に音楽が流れだしたよ! ついでに同時にiPodを乗せたDockもリモコンに反応して、こっちからも音楽が流れだしたよ! 違う曲が! ダメじゃん!!

     そう、初期状態ではすべての機器が全てのリモコンに反応するようになっているので、Mac Mini本体もDockも両方とも反応してしまうのであった。で、一応それを回避するための方法というのが用意されてはいるのだが:
     1. 初期状態では、どのリモコンにでも反応する。
     2. 特定の紐付け操作を行うと、そのリモコンだけに反応する。
    というルールなのだ。OK、それならばMac Miniとリモコンを紐付けすればOKだよね。と私も最初そう思ったのですがダメでした。
    「特定の紐付け操作を行うと、その機器はそのリモコンだけに反応する」のであって、「特定の紐付け操作を行うと、そのリモコンはその機器だけに利く信号を送る」のではないのがポイントだ。つまり、Mac Miniとリモコンを紐付けしても、Dockの方は相変わらず、どのリモコンにでも反応する設定のままなので、結局両方とも反応しちゃうのは変わらないのだ。そしてDockには、「リモコンに反応しない」ような設定をすることはできない。

     解決方法としては、リモコンをもう1個用意して、反応してほしくない方の機器をそのリモコンと紐付けすればよいのだが、そのためだけにリモコンもう1個買ってくるのはさすがにもったいない。そこでおぱ、受光部にリモコンの光が入らないように覆ってしまえばいいと思って、試しに紙を置いたり手で覆ったりいろいろやってみたところ、このDockのセンサ、やたらと感度がよくて、受光部を指で押さえても上からでも後ろからでも、全然フツーに反応してしまうということが判った。もう「ホントに赤外線か? 実はコッソリBluetoothなんじゃないか?」とか思った。
     もう、正面にぺたっとシールを貼れば済むとか、そういうレベルでは済まないということは判ったのだけど、とはいえせっかくリモコンがあって新しいMac Miniがあるのにそのリモコンが使えないのはとっても悔しい。ましてウチのMacはリビング兼台所に置いてあって食卓からリモコンでピッと音楽がスタートできるとヒジョーにカッコよくて便利なのだ。しかしそこでiPodまで反応して別の曲が同時に流れだしてしまっては台無しだ。ゲンナリだ。

    しょうがないのでとりあえず分解した。(えー)

     リモコンの光はこの写真右側に写ってる白いプラスチックケースは簡単に透過してしまうみたいなので、このケースの外側でいくら光を遮ろうとしても、全体を真っ黒に塗り潰しでもしない限り効き目はなさそうだ。だから、ケースの内側、センサーそのものをガシッと覆ってやろうという魂胆だ。

    アルミテープでガシッと覆ってみた。
    その拡大図。

     これで元通りにフタ閉めて試してみたところ、なんと! 前より反応しにくくはなったものの、ここまでやってもまだ10cmぐらいの距離で正面からリモコンを操作すると反応してしまう。呆れたが実際10cmぐらいの距離から操作することはないだろうし、そのうち電池が消耗して光が弱くなったらさらに反応しにくくなるだろうから、ということで諦めました。orz

  • iTunesで全部聴いた

    iTunesで全部聴いた

    本日の成果:iTunesで手持ちの曲ぜんぶ聴きおえた

     iPod Touch買ってiTunesを使うようになってからはやウンヶ月、ついにこのほど、全曲まんべんなく最低1回づつ聴き終えた。さすがに、7,500曲超もあると、一巡するにも相当かかるということが判った(笑)。ていうかいつのまにそんなにMP3持ってたのか俺。

     実際には「ながら聴き」で聞き流したものとか、途中で別の部屋で何かしてて聴いてない曲とかもあると思うのだけど、そういうのがあったとしてもこれだけ時間がかかるということで。きっと、iTunesで無差別に片っ端から聴くということをしなければ、一生聴かれることのなかった曲もいくつかあったのではないだろうか。

     ちょっと前の記録を見てみたところ、少なくとも2008年の11月にはiTunesを使っていたらしい。ということは大体10ヶ月ぐらいかかってる勘定だ。うーん、このまま二順目に突入するのはやめよう(笑)。もうちょっと聴いてて面白い、プレイリスト作ったりGenius使ったりして楽しむことにしよう、そうしよう。

  • すのパルド

    すのパルド

    本日の成果:Snow Leopard (Mac OS X 10.6)

     実はひそかにMacユーザーなんです私。あまりヘビーには使っていないのですが。Tigerが出たての頃に、Mac Miniを買ったのだけど、主にメディアプレーヤーとして(笑)使ってた。コイツはCPUがPowerPCの奴で、今使うにはちょっと遅いし、このたび新しく鳴り物入りで出たSnow Leopardも最早PPCに対応してないので、この際Mac Miniごと新しくしてやったぜ。ひゃっほう。

     写真は画面以外の部分が暗くて、わかりにくいのだけど、モニタの真下奥のMac Miniが新しくなってます。てか旧Mac Miniから新Mac Miniに入れ替えてもほとんど外見に変化はないのでした。orz

     そしてこの撮影用にわざとらしくSnow Leopard(ユキヒョウ)の壁紙にしてみました。

     旧Mac Miniからの移行は、おそろしく簡単に終了しました。まぁ、もともとあまり大きくカスタマイズしてないこともあるのですが、アドレスブックやカレンダー、iTunesライブラリなんかは基本的にコピーするだけで一撃で移行できました。ほら、これがWindowsだと、同じようにファイルコピーだけで移行できる筈なのになぜかうまくいかない、みたいなの多くない? (おぱは基本的にWindowsがキライな人です)

     で、相変わらずメディアプレーヤーがメインとして使われることになると思うのだけど(^_^;、Front Rowというアプリが入ってて、リモコンでDVDやiTunesの曲や動画を再生できます。こりゃ便利だ。丁度、iPod用のDockを買ったときについてきたリモコンの使いみちがなかったんだ。(現行のMac Miniにはリモコン受光部はあるがリモコン本体は付属しない)

     今迄はiTunesで音楽を聴こうと思ったら、テレビの前まで行ってマウスで操作しないといけなかったのだけど、食卓にリモコンを置いておけばプチと押すだけで再生スタート。これは楽だ。

     あとVMware Fusionを入れてみた。以前にLinuxサーバで動かしてたWindows2000の仮想マシンをコピーして突っ込んで起動・・・おお、VMware Toolsのバージョンが古いとか言われたがフツーに起動するぞ。そしてDockに仮想マシン内のアプリを登録できたり、ユニティモードなんてのがあったり、魔法のような世界になってて素晴らしいです(笑)。