先月、先々月の振り返りです。
42Tokyoでやったこと
以下の2つの課題をクリアしました。
- Kubernetesの課題
- bash再実装の課題
また、課題外ではWebhook URLの作成をしました。
Kubernetesの課題
Kubernetesを使って7つのアプリケーション(FTPSサーバ、phpMyAdmin、MySQLなど)を立ち上げる課題です。
大変だったこと
レビューでの環境差異
現在リモートで課題を進めていることもあり、環境に差異が出ないよう、この課題はVMでレビューを行います(校舎だと違うかもしれません)。
しかし、レビューいただく際に以前レビューした時の設定が残っていて動作しなかったり、共有ディレクトリ内で実行するとパーミッションが上手く設定されなかったりといったことがありました。原因を突き止めるのが難しかったです。
各種アプリケーションの設定
特に印象に残っていることは以下の2つです。
vsftpdがPID 1の時にSIGSEGVでクラッシュする挙動
Alpine 3.12で起きた問題。おそらく、この GitHubのcommitログ に書かれている原因で発生しているのだと思います。
他の生徒に教えていただき、ラッパースクリプトを使ってPIDを1以外にすることで対処しました。聞かなかったら絶対分からなかったです。
phpMyAdmin 5.0.4でテーブルのドラッグ時にJavaScriptのエラーが発生(5.1.0で修正)
エラーを確認した数日前に Issue が上がっていました。Issueが上がってなかったら解決方法が分からなかったと思います。
学んだこと
公式ドキュメントとIssueを参照することの大切さと、諦めない心を学びました。
bash再実装の課題
機能が制限されたbashの再実装をしました。bashの仕様や構文解析について知れて楽しかったです。
詳細については以下の記事にまとめています。
Webhook URLの作成
42ではAPIを使って様々なデータを取得できるのですが、Webhookを設定することもできると聞き、Webhookのデータを受け取るURLを作成しました。
現在は42で開催されるイベントが作成されたら、Discordサーバに通知が行くようになっています。
画像は通知例です。
AWS LambdaとAPI Gatewayを使って作りました。デプロイにはServerless Frameworkを使っています。
42Tokyoのコミット時間
月 | 合計 | 1日平均 |
---|---|---|
2月 | 175時間41分 | 6.3時間 |
3月 | 213時間18分 | 6.9時間 |
bash再実装が楽しくて、3月は1日平均が少し増えました。
今後やること
以下の課題を進める予定です。
- 2つのスタックを操作してデータをソートする課題
- 食事する哲学者の問題 のような並列処理に関する課題
- C++の課題