「史上最強の哲学入門」を読んだ

史上最強の哲学入門 (河出文庫)

史上最強の哲学入門 (河出文庫)

先日読んだ「哲学的な何か、あと科学とか (二見文庫)」と「哲学的な何か、あと数学とか (二見文庫)」と同じ著者。赤い表紙が西洋哲学者で、青は東洋哲学者。

作風はどちらも同じで、ある時代で超偉大な哲学者の論を時代背景を交えて解説した後、次世代の哲学者がダメ出しして新しい論を打ち出し、そしてさらなる次世代の哲学者が…という流れ。

時系列ではあるけれど突然数百年飛ぶこともあるし歴史としてみると大雑把だけど、うまく前世代と次世代の論を比較しているのですごく面白い。

2冊とも作風は同じだけど読み応えはだいぶ違う。西洋哲学は論理構築の歴史といった感じでひたすらどうすれば真実と言えるか探求が続く感じだけど、東洋哲学は中国哲学(思想?)と仏教が主な内容で、深く内容を追いかける感じだった。

全体を通して最も良かったのは仏教の部分。ちゃんと釈迦の時代、というより釈迦以前のインドから始まっているし、悟りは体験によってしか起き得ないということをびっくりするくらい丁寧にあの手この手で説明している。知識だけでは悟りにならないこと自体は知っていたのだけど、なるほどこう説明するのかわかりやすい!と頷きながら読んでいた。

哲学、というとポエムっぽいというか浮世離れというか思想的というかそいういうイメージも世間一般にはありそうだけど、哲学がいかにガチ論理であるかをわかりやすく伝えていると思う。最高。特に西洋哲学は勉強不足で知らないことも多かったのでまた読み返すと思う。

「哲学的な何か、あと科学とか」を読んだ

哲学的な何か、あと科学とか (二見文庫)

哲学的な何か、あと科学とか (二見文庫)

「哲学的な何か、あと数学とか」を読んだ - cloned.log に続いて読んだ。この「哲学的な何か、あと科学とか」の方が哲学と科学のバランスが良くタイトルによく馴染む感じになっている。前回読んだ「哲学的な何か、あと数学とか」はフェルマーの最終定理にまつわる数学と数学者に交えて哲学、という感じで、やや哲学がサブな感じになっている。書籍の時系列としても「科学とか」が先で「数学とか」が後みたい。

どちらの書籍にも言えるけれど、とにかく文章が読みやすいしわかりやすい。実際の哲学や科学の話なのにファンタジー小説の一部であるかのような面白さがあった。

特に良かったのは量子力学の章。2重スリット実験を十二分に解説した上で(その理解を助ける波動と粒子の話が前段にある)、コペンハーゲン解釈シュレディンガーの猫を繋げていく説明はお見事。シュレディンガーの猫はその話自体は超有名だけど、どうしてこれが解決困難な思考実験であるかということがよくわかる説明になっていた。

2冊とも良かったけれど特にこの「哲学的な何か、あと科学とか」は良かった。

「哲学的な何か、あと数学とか」を読んだ

哲学的な何か、あと数学とか (二見文庫)

哲学的な何か、あと数学とか (二見文庫)

フェルマーの最終定理をテーマに歴代の数学者による情熱的な戦いを描いた本。フェルマーの最終定理については12年前にサイモン・シンの本を読んでおり大体の知識があったけれど、忘れていることも多かったし、サイモン・シンの本とは文体や視点がかなり異なるので新鮮に楽しむことができた。

ノーゲーム・ノーライフの著者 榎宮先生の絶賛を見て買ったら当然の大当たり。

僕たちは(特に初等教育で)数学を計算ツールとして教わるけれど、解を求めるのは数学の一部でしかなくて、むしろ式が成り立つことを考えるのが数学だろうし、そういう視点を持ったこの本は数学嫌いをマシにする一歩に感じる。

「データの見えざる手」を読んだ

結構前に買って第1章までは読んでいたのだけど、その後そのままになっていた。最近KindleiOSのスピーチに読ませることで本を読む(聞く)時間が取れるようになったので第2章から最後まで一気に読んだ。

本のタイトルだけ見ても何の本かわかりにくいけれど、センサで人間を細かく測定したデータから人間の心や行動を判定し、どのような行動が業績に影響を与えるか、さらにはどのような施策を打つべきかAIに示させるといった内容になっている。

具体的で応用的な内容が素晴らしい

ただの仮説や理論の提示ではなく、著者らが実験してきた内容が具体的に記されているので読み応えがある。考察も十分あり単なる事例紹介にとどまらない。

前半はウェアラブルセンサでどのような測定ができて何がわかるのか解説されている。どの人と会話したかといった粒度のものから会話中に(物理的に)よく動いているかといった細かな人間行動まで、粒の大きさが異なる様々なデータから人間の行動を解き明かしていくのが面白かったし、最終的にAIにより導かれた施策で効果を出すところにも未来を感じる(実際には現在起きていることだけれど)。

コンピューター将棋のように人間だとまず考えつかないような施策で普通に考えると全く効果が期待できなさそうなのにきっちり効果があったところもいかにもAIらしい。どういう施策だったのかはぜひ本を読んでもらえればと思う。

文章として読みづらいところもあった

一方で読みづらいと感じるところもいくつかあった。一つは説明の重複が多いこと。言葉を変えてわかりやすく説明しているのだと思うけれど、何度も似通った説明を聞いている感じになり話が進まないと感じることが度々あった。

次に細かい脱線が多かった。著名な経営学、経済学者、物理学者などの主張がデータからも正しいと考えられるという説明がたくさん入るけれど、これが分脈を切ってしまい読みにくかった。また日本の現状はこれが原因ではないかといったかなりスケールの大きい推測が断定に近い口調で入ったりするのもやや読むのに障壁だった。著者にとっては確信があるのかもしれないけれど本書の説明内容だけでは言い過ぎに感じる。

著者が考える過去と未来については章を分けて書いてある方が良かったように思う。

ビッグデータの応用事例として欠かせない一冊

とはいえ、やはり内容は良かった。ビッグデータがあってディープラーニングのような手法があってもそれを使って解析するのは結局データサイエンティストによる人力、という状況を変える試みについて良い学びを得たと思う。

FACTFULNESSを読んだ

FACTFULNESS(ファクトフルネス) 10の思い込みを乗り越え、データを基に世界を正しく見る習慣

FACTFULNESS(ファクトフルネス) 10の思い込みを乗り越え、データを基に世界を正しく見る習慣

KindleでページがNo.5237までと表示されていたのにNo.3974に「おわりに」が登場して不意打ちを受けたように読み終えてしまった。最後に付録がたくさんあるからだけど、No.5237まで文章が続いていたとしてもすぐに読み切ったと思う。

読み終えたら感想を書こうと思っていたけれど、読み終えてみるとどこかの文章をつまみ出して感想を書く気はなってしまった。自分なりに要約したり良かったところを紹介したりはできると思うけれど、この本には必要ないと思う。将来の自分がこの本はどんな内容だったかなと思ったらまた最初から読み直せばいいと思う。

よく編集されており読みやすく重複もないスッキリした本だった。日本語訳も良かった。読み終えた後にハンスのTEDの映像を観てみたけど、日本語訳はハンスの人柄を捉えた語調をうまく選んでいると思うし、英語の原著を無料で読める数ページ見てみたけど違和感はなかった。

世界で起きていることを偏見なく認識するために。素晴らしい一冊。

他人がすぐに気付く問題を先に自分で気付くための方法

よく考えたコードや設計であっても他人が見るとすぐに問題が見つかることがある。知識差が原因のこともあるけれど他人だからこそ気付けたという場合も多い。

これは客観的に見ると気付く、というよりも視点を変えると見え方が変わる(よって問題に気付く)ということだと思う。他人は自分と少なからず違う視点(思考)になるので手っ取り早いというだけ。自分の視点を変えられれば問題に気付きやすくなる。

僕が普段無自覚にやっている方法を整理すると次の2つをやっているみたいだった。

ロール(役割・役職)を変えて考える

プログラムの設計やコーディングは基本的にプログラマーとして作業してしまう。例えばDBAになりきるとプログラム上は楽でもパフォーマンスなどで問題のある部分が見えてくるし、仕様を考えた人になりきるとプログラムの都合で元の仕様設計の意図を歪曲したり複雑化していないかが見えてくる。インフラエンジニアになりきると本番デプロイ時に問題になることなどが見えてくる。

こうやって違うロールになりきって考えると結構色々問題が見えてくる。ただ経験したこともないロールになりきるのは無理があり(単に机上の空論となる)経験に左右されるから、色々なことをやってみるのは大切だと改めて思う。

脳内の一時メモリをリセットする

これはライフハック的に言われてることだと思うけど、今やっている作業状態を一旦忘れてから再度考えることで強制的に違う視点にする方法がある。お風呂に入る、散歩する、一晩寝かすなど。僕の場合、だいたい数回自転車に乗ると「あー、そうじゃないや、こうだな」と違う視点のアイデアが出てきたりすることが多い(子供の送り迎えや買い物で毎日何回か自転車に乗る)。

奥の手として潔く信頼できる人に見てもらうというのがある。ブログタイトルと明らかに矛盾するけれどコードレビューやテストなどの決まったサイクルを待たずに自主的に第三者視点を求めるのは良いと思う。自分で気付ける方法を書いてみたもののどうしてもカバーできない部分はあると思うので。

SymfonyはなぜTwigを採用したのか ~ Jinjaとの関係

Symfony Advent Calendar 2018 10日目の記事です。

SymfonyはテンプレートエンジンにTwigを採用しています。TwigはPython製のJinjaにシンタックスが似ていることで知られています。SymfonyがなぜTwigを採用したのか、なぜJinjaと似ているのかについて日本語の情報が少なそうなので書いてみようと思います。

ただ、内容としてはほとんどSymfonyの作者であるFabien Potencierのブログ記事で触れられているものです。

Templating Engines in PHP | Articles - Fabien Potencier

この記事は2009年10月にポストされたものです。この時のSymfony(当時はsymfony)のバージョンは1.3で11月に1系最後である1.4がリリースされています。彼がこの時期にどのようなテンプレートが望ましいか考え悩んだ結果が吐露されています。

記事の最初に「私と意見が合わなくて殺したい人がいるかも」という注意が書いてあることから当時のテンプレートエンジンに対する議論の白熱?具合が伺えます。

記事に書かれていること

PHP自体が良いテンプレートとは思えない

この記事の前半ではDjangoPythonのウェブフレームワーク)のテンプレートと比較して次のようなことが書かれています。

  • PHP自体がテンプレートだという主張があるが…
    • PHPは(言語としては進化してるが)テンプレートとして進化していない
      • 短く書けない
      • ありがちな処理をサポートしていない(例えばfor-else)
      • 再利用性がない(継承など)
        • 注: クラス継承ではなくテンプレート継承の意です
      • エスケープが大変(DjangoRailsは自動エスケープなのに)
      • サンドボックス化できない

PHPの既存テンプレートに良いものがない

中盤では既存のPHP製テンプレートエンジンを探してみたけどいいのがない、ということが書かれています。Smarty、PHPTAL、eZ Components Templates、Dwoo、Calypsoを取り上げています。

Twigとの出会い

後半ではTwigにたどり着いた経緯が書かれています。

  • Djangoのテンプレートっぽいものを探したところTwigを見つけた
  • TwigはJinja作者であるArmin Ronacherによって書かれたもの
    • 注: JinjaはPython製のテンプレートエンジンでDjangoのテンプレートと似ているけど別もの
  • 2008年にとあるサービス向けにTwigが作られたがArminはPythonで仕事してる
  • 彼にTwigを発展させてもいいか聞いたら乗り気になってくれた

その後

Symfony 2がリリースされたのは約2年後の2011年7月です。この時にデフォルトのテンプレートエンジンとしてTwigが採用されています。

Twigの最初のgitコミットを確認すると2009年10月7日となっています。そして先に紹介したFabienの記事の日付は同じく2009年10月7日です。この日のコミットは開発ではなくgit-svnを使ったSVNリポジトリ(おそらくArminが使っていたものと思われます)からのポーティングですが、これからやっていくぞという意気込みを感じるコミットです。

現在のTwigはSensioLabs(FabienがCEOの会社)やSymfony開発者によってメンテされ、9年間経った今でもSymfonyを支える重要なパーツとして生き続けています。