2021年11月

育児

1 歳になった!

  • 毎日といっていいほど頭を打ってギャン泣き
    • 打たないように環境を継続的に整えている
  • ほったらかしにしてると睨む
  • ほったらかしにしてると寝る
  • 箱根にいった
    • 旅館でグズグズ
    • 夕ご飯もグズグズ
    • お風呂もグズグズ
  • 猫触って笑う
  • 夜の寝かしつけが楽になった
    • ベビーベッドに降ろして添い寝してると寝る
  • 立ちながらその場で1周ぐるっと回ってドヤ顔
  • パパが風船ふくらませるとギャン泣き
  • 歩くのが上手になった
    • 前よりも腕を少し下げて歩くようになった気がする

よく 1 年も生きてくれた。ありがとう息子氏。そして 1 年間休まずに家事育児をしたオレと奥さんもすごい。まだまだこれから大変になっていくけど頑張って 3 人で楽しんでいくぞい!

誕生日はバースデーフォトをスタジオで撮ってもらったり、ケーキを作ってあげたりした。息子氏も楽しんでくれたようでよかった。

仕事

約 1 年間の育休が終わりついに復職した。育休に入る前と変わらずリモートワークだけど、まだ復職した実感がわかない。あと業務もまだあまりなくて暇なので(おい) Snowflake の認定資格を取得するための勉強を進めている。ひとまず 12 月中には SnowPro Core Certification を取得したい。

今後は仕事についてもブログに書いていこうかな。得意の箇条書きで。

  • SnowPro Core の勉強を始めた
  • AWS SDK for Go を利用したツールで Assume Role できない事象を調査した
    • 要件としては Account A の EC2から Account B の CloudWatch Metrics を参照するというもの
    • session.NewSession() を利用すれば環境変数 AWS_SDK_LOAD_CONFIG を true にすることで Assume Role できることが分かった
    • 余力があればブログ書く

大学を休学する

「えのさん*1だけ時間があってずるいと思っちゃう」という奥さんの一言から休学を決意した。

今年の 9 月に入ってからお互い体調を崩したり、ワクチンの副反応で倒れたりとバタバタしていた。 息子氏も成長するにつれてどんどん行動範囲が広がり、おむつを交換する時に暴れたりでだいぶ滅入っていたようだ。 そんな中で日中学修してたらそりゃそうなるよね。申し訳ないの言葉しか出てこない。

そもそも育児休業は育児に専念するための制度であって、勉強をする時間ではない。ということを知って起きながら奥さんに育児家事を押し付けたことを反省している。 入学を届け出る前は「頑張ればいける」と思っていたが、後先考えずに突っ走った結果こうなった。完全に甘かった。

学修を辞めて約 1 ヶ月が経って、今は気持ちが楽になった。いつも「自分を追い込んでやる」駆動だったので、常に精神的にストレスが掛かった状態だったのだと気付かされた。最近は毎日息子と遊んだり育児のこと考えたりゆっくりおやつを食べたり夜に APEX したりしてて楽しい。

今後のことは特に考えていないが、ひとまず 2022 年の 4 月から 1 年休学しようと思う。その後はよくわからない。またやる気が出て復学するかもしれないし、追加で休学するかもしれないし、退学するかもしれない。少しの間だったけど、大学で学んだことは楽しかったし、多少業務にも生きると思う。

TL でよく育児中のママパパが大学に通っている様子を見てるとホントすごいなぁと思う。オレには無理だ。正直息子が夜寝た後の 1 〜 3 時間は自由時間があるんだけど、その時にはもう殆ど MP が残っていない。ので APEX で気を晴らしている。それでええやんと思うようになってきた。他人の比べても何の意味もない。

ということで、2021年度 履修計画でも書いたように引き続き家族優先でゆるりとやっていきます。

*1:オレのこと

2021年10月

大学

学修していない。はよブログ書けオレ。

育児

月齢 11 ヶ月になった。

  • お喋りしているように聞こえる
  • 「けっけけっけ」って言う
  • 1,2 歩あるく
    • 2,3 週間で 10 歩くらいあるくようになった
    • そしてよくコケて頭打って泣く
  • 手づかみ食べデビュー(食パン, バナナ)
  • 夜にブレーカーが落ちて真っ暗になってギャン泣き
  • テーブル(木)を噛む
  • 離乳食 2 回食から 3 回食へ
    • 食べる量も増えてきて準備も大変
  • 離乳食たべてる時によくグズる
  • 椅子を押して動かしまくる
  • 保活をはじめた
    • 他の子どもたちと少しだけ触れ合えた
  • インフルエンザワクチン接種で泣かなかった
  • 車のトランクルームで遊ぶ
  • 体型がシュッとしてきた
  • みてねの 1 秒動画を見てママパパ泣きそうになる
  • アンパンマンのおもちゃを分解する

いよいよ 1 歳目前となった。赤ちゃんからどんどん幼児っぽくなってきて嬉しいような寂しいような。1 歳は盛大に祝ってあげたい。

2021年9月

大学

初旬に以下の科目習得試験があった。

  1. プログラミング2
  2. Web技術基礎

I 期の反省点を踏まえて、時間配分に気をつけながら解答を進めた。結果、両科目とも全ての問題を解答することができて手応えもあった。成績も返却されて、無事合格をもらえた。小テストや課題、レポートもこなしたので単位はもらえてると思う。

科目習得試験が終わり、III 期が始まった。以下の科目の学修を進めるつもりだった。

  1. 英語1
  2. 人間関係論基礎数学 (I 期で試験資格がなかったため
  3. 情報技術基礎

が、訳あって英語1のみ少し学修したのみで他は何も進めていない。英語1の小テスト締切期限も過ぎてしまったため試験の受験資格もない。詳しくは別エントリに書く。

育児

月齢 10 ヶ月になった。

  • 少しの間だけ立つ(5〜10秒)
  • ハイタッチしてくれる
  • 伝い歩きができるようになった
  • ママパパをよく噛む(いたい)
  • ベビーベッドで立って顎を打つ
  • 目を離した隙にティッシュを口の中に入れた
    • 口の中に指をいれて吐かせた(びっくりした...
  • すごい鼻水でる
    • 急に気温が低くなったからかな?
  • やりたいことがうまくできないと苛立つ
  • パパママを踏み台にしてソファに登る
  • ブロックはめができるようになった!!!
    • 丸型の穴に丸いおもちゃをはめた
  • テレビ台のベビーサークルをくぐった
  • おもちゃをくれるようになった
  • ベビーサークルに貼ってたビニールテープを噛みちぎって飲んだ
    • ミルクと離乳食と一緒に吐いてくれた
  • ミニオンズの動くおもちゃにビビって泣いた
    • だいたい新しいおもちゃで音が鳴ると泣く
  • 離乳食モグモグ期からカミカミ期へ
  • 拍手した

今月はワクチン接種や夫婦ともに風邪気味になったりでどっと疲れた。。おつかれさまでした。

その他

個人開発を友人と始めた(個人とは)。普段さわらない JavaScript とか Go とか書いて楽しい。引き続きやっていき!

2021年8月

大学

先月と同様、以下の科目を学修した。

  1. プログラミング2
  2. Web技術基礎

プログラミング2 は残っていた課題に取り組んで、なんとか期限内に提出できた。特に苦労したのが画面遷移の実装。簡単なゲームを作成する課題で、スタート画面とゲームプレイ画面、スコア表示画面を用意してマウスのクリックを機に画面遷移させる必要があった。躓いたのが、画面クリックをするとゲームプレイ画面をすっ飛ばして(厳密には数ミリ秒)スコア表示画面に遷移してしまい頭を悩ませていた。

結果的に、マウスイベントの処理(if (mousePressed == true))を draw() 関数内に記載していたことが原因だった。draw() 関数はフレームレートぶん(デフォルトで 60 FPS)実行されるため、1 回クリックするだけでも、Processing は複数回クリックしたものと解釈してしまう。この問題は mouseClicked() 関数を利用することで解決できた。mouseClicked() 関数はマウスが押されて離されたタイミングで実行される関数で、そのブロック内で画面遷移をするようにコードを修正したら想定通りにゲームが動作した。

課題の提出にあたって、学内 Temas で在学生の方に助言いただいてなんとか解決に持っていくことができた。ありがたい。課題も無事受理され、小テストも全て解答したのであとは復習して科目修得試験に望むのみ。

Web 技術基礎は、先月に引き続きレポートの作成に励んだ。レポートのなかで HTML、JavaScript プログラムを作成する課題もあって、XML を操作する DOM プログラムを作成せよというものが面白かった。今回はXML に記載されたデータを JavaScript で読んで HTML に挿入するプログラムを作成した。getElementsByTagName()XML ドキュメントを読んで、Element.innerHTML で挿入するプログラムで、XML入れ子となった要素を取り出すのに苦労したのを覚えている。最終的に、この記事を参考にして解決することができた。

www.ipentec.com

あとブラウザでローカルの JavaScript から XML を見に行く時に以下のエラーが発生したが、Docker で httpd コンテナ動作させることで回避した。

Access to XMLHttpRequest at 'file:///path/to/sample.xml' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.

今回は XMLHttpRequest() でローカルの XML ファイルを読むようにしたのだが、file:/// URL では不可だと。ちゃんと HTTPS の URL を利用しよう。ローカルのファイルが JavaScript から読めたら意図せず情報が盗まれたりする可能性があるものね。ブラウザの起動オプションでローカルのファイルを読めるようにする設定が可能みたいだけど、やめた方がよさそう(今はできないかもだけど)。CORS も理解せねば。。。

developer.mozilla.org

無事レポートを提出して受理されたので、現在は科目修得試験の準備中。

育児

月齢 9 ヶ月になった。

  • かまり立ちした
  • またベッドから落ちた
    • 奥さんがお手洗いにいってる間に
      • 奥さんはオレを起こしたそうだが記憶にない...
      • 今後はビンタして起こすように頼んだ(ごめんよ息子氏...
  • 後追いをする
    • ママパパが見えなくなるとギャン泣き
  • 奥さんの髪切ったらギャン泣き
    • オレがママをいじめてるように見えたのかな?
  • 声が枯れた
    • エアコンの風向き調整で改善した
  • 初の水遊び @ お風呂
  • テレビ台を囲うベビーサークルを自作した
  • 離乳食の量が増えてきた
  • 吐き戻しの回数が減った
  • 自分でお風呂までハイハイして来るようになった
  • 八重歯が生えた(3 本目!!)
  • ハンドスピナー(懐かしい)に夢中

ついにつかまり立ちをした。見える景色が変わって更に家中を無限にハイハイ & つかまり立ちをするようになった。テレビ台に寄りかかってテレビや Echo、時計を掴むようになったのでベビサークルをイレクターパイプで自作した。既製品だとどうしてもサイズ感が合わなかったので、やってよかった。が、とても大変だったのでもう二度と DIY はしないと奥さんと合意した。これで最初で最後の DIY

新型コロナの感染者数も増えてきたので、息子氏のために気に引き締めようと奥さんと話した。正直これまでは気が緩んでいて、積極的に外出はしないものの、IKEA やカフェにはちょこちょこいっていた。現状、息子氏にはワクチンは打てないので親が感染しないようにする必要がある。また、万が一どちらかが感染した場合の動きについても話した。準備は大事。あーはやく息子氏と水族館とかいきたい...

ISUCON11に参加した

先日行われた ISUCON11 オンライン予選に参加した。実は ISUCON に参加するのは今回が初。結果は最終スコアが 8062 で 342 位。

isucon.net

出場の経緯

もともと ISUCON 自体は 3, 4 年前くらいから知っていたが、当時はコードを全然書いていなくて「そんなコンテストがあるんだ」ぐらいに思っていた。最近になってコード書いてないヤバいという意識を持つようになり、大学含め少しずつ勉強をし始めている。

enokawa.hatenablog.jp

TL で ISUCON のツイートが流れてきたので、自身のベンチマークも兼ねて参加しようと決めてなんとか予選の追加募集に滑り込めた。チームは同僚 1 人の計 2 名で参加した。相棒もあまりコードが書けない人なのでほぼオレと同じくらいの力量。

準備

ほとんどしていない。お互いの時間が合わなかったので各自で過去問を解いたり過去のレギュレーションを読んだりしていた。ISUCON7 と 10 の過去問をやったが、オレのコードを読む/書く力がなさすぎて全然わからなかった。ので New Relic や Splunk のアカウント登録などをしていた。

本番

ログを残していないので記憶が曖昧だけど流れを書いていく。

  • マニュアルの確認
  • AWS 環境構築
  • Go のままベンチ
  • Ruby に変更してベンチ
  • デプロイ整備しようと思ったけど時間が有限なので見送り
    • サーバ上でコードを修正する方針に
  • 2 人でコードをざっと読む
  • サーバの構成を把握する
    • Nginx -> App -> MariaDB の構成であることを把握
    • EC2 が 3 台あるが 3 台とも同じ構成であることを把握(のはず
    • DB は別サーバに分けたほうがいいかもねと話す
  • ボトルネックの調査開始
  • Nginx のアクセスログから Condition への Post リクエストで 499 Status が多発していることを確認
  • この行 が悪さをしていると判断して消した
    • Discord 見てると 0.9 のままいってるチームもいてよくわかっていない...
    • コメント通りあえてリクエストを落としているので徐々に割合を減らすべきだったかも?
    • この時点で Score 7730
  • Nginx のログフォーマットを alp で見れるように ltsv に変更
  • MariaDB の slow query log を出力するように変更
    • 脳死で long_query_time を 1 で設定してしまった
    • 1 秒だと長過ぎることが終わった後にわかった
  • puma の workersや thread を変更するもスコア変わらず
  • サーバの役割を変更
    • 1 号機は Nginx + App
    • 2 号機は MariaDB
    • 3 号機はヒマしてる
  • New Relic APM を導入
  • trend への GET リクエストが遅いことに気づく
    • trend の SQL チューニングを実施
      • SELECT するカラムを絞った
    • isu DB にインデックスを貼った
      • がインデックスの知識が乏しく良い設定が見いだせずにスコア伸びず

反省点

  • もっともっとコードを読もう/書こう
  • 素振りしていないので次回からやりまくる
  • デプロイ方法を事前に取り決めておく
  • スレッドやプロセスなどを理解していない
  • DB の知識が足りない

おわりに

練習不足もあるけど、それ以前に日常的にコードを書いてないがためにほとんど何もできずに終わってしまった。大学の講義でコードを書いているけどそれだけでは全然足りなくて、より実践的なコードを書いていかないといけないと改めて感じた。となるとやはり個人開発するしかないなと。やっていこう。あと業務ではインフラというよりクラウドを多めに触るから Linux や DB の知識も全然身につけられていないので、もっと意識して取り組んでいかないといけない。

来年また ISUCON 参加するぞ!運営・スポンサーのみなさま、本当にありがとうございました!!!

2021年度 履修計画

以前こんな記事を書いた。

enokawa.hatenablog.jp

やみくもに学修するよりも、事前に履修計画した方が良いと考えたので、入学して 4 ヶ月経ったが書いておく。

優先順位

学修を始める前に、奥さんと時間の使い方に関する話し合いを行った。育休からの復職後も含めて、優先度が高い順で以下となった。

  1. 家族との時間
  2. 仕事の時間
  3. 学修の時間

もちろん平日は仕事をしている時間が多くなるが、万一子どもや奥さんが体調を崩したり急用ができた場合は家族を優先する。オレが所属するアイレットではその辺りは柔軟に調整ができるのでありがたい。場合によっては時短勤務にすることも視野に入れている。今まではひたすら仕事優先でやってきたが、子どもが産まれて、育休を取得して気持ちが変わってきた。

卒業までの計画

7 年での卒業を目標とする。

入学エントリにも書いたが、ストレート(4 年)での卒業は目指していない。仮に 4 年での卒業を目指すとなると、1 年あたり 15.5(124 単位 / 2*1 / 4 年)科目履修する必要がある。帝京大学では 1 年に 4 期あるため 1 期あたり約 4 科目履修するとなるとだいぶ時間的に厳しい。今年度は育休中で、奥さんの協力のもとまとまった学修時間を取ることができるため 12 科目 24 単位の取得を目指す。復職後はそうはいかないので 1 年あたり 10 科目 20 単位取得することで、無理すぎることなく 7 年での卒業が可能と考えた。

ちなみに文部科学省の基準によると、1 単位の学修に必要な時間は 45 時間とされていて、殆どの科目が 2 単位のため 90 時間学修することになる。仕事やプライベートの時間を考えるとだいぶ厳しく感じる。この辺りは個人差はあると思うが、個人的には難しい。

脱線したが、以下の内容で学修を進める。

年度 科目数 単位数
1 2021 12 24
2 2022 10 20
3 2023 10 20
4 2024 10 20
5 2025 10 20
6 2026 10 20
7 2027 10 20
- 72 144

6 年目で 124 単位取得できる計算だが、オレのことなので(?)計画通りにいかないことも想定してバッファを積んである。よくない。やはり学修する前にこの記事を書くべきだった。実際いま計画通りにいっていない。

注意点

大前提として、卒業するためには合計 124 単位取得する必要があり、科目区分ごとに最低単位数が決められている。特に気をつけなければいけないのが総合基礎科目の最低必要単位数が(オレの入学年度では)12 であることだ。英語は総合基礎科目(必修)に区分されるが、選択ではないため前述した必要単位数には含まれない。そのため、卒業するまでに 12 単位(= 6 科目)取得する必要がある。具体的な科目としては、心理学や社会学、経済学などが挙げられる。

期ごとの学修期間についても気をつける必要がある。帝京大学では期ごとに科目習得(単位認定)試験の日時が決まっていて、試験日を境に次期の学修を開始する場合は期ごとに学修期間が変動する。

試験日時 学習期間
I 期 7 月初旬 約 4 ヶ月(入学初年度は 3 ヶ月*2
II 期 9 月初旬 約 2 ヶ月
III 期 12 月初旬 約 3 ヶ月
IV 期 2 月初旬 約 2 ヶ月

見て分かる通り、II 期と IV 期は学修期間が 2 ヶ月しかなく、レポート/課題提出や小テスト解答などの期限も考慮して学修する必要がある。履修する科目にもよるが、試験日の約 1 ヶ月前には提出物の提出や小テストに解答しないと試験の受験資格がもらえない。今現在、II 期の学修中だが 3 科目中 1 科目の学修をうまく進められず受験資格がない。

4 月に 1 年分の履修登録をするため、例えば 4 月に IV 期受験のための学修を進めることも可能だが、そんな器用なことできないので試験日を期に次期受験予定科目の学修を進めることにしている。

2021年度の計画

学修前の 4 月に、以下で進める計画とした。まずは 24 単位取得目指してがんばるぞい!

# 試験時期 科目名
1 I期 基礎数学
2 I期 プログラミング1
3 I期 情報基礎1
4 II期 Web技術基礎
5 II期 論理数学
6 II期 プログラミング2
7 III期 英語1
8 III期 人間関係論
9 III期 情報技術基礎
10 IV期 英語2
11 IV期 技術者倫理
12 IV期 経済学

https://www.e-campus.gr.jp/syllabus/kanri/utsunomiya/public/syllabus/2021/discipline/5

*1:殆どの科目が 1 科目あたり 2 単位の認定

*2:4 月初旬入学を想定