2024年を振り返る

簡体字中国語からAIで翻訳しました。原文を読む

2024年はいろいろなことがあったので、今年もざっと振り返る記事を書いておこうと思います。

概要

2年生前期の試験前に詰め込んで稼いだGPAのおかげで、2年生後期は聴講免除を申請して、ほとんどの授業を免除された。毎日好きなだけ眠れるの最高すぎる (≧∇≦)ノ

授業がない時間は自分の趣味プロジェクトをがっつり進めていた。WakaTimeでコーディング時間を記録するのが習慣で、WakaTime 2024の年間レポートによると、合計702hコーディングした(インターン先でのコーディング時間は含まれていない。WakaTimeを入れるのを忘れたから 233333)。一番多かった日は12hコーディングした。。

WakaTime Code Insights
WakaTime Code Insights

2023年の振り返りで、chidiwilliams/buzz に似たWhisperのラッパーアプリを作っていると書いた。buzzを意識して、それを「purr」と名付けた。これが今年一番時間を注いだ趣味プロジェクトで、合計206時間。主要な機能はもう完成しているけど、まだいくつか機能と細部を詰める必要がある。書き終わったら紹介記事を書こうと思う。もしかしたら卒業制作になるかも?

2024/3/11 撮影、成都では珍しい青空
2024/3/11 撮影、成都では珍しい青空

4月から5月にかけて、ラボは副学部長に手紙を書いて、ラボのプロジェクトをホストするためのマシンを申請した。その代わりに、学部からラボへ、学校と某自動車メーカーの共同プロジェクトに参加する任務が与えられ、ラボから大部分の人員を出して企業側のメンターと一緒に企業課題をやり遂げ、そのうえでコンテストに参加する必要があった。

実はこういうPPTコンテストにはあまり興味がない。でもラボのマシンのためなら何でもする.jpg

うちのチームのテーマは「大容量ファイルの高信頼転送プロトコル」だった。自分にはあまり考えがなかった。TCPやHTTPでファイルを順番に分割して転送すれば十分だし、これも業界で広く検証されている手法だ。でも企業側は認めず、どうしても新しい方式を作れと言ってきた。

仕方ないので、最後にはQUIC File Transportをこねくり出した。QUICとRaptorQエンコーディングをベースにしためちゃくちゃなやつ。。結局、順番に分割してパケットロス時に再送するのが最適解だということを証明してしまった(逃

実は自分でも信じてない
実は自分でも信じてない

課題の派手な要件を満たすために、このプロトコルはQUIC Streamの信頼できるチャネルで転送情報をやり取りするだけでなく、QUIC Raw Datagram(ほぼUDP)を信頼性のないチャネルとしてファイルブロックの転送に使い、RaptorQで冗長データを生成して再送を減らし、さらに独自の輻輳制御も実装した(一定レートでひたすら送りつけるやつ 23333)。Rust + Tokioで書き、Tauriで適当にUIを作った。聞くからにめちゃくちゃだけど、審査員のおじいさんたちをごまかすには十分だった。。

実はこの結果を得るまでかなり長くテストした。。
実はこの結果を得るまでかなり長くテストした。。

最終的な成果としては、いくつかのプログラミングコンテストで校内1等、省3等、省2等を取った。。収穫は、審査員のおじいさんたちのレベルの下限を目にしたこと。総評としては役に立たないけど、まあラボ専用のマシンを交換で手に入れられた (。^▽^)

そう、ただのPC1台
そう、ただのPC1台

続いて学校のエンジニアリング実践2があって、テーマは何代にもわたって受け継がれてきた企業向けクラウドストレージシステム。最終的にラボの友達とチームを組んでentbaseを完成させた。だいたい2週間ちょっとかかった。昔ながらの画面切り出しとフォーム作成はかなりエグかった。だから年末にエンジニアリング実践3 & 4の履修登録をするときはAI方向を選んだ。画面を切る作業が少しでも減りますように இ௰இ

UIはこんな感じ。自分の審美眼は昔からなかなかだと思ってる 🥰
UIはこんな感じ。自分の審美眼は昔からなかなかだと思ってる 🥰

6月、藍橋杯のWeb部門全国大会に出て、全国1等を取った。順位が上位だったから、授賞式のライブで流れるランキングに自分が見えたのはやっぱり嬉しかった。。。唯一嬉しくなかったのは、学校が賞金を大半削ったこと。

珍しく知乎に感想を書いたので、ここにそのまま転載するね

Web部門で全国1等、小声で回答します

まず、藍橋杯は初参加で、この成績にはもう大満足。試験会場のエアコンの冷風を4時間直に浴びた甲斐があった

CDUTの某試験会場について文句を言うと、最初の1時間は監督の先生がめちゃくちゃうるさかった。次に、マシンはリモートコントロールみたいなクラウドシステムで、遅延と全損画質がとても不快だった。環境も藍橋の要求どおりの最低バージョンでインストールされていて、VS CodeはES2020の新機能に構文ヒントを出さないし、Node 14も本当に耐えがたい。webpackの問題でmatchAllを使いたくても使えなかった

問題量は第14回よりかなり多くて、PDFは51ページになった(第14回は36ページ)。難易度は省大会より少し難しいかな?でもやっぱり主に問われるのは熟練度だと感じた。とにかく自分は全部終わらせるのに間に合わなかった。だいたい8問ちょっと解いた?自己採点は110〜120くらいだと思う

Vueの問題は相変わらずCDN読み込みで、TypeScriptがないとお手上げ。次の大会では何かエンジニアリング的なものを導入してほしいと本当に思うけど、たぶん無理だろうな

それから、ここ半年以上ずっとReactを書いていたせいで、第9問の最後の設問でVueのemitのやり方を完全に忘れてしまって、めちゃくちゃ焦った。10点を痛く失った (⁠´⁠;⁠ω⁠;⁠`⁠)

夜寝付けないうちに書いてみた。だいたいこんな感じかな

zhihu.com/question/657809583/answer/3518246386

6月末、AIOサーバーを組んだ 家に置いた。遊び甲斐がとても高く、いろいろいじった。たぶん2024年で一番価値のある出費。

7月、休みで家に帰り、ラボ向けにCloudflare Serverlessエコシステムをベースにした統合認証システムを作った。TOTPベースで、ステートレスなメール認証コードの案を模索した。

7月末に病院で足の裏のほくろを切除した。回復に何週間もかかった。。

8月末、水草水槽をまたまたリセットした。今回はミクロソリウムとアルゼンチンソードをメインにした半島レイアウトの陰性水槽(もしかしたらADA風?)。動画をいくつか撮ってBilibiliに投稿した~

読み込み中…

新しいタブで開く

読み込み中…

新しいタブで開く

9月に新学期が始まり、免聴申請の手続きを進めながら履歴書を磨いてインターンを探していた。実は2024年の4、5月にはもう履歴書を書き始めていたけど、ずっと準備が足りない気がして応募できずにいた。9月の時点でも自分は準備できていないと感じていたけど、周りの友達がどんどん応募してインターンのオファーをもらい始めていたので、かなりプレッシャーを感じた。最後は粽子のリファラルで、えいやっと最初の履歴書を送った (;´д`)ゞ

9月中旬に思いがけずコルチゾール高値が見つかった。。デキサメタゾン抑制試験をして、最終的には問題なかった。たぶん単に少し不安だっただけかもしれない。

10月初め、まさか順調にオファーをもらった。自分にとっては業界からの最初の承認を得たようなもので、面接官にはとても感謝している。今思い返しても本当に本当に嬉しい~

国慶節のあと、北京へ行った。両親も北京に数日滞在して、一緒にあちこち部屋探しをして借りた。月に何千元もする古くてボロくて狭い部屋は正直かなり微妙だった。でも最終的には価格が手頃で専用バスルーム付きの部屋を見つけた(総合すると月4000弱かかるけど)

北京への道中、とても青い空。

これも北京が自分に残した一番深い印象——ほとんどの時間、澄み切った空がある

11月初、北京に来てまだ間もないのに、オペレーティングシステムの授業で中間試験があるので急いで学校に飛んで帰った。この授業はもともと中間試験が遅めだったこともあり、最終的に学校の中間試験と期末試験の日程が不思議な形でつながって、しかも1週間に1科目ずつ試験があるという状態になった。それで2か月間リモートを申請した(インターン先の友達の中には退職して試験を受けに行くしかない人もいたので、メンターが承認してくれて本当に幸運だった)。もちろん2か月分の家賃は無駄に払った

夕日。帰るといつも特別嬉しい
夕日。帰るといつも特別嬉しい

11月と12月はほぼ1週間に1科目のつらい試験月間だった。最終的な結果は悪くなかった?残念だったのは2科目の考查課(平常評価の科目)で合格点しかもらえなかったこと。。来学期は聴講免除の手続きができなくなったけど、幸いほとんど授業も残っていないのでよし。

2025年1月に試験が終わったあと、また北京に来て対面インターンを続けた。出るときに窓を閉め忘れていて、戻ったら部屋にかなり厚く埃が積もっていて、半日掃除した 😭

プロジェクト

今年も~~(始めるだけで埋めない)~~新しいプロジェクトをたくさん始めた

  • purr

    Whisperベースの字幕生成&編集ツール

  • QUIC File Transport

    純粋にコンテストに出るためだけの、QUICとRaptorQベースのファイル転送プロトコル

  • CD Shelf

    自分のオンラインCD棚。以前Vueで書いた版を置き換えたい

  • wallpaper-rs

    定期的にUnsplash Featured Imageを取得してWindowsのロック画面にする小さなツール

  • Forward Wall

    Traefik ForwardAuth Middleware向けのとても簡易な認証サーバー

  • entbase-fe

    エンジニアリング実践2のクラウドストレージのフロントエンド

  • Lottery

    ラボの説明会の抽選のために書いた、WebSocketベースのオンライン番号発行&抽選Webアプリ

  • Tsunami V3

    ネットで流布しているtsunamiという魔改造BBRモジュールのパラメータをBBRv3に移植し、dkmsでのインストール方法を提供

あとはめちゃくちゃで、始めたきり触っていない恥ずかしいプロジェクトもいくつかあるけど、ここには載せないでおく

今後

// Coming soon...