SShortSingh.

Programming

0
ProgrammingDEV Community ·

Hashing Rendered HTML Would Re-Announce 426 Pages on Every Deploy, So IndexNow Hashes Page Data

Munchable publishes 426 URLs generated from TypeScript modules, and a sitemap alone does not signal when content changes, so the IndexNow protocol is used to notify search engines. The main challenge is deciding which URLs to submit, since official guidance warns against resubmitting unchanged pages. Hashing rendered HTML fails because frameworks like Next.js embed a new build ID on every deploy, making all pages appear changed. Instead, each page's fingerprint is a hash of the underlying data it renders, such as a version constant for legal pages. Index pages hash only the fields they actually display, so changes to unrelated child details do not trigger unnecessary submissions.

0
ProgrammingDEV Community ·

Free-tier eval advice: repeat a small task set rather than run a large one once

The article argues that on a free allowance, the most useful spend is repeated runs of a fixed set of tasks rather than one pass over many tasks. Repeating a small pack several times exposes how stable a model's results are, whereas a single broad run gives a single number that can shift with minor prompt rewording. It stresses that variation between individual tasks usually matters more than variation between runs, so the tasks a product relies on should be repeated. The author recommends a frozen JSONL task pack with simple auditable graders, hashing prompts so mid-run edits remain visible, and logging tokens, latency, and failures for every call. The accompanying script is presented as a template to test on a couple of tasks before committing an allowance.

0
ProgrammingDEV Community ·

Escapod Shows How High-Ticket Stores Can Move Hesitant Buyers Toward Purchase

A customer may love a high-priced product yet still delay buying, and this hesitation is common for high-ticket Shopify stores. The article uses Escapod, a maker of off-road camping trailers, as a case study, citing a Shopify founder interview from October 2026. According to the piece, Escapod's website was redesigned to help customers compare configurations, understand quotes and confirmations, and see delivery terms. The author recommends grouping buyer hesitation into distinct problems, such as not knowing which option fits, lacking confidence in terms, or not being financially ready, and responding to each differently. The article argues that stores should measure meaningful enquiries and selections, not just completed purchases.

0
ProgrammingDEV Community ·

Un flujo de cambio de correo falló al no probar la recuperación del usuario

Un equipo probó que un formulario para cambiar el correo guardaba el nuevo valor y mostraba un aviso de éxito. Tras desplegarlo un viernes por la tarde, el enlace de confirmación se envió al correo antiguo, al que varios usuarios ya no tenían acceso. El cambio quedó guardado, pero los usuarios no podían completarlo. El artículo sostiene que las pruebas cubrieron la acción visible pero no cómo recuperarse si el flujo se interrumpe a mitad. Propone preguntarse qué ocurre ante una interrupción, cómo vuelve el usuario al estado anterior y quién puede resolverlo sin tocar la base de datos.

0
ProgrammingDEV Community ·

Securing Existing ASP.NET Core APIs for AI Agents via a Model Context Protocol Server

Many .NET teams have ASP.NET Core APIs that run core business logic, but letting AI agents use them safely without full rewrites is a challenge. The Model Context Protocol (MCP) offers a standard way for agents to discover and call tools, and the official ModelContextProtocol C# SDK lets developers host an MCP server inside ASP.NET Core and wrap existing services as tools. The article recommends a thin server exposing only a small set of safe, read-only operations, such as order status lookups, rather than every controller action, with authentication and authorization applied. It walks through installing the SDK, registering the server with HTTP transport, and defining attribute-based tools that delegate to existing services. Write operations are suggested only later, behind explicit approval or elevated roles.

0
ProgrammingDEV Community ·

Design a Kill Switch Around Free-Tier Compute Before Wiring the Discount

The author argues that capacity borrowed from free tiers fails differently from owned capacity, so the exit path should be designed before the integration. Free model endpoints and servers come with no enforceable SLA, no restart notice, and no guarantee that terms will stay unchanged. The recommended approach is to isolate all borrowed capacity behind a single module with one interface, one deadline, and one fallback, so that removing it is a configuration change rather than an incident. The piece also covers deadline handling, using a monotonic clock and never giving a lane more time than the job has left, along with logging only hashes and byte counts for outbound prompts. Failure modes such as timeouts, exhaustion, silent quality drift, and server reboots are outlined, with a runnable Python sketch illustrating a shared lane interface.

0
ProgrammingDEV Community ·

Munchable's maintenance switch: one boolean takes down database-backed routes only

Munchable is preparing a database migration and wants to avoid running it under live traffic. Before that, the developer built a maintenance switch, a single exported boolean constant that is flipped by hand and committed, rather than stored as an environment variable. The switch decides how each URL is handled: API routes, app routes behind login, and public pages, with public content such as recipes and guides staying online because it is prerendered at build time. The proxy checks the switch first and returns a maintenance response before making any call to the Supabase session service. The author also notes that prefix matching must respect whole path segments, so routes like /administration are not wrongly caught.

0
ProgrammingDEV Community ·

Weekend Dev Log: Testing a Free-Tier AI Demo Against Four Injected Faults

A developer built a small side project that turns a changelog into three support-friendly bullets using a free model endpoint. Rather than focusing on the feature itself, most of the weekend went into a roughly 60-line rehearsal suite that deliberately simulates rate limiting, hangs, and malformed responses. The suite checks that the demo reports a degraded state instead of crashing with a server error. The author reasoned that a demo working only when the endpoint is healthy is unreliable, since both the model access and hosting were free options with no availability guarantees. To keep scope manageable, the project cut features needing databases or extra network hops, and it replaced retry logic with a single attempt plus a fallback banner.

0
ProgrammingDEV Community ·

Folkbench Switch: an open-source desktop app for switching AI coding CLIs between API providers

Developers who use AI coding tools like Claude Code, Codex and Gemini CLI often rely on several API providers to handle rate limits, capacity issues or cost. Switching between them is still largely manual, since each tool stores its connection settings in a different file format. Hand-editing these files can overwrite unrelated settings, desynchronize fields, or force repeated login flows. The author built Folkbench Switch, an Apache-2.0 Tauri and Rust desktop app for macOS and Windows, which saves provider profiles, shows a diff before writing, and rolls back failed writes safely. The author discloses that the app sits alongside folkbench.com, which publishes provider performance measurements.

0
ProgrammingDEV Community ·

Five Engineering Practices Developers Can Use to Control Cloud Costs

Cloud spending is shaped by application architecture, resource allocation, deployment decisions, and data storage, not just by infrastructure pricing. Because developers make many of these choices during routine work, the article argues that cost optimization is an engineering responsibility rather than solely a job for finance or infrastructure teams. It outlines five practices for AWS, Azure, and Google Cloud users that aim to reduce spending without hurting performance or reliability. Key among them is right-sizing resources by comparing allocated capacity with actual CPU, memory, storage, and traffic needs, while still accounting for peak demand. The piece also highlights autoscaling to match capacity with fluctuating workloads and tiered storage to avoid paying premium rates for rarely accessed data.

0
ProgrammingDEV Community ·

ProcessForge 1.2.0 Released With Performance Gains and Reliability Fixes

ProcessForge 1.2.0, an open-source framework for organizing processes involving AI agents, was released on 18 October 2026. The update targets internal performance, the reliability of long-running processes, and problems seen when multiple AI agents work together. Project and hook events now live in indexed local SQLite databases instead of NDJSON journals, so the system no longer rescans growing histories, and no separate database server is required. Assignment selection was also streamlined: in a synthetic test project, reads dropped from 1,202 to 4 and operation time fell from about 3.2 seconds to 5–6 milliseconds. The release further adds reuse of previously parsed YAML documents when files are unchanged and separates temporary collection errors that warrant retries from persistent failures that need recovery.

0
ProgrammingDEV Community ·

12-Year-Old Developer's Security Tool Blocks Its Own Creator for Two Days

A 12-year-old developer built KAVLR, a security tool meant to act as a leash for AI agents, and tested it on a $150 Android phone using Termux. Its fail-closed design blocked commands whenever the backend server was unreachable, and attempts to host the backend on Vercel and Railway failed before Supabase Edge Functions worked. The tool then locked the developer out of their own terminal and files, creating what they called a zombie process that resisted deletion and corrupted their code. After tracing the problem with grep and rebuilding the affected files and symlinks, the developer restored normal function, and the hook correctly blocked a test command for a .env file. The developer shared the account as a lesson in persistence for others facing similar debugging battles.

0
ProgrammingDEV Community ·

Browser-Based File Converter Keeps Images Local, Avoiding Server Uploads

The article describes a free image converter that processes files entirely in the browser rather than uploading them to a server. The author argues that typical online converters expose sensitive files to infrastructure users cannot verify, and offers a simple network-inspection method to confirm no file is transmitted. Conversion relies on decoding with createImageBitmap, drawing to a canvas, and encoding through WebAssembly codecs running in a Web Worker. The piece also covers practical challenges, including EXIF rotation, worker timeouts, HEIC decoding under strict Content-Security-Policy, and binary-searching JPEG quality to meet target file sizes.

0
ProgrammingDEV Community ·

Causal Read-Your-Own-Writes in Java Using Postgres LSN Tokens Instead of Primary Routing

The article argues that sending reads to the primary database right after a write is a costly shortcut that limits write capacity at scale. It recommends capturing the Postgres log sequence number (LSN) during the mutation transaction and returning it to the client, for example as an HTTP header. Subsequent reads carry this token, and a routing layer sends them to a replica only if the replica has replayed past that position. A fallback to the primary applies when replication lag exceeds a set threshold, such as 25ms. The author presents this as a lighter alternative to distributed locks or consensus protocols when read-your-own-writes consistency is the only requirement.

0
ProgrammingDEV Community ·

Claude Code skills can be silently dropped from context when their listing budget overflows

Claude Code includes every installed skill's name and description in the model's context on each turn, whether or not it is used. The listing is capped at 1% of the context window, and when it overflows, descriptions of the least-used skills are removed without any UI warning, only a debug log entry. Skills left without descriptions can no longer be matched to user requests and effectively stop being selected. The author built skill-tax-cli, a dependency-free Python tool that measures each skill's token cost, replays the overflow rule, and exits non-zero when skills would lose their descriptions, making it usable in CI. The tool also measures rules, memory files, and MCP configs, and token counts are rough estimates based on characters divided by four.

0
ProgrammingDEV Community ·

Developer Adds Job Posting Health Check to Resume Tool to Flag Suspicious Listings

A developer behind the ResumeIQ AI tool argues that job seekers should assess whether a posting is worth applying to before optimizing their resume. The author built a feature called Job Posting Health that scans a pasted job description for warning signs such as registration fees, pressure to act quickly, and required equipment purchases from a specified seller. In testing with a sample posting containing several such signals, the feature flagged them for closer review. The developer stresses the tool cannot definitively determine whether a job is legitimate, only prompt users to investigate further. A companion feature, Resume Freshness, checks whether a resume shows recent evidence of the skills a role requires.

0
ProgrammingDEV Community ·

Managing Notification Templates and Workflows as Code With the SuprSend CLI

A DEV Community post argues that notification assets such as templates, workflows and preferences should be treated as version-controlled configuration rather than edited through dashboards. Keeping them only in a UI can cause missing audit trails, environment drift between staging and production, and broad production access. The author describes using the SuprSend CLI to pull these assets as local JSON files, edit them in an IDE, and push them back after schema validation. Once stored as files, changes gain Git's commit history, diffs and easy reverts. The post also sketches a GitHub Actions job that syncs assets from staging to production when a pull request merges to main.

0
ProgrammingDEV Community ·

Pairing Claude Code and Codex Tasks With Model and Effort Presets

A developer guide proposes assigning a model and effort level to each category of coding work so that users avoid overspending on simple tasks and underpowered runs on hard ones. Anthropic's cost guidance warns that long uncleared sessions and Opus left as the default are common sources of unexpectedly high Claude Code bills. Haiku output is priced far below Opus, so routing routine work to smaller models yields large savings. The author maps three named presets, chore, feature and deep, to specific Claude Code and Codex models and reasoning-effort settings, following each vendor's own recommendations. The piece also notes that Codex profile configuration changed in version 0.134.0, moving from tables in config.toml to separate profile files.

0
ProgrammingDEV Community ·

Keeping CD in Azure DevOps While Moving CI to GitHub Actions

Microsoft's Enterprise Live Migrations tool, currently in public preview, can move repositories from Azure DevOps to GitHub Enterprise and rewire existing pipelines. The author's team chose to move continuous integration to GitHub Actions to standardise builds and keep them closer to the code. They kept continuous delivery in Azure DevOps, largely because Managed DevOps Pools provide private network access without the maintenance burden of self-hosted agents. Handing off between the systems requires an immutable release process and careful decisions about when builds are promoted to each environment. The article presents this as one possible approach, not a universal solution, and notes the trade-offs involved.

0
ProgrammingDEV Community ·

Building Web Apps That Keep Working Through Network Failures

Reliable web applications should be judged by how they behave when connectivity drops mid-save, a mobile tab is suspended, or a server response is lost. Offline tolerance means preserving work and avoiding duplicate or misleading operations, not merely caching the interface so it can open without a network. The article recommends separating confirmed server state, optimistic local state, and pending mutations so the interface can always explain where a value came from. It also suggests mapping each key action to a capability level, such as offline-available, locally durable, or server-only, and recommends storing durable browser data in IndexedDB rather than component state or localStorage. The author draws on game development experience to argue that explicit state transitions are central to this kind of resilience.

← NewerPage 346 of 3099Older →