育児休業:2か月目
一言まとめ
仕事をしないのは、思っていたより難しいです。
ハイライト
- 仕事をしないことが、意外にもかなり難しいと感じています。
- 睡眠は少しずつ良くなってきました。
- Nixを使って、洗練された再利用可能なファジングテストのワークフローを作りました。
目標の達成度
毎月の初めに、その月に達成したいことを宣言しています。今回の目標に対する結果は次のとおりです。
家族との時間を楽しむ
- 結果:妻と生まれたばかりの息子とたくさんの時間を過ごし、友人や家族にも頻繁に会いました。
- 評価:A
しばらく仕事をしなくても大丈夫
自分はいつも仕事をしていたいタイプだとは思っていませんでした。それでも、休みを取るのが難しいと感じています。
この3か月で仕事としてほとんど何もできていないことを振り返ると、「これが新しい日常になったらどうしよう? 毎月ほんの数時間しか仕事ができない状態で、生計を立てなければならなくなったらどうしよう?」という不安が湧いてきます。
こうした不安のほとんどが理にかなっていないことは分かっています。子どもがいる人は大勢いますが、みんな普通に働いていて、それで問題なくやっています。それに、近くには子育てを喜んで手伝ってくれる家族もたくさんいます。
これまで時間を何に使ってきたかを振り返ると、仕事をする時間が少なすぎると心配するのは、ますますばかばかしく感じます。家族や友人と長い時間を過ごしたり、家族で楽しい活動をしたりしていたからです。
「大変だ! 授乳やおむつ替え、それに睡眠不足を取り戻すことで、時間がまったくない!」という状況なら、まだ話は分かります。でも実際の自分の反応は、「大変だ! 昨日は3時間のブランチと、友人との7時間の訪問で、ブログを書く時間がなかった!」というものなのです。
もう一つの要因は、以前よりもずっと多くの時間を来客のもてなしや人に会うことに使っていることです。つまり、不安の一部は、内向的な人間が普段以上に人付き合いをして疲れているだけなのです。
だから、しばらく仕事をしなくても大丈夫だと自分に言い聞かせる必要があります。息子が大きくなれば使える時間は増えますし、自分の時間の使い方は今でもおおむね自分でコントロールできています。
新生児の睡眠戦略を改善する
新米の親が睡眠について話すのは、決まり文句のように感じます。新米の親はみんな、奇妙なほど睡眠に夢中になるからです。でも、よく眠れるかどうかで日々の生活は大きく変わります。だからみんな睡眠の話をするのでしょう。
最初は、妻が授乳をすべて担当し、私がおむつ替えをすべて担当していました。すると夜は60~90分おきに2人とも起きなければならず、どちらもよく眠れていないことにすぐ気づきました。
数週間後、交代制に切り替えました。一人が授乳とおむつ替えの両方を担当している間、もう一人は眠るという方法です。私は午後9時ごろから午前2時ごろまでの最初の担当で、午前2時を過ぎて息子が最初に起きたら妻に交代します。これで大幅に改善しました。担当外の時間には、それぞれ4~5時間、途中で起こされずに眠れることが保証されるうえ、担当中にも何度かまとまらない睡眠を取れるからです。
睡眠環境を大切にすると、息子はよく眠ることにも気づきました。夕食後に1時間テレビを見てくつろぐのが好きなときもありますが、テレビを見なかった夜は、特に息子を含めて全員がよく眠れました。また以前は、息子が寝ている間、リビングで毎晩1~2時間読書をしていました。でも、明かりをつけていると乳児の睡眠を妨げることがあると知ったので、今はやめています。息子と一緒に静かに読書する時間が恋しくはありますが。
全体として、睡眠戦略はうまくいっています。ほとんどの日は、よく休めたと感じます。息子の睡眠の様子が変化し、新しい方法を見つけるたびに、これからも調整していくつもりです。
Nixはファジングテストに意外と適したツール
10年ほど前、セキュリティコンサルタントとして働いていたとき、ファジングテストを使って、オープンソースの動画プレーヤーであるVLCの重大な脆弱性を発見しました。
この10年でファジングテストを取り巻くツールは大幅に進歩したので、最新の技術水準を試してみたいと思っていました。
Antonio Moralesによる2021年のファジングテストのチュートリアルシリーズを見つけました。そこではAFL++が使われています。今では最先端のファジングツールではなくなっているように感じますが、シリーズを始めてみました。最初のチュートリアルでは、オープンソースのPDF処理ツールであるxpdfをファジングする方法を説明しています。手順をxpdfの最新バージョン向けに変更したところ、新しい範囲外メモリ読み取りバグを見つけることができ、興奮しました。
ところが、別の誰かが2024年9月に同じ脆弱性を発見していました。しかもその報告は、それより前にメンテナーへ非公開のメールで報告されていたため、却下されていました。おそらく、その人も私と同じチュートリアルに従って発見したのでしょう。私がこのシリーズを見つけてから数週間後、Hacker Newsのトップページに掲載されました。どうやら、3年前のこのチュートリアルを、なぜか人々が偶然見つけ続けているようです。
ファジングのチュートリアルをいくつも読んでいて特に印象に残ったのは、環境をセットアップするだけでも非常に面倒なことです。Moralesは、特定のバージョンのUbuntuを使い、AFL++をソースからコンパイルするよう読者に指示しています。しかし、そこで参照されているパッケージはすべてその後に変更されているため、今ではその手順も古くなっています。
Moralesが指定しているパッケージのバージョンを一つずつ探す代わりに、Nixを使う機会だと思いました。Nixならソースファイル内でツールのバージョンを固定できるので、将来、知らないうちに変更されることはないと安心できます。
ファジングテストのワークフロー全体をNix flakeにまとめることができました。そのため、nix runと入力するだけで、Nixが初期コーパスをダウンロードし、対象プログラムをコンパイルして、ファジングを開始してくれます。すべてがどのように動いているのかを説明するブログ記事を、今月後半に公開する予定です。
まとめ
できたこと
- 家族との時間を楽しみました。
- 家族との時間を取りすぎているのではないかと心配しました。
学んだこと
- 仕事を休みすぎているのではないかという不安のほとんどは、理にかなっていません。
- Nixはファジングテストのワークフローを作るのに適したツールです。
来月の目標
- 家族との時間を楽しむ。
- Nixを使ったファジングテストのチュートリアルを公開する。
助けを求めたいこと
- AFL++に相当する現在のツールは何でしょうか。honggfuzzでしょうか?
- インフォセックの仕事をしている方は、新しくて優れたファジングテストツールを教えてください。
記事をランダムに読む