Why does light slow down in water? https://youtu.be/CUjt36SD3h8
Dr. Don Lincolnのシリーズ、今回は光が水中(あるいは他の媒質中)で速度を落とし、水中から出た時点で再び元の速度に戻る原理を解説している
Googleに転職していきなり3ヶ月の育休を貰った - Software Transactional Memo
http://kumagi.hatenablog.com/entry/ikukyu
子供は東大じゃなくてGoogleに入れる努力をすべきであるな。
高木浩光@自宅の日記 - Coinhive事件、なぜ不正指令電磁的記録に該当しないのか その2 http://takagi-hiromitsu.jp/diary/20190219.html
長えけどここまでの文脈があったんやなぁ
ブートストラップの話、言語処理系には大抵、\が来たら次の文字で分岐してnだったら\nの値を挿入するというコードが書かれているので、インタプリタはそれをコンパイルしたときのコンパイラから、コンパイラはそれをブートストラップするときに使ったコンパイラから\nに対応する数値を受け継いでいて、具体的な数値はシステム全体のソースコードを調べても書かれていないという小話がある(一度本当にそうなのか検証してみたい)
GCC 2.95をビルドできる程度の能力を持つ小さなCコンパイラを作れれば、そこからC++で書き直される前のGCC 4.4辺りをビルドして、更に近代的なGCCやClangをビルドすることで、精査可能な小さなツールチェーンからシステム全体をビルドできるフルセットのツールチェーンをブートストラップできるというのが現在の方針
GNU MesはハンドアセンブルされたCコンパイラではなくSchemeで書かれたCコンパイラとCで書かれたSchemeコンパイラ(もちろんCもSchemeもフルセットではなく処理系全体を精査できるようなサブセット)でブートストラップする
元からアセンブリ言語で書かれているならバイナリにする過程で細工されていないかどうかは直接比較できて、そのコンパイラが例えば平均的なプログラマーに精査できるくらいわかりやすく書かれていればseedから精査できるシステムとなりうる
UNIXのloginに組み込まれた有名なバックドアの話からわかるように、自分が精査したソースコードからコンパイルしたとしても元のバイナリがバックドアを埋め込む場合があって、単にreproducibleなだけでなくシステムをブートストラップする最初の段階で使ったバイナリ(seed)から精査できるようにしようという話が盛り上がっている
Stage0 Bootstrap for the Free Software - Summary [Savannah] https://savannah.nongnu.org/projects/stage0
"This project is not part of the GNU Project.
A class of minimal bootstrap binaries that has a reproducible build on all platforms. Providing a verifiable base for defeating the trusting trust attack."
最初からデスクトップ環境込みでインストールすると最初から色々起動するので、最小セットアップで立ち上げてこれからどう育てるか考えている間見られる光景
Red Hat 系でも Gentoo でもだいたいパッケージシステム回りで Python 使うせいでたしかに Arch Linux 以外は base に Python 必ずあるな……。