Paternity Leave: Month 2

Michael Lynch

育児休暇:2ヶ月目

原文は Michael Lynch により に公開されました。 このブログを購読する

一言まとめ

働かないでいるのは、思っていたより難しい。

ハイライト

  • 仕事をしないでいるのが、驚くほど難しいと感じている。
  • 睡眠は少しずつ改善してきた。
  • Nixを使って、スマートで再利用可能なファズテストのワークフローを作った。

目標の振り返り

毎月のはじめに、達成したいことを宣言している。その目標に対してどうだったかを振り返る。

家族との時間を楽しむ

  • 結果:妻と生まれたばかりの息子とたっぷり過ごし、友人や家族とも頻繁に会った。
  • 評価:A

しばらく働かなくても大丈夫

自分は四六時中働かなければならないタイプだとは思っていなかったが、休みを取るのが意外と難しいと感じている。

この3ヶ月で仕事がほとんど進んでいないのを見ると、「これが新しい日常になってしまったらどうしよう。月に数時間しか働けない状態で生計を立てていくことになるのか?」という不安に襲われる。

こうした不安はほとんど杞憂だとわかっている。世の中には子どもを持つ人が大勢いて、みんな普通に働けているし、近くには育児を手伝いたがっている家族もたくさんいる。

自分の時間の使い方を振り返ると、働く時間が足りないなどと心配するのは、なおさら馬鹿らしく思える。家族や友人との長い滞在や、家族での楽しいアクティビティに時間を使っていたのだから。

もし「大変だ!授乳とおむつ替えと寝不足の解消で、時間がまったくない!」という状況ならまだわかる。だが実際は、「大変だ!昨日は3時間のブランチと7時間の友人との集まりで、ブログを書く時間がなかった!」と騒いでいるようなものだ。

もう一つの要因は、普段よりずっと多くの時間をゲストをもてなしたり、人に会いに行ったりすることに費やしていることだ。だから不安の一部は、単に内向的な人間が増えた社交の時間に疲れているだけなのかもしれない。

だから、しばらく働かなくても大丈夫だし、息子が大きくなればもっと時間が取れるようになるし、自分の時間の使い方は今でもおおむね自分でコントロールできているのだと、自分に言い聞かせるしかない。

新生児の睡眠戦略を整える

新生児の親が睡眠について語るのはありきたりに聞こえるかもしれない。どの新米親も奇妙なほど睡眠にこだわっているからだ。でも、よく眠れるかどうかで日々の過ごしやすさが大きく変わるので、みんながその話をするのも無理はない。

当初は、妻が授乳をすべて担当し、私がおむつ替えをすべて担当していた。すぐに気づいたのだが、これだと夜中に二人とも60〜90分ごとに起きなければならず、どちらもまともに眠れない。

数週間経ってから、交代制に切り替えた。一方が授乳とおむつ替えの両方を担当し、もう一方は眠るというやり方だ。私は21時頃から2時までの前半を担当し、妻は2時以降に息子が最初に起きたタイミングから引き継ぐ。これで大きく改善した。交代で休んでいる間はそれぞれ4〜5時間まとまった睡眠が確保でき、担当時間中にも断続的に数時間眠れるからだ。

睡眠衛生を真面目に意識すると、息子がよく眠ることにも気づいた。夕食後に1時間ほどテレビを見てくつろぐのが好きなのだが、テレビを見なかった夜は皆よく眠れ、特に息子がよく眠る。以前はリビングで息子が寝ている横で毎晩1〜2時間読書をしていたが、明かりが乳児の睡眠を妨げる可能性があると知ってからは、それをやめた。彼と一緒に過ごす静かな読書の時間が恋しいのだが。

全体として、睡眠戦略はうまくいっている。たいていの日はしっかり休めたと感じられる。息子の睡眠が変化していくのに合わせて、新しい方法を見つけながら調整を続けていくつもりだ。

Nixはファズテストに意外と向いている

約10年前、セキュリティコンサルタントとして働いていたとき、ファズテストを使ってVLCの深刻な脆弱性を発見したことがある。VLCはオープンソースの動画プレーヤーだ。

この10年でファズテスト周辺のツールは大幅に進化したので、最新の最先端を試してみたいと思っていた。

2021年にAntonio Moralesが公開したファズテストのチュートリアルシリーズを見つけた。そこで使われているのはAFL++で、今ではもうトップのファズツールではないような気もするが、とりあえず始めてみた。最初のチュートリアルでは、オープンソースのPDF処理ツールであるxpdfをファズする方法が紹介されている。手順を少し変えて最新版のxpdfを対象にしたところ、新たな範囲外メモリ読み取りのバグを見つけることができ、ワクワクした。

後からわかったことだが、同じ脆弱性は2024年9月に別の人によってすでに発見されており、その報告はさらに前に非公開のメールでメンテナに報告されていたために却下されていた。おそらくその人も私と同じチュートリアルを辿って見つけたのだろう。私がそのシリーズを見つけてから数週間後、そのチュートリアルがHacker Newsのトップページに掲載されたので、3年前のチュートリアルがなぜか今になって偶然見つけられているようだ。

すべてのファズチュートリアルで印象に残ったのは、環境構築がいかに面倒かということだ。Moralesは特定のバージョンのUbuntuでAFL++をソースからコンパイルするよう指示しているが、参照しているパッケージがすべて変わってしまったため、その手順は今では古くなっている。

Moralesが挙げていたパッケージのバージョンを一つひとつ探す代わりに、これはNixを使う好機だと考えた。Nixならソースファイル内でツールのバージョンを固定でき、将来勝手に変わってしまう心配がない。

ファズテストのワークフロー全体をNix flakeで作ることができたので、あとはnix runと打つだけで、Nixが初期コーパスをダウンロードし、対象プログラムをコンパイルしてファズを開始してくれる。今月中に仕組みの詳細についてブログ記事として公開する予定だ。

まとめ

やったこと

  • 家族との時間を楽しんだ。
  • 家族との時間を取りすぎていないか心配した。

学んだこと

  • 仕事を休みすぎることへの不安は、ほとんどが杞憂だ。
  • Nixはファズテストのワークフローを作るのに適したツールだ。

来月の目標

  • 家族との時間を楽しむ。
  • Nixを使ったファズテストのチュートリアルを公開する。

手伝ってほしいこと

  • AFL++に代わる今どきのツールは何だろうか?honggfuzzだろうか?
    • 情報セキュリティの分野で働いているなら、イケてる新しいファズテストツールが何か教えてほしい。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント