Turing Complete FM

Turing Complete FM

プログラミングとコンピュータサイエンスについてのディープな話をするポッドキャストです。

Rui Ueyama Technology 31 rész
31. 携帯電話のハッキング、コンピュータサイエンスの論文 (るくす)
60 perc 31. rész Rui Ueyama
カーネギーメロン大学の客員研究員として明日から赴任するるくすくんと、コンピュータのセキュリティや、システムズ系のコンピュータサイエンスの論文などについて話をしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/31

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • カーネギーメロン大学に明日から行きます (0:47)
  • Samsung Galaxyのシリアルコンソールを有効にするハードウェアの裏技 (9:00)
  • iPhoneではアンロックしてから1時間が経過するとUSBデータ通信が完全無効化される (16:00)
  • メモリアクセスのときに放射される電磁波ノイズでラジオを鳴らす (17:30)
  • 初代XBoxのメモリバスをタップしてデータを取得 (18:54)
  • るくすくん作成のNintendo Switchエミュレータ公開されました (22:00)
  • Nintendo SwitchにAndroidを移植 (26:10)
  • Linus、他人に対する振る舞いを改善するために一時的に公的な立場を退く (27:50)
  • るくすくん、Kernel/VM関西というイベントを主催 (34:06)
  • x86ネイティブコードを安全に動かすNaCLの論文 (36:30)
  • 4KiBページを自動的に2MiBのスーパーページに昇格するというFreeBSDの機能 (44:57)
  • Hans Boehmの「スレッドはライブラリとしては実装できない」という論文 (50:20)
  • カーネギーメロン大学における生活 (55:59)
  • エンディング (59:46)
30. セルフホストできるCコンパイラの作り方を夏休みの特別授業で教えた話 (hikalium)
75 perc 30. rész Rui Ueyama
セキュキャンのCコンパイラ自作コースが無事に終わりました。共同講師だったhikaliumと一緒に、コンパイラ自作の要点やコンピュータサイエンスの教え方などについて振り返りました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/30

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • よい寄付先とは (4:47)
  • セキュキャンのCコンパイラ自作ゼミとは (7:51)
  • インクリメンタルにCコンパイラを作る (12:21)
  • 左辺値と右辺値 (17:55)
  • 似て非なるものを作るのは努力の重複ではない (19:17)
  • 9cc書き始めました (20:51)
  • 自作コンパイラの性能もそんなに悪くはない (21:18)
  • Ken Thompsonのログインハック (23:10)
  • Cコンパイラ、アセンブラ、リンカ、libc関数を全て自前で書く (32:16)
  • Stanford CS140 (34:59)
  • Stanford CS140e (37:40)
  • 三億円事件 (40:59)
  • 仮想通貨盗難事件のスケールの大きさ (45:29)
  • ビットコイン盗難とSIMスワップ攻撃 (48:11)
  • ハードウェアのセキュリティキー (49:08)
  • hikalium、Ergodoxキーボードを買う (51:24)
  • キーボード早打ち対決 (55:35)
  • 国によってキー配列が違う (58:55)
  • プログラミングを教える時の心構え (1:01:31)
  • Keithというよい講師の話 (1:05:07)
  • 褒めるときに悪い話をセットにしない (1:07:10)
  • 久しぶりのTCFM (1:11:58)
  • エンディング (1:14:14)
29. ユタ・ティーポット、Cコンパイラ開発の授業、中学生時代のOS自作エピソード (hikalium)
102 perc 29. rész Rui Ueyama
セキュキャンのCコンパイラ作成コースの話、CGでよくでてくるティーポットの実物を入手した話、hikaliumの中学生時代のOS自作の話をしました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/29

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • セキュキャン事前学習始まりました (1:33)
  • 「低レイヤを知りたい人のためのCコンパイラ作成入門」(仮題)、現在7万字 (3:58)
  • Cの不可解な言語仕様のルーツを知るために1972年の最初期のCコンパイラのコードを読んでみた (6:07)
  • 符号拡張とマイナス2進数 (13:04)
  • コース参加者のコードのほうが8ccのコードよりきれい (17:57)
  • 一番最初のコンパイラは構文解析が非常に苦労した (20:23)
  • CGでよくでてくる例のティーポットを買いました (22:07)
  • 元々はボストンのコンピュータ博物館で展示されていた (25:15)
  • Frieslandという会社が今でも同じティーポットを作っている (26:03)
  • ユタ・ティーポットはなにがCGに適しているのか (28:27)
  • ユタ・ティーポットと南部鉄器の類似性 (30:31)
  • 内輪ネタとしてのユタ・ティーポット (33:14)
  • ユタ大学のUtah Teapot Rendering Competition (34:00)
  • 画像処理の標準テストイメージとしてよく使われる女の人Lennaの話 (37:57)
  • ユタ・ティーポットは日本からも普通に買えるはず (41:47)
  • hikaliumのOS自作入門 (43:28)
  • hikaliumの小学生時代のホームページ (44:21)
  • 30日OS自作入門本のOSのファイルシステム (48:00)
  • GUIの多色対応 (51:36)
  • 30日OS自作入門本のmalloc (55:29)
  • K&R mallocを自力で発明して実装 (58:10)
  • テキストボックスを実装 (1:00:33)
  • ARMの実行のみできるページ(読めない)という新しい機能 (1:03:17)
  • x86のページテーブルがいつの間にか5段くらいに深くなっている件 (1:06:32)
  • lldでEFIバイナリのブートローダを簡単に作成 (1:08:01)
  • lldはクロスのビルドを簡単にするつもりで作っている (1:09:48)
  • hikaliumのOS次回作のテーマ (1:12:07)
  • Window Systemでウィンドウを入れ子にする (1:15:04)
  • クリックした場所を検出しようとすると必ずマウスカーソル自身になる問題の回避法 (1:18:58)
  • MIDIファイルを読んでPCのビープ音で再生する機能を実装 (1:20:48)
  • 無理やりなコードでも動くものを一回書くと学べることが多い (1:25:00)
  • Intelのマニュアルを読んで16ビットモードのエミュレータの作成を試みる (1:26:42)
  • 中学生の夏休みの頃はひたすらコードを書いていたりしていた (1:31:38)
  • エディタはWindowsのメモ帳だった (1:32:18)
  • いまからみると稚拙なコードを書いていた中学生時代 (1:37:50)
  • エンディング (1:39:57)
28. プログラミング言語のブートストラッピング問題、コードとの互換性を保ちつつ言語を変更していく話 (川合史朗)
75 perc 28. rész Rui Ueyama
Gauche Schemeの作者の川合史朗さんと言語処理系についての話をしました。GaucheのCコードとの互換性を保ちつつ無限リストを導入するために採用したトリックや、Gauche自身で書かれているGaucheを過去のバージョンでビルドするために気をつけていることなどの話をしました。

出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314)

https://turingcomplete.fm/28

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 電卓そろばん対決の動画存在しました (2:28)
  • Gaucheとそのほかのプログラムのリリースプロセス (3:33)
  • コンパイラのブートストラッピング問題とバージョン間の互換性 (4:51)
  • GCCやClangにおけるブートストラッピング問題 (18:08)
  • Goでは言語仕様がフリーズされていてGo 1の間は変更されない (19:41)
  • Webブラウザの6週間のリリースサイクルは短いのか長いのか (20:35)
  • FirefoxもClangとlldにスイッチ (21:32)
  • Gaucheがstdioを使わずに独自bufferred IOを実装している理由 (22:58)
  • FILE構造体の内部にアクセスする(移植性のない)実装 (26:41)
  • プログラム終了時にバッファをフラッシュしないといけない (27:13)
  • stdioではstdinを読もうとしたらstdoutがフラッシュされる (28:24)
  • 遅延シーケンス(無限リスト) (31:05)
  • Cレベルでの互換性を保ったままconsセルを遅延シーケンスにするトリック (34:52)
  • 遅延シーケンスをどこで使っているのか (37:29)
  • 遅延シーケンスのパフォーマンス最適化 (38:45)
  • Clojure言語のTransducerという仕組み (42:07)
  • カリー化とは何か (46:06)
  • キーワードとシンボル (48:09)
  • キーワードをシンボルのサブクラスにして発生した問題 (54:27)
  • Scheme言語仕様にはキーワードはない(シンボルで十分?) (56:08)
  • 現在仕様策定中のScheme言語仕様R7RS (58:27)
  • R6RSの言語仕様は振り返ってみて良いものといえるのだろうか? (1:00:12)
  • 標準化委員会が作る言語仕様と個人の作品としての言語仕様 (1:03:55)
  • Goの言語仕様の変更のプロポーザル (1:05:09)
  • Schemeでは言語仕様を実験的に拡張して良さそうなら標準化するというのがよくある流れ (1:06:51)
  • 言語仕様策定の投票権は全員平等なのが本当によいのか (1:09:19)
  • Schemeは誰でも参加できるところがよいところ (1:10:02)
  • C++のトライグラフの廃止に最後まで反対していたのはIBMとカナダ (1:11:14)
  • エンディング (1:13:22)
27. 歴史の中のコンピュータ: 1946年の電王戦、エニグマ暗号の解読 (うどん)
97 perc 27. rész Rui Ueyama
今週は歴史回です。僕からは、終戦の翌年の東京で、日本のそろばん名人が米軍代表の電卓オペレータと大規模な公開マッチを行って、そろばん名人が勝利したという知られざるエピソードを紹介します。うどんくんからは、第二次世界大戦のドイツ軍の暗号がどう破られたのかという話をします。

出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/27

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • コンピュータ歴史博物館 (0:40)
  • そろばん対決の当時の新聞記事を図書館で探す (4:22)
  • 星条旗新聞の一次資料を発見 (8:24)
  • 日本側挑戦者は逓信省に勤めるマツザキ・キヨシさん (9:50)
  • 新聞の興行としての計算勝負 (12:52)
  • 会場はアーニー・パイル・シアター(旧東京宝塚劇場) (14:55)
  • アメリカ側挑戦者はGHQ財務局のThomas Nathan Wood二等兵 (16:32)
  • モータを内蔵した機械式計算機 (17:19)
  • 勝負の予想は半々に割れる (18:40)
  • 日本側からNHKや新聞が取材に来ていてフィルムも残っているはず (20:39)
  • マツザキさんが勝利 (21:27)
  • マツザキさんの勝利を報じる星条旗新聞 (23:35)
  • この計算対決があったことはほとんど知られていない (24:35)
  • エニグマ暗号機 (27:24)
  • 大昔のコンピュータを、現役学生時代にMITでハックしていた人がデモしてくれる (27:56)
  • エニグマの基本構造 (29:46)
  • シーザー暗号やヴィジュネル暗号との比較とその解読法 (33:29)
  • ワンタイムパッドとは (38:56)
  • バベッジとバベッジの階差機関 (41:05)
  • エニグマの基本構造と鍵空間の大きさ (43:24)
  • エニグマはいつ解読されたのか (46:54)
  • 分散コンピューティングで解読する現代の試み (49:32)
  • ポーランドが暗号化手順の脆弱性を発見してエニグマのレプリカを作ることに成功 (51:02)
  • ソ連のページが重複した「乱数表」でアメリカが通信解読に成功していた事件 (1:06:30)
  • ポーランド侵攻の直前にイギリスのチューリングのチームに成果を引き継いだ (1:07:38)
  • チューリングを描いた映画「イミテーション・ゲーム」 (1:11:10)
  • クリブを元に全探索する装置Bombe (1:12:10)
  • ドイツ軍は連合国の暗号解読を試みたのか (1:16:05)
  • アメリカ軍の暗号解読により山本五十六海軍長官が殺害される (1:17:52)
  • タイガー手回し計算機 (1:19:26)
  • 物量の差で負けた戦争と、そろばん電卓対決 (1:22:29)
  • テレビ番組化希望 (1:23:47)
  • 未解読の暗号文を解読する現代の試み (1:24:58)
  • 最近も新しい暗号文が解読されている (1:29:21)
  • エニグマのレプリカ自作 (1:31:01)
  • 歴史回はどうだったか (1:32:21)
  • サイモン・シン「暗号解読」 (1:33:02)
  • エンディング (1:35:04)

追記

  • そろばん対決では四番勝負と言っていますが正しくは加減乗除とその全てのコンビネーションの五番勝負です。
26. Nintendo Switchのエミュレータでhomebrewアプリを動かす話、サイバーセキュリティと政府機関 (るくす)
74 perc 26. rész Rui Ueyama
るくすくんとSwitchエミュレータの進歩や、政府機関のサイバー部隊に就職したい話、セキュリティ全般について話をしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/26

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • Switchエミュレータでネットワーク通信が動くようになった (0:53)
  • SwitchのHomebrewのアプリをエミュレータで動かして動作確認 (1:48)
  • Webブラウザの脆弱性を使ってアプリをインストール (4:12)
  • 完成度はまだまだだが、Switch用のNES(ファミコン)エミュレータくらいは動く (8:17)
  • GPUのエミュレーションの方法 (14:01)
  • 既存のエミュレータと動作を比較してデバッグ (15:27)
  • 開発期間は4〜5ヶ月 (20:47)
  • main関数に到達するまでが大変 (22:47)
  • QEMUベースのSwitchエミュレータの比較 (26:04)
  • オープンソース化したらどういう反応があるのか (27:13)
  • るくすくんのセキュリティのサーベイ記事 (29:42)
  • 日本の政府機関のサイバー部隊 (30:55)
  • 日本の政府機関のハイテク音痴ぽさ (37:10)
  • アメリカの情報機関に就職するには国籍がないと難しい (38:25)
  • スパイ衛星の運用は内調 (39:20)
  • ハッキングチームの情報流出事件 (42:00)
  • ハードウェアの脆弱性を使ったターゲット攻撃 (45:34)
  • PlayStation 4でWebブラウザがクラッシュすると警告文が出る (48:46)
  • 法執行機関に対抗してユーザのプライバシーを守ろうとするAppleの姿勢と努力 (50:56)
  • セキュアブートとは (55:02)
  • 拡張ハードウェアを使ったセキュアブートの回避 (57:31)
  • TCFMミートアップのQ&Aコーナーの質問 (1:00:20)
  • ワーム事件を引き起こしたRobert Morrisは今はMITの教授 (1:08:29)
  • Kevin Mitnickの逮捕に協力した下村努はノーベル賞受賞者の下村脩の息子 (1:10:21)
  • Project LoonのAstro TellerはEdward Tellerの孫 (1:11:55)
25. Chromeのローディングの最適化、脆弱性報奨システム、ブラウザとマイクロカーネル (Kinuko)
84 perc 25. rész Rui Ueyama
Chrome開発者のKinukoさんと、Chromeのページロードを速くする話や、ブラウザのセキュリティ、ブラウザのマルチプロセスアーキテクチャとマイクロカーネルの類似性などについて話をしました。

出演者: Kinuko (@kinu)、Rui Ueyama (@rui314)

https://turingcomplete.fm/25

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • Chromeのローディングを担当 (1:24)
  • リンクはクリックしたら一瞬で表示されてほしい (3:32)
  • Service Worker (4:28)
  • WebページをまとめるWeb Packaging (6:23)
  • Web PackagingとCDNとデジタル署名 (10:35)
  • 信頼できる第三者による署名 (15:06)
  • マウスオーバーでプリフェッチ (16:22)
  • 機械学習でプリフェッチ (17:32)
  • Chromeのデータセーバー (18:28)
  • 遅い機能を使っていないことを宣言できるfeature policy (21:14)
  • ブラウザの深い話をするつもりが普通のWeb開発の話になっていた (23:00)
  • Service WorkerはGoogle検索も使っている (24:22)
  • Service Workerの最適化 (26:23)
  • Service Workerを使っている大規模サイトの例 (30:36)
  • ブラウザはとにかく大きくて複雑 (32:05)
  • 細かくプロセスに分ける現代のブラウザはマイクロカーネルぽい (34:11)
  • File descriptor passing (42:04)
  • ブラウザのタブをVMにしたら? (44:06)
  • KinukoさんはOSぽい研究をしていた (47:43)
  • 分散ファイルシステムの研究 (48:40)
  • WWWのデザインの適当さの衝撃度 (51:39)
  • Chromeの脆弱性報奨システム (55:10)
  • 定評のあるオープンソース開発者が意図的に悪意あるコードを書いたら見つけられるか? (1:00:03)
  • SanitizerがC++を延命している (1:05:31)
  • セキュリティレビューワーは何をみているのか (1:11:30)
  • 開発力のあるエンジニアを大量に集めてブラウザの巨大さに対抗 (1:14:05)
  • Windows版のChromeもlldリンカに移行 (1:15:16)
  • TCFMミートアップに100人以上が参加 (1:17:39)
  • 趣味や研究でChrome開発に参加→就職 (1:21:14)
24. 細胞内の物質の濃度を測る研究、ヒトゲノム計画、害虫の根絶 (Shiro Kadowaki)
84 perc 24. rész Rui Ueyama
東大医学部卒業後にソフトウェアエンジニアをしている門脇さんと、生物の研究の話や最近の遺伝子技術の進歩などについて話をしました。

出演者: Shiro Kadowaki、Rui Ueyama (@rui314)

https://turingcomplete.fm/24

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 東大医学部 → ソフトウェアエンジニア (1:43)
  • DOS版のソフトをWindows 3.1に移植 (4:51)
  • 医学部に行くと普通は医者になる (6:55)
  • 細胞内の物質の濃度を測る研究 (9:40)
  • IP₃の濃度を蛍光タンパク質を使って測定 (16:15)
  • 生物の実験と再現性の問題 (19:33)
  • 測定することで測定対象に影響を与える問題 (24:00)
  • 遺伝子を一から作ることはできるのか (25:08)
  • 人体を設計し直せるとしたら (29:35)
  • 蛍光の観察方法 (31:26)
  • 制御装置をビジュアルプログラミング言語で作る話 (36:27)
  • 細胞のシートや立体構造を作る話 (38:29)
  • 実験の動画をMOで保存 (39:37)
  • 実験装置の光源 (40:56)
  • ヒトゲノム計画 (46:29)
  • Perlの正規表現で遺伝子を探索 (50:37)
  • 遺伝子の候補を見つけた後どう検証するのか (55:18)
  • ディープラーニングを使って眼底写真から血圧や性別を判別する話 (58:22)
  • 蚊を根絶する話 (1:00:50)
  • 沖縄における不妊虫放飼の実例 (1:03:07)
  • タスマニアデビルの感染性のガン (1:06:03)
  • 野生生物の種単位での根絶を可能にするGene Drive (1:07:37)
  • 数珠つなぎ式Gene Drive (1:11:11)
  • UnicodeのDNA絵文字のバグ (1:14:53)
  • マッドサイエンティストなPCR発明者 (1:18:49)
  • Wikipediaの専門のページ (1:20:40)
23. マッチングアルゴリズム、不揮発性メモリ、水槽の脳 (hikalium)
78 perc 23. rész Rui Ueyama
戦略投票を行わなくてよいマッチングのアルゴリズム、Intel 3D XPointのような不揮発性メモリ、この世界はシミュレーションか、といった話などをしました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/23

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • セキュキャン2018 (2:05)
  • 戦略を必要としないマッチングアルゴリズム (3:34)
  • デュヴェルジェの法則 (12:44)
  • 比例投票制の制度設計 (18:32)
  • 完全比例代表制と阻止条項 (20:41)
  • 不揮発性DIMM (24:43)
  • 不揮発性DIMMをどうモデル化するか (30:56)
  • 不揮発性DIMMはファイルシステムとして見えるべきか、永遠に存在するプロセスとして見えるべきか (33:08)
  • 3D XPointメモリは8バイト単位での書き込みがアトミック (39:37)
  • Compare-and-swap命令 (42:57)
  • ストレージ階層に新たな層が加わるのは面白い (45:32)
  • シングル磁気記録方式のHDD (46:42)
  • 水槽の脳 (52:02)
  • 世界シミュレーション仮説 (54:33)
  • シミューレーションと浮動小数点数演算の誤差 (55:19)
  • パイオニア・アノマリー (58:25)
  • カール・ポパーと反証可能性 (1:00:47)
  • hikaliumはこの世界はシミュレーションだと思うかどうか (1:03:44)
  • 世界無課金ゲーム仮説 (1:07:25)
  • シンギュラリティ後の世界でコンピュータ内に移住したいかどうか (1:08:40)
  • 「脳のなかの幽霊」と半球無視 (1:10:55)
22. gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話 (ぬるぽへ)
98 perc 22. rész Rui Ueyama
gVisorというLinux向けサンドボックスがオープンソース化されました。gVisorの構成は、ぬるぽへさんが作成していたNoahとかなりよく似ています。そこで、ぬるぽへさんからNoahの経験をもとにgVisorの話を伺いました。

出演者: ぬるぽへ (@nullpo_head)、Rui Ueyama (@rui314)

https://turingcomplete.fm/22

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • NoahはLinux互換環境を提供する薄いVM環境 (1:38)
  • NoahでもgVisorでもないサンドボックス環境の例 (2:40)
  • Noahをサンドボックスにするアイデアはあった (4:51)
  • gVisorはGoogleのクラウドで数年間使われている実績のあるもの (5:37)
  • gVisorがlldでリンクできなかった問題 (6:36)
  • -mcmodel={medium,large} (7:05)
  • gVisorがうっかりlibcをリンクしていた (9:24)
  • gVisorはNoahに似ている (11:53)
  • gVisorは複数プロセスを持つことができる (12:55)
  • gVisorはLinuxカーネルをGoで実装したもの (15:16)
  • gVisorはTCP/IPプロトコルスタックを自前で実装 (19:54)
  • TCP/IPはなぜカーネルに実装されているのか (26:52)
  • Go Genericsパッケージ (28:28)
  • C11の型でディスパッチするマクロ (30:02)
  • C言語の正しいgoto文の使い方 (32:12)
  • C言語にテンプレートを入れてほしい (34:15)
  • コンテナはサンドボックスなのか (37:34)
  • 起動の速いVMの研究 (40:32)
  • プロセスイメージのダンプ・アンダンプをgVisor/Noahでできないか (41:54)
  • ダンプ・アンダンプはLispの伝統的テクニック (45:45)
  • gVisorはptraceも実装 (51:51)
  • VDSO (53:58)
  • ソフトウェアでVMを実装するほうがハードウェアより速いことがよくある (56:56)
  • Intel EPT (nested pages)は性能上のメリットがある (1:00:42)
  • Shadow page table (1:02:55)
  • スタンフォードのコンピュータサイエンスの古典の論文を読む授業 (1:07:10)
  • IBM System/360とパーソナルコンピュータ (1:09:43)
  • NFS v1の論文 (1:13:23)
  • 因果律を満たす限り非同期に書き込む同期ファイルシステムの研究 (1:14:57)
  • 投機的ファイル読み込みとプロセス状態のロールバックを行うカーネルの研究 (1:21:21)
  • Ken Thompsonがコンパイラに埋め込んだハック (1:26:09)
  • ビルド環境では再現可能性が重要 (1:32:54)
  • エンディング (1:35:54)
21. 東大CPU実験でRISC-Vプロセッサを自作した話 (高橋祐花)
88 perc 21. rész Rui Ueyama
東大の授業ではCPUやコンパイラを作ってレイトレイサを動かすという授業があります。高橋さんのチームはRISC-Vプロセッサを実装して汎用OSを動かそうとしました。その話を伺いました。

出演者: 高橋祐花 (@00_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/21

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • CPU実験のコア係とコンパイラ係 (1:46)
  • CPU実験と商業的なプロセッサとの比較 (6:43)
  • CPUシミュレータ作成係 (9:29)
  • コアのデバグの辛さ (10:58)
  • Intel 4004(Intel最初のCPU)の設計の話 (13:08)
  • チップアート(シリコンの上の微小な落書き) (14:20)
  • 各社のCPUID命令 (15:33)
  • コア係をするかコンパイラ係をするか (17:43)
  • 自作CPUにLinuxを移植したかったが頓挫 (19:55)
  • 1日で代替の自作OSを作成 (21:01)
  • 自作OSはマルチタスクもサポート (27:11)
  • ユーザスレッドとカーネルスレッド (28:16)
  • 自作CPU作成に必要な機材 (31:41)
  • ミニマムなCPUを作って最小限の命令を次第に足していく (34:21)
  • 自作CPUではDRAMは使っていない (40:23)
  • SRAMとDRAMの解説 (41:24)
  • 浮動小数点数の演算はIPコアを使ってよいルール (43:24)
  • 浮動小数点数の丸めモード (45:48)
  • IOはUARTでシリアル通信をサポート (48:20)
  • UARTはデバグが辛い (49:33)
  • 暗中模索になりがちな低レイヤのデバグの話 (50:54)
  • 命令セットにはRISC-Vを選択 (54:09)
  • Linuxが動くCPUを作るのは大変 (55:44)
  • ELFフォーマットのカーネルをロードするのも面倒 (57:56)
  • MMUを実装する必要性 (1:00:19)
  • 1stコアはハーバードアーキテクチャ (1:01:56)
  • MMUの解説 (1:04:05)
  • 残り5日でOSを実装 (1:05:52)
  • タイマ割り込みはクロックを数えて実現 (1:06:54)
  • 自作CPUをメインで作った3人は公立高校出身 (1:08:56)
  • RISC-Vなのでgccの移植は不要 (1:14:04)
  • CERNの仕事を学業と比べると (1:16:17)
  • 牧場系スマホゲームとスーパーエンジニア (1:18:49)
  • ドラクエの乱数調整でのリアルタイムアタック (1:21:21)
  • 学祭でのドラクエのリアルタイムアタック (1:25:20)
20. Nintendo Switchのハッキングとコンピュータセキュリティ (るくす)
79 perc 20. rész Rui Ueyama
るくすくんと一緒に、デバグ例外を使ってx86プロセッサ上のOSのセキュリティホールをつく手法や、Nintendo Switchのハッキング、ゲーム機のセキュリティなどについて話をしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/20

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • るくす君がカーネギーメロン大学に客員研究員として1年間行きます (1:30)
  • POP SSデバグ例外を使った脆弱性 (10:47)
  • セグメントレジスタを変更する命令に対するデバグ割り込みだけは特別扱いになるというCPUのマイナーな仕様を誰もよく理解していなかった (19:17)
  • OpenBSDの強いセキュリティ (25:10)
  • 低レイヤのマイナーな仕様の不理解を突く脆弱性はまだまだあるはず (29:52)
  • Nintendo Switchのハッキングやエミュレータの作成 (36:47)
  • Switchで任意コードが最高権限で実行できるファームウェアのバグが最近見つかった (37:49)
  • USBからのデータを正しく検証していないという、SwitchのブートROMのバグ (42:00)
  • スーパーファミコンの「セキュア」チップ (47:33)
  • スーパーマリオの最短時間クリア記録 (54:50)
  • 高品質なアスキーアートを生成する論文 (59:43)
  • AlphaGoの次はスタークラフトで人間に勝つのが目標 (1:06:58)
  • John CarmackとSteve Jobsの思い出 (1:11:11)
  • マスターとPhDとその後 (1:13:48)
19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
102 perc 19. rész Rui Ueyama
川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。

出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314)

https://turingcomplete.fm/19

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • Schemeのストレージモデルではすべてが無限エクステント (1:06)
  • 関数呼び出しのモデルとアクティベーションレコードのアロケーション (4:34)
  • SPARCのレジスタウィンドウ (9:20)
  • Alphaの速さの秘密 (12:41)
  • 大コケしたIntel Itaniumプロセッサ (14:11)
  • GoのGC停止時間の劇的な改善 (16:55)
  • ページテーブルのダーティービットをユーザプログラムから使う話 (20:14)
  • Goの分割スタック機能 (23:07)
  • クロージャを作ったときに使ってない変数を不必要に掴んでしまう問題 (25:54)
  • 32ビットハッシュ値を大量に作ると32ビットマシンで偽ポインタがたくさんできてしまう問題 (27:44)
  • 決してreturnしないCプログラムにコンパイルするScheme処理系 (33:00)
  • タグ付きポインタ (41:23)
  • C言語の仕様を満たすためのBoehm GCの機能と、それを使いたくない理由 (46:10)
  • 64ビット浮動小数点数をなるべくヒープにアロケートせずに扱いたい (50:30)
  • 16ビット"Brain"浮動小数点フォーマット (55:27)
  • Gaucheの正規表現エンジン (56:44)
  • Scheme→C→Schemeという呼び出しをした先で継続を取得すると限定継続になる (1:00:19)
  • Schemeスタックからヒープへのコピー (1:04:44)
  • 末尾呼び出しはスタックを消費しないように手続きを呼び出す (1:05:50)
  • Chez Schemeでは多値ありと多値なしの2つの継続を渡す (1:10:29)
  • 最近のCPUの分岐予測の賢さとMeltdown & Spectre (1:13:16)
  • Gaucheを単純にJIT化してもCPUの分岐予測が賢いのでそれだけでは速くならない (1:20:08)
  • 社会的や経済的理由で速くなる言語 (1:25:05)
  • リテラルで書けるオブジェクト (1:27:29)
  • 正規表現リテラル (1:28:32)
  • マップのリテラル (1:30:55)
  • Gaucheのハッシュテーブルとハッシュ衝突攻撃 (1:36:41)
  • TCFMの難易度 (1:39:24)

追記

  • CPythonはリファレンスカウンタを使っていますが、Pythonの言語仕様自体では必須とはされていません。
18. セキュキャン、LLVMプロジェクト、コンピュータサイエンスの書籍 (hikalium)
83 perc 18. rész Rui Ueyama
hikaliumのセキュキャン体験、コンピュータセキュリティ、LLVMプロジェクト、コンピュータサイエンスのおすすめ書籍などについて話をしました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/18

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • セキュキャン2018ではセルフホストできるCコンパイラの作成を目指す (1:10)
  • IRC、Slack、シンギュラリティ (7:15)
  • hikaliumのセキュキャン2016体験話 (9:24)
  • イーサネット(10BASE-T)の物理的なワイヤフォーマット (10:37)
  • 謎のボードを気合いで解析するお題 (21:31)
  • USBメモリを使ってアメリカとイスラエルがイランの核計画を妨害した話 (25:07)
  • セキュアなオリジナルCPUの開発 (32:30)
  • セキュキャンの講師はどう選んでいるのか (40:59)
  • コンパイラ業界の景気の良さ (43:28)
  • hikalium、Cコンパイラを書く (45:04)
  • 演算子優先順位文法 (47:55)
  • LLVMプロジェクト (52:30)
  • 本のプレゼント企画 (1:11:21)

追記

  • イーサネットフレームはCRC32をチェックサムに使っています。
17. Gauche Schemeの基本デザインの選択理由、オブジェクトデータベース、浮動小数点数の落とし穴 (川合史朗)
87 perc 17. rész Rui Ueyama
プログラミング言語を作る時には、途中で変えることが極めて難しいデザイン選択を最初に行わないといけないことがあります。今回は川合史朗さんがGaucheを設計した時に行ったデザイン選択の判断について話を伺いました。また、浮動小数点数のトリッキーさについても話をしています。

出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314)

https://turingcomplete.fm/17

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • セキュキャン参加者募集中 (0:41)
  • 俳優のオーディションとその心構え (2:43)
  • 川合史朗さんが出演している映画がサンフランシスコで上映されます (5:16)
  • 前回の訂正 (7:40)
  • Gaucheを作った経緯 (8:57)
  • STkのオブジェクトシステム (12:22)
  • CLOS(Common Lispのオブジェクトシステム)ではインスタンスのクラスを動的に変更できる (14:35)
  • CLOSを使ってオブジェクトデータベースを作った話 (18:39)
  • 三つ組を使ったグラフデータベースを作った話 (24:38)
  • 構文木インタープリタではなくVMを選んだ理由は、継続 (29:24)
  • プログラミングにおける概念としての「継続」 (30:39)
  • 文字列の内部表現はどうするか (36:46)
  • マルチスレッドの対応 (37:47)
  • GCのAPIはどうするか(GaucheはBoehm GCを使って保守的GC) (39:36)
  • 保守的GCとは何か (43:13)
  • 自分ではGCを書かなかった理由 (45:03)
  • Precise GCにしなかった理由はC言語との親和性 (46:45)
  • マルチスレッドとGCとUnixのシグナル (47:50)
  • GoやErlangの並行処理モデルを導入していない理由 (51:17)
  • Gauche版のjava.util.concurrent (52:31)
  • R5RSの範囲を実装するのは1ヶ月以内でできた (55:16)
  • 浮動小数点数を10進で書き出して読み出した時、同じ数に戻ることを保証するには (57:37)
  • Schemeは分数を正確な分数のままで扱うことができる (1:04:09)
  • 16進浮動小数点表現 (1:07:17)
  • 浮動小数点数の1.15を丸めた時、1.1になるべきか、1.2になるべきか (1:08:17)
  • 正確数のsqrtは正確数にしたい (1:12:12)
  • 浮動小数点数を安易に10倍すると精度が失われる (1:16:07)
  • 浮動小数点数はそれ自体で整合は取れているが、実数とは異なる数の体系 (1:16:49)
  • x87の80ビット浮動小数点数フォーマットの落とし穴が原因で、PHPが特定の数を読み込むと無限ループに陥るバグ (1:17:43)
  • JavaやGaucheが読み込むとハングする特定の浮動小数点数があった (1:19:38)
  • 浮動小数点数の精度は大は小を兼ねるわけではない (1:23:25)
  • 言語処理系はコーナーケースをすべて面倒を見なければいけないのが面白い (1:25:42)
16. プログラムの静的検証、システムズプログラミングの論文 (うどん)
89 perc 16. rész Rui Ueyama
うどんくんが研究していたプログラム検証の話や、システムズプログラミングの古典的な論文についての話をしました。

出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/16

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • Patreon (1:33)
  • Wikipediaに寄付するとどうなるか (2:52)
  • セキュキャン2018の講師やります (7:57)
  • プログラム検証とは何か (13:09)
  • Rustは型システムによってコンパイル時に安全性を検証できる (18:38)
  • 線形論理と線形型 (22:16)
  • 定理証明支援系Coq (26:29)
  • 関数型プログラミング言語に対するモデル検査 (39:25)
  • プログラミング言語の研究が応用されるまでには時間がかかる (44:04)
  • Misreading Chat (48:17)
  • Stanford CS240 (49:38)
  • 「悪いほうが良い」エッセイ (52:05)
  • Eraserによる動的エラー検出 (56:41)
  • 割り込みハンドラが忙しすぎてマシンがハングアップする問題を解決する論文 (1:03:23)
  • VMware ESXのメモリ管理の論文 (1:09:23)
  • MicrosoftのMidori OS (1:20:03)
  • TCFMの話題のバリエーションについて (1:21:29)
  • ガラケーを自動操作するデバイスを自作 (1:23:28)
15. CERNでのソフトウェアエンジニアリング (高橋祐花)
78 perc 15. rész Rui Ueyama
CERNでソフトウェアエンジニアとして仕事をしている高橋祐花さんと、CERNでの話やスイスでの暮らし、外国語、フェミニズムなどについて話をしました。

出演者: 高橋祐花 (@00_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/15

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • CERNはWWWが発明された場所 (1:25)
  • Patreonを使ってサポーター制度を導入 (2:50)
  • CERNの粒子加速器が生成するペタバイトレベルのデータを処理している (8:27)
  • TensorFlowを使って太陽系外の惑星を発見する話 (14:39)
  • C++で大量のデータを処理 (17:43)
  • 物理学者でも使えるように考慮されたインタラクティブなC++ (24:17)
  • C++ modules (29:42)
  • コンパイル時間を短くしたい (32:13)
  • スイスでの生活とCERNの仕事環境 (36:40)
  • 大量のデータの話 (40:07)
  • CERNの(自然)言語 (43:46)
  • 言語獲得の臨界期説 (48:46)
  • プログラミングを始めたのは3年前 (52:01)
  • 物理学者の書くコードはキレイではない? (57:11)
  • 国際女性デー (1:00:28)
  • 東大の女子率低すぎ問題 (1:03:34)
  • 出世して少女に夢を与えられる人になりたい (1:07:39)
  • ファンを増やす話 (1:10:24)
  • 年齢性別その他の属性気にしすぎ問題 (1:13:55)
14. 少年時代にPCを(本当の意味で)自作した話 (川合史朗)
84 perc 14. rész Rui Ueyama
Gauche Schemeの作者の川合史朗さんと、Z80 CPUを使ったPCをホストコンピュータなしに自作した話や、Schemeの話などをしました。

出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314)

https://turingcomplete.fm/14

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • ハワイ在住で副業は俳優 (0:00)
  • Gaucheは仕事でも使っている (2:21)
  • Common LispはGoogle(元ITA)でも使っている (3:11)
  • Noahでプロセスのundumpができないだろうか? (5:00)
  • Clojureの起動はJVMなので速くない (6:02)
  • Lispコンパイラは改善の余地あり (8:47)
  • Webのスクリプト言語はJavaScriptではなくSchemeが採用されるはずだった (10:09)
  • ShiroさんはGCCのコードから多くを学んだ (12:12)
  • 並列Cコンパイラのプロジェクト (13:45)
  • Gauche Schemeはとてもきれいなソースコード (14:55)
  • 中学生のころに電子工作としてZ80の自作PCを作り始める (17:55)
  • 本物のPCは高すぎて買ってもらえなかったので電気屋の店頭でコードを打ち込んでいた (20:04)
  • 親にこれからコンピュータは絶対必要になるとアピールするも失敗 (21:13)
  • テレビを修理しようとする話 (22:58)
  • トラ技で「Z80を使ってマイコンを組み立てよう」といった記事などをみて自作を始める (25:17)
  • 入出力はスライドスイッチとLED (26:13)
  • バスを直接スイッチで操作してメモリに手で書き込んでいく (28:29)
  • プログラムを書き込むためのプログラムを作る (29:58)
  • 7セグLEDと16進キーボードを作って接続 (31:20)
  • ROMライターを作ってROMから起動できるように (33:42)
  • 殺虫灯でEPROMを消去 (34:19)
  • フルキーボードとテレビを接続できるように (36:41)
  • フォントを作ってキャラクタROMを作り画面に文字を出す (37:35)
  • テトリスを作る (40:08)
  • テトリス作者とその後一緒に仕事をすることになった (40:59)
  • フロッピードライブを動かす (43:59)
  • ファイルシステムがないのでノートにファイルの保存位置をメモっておく (46:53)
  • CP/Mを動かす (47:33)
  • アセンブラを入手 (49:42)
  • 大学でチップを作った話 (50:52)
  • クロックは最初は2MHz (54:26)
  • Z80のノウハウを使ってSillicon Graphicsの巨大なマシンにPS2のゲームコントローラをつなぐハードを作成 (55:14)
  • プログラミング言語APL (56:21)
  • Turbo Pascalを入手 (1:00:00)
  • オーブンに入れて遮蔽 (1:01:50)
  • フロッピーディスクは信頼性が低かった (1:03:57)
  • 大学時代に386BSDを(普通のPCに)インストール (1:05:01)
  • TCP/IP以外のネットワークプロトコルも普通にあった (1:09:19)
  • ハードウェア共有分散メモリとそのためのコンパイラとNoahとの共通点 (1:10:29)
  • コンピュータは極端に進歩しているところとあまり変わっていないところの差が激しい (1:15:00)
  • PS2のコプロセッサでアセンブラプログラミング (1:16:31)
  • SIGGRAPHのデモでファイナルファタジーの映画の一場面をリアルタイムレンダリング (1:18:26)
  • 意外なところで自分のやっていることが一周回って役に立つことがある (1:21:12)

追記

  • 10BASE-2と10BASE-5の説明が逆になっています。
  • 後半でPS2のVUとPS3のSPEを混同して話しています。
13. 自作アセンブラ、リンカの最適化、トリッキーなビット操作の楽しさ、外資系IT企業のコーディング面接対策 (hikalium)
88 perc 13. rész Rui Ueyama
hikaliumの自作アセンブラや自作言語、データ構造やトリッキーなビット操作を使ったアルゴリズム、リンカの最適化などについて話をしました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/13

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • asmium — hikalium自作アセンブラ (1:20)
  • Mach-Oオブジェクトファイルを自作アセンブラから出力するには (6:27)
  • AppleがCPUをIntelからスイッチするという噂 (8:21)
  • ラベルの後方参照がオブジェクトファイル内で解決されていない? (11:55)
  • RISCプロセッサなら32ビットオフセットでジャンプできないのが普通 (16:30)
  • リンカに手を入れてAndroid版Chromeのバイナリサイズを涙ぐましく削減する話 (20:42)
  • Unixの共有ライブラリのシンボル解決のセマンティクス (24:01)
  • ブルームフィルタというデータ構造 (27:22)
  • オンディスクのハッシュテーブルを一個だけ作る (32:20)
  • 文字列の末尾部分だけをマージするサイズ最適化 (33:40)
  • x86機械語のエンコーディングが難しい (36:53)
  • (アセンブリ言語ではなく)アセンブラそのものを書けないと負け? (40:33)
  • Goのアセンブラ (41:59)
  • GoはCライブラリを使わずシステムコールを自前で呼び出している (44:10)
  • GoはほとんどライブラリもGo自体で書かれている (46:25)
  • GoのWaitGroupのバグとマルチスレッドプログラミングの難しさ (49:14)
  • ビット操作の楽しさ (54:11)
  • 分岐なしで絶対値を求める (56:11)
  • 掛け算と割り算は2ワードの結果を出力するのにC言語ではそれにアクセスできない (1:01:08)
  • サイボウズ・ラボユース (1:05:21)
  • nv — hikalium自作言語 (1:08:46)
  • Intelも使っているXbyak(カイビャク) (1:14:46)
  • インターンコンバージョン (1:14:54)
  • コーディング面接は対策して当たるべき (1:17:32)
12. Unicode、絵文字、Androidのテキスト関連のハンドリング、無数の文字トリビア (のな)
78 perc 12. rész Rui Ueyama
Androidのテキスト処理を担当しているのなさんと、UnicodeやUnicode絵文字、テキスト処理の複雑さ、文字トリビアなどについて話をしました。

出演者: のな (@ttuusskk)、Rui Ueyama (@rui314)

https://turingcomplete.fm/12

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 自分の読めない言語のテキスト処理は大変 (1:28)
  • MMDDYYYYとDDMMYYYYの違いによる国際化バグ (3:07)
  • Left-to-right言語とright-to-left言語 (5:23)
  • アラビア語と英語のハイフネーション (6:15)
  • 日本語の禁則処理 (7:19)
  • Android Oで絵文字の表示が最大3倍速くなった (9:12)
  • 結合絵文字の規格が決まっていない状態で実装を書くのは大変 (12:23)
  • 国旗の絵文字の仕組みと仕様バグ (14:49)
  • ハンバーガー絵文字では肉の上にチーズが乗っているべきか (18:18)
  • 絵文字はガラケー起源 (20:30)
  • モヤイ像の絵文字はあるけどモアイ像の絵文字はない (23:42)
  • ガラケーに存在したけどUnicodeに収録されなかった稀な絵文字 (24:52)
  • 新元号の合成文字 (27:28)
  • ひらがなやカタカナはもっと若いコードポイントに割り当ててくれればよかった (30:49)
  • UTF-8は新世界のASCII (33:40)
  • 英語はフォントの機能を比較的ふんだんに使う言語 (38:47)
  • 汎用的な数式プロセッサをフォントだけで作ることができるかも? (40:40)
  • Unicode規格書の紙バージョン (42:42)
  • JISの幽霊文字 (43:41)
  • 将棋の相手の駒の記号(上下逆の漢字)をUnicodeに追加したい (47:01)
  • 100万文字は十分か (50:32)
  • Unicodeの文字名称の規格バグ (52:12)
  • Swiftは文字がgrapheme単位 (53:47)
  • Goだとコードポイント単位 (55:21)
  • ミャンマーのZawgyiフォントがUnicodeの既存の文字を勝手に使っている (57:50)
  • 東アジアのコンピュータ用文字セットの歴史的経緯 (1:00:36)
  • ハイフネーションは多種多様 (1:03:00)
  • 最近の多言語処理はコンピュータの金字塔の一つ (1:05:38)
  • Android Oでは明朝体が標準で入るかもしれない (1:09:21)
  • サブピクセルレンダリング (1:15:20)

追記

  • JIS委員会が何の手がかりも得られなかった文字は「妛」ではなく「彁」です。
11. C++ constexprによるコンパイル時Cコンパイラ、テンプレートとジェネリクス、コンピュータサイエンスの理論と実践 (うどん)
66 perc 11. rész Rui Ueyama
うどんくんがELVMを使ってCコンパイラをC++14 constexprに移植した件や、テンプレートとジェネリクス、プログラミングの型の理論などについて話をしました。

出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/11

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 数学ガールの結城先生から返事がいただけた件 (0:16)
  • ELVMとは何か (4:26)
  • C++テンプレート省メモリメタプログラミング (7:49)
  • テンプレートの使い所とJavaのジェネリクス (12:42)
  • Goにはジェネリクスもテンプレートもない (13:44)
  • C++11とC++14のconstexpr (17:19)
  • C++17の多重代入構文 (22:25)
  • Accidentally Turing-Complete (24:11)
  • Javaのジェネリクスはチューリング完全 (24:58)
  • Javaの型システムはunsound (25:54)
  • Featherweight Java (35:15)
  • C++コンパイル時コンパイラに対する大きな反響 (37:35)
  • ELVMのバックエンドが書きやすい言語と書きにくい言語 (38:50)
  • 難解言語として作られたMelborne (42:58)
  • Rubyのfizzbuzzコードゴルフと数学 (47:38)
  • SATySFiはどうなんですか (50:44)
  • 理論的にもよく実際にメリットがある言語 (54:55)
  • 静的型と動的型 (55:48)
  • lldのメモリを解放しないデザイン (1:00:45)
  • FacebookとOCaml (1:02:48)
10. Cコンパイラをスクラッチから作成、東大CPU実験、型とプログラミング (うどん)
78 perc 10. rész Rui Ueyama
OSの移植に使えるレベルのCコンパイラを自作CPU向けにスクラッチから書いた話について話を伺いました。

出演者: うどん (@kw_udon_)、Rui Ueyama (@rui314)

https://turingcomplete.fm/10

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • プログラミングは大学生から (2:44)
  • プログラミングと理論の楽しさ (3:50)
  • プログラミングの多様性と巨大ピタゴラ装置的プログラミング (13:45)
  • CPU実験のFPU係 (16:36)
  • Cコンパイラのパーザを土日に黙って作ってきてxv6移植チームに混ぜてもらう (26:52)
  • Cの文法の問題点 (31:05)
  • パーザを成長させてCコンパイラを作る (34:22)
  • Udon C Compiler (40:49)
  • typedefは特に文法的に曲者 (43:01)
  • xv6のユーザランドもuccですべてコンパイル (47:45)
  • OCamlでなければ実験期間内にCコンパイラはたぶん完成しなかった (50:18)
  • Erlangの言語のパターンマッチの問題点 (53:23)
  • xv6をコンパイルする前にPicrin Schemeを移植してテスト (56:20)
  • reallocのバグにハマる (58:00)
  • MinCamlで書かれているレイトレプログラムは大昔には元々BASICで書かれていた (1:03:38)
  • レイトレでレンダリングされるあの画像は映画のTRON (1:04:37)
  • 惑星Solaris (1:06:16)
  • 東大CPUはレイトレの速度だけで成績が決まるわけではない (1:09:14)
  • Fabrice Bellard伝説 (1:14:53)
9. 東大CPU実験で自作CPUにUnixを移植した話 (ぬるぽへ)
88 perc 9. rész Rui Ueyama
東大CPU実験でUnixが動かせるCPUを自作してxv6 Unixを移植した件について話を伺いました。

出演者: ぬるぽへ (@nullpo_head)、Rui Ueyama (@rui314)

https://turingcomplete.fm/9

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 日本語プログラミング言語 (1:16)
  • 品川研 (2:41)
  • 東大CPU実験の紹介 (4:38)
  • 使っているハードウェアは結構よい (14:30)
  • 情報理論、可逆計算、情報と熱 (16:20)
  • CPU実験道場破り (18:55)
  • 汎用CPUを作る必要はあるのか? (19:55)
  • xv6は昔のUnix v6のテイストをそのままにx86に作り直したもの (21:15)
  • Russ Cox伝説 (28:21)
  • Robert Morrisはインターネットを落としたことがある (31:20)
  • MySpace作者は家をSWATに襲撃された (32:33)
  • DOOM作者のJohn Carmackはコンピュータを盗んで捕まった (33:16)
  • ぬるぽへさんの中学時代のいたずら (34:38)
  • xv6をMIPSに移植 (38:35)
  • Cコンパイラをスクラッチからいきなり作成 (48:16)
  • ELVM/8ccとチューリング完全 (50:40)
  • 自作CPU用のツールチェイン (56:50)
  • 汎用CPUを作るのは大変 (1:00:40)
  • クロス開発とセルフ開発のブートストラップ (1:05:07)
  • xv6のファイルサイズ制限の回避 (1:08:30)
  • Cプリプロセッサを作るのは若干面倒 (1:11:20)
  • 東大CPU実験を他の大学に移植するには? (1:17:42)
  • 就活とプログラミングコンテスト (1:22:00)
8. 30日OS自作入門本を読んでOS自作、コンピュータサイエンスと大学、インターンシップ (hikalium)
81 perc 8. rész Rui Ueyama
「30日でできる!OS自作入門」を小学5年生で手にして以来行ってきた低レイヤプログラミングについて話を伺いました。

出演者: hikalium (@hikalium)、Rui Ueyama (@rui314)

https://turingcomplete.fm/8

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • 小学5年生、OS自作入門本に入門する (0:50)
  • アセンブリプログラミング (7:40)
  • OSをフロッピーから起動 (9:45)
  • 32ビットモードからBIOSを呼ぶために仮想86モードを使う (1) (13:25)
  • 紙のIntelソフトウェアデベロッパマニュアル (17:55)
  • 32ビットモードからBIOSを呼ぶために仮想86モードを使う (2) (20:12)
  • CPUの機能でブレイクポイントをセットしてOSをデバグ (24:56)
  • ページングとセグメンテーション (28:07)
  • Virtual PCのバグを発見 (31:30)
  • SourceForgeでマルウェアをインストールしてしまう (38:04)
  • 自作OSを起動するとなにがあるのか (41:52)
  • 大学で自分強すぎ問題 (44:58)
  • RISC-Vプロセッサを使うのはまだ辛い (49:20)
  • 大学のマイコン実験 (55:10)
  • 海外の大学院にいくべきか問題 (1:00:38)
  • Chromeのインターン (1:05:56)
7. macOSやWindowsでLinuxバイナリを動かすプログラムを作った話 (ぬるぽへ)
96 perc 7. rész Rui Ueyama
仮想マシン上でLinuxを動かすのではなく、システムコールをトラップしてトランスレートすることによりLinuxアプリを他のOSで動かすことのできるNoahについて、ぬるぽへさんから話を伺いました。

出演者: ぬるぽへ (@nullpo_head)、Rui Ueyama (@rui314)

https://turingcomplete.fm/7

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • イントロ (0:00)
  • TCFMの内容は半分の人が1/4しかわかっていないらしい (1:40)
  • Noahの概要 (3:20)
  • Windows版のNoahとforkの実装など (12:00)
  • Microsoftのクラウドビジネス (25:30)
  • Noahの開発期間 (29:09)
  • LinuxのGUIアプリをX経由でmacOSで動かす (37:05)
  • 端末のシミュレーションとカーネルのサポート (39:38)
  • Fuchsia OS (44:30)
  • GNUユーティリティの書き換え? (50:10)
  • エンディアンとは何か (54:00)
  • macOSアプリをLinuxで動かすmaloader (56:25)
  • Noah経由のシステムコールのオーバーヘッドの小ささ (59:50)
  • オープンソースプロジェクトを宣伝する (1:02:13)
  • lldのソースコードを共有しないデザインについて (1:04:58)
  • Linux KVM、Apple Hypervisor Framework、Intel HAXM (1:10:36)
  • DockerとDocker on macOS/Windowsは中身が全く違う (1:16:12)
  • VM作成のドキュメンテーションのなさについて (1:19:00)
  • C++初心者、Boostを使って共有メモリ上のコンテナを使う (1:24:33)
  • 東大CPU実験と強さのインフレ (1:33:07)
6. LuaJIT、Lisp、Forth、PostScript、メタオブジェクトプロトコル、勉強に良いソースコード (Miura Hideki)
59 perc 6. rész Rui Ueyama
Miuraさんと一緒にいろいろなスクリプト言語の実装や言語そのものなどについて話をしました。

出演者: Miura Hideki (@miura1729)、Rui Ueyama (@rui314)

https://turingcomplete.fm/6

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • LuaとLuaJIT (0:00)
  • 例外のABI (8:25)
  • SQLiteとライセンス (12:45)
  • ファイルシステムとデータベース (16:23)
  • XLISPで言語の書き方を学んだ (19:15)
  • C++の後方互換性とトライグラフ (21:55)
  • Common Lispのメタオブジェクトプロトコル (26:18)
  • Gauche Schemeのコンパイラのブートストラップ (35:40)
  • 川合史郎さんの自作オーブンPC (40:02)
  • ForthとOh! FM (43:00)
  • Sun SPARCStation (50:27)
  • PostScriptとHTML Canvas (53:16)
  • SVGとXML (56:58)
5. 動的型付け言語のJIT、Rubyの最適化しにくい文法、Crystal (Miura Hideki)
64 perc 5. rész Rui Ueyama
mrubyのJITなどを書いているMiuraさんと一緒に、言語処理系の実装や最適化、Rubyの文法の最適化しづらい点などについて話をしました。

出演者: Miura Hideki (@miura1729)、Rui Ueyama (@rui314)

https://turingcomplete.fm/5

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • 本業は水道屋 (0:00)
  • JITにするだけでは速くはならない (5:00)
  • evalと最適化 (10:30)
  • オーバーフローしたfixnumが自動的にbignumやfloatになる仕様について (16:35)
  • mrubyが使われている場所 (24:10)
  • 拡張ライブラリの書きやすさ (31:25)
  • CライブラリからRubyで書かれたコールバックを呼び出す状況の辛さ (33:30)
  • Crystal (38:10)
  • 型推論とプログラムの書きやすさ (40:25)
  • コンパイラにわからない形でevalを使う方法 (50:25)
  • evalの使いどころとread (55:25)
  • callcc (59:47)
4. カーネルデバッガ、C++ライブラリの移植、ネットワークプロトコルと大規模な実験 (るくす)
76 perc 4. rész Rui Ueyama
るくすくんの作ったカーネルデバッガやC++ライブラリの移植、C++などの話をしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/4

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • コンパイラやエミュレータを作るためのオススメの本などはありますか? (0:00)
  • るくすくんが未踏で作ったカーネルデバッガ (8:46)
  • C++標準ライブラリを新しい環境に移植する話 (39:35)
  • SPDYやQUIC (58:14)
3. カーネギーメロン大学の客員研究員ポジション、様々なCPUのバグ、オープンソースプロジェクトから読み取れる各社の意向 (るくす)
107 perc 3. rész Rui Ueyama
るくすくんと一緒に低レベルプログラミングやオープンソースの話をしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/3

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • カーネギーメロン大学の客員研究員ポジション通りました (0:00)
  • PhD出願の方法 (5:30)
  • 脆弱性の自動発見手法の研究 (13:35)
  • turingcomplete.fmウェブサイトの改善とOpusオーディオエンコーディング (20:55)
  • CPUの脆弱性 (Spector & Meltdown)の解説 (28:50)
  • その他のCPUのバグ (51:15)
  • オープンソースプロジェクトから読み取れる会社の意向 (1:03:55)
  • Facebookのコンパイラディナー (1:11:27)
  • 弾幕ゲーム言語とピンボール言語 (1:18:54)
  • オールTTLの手作りCPU (1:30:15)
  • 技術力+α (1:35:12)
  • 視聴者からのお便り待ってます (1:46:45)
2. Nintendo Switchのエミュレータの開発、CPUの投機的実行のセキュリティホール、CMUとスタンフォード (るくす)
106 perc 2. rész Rui Ueyama
るくすくんと一緒に、るくすくんが開発しているNintend Switchのエミュレータの話やセキュリティの話などをしました。

出演者: るくす (@RKX1209)、Rui Ueyama (@rui314)

https://turingcomplete.fm/2

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • Nintendo Switchのエミュレータ開発
  • CPUの脆弱性 (Spector & Meltdown)
  • カーネギーメロン大学の客員研究員ポジション
  • スタンフォード大学の宿題
1. コードゴルフ、ゴルフ場、セキュリティコンテスト(DEFCON CTF) (浜地 慎一郎)
67 perc 1. rész Rui Ueyama
浜地さんを迎えてコードゴルフ、ゴルフ場のセキュリティ、先日ラスベガスで行われたセキュリティコンテスト(DEFCON CTF)の話を伺いました。

出演者: 浜地 慎一郎 (@shinh)、Rui Ueyama (@rui314)

https://turingcomplete.fm/1

ハッシュタグは#tcfmです。

TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。

  • ゲスト紹介 (0:00)
  • コードゴルフ (2:31)
  • ゴルフ場のセキュリティ (15:45)
  • DEFCON CTF (29:01)
Sebesség:
Érd el és vezéreld távolról a helyi hálózaton elérhető IntoRadio Cast képes eszközöeidet!
Böngésző-kiegészítő telepítése szükséges!
Chrome web store