<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: halter73</title><link>https://news.ycombinator.com/user?id=halter73</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 11:51:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=halter73" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by halter73 in "Sam Altman may control our future – can he be trusted?"]]></title><description><![CDATA[
<p>No, but they chose to include it. Presumably there were a lot less apt references they chose not to include.</p>
]]></description><pubDate>Tue, 07 Apr 2026 02:06:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47669892</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=47669892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47669892</guid></item><item><title><![CDATA[New comment by halter73 in "Tuxracer.js play Tux Racer in the browser"]]></title><description><![CDATA[
<p>There's a link at the top of the README to <a href="https://0x00eb.itch.io/tux-racer" rel="nofollow">https://0x00eb.itch.io/tux-racer</a> where you can play it without needing to host it yourself.</p>
]]></description><pubDate>Fri, 20 Jun 2025 20:04:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44331530</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=44331530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44331530</guid></item><item><title><![CDATA[New comment by halter73 in "Show HN: Semantic Calculator (king-man+woman=?)"]]></title><description><![CDATA[
<p>I'm not sure this is old enough, but could you be referencing <a href="https://neal.fun/infinite-craft/" rel="nofollow">https://neal.fun/infinite-craft/</a> from <a href="https://news.ycombinator.com/item?id=39205020">https://news.ycombinator.com/item?id=39205020</a>?</p>
]]></description><pubDate>Wed, 14 May 2025 22:06:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43989697</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=43989697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43989697</guid></item><item><title><![CDATA[New comment by halter73 in "A critical look at MCP"]]></title><description><![CDATA[
<p>> Each request will hit a new random worker, but your response is supposed to go on some other long-running SSE stream.<p>It seems your knowledge is a little out of date. The big difference between the older SSE transport and the new "Streamable HTTP" transport is that the JSON-RPC response is supposed to be in the HTTP response body for the POST request containing the JSON-RPC request, not "some other long-running SSE stream". The response to the POST can be a text/event-stream if you want to send things like progress notifications before the final JSON-RPC response, or it can be a plain application/json response with a single JSON-RPC response message.<p>If you search the web for "MCP Streamable HTTP Lambda", you'll find plenty of working examples. I'm a little sympathetic to the argument that MCP is currently underspecified in some ways. For example, the spec doesn't currently mandate that the server MUST include the JSON-RPC response directly in the HTTP response body to the initiating POST request. Instead, it's something the spec says the server SHOULD do.<p>Currently, for my client-side Streamable implementation in the MCP C# SDK, we consider it an error if the response body ends without a JSON-RPC response we're expecting, and we haven't gotten complaints yet, but it's still very early. For now, it seems better to raise what's likely to be an error rather than wait for a timeout. However, we might change the behavior if and when we add resumability/redelivery support.<p>I think a lot of people in the comments are complaining about the Streamable HTTP transport without reading it [1]. I'm not saying it's perfect. It's still undergoing active development. Just on the Streamable HTTP front, we've removed batching support [2], because it added a fair amount of additional complexity without much additional value, and I'm sure we'll make plenty more changes. As someone who's implemented a production HTTP/1, HTTP/2 and HTTP/3 server that implements [3], and also helped implement automatic OpenAPI Document generation [4], no protocol is perfect. The HTTP spec misspells "referrer" and it has a race condition when a client tries to send a request over an idle "keep-alive" connection at the same time the server tries to close it. The HTTP/2 spec lets the client just open and RST streams without the server having any way to apply backpressure on new requests. I don't have big complaints about HTTP/3 yet (and I'm sure part of that is a lot of the complexity in HTTP/2 was properly handled by the transport layer which for Kestrel means msquic), but give it more time and usage and I'm sure I'll have some. That's okay though, real artists ship.<p>1: <a href="https://modelcontextprotocol.io/specification/2025-03-26/basic/transports" rel="nofollow">https://modelcontextprotocol.io/specification/2025-03-26/bas...</a><p>2: <a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/416">https://github.com/modelcontextprotocol/modelcontextprotocol...</a><p>3: <a href="https://learn.microsoft.com/aspnet/core/fundamentals/servers/kestrel" rel="nofollow">https://learn.microsoft.com/aspnet/core/fundamentals/servers...</a><p>4: <a href="https://learn.microsoft.com/aspnet/core/fundamentals/openapi/overview" rel="nofollow">https://learn.microsoft.com/aspnet/core/fundamentals/openapi...</a></p>
]]></description><pubDate>Sat, 10 May 2025 21:50:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43949288</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=43949288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43949288</guid></item><item><title><![CDATA[New comment by halter73 in "Claude Integrations"]]></title><description><![CDATA[
<p>That github issue is closed because it's been mostly completed. As of <a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/338">https://github.com/modelcontextprotocol/modelcontextprotocol...</a>, the latest draft specification does not require the resource server to act as or poxy to the IdP. It just hasn't made its way to a ratified spec yet, but SDKs are already implementing the draft.</p>
]]></description><pubDate>Fri, 02 May 2025 19:05:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43873557</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=43873557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43873557</guid></item><item><title><![CDATA[New comment by halter73 in "Nvidia adds native Python support to CUDA"]]></title><description><![CDATA[
<p>It really depends on if you're dealing with an async stream or a single async result as the input to the next function. If a is an access token needed to access resource b, you cannot access a and b at the same time. You have to serialize your operations.</p>
]]></description><pubDate>Fri, 04 Apr 2025 21:08:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43587617</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=43587617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43587617</guid></item><item><title><![CDATA[New comment by halter73 in "Mozilla launching “Thundermail” email service to take on Gmail, Microsoft 365"]]></title><description><![CDATA[
<p>It probably depends on your lists. My uBlock Origin config had a global CSS rule blocking any elements with a #mc_embed_signup id.</p>
]]></description><pubDate>Thu, 03 Apr 2025 01:28:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=43563717</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=43563717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43563717</guid></item><item><title><![CDATA[New comment by halter73 in "CRLF is obsolete and should be abolished"]]></title><description><![CDATA[
<p>Can you provide a citation for this? I’ve read older RFCs that "recommend" recipients allow single LFs to terminate headers for robustness. I’ve also read newer RFCs that weaken that recommendation and merely say the recipient "MAY" allow single LFs. I’ve never noticed an HTTP RFC say you can send headers without the full CRLF sequence, but maybe I missed something.<p><a href="https://datatracker.ietf.org/doc/html/rfc2616#section-19.3" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc2616#section-19.3</a>
<a href="https://datatracker.ietf.org/doc/html/rfc9112#section-2.2" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc9112#section-2.2</a></p>
]]></description><pubDate>Sun, 13 Oct 2024 23:10:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=41832566</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=41832566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41832566</guid></item><item><title><![CDATA[New comment by halter73 in "CRLF is obsolete and should be abolished"]]></title><description><![CDATA[
<p>> I'm hoping this is satire.<p>Me too. It's one thing to accept single LFs in protocols that expect CRLF, but sending single LFs is a bridge to far in my opinion. I'm really surprised most of the other replies to your comment currently seem to unironically support not complying with well-established protocol specifications under the misguided notion that it will somehow make things "simpler" or "easier" for developers.<p>I work on Kestrel which is an HTTP server for ASP.NET Core. Kestrel didn't support LF without a CR in HTTP/1.1 request headers until .NET 7 [1]. Thankfully, I'm unaware of any widely used HTTP client that even supports sending HTTP/1.1 requests without CRLF header endings, but we did eventually get reports of custom clients that used only LFs to terminate headers.<p>I admit that we should have recognized a single LF as a line terminator instead of just CRLF from the beginning like the spec suggests, but people using just LF instead of CRLF in their custom clients certainly did not make things any simpler or easier for me as an HTTP server developer. Initially, we wanted to be as strict as possible when parsing request headers to avoid possible HTTP request smuggling attacks. I don't think allowing LF termination really allows for smuggling, but it is something we had to consider.<p>I do not support even adding the option to terminate HTTP/1.1 request/response headers with single LFs in HttpClient/Kestrel. That's just asking for problems because it's so uncommon. There are clients and servers out there that will reject headers with single LFs while they all support CRLF. And if HTTP/1.1 is still being used in 2050 (which seems like a safe bet), I guarantee most clients and servers will still use CRLF header endings. Having multiple ways to represent the exact same thing does not make a protocol simpler or easier.<p>[1]: <a href="https://github.com/dotnet/aspnetcore/pull/43202">https://github.com/dotnet/aspnetcore/pull/43202</a></p>
]]></description><pubDate>Sun, 13 Oct 2024 21:19:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41831706</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=41831706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41831706</guid></item><item><title><![CDATA[New comment by halter73 in "Microsoft's Windows Recall feature is coming back in October"]]></title><description><![CDATA[
<p>> Our browsers could have been exploiting things behind NAT this entire time. Smart TVs, Smart watches, phones, anything pingable on your LAN.<p>Maybe if they’re running an HTTP server (which isn’t too uncommon for IoT devices) while allowing the attacker website via CORS (less likely). An IoT device listening for WebSocket or WebRTC connections won’t benefit from CORS, but those are relatively rare and ought to have other mitigations in place.<p>All your links show is the ability to scan ports, not even read the responses to the fetch() requests made to local IP addresses. That could be useful to an attacker, but a far cry from exploiting any smart device or having the ability to send “outgoing crafted packets” from the browser. You cannot even open arbitrary sockets or craft arbitrary HTTP requests.</p>
]]></description><pubDate>Sat, 24 Aug 2024 16:48:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=41339498</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=41339498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41339498</guid></item><item><title><![CDATA[New comment by halter73 in "Functional languages should be so much better at mutation than they are"]]></title><description><![CDATA[
<p>> The fact that most programming languages don’t give enough semantic information for their compiler to do a good job doesn’t mean it necessary has to be so.  Functional programmers just trust that their compiler will properly optimize their code.<p>While everyone has to trust their compiler will make reasonable optimizations to some extent, there becomes a certain point of complexity where it becomes difficult to intuitively know if a "sufficiently smart compiler"[1] will properly optimize which is problematic.<p>I realize you're arguing Haskell is worse than Ocaml in this regard, but I'd argue it's harder to reason about how functional code will be translated into machine code than comparable procedural code in general.<p>[1]: <a href="https://prog21.dadgum.com/40.html" rel="nofollow">https://prog21.dadgum.com/40.html</a></p>
]]></description><pubDate>Wed, 31 Jul 2024 19:26:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=41122528</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=41122528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41122528</guid></item><item><title><![CDATA[New comment by halter73 in "ARC Prize – a $1M+ competition towards open AGI progress"]]></title><description><![CDATA[
<p>You need to resize the output grid to 6x6.</p>
]]></description><pubDate>Wed, 12 Jun 2024 00:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40653133</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=40653133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40653133</guid></item><item><title><![CDATA[New comment by halter73 in "It's always TCP_NODELAY"]]></title><description><![CDATA[
<p>AFAIK, all Linux distros plus Windows and macOS have TCP keepalives off by default as mandated by the RFC 1122. Even when they are optionally turned on using SO_KEEPALIVE, the interval defaults to two hours because that is the minimum default interval allowed by spec. That can then be optionally reduced with something like /proc/sys/net/ipv4/tcp_keepalive_time (system wide) or TCP_KEEPIDLE (per socket).<p>By default, completely idle TCP connections will stay alive indefinitely from the perspective of both peers even if their physical connection is severed.<p><pre><code>            Implementors MAY include "keep-alives" in their TCP
            implementations, although this practice is not universally
            accepted.  If keep-alives are included, the application MUST
            be able to turn them on or off for each TCP connection, and
            they MUST default to off.

            Keep-alive packets MUST only be sent when no data or
            acknowledgement packets have been received for the
            connection within an interval.  This interval MUST be
            configurable and MUST default to no less than two hours.
</code></pre>
[0]: <a href="https://datatracker.ietf.org/doc/html/rfc1122#page-101" rel="nofollow">https://datatracker.ietf.org/doc/html/rfc1122#page-101</a></p>
]]></description><pubDate>Fri, 10 May 2024 01:06:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=40314566</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=40314566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40314566</guid></item><item><title><![CDATA[New comment by halter73 in "Better HTTP server routing in Go 1.22"]]></title><description><![CDATA[
<p>ASP.NET Core can easily route "/hello" to HelloController.Index(), but it's not exactly automatic. The controller library adds routes to the routing middleware in a call to MapControllerRoute the app developer must make during startup which specifies a pattern.<p><pre><code>    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
</code></pre>
<a href="https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-7.0#conventional-routing" rel="nofollow noreferrer">https://learn.microsoft.com/en-us/aspnet/core/mvc/controller...</a><p>If you don't call one of the MapController methods, requests will not be routed to controllers even if they exist in the same project.</p>
]]></description><pubDate>Mon, 16 Oct 2023 23:52:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=37908271</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=37908271</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37908271</guid></item><item><title><![CDATA[New comment by halter73 in "Show HN: Host a Website in the URL"]]></title><description><![CDATA[
<p>The iframe's sandbox attribute is doing a lot of work. I tried to change the parent window location to remove the footer, but the sandbox thwarted me since it didn't include "allow-same-origin".<p><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox" rel="nofollow noreferrer">https://developer.mozilla.org/en-US/docs/Web/HTML/Element/if...</a><p>Of course, you can just link directly to the URL the iframe points to. In the case of your video, you can simply visit <a href="https://smolsite.zip/s/57fe209faf4e6c0316ad32d7eeb792dfb571edcd/" rel="nofollow noreferrer">https://smolsite.zip/s/57fe209faf4e6c0316ad32d7eeb792dfb571e...</a> to have it autoplay while getting rid of the footer. I'm not sure how long the /s/ URL stays around before getting garbage collected by the server, but I bet you could regenerate it by sending a GET request to <a href="https://smolsite.zip/UEsDBBQAAgAIAPtxJlepozjzcAAAAIgAAAAKAAAAaW5kZXguaHRtbD2NSw4CIRAFr4K9F1y4Upi7ILQDmeZj05h4e2dcuKm8pF5S9hRbkE9HlaTQYg8q8nV1gBUWW1D8rqSf8TXz2wHjk3EkUKFVwSoOLnc1mdxxGjdjRvIiyBhjHptes6T50LkZzmHjRvQfuvTrXjC/8BdQSwECHgMUAAIACAD7cSZXqaM483AAAACIAAAACgAAAAAAAAABAAAApIEAAAAAaW5kZXguaHRtbFBLBQYAAAAAAQABADgAAACYAAAAAAA=" rel="nofollow noreferrer">https://smolsite.zip/UEsDBBQAAgAIAPtxJlepozjzcAAAAIgAAAAKAAA...</a> again.</p>
]]></description><pubDate>Thu, 07 Sep 2023 02:59:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=37414241</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=37414241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37414241</guid></item><item><title><![CDATA[New comment by halter73 in "Istio moved to CNCF Graduation stage"]]></title><description><![CDATA[
<p>The lack of server ALPN support on macOS is probably the extra friction you're referring to. This made accepting HTTP/2 connections with TLS impossible. Fortunately, support will be added in .NET 8 with <a href="https://github.com/dotnet/runtime/pull/79434">https://github.com/dotnet/runtime/pull/79434</a>.</p>
]]></description><pubDate>Wed, 12 Jul 2023 23:54:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=36703311</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=36703311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36703311</guid></item><item><title><![CDATA[New comment by halter73 in "We raised a bunch of money"]]></title><description><![CDATA[
<p>They claimed they did support price caps the HN launch thread referenced in this new press release. They got a lot of praise for it in the comments back then.<p>> Max monthly spend: unexpected traffic spikes happen, and the thought of spending an unbounded amount of money in a month is really uncomfortable. You can configure fly.io apps with a max monthly budget, we'll suspend them when they hit that budget, and then re-enable them at the beginning of the next month.<p><a href="https://news.ycombinator.com/item?id=22616857">https://news.ycombinator.com/item?id=22616857</a></p>
]]></description><pubDate>Wed, 28 Jun 2023 23:19:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=36514058</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=36514058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36514058</guid></item><item><title><![CDATA[New comment by halter73 in "Sapling: A new source control system with Git-compatible client"]]></title><description><![CDATA[
<p>`git reset HEAD~` doesn't feel like that much of a contortion to me. It's the destructive change that requires more contortion (`--hard`) which feels fair. Maybe this is stockholm syndrome though.</p>
]]></description><pubDate>Tue, 15 Nov 2022 21:15:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=33615115</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=33615115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33615115</guid></item><item><title><![CDATA[New comment by halter73 in "Turns are better than radians"]]></title><description><![CDATA[
<p>As mentioned elsewhere in this thread, with turn-based rotation units, this relationship can be simplified to avoid transcendental numbers entirely:<p>> (-1)^(2x) = cos(x) + i sin(x)</p>
]]></description><pubDate>Mon, 26 Sep 2022 20:14:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=32987743</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=32987743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32987743</guid></item><item><title><![CDATA[New comment by halter73 in "Qt signal is ten times slower than a virtual function"]]></title><description><![CDATA[
<p>Why would you use QT signals for that? The point is you do not have to interact with the UI at that high of a frequency.</p>
]]></description><pubDate>Thu, 11 Aug 2022 17:36:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=32429196</link><dc:creator>halter73</dc:creator><comments>https://news.ycombinator.com/item?id=32429196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32429196</guid></item></channel></rss>