<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: zbowling</title><link>https://news.ycombinator.com/user?id=zbowling</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 08:37:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zbowling" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zbowling in "Meta enables ADB on deprecated Portal devices [video]"]]></title><description><![CDATA[
<p>The post just explains along with the new ADB access, you can now also build your own hacks or port existing apps to run on your Portal using newly published AI skills (originally built for Meta Quest/Horizon OS) that document the technical specifics about the device and certain limitations that an agent then can use to build something quickly.</p>
]]></description><pubDate>Fri, 05 Jun 2026 01:41:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48406983</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=48406983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48406983</guid></item><item><title><![CDATA[New comment by zbowling in "Meta enables ADB on deprecated Portal devices [video]"]]></title><description><![CDATA[
<p>The blog post with the details on our update today which is a bit more complete than Boz's video: <a href="https://developers.meta.com/horizon/blog/build-apps-for-portal-with-ai/" rel="nofollow">https://developers.meta.com/horizon/blog/build-apps-for-port...</a></p>
]]></description><pubDate>Fri, 05 Jun 2026 01:15:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48406823</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=48406823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48406823</guid></item><item><title><![CDATA[New comment by zbowling in "Package managers need to cool down"]]></title><description><![CDATA[
<p>This is silly. Critical security and bug fixes come out and you are going to wait because you think older must be safer just to avoid a supply chain attack issue? Just secure the supply chain. Be critical about your dependencies and update strategy before updating. If you got some 200 translative dependencies and you don't know everything your build, that is a problem and you probably should look into that because assuming waiting is a solution is not going to stop you from getting hurt with that risk of a surface area.<p>In the age of AI, I reduced my load on small utility libraries and just have the bigger ones that I'll follow semver and update to manager versions when it make sense and always take small patches but still look at the release notes for what changed.</p>
]]></description><pubDate>Sat, 07 Mar 2026 22:59:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47292306</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=47292306</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47292306</guid></item><item><title><![CDATA[Shown HN: I Built an AI Terminator to Declare War on Email Marketing Spam]]></title><description><![CDATA[
<p>Article URL: <a href="https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare">https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46131456">https://news.ycombinator.com/item?id=46131456</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 03 Dec 2025 07:59:31 +0000</pubDate><link>https://sub.zacbowling.com/p/i-built-an-ai-terminator-to-declare</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=46131456</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46131456</guid></item><item><title><![CDATA[New comment by zbowling in "Claude Advanced Tool Use"]]></title><description><![CDATA[
<p>I built a MCP server that solves this actually. It works like a tool calling proxy that calls child servers but instead of serving them up as direct tool calls, it exposes them as typescript defintions, asks your LLM to write code to invoke them all together, and then executes that typescript in a restricted VM to do tool calling indirectly. If you have tools that pass data between each other or need some kind of parsing or manipulation of output, like the tool call returns json, it's trivial to transform it. <a href="https://github.com/zbowling/mcpcodeserver" rel="nofollow">https://github.com/zbowling/mcpcodeserver</a></p>
]]></description><pubDate>Tue, 25 Nov 2025 20:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46050166</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=46050166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46050166</guid></item><item><title><![CDATA[New comment by zbowling in "Claude Advanced Tool Use"]]></title><description><![CDATA[
<p>I wrote a better version of this idea: <a href="https://github.com/zbowling/mcpcodeserver" rel="nofollow">https://github.com/zbowling/mcpcodeserver</a><p>It works as an MCP proxy of sorts that converts all the child MCP tools into typescript annotations, asks your LLM to generate typescript, then executes those tool calls in a restricted VM to do the tool calls that way. It allows parellel process, passing data between tools without coming back to the LLM for a full loop, etc. The agents are pretty good at debugging issues they create too and trying again.</p>
]]></description><pubDate>Tue, 25 Nov 2025 20:09:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46050132</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=46050132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46050132</guid></item><item><title><![CDATA[New comment by zbowling in "Claude Advanced Tool Use"]]></title><description><![CDATA[
<p>I specifically built this as an MCP server. It works like an MCP server that proxies to other MCP servers and converts the tool defintions in to typescript anotations and asks your llm to generate typescript that runs in a restricted VM to make tools calls that way. It's based on the apple white paper on this topic from last year.  <a href="https://github.com/zbowling/mcpcodeserver" rel="nofollow">https://github.com/zbowling/mcpcodeserver</a></p>
]]></description><pubDate>Tue, 25 Nov 2025 20:06:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46050089</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=46050089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46050089</guid></item><item><title><![CDATA[New comment by zbowling in "Tell HN: Azure outage"]]></title><description><![CDATA[
<p>Alaska Airlines is redircting folks to their slimmed down international site and you can't check in on mobile.</p>
]]></description><pubDate>Wed, 29 Oct 2025 22:10:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45753748</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45753748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45753748</guid></item><item><title><![CDATA[New comment by zbowling in "Improving MCP tool call performance through LLM code generation"]]></title><description><![CDATA[
<p>I hacked together a new MCP server this weekend that can significantly cut down the overhead with direct tool calling with LLMs inside different agents, especially when making multiple tool calls in a more complex workflow.
Inspired by the recent blog post by Cloudflare for their CodeMod MCP server and the original Apple white paper, I hacked together a new MCP server that is a lot better than the Cloudflare server in several ways. One of them being not relying on their backends to isolate the execution of the tool calling but also just generally better support around all the features in MCP and also significantly better interface generation and LLM tool hinting to save on context window tokens. This implementation can also scale to a lot more child servers more cleanly.<p>Most LLMs are naturally better at code generation than they are at tool calling with code understanding being more foundational to their knowledge and tool calling being pound into models in later stages during fine tuning. It can also burn an excessive number of tokens passing data between tools via LLMs in these agent orchestrators. But if you move the tool calling to be done by code rather than directly by the LLMs in the agents and have the LLMs generate that code, it can produce significantly better results for complex cases and reduce overhead with passing data between tool calls.<p>This implementation works as an MCP server proxy basically. As an MCP server, it is also an MCP client to your child servers. In the middle it hosts a node VM to execute code generated by the LLM to make tool calls indirectly. By introspecting the child MCP servers and converting their tool call interfaces to small condensed typescript API declarations, your LLM can generate code that invokes these tools in the provided node VM instead of invoking directly and do the complex processing of the response handling and errors in code instead of directly. This can be really powerful with when doing multiple tool calls in parallel or with logic around processing. And since it's a node VM, it has access to standard node models and built in standard libraries there.<p>One issue is if your tool calls are actually simple, like doing a basic web search or a single tool call, this can a bit more unnecessary overhead. But the more complex the prompt, the more this approach can significantly improve the quality of the output and lower your inference billing costs.</p>
]]></description><pubDate>Mon, 13 Oct 2025 22:32:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45574040</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45574040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45574040</guid></item><item><title><![CDATA[Improving MCP tool call performance through LLM code generation]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/zbowling/mcpcodeserver">https://github.com/zbowling/mcpcodeserver</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45574039">https://news.ycombinator.com/item?id=45574039</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 13 Oct 2025 22:32:20 +0000</pubDate><link>https://github.com/zbowling/mcpcodeserver</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45574039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45574039</guid></item><item><title><![CDATA[New comment by zbowling in "All-New Next Gen of UniFi Storage"]]></title><description><![CDATA[
<p>synology doens't even compete with synology anymore because all the new hardware requires locked in synology drives now.<p>It's creating a void that is getting filled with Ugreen, Minisforum, beelink, Aoostor for invoative platforms from China and classic competitors like Qnap, Asustor, Teramaster, etc for innovation for the small to mid-tier needs. 45drives in the larger spaces for folks wanting to manage things more on their own but have enterprise scale needs. Dell and HP have always competed on the high-end enterprise space and also becoming a better option, even though synology is so easy as an appliance.</p>
]]></description><pubDate>Sat, 11 Oct 2025 21:19:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45552804</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45552804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45552804</guid></item><item><title><![CDATA[New comment by zbowling in "How I solved PyTorch's cross-platform nightmare"]]></title><description><![CDATA[
<p>Check out Pixi! Pixi is an alternative to the common conda and pypi frontends and has better system for hardware feature detection and get the best version of Torch for your hardware that is compatible across your packages (except for AMD at the moment). It can pull in the condaforge or pypi builds of pytorch and help you manage things automagically across platforms. <a href="https://pixi.sh/latest/python/pytorch/" rel="nofollow">https://pixi.sh/latest/python/pytorch/</a><p>It doesn't solve how you package your wheels specifically, that problem is still pushed on your downstream users because of boneheaded packaging decisions by PyTorch themselves but as the consumer, Pixi soften's blow. The condaforge builds of PyTorch also are a bit more sane.</p>
]]></description><pubDate>Thu, 11 Sep 2025 16:18:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45213353</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45213353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45213353</guid></item><item><title><![CDATA[New comment by zbowling in "How I solved PyTorch's cross-platform nightmare"]]></title><description><![CDATA[
<p>Try pixi! Pixi is a much more sane way for building with conda + pypi packages in a single tool that makes this so much easier for torch development, regardless if you get the condaforge or pypi builds of pytorch. <a href="https://pixi.sh/latest/" rel="nofollow">https://pixi.sh/latest/</a></p>
]]></description><pubDate>Thu, 11 Sep 2025 16:13:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=45213304</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=45213304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45213304</guid></item><item><title><![CDATA[New comment by zbowling in "Sailing from Berkeley to Hawaii in a 19ft Sailboat"]]></title><description><![CDATA[
<p>We forgot how to build websites like this. Lost art. Even the page is encoded iso-8859-1 and not UTF-8.</p>
]]></description><pubDate>Wed, 02 Apr 2025 18:05:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=43559490</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=43559490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43559490</guid></item><item><title><![CDATA[New comment by zbowling in "Show HN: Sava OS – A desktop interface for your web browser"]]></title><description><![CDATA[
<p>I clicked the comments, searched for "MDI", and feel seen. Then I felt old. Bringing back old UX patterns like they are new.</p>
]]></description><pubDate>Thu, 17 Oct 2024 20:18:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41873338</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=41873338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41873338</guid></item><item><title><![CDATA[New comment by zbowling in "Show HN: Chili. Rust port of Spice, a low-overhead parallelization library"]]></title><description><![CDATA[
<p>> a "low-overhead" parallelization library<p>Who is out here building high-overhead parallelization libraries?</p>
]]></description><pubDate>Thu, 19 Sep 2024 17:20:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=41594118</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=41594118</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41594118</guid></item><item><title><![CDATA[New comment by zbowling in "Microsoft donates the Mono Project to the Wine team"]]></title><description><![CDATA[
<p>He is making terminal emulators for iOS, iPadOS, and VisionOS and loving Swift these days.</p>
]]></description><pubDate>Wed, 28 Aug 2024 00:00:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=41374617</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=41374617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41374617</guid></item><item><title><![CDATA[New comment by zbowling in "Microsoft donates the Mono Project to the Wine team"]]></title><description><![CDATA[
<p>I worked on Mono a lot back in the early 2000s (back in the SVN days before it moved to Git, even). This move makes a lot of sense. Things evolved a lot over the years. Mono's legacy goals, which are to be a portable CLR (.NET) runtime for platforms that Microsoft didn't care about, don't make much sense today.<p>Mono made a lot of sense for running places where full .NET didn't, like in full AOT environments like on the iPhone where you can't JIT, or for random architectures that don't matter anymore but once did for Linux (Alpha, Itanium, PPC, MIPs, etc.). When Microsoft bought Xamarin (which itself was born out of the ashes of the Novell shutdown of the Mono effort) and started the DotNET Core efforts to make .NET more portable itself and less a system-provided framework and merge in a lot of the stuff Mono did a single more focused project made more sense.<p>Mono was still left out there to support the edge cases where DotNET Core didn't make sense, which was mostly things like being a backend for Wine stuff in some cases, some GNOME Desktop stuff (via GTK#, which is pretty dead now), and older niche use cases (second life and Unity still embed mono as a runtime for their systems). The project was limping, though, and sharing a standard library but different runtimes after much merging. Mono's runtime was always a little more portable (C instead of C++) and more accessible to experiment with, but we need that less and less, but it's still perfect for Wine. So, having it live on in Wine makes sense. It's a natural fit.</p>
]]></description><pubDate>Tue, 27 Aug 2024 19:06:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41371554</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=41371554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41371554</guid></item><item><title><![CDATA[New comment by zbowling in ""GitHub" Is Starting to Feel Like Legacy Software"]]></title><description><![CDATA[
<p>As someone who used GitHub for years (2009-2014), got acquired into a big tech company for 8 years, so I didn't get to use it much, and then got to go back to a startup that used it again, it feels like a totally different product. It's a starkly different offering from that perspective.<p>GitHub Actions are a major part of that. Codespaces, a solution for Mac CI, that you automate so much, store secrets, drive not CI but CD straight from GitHub now, etc. It's evolved a ton. Then you have the other things they are doing as company with copilot and vscode (and formerly atom).<p>Sure, code search is only moderately better, and maybe some of the core git features aren't getting as much razzle-dazzle in the UI, but it's evolved a ton.</p>
]]></description><pubDate>Fri, 12 Jul 2024 20:34:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40949158</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=40949158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40949158</guid></item><item><title><![CDATA[New comment by zbowling in "Debian's /tmpest in a teapot"]]></title><description><![CDATA[
<p>> meaningless data<p>Things like .git and .ssh not are not meaningless data even though they are not in ~/.config/ssh/ or ~/.local/shared/git.</p>
]]></description><pubDate>Wed, 05 Jun 2024 17:50:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40588062</link><dc:creator>zbowling</dc:creator><comments>https://news.ycombinator.com/item?id=40588062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40588062</guid></item></channel></rss>