2022年9月振り返り

42Tokyo

新ウォーターサーバ導入イベントに参加

42Tokyoの協賛企業、アクアクララさんからコーヒーマシン一体型ウォーターサーバ、 アクアウィズ を増設いただきました。

そのお披露目イベントに参加しました。詳細については以下のnoteに載っています。

note.42tokyo.jp

校舎でのイベントが増えることで、徐々に校舎に人が増えるといいなと思います。

インターン

7月中旬から引き続きインターンをしています。

9月は、既存の機能でタイムアウトが起こらないようAPIのレスポンスの返し方を修正をしたり、新しい機能の実現方法を調査していました。

個人開発

個人プロジェクトにStorybook + Chromaticを導入

Storybook は、UIコンポーネントをアプリケーションから切り離して、Storyという単位で確認、テストができるツール、
Chromatic は、Storybookのホストができたり、コミット間でのStoryの差分をビジュアルで確認できたりするサービスです。

他の方が使われてるのを見て、これら2つを 個人プロジェクト に導入してみました。

今までComponentの見た目の確認は手動で行なっていたのですが、Storybookを使うとStoryごとにビジュアルのテストが書けて、Chromaticを使うと差分も見れるのですごいです。楽しいです。

42 APIAPI keyをローテートするためのCLIツール作成

github.com

42の学生は 42 API というAPIを使えるのですが、7月くらいからAPI keyが月1でローテートされる仕様になりました。

複数個あるAPI keyをローテートして環境変数を更新してデプロイして……は面倒だったので、CLIツールを作って作業の自動化ができるようにしました。

作業の自動化といっても、API keyのローテート自体は手動で行います(API keyを自動でローテートするためには、2FAを突破してスクレイピングする必要がありそうだったため)。API keyローテート後の環境変数更新やデプロイなどのコマンドを自動化するという感じです。

CLIツールはTypeScriptで作成しました。今は git clone して yarn start しないと使えないのですが、後々パッケージをnpmにpublishして npx で使えたらと思っています。とはいえ月1作業なので優先度は低いです。

discord.py v2に移行

無事、本科サーバのBotをdiscord.py v2に移行できました。今後は有料化するHerokuからの移転を11月末までに終えたいです。

その他

あとは細々した変更です。ユーザのフィードバックをもとに課題のテスターのREADMEを微修正したり、学生の統計情報を表示するサイトで対応できていないデータ形式があったので修正したりしました。

読んだ本

嫌われる勇気

人に勧められて読みました。課題の分離、共同体感覚の話が面白かったです。

PMBOK対応 童話でわかるプロジェクトマネジメント

電子書籍が安くなってたので書いました。童話形式でプロジェクトマネジメントについて学べる本です。

42のチーム課題で上手くいかないときにこういう本を読むと、プロジェクトの進めるためにどういう要因が絡んでるのか、どうしたら改善できるかが分かるかもしれません。といっても小さなプロジェクトには適用できない部分もありますが。

終わりに

最近アウトプットが減ってるので、もう少し増やしていきたいなあと思います。

2022年8月振り返り

インターン

7月中旬からインターンをしています。インターンの期間は3ヶ月なので、期間の約半分が過ぎたことになります。

インターン中、人生初のLTをしました。発表した内容は自己紹介と今のタスクの説明でした。時間をオーバーしてしまったのですが、何とか発表できて良かったです。

42Tokyo

42Tokyoでは3つのことを行いました。

  1. 課題のチーム間交流会を開催

    課題は引き続きTypeScriptでオンラインゲームを作るチーム課題に取り組んでいます。

    課題へのモチベーションを上げるために、課題のチーム間交流会を企画して週1で始めました。

  2. デジタル庁登壇イベントにオフラインで参加

    42tokyo.jp

    イベント終了後、デジタル庁の方と直接お話しする機会がありました。イベント参加者との距離が近くてオフラインは良いなあと思いました。

  3. 42Tokyoからインタビューを受けました

    インタビューの内容は、9/2にnoteで公開されています。

    note.42tokyo.jp

    改めて自分を見つめ直す良い機会になりました。

    当時は校舎でPiscineが開催されていたため、DMMのオフィスでインタビューを受けました。おしゃれ空間でした……!

個人開発

個人開発では2つのことを行いました。

  1. Renovateを導入

    Renovateは依存関係を自動で更新してくれるツールです。

    Renovateを導入する前は、Dependabotのアラートがあってから依存関係を適宜更新していました。ただ、全ての依存関係を最新にはできていませんでした。

    Renovateを導入したことで、定期的に依存関係を更新するPull Requestが作成され、依存関係の更新が容易になりました。

    導入にあたり調査した内容を以下のスクラップにまとめています。

    zenn.dev

  2. Discord botのライブラリをバージョンアップ中

    Discord botPython向けライブラリ、discord.py のv2が8月中旬にリリースされました。

    メジャーバージョンが上がりいくつかBreaking Changeがあるものの、スレッドやスラッシュコマンドに対応しており、とても良いです。

    バージョンを上げる際に行ったことは以下のスクラップにまとめてあります。いずれ記事にします。

    zenn.dev

    コードは変更が完了したのですが、バージョンアップで必要になるBotの権限周りの申請がまだ受理されておらず、42Tokyo本科サーバの環境にはまだ反映されていません。なので、まだ「バージョンアップ中」です。

読書

2冊読んでます。

MySQL徹底入門 第4版 MySQL 8.0対応

まだ半分ほどしか読めていませんが、SQLを使ったJSONの操作方法、全文検索の仕組みが面白かったです。

また、MySQLの歴史や情報源について知れたのが嬉しいです。

Linuxやデータベースを触るのが初めてな人には、少し難しい内容かもしれません。

プロになるJava

Javaを改めて学ぶ必要があり、手に取りました。読んだのは、まだ1-2割程度です。

Javaだけでなくオートマトン幅優先探索の話が載っているのが面白そうです。

終わりに

9月は引き続きインターンをしつつ、課題も進められたらと思います。

2022年7月振り返り

今年7月に行ったことを振り返る記事です。

エンジニア養成機関 42Tokyo での活動や、それ以外での活動について振り返ります。

やったこと

42のイベント

42Parisの校長AMA

AMAは「Ask Me Anything」の略で、42Parisの校長とお話をしました。

詳細は ホ・ヴィンチ さんがまとめてくださっています。

note.com

これまでは42がどうなっていくか、よく分かっていなかったのですが、今後は42がコロナ前のオフライン学習にシフトしていくと知れました。他にもいろいろお話伺えたので参加して良かったです。

42Tokyoの開校2周年記念イベント

懇親会に参加しました。改めて、42Tokyoはさまざまな方の支えがあって成り立っているのだと実感しました。

企業説明会

42Tokyoのスポンサーの企業説明会に参加しました。5月にも企業説明会がありましたし、最近企業説明会が増えているように感じます。

42の課題

TypeScriptでオンラインゲームを作るチーム課題

正直ほとんど進められていません……。

原因は、自分の中で課題の優先度が下がっているためです。とはいえ課題に取り組まずブラックホールに吸い込まれると、APIを使って42Tokyoの学生データを取得して遊ぶことができなくなるので、課題の優先度を上げていきたいです。

インターン

42Tokyoのスポンサー企業とご縁があり、7月中旬からインターンをすることになりました。

インターンは基本出社しているのですが、分からないことがあったらメンターに聞けたり、メンターが分からなかったら知っている方に聞きに行ったり、オフラインのP2Pラーニングのようで楽しいです。

読書

1冊読みました。

心理的安全性のつくりかた

心理的安全性に、心理療法のACTや行動分析学が取り入れられた本です。

インターンをするにあたり、これまでより2時間早起きする必要があったのですが、その際に行動分析の章を活用しました。
行動の後に出現することで、次回同じ行動を取る確率が上がる、行動の見返りのことを「好子」。行動を取る確率が減る見返りのことを「嫌子」と言うそうです。
何がきっかけで遅くまで起きてしまうのか、どんな見返りが好子・嫌子になっているのかを分析することで、早起きしやすくなったと思います。

終わりに

インターンしつつ、どうにかして課題を進められたらと思います。

2022年6月振り返り

今年6月に行ったことを振り返る記事です。

エンジニア養成機関、42Tokyo で取り組んでいる課題や、開催されたイベント、課題外の活動について振り返ります。

やったこと

課題関係

TypeScriptでオンラインゲームを作るチーム課題

引き続き行っています。

チャンネルの参加機能が実装できていなかったため、そちらを実装していました。

イベント

SQLワークショップ

kaggle.comの Anime Recommendation Database 2020 のデータセットSQLを使ってレコメンドを作成する課題に取り組み、そのレビューが行われました。

課題は以下のリポジトリから見ることができます。

github.com

その他

42Tokyoの統計情報を表示するWebサイトを作成

先月の振り返り記事 で書いた、42Tokyoの統計情報を表示するWebサイトが完成しました。

画像はダミーデータを使用しています

42Tokyoの学生でない方は以下のURLからデモを見ることができます。デモは、実際のデータではなくダミーデータを使用しています。

42tokyo-stats.vercel.app

やっていることは、毎日42のAPIから情報を収集してCloud Storageに保管し、その情報をVercelでのビルド時に取得し、表示しているという感じです。

アーキテクチャ図に起こすと以下のようになります。

Discord Botに42のURL一覧を表示するコマンドを追加

上記「42Tokyoの統計情報を表示するWebサイト」のURLがすぐ分かるBotのコマンドが欲しいと学生から要望があり、コマンドを作成しました。

自分が作ったサイトだけだと宣伝感があって恥ずかしかったので、他にも役立ちそうなURLをいくつか列挙しました。

URLの選定基準は、以下の2つとしました。

  1. 使いたいと思った時の緊急性が高いURLであること

    • 例えば、来校予約は予約可能な時間に制限があるため、緊急性が高いと判断しました。
  2. コミュニティに定着させたい知識であること

    • レビューの方法については、緊急性は高くないのですが定着させたいのでURL一覧に入れてます。

コミュニケーションにまつわるイベントに参加すると、Slack等コミュニケーションツールのスタンプで文化を醸成する、という話を時々聞きます。

URLを列挙したコマンドも、同じように文化の醸成に役立つ可能性があります。もっと早くに追加した方が良かったかもなあと思いました。

読書

今月は本を2冊読みました。

SQL 第2版 ゼロからはじめるデータベース操作

SQLワークショップに参加してSQLの重要性を改めて感じたため、読みました。

SQLの基本的な知識を身につけられて良かったです。

プログラマの数学

感想はTwitterに書きました。

アウトプット

zenn.dev

『りあクト! TypeScriptで始めるつらくないReact開発 第3.1版』を読んでハマったことをまとめた記事を書きました。

今後やること

引き続き、TypeScriptでオンラインゲームを作るチーム課題に取り組む予定です。