KLab Expert Campの参加レポートです。
きっかけ
ネットワークプログラミング関連のツイートをしていると講師の@pandax381さんに声をかけて頂き、軽く面接という形の雑談後、かなり早い時期(5月の終わりくらい)に参加が決定しました。この頃にインターン希望者が数人集まったため、expert campという形で人を集めることになったらしいです。
expert campについて
@pandax381さんと歴代のインターン生によって作成されているmicropsの実装を追いかける基礎クラス(15人くらい)と自分でテーマを決めて開発する発展クラス(4人)に分かれます。私は面接の時にRustでネットワークプログラミングしたい旨を伝えていたので発展クラスに割り振られました。
1~4日目前半は講義or開発で、最後に成果(感想)発表がありました。
やったこと
RustでTCPのソケットライクなAPIを作成しました。 https://github.com/teru01/sheep_tcp
L3まではpnetを利用し、その上にTCPのコネクション管理や再送制御などの部分を実装しました。TCP/IP自作本とmicropsの実装をかなり参考にしています。時間ギリギリでしたがキャンプ最終日までにbind
, accept
, connect
, read
, write
がAPIとしてアプリケーションから利用できるようになりました。
RustでTCP、再送制御&複数クライアント同時接続まで実装できた🙌
— 電気ひつじ (@teru0x1) August 29, 2019
もうUDPとは言わせない#プロトコルスタック自作 pic.twitter.com/LLQc8G9Nbu
短い時間の中で朝から晩まで開発を行ったためコードは結構雑です。リファクタリングしたいです。
良かった点&感想
- 4日間集中して開発を行うことができた
- ggってもなかなか答えが見つからないような深い知識に関して質問ができた
- チューターの@nelioさんからネットワーク関連の面白い話を聞くことができた
- ハイレベルな人がたくさん参加していてモチベーションが上がった
- 無限エナドリ&無限お菓子が提供された
- 懇親会で提供される食事が美味しかった
強い人&楽しそうに開発する人が多かったなぁという印象。参加して良かったです。また「Rustで始めるネットワークプログラミング」を購入してくださっている参加者や社員さんがいたのは嬉しかったです。
写真など
初日
本日の進捗です#KLabExpertCamp #プロトコルスタック実装 pic.twitter.com/TLl7VAXusY
— 電気ひつじ (@teru0x1) August 26, 2019
最終日(初日と比べて寿司のグレードが上がったらしい)
食事が無限に良かった#KLabExpertCamp pic.twitter.com/cLKIOmeSoU
— 電気ひつじ (@teru0x1) August 29, 2019