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 月初旬入学を想定

2021年7月

ちょいとバタバタしてて遅くなったが 7 月分の記事を投下。

大学

月初に科目修得試験があり、プログラミング1 と情報基礎1 を受験した。
感想としては、「時間が足りない」に尽きる。試験内容としては、しっかりと講義を視聴して復習してを繰り返していれば問題なく解ける問題となっているが、試験時間の割に問題数が多いイメージを持った。他の科目はどうか分からないが、時間配分を意識しながら解いていった方がよい。結果、どちらも合格点だったのであとは課題の点数にもよるが単位はもらえると思う。ちなみに単位認定可否は年度末に分かるらしい。

科目修得試験を期に I 期から II 期の始まりである。厳密には履修申込をしていれば、どの期にどの科目の学修をしても問題ない(4 月に 1 年分の履修申込をするので)。今のところオレは試験が終わった後に次の期の学修を進めるようにしている。II 期は以下の科目を学修する予定だった。

  1. 論理数学
  2. プログラミング2
  3. Web技術基礎

が、全科目の課題 / レポート / 小テストの提出期限が 8 月初旬となっていた(今日論理数学の提出期限を認識して白目むいた)ので、論理数学は IV 期に学修することにして、プログラミング2 と Web技術基礎を学修することに決めた。I 期の基礎数学に続いて論理数学も後回しにしてしまった。苦手分野はすぐ後回しにする癖をどうにかせねば。III / IV 期は数学漬けにする。そもそも計画性の無さが問題だ(自戒)。

気を取り直して(?)、プログラミング2 と Web 技術基礎の学修内容を書いていく。

プログラミング2 は、プログラミング1 と同様に Processing を利用してより深くプログラミングを学んだ。内容は配列やクラス、オブジェクト指向プログラミング、GUI ライブラリを用いたプログラミングなど。より実践的な関数やクラスを用いたプログラミングは面白かった。どのように機能を分割してクラスや関数を実装するか、そしてどのようにオブジェクトを生成してクラス内の関数を利用するのかを学べた。業務でコードを書いている人には物足りない内容になるかもしれないが、個人的には楽しかった。小テストや課題は、7 月末時点で約半分提出済みで、引き続きやっていく。

Web技術基礎は、Web の起源やインターネット(よくある ARPANET のお話)、HTML、CSS の書き方を学んだ。テキストが少し古い(HTML 4.01だったり)内容だが、適宜最新のバージョンに読み替えて学修した。テキストには記載されていなかったが、学修を進めるなかで W3CWHATWG の関係性が知れて面白かった(現在は HTML 5 ではなく HTML Living Standard が主流だそう)。今までもっぱらインフラ畑だったので HTML と CSS の理解に苦しんでいる。特に CSS。でも楽しい。あとこの科目は小テストは存在せず、レポートを 2 つ提出する必要があって、7 月末時点で未提出状態。はじめてのレポート提出にウキウキしつつ、自分の文章力の無さに絶望している。意識して文章を読むなり、参考書を買って読むなりしよう。

育児

月齢 8 ヶ月になった。

  • オレの指を噛んで血が出た
  • ソファから落ちてしまった
    • オレがうとうとしてる時に落ちた
    • 今後気をつける(ソファに長居しない)
  • ハイローチェアの上で寝返りを打つようになった
  • 離乳食たべてる途中で寝た
  • 離乳食たべてる時に怒ってるような仕草をする
  • 耳鼻科で耳掃除をしてもらった
    • いつも指を耳に突っ込んでいるので行ったけど問題なしとのこと
  • キャリーワゴン引っ張って自分の頭に当たってギャン泣き
  • 名前を呼んだら振り返ってくれるようになった
  • ハイハイできるようになった
  • 寝てる時にうつ伏せする
    • 窒息する可能性もあるのでその都度仰向けにさせている
      • が、毎回ベビーベッドの方で仰向けにさせるのは大変なので同じベッドで川の字で寝るようにした
        • そしたら奥さんがお手洗いに行っている間にベッドから落ちた
          • 小児科いって問題なかったが今後気をつける(ベッドから離れるときはどちらかが見ておく)
  • 行動範囲が広くなった
    • ハイハイで家中歩き回る
  • 夜の寝付きにバラツキがある
  • 離れると泣く時がある
    • 寂しいのかな?
  • ゴミ箱を倒して塵を口に運ぶ
    • ゴミ箱を手の届かない場所においた

家中でハイハイしまくっているので、行動範囲が広がって色んなモノを口にくわえるようになった。頭もよく打つのでより一層気をつけないといけない。手が届きそうなところにゴミ箱や電子機器類、誤飲しそうなモノ(ティッシュとか)を置かないようにしている。頭ゴッチン対策で赤ちゃん用のヘルメットも買ったが、すぐに外すので意味がない。ベビーサークルでマットを囲めば解決する話ではあるが、なるべく目いっぱい動き回ってほしい気持ちもある。とはいえ命に関わることなので対策を考え中。

www.amazon.co.jp

2021年6月

大学

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

  1. 基礎数学
  2. プログラミング1
  3. 情報基礎1

プログラミング1 は引き続き順調に進められていて、無事学修を完了できた。小テストの点数も良いのであとは試験に挑むだけ。現在は絶賛試験勉強中。

情報基礎1 も引き続き順調で、一通り課題を提出することができた。Excel で使ったことのない関数やソルバー機能などに触れ学んだ。現在は絶賛試験勉強中。

基礎数学は学修をいったんストップした。理由はオレが小テストの解答締切を見落としていて、現実的に間に合わなさそうだったから。それぞれの講義をかいつまんで小テストを受ければ合格ラインまでいけそうな気がしたけど、曖昧な理解のまま試験を受けるとなると入学した意味がないなと。ちゃんと理解した上で小テストや試験を受けて単位を取りたい。ので Ⅰ 期での試験受験を諦め、Ⅲ 期での試験受験を見越して学修を進めようと思う。Ⅲ 期に受講予定だった科目は来年以降に持ち越すこととした。このように学修の進め方を柔軟に変えられるのは通信制大学の良いところだなと今思った。

育児

月齢 7 ヶ月になった。

  • レンジでパン焦がした
    • 離乳食レンチンできなくてあげれなかった
    • 哺乳瓶がレンジで消毒できないのでミルトンで消毒
      • あってよかったミルトン
  • 下の前歯が2本はえてた
  • ふくらはぎを撫でたらめっちゃ笑う(1回だけ..)
  • 後ろ方向にずり這いする
  • 腕立て伏せ(?)の体勢ができるようになった
    • 手と足で自分の体を支えられるイメージ
  • 卵たべたら嘔吐して湿疹もでた
    • 小児科いってアレルギーかどうか調べてもらったが問題なかった
  • 舌を出すようになった
  • 引き出しを開け閉めできるようになった
  • 1 人でおすわりができるようになった

離乳食もパクパク食べてくれるし、お座りもできるようになってきてすごい。成長して嬉しい気持ちと、少し寂しい気持ちもある。「あぁ、もうあの頃の息子氏とは会えないんだなぁ」と。今を大事にしよう。