<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: hamasaki</title>
    <description>The latest articles on Forem by hamasaki (@cthjp).</description>
    <link>https://forem.com/cthjp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3937234%2F2472c8c1-7505-466a-a286-f992b34676f6.jpeg</url>
      <title>Forem: hamasaki</title>
      <link>https://forem.com/cthjp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cthjp"/>
    <language>en</language>
    <item>
      <title>ISP Didn't Know What CGNAT Is</title>
      <dc:creator>hamasaki</dc:creator>
      <pubDate>Fri, 22 May 2026 18:23:18 +0000</pubDate>
      <link>https://forem.com/cthjp/isp-didnt-know-what-cgnat-is-4fh2</link>
      <guid>https://forem.com/cthjp/isp-didnt-know-what-cgnat-is-4fh2</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://cth.jp/en/artigos/isp-didnt-know-what-cgnat-is" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;cth.jp&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I just wanted to game with my friends using Parsec and my ISP support made me question the existence of tech support.&lt;/p&gt;

&lt;p&gt;Parsec needs a direct peer-to-peer connection between PCs to work. With CGNAT, Parsec simply can't make that connection and throws error 6023/6024. The official docs literally say it: CGNAT blocks the connection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1m9z8x7pykfpgf3i1k0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1m9z8x7pykfpgf3i1k0.png" alt=" " width="794" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I already knew that. So I grabbed my phone, called the ISP and said it super directly: "Hi, I wanna remove CGNAT and get a public IP please."&lt;/p&gt;

&lt;p&gt;The rep went silent for like 3 seconds and answered: "What?"&lt;/p&gt;

&lt;p&gt;I explained and she still understood nothing. Then the call dropped and I tried again. Another rep, another person who had no idea what CGNAT was, much less how to remove it. That's when I gave up.&lt;/p&gt;

&lt;p&gt;I wonder how people get jobs at a telecom as customer support without knowing the bare minimum of networking. CGNAT isn't hacker stuff, it's a basic IP distribution technique that everyone who works with internet should have at least heard of. But I'm sure ISP HR prefers referrals or "commercial skills" instead of the obvious, technical knowledge.&lt;/p&gt;

&lt;p&gt;For context, what is CGNAT?&lt;br&gt;
Normally your house has a unique IP on the internet, like an address. But ISPs ran out of IPv4 addresses and started using CGNAT. Now, several houses share the same public IP.&lt;/p&gt;

&lt;p&gt;To browse Twitter it makes no difference. But to game online, do P2P, use Parsec, or access your own home network from far away, it becomes a nightmare. It's like living in a building where everyone shares the same mailbox.&lt;/p&gt;

&lt;p&gt;The solution that worked in 5 minutes:&lt;br&gt;
I gave up on the ISP right away. Opened ZeroTier, created a network, sent the link to my friends, everyone joined and done. We were gaming like we were on the same local network.&lt;/p&gt;

&lt;p&gt;ZeroTier is like a mesh VPN. It creates a virtual network between PCs and makes a direct tunnel between them. Parsec sees it as if it were LAN. No need to configure the router, no need to ask anything from the ISP, no need for a public IP. Just install and put the network ID.&lt;/p&gt;

&lt;p&gt;Sometimes the easiest solution is simply to work around the problem instead of solving it. I could have spent 2 weeks fighting the ISP, sending screenshots, and waiting for a home technician. Or I could install a program and be happy.&lt;/p&gt;

&lt;p&gt;I chose to be happy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hamasaki&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>isp</category>
    </item>
    <item>
      <title>Quantum Apocalypse and the SNDL Tactic</title>
      <dc:creator>hamasaki</dc:creator>
      <pubDate>Tue, 19 May 2026 09:19:51 +0000</pubDate>
      <link>https://forem.com/cthjp/quantum-apocalypse-and-the-sndl-tactic-1p82</link>
      <guid>https://forem.com/cthjp/quantum-apocalypse-and-the-sndl-tactic-1p82</guid>
      <description>&lt;p&gt;Governments are already recording your encrypted data right now to decrypt it in the future with quantum computers. This is called SNDL (Store Now, Decrypt Later).&lt;/p&gt;

&lt;p&gt;Agencies like the NSA and Chinese intelligence tap submarine cables and filter traffic by priority, from military secrets to commercial VPN handshakes. The plan is to store today, open it when the quantum PC is ready.&lt;/p&gt;

&lt;p&gt;The problem is that asymmetric encryption (RSA, that little padlock in your browser) falls instantly to Shor's Algorithm. &lt;/p&gt;

&lt;p&gt;When they open the handshake they recorded today, they find your key, your payload, your passwords, your source code, your real identity.&lt;/p&gt;

&lt;p&gt;The good news is that AES-256 holds up. Quantum PCs can only run Grover's Algorithm against it, which cuts the strength in half, dropping it to 128 bits, which would still take millennia to brute-force.&lt;/p&gt;

&lt;p&gt;so, encrypt locally with AES-256 before sending anything to the cloud (Rclone Crypt, for example). &lt;/p&gt;

&lt;p&gt;If the key never travels over the internet through a legacy protocol (like emailing it to someone), there's nothing to record.&lt;br&gt;
The hope is the fast adoption of Post-Quantum Cryptography (PQC) before the first military quantum PC gets turned on.&lt;/p&gt;

&lt;p&gt;Hamasaki&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cth.jp/en/artigos/quantum-apocalypse-and-sndl" rel="noopener noreferrer"&gt;full post on the blog ♡&lt;/a&gt;&lt;/p&gt;

</description>
      <category>infosec</category>
    </item>
    <item>
      <title>WebP Isn't the Villain</title>
      <dc:creator>hamasaki</dc:creator>
      <pubDate>Mon, 18 May 2026 16:18:34 +0000</pubDate>
      <link>https://forem.com/cthjp/webp-isnt-the-villain-551b</link>
      <guid>https://forem.com/cthjp/webp-isnt-the-villain-551b</guid>
      <description>&lt;p&gt;Let's talk about WebP. Google created it back in 2010 with a dead-simple goal: make image files smaller without losing quality. And honestly, it works flawlessly.&lt;/p&gt;

&lt;p&gt;A lossy WebP is about 25% to 35% smaller than a JPEG. A lossless WebP is way smaller than a PNG. It supports transparency. It supports animation. It’s basically the ultimate Swiss Army knife of image formats.&lt;/p&gt;

&lt;p&gt;But then you download an image from Google Images, and it saves as a .webp. You try to drop it into MS Paint... nothing. You drag it into Photoshop (depending on the version)... error. Clip Studio Paint? Nope. Figma? Sure, it opens, but sometimes it glitches out out of nowhere.&lt;/p&gt;

&lt;p&gt;The internet's collective rage is perfectly summarized by this classic copypasta:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE CLASSIC:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Why is this a webp?! I hate webp! Just give me a png, please. MS Paint won't open a webp. Photoshop won't open a webp. Clip Studio Paint won't open a webp. I have to google 'webp to png converter' and pray it keeps transparency. I hate it."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;The pain is real. I get it. But the fault lies with sluggish software that refuses to update, not with a format that actually evolved. (¬_¬)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebP is technically superior.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s look at the facts. WebP uses much more modern compression algorithms than JPEG and PNG. It gives you:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Better lossy compression than JPEG: Way smaller files, same visual quality.

Better lossless compression than PNG: Perfect transparency at a fraction of the file size.

Animation support: Like a GIF, but way smaller and without that terrible 256-color limit.

8-bit Alpha Channel: Smooth, beautiful transparency gradients, not just binary (on/off) transparency.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;If the entire web fully embraced WebP, websites would load faster, apps would consume less data, and servers would save massive amounts of bandwidth. It’s a win-win for everyone.&lt;/p&gt;

&lt;p&gt;But no. We still prefer to manually convert things back to PNG and send a 3x larger file over Discord or WhatsApp. Why? Because the software opens it. ¯(ツ)/¯&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Creator’s Response&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There’s a famous tweet floating around where someone said, "I hope the inventor of WebP gets run over by a bus." The creator of the format casually replied: "I invented the WebP lossless format in 2011."&lt;/p&gt;

&lt;p&gt;It feels a bit smug, right? But at the same time, I completely get him. The guy built a genuinely great piece of technology, and the whole world decided to hate his guts because Windows 7 Paint couldn't open it. (T_T)&lt;/p&gt;

&lt;p&gt;If WebP had been invented in 1995 and everyone had 30 years to implement it, things would be different. The blame for the lack of adoption lies squarely on Microsoft, Adobe, Corel, and every other company that took an absolute eternity to roll out decent native support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Things are finally getting better&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fast forward to today, and support is actually pretty solid. Windows 11 Paint opens WebP natively. The latest Photoshop CC handles it. Every major browser supports it. Even FFmpeg deals with animated WebP like a champ. Yet, the reputation of being a "bothersome format" stuck around.&lt;/p&gt;

&lt;p&gt;It’s completely unfair. Imagine if we hated MP4 because Windows Media Player back in 2004 couldn't play it. Or if we hated PDF because some old, crusty reader crashed. We would blame the software, not the format. With WebP, we do the exact opposite. (⌐■_■)&lt;/p&gt;

&lt;p&gt;What really pisses me off is when a site serves a WebP for download, and a regular user just can't use it for their everyday stuff. It's not their fault. They just want to open a picture. The ecosystem failed them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, what's the solution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The solution isn't to retreat back to PNG and JPEG forever. It’s to demand that the software we use supports modern formats. Microsoft, Adobe, Affinity, Corel—all of them. WebP is over 15 years old now. It’s not a niche, experimental thing anymore.&lt;/p&gt;

&lt;p&gt;And if you are a web dev, serve WebP to the browser but always provide a fallback. HTML has the  tag specifically to solve this exact headache. Don’t force a user to download a format they might struggle to open in their favorite desktop app if they hit "Save Image As".&lt;/p&gt;

&lt;p&gt;Look, WebP doesn't deserve the hate. It just wanted to make the web lighter and prettier. The blame lies on Photoshop and friends, who took too long to give it some love.&lt;/p&gt;

&lt;p&gt;Sorry, WebP. We treated you poorly. (´｡• ᵕ •｡`)&lt;/p&gt;

&lt;p&gt;By &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://cth.jp/en/artigos/webp-is-not-the-villain" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;cth.jp&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>design</category>
    </item>
  </channel>
</rss>
