今年はあんまり読んでないかと思っていたが、見直してみると数は多いので代表的なのだけ。
System Performance
Brendan Greggの本、これは仕事をはじめる前の無職の頃に買って読んでいた本。 森田さんが良くBrendan Greggの言及をするので自分もdtraceって奴をちゃんと勉強しておくか〜、と思って買った。能書きが多くて同じようなことを延々と繰り返してて辛い本だが、レシピ集的には素晴らしい、という二面性のある、評価の難しい本。当時の読書記録はこちら。 読書記録: System Performance
なお、パフォーマンスつながりでiOSの事情を知る為に iOS and macOS Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift も読んだ。 そんなに深い話では無いが、普通にiOS上で使えるツール等が書いてあってiOSの基本的な話題もあって悪くはない。 ちなみにiOSではdtraceを使えそうな事が書いてあったが、たぶん使えないのでは?でもiOSにトレーシング系のプロファイラが無いというのも信じがたい?知っている人居たら教えて下さい。
C++の本
今年はC++の本をいろいろ読んだ。
- The C++ Programming Language 4th edition
- Effective Modern C++
- 上記2冊の当時の感想 最近読んだC++の本2冊の感想
- Modern C++ Programming Cookbook
- この本はいまいち。当時の感想 書籍: Modern C++ Programming Cookbook
一番上のStroustrup本は業務でも日常的に(一日に数回くらい)参照するくらいには良く使ってる。 でもこの本がC++ 11までしか扱っていない、というのが、 現状のC++を学ぶ時の困った状況を表している気がする。せめてC++14に対応した版が欲しいなぁ… 上2冊は良い本だとは思うけれど、これだけでは言語をとりまく状況の複雑さを思うと、全然足りないなぁ、とも思ってしまう。 Stroustrup本は1279ページ(!)もあるのに足りないとか言われても…という気もするが。
* OS Internals
iOSとOS Xのインターナルの本。何故か物理本でしか売ってない上に上記のサイトがどう買ったらいいか謎が多く、Paypalでお金を振り込んでメールをする、みたいな不安のあるフローで、HTTPSじゃないし怪しさ爆裂。でもちゃんと届いた。
期待よりもOS Xの話が多くてちょっとがっかりだが、InternalはOS Xの方がわかるんだろうねぇ。 やっぱコアの部分はAndroidの方が良く分かるので勉強し甲斐は向こうの方があるよなぁ。
トピックの提示とヘッダファイルの中身くらいまでは書いてあるのだが、内部のメカニズムみたいなのの解説がいまいちな印象。目次とかで判断すると良さそうに見えるんだけど、いざ読んでいくと肝心の知りたい所の手前で止まっている事が多い。 例えばメモリ不足でプロセスが殺される条件ではメモリ確保だけじゃなくてアドレスのbookでも別のしきい値があるのだが、そういう事情は本からは分からず、実機でぶつかって調べて初めて理解出来た。
自分はiOS素人だったので、トピックの提示はそれなりに全体像を掴む役には立ったけれど、もっとしっかりした本を誰か書いて、とは思う。
次にブログとか。
Futures for C++11 at Facebook
FollyのFutureの話。Folly公式のFutures.mdも必読。 Facebookの奴らは分かってるよなぁ。
ようするに、FinangleのFuture(参考: Concurrent Programming with Futures、こちらも必読)のC++版なのだが、 こういうのをちゃんと理解した上でC++ではどうなるか、というコードになっていて素晴らしい。 STLのstd::futureに爪の垢を煎じて飲ませたい。
FollyはFutureに限らず、いかにもC++14の模範的なコードで、現代のC++の書き方を勉強する上でも良いお手本になる。
Design with typesシリーズ(F# for Fun and Profit)
F# for Fun and Profitは素晴らしいブログのシリーズなのだが、一番のおすすめは上記のDesign with typesシリーズ。F#的なコードの書き方がすごく良く分かって良い。 やっぱalgebraic typeとパターンマッチの組み合わせはいいよなぁ。 言語の良さはこう語りたいものだ。
最近の技術文書とかBOOXとかの話
今年はMetalとかSwfit周辺とかFollyとか、ライブラリやフレームワークを調べる事が多かった。 そういうのはだいたい公式のドキュメントを読む事になった。 最近は、善悪は別にして、その手のものは本よりも公式のWeb文書で学ぶものだと思う。
という事でwebの技術文書を読む環境を改善しよう、と思って BOOX Note3 を買った。 「PDFの論文を読むために大きなe-inkデバイスが欲しい」は良く聞く話だが、 Webの技術文書の為にe-inkデバイスってあまり聞かない気がする。 でも自分的にはすごく良かった。
何故かしらないけれど、「Webを見ている」というよりも、「Webの文書を印刷して持ち歩いている」ような感覚になるんですよねぇ。Webから切り離して持ち歩いている感覚。 あと読む時にデバイスを変えるというのもパブロフの犬的な集中のスイッチみたくなっている気がする。
という事で自分的にはBOOX Note3でWebの技術文書の時代ですよ!という気分なのだけど、 reMarkable 2買った jmuk 的には時代はPDFなんですか?Webの技術文書を読む事の方が多く無い?