ヤルキデナイズド

Unclassified Articles on Software and IT

Mac の SkyDrive クライアントはシンボリックリンクを辿らない

Mac の SkyDrive クライアント(現時点でバージョン16.4)は SkyDrive フォルダに入っているシンボリックリンクを辿ってくれない。 Dropbox クライアント(バージョン1.4.12)は、リンク先のファイルやフォルダを同期してくれる。

Evernote をファンクションキーで開けるようにする

追記:以下の情報はシステム環境設定のキーボード設定で「F1、 F2 などのすべてのキーを標準のファンクションキーとして使用」にチェックが入っている場合を想定している。

Evernote の環境設定でファンクションキーをグローバルなキーボードショートカットに設定しようとするとエラーが出る。

キーの組み合わせ F7 は利用できません!

エラーには「システム全体のキーボードショートカットにより既に利用されているため」とあるがそんなことはなく、ファンクションキーに機能が割り当てられていなくともこのエラーは表示される。

幸い、設定ファイルを直接書き換えればファンクションキーをキーボードショートカットに設定することができる。以下、「Evernoteで検索」に F7 キーを割り当てる例を説明する。

まず Evernote の環境設定で「Evernoteで検索」に Cmd+F7 キーを割り当てる。そして Evernote を終了する。

続いてターミナルを開き open ~/Library/Containers/com.evernote.Evernote/Data/Library/Preferences/com.evernote.Evernote.plist と入力する。すると Xcode のプロパティリストエディタが起動する(起動しない場合は Xcode をインストールすること)。

プロパティリストエディタで ShortcutRecorder search というキーの項目を探し、子要素を開く。 modifierFlags 項目の値を「9,437,184」から「8,388,864」に書き換える(表示上はカンマが挿入されているが、入力するときはカンマを抜いて「8388864」と入れること)。

modifierFlags の値を編集

ファイルを保存してエディタを閉じ、 Evernote を起動する。環境設定を開き、 F7 キーが正しく割り当てられていることを確認する。

F7 キーが割り当てられていることを確認

パスワード管理ツール比較

Mac 用のパスワード管理ツールが欲しいので下調べ。

1Password

LastPass

キーチェーンアクセス

  • Mac に標準で付属
  • Safari に対応
  • パスワード以外のメモを保存可能
    • 1つ閲覧するごとにマスターパスワードを要求される
  • 無料

“[0,1]” は不正な YAML だった

発端はこの発言。

いわく、

# ruby
YAML.load('[0, 1]') == [0, 1]
YAML.load('[0,1]') == [1]

になるというもの。カンマの後ろにスペースがあるかないかでパース結果が異なる。馬鹿な。

調べた結果、Ruby 1.9.2 までデフォルトの YAML パーサであった Syck に問題があることが分かった。 Syck は、 いわゆる配列(YAML の用語ではフローシーケンスという)の要素を区切るカンマの後にスペースがないとき、カンマが存在しないものとしてパースする。つまり [0,1] という YAML[01] に等しく、8進数の“1”を要素とするシーケンスと解釈される。

これ、 Syck がタコなだけかと思いきやそうでもないらしい。YAML 1.0 の仕様によれば、フローシーケンスはカンマの後に1つ以上の空白トークンを必要とする。 Syck は YAML 1.0 に対応した古いパーサなので、 Syck にとってみれば [0,1] はそもそも不正な YAML なのである。不正な YAML を食ったらエラーのひとつも吐いてほしいところだが、未定義動作をしても仕方ないといえるだろう。

より新しい仕様である YAML 1.1YAML 1.2 ではカンマの後の空白トークンがオプショナルになったため、現在では [0,1] も正しい YAML である。よってこの記事のタイトルは、見てのとおり過去形になっている。

Ruby 1.9.3 からデフォルトの YAML パーサとなった Psych は libyaml のラッパーであり、 libyaml は YAML 1.1 に対応している。よって Ruby 1.9.3 ではこの問題は起こらない。さらに Psych は、不正な YAML(たとえば {0:1}——フローマッピングのコロンの後には依然として空白トークンが必要)をパースするとエラーを吐く。 Syck よりも Psych を使おう。

Surface タブレットの画面解像度はいくつなのか

ITmedia の記事には、 ARM 版 Surface タブレットの解像度は1280×720であると書かれている。一方、他メディアの Surface に関する記事や、 Microsoft が公開する Surface のスペックシート(PDF)は解像度に触れていない。 ITmedia がいう1280×720はどこから来たのか。

スペックシートには、 ARM 版 Surface のディスプレイは“10.6″ ClearType HD Display”であると記載されている。おそらくこの“HD Display”を根拠として解像度1280×720を導いたようだ。

しかし、“HD Display”が1280×720を指すとは限らない。 Graphic display resolutions - Wikipedia, the free encyclopedia によれば解像度{1360, 1364, 1366, 1376}×768もHDと呼ばれるようである。

ところで、 Windows 8 にはスナップという機能が搭載される。この機能は1画面に2つのアプリケーションを表示できるようにするもので、最低でも解像度1366×768のディスプレイを必要とする

Microsoft ブランドのもとに満を持して発表された Surface が、 Windows 8 の新機能に対応しない、ということは考えにくいのではないか。希望的観測ではあるが、 ARM 版 Surface の解像度は1366×768だと思う。

「完全無料!MacでWindows 7を利用する方法」は違法なのか

完全無料!MacでWindows 7を利用する方法 - Macの手書き説明書がブコメで叩かれていたので調べてみた。この記事を要約すると:

  • Microsoft はIEの動作検証用に Windows のディスクイメージを配布している
  • VirtualPC 以外にインストールするのは面倒だが、あるスクリプトを使うことで Mac の VirtualBox などにも簡単にインストールできる
  • 使用期限をリセットすれば無限に使える
  • Mac で無料 Windows!

というもの。これに対するブコメの反応を大別すると:

  • マジ便利じゃね
  • てか "This copy of Windows is not genuine" って出てるのヤバくね
  • つまりクラック版だろ
  • 利用規約違反
  • 乞食乙

など。

先に結論

Mac+VirtualBox+Windows 7 の組み合わせでIE(8 or 9)の動作検証を行うのは合法。

検証以外に使用するのは違法(ただしどこまでを検証とするかは記述なし)。

追記:IEに関係ないアプリケーションをインストールするのも違法。

ブコメへのコメント・反論・検証

「マジ便利じゃね」

便利っすね。

「てか "This copy of Windows is not genuine" って出てるのヤバくね」

当該のディスクイメージを配布している Microsoft のダウンロードサイトでは、検証用OSはプロダクトアクティベーションを通過しないこと(つまり "This copy of Windows is not genuine" と表示されること)が説明されている。

つまり、想定された使い方の範囲内であってもアクティベーションを通過しないのだから、 "(略) not genuine" と表示されることを持って無料 Windows がヤバいとは言えない。

ついでに言うと、ダウンロードサイトには検証用OSの使用期限を延長またはリセットする方法も書かれている。

「つまりクラック版だろ」

違う。 Microsoft から正規に配布されているディスクイメージを使っている。また、上記の簡単インストールスクリプトはディスクイメージの書き換えを行わない。

「利用規約違反だ」

利用規約違反に当たりそうなのは次の4点

  • 動作保証対象外のVMにインストールしている
  • IEの動作検証以外に使用している
  • アクティベーションをしていない
  • 使用期限を無視して使い続けている

だが、検証用OSの配布ページには肝心の利用規約が書かれていない。普通の Windows の利用許諾をそのまま適用するのだろうか。(追記:後述するようにライセンスはディスクイメージに含まれている。またXPと7ではライセンスが微妙に異なる)

下の2点については、先に言ったように無視あるいは回避していいようだが、検証用途の範囲内に限った話かもしれない。

感覚的には黒寄りのグレーだが確証はない。よく分かりません。

「乞食乙」

まったくです。

その後の展開

記事のコメント欄でライセンス違反が指摘されていた:

通りすがり URL 2012-06-18 Mon 20:15:24

完全にライセンス違反です。
IE動作確認専用WindowsのVHDをダウンロードしてWinRARで確認すればLicense文書が英語で入っています。

Microsoft Virtual PCまたはMicrosoft Virtual Serverの有効なライセンスのあるマシンにのみインストール可能であると明記されています。(なお、VHDフォーマットの仮想ハードディスクイメージを変換することはできませんとも明記されていますのでもしもVHDディスクに何らかの変更が加えられているとしたらそれもライセンス違反となります。)

が、これは Windows XPVHD に含まれるライセンスの話。 Windows 7 のライセンスでは文言が変更されており、問題なくなっている。以下、自分のコメントを全文引用する:

uasi URL 2012-06-18 Mon 22:14:33
>IE動作確認専用WindowsのVHDをダウンロードしてWinRARで確認すればLicense文書が英語で入っています。

確認しました。Windows XP+IE6 の VHD に含まれるライセンスには

>You may install and use one copy of the software on your device of which you are running a validly licensed copy of Microsoft Virtual PC or Microsoft Virtual Server. You may not change or convert the virtual hard disk image from the VHD format.

とありますから、これを VirtualBox にインストールするのは確かにライセンス違反です。一方、 Windows 7+IE8 の VHD に含まれるライセンスには

>You may install and use one copy of the software on your device of which you are running any virtualization software able to run Virtual Hard Disk (VHD) formats, including Microsoft Virtual PC or Microsoft Virtual Server.

とあります。 VirtualBoxVHD 形式のディスクイメージを利用できますから、ライセンス違反には当たりません。 この記事で説明されている Mac+VirtualBox+Windows 7 の組み合わせなら問題ないと思われます。

次に検証用OSの用途ですが、どちらのライセンスにも

>You may use the software only to evaluate it and provide feedback to Microsoft.

とあるだけで、 "to evaluate" の詳細な規定は見あたりません。IEの動作確認以外に利用しても、あくまで評価しているだけだと強弁することはできそうです。この記事で当初言われていたような「ちょっとしたゲームのため」(この文言は今は削除されているようです)などの目的が評価に当たるかは微妙なところですが。

さらにその後、この記事のコメント欄で指摘をいただいた。ライセンスはIEの検証に関係しないソフトウェアのインストールを禁止している。よって「ちょっとしたゲーム」のプレイはライセンス違反となる。

インストールしないタイプのゲームを、「IEと同時起動できるかどうか確かめる」と言い張って遊ぶことはできなくもないだろうが、そこまでしてやるものでもないだろう。