SShortSingh.

Programming

0
ProgrammingDEV Community ·

How a 2016 npm naming dispute caused 11 lines of code to break the internet

On March 22, 2016, developer Azer Koçulu unpublished all 273 of his npm packages in protest after npm transferred his 'kik' package name to the messaging app Kik following a trademark dispute. Among the removed packages was left-pad, an 11-line utility function that had been downloaded nearly 2.5 million times the previous month and was a transitive dependency for major tools like Babel and Atom. Within minutes, thousands of software builds began failing at a rate npm described as hundreds per minute. npm resolved the outage in about two and a half hours by taking the unusual step of restoring the original package from backup. The incident prompted npm to introduce an unpublish time window — initially 24 hours, later extended to 72 hours — and highlighted the fragility of live-resolved transitive dependencies in modern software development.

0
ProgrammingDEV Community ·

Engineer builds self-updating runbook that learns from past incidents using AI memory

A software engineer grew frustrated with static runbooks that quickly became outdated and built a system that updates itself based on real incident history. The tool, built using a service called Hindsight, stores each incident as two separate memory entries — one for diagnosis and one for resolution — making past failures easier to retrieve during future alerts. A key feature explicitly records failed remediation attempts so on-call engineers are not misled into repeating steps that made problems worse. The system surfaces responses side by side, comparing answers generated with and without historical memory, so users can judge its value directly. The retrieval model combines semantic, keyword, entity, and temporal signals to match new alerts to relevant past incidents even when the phrasing differs significantly.

0
ProgrammingDEV Community ·

Bloom Tool Runs Two AI Models Side by Side to Compare Generative Art Output

A developer built Bloom, a browser-based arena that sends the same text prompt to two large language models simultaneously and renders their p5.js generative art sketches side by side in real time. Each model's code output is safety-scanned using an AST parser before execution, blocking any sketch that attempts network calls, storage access, or parent-frame manipulation. The sandboxed iframes use a three-layer security approach combining static code analysis, runtime API neutering, and strict browser sandbox attributes to prevent malicious or accidental code execution. All model API calls are routed through a backend, keeping API keys out of the browser and enabling compatibility with local providers like Ollama and LM Studio. On-screen metrics are derived from actual pixel data and API usage objects, eliminating cherry-picked screenshots and making model comparisons transparent and reproducible.

0
ProgrammingHacker News ·

PS5 Jailbreak Exploit 'Relapse' Published on GitHub

A new jailbreak exploit for the PlayStation 5, named 'Relapse', has been released publicly on GitHub by a developer identified as ntfargo. The release allows users to potentially run unauthorized code on Sony's PlayStation 5 console. The exploit was shared on the open-source platform GitHub, making it freely accessible to the public. The news gained attention on Hacker News, though it attracted limited discussion at the time of reporting.

0
ProgrammingDEV Community ·

How One Developer Uses Traefik and Docker to Automate Reverse Proxy in a Homelab

A developer shared their homelab setup using Traefik as a reverse proxy to manage multiple Docker-based services such as Pi-hole, Vaultwarden, and custom applications. Rather than manually editing Nginx configs and juggling port numbers, Traefik automatically discovers Docker containers and routes traffic using container labels. The setup handles HTTPS certificates automatically via Let's Encrypt, eliminating the need for manual SSL configuration. Traefik is configured as the sole internet-facing service, while all other containers communicate internally through a dedicated Docker network. A key design choice is disabling automatic container exposure by default, ensuring only explicitly labeled services are made publicly accessible.

0
ProgrammingDEV Community ·

OGAD App Lets Users Edit and Review Documents Offline Using Local AI Models

OGAD (Off Grid AI Desktop) is a desktop application for Mac, Windows, and Linux that enables users to review, outline, and draft documents using a locally run AI model without requiring an internet connection. The tool is designed for situations where connectivity is unavailable, such as during flights, allowing users to work through saved files in TXT, Markdown, DOCX, or PDF formats. Users must prepare the app, download a local language model, and save all necessary documents before going offline, as the AI cannot access current or external information. The application works by extracting text from attached documents and responding to user queries grounded in those sources, though users are advised to verify outputs against originals. The developers note that offline capability does not make the model's general knowledge current, and any facts requiring live data should be flagged for post-flight verification.

0
ProgrammingDEV Community ·

Dev Team Builds AI Support Agent With Persistent Memory to Eliminate Repeat Queries

A development team has built SupportMemory, an AI customer-support agent designed to remember details from past customer interactions across separate conversations. The agent uses a tool called Hindsight as its persistent memory layer, enabling it to both recall relevant information from previous sessions and retain new details for future use. Most existing AI support systems can only access context within a single conversation, forcing customers to repeat information each time they return. SupportMemory addresses this by retrieving only relevant stored memory rather than loading an entire conversation history, making responses faster and more personalised. The team demonstrated the difference by comparing a standard stateless agent against their memory-enabled agent using example customer interactions.

0
ProgrammingDEV Community ·

JuiceFS Enterprise 5.4 scales to 1 million clients on 100-billion-file systems

JuiceFS has released Enterprise Edition 5.4, building on version 5.3's support for 100-billion-file environments to now handle up to one million simultaneously connected clients. To achieve this, the team co-located metadata nodes with network proxies and introduced connection reuse, so that one million client connections were managed through just 10 proxy nodes with roughly 400 physical backend connections to the metadata leader. Session management was also overhauled using indexed lookups, paginated queries, and batch cleanup of expired sessions to reduce overhead at scale. The release additionally brings cross-zone directory cloning, over 90% RDMA bandwidth utilization, up to 100% improvement in high-concurrency random-read performance, and more flexible caching strategies. These enhancements are aimed at large-scale AI and enterprise workloads that demand both massive metadata capacity and high concurrent access.

0
ProgrammingDEV Community ·

TinkerNews #55 Rounds Up ESP32, Raspberry Pi, and DIY Maker Projects

TinkerNews Issue 55 highlights a collection of hands-on electronics projects for hobbyist makers. Featured builds include an ESP32-S3 rendering N64-style 3D graphics using PSRAM and indexed color, and a Raspberry Pi setup that prints digital messages via a thermal printer using Python. Other projects cover an ESP32-based environmental monitor tracking CO₂ and air quality, a modular motorized fader board integrating with Home Assistant, and an RC car built with ESP32 and ESP8266 that incorporates failsafes and debugging lessons. The roundup also includes guides on the compact ESP32-C3 Super Mini for battery-powered IoT use and a Raspberry Pi system for local, open-source garden automation.

0
ProgrammingDEV Community ·

How to Build a Reliable Serverless Image Upload Pipeline with Async Processing

A robust serverless photo intake system should validate uploads at the edge, store an immutable original, and handle derivative image crops asynchronously to avoid blocking the intake process. Validation must go beyond file extensions, checking magic bytes, dimensions, and cryptographic digests, since mismatches between extension and actual format can cause silent failures visible only minutes later. The intake flow is best modeled as a small state machine where each transition — from accepted bytes to stored original to processed derivatives — has a clear, retryable boundary. Workers generating thumbnails or crops should use idempotent job keys to safely handle duplicate queue deliveries without reprocessing. Retry policies should distinguish transient errors from permanent format violations, routing repeat failures to a review stream rather than retrying indefinitely.

0
ProgrammingDEV Community ·

Developer Builds AI Support Copilot That Remembers Full Customer History Across Sessions

A software developer has built a customer support copilot that retains persistent memory across separate support interactions, eliminating the common frustration of customers repeating their issues. The system integrates a temporal-memory tool called Hindsight into a FastAPI and React architecture, allowing it to recall past experiences, track effort trajectories, and monitor sentiment trends per customer. Unlike standard retrieval-augmented generation pipelines that rely solely on semantic similarity, this architecture adds a time dimension to better reflect how support relationships evolve. The copilot sits between incoming customer messages and support representatives, enriching each ticket with historical context and suggested actions before a response is drafted. It also includes an escalation-risk classifier that flags potential complaints before a customer explicitly requests a manager.

0
ProgrammingDEV Community ·

How to Diagnose and Fix WebSocket 1006 Errors in FastAPI LLM Streaming

FastAPI WebSocket connections can drop with a 1006 error during long LLM inference tasks, leaving clients disconnected before a response is delivered. Contrary to a widely circulated claim, FastAPI does not impose a built-in 10-second timeout; the real culprits are often a blocked event loop, Uvicorn's ping/pong defaults, or proxy idle timeouts. Running synchronous LLM calls inside async handlers freezes the event loop, preventing ping/pong frames from being processed and triggering disconnects. Developers can resolve this by using truly async clients or offloading blocking calls via asyncio.to_thread(), while also tuning Uvicorn and infrastructure-level timeouts such as NGINX or AWS ALB settings. Diagnosing the exact failure layer through timing analysis is recommended before making any configuration changes.

0
ProgrammingDEV Community ·

Why Teams Keep Repeating Costly Mistakes — and How Persistent AI Memory Could Help

Organizations routinely lose the reasoning behind past decisions even when outcomes are visible, leaving teams unable to learn from their own history. Key context — including assumptions made, risks accepted, and lessons learned — tends to scatter across chat threads, slide decks, and individual memories. When staff change roles or leave, that institutional knowledge disappears entirely, causing teams to unknowingly repeat failed approaches. Traditional solutions like wikis and decision logs fall short because documentation is inconsistent and hard to retrieve at the moment a new, similar decision arises. The article, first in a five-part series, argues that teams need AI-powered persistent memory systems capable of proactively surfacing relevant past decisions rather than relying on manual search.

0
ProgrammingDEV Community ·

AI Memory Benchmark Reveals Grader Errors, Not Model Failures, as Bigger Risk

A team built a 30-question exam to test whether an AI system could accurately recall 130 days of its own operational history. On the first attempt, their own stack scored 11 out of 18, but a follow-up audit found all seven failures were caused by errors in the grading system, including two incorrect answer keys. Testing the same model with different memory configurations showed that disabling write-time semantic compression in mem0 lifted the score from 11/18 to a perfect 18/18, highlighting how a single configuration flag can significantly impact results. The team also re-examined a widely cited cost-efficiency claim, finding that the "444x cheaper" figure only holds when compared against heavy models like Claude Opus, while comparisons with fast models yield a far narrower 16–18x range. To improve transparency, the team open-sourced their grader and introduced signed results, three-state verdicts, and a 90-day window for challenging outcomes.

0
ProgrammingDEV Community ·

Engineer Reports -170 dBc/Hz Phase Noise from a PCB-Mountable OCXO

A precision timing engineer claims to have benchmarked an oven-controlled crystal oscillator (OCXO) achieving -170 dBc/Hz phase noise at 1kHz offset, significantly quieter than the typical -155 to -160 dBc/Hz range for high-performance OCXOs. This level of phase noise is usually associated with rubidium atomic references, which are far larger and more expensive. The device reportedly comes in a standard DIP package that can be soldered directly onto a PCB, offering a cost- and size-efficient alternative. The engineer expressed initial disbelief at the measurements, given the performance level is unusual for a crystal-based oscillator. The post invites other engineers to share their own experiences with low-phase-noise OCXOs and the applications they were designed for.

0
ProgrammingDEV Community ·

How to Fix Next.js Hydration Mismatch Errors in App Router

A common error in Next.js App Router occurs when server-rendered HTML does not match what React tries to hydrate on the client side during initial load. This mismatch is typically caused by using browser-only APIs such as Date(), localStorage, or Math.random() directly inside component render logic. Developers can resolve the issue by using the suppressHydrationWarning attribute for static content, or by deferring client-specific data fetching to a useEffect hook. For components that rely entirely on browser state, Next.js recommends using dynamic imports with the ssr: false option to skip server-side rendering altogether. Additionally, adding a format-detection meta tag in the root layout can prevent iOS from injecting unexpected nodes that also trigger hydration warnings.

0
ProgrammingGitHub Blog ·

GitHub Updates Developer Policies and Releases New Transparency Data

GitHub has published a new developer policy update alongside its latest transparency data. The update addresses how state-level policies are affecting developers and open source software. GitHub aims to keep its developer community informed about regulatory and policy changes that may impact their work. The company also outlined what further policy developments are expected in the near future.

0
ProgrammingHacker News ·

Developer builds WSL-like multi-distro tool for Linux called NSL

A developer has created NSL, an open-source tool that brings a WSL2-style experience to Linux users. The project runs multiple Linux distributions simultaneously using a single VM that hosts systemd-nspawn containers. Like WSL2 on Windows, NSL supports host file edits and port sharing across development environments. The tool was built to let developers work across different distros without polluting the host system with changing or unstable dependencies. NSL was shared on Hacker News, where the creator invited community feedback on the project.

0
ProgrammingDEV Community ·

Why System Thinking and Verification Matter More Than Coding Speed in the AI Era

AI coding tools can now generate standard boilerplate and routine functions in seconds, compressing the time engineers spend on initial implementation. However, this shift moves the primary bottleneck from writing code to verifying it, as machine-generated output still requires deep scrutiny for logic errors, security flaws, and edge cases. AI assistants also lack visibility into an organisation's legacy systems, deployment pipelines, and undocumented constraints, making human judgment essential for integration work. As raw code output becomes easier to produce, the ability to translate ambiguous requirements into sound technical decisions grows more strategically valuable. Experts argue that engineers who invest in system architecture, rigorous testing, observability, and debugging skills will be best positioned in an AI-assisted development landscape.

0
ProgrammingDEV Community ·

Developer Builds Incident-Response AI Agent Trained on 104 Real Tech Postmortems

A software developer built an AI incident-response agent using the OpenSRE dataset of 114 real postmortems from companies including Slack, GitHub, AWS, and Cloudflare. The developer retained 104 incidents in a memory bank, which were processed into 946 discrete memories connected by over 7,000 links. The core motivation was teaching the agent to recognize 'trap actions' — remediation steps like rollbacks or restarts that historically worsened outages rather than resolved them. In a test scenario involving a checkout service returning errors after a deployment, the memory-equipped agent correctly identified a likely dependency issue and warned against rollback, while the same model without memory fabricated details and recommended the potentially harmful rollback. The developer acknowledges no formal comparison was run against synthetic data, framing the project as a practical experiment rather than a rigorous benchmark.

← NewerPage 808 of 3169Older →