なるようになるかも

力は多くの場合、その人の思いを超えない。

今年入ってから読んだ本とか。

NFC Hacks

NFC Hacks ―プロが教えるテクニック & ツール

NFC Hacks ―プロが教えるテクニック & ツール

2015年になって、ようやくNFCについて真面目に学びました。

iBeaconは流行した頃に触ったんですけど、NFCは「どうせiOSで使えないし~」という理由でスルーしていたのです。

NFCとiBeaconを同じカテゴリに入れてるところからして間違いでした。全然別物ですね。

この本はおおまかに、

  • 物理レイヤ・・・動作原理について、電磁誘導がどうとか
  • 規格レイヤ・・・typeごとのメモリ構造やコマンドコード
  • アプリケーションレベル・・・AndroidWindowsにおけるコード例

という広いレイヤでNFCを扱っています。

ただ、この本を漫然と読んでも、書いてあることの意味を理解できないと思います。また、以下の点に注意が必要です。

  • ページ的に仕方ないですが、コードは割と基本的なことしか書いていないです。また、出版時期の関係上、Android 4.4のHost card emulationのような比較的新しいAPIには触れていません。
  • 標準規格寄りで書かれています。
    • 例えば、MIFARE Ultralightntには、それ自体の仕様と、同時にそこから派生したType2という仕様があります。この本は個別のNFC製品の仕様ではなく、NFC Forumが定めるtypeを基に広く解説しています。
    • メッセージの保存方法として、NDEFを重点的に解説しています。これはAndroidで規格を意識せずNFCタグを扱う上で非常に便利です、スマートポスターを作るなど簡単な用途としては十分です。本格的にNFCを採用したアプリケーションを開発するのには向かないように思います。

APIがあって、データの保持規格に共通仕様があるなら、簡単に読み書きできるんでしょ?」という甘い考えはあっさり崩壊しました。例えば交通系カードの履歴を読み込みたければFeliCa仕様書を読んでコマンドコードを調べて、バイナリと格闘し、タグと通信する必要があります。

タグを買って実際にコードを書いて、そのとき副読書としてこの本を読むと、非常に的確な解説だと唸らされます。

ハイパフォーマンス ブラウザネットワーキング

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

英語版は無料公開されています

ブラウザネットワーキングとあるように、どちらかというとJavaScriptでフロントエンド最前線にいたり、インフラ系エンジニアに向けた本なのですが、「HTTP/1.1の何が通信のボトルネックになっていて、HTTP/2にすることでどう早くなるのか」について学ぶ上でこれを超える本はないと思います。

もし「SPDYに対応した通信ライブラリを使えば、それで勝手に高速になるんじゃないの?」とか思っているなら、とっとと読んだ方がいいです。

モバイルネットワークの歴史、どのようにネットワークを利用することが電力的に効率的なのかなどの章も必読です。原著はアメリカで採用された3G、4G規格を前提に話をしていますが、日本語版は「日本ではどうだったのか?」という部分をフォローしているので(それだけに限らず全体的に訳注が非常に丁寧)、日本語版がお奨めです。

Web SocketやWebRTCの章は流し読みしましたごめんなさい。ネイティブ開発の片手間のJavaScriptでやるには流行り廃りが激しすぎです…。

APIデザインの極意

APIデザインの極意 Java/NetBeansアーキテクト探究ノート

APIデザインの極意 Java/NetBeansアーキテクト探究ノート

これは個人的な娯楽として読みました。

読み解くには知識と恐らく経験が必要で、しかも凄まじい密度があり、かなり人を選ぶ本だと思っています。少なくとも、私は後方互換性に厳密であるべきAPIを公開した経験がないので、正しく解釈できている自信がありません。

なので感想として言えることは、これほど面白い本が邦訳されてくれてありがたいです、ということくらいです。

挿絵のセンスはないと思います。