<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: gabesullice</title><link>https://news.ycombinator.com/user?id=gabesullice</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 13 May 2026 17:12:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gabesullice" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gabesullice in "Using Claude Code: The unreasonable effectiveness of HTML"]]></title><description><![CDATA[
<p>It's been confusing to me that so many people have treated markdown as the lingua franca for agent instructions when their training corpus must be dramatically biased to HTML instead of Mardown.<p>Markdown only makes sense for us meatbags becuse it's easy for us to edit and version control, but if you're sharing anything where the audience is an agent publicly, HTML must be just as interpretable.</p>
]]></description><pubDate>Sat, 09 May 2026 05:35:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48072107</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=48072107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48072107</guid></item><item><title><![CDATA[New comment by gabesullice in "RTO: WTAF"]]></title><description><![CDATA[
<p>To be clear, I'm not wishing for evidence of whether RTO is good or bad.<p>I want evidence that proves "it's about cheap layoffs" or "it's about real estate" or "it's because they want to monitor people" or "<insert any speculative reason on this thread>"<p>Once we have evidence"it's about layoffs" <i>then</i> we can debate whether it's ultimately helpful or harmful to cull headcount that way.</p>
]]></description><pubDate>Thu, 25 Sep 2025 11:57:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45371797</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=45371797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45371797</guid></item><item><title><![CDATA[New comment by gabesullice in "RTO: WTAF"]]></title><description><![CDATA[
<p>I'm genuinely interested in why RTO is trending. I searched Harvard Business Review, Gartner, and other sources just last week trying to find the rationale, but I wasn't successful. In fact, I found those sources to be a little cautionary. E.g., they say "if you <i>do</i> switch to in-office or hybrid, make sure you actually have metrics to evaluate the effects" and "ensure it makes sense for the actual work to be done by each role".<p>I also found results suggesting flexible working policies had positive properties like higher employee satisfaction, retention , and a wider applicant pool.<p>I'm not interested in hearing why the choir here at HN <i>thinks</i> companies are making these decisions, I want to see evidence of their rationale so I can put myself in management's shoes.</p>
]]></description><pubDate>Thu, 25 Sep 2025 09:54:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45370982</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=45370982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45370982</guid></item><item><title><![CDATA[New comment by gabesullice in "PHP Almost Generics: Guided Journey Through the Official Compile-Time Proposal"]]></title><description><![CDATA[
<p>For an actual view of the syntax not behind a sign-in wall: <a href="https://thephp.foundation/blog/2025/08/05/compile-generics/" rel="nofollow">https://thephp.foundation/blog/2025/08/05/compile-generics/</a></p>
]]></description><pubDate>Thu, 25 Sep 2025 06:11:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45369759</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=45369759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45369759</guid></item><item><title><![CDATA[New comment by gabesullice in "Preserving Order in Concurrent Go Apps: Three Approaches Compared"]]></title><description><![CDATA[
<p>I might be too late for you to see this, but I'm curious why your final example requires the function "f" to receive the canWrite channel. I must be missing something. Couldn't the Ordered map signature be:<p><pre><code>  func OrderedLoop[A, B any](in <-chan A, done chan<- B, n int, f func(a A))
</code></pre>
Instead of:<p><pre><code>  func OrderedLoop[A, B any](in <-chan A, done chan<- B, n int, f func(a A, canWrite <-chan struct{}))
</code></pre>
Or is there a reason that "f" can't be wrapped in an anonymous function to handle the blocking logic?</p>
]]></description><pubDate>Wed, 10 Sep 2025 08:41:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45194932</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=45194932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45194932</guid></item><item><title><![CDATA[New comment by gabesullice in "I bought the cheapest EV, a used Nissan Leaf"]]></title><description><![CDATA[
<p>Jeff is a treasure! <a href="https://youtube.com/@jeffgeerling" rel="nofollow">https://youtube.com/@jeffgeerling</a></p>
]]></description><pubDate>Sat, 06 Sep 2025 05:51:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45146933</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=45146933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45146933</guid></item><item><title><![CDATA[New comment by gabesullice in "Spotting base64 encoded JSON, certificates, and private keys"]]></title><description><![CDATA[
<p>I love this post style. Never stop learning friend!</p>
]]></description><pubDate>Tue, 05 Aug 2025 19:37:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44803185</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44803185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44803185</guid></item><item><title><![CDATA[New comment by gabesullice in "It's time for modern CSS to kill the SPA"]]></title><description><![CDATA[
<p>Offline is good for things like your ball sort game or a calculator. But the developers of that sort of thing want to make money, so they sell apps in the app store.<p>Offline order history is only a marginal improvement on the e-commerce experience from a customer and business perspective, so it's more appealing to us engineers who appreciate it as a feat of engineering prowess.<p>In other words, offline isn't PWAs killer feature. Besides, native apps can do it too.<p>PWA's killer features are circumventing the app store and the app store tax and not maintaining two codebases for Android and iOS.<p>Another Hacker News client would be a good example of a good PWA that you might install to your phone. It could have niceties like "save for later" or special styles applied to your favorite commenters. Offline support would be useful too, of course but not the main reason to develop a PWA.<p>Uncensored, paid content is another significant use case.</p>
]]></description><pubDate>Sat, 26 Jul 2025 07:35:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44692168</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44692168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44692168</guid></item><item><title><![CDATA[New comment by gabesullice in "The patterns of elites who conceal their assets offshore"]]></title><description><![CDATA[
<p>"So... Taxes?"<p>If we're talking about wealth not income, then no, not really. We don't usually think of asset seizure as "taxes". In other words, one "taxes" flows (like capital gains and wages) and "siezes" stocks (like bank deposits and equity).<p>"You seem to be positing that it's entirely expected and understandable"<p>I wasn't making value judgement, but yes, if you look at it with the assumption these wealthy individuals are cold, calculating, self-interested actors, then it's "expected and understandable" to me.<p>"That seems counterintuitive to me, at least."<p>I think you're using "intuitive" as a shorthand for "the way things ought to work in a righteous world", where I find incentives and disincentives to be a more intuitive way of understanding the world.<p>"wealthy individuals in well functioning systems should commit fraud to the detriment of the system that brought them their wealth"<p>To be fair, it's not <i>necessarily</i> fraudulent to have offshore accounts or to conceal your identity (it can certainly be depending on the circumstances). Technically I have an "offshore" account, I just happen to be living outside the US and a US citizen. I also use mechanisms to conceal my identity when registering domain names, for example. Is it the same thing, no, but these people might not technically be doing anything illegal.<p>It isn't necessarily true that those systems "brought them their wealth" either. Plenty of them likely inherited wealth that was accumulated long before the current systems were put in place (granted, it could very well have been accumulated illegitimately 300 years ago).<p>(Again, I'm <i>not</i> saying any of this is how the world <i>should</i> work, I'm trying to look at the world dispassionately and describe how things <i>seem to be</i>)<p>At the level of wealth we're discussing, these individuals probably have to think about "diversifying" among nation-states. Instead of worrying about whether to short the tech sector, they're worried about a country being invaded and the new puppet regime deciding to nationalize the hydroelectric dam they financed. Or they may be worrying about whether their country of residence will pass a law that the biggest national telcom must sell the government a majority stake (i.e., their share) at a government-mandated price denominated in an inflating currency... with expert bureaucratic efficiency.<p>So... no, not really taxes.</p>
]]></description><pubDate>Thu, 17 Jul 2025 23:27:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44599462</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44599462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44599462</guid></item><item><title><![CDATA[New comment by gabesullice in "The patterns of elites who conceal their assets offshore"]]></title><description><![CDATA[
<p>The authors write that it's "counterintuitive " that in states with low crime and efficient beaurocracies, the uberrich tend to conceal or relocate their wealth more. See:<p><pre><code>  "This suggests a counterintuitive result: use of offshore finance is driven not only by negative political conditions such as corruption and lack of civil justice, but by positive conditions, such as regulatory enforcement and civil justice."
</code></pre>
But it's not counterintuitive at all. Those people aren't concerned about getting mugged and they're definitely not concerned about how long it takes to get a construction permit in a corrupt country. They're concerned about state-sponsored expropriation.<p>Given so many of the comments here about tracking the offshore accounts down and confiscating the contents, it's no surprise.<p>Irrespective of whether their practices are immoral, unethical, unfair, or unjust, they're definitely not counterintuitive.<p>It's genuinely hard for me to understand how the authors could believe otherwise.</p>
]]></description><pubDate>Thu, 17 Jul 2025 21:41:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44598560</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44598560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44598560</guid></item><item><title><![CDATA[New comment by gabesullice in "Most RESTful APIs aren't really RESTful"]]></title><description><![CDATA[
<p>> If you are building a public API for external developers you don’t control, invest in HATEOAS. If you are building a backend for a single frontend controlled by your own team, a simpler RPC-style API may be the more practical choice.<p>My conclusion is exactly the opposite. In-house developers can be expected (read: cajoled) to do things the "right" way, like follow links at runtime. You can run tests against your client and server. Internally, flexible REST makes independent evolution of the front end and back end easy.<p>Externally, you must cater to somebody who hard-coded a URL into their curl command that runs on cron and whose code can't tolerate the slightest deviation from exactly what existed when the script was written. In that case, an RPC-like call is great and easy to document. Increment from `/v1/` to `/v2/`, writer a BC layer between them and move on.</p>
]]></description><pubDate>Wed, 09 Jul 2025 14:44:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44510666</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44510666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44510666</guid></item><item><title><![CDATA[New comment by gabesullice in "Most RESTful APIs aren't really RESTful"]]></title><description><![CDATA[
<p>The thing to internalize about "true" REST is that HN (and the rest of the web) is really a RESTful web service. You visit the homepage, a hypermedia format is delivered to a generic client (your browser), and its resources (pages, sections, profiles, etc) can all be navigated to by following links.<p>Links update when you log in or out, indicating the state of your session. Vote up/down links appear or disappear based on one's profile. This is HATEOAS.<p>Link relations can be used to alter how the client (browser) interprets the link—a rel="stylesheet" causes very different behavior from rel="canonical".<p>JavaScript provides even provides "code on-demand" as it's called in Fielding's paper.<p>From that perspective, REST is incredible. REST is extremely flexible, scalable, evolvable, etc. It is <i>the</i> pattern that powers the web.<p>Now, it's an entirely different story when it come to what many people call REST APIs, which are often nothing like HN. They cannot be consumed by a generic client. They are not interlinked. They don't ship code on-demand.<p>Is "REST" to blame? No. Few people have time or reason to build a client as powerful as the browser to consume their SaaS product's API.<p>But even building a truly generic client isn't the hardest thing about building RESTful APIs—the hardest thing is that the web depends entirely on having a human-in-the-loop and your standard API integration's purpose is to <i>eliminate</i> having a human in the loop.<p>For example, a <i>human</i> reads the link text saying "Log in" or "Reset password" and interprets that text to understand the state of the system (they do not have an authenticated session). And a human can reinterpret a redesigned webpage with links in a new location, but trivial clients can't reinterpret a refactored JSON object (or XML for that matter).<p>The folly is in thinking that there's some design pattern out there that's better than REST without understanding that the actual problem to be solved by that elusive, perfect paradigm is how you'll be able to refactor your API when your API's clients will likely be bodged-together JS programs whose authors dug through JSON for the URL they needed and then hard-coded it in a curl command instead of conscientiously and meticulously reading documentation and semantically looking up the URL at runtime, follows redirects, and handles failures gracefully.</p>
]]></description><pubDate>Wed, 09 Jul 2025 14:29:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44510476</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44510476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44510476</guid></item><item><title><![CDATA[New comment by gabesullice in "Hurl: Run and test HTTP requests with plain text"]]></title><description><![CDATA[
<p>This looks awesome. I've searched for something like this many times and made a half dozen half-hearted attempts to build it too. Great job!</p>
]]></description><pubDate>Fri, 20 Jun 2025 05:48:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=44325061</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44325061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44325061</guid></item><item><title><![CDATA[New comment by gabesullice in "Sperm are very different from all other cells"]]></title><description><![CDATA[
<p><a href="https://lumiere-a.akamaihd.net/v1/images/image_7b0b0044.jpeg" rel="nofollow">https://lumiere-a.akamaihd.net/v1/images/image_7b0b0044.jpeg</a></p>
]]></description><pubDate>Sun, 15 Jun 2025 07:41:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44281119</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=44281119</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44281119</guid></item><item><title><![CDATA[New comment by gabesullice in "CVE program faces swift end after DHS fails to renew contract"]]></title><description><![CDATA[
<p>These explanations are not mutually exclusive.</p>
]]></description><pubDate>Wed, 16 Apr 2025 06:50:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43702252</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43702252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43702252</guid></item><item><title><![CDATA[New comment by gabesullice in "CVE program faces swift end after DHS fails to renew contract"]]></title><description><![CDATA[
<p>As a newly minted cynic, this seems like a cynical play to save someone's budget.<p>Step 1: Post discreetly to a forum with minimal information and an absurdly short deadline<p>Step 2: Phone your friend, the former board member, to make your case on LinkedIn<p>Step 3: Ring up a friendly journalist and give them a tip<p>Step 4: Reference the insuing chaos as justification for keeping your project funded<p>Note that the article carefully avoids pinning the blame on DOGE or the Whitehouse while heavily implying it. MITRE is technically a private entity, albeit a non-profit. And the very last paragraph of the article states:<p>> A CISA spokesperson told CSO, “CISA is the primary sponsor for the Common Vulnerabilities and Exposure (CVE) program… Although CISA’s contract with the MITRE Corporation will lapse after April 16, we are urgently working to mitigate impact and to maintain CVE services on which global stakeholders rely.”<p>To be clear, the point isn't to say that the CVE program isn't valuable, nor is it to say that it's <i>good</i> for a shenanigan like this to be necessary.<p>The point is that, unless you're directly involved in this subject (not impacted—involved), it's probably best to maintain a "wait and see" attitude rather than succumb to catastrophizing this news.</p>
]]></description><pubDate>Wed, 16 Apr 2025 06:34:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=43702170</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43702170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43702170</guid></item><item><title><![CDATA[New comment by gabesullice in "You might not need WebSockets"]]></title><description><![CDATA[
<p>This feels ill advised and I don't believe that HTTP streaming was designed with this pattern in mind<p>Perhaps I'm wrong, but I believe HTTP streaming is for chunking large blobs. I worry that if you use this pattern and treat streaming like a pub/sub mechanism, you'll regret it. HTTP intermediaries don't expect this traffic pattern (e.g., NGINX, CloudFlare, etc.). And I suspect every time your WiFi connection drops while the stream is open, the fetch API will raise an error as if the request failed.<p>However, I agree you probably don't need WebSockets for many of the ways they're used—server-sent events are a simpler solution for many situations where people reach for WebSockets... It's a shame SSEs never received the same fanfare.</p>
]]></description><pubDate>Sat, 12 Apr 2025 09:18:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43662767</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43662767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43662767</guid></item><item><title><![CDATA[New comment by gabesullice in "Show HN: Seven39, a social media app that is only open for 3 hours every evening"]]></title><description><![CDATA[
<p>I came back to this post because of this issue.<p>I want to delete my account—not unsubscribe. It's a cool idea, but only accessible to me between 00:39:00–03:39:00 (UTC-01:00). I'm too old for that! :P<p>I assume there is a way to delete my account behind the login wall… but I can't log in outside of the "open" hours.<p>Therefore, I'm stuck: I can't be online during the "open" hours and the login button is disabled and reads "Log in (unavailable)" during the "closed" hours.<p>I also tried to reply to your email with a data deletion request, but the delivery failed. There is no support email on the homepage, nor a way to message you directly via HN.</p>
]]></description><pubDate>Fri, 21 Mar 2025 05:14:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43432035</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43432035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43432035</guid></item><item><title><![CDATA[New comment by gabesullice in "A succinct email in just a subject line"]]></title><description><![CDATA[
<p>Do you mean a daily digest of Slack comms?</p>
]]></description><pubDate>Tue, 11 Mar 2025 07:06:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43329912</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43329912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43329912</guid></item><item><title><![CDATA[New comment by gabesullice in "Ask HN: Best way to simultaneously run multiple projects locally?"]]></title><description><![CDATA[
<p><a href="https://ddev.com/" rel="nofollow">https://ddev.com/</a> has become standard in the circles I run in (most are web devs working in agencies touching multiple projects each week). You don't have to use DDEV specifically, but it works like a dream and may provide some inspiration.<p>Each project gets its own Docker Compose file. These allow you to set up whatever project specific services and configuration you need.<p>None of your projects need to expose a port.  Instead each project gets a unique name like `fooproject` and `barproject` and the container listening to port 80 is named {project-name}-web.<p>It all gets tied together by a single global NGINX/Traefik/Caddy container (you choose) that exposes port 80 and 443 and reverse proxies to each project's web container using Docker's internal hostnames. In pseudo-code:<p><pre><code>  https://fooproject.example.site 
  {
    reverse_proxy fooproject- web:80
  }

  https://barproject.example.site 
  {
    reverse_proxy barproject-web:80
  }
</code></pre>
The final piece of the puzzle is that the maintainer of DDEV set up a DNS A record for<p><pre><code>  127.0.0.1 *.ddev.site
</code></pre>
You could do something similar yourself using your own domain or locally with DNSMasq.<p>It may seem overcomplicated (and it <i>is</i> complicated). But since it's a de-facto standard and well-maintained, that maintenance burden is amortized over all the users and projects. (To the naysayers, consider: PopOS/Ubuntu are quite complicated, but they're far <i>easier</i> to use for most people than a <i>simpler</i> hand-rolled OS with only the essentials.)</p>
]]></description><pubDate>Mon, 10 Mar 2025 07:08:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=43317722</link><dc:creator>gabesullice</dc:creator><comments>https://news.ycombinator.com/item?id=43317722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43317722</guid></item></channel></rss>