[{"data":1,"prerenderedAt":72},["ShallowReactive",2],{"$f1sneun3708n27":3},[4,18,32,46,59],{"title":5,"date":6,"tags":7,"categories":11,"_id":13,"slug":14,"path":15,"excerpt":16,"readingTimeMinutes":17},"Cosine-similarity for song suggestion on tabs.garden","2026-06-04T00:00:00.000Z",[8,9,10],"ml","tabs","music",[8,12],"web","content:blog:tabs-garden-tab-suggestions","tabs-garden-tab-suggestions","\u002Fblog\u002Ftabs-garden-tab-suggestions","A new feature just landed on tabs.garden where a user is suggested similar tabs in the sidebar. This was implemented in a very simple way (spoiler: using JSON files and a rudimentary cosinesimilarity score), but I was very pleased by the result.",4,{"title":19,"date":20,"tags":21,"categories":24,"draft":26,"_id":27,"slug":28,"path":29,"excerpt":30,"readingTimeMinutes":31},"Hiding the Bee Movie transcript with steganography","2026-05-26T00:00:00.000Z",[22,23,12],"python","steganography",[25],"programming",false,"content:blog:steganography-bee-movie","steganography-bee-movie","\u002Fblog\u002Fsteganography-bee-movie","You probably didn't realize it, but the static noise visible on the home page of this website is not just noise. It's actually the entire script of the bee movie encoded with a technique called steganography.",2,{"title":33,"description":34,"date":35,"tags":36,"categories":40,"external_url":41,"external_site":42,"_id":43,"slug":44,"path":45,"excerpt":34,"readingTimeMinutes":31},"Dagster's AI-powered strategy to scaling documentation","How smart information architecture and AI assistants help a small team answer 16,000 community questions a month.","2025-12-16T00:00:00.000Z",[37,38,39],"ai","docs","education",[37],"https:\u002F\u002Fallthingsopen.org\u002Farticles\u002Fscaling-documentation-without-scaling-team-dagster","All Things Open","content:blog:scaling-documentation-without-scaling-your-team","scaling-documentation-without-scaling-your-team","\u002Fblog\u002Fscaling-documentation-without-scaling-your-team",{"title":47,"description":48,"date":49,"tags":50,"categories":51,"external_url":52,"external_site":53,"_id":54,"slug":55,"path":56,"excerpt":57,"readingTimeMinutes":58},"Using Codex for education at Dagster Labs","How we structure docs so AI tools can reason with them effectively.","2025-10-27T00:00:00.000Z",[37,39],[37],"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-for-documentation-dagster","OpenAI Developer Blog","content:blog:using-codex-for-education-at-dagster-labs","using-codex-for-education-at-dagster-labs","\u002Fblog\u002Fusing-codex-for-education-at-dagster-labs","I recently had the opportunity to showcase how we use Codex for educational content at Dagster Labs which was featured on the OpenAI developer blog; you can find a full copy of that post below.",7,{"title":60,"date":61,"tags":62,"categories":66,"_id":68,"slug":69,"path":70,"excerpt":71,"readingTimeMinutes":31},"Render three-dimensional models in `NuxtContent` with p5.js","2024-12-31T00:00:00.000Z",[63,64,65],"nuxt","p5js","3d",[67],"examples","content:blog:nuxt-p5js-3d-models","nuxt-p5js-3d-models","\u002Fblog\u002Fnuxt-p5js-3d-models","Threedimensional models, whether they be of the format .obj or .stl, can be easily rendered in your Nuxt project by using the p5js.org library. Update 2025: the interactive demos on this site now link directly to the standalone p5 experiments. The component API described below still works when embedding the GitHub Pages build of that project.",1790648870262]