SShortSingh.

Programming

0
ProgrammingDEV Community ·

MCP Tools vs Resources vs Prompts: What to Expose to an AI Agent

When a team first wraps an internal platform in MCP, the result almost always looks the same: forty tools named get_x, list_x, create_x, and update_x, plus a few things that should never have been tools at all. The model gets lost, picks the wrong getter, and burns context reading giant responses it only needed a fragment of. The Model Context Protocol defines three root primitives — tools, resources, and prompts — because those are three genuinely different relationships an agent can have with your system. Mapping your capabilities onto them correctly is most of the design work. A tool is a f

0
ProgrammingDEV Community ·

tf-nag: offline AWS Solutions checks for Terraform plans

tf-nag is an offline Python CLI that checks Terraform plan or state JSON Rule IDs and severity levels are derived from the upstream AWS Solutions pack: https://github.com/cdklabs/cdk-nag. tf-nag is published on PyPI: https://pypi.org/project/tf-nag/. Install it with pip: pip install tf-nag tf-nag --version Or run it without installing, using uvx: uvx tf-nag --version To pin a specific release in a pipeline: pip install tf-nag==0.1.0 To work on tf-nag itself, clone the repository and install its development uv: git clone git@github.com:vumdao/terraform-nag.git cd terraform-nag uv sync --group d

0
ProgrammingDEV Community ·

My Lovable site looked finished. Google could read one language out of four

I often say that Lovable is great for the first version of a website. On RoboHub, a robot comparison catalog I built last week, I saw exactly where that first version ends, so here is the breakdown: what Lovable did well, what I had to redo, and how long it took. Lovable built the catalog in a few hours. Filters by category, payload and runtime, a page for every robot, a comparison table that highlights the best values, a quote form, four languages. Good enough to show a client.

0
ProgrammingDEV Community ·

How to Test and Debug an MCP Server: From the Inspector to Automated Tool Tests

Testing an MCP server through an AI client is a slow way to work. You type a natural-language prompt, hope the model picks the right tool, watch it fill in arguments, and if anything fails you cannot tell whether the bug is in your server, the model's reasoning, or the prompt. Every layer of that stack is nondeterministic except yours. Test yours first, deterministically, and leave the AI out of it until the protocol surface is provably correct. The protocol makes this easy.

0
ProgrammingDEV Community ·

Best AI Mock Interview Tools for Software Engineers in 2026 (prices checked, from someone who built one)

I built DevInterview.AI, so I have an obvious bias. I also spend a lot of time on these tools, and most "best AI mock interview tools" lists are written by people who haven't opened half of them, with prices that are a year stale. So here's the comparison I'd want, with every price checked on the vendor's own site on September 30, 2026, and the places where someone else is the better pick called out. You want unlimited reps with a voice interviewer: DevInterview.AI, $19.99 a month, first interview free. You want a human who has run real hiring loops: interviewing.io, from $179 a session.

0
ProgrammingDEV Community ·

Dantiva got its first paying customer. Then the product changed again

Two days ago I published a technical account of building Dantiva and wrote that paid demand had not been confirmed. That sentence is already out of date. The first confirmed purchase arrived on 17 September. On 21 September a customer bought the first monthly Start subscription through the Telegram Mini App. These are small transactions, not traction disguised as a chart.

0
ProgrammingDEV Community ·

House Pot: Amma's kitchen in Dhaka — approve first, then listen

Submission for Hacktoberfest Weekend: Build for a Friend — #hf26challenge House Pot is a small kitchen app for Amma in Dhaka: one recipe from tonight’s pantry, allergies checked in code, voice only after she approves. Weeknight dinner in our flat is not “pick a trending recipe.” It is what came back from the market, who is eating, and who cannot eat peanuts or shellfish. Recipe apps and generic AI chefs assume you will shop for their list, trust a prompt for safety, and read long steps while the rice is on the stove. That fails when: the pantry is fixed for tonight (dal, rice, greens, whatever

0
ProgrammingDEV Community ·

The Lord of the Queries: Defeating the N+1 Dragon

The Quest Begins (The "Why") Honestly, I was just trying to ship a feature that showed a user’s recent activity feed. The UI looked slick, the backend was a simple Rails API, and I felt like I’d nailed it. Then I opened the logs and saw hundreds of SQL statements scrolling by for a single page load. My heart sank – it was like watching the Death Star trench run and realizing every TIE fighter was a separate query. That moment was my “aha!” – the classic N+1 query problem rearing its ugly head.

0
ProgrammingDEV Community ·

Modeling Cross-Chain Completion States

Ethereum finality takes about 15 minutes under normal conditions, but a finalized source transaction still does not prove that the destination asset arrived. If you are wiring cross-chain execution into an application, your completion state must reflect the destination chain’s evidence, not just the wallet’s successful source receipt. A user who deposits on Ethereum and expects an asset on Optimism needs a clear answer when the first transaction is confirmed but the second is still pending. A transfer is complete when the expected destination-side effect has occurred and meets your application

0
ProgrammingDEV Community ·

MCP stdio vs Remote Transports: Run It Locally or Host It?

One of the most useful, and most confusing, properties of the Model Context Protocol is that the server code does not care how a client connects to it. A server exposes tools, resources, and prompts; the transport is a thin adapter underneath. Teams get stuck because the two transports in common use have almost nothing in common operationally: stdio is a child process with inherited credentials, Streamable HTTP is a hosted service with OAuth and uptime expectations. This article is the decision guide I wish existed before we shipped internal MCP servers both ways. Transport Connection State Ty

0
ProgrammingDEV Community ·

A success message does not prove your form saved anything

A form can show a cheerful confirmation while the server rejects the request. If you're debugging that behaviour, start with a small contract: the interface should show success only after the request returns an accepted result. Here is an illustrative handler with the state transitions separated from the request. send and setState are injected so the behaviour can be checked without a live server: async function saveEntry(payload, send, setState) { setState({ status: "saving" }); try { const response = await send(payload); if (!response.ok) throw new Error("Request was rejected"); setState({ s

0
ProgrammingDEV Community ·

Intergrating Payments to your SaaS from Cameroon shouldn’t be this much of a Hassle

In my last post about renaming Trivue to Tagviu, I mentioned having a rough time integrating international payments as a developer based in Cameroon. Let's talk about it. I tried several popular payment providers and Merchant of Records: Polar, Stripe, Dodo Payments, Lemon Squeezy, Paystack, Flutterwave, and a few others. The problem was: A lot of them don't support businesses in many African countries. Some of the providers that do support a handful of African countries, like Paystack and Flutterwave, currently don't let businesses registered in Cameroon get verified.

0
ProgrammingDEV Community ·

I built an L1 ticket deflector that knows when to stop: LangGraph + human-in-the-loop

I built an L1 ticket deflector that knows when to stop: LangGraph + human-in-the-loop The same tickets arrive at every IT service desk: password resets, VPN that won't connect, "how do I install 7-Zip?", a printer that's offline again. A widely cited industry range puts routine requests at 50–70% of L1 volume — work a script could handle, except nobody trusts a script with the tickets that actually matter. Building an agent that answers everything is easy. Building one that knows when to hand a ticket to a human is not. I built the second kind and open-sourced it.

0
ProgrammingDEV Community ·

Flock Verdict: Why IT Leaders Must Stop Mass Employee Surveillance

Flock Under Fire: How the Latest Court Ruling Turns Employee‑Monitoring Into Mass Surveillance – What IT Leaders Must Do Now Introduction A U.S. federal judge just declared that the popular employee‑monitoring platform Flock is “indiscriminate mass surveillance.” The ruling has sent ripples through corporate IT, privacy‑rights groups, and regulators on both sides of the Atlantic. In the days after the decision, Google Trends showed a 250 % surge in searches for “Flock privacy lawsuit,” “detect monitoring software,” and “GDPR employee tracking.” If you’re an IT manager, compliance officer, lega

0
ProgrammingDEV Community ·

JLScript: Guia Completo da Sintaxe, do Básico ao Avançado

🧛 JLScript — Do Básico ao Avançado Aprenda JLScript do primeiro mostrar() até APIs, banco de dados, dispositivos e interfaces. JLScript, também chamado de JLS, é uma linguagem de programação criada com o objetivo de possuir uma sintaxe simples, legível e agradável para quem está começando, sem impedir a criação de projetos maiores. Os arquivos da linguagem utilizam a extensão: .jls Neste guia vamos começar absolutamente do zero. No final, você já terá visto: variáveis; valores; operadores; condições; loops; funções; listas; objetos; tratamento de erros; módulos; aliases; tempo; APIs; banco de

0
ProgrammingDEV Community ·

Pushing Container Images to Google Cloud Artifact Registry (Step-by-Step)

When running Kubernetes locally with Docker Desktop, you have a handy superpower: your local Kubernetes cluster shares your computer's local Docker daemon. Any image you build via docker build is immediately available to your local pods without needing to push it to the internet. However, the moment you decide to deploy to a managed cloud cluster like Google Kubernetes Engine (GKE), that magic ends. GKE nodes run in Google Cloud's data centers and have no access to your laptop's disk. They need a secure, centralized container registry from which to pull your container images.

0
ProgrammingDEV Community ·

Implementing Public Watermark Delivery — Keep Original Promo Frames Private

Keep one immutable master private, generate a versioned watermarked derivative once, and let only that derivative cross the public cache boundary. For an edtech creator portfolio that turns prompts into short promo videos, the poster image shown in galleries is disposable and cacheable while the clean frame used to regenerate or re-edit the video is neither. The decision rule is blunt: if changing an object would require creative work again, it is a master; if it can be reproduced from a master plus a recipe, it is a derivative. TL;DR: Put masters and derivatives in separate storage namespaces

0
ProgrammingDEV Community ·

Dot-Form Header Aliases: How Traefik ForwardAuth Identity Spoofing Reached Backends Before 2.11.56

Dot-Form Header Aliases: How Traefik ForwardAuth Identity Spoofing Reached Backends Before 2.11.56 Why this matters to anyone running a proxy in front of an application A common architecture puts a reverse proxy in front of an application and lets the proxy decide who the caller is. The proxy validates a session or a JWT, then writes an identity header such as X-Authenticated-User into the upstream request. The backend trusts that header because it cannot see the proxy's decision-making. CVE-2026-88879 breaks that trust contract in Traefik. The flaw is not a memory-safety bug, and it does not

← NewerPage 671 of 3153Older →