2021年8月31日火曜日

フランク・ライアン「破壊する創造者―ウイルスがヒトを進化させた」

 本書で書かれているレトロウィルスが進化に影響を与えたという可能性については、小松左京の「はみだし生物学」ですでに読んでいた。1985年、新潮文庫版で。なので目から鱗ということはなかった。「はみだし生物学」は1980年の出版なので小松左京すげえ、なのだけど 1
 「はみだし生物学」では他の生物の遺伝子を運ぶ、という形の想像だった、と記憶している。

 本書であげられている進化の推進力

  1. 突然変異
  2. 共生進化
  3. 異種交配
  4. エピジェネティクス

 「はみだし生物学」の捉え方はどちらか、というと「異種交配」に相当する。
 「破壊する創造者―ウイルスがヒトを進化させた」のレトロウィルスがらみは「共生進化」で、レトロウィルス自体の遺伝子が組み込まれ、それが影響を与えているという話だ(レトロウィルスとの共生)。
 胎生が可能になったのもその影響だ、と。
 そういえば、恐竜は卵生だったし、鳥類は今だに卵生だ。どうして哺乳類だけが——もっとも哺乳類という言葉自体、胎生をあらわしているわけだけれど。
 もしかしたら胎生というのは卵生よりも進化的に有利だったのだろうか。
  恐竜が都合よく滅びなくても進化的な覇権は哺乳類に移っていたのかもしれない。

Footnotes:

1

DNAに逆転写するという話を聞いたらだれでも想像してしまうよね、という話ではあるけれど。

2021年8月25日水曜日

2021年8月24日火曜日

iPadのSiriを呼び出す

 これがやっかいで、Apple WatchのSiriが反応してしまう。こいつのSiriはOFFにしたくない。というのもリマインダーの登録とか、Apple WatchのSiriからできるのだ。重宝する。 
 一計を案じた。
 iPad Proに命令するときはApple Watchを手で覆ってやるのだ。これで音楽を操作できる。けっこう効果的だった。

 などのしたり顔で 書いてしまったが、AppleWatchのSiriの設定を「手首を上げて話す」しておけば、iPadのSiriを呼び出すときは手首を下げて「Hey! Siri」でいいのだった……。

2021年8月17日火曜日

Lisp ECL

 土日にWindowsやらFreeBSDのUPDATEをしてpkgとか、upgradeしてみたらmaximaで使われているCommonLispがSBCLではなくなっていた。

Maxima 5.44.0 http://maxima.sourceforge.net
using Lisp ECL 20.4.24

 なんぞ、これ。

  LISPUSER ECL – Embeddable Common-Lisp

 2007年のものだからちょっと情報は古いかもしれない。versionが0.9.6.2だし。
 ただ、これを読んでいてそんなものがあったな、と思い出した。

2021年8月13日金曜日

Upgrade GNU Emacs 27.1

 Emacsをbrew upgradeしたら状態がぐしゃぐしゃになった。
 前回brew-caskからinstallしたので、uninstallしたら、なぜか、brew-coreからinstallした、と勘違いしている。なので強引にreinstallした。

 が、Cocoaで立ち上がらない。

  過去の記事を読んで思い出した。そうだ。なぜか、知らないけれど、configureのオプションが「–without-ns」になっていたのだった。それでcaskを利用したのだけど。オプションをいくつかコントロールしたいこともあって自前でbuildするか、と。
 インテルチップはバイナリ提供をしていないようで、compileしなおしていた。それならどこかにsourceを展開しているはずなので、手動でbuildしなおそうか、と考えたのだ。
 ところがそれが見当たらない。

 brew installからオプションを渡す方法はあいかわらず、パージされたままだ。
 bottleを直接、いじってみたらbuildが途中で失敗する。
 どこかに代替手段がありそうなもんなんだがなぁ。
 man brewをつらつら読んでいて気づいた。

-i, --interactive
       Download  and  patch formula, then open a shell. This allows the
       user to run ./configure --help and otherwise  determine  how  to
       turn the software package into a Homebrew package.

 なるものがあるじゃないか。

brew reinstall -i emacs

 で、インタラクティブモードから手動でbuildできるようになっているらしい。

./configure --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs/27.1/share/info/emacs --prefix=/usr/local/Cellar/emacs/27.1 --with-ns

 exitしたら実際に反映されるらしいのだが。
 おかしい。
 あいかわらず、「without-ns」のままだ。Cocoaで立ち上がらない。
 ログを見るかぎりEmacs.appをつくっているようにも見える。しかし、そんなものどこにも見当たらないぞ。試行錯誤して調べてみると、exitした瞬間に消えてしまっている。

 なので、buildしてインタラクティブモードを抜ける前に~/Applications/にコピーした。
 そちらのEmacs.appはちゃんと、「–with-ns」になった。

system-configuration-options is a variable defined in ‘C source code’.
Its value is
"--enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs/27.1/share/info/emacs --prefix=/usr/local/Cellar/emacs/27.1 --with-ns"

Documentation:
String containing the configuration options Emacs was built with.

[back]

 /usr/local/Cellar/emacs/27.1/bin/emacsは

system-configuration-options is a variable defined in ‘C source code’.
Its value is
"--disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs/27.1/share/info/emacs --prefix=/usr/local/Cellar/emacs/27.1 --with-gnutls --without-x --with-xml2 --without-dbus --with-modules --without-ns --without-imagemagick"

Documentation:
String containing the configuration options Emacs was built with.

 なのだが。

2021年8月12日木曜日

速くする

 仕事でもEmacsを使っている。
 プログラミングのため、というより事務作業のためだ。
 メモ、予定管理……極めつきはいろんなものを helmでごっそり検索している。思いついたものを——Excelの中身を読み込むツールを書いたりして——どんどん追加していったらhelm-sourceが20個ぐらいになってしまった。操作ひとつで、それだけの情報に検索をかけることができるわけである。
 すごく便利なのだけど、さすがに遅くなってしまった。
 ひさしぶりにEmacsのprofileを使って調べてみたけれど、ボトルネックはわからない。
 積りつもって遅くなっている、ということだろうか。
 そこでsourceを見直しながらちょこちょこと直してみたのだけれど、ほんのちょっとだけ速くなっただけだった。元々、メモライズとかの処理をいれていたということもある。
 これ以上は無理かなぁ、と思っていたとき、ふと思い出した。
 バイトコンパイル。

 ——速くなった。

 このときの脱力感といったらもう……。

2021年8月11日水曜日

reminders-cli

 reminders-cliなるものをinstallした。
 Emacsとリマインダーのあいだで連携できないか、と。
 ところがEmacsの中でremindersがうまく動かない。

yamada@MacBookAir ~ % reminders show-lists
reminders show-lists
2021-08-07 20:30:37.330 reminders[39814:1483191] CoreData: XPC: Unable to load metadata: Error  Domain=NSCocoaErrorDomain  Code=134070  "An error occurred in the persistent store."  UserInfo={ Problem=request failed, insufficient permission}
CoreData: error: -addPersistentStoreWithType:NSXPCStore configuration:(null) URL:file:///Users/yamada/Library/Calendars/Calendar%20Cache options:{
     NSInferMappingModelAutomaticallyOption = 1;
     NSMigratePersistentStoresAutomaticallyOption = 1;
     NSPersistentHistoryTrackingKey =     {
         NSPersistentHistoryTrackingEntitiesToExclude =         (
            ChangeRequest
        );
    };
     agentOrDaemon = 1;
     serviceName =  "com.apple.CalendarAgent.database";
} ... returned error NSCocoaErrorDomain(134070) with userInfo dictionary {
     Problem =  "request failed, insufficient permission";
}
You need to grant reminders access
yamada@MacBookAir ~ % 

 どうやら下記のアクセス許可をオンにしなければ、いけないらしい。

 ところが設定する方法がわからない。本来、remindersを動かしたときに下記のようなダイアログがでるはずなのだが、それがでない。

 ターミナルからやったときはでた。
 Emacsはアプリケーションと認識されていないかもしれない。そもそもCatalina以降、 Emacsを動かすためにrubyにたいしてアクセス権限をつけなければ、ならなかった。ということはたぶんrubyにリマンダーへのアクセス権限を付与しなければ、いけない 1。ところが設定するためのダイアログがでない。結果、rubyが「セキュリティとプライバシー」に追加されない。悪循環だ。
 これははまっちまったか。

 待てよ。
 Automaterに権限をつけてそこからemacsを立ち上げれば、いいんじゃないか。

 まずAutomaterからreminedersを実行してダイアログがでたのでそれで権限を付与。
 そのあと、emacsを実行するアプリケーションを作成 2

 作成したappから実行したemacsの中でremindersを動かしたらダイアログがあわれた。あれ? Automaterに権限をつける必要はなかった? そのダイアログから権限を付与したら無事、emacsの中でremindersが動いた。

Footnotes:

1

その傍証に、権限を付与したターミナルからemacsを立ち上げれば、remindersはちゃんと動くのである。

2

ただしこれはbrewからcaskのemacsをinstallしていたかららしい。なのでEmacs.appを叩くには

/Applications/Emacs.app/Contents/MacOS/Emacs

2021年8月10日火曜日

アダム・クチャルスキー「感染の法則:ウイルス伝染から金融危機、ネットミームの拡散まで」

 COVID-19のパンデミックで集団免疫を獲得するには免疫獲得者の割合が70%、必要だという。
 疑問だった。
 なぜ、70%なんだ?
 ニュース記事は専門家がそういっている、と説明しないし、専門家の記事はさも当然といわんばかりだ。なぜだ。理由がわからん。
 アダム・クチャルスキー「感染の法則:ウイルス伝染から金融危機、ネットミームの拡散まで」を読んでやっとわかった。

その近縁種(引用注:SARSウィルスのこと)で2020年に大きく広がったCODIV-19ウィルスも、何の対策を講じない場合、Rは同じく2〜3だった。

 Rというのは統計用のRのことではなく、 再生産数のことだ。一定期間に一人が何人に感染させるか、という数値。3ということは、感染者一人から感染者三人に増えるということ。次のステップでは3×3で、九人になる。次は27人。ネズミ算式に増加する。
 なので、次の感染者三人のうち、二人がワクチンで免疫を獲得していれば、感染者一人から感染者一人しか増えないことになる。つまり、2÷3で、0.6666666666666666で、繰り上げて(人は小数点になれないので)70%の人間が免疫を獲得できれば、感染者は増加しなくなる、ということらしい。

 でもその70%すら達成できてないんだよなぁ。どの国も(中国は達成しているかもしれない)、と思っていたら。

デルタ株、水痘に匹敵する感染力 CDCの内部資料が警告

CDCの資料によると、デルタ株は1人の感染者が平均8~9人に感染させる。これは水痘と同程度。一方、変異前のコロナウイルスは通常のかぜと同じく1人の感染者から約2人にうつるという。

 って、だめじゃん。

2021年8月4日水曜日

上野千鶴子「在宅ひとり死のススメ」

 看取りの医者に訊いたことがあります。臨終のときに、誰が周りにいるか、わかるものですか? と。「いやあ、そんあことわかりませんよ。死ぬ時には脳内麻薬といわれるエンドルフィンが出て多幸状態になりますから、傍に誰がいたって関係ありません」

 ——どうやって調べたんだよっ、と思わず、突っこんでしまったけれど。
 最近、 猫を看取ったとき、焦点の合わない目で浅い呼吸をくりかえし、時々、うぐっとえずいたりしていたけれど、苦しんでいるようには見えなかった。あれはエンドルフィンで天国が見えていたのかもしれない。

2021年8月3日火曜日

ドナルド・R・プロセロ「岩石と文明―25の岩石に秘められた地球の歴史」(上)(下)

 恐竜は人類並みの知能をもっていたそうな 1
 ということは実は高度な科学文明を立ち上げていたとか。むふふ、と想像していたらふと疑問が浮かんだ。科学文明をスタートさせることは可能だったんだろうか。化石燃料を利用できたんだろうか。石炭紀からジュラ紀まで1.5億年ほどか。石炭が形成されるのはなんとなく十分、可能なような気もするけれど、どうなんだろう。

シロアリや他の分解生物が多くいて、澱んだ水中に枯れて倒れた樹木をたちまちのうちに分解してしまう現在の湿地帯とは違い、木材を餌にするような昆虫は石炭紀にはまだ進化してなかった。要するに、現在のように腐敗して分解されてしまうのではなく、膨大な量の植物が湿地帯の酸素欠乏状態の酸性の泥の中に倒れこんで、埋没して永久に地殻の一部になったのだ。

 ということは一億年ぐらいしたらプラスチックを分解する生物もあらわれるかもしれない。
 あるいは分解できないプラスチックが埋没してまた石油にもどるかもしれない。
 まあ、そのころには人類は恐竜のように滅亡しているだろうけど。

 ちなみに恐竜の滅亡は小惑星の衝突が原因とはかぎらないらしい。

 はっきりしているのは三つの出来事がほぼ同時に起きたことである。天体衝突、火山噴火、海水面低下だ。

 テレビのドキュメンタリーで何度も見ていたのですっかる定説なのか、思いこんでいた。天体衝突説。

Footnotes:

1

「岩石と文明―25の岩石に秘められた地球の歴史」で語られているわけではない。