AirPodsと色々出るワイヤレスイヤホンの比較

AirPodsが発表されましたね。

私は現在、ワイヤレスイヤホンのQCYのQY8を使用しています。これはもともとAirPodsが出るまでの繋ぎのつもりでしたので、とうとう本命が出ることになります。

(QY8の後継、QY19。今から買うならこちらがお勧めです。安価なワイヤレスイヤホンとしてはかなり良いと思います。AACには対応していませんが、aptXは対応しています)

AirPodsとそのライバルたち

即座に購入の決意をした私。あまりに楽しみだったので情報収集をしていると、なにやらライバル製品もいくつか出る予定のようです。しかも、本命のAirPodsにも、無視できないデメリットがあるらしい。
そこで、AirPodsと、発見したライバル製品たちを比較して、吟味することにしました。記事の最後に比較表を置いておきます。

なお、以下の点については評価していないので、注意してください。
* 通話関連の機能(iPod touchなので)
* aptX対応(Apple製品しかないので)
* 音質(後述)

先に結論を書いておくと、現在はAirPodsを買うつもりでいますので、そのつもりでお読みください。

AirPods (Apple)

AirPods – Apple(日本)

まずは本命のAirPodsの特徴を見ていきましょう。これを基準に他の製品を見ていくので、ここのセクションは長いです。

形状

ワイヤレスイヤホンの中でも珍しく(唯一?)、インナーイヤー型と呼ばれる形式です。従来のEarPodsと同じ形ですね。この形状は好みがはっきり分かれます。対珠の形によって合う合わないがあるらしく、合わない人はすぐに落ちてしまうとか。
私自身はカナル型が苦手で、それもあって有線ではEarPodsを愛用しているので、これは高評価ポイントです。
なお、AirPodsはバッテリー部分に重心が偏っていると思われるので、EarPodsより固定されやすいと考えられます。が、それでもEarPodsが合わない人がわざわざこれを選ぶのは蛮勇というものでしょう。
ただし、インナーイヤー型故の音漏れの危険性は、言わずもがなですね。

操作

また、操作性については、見て分かるとおり、コントローラーがないという明確なデメリットがあります。
これにはいくつかの理由が考えられます――一般的なスイッチ式のコントローラーを付けると大きくなりやすいことや、モーション加速度センサーではあまり多様な操作ができないという技術的な限界などもあるかもしれません。

デフォルトではダブルタップでSiriを呼び出せるようになっていますが、通勤電車の中でSiriに話しかけるのは気が引けます。
しかしながら、このダブルタップの操作は「再生/一時停止」に切り替えることができます。ですので、最低限の操作はなんとかなりそうです。

接続

さまざまなメディアで喧伝されている通り、W1チップとやらのおかげでデバイスを近づけただけでペアリングがなんかいい具合になるらしいんですが、ペアリングなんて従来のワイヤレスイヤホンでも一回やるだけなのであんまり意味がない気がします。

また、同じiCloud IDを使用しているデバイス同士であれば、そちらにも自動でペアリングされ、切り替えが簡単に行えるとか。
……とはいえ、私はこの機能はあまり使わない気がします。確かにiPod touchのほかに、iPad mini 2とMacBook Proを持っていますが、iPad miniでイヤホンを使うことは基本的にありませんし、MacBook Proでは有線のイヤホンを使用しています。使ってみたら便利だった、という可能性はありますが、2台以上のデバイスを同程度に使う人向けという印象です。それこそiPhoneとApple Watchとか。

そんなことよりもこいつの真価は電源投入不要の自動接続にあると思います。

ワイヤレスのイヤホン・ヘッドホンを使用している人は、きっと「ふえぇ……いちいち端子を穴に挿すのめんどくさいよお……」という感情から発心したことでしょう。
bluetooth接続のイヤホンを手に入れ、それが電源ボタンを長押しすることに切り替わったのはとても便利でしたが、人間というのは堕落するもので、「電源入れるのマンドクセ」となるのはもはや必定です。
それに、現在はそんなに面倒でなくとも、耳に突っ込むだけで使用可能になるというのは、イヤホンを使うシーンが格段に増えるということでもあります。

しかも、片耳だけ嵌めてもそれを検知して片耳だけ音が流れるそうです(iOS側でモノラルにしてくれたりはするんでしょうか。わたし気になります)。イヤホンがより気軽に使えるというのが嬉しく、実は購入の決め手になったのはこれです。

バッテリー

充電は専用のケース方式で、このケース自体にもバッテリーが内蔵されています。ワイヤレスイヤホンとしてはメジャーな手法のようです。
連続稼働は最大5時間。15分で3時間ぶんの急速充電が可能。専用ケース込みで24時間以上持つという触れ込みです。あんまり心配なさそうですね。

音質

最後に、音質について。いろいろな記事を読むかぎり、おおよそ以下の3つに集約されます。
* EarPods同様クソだよ派
* EarPods同様良いよ派
* EarPods以上だよ派(少数派)

上2つはディスるかアゲるかの結論によって変わるだけですので、実質同じと言えます。
まとめると「少なくともEarPodsより悪いことはない」という感じでしょうか。音質の面でも、EarPodsが好きなら良い、ということになるようです。
もともと私は音質には興味がなく、「AAC対応だったら良い音なんじゃない?」くらいの認識ですので、以降音質については書きません。

価格

価格は$159(1万6800円)。過去のAAC対応ワイヤレスイヤホンが軒並み3万近くするという価格のなかで衝撃的な安さです。が、ワイヤレスイヤホン自体も安くなってきたことが、ライバルたちを見るとわかります。
したがって、同世代製品の中では、むしろ高級志向と言えそうです。

Beatsx (Beats)

Beats X Wireless Earphones (Black) | Beats by Dre

完全ワイヤレスではなく、ネックバンド式です。これも好みの問題ですね。完全ワイヤレス型の手軽さの恩恵は受けられない一方、ケースにしまわずに首にぶら下げておけるので、いちいちケースにしまう必要はありません(もちろん、有線イヤホンのようにケーブルの扱いに気を遣う必要もありません)。私が現在使っているQY8でも、この点は非常に便利です。Beatsxは左右がマグネットでくっつくので、より扱いやすいでしょう。

コントローラーは左右をつなぐケーブルについています。EarPodsと同様のスタイルで、操作しやすいと思われます。

接続面では、AirPods同様W1チップが搭載されていますが、電源投入が不要かどうかは不明です。
左右を離すと自動で電源が入る方式だと嬉しいのですが、Beatsxの製品ページには、そのようなことは書かれていません。「セットアップは電源を入れてあなたのiPhoneに近づけるだけで完了するのでとても簡単」とあるので、接続時も電源を入れる必要はあるようです。

例のiCloud IDによる便利ペアリングはこちらでも使えるようです。完全ワイヤレスを好むかどうかで、AirPodsにするかこれにするか決まるという感じでしょうか。

充電については、Lightningの充電口がケーブルの最中についています。耳の部分につけるとQY8のような「潰したタコ焼き状」になる危険性もあるので、これは賢く嬉しい方式ですね。
ケーブル充電式のイヤホンで鬱陶しいのがMicroUSBの裏表なのですが、これはLightningなので裏表も問いません。
連続稼働時間はAirPodsと同様のものと思しきFast Fuelに対応しており、5分の充電で2時間の連続稼働に耐えるだけの充電がされます。

価格は$149.95(1万4800円)。AirPodsより少し安いです。

the headphone (Bragi)

Bragi – The Headphone

Bragiはヘルスケア系の機能をめっちゃ積んだThe Dashというイヤホンを出していますが、その廉価版――音楽以外の機能を削ったかわりに安くなってバッテリーの持ちがよくなったバージョンです。11月発売。
ただしThe Dashにはあった防水機能と、キャリーケースについていたバッテリーがなくなりました。外出中に充電が切れたらそれきりです。もっとも6時間持つそうなので心配なさそうですが。

特筆すべきはAudio Transparency機能。これは周囲の音をマイクで拾ってイヤホンに流すモードだそうです。カナル型の高い遮音性はメリットでもありますが、状況によってはデメリットにもなります。

また、操作については、基本的なものはすべて可能なようです。再生と停止、着信を受ける、音量操作、それから前述のAudio Transparency機能の入切。Siriの操作ができるかどうかは不明です。

価格は$149。プレオーダー価格は$119。ただし日本への発送については未定であり、購入においてはなんらかの手段を講じる必要があります。

MUSE5 (Erato)

Muse 5 – Erato Audio

この記事を書いている最中に発見したものです。

写真を見るとけっこうごついのですが、「10gやで!」と軽さをプッシュしています。

連続稼働時間は4時間(100mAh)。これだけでは心許ないですが、チャージケース(700mAh)が付属しています。

特長はIPX5の防水性と、Single Touch Multifunction。詳しい操作方法は分かりませんが、以下のようにあります:

Power on/off, volume up/down, pairing, play/pause, play next/previous track, call accept/reject, and Siri are accessible with one button.

それから、サラウンド機能のEratoSurround 3D Audioというのも特長なようですが、実際どんなもんかは分かりません。

希望小売価格は$179。この中ではもっとも高価ですが、2016年末まではプレオーダー価格として$99という安さです。「Ships Worldwide」と書いてあるので、日本でも買えるかもしれません。

比較表

名称 価格 コーデック コントロール 連続稼働 ケース充電 防水 その他特長
AirPods $159 AAC Siri / 再生・一時停止 5h W1チップ
Beatsx $149.95 AAC コントローラー 8h W1チップ
the headphone $149 ($119) AAC 本体ボタン 6h 不可 Audio Transparency
MUSE5 $179 ($99) AAC, aptX Single Touch Multifunction 4h IPX5 EratoSurround 3D Audio

MacBook (late 2009)のストレージをSSHDにした話

MacBookのストレージが500GBでは足りなくなってきたので、二度目の換装をして、1TBのハイブリッドHDD(SSHD)にしました。

SSHDというのはSSDをキャッシュとして載せたHDDのことで、大容量ながら読み込みが早く電力消費も低いという特性を持っています。キャッシュコントロールはファームウェアがするので、SATAが合えばハードディスクと同じように扱えます。あと、安いです(同じ容量のハードディスクにちょっと足すだけ)。

実際の交換作業にあたっては、下記のブログ記事を参考にさせてもらいました。

MacBook (late 2009 MC207J/A)のHDDを1TBに換装
http://noshipuramoderu.blog.fc2.com/blog-entry-183.html

換装した結果、もっとも大きな変化として、起動がめっちゃ高速になりました。プログレスバーが途中からぐいんと伸びる感じで、30秒前後で起動します。今までは数分か十数分くらいかかっていたので、これは非常に快適です。あと、アプリケーションの起動も速くなります。全体的に、起動からログイン後あたりまでの処理が非常に高速になります。ベンチマークを取っておかなかったのが残念。

欠点としては、WikipediaのSSHDの項目にも書いてありますが、ハードディスクが寝てるときにキャッシュされてないデータを取りに行くと、ハードディスクが起きるまでに遅延が起きること。たまにレインボーカーソルになるのはこれが原因じゃないかと。

注意点

Nvidia MCP79のチップセットとSandForceのコントローラーは相性が悪いらしく、3Gbit出るはずの速度が1.5Gbitしか出なかったりとかあるらしいです。

とはいえ、ただのSSDならともかく、SSHDにくっついてるSSDのコントローラーが何なのかなんてなかなか調べられないよな……と思っていたら、どうも東芝製は避けてSeagateにしたほうが無難そうという情報を見つけたので、上述のSeagateのにした次第です。レビューでもMacで使ってる人多かったし。

【追記あり】Skypeの強制アップデートを迂回して2.8などの旧バージョンを使い続ける

追記(2014/9/7)

現在ではこの方法ではなく、かわりにInfo.plistを書き換える方法で継続可能です(下部の解決策は効果がありません)。

Skype.app/Contents/にあるInfo.plist内部のバージョン番号ふたつ(CFBundleShortVersionStringCFBundleVersion)を適切なバージョン(たとえば6.15.0.334など)に書き換えればOKです。

詳細はSkype Communityのポストを参照してください。


つい二、三日前のことです。

旧いバージョンのSkype(2.8)を起動すると「アップデートしねえと使えねえからな」という旨のダイアログが出て、起動できなくなりました。他にも同様のことが起きている人がいるらしく、Twitterを覗くと悲鳴(と罵倒)で溢れていました。

確かに数ヶ月以内に旧いSkypeをリタイアさせるというアナウンスはありました。しかしまさかこんな方法で「引退リタイア」させるとは、夢にも思いませんでした。

そもそもなぜ2.8なのか

2.8というと随分昔のバージョンのように聞こえますが1、Mac版のバージョン番号は他のものとは異なっており、Microsoftに買収された後のメジャーアップデートで一気にバージョン5まで上がったという経緯があります。

このバージョン5(およびそれ以降)が2.8ユーザーにはたいへん不評で、コンタクトとチャットを同時に確認できないだとか、やたらと画面を占有するとかのインターフェース上の欠陥や、一部の機能がなくなってるとかの理由で、アップデートせずに旧バージョンを使い続けることにした人々がけっこうな数いました。恐らくWindows版との統一を図ったのでしょうが、それがMacのソフトウェアとしては大きな不整合を引き起こしていたのです。

その後も改善されることはなく、Facebookと接続する機能をつけて肥大化させる一方で、バージョン6.4でカスタムチャットスタイル機能の削除2、バージョン6.18でGrowl通知の削除と、希望とは正反対の方向に突き進んでいきました。

「Microsoftに買収されてSkypeはデブアプリブロートウェアになってしまった」

解決策

さすがに起動できないのは困るので、泣く泣く新しいSkypeを使っていましたが、今日になってこんなツイートを見かけました。

「爆笑するほど簡単にSkypeのバージョンBANを迂回」

リンク先を見にいくと、なるほど確かに簡単な発想でした。

My solution to continue using Skype 2.8 on older O… – Skype Community

In your firewall (in my case: Little Snitch), block Skype connections to ui.skype.com

Skypeがui.skype.comに接続するのを防ぎ、バージョンの確認をさせないようにする、とのことです。

Little SnitchやHands Off!などのファイアウォール・ソフトウェアをすでに使用している場合、Skypeからのui.skype.comへの接続を遮断するよう設定します。

持っていなかったりする場合は、hostsを使って遮断することができます3
nanoなりviなり、あるいは普通に(GUIの)テキストエディタなりで、

127.0.0.1   ui.skype.com

/etc/hosts(または/private/etc/hosts)の末尾に加えれば、ui.skype.comへのアクセスはできなくなります4

Hands Off!を買ってはいるのですが、重くなるから導入したくないのでhostsで遮断し、めでたくSkype 2.8を使い続けることができましたとさ。

2.8は公式から落とせます

ところで、いつのまにか旧バージョンをダウンロードできなくなっていたせいで、非公式なウェブサイトから旧バージョンをダウンロードせざるを得なくなったSkypeですが、2.8だけは、Skype for Mac OS Xが起動しません。なぜですか?というFAQにダウンロードリンクがあるので、そこからダウンロードしたほうが良いでしょう。hostsを書き換えるとアクセスできなくなるので、その前に。


  1. 現行はバージョン6.19。 
  2. 5になったときにはコンテストまで開催したのに! 
  3. この場合はどのソフトからもui.skype.comへのアクセスができなくなります。 
  4. 0.0.0.0でもいいかもしれない。 

航海日誌(logbook.jar)を.app化する

Java 7が必要な実行可能jarをappにする方法です。ためしに航海日誌 (艦これ専用ソフトウェア)でやってみる。

必要な道具

Command Line Tools

ターミナルでxcode-select --installとかやると、「Command Line Toolsが必要だけど入れる?」みたいなこと訊いてくるのでそれで入れます。

Apache Ant

Java Developer Packageをインストールするのが、設定とか楽だと思います。Pacifistを使用してAntの入っているJava Toolsだけインストールすることもできます。

これだとAntが古いので、Homebrewから入れたりしたほうがいいです。

JDK7

当たり前だけど要ります。Oracleのページから入れます。
Java SE Development Kit 7 – Downloads | Oracle Technology Network | Oracle
Antから参照するのにJAVA_HOMEを設定しとかないといけないみたいなので、インストール後にvi ~/.bash_profileで.bash_profileに以下を書き込みます。

export JAVA_HOME=$(/usr/libexec/java_home)

ESCでinsertを抜けて、:wqで保存して終了。source .bash_profileで再読み込みを忘れずに。

Xcode

メインのツールであるAppBundlerが10.8 SDKを要求してくるので、容量取るから入れたくないけど必要です。Mac App Storeから入れます。

材料の準備

AppBundler

Oracle純正のAppBundlerは貧弱なため1、The Infinite Kindによるフォークを使用します。

infinitekind / appbundler — Bitbucketからソースコードをダウンロードします。

  1. 「ダウンロード」のリンクを開くとzipファイルが落ちてくるので、展開します。Mercurialがあるならhg cloneしてもいいです。
  2. そのあとそのフォルダに移動します。ターミナルにcd と入力して、フォルダをドラッグ&ドロップしてくると楽です。
  3. antと入力して実行すると、現在のディレクトリにある「build.xml」ファイルに従ってビルドが行われます。正常に終わると、新しくできた「bin」フォルダの中に「appbundler-1.0ea.jar」というファイルが出来ています。
  4. 「appbundler-1.0ea.jar」ファイルを、Antのlibディレクトリに入れます。AntをJava Developer Packageからインストールした場合、場所は/usr/share/ant/lib/です。これでAppBundlerの準備は完了です。

航海日誌

公式サイトから実行ファイル(ソースコードではありません)をダウンロードして展開します。

build.xml

Antは、build.xmlというファイルに書かれている内容に従って処理を行います。なので、build.xmlを用意する必要があります。以下の内容を「build.xml」というファイル名で、航海日誌のフォルダ(「logbook.jar」のある場所)に保存します。エンコードはUTF-8です。

<?xml version="1.0" encoding="UTF-8" ?>

<project default="create_app">

    <taskdef name="bundleapp"
            classname="com.oracle.appbundler.AppBundlerTask"
            classpath="lib/appbundler-1.0ea.jar"/>

    <property environment="env"/>

    <property name="appname" value="logbook"/>
    <!-- 上の行のlogbookの部分が.appの名前になります -->

    <target name="create_app">
        <bundleapp outputdirectory="."
            name="${appname}"
            displayname="logbook"
            identifier="net.sanaechan.kancolle"
            WorkingDirectory="$APP_ROOT/Contents/Java">
            mainclassname="logbook.gui.ApplicationMain">
            <classpath file="logbook.jar"/>
            <option value="-XstartOnFirstThread"/> <!-- 起動時オプション -->
        </bundleapp>
        <copy todir="./${appname}.app/Contents/Java">
            <fileset dir=".">
                <exclude name="logbook.jar"/>
                <exclude name="build.xml"/>
                <exclude name="${appname}.app/**/*"/>
                <exclude name="${appname}.app"/>
            </fileset>
        </copy>
    </target>

</project>

調理

AppBundlerのときと同じように、build.xmlのあるディレクトリに移動してantを実行します。すぐに.appの出来上がり!

要するに

tree -L 3で出来上がった.app内の構造を調べてみると、以下のようになります。

.
└── Contents
    ├── Info.plist
    ├── Java
    │   ├── logbook.jar
    │   ├── logbook_lib
    │   ├── readme.txt
    │   └── sound
    ├── MacOS
    │   └── JavaAppLauncher
    ├── PkgInfo
    ├── PlugIns
    └── Resources
        ├── GenericApp.icns
        └── en.lproj

.appをダブルクリックするとJavaAppLauncherがInfo.plistの通りにJavaを実行します。つまり、肝のJavaAppLauncherとInfo.plistさえどうにかできれば、build.xmlを書くよりも楽にアプリケーションにできる可能性があります。どっちが楽かと言われると判断の難しいところではありますが。


  1. ホームフォルダ直下にファイルがばらまかれてしまう残念仕様。 

『ネクロニカ』にスタックを導入する

『永い後日談のネクロニカ』サプリメント、『歪曲の舞踏』が発表されましたね。長かった。

テーマは超能力だそうで、今から楽しみです。

ところで現状、ネクロニカはルール部分にけっこうな問題を抱えていて、そのどれもが個別の対症療法どうにかなる程度ではあるのですが、これが結構根が深いのです。
上記のアナウンス記事もルール部分のfixについては触れられていないのですが、今回のサプリメントで根本的に解決されている可能性は低いです。

そこでこれを機に、それを少しでも軽減する方法として、前々から考えていることを整理してみようと思います。それが表題の「『ネクロニカ』にスタックを導入する」です。鳥取(ローカルルール)として導入することを想定していますが、厳格に適用しようとするとまだまだバグが多いと思います。

スタックというのはMtGの用語のひとつで、呪文や能力が解決を待つあいだに置かれる領域のことです。スタック自身の解説は探せばいくらでも出てくるので、それについては置いておきます。要は「後入れ先出しを領域として定義したもの」だと思っておけばよいです。優先権はネクロニカではいらないんじゃないかな。

ネクロニカにスタックを導入する

ネクロニカでは、スタックはキャラクターごとに存在しますが、使用するのは基本的にアクティブなキャラクターのものです。これはアクションマニューバの同時処理のためで、詳しくは後述します。アクティブなキャラクターとは、要は手番であるキャラクターのことです。

スタックに乗るもの

  • マニューバ
  • 行為判定
  • ダメージ処理

ネクロニカにおいて、スタックに置かれるのはこの三種です。マニューバは宣言する際にコストが支払われ、スタックに乗ります。行為判定はジャッジタイミングのため、ダメージ処理はダメージタイミングのために、スタックに乗せる必要があります。

マニューバのタイミング

  • アクション
    キャラクターがアクティブであり、スタックが空であるときにのみ宣言できる。
  • ラピッド
    スタックが空であるとき、またはスタックの一番上にマニューバが乗っているときのみ宣言できる。
  • ジャッジ
    スタックの一番上に行為判定が乗っているときのみ宣言できる。
  • ダメージ
    スタックの一番上にダメージ処理が乗っているときのみ宣言できる。
  • オート
    置換効果を持つ常在型能力。宣言を必要としない限り、スタックに乗らない。

マニューバのタイミングのしっかりした定義も必要になります。宣言可能なタイミングを適切に制限することで、判定やダメージをスタックに乗せることが可能です。

アクションは、いわゆるソーサリータイミングです。ネクロニカの場合、このタイミングで宣言されたマニューバは同時処理になります。アクションマニューバの処理は後述します。
ラピッドはインスタントに似ていますが、スタックに処理が乗る以上「いつでも」というわけにはいきません。スタックが空である、またはスタックの一番上がマニューバである限り、宣言することができます。
オートは基本的に常に効果を発揮しますが、中には宣言を必要とする場合があります。マニューバが宣言された場合、それは必ずスタックに乗ります
ジャッジダメージについては注意点は特にありません。

【無限解体】【号令】【よぶんなうで】等のタイミング変更効果を持つマニューバは、あくまで「宣言を可能にする」だけであり、マニューバ自身のタイミングを変更しないこととして扱います。

アクションの処理

ネクロニカでは、同カウントのアクションマニューバは同時に解決を行います。スタックをキャラクターごとに置いたのはこのためです。
スタック上のオブジェクトは上から順に解決していきます。スタックの一番上がアクションマニューバになったとき、その解決は保留され、アクティブなキャラクターが変更されます。
すべてのキャラクターの手番が終了したとき、同時に効果を適用します。正直問題ありすぎるんでこの仕様どうにかしてほしい。

マニューバの効果の変更

このルールを導入することで、エラッタが発行されたいくつかのマニューバは、より当初の挙動に近い形で変更することができます。

【衝動】はオートに変更されましたが、【背徳の悦び】とのシナジーが失われてしまうため、以下のように変更します。

【衝動】 T:ラピッド C:効果参照 R:自身
コストとして、あなたは任意の未練に狂気点1点を加える。あなたが所有するマニューバ1つを対象とする。このカウント内にあなたがそのマニューバを使用する際、それのコストを0として扱う。

【援護】も同様です。

【援護】 T:ラピッド C:1 R:0〜1
他の姉妹1人と、彼女の所有する「アクション」マニューバ1つを対象とする。このカウント内に彼女がそのマニューバを使用する際、それのコストを0として扱う。

この変更を適用した場合、これらのマニューバは、厳密には対象のマニューバが宣言されるより先に宣言していなければなりません。実際のセッションでは融通を利かせる必要があるでしょう。

【リミッター】も、オートにしたのは正解ですが、修復不能のあたりはやりすぎです。

【リミッター】 T:オート C:なし R:自身
このパーツがバトルパート中に損傷した際に使用できる。このパーツが損傷している限り、バトルパート終了時まで最大行動値+2。

【パイルバンカー】についても変更の案はありますが、スタックとは関係がないので置いておきます。単純なことですが、シノビガミのように、すべてにおいてマニューバの分類を明確にすればいいのです。

おわり。

付記

用語は基本的にMtGのそれに準じているので、MTG Wikiもあわせて参照してください。

L-SMASHを使って.mp4にALACを格納する

紆余曲折

iOSにブルーレイ内部の動画を入れるのに、できるだけ劣化の少ない形で入れることはできないかと色々模索している最中、.mp4にALACを格納できないかと思い立ちました。

結論から言えば、純正の「ビデオ」Appに入れることはできませんでした。技術仕様にある通り、どのようなコンテナであれ、H.264ビデオの場合、オーディオコーデックはAAC-LCでなければiTunesが転送を許してくれないのです。もっとも、AVPlayerなどのメディアプレイヤーに転送すれば、ALACもH.264も再生する能力自体はあるので、ハードウェアデコーダーで再生できます。これについては、機会があれば別に記事をまとめたいと思います。

そもそも通常の方法では.mp4にALACを格納することはできませんし、わざわざ格納する意味があるのかと言えば、それも非常に怪しいところです1。どうせALACを再生できる環境自体が限られているので、開き直って.movにでも格納してしまうのが正解でしょう。

しかし調べるうち、どうやらL-SMASHというものを使用すれば、.mp4にALACを格納できることがわかりました。

それとMP4にALACを入れるのがまだx264_L-SMASHしか無いみたいで

この度のremuxer実装により、MP4Boxを使わずしてMP4コンテナに格納された映像ストリームと音声ストリームのマルチプレクス処理が可能となりました

今回は、このL-SMASHに含まれるremuxer(とffmpeg)を使用して、.mp4にALACを格納する方法を書いていこうと思います。
続きを読む

広告ブロックだけじゃない “GlimmerBlocker”

OS X用のローカルプロキシソフトに、GlimmerBlocker
というものがあります。広告ブロック用のソフトとしてさまざまなサイトで紹介されているので、使用している人もいるでしょう。プロキシであるため複数のブラウザで同一のルールを適用でき、GlimmerBlockerを使用しているMacを経由すればiOSデバイスにさえ使用できるのは数ある広告ブロック用ソフトの中でも最優秀と言ってもよいでしょう。

Proxyの段階で適用されるのでブラウザごとにいちいち設定する必要がない広告ブロッカー『GlimmerBlocker』

しかし、GlimmerBlockerの用途は広告ブロックにとどまらず、さまざまなことに使用できるのです。場合によっては、今まで使用していたブラウザの拡張機能をいくつかアンインストールできることさえあるでしょう。実際いくつもの拡張機能が不要になり、Safariは非常に快適になりました。

続きを読む

Property List Editor.appをMountain Lionにインストールする

Xcode 4以降、Property List Editor.appの機能はXcode.appに統合されました。しかし.plistファイルを編集するのにいちいち重たいXcodeが開くのは非常に煩わしいものです。いくつか.plistを扱えるフリーウェアはあるものの、試した限りではどれもProperty List Editorを越えるものではありませんでした。

Property List Editorが含まれている最後のバージョンであるXcode 3.2.6をインストールしていましたが、brew doctorするたびにHomebrewに怒られるのが忍びないので、Property List Editorだけインストールすることにしました。

参考にしたのは次のページです。

Install Property List Editor app On Lion (and Mountain Lion) | Sveinbjorn Thordarson

続きを読む

Java 7をOS Xから完全にアンインストールする

JDK 7をインストールしていたのですが、アンインストールすることにしました。
JREはブラウザプラグインだけなので、いまひとつ使いどころがない ((Java Appletなんてブロック崩しと麻雀くらいにしか使ったことない))し、V2CとかをJava 7で使ってみたくてインストールしたんですが、実行可能jarを直接叩かないといけないのが不便だし、なんか脆弱性とかgdgdだし、結局アンインストールすることにしました。後から調べたらパッケージャちゃんとついてるんですね。

で、公式に出ているアンインストールの方法なんですけど。

MacでJava 7をアンインストールするにはどうすればよいですか。

  1. DockにあるFinderアイコンをクリックします
  2. サイドバーの「Applications」タブをクリックします
  3. 「Search」ボックスで「JavaAppletPlugin.plugin」と入力します
  4. これによりJavaAppletPlugin.pluginファイルを見つけることができます
  5. JavaAppletPlugin.pluginを右クリックして、「Move to Trash」を選択します

要は、/Library/Internet Plug-Ins/JavaAppletPlugin.pluginを捨てろ、ってことなんですけど、胡散臭すぎる。自動アップデートの機能もついてるし、もっとゴミを撒き散らしてるだろ、かわいこぶってんじゃねえぞ、と思ったわけです。そもそもファイル一個ぶち込むのに、普通わざわざインストーラー使う必要はありません。

そして検索して出てきたページがここ。

tangram_pieces: Macに入れたJava7をアンインストール

このページによると、削除するファイルは以下のものプラス、いくつかの不要ファイル。その後、Apple製のJava 6を再度インストールして、アクセス権の修復をすればいいようです。

  • JavaAppletPlugin.plugin
    /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
  • com.oracle.java.Java-Updater.plist
    /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
  • JavaControlPanel.prefPane
    /Library/PreferencePanes/JavaControlPanel.prefPane
  • CoreDeploy.bundle
    /System/Library/Java/Support/CoreDeploy.bundle
  • com.apple.java.util.prefs.plist
    ~/Library/Preferences/com.apple.java.util.prefs.plist

環境によっては以下のファイルもあります。

  • com.apple.java.util.prefs.plist.lockfile
    ~/Library/Preferences/com.apple.java.util.prefs.plist.lockfile

追記:JDKを入れた場合はそれも削除します。

  • jdk1.7.0_13.jdk
    /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk

いくつかの不要なファイルが残っているが、どれを捨てたのか忘れてしまったので、自力で探して捨ててほしい」とのことなので、Spotlightで探します。検索ワードはcom.oracleで、以下の条件で探します。

  • システムファイルを含む
  • ファイルの可視属性が可視または不可視

だいぶ待つと検索結果にそれっぽいファイルが引っかかるので、それらをゴミ箱にシュゥゥゥーッ!! 超! エキサイティン!! します。具体的には以下のものです。

  • com.oracle.java.Java-Updater
  • com.oracle.java.Java-Updater.plist
  • com.oracle.java.Helper-Tool.plist
  • com.oracle.java.JavaAppletPlugin.plist
  • com.oracle.javadeployment.plist
  • com.oracle.jdk7u13.plist
  • com.oracle.jdk7u13.bom ((斜体部はバージョンによって変わります))
  • com.oracle.jre.plist
  • com.oracle.jre.bom

その後、Java 6をインストールします。

その後アクセス権を修復すれば、Java 7ともJava 7の食べかすともおさらばです! おめでとう!

まあ僕はこのあとパッケージャを試すので再インストールするんですけど