SShortSingh.

Programming

0
ProgrammingDEV Community ·

Why AI-Run Throwaway Tests May Beat Traditional Self-Healing Automation

A software testing perspective argues that self-healing test scripts create more problems than they solve, as automated locator fixes can silently assert unintended outcomes, producing costly false positives. The proposed alternative involves writing test cases in plain language and letting an AI agent execute them directly in a browser each time, eliminating the need for maintained scripts. Tools like the Playwright MCP server allow an AI agent to navigate a live page, follow test steps, capture screenshots, and generate a pass/fail report without any pre-written automation code. Because the agent works from the current state of the page, UI changes do not break anything — the agent simply adapts, much like a human tester would. The approach is positioned not as a full replacement for scripted tests, but as a practical method for short-lived or infrequent checks, with stable, high-value scenarios still promoted to deterministic scripts over time.

0
ProgrammingDEV Community ·

Tutorial: Deploying a Production StatefulSet on Kubernetes with Argo CD and AWS EBS

A technical guide published on DEV Community walks through deploying a production-grade Kubernetes StatefulSet using Argo CD for GitOps-based continuous delivery. The setup covers a restaurant application running three replicas on Amazon EKS, with each pod backed by a dedicated AWS EBS gp3 volume provisioned via the EBS CSI driver. Key Kubernetes resources configured include a headless service for stable pod network identities, a ConfigMap, a ServiceAccount, a StorageClass, and a PodDisruptionBudget requiring at least two pods to remain available during disruptions. The project follows a structured GitOps repository layout, with all manifests managed through Kustomize and synced to the cluster via an Argo CD Application resource. The guide emphasizes production best practices such as encrypted persistent storage, rolling update strategy, resource limits, and liveness and readiness probes.

0
ProgrammingDEV Community ·

Engineer Applies Production System Metrics to His Own Career for 12 Weeks

A software engineer with 25 years of experience decided to apply the same observability principles he used on technical systems to his own career, tracking time, output, and project completion across a 12-week experiment starting in late June. Using three markdown files in Obsidian, he set rules around publishing cadence, open-source contributions, and a definition of a 'real' project requiring code, documentation, and a published article. Over the period, he produced over 40 articles and a dozen open-source tools, but discovered his initial metrics dashboard measured only raw output, making it a vanity tracker that could not distinguish meaningful work from throwaway notes. He also caught himself violating his own publishing cadence rule — posting eight articles in four days — realising he had prioritised personal momentum over reader value. The experiment surfaced blind spots he had previously identified quickly in others' work, reinforcing that self-measurement can reveal biases even experienced practitioners miss.

0
ProgrammingDEV Community ·

Developer builds pure-Zsh prompt engine that renders in under 0.7ms with no binaries

A developer has released zline, a shell prompt engine written entirely in pure Zsh that renders in approximately 0.6 milliseconds without relying on compiled binaries, Rust, or C++ daemons. The project was motivated by performance limitations in popular prompt tools like Starship and Powerlevel10k, which depend on external processes or compiled companions that add latency. zline eliminates subshell forks on its critical render path by using native Zsh builtins and parameter expansions in place of common Unix utilities like sed, awk, and cut. For Git repositories, it reads the .git/HEAD file directly using Zsh file descriptors, returning branch and rebase state in roughly 0.07 milliseconds without invoking the git binary. Dirty status and ahead/behind counts are handled asynchronously via a background worker communicating over named pipes, keeping the prompt responsive even in large codebases.

0
ProgrammingDEV Community ·

Developer Puts All-in-One Secrets Manager Dopbase Through Rigorous Real-World Testing

A developer independently tested Dopbase, a secrets manager that packages a server, admin UI, REST API, and CLI into a single binary, with no sponsorship or incentive. The tool aims to replace common insecure practices like sharing credentials over Slack or storing them in .env files, without requiring complex infrastructure like Vault or Doppler. Testing involved a clean installation, multi-environment secret management, key rotation, CI token usage, and deliberately crashing the server mid-command. The install script was verified to be a straightforward POSIX script that checks OS architecture, downloads a release from GitHub, and validates it with a SHA-256 checksum before installing. Dopbase stores runtime data including its SQLite database and master key locally under a default user directory, keeping it self-contained on infrastructure the user controls.

0
ProgrammingDEV Community ·

Cloudflare Email Routing, Google Workspace, Zoho Mail: Which Fits Your Support Inbox?

A practical comparison of three email solutions for hosting a custom-domain support address breaks the choice down into three key questions: whether you only need to receive mail, whether you need to reply from that address, and whether multiple people must share the same inbox. Cloudflare Email Routing is free and quick to set up but only forwards messages and cannot store or send mail on its own. Google Workspace offers a full single-seat mailbox that works out of the box, though it carries a recurring per-seat cost and replaces Cloudflare's MX records. Zoho Mail provides a genuinely usable free tier for solo users, but shared-mailbox features require a paid plan, putting it on par with Workspace for teams. Self-hosted options built on Cloudflare Workers and D1 support multi-user shared inboxes at no software cost, but require the owner to manage infrastructure, schema migrations, and uptime.

0
ProgrammingDEV Community ·

Why iCloud Private Relay scores the same as a paid VPN on one IP checker

IP reputation service ipok.io assigns iCloud Private Relay exit nodes the same risk score of 65 out of 100 as paid VPN services like Mullvad, a result the developers say is intentional. The score is a weighted average of multiple vendor ratings, with a minimum floor of 65 applied when two or more sources flag an address as a proxy or VPN. Vendors including Scamalytics and vpnapi.io simultaneously identify Apple Private Relay IPs as relay traffic and label them as VPNs, meaning the floor gets triggered regardless. The team decided against removing the floor because the score is designed to reflect how third-party services treat an IP in the real world, not to render a judgment on the user behind it. A relay tag is included in the results so users can distinguish Private Relay traffic from a paid VPN, even though the headline risk number remains the same.

0
ProgrammingDEV Community ·

Developer's AI Tool Faces Shutdown in 36 Hours After Zero Sales in 9 Days

A developer running a 14-day sales challenge for their AI spend-monitoring tool has reached day 9 with no revenue and roughly 36 hours left before an automatic shutdown. The project's hard rule requires at least one paid sale by October 1, 2026 at 13:19 UTC, or it stops — with no override allowed. Despite click counts rising from 196 to 239 over the past week, the number of distinct real visitors has remained flat at 16, with roughly half of all traffic attributed to bots or crawlers. The product being sold is a spend-control harness for AI API calls, priced at around $5, which the developer notes equals approximately one day of their current burn rate. The developer openly acknowledges that 16 unique visitors statistically cannot be expected to generate a sale, and that shutdown remains the most likely outcome.

0
ProgrammingDEV Community ·

Opinion: Anthropic Should Monetize AI Outcomes, Not Just Tokens, Analyst Argues

A commentary published on DEV Community argues that Anthropic's long-term revenue potential lies not in selling API tokens but in controlling an 'economic execution layer' built around autonomous AI agents. The author contends that as AI models become cheaper and more commoditized, the strategic value will shift toward orchestrating entire workflows and delivering measurable business outcomes. Under this vision, users would specify a goal — such as cutting procurement costs — and an agent system would autonomously determine the models, tools, data, and actions needed to achieve it. The piece proposes a 'Cognitive Cloud' abstraction where customers purchase cognitive capacity rather than raw compute, with revenue tied to verified work, cost savings, or economic throughput generated. The author also envisions a future where AI agents from different companies negotiate and transact directly with one another, making the orchestration infrastructure potentially more valuable than any single underlying model.

0
ProgrammingDEV Community ·

Git Worktrees Let AI Coding Agents Work Safely Without Disrupting Your Code

Running an AI coding agent in the same directory as your active work creates risks including mixed uncommitted changes, file collisions, and difficult-to-reverse edits. Git worktrees offer a practical solution by allowing multiple working directories to share a single repository, each checked out on its own branch. This means an agent's changes remain completely isolated until a developer reviews the diff and chooses to merge. The setup requires only a few commands to create, inspect, and clean up a worktree after the agent finishes its task. Many modern agent tools now handle worktree creation automatically, though understanding the underlying mechanics helps when sessions end unexpectedly or branches need manual cleanup.

0
ProgrammingDEV Community ·

Every AI request sends far more than your question — here is what travels

When you send a message to an AI model, the provider receives much more than just your typed question — including system instructions, full conversation history, attached files, and tool definitions. Because large language models have no memory between sessions, the application must resend the entire prior conversation with each new message, meaning a document pasted early in a chat is retransmitted repeatedly. In retrieval-augmented generation setups, the application may also silently attach several pages of relevant document excerpts before forwarding your request to the model. AI agents that operate in loops pose additional exposure risks, as file contents, command outputs, and even credentials can end up embedded in prompts sent to the provider. Understanding what the application is permitted to read — not the model itself — is central to assessing what data actually leaves your device.

0
ProgrammingDEV Community ·

Podman bug silently corrupts file ownership when exporting rootless keep-id containers

A confirmed bug in Podman 5.4.2 causes the 'podman export' command to silently shift all file ownership metadata when used with rootless containers created using the '--userns=keep-id' flag. The export process passes no ID mapping to its tar writer, meaning files that belonged to UID/GID 1000 inside the container are written as 0/0 in the tarball, while root-owned files shift to 1/1. The command exits with code 0 and produces no error output, making the corruption invisible until the imported image is actually used. Practical consequences include users being denied write access to their own home directories and setuid binaries like 'su' and 'passwd' becoming assigned to UID 1 (daemon), rendering them non-functional. A workaround exists via 'podman commit' followed by a fresh export, and a diagnostic script has been shared alongside an upstream bug report filed at podman#29856.

0
ProgrammingDEV Community ·

Developer Builds AI Tool to Connect Customer Feedback Patterns Over Time

A developer has created FeedbackMind AI, a feedback synthesis tool designed to identify patterns across customer complaints over time rather than analyzing each item in isolation. The application combines Groq for language model analysis with Hindsight, a persistent memory layer that stores and retrieves past feedback when new queries are made. When a new complaint is submitted, the system retains key details and later recalls relevant historical context to inform product-level questions. This allows product managers to receive answers grounded in accumulated feedback history, not just the most recent input. The project was built to address the common problem of disconnected, forgotten customer feedback in product development workflows.

0
ProgrammingDEV Community ·

Developer finds 111-day unresolved 429 error hiding as transient failure in pipeline

A developer running a daily sitemap submission pipeline to IndexNow discovered that a 429 'too many requests' error had persisted continuously for 111 days without clearing, despite the pipeline making only one request per day. The unbroken streak of 429 responses began on June 10, 2026, following two extra pushes made that afternoon, after which the endpoint never returned a success response again. A parallel submission to Bing's direct endpoint continued returning 200s, ruling out issues with the URLs, host verification, or key configuration. The developer suspects the block may be tied to a shared Cloudflare Worker egress IP rather than their specific key or domain, though a recurring timeout on the quota-lookup call makes it impossible to confirm. The broader takeaway is that a soft error like a 429, typically treated as temporary and retryable, can quietly become a permanent failure while automated monitoring continues to report all systems green.

0
ProgrammingDEV Community ·

JWT vs. Session Authentication: A Practical Guide to Choosing the Right Method

Every backend application must determine how to verify that incoming requests come from authenticated users, with session-based auth and JWT (JSON Web Token) auth being the two dominant approaches. Sessions store login state on the server — typically in a database or Redis — and issue the browser a cookie containing only a session ID, while JWTs embed the user's identity inside a signed token that the client stores and sends with each request. Both methods share core goals: maintaining identity across stateless HTTP requests, preventing tampering, handling expiration, and requiring secure HTTPS transport. For most standard web applications with a browser frontend and a single backend, sessions are recommended as simpler, easier to revoke, and naturally compatible with browser behavior. JWTs, however, have specific use cases where their stateless, self-contained nature offers distinct advantages over server-side session storage.

0
ProgrammingHacker News ·

2008 Blog Post Featuring Atari 2600 Box Art Parodies Resurfaces on Hacker News

A 2008 blog post from mightygodking.com showcasing humorous parodies of classic Atari 2600 video game box cover art has resurfaced on Hacker News. The post, originally published on April 21, 2008, features creative and satirical takes on the iconic retro gaming artwork. It recently gained renewed attention on the platform, accumulating 10 points and a small number of comments. The resurfacing highlights ongoing nostalgia within online communities for early home video game culture and its distinctive visual style.

0
ProgrammingDEV Community ·

Spec-Driven Development Offers a Structured Alternative to AI Vibe Coding

Spec-driven development (SDD) is an AI-native engineering approach where developers write a comprehensive specification document before an AI agent generates any code. Unlike 'vibe coding,' which relies on loose prompts and often leads to unintended changes and technical drift, SDD uses a persistent SPEC.md file as a single source of truth for both the developer and the agent. The spec typically includes a core objective, data models, acceptance criteria, edge cases, and an explicit out-of-scope section to prevent the agent from overreaching. An open-source toolkit called GitHub Spec Kit supports this workflow with a CLI scaffolder, immutable project rules via a constitution.md file, and integrations with over 30 AI coding agents. A comparative rebuild of the same feature with and without a spec reportedly showed significantly less post-deployment rework in the spec-driven version.

0
ProgrammingDEV Community ·

LLMs Miss Critical Security Bugs in Code Reviews, Benchmark Study Finds

A developer built a benchmark called 'Plausible PR' to test whether four leading AI models — Claude Sonnet 5, GPT-5.5, Gemini 3.7 Flash, and DeepSeek-R1 — could detect security vulnerabilities hidden inside seemingly routine code refactors without being prompted to look for them. Each of the 10 test pull requests was designed to appear like a harmless cleanup while actually removing a security safeguard such as a permission check, rate limit, or input boundary. Claude Sonnet 5 performed best with 9 out of 10, while GPT-5.5 scored lowest at 6 out of 10. Notably, all four models failed to flag a bug where switching to a string comparison caused crashes on non-ASCII input instead of returning a clean authentication failure. The findings suggest AI code reviewers reliably catch keyword-triggered issues like SQL injection but struggle with subtle edge-case vulnerabilities that require tracing unusual inputs through logic.

0
ProgrammingDEV Community ·

How to decode JSON parse errors and fix fetch failures in JavaScript

When a JavaScript app throws a SyntaxError while parsing a server response, the error message itself reveals what the server actually sent — such as plain text, an HTML error page, or the string 'undefined'. V8's error output truncates the unexpected content at 20 characters, giving developers a clue about the response type before they dig into network logs. A common but overlooked cause is fetch silently following redirects, delivering a 200-status login page instead of the expected JSON payload. The recommended fix is to read the response body as text first, then check the Content-Type header before attempting JSON.parse, so failures surface meaningful context rather than a cryptic parser error. Python's json.loads, by contrast, always reports 'char 0' for these same bad inputs, offering no equivalent diagnostic detail.

0
ProgrammingDEV Community ·

Dev builds 349-test TypeScript monorepo with no module mocks using spec-first method

A developer built 'Blast Radius', a TypeScript monorepo with five packages, by following a strict spec-first workflow using an AI-assisted tool called Kiro. The process involved writing a requirements document, a design document, and a task breakdown before writing a single line of code. This upfront planning resulted in 349 tests and no module mocking, with dependency injection used as the primary testing strategy instead. The developer notes that the architecture remained consistent across all packages because structural decisions were made during the design phase, where changes are inexpensive. The bugs that did emerge were not logic errors but runtime surprises at the boundary between the code and the AWS platform, such as API Gateway timeouts and Node.js runtime issues that only surfaced in deployment.

← NewerPage 794 of 3168Older →