[Tauri #11] WiredFrame v0.3.0 公開:ぷにぷにゼリーの物理演算を、スクリーンセーバーのモードに追加
Tauri v2製スクリーンセーバーWiredFrameをv0.3.0として公開するまでの実装記録。PBD(Position Based Dynamics)によるゼリーの物理、合体・臨界点・分裂のサイクル、画面の縦横比に合わせた箱、Canvas2DをテクスチャにしてIModeに載せる方法、Nodeでの検証と、分裂フェーズが止まった不具合。
Tauri v2製スクリーンセーバーWiredFrameをv0.3.0として公開するまでの実装記録。PBD(Position Based Dynamics)によるゼリーの物理、合体・臨界点・分裂のサイクル、画面の縦横比に合わせた箱、Canvas2DをテクスチャにしてIModeに載せる方法、Nodeでの検証と、分裂フェーズが止まった不具合。
Windows用スタートメニューランチャーDDlauncher(Rust + Tauri v2)の実装記録。2回目の起動で開閉する方式とガード、フォーカス喪失で閉じる処理の例外、.lnkとAppsFolderの一覧、アイコン取得の失敗と対策、タイル配置エンジン、検索の並び順、ホットキー、ブックマークのコマンド実行、バックアップ、NSISインストーラー、tauri-buildがアイコンの変更を検知しない件など。
Tauri v2製スクリーンセーバーWiredFrameをv0.2.0として公開するまでの実装記録。IModeとNOISE_MODESによるモード追加、ParamDefから設定パネルのスライダーを自動生成する設計、描画解像度とFPS上限、カメラなし全画面シェーダー、万華鏡モードの試行錯誤、無操作起動をESCのみ終了にした変更。
Tauri v2製スクリーンセーバーWiredFrameをv0.1.0として公開するまでの実装記録。モニター識別キー、設定スキーマv2、列数・行数とカメラ自動フィット、ケーブル抜き差しへの追従、GetLastInputInfoによる無操作検知、ハマった点とリリース手順をまとめる。
Tauri v2でのマルチモニター制御の壁、非アクティブウィンドウのフルスクリーン拒否、available_monitorsとPhysicalPosition/PhysicalSizeによる正確な配置、F11キー連動の実装、シングル/マルチモード切り替えまでの全記録。
Windows用ホットキーランチャーHotRun(Rust + Tauri v2)の実装記録。RegisterHotKeyの専用スレッドとメッセージループ、keyCodeでのキー入力、設定JSONの検証と原子的な保存、全組み合わせへの登録で使用中のキーを集める方法、グループ名の食い違いのバグ、押して確認の仕組みと限界、GitHub Actionsでのリリースなど。
Windows用の軽いキャプチャアプリshotkey(Rust + Tauri v2)の実装記録。GDIで画面を固めてからの切り出し、モニタごとの重ね画面とcanvasの座標換算、windows-captureでのH.264録画、範囲録画の行の向き、WASAPIループバックの無音の埋め方、content_protectedで録画に写らない小窓、リリースの下書きの見落としなど。
WinRAR置き換えのアーカイバTote(Rust + Tauri v2)の実装記録。エクスプローラーの複数選択を1つにまとめる方法、7zのブロック復号で起きる取りこぼし、ISO 9660 / Joliet / Rock Ridgeの読み方、ZIPへの安全な追記、7zにはパスワード検査値がないこと、WindowsのCIだけで落ちたリンクエラーなど。
CDDBとFreeDB終了の経緯、MusicBrainzへの乗り換え、IOCTL_CDROM_READ_TOC と RAW_READ を非管理者で叩く方法、MusicBrainzのディスクIDの計算、ストリーミング再生への作り直し、WebView2でダウンロードが動かない件など、作って公開するまでの記録。
キー割り当て表、非破壊編集、WebKitでWebPが書き出せない問題、MSIを諦めてNSISにした話、タグの打ち直しで踏んだ罠など、作って公開するまでに踏んだポイントのまとめ。
Electron製の撮影ツールFrameshotの実装記録。iframeが拒否される・getDisplayMediaは画面に見えている範囲しか録れないというブラウザ版の限界、WebContentsViewで外部サイトを枠に入れる構成とmascotとのセキュリティ設定の違い、Emulation.setDeviceMetricsOverrideのscaleによる縮小プレビューと撮影時の実寸への切り替え、Page.captureScreenshotとsharpによる静止画、Page.startScreencastの取得方式を比較したスパイク結果、最新フレームを一定間隔でffmpegのstdinに流すrawvideoエンコード、ffmpeg-staticの同梱とasarUnpack、setDisplayMediaRequestHandlerで枠のページの音声だけを返すMediaRecorder録音、echoCancellation・noiseSuppression・autoGainControlを切る理由、-shortestとapadとc:v copyが終わらない問題、Xvfbでの自動検査、electron-builderと署名なし配布、GitHub ActionsでのmacOS/Linuxビルドをコード付きで解説。
Electron製デスクトップマスコットのv1.5.0の実装記録。ボイスパックのセリフをVOICEVOXで合成してwavと差し替える処理、メインプロセスでの合成結果のキャッシュ、「(笑)」のような読めないセリフの扱い、voice・ttsEngine・muteを1つの選択に見せる設計、Electron Menuのサブメニューとラジオで作るキャラごとの右クリック設定、右クリックと設定ウィンドウの操作を1つのIPCにまとめる方法、VS Code追従をキャラごとにした理由と旧設定の引き継ぎ、ライブラリの同名上書き、GLBのヘッダとJSONチャンクだけを読んでVRM 0.x / 1.0の埋め込みサムネを取り出す処理、nativeImageでの縮小、CSS Gridのauto-fillとline-clampによるエクスプローラ風の一覧、ドロップで付けるthumb.*をJavaScriptコード付きで解説。
Electron製デスクトップマスコットのVRM対応と複数キャラ表示の実装記録。Electron 30→44で変わったLinux(Wayland/ozone)・roundedCorners・console-message、ChromiumのSwiftShaderフォールバック廃止とenable-unsafe-swiftshader、formats.jsとアダプタによる形式の分離、正射影カメラでVRMを拡大しない理由、VRM 0.xの正規化ボーンのx・z回転の符号、VRMAを立ち姿に戻してから重ねる理由、ルートモーションの除去、electron-builderがnode_modulesのexamplesを除外する問題、characters.jsonと代表・話す順番のIPC設計をJavaScriptコード付きで解説。
Electron製Live2Dマスコットと自作VS Code拡張をWebSocket(127.0.0.1・Origin拒否・トークン認証)でつなぐ実装記録。config.jsonとbridge.jsonを分けた理由、Node 22標準WebSocketで依存ゼロの拡張、extensionKind uiによるWSL対応、Shift_JISのZIPとTextDecoderのfatalの罠、pixi-live2d-display 0.4.0のvalidateFilesが日本語ファイル名で必ず失敗するバグ、頂点から描画範囲を測る吹き出し位置の修正、設定ウィンドウの分離、moc3ヘッダーによるCubism 5.3形式の判定、3台同時ビルドでのv1.2.0リリースをJavaScriptコード付きで解説。
Electron初挑戦で作ったLive2Dデスクトップマスコットの実装記録。setIgnoreMouseEventsとreadPixelsによるピクセル単位のクリック透過、PowerShell常駐+DwmGetWindowAttributeによるVS Codeウィンドウ追跡とDPI換算、pixi-live2d-display 0.4とCubism Core 6の非互換、Idleグループのないモデルへの対処、声・字幕・しぐさを分離したボイスパック設計、Web Audioの音量解析による口パク、メインプロセス経由のVOICEVOX連携、adm-zipによるモデル取り込み、electron-builderでのWindows/macOS配布、skipTransformProcessTypeなどmacOS固有の罠をJavaScriptコード付きで解説。
テストオラクルと仕様書駆動開発、ドキュメント化されていないフラグと命令(X/Yフラグ・IXH/IXL)、ZEXDOC/ZEXALLのCRC検査の仕組み、Node.jsでのCP/M BDOSトラップ実装、DAA・BIT・16ビット加算・DD CBプレフィックスの典型バグ、SingleStepTestsによる命令単位の差分デバッグ、T-State・I/O・割り込みなどZEXDOCが検査しない領域をJavaScriptコード付きで徹底解説。
並列(Parallel)と並行(Concurrent)の違い、マスター/スレーブ構成、クロックの異なるCPUを共通時間軸で進めるスケジューラー、クォンタムと同期誤差の関係、共有RAMのハンドシェイク問題、サウンドラッチとNMIによるコマンド通信、キャッチアップ同期とインタリーブの一時増加をJavaScriptコード付きで徹底解説。
離散信号とサンプリング、周波数計算式(f = Clock / (32×N) / (16×N))、矩形波・LFSRノイズ・2dB刻み減衰テーブル、Game Gearステレオ、SCC/WSG波形メモリ、エイリアシング対策、CPUサイクル付きレジスタキューによるAudioWorklet再生をJavaScriptコード付きで徹底解説。
localStorage.clear()の地雷、WKWebViewでのTouchEvent、requestAnimationFrameと時報、ウィンドウ間のイベント同期、Windowsでのウィンドウ生成デッドロックなど、Web→デスクトップ移植で踏んだポイントまとめ。
CRT走査線とV-Blank/H-Blankの仕組み、VRAM構造(パターンテーブル・ネームテーブル)、スプライトの走査線制限と衝突判定、ゲームギアMode 4の画面クロップ(160x144)、JavaScriptによるスキャンライン単位のグラフィック描画コードを徹底解説。
JavaScriptのイベントループにおけるタイマー精度の問題、Z80/6502のCPUクロック(T-State/Cycle)と60fpsフレーム同期の原理、AudioWorkletのサンプルバッファ主導クロック制御、フレームスキップと処理落ち対策コードを徹底解説。
HLEとLLEのアーキテクチャ比較、実機BIOSの役割と処理の代替、Direct BootにおけるCPUレジスタ・メモリ初期化手順、BIOSサブルーチン呼び出しのトラップ(HLEフック)手法をJavaScriptコード付きで徹底解説。
16ビットアドレス空間の制限、物理メモリと論理メモリのマッピング原理、MSXのメガROMマッパー(Konami/ASCII)やセガのバンク切り替え構造、JavaScriptエミュレーターでの参照切り替えによる$O(1)$メモリアクセス実装コードを解説。
ポーリングと割り込みの違い、Z80 CPUのINT/NMIライン、IM 0/1/2モードの挙動、EI/DI命令とiff1/iff2フラグの制御、V-Blankやキー入力をWeb上で正確に模倣するJavaScriptコードを解説。
Z80エミュレーターにおけるAND/OR/XOR/シフト演算の役割、0xCB/0xDD/0xFDプレフィックス拡張のデコード構造、switch/caseからルックアップテーブルへのリファクタリングによる命令実行の高速化をJavaScriptコード付きで徹底解説。
CPUがメモリから命令を読み出して実行する命令サイクルの原理、プログラムカウンタ(PC)の推移、クロックサイクル(T-State)のカウント管理と、JavaScriptによるZ80エミュレーターの実行ループコードを徹底解説。
CPUがメモリや周辺機器とデータを送受信するバス制御の仕組み、16ビットアドレスと8ビットデータの物理的制約、リトルエンディアンの理由、Z80におけるIN/OUTポート分離設計をJavaScriptコード付きで徹底解説。
8ビットCPU(Z80)のレジスタ構造、2の補数表現による負の数の扱い、Carry/Zero/Sign/Overflowフラグの決定論理をJavaScriptによるエミュレーター実装コードを交えて徹底解説。
3D Model Explorer — Linux版がそのままMACで動いた記録
3D Model Explorer — WPF → Avalonia UI でのLinux移植記録 #02
3D Model Explorer — VRM/PMXファイルのサムネイル一覧・管理デスクトップアプリの開発記録 #01
Win32 HID APIを利用してWindows環境でApple Magic Keyboardのバッテリー残量を監視するC#常駐アプリの実装。排他制御の回避、Report IDの特定、メモリ上での動的アイコン生成などを実装ベースで解説します。
VC++6.0時代のDLL(Dynamic Link Library)の思い出から、LoadLibrary()によるメモリ展開の泥臭さ、そしてThree.jsやWasmといったモダンなモジュールシステムへの思想の継承について。
macOSPrivateApiの設定や-webkit-app-regionによるドラッグ制御など、実機デバッグで判明したTauri v2のTips。
Tauri v2のクロスプラットフォームビルドを自動化するための完全なGitHub Actions設定ファイルと、つまずきやすいエラー(識別子、アイコンパス、Linux依存ライブラリ)の解決策をまとめました。
Web技術でデスクトップアプリを作るTauriの実践編。Astroで作った時計を移植し、背景の完全透過、ドラッグ移動、スライダーによるウィンドウのリサイズなど、ガジェット化に必要な設定を解説します。
JavaScriptとTauriを組み合わせ、OS標準の枠を排した透過型デジタル時計を作成する手順をまとめました。Rust環境のセットアップから実用的なガジェットのビルドまで網羅しています。
ルネ・デカルトが生み出したデカルト座標系は、単なる数学的手法ではない。Three.jsでの3D座標、カメラ制御、UI配置を通して見えてきた、数学と哲学が交差する地点を辿る。
ブロック崩しの起源(PONG/Breakout)とアルカノイドの位置づけを整理し、ゲームのルールと表現の違い、テトリスが著作権問題になりやすい背景、オリジナルとして成立させるための注意点を実装者目線で解説する。
仕様書とプロトタイプのバランスを取ることで、開発サイクルを加速し、品質の高いプロダクトを生み出す方法を探ります。アジャイル開発の視点からも解説。
フィーチャーフラグを使用することで、新しい機能のリリースを安全に行い、段階的な公開やA/Bテスト、リスク管理が可能になります。この記事ではその基本的な概念、利点、実装方法について紹介します。
Reactでのフォーム処理とバリデーションを中心に、ユーザー入力を受け取るフォームの作成、送信処理、エラー表示、そしてReact Hook Formなどのライブラリによる効率的なフォーム開発の手法を紹介します。
React Routerを利用して、シングルページアプリケーション(SPA)のページ遷移を簡単に実装する方法を学びます。ダイナミックルートやパラメータ付きURLの設定も紹介します。
ReactのuseEffectを使った副作用(データ取得、DOM操作、ライブラリとの連携)を実践的に学び、Reactコンポーネントのライフサイクル管理と最適化の方法を深掘りします。
Reactにおけるコンポーネントのネスト構造、親から子へのデータの渡し方(Props)、子から親へのイベント通信方法(Callback関数)、複数のコンポーネントで状態を共有する方法(Context API)について深く学びます。
CSSのインラインスタイルについて、基本から応用まで、動的なスタイル変更やJavaScriptとの連携まで詳しく学びます。
Reactでのイベントハンドリングと状態管理の基本を学ぶ。useStateフックを使った状態管理、ボタンクリックやフォーム入力による状態変更を通じて、動的なUIの作成方法を解説します。
このシリーズでは、ReactのコンポーネントとJSXの使い方に焦点を当て、UI開発の効率化を目指します。Reactの基本的な要素を理解し、最初のReactコンポーネントを作成する方法を学びましょう。
TypeScriptのインストール方法、型の使い方、関数やオブジェクト型、非同期処理、ジェネリクス、Reactとの組み合わせまで幅広く解説します
CSSを使いこなすための実践的な講座。CSS-in-JS、Tailwind CSS、Sassなどを活用したフロントエンド開発の方法を深堀り。実際のコード例を交え、UIデザインやレスポンシブレイアウトの作成方法を学びます。
ChatGPT-5に他人の配信映像を見せたところ、思わぬ形で本格的な弾幕シューティングが生まれた。その生成過程とプレイ後の考察を記録する。
BASICはなぜ広がり、なにを残したのか。Dartmouth BASICの起源、Altair BASICとMicrosoft BASIC、GW-BASIC/QBasic、MSX BASIC、当時の雑誌文化まで、手を動かしながら理解するための実践的ガイド。
TIOBE IndexでPerlが27位から10位に躍進。Perlと共に歩んできた筆者が、TIOBE・PYPL・RedMonk・Stack Overflow Surveyといったランキングを比較し、その背景と実態を深掘りします。
GPT-5-CodexはClaude Codeを超えたのか?性能・用途・安全性・開発体験の観点から徹底比較。最新のベンチマークやコミュニティの声も交えてまとめました。
Chrome拡張機能の作り方を、初心者向けに最小構成で解説します。manifest.json・popup.html・popup.jsの3ファイルでHello Worldを表示し、さらに背景色を変える簡単な応用も紹介。自作拡張の第一歩に最適なチュートリアルです。
Win32APIはもはや古い技術なのか? 2000年以前に苦しみながら叩いたAPIが、25年後の今なお開発に役立っているという経験をもとに、Win32APIの思想と仕組み、そして現代的な技術(Web、Electron、WASMなど)との接続点を考察。自分の「過去のスキル」が無駄でなかったことを実感する記事。
PCでは見えるのにiPhoneのGmailアプリでは画像が表示されない…HTMLメール特有の落とし穴と、CIDインライン添付+width指定による安定表示の方法を解説。Pythonコード付きで再現・解決手順をまとめました。
スクショを見せただけでChatGPT5が作ったタワーディフェンス。その実態は、勝利条件のない“必敗型”ゲームであり、プレイヤーをじわじわ追い詰めるサイコホラー体験だった。
文字化けの原因を歴史的背景から整理し、WindowsとPythonにおけるUnicodeの落とし穴と実務的な回避策を具体例とともに解説する記事。Real-ESRGANを日本語ファイル名で動かした際のトラブルをケーススタディに、ASCII一時退避やUTF-8統一の重要性を示す。
競技プログラミングで頻出の「セグメントツリー」。この記事では、a〜z の文字の種類数を区間で数えるという具体的な例を元に、ビット管理 + OR演算 + popcount によるセグメントツリーの活用法を図解付きで丁寧に解説します。
JavaScriptを“ただのブラウザ用言語”から“世界を変える言語”に変えたNode.js。その誕生の背景から爆発的成長、PHPとの違い、現代のAI時代における役割まで──Node.jsの進化と時代性を一気に俯瞰できる解説記事です。
本記事では、ゲームのサウンドテスト画面を題材に、CSSでの基本レイアウト設計を実践的に学びます。flexとgridの使い分け、スクロール領域の制御、カードUI配置、モーダル表示、レスポンシブ対応など、現代的なUIの基礎を網羅。
本記事では、ゲーム開発中に躓いたCSSについて、「どこでハマったか」「なぜそうなるのか」「どう対処したか」を、実践ベースでわかりやすく整理。初心者から中級者にステップアップしたい人へ、自分自身への備忘録も兼ねたメモシリーズの第1回。
WAVファイルを指定のビットレートでOGGへ一括変換するPythonスクリプトの紹介
コマンドプロンプト 及び powershellを起動時にまとめてタブ化する方法と、Pythonで普段よく使うアプリを一括起動するスタートアップスクリプトの紹介
バイブコーディング × Cursor 入門講座 05 スマホアプリ開発 スマホブラウザ(レスポンシブ+PWA)
MP3ファイルを指定のビットレートで一括変換するPythonスクリプトの紹介
バイブコーディング × Cursor 入門講座 04 「ゲーム制作にチャレンジ」
バイブコーディング × Cursor 入門講座 03 「Webで動くチャットUIを作る」─ 静的サイトでもリアルに動く!AI対話UIのはじめかた
バイブコーディング × Cursor 入門講座 02 (実践の次へ ─ 応用・連携・理解を深める)
バイブコーディング × Cursor 入門講座 01 (Cursorの導入と基本操作)
バイブコーディング × Cursor 入門講座(ガイダンス)
アイキャッチ画像のサイズダウン用にPythonで、画像変換スクリプトを作成したメモです。