SShortSingh.

Programming

0
ProgrammingDEV Community ·

INEX Thailand Releases Mirobot Simulator v2.4.7 for 6-DOF Robotic Arm Training

Innovative Experiment Co., Ltd. (INEX) of Thailand has developed Mirobot Simulator, an interactive desktop application for simulating the WLKATA Mirobot 6-DOF robotic arm. The simulator is built using Vue, Electron, and Three.js, and features real-time 3D visualization, forward and inverse kinematics, joint and Cartesian jogging, and WLKATA G-code import and export. The latest release, version 2.4.7, expands support for both Jog and Path simulation modes. WLKATA Robotics is credited for the original Mirobot platform and mechanical design on which the simulator is based. The tool is intended for robotics education, development, and simulation, with a live demo and open-source repository publicly available.

0
ProgrammingDEV Community ·

Laptop GPU Outpaces Its Own CPU by 4.1x Running Google Gemma 4 AI Model

A developer benchmarked a GTX 1650 Ti GPU against an Intel Core i7-10750H CPU on the same Lenovo Yoga 9 laptop, both serving Google's Gemma 4 E2B model via llama.cpp on Debian sid. The GPU decoded tokens 4.14 times faster, prefilled 3.42 times faster, and completed requests 3.62 times end-to-end faster than the CPU. To eliminate thermal bias from the shared cooling system, tests were run in ABBA order — alternating which device went first — revealing that single-order benchmarks on this machine carry roughly a 2% error. Both builds used the same llama.cpp commit and identical quantized model file, differing only by a single flag enabling or disabling CUDA. The author also released a suite of Python MCP tools on GitHub to help manage llama.cpp server deployments.

0
ProgrammingDEV Community ·

Oracle SQL: Four Built-in JSON Functions That Transform Relational Data

Oracle Database offers four built-in SQL functions — JSON_OBJECT, JSON_OBJECTAGG, JSON_ARRAY, and JSON_ARRAYAGG — to convert relational table data into JSON format directly within SQL queries. JSON_OBJECT and JSON_ARRAY are scalar functions that operate row by row, producing a JSON object or array for each individual record. In contrast, JSON_OBJECTAGG and JSON_ARRAYAGG are aggregate functions that consolidate multiple rows into a single JSON document or array respectively. JSON_ARRAYAGG is particularly useful in API development and reporting, while JSON_OBJECTAGG suits scenarios requiring dynamic serialization of query results for REST APIs or NoSQL migrations. Developers can practice these functions using Oracle's standard EMP table, which contains employee fields such as EMPNO, ENAME, JOB, and SAL.

0
ProgrammingDEV Community ·

Oracle PL/SQL: How Pipelined Table Functions Outperform Regular Ones

Oracle PL/SQL offers two types of table functions — regular and pipelined — both capable of returning collections queryable directly in SQL FROM clauses. Regular table functions load the entire result set into PGA memory before returning data, leading to higher memory usage and slower time-to-first-row, making them suitable mainly for small datasets. Pipelined functions, by contrast, stream rows incrementally to the caller using the PIPE ROW construct, significantly reducing memory overhead and improving responsiveness for large ETL or real-time data operations. A key syntax rule requires that the RETURN statement in a pipelined function remain empty — passing a variable causes a PLS-00633 compilation error. Additionally, the TABLE() wrapper mandatory in Oracle 11g and earlier became optional from Oracle Database 12c Release 2 onward.

0
ProgrammingDEV Community ·

Oracle PL/SQL: Key Differences Between CASE Expression and CASE Statement

In Oracle PL/SQL, the CASE Expression and CASE Statement serve distinct purposes despite sharing similar syntax. A CASE Expression evaluates a condition and returns a single scalar value, making it suitable for assignments or inline SQL use, while a CASE Statement executes one or more procedural actions based on conditions. Their termination syntax also differs: CASE Statements close with END CASE; whereas CASE Expressions end with END. A critical behavioral difference involves unhandled cases — a CASE Statement with no matching WHEN clause and no ELSE raises a runtime ORA-06592 exception, while a CASE Expression silently returns NULL under the same circumstances. Developers should account for these distinctions to avoid unexpected runtime errors in production PL/SQL code.

0
ProgrammingHacker News ·

Over a Quarter of Company Job Postings Remain Open Beyond 90 Days

A report from Unlisted Careers reveals that 28% of job postings on company career sites have remained open for more than 90 days. These long-standing listings are often referred to as 'ghost jobs,' roles that may not reflect active or genuine hiring intent. The phenomenon can mislead job seekers into investing time and effort applying for positions that may already be filled or frozen. The findings raise concerns about transparency in corporate recruiting practices. The report was published in September 2026 based on data gathered from company career pages.

0
ProgrammingDEV Community ·

Rails gem 'viewing_as' adds read-only, audited admin impersonation with write guards

Delist My Data, a personal data removal service, built a customer account impersonation feature for its admin team that enforces read-only access and maintains a transparent audit log visible to customers. Existing Rails gems like pretender and devise_masquerade handle user-switching but lack write restrictions, session timeouts, or customer-facing audit trails. The team addressed this with two protection layers: a before_action that blocks non-GET/HEAD requests during impersonation, and ActiveRecord's while_preventing_writes to catch any writes that slip through via GET routes. The solution also uses signed cookies to lock session settings like read-only mode so nothing can be altered from the browser mid-session. Last week, the company extracted the feature into an open-source gem called viewing_as for other Rails developers to use.

0
ProgrammingDEV Community ·

How AIoT Combines IoT Sensors and AI to Transform Industrial Operations

AIoT — the convergence of Artificial Intelligence and the Internet of Things — enables industrial facilities to move beyond raw data collection toward actionable insights. By pairing sensors and RFID systems with machine learning models, organizations can predict equipment failures, track asset utilization, and detect unusual operational patterns. Engineers must choose between edge computing and cloud processing based on factors such as latency, connectivity, data volume, and privacy requirements. Beyond model selection, a robust data pipeline for cleaning and preparing sensor data is equally critical, as missing values, duplicate records, and faulty measurements can undermine even sophisticated AI systems. Experts note that addressing data quality issues at the pipeline level is often more impactful than optimizing the machine learning model itself.

0
ProgrammingDEV Community ·

How One Developer Built a Scalable YouTube Transcript Pipeline for AI Use

A developer needed transcripts from a 300-video YouTube playlist to build a local retrieval-augmented generation corpus, but existing bulk extraction tools failed immediately. Treating bulk extraction as a simple loop over single-video calls proved unreliable, with no job state, checkpointing, or per-video retry logic. The solution was redesigning the pipeline so the entire batch is tracked as one job, with each video handled as an independent item that can succeed, fail, or retry individually. Key lessons included deduplicating video IDs at ingestion, snapshotting playlists at submission time to avoid mid-run changes, and storing transcripts in timestamped JSON as the master format. The developer also flagged that auto-generated captions require quality scrutiny, and that private or age-restricted videos should be filtered out before a job is submitted to avoid wasted processing.

0
ProgrammingDEV Community ·

How to Safely Refactor One Nested Decision Without Breaking Existing Behavior

A common pitfall in AI-assisted code refactoring is that generated patches often rewrite far more than requested, silently altering logic that existing systems depend on. A walkthrough using a messy pricing function illustrates how over-broad edits can cause subtle failures such as branch collapse, exception reshaping, and rounding drift. The recommended approach is to first record the exact outcomes of a single hot code path before moving any symbols, locking in a characterization test as a stable reference. Only after those outcomes are frozen should a developer extract a single predicate, keeping all other logic untouched to minimize risk. This disciplined, one-change-at-a-time method makes refactoring genuinely reviewable rather than a gamble on unverified behavior.

0
ProgrammingDEV Community ·

CSS Variables Beat JSON Tokens for Web Design Systems, Developers Argue

A code review incident highlighted a growing frustration among web developers: design system teams often export tokens as deeply nested JSON files, forcing developers to write complex JavaScript utilities just to apply basic styles like colours and spacing. Critics argue this approach bloats JavaScript bundles and forces the browser to download and parse style data before it can render the page correctly. CSS custom properties, commonly known as CSS variables, offer a native browser alternative that is simpler to implement and far easier to debug using standard developer tools. Switching themes with CSS variables requires only a class change on the HTML body element, whereas JSON-based token pipelines often require full React component tree re-renders. The core argument is that design system teams are optimising for abstract architecture rather than leveraging the browser's built-in, highly efficient styling engine.

0
ProgrammingDEV Community ·

vLLM Supports GGUF Models via Plugin, but Only on GPU Hardware

The vLLM inference engine can run GGUF-format models, but only through a separate official plugin called vllm-gguf-plugin and exclusively on supported GPU hardware, including NVIDIA and AMD cards. GGUF support was removed from vLLM's core package and migrated to this out-of-tree plugin, meaning a standard pip install of vLLM is no longer sufficient. Users must also specify a tokenizer flag pointing to the base model, as GGUF tokenizer conversion is documented as slow and unreliable, particularly for models with large vocabularies. Unlike llama.cpp, which dequantizes models on CPU, vLLM's GGUF path relies entirely on GPU kernels designed for batched serving, making CPU inference unsupported. The official vLLM documentation flags GGUF support as highly experimental and under-optimized, with narrower quantization coverage and slower adoption of new model architectures compared to llama.cpp.

0
ProgrammingDEV Community ·

How Prompt Hashing and RSS Caps Catch Silent Regressions in AI C++ Evals

AI-generated C++ patches can pass all functional tests while still introducing hidden performance regressions, such as excess memory allocations or changed cache behavior, that standard output-only golden file checks never detect. A proposed evaluation harness addresses this by adding two explicit locks: a SHA-256 hash pinning the exact prompt used to generate a patch, and hard caps on wall-clock time and resident set size. The prompt hash is stored in a checked-in JSON contract file, so any change to the prompt text requires a deliberate commit updating the hash, preventing silent drift between eval runs. Resource budgets for time and memory must be measured on the same machine class used for grading, as mixing laptop and remote VM figures invalidates the caps. Together, these two mechanisms ensure that a green build reflects genuine correctness and performance stability, not just matching output strings.

0
ProgrammingDEV Community ·

How to Build a Reliable Node.js HR Onboarding Service Using Async Job Queues

A software engineering guide recommends handling HR onboarding packet generation through durable asynchronous jobs rather than synchronous HTTP requests, which can tie up connections and cause ambiguous timeouts. The approach involves returning a 202 Accepted response with a job ID immediately, allowing clients to poll a status endpoint or receive a webhook instead of waiting on a long-running request. Two-stage validation is advised — once before the job is enqueued to reject bad input, and again inside the worker after rendering to verify the output's integrity. Temporary files should be stored in per-job directories with restrictive permissions and short time-to-live settings, while retries must distinguish between transient errors worth retrying and terminal failures like malformed templates. The guide notes that while this architecture requires more operational overhead than a single route handler, it prevents issues like duplicate packets during onboarding bursts and keeps system behavior predictable under load.

0
ProgrammingDEV Community ·

React: Key Features That Make It a Popular JavaScript UI Library

React is an open-source JavaScript library primarily used for building user interfaces in single-page and mobile web applications. Its code is organized into reusable components and leverages core concepts such as JSX, the Virtual DOM, and lifecycle methods. JSX allows developers to write HTML-like syntax within JavaScript, which Babel then compiles into standard JavaScript, improving readability and stability. React's Virtual DOM optimizes performance by updating only the parts of the interface that have changed, rather than reloading the entire page. Additional features like one-way data binding and built-in testability give developers greater control over application state and simplify the debugging process.

0
ProgrammingDEV Community ·

Google Cloud AI Research Proposes RRSI to Prevent Agent Harnesses from Gaming Benchmarks

Researchers at Google Cloud AI Research have published a paper introducing RRSI, a framework designed to stop AI agent harnesses from overfitting to the benchmarks used during their own self-improvement cycles. The problem arises when an agent iteratively refines its surrounding scaffolding — prompts, tool logic, memory management — using the same evaluation set it is scored on, causing it to game that set rather than build genuinely transferable capabilities. RRSI addresses this by applying classical machine learning regularization techniques, including sparsity constraints and complexity penalties, to the harness evolution process. The framework operates in two phases — proposal and selection — and introduces mechanisms such as annealed update sparsity and evidence-aware credit assignment to curb noise-chasing and benchmark leakage. The work reflects a broader shift in AI development toward harness engineering, where the scaffolding around a frozen language model increasingly determines real-world agent reliability.

0
ProgrammingDEV Community ·

How to Handle Telegram Stars Payments End-to-End Using PHP

A technical tutorial published on DEV Community outlines how developers can build a server-side PHP endpoint to process Telegram Stars purchases. The guide covers three core phases: generating an invoice via sendInvoice, confirming user intent through pre_checkout_query, and finalizing the transaction with successful_payment. Developers are advised to validate incoming invite links against their registered bot ID to prevent fraud and duplicate transactions. The implementation requires a Telegram Bot token with specific permissions, a MySQL or PostgreSQL database, and an HTTPS-capable web server for webhook support. The tutorial also highlights common pitfalls such as rate limiting, duplicate invoice creation, and invalid invite handling.

0
ProgrammingDEV Community ·

Why dblclick silently fails when a click handler replaces the DOM element

A web developer discovered that double-click events never fire when a click handler replaces the target DOM element, with no console errors to signal the problem. Testing across Chromium 148, Firefox 150, and WebKit 26.4 confirmed that all three browsers drop the dblclick event if the second click lands on a newly created node rather than the original one. Crucially, the issue is about node identity — removing and reinserting the same object works fine, but swapping in a new node with identical markup does not. The dblclick also does not bubble up to parent elements, so attaching a listener higher in the DOM tree offers no escape. A reliable cross-browser fix is to check the click event's detail property inside the click handler, since detail correctly reaches 2 on the second click regardless of whether the target node was replaced.

0
ProgrammingDEV Community ·

Why Client-Side Rendering Often Makes More Sense Than SSR for Simple Tools

A developer behind the utility platform Utilifie argues that server-side rendering (SSR) is frequently applied by default, even when applications do not require it. Tools such as JSON formatters, Base64 encoders, and unit converters perform all their computation locally in the browser, making server rendering largely unnecessary. For such applications, a statically generated, cached app shell combined with client-side processing can reduce infrastructure overhead and even enable offline functionality via Service Workers. The author is not calling for SSR to be abandoned, but urges developers to choose it deliberately — reserving it for cases involving personalization, authentication, or dynamic backend data. The broader point is that application architecture should be driven by actual workload requirements rather than framework defaults or industry trends.

0
ProgrammingDEV Community ·

BranchWatch: Open-Source Tool Turns Git Workflows into Visual Node Pipelines

A developer has released BranchWatch, an open-source experimental tool that reimagines Git operations as a visual, executable node pipeline rather than manual terminal commands. The project allows users to connect Git stages — from working tree to staging, commit, and branch — in a graphical interface. Teams can attach custom scripts, lint checks, or webhooks directly into the pipeline and use forkable templates to standardize branching strategies. A visual dry-run feature lets users preview the exact CLI commands before execution. Built with Next.js 14, TypeScript, and Tailwind CSS, the project is publicly available on GitHub and seeking community feedback.

← NewerPage 985 of 3190Older →