[{"data":1,"prerenderedAt":31},["ShallowReactive",2],{"blog-index":3},[4,15,23],{"path":5,"title":6,"description":7,"date":8,"tags":9,"status":14},"\u002Fblog\u002Fbuilding-kitsu-desktop-with-tauri","Building Kitsu Desktop with Tauri: A Pipeline TD's First Look at Rust","How I used a small Kitsu desktop client to explore Rust and Tauri, and why removing features made the app more useful.","2026-07-13",[10,11,12,13],"Rust","Tauri","Pipeline","Kitsu","published",{"path":16,"title":17,"description":18,"date":8,"tags":19,"status":14},"\u002Fblog\u002Fbuilding-rv-the-easy-way","Building RV the Easy Way: Abusing CI Minutes Instead of Downloading the World","How I used OpenRV's existing GitHub Actions workflows to build downloadable Windows, Linux, and macOS artifacts without recreating the toolchain locally.",[20,21,22,12],"OpenRV","GitHub Actions","C++",{"path":24,"title":25,"description":26,"date":27,"tags":28,"status":14},"\u002Fblog\u002Fsetting-multiple-houdini-parameters-with-setparms","Setting Multiple Houdini Parameters with hou.Node.setParms()","A practical pattern for configuring Houdini nodes from Python dictionaries, including parameter tuples, validation, and animated parameters.","2026-07-11",[29,30,12],"Houdini","Python",1784707438204]