難しい課題のための洗練された解決策。
RevoTale はソフトウェアシステム、実用的なツール、オープンソースプロジェクト、公開ノートを作るソフトウェア組織です。その多くは、重いコードや壊れやすいコードを、より単純で高速なシステムに置き換える仕事です。
このサイトはRevoTaleの公開ルートを一つの構造にまとめています。ソフトウェアシステム、ノート、オープンソースコード、サービス、ツールです。それぞれの方向に専用セクションがあります。
ゲーム
ブラウザでオンラインプレイできるゲームを開発しています。

Battleship by Link
友だちに退屈なテキストを送るだけでは物足りませんか?招待リンクを共有して、一緒に海戦ゲームを遊べます。アプリのダウンロードは不要で、どのデバイスでも動く軽量なブラウザーゲームです。
ブログ
ITに関するメモ、ニュース、科学、経験、考えを共有しています。
安定したデフォルト選択としてのDebian 13(Trixie)
どのLinuxディストリビューションを使うべきか迷っているなら、Debian 13(Trixie)を使えばいいです。 これは現在の安定版リリースです。数か月ごとにアップグレードのことを考えなくて済むくらい、十分長くサポートされ続けます。 この選択の理由: * どこでも動く: サーバー、VPS、クラウドイメージ、Raspberry Pi(Pi OSは2026年4月時点でこれをベースにしています) * Devcontainersはすでに `debian-13` / `trixie` をサポートしている *...

Pironman 5 サービス: RAM を減らすため Go で書き直し
Raspberry Pi 5 サーバーで SunFounder Pironman 5 を使っていて、ケースのハードウェア自体は本当に気に入っています。気に入らなかったのはソフトウェアのオーバーヘッドでした。 元の Python ベースのサービスは、ファン制御、RGB、OLED ページ、設定、ログ、デーモンのために、およそ `70-110 MB` の RAM を使っていました。このサービスが実際にやっていることに対しては、重すぎると感じました。 そこで、自分用に Pironman 5 essentials...
映画評価:2026年のリスト(2026年4月6日現在)
- Oldboy (2003) — 9/10 - Hamnet (2025) — 9/10 - Sin City (2005) — 8/10 - Perfume: The Story of a Murderer (2006) — 8/10 - Dorian Gray (2009) — 8/10 - Out of Sight (1998) — 8/10 - War (2007) — 8/10 - Vanilla Sky (2001) — 7/10 - Argo (2012) — 7/10 - Crank...
Docker :latest タグはデプロイにおける動くラベル
デプロイには \`:latest\` タグを使わないでください。 \`latest\` はバージョンではありません。動くラベルです。システムが動かす外部バージョンは、バージョン管理で定義すべきです。イメージが変わるなら、Compose ファイルも変わるべきです。 はい、手動でアップグレードするのは面倒なこともあります。それでもやる価値があります。バージョンを固定すれば、安定したデプロイ、予測可能なロールバック、明確なアップグレード手順が得られます。 それはツールを有用にもします。Renovate...
作業中:No-JS Webフレームワーク
ブログの内部マイクロWebフレームワークを別プロジェクトとして切り出し始めました。 この新しいフレームワークは、サーバーの実行環境からJavaScript(Node.js)を排除するために作ったので「No-JS」と名付けました:https://github.com/RevoTale/no-js

ブログ移行後の robots.txt インデックス問題
以前 https://l-you.revotale.com に影響したのと同じ `robots.txt` の問題が、新しいデザインと技術スタックでブログを https://blog.revotale.com へ移行した後にまた発生しました。原因も同じ種類の設定ミスでした。今回はインフラを修正し、二度と起きないようにしました。 長時間のデバッグと何度もの試行の後でも、Google は依然として `robots.txt file` の再クロールを拒否しています。前回と同様に、また 5...
Sea Battle Game は移転しました
Sea Battle Game は https://revotale.com/sea-battle-game のURLから https://sea-battle.revotale.com/en/ へ移転しました。現在、Webクライアントは https://revotale.com のWebサイトから切り出し、別個の社内リポジトリとして構築しています。

Redditのダッシュ・バイアス: 否認とデータを考える
r/ChatGPT コミュニティでの the post about dashes に関する所感と統計をいくつか共有します。 その投稿の賛成率が今日 44.5% で落ち着いたのに気づきました。正直、少しがっかりです。 Reddit で私が目にして分析している投稿に基づけば、in the thread のコメントが何と言おうと、傾向は否定しようがありません: 人はダッシュを目にした瞬間、その投稿を AI だとみなしがちなのです。はっきり存在するパターンをコミュニティが認めたがらないのは残念です。...

Next.js ランタイム: なぜ軽量化に失敗したのか
目標 本番運用中の NextJS アプリケーションを、重量級の Node.js `standalone` ランタイムから軽量なアーキテクチャへ移行しようと試みた。目的は、NextJS の `output: 'export'` を用いて静的アセットを生成し、それらを同じ Docker イメージにバンドルした軽量なカスタム Go サーバーで配信することだった。 そのアプリは、8 つのロケールをサポートする複雑な国際化対応サイトだった。主要要件はユニバーサルビルドを維持することだった。つまり、再ビルドなしで各ステージ...
プログラミングの課題ラベル: バグ、新機能、改善、保守
ITプロジェクトで作業する際に、ラベル "bug"、"feature"、"improvement"、"chore" をいつ使うかの説明。 * 期待どおりの動作が壊れており、それを復元する変更の場合は "bug" を使用します。例: チェックアウトのクラッシュ修正、誤った出力値の修正、セキュリティ脆弱性のパッチ適用。 * エンドユーザーの新しい機能を導入する変更の場合は "feature" を使用します。例: ウィッシュリストの追加、新しい決済方法の導入、新規APIエンドポイントの提供。 *...
オープンソース
私たちは、世界がより速く前へ進めるように、オープンソースコミュニティとコードを共有しています。

Obsidian Folder By Tags Distributor Plugin
タグに基づいてObsidian Vaultのノートを自動的にフォルダーへ振り分け、フォルダー構造をタグ構造と揃えます。

Lovely Eye
自分でホストできるシンプルなダッシュボード付きの、プライバシー重視のオープンソース分析ツールです。

Google reCAPTCHA V3 for React
UXやPage Speed Scoreを犠牲にせず、任意のReactアプリケーションへInvisible Google reCAPTCHAを統合できます。

Scroll restoration for Next.js
Next.js向けのスクロール復元を、壊れやすいネイティブ動作の本番向け代替としてゼロから構築しました。
ツール
日々の作業を簡単にするツールです。

Record Randomizer
項目のリストを入力し、ホイールを回してランダムに選ばれた行を取得します。抽選、意思決定、素早いランダム選択に最適です。

URL Encoder/Decoder
プログラミングの知識なしでURLエンティティをデコードまたはエンコードできるシンプルなツールです。

Video Speed Changer
動画の速度をブラウザー内で直接変更できます。処理はWASMを使ってデバイス上で行われるため、データはどのサーバーにも送信されません。

Screen Fill Gallery
画像をアップロードし、アスペクト比を保ったまま画面全体を均等に埋めます。没入感のあるフォトギャラリーに最適です。