機雷がなんだ! 全速前進!

SEというかプログラマというか、日々のエンジニア生活の中で体験したことなどを中心に書き残しています。

*[本]「OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本」: [2024改訂]

こちらも先日の技書博で購入した本です。

前回記事の前に読んだ本なのですが、こちらについても学びのメモを残しておきます。

techbookfest.org

本書の構成

  • はじめに
  • 第1章 本書の狙いと構成
  • 第2章 OAuth 復習
  • 第3章 OAuth 認証
  • 第4章 OpenID Connect
  • 第5章 チュートリアル
  • あとがき

印象に残った点

個人的に参考になったと感じた点について以下に簡単にまとめておきます。

はじめに

本書の用語の定義

用語 説明
OAuth OAuth2.0 のこと
OAuth の仕様 RFC6749 のこと
OIDC の仕様 OpenID Connect Core 1.0 のこと

第1章 本書の狙いと構成

以下の3点の意味を理解できていること

  • OAuth は権限委譲のプロトコル
  • 「OAuth 認証」と呼ばれるものはプロフィールAPIによる認証
  • OpenID Connect は IDトークンによる認証

第2章 OAuth 復習

2.1 OAuth とは何か【P.10】

OAuth は権限委譲のプロトコルです。 認可のプロトコルとも言われます。 OAuth によって、ユーザーのリソースへのアクセス権限をサードパーティのアプリに委譲できます。 しかも、サードパーティアプリにはリソースオーナーのID・パスワードを教える必要はありません。

2.5 グラントタイプ【P.14】

OAuth 2.0のグラントタイプ(Authorization Grant)には4種類のグラントタイプ(※OIDCではフローと呼ぶ)がある。

  1. 認可コード(Authorization Code
  2. インプリシット(Implicit
  3. リソースオーナーパスワード(Resource Owner Password Credentials
  4. クライアントクレデンシャル(Client Credentials

本書ではOAuth 認証とOIDC(OpenID Connect)に関係する前者2つのグラントタイプ(認可コード、インプリシット)について解説している。

第3章 OAuth 認証

3.1 認証のため(の?)プロトコルという勘違い【P.17】

OAuth は権限委譲のためのプロトコルです。 (中略) ここには「アプリへのログインのためにユーザーを認証する」という話は出てきません。 OAuth はアプリの認証のためのプロトコルではないからです。 話がややこしいのはリソースサーバーとしてプロフィール情報を提供するAPIがある場合です。 本書では以降、このようなAPIを「プロフィールAPI」と呼びます。 アプリはこのプロフィールAPIで得たユーザー識別子の情報などを利用して、ユーザーの認証が可能になります。 これがいわゆる「OAuth 認証」です。

第4章 OpenID Connect

4.1 OpenID Connect とは何か【P.35】

仕組みの視点においては以下のとおり。

【OIDC】=【OAuth】+【IDトークン】+【UserInfoエンドポイント】

4.2 OAuth と OIDC の違い

4.2.1 ロール関連用語の違い【P.36-38】

OAuth と OIDC で用語が異なることに加え、OIDC でも複数の呼び方が混在していてややこしい。🥺

対象 OAuth OIDC
利用者 リソースオーナー エンドユーザー
アプリ クライアント リライング・パーティ
トークン発行 認可サーバー IDプロバイダ / オープンIDプロバイダ
(IdP:Identity Provider/OP:OpenID Provider)
情報取得 リソースサーバー
(様々なリソース)
UserInfoエンドポイント
(プロフィール情報のみ)

4.2.2 その他の違い

■ グラントタイプ / フロー【P.38-39】

OAuth では「グラントタイプ」と呼んでいたものは、OIDC では「フロー」と呼ぶ。

「グラントタイプ」と「フロー」の対応は以下のとおり。

グラントタイプ / フロー OAuth OIDC
認可コード ◯:あり ◯:あり
インプリシット ◯:あり ◯:あり
リソースオーナーパスワード ◯:あり X:なし
クライアントクレデンシャル ◯:あり X:なし
ハイブリッド ◯:あり ◯:あり
■ シーケンス【P.42-43】

つきつめると、OAuth と OIDC のシーケンスの違いは IDトークン の発行の有無と言っても過言ではない。

4.3 IDトークン

4.3.1 IDトークンとは【P.43】

OAuth 認証では、プロフィールAPIの情報でエンドユーザーの認証をする。

OIDC では、IDトークンでエンドユーザーの認証をする。

IDトークンの形式は、署名付きの JWT(JSON Web Token:ジョット)です。

4.5.5 OIDC が OAuth の拡張仕様である意味【P.80】

OIDC は OAuth の仕様を認証で利用できるように拡張したもの。

 コラム:OpenID Connect は OAuth の拡張だが、OAuth ができてから仕様策定が始まったわけではない【P.86】

途中までそれぞれの団体(OAuth1.0:IETF と OpenID2.0:OpenID Foundation)により策定されていたプロトコルが

  • JSON 、RESTを使うという設計方針が共通している
  • UserInfoエンドポイントへのアクセス制御は OAuth2.0 で定義される仕組みと機能が重複している

といった状況が見えてきた段階で両者が合流、協力しながら進めることになった。

気になったこと

第3章のコラム(P.33)で

「OAuth 認証」という言葉はなぜ使わないほうがよいのか

で、

本書では「OAuth + プロフィールAPI」による認証を「OAuth 認証」と呼んでいますが、「OAuth 認証」を規定した仕様があるわけではありません。すなわち「OAuth 認証」の定義があるわけではなく、皆が好き勝手に「OAuth 認証」という言葉を使っているにすぎません。

(中略)

不用意な誤解が広がるのを防ぐために、読者のみなさんも「OAuth 認証」という言葉はできるだけ使わないようにしましょう。

と記載されているのですが、こちらの本の中では使われまくっていたのが気になりました。

できれば本書の中で体現してほしかったなと感じましたが、もしかしたら、書き上げた後で気づいてコラムを追加したのかもしれないですね。

実践:雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本

先日の技書博で購入した本をハンズオンしてみました。

techbookfest.org

やったこと

Githubに実践メモを残したのでこちらをご参照ください。

github.com

おまけ

偽書博ではシリーズ3冊まとめて購入しました。

左の2冊は既読ですが右の1冊はまだ積読状態なので後ほど読みたいと思います。

ちなみに、まとめ買いしたらこんなステッカーもセットでいただきました。どこに貼ればよいのだろうか…

*[本]「世界はなぜ地獄になるのか」

近所の図書館へ別の本を借りに行ったら気になって手に取って読んでみました。

www.shogakukan.co.jp

読んでみて印象に残った点を中心に以下に書き留めておきます。(返却前メモ)

本書の構成

本の構成は、下記のような章立てになっています。

<構成>
はじめに

■PART1 小山田圭吾炎上事件

PART2 ポリコレと言葉づかい

PART3 会田誠キャンセル騒動

PART4 評判格差社会のステイタスゲーム

PART5 社会正義の奇妙な理論

PART6 「大衆の狂気」を生き延びる

あとがき ユーディストピアにようこそ

印象に残った点

印象に残ったフレーズや共感できた点などを以下にメモしておきます。

PART4 評判格差社会のステイタスゲーム

ステイタスを感知する超高精度のソシオメーター

【Page:141】

"(前略)わたしたちは、自分よりステイタスの高い者と比べときに痛みを、ステイタスの低い者と比べるときに快感を覚える。これは脳の基本設計なので、心がけや道徳教育で変わるわけではない。立派なことばかりいっている宗教家でも、ヒトである以上、みなこの不都合なOS(オペレーティングシステム)を埋め込まれている。

 生き物は、苦痛や嫌悪を避け、心地よいものに向かうように進化してきた。だとしたらわたしたちも、上方比較を避け、下方比較を好むような選択・行動を(無意識のうちに)しているはずだ。"

自尊心を守るための陰謀論

【Page:156】

"(前略)このようなとき、ほとんどのひとは、過去の自分の主張が誤っていたと認めることはできない。アイデンティティ(アメリカ人としての誇り)を否定してしまえば、生きる意味がなくなってしまう。これはとてつもない恐怖に違いない。

 自分が正しいと信じていたことがじつは間違っていたときに生じるのが「認知的不協和」で、こうした場面に遭遇すると、わたしたちは無意識のうちに話しのつじつまを合わせようとする。この衝動はきわめて強いため、進化心理学者のロバート・トリヴァースは、「知能の進化的な役割は自己正当化である」と述べた。

 Qアノンの陰謀論を信じるひとたちの奇矯な行動は、ある意味、きわめて合理的だ。

 仕事も、評判も、プライドもなにもかも失った白人が、かつてあれほどバカにしていた黒人と同じ立場になったことに気づいたとき、「(大学に行かなかった)自分が悪い」などと思えるわけがない。自分に責任がないとすれば、なんらかの「悪」によって現在の理不尽な状況に追いやられたにちがいない。それは政治の失敗や資本主義の暴走のような「凡庸な悪」ではなく、とてつもない「絶対悪」でなければならない。なぜなら、それと戦う自分が「絶対善」になれるから。"

死ぬまで続く残酷なゲーム

【Page:160】

"上方比較を損失、下方比較を報酬とする脳は、ステイタスの高い者を「正義」の名の下に引きずり下ろすときに、きわめて大きな快感を得る。"

【Page:161】

"わたしたちはステイタスの高い者に憧れながら、ステイタスの高い者を引きずり下ろそうとし、他者からの批判を過剰に気にして身を守りながら、ライバルの足を引っ張って自分のステイタスをすこしでも高めようとあがいているのだ。"

【Page:162】

"こうして、ステイタスゲームに翻弄されてストレスで擦り切れる(定型発達の)「健常者」よりも、他者の評価をさほど気にしない(非定型発達の)ASD(自閉症スペクトラム)の「障害者」の方が、現代のSNS社会に適応しているのではないかといわれるようになった。"

PART6 「大衆の狂気」を生き延びる

他者とのコミュニケーションから撤退する

【Page:248】

"道を歩いているだけで、いつ誰から殴りかかられるかわからないような世界はものすごく不安にちがいない。だからこそ人類は、さまざまな方法で暴力を管理・抑制しようとしてきた。

 だが皮肉なことに、それによってわたしたちは、いつ「加害者」と名指しされ、バッシングされるかわからない世界を生きることになった。言葉の暴力は、客観的には身体的な暴力よりはずっとマシだろうが、主観的には、不安の程度はほとんど変わらない(脳は身体的な暴力と言葉の暴力を区別できない)。

双方が合意できる基準がない以上、「加害者」と糾弾された者は、自分のことを理不尽な暴力(大衆の狂気)にさらされた「被害者」だと訴えるだろう。このようにして、双方の憎悪だけがだかまっていく。"

「極端な人」に絡まれないためには

【Page:263-264】

"(前略)SNSの炎上を研究する山口真一(ネットメディア論、情報経済論)は、炎上に勝たんするのは「男性」「世帯年収が高い」「主任・係長クラス以上」という属性の持ち主だという。仕事が忙しくても、同居する家族がいても、2時間もあれば数百件は書き込めてしまうから、「暇人」である必要はないのだ。"

【Page:265】

"自分の身を守る方法た、リアルでもバーチャル(ネット)でも同じだ。もっとも重要なのは、こういう「極端な人」に絡まれないこと。そのための最低限の原則は、「個人を批判しない」だ。なぜならこのひとたちは、自分が批判されたと思うと、常軌を逸して攻撃的になるから。自分が「被害者」で、なおかつ「正義」だと信じている相手に対しては、ほぼ打つ手はない。

 それでもあなたの発言に不愉快なコメントをする者はいるだとう。そのときは、ただ無視するか、ブロックする。「批判されたら反論しなければならない」と思っているひともいるようだが、これは最悪の対応だ。「極端な人」は、自分に対するどのような反論も、善と悪との戦いにしてしまう。あなたは「悪」のレッテルを貼られ、泥沼に引きずり込まれることになる。"

【Page:269】

"ウィル・ストーは『ステータス・ゲームの心理学』でこう書いている。

キリスト教徒は地獄をつくりだすことによって救済への不安を生み、それから逃れられる唯一の方法として自分たちのゲームを提示した。同じように、新左翼の活動家たちは、偏見だと非難してもよい条件を根本的に書き直し、単に白人や男性であることが罪の兆候になるようにハードルを下げることで地獄をちらつかせる。こうして救済への不安を生みだしたうえで、自分たちの運動を唯一の救済策として提示するのだ。地獄の脅威から逃れるためには、これみよがしに熱心に、非常に正しくプレーをするしかないのだと。

あとがき

ディストピアへようこそ

【Page:275】

"(前略)だがますます複雑化する社会で、すべての理想を叶える魔法のような政治制度は存在しない。だからこそ、誰もが不安を抱えつつも、ほどほどのところで妥協するしかない。これが「寛容」と「中庸」だ。

 これは要するに、「あなたが生きているリベラルな社会は、人類史的には(とりわけあなたが先進国に生まれたのなら)とてつもなく恵まれているのだから、実現不可能な理想を振りかざしていたずらに社会を混乱させるのではなく、いまの自分に満足し、小さな改善を積み重ねていきなさい」という提言だ。

 ここで、「そんな説教臭い話を聞きたいわけじゃない」と思ったかもしれない。だが、フクヤマがあえて寛容などという当たり前の(凡庸な)ことを主張したのは、すくなくとも現時点では、これ以外の解が存在しないからだ。"

【Page:276】

"アメリカ最高裁は2023年6月、ハーバード大などが人種を考慮した入学選考をすることを違憲と判断した。裁判で開示された資料では、アジア系の学生がハーバードに入学するためには、2400点満点のSAT(大学入学のための標準テスト)ではくじにより140点、ヒスパニックより270点、黒人より450点高い点数を取る必要がある。最高裁はこれを、近代社会の原則である市民の平等に反すると結論した。"

[2025/1/25(土)]第十一回 技術書同人誌博覧会@横浜へ参加してきました #技書博

第十一回 技術書同人誌博覧会@横浜産貿ホール マリネリア に参加してきました。

gishohaku.dev

技術書典は過去に参加したことがありリアル参加した後も時々オンラインでイベントに参加して良さげな技術書を買い漁ったりしていましたが、技術書同人誌博覧会(以降は「技書博」と呼びます)は今回が初参加でした。

技書博は技術書典と何が違う?

違いが分からなかったので調べてみました。以下のような違いがあるようです。

技術書同人誌博覧会(技書博)

技術に関する同人誌の即売会です。ITの他に、理工/数学/デザイン/マネジメントなど幅広い技術を取り扱っています。エンジニアのアウトプットを応援したい&増やしたいという思いからこのイベントが生まれました。初心者にもベテランにも優しく、ゆったりと交流しながら知識を深め、仲間を作ったり成長できるような場所を目指しています。(引用元:技術書同人誌博覧会、詳細はコチラ→ 技書博ってなに? - 技書博公式ブログ

技術書典

ITや機械工作とその周辺領域について書いた本を対象にした同人誌即売会。技術者たちの「コミケ」とも言われる。運営はテックベース合同会社。(引用元:技術書典 - Wikipedia

イベント参加方法

今回の会場は横浜産貿ホールマリネリアでした。毎回同じ場所ではないので注意してください。またイベントに参加するには事前登録が必要となりますので併せてご注意ください。入口のイベント受付でスマホ画面でconnpassの受付票を見せて入場します。

会場内の各ブースでは様々な技術書が展示されており立ち読みはもちろん著者や売り子の方と会話しながら好みの本を選んで買うことができます。ネットや本屋で本を購入するのとはまた違った本との出会いがとても良き感じでした。

謎のトライアル企画 🍵

技書博イベントと同じフロアの一角で謎の茶会が開催されていました。完全に別のイベントだと思いスルーしていたのですが、これも技書博の企画の一環で、無料でお抹茶とお菓子がいただけました。どちらもとても美味しかったです。ごちそうさまでした🙇

絶対に偶然だと思いますがお茶の表面模様が猫の肉球みたいでキュンキュンしました😻

また茶会の受付では、くじ引きをやっており、めでたく3等賞が当たりました。🎯

景品として名言バッジ「本はのみ物」をちょうだいしました。併せてありがとうございます🙇

blog.gishohaku.dev

イベントの戦利品

また積読が増えました。たぶん積読は一生なくならないと思います(笑)
しかし、これでいい、、、これでこそ積読。積読だっ。ざわ…ざわ…ざわ…

おまけ

今回の技書博の中でも販売していましたが、私もほんの少しだけ寄稿させていただいた書籍「みんなのアジャイル」が先週末1/24[金]に技術評論社さんから発売されました。ご興味のある方はお手にとっていただけると嬉しいです。

gihyo.jp

最後まで読んでいただきどうもありがとうございました。

*[本]「地図が語る感染症の歴史」: Atlas historique des diocèses

近所の図書館へ別の本を借りに行ったら気になって手に取って読んでみました。

books.rakuten.co.jp

読んでみて印象に残った点を中心に以下に書き留めておきます。(返却前メモ)

本書の構成

本の構成は、下記のような章立てになっています。

<構成>
序文
6 感染症と場所
■パンデミックの惑星
12 新石器革命の毒入りギフト
16 古代の疫病
20 中世における黒死病
23 コロンブス交換、微生物の交差
26 蚊の帝国
29 コレラーー現代の感染症の原型
32 スペイン風邪の衝撃
35 根絶の夢
39 エイズー幻想の終焉

■感染症の探索者ーー疫学の視覚文化
44 悪い空気
48 症例をカウントする
51 地図の魔法
54 流行曲線
57 ネットワークとクラスター
61 ウイルスの追跡ーー遺伝子配列の貢献

■流行の領域ーー政治地理学的考察
66 地中海における検疫と交易
69 コレラと帝国の時代における検疫
72 植民都市における感染症と人種隔離
75 東ヨーロッパにおける戦争、ナチおよびチフス
79 アフリカにおける眠り病との植民地戦
82 国際開発問題としての感染症
86 グローバル安全保障問題としての感染症
89 新型コロナ禍での世界のロックダウン

■ロックダウンの場ーー監禁から自己の発見へ
94 サナトリウムにおける近代的生活
97 衛生学者のユートピア
100 ハンセン病施療院列島
103 隔離された生活ーーニューヨークのチフスのメアリー
106 パリのクロード=ベルナール感染症病院
109 出会いの場、管理の場
112 ニューヨークとパリ、エイズの都
115 感染症と語り

■病原性の環境
120 中央アフリカにおけるHIVの環境史
123 生物多様性の危機と感染症の危機、20世紀と21世紀
126 脱工業化社会の感染症
129 環境病としてのライム病
132 感染症と交差性ーーイル=ド=フランスの例
135 感染症の傷ーートラウマと記憶

おわりに
138 感染症を別のアプローチで

印象に残った点

印象に残ったフレーズや共感できた点などを以下にメモしておきます。

パンデミックの惑星

新石器革命の毒入りギフト

【Page:13】

"ジャレド・ダイアモンドの言葉をかりれば、感染症は「家畜からの致命的な贈り物」なのである。"

より広範な生態系の変遷

【Page:13-14】

"しかし、感染症は家畜化だけがもたらした悲劇的な結果ではない。動物への曝露(疾病や健康状態の原因と推定されるものに生体がさらされること)以上に、都市化が決定的な要因である。理論的には、麻疹ウイルスのように感染力が非常に強く、生存者に強い免疫力を生み出すウイルスは、感染する可能性がある対象者、つまり一度も曝露したことのない人々が十分にいるという条件でのみ、人間集団の中で存続することができる。"

根絶の夢

期待はずれの根絶計画

【Page:36】

"世界保健機関(WHO)は、薬剤治療やワクチン接種によって、媒介昆虫や病原体を標的にした根絶キャンペーンを数多く展開してきた。これらのキャンペーンのほとんどは失敗に終わっている。1980年に宣言された天然痘の根絶は、唯一の傑出した成功例であり、これは、2世紀にわたって使用されてきたワクチンの単純さと、動物病原巣をもたず無症候性感染を引き起こさない理想的な標的であるウイルスの生物学的特性とに負うところが大きい。"

*[本]「「技術書」の読書術」: 達人が教える選び方・読み方・情報発信&共有のコツとテクニック

近所の図書館で借りれたので何となく読んでみました。

www.shoeisha.co.jp

序盤は本屋での本の選び方などが書かれていて自分のコンテキストにあまり合っていないように感じたので、いきなり読むのやめようかと思いましたが、そのまま一旦読み進めてみると、共感できる部分も多く、結果としては読んで良かったと思えました。人それぞれ、読書の仕方は違うと思いますし、各自でいろいろな工夫をしていると思いますが、この本には、これまで私が自分なりに工夫してきた要素も含まれており(共感)、その手もあったかと気付かされる点もありました(発見)。

 

本書を読んでみて印象に残った点を中心に以下に書き留めておきます。(返却前メモ)

印象に残った点

印象に残ったフレーズや共感できた点などを以下にメモしておきます。

第1部 選び方

1-1 あらゆる手段で本を見つける!書店の歩き方からITツールの活用法まで

▶ 図書館の活用 ~貴庁な本に出会う~

新しい技術が登場する中での図書館の価値とは
技術の歴史を知ることができる

【Page:52】

"メインフレーム ←ダム端末での操作"

「ダム端末」とは「馬鹿な端末」の意味であり、頭を使う処理はホストコンピュータ(メインフレーム、ミッドレンジコンピュータ、ミニコンピュータなど)が行い、端末側は「自分では考えない」(頭脳が無い、処理をしない)ことに由来する。

ダム端末 - Wikipedia

期限があるから積読になりにくい

"図書館を使う別のタイプのメリットとして個人的に感じるのは、「期限」の重要性です。夏休みの宿題ではありませんが、期限が決められていないとダラダラと過ごしてしまい、最後に焦ってしまう人は少なくありません。

 本でも同じで、…(後略)"

column 図書館の探し方

【Page:54】

"図書館を検索できる便利なサービスとして「カーリル」があります(図1-1-13)。カーリルでは蔵書の貸出状況を検索できるだけでなく、現在のいち情報から近くの図書館を探すこともできます。APIも提供されているため、自分で作ったプログラムに蔵書検索などの機能を取り入れることもできます。"

カーリル | 日本最大の図書館蔵書検索サイト | カーリル

1-2 世界が広がる!貪欲に本を求めれば、出会うはずがない本にも出会える

▶ 悪書・良書を気にする必要はない

良書を選び続けるのは不可能
①一般に悪書・良書といわれている本が、あたなにとってもそうとは限らない
②悪書との出会いを避けられない

【Page:60-61】

"(前略)最も避けるべきことは読書そのものを止めてしまうことです。悪書を否定する暇はありません。いくら否定しても悪書はなくなりませんし、立場によって考え方が違うのです。そういったノイズを気にせずに読書を続け、本とうまく付き合うようにしてください。"

▶ レベル感の合った本を選ぶ

マッチ度の見極めは大切だが、柔軟にとらえよう

【Page:62】

"(前略)技術の習得という観点でいえば、自分のスキルから見て少しむずかしい本であれば効果的に学習できます。たとえば「半分くらいは知らないが、読めばなんとかなりそう」、「2割ぐらいはすごく難しそう」といった印象を受ければ、ちょうどよいレベルといえるでしょう。"

▶ 英語の技術書という選択肢

英語の技術書を入手するには
②海外出版社の直販やサブスクを活用する

【Page:74】

"(前略)Packt(https://www.packtpub.com/)は技術書専門の出版社です。"

 

 

第2部 読み方

2-1 比べて、使い分ける。時間を無駄にせず理解を深める

▶ 「『3』の発想」 ~1つのテーマで3冊の本を読む~

発想や技術を連鎖させる工夫
入門書、専門書、逆引きの3通り読む

【Page:84】

"本に限らず、いろいろな場面で使える方法として「3」という数字を使って考える方法があります。『「3」の発想』(芳沢光雄著)という本があり、「物事がドミノ倒し現象のようにつながっていく性質を理解するには、『2』の発想ではなく『3』の発想が大切」だと書かれています。そして具体的に、次のような例が挙げられています。

「2」の発想の場合、積み木でいえば、Aが倒れかかってくればBも倒れてしまう。接し合う歯車でいえば、Aが回ればBも回る、ということである。Aの運動が、Bに影響する。2つの関係だから、その先に思考が及ぶことはない。AとBの完結した世界である。

 一方、「3」の発想を考えてみると、積み木でいえば、3つ存在することである。まず、Aが倒れかかってくればBも倒れる。Bが倒れれば、次にあるCも倒れてしまう。ドミノ倒しの最小、「A→B→C」の連鎖である。「A→B」となり、「B→C」となれば、多分「C→D」と人は考える。完結しない世界、連鎖する世界、である。

つまり、2つではその間の関係しか見えないけれど、3つ考えればそこから先に発想が広がっていくのです。これは本を読むときにも同じことがいえると考えられます。"

▶ 読書にかける時間 ~本の価値を時給換算する~

サンクコストの考え方を取り入れる(それを読むのは「いま」なのか?)
合わない本に時間をかけてもしかたがない

【Page:100】

"本を買うと、必ず最後まで読まないと気が済まない、という人がいます。これは著者としては非常にありがたいことではありますが、本のすべての内容がその人の役に立つことはほとんどありえません。本の中のほんの一部であっても、それが役に立てば十分なことも多いです。

 私の場合、少し読んでみて合わない本は「いまの私には合わなかった」と考えてざっと流し読みしてしまいます。このときに考えているのは「サンクコスト」の考え方です。サンクコストは「埋没費用」と訳され、すでに発生して取り消しできない費用のことで、これに引っ張られて合理的な判断ができないという文脈で使われる言葉です。"

本同じ本を何度も読む
1度目はざっと流し読みをする
2度目は手を動かしながら読む
3度目はノートにまとめながら読む

▶ 数学書の読み方 ~文系・理系それぞれのアプローチ~

理系である程度数学を知っている人が学ぶとき
パラシュート勉強法を使う

【Page:122】

"(前略)パラシュート勉強法は、必要になったときに、必要になった分だけを学ぶ本法で、『「超」整理法』の野口悠紀雄氏が提唱する方法です(図2-1-10)

 たとえると、「山の頂上に立ちたい」と思ったとき、登山のグッズを揃えて、事前に綿密な計画を立てて準備をし、一歩一歩登ることも大切ですが、そもそも登山をする必要があるのかを考えるのです。飛行機に乗って、途中で飛び降りてパラシュートで山の頂上に立つ、というのでも目的は達しています。"

▶ 積読のか手法 ~優先順位を設定する~

同時並行で読む or 1冊ずつ片づける?
積読は解消しない

【Page:127-129】

"(前略)結論からいうと、積読は解消しません。(中略)本が増え続けないようにするためには、本を周りに置いておくだけではなく、読まなくてはいけません。このとき、「同時並行で読む本」と「1冊ずつ片づける本」に分けることができる(後略)。"

同時並行で読む本

"(後略)多くの本がこちらに分類されます(後略)"

1冊ずつ片づける本

"(後略)代表的なものが雑誌で、手に入れた日に全部目を通してしまいます。雑誌はとにかく鮮度が重要だと思っているので、できる限り早く読みたいのです。(中略)そのほかには、友人に紹介された本もこの分類に入ります。「この本いいよ」と紹介された本は、ほかの本よりもできるだけ早く読むようにしています。その理由は、感想を返すためです。(後略)"

2-2 ルール無用。精読、多読、乱読し、読書の枠を超えてゆけ

▶ 読書にルールなし

目的を達成できれば読み方はなんでもいい
長期間を経た再読について
①過去にレベルが高いと感じた本を再読する
②過去に学び終えた本を再読する
③過去に学び終えた本を再読する

【Page:134-136】

▶ 読書の枠を超えて学習を加速する

従来の読書の枠から外れてみよう
場所を問わない
エスカレーターで読書する
食事中に読書する
旅行中に読書する
ジャンルを問わない
媒体を問わない

【Page:137-141】

▶ マーキング読書法で脳に刻み込む

具体的な印のつけ方

【Page:154】

"

ページの角を折る:角を折り曲げることによってしおり代わりにすることをドッグイア(角折れ)という。主にページをマークする目的に使える。

"

▶ 電子書籍のメモやノートを取る

Kindleにおけるメモ

【Page:171】

"Kindle本はリフロー形式と固定レイアウト形式の2種類があります。リフロー形式はテキストのまま管理する方式、固定レイアウト形式はページを1枚の画像のように管理する方式です(図2-2-15、図2-2-16)。前者は小説、後者は写真集や雑誌をイメージするとわかりやすいでしょう。

 それぞれの形式によって、Kindleアプリでのメモ機能を使い分ける必要があります。"

第3部 情報発信&共有

3-1 成長のチャンスはアウトプットにあり

▶ アウトプットは最大の成長 ~講演や勉強会でスキルアップ~

間違いに気づくためにアウトプットは不可欠

【Page:224】

ブログに書く

【Page:227-229】

"勉強会などで発表するのは少しハードルが高い、という場合には、ブログという手もあります。ブログに書くことも発表資料を作成するのと同じように、頭を整理できるメリットがあります。ブログは「記録として残る」という特徴もあります。後から見直したときに恥ずかしい部分もありますが、いつ、どのようなことを自分が考えていたのかを振り返ることができます。

 ブログを書くにはインプットが足りない、と思っている人がいます。「もうちょっと勉強しないと書けない」、「文章の書き方も勉強しよう」と思っていると、いつまで経っても書けません。学ぶべきことはいつもたくさんあり、文章は書かないとうまくなりません。

 つまり、図3-1-1の左側のループから、右側のループに変える必要があるのです。多くの人にとって、そのきっかけの1つが「とりあえずアウトプットする」ことです。

 

「もうちょっと勉強しよう」ということろが「とりあえずアウトプットする」に変わっただけですが、そうすると不足している部分や、学んでおきたいことがはっきりします。わからないことそのものもアウトプットすることで、他の人からフィードバックをもらえます。アウトプットすることで、自分にわかっていない部分があるのを他人に気づいてもらえるのです。こうなると、図3-1-1-2のようなループが回り始めます。

 

ここで大事なのは、アウトプットばかりにならないことです。自分が知っている知識、これまでに学んできたことには限りがあるので、アウトプットを続けていると出せるものがなくなってきます。インプットが枯渇すると、成長が止まってしまうのです。

 これを防ぐためには、外部との接触の機会を増やすことが有効で、勉強会などはそのいい機会だといえます。インプットとアウトプットの時間や内容について、常にバランスを意識するよう心がけましょう(自戒も込めて)。"

▶ 発信するテーマの選び方 ~「自分ならこうする」を発信する~

人によって違うのはいいこと
3日後の自分は他人

【Page:230】

"プログラミングでは「3日後の自分は他人」という考え方があります。"

3-2 アウトプットも「遅すぎる」ことはない

▶ たくさんアウトプットしよう

文章を上達させるための「三多」

【Page:246】

"(前略)「三多」とは中国の欧陽脩(おうようしゅう)という歴史学者が提唱した、文章を上達させるための3つの条件です。

①「看多(かんた)」:多くの本を読むこと

②「做多(さた)」:多くの分を作ること

③「商量多(しょうりょうた)」:多く工夫して推敲すること

を指します。

 ①はインプット、②と③はアウトプットに対応します。簡単に述べれば、上達したければたくさんのインプットとアウトプットが必要ということです。三多の中では③が最も軽視されがちですが、これがうまくいかないと「インプット→アウトプット→改善」のサイクルが完成しません。常に③を意識しておき、①に活かしてください。"

アウトプットの結果をきにしない
アウトプットに遅いということはない

【Page:246-248】

▶ いつでもどこでもアウトプット

アイデアが浮かぶ場面「三上」と「4B」

【Page:249】

"(前略)欧陽脩の三多という言葉を紹介しましたが、彼は三上(さんじょう)という言葉も残しています。三上は文章を考えるのに都合のよい3つの場面のことであり、

①「馬上(ばじょう)」:馬に乗った移動中

②「枕上(ちんじょう)」:布団で寝ているとき

③「厠上(しじょう)」:トイレの中

を指します。

 現代では「創造性の4B」という言葉があります。4Bはアイデアが生まれる4つの場所や場面のことであり、

① Bathroom:風呂場

② Bus:移動中

③ Bed:寝室

④ Bar:ほろ酔い中

を指します。

 よいアイデアであっても忘れてしまっては意味がありません。対策として、いつでもどこでもメモするしくみを確率化しておくことが重要な課題になります。"

▶ レビューの有効性

レビューもアウトプットの1つ

【Page:255】

"(前略)たとえば、ネット上でレビューを投稿したり、家族や友人に口頭で本を紹介したりするのも立派なアウトプットの1つです。"

(最後に)気になったこと

ひとつだけ気になったのが書籍のタイトルの「技術書」という表現でした。自分も含めてIT系に関わりがある人にとっては「技術書」といえばコンピュータ書のことだと(技術書典、技術書博なんてのもありますし)すぐに察しがつくと思うのですが、そうでないコンテキストの人がタイトルの「技術書」という表現を見て、どう受け取るんだろうか?🤔…と。実際に本を読めば分かる話ではありますが、看板に偽りなし、という観点において紛らわしくないのだろうかと思いました。

🔔CHSH不等式の破れを確認してみた🔔(Special Thanks to ICEPP)

東京大学素粒子物理国際研究センター(ICEPP)の研究者が選定・執筆しGithubで公開している量子コンピューティングを手を動かして学びたい方のための入門教材「量子コンピューティング・ワークブック(qc-workbook)」なるものを知りました。

詳細は上記のページに記載されているのでそちらを読んでもらえれば良いと思いますが、QiskitというPythonライブラリでプログラムを記述して作成した量子回路をIBM Quantum (IBMQ)の量子コンピュータで実行できるというものです。

こちらのワークブックで量子コンピュータに触れるための最初の実習に2022年ノーベル物理学賞で話題(🔔ベルの不等式の破れ)となったCHSH不等式の破れを確認する」というものがあり、Jupyter NotebookにPythonのサンプルコードを写経するだけで量子コンピュータにおいて量子力学的状態、特に「エンタングルメント」が実現しているか検証することができると書かれています。

もしかしてGoogle Colaboratoryでも簡単に動かせるんじゃないか?

と思って、実際に試してみた結果を以下に記録しておきます。

やったこと

基本的にはワークブックの流れに身を任せればOKなのですが、一応やったことの流れをざっくりと書いておくと以下のような感じです。

 

<ざっくりとした流れ>

1.Google Colaboratoryで新規ノートブックを作成する

2.作成したノートブックでQiskit をセットアップする(以下コマンドを実行)

!pip install qiskit qiskit-ibm-runtime jupyter qiskit-aer qiskit[visualization]

3.Qiskit が実行できることを確認する(Qiskit で Hello world

4.IBM Quantum Platformで新規アカウントを作成する

5.作成したアカウントでログインして API Token を確認して控えておく

6.ワークブック「CHSH不等式の破れを確認する」のサンプルコードを上から順にノートブックへコピペして実行していく(※注:「回路を実機で実行する」で先程の API Token を __paste_your_token_here__ にセットして実行すること)

実際に実行した結果を含むノートブックは作業記録としてGithubに置いてあります。

github.com

実行結果

実際にIBMの量子コンピュータの実機へリモート接続して実行結果を取得するのですが、世界中で共有されているコンピュータの空き状況の間で実行されるせいか2000回のショット数で20~30分くらい待ちました。しばらく実行状態が続いても焦らず待ちましょう。

所感

以前から量子力学や量子コンピュータには少しだけ興味があって書籍ブルーバックスやYoutube動画を見たりしながら知的好奇心を満たしていましたが、その程度の興味があれば、誰でも簡単に実際に量子コンピュータを使って検証することができてしまいます。かつてアイザック・ニュートンが「巨人の肩の上に立つ」という言葉を用いたのはもう数百年前のことだそうですが、現代では良くも悪くも情報が民主化され誰もが簡単に巨人の肩の上に立つことができるようになったことについては個人的には良い時代になったなと感じます。論文なんかもネットで検索して簡単に翻訳して読めますしね。(とはいえ何事にも光と影の両面があるのでもちろん悪い面もあるとは思います)