<?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>DEV Community: HkSolDev</title>
    <description>The latest articles on DEV Community by HkSolDev (@hksoldev).</description>
    <link>https://dev.to/hksoldev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1122021%2F741ded18-7f62-485a-af3c-d1e4b8c77e8b.png</url>
      <title>DEV Community: HkSolDev</title>
      <link>https://dev.to/hksoldev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hksoldev"/>
    <language>en</language>
    <item>
      <title>The Physical Limits of AI: GPU Exhaustion, The 151M Token Heist, and The 38GW Power Wall</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Sun, 13 Sep 2026 05:33:28 +0000</pubDate>
      <link>https://dev.to/hksoldev/the-physical-limits-of-ai-gpu-exhaustion-the-151m-token-heist-and-the-38gw-power-wall-1id1</link>
      <guid>https://dev.to/hksoldev/the-physical-limits-of-ai-gpu-exhaustion-the-151m-token-heist-and-the-38gw-power-wall-1id1</guid>
      <description>&lt;p&gt;For the last three years, the AI narrative has been simple: &lt;em&gt;scale compute, add parameters, collect breakthroughs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But this week, that narrative slammed into the real world. In a matter of days, three separate events showed that the hardest bottlenecks facing modern artificial intelligence are no longer algorithmic—&lt;strong&gt;they are hardware limits, cyber-espionage, and municipal electrical grids.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you prefer a visual breakdown, I documented the full timeline and research papers in this deep dive:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/zo06uYYtmeY" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Compute Crunch: Why OpenAI Paused Pro Subscriptions
&lt;/h2&gt;

&lt;p&gt;OpenAI previewed their next-generation &lt;strong&gt;GPT-6 Astra&lt;/strong&gt; architecture, achieving staggering reasoning scores (98% on FrontierMath and 100% on ExploitBench). &lt;br&gt;
Yet within 48 hours, they hit the brakes on new $200/month Pro tier subscriptions. Why?&lt;br&gt;
The issue isn't training runs—it's &lt;strong&gt;test-time compute and inference scaling&lt;/strong&gt;. High-reasoning models don't just output tokens; they perform deep chain-of-thought exploration, tree search, and multiple self-correction passes before rendering an answer. &lt;br&gt;
When millions of developers invoke autonomous reasoning agents simultaneously, GPU cluster capacity collapses under the concurrent concurrency load. Software optimization can only stretch silicon so far.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 151M Token Heist: How Attackers Cloned Claude for $0&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While frontier labs are spending hundreds of millions to pre-train models, attackers found a shortcut: &lt;strong&gt;model distillation as cyber-espionage&lt;/strong&gt;.&lt;br&gt;
In an official threat disclosure, Anthropic revealed that an attacker leveraged &lt;strong&gt;3,500 compromised accounts and stolen credit cards&lt;/strong&gt; to siphon over &lt;strong&gt;151,000,000 tokens&lt;/strong&gt; from Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technique:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Teacher-Student Distillation:&lt;/strong&gt; Instead of collecting and curating massive datasets from scratch, attackers prompt a "Teacher" frontier model (Claude) with complex reasoning prompts and use its outputs to train a smaller, cheaper "Student" open-weight model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Disguise:&lt;/strong&gt; To evade API anomaly detection, the botnet disguised chain-of-thought extraction prompts inside high-volume Japanese translation tasks.&lt;br&gt;
By siphoning the latent reasoning steps of frontier models, attackers essentially cloned intellectual property worth millions of dollars for the price of stolen API credentials. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;ol&gt;
&lt;li&gt;The 38-Gigawatt Reality Check: AI's Electrical Wall&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Perhaps the most startling revelation came from infrastructure planning: &lt;strong&gt;Microsoft’s request for 38 Gigawatts of electricity&lt;/strong&gt; for upcoming data center expansions.&lt;/p&gt;

&lt;p&gt;To put 38GW in perspective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 Gigawatt can power roughly 750,000 homes.&lt;/li&gt;
&lt;li&gt;38 Gigawatts exceeds the entire electrical grid capacity of countries like Ireland or New Zealand.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts: The New Era of AI Engineering
&lt;/h2&gt;

&lt;p&gt;The days of assuming compute and electricity are infinite are over. Moving forward, the winning engineering teams won't just be the ones with the cleverest prompts—they will be the teams that excel at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quantization &amp;amp; Local Edge Deployment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inference Caching &amp;amp; Token Efficiency&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  * &lt;strong&gt;Zero-Trust API Security &amp;amp; Anti-Distillation Defenses&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;Let's discuss:&lt;/strong&gt; Which constraint do you think will slow enterprise AI adoption the most over the next 18 months: &lt;strong&gt;GPU cluster shortages, model theft, or power grid bottlenecks?&lt;/strong&gt; Drop your take in the comments!&lt;br&gt;
&lt;em&gt;If you found this technical breakdown helpful, check out the full video deep dive on &lt;a href="https://youtube.com/@MrDevGhost" rel="noopener noreferrer"&gt;YouTube (@MrDevGhost)&lt;/a&gt; and connect with me on &lt;a href="https://x.com/MrDevGhost" rel="noopener noreferrer"&gt;Twitter / X&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>cybersecurity</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>Your Server Says "Running." So Why Can't You Connect?</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Thu, 03 Sep 2026 09:38:00 +0000</pubDate>
      <link>https://dev.to/hksoldev/your-server-says-running-so-why-cant-you-connect-321i</link>
      <guid>https://dev.to/hksoldev/your-server-says-running-so-why-cant-you-connect-321i</guid>
      <description>&lt;p&gt;A simple guide to cloud networking: VCNs, subnets, route tables, gateways, and security lists, using one mental model that actually makes sense.&lt;/p&gt;

&lt;p&gt;Your instance is up. The dashboard shows a calm green RUNNING. No errors. No red flags. Nothing looks wrong.&lt;/p&gt;

&lt;p&gt;So you try to connect. You open a terminal, type ssh, and hit enter. Nothing happens. It just hangs. Then it dies: Connection timed out.&lt;/p&gt;

&lt;p&gt;You try again. Same thing. Nothing changed, but now doubt creeps in. Wrong key? Wrong IP? Wrong username? You check all of it. It's fine. You try a third time anyway, and now you're just confused.&lt;/p&gt;

&lt;p&gt;Here's the real answer. It's not a typo. "On" and "reachable" are two different things.&lt;/p&gt;

&lt;p&gt;Here's a picture that helps. Imagine your server is a person. That person is standing inside a room. The room is inside a house. The house is built on a piece of land, with a fence around the whole property. When the dashboard says RUNNING, all it's telling you is that the person is standing there, alive and well, inside the room. It says nothing about whether the fence is actually up, whether the house has a working door, or whether anyone outside is even allowed to walk in.&lt;/p&gt;

&lt;p&gt;That's the real gap. And it comes down to five things you have to set up, each one a piece of that picture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The fenced property your house sits on&lt;/li&gt;
&lt;li&gt;The rooms inside the house&lt;/li&gt;
&lt;li&gt;A sign that tells you which way to walk&lt;/li&gt;
&lt;li&gt;The door in the outer wall&lt;/li&gt;
&lt;li&gt;A guard checking who's allowed through each door&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Set up all five correctly, and people can reach your server. Miss even one, and you get exactly what happened above: a server that's RUNNING, and a connection that goes nowhere.&lt;/p&gt;

&lt;p&gt;And once you know these five, you understand something bigger too: why all of this has to be set up before your app can even run. It's not extra steps the cloud is making you jump through for no reason. Most providers, including Oracle, quietly create a default version of all five the moment you spin up your first instance, so you don't always have to build them by hand. But they still exist, still get used, and still break things when one of them isn't set up the way you need. Once you see that path, cloud docs stop being confusing pages full of short-forms and unfamiliar terms. They become a simple checklist you actually understand.&lt;/p&gt;

&lt;p&gt;We'll build this picture one piece at a time, in the order it actually has to exist. By the end, you'll know exactly which piece was missing the last time something "should have worked" and didn't.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Fw-PxtW-rBo" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The Property: Your VCN
&lt;/h2&gt;

&lt;p&gt;Before anything else can exist, you need a piece of property.&lt;/p&gt;

&lt;p&gt;Not a server. Not a house yet. Just an empty, fenced-off piece of ground, marking out territory that belongs to you and nobody else. In the cloud, this fenced property is called a VCN, short for Virtual Cloud Network.&lt;/p&gt;

&lt;p&gt;This is the part people get backwards. It feels like you should spin up your server first, and the network just kind of appears around it. It's the opposite. The property always comes first. You can't build a house with no ground to put it on, and you can't run a server with no VCN to put it in. Some cloud consoles hide this from you with a quick "Create Instance" button that sets up a default VCN behind the scenes, so it can feel instance-first even when it isn't. Underneath, the order never changes: property first, then everything else on top of it.&lt;/p&gt;

&lt;p&gt;Right now, this property is empty. No house, no rooms, no door. Just a fenced boundary that says: this address belongs to you.&lt;/p&gt;

&lt;p&gt;That's it. That's a VCN. Nothing lives here yet, but everything you build next has to sit inside this fence.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fghvlum99lzxo9k9oijzl.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fghvlum99lzxo9k9oijzl.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rooms: Your Subnets
&lt;/h2&gt;

&lt;p&gt;Now you build a house on that property. But a house isn't one giant open space. It has walls dividing it into separate rooms. In the cloud, these rooms are called subnets.&lt;/p&gt;

&lt;p&gt;Here's the part that matters most: every room starts out locked, with no window to the street. Nobody outside can see in or reach in. This is the default for every subnet you create. Not some of them. All of them.&lt;/p&gt;

&lt;p&gt;If you want one room to actually be reachable from outside, like a room the public should be able to walk up to, you have to unlock it on purpose. That becomes a public subnet. Every other room stays locked down. That becomes a private subnet.&lt;/p&gt;

&lt;p&gt;So picture standing in the middle of this house. Some rooms are locked. One room has a window to the street. Nothing has told you yet how to actually move between them, or how to get out to the street from the room with the window. For that, you need a sign. That's the next piece.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcfnt8zvptyjq9u5c2l03.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcfnt8zvptyjq9u5c2l03.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Sign: Your Route Table
&lt;/h2&gt;

&lt;p&gt;Now picture a sign hanging in the hallway of your house. It doesn't open any doors. It doesn't check anyone's ID. All it does is point.&lt;/p&gt;

&lt;p&gt;"Want to reach the database room? Go this way." "Want to reach the internet? Go that way." In the cloud, this sign is called a route table.&lt;/p&gt;

&lt;p&gt;The important thing to understand is what this sign does not do. It only tells traffic which way to go when it's leaving somewhere. It has nothing to say about who's allowed to come in that's not a direction it points, it's just a question this sign was never built to answer. Letting people in or keeping them out is a completely different job, handled by a completely different piece, which we'll get to soon.&lt;/p&gt;

&lt;p&gt;So there's a sign now, and it's pointing outward, telling traffic that wants to reach the internet which way to walk. Follow where it's pointing, though, and there's nothing there yet. No door. Just an empty gap in the wall. That's the next piece we need to build.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F40gmj6l4tdr7bias8igb.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F40gmj6l4tdr7bias8igb.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Door: Your Internet Gateway
&lt;/h2&gt;

&lt;p&gt;Now a door gets built right into that gap, in the outer wall of the house, the wall that faces the street. In the cloud, this door is called an Internet Gateway.&lt;/p&gt;

&lt;p&gt;At first it seems like a one-way door. Traffic leaves through it to reach the internet, and that's the end of the story. But think about it for a second. If you load a website, the request goes out through this door, sure, but the response has to come back in through the same door too, or you'd never see the page load at all. So it's actually two-way. Things go out, and things come back in.&lt;/p&gt;

&lt;p&gt;Here's the part that should worry you a little. This door has no guard standing at it. Nobody is checking who walks through, in either direction. It's not that kind of door. It's just an opening. Whether anyone should be allowed to actually walk through, and who, isn't this door's job at all.&lt;/p&gt;

&lt;p&gt;So now there's a door, and it swings both ways. But it's wide open, with nobody watching it. Anyone on the street could walk straight up and let themselves in. That's the problem we need to solve next.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkclodc0umj5tkllptoq.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftkclodc0umj5tkllptoq.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Guard: Your Security List
&lt;/h2&gt;

&lt;p&gt;So you put a guard at the front door. That fixes it, right? The guard checks IDs, checks who's allowed in, checks what they're carrying, in and out. In the cloud, this guard is called a security list, or on some platforms, a network security group (NSG). Same job, different name.&lt;/p&gt;

&lt;p&gt;Now here's a question worth sitting with. Your private room, the one with no window, the one nobody outside can even see. Does that room need a guard too? It feels like no. Nobody from the street even knows it's there.&lt;/p&gt;

&lt;p&gt;But think about what "private" actually means. It only means the street can't see in. It does not mean nothing inside the house can reach it.&lt;/p&gt;

&lt;p&gt;Say your public room is running the backend of your app, reachable from the internet through the front door. Say your private room, down the hall, is running your database. If someone breaks into that public room, maybe through a bug in your app, they're not standing on the street anymore. They're already inside the house. From there, walking down the hall to the private room isn't stopped by anything, unless that room has its own guard too.&lt;/p&gt;

&lt;p&gt;This is why a guard belongs at every single door, public and private. And it's why the guard's rules should be specific, not just "let anything in." Your backend room should only be allowed to reach the database room on one exact port, and the database room should only accept connections from that one backend room, nowhere else.&lt;/p&gt;

&lt;p&gt;A quick word on "port," since it comes up a lot from here: a port is just a number a program picks when it starts running, so incoming traffic knows which program on the machine it's meant for, not which machine. Databases like Postgres default to port 5432, web servers often use 80 or 443. It's not something the VCN or subnet hands out. It's the software itself, listening.&lt;/p&gt;

&lt;p&gt;If somebody asks "does the database even need rules, since it's private and hidden?", the honest answer is yes, maybe more than anywhere else. Private keeps strangers off the street from seeing it. It does nothing to stop someone who already got past your front door.&lt;/p&gt;

&lt;p&gt;Every door gets a guard. Not because you don't trust the street. Because you don't fully trust anything, including your own house.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F32a1jng4dvav7bvqgcpf.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F32a1jng4dvav7bvqgcpf.jpg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Gotchas: Why It Broke For Me
&lt;/h2&gt;

&lt;p&gt;Knowing the five pieces is one thing. Actually getting them right the first time is another. These are the mistakes almost everyone runs into at some point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"The gateway exists, so traffic should reach it."&lt;/strong&gt; Wrong. Having a door in your outer wall means nothing if there's no sign telling traffic to walk toward it. The Internet Gateway and the route table are two separate pieces, and both have to be set up. It's a common trap: the gateway is built, but outbound traffic still doesn't work, because nothing is pointing at it. The sign has to explicitly say "internet-bound traffic, go this way, toward the gateway." Skip that, and the door might as well not exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"The gateway only handles outgoing traffic."&lt;/strong&gt; Wrong. It's easy to assume a door made for reaching the internet is a one-way thing. It's not. A response has to come back through the same door it went out of. If you only think about the outbound half, you'll misunderstand what the gateway is actually doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"My database is private, so it's already safe."&lt;/strong&gt; Wrong, or at least incomplete. Private means invisible from the street. It does not mean invisible from a room that's already inside your house. If your public-facing app ever gets compromised, whoever's in there is now inside the property, not outside it. A private room with no guard is only safe until something inside the house turns against it. This is the one that costs the most later, because it's invisible until the day it isn't.&lt;/p&gt;

&lt;p&gt;The pattern behind all three: it's never just one piece. A door with no sign does nothing. A sign with no door points at nothing. A locked room with no guard is locked against the street, not against the house. The five pieces only work together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Reference: The Five Pieces
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;House&lt;/th&gt;
&lt;th&gt;Cloud Term&lt;/th&gt;
&lt;th&gt;What It Actually Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;The property&lt;/td&gt;
&lt;td&gt;VCN (Virtual Cloud Network)&lt;/td&gt;
&lt;td&gt;The boundary. Has to exist before anything else. Nothing lives here yet, it just marks the territory.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The rooms&lt;/td&gt;
&lt;td&gt;Subnet&lt;/td&gt;
&lt;td&gt;Where things actually live. Private by default. Made public only on purpose.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The sign&lt;/td&gt;
&lt;td&gt;Route Table&lt;/td&gt;
&lt;td&gt;Governs outbound traffic only — points it in the right direction. Has no say over inbound at all.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The door&lt;/td&gt;
&lt;td&gt;Internet Gateway&lt;/td&gt;
&lt;td&gt;Connects the property to the internet. Two-way, traffic goes out and comes back in. Has no guard of its own.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The guard&lt;/td&gt;
&lt;td&gt;Security List / NSG&lt;/td&gt;
&lt;td&gt;Decides who's actually allowed through a door, by address and by port. Belongs at every door, public and private.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The one line to remember: "Running" means your server showed up. It says nothing about the property, the rooms, the sign, the door, or the guard. All five have to be in place before anyone, including you, can actually reach it.&lt;/p&gt;

&lt;p&gt;Building this in public, one wrong turn at a time. Follow along on X: x.com/HKsoldev&lt;/p&gt;

&lt;p&gt;Video 1 (the full house analogy, animated) drops soon on the channel: youtube.com/@MrDevGhost&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>networking</category>
      <category>beginners</category>
      <category>oracle</category>
    </item>
    <item>
      <title>Why Backend Apps Use Database Connection Pooling</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Tue, 14 Jul 2026 16:28:59 +0000</pubDate>
      <link>https://dev.to/hksoldev/why-backend-apps-use-database-connection-pooling-p90</link>
      <guid>https://dev.to/hksoldev/why-backend-apps-use-database-connection-pooling-p90</guid>
      <description>&lt;h2&gt;
  
  
  Why Backend Apps Use Database Connection Pooling?
&lt;/h2&gt;

&lt;p&gt;Why not backend apps do not make a fresh database connection for every request.&lt;/p&gt;

&lt;p&gt;At first I was thinking that when a request comes, the app can just query the database directly and get the result. But that is not how it works. Before the query even runs, the backend has to open a database connection, authenticate with the database, create a session, and use some database resources for that connection state&lt;/p&gt;

&lt;p&gt;That means a database connection is not free. It takes time and also uses memory and CPU on the database side.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a database connection is ?
&lt;/h2&gt;

&lt;p&gt;When the backend wants to do some operation in the database, it first needs a connection to the database.&lt;/p&gt;

&lt;p&gt;To make that connection, the backend uses database credentials, then the database authenticates the client, creates session state, and allocates resources needed for that connection. Only after that can the backend run the query.&lt;/p&gt;

&lt;p&gt;So a connection is not just “send SQL and get result.” There is setup work before the actual query starts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens when a backend opens a fresh connection
&lt;/h2&gt;

&lt;p&gt;If the backend opens a fresh connection for a request, the flow is roughly like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User sends an HTTP request.&lt;/li&gt;
&lt;li&gt;The backend opens a database connection.&lt;/li&gt;
&lt;li&gt;The database authenticates that connection.&lt;/li&gt;
&lt;li&gt;The backend sends the SQL query.&lt;/li&gt;
&lt;li&gt;The database processes the query.&lt;/li&gt;
&lt;li&gt;The database returns the result.&lt;/li&gt;
&lt;li&gt;The backend closes the database connection.&lt;/li&gt;
&lt;li&gt;The backend sends the HTTP response.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. User clicks "Get Articles" button
2. HTTP request reaches your server           [0ms]
3. App creates database connection           [20ms]  ← Connection overhead
4. App authenticates with database           [10ms]  ← Authentication overhead
5. App sends SQL query                       [1ms]   ← Actual work
6. Database processes query                  [5ms]   ← Actual work
7. Database returns results                  [1ms]   ← Actual work
8. App closes database connection            [5ms]   ← Connection overhead
9. App sends HTTP response                   [1ms]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So in this flow, the query is only one part of the total work. Connection setup and teardown also add overhead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why doing that on every request is expensive
&lt;/h2&gt;

&lt;p&gt;If we make the connection for reach request &lt;br&gt;
First we have to go with all the above process for each connection the backend repeats this full process for every request, the extra overhead adds latency again and again. Under higher traffic, that also puts more pressure on the database because too many connections consume extra resources.&lt;/p&gt;

&lt;p&gt;If one req take 2-8 mb of the space think about the 1000 of connection, Database might take 2-8Gb just for the connection overhead.|&lt;/p&gt;

&lt;p&gt;That is why opening a new connection for every request is usually a bad idea for real backend systems. The app spends time creating and closing connections instead of just reusing them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What connection pooling is
&lt;/h2&gt;

&lt;p&gt;A Connection pooling is a cache of Database connection already open and ready to reuse.&lt;/p&gt;

&lt;p&gt;Instead of creating a new connection for each request, the application borrows a free connection from the pool, uses it for the query, and then returns it back to the pool. This avoids paying the full connection setup cost every time.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujnd6bkcge5i1xjdsauc.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujnd6bkcge5i1xjdsauc.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So the main benefit of pooling is lower connection overhead and better control over how many active database connections exist at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a request works with a pool
&lt;/h2&gt;

&lt;p&gt;With a connection pool, the app does not always need to start from zero.&lt;/p&gt;

&lt;p&gt;When a request comes in, the backend asks the pool for an available connection. If one is free, it uses that connection to run the query and then returns it to the pool after the work is done. Some pools create connections early, while others create them lazily and grow up to a configured limit.&lt;/p&gt;

&lt;p&gt;This saves time because the app is reusing existing connections instead of building a fresh one for every request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes and limits.
&lt;/h2&gt;

&lt;p&gt;Connection pooling is useful, but it also has limits.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pool make Too large
&lt;/h4&gt;

&lt;p&gt;If make more no of connection into the pool does not does not automatically make the app faster, instead we fallback to the same issue that we try to solve with the pool.&lt;/p&gt;

&lt;h4&gt;
  
  
  Connection Leaks:-
&lt;/h4&gt;

&lt;p&gt;A connection leak happens when the app taken connection form the pool but never returned, so the pool slowly run out of the connection.&lt;/p&gt;

&lt;h4&gt;
  
  
  No Timeout settings:-
&lt;/h4&gt;

&lt;p&gt;If all connections are busy and there is no proper timeout, requests may hang too long while waiting for a free connection.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pool too small:
&lt;/h4&gt;

&lt;p&gt;If the pool is too small, requests start waiting for a free connection. Then the app feels slow even if the database itself is working fine.&lt;/p&gt;

&lt;h4&gt;
  
  
  Ignoring slow queries:
&lt;/h4&gt;

&lt;p&gt;A bad query can hold a connection hostage and block others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;The main thing learned today is that connection pooling is not about making the database magically faster. It is about avoiding repeated connection setup cost and managing database connections in a smarter way.&lt;/p&gt;

&lt;p&gt;So if a backend is opening a fresh database connection for every request, pooling is one of the first things to look at.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>backenddevelopment</category>
      <category>databaseperformance</category>
      <category>databaseconnectionpooling</category>
    </item>
    <item>
      <title>Understanding How AI Agents Work?</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Sun, 12 Jul 2026 00:58:20 +0000</pubDate>
      <link>https://dev.to/hksoldev/understanding-how-ai-agents-work-18lj</link>
      <guid>https://dev.to/hksoldev/understanding-how-ai-agents-work-18lj</guid>
      <description>&lt;p&gt;What is an AI Agent?&lt;/p&gt;

&lt;p&gt;The AI agent is a tool that helps the user to get the answer/info directly what he is seeking.&lt;/p&gt;

&lt;p&gt;If we just talk in the context of coding only before the AI come coding is like a open book exam where writing code is like answering the question in the test and if you stuck you just open the book or go to internet and get the answer but even its a open book exam you must atleast have a basic idea where to look and the available answer is suit for you code you not its like you look for an Math query and you checking the chemistry answer.&lt;/p&gt;

&lt;p&gt;What change after AI is that we all get our own guider who directly gives us the answer and relevant links to where he gets the answer for reference.&lt;/p&gt;

&lt;p&gt;So we can say that AI Agent is a more of our personal guider which we can use in any way, anytime we want.&lt;/p&gt;

&lt;p&gt;Workflow of AI Agents:-&lt;/p&gt;

&lt;p&gt;So we see we can use the AI Agent at many places and more of a guider now, let’s see how the guider does things behind to help us.&lt;/p&gt;

&lt;p&gt;Lets go with the example of the Open Book Test, and we user Our Guider AI Agent to clear the test.&lt;/p&gt;

&lt;p&gt;So we Stuck in some questions and Now We need the help of our Guider to get the answer for the relevant question.&lt;/p&gt;

&lt;p&gt;So the first question was whether our Guider needed to look at the Whole Book?&lt;/p&gt;

&lt;p&gt;The answer is no as book may be very long and its just a example of book the data can be very long so machine/ AI Agent cant look whole data at once so there is limited size it can look at a time and that called Context Window and its depends on LLM some have big window and some has small&lt;/p&gt;

&lt;p&gt;So the question may come now that the data is always more than the context window, so how can we store and get the answer?&lt;/p&gt;

&lt;p&gt;The answer is we divided the book into small chunks, let’s say pages or more small (put 1000 words at a time together into the list), we do not need to always look through the whole data to get the answer&lt;/p&gt;

&lt;p&gt;After dividing the Big PDF into small chunks, we pass the relevant chunks into the context window, and LLM can do the process&lt;/p&gt;

&lt;p&gt;from langchain_community.document_loaders import PyPDFLoader&lt;br&gt;
from langchain_text_splitters import RecursiveCharacterTextSplitter&lt;/p&gt;

&lt;h1&gt;
  
  
  put the file path of the File //
&lt;/h1&gt;

&lt;p&gt;file_path = "./example.pdf" &lt;/p&gt;

&lt;h1&gt;
  
  
  load the file by using the PyPDFLoader //
&lt;/h1&gt;

&lt;p&gt;loader = PyPDFLoader(file_path=file_path)&lt;br&gt;
 docs = []&lt;/p&gt;

&lt;p&gt;print("LOADER", loader)&lt;br&gt;
// Loads the file&lt;br&gt;
docs_lazy = loader.lazy_load()&lt;/p&gt;

&lt;p&gt;for doc in docs_lazy:&lt;br&gt;
    docs.append(doc)&lt;/p&gt;

&lt;h1&gt;
  
  
  Here we do the Choose the Textsplitter which help us to do the chunking and we give what
&lt;/h1&gt;

&lt;h1&gt;
  
  
  is the size of our chunk and we overlap the chunk as the data not lost when the chunk end
&lt;/h1&gt;

&lt;p&gt;text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)&lt;/p&gt;

&lt;h1&gt;
  
  
  Now we the splitter we make and made chunk of the docs we have on the basis of text
&lt;/h1&gt;

&lt;p&gt;text = text_splitter.split_documents(documents=docs)&lt;/p&gt;

&lt;p&gt;Why require to do Embedding:-&lt;/p&gt;

&lt;p&gt;Now we do the chunking or divide the data into small parts, you think now just put it into the vector database and we're good to go. But that’s not true as it is like we just put the text into the database and if the query comes it’s not possible to get the relevant data from the database.&lt;/p&gt;

&lt;p&gt;Take an example like Translation from English to Your Language&lt;/p&gt;

&lt;p&gt;“The sun sets in the west”&lt;/p&gt;

&lt;p&gt;Can its make sense if you translate the things word by word and say it may be, but its rare, most of the time it’s not you have to find the relation and semantic meaning for the words and how they are related to translate it well.&lt;/p&gt;

&lt;p&gt;I don’t like, grammar, and i have a sensei who always corrects me.&lt;/p&gt;

&lt;p&gt;So like in translation, we put the word based on its relation we put the chunking data in a way that the same meaning of words are closer to each other in the vector db so its easy and get the relevant data easily for the query.&lt;/p&gt;

&lt;p&gt;Do not worry, this is all done by the LLM.&lt;/p&gt;

&lt;p&gt;So far, we take a big file —&amp;gt; Divide the file into small chunks —&amp;gt; Do the Embedding of the chunks and put in the Vector Db.&lt;/p&gt;

&lt;p&gt;from langchain_google_genai import GoogleGenerativeAIEmbeddings&lt;/p&gt;

&lt;h1&gt;
  
  
  use the QdrantVectore Store to store the vector embedding
&lt;/h1&gt;

&lt;p&gt;from langchain_qdrant import QdrantVectorStore &lt;/p&gt;

&lt;h1&gt;
  
  
  Here we select the GoogleAi Embedder to make the embedding of our docs
&lt;/h1&gt;

&lt;p&gt;embedder = GoogleGenerativeAIEmbeddings(&lt;br&gt;
    model="models/text-embedding-004",&lt;br&gt;
    google_api_key="Your Api key",&lt;br&gt;
)&lt;/p&gt;

&lt;h1&gt;
  
  
  Now we make a vectore store
&lt;/h1&gt;

&lt;p&gt;vector_store = QdrantVectorStore.from_documents(&lt;br&gt;
     documents=[],&lt;/p&gt;

&lt;h1&gt;
  
  
  The Url to which to connect
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; url="http://localhost:6333",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
  
  
  The collection name we have in our store in which we put all our embedding
&lt;/h1&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; collection_name="learning_langchain",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
  
  
  Give the embedder we make above
&lt;/h1&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; embedding=embedder,
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;)&lt;/p&gt;

&lt;h1&gt;
  
  
  Now we have our store now lets put the doc in it we have and its make all the embedding and
&lt;/h1&gt;

&lt;h1&gt;
  
  
  All by itslef automatically
&lt;/h1&gt;

&lt;p&gt;vector_store.add_documents(documents=text)&lt;/p&gt;

&lt;p&gt;Retrieval &amp;amp; Generation -&lt;/p&gt;

&lt;p&gt;When the user asks a query/question, the agent:-&lt;/p&gt;

&lt;p&gt;When user asks a que/query, we can directly search the query in our database as user can ask anything, and its very hard and maybe the data we got is not fully correct to find what the user is asking about, so for this.&lt;/p&gt;

&lt;p&gt;We convert the user query into an embedding.&lt;/p&gt;

&lt;p&gt;Then we get the embedding of the query and search into our Vector Database for the relevant meaning word or similar semantic meaning.&lt;/p&gt;

&lt;p&gt;After getting the relevant semantic meaning, we pass the ( relevant data + user query ) to our LLM and we got the result.&lt;/p&gt;

&lt;p&gt;from langchain_qdrant import QdrantVectorStore&lt;/p&gt;

&lt;h1&gt;
  
  
  This we make to get the revelant data from our store
&lt;/h1&gt;

&lt;p&gt;retriver = QdrantVectorStore.from_existing_collection(&lt;br&gt;
    url="&lt;a href="http://localhost:6333" rel="noopener noreferrer"&gt;http://localhost:6333&lt;/a&gt;",&lt;br&gt;
    collection_name="learning_langchain",&lt;br&gt;
    embedding=embedder,&lt;br&gt;
)&lt;/p&gt;

&lt;h1&gt;
  
  
  Query give By the user
&lt;/h1&gt;

&lt;p&gt;query = input("Ask the Doubt:=&amp;gt; ")&lt;/p&gt;

&lt;h1&gt;
  
  
  We put the query into our message array
&lt;/h1&gt;

&lt;p&gt;message.append({"role": "user", "content": query})&lt;/p&gt;

&lt;h1&gt;
  
  
  This will Find the revelant data on the basis of out query form the Database
&lt;/h1&gt;

&lt;p&gt;search_result = retriver.similarity_search(query)&lt;/p&gt;

&lt;h1&gt;
  
  
  Here we put the data we got from the retriver and put in message so our LLM have revelant data
&lt;/h1&gt;

&lt;h1&gt;
  
  
  and query to give us a better answer
&lt;/h1&gt;

&lt;p&gt;message.append({"role": "system", "content": search_result[0].page_content})&lt;/p&gt;

&lt;h1&gt;
  
  
  Now just give the message to our LLM
&lt;/h1&gt;

&lt;p&gt;res = client.chat.completions.create(&lt;br&gt;
    model="gemini-2.0-flash",&lt;br&gt;
    messages=message,&lt;br&gt;
    response_format={"type": "json_object"},&lt;br&gt;
)&lt;/p&gt;

&lt;h1&gt;
  
  
  Here We see the query Result from Our LLM
&lt;/h1&gt;

&lt;p&gt;print(res.choices[0].message.content)&lt;/p&gt;

&lt;p&gt;Connect With me:-&lt;/p&gt;

&lt;p&gt;Github:- &lt;a href="https://github.com/hksoldev" rel="noopener noreferrer"&gt;https://github.com/hksoldev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinkedIn :- &lt;a href="https://www.linkedin.com/in/mrhemantkumarr/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/mrhemantkumarr/&lt;/a&gt; Youtube&lt;/p&gt;

&lt;p&gt;X(Twitter) :- &lt;a href="https://x.com/hksoldev" rel="noopener noreferrer"&gt;https://x.com/hksoldev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discord:- &lt;a href="https://discordapp.com/users/1442491832591319182" rel="noopener noreferrer"&gt;https://discordapp.com/users/1442491832591319182&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Want to learn about Devops can anyone suggest where should start learn for free ?</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Thu, 23 Jan 2025 15:48:06 +0000</pubDate>
      <link>https://dev.to/hksoldev/want-to-learn-about-devops-can-anyone-suggest-where-should-start-learn-for-free--1op0</link>
      <guid>https://dev.to/hksoldev/want-to-learn-about-devops-can-anyone-suggest-where-should-start-learn-for-free--1op0</guid>
      <description></description>
      <category>devops</category>
      <category>learning</category>
      <category>career</category>
    </item>
    <item>
      <title>Want to prepare for an interview for react i am fresher i dont know where to prepare for an interview anyone please tell me</title>
      <dc:creator>HkSolDev</dc:creator>
      <pubDate>Tue, 18 Jul 2023 12:34:11 +0000</pubDate>
      <link>https://dev.to/hksoldev/want-to-prepare-for-an-interview-for-react-i-am-fresher-i-dont-know-where-to-prepare-for-an-interview-anyone-please-tell-me-1bci</link>
      <guid>https://dev.to/hksoldev/want-to-prepare-for-an-interview-for-react-i-am-fresher-i-dont-know-where-to-prepare-for-an-interview-anyone-please-tell-me-1bci</guid>
      <description></description>
    </item>
  </channel>
</rss>
