Skip to content

Instantly share code, notes, and snippets.

View y-yoshinoya's full-sized avatar

Yuki Yoshinoya y-yoshinoya

View GitHub Profile
@nashirox
nashirox / rails-validates.rb
Last active January 29, 2025 11:07
Rubyのバリデーション用正規表現集
#
# 数字
#
# 全て数値(全角)
/\A[0-9]+\z/
# 全て数値(半角)
/\A[0-9]+\z/

Reactの難しさを分解しよう を読んで。

n番煎じの話題。今更な話題、それはわかってる。自分の周りの環境が変わったので、書き下すことで、再度整理したい。

抽象

サーバーが生成するHTMLが一つの粘土の像だとしたら、jQueryがナイフで、Reactは設計図を持った3Dプリンタ。

鼻が大きすぎるから削るとか、ちょっとしたことをやるのが jQuery の主な用途。しかしあるいは、職人的に、大きな塑像から、一つの像を切り出すこともできる。

A fork() in the road を読んで

HotOS 2019 で Microsoft Research からの論文である.Unixの代表的なシステムコールであるfork()についての問題点を挙げている.

概要

fork()は最も基本的なシステムコールといっても良く,新しいプロセスを作るときに使われる.今回の論文の主張はfork()は1970年代のマシンではハックと呼べるものだったが,現代では過去の負債となっているというものでおり,カーネルから完全に取り除くべきであるというものである.ただし,ここでいうカーネルとはLinuxカーネルのことを直接指しているのではなく,著者の先行研究でのOSの実装のことを指している.

面白いのは,fork()は研究者にとっては研究を阻害するといったことや,教育者は歴史としては教えるべきだが最初に教わるべきプロセス作成の仕組みとしてはふさわしくないといった中々過激なことを言っているところである.

問題点

現代的なコンピュータシステムにおける問題点として次のようなことが挙げられている.

  • かつてはシンプルであったが,最早そうではない
  • 25もの特別なケースが親プロセスの状態を子プロセスにコピーするときに存在する.例えば,ファイルロック,タイマー,非同期IOやトレーシングなど.また,コピー後のメモリマッピングに関して,madvice()に与えるフラグも非常に多いものとなっている.