興趣使然的研究之旅
前言
計算機科学の分野は非常に広範であり、ここ数年、私はフロントエンド以外のさまざまな分野を探求するのが好きです。このシリーズでは、私が探求した中で面白いと思ったテーマや、今後探求したいテーマを共有したいと思います。
私はFirst Principle、すなわち本質からさまざまな物事を観察することが非常に好きです。特に、コンピュータのような人類文明の結晶であり、さまざまな抽象化の産物と結びついているものです。私が書くコードは主にブラウザで動作し、ブラウザはオペレーティングシステム上で動作するソフトウェアであり、オペレーティングシステムはCPUやさまざまなハードウェアの上で動作しています。私にとってこれは非常に魅力的であり、すべてのテーマを語ることはできませんが、探求時に面白いと感じた領域をいくつか共有したいと思います。
私たちはしばしば、技術が絶えず進歩すると思い込んでいますが、それは当然のことのように感じられます。しかし、すべての技術の背後には、当時彼らが直面していた問題を解決するために発展させた一人または無数の人々の努力があります。中には偶然の発見から生まれた技術もあります。
技術は自動的に良くなるわけではなく、誰かが手を汚し、難題に立ち向かう必要があります。影響力のある貢献をするためには必ずしも高い学歴や優れた知性が必要なわけではなく、誰もが技術の発展や改善に貢献する可能性を持っています。
「日常生活では三角関数や線形代数は使わないのに、なぜ数学を学ぶ必要があるのか?」という疑問を持つ人がよくいます。
この質問に対して、私は2つの比較的ロマンチックな回答があります。
現在の技術は、たとえ数学を学ばなくても生きていけるほど進歩しています。
もう一つの回答は、フェルマーの最終定理について考えていたときに、ハーディが言った言葉です:
私には実用的な数学理論がありませんが、数学の領域から離れても、世界を少し快適にすることはありません。しかし、それが何の意味があるのでしょうか?答えを追求するのは、ただ自分自身の欲望から来るものです。
私は他の事物に興味を持つことが容易であり、しばしば三日坊主になってしまいます。それはあまり良いことではないと感じていますが、そのおかげでここ数年、以前は全く考えもしなかった領域を探求することができました。この鉄人レースを通じて、それらを共有し、自分の理解を深めることができればと思います。
このシリーズの記事は、三十篇の互いに関連しない(しかし、どこかでつながっているような)エッセイとして捉えていただければ幸いです。もしそのテーマに精通している方がいれば、ぜひコメントで意見を共有してください。一緒に交流しましょう。
主題概覧
これらは私がこの30日間で執筆予定のテーマであり、状況に応じて増減する可能性があります。テーマはすべてIT関連であり、フロントエンドとバックエンド、広範な計算機科学のテーマ、数学、ハードウェア、低レベルプロトコルを含み、非常に多岐にわたっています。
関連記事
- 測定が目標になったとき:窓税から Pull Request 数まで 僕はかつて、小さなツールを書いて自分が四半期にどれだけ PR を出し、どれだけ review を残し、どれだけ ticket を解決したかを集計し、数字で上司に成果を示そうとした。上司はただ、評価は成果だけで決まるわけではないと言った。数年後になって僕はようやく理解した——測定が目標になった瞬間、それはもはや良い測定ではなくなるのだと。イギリスの窓税からハノイのネズミ懸賞金、そして今日の PR 数による開発者評価まで、仕組みはまったく同じである。
- 画像のストレージと変換を Cloudflare Images に任せる Web ページに画像を一枚置くのはフロントエンドで一番簡単なことだ。でもそれをちゃんとやる——リサイズし、各フォーマットを生成し、トラフィックにも耐える——となると、実はひとつの解決策まるごとになる。だから僕は結局、原画一枚だけ渡して全部 Cloudflare Images に任せた。
- Access Keyはもう使うな Access KeyはAWSで見落とされがちなセキュリティリスクだ。OIDCとIAM Roleを組み合わせれば、GitHub Actionsはsecretなしで安全にAWSリソースを操作できる
- データベースの主キー: AUTO_INCREMENT、UUID、UUIDv7 バックエンド開発では主キーをどうするかをよく決める必要がある。auto increment か UUID か、衝突はどうするか、UUIDv7 と created_at + index の性能差はどれくらいか。実際に 2000 万件のデータで検証し、設計判断までまとめる。