魂の生命の領域

AWS とか Python とか本読んだ感想とか書きます

直近読んだ本とかまとめ

一冊につき1記事書くのは辛いので、読んだけど永遠に下書きに格納されている「本読んだ」系の記事をここに合体させます。

適当なことを言うとただの嘘になってしまうので、本当はちゃんと引用しつつ書きたいのですが、そうなると永遠に進まないので辛い。

驚異の量子コンピュータ 宇宙最強マシンへの挑戦 / 藤井啓祐

驚異の量子コンピュータ 宇宙最強マシンへの挑戦

多分2020年ごろに読んだと思います。

Google量子コンピュータで量子超越性を示した!みたいな査読付きの論文を出して話題になっていた頃に出た本です。

数式は出てこないですが、深いところまで書かれているのでオススメです。

俺はマヨラナ準粒子の非可換統計を使ったトポロジカル量子計算をずっと待っている。

共産党宣言 / マルクス エンゲルス

たしか2021年の夏〜秋ごろに読みました。

岩波書店の厳つい本を自宅の本棚に置くという夢があり、その入門編としてまず薄い本を読もうというわけで読みました。

ちなみに Kindle で無料のやつ があったのでとりあえず買ってみたのですが、訳が古くて漢字が読めなかったのですぐ諦めました。 とはいえ堺利彦幸徳秋水の訳なので史料みたいな感覚で頑張って読み通す価値はあると思います。

岩波の方 は(これも Kindle 版あるんですが)読みやすい訳となっています。

ちなみに蟹工船の感想書いた時も言いましたが私は共産主義者じゃないです。

kesumita.hatenablog.com

論理哲学論考/ 古田徹也

2021年〜2022年にかけての年末年始に読みました。

みんな大好きウィトゲンシュタインの主著の解説本です。

岩波の和訳 ではなく解説本 の方を読みました。

岩波の和訳の方も持っていますよ。

本文を内容に沿って章に分けた上で重要な部分(と著者が判断した)を抜き出し、それをわかりやすい例を用いながら噛み砕いていく流れです。

オリジナルの方は数理論理学もターゲットに入っているので、ときどき数式も出てくるのですが、その辺はバッサリ省いてあります。

論理を極限まで静的?な枠組みとして捉えることでできること/できないこと(語りうる/語り得ない)の境界を探っていく流れだと思います。

超解読!はじめてのフッサール現象学の理念』 / 竹田青嗣

これは2021年の年末から2022年の5月ごろまで読んでました。

超解読!はじめてのフッサール『現象学の理念』

本屋で偶然「現象学」という文字を見つけてなんか心惹かれて買いました。

「主観は客観に一致するか?」って話あるじゃないですか。

オタクが好きなところで言えば「この世界が実は5分前に誕生してそれ以前の我々の記憶や歴史的事実と思っているものは全部意識に刷り込まれた幻想に過ぎないんだよ(そう言われて反論できるかな?)」的な、要するに「全ては主観に過ぎないのでは?」ってやつです。

それに対してあのデカルトが「でもそう疑うことができているということは自分の意識自体はあるってことだよね」という「我思う故に我あり」って言ったわけです。

で、そこからさらに進むにはどうすれば良いかですが、ヘタをすると「それってあなたの主観ですよね?」って言われてしまいます。

そこで「これは疑っても何も始まらないこと」、例えば「あのリンゴ赤いね〜」って思った時に、「本当にリンゴなのか?」とか「赤はみんなそう思ってるのか?」とかその辺りは疑う意味はあるかもしれませんが「『あのリンゴ赤いね〜』って思ったこと自体がもう幻想なのでは?」までいくと何もできないですよね。 なのでそこはもうどうやっても疑いようのない主観として受け入れても良いはずです。 もっと言うとこの自分の主観を他の人も持っているのであれば、じゃあそれを(でもそれって主観じゃん!って言うこと自体はできるけど)客観的事実ってことにしても良くない?って思えてきます。 さらにもっと言うと、「周りの人の主観」という自分の主観の外にあるものを急に持ち出すのはズルいって言われそうですが、結局問題になっているのは「周りの人の主観もこうでしょ」という確信があるかないかになってきます。

そんな感じで、主観の枠を超えて客体をバチッと認識する(できる)と考えるのではなく主観の範囲から疑いようがない・疑うと何も進まなくなるような確信を見つけて、それを積み上げて考えていくのが現象学だぜ、みたいなことを言ってる本だった気がします。

多分間違ってると思うけど。

共産主義の系譜 / 猪木正道

2022年の5月ごろから8月ごろまで読んでました。

共産主義の系譜

これはねぇ、面白いですよ。

初版が1949年に出てるので、まだ戦後間もないころ、特にソ連スターリンが現役だった頃です。

共産主義の始まりから今(出版当時)までのキーパーソンを生い立ちから思想までを分析している本です。

この本を読むまでフォイエルバッハとかラッサールとか知らなかったです。

マルクスヘーゲルを批判的に受け継いで史的唯物論を打ち立てた、という話は有名ですが、実はヘーゲルマルクスという流れではなくヘーゲルフォイエルバッハマルクスという流れだったらしいです。

対してラッサールについてはヘーゲル→ラッサールという流れだったらしく、その点でヘーゲルの域から出られていない、という感じらしいです。

そんなわけで前半は「共産主義」という思想が帝政ロシアに輸入されて、ロシア革命を経て世界初の共産主義国家として成立するまでの流れが楽しめます。

共産党宣言を読むと「資本主義(主に重工業)が発展し尽くすと社会主義になり、その最終形態が共産主義である」である、みたいな話だと理解できるんですが、実際は帝政ロシアや中国をはじめ資本主義すらまともに成熟していない国家で軒並み社会主義革命が起きているわけです。

工業化すらできていない後進国で成立した”社会主義”について、その歪みや異常さについて鋭く指摘しています。

昔の本ですが文は平易で無駄がない表現なのですらすら読めて気持ちいいです。

めっちゃアホみたいな感想だな

超解読! はじめてのヘーゲル精神現象学』 / 竹田青嗣西研

2022年の5月ごろから2023年の1月下旬ぐらいまで読んでました。

超解読! はじめてのヘーゲル『精神現象学』

一度は読みたいですよね。

でもまずは解説本を読んでみました。

基本的には弁証法として知られる、二項対立の構図からそれら両方を取り込んだ一つ上の段階に至るというモチーフを駆使して人間の精神と人間同士の集まり(社会)全体の”精神”の発達を語っています。 なので、何かのテーマに対する素朴な考え方とそれに対する反論が出てきて、それらが歩み寄るかもっと上で考えが出ることで話が進む、という感じになります。

人間の意識の成長過程を社会の発達に対応させていく流れはだいぶ「なるほどなぁ〜〜〜〜〜〜〜」って感じでした。

まとめ

なんか、1年ちょっと前ぐらいからやたら哲学の本を読むようになりました。

元々憧れはありましたからね。

Amazonの綺麗なURLを取得したい ブックマークレット編

ご存知の通り Amazon のURLって普通にコピペするとすごく長くなります。

一方で、ASINという商品コードにあたるID(10桁の数字)を https://www.amazon.co.jp/dp/ の後ろに付与すると、例えば https://www.amazon.co.jp/dp/4627082819 のように簡単に短いURLが作れます。

ちなみによく見る https://amzn.to/xxxx みたいなのはアフィリエイトリンクを隠蔽するための短縮URLで、また異なるものです。

で、このちゃんとしたURLを別タブで開き直すスクリプトブックマークレットという形で実装しました。

gist.github.com

JavaScript 一切わからん状態から試行錯誤して作りましたが、結果としてググれば似たようなものは腐るほど出てきました。

まぁ入門編ということで…

組み込み型の join メソッドとか map とか

docs.python.org

とりあえず int 形のリストを用意します。

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

これを標準出力にこんな感じで出したいとします。

0 1 2 3 4 5 6 7 8 9

よく思いつくのが str.join() メソッドですよね。

ですが、実行してみるとダメだとわかります。

>>> " ".join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

エラーメッセージの言う通り、join の引数は文字列のシーケンスじゃないといけないわけです。

当然ですが item 00 はインデックスの話で仮に0番目だけ str にしても次の要素でダメだったら同じです。

>>> " ".join(["1", 2, 3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected str instance, int found
>>> " ".join(["1", "2", 3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 2: expected str instance, int found

というわけでこの a を文字列のリストにしたいわけですが

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

シンプルにはこうですよね。

>>> list(map(str, a))
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

いや、実は恥ずかしながらちょっと前までこうやってました。

>>> list(map(lambda x: str(x), a))
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

map() の第一引数には lambda 式を入れるものだというので思考停止してました。

で、join() の引数にこいつを入れれば良さそうです。

ですが join() の引数はリストであることが必要条件ではなくイテラブルであることなので、これで済みます。

>>> " ".join(map(str, a))
'0 1 2 3 4 5 6 7 8 9'

こんなん書いたらダメだぞ!(冗長)

>>> " ".join(list(map(lambda x: str(x), a)))
'0 1 2 3 4 5 6 7 8 9'

内包表記アンチでもなければこれでもいいと思いますが…

>>> " ".join(str(s) for s in a)
'0 1 2 3 4 5 6 7 8 9'