<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: b_llc</title><link>https://news.ycombinator.com/user?id=b_llc</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 30 Oct 2026 02:08:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=b_llc" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Double Buffering with Cloudflare Queues]]></title><description><![CDATA[
<p>Article URL: <a href="https://bellone.com/technical/double-buffering-with-cloudflare-queues">https://bellone.com/technical/double-buffering-with-cloudflare-queues</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50276613">https://news.ycombinator.com/item?id=50276613</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 28 Oct 2026 16:48:23 +0000</pubDate><link>https://bellone.com/technical/double-buffering-with-cloudflare-queues</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=50276613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50276613</guid></item><item><title><![CDATA[New comment by b_llc in "The Network Paradox: How to Short a Social Network"]]></title><description><![CDATA[
<p>What does Hacker News make of Meta's decision to abandon regional DAU for DAP. This change effectively hides their extreme North American ARPU concentration.<p>Do you think they intentionally hid the KPI to avoid scaring investors?</p>
]]></description><pubDate>Tue, 06 Oct 2026 13:11:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49977923</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=49977923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49977923</guid></item><item><title><![CDATA[The Network Paradox: How to Short a Social Network]]></title><description><![CDATA[
<p>Article URL: <a href="https://bellone.com/writing/the-network-paradox-how-to-short-a-social-network">https://bellone.com/writing/the-network-paradox-how-to-short-a-social-network</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49977922">https://news.ycombinator.com/item?id=49977922</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 06 Oct 2026 13:11:42 +0000</pubDate><link>https://bellone.com/writing/the-network-paradox-how-to-short-a-social-network</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=49977922</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49977922</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>I'd like to thank everyone for the feedback.<p>I'm going to reflect on the feedback, rewrite the article with better explanations of the problem domain, and its limitations. I've clearly failed to articulate the core capability: dynamic file bundling via query parameters into a unified multipart stream.<p>I'll check back over the next few days but won't be monitoring constantly. If you want to discuss this project privately, I’m available by email.</p>
]]></description><pubDate>Wed, 20 Aug 2025 13:32:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=44961806</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44961806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44961806</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>The code is 100% mine. The architecture and code evolved over 5-years as Axon adapted for a number of projects. I started to revamp the project 2-3 weeks ago. Throughout that process, I used Claude to check for logical errors and simplification opportunities. Claude generated the readme and shell scripts in entirety and commented the codebase for clarity.<p>Edit: The hello-world.html was also generated.</p>
]]></description><pubDate>Wed, 20 Aug 2025 11:15:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44960789</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44960789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44960789</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>You're right about boundary caching opportunities. The computational cost I'm referring to comes from the construction of the per-request multipart header, and file metadata operations, rather than just boundary generation.<p>The "inherently expensive" claim was overstated - it's expensive relative to static file serving, and unavoidable, but you're correct that there are optimization opportunities in the current implementation. I've identified three opportunities to improve the design: boundary generation, content type assignment, and header construction.<p>One clarification: the dynamic bundling via query parameters limits traditional caching strategies. Since each request can specify different file combinations, the multipart response structure must be generated per-request rather than cached.<p>Axon also represents a core framework. How you implement caching depends on your specific use case - this becomes business logic rather than request processing logic. Its minimal tooling is intended to be a feature, though, as you have pointed out, it can also be limiting.</p>
]]></description><pubDate>Tue, 19 Aug 2025 22:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44956797</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44956797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44956797</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>I might be wrong then! I'll make a note to take a look. Thanks for pointing this out.</p>
]]></description><pubDate>Tue, 19 Aug 2025 21:17:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44956349</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44956349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44956349</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>Axon generates dynamic multipart responses with boundaries and headers to bundle files specified via query parameters. sendfile handles "serve this specific file" but does not handle "bundle these N files into a multipart response."<p>For static file serving, sendfile would be the better choice.</p>
]]></description><pubDate>Tue, 19 Aug 2025 20:56:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44956199</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44956199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44956199</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>You're right - this represents computational duress, not optimal efficiency. The 1 CPU struggles to handle the 50 concurrent user scenario and was chosen to demonstrate worst-case behavior rather than peak performance. I intended to stress test the framework. I did not mean to indicate that CPU saturation is ideal but rather highlight that performance remained predictable even at the limits.<p>Lower-level languages would certainly offer higher performance. I was hoping to showcase how Python can perform when architecture is restrained. The goal was to show that careful design choices (bounded memory, generator-based streaming) can maintain predictable behavior even when computational resources are exhausted.</p>
]]></description><pubDate>Tue, 19 Aug 2025 20:49:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=44956134</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44956134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44956134</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>By I/O limits, I meant network bandwidth and disk throughput limits, not memory capacity.<p>Thanks for pointing out the ambiguity.</p>
]]></description><pubDate>Tue, 19 Aug 2025 20:00:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44955683</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44955683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44955683</guid></item><item><title><![CDATA[New comment by b_llc in "Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib"]]></title><description><![CDATA[
<p>Good question! Yes, CPU saturation is the desired behavior here.<p>The multipart streaming workload is inherently expensive. The cost of generating boundaries and constructing headers scales with request count and payload size. The architecture demonstrates efficient resource utilization: bounded memory usage (<225MB) while maximizing CPU throughput.<p>CPU saturation with bounded memory means performance scales predictably with processing power. On multicore systems, you can leverage multiple processes to effectively utilize all cores. Alternatively, you can distribute the workload horizontally using droplets as cost-efficient instances.</p>
]]></description><pubDate>Tue, 19 Aug 2025 18:02:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44954393</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44954393</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44954393</guid></item><item><title><![CDATA[Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib]]></title><description><![CDATA[
<p>Quick Links:<p>- PyPI: <a href="https://pypi.org/project/axon-api/" rel="nofollow">https://pypi.org/project/axon-api/</a><p>- GitHub: <a href="https://github.com/b-is-for-build/axon-api" rel="nofollow">https://github.com/b-is-for-build/axon-api</a><p>- Deployment Script: <a href="https://github.com/b-is-for-build/axon-api/blob/master/examples/deployment_scripts/deploy-axon.sh" rel="nofollow">https://github.com/b-is-for-build/axon-api/blob/master/examp...</a><p>Axon is a 507-line, pure Python WSGI framework that achieves up to 237MB/s file streaming on $8/month hardware. The key feature is the dynamic bundling of multiple files into a single multipart stream while maintaining bounded memory (<225MB). The implementation saturates CPU before reaching I/O limits.<p>Technical highlights:<p>- Pure Python stdlib implementation (no external dependencies)<p>- HTTP range support for partial content delivery<p>- Generator-based streaming with constant memory usage<p>- Request batching via query parameters<p>- Match statement-based routing (eliminates traversal and probing)<p>- Built-in sanitization and structured logging<p>The benchmarking methodology uses fresh Digital Ocean droplets with reproducible wrk tests across different file sizes. All code and deployment scripts are included.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44951676">https://news.ycombinator.com/item?id=44951676</a></p>
<p>Points: 21</p>
<p># Comments: 16</p>
]]></description><pubDate>Tue, 19 Aug 2025 14:02:22 +0000</pubDate><link>https://bellone.com/updates/axon-api/python-file-streaming-237mbs-on-$8-m-droplet-in-507-lines-stdlib</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=44951676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44951676</guid></item><item><title><![CDATA[Ask HN: Interested in a Flask-Like App with HTTP/3 Multiplexing and Streaming?]]></title><description><![CDATA[
<p>A few years ago, I embarked on a project to build a Flask-like framework with a specific goal in mind: creating an HTTP/3 native, self-contained WSGI framework. The aim was to significantly enhance the speed and efficiency of image delivery and various API requests. By leveraging HTTP/3 multiplexing and streaming capabilities, this framework offers rapid, reliable performance, making it ideal for modern web applications that demand high-speed data transfer and low latency.<p>I just stumbled upon this old project and decided it was time for a significant update. I am currently in the process of refactoring the framework to add comprehensive documentation and unit testing. Once complete, I'm considering open-sourcing it to the community.<p>However, I'm unsure if there's enough interest to justify the time and effort required. If not, I'm happy to keep using the framework privately.<p>Thoughts?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42813909">https://news.ycombinator.com/item?id=42813909</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 24 Jan 2025 15:20:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=42813909</link><dc:creator>b_llc</dc:creator><comments>https://news.ycombinator.com/item?id=42813909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42813909</guid></item></channel></rss>