<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ben Ploni</title>
    <link>https://benploni.com</link>
    <description>Security research, software architecture &amp; other ramblings.</description>
    <language>en</language>
    <lastBuildDate>Wed, 09 Sep 2026 02:16:29 GMT</lastBuildDate>
    <atom:link href="https://benploni.com/feed.xml" rel="self" type="application/rss+xml" />
    <managingEditor>hello@benploni.com (Ben Ploni)</managingEditor>
    <webMaster>hello@benploni.com (Ben Ploni)</webMaster>
    <image>
      <url>https://benploni.com/favicon.svg</url>
      <title>Ben Ploni</title>
      <link>https://benploni.com</link>
    </image>
    <item>
      <title><![CDATA[If you have nothing to hide]]></title>
      <link>https://benploni.com/blog/if-you-have-nothing-to-hide</link>
      <guid isPermaLink="true">https://benploni.com/blog/if-you-have-nothing-to-hide</guid>
      <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[This argument refuses to die. "If you have nothing to hide, why do you care?" It sounds clever. It isnt. It only works if you treat privacy like its about guilt instead of power. So heres the full thing. privacy isnt about crime Privacy is about asymmetry When someone can observe you at scale, they gain leverage. They can model you, score you, predict you, nudge you, rank you. They can decide youre risky without telling you why. You dont get a notification that says mazal tov! you]]></description>
      <category><![CDATA[opsec]]></category>
      <category><![CDATA[Ramblings]]></category>
      <enclosure url="https://images.unsplash.com/photo-1453371748631-c43ba221c7c6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fGVtYmFycmFzc2VkJTIwfGVufDB8fHx8MTc3MTE5MTE5MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[Git Archaeology]]></title>
      <link>https://benploni.com/blog/git-archaeology</link>
      <guid isPermaLink="true">https://benploni.com/blog/git-archaeology</guid>
      <pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Or, How We Ended Up With 50 Years of Borrowed Words I went down this rabbit hole the other night at 2am trying to google and find out what people have been naming their default branches in git besides main and master. Turns out the answer involves punch cards, Bell Labs, a petty licensing dispute, and the fact that basically every word you use in git was stolen from something older and means something slightly different now. So heres the whole thing. The family tree of version control]]></description>
      <category><![CDATA[Programing]]></category>
      <category><![CDATA[Linux]]></category>
      <enclosure url="https://images.unsplash.com/photo-1612310952669-9f5e7737d3dc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fHRyZWUlMjB0cnVua3xlbnwwfHx8fDE3NzExOTQyNzd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[Tailscale Changed How I Think About Networking]]></title>
      <link>https://benploni.com/blog/tailscale-changed-how-i-think-about-networking</link>
      <guid isPermaLink="true">https://benploni.com/blog/tailscale-changed-how-i-think-about-networking</guid>
      <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[I used to spend an unreasonable amount of time fighting with port forwarding, dynamic DNS, SSH tunnels, and firewall rules just to access my own machines. Then I installed Tailscale on everything and most of that went away. This isn't a sponsored post. I just genuinely think it's one of those tools that once you use it, you can't believe you dealt with the alternative. What Tailscale Actually Is Tailscale builds a mesh VPN between your devices using WireGuard under the hood. Every device]]></description>
      <category><![CDATA[Programing]]></category>
      <category><![CDATA[Linux]]></category>
      <enclosure url="https://images.unsplash.com/photo-1558494949-ef010cbdcc31?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fG5ldHdvcmt8ZW58MHx8fHwxNzY5NjI5NDA5fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[I Scanned My Own Browser and It Knew Way Too Much]]></title>
      <link>https://benploni.com/blog/i-scanned-my-own-browser-and-it-knew-way-too-much</link>
      <guid isPermaLink="true">https://benploni.com/blog/i-scanned-my-own-browser-and-it-knew-way-too-much</guid>
      <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[I got tired of the privacy conversation being abstract. "Companies track you" is too vague to act on. But showing someone their canvas fingerprint, their leaked local IP, and their unique font list - that lands differently.]]></description>
      <category><![CDATA[opsec]]></category>
      <enclosure url="https://images.unsplash.com/photo-1663789669038-ba180c8c155a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDZ8fGZpbmdlcnByaW50fGVufDB8fHx8MTc2OTYyNzQ3NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[VPNs Won't Save You (But Here's What Might)]]></title>
      <link>https://benploni.com/blog/vpns-wont-save-you-but-heres-what-might</link>
      <guid isPermaLink="true">https://benploni.com/blog/vpns-wont-save-you-but-heres-what-might</guid>
      <pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Every other YouTube ad is a VPN sponsor telling you that hackers are stealing your data at coffee shops and the only thing standing between you and identity theft is their app at 80% off for the next 11 minutes. Most of that is nonsense. Here's what VPNs actually do, what they don't, and what you should use instead for the threats they can't touch. What a VPN Actually Does A VPN encrypts your traffic between your device and the VPN server, then sends it out to the internet from the server]]></description>
      <category><![CDATA[opsec]]></category>
      <enclosure url="https://images.unsplash.com/photo-1562813733-b31f71025d54?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fGhhY2tlcnxlbnwwfHx8fDE3Njk2MDUxMTF8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[16 CLI Tools That Replaced My GUI Habits]]></title>
      <link>https://benploni.com/blog/awesome-cli</link>
      <guid isPermaLink="true">https://benploni.com/blog/awesome-cli</guid>
      <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[I collected CLI tools over the past couple years like some terminal-poisoned goblin, so I finally threw them into a repo: Awesome-Cli. Here's what made the cut and why. System Monitoring btop is what happens when htop gets a visual overhaul. CPU graphs, memory, network stats, all rendered in surprisingly pretty terminal graphics. I mostly open it to feel like I'm in a movie while my fans spin up. Getting Around zoxide learns your most-used directories. Type z proj and it figures out you me]]></description>
      <category><![CDATA[Linux]]></category>
      <enclosure url="https://images.unsplash.com/photo-1608742213509-815b97c30b36?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbXB1dGVyJTIwdGVybWluYWx8ZW58MHx8fHwxNzY1ODUwMDM0fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[My Terminal Setup: Dotfiles That Actually Work Across Machines]]></title>
      <link>https://benploni.com/blog/my-terminal-setup</link>
      <guid isPermaLink="true">https://benploni.com/blog/my-terminal-setup</guid>
      <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[I got tired of manually setting up my shell environment every time I touched a new machine. So I built a dotfiles repo that handles everything with a single curl command. https://github.com/spaceCabbage/dotfiles Most of the tools i install are referenced in my Awesome-CLI article. The One-Liner Installation curl -fsSL https://raw.githubusercontent.com/spaceCabbage/dotfiles/arch/install.sh | bash That's it. Fresh install to working dev environment in one command. It also works on Debian s]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Programing]]></category>
      <enclosure url="https://images.unsplash.com/photo-1649877508777-1554357604eb?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNvbXB1dGVyJTIwcHRlcm1pbmFsfGVufDB8fHx8MTc2NTg1MDA2MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[Your Incognito Mode Is Lying to You]]></title>
      <link>https://benploni.com/blog/your-incognito-mode-is-lying-to-you</link>
      <guid isPermaLink="true">https://benploni.com/blog/your-incognito-mode-is-lying-to-you</guid>
      <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Here's the deal: incognito mode (or "private browsing" or whatever your browser calls it) does exactly one thing well. It doesn't save your browsing history, cookies, or form data after you close the window. That's it. That's the feature. The problem is that most people think it does a lot more than that. What People Think Incognito Does Based on conversations I've had (and a depressing amount of Reddit threads), people seem to believe incognito mode: * Makes them invisible to websites]]></description>
      <category><![CDATA[opsec]]></category>
      <enclosure url="https://images.unsplash.com/photo-1492045379936-abb525f8dacb?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEwfHxzZWNyZXR8ZW58MHx8fHwxNzY5NjI4MTgwfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[How I Stay Sane Implementing Stripe]]></title>
      <link>https://benploni.com/blog/how-i-stay-sane-implementing-stripe</link>
      <guid isPermaLink="true">https://benploni.com/blog/how-i-stay-sane-implementing-stripe</guid>
      <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[This article adapts t3dogg's approach to Stripe subscriptions for a Django/DRF backend that uses SQLite (via Django’s ORM) instead of a KV store, along with a Vue3 frontend. Overview Stripe’s inherent “split brain” can lead to inconsistencies between Stripe’s internal state and your application’s state. The key to avoiding these issues is to: 1. Always create (or retrieve) a Stripe customer before checkout. 2. Centralize subscription state updates via a single function that syncs Stripe da]]></description>
      <category><![CDATA[Programing]]></category>
      <enclosure url="https://images.unsplash.com/photo-1456406644174-8ddd4cd52a06?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGNvbmZ1c2VkfGVufDB8fHx8MTc2NTg0Njk3Mnww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
    <item>
      <title><![CDATA[The Great Human Secret: We're All Just Winging It]]></title>
      <link>https://benploni.com/blog/wingin-it</link>
      <guid isPermaLink="true">https://benploni.com/blog/wingin-it</guid>
      <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[You're sitting in a meeting, surrounded by people who seem incredibly competent and put-together, and suddenly you're struck by the terrifying thought that you have absolutely no idea what you're doing.]]></description>
      <category><![CDATA[Ramblings]]></category>
      <enclosure url="https://images.unsplash.com/photo-1643810774784-bd6510664eaa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxmYWxjb258ZW58MHx8fHwxNzY1ODIzNjc4fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=800" type="image/jpeg" length="0" />
    </item>
  </channel>
</rss>
