こんにちは!マイクです!今日は2025年10月2日、曜日は水曜日です。さて、今日の「zenncast」では、Zennで話題になったトレンドの記事をいくつかご紹介しますよ。
前回紹介した記事は、「全プロセスが一秒止まる不具合、原因はLinuxカーネルにあり?」や「Codex CLI を初めて使う人向けの実践ガイド」、そして「DuckDB-Wasm, MapLibre GL JS, CloudFlare Pagesを使って、オープンデータを可視化してみたときの学び」でした。気になる内容ですね!
それでは、今日は5つの記事をご紹介します。まず、1つ目の記事からいってみましょう!
今日ご紹介する内容は、まず最初の記事です。タイトルは「ライブカメラに映った落雷をAmazon Novaで検出する試み」です。このプロジェクトは、ウェザーニューズが日本国内の2000ヵ所以上に設置したライブカメラを活用して、落雷を検出する試みです。落雷が発生した地点周辺のカメラ映像を解析し、落雷イベントを特定することを目的としているんですよ。
検出プロセスは3つのステップから成り立っています。まず、落雷が発生した地点の周囲4km内にあるライブカメラを選定し、5分間の映像を録画します。その後、録画した映像から輝度がスパイクした部分を特定し、その前後を切り出すんです。このスパイクの検出には、ffprobeを用いてフレームごとの輝度を評価し、99.5パーセンタイルを超える輝度差を基にしています。そして最後に、切り出した映像をAmazon Novaで解析し、落雷の有無を判断します。
このプロジェクトは、ライブカメラを通じた気象情報の提供をより充実させることが期待されています。それでは、次の内容に進みましょう!
。...。
次の記事は「Next.js × Hono × モノレポで実践する「リアルオプション戦略」:初期の開発速度と将来の柔軟性を両立させるWebシステム設計」です。この記事では、ASSIGN社が新卒就活支援事業の業務管理システム開発で採用した「リアルオプション戦略」に基づく技術選定について詳しく説明しています。
プロジェクトは2025年6月に開始し、2026年1月の正式リリースを目指していますが、限られたリソースと変動する顧客ニーズに直面しています。そのため、初期の完璧なシステム設計は非現実的と判断し、将来の変更可能性を確保する設計思想を導入しました。
リアルオプション戦略では、すぐに最適な選択を取らず、状況が明確になった時点で意思決定できるよう選択肢を残しておくアプローチが重要です。技術や設計を固定せず、疎結合なアーキテクチャを採用して、後戻りできる設計を目指しています。
モノレポ構成を採用し、開発効率を向上させるために、フロントエンドにはNext.js、バックエンドにはHono、ORMにはPrismaを選定しました。Honoの軽量性とポータビリティが特に重視されています。将来的には、モノレポからマイクロサービスへの移行も視野に入れています。
それでは、次の内容に進みますね!
。...。
3つ目の記事は「【Tauri】Rustから低遅延にフロントエンドにデータをストリーミングする」です。このプロジェクトでは、OSC(Open Sound Control)プロトコルを使い、Rustで受信したデータを低遅延でフロントエンドにストリーミングする方法が紹介されています。
まず、RustとJavaScript間でデータをやり取りするために共通のデータ型を定義しました。Rustでは`OscEvent`という列挙型を作成し、シリアライズには`serde`を使用しています。フロントエンドでは、型を一致させるためにTypeScriptで同様の構造を定義しました。
UDPソケットを使ってOSCメッセージを受信し、フロントエンドとの通信チャネルを管理するロジックを実装しました。Rust側では、グローバルなリスナーとチャネルを管理するために、スレッドセーフな設計をしています。受信したOSCメッセージは、フロントエンドにイベントとして送信されます。
フロントエンド側では、`useOsc`フックを用いてRust側のチャネルを登録し、受信したOSCメッセージをリアルタイムで処理します。これにより、接続状態や最新の受信データを管理できるんです。動作確認を行った結果、遅延はほとんど体感できないレベルで実装が完了し、今後はさらなる機能追加を検討しています。
次の記事に行きましょう!
。...。
4つ目の記事は「C++を使った数値計算ライブラリの整備で辛かったこと」です。著者はC++における数値計算ライブラリの開発において、10年以上の経験を基に様々な課題に直面したことを述べています。
まず、標準的なパッケージマネージャーが不在であるため、巨大なモノリシックなライブラリが生まれやすくなっている点や、ビルドシステムの複雑さが初心者にとってハードルが高いこと、メモリ安全性の問題などが挙げられています。また、多次元配列と線形演算のサポート不足や、ドキュメント作成の標準化不足も大きな課題です。
著者はこれらの課題を克服するための改善策を模索し続けていますが、C++の特性による困難が依然として大きな障害となっているようです。
では、最後の内容に移りましょう!
。...。
5つ目の記事は「【保存版】Convex × TanStack Start × Better Auth 認証実装ガイド」です。このガイドでは、Convex、TanStack Start、およびBetter Authを用いた認証機能の実装手順を詳しく紹介しています。
まず、Convexで認証処理の核となるBetter Authを統合し、TanStack Startでのクライアント定義とURL設定が必要です。技術スタックはバックエンドにConvex、フロントエンドにTanStack Startを使用し、`Authorized`コンポーネントでのセッション判定から始まります。
実装手順には、環境構築、Better Authの導入、GitHub OAuth設定、セッション取得処理の実装などが含まれています。特にConvex側の環境設定とコード実装が重要で、安定版に移行すれば`beforeLoad`を使用することを考慮しています。
このガイドが、同技術を用いるエンジニアにとって参考になれば嬉しいですね!
それでは、今日はここまで!今日ご紹介した記事を駆け足でおさらいしましょう。まず、落雷をAmazon Novaで検出する試み、次にリアルオプション戦略に基づくWebシステム設計、OSCプロトコルを使ったデータのストリーミング、C++の数値計算ライブラリの課題、そして最後にConvexを使った認証実装ガイドでした。
次回もお楽しみにしていてくださいね!詳しい内容はショーノートに書いてありますので、ぜひチェックしてください!番組の感想もお待ちしています。それでは、またね!