Target and Observation Management (TOM)
天文学者は、観測ターゲットのリスト、可視時間帯、望遠鏡のスケジューリングを、いまだにほぼ手作業で回しています。TOM はそのすべてを一か所に集約するシステムです。Django + PostgreSQL に Next.js のフロントエンド、Docker と Nginx でデプロイし、国立中央大学の天文学者向けに本番稼働しています。デプロイの全工程は記事にまとめています。
これまで作ってきたもの。どれも公開中で、一部のソースは GitHub にあります。
天文学者は、観測ターゲットのリスト、可視時間帯、望遠鏡のスケジューリングを、いまだにほぼ手作業で回しています。TOM はそのすべてを一か所に集約するシステムです。Django + PostgreSQL に Next.js のフロントエンド、Docker と Nginx でデプロイし、国立中央大学の天文学者向けに本番稼働しています。デプロイの全工程は記事にまとめています。
履歴書が語るのは本人の主張で、個人サイトが見せるのは実際の作り方です。これがそのサイト——タイトルカードを玄関に据えた、三言語(中 / 英 / 日)の Next.js ノートです。段落単位で対訳を並べる翻訳システム、その場で動く GLSL / 3D ギャラリー、そして Gemini API につないだ AI チャットを載せています。チャットに渡すのは履歴書と全記事の要約、加えて質問とキーワードが一致した最大 2 本の記事本文で、メインのモデルが失敗したときは別モデルへ自動で切り替わります。成果物は、いまご覧のこのサイトそのものです。
ファンは VTuber が歌った曲のタイムスタンプを、YouTube のコメント欄に一曲ずつ残してくれます。宝の山ですが、コメントの中に埋もれたままです。Utano Track はそのタイムスタンプを収集してクリックできる索引にまとめ、各パフォーマンスへ直接ジャンプできるようにしました。utanotrack.fans で公開中。
歌で日本語を学ぼうとすると、歌詞を探すために何度も再生を止めることになります。Let’s Sing Together は YouTube の再生位置と、いま歌われている歌詞の行を同期させ、リアルタイムで目で追えるようにしました。Next.js + TypeScript、Vercel で公開中。
ランキング表の壁とにらめっこしながら大学院を選ぶのは苦行です。Folium は QS 物理・天文学トップ 100 の研究機関を 1 枚のインタラクティブな世界地図に載せ、分野全体を地理的に見渡せるようにしました。Python + Folium。