SShortSingh.

Programming

0
ProgrammingDEV Community ·

Developer releases offline keyword spotting engine supporting Chinese and English

A developer has built an open-source, portable keyword spotting engine called wakeword_engine.py, designed to enable offline voice commands in software projects. The single-file tool uses a causal TCN model on mel spectrograms and runs via ONNX Runtime, with a model size of roughly 135KB capable of detecting 2–10 keywords in under 5 milliseconds. Development began with Chinese — a tonal, single-syllable-heavy language — which made the architecture language-agnostic, allowing English support to follow with minimal additional work. The engine features a five-layer noise filtering system and currently supports Python, web, and Android platforms, with ESP32 support in progress. The project is available on GitHub under an MIT license and includes early integration support for Home Assistant via the Wyoming protocol.

0
ProgrammingDEV Community ·

Developer Open-Sources MT-URBAC, a Free Multi-Tenant Auth Boilerplate for SaaS Apps

A developer has released MT-URBAC (Multi-Tenant Unified Role-Based Access Control), a free, open-source boilerplate aimed at eliminating repetitive multi-tenant architecture setup in B2B SaaS projects. The full-stack solution is built on NestJS and PostgreSQL for the backend and Angular with Tailwind CSS for the frontend, and is licensed under MIT. MT-URBAC addresses common pain points such as tenant context isolation, JWT guard configuration, and role-based permission management through a structured User–Group–Role–Privilege hierarchy. It supports both path-based routing for local development and subdomain-based routing for production environments, requiring minimal configuration in either case. The repository is publicly available on GitHub and includes an automated database seeder that provisions default roles, privileges, and a Super Admin account out of the box.

0
ProgrammingDEV Community ·

Developer migrates live SaaS from Vercel and Supabase to a single Cloudflare Worker

A developer running ReddTrends, a small SaaS platform with a few hundred users, migrated the entire application from Next.js on Vercel and Supabase to a single Cloudflare Worker without downtime. The stack swap replaced Supabase Postgres with Cloudflare D1 (SQLite), Supabase Auth with Better Auth, and GitHub Actions cron jobs with Cloudflare Cron Triggers and Workflows. One of the trickiest challenges was handling 938 existing bcrypt password hashes from GoTrue, which the developer resolved by writing a compatibility verification function that checks hash format at login rather than forcing a mass password reset. Migrating data to D1 required a four-step pipeline — export, transform, import, and verify — to handle SQLite's lack of native booleans, timestamps, and JSON types, while also working around D1's 100,000-byte SQL statement limit. The developer noted that rebuilding on a TanStack Start boilerplate targeting Workers natively avoided the need for an adapter layer, making the migration feasible for a small app.

0
ProgrammingDEV Community ·

Tutorial Shows How to Build Consent-Based Welcome DMs With Clear Ownership Rules

A DEV Community tutorial outlines how to engineer a consent-first direct messaging system for developer communities, where a DM thread is only created after a newcomer explicitly accepts an offer. The system uses a defined lifecycle with states such as OFFERED, ACTIVE, HANDOFF, and CLOSED to ensure every conversation has an accountable owner at all times. It integrates with Tencent RTC's Social Messaging layer while keeping consent, assignment, and escalation logic within the developer's own service. The approach deliberately avoids sending automatic greetings to all new accounts, treating a chat thread as a relationship that requires both a known purpose and a named owner before it exists. The tutorial includes TypeScript code and a narrow application port design that allows lifecycle testing without sending real messages.

0
ProgrammingDEV Community ·

TryHackMe 'London Bridge' CTF: SSRF and Symlinks Yield Root-Level File Access

A TryHackMe challenge room called 'The London Bridge' centres on a Flask-based 'Explore London' gallery app running behind Gunicorn on port 8080. A hidden endpoint, /view_image, accepts a URL parameter and fetches it server-side, creating a Server-Side Request Forgery (SSRF) vulnerability; the real parameter name 'www' must be discovered through fuzzing since the visible field is non-functional. The app's localhost-blocking filter is bypassed using the alternate loopback address http://0/, allowing attackers to reach a root-owned Python HTTP server bound to 127.0.0.1:80 and serving a user's home directory. By reading the SSH private key exposed through this server, a tester gains shell access as user 'beth', then uses symlinks to redirect the same root-run server toward sensitive files including /etc/shadow and a Firefox profile. The Firefox profile is decrypted locally to recover a saved credential, demonstrating how chained misconfigurations can expose critical data without ever obtaining a direct root shell.

0
ProgrammingDEV Community ·

How One Team Rebuilt Their MCP Server to Scale LangGraph AI Agents

A development team's LangGraph agent deployment repeatedly failed after their MCP server hit a hard limit on tool registrations, causing agents to behave erratically. Each time a new agent launched, it attempted to register its own tools independently, quickly exhausting available slots on the static server. To resolve this, the team introduced a load balancer to distribute requests across multiple MCP server instances, eliminating single-server bottlenecks. They also built an automated tool registration service that dynamically updated available tools across all server instances without manual intervention. The solution allowed the system to scale with growing agent deployments and ensured tools remained consistently accessible.

0
ProgrammingDEV Community ·

Developer cuts 40 AI tools to 4 using a task-first selection framework

A developer who installed over 40 AI tools in a year found that fewer than eight were actually useful daily, with less than 30% of AI interactions producing real value. After three months of trial and error, they developed a framework built on one core rule: list tasks first, then choose tools to serve those tasks. Each task was ranked by frequency and time spent, with only those consuming more than 30 minutes a week warranting a dedicated tool. Candidates were then screened for data portability, maintenance cost, and ecosystem integration, cutting an initial list of 15 AI-assisted tasks down to six. The final setup — one tool each for writing, meetings, data, and email — reduced total weekly time on those tasks from roughly 11.5 hours to under 4 hours.

0
ProgrammingDEV Community ·

TLabel CLI Unifies Nine Tactile Sensor Formats for Robotics AI Training

TLabel, an open-source command-line tool, now supports conversion between nine tactile sensor dataset formats — including GelSight, PaXini, Daimon, and ToucHD — through a unified adapter architecture. The project addresses a longstanding data interoperability problem in tactile robotics research, where each hardware vendor ships data in proprietary formats with no common standard. TLabel applies a 14-dimension semantic annotation schema covering contact, force, slip, texture, and deformation, then exports data into training-ready formats such as LeRobot, Zarr, JSON, and CSV. The tool reached maturity through version 0.18.x, significantly simplifying conversion workflows for researchers. It is installable via pip with optional sensor-specific extras and includes CLI commands for listing adapters, validating datasets, and running format exports.

0
ProgrammingDEV Community ·

Why AI Agents Need a Helix Design, Not a Loop, to Retain Intelligence

A growing argument in AI development challenges the standard 'agent loop' model — the observe-think-act-reflect cycle — for losing critical context over repeated iterations. Unlike a loop, which discards intermediate reasoning and compresses history into thin summaries, a helical architecture deliberately records each decision and its underlying data as persistent, queryable information. This structural difference means a helical agent can trace back the exact reasoning behind past choices, while a looping agent effectively restarts with degraded memory. The distinction becomes especially significant in long-horizon tasks, where accumulated context determines the quality of future decisions. Most production AI agents today still operate as loops with extended context windows, but proponents argue that truly compounding intelligence requires investment in persistent decision logs and multi-resolution memory systems.

0
ProgrammingDEV Community ·

Developer Builds Bot to Grind 8,191 Pokémon Resets, Leaving the Catch to the Human

A developer has launched a project called LastBall, a machine designed to automate the repetitive soft-reset process of hunting shiny Pokémon in classic Game Boy Advance titles. The project targets hardcore fans who insist on using real cartridges and consoles, where the odds of encountering a shiny Pokémon stand at 1 in 8,192. The machine handles all resets and route navigation autonomously, but halts and alerts the user via phone notification the moment a shiny is detected, leaving the actual catch entirely to the human. To preserve legitimacy, the system only simulates physical button presses and reads the screen visually, never accessing or modifying game memory. Development began with a software emulator rig and has already completed core loop and reliability features, with a transition to real hardware planned as a later phase.

0
ProgrammingHacker News ·

Opinion: A Case for Guitar Hero as a Legitimate Musical Experience

A writer published a personal essay on August 10, 2026, defending the video game Guitar Hero against criticism. The piece, posted on John Scalzi's personal blog, appears to respond to a family disagreement about the game's cultural or musical value. The author argues in favor of Guitar Hero, likely countering the view that it is an inferior substitute for real musicianship. The article was shared on Hacker News, where it received modest attention with 6 points and no comments at the time of posting.

0
ProgrammingDEV Community ·

How to Build a Portable Speech-to-Text Pipeline for Sales Call CRM Actions

A Node.js application handling MP3 and WAV audio uploads for sales calls should use a provider-neutral adapter to convert speech to text, keeping transcription, data extraction, and CRM updates as separate stages. Storing the original audio and normalized transcript independently helps prevent transcription errors—such as misheard dates or names—from permanently corrupting CRM records. Developers must explicitly define whether audio is processed in US or EU regions based on the provider's current data-location terms, rather than defaulting to the application's deployment region. Common failure modes include duplicate transcript jobs from timed-out retries, which can be mitigated using a correlation key and idempotent persistence rather than switching to a larger AI model. The core principle is that a portable integration requires a narrow adapter interface and a tested eval set, not just a quick demo that sends audio to an API and writes a CRM note in one step.

0
ProgrammingDEV Community ·

Developer builds browser-based AI image upscaler that never uploads your photos

A developer has built two free AI-powered tools — an image upscaler and a sharpener — that run entirely within the browser using TensorFlow.js and the UpscalerJS library. The tools use an ESRGAN super-resolution model loaded via CDN, requiring no backend server or build process. Because all processing happens on-device, user images are never uploaded, making the tools suitable for sensitive documents or personal photos. To manage memory on large images, the developer processes images in tiles using a patch-based approach, preventing browser tab crashes. The project is hosted as a static site on Cloudflare Pages, eliminating inference server costs, though performance is slower on low-end devices.

0
ProgrammingDEV Community ·

Data Scientist Documents Journey Learning JavaScript Promises and Async Behavior

A data scientist with a Python and R background is documenting their experience learning JavaScript development from scratch, drawing parallels to familiar concepts. The author explores JavaScript Promises and the async/await pattern, contrasting them with Python's blocking operations like time.sleep() and Selenium's WebDriverWait. A key insight shared is that JavaScript's asynchronous model keeps the rest of the program running during a wait, unlike Python's single-threaded blocking approach that pauses all execution. This difference produces an unexpected output order, where synchronous code runs before an awaited async result is returned. The post is part of a beginner-focused series aimed at helping data professionals transition into software development.

0
ProgrammingDEV Community ·

Simple Python Script Converts PDF Files to Word Using pdf2docx Library

A developer has shared a lightweight Python script that converts PDF files into editable Word documents using the open-source pdf2docx library. The script requires several dependencies, including termcolor, opencv-python-headless, fire, and pdf2docx, all installable via pip. Once installed, the script initializes a Converter object with a source PDF file and outputs a corresponding .docx file. The process involves just a few lines of code, making it accessible even to beginner Python users. Users must ensure the source PDF file is present in the same directory as the script before running it.

0
ProgrammingDEV Community ·

Claude Code's Cross-Session Messaging Points to a Coordination Gap in Multi-Agent Dev

Running multiple AI coding agents in parallel is straightforward, but safely combining their work remains a largely unsolved workflow problem. One agent may alter an API while another writes tests against its old version, and a third may silently edit a shared configuration file, leaving developers to manually track dependencies and resolve conflicts. Claude Code has introduced cross-session messaging, session discovery, and hook-based tool interception on local machines, providing low-level primitives for agent coordination. However, higher-level concerns such as dependency ownership, conflict negotiation, and structured handoffs between sessions are not yet addressed by any dedicated tool. The proposed solution is a lightweight local control desk where each agent declares its goal, target files, and outputs, enabling visible dependency tracking and file-lease checks before collisions reach code review.

0
ProgrammingDEV Community ·

Developer finds his 114-article scoring system never evaluated his own work

A developer on DEV Community built an automated pipeline that scores trending posts twice daily using reactions and comments to select unique writing topics, publishing 114 articles based on its recommendations. After applying the same scoring formula to his own 30 most recent articles, he found a median of zero reactions and a median of one comment per post. Three articles scored a flat zero despite each having documented justifications for their 'distinct angle.' He concluded the pipeline functions as a novelty filter — checking whether a topic has been covered before — but not as a quality or resonance predictor. The developer acknowledged he had been treating a high topic score on others' posts as a proxy for likely engagement on his own, without ever verifying that assumption.

0
ProgrammingDEV Community ·

Developer finds critical GitHub write-guard in MCP server had no automated test

A developer building an MCP server that lets Claude interact with GitHub and DEV.to discovered that a key security function blocking write operations had never been covered by automated tests. The server uses a GitHub token scoped with full write access, shared from a broader project, even though the MCP component is intended to be strictly read-only. A single guard function called `_gh()` enforces this by rejecting any non-GET request, but the project's self-test suite — which covers several other regression cases — omitted a test for this specific check. This means the guard could be silently removed in a future edit or merge conflict without any automated test catching the regression. The developer flagged the gap on July 30, 2026, noting that the read-only promise was enforced by code convention alone rather than verified behaviour.

0
ProgrammingDEV Community ·

Why Writing Formal Specs Before Code Catches Bugs AI and Humans Miss

A software engineering article argues that developers should document every system guarantee in a formal specification before writing a single line of code. Using TLA+, a decades-old formal specification language, the author demonstrates how a simple to-do list app's rules — such as valid task state transitions — can be precisely defined in just a few lines. The approach gained credibility when AWS engineers reported in a CACM paper that writing TLA+ specs uncovered bugs in already-reviewed, production-bound systems. The author warns this practice is especially urgent now that AI agents generate plausible-looking code that can pass human review while violating core system rules. A lightweight Rust-based toolchain called tlatools is presented as a practical way to automatically check whether generated code conforms to a written specification.

← NewerPage 229 of 1343Older →