2021年2・3月の振り返り

先月、先々月の振り返りです。

42Tokyoでやったこと

以下の2つの課題をクリアしました。

  1. Kubernetesの課題
  2. bash再実装の課題

また、課題外ではWebhook URLの作成をしました。

Kubernetesの課題

Kubernetesを使って7つのアプリケーション(FTPSサーバ、phpMyAdminMySQLなど)を立ち上げる課題です。

大変だったこと

レビューでの環境差異

現在リモートで課題を進めていることもあり、環境に差異が出ないよう、この課題はVMでレビューを行います(校舎だと違うかもしれません)。

しかし、レビューいただく際に以前レビューした時の設定が残っていて動作しなかったり、共有ディレクトリ内で実行するとパーミッションが上手く設定されなかったりといったことがありました。原因を突き止めるのが難しかったです。

各種アプリケーションの設定

特に印象に残っていることは以下の2つです。

  1. vsftpdがPID 1の時にSIGSEGVでクラッシュする挙動

    Alpine 3.12で起きた問題。おそらく、この GitHubのcommitログ に書かれている原因で発生しているのだと思います。

    他の生徒に教えていただき、ラッパースクリプトを使ってPIDを1以外にすることで対処しました。聞かなかったら絶対分からなかったです。

  2. phpMyAdmin 5.0.4でテーブルのドラッグ時にJavaScriptのエラーが発生(5.1.0で修正)

    エラーを確認した数日前に Issue が上がっていました。Issueが上がってなかったら解決方法が分からなかったと思います。

学んだこと

公式ドキュメントとIssueを参照することの大切さと、諦めない心を学びました。

bash再実装の課題

機能が制限されたbashの再実装をしました。bashの仕様や構文解析について知れて楽しかったです。

詳細については以下の記事にまとめています。

nafuka.hatenablog.com

Webhook URLの作成

42ではAPIを使って様々なデータを取得できるのですが、Webhookを設定することもできると聞き、Webhookのデータを受け取るURLを作成しました。

現在は42で開催されるイベントが作成されたら、Discordサーバに通知が行くようになっています。

画像は通知例です。

f:id:nafuka11:20210404195338p:plain:w400

AWS LambdaとAPI Gatewayを使って作りました。デプロイにはServerless Frameworkを使っています。

42Tokyoのコミット時間

合計 1日平均
2月 175時間41分 6.3時間
3月 213時間18分 6.9時間

bash再実装が楽しくて、3月は1日平均が少し増えました。

今後やること

以下の課題を進める予定です。