Metal から広がるフレームワーク群

はじめに

Metal 登場前 (iOS 2 〜)

  • iOS 2 以降の時代、3D グラフィック処理をするためには OpenGL ES が案内されていた
  • OpenGL ES の ESEmbedded Systems.(組み込みシステム)
  • 以下にあるように iOS12 以降は OpenGL ES の機能が非推奨になったため、これ以降は Metal を使用するべきとなった

About OpenGL ES

Important OpenGL ES was deprecated in iOS 12. To create high-performance code on GPUs, use the Metal framework instead. See Metal.

Metal (iOS 8)

  • iOS 8 で Metal が新たに追加された
  • OpenGL ES は純粋に 3Dグラフィックスレンダリング機能の提供だけだったが
  • Metal はそれに加えて GPU を使用したデータの並列計算の役割ももつ
  • この Metal から、さまざまなフレームワークが派生する

MetalKit (iOS 9)


Apple Developer にある Metal / MetalKit サンプルプロジェクト

ほかに Metal の上に構築されているフレームワーク

Core Image, SpriteKit は Metal 公開前から存在するため、のちに Metal により内部を書き換えられと思われる。

MPS から構築されるフレームワーク

f:id:daisuke-t-jp:20190919021302p:plain:w300
画像は Core ML から引用


さらに Core ML から派生するフレームワークがある。

最後に

  • かつて GPU はその名前にもあるが、グラフィックスを扱うことが主であった
  • iOS もシンプルに 3D を使うものとして OpenGL ES を採用し、開発者に提供していた
  • しかし GPU の高性能化と用途の多様化に合わせて Metal が登場
  • Metal はそれまでの GPU の使い方であるレンダリングに加え、コンピューティングもサポートした
  • そしてその Metal から深層学習、機械学習自然言語処理とさまざまなフレームワークが発展している

Google Engineering Practices Documentation

Google がこれまで蓄積してきた開発に関する知識、経験、手法を公開した。
Google Engineering Practices Documentation | eng-practices


非公式だが、日本語翻訳されたドキュメントも存在する。
Google エンジニアリング・プラクティス ドキュメント | eng-practices


現在はコードレビューに関するドキュメントがある。
ひとつはコードレビューをする側のドキュメント。

How to do a code review | eng-practices

ここでは以下が取り上げられている

  • コードレビューの基準
  • コードレビューで何を探すべきか
  • レビュー中のCLのナビゲート
  • コードレビューの速度
  • コードレビューコメントの書き方
  • コードレビューでのプッシュバックの処理

CL というのは Change List の略である。変更セットやパッチ、などのコードレビューをする単位。

もうひとつは、CL を作る側、コードレビューを受ける側のためのドキュメントである。
The CL author’s guide to getting through code review | eng-practices

これには下が含まれる

  • 良い CL の説明を書く
  • 小さな CL をつくる
  • レビューのコメントに対応する

本『審判』(フランツ・カフカ)の感想

審判 (角川文庫クラシックス)

審判 (角川文庫クラシックス)

「審判」
フランツ・カフカ 1925年

ストーリー

  1. ある日、男が逮捕される
  2. 逮捕される謂れは男にはない
  3. 逮捕されるが、身体を拘束されることもなく仕事をして、日常生活は自由に過ごせる
  4. 裁判所には通う必要はある
  5. 弁護士を雇う
  6. 処刑される

不安

  • よくわからない罪で逮捕され処刑される。
  • 法の執行は粛々と進んでゆく。
  • 不明瞭な社会の仕組みだが、それを受け入れてしまう個人
  • こういった内容から「不安」というキーワードを感じる。

漠然とした不安は例えば、現代だと下のように言い換えれる

  • だいぶ前に店舗でレンタルした DVD/Blu-ray を返却していないかもしれない
    • そしてそれは部屋のどこかにある気がする
  • 外出先で、自宅のガスコンロの火を止めていない気がする
    • 自宅のドアの鍵もかけていない気がする

しかし、だいたい思い過ごしの杞憂である。少しそういった不安症の要素が自分にはある、と思い聞かせて生きてきた。

そういった人生に突如、不明瞭な不安を実現させて、見せつけてくる。「審判」はそんな話に思えた。

またその他のカフカの本(たとえば変身)も、"ある日訪れる"超現実な状況とそれを受け入れる(受け入れるしかない)不安を感じる。

カフカ

作者のカフカが、不安な気持ちになりやすい人だとすると、以下の話は納得しやすい。

ネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる

ネクスト・ソサエティ ― 歴史が見たことのない未来がはじまる

 ところで、フランツ・カフカという名前を知っておられるか? オーストリアの偉大な作家だ。実は安全ヘルメットを発明したのが、そのカフカだった。彼は第一次対戦前に、ボヘミアモラビア(当時オーストリア領、のちチェコ)で労災補償関係の行政官だった。

P.F. ドラッカーネクスト・ソサエティ」から引用。

このエピソードが真実だとすると、カフカはその不安な気持ちを生かして、以下の2つを社会に残したことになる。

  • 人の命を守る安全ヘルメット
  • 人の心を豊かにする小説

その自身の特性が、違う分野でそれぞれ現代も残るほどの貢献をされたという点で、フランツ・カフカという人物は興味深い。

映画『ふしぎの国のアリス』の感想

1951年 アメリカ ウォルト・ディズニー(パブリック・ドメイン


f:id:daisuke-t-jp:20190902214334p:plain:w300

森の中、帰路を辿るアリス。


第一印象

  • ストーリーや登場するキャラクターがシュールである
  • 勧善懲悪や予定調和がないので、人によっては以下を感じるかもしれない
    • 居心地が悪かったり
    • 不安になったり
    • 奇妙だったり

立川談志

  • この映画を観終わったあと、これはどういった映画なのか、というカテゴライズを考えていると
  • 落語家の立川談志が言っていた「言葉のイリュージョン」を思い出した

イリュージョン

立川談志は以下のようにイリュージョンを語っていたように思う。

  • 人は生まれてきて、幼いころは、動物や虫を自分と同一視する
    • 例えば、子供に絵を書かせると、子供とクマが並んだ絵をかく
    • そしてそれは、子供とクマがニッコリ笑っている場合もある
  • ただし、社会の中では、人間は人間であり、クマはクマである
    • だから、子供がそのまま大人になると、社会生活に困ってしまうので大人は子供を教育して、社会の中で不自由なく生きれるようにする
    • しかし、立川談志には以下の疑問があった
  • 本当は、最初に見えていた子供の視点が、人間としてはまともと言ったり、正常と言ったりする状態ではないのか?
    • 社会生活に順応することこそが、人間にとって無理をしているのではないかと
    • だからこそ、老人になったら「ぼけた」と言われるが、それは無理をして順応することができなくなった事であり、人間としては元々の姿に、子供の時の感性に戻った、だけではないか
  • その証左に、人間はほんらい、まともではない、不条理な物を欲しているし、その中に入りたいと思っている
    • それが、寝るときにみる夢であり
    • マジック(奇術)であったり
    • シュールレアリズムの絵画である
    • これらで、現実と不条理な世界のバランスをとって人間は生きている
  • そして、落語というのは、そのイリュージョンを「言葉」で魅せているものだと

感想

 そういった視点を持って、再度この映画を振り返ってみると。

 原作者ルイス・キャロルは、子供(アリス・リデル)に話を聞かせて、純粋に子供が楽しんだ物語を、本にしてまとめた。それは、それまでの童話とは違って、教育や教訓は含まれない。

 この経緯から、立川談志の言っていた「イリュージョン」はこの映画とそう遠く離れたものではない、と言って良さそうだ。

資料

本『スタートアップ・バブル 愚かな投資家と幼稚な起業家』(ダン・ライオンズ)の感想

スタートアップ・バブル 愚かな投資家と幼稚な起業家

スタートアップ・バブル 愚かな投資家と幼稚な起業家

50代でニューズウィークのエディターを解雇された作者が、実在するスタートアップ(HubSpot)で勤めた時のルポルタージュ

本で書かれていた、そのスタートアップの特徴をリストする

  • 2016年に glassdoor が社員の意識調査を元にした Best Places to Work 2016 Employees' Choice(従業員が選ぶ働きやすい会社)の中で4位になった
  • 健康保険など福利厚生が恵まれている
  • ハロウィン・パーティがある
  • ビールがタダで飲める
  • お菓子がタダで食べれる
  • 廊下を犬が歩いている
  • とり放題の休暇
  • 会議室に「名前」をつける
  • awesome(オーサム)とよくいう
  • 「!」びっくりマークを多用する
  • 退職のことを「卒業」と呼ぶ

作者が勤務して得たもの

  • IPO 後にストックオプションを売却して得た6万ドル
  • 金額は書いていないが、高額な給与
  • 会社の健康保険
  • この本を執筆できた

会社の関係者が作者のデバイスやアカウントをハッキングした疑いが出て、 FBI が捜査するが、起訴には至っていない


読んだあと、YouTube を探すと作者(Dan Lyons)の動画がいくつか見つかった。中でも、この動画の概要欄が気になったので引用する。

Welcome to work in the modern economy, where the climate is cultish and management fads rule. Silicon Valley workplace culture has filtered through to other industries, dehumanising our working practices and putting tech in the driving seat. In a rapidly transforming world where entire industries are collapsing, companies scrabble to reprogramme their workforce to adapt and survive, conducting large-scale experiments in organisational behaviour; in short, we’re all their lab rats.

現代経済の仕事へ、ようこそ。
ここはカルトなかんじで、イケてるルールを運営している。

Silicon Valley の職場の文化は、他の産業にもひろがり、労働の慣習は非人間化(de-humanising)されて、テクノロジが運転席に座っている。

産業全体が崩壊し、急速に変化するこの世界では、企業は労働力を再プログラミングして、順応して生き残ろうとしている。組織的行動によって大規模な実験が行われている。

要するに、わたしたちはぜんいん、その実験ラット、というわけです。


どうやら、2018年に作者はまた本を書いたらしく、上の動画は、どちらかというと、新しいこの本にマッチしたもののようだ。

この動画を投稿したのは RSA(The Royal Society of Arts)、英国にある王立技芸協会。

CocoaPods could not find compatible versions for pod "xxx"

あるプロジェクトが CocoaPods でライブラリの依存管理をしていたので pod install すると

$ pod install
Analyzing dependencies

[!] CocoaPods could not find compatible versions for pod "SwiftLint":
  In snapshot (Podfile.lock):
    SwiftLint (= 0.33.0)

  In Podfile:
    SwiftLint

None of your spec sources contain a spec satisfying the dependencies: `SwiftLint, SwiftLint (= 0.33.0)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

が発生して依存関係を解決できず。

書いてあるエラーの内容は以下になる。

  • ライブラリ(ここでは SwiftLint)のバージョンが Podfile.lock では 0.33.0 が設定されているが
  • CocoaPods は 0.33.0 と互換性があるバージョンを見つけられなかった

CocoaPods がローカルで互換性のあるバージョンを見つけられない、という事なので、書いてある通り

$ pod install --repo-update

をすると

Analyzing dependencies

Downloading dependencies
Installing SwiftLint (0.33.0)

という感じで必要なバージョンのライブラリがインストールされて、無事依存関係を解決できた。

本『遅刻の誕生』(橋本毅彦+栗山茂久)の感想

遅刻の誕生―近代日本における時間意識の形成

遅刻の誕生―近代日本における時間意識の形成

  • 日本人は時間を守り、時間通りに行動する
  • という性質は、日本人が民族的に古来から持つ風習、ではなく
  • 明治までは時間に対してルーズな国民、とヨーロッパ人から見られていた(今とは逆の感覚)
  • というのも明治6年までは日本は「定時法」ではなく「不定時法」を採用していた
  • これにより「定時法」を使っていた外国からは、時間に対する感覚が違う(ルーズ)と思われていた
  • 明治6年に法改正をし、日本という国時代が定時法を扱うようになった
  • ちなみに鉄道に関しては、日本が国として定時法を採用する前から、定時法を採用していた
    • 運行は日々違う不定時法ではできないので
  • 鉄道はその後の日清戦争も含め、日本の国力や市民生活に大きく影響する存在になる