2019-06-18

Kinesis Ergo Elan を MacBook につないだ時に Cmd キーを使うようにする

自宅では USB キーボード Kinesis Ergo Elan を愛用している。Kinesis のキーボードとしてはいささか古いけれど、まだまだ現役で活躍している。

Ergo Elan は Mac 用のキー配置が用意されていない。最新の Advantage 2 などには、Mac/Windows/Linux のキー配置が用意されていて、Mac モードにすれば Command キー、Windows モードにすれば Windows キーが打てる。けれど、Ergo Elan にはそういう設定がない。Ergo Elan を買った時は Linux をメインに使っていたので困らなかったのだけど、MacBook の外付けキーボードとして使うには不便。今までは、Command キーが必要な時だけ、MacBook 側のキーボードに手を伸ばしていた。

解決方法

MacBook の修飾キー変更と Ergo Elan のリマップ機能を使えば、Home ボタン・Page Up ボタンを Command キーに変えることができた。

以下、その設定方法。

修飾キー変更
  1. 「システム環境設定」を開き、「キーボード」を選択する
  2. 「キーボード」タブを選んで、右下にある「修飾キー...」ボタンをクリックする
  3. 使っているキーボードを選んで、「Caps Lock ⇪ キー」を「⌘ Command」キーに変更する
Ergo Elan のリマップ

Ergo Elan のリマップのやり方は次の通り:

  • Program + F12 を押す (ライトが早く明滅する)
  • リマップ元のキーをクリックする (ライトがゆっくり明滅する)
  • リマップ先のキーをクリックする (ライトが再び早く明滅する)

2. と 3. の操作をくり返すと連続してリマップを行なえる。全てのリマップが終わったら、Frogram + F12 をもう一度押して終了する。

このリマップ機能を使って Caps Lock を Home キーと Page Up キーに移す。あと、せっかくなので、本来 Caps Lock の位置を Esc に変えてしまう。具体的な作業は次の通り:

  • Program + F12
  • → Caps Lock → Home
  • → Caps Lock → Page Up
  • → Esc → Caps Lock
  • Program + F12

以上。これで Cmd キーを親指で押せるようになった。

最後に、Ergo Elan は Caps Lock キーを押すとビッビッうるさいので、Program + - キーを押して Caps Lock のビープ音を消しておく。

⌘ + Tab を Kinesis から打てるようになって、Mac 生活がとんでもなく楽になった。なんで今まで気がつかなかったのか。

2019-06-17

Sonos x PHILE WEB「Sonos Amp」スペシャル・イベントに参加した

2019-06-15 (土) に Sonos と PHILE WEB による「Sonos Amp」のスペシャル・イベントがあったので参加した。

  • 日時: 2019-06-15 (土) 13:00-14:30
  • 会場: EDGEof 8F (東京都渋谷区)
  • 参加費: 無料 (抽選)

イベントの内容

イベントは 4 部構成。

  1. Sonos Japan 瀬戸和信氏による Sonos 社の説明
  2. Sonos Patrick "PG" Gall 氏による Sonos Amp の技術的な説明
  3. オーディオ評論家 土方久明氏による Sonos Amp 及び Sonos App の説明
  4. 質疑応答 及び フリー視聴

瀬戸氏の説明では、Sonos 社の沿革や同社の initiative である「Listen Better」の説明があった。Sonos 社は 2002 年開始の比較的新しいオーディオ・メーカーで、2018 年 10 月に日本参入。ストリーミング音楽との親和性・音楽を身近に楽しんでもらう体験を通じてファンを増やしてきた。Sonos はソフトウェアにも力を入れていて、製品のファームウェアはアップデートを通じて常に最新に近い状態を保つようになっている。アプリを使ってスピーカーを操作することが可能で、複数のスピーカーをグループでまとめて音楽を再したり、複数のグループに対して別々の曲を再生するデモが行なわれた。

PG はアムステルダムで働いている Sonos の技術者。ヨーロッパ及びアジア・パシフィックの Install Solution の担当。Sonos Amp の技術開発者でもある。Sonos Amp の特長を 3 つに絞って説明してくれた。各項目は次の通り:

  1. 各チャンネル 125W のハイパワー
  2. TV との連携
  3. Look & Feel

TV との連携については、HDMI (ARC) を搭載すること、IR リモコンに対応していることを上げていた。見た目に関しては、Sonos Amp の上にある円形の、ちょっと CD とか LD の再生器にも見える部分がスタイリッシュな排熱スリットになっていることが言及された。

オーディオ評論家の土方氏は、今回のイベントに先がけて 4 か月間 Sonos Amp を試用した体験を交えて、Sonos Amp と Sonos App の説明をしてくれた。3 曲の試聴と Sonos App の初心者向けの説明が多かった。ぼくは Sonos のスピーカーを一台も持っていないので、Sonos のアプリで何ができるのか具体的に知らなくって、意外とこのアプリの説明は助かった。特に複数のストリーミング・サービスをアプリに登録して、楽曲の串刺し検索ができる、というのは凄いと思った。惜しむらくは土方氏の持ち時間が 20 分だったこと。インターナショナル・オーディオ・ショーなんかでも大体そうなんだけど、オーディオ評論家は 1 時間から 1.5 時間を 1 枠に話を構成する。20 分では全く話し切れないし、試聴に時間を割くことができない。そんな残念さが滲み出ていた。会場の時間制限があったのかもしれないけれど、次回やるなら、もう少し大きい時間枠が取れると良いなと思った。

質疑応答では、4〜5 人が質問を出した。NAS からデジタル音源再生しているらしき人の質問がかなり突っこんでいて面白かった。答えとしては、Sonos は DLNA に対応しているので、NAS からの音楽再生も大丈夫ですよ、という所で落ちついていた。

ぼくは Apple TV や Chromecast と Sonos Amp をどう繋ぐのか? という質問をした。というのも、Sonos Amp の HDMI 端子は出力用 (ARC 対応) が 1 つしかないので、そこに Apple TV をつなげば TV につなぐ HDMI の口が無くなってしまうから。答えは、TV に Apple TV や Chromecast をつないで、TV と Sonos Amp をつなぐ。つまり、AV アンプのようにアンプ側にセレクター機能は持たせず、それは TV に任せてしまう、という割り切りだった。TV 側で音楽の入力が切り変わったら、Sonos Amp はちゃんと気がついてくれるので問題ないとのこと。

その場合、リップシンプ問題はどうなるのか? フリー視聴の時間に、個人的に質問をしてみた。すると、Sonos Amp 側で自動的にリップシンクは解決するようになっているし、もし不満があるならマニュアルでリップシンクの設定を行なう画面もあると説明された。リップシンクは、映像を遅らせるのが普通なので、先に TV が映像を受け取って表示しているなら、その映像をアンプ側が遅らせるのは無理じゃないかとモヤモヤしたんだけど、家に帰って調べてみたら ARC の規格の中にリップシンクの対応が入っているのね。必須ではないみたいだけど、ARC のリップシンク機能に対応した TV とつなげば、アンプ側から TV の映像を遅らせるようにリクエストが送れるのかな。

Sonos Amp

Sonos Amp は Sonos のスピーカーが出来ることはほとんど (?) できて、更に自分が持っているパッシブ・スピーカーを鳴らし、TV からの音も HDMI で受け取れるようになった製品。価格は 70,800 円。現在、予約受付中。

入力はネットワークの他に、RCA のアナログ入力が 1 つ、HDMI 入力が 1 つ。出力はシングル・ワイヤ用の端子が 1 セット、サブウーファー用の RCA 出力端子が 1 つ。TV の光デジタル出力を受け取れるとの説明もあったが、専用の端子はない。どうやら光デジタル出力を HDMI 出力に変換するアダプターがあるらしい (説明あったかな? 聞きもらしたかな?)。アンプに付属なのか別売なのかは良く分からない。

スピーカー出力では面白い機能が 2 つ。1 つ目はスピーカーをデュアル・モノに出来ること。スピーカーを LR にするのではなく、両方ともモノラルにする。パーティーとかで広い場所に音を届ける場合は、LR よりモノラルの方が良いかもしれない。2 つ目は Sonos のスピーカーと組み合わせて 4.1ch 構成にまでアップグレードできること。つまり、フロント 2ch はケーブルで Sonos Amp につなぎ、リア 2ch は Sonos スピーカーから音を出す、ということができる。

試聴

イベントでは 4 つの曲をかけた。音源は Apple Music かな? アンプは Sonos Amp で、スピーカーには ELAC FS407。

ELAC はドイツのスピーカー・ブランド。FS407 はトールボーイ・タイプで、定価は 520,000 円 (税別)。ELAC のスピーカーは 100 万円未満では頭一つ抜けた低音を鳴らす。とても締まった低音で、アタックのある音の表現が秀逸。

アンプの特長と合わせてスピーカーを選んだのかは分からないけど、かかった曲も低音のキレが良い曲が多かった。

エンジニアの PG がかけたのは 1 曲だけ、Channel Tres の Jet Black。スピーカーがアンプによってよく駆動しているのが分かる。7 万円台のアンプとは思えない。さすがに 20 万円代のピュア・オーディオ向けアンプと比べると表現力には差があると思うけど、5〜10 万円台の AV アンプではこれほどちゃんとスピーカーを鳴らせないんじゃないかと思う。ELAC の特長でもある締りのある低音をちゃんと出すことができていた。

オーディオ評論家の土方氏は 3 曲かけた。

1 曲目はホセ・ジェイムズ の Just the Two of Us。冒頭のアタック音が膨らむことがなくて良い。この曲の男性ボーカルを Sonos Amp と ELAC で聴くと甘く感じた。そんなに甘いイメージは持っていなかったんだけど。

2 曲目はベーシストのマーカス・ミラーの楽曲から一曲。曲名をメモり損ねたので、曲名不明。書き残したメモを見ると、「低音推し。あと一押しほしい。ピッキングの感じは良い」と書いてあった。

3 曲目はグラミーで新人賞をとった Dua Lipa の楽曲。映画「アリータ バトル・エンジェル」のエンディング曲にもなった「Swan Song」。サ行の音が強調されるように聞こえたのだけど、それは会場がデッドだったせいな気がする。音離れの良さを実感する。メモを見ると、「ピアノに深みが欲しい」と書いている。家で Apple Music から Swan Song を聴いているんだけど、ピアノの音が入っていない。ぼくはイベントで何の音を聴いたんだろう? もしかしたら、ピアノの音の入ったアコースティック・エディットとかあるのかな?

あとがき

Sonos Amp の実力は 7 万円という値段から予想していた音の上を行った。ただ、楽曲は基本 Pops 系ばかりで、オーケストラの弦やピアノをどれくらい生々しく鳴らしてくれるかは、ちょっと分からなかった。ELAC ではなく Sonas faber あたりを Sonos Amp と組み合わせたら、どんなクラシック音楽がかかるのか興味ある。

Sonos が提供する新しい音楽体験は、スマートスピーカーが一気に普及した今日では、それほど目新しいものには感じなくなってしまった。Apple も AirPlay 2 を出して、マルチルーム再生も Sonos の専売特許と言えなくなっている。

ただ、Sonos アプリの複数ストリーミング・サービス串刺し検索には大きく心ひかれる。Apple HomePod や Google Home Max が日本上陸していない今、スマートスピーカー系で音質のトップレベルを提供しているのは Sonos と言っても良いかもしれない。(KEF LSX とか Dynauio Xeo とか LINN Exakt とかピュア・オーディオ界の本気のワイヤレスは除外するとして)。

というわけで、Sonos One を一台注文してしまった。午前中に届いてしまったので、このブログの記事をアップしたら、セッティングする予定。

2019-06-16

Emacs 27.0.50 を macOS 10.15 Catalina でコンパイルした

macOS 11.15 Catalina beta 1 へアップデートしたら、むかし入れた Emacs が動かなくなったので、改めてソースから最新版をコンパイルした。

Homebrew の設定とかは 11.14 Mojave 時代にやっていたので、そのまま使った。過去のコパンイル記事はこちら。

ソースコードの取得

Emacs の開発版を git 経由で取得する:

$ git clone git://git.savannah.gnu.org/emacs.git emacs-2019

コンパイル

git で取得したソースには configure スクリプトがないので、autogen コマンドで作成。

$ cd emacs
$ ./autogen.sh

デフォルトだと xml2 ライブラリーのパスを解決できないので、CFLAGS でパスを指定。あと、mailutils がどうのと言われて configure が最後まで実行されないので、mailutils をインストールして指定しておく。

$ brew install mailutils
$ CFLAGS=`xml2-config --cflags` ./configure --without-xim --with-mailutils

Configured for 'x86_64-apple-darwin19.0.0'.

  Where should the build process find the source code?    .
  What compiler should emacs be built with?               gcc -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/libxml2
  Should Emacs use the GNU version of malloc?             no
    (The GNU allocators don't work with this system configuration.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    nextstep
  What toolkit should Emacs use?                          none
  Where do we find X Windows header files?                NONE
  Where do we find X Windows libraries?                   NONE
  Does Emacs use -lXaw3d?                                 no
  Does Emacs use -lXpm?                                   no
  Does Emacs use -ljpeg?                                  no
  Does Emacs use -ltiff?                                  no
  Does Emacs use a gif library?                           no 
  Does Emacs use a png library?                           no 
  Does Emacs use -lrsvg-2?                                no
  Does Emacs use cairo?                                   no
  Does Emacs use -llcms2?                                 no
  Does Emacs use imagemagick?                             no
  Does Emacs support sound?                               no
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  yes
  Does Emacs use -lgconf?                                 no
  Does Emacs use GSettings?                               no
  Does Emacs use a file notification library?             yes (kqueue)
  Does Emacs use access control lists?                    yes 
  Does Emacs use -lselinux?                               no
  Does Emacs use -lgnutls?                                yes
  Does Emacs use -lxml2?                                  yes
  Does Emacs use -lfreetype?                              no
  Does Emacs use HarfBuzz?                                no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs use -lsystemd?                               no
  Does Emacs use -ljansson?                               no
  Does Emacs use -lgmp?                                   yes
  Does Emacs directly use zlib?                           yes
  Does Emacs have dynamic modules support?                no
  Does Emacs use toolkit scroll bars?                     yes
  Does Emacs support Xwidgets (requires gtk3)?            no
  Does Emacs have threading support in lisp?              yes
  Does Emacs support the portable dumper?                 yes
  Does Emacs support legacy unexec dumping?               no
  Which dumping strategy does Emacs use?                  pdumper



Run 'make' to build Emacs, then run 'src/emacs' to test it.
Run 'make install' in order to build an application bundle.
The application will go to nextstep/Emacs.app and can be run or moved
from there.
The application will be fully self-contained.

色々なライブラリーが no になってしまっているけど、まずは動かすことを第一目標に気にしない。時間が出来た時に、改めて設定を見直してみよう。

make install でコンパイル。./nextstep ディレクトリー下に Emacs が出来上がる。

$ make install

ぼくは .bashrc に次の一行を書いて、ターミナルから emacs コマンドを叩けるようにしている。

# Emacs
alias emacs='open ~/project/emacs/nextstep/Emacs.app/'

ただ、ターミナルを起動した時に .bashrc を読み込んでくれない。Catalina からデフォルト・シェルが zsh に変更になったと聞くけど、その影響かな? でも起動している shell は bash のようなんだけど。これも、時間が出来た時に調べてみよう。

2019-06-04

WWDC 2019 で iOS 13 と iPadOS が発表された

2019-06-04 (火) 02:00、Apple は WWDC 2019 で iOS のメジャー・アップデートにあたる iOS 13 と iPad 用 OS となる iPadOS の発表を行なった。

パフォーマンス

iOS 13 は FaceID のアンロックが iOS 12 に比べて高速化され、アプリの起動は 2 倍になる。

アプリのダウンロード・サイズも小さくなる。新規アプリのインストールでは 50% 、アプリ・アップデートでは 60% もサイズが小さくなる。

ダークモード

ダークモードがサポートされる。WWDC ではニュース、メモ、写真、ミュージック・アプリでのダークモード表示を見せてくれた。特に OLED ディスプレイでの省電力に寄与することが期待される。

メモ (Notes)

メモ・アプリの UI は大きくアップデートされ、フォルダーやギャラリー・ビューに対応する。

リマインダー

リマインダー・アプリの UI は作り直される。

マップ

マップのデータが刷新される。US のデータは 2019 年末までに、全世界のデータは 2020 年に大幅に更新される。

マップはストリート・ビューに対応する。ストリート・ビューでは、道路をスムースに移動することができる。ストリート・ビューが日本でも展開されるかどうかは、よく分からない。

位置情報はより細かくコントロールできるようになる。1 回だけ位置情報を提供したり、位置情報のバックグラウンド・トラッキングがあればアラートを出す機能が提供される。

Sign in With Apple

Apple もソーシャル・ログイン機能を提供する。サービスによってメール・アドレスを求められることがある。Apple はアプリごとにランダム文字列のメール・アドレスを発行する。ユーザーは自分のメアドとランダム文字列のメアドを選択して使うことができる。

HomeKit Secure Video

セキュリティ・カメラはデータをクラウドにアップロードしている。HomeKit Secure Video に対応したカメラは、データを全て暗号化してクラウドにアップロードする。これらのデータは、もちろん Apple が見ることはできない。

写真アプリ

ポートレート・モードの編集機能が強化される。今までより細かい変更が可能になる。

また、ビデオの編集も強化され、ビデオの回転・エフェクトの追加が可能になる。

写真アプリのサムネイル・ビューは大きくアップデートされる。ピンチ・イン、ピンチ・アウトで拡大・縮小ができるようになる。タイル状の表示では、メインな写真が大きなタイルで表示される。ビデオや Live フォトはオートプレイに対応する。

AirPods, HomePod, CarPlay, Siri

AirPods はメッセージ・アプリに届いたメッセージを自動で読み上げ、タップなどの操作なしに返事を送ることができるようになる。

HomePod のアップデートは 3 つ。1 つ目。iPhone とのハンドオフ機能に対応する。iPhone を HomePod の近くに持っていくと、iPhone でかかっている曲が HomePod でかかる。2 つ目。HomePod は 10 万以上のネットラジオ局に対応する。3 つ目。HomePod はパーソナライズ・レスポンドに対応する。HomePod に呼びかけた人間を特定して、対応するカレンダーやミュージックにアクセスしてくれる。

CarPlay は刷新されて、ダッシュボードに必要な情報が表示されるようになる。

Siri はより自然な読み上げ (Neural TTS) ができるようになる。日本語でも、より自然な発話になるのかな?

ファイル

ファイル・アプリはプレビューに対応し、フォルダー共有機能をサポートするようになる。

また、iPad Pro では USB Drive や SD Card にもアクセスできるようになる。

iPadOS

iPad 用の iOS に iPadOS という名前が与えられることになった。ベースが iOS なことは変わらない (?)。

ホーム画面に配置するアプリの数は今までより多くなり、ホーム画面をスワイプすると左からウィジェット (今までの Today Extension の画面?) にアクセスできるようになる。

iPadOS -- Slide Over

スライド・オーバーはアプリ・スイッチャーをサポートする。スライド・オーバーで表示されているアプリに対して、iPhone 形式のアプリ・スイッチャーを呼び出すことができるようになり、アプリを簡単に切り替えることができるようになる。

iPadOS -- Split View

標準アプリは 1 つのアプリをスプリット・ビューで表示できるようになる。つまり、スプリット・ビューの左をメモ・アプリにして、右もメモ・アプリにすることが可能になる。サードパーティー・アプリも対応するのかな?

iPadOS -- Safari

デスクトップ・クラスのブラウジングができるようになる。iPad に最適化された表示ではなく、デスクトップ PC で表示される見た目と操作が可能になる (本当かな?)。Google Spreadsheet をどれくらいちゃんと操作できるようになるのか期待。

これは iPad 向け Safari に限らないかもしれないけれど、Safari はダウンロード・マネージャーを搭載する。

iPadOS -- マルチタッチ

3 本指ジェスチャーが追加される。3 本指ピンチ・インでコピー、3 本指ピンチ・アウトでペースト、3 本指スワイプで Undo。

Apple Pencil

レイテンシーが 20ms から 9ms へ減って、より反応が良くなる。また、PencilKit API が提供されるようになり、サードパーティー・アプリの Apple Pencil サポートが強化される。

2019-05-08

Google I/O 2019 のメモ的なまとめ

2019-05-08 (水) 02:00、Google I/O 2019 のキーノートがマウンテンビュー・ショアライン・アンフィシアターで開催された。イベントでは AI を中心に Google Assistant 等の Google サービスや Android Q の新機能が発表された。また、Pixel 3a や Nest Hub Max などの新デバイスの発表が行なわれた。

目についたトピックをまとめてみる。

検索

Google 検索で、リンク先のページに 3D モデルがある場合、検索結果ページにその 3D モデルへのリンクが現れるようになる。リンクをタップすることで、3D モデルを表示させることができて、更にカメラを使って AR にその 3D モデルを表示できる。キーノートでは、筋肉・靴・サメの 3D モデルをデモとして表示した。

Google Lens 機能がアップデートされる。レストランのメニュー表をカメラを通して見ると、そのレストランでポピュラーなメニューがハイライトされる。

更にカメラに映っているテキストを OCR のように認識することが可能になる。認識されたテキストは、読み上げ機能にかけることができるし、翻訳機能にかけて自国語に翻訳することもできる。翻訳したテキストを読み上げるデモも行なわれた。

これらの機能は 5 月末にリリース予定。

Duplex on the Web

フォームの自動入力機能が向上する。Google Calendar などの情報を使って、推測できる項目を自動入力していく。例えば、Google Calendar に旅行の日程が入っていたら、ホテルの予約をする時に宿泊日を自動選択してくれる。車を選ぶ時、自分の好みの色が自動で選ばれる... など。

この機能は年末にリリース予定。

Google Assistant

「Hey, Google」を言う回数が少なくなる。文脈を理解して、「Hey, Google」がなくても音声コマンドを受け付ける。デモでは、音声コマンドで連続してアプリを起動したり、メールを音声入力しつつ「送信」については音声入力ではなくメールを送信するコマンドとして実行する、という様子を見せてくれた。

これらの機能はオフラインでも働くという。年末にリリース予定。

Personal References

Google Assistant は、人の情報をより細かく理解できるようになる。例えば、母親の住所・誕生日といった情報に Google Assistant がアクセスできるようになり、「母の家の天気は?」という質問に答えるようになる。または、レストランの予約情報をアクセスできるようになり、「今日予約したレストランへの経路は?」といった質問にも答える。これらの情報は Google Assistant の You タブから設定することができる。

Driving Mode

運転中に最適化された UI を提供する。運転中にアクセスしたいであろう情報が「For You」に表示される。音楽へのアクセスにショートカットが用意される。ナビ中の Google Assistant の利用も、UI が運転用に最適化され、ナビ画面を損なわない形で提供される。

Driving Mode は今夏リリース予定。

Privacy & Security

One Tap Google Account

プロフィール写真をワンタップするだけで Google Account にアクセスする機能を、Chrome, Google 検索、Google Assistant, YouTube, Google News, Google Maps に展開する。

Incognito mode (シークレット・モード?)

Google Chrome ブラウザーには Incognito Mode (シークレット・ウィンドウ) という機能がある。Google はこの Incognito Mode を YouTube と Google Maps にも提供する。

Android Phone for Security Key

Android Phone がセキュリティー・キーとして働く機能を提供する。Android 7.0 以降の端末が対象。リリースは今日から。

Android 10 Q

Foldable Display Device

折り畳みディスプレイに対応する。スクリーンの連続性を保つことに注力する。ディスプレイを開いて大画面にする時、開く前の画面と開いた後の画面は基本同じものが映っていて、作業を中断することなく続けることができる。動画を観ていたら、動画の続きが表示されるし、メモを書いていたらメモ書きの作業が続けられる。

5G

次世代通信規関 5G にネイティブ対応する。5G は 2019 年に 20 以上のキャリアが開始すると言われている。

Live caption

音声・動画にその場でキャプションを付ける機能。翻訳モデルは端末内にあるので、オフラインで動作するし、通信タイムラグも発生しない。対象となるのはビデオ、ポッドキャスト、カメラで撮影した動画。

Smart Reply

Smart Reply 機能は全てのメッセージ系アプリで使えるようになる。

Dark Theme

ダークモードがやって来る。バッテリー消費の低下が期待される。

Faster Security Update

Android の OS モジュール をアップデート可能な形で提供する。これにより、セキュリティー・アップデートがあればバックグラウンドでアップデートを取得し、再起動なしに新しいアップデート・モジュールを利用可能になる。一見、それはアプリのアップデートと同じような動きになるという。

Focus Mode

他のアプリを使えなくして、一つのことに集中できるようにする。ホワイトリスト形式で利用できるアプリを選択する。

Nest Hub Max

Google のディスプレイ付きスマート・スピーカー Google Home Hub が名前を変えて Nest Hub になる。

また Google は Nest Hub シリーズの最新デバイス Nest Hub Max を発表した。

Nest Home Hub の最大の特徴はカメラ。Nest Hub にはなかったカメラを備える。カメラ利用時には緑色の LED が光るようになっていて、デバイス背面にはカメラとマイクをオフにする物理ボタンが付いている。カメラを使うことで、Android から自宅の様子を確認したり、Google Duo からビデオ通話をかけたり、フェイス・マッチつまり顔認識を行ないユーザーに最適の情報 (カレンダーとかパーソナライズ・レコメンデーテーションとか) を表示する。カメラを使ってジェスチャーを理解することもできる。キーノートでは、手を上げてタイマーを止める様子が映されていた。

Nest Hub Max は今夏末までにアメリカ、イギリス、オーストラリアで発売される。価格は 229 ドル。

合わせて、Nest Hub の価格改定が発表された。新価格は 129 ドル。Nest Hub は日本でも発売される。

Pixel 3a

廉価版 Pixel 3 となる Pixel 3a と Pixel 3a XL が発表された。日本でも発売される。価格は Pixel 3a が 48,600 円から、Pixel 3a XL が 6 万円から。3 色展開 (ジャストブラック、クリアリィーホワイト、パープルイッシュ) で、ストレージは 64 GB。Pixel 3a は 5.6 インチ・モデル、Pixel 3a XL は 6 インチ・モデル。今日から予約開始、2019-05-17 発売予定。

OS は Android 9.0 Pie で最大 3 年の OS アップデート保証となる。バッテリーはフル充電で 30 時間、15 分の充電でも 7 時間のもちになる。

キーノートでは、去年発表された Google Maps の AR 機能が今日から Pixel シリーズにリリースされることも言及された。

2019-03-26

Apple Event It's show time が開催された

2018-03-26 (木) 02:00、Apple は The Steve Jobs Teater でイベントを開催して複数のサービスの予告を行なった。ハードウェアの発表は 1 枚のカードだけだった。

発表されたサービスは次の通り:

今日リリースされたのは Apple News+ のみ。それ以外のサービスは予告で、今日はリリースされたなかった。この内、日本でサービス・インが予定されているものは (Apple の日本語サイトから予想すると) Apple Arcade と tv アプリ、そして Apple TV+ だけと見られる。

Apple News+

Apple のニュース・サービス Apple News が進化する。Apple News は Apple のニュース・サービス (日本では未提供)。Apple News+ は雑誌のサブスクリプション購読サービス。月額 9.99 ドル。ファミリー共有にも対応。サービス自体は今日から開始するが、提供国はアメリカとカナダ (英語・フランス語) のみ。今秋にオーストラリアと英国への提供を、その後にヨーロッパへの提供を予定している。日本での提供は (行なわれるとして) かなり後になりそう。

購読可能になる雑誌は 300 以上。イベントでは、Los Angeles Times や The Wall Street Journal などが購読可能な雑誌として挙げられた。

購読雑誌はオフラインでも読むことができる。プライバシーにも配慮していて、パーソナライズは行なわれるものの、どの記事を読んでいるかを雑誌社や広告提供者が知ることはないとしている。

雑誌のカバーにはライブ・カバーも採用される。ライブ・カバーはカバーに動画を表示する機能。イベントでは National Geographics のカバーに夜景の様子が映し出された。

Apple Card

Apple がゴールドマン・サックスやマスターカードと組んでクレジットカードを提供する。リリースは今夏予定。日本の Apple サイトに紹介ページがないので、日本でのサービス・インはすぐにはなさそう。

Apple Card はオンラインで発行が可能。iPhone との親和性が高くなるよう設計されている。

クレジット・カードにつきものの年会費はなし。

Apple はユーザーが何を買ったか、どこで買ったか、いくら使ったかといった個人情報は取らないとしている。

Wallet アプリ

Wallet アプリは Apple Card 向けの機能が追加される。クレジットカードの利用履歴のアクセスできるのはもちろん、どの店舗で購入したかを位置情報を使って特定して表示する。例えば利用履歴の「コンビニでの購入」が「セブンイレブンでの購入」というように詳細情報が表示されるようになる。

購入履歴は自動でカテゴライズされて、週間・月間サマリーが作成される。

Daily Cache

Apple はポイントの代わりに、Daily Cache と呼ばれるキャッシュバック・サービスを行なう。利用した金額に対して毎日キャッシュ・バックが行なわれる。キャッシュ・バック率は以下の通り:

  • 1% キャッシュ・バック: 物理カードでの利用で
  • 2% キャッシュ・バック: iPhone や Apple watch からの利用で
  • 3% キャッシュ・バック: Apple Store や iTunes での購入で
物理カード

Apple Pay が利用できない店舗もある。そんなケースのために物理カードも発行する。チタン製で、クレジット番号やセキュリティー・コードは刻印しない。

Apple Pay の小さなニュース

Apple Pay は今年末までに 40 か国以上のサービス・インを予定している。また、日本の JR などで使われる交通機関での Apple Pay 利用を、アメリカの主要都市 (ポートランド、シカゴ、ニューヨーク) で今年末に開始する。

Apple Arcade

Apple がゲーム業界に参入する。Apple Arcade はゲーム・サブスクリプション・サービス。ゲーム・タイトルは 100 以上。サブスクリプションを開始すると、Apple Arcade 内の全てのゲームを楽しむことができる。リリースは今秋予定。料金は明らかにされなかった。日本を含めた 150 か国で公開される。ファミリー共有にも対応。

Apple Arcade のアプリは広告なし。アプリ内課金なし。プレイは iPhane や iPad の他、Mac や Apple TV 上で可能。全てのゲームがオフライン・プレイに対応する。

tv アプリ

tv アプリが進化する。Prime Video や Hulu などのサービス、ケーブル TV、iTunes ビデオ、Apple TV Channels を 1 つのアプリの中でアクセスできるようになる。リリースは 2019 年 5 月を予定。macOS 用の tv アプリは今秋リリース。また、スマート TV (Samsung, LG, Sony, Visio) と ROKU 及び Fire TV 向けにも tv アプリを提供する。tv アプリの提供国は現在 10 か国。これを 100 か国に拡大する予定とのこと。tv アプリは日本で提供されていないけれど、Apple TV+ が tv アプリ上で提供されるようなので、日本でもリリースされるんじゃないかと思う。

映画は各サービス (Prime Video, Hulu, iTunes ビデオ...) から自由に選べて、映画の予告編も見ることができる。試合についてはライブ・スコアを表示する。アプリ内でコンテントの購入も可能。

Apple TV+

Apple がオリジナル・コンテンツを提供する。Prime Video や Netflix がオリジナルのコンテンツを提供しているけど、Apple もその世界に入って来る。サービス・インは今秋。

あとがき

Apple の「ファミリー共有」の扱いが気になった。Apple News+ と Apple Arcade の 2 つのサブスクリプション・サービスで、ファミリー共有が追加料金なしで対応すると発表された。Apple Music では、個人 (980円/月) とファミリー共有 (1,480円/月) でプラン料金が違うのに。Apple はファミリーでの囲い込みを本格的に始めているように感じた。

2018-12-31

Swift の Protocol Extension で save(_ models: Sequence<Model>) みたいなことをやる

前提あるいは Array 版

Swift でシンプルな Protocol を用意して...

protocol ModelType: Hashable {}
protocol Repository {
    associatedtype Model: ModelType
    func save(_ models: [Model])
}

これらのプロトコルに適合するモデルとリポジトリーを作ってみる。

// MARK: - モデル  
struct Book: ModelType {
    let title: String
}

// MARK: - リポジトリー
extension Repository {
    func save(_ models: [Model]) {
        models.forEach { model in
            print(model)
        }
    }
}

struct BookRepository: Repository {
    typealias Model = Book
}

今回は Book モデルと BookRepository を作ってみた。Repository Protocol の save メソッドは Protocol Extension で実装した。中身はダミー。ちゃんとやるなら、Dictionary を使ったメモリー・キャッシュか Realm 等を使ったディスク・キャッシュの実装を書くことになると思う。

これらのメソッドの使い方は次の通り:

let array = [ Book(title: "book 1"), Book(title: "book 2"), ]
let repository = BookRepository()
repository.save(array)

Set でも使いたい

さて、時には Array ではなく Set を使いたいケースがある。その場合の使い方は次の通り:

let set: Set = [ Book(title: "book 3"), Book(title: "book 4"), ]
let repository = BookRepository()
repository.save(Array(set))

Repository の save メソッドは Array しか受け付けないので、Set から Array に変換する手間がかかる。

この変換をなくしたい。Array とか Set とか気にせず使いたい。そんなことは可能だろうか?

Set 用のメソッドを用意する

Swift は型を厳密に区別するので、Set 用のメソッドを用意してみる。

protocol Repository {
    associatedtype Model: ModelType
    func save(_ models: [Model])
    func save(_ models: Set<Model>)
}
extension Repository {
    func save(_ models: [Model]) {
        models.forEach { model in
            print(model)
        }
    }
    func save(_ models: Set<Model>) {
        models.forEach { model in
            print(model)
        }
    }
}

こうすると、さっきのコードは Array への変換が不要になる:

let set: Set = [ Book(title: "book 3"), Book(title: "book 4"), ]
let repository = BookRepository()
repository.save(set)

目的達成。ただ、力業で凌いだきらいが強い。もう少しスマートにできないものか?

Sequence を使いたい

Protocol Extension のコードを見てみると、中のコードは全く同じ。forEach を使っている。forEach メソッドは Sequence Protocol にある。そして Sequence Protocol は Array にも Set にも適合されている。

すると、Array や Set のメソッドを用意しなくても、Sequence Protocol に対して save メソッドを用意すれば良さそう。そう、こんな感じに...

protocol Repository {
    associatedtype Model: ModelType
    func save(_ models: Sequence<Model>)
}

残念ながら上のコードは動かない。やりたいことは分かったけど、実現方法が分からない。

というわけで、本記事のタイトルに書いたスタート地点に立った。

Set.union を参考に

そういえば、Set の union メソッドは引数に Set でも Array でも渡すことができた。あの実装はどうなっているんだろう?

コード・ジャンプを使って実装を見てみよう:

extension Set : SetAlgebra where Element : Hashable {
    public func union<S>(_ other: S) -> Set<Set<Element>.Element>
        where Element == S.Element, S : Sequence

なるほど、Sequence.Element で型を指定している。この方法を真似ればよさそう:

protocol Repository {
    associatedtype Model: ModelType
    func save<S>(_ models: S) where S: Sequence, S.Element == Model
}
extension Repository {
    func save<S>(_ models: S) where S: Sequence, S.Element == Model {
        models.forEach { model in
            print(model)
        }
    }
}

これでコードを書いてみると...

let array = [ Book(title: "book 1"), Book(title: "book 2"), ]
let set: Set = [ Book(title: "book 3"), Book(title: "book 4"), ]
let repository = BookRepository()

repository.save(array)
repository.save(set)

Array でも Set でも問題なく使うことができた。

あとがき

Sequence Protocol を意識することで、Array でも Set でも使えるメソッドを用意することができた。やったことはプロトコルへ興味を開げただけ。実装に手詰まっても、Apple のソースコードからヒントを得ることができる。時間があったら Swift の標準プロトコルを見て回るのも面白いかもしれない。

2018-11-14

YouTube Premium のファミリー・プランについて

2018-11-14 (水)、日本で YouTube Premium が開放された。
YouTube Premium に登録すると、YouTube の広告が表示されなくなり、オフライン再生やバックグラウンド再生などがサポートされる。また同時にリリースされた音楽特化の YouTube サービス YouTube Music Premium も利用可能になる。月額 1,180 円、ファミリー・プランは 1,780 円から。
さて、ファミリー・プランにおけるファミリー・メンバーの要件なのだけど Google Play Music と YouTube Premium では小さな違いがあった。
まずは Google Play Music のファミリー・メンバーの要件。

ファミリー グループの管理者と同じ国に居住している

引き続いて YouTube Premium のファミリー・メンバーの要件。


ファミリー グループの管理者と同世帯 (同住所) に住んでいる
Google Play Music では管理者と同じ国に住んでいれば良かったものが、YouTube Premium では同世帯 (同住所) へと制限が厳しくなった。

あとがき

ぼくは実家の親も Google Play Music を使えるようにとファミリー・プランに入っていた。けれど、YouTube Premium の要件に従うともうファミリー・プランは使えない。YouTube Premium の 2 アカウント分のお金を払うのは財布に厳しいし、クレジット・カードの管理とか面倒臭そう。ぼく個人では YouTube Premium の広告なしやバックグララウンド再生には心引かれるものがあるのだけど、親はそこまで望んでいないだろうから、もう少し Google Play Music のファミリー・プランを使い続けることになると思う。

2018-10-31

新 iPad Pro が発表された

2018-10-30 (火) 23:00、Apple が Apple Special Event を開催して、新 iPad Pro を発表した。

サイズは 11 インチと 12.9 インチの 2 ラインナップ。OLED は搭載しないものの、ノッチなしの FaceID をサポートしてホームボタンを廃止している。iPad Pro としてはフルモデル・チェンジに近い。色はシルバーとスペースグレイの 2 色展開。ストレージは 64, 256, 512 GB, 1 TB。価格は 11 インチが 89,800 円 (税別) から、12.9 インチが 111,800 円 (税別) から。2018-10-31 (水) から予約開始。2018-11-07 (水) から発売開始。

ディスプレイ

ディスプレイは Liquid Retina LCD ディスプレイ。iPhone X で採用された OLED はまだ iPad にはやって来ない。

過去のモデルに比べて、ディスプレイの四隅が丸っこくカットされている。また、iPhone X などと同じようにベゼルレス化が押し進められている。

FaceID とホームボタンの廃止

ノッチなしの FaceID が付いた。顔認証ための TrueDepth カメラは上側のベゼルの中に入っている。iPhone X では縦向きでしか顔認証が働かないけれど、iPad Pro では横向きでも顔認証が働く。

FaceID が採用されたことで、ホームボタンがなくなり TouchID も消え去った。認証は顔認証だけになる。タブレットは家族で使い回すことが多いので、複数の顔を登録できるとありがたいのだけど、そのあたりのサポートがどうなっているのかは不明。

また、ホームボタンがなくなったことで、iPhone X 流のジェスチャーへと移行することになった。といっても iOS 12 で iPad を使っていたら、iPhone X 流のジェスチャーがもう使えるようになっているので特に気にすることはない。下からスワイプ・アップしてドック、下からスワイプ・アップしたあと少し止めてアップ・スイッチャー、右上からスワイプ・ダウンしてコントロール・センター、左上からスワイプ・ダウンして通知センター。ここらへんはホームボタン付きの iPad と変わらない。画面下を横にスワイプしてアプリ切替ができるようになったのが新しいくらいか。

A12X Bionic

iPad Pro は A12X Bionic チップを採用。8 コアの CPU は 4 コアの性能コア (Performance Core) と 4 つの効率コア (Efficiency Core) から構成されている。シングル・コアで 35% の高速化を果たしているとのこと。また 7 コアの GPU は約 2 倍の高速になっている。A12 Bionic にあった機械学習用 Neural Engine も健在。

ストレージ

iPad シリーズで初となる 1TB モデルが用意された。ストレージは 64 GB, 256 GB, 512 GB そして 1 TB の 4 つから選ぶことになる。

カメラ

カメラは特に大きく変わっていないもよう。一つだけ挙げるなら、iPhone XS で導入された Smart HDR に対応するようになった。

USB-C

ライトニング・コネクターが廃止された。USB-C コネクターへとその座を譲る。

iPad Pro は USB-C を使って、今までより多くのデバイスと繋がれるようになる。例えば外付けディスプレイやカメラとの接続が可能になる。iPhone への充電も可能になるとのこと (USB-C / ライトニングの変換ケーブルは買わないといけないだけろうけど)

Apple Pencil (第 2 世代)

新しい Apple Pencil が発表された。価格は 14,500 円 (税別)。2018-10-31 (水) から予約開始。2018-11-07 (水) から発売開始。注文時に刻印が可能となっている。

iPad Pro とのペアリングは、Apple Pencil を磁石で iPad にくっつけるだけ。具体的には Apple Pencil の平らな面を iPad Pro の右側にくっつける。すると磁石で Apple Pencil と iPad Pro が繋がって同時にペアリングとワイヤレス充電が行なわれる。当然、第 1 世代にあったライトニング・コネクターは廃止され、旧 iPad Pro と一緒には使えなくなっている (そして、第 1 世代 Apple Pencil も新しい iPad Pro とは使えない)。

Apple Pencil にはタッチセンサーが新しく追加されている。Apple Pencil をダブル・タップすると、対応するアプリでツールの切り替えなどが行なえる。

Smart Keyboard Folio

新しい Smart Keyboard が発表された。価格は 11 インチ・モデル用が 19,800 円 (税別)、12.9 インチ・モデル用が 22,800 円 (税別)。2018-10-31 (水) から予約開始。2018-11-07 (水) から発売開始。

旧 Smart Keyboard は iPad の前面だけをカバーで守る形だったけど、Smart Keyboard Folio は形を変えて iPad を前後から挾みこむようになった。旧 Smart keyboard にあったスタンド専用のような形状にはならなくなったけど、キーボードを出したままで 2 種類の角度を選べるようになっている。

スマート・コネクターの位置は iPad の側面から下方・裏面へと移った。旧 Smart Keyboard は 12.9 インチ用の Smart Keyboard を 9.7 イ川四 iPad Pro につなげてキー入力することも可能だったけど、スマート・コネクターの位置が変わったから、そういうことはもう出来ない (気がする)。

あとがき

iPad Pro は 9.7 インチと 12.9 インチの第 1 世代及び第 2 世代を持っている。今回、iPad Pro の 11 インチを買おうか 12.9 インチの第 3 世代を買おうか、とても悩む。9.7 インチ・サイズの iPad は軽くウェブを閲覧したり、電車の中で開いたり、という用途で重宝している。そろそろ新しいものを買っても良い。一方、12.9 インチ・サイズは Kindle で技術書やマンガが読んだり、映画を見たり、YouTube を楽しんだり、会議やカンファレンスでメモを取るのに使っていて利用頻度が高い。両方買えたら言うことなしなんだけど、財布に余裕はない。次のモデルあたりで OLED 化も進むだろうし、それを考えるとどうすべきか。難しい。

新 Mac Mini が発表された

2018-10-30 (火) 23:00、Apple が Apple Special Event を開催して、Mac Mini の刷新を発表した。

価格は 89,800 円 (税別) から。2018-10-31 (水) から予約開始。2018-11-07 (水) 発売開始。

スペック

刷新されたスペックを中心に列挙する:

  • CPU: 最大 6 Core のチップ
  • メモリー: 最大 64 GB
  • ストレージ: 最大 2 TB
  • Thunderbolt 3 (USB-C) x4
  • HDMI 2.0 x1
  • 10 Gb Ethernet x1
  • USB 3.0 x2
  • 3.5 mm ヘッドホン・ジャック

CPU はデフォルトが 4 Core チップで、6 Core チップに変更可能。パフォーマンスは最大 5 倍向上したとされる。メモリーは 2,666 MHz DDR4 メモリーを採用。ストレージは全てフラッシュ・ストレージで読み込み速度は最大 4 倍高速化された。

新しい MacBook Air と同様、Apple の T2 セキュリティ・チップを搭載。暗号化ストレージなどでの高速化が期待される。

Thunderbolt 3 (USB-C) ポートは 4 つ。4K ディスプレイなら 2 つ、5K ディスプレイなら 1 つと接続が可能。グラフィック性能が必要なら、eGPU との接続もできるようになっている。なお、Thunderbolt 3 ポートとは別に、HDMI 2.0 ポートもあるので、そちらでディスプレイを 1 つ追加 (最大 3 画面) にすることも可能。

あとがき

Mac Mini ってこんなにスペック高くできたっけ? というくらい進化してきた。少しベース・プライスも高くなったようだけど、より実戦向きのスペックになったように思う。